PRML の読む章・飛ばす章(私家版)

機械学習の定番教科書の1つと言われ、各地で読書会が開かれる「パターン認識と機械学習」(PRML)。読み解くにはある程度の解析と線形代数の知識が必要なため、数学が苦手な学生さんや××年ぶりに数式を目にしたというエンジニアたちを次々と「式変形できない……」という奈落に叩き込んでいるという。
サイボウズ・ラボの社内 PRML 読書会でもその現象が発生。見かねた同僚の光成さんが PRML で使われている数学の解説だけではなく、PRML の中で省略されている式変形の過程も含めて書き下したメモ(社内通称:アンチョコ)が暗黒通信団から「機械学習とパターン認識の学習」という同人誌として出版され、全国のジュンク堂で購入可能となるとちょっとしたムーブメントががが。
現在はアマゾンでも購入可能となっているが、もともとのアンチョコも PDF で無料公開(CC-BY ライセンス)されているので、紙の本でないと勉強する気にならない! とかでなければ PDF 版をどうぞ。

「機械学習とパターン認識の学習 普及版」の PDF 配布ページ
https://herumi.github.io/prml/


【追記】
2017/7 に省サイズ低価格な普及版として再編集されたものが発行された。上記リンクはすべてその普及版のものに更新している。
【/追記】


さてそんな PRML 旋風も冷めやらぬ 10/11 にジュンク堂池袋本店にて、「パターン認識と機械学習」(PRML) および「パターン認識と機械学習の学習」(PRML 同人誌)のトークイベントが開かれることに。


【追記】
開催の時の模様:

風が吹けばジュンク堂で「機械学習の学習」 | Cybozu Inside Out | サイボウズエンジニアのブログ
http://blog.cybozu.io/entry/654
「今度こそわかる!? PRMLの学習の学習」に参加しました - Wolfeyes Bioinformatics beta
http://yagays.github.io/blog/2012/10/12/prml-talksession/
「今度こそわかる!? PRMLの学習の学習」ジュンク堂書店池袋本店トークセッション - Togetter
https://togetter.com/li/388657

【/追記】

  • PRML の邦訳の仕掛け人たる神嶌先生([twitter:@shima__shima] さん)
  • 各地で行われる PRML 読書会の火付け人と言っていい [twitter:@naoya_t] さん
  • PRML 同人誌(副読本)の著者である光成さん([twitter:@herumi] さん)
  • PRML 同人誌及びこのトークイベントの黒幕である竹迫さん([twitter:@takesako] さん)


という豪華顔ぶれでもう十分おなかいっぱい、著者でもないし全然出なくっていいですよねー、と話していたのに、中谷も引っ張り出されることになった。なぜだ。


ジュンク堂でのトークセッションと言えば、「Web を支える技術」出版記念の折りのトークセッションに参加したい、でも非コミュなので電話申し込みが億劫、ってへたれなことをつぶやいてたら、ほかならぬ著者の山本さんに自分の参加申し込みの電話をかけていただいてしまったのが思い出深い。また、その懇親会の席で gihyo.jp での機械学習連載のお話をいただいちゃったり。


今回はたぶん自分で電話かけなくていい(んだよね?)ので、まあ電話かけるより前でしゃべるほうが気が楽か、という自己暗示を今からかけておくことにする。
それに日本一の本屋でのトークイベントに名前を連ねると聞けば、R南高校文芸部だった頃の中谷はきっと喜ぶことだろう*1。まあ自分の書いた本じゃあないことはかわいそうだから黙っておこう。


イベントの進行は黒幕にすっかり任せてあるので、何を話すことになるか正直まだわかっていないが、まあ思いつくテーマ的なものを勝手無責任に書き並べてみる。

  • 元祖 PRML & PRML 同人誌の表話と裏話
  • PRML 読書会の勧め方と進め方
  • あなたは PRML を読まなくってもいい!?
  • PRML を数学の本って言うなキャンペーン
  • 機械学習の過去と現在と未来
  • 機械学習を使うことが目的化症候群

わあいもりだくさん。でもトークイベントたぶん正味1時間半くらいしかない。てへ。
どうせここにあげたことよりもっとずっと超絶おもしろくて役に立つテーマを竹迫さんが間違いなく考えているだろうから*2、イベントの先出しみたいな感じでこの範囲から適当に見繕ってざっくり書いてみるというのはどうか。ここでネタバレしておけばその内容は振られないだろうから、自分のしゃべる時間が少なくて済むだろうと言う計算も。


そういえば2年ちょい前に PRML 復習レーンが始まるよ、だって。 - 木曜不足 では「 PRML の歩き始め方」という記事を書いたりしていた。そこで、その第2弾で「PRML の読む章・飛ばす章(私家版)」を書いてみることにしよう。
といっても、目的やメンバーに応じて読むべき範囲いろいろ考えられるわけで、あくまでこれはサイボウズ・ラボにて行った PRML 読書会の経験に基づくもの。和書の公式サポートにあるPRML コース(レベル分け)のセカンドオピニオンといったあたりで、ご了解していただきたく。

PRML の読む章・飛ばす章(私家版)

PRML はなかなか厚みのある本なので、これを読み通すにはものすごく時間がかかる。


naoya_t さんの始めた初代 PRML 読書会は、当初は演習問題を全部解くんだ! と意気込んでいたようだが、初回で挫折。演習問題は必要に応じて適宜解くことにして、月1回、各回6〜9時間(!)を費やして、14ヶ月で全14章を読み通した。
一方、サイボウズ・ラボでの社内 PRML 読書会は、主宰の独断と偏見で全体の 1/3 は飛ばし、演習問題も必要最小限に絞った。週2回(!!)、各回1時間〜1時間半を費やして、それでも8ヶ月かかった。


