昨今、機械学習やディープラーニングが結構浸透してきていると感じます。
しかしいざ勉強しようと思うと、必要な前提知識が結構あったり、数式が出てきたりと難しい部分もあり、
どこから手を付けて良いのか、なかなか分かりにくい分野です。
統計学や数学を真面に勉強しようと思うと、それだけで年単位の時間がかかってしまいます。
必要最低限な知識に絞って、どういう順番で何の勉強をすると学習がスムーズかを、お勧めの書籍とともに紹介したいと思います。
・前提知識:Python
機械学習の勉強する前に、先ずPythonの知識がないと厳しいです。
Pythonは、ディープラーニングのTensorFlowや機械学習のscikit-learn、統計ライブラリのpandasなど、ライブラリが豊富です。
また、多くの本はPythonで書かれているので、Pythonが読めないと辛いと思います。
・機械学習の感覚を掴む
機械学習の本がたくさん出版されていますが、先ずは全体像を掴むのが良いと思います。
この本が良かったです。
【オススメ本】実践機械学習システム
半分くらいまでは前提知識なしに読めて、しかも薄いので挫折しにくいと思います。
・統計学を勉強する
統計学は機械学習のベースになっているので、機械学習を勉強するということは半分統計学を勉強するのと同じです。
確率(条件付確率)、標準偏差、標準誤差、正規分布を理解すれば、機械学習の本がある程度読めるようになります。
【オススメ本】完全独習 統計学入門
この本を読めば、機械学習をする上で必要な最低限の統計学の知識が身に付くと思います。
【オススメ本】統計学が最強の学問である
こちらはビジネス書ですが、統計学を現実のビジネスにどのように適用すればよいかが分かる良い本だと思います。
実際にデータ解析や機械学習をやってみると、アルゴリズムの詳細より、ビジネスの現場でどのようにモデルに落とし込むかが重要だと感じました。
ベイズ統計をやりたい場合は、この本が分かりやすいです。
【オススメ本】完全独習 ベイズ統計学入門
回帰分析やロジスティック回帰などは、統計学の本でも機械学習の本でも勉強できますが、機械学習の本で勉強した方が最低限の範囲の勉強で済みます。
機械学習の本を読んでいる時に分からない統計用語が出てきたら、分からない箇所だけ統計学を勉強するやり方が楽な気がします。
・数学を勉強する
機械学習の理論や仕組みを理解する場合や、ディープラーニングを勉強するなら、線形代数と微分は必須です。
参考書だと数式を使わないで説明してくれる親切な本を探すこともできますが、ネットや論文では大抵数式で解説されています。
最低限:
- 微分、偏微分
- 線形代数(内積と外積、行列の積)
- 対数
を勉強すれば、数式が出てもほぼ読み進められると思います。
微分については、この本が良かったです。
【オススメ本】ゼロから学ぶ微分積分
微分のイメージを掴んでいると、勾配降下法などパラメータ調整の仕組みが理解できます。
最短で勉強するなら微分と偏微分だけでOKです。機械学習の入門書で積分はあまり出てきません。
線形代数については、この本がお勧めです。
【オススメ本】ゼロから学ぶ線形代数
最低限で済ませるなら行列積・内積だけを勉強して次に行ってもいいと思います。
説明の中で対数も結構使われますが、なぜ対数にするのかは理解できた方がいいと思います。
【オススメ本】Newton 対数の威力 (Kindle版)
・機械学習の理論を数学的に理解する
【オススメ本】ITエンジニアのための機械学習理論入門
機械学習理論を数学的な背景から解説する本です。とてもお勧めです。
数式をもの凄く丁寧に、Pythonと数式で説明してあって、数学が苦手でも読めました。
この本を読むと、ウェブや論文に出てくる機械学習系の数式が、大体どんなことを書いてあるのか分かるようになります。
・ニューラルネットワーク(ディープラーニング)
【オススメ本】TensorFlowで学ぶディープラーニング入門~畳み込みニューラルネットワーク徹底解説~
ディープラーニングは、もの凄い概念的か、凄く専門的な本が多い印象です。分かりやすい本が少なくて、勉強に苦労しました。
「ITエンジニアのための機械学習理論入門」で学んだ内容(最尤推定など)からCNNまでをTensorFlowで実装する方法と数学的背景を理解できます。(この2冊は同じ著者です)
ただ、今はKerasなど簡単にニューラルネットワークが実装できるライブラリが出てきているので、いきなりTensorFlowからやらなくても良いと思います。
KerasはTensorFlowと統合の流れですし、Kerasで作ったモデルデータをAppleのCoreML向けにコンバートも出来るので、今後の有望株っぽいです。
https://developer.apple.com/documentation/coreml/converting_trained_models_to_core_ml
後は、必要に応じて必要な箇所を勉強するのが良いと思います。
「落下傘方式」というらしいです。
http://tjo.hatenablog.com/entry/2014/03/31/191907
この記事で紹介しているオススメ本のリンクを以下にまとめます。
【オススメ本】実践機械学習システム
【オススメ本】完全独習 統計学入門
【オススメ本】統計学が最強の学問である
【オススメ本】完全独習 ベイズ統計学入門
【オススメ本】ゼロから学ぶ微分積分
【オススメ本】ゼロから学ぶ線形代数
【オススメ本】Newton 対数の威力 (Kindle版)
【オススメ本】ITエンジニアのための機械学習理論入門