old school magic

機械学習に関する備忘録です。

機械学習を初めて勉強する人におすすめの入門書

概要

私が機械学習の勉強を始めた頃、何から手を付ければ良いのかよく分からず、とても悩んだ覚えがあります。同じような悩みを抱えている方の参考になればと思い、自分が勉強していった方法を記事にしたいと思います。

目標としては、機械学習全般について、コンパクトなイメージを持てるようになることです。
そのためにも、簡単な本から始めて、少しずつ難しい本に挑戦して行きましょう。

入門書

何はともあれ、まずは機械学習のイメージを掴むことが大切です。
最初の一冊には、フリーソフトでつくる音声認識システムがおすすめします。

フリーソフトでつくる音声認識システム - パターン認識・機械学習の初歩から対話システムまで

フリーソフトでつくる音声認識システム - パターン認識・機械学習の初歩から対話システムまで

レビュー : 「パターン認識と機械学習」への遠回り その1 「フリーソフトでつくる音声認識システム」 - old school magic

この本は二部構成なのですが、第一部に機械学習についての簡潔なまとめがあり、これがとても良くまとまっています。(第二部が音声認識についてです。)
必要な数学レベルも高校程度なので、簡単に読めるのではないかと思います。


機械学習に関する簡単なイメージを持てたら、機械学習を全般的に扱っている入門書に進みましょう。
二冊目には、はじめてのパターン認識をおすすめします。

はじめてのパターン認識

はじめてのパターン認識

レビュー : 「パターン認識と機械学習」への遠回り その3 「はじめてのパターン認識」 - old school magic

本書では機械学習に関するトピックを幅広く扱っていて、話の進み方や式の導出等、わかりやすく進んでいきます。一冊目よりは数学の知識が必要になって来ますので、もし数式で躓いたら数学書(後述)を随時参考すると良いと思います。

この本を使って勉強会をしたことがあるのですが、特に

の3つがつまずきやすいポイントのようです。私もここでつまずきました。

最尤推定について、まず尤度が良く分からない、という意見が多かったです。
尤度については次の記事が分かりやすいのではないかと思います。
尤度とは何者なのか? - MY ENIGMA

主成分分析線形代数の分野なので、後述するキーポイント線形代数を読んでから勉強すると理解しやすいと思います。

EMアルゴリズムについては、東京工業大学の杉山先生の解説が分かりやすいのではないかと思います。
情報認識 - TOKYO TECH OCWの第10回です。


三冊目には、二冊目でカバーできなかったところを中心に解説してる本をオススメします。
データ解析のための統計モデリング入門は、見かけこそごついですが、とても説明が丁寧で分かりやすい本です。

レビュー : 「パターン認識と機械学習」への遠回り その7 「データ解析のための統計モデリング入門」 - old school magic

「はじめてのパターン認識」でも確率モデルの話題があったように、機械学習の分野では統計学が大きな役割を果たします。本書ではそこを重点的に学びます。
この本で扱っているモデルを一般に「生成モデル」と呼びます。(「はじめてのパターン認識」で扱っていた、線形識別関数やSVM等は、「識別モデル」と呼ばれています。)
また、この本では主に「回帰」問題を、「はじめてのパターン認識」では主に「分類」問題を扱っています。*1そういった意味でバランスが取れているのではないかと思います。*2

この本を読むにあたって、確率や統計学の知識があったほうが読みやすいと思います。後述する統計関連の本(後述)を随時参考すると良いと思います。

数学の入門書

機械学習の分野では、微積線形代数など、様々な数学が必要になって来ます。
数学については人によって事前の理解度が異なると思いますので、勉強中に数式に引っかかるようになって来たら、数学書を参照すると良いでしょう。

私のオススメはキーポイントシリーズです。

キーポイント線形代数 (理工系数学のキーポイント 2)

キーポイント線形代数 (理工系数学のキーポイント 2)

キーポイント微分積分 (理工系数学のキーポイント 1))

キーポイント微分積分 (理工系数学のキーポイント 1))

レビュー : 「パターン認識と機械学習」への遠回り その4 「キーポイント線形代数」 - old school magic
特にキーポイント線形代数は、数ある線形代数の入門書の中でも、イメージしやすいという点で良書だと思います。

また、本書もトピック毎によくまとまっていてオススメです。

統計学のための数学入門30講 (科学のことばとしての数学)

統計学のための数学入門30講 (科学のことばとしての数学)

統計学の入門書

統計学機械学習において重要なのですが、機械学習の本の中で統計学をしっかり説明するだけの余白はありません。
ならばいっそのこと、統計学そのものをしっかり学んでいきましょう。
次の二冊は、統計学の入門書の入門書、といったレベルですが、機械学習の本を理解する上で確実に役に立ちます。

キーポイント確率統計 (理工系数学のキーポイント 6)

キーポイント確率統計 (理工系数学のキーポイント 6)

レビュー : 「パターン認識と機械学習」への遠回り その5 「キーポイント確率・統計」 - old school magic

「パターン認識と機械学習」への遠回り その6 「図解・ベイズ統計「超」入門」 - old school magic

自然言語処理

自然言語処理においても、機械学習が用いられています。特に、離散値系列データを扱うので、今まで読んできた本(連続値や非系列データ)とは違う視点から勉強ができると思います。

言語処理のための機械学習入門 (自然言語処理シリーズ)

言語処理のための機械学習入門 (自然言語処理シリーズ)

レビュー : 「パターン認識と機械学習」への遠回り その2 「自然言語処理のための機械学習入門」 - old school magic

パターン認識機械学習(通称PRML)

これまで学んできたことで、浅く広くではありますが、機械学習全般について学べたと思います。
ここから更に詳しいこと、またまだ学んでいないことを学ぶ時、PRMLが一つの選択肢になると思います。

パターン認識と機械学習 上

パターン認識と機械学習 上

パターン認識と機械学習 下 (ベイズ理論による統計的予測)

パターン認識と機械学習 下 (ベイズ理論による統計的予測)

PRMLはものすごく難しいですし、少なくとも最初に読む本ではありませんが、間違いなく良書です。特に、ベイズ理論を用いた機械学習という点においては、本書が最も良いのではないかと思います。
機械学習への理解を深めたい時、気長に読み進めると良いと思います。

PRMLは式変形の省略が多いので、次の副読本と一緒に読むことをおすすめします。

パターン認識と機械学習の学習―ベイズ理論に挫折しないための数学

パターン認識と機械学習の学習―ベイズ理論に挫折しないための数学

同書はGithubでも公開されています。
https://github.com/herumi/prml

まとめ

機械学習は広大な分野です。最初から全てを理解しようとせず、各トピック毎にコンパクトなイメージを持ちつつ、知識を上塗りして行くのが良いと思います。

また、実際にプログラミングしてみるのも良いと思います。
RやPythonMatlab等が機械学習や統計において良く使われています。好きな言語で、ライブラリ等を用いて実際に機械学習してみるだけでも理解が深まります。また、アルゴリズムを実装してみるのも理解の助けになるでしょう。

多変量解析時系列解析など、ここにある本だけではカバーしきれなかったトピックもたくさんあります。また、学習理論といった理論的な部分に挑戦してみるのもいいと思います。数学や統計の知識ももっとたくさん必要になってくるでしょう。正直私もここからが大変な気がしています。頑張ります。

*1:「はじめてのパターン認識」では分類、次元削減、クラスタリングを扱っています。

*2:生成モデル=回帰、識別モデル=分類、というわけでは決してありません。