動機
いわずもがなですが、機械学習の勉強にはとても時間が掛かります。
でも、同じ勉強時間を費やしたとしても、教材の良し悪しで捗り方が大きく変わってくることは、誰もが実感していることだと思います。
そこで、本記事ではテーマごとに私が考える最強の教科書をリストしていこうと思います。
ディープラーニング(アルゴリズムの理解)
「Deep Learning」An MIT Press book, 2016/12 発行
http://www.deeplearningbook.org/
印刷本も売られてますが、上のWebページでいつでもタダで読めます。(版権上の問題でPDFの形では配布できない&してないそうです)
この本は、ここ数年のディープラーニングの進歩のうち研究者の間ではメジャーとなっているであろうテーマはすべて書いてある、ともいえる内容の広さがありつつ、それぞれのテーマについて理論的背景と具体的な数式や実装面での留意事項といった内部詳細まで踏み込んだ話が書かれているのが特長です。
日進月歩で体系的にフォローするのが難しそうなディープラーニングについて、「とりあえず専門家の間で定番となっている話くらいは体系的に把握しておきたい」という場合は本書は絶好の教科書です。
(2018/2/23 追記)
本書の日本語訳プロジェクトが進められてて(現在は非公開ですが)、後日公開されるようです。とても楽しみですね。
https://www.deeplearningbook.me/
ディープラーニング(実装の理解)
ディープラーニングを実装する際、何らかのフレームワークを使うと思いますが、2018年初頭現在、TensorFlow+Kerasがよく使われているようです。日本のPFN社のChainerも人気がありますね。
では「教科書・勉強法」という本記事の主旨にあうフレームワークは何でしょう? それはPyTorchではないかと私は思います。というのも、最近はディープラーニングの研究者の多くがPyTorchを使って研究を行うようになっており、論文公開と同時にPyTorchで書かれたソースが公開されたり、また有志によってPyTorchによる実装が共有されたりする例がとても増えてきているのだそうです。
そうした情報をキュレーションしてくれているページがこちらです。
https://github.com/ritchieng/the-incredible-pytorch
論文よりもソースコードで示されたほうが理解しやすいタイプの人にとっては、そうした最新の動向をgithub上で共有されるPyTorchソースを読むことでキャッチアップしていく方法は合っているかもしれません。
R言語を使った実践的なデータ探査
「R for Data Science」
http://r4ds.had.co.nz/
これも印刷本がオライリーから販売されてますが、上のWebページでいつでもタダで読めます。
この本はR言語のパッケージ開発の神的存在であるHadley Wickham氏らによって書かれたもので、機械学習によるモデリングを行う前のプレスタディや可視化といったいわゆる**データ探査(Data Exploration)**を最新のR言語のパッケージ群であるtidyverseを使ってサクっとやる方法について書かれた教科書です。
dplyr, tidyr, ggplot, etc.といったモダンなRパッケージとその実践的な使い方について体系的に学びたいときには決定版とも言える教科書です。
機械学習の実践事例
KaggleコンペティションにおけるWinner'sインタビュー集
http://blog.kaggle.com/category/winners-interviews/
機械学習はアカデミックな研究や理論的な知識の世界と、ノイズ混じりでドメイン知識依存も大きい実問題でどう実践するかのノウハウと、その2つの間に知識の隔たりがあると思いますが、後者の実践ノウハウを学ぶ上で上のWebページに掲載されているインタビュー集は絶好の教材です。
終わりに
本記事は随時更新予定です。良い勉強テーマとそれに対する良い教科書の組み合わせについて、情報ありましたらぜひコメントください。良さそうな教科書は(筆者の独断と偏見で)本リストに追加します。