機械学習の数学を学ぶならこの5冊!

#機械学習 は最近とても流行りのようで(むしろ浸透して落ち着いてきた?)、ツールやライブラリも充実しており、誰でも簡単に手を出せる技術になってきた感がありますね。私は扱えないですけど。

便利なフレームワークで手軽に使えるようになった一方で、本当に活用できるかどうか、また何か問題が生じた際に乗り越えていけるかは、フレームワークの背景にある理論的な内容を知っているかどうかがカギになると思います。
つまり機械学習を支える数学が身についていると有利!なわけですが、何から手を付ければよいやら、また難解な数学を理解できるかどうか、途方に暮れてしまいそうです。

そんなあなた(と私)に朗報です。
「機械学習の背景にある数学を教えてくれる5冊の本」という記事を書いてくださっている方がいました:

以下にかいつまんで紹介します。

機械学習に必要な数学はこれ

機械学習の「柱」になる数学は、以下の4つであるとしています:

1. Linear algebra (線形代数)
2. Probability theory (確率論)
3. Multivariate calculus (多変数微分積分学)
4. Optimization theory (最適化理論)

これらの基礎をしっかりと固めることは決して容易なことではなく、一朝一夕にできるものではありません。
しかしながら、学習の手助けとなる優れたリソースもたくさん有り、その中でも筆者が特におすすめする5つをこの記事では挙げています。

1冊目:Linear Algebra Done Right (Sheldon Axler著)

行列式や行列を先に、その後ベクトル空間を・・・という「昔ながら」の教え方が、線形代数の初学者が躓く原因だと主張しています。この本は逆の順番で解説しており、驚くほど直感的に、そして明快なものになっているそうです。
「私もこの本で線形代数を学べていたら・・・(仮定法過去)」とぼやいています。
Amazon.co.jpでも買えますが、eBookで差し支えなければSpringerのサイトで買うのが良さそうです。(7月末まで約半額!?)

また著者のサイトに内容について詳しく書いてあるそうです。中国語版も出ているようですね、日本語版もぜひ欲しいところ・・・。

2冊目:Probability: For the Enthusiastic Beginner (David Morin著)

機械学習書籍の多くは、確率論に関する解説が不正確で、密度関数と離散分布がごちゃまぜになっているなど、まず確率論をきちんと知らないと読みすすめることすら難しい、と嘆いています。
この本は、確率論を詳細に数学的に、それでいてわかりやすく教えてくれるものだそうです。これまで確率論に触れたことがない人にもぴったりとのこと。
Amazon.co.jpでこれも買えますね。Kindle版なら1000円でお釣りがきそうです。

また、確率に関して概要を紹介する記事を筆者(この記事の)が書いたそうで、これも紹介されています:

3冊目?:Multivariate Calculus by Denis Auroux (MIT OpenCourseWare)

本じゃないわコレ。という筆者の詫びはさておき、MITでの多変数微分積分学の実際の講義を録画して一般公開したものだそうです。筆者の知る限り、これ以上に良い教材はないとのこと。
全講義内容は以下から:

ただし、この講義ではニューラルネットワークの基礎となる勾配下降アルゴリズムに関する解説が無いため、この部分については筆者が別途書いた以下の記事などをご参考に、とのことです:

4冊目:Grokking Deep Learning (Andrew Trask著)

今回紹介した5冊の中でも筆者の一番のお気に入りで、もし1冊しか読む時間を取れないならこの1冊だけは読め、とまで言っています。
ニューラルネットワークの中身についてハンズオン形式で紹介しており、コードスニペットも全部用意されているとのこと。
あまり高度な数学には立ち入らないにも関わらず、この本を読み終える頃には、世の中のデータサイエンティスト・機械学習エンジニアやデベロッパの95%よりもディープラーニングの数学を知ったことになる、そうです。すごい。
そして朗報:日本語版があります!

また、ニューラルネットワークを学ぶにはスクラッチで作ってみるのが一番!ということで、NumPyだけを使って畳み込みネットワークを構築するガイド記事も紹介されてます。例によって筆者の記事です:

5冊目:Deep Learning (Ian Goodfellow, Yoshua Bengio, Aaron Courville著)

ここまでに学んだ内容がすべて集結。数学理論から、畳み込みネットワークや回帰型ネットワーク、オートエンコーダといったディープラーニングのあれこれに至るまでの頼れるガイドとなることでしょう。
そしてこのガイドが何より素晴らしいのは、誰でもオンラインで無料で読める!というところ:

ただし今回挙げている書籍の中では一番内容が難しく、特に確率論的な視点が身についている必要があるとのこと。
ある問題を確率や統計の目線に落とし込む考え方については、初学者にもわかりやすいように重要な点を詳細に記載したガイド(もちろん筆者の記事)があるので、よろしければご参照ください:

Let's get to learning!

有用な情報をまとめてくださった筆者に感謝。

余談ですが

Grokking Deep Learningと同じシリーズで、深層強化学習バージョンも出ているようです:

eBook版なら輸送料かからないので、買おうかな・・・
(なおAmazon.co.jpでは9月発売予定で予約受付中になってます。原語版。)