DeepLearning(chainer)でirisデータの分類をしてみる
モチベーション
最近、ようやく、DeepLearningとは何か・どうやって実装するのかがボンヤリとつかめてきた。 DeepLearningが注目を浴びたのが画像認識というせいか、caffeといい、chainerといい、最初のチュートリアルはMNISTのデータ分類。MNISTがHello,world的な扱いになっている。
けど、画像認識のサンプルコードは個人的に、数値とかをイメージしずらいし、行列も大きくなりがちなので、サンプルコードを見てもあまりイメージができない・・・。ということで、chainerを使って、irisデータで分類のサンプルコードを書いてみた。
R大好きな私としては、Hello,worldはやっぱりirisデータでしょということで。
コード
- githubにipyhton notebookを置いてあります
- https://github.com/michitakaiida/chainer_my_iris/blob/master/iris.ipynb
- 汚かったり、不要なものも残っていますが・・・
- そして、これがあっているのかが自信ないです
学習結果
- ロス関数
- accuracy
- trainはうまくいっているっぽいけど、testが全然できてない・・・
- 一応、予測したときに、正解っぽのは出しているが・・・
感想
- chainerのサンプルコードは、ブートストラップサンプルのやり方とかも知れるし、写経するだけで価値があるなと
- numpyで線形代数を学習するかのように、深層学習 (機械学習プロフェッショナルシリーズ) の本を片手に、chainerでDeepLearningを勉強するのが良さそう
- 一通り、動くようにはなったけど、まだまだ理解できていない。勉強しないと・・・。
- optimizerの使い方とか
- どのタイミングでどの変数が更新されるのかとか
- 回帰とか、2値分類のときのNNの作り方
- たたみ込みNNの実装とか
- 活性関数、どこになにをするのかの設計とか
- 学習が成功したがどうかの判断の基準
DeepLearningむずいってば。。