PRML Wednesday (平日読書会) と読み始める人のための参考リンク集

毎週決まった平日の夜に 「機械学習パターン認識」(PRML) を読み進めようという PRML Wednesday のキックオフにのこのこ顔を出してきた。主催の naoya_t さん&参加者のみなさん、お疲れ様でした&ありがとうございました。


ほとんど初顔の方ばかりの中で好き放題しゃべってしまい。まあ例によって反省はしていないのだけれど(苦笑)。


会であれこれ言ったこと(めんどくさいので、ここでもう一度繰り返すことはしないw)はあくまで「素人から出発して PRML をひと通り読み終わった個人が、その経験から感じたこと」であり、絶対の正解なんかではない。
気に入らなかったら「なるほど、お前の中では(ry」で片付けて欲しい。勉強なんて続かなかったら意味が無いので、自分が続けられる方法やスタンスを模索して選びとっていかないとしょうがないのだから。


PRML Wednesday にはたぶん毎回は参加しないで、時々顔を出す感じで行こうかなと思っている。まあ 2 章や 3 章はアンチョコ(後述)があって、しかも読んだことのある人間が1人でもいれば、フォローを必要とする事態にはあんまりならないと思う。
次行くのは……ロジスティック回帰とか? って、ちょっと先すぎる? じゃあ、もうちょっと手前のどこかでw ロジスティック回帰も言っときたいことはだいたい gihyo.jp の連載(これも後述)の方で書いたんだけどね。


会の冒頭の自己紹介で、全員「あなたと PRML 」を語るようにと naoya_t さんからムチャぶりされ、一瞬「なにそれ1時間ほど語っていいの?」と誰もの頭をよぎったことだろう。
残念ながらきっとそんなわけないので、「こんなん書きました」と PRML の薄い本を見せてお茶を濁したわけだが。
PRML を読んできた履歴はまさに今見ているこのブログにだいたいまとまっている。初心者時代から振り返ってみるのもこれから PRML と戦おうとしている人の参考になるかも。


naoya_t さんの PRML 読書会(初回レーン)が始まったのが4年前。その第3回から参加した。

「確率分布ってどうにも苦手」「解析と線形代数すっかり忘れてる」と微笑ましいことを書いている。まあそうは言っても「腐っても数学科」というやつで、思い出して現役の頃のように行列計算とかできるようになるのにそれほど時間はかからなかった。
が、確率分布の苦手っぷりは謙遜抜きの本物で、特に事前分布は本気でわからなくて、ずいぶん苦しんだ。
今でこそドヤ顔であれこれ語っていてウザイが、最初はそんなもんである。


完全に理解したわけではないにせよ苦しみを脱出し始めたのは、読み始めてからもう1年近くたって、読書会がようやく 10章に差し掛かった頃。
ちょうどそのすぐ後、PRML 復習レーンが始まるというので、宣伝っぽく書いたエントリがこれ。

上の参加初回エントリの 10ヶ月後に「極論、PRML は全編にわたってこの加法定理、乗法定理を繰り返し繰り返し使っているだけである」みたいなことを言えている。
逆に言うと、この程度の理解にたどり着くまでに10ヶ月かかっている。それより短い期間で一定の理解に達したら n_shuyo より頭良さそう。


これもちょうど同じ頃の話だが、とある勉強会で PRML の勉強に使っているノートを広げてて、そんなノート作ってるのかとびっくりされたことがあって。いや逆にどうやってノート作らずに勉強しているんだろうと、びっくり。

この記事でも言っているが、ガウス分布の式はこれまでにもう100回くらいは書いている気がする。あとディリクレ分布も。
その後、社内で PRML 読書会を行うことになったのだが、その時は「担当は自分の作ったノートを見てしゃべれ! 本(PRML)を持つのは禁止!」と言い渡した。


ノート以外では、とにかくコードを書くのは大好きというか全く苦にならない人なので、PRML で実装しまくっている。

これは PRML を読んだ人の中でも比較的多いほうだろう。
こんだけ実装しまくっていると、「やっぱり本当の理解のためには実装しないとダメですかねえ」的な相談をちょいちょいされるので、「うん、実装してみたらいーんじゃあない?」と気楽気軽に答えていたが、最近心を改めた。


もともと機械学習や確率・統計をやったことがない人が PRML を読んで理解するのは大変だと思う。
ただ、「いくら勉強してもわかるようにならない」というのが 1 ヶ月や 3 ヶ月くらいの話だったら、「そりゃあそうだ」としか言ってあげない。それは才能うんぬん以前に時間が足りてない。
社会人、特に家族持ちだと、まとまった勉強時間を継続して取り続けるのは本当に困難だから、何がしかの方法でちょっとでも応援出来ればと思っている。


あんましまとまってないが、あとはこれから PRML を読む人の参考になりそうなリンク集。

PRML - 機械学習の「朱鷺の杜Wiki」 / 日本語版サポート情報
http://ibisforest.org/index.php?PRML#about


PRML を読むにあたっては、初めにここにある正誤表を必ず反映させる
PRML は比較的新しい版でもかなり多くの間違いが残っている。すでに指摘済みの間違いに気づかず悩むのは、時間の無駄。
正誤表はそこそこ高い頻度で更新されているので、章が変わるたびにその章の内容をチェック&反映させるくらいがいいと思う。


同じ「朱鷺の杜Wiki」の中にある PRML のコース分けは、内容を節ごとに難易度レベル付けをした情報。

読んだことのある人にアドバイスやフォローをもらえるのが一番だが、身近にそう言うことを頼める人がいない場合はこの情報も大変参考になるだろう。
PRML は分量のある本であり、全てを読破するのは相当なエネルギーと時間が必要となってしまうので、例えばまず易しいと言われているところから手を付ける、あるいは難しいと言われているところは軽く音読だけで済ませる(出てくる用語を耳にしたことがある状態にはしておく)、といった方針で進めるという手もあるだろう。

PRML アンチョコ / 「機械学習パターン認識の学習」(PRML同人誌) の PDF 版
https://github.com/herumi/prml/raw/master/main.pdf

サイボウズ・ラボの社内 PRML 読書会で行列計算に苦しむメンバーのために、同僚の光成さんがメモとして起こしたのがこのアンチョコ。
某黒幕の手にかかって、かの暗黒通信団から「機械学習とパターン認識の学習」という書籍として出版され、ジュンク堂やアマゾンで購入可能になっているが、もともとは PDF で無料公開(CC-BY ライセンス)されているものである。
フォローされている範囲は 2〜4 章と 9 章 10 章。社内勉強会で中心的に勉強した中で、計算の重要度が高い範囲となっている。後は 5 章の補足も追加されている(書籍の第2版で追加された範囲)。
ちなみに、PDF を生成するための元 tex ファイルもこちらで一緒に公開されている( main.tex )。需要は正直なさそうだが、一応紹介。

ある程度自信のある人ならどうしてもわからないところを辞書的に見る。自信のない人は一度目はこのアンチョコを首っ引きで見てノートに数式を書き下し、二度目は見ないで自力で解く。
というのがお勧めパターンだろうか。誰ですか、今「えー2回もやるの?」って言った人。

機械学習 はじめよう:連載|gihyo.jp … 技術評論社
http://gihyo.jp/dev/serial/01/machine-learning

手前味噌で申し訳ないが、gihyo.jp で書いている機械学習連載。
ここだけのハナシ、実はこの連載は PRML 1 章から 4 章の範囲に対応している。シンクロしているわけではないのでアンチョコ的には使えないだろうけど。

PRML 4章「線形識別モデル」

この連載は、自分が門外漢の状態で PRML を読んだときに「なんでこんなことするんだ(してもいいんだ)?」と感じたことを 1 つずつ 1 つずつつぶしていっている。
ので、PRML を読む前にこの連載を読んで、引っかかりそうなところを先につぶしておき、読みながらわからないところ(計算)があったらアンチョコでチェックする、という補完する感じで使ってもらえたら、と思う。


ちなみに予定通りに行けばあと 2 回か 3 回で連載終了。PRML 網羅してくれと言われても大変すぎるのでホント勘弁。連載の1回分書くのに1ヶ月とかザラにかかるんで……。