ディープラーニングについて学ぶならこの2冊を読むしかない
年末年始はこの2冊を読んでいた。
『はじめての深層学習プログラミング』清水亮
『ゼロからつくるDeep Learning』斎藤康毅
結論から言うと、いま、人工知能やディープラーニングに興味があるひとは、2冊とも必読ではないかと思った。
アプローチが完全に対称的なので、両方読んだら、理論と雰囲気について、見通しがつくようになったのがとてもよかった。
『ゼロからつくる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をくれーーなどと思うようになるが、そこはみなさん、それぞれなんとかしてください。
いいなと思ったら応援しよう!
