せっかくの連休ですが外出自粛ということで、マジメに本を読んでみました。先日の機械学習よわよわマン第一弾に引き続き、本日はこれです。


はじめてのディープラーニング
はじめてのディープラーニング(リンク先に飛びます)

誰が読むべき?

私のような機械学習初心者向けの本です。機械学習、とくにディープラーニングは(必要以上に?)流行りまくっているので、この手の「機械学習、キミもやってみようよ!」的な本はそれこそ山のようにあります。その中で何であえてこれを読むのか、というところです。私が好きなポイントはずばり

程よい難易度(意外とガチ)だ

という点です。私のような機械学習初心者が「ディープラーニング」を初めてやってみる際に、この本はちょうどいい難易度だ、と感じています。しょぼすぎず、ガチすぎず。

Keras無し縛り!

もうちょっと詳しく説明します。現在ディープラーニングには、あまりに便利すぎるライブラリ「Keras」が存在します。(インストールでよく泣きますが、インストールさえ済めば)Pythonで簡単な命令を数行書くだけで(中身を何もわかってなくても)学習が実行できてしまいます。

これにより、ディープラーニングへの敷居がガクっと下がり人口が増えたものの、一方で私の職場にもちらほらいるのですが、中身を全然理解しないままディープラーニングにズブズブとまい進してしまう輩が沸いているのも事実です。

巷の「ディープラーニングやってみようよ」本ではたいてい開始数ページでその「Keras」のインストールを始めてしまうのですが、この本では何と!Kerasは313ページ(全322ページ)まで登場しません。コンセプトは「とりあえず自分で全部組んでみる」であり、強力(&凶悪)すぎるKerasを一切用いず、それこそnumpyのみで初歩的なニューラルネットワークをPythonにより記述します。

これは特に私のような初心者にはおススメポイントです。ニューラルネットワークの各部分に関して、初歩から丁寧に数学的解説つきで全プログラムが載っています。解説を読んでプログラムを写経するだけでも全貌がけっこう身に尽きます。説明に登場する数学は、高校の数III&Cぐらいの知識があれば十分入っていけます(メインで登場する偏微分は高校数学ではないですが、あまり厳密な理屈にこだわらなければ数IIIで十分)。Kerasなし縛りである程度慣れた後で、より高速化のためにKeras導入、とすれば最初から盲目的にKerasで遊ぶよりもはるかに得るものが多いと思います。

ただ、ケチをつけるとすれば「逆伝搬」の解説のところで謎の文字省略("∂E/∂w"を単に"∂w"とか書いちゃう)がされていて、筆者はたぶん「わかりやすいように」と思ったのでしょうが数学をちゃんと勉強した人には余計わかりにくいです。そこはちょっとマイナス。

どんな内容?

本は全8章。1~3章でPythonや基本的な数学の解説を行い、4章から少しずつニューラルネットワークの中に入っていきます。最終的には6章で「普通の」ニューラルネットワークを組み上げ(有名すぎる花の判別をやる)、7章で画像解析によく用いられる畳み込みニューラルネットワークを組み上げて(これまた有名すぎる手書き数字判別)終わりです。(8章はあとがき)

もちろん、他の入門書と同様、プログラムはネットから(Jupyter Notebookの形式で)落とせます。ヒマな方は写経しても、面倒であればダウンロードしてもいいでしょう。組み上げて適当に改造すれば、各自の職場のデータにそのまま使えるので、私のような「ディープラーニング?聞いたことあるけどなんか怖い」という方は是非この本で「そこそこマジメに」触れてみてください。表紙の見た目のわりに?意外とちゃんとした内容です。ではまた。


はっぴぃ理系らいふ、いぇい
ヽ(・ε・)人(・ε・)ノ キミモナカマニナロウゼ
   

【文責 べじぱみゅ】