見出し画像

書評:Pattern Recognition and Machine Learning

Pattern Recognition and Machine Learningはマイクロソフト社の研究者であるChristopher M. Bishop氏によって著された機械学習の世界では超有名な参考書です。
和訳本は「パターン認識と機械学習上: ベイズ理論による統計的予測」として出版されており,通称「PRML」や「黄色本」と呼ばれることが多いです。
2016年頃にAI研究をすることになった際にいろいろな知人から「黄色本読んだ?」,「PRML読んだ?」と聞かれたので,本の存在はその時から知ってはいました。
ですが,同時に「あの本は難易度が高すぎる」,「初心者が手を出すべきではない」との意見も多数見受けられたので,まだ読むべきではないなと判断しました。
さらに2017年に転職してAI研究する必要がなくなったため,ますますこの本から遠ざかっていたのですが,ずっと気にはなっていたので,2022年になってから読むことにしました。
雑に読み進めてしまった部分もありますが,一応通読し,演習問題を全て解きました。
以下はあくまで個人の感想ですが,今後Pattern Recognition and Machine Learningを読もうか検討されている方に少しでも参考になれば幸いです。

実践書ではなくあくまで理論書

PRMLは機械学習の背後にある統計・確率論の理論を詳細に説明した理論書になります。
何かしらのプログラムを用いて実際に実装する方法を学べる実践書ではありませんので,そのような目的でPRMLに手を出すと正にチンプンカンプンかと思います。
どちらかというと機械学習をこれから学びたい人の多くは,いきなり背景理論を学びたいという方は稀で,まずは実際にどうすれば機械学習を実行できるのかを修得されたい方が殆どかと思います。
そのため,PRMLは「既に実務で機械学習をある程度使っており,そういえばこれらの手法ってどういう理屈で成立しているんだろう?」と疑問に思い始めた方にちょうど良いかなと思います。

日本語版 vs 英語版

ありがたいことに本書には日本語に翻訳されたものがありますが,よほど英語が苦手でない限りは英語で書かれた原書を読んだ方が良いと思います。

まず,なんといっても原書は無料で読めることが挙げられます。

https://www.microsoft.com/en-us/research/people/cmbishop/prml-book/

一方,日本語版は上下巻で15,730円するみたいです。

中身を確認せずに購入するには中々ハードルが高い値段かなと個人的には思います。
なので,日本語版を読むにしても,まずは英語版を見てどんな感じの内容かイメージをつかんでから購入すべきか検討されると良いかなと思います。

また,著者は英語を母国語とする方なので,著者の生の言葉をなるべくそのまま理解するのも有益かと思っています。
個人的には読みやすい英語だと感じましたので,多少英語に苦手意識がある方でも意外と問題なく読めると思います。

英語版の注意点としてはいくつか数式の誤植があることが挙げられます(とはいえ,700ページを超える参考書としては恐ろしいほどに少ないですけど)。
そのため,式展開が追いきれなかったり何かおかしいなと感じたら,インターネットで調べてみることをお勧めします。
ちなみに日本語版を読んでいないので,日本語版でどの程度誤植が修正されているかは把握していません。

難易度

個人的には,決して簡単とは言えないけれども,そこまで難解でもないなと感じました。
著者自身も冒頭で「機械学習の入門書」として位置付けており,はじめて機械学習を学ぶ人が読者であることを想定した配慮を随所で感じました。
そのため,決して機械学習の上級者になってから初めて手を伸ばすべき本ではないと思います。

どうやらPRMLを難解と感じるかどうかのポイントとして,どの程度数式の展開に慣れているかがありそうです。
確かに大学時代や業務で数式を扱ってこなかった方からすると,かなり面食らう内容かと思います。
必要となる数学の知識は大まかに以下の通りです。

  • 多変数関数の偏微分,積分

  • 線形代数

  • 変分法

これらの数学を本当の意味で修得しようとするとそれはそれで大変ですが,PRMLを読み進めるという観点ではこれらのうち必要な知識のみをつまみ食いすれば十分です。

数式展開を追うべきか

そもそも式展開を追うべきか?と疑問に思われる方もいらっしゃるかと思いますが,理論を理解するためには必須であると個人的には思っています。
数式は理論を表現・説明する言語のような役割を担っていると見なすことができます。
式展開を追うことは,文章を読解する際の「行間を埋める」作業に似ていると思います。
行間に隠された内容も理解しないと文章を十分に理解できないのと同じように,式展開を追えていないと理論を十分に理解できないような気がします。
文章を書き続けると文章力が向上するように,式展開を追い続けると計算力が向上していきます。

どの程度理論を理解すべきかは,人によって変わってくるかと思います。
あくまで誰かが考案した理論や手法を応用することに終始するのであれば,理論をそこまで深く理解する必要はないかもしれません。
ありものの手法の背景理論は理解していなくとも,それらの性質を経験的に理解して上手に使いこなすことができれば十分という考えもあるかと思います。
一方,独自の理論や手法を開発するレベルを目指す場合は,少なくとも既存理論の式展開を追える程度に計算力がないと話になりません。

ベイズ理論に興味がなくても読む価値あるか

邦題では「ベイズ理論による統計的予測」が副題として追加されたこともあり,7割~8割はベイズ理論にページが割かれています。
逆にいうと2割~3割はベイズ理論以外の内容を学べる構成となっています。
ですが,ベイズ理論に興味がない方があえてPRMLを読むメリットは少ない(もっと適した本があるはず)かもしれません。

個人的にはベイズ理論を使う立場でもベイズ理論に特別興味があったわけでもないのですが,PRMLを読んで有益だったと感じています。
機械学習におけるベイズ理論とは,「確率モデルのパラメータもある確率分布の変数と見なし,観測データを通じて得られたパラメータの事後分布を用いるための理論」と理解しましたが,「確率モデルのパラメータもある確率分布の変数と見なす」発想が興味深かったです。
「パラメータの確率分布」を仮定することにより,パラメータが実質ある範囲の値しか取れないような正則化が課されることになりますし,確率分布を通じてパラメータの不確かさを評価することができます。
ただし,「パラメータの確率分布」としてどのような分布を用意すべきかは良く理解できませんでした。
実践的にはこの場合はこの分布といったノウハウが存在するものはいいのですが,必ずしも適切な「パラメータの確率分布」を設定できるとは限らないのかもしれません。

演習問題

各章に豊富な演習問題が設けられており,それらを解くことで計算力や理解を向上させる狙いがあることが伺えます。
そのため,演習問題もできる限り解いてみることをお勧めします。

解答例をnoteに挙げてありますので,よろしければ以下をご参照ください。

この記事が気に入ったらサポートをしてみませんか?