光成さんも書いているが、PRML は「1行も飛ばさないで読むべし, という本でもない」ので、ちゃんと本質的なところに時間をかけて、枝葉末節は飛ばしていくことができれば望ましい。まあ、雑学は楽しいんだけどね。


そこで実際にサイボウズ・ラボでの社内 PRML 読書会において、どこを読んで、どこを飛ばしたか、そしてその理由をつらつら書いてみよう。
実際にはもっと細かく「この節は読まなくていい」「この数式は示すの面倒だし、あまり本質的でもないので、書いてあることを信じてもらえば十分」とかいう調子でやったのだが、そこまで事細かくするのはさすがに汎用的ではないので、ざっくりした単位で記す。


1章:いきなりだがほとんど飛ばした。PRML を始めるというタイミングで読む意味があるのは 1.2 から 1.2.3 までだけ。できれば 1.2.3 はわかっている人による補足を聞ければ嬉しい。1.4章 から 1.6章は重要ではあるが、まだ何のモデルも勉強してない状態ではちんぷんかんぷんだろう。KL ダイバージェンスもちゃんと使うのは9章から。これらは4章より後に読む方がいい。


2章:当然もちろん読んだ。特に重要なのが 2.3章ガウス分布。ここの計算は大変かもしれないが、さぼらずやり抜いておきたい。(共役)事前分布についての説明が不足しており(ベイズの本なのに!)、初読の際は正直全くわからなかった。読書会であれば、わかっている人によるフォローが是非欲しいところ。2.4 章以降は目を通すくらいで済ませたが、指数型分布族はちゃんと読む機会を設けたほうが良かったかも。


3章&4章:読んだ。機械学習では、線形回帰やロジスティック回帰のような基礎的なモデルは、要不要に関わらず一通り押さえておくべきと考えている。4.4 章からのベイズロジスティック回帰をラプラス近似で解く話は少々難易度が高いのと、実際の問題でベイズロジスティック回帰が出てくるとしたら「ロジスティック回帰をサンプラーで解きたいからベイズ化した」というパターンがきっと多そうで、ってことはラプラス近似とか使わないから、余力次第で飛ばしてもいいかも。


5章:サイボウズ・ラボの読書会では飛ばしたが、目的に適えば読むのも良いだろう。ヘッセ行列についての説明がこの5章にしかないので、本当はそこだけ読みたかったのだけど、周りと密結合していて取り出して読むのが難しく、断念。ディープラーニングとか自分で実装したかったらこの章に書いてあることくらいわからないと厳しいだろう。ただしニューラルネットワークの専門の本を探して読むほうが適している気もする。


6章&7章:飛ばした。6ç« 7章は残念ながら必要なことが網羅されていないので、カーネル法をやりたければ 「カーネル多変量解析」または「カーネル法入門」を、SVM をやりたければ「サポートベクターマシン入門」(通称赤本)を読むべき。7.2 章の RVM は、まあ、多分いらないので気にしなくていい*3。


8章:読んだ。読むべき。PRML を読む値打ちの半分はグラフィカルモデルにあるので読まないという選択肢がない。あ、そうそう。下巻 p89 の「 head-to-head で観測時に独立性が失われる例」は間違ってはいないが、あまりに非現実的で例の意味をなしていないので、PRML 8.2章「head-to-head が観測されたら独立性が失われる」のもっとわかりやすい具体例 - 木曜不足 を見てね。


9章&10章:一通り読んだ。PRML で一番計算が大変な章だが、これをこなせれば多くの機械学習論文の計算についていける。EM と VB というメジャーな推論手法を押さえておくという意味でも読む値打ちはあると思う。


11章:読んだ。サンプリング法が要らないなら読まなくてもいいかもしれない。ただ、PRML という確率でベイズな本をわざわざ読んでおきながら、高次元空間上での積分や推論に役立つサンプリング法を避ける理由がちょっと思いあたらない。11.5 のハイブリッドモンテカルロは飛ばしてもいいかもしれない。温度に関する言及が全く無かったり、全般に熱統計力学周りは怪しい(らしい)ので、本格的に必要なら他のちゃんとした本、例えば「マルコフ連鎖モンテカルロ法とその周辺」などを読んだほうがいい。


12章:飛ばしたが、目的に応じて判断。サイボウズ・ラボでは、機械学習の応用先として言語処理が第一にあったので、PCA は特には不要だろうと。(追記) SVD, LSI, pLSI は別途読んだ。


13章:読んだ。言語処理での応用目的なら隠れマルコフはやはり外せないだろう。言語処理でなくても、マルコフ性は多くのモデルで用いられる重要な仮定なので、読んでおいて損はないと思う。13.3 の線形動的システムは言語処理でほとんど用いられないのでざっくり紹介にとどめたが、分野によっては超重要だろう。が、状態空間モデルの文脈で語っているために、記法や導入がメジャーなものとは異なっているらしいので、要注意。


14章:アンサンブル学習と決定木についてのアラカルト。どれも一通り押さえておきたいトピックスではあるが、通り一遍のことしか書かれていないので、さっと目を通す程度で読んだ。つもりだったが、この前「えー読書会では14章読んでないですよ〜」と言われた。あれ〜?


繰り返すが、「独断と偏見」成分も多いので鵜呑みにしないように。
読書会ならば、PRML をすでに読んだ人に参加者とその目的にあわせて読む範囲を相談できれば一番いいだろう。

*1:いや、それくらい当然という顔をするのかもw

*2:トークイベント参加を無茶振りされた仕返し

*3:ヒント:RVM の Tipping さんは Bishop 先生と同じ MSR の方