年末年始はこの２冊を読んでいた。

『はじめての深層学習プログラミング』清水亮

『ゼロからつくるDeep Learning』斎藤康毅



結論から言うと、いま、人工知能やディープラーニングに興味があるひとは、２冊とも必読ではないかと思った。



アプローチが完全に対称的なので、両方読んだら、理論と雰囲気について、見通しがつくようになったのがとてもよかった。

『ゼロからつくるDeep Learning』は、ていねいに書かれたオーソドックスな入門書だ。人工知能開発によく使われる言語・Pythonの基本や数値計算ライブラリの使い方からはじまり、ニューラルネットワーク、ディープラーニング、畳み込みときて、最後に画像認識を解説する。随所に適切な例題やサンプルコードを交えて、理論と実践をバランスよく説明している。

対して、『はじめての深層学習プログラミング』は、まったく真逆のアプローチだ。なんと、理論の解説などはすっとばして、いきなり画像認識のプログラムを動かすところからはじまる（ぼくはこっちから読んだ）。

なにしろ、帰省のための新幹線にのって、サンプルコードを入力しはじめて、30分くらいでAIで画像認識をするプログラムが動いた（ただし、開発環境のインストールまではすませた状態からはじめている。これについてはあとで書く）。

写真は、Macのカメラに写った画像を認識しているところ。リアルタイムで写り込んだものを識別する。もちろん、すでに学習済みのAIを読み込んでいるからこんなことができるわけだけれど、「あるものをつかってさっさと動かす」という著者の思想がはっきり出ていておもしろい。

試してみたいというひとは

自分もやってみたいというひとのために、ハードルの高さも書いておこう。ひととおり試すのに、どれくらいの知識が必要なのかというと、

・ターミナルの操作などUNIXの使い方の基本

・多少のプログラミング経験

は必須だと思う。さすがに、だれでも試せますよ、とはまだ言えない（もちろん、エンジニアならだれでもできる）。以下に、ぼくがつまづいたところのメモを置いておくので、それを見て理解できるかどうかが、自分でも試せるかどうかの分水嶺になるかもしれない。

技術的につまづいたところのメモ：

「ゼロから」はPython3系、「はじめて」はPython2.7系を前提としている。よって、Pythonの複数バージョンの使い分けが必須だ。そのために、

・pyenv

・virtualenv

をインストールして設定する必要がある。やりかたは、

pyenv-virtualenvでディレクトリ単位のpython環境構築 - Qiita

http://qiita.com/niwak2/items/5490607be32202ce1314

↑などが参考になる。その後は、ホームディレクトリ以下にそれぞれの環境が入るので、numpyなどの必要なライブラリはそれぞれにインストールする。

『はじめての深層学習プラグラミング』は、そもそも前提がLinuxなのかもしれないんだけど、Macで使うとけっこうはまった。たとえば、冒頭で画像認識のためにOpenCVを入れろといってくるので、Macの場合はbrewでインストールするのだが、バージョンとかパスとかいろいろ苦労した（詳細忘れた）。

ほかにも、スクリプトの中で呼びだされるwgetをbrewでインストールしたり、PILという画像のためのライブラリをソースコードを持ってきてインストールしたり、エラーがでるたびに原因を探して解決をするということも行っている。

『ゼロからつくるDeep Learning』でも、冒頭の Matplotlib ではまった。インストール自体はpip install matplotlibでいけるのだが、サンプルコードが「画面描画がなんちゃら」というエラーが出て動かない。

pyenvとvirtualenvで環境構築した時にmatplotlib.pyplotが使えなかった時の対処法 - Qiita

http://qiita.com/Kodaira_/items/1a3b801c7a5a41c9ce49

が、ここを見たら解決できた。

それにしても、Qiita、便利すぎるよ、Qiita。ぼくがプログラムを書いていたころはQiitaとかなかったから感動したよ。サービスの運営元は弊社と同じビルの中に入ってる会社なんだけど、こんなにすてきなことをやってたのか（すいませんエンジニアには常識ですよね）。

ということで、環境構築がめんどいけど、試す価値は十分にあると思いました。贅沢を言うと、両方の著者さんか版元さんが学習用のVMとかDockerを配布してくれたら最高なんですが、いかがでしょうか。

でもほんと、AI、おもしろいな。Linuxの黎明期とか、インターネットの黎明期のような感動を思い出す。やっていくにつれ、数学や統計学を勉強しなおしたいなとか、おれにGPUをGPUをくれーーなどと思うようになるが、そこはみなさん、それぞれなんとかしてください。