MATHGRAM

主に数学とプログラミング、時々趣味について。

2017-02-01から1ヶ月間の記事一覧

RustでForward自動微分を実装してみた

Rustの理解がまだまだすぎて. モジュールとして全く使えない実装になっているので悪しからず. Forward自動微分そのものを理解することを目標とします. ちなみに僕が参考にしたのは以下のサイトです. 自動微分 - Wikipedia ボトムアップ型自動微分の実験 - ki…

chainerでYahoo!の占有率推定を実装してみた

こんにちは. 今回は僕も参加したYahoo! JAPAN データ&サイエンス カンファレンス 2016で取り上げられていた占有率推定を実装してみました. 前書き Yahoo! Japanは働き方改革のロールモデルとして, 頻繁にメディアに取り上げられていますね. 特に週休三日制…

chainerに復帰したくてFCN実装した

もともと, chainerユーザーだった僕ですが, 5月くらいにKerasを使い出してからchainerにはあまり触れてきませんでした. しかし先日の分散処理の発表なども含め, バージョンアップが早く, 常に速度の向上を図っているchainerにはもう1度触れておきたいと思い,…

[Keras] backend functionを使いこなそう!

みなさん, keraってますか. 今回はloss関数やlayerの実装に欠かせない, backend functionをまとめていきます. ただし自分が主に使ってる関数のみ紹介するので, 絶対Document読む方がいいですよ. これ以外にも色々ありますからね. こいつを使いこなして, どん…

[Keras] パラメータの更新をさせないfreezeに関する実験

突然ですが, 一昨日のことです. @tuntuku_sy 初めまして, こんにちは. Kerasをメインで使っているものです. ブログ拝見させていただきました. 一つ気になったのですが, そのtrainable=Falseの使い方で, dis modelをfreezeできてますでしょうか?— Kento Wata…

[Rust] 月型の2値データを生成する (機械学習の準備)

scikit-learnのmake_moons()を移植した感じです. データの生成ができたので, 次から機械学習の様々な手法を本格的に実装していこうかと思います. こういうデータを見るとSVMがやりたくなるのでSVMからやろうかな. あと, 次からはジェネリクスで関数や構造体…

[Rust] 練習で最急降下法やってみた

pythonばっか触ってきた自分からすると, Rustは楽しいけど難しいです. もっといろんな機能を使いこなせるようになりたい・・・ 最急降下法 理論はクソ簡単なので, 特に説明しません. 坂道転がってくだけです. 実装では自分で微分した式を使っちゃってるので,…

[Rust] zipでfor文 & 速度比較

Rustで2つのイテレータをペアで回す方法です. 二つの方法があるようなので速度比較します. 標準装備を使う fn main() { let x = vec![0; 1000000]; let y = vec![0; 1000000]; pair_iter(x, y); } fn pair_iter(x: Vec<i32>, y: Vec<i32>) { let start = time::now(); </i32></i32>…

[Rust] 正規分布に従う乱数を生成する [Box-Mullerの実装]

正規分布を実装したので, 正規乱数も作りたいなぁと思い実装しました. これ使ってガウスノイズ付きのデータ生成 & 線形回帰とかやっていこうかと思います. そんなことより, ボックス=ミュラー法, 今日知りました. うん, 普通に感動したわ.(小並感) 理論の参…

[Rust] ビルダーパターンを理解する

ちょっと気になったのでまとめておきます. 実際使われてるんですかね? まだRust歴が短すぎてよくわからないですけど一応使えるようにしておきたい. pythonとの対比 いきなりRustの話じゃなくて申し訳ないのですが, 例えばpythonであるクラスを作り, メンバー…

[Rust] 外側のループを抜けたい

Rustの勉強しててこれは便利だなぁって思ったものは小さい記事でもまとめておきます. 記事にすることで記憶に残りますしね. ループに名前をつけられる この機能をループラベルと言います. ループ処理が入れ子になっていて, ここで外側のループを抜けたいんだ…

[Rust] 練習で正規分布描いてみた [gnuplot]

Rust楽しいです. 自分はまだプログラミングをちゃんと勉強しはじめて1年ちょいしか経っておらず, しかもほぼpythonしか触れてこなかったので, トレイトとか寿命とか所有権とかの概念に対してハッキリとしたありがたみを感じることができてません. Rustの強み…

[Rust]ベクトルの要素でfor文まわす

Rust勉強中です. fn main() { let mut x: Vec<i32> = vec![1,2,3,4,5]; for element in &x { println!("{}", element); } } 以上です.</i32>