ゼロから作るDeepLearning
ゼロから作るDeep learningという本を入手できたので冬休みに読んでみることにしました。といっても読むだけだと何にもならなさそうなので、手を動かして覚えたことをここにまとめることで理解を深める作戦です。いつもの通り基本自分のメモです。本を持っていて読むことを前提にした内容です(多分本がないと基本意味不明な内容だと思います)。
本には無い要素として、Raspberry Piでもこの本を実行できる環境設定に関して記載しているので、本を読んだけど、Raspberry Piで試したいという人が補足的に読んだりするとよいかもしれません。
想定している環境は以下です。
- Mac Book Pro(Retina, Mid 2012)
- OS X Yosemite 10.10.5
or - Raspberry Pi 2 or Raspberry Pi 3
- Raspbian Jessie with PIXEL 2016-11-25
ゼロから作るDeep Learning用の環境設定
Mac/Raspberry Piそれぞれでのゼロから作るDeep Learning用の環境設定例を紹介します。
Macでの環境設定
Macではpyenvを使って環境設定しました。pyenvに関しては以下記事を参照下さい。
具体的には、以下でpyenvをインストールしてanaconda3をセットアップしました。Homebrewはインストールされている前提です。
$ brew install pyenv
$ echo 'eval "$(pyenv init -)"' >> ~/.bashrc
$ brew install pyenv-virtualenv
$ echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bashrc
$ echo export PYENV_VIRTUALENV_DISABLE_PROMPT=1 >> ~/.bashrc
$ pyenv install anaconda3-2.5.0
$ pyenv global anaconda3-2.5.0
Raspberry Piでの環境設定
Raspberry Piの基本的なセットアップは以下の記事を参照下さい。
また、本書では推奨環境としてanaconda3が推奨されていますが、私はRaspberry Piにanaconda3は入れず、python3, numpy, matplotlib, PILを入れることにしました。ここらへんは好みなのでanaconda3を入れても良いと思います。
具体的には以下コマンドで必要な環境が入ります。2行目でpipをインストール。3行目でPIL、4行目でnumpy、5行目でmatplotlibをインストールしています。だいたい最初から入っているので、最新のRaspbianであれば、1行目と5行目だけ実行すればOKかもしれません。
$ sudo apt-get update
$ sudo apt-get install python3-pip
$ sudo pip3 install pillow
$ sudo apt-get install python3-numpy
$ sudo apt-get install python3-matplotlib
インストールコマンドは、以下サイトなどを参照しました。
ゼロから作るDeep Learningをゼロから勉強
ここからは興味ある方のみ読んでみてください。何章か毎に1記事としてまとめて投稿していく予定です。
自分で実際に手を動かして本に書いてあることをベースに書いたコードは、以下のGitHubのリポジトリにアップしています。
本書の公式のGitHubのリポジトリは以下になります。自力で書いた後以下のコードをみて自分のコードのダメっぷりを学習するのもまた一興かなと思っています。
1〜3章
まとめ
まだ学習途中ですが、とても良書の予感がひしひしとします。Deep Learningというと、非常に高度な知識で作られているように思えてしますが、こうやって一つ一つの要素を実際に手を動かして作っていくと、実は自分が結構知っている知識だったり、意外に簡単な要素の組み合わせで成り立っていることが分かって、Deep Learning恐るに足らず!というちょっと勘違いした気持ちにまでなってしまいます。
特に今は、Tensor FlowとかChainerとか、便利なライブラリがたくさんあって、ネットでちょっと調べると結構凄いことパパッとできちゃうのですが、あまりにブラックボックス的に使っているので、バージョンアップで動かなくなったときの対応とかで消耗してしまい、3年後には全く使えない知識になっちゃうんじゃないかと不安になっている自分がいました。
その点、この本はpythonの実装の基礎から、numpyのテクニック、ニューラルネットワークの基礎の基礎、パーセプトロンからフィルタリングまで盛り沢山なので、きっちり手を動かして身につければ、この先10年くらいは陳腐化しない血肉になる知識を得られるのじゃないかなと思いました。なので、結構つらいのですけどしっかり一つ一つ身につけていこうかなと思います。はい。