MATHGRAM

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

くそ初心者がchainerを理解してちょっといじれるようになるために見るべき5つのサイト

pythonを本格的に触りだしてから、(というかプログラミングを本格的にやりだしてから...)大体一ヶ月くらい経ちました。

つまり、僕こそがくそ初心者です。

DeepLearningの勉強のためにchainerをいじりたいと思っていろんなページを探したのですが、結構本格的なものが多く初心者にはなかなかとっつきにくいイメージを受けてしまいました。

一回わかれば簡単なのに、それまでは凄く簡単なところで躓いてしまいますよね。

そんな中でもとても親切で分かりやすかったサイト様を紹介したいと思います。

この順番で読んで、少しづつコードをいじっていけば3時間くらいでchainerをなんとなく理解できると思います。

内容と感想も一応まとめたので、参考になれば幸いです。

初心者がまず見るべきサイト様たち

chainer解説

解説その1

機械学習】ディープラーニング フレームワークChainerを試しながら解説してみる。
http://qiita.com/kenmatsu4/items/7b8d24d4c5144a686412

内容
chainerのサンプルコードを用いて、機械学習がどのように行われているか詳しく説明してくれています。図も多くニューラルネットのイメージをちゃんと理解できました。

ただ、後で紹介するANDを学習させるものの方が、自分にとっては実装の練習として最適でした。ですので、ここではニューラルネットの構造やchainerについて、ある程度理解すれば十分だと思います。

解説その2

chainerの使い方と自然言語処理への応用
http://www.slideshare.net/beam2d/chainer-52369222

スライドでより詳しく解説してくれています。chainerに含まれている様々なクラスの説明が僕にとって嬉しいものでした。関数の名前からその言葉を検索して、この最適化手法は数学的にどういうものなのか(例えばAdamってどうやって動くの?とか。)など調べられるのもいいですね。

必見はp25のまとめです。

chainer実装

実装その1

chainerでニューラルネットを学んでみるよ(chainerでニューラルネット2)
http://hi-king.hatenablog.com/entry/2015/06/27/194630

内容

ブール代数のANDをchainerを使って学習させています。ANDは一層で学習できますが、二層ないと実現できないXORも解説されています。

ANDをコピペで走らせた後、少しだけ自分で書き換えてORを作ると構造を理解する練習になると思います。

実践その2

chainerで回帰順伝播型ニューラルネットワーク
http://pc.atsuhiro-me.net/entry/2015/08/17/002413

内容

こちらはchainerを用いてsin関数を学習させています。

この練習により、epoch数などのパラメータが学習にどう関係しているかなどのイメージがわきました。グラフを表示させ図からも学習の進行を確認できるのもいいところだと思います。

実践その3

chainerでAuto Encoderの作成と学習
http://pc.atsuhiro-me.net/entry/2015/08/18/003402

内容

少し進んだ練習です。学習の前にある程度パラメータをいじっておくと効率よく学習ができますが、そのために使うのがこのAutoEncoder。教師なし学習について少し調べてからの方がいいかもしれませんが、特に難しい概念でもないので多分大丈夫だと思います。


以上です!
とにかくコードと理論を行き来することが大事ですよね。
自分も頑張ります!

p.s. chainer楽しい。