はじめに
この記事は、個人的に有用だと思った記事をまとめて掲載しておくために作ったものです。
自分の中でのブックマーク代わりと言った感じです。
似た問題を抱えている人にとっては、解決に糸口になるかもしれませんので、参考リンクを是非ご覧になってみてください。
記事のまとめ
chainer導入
chainerを導入するまでに参考にしてきた記事です。
Pythonの導入
PythonをAnaconda(ディストリビューションの一種)で導入します。LinuxにもSentOSやUbuntuなどがあるように、Pythonにも様々なディストリビューションがあります。
Anacondaは科学技術計算に必要なライブラリをまとめてくれているディストリビューションで、機械学習には持ってこいだと感じました。
上記の記事はAnacondaを使ってPython環境構築を、各OS毎に解説してあります。Windows、MacOS、Linux、自分が使っているOSに合わせて操作を行えばインストールが完了します。
chainer導入
基本的に(私はUbuntuを使っています)以下のコマンド
pip install chainer
のみでchainerをインストールできます。
もしもGPUを使いたい場合は先にCUDAを入れなければなりません。
既にchainerをインストールしてある状態で、GPUを後から導入したい場合は、そのときにchainerを一度アンインストールしてから、CUDA、chainerの順番でインストールすることになります。
難しい話無しで、手軽に行けそうなのが以下の記事です。
chainer入門
chainerを使える環境にある場合に、chainerの使い方を学べる記事です。
chainer公式ドキュメントのIntroduction
Introduction to Chainer — Chainer 1.19.0 documentation
英語を読むことができるのならば当然ここから始めるのが一番いいでしょう。
ここのプログラムを眺めるだけでなく、しっかり写経していけば雰囲気を掴むことはできます。
英語ができない場合のintroduction
いろいろ記事はありますが、この記事はTrainerという新機能追加後にも対応した日本語訳を載せてくれています。基本的に公式ドキュメントと内容は一緒なので、英語が読めない方はどうぞ。
chainerの理解を深める
chainerのサンプルコードを動かせるようになった人が、chainerの中身を詳しく理解するために有用な記事です。もっとブックマークついても良いと思います。
ただしこの記事の内容をしっかり理解するためには、ニューラルネットの中身を予め把握しておく必要があると思われます。
例えば、以下の本などを使って、ニューラルネットの中身をしっかり把握していれば、その内容を踏まえてchainerそのものの様々なクラスやメソッドの理解を深められます。
ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装
- 作者: 斎藤康毅
- 出版社/メーカー: オライリージャパン
- 発売日: 2016/09/24
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (8件) を見る
まずはchainerの中身はブラックボックスということでも構いません。正しくデータを渡して、処理を行えるのであれば問題ないでしょう。しかし、少し複雑なものをchainerの記述しようとした時、準備されたクラスやメソッドに対する理解が無ければ、やろうとしているコードを実現できません。
最初に読む記事ではないですが、いつか読むといいです。
chainer応用
正則化やドロップアウト
chainerの基本的なことがある程度できるようになれば、ドロップアウトや正則化などを使いたくなるでしょう。chainerでの実装の仕方は、本ブログの以下の記事、「chainerでの実装」の項目にコードがあります。非常に簡単にできるので、コードを見れば使い方はすぐに分かるかと思います(ちなみに、以下の記事でのchainerによる実装では全結合層が分岐して、出力で合流していることが__call__から分かるでしょうか。きっとchainerの入門を終えているのであれば、分かるはずです。)
また、様々なchainerの機能は、公式ドキュメントのリファレンスマニュアルにたくさん載っています。必要だなと思うもの、面白そうだなと思うものを是非使ってみてください。
http://docs.chainer.org/en/stable/reference/index.htm
独自データを用いる
chainerや深層学習の各パラメーターの効果を検証する分には、サンプルプログラムをいじっていれば大丈夫でしょう。しかし、応用したいという場合には、やはり自前のデータを使いたいというのが実際のところです。
独自データを用いてchainerを使っている記事をまとめますので参考にしてください。
画像データ
テキストデータ
LSTM
上記のニコニコ動画の文字列予測のような自然言語処理は基本的にLSTMですが、時系列解析にも構造上強いとされています。個人的に興味が強いためまとめておきます。
以下はLSTMの解説pdf
http://isw3.naist.jp/~neubig/student/2015/seitaro-s/161025neuralnet_study_LSTM.pdf
以下はconvLSTMのchainerでの実装。
LSTMはLinkファンクションにありますが、こちらは通常のLinkを使ってLSTMを実装した後にこれを畳み込み演算に変更することでconvLSTMを実装しています。
chainer公式ドキュメントの日本語版
非公式のchainer日本語ドキュメントです。
Chainer - ニューラルネットワークの柔軟なフレームワーク — Chainer 1.18.0 ドキュメント
機械翻訳に入れてあるのでしょうか。
あずみ.net | 普通のPHPerです。お仕事のご相談はお問い合わせからお願いします。
さんが翻訳しています。