これからはじめる人のための機械学習の教科書まとめ

最近では企業における機械学習の認知度も高まっていてエンジニアの求人募集でも「望ましいスキル:機械学習」というのをよく見かける。特にweb系の企業だと当たり前のように機械学習を活用した魅力的なサービスが生み出されているようだ。
そんなわけで先日書いた機械学習の入門記事もそれなりに好評で末尾の教科書リストも結構参考にしていただいた様子。ということで、これから機械学習をはじめる人のためにオススメの教科書を10冊ほどピックアップしてみた。
幸いにして機械学習の分野には良書が多い。5年前はナイーブベイズすら知らなかった私も、これらの教科書のおかげでなんとか機械学習を使えるようになりました!(個人の体験談です。効果には個人差があります)

参考:
機械学習超入門 〜そろそろナイーブベイズについてひとこと言っておくか〜 - EchizenBlog-Zwei


最初に既存の機械学習の教科書まとめを挙げておくので、併せて参考に。

broomie.netは@kimurasさんが書かれているブログで機械学習入門のための記事が豊富で非常に有益。朱鷺の杜は機械学習に関する情報が纏まっている有名かつ優れたwiki機械学習をやる上では何度もお世話になる。入門者には難しい説明も多いかもしれないけど是非押さえておきたい。自然言語処理をやりたいよ、という方は@mamorukさんの生駒日記にまとめがあって、ここで紹介されている教科書はいずれも良書なのでオススメできる。機械学習amazonリストはいくつかあるが@kashi_pongさん、@sleepy_yoshiさん、@nokunoさんのものが特にオススメ。

さて、ここからが本題。入門用ということを考慮して日本語もしくは和訳された教科書で、個人的に分かりやすいと感じたものを10冊挙げておく。以下、読むと良い順番に教科書を列挙しつつ何が学べるのか?その教科書の特徴は?などを簡単に説明していく。

1. 情報検索と言語処理(徳永 健伸, 辻井 潤一)
通称:徳永本。機械学習は情報検索や言語処理で使われることが多い。なので機械学習を始める前に本書を読んでおくのがオススメ。私が就職して最初に読んだのがこの本。非常に分かりやすく、必要なことが過不足なく書かれている。本書で学んだことは今でも業務にものすごく役立っている。機械学習の本ではないのだけれど、それ故に微積や確率に関する知識が無くても読めるため入門用に最適。


2. わかりやすいパターン認識(石井 健一郎, 前田 英作, 上田 修功, 村瀬 洋)
機械学習について書かれた本では一番読みやすい。機械学習には確率を使うものと、そうでないものがあるのだが本書はそのどちらもカバーしている。確率をつかわない識別関数の初歩であるパーセプトロンと確率を用いたモデルの初歩であるナイーブベイズが非常に丁寧に解説されている。またコラムが豊富に挿入されているので機械学習の世界観(?)に親しむという意味でもオススメ。


3. サポートベクターマシン入門(Nello Cristianini, John Shawe‐Taylor)
通称:赤本。確率を使わない機械学習である識別関数の代表格といえばサポートベクターマシン(SVM)。本書はSVMの優秀な入門書。簡単にSVMを説明すると単純な識別関数であるパーセプトロンをベースにカーネル法とマージン最大化という考えを加えたもの。本書はこの3要素のそれぞれについて詳しく解説している。理論だけでなく実装についてもサンプルコードを交えて説明されているのでわかりやすい。パーセプトロンのサンプルコードもついている。唯一の欠点は翻訳の質が大変よろしくないこと。英語に自信のある方は是非原書を。


4. カーネル多変量解析(赤穂 昭太郎)
SVMの重要な要素であるカーネル法に関する本。必須ではないがカーネルに興味を持ったら是非。本自体は非常にわかりやすい。


5. 学習理論(高橋 治久, 堀田 一弘)
SVMはマージンを最大化すると未知のデータの分類性能がよくなるよ、という理論に基づいている。そのよくなるよ、の理論が学習理論。私は本書はきちんとよんでいないのだけれど読んだ人からは軒並み高評価だったので挙げておく。


6. 統計学入門(東京大学教養学部統計学教室)
識別関数に飽きたら、そろそろ確率を使ったモデルを学びたいところ。といっても確率嫌いだし、という人も多いと思う(というか私のことだ)。そんな人は本書がオススメ。確率統計は慣れていない人には直感に反する事柄もおおいのでキチンと勘をやしなっておきたい。本書は練習問題も適切なのできちんと読めば大変、力になると思う。


7. 言語処理のための機械学習入門(高村 大也, 奥村 学)
通称:高村本。最近の機械学習の本では特に良書なのがこれ。SVMのような識別関数から確率を使ったモデルまで幅広く扱っているのと、他書ではあまり書かれていない実装面でのポイントが詳しく書かれているのが特徴。特にEMアルゴリズムやCRFについては本書が圧倒的に分かりやすい気がする。


8. 確率的言語モデル(北 研二, 辻井 潤一)
本書は高村本と併せて持っておくと良い本。高村本と扱っている範囲は似ているが本書は実装面であまり詳しくない。一方で言語処理面では大変に詳しく扱っていて言語モデルを使った何かをしたいのであれば本書を読むのが良い。


9. 応用のための確率論入門(中塚 利直)
確率を扱うモデルには識別モデルと生成モデルというのがあって情報検索では識別モデルで充分なケースが多いのだが、より高い表現能力を求めると生成モデルを扱いたくなる。で、生成モデルをやる上で避けて通れないのが確率過程。ところが確率過程を学ぼうとすると測度論という大変な難関が待ち受けていて、たいてい挫折する。本書は測度論についてものすごく分かりやすく書かれているので生成モデルにきちんと向き合いたい人は読んでおくと良い。


10. パターン認識機械学習(C. M. Bishop)
機械学習分野では大変有名な本。ビショップ本とかPRMLとか呼ばれている。識別関数、識別モデル、生成モデルすべてについて体系的に説明されてて非常に為になる。全てのページが見所と言ってもいいくらいで読むたびに新発見がある(私のレベルが低すぎるというのもあるんだけど)。生成モデルでは必須となるベイズ的な考え方を身につけるには本書を読むのが良いと思う。機械学習をやるなら一度は読んでおきたい。