【おすすめ書籍紹介】Machine Learning: A Probabilistic Perspective (mlapp) [機械学習テキスト]

記事を共有する:

書籍の基本情報

※ 2022年に,この記事で紹介していた mlappの著者Kevin Murphy氏から,深層学習時代の続編として,以下2冊が発売されます:

  1. Probabilistic Machine Learning: Introduction (2022年発売の初心者向けテキスト.学部の授業向け)
  2. Probabilistic Machine Learning: Advanced Topics (2023年に発売予定の応用編.大学院の授業向け)

深層学習世代の現在は,この記事で紹介するmlappよりも,アップデートされた上記2冊のテキストをオススメします.

書名Machine Learning A Probabilistic Perspective
発売年2013年
著者Kevin P. Murphy
難易度中級以上
対象読者序文に「学部上級生および大学院生前半向け」とあり,CS系学科の学部4年までに習う科目が全て身についていることが前提.

この記事が良いと思ったら,AmazonでMachine Learning A Probabilistic Perspective を見てください.

概要

本書は,当時ブリティッシュコロンビア大の教員で,この本発売当時にGoogle社に移られたKevin P. Murphy 氏による、大学院生向けの機械学習テキストである(本書の公式ページへのリンク).(2020年7月に)日本のAmazonで本書を確認すると,今でも「ベストセラー」の表示がしてあるくらい,様々な分野で多くの研究者や開発者がこの本を所持している,機械学習テキストの決定版である.

この書籍が登場する以前の機械学習テキストといえば,Bishopの「Pattern Recognition and Machine Learning (2006)」とHastieらの「The Elements of Statistical Learning 第2版 (2009) 」の2冊が,2大決定版テキストであった.統計的機械学習界隈の英語圏のトップ大学/大学院においても、この2冊が機械学習の標準テキストを2分していた (※ 英語圏の大学での機械学習の授業でのテキスト採用状況を,管理人が昔から観察していたことに基づく主観).そうした2010年代の時代背景の中で,これら2冊から対象範囲を大幅に拡大し,当時の先端の機械学習を全て網羅せんとする「広くかつ深い」内容で構成されたテキストとして登場したのが本書である.

もともとMurphy氏は,教員時代に当時までの計算機科学で標準ツールであったMatlab向けに,研究者が利用する代表的なToolboxを数多く提供していた方でもある.その知見を本書向けに再利用/集積する形で公開されたPMTK3を,書籍中の各図を出力するMatlabのコードの実行結果として連動させている.つまり,各アルゴリズムの実際のコードを見ながら実装方法も確認できるという「至れり尽くせり」の内容で当時発売された書籍である.私もエンジニアをやめて,博士課程で機械学習を勉強するうえで,この本には非常に役立った.

のちに「内容と構成」でも述べるが,カバー範囲は上記の決定版2冊より更に広範囲になり,その分内容が浅くなると思うがそうではなく,より分野全体の俯瞰がしやすいように.「確率モデル/ベイズモデル」の視点で統一感を持たせた上で,節の間のつながりや順序を意識してかつ各手法の意味やつながりの解説も重視した構成となっている.

対象読者層と,本書を読む前の事前準備

この後の説で紹介するように、本書で取り上げられている内容はあまりに広範囲で,全てを読破するには骨の折れる「百科事典的」な分厚い書籍である.このサイトの主テーマである「コンピュータビジョン・画像認識」も,研究対象が細分化されてかつ膨大で「おいしい漬物を作るためにツボの上に乗せておくにはもってこい」の分厚いテキストが発売されがちであるが,この書籍のように機械学習という括りでテキストを作ってもこれと同じことが起こっているわけである.(※ Goodfellow, Bengio and Courvilleの「Deep Learning」も20章の大作である).

本書は,トップ研究者層を目指す大学院生に向けた(標準的な)機械学習の入門書としてMurphy氏は執筆したと考える.その意味で,あなたが博士学生レベルでない場合は,間違っても「本書を独力で読みきれる」と勘違いしてはいけない.本書の内容をきちんと教えることができる大学教員から講義を受ける中で、教科書として用いるものとして想定された書籍である.

本書を読んで「内容が難しく、いきなり読み始めるのは厳しい」となった場合,例えば東京大学の杉山先生の「イラストでわかる機械学習」など,もう少しターゲットを狭く絞って短くしてある機械学習テキストや講義を通して,機械学習の全体像や浅めの入門基礎をまず先に身につける方が良い(最初から本書が授業のテキストで使用されている場合は,もちろん本書を直接読み始めてもらっても講義で理解が深まるので問題ない).

内容と構成

本書は28章,1067ページから構成される巨大な書籍である.最後の「まとめ」の節で繰り返すつもりだが,本書は「予測モデル」を章ごとに分類したテキストである.裏返すと,Feature Learningについての話題はそれほど多くないことに注意されたい.

また,ベイズ確率を本書の基盤的な確率モデリングとして統一的に採用している.Bishop本 (2006, PRML 上下巻)はベイズど真ん中でより厳密な各モデルの定義や導出がなされるが,本書では厳密性や定義は昔の確率や統計の本に任せているのが特徴である.言い換えると,非ベイズモデルもベイズの定理の視点からも捉えやすいようにしている書籍である.

前述の「過去の決定版テキスト2冊」では未登場の,多くの範囲の代表的なアルゴリズムを,新たに取り上げて1冊内での網羅度を上げているのも本書の特徴である.例えば,スパースモデルや,Spectral Clustering,トピックモデルのLDAなどであり,確率的グラフィカルモデルに関しても過去の教科書と比べると踏み込んだ内容が増えている.ただ著者の注意書きにあるように,「(ベイズ推定ではなく)最尤推定でモデルパラメータを推定するアルゴリズムも多く紹介する」構成になっていることから,書名は「Bayes Perspective」とはせずに「Probabilistic Perspective」としたのことである.

各章の内容

1章の導入では,機械学習の定義および機械学習を用いる理由が書かれ,教師あり学習と教師無し学習の2カテゴリに大分類し,その2つを中心とした書籍であると定義がなされる.また,本書を読む上で読者に知っておいてほしい機械学習特有の話題の導入が行われる(パラメトリックv.s.ノンパラ,次元の呪い,オーバーフィッティング,モデル選択,など).

2章から9章までは,確率の基礎の導入からはじまり,ベイズ主義/頻度主義の違い,基礎的なモデルの紹介(線形回帰/ロジスティック回帰による識別/一般化線形モデル)という順に各章がつづく(この9章までが第1パートとみなせる).

次は,10章で有向グラフを導入した後,有向グラフの応用例が19章まで続く「有向グラフのパート」である.11-13章は、その初歩的な応用例として、ガウス混合モデル/因子分解/PCA/スパースモデルなどが紹介される。14章ではカーネル法の導入が行われ、15章はその応用としてガウス過程が紹介される。カーネル自体も適応的に学習するためのモデルとして、16章では適応的基底関数モデル(一般化加法モデル/Boosting/アンサンブル学習)について述べられる。有向グラフの最後の例として、17-18章で系列グラフモデルが取り上げられる(隠れマルコフモデルと状態空間モデル)。

19章は無向グラフ/ MRF を導入する章で,それ以降の19-24章は,の決定的推論および確率的推論の話が紹介されていく「無向グラフのパート」である.20章から,各章で異なる無向グラフの推論方法(信念伝播法,変分推論,MCMC)が順に紹介される.

25章は「教師無し学習パート」である.25章は主にクラスタリングの章で,Affinity Propagationやスペクトラルクラスタリング,階層的クラスタリング,ノンパラのクラスタリング(Dirichlet過程混合)などが説明される.

26章と27章は,より発展的なグラフィカルモデルの話題の章である.26章は「グラフィカルモデル構造の学習」について説明されている.27章は,離散データ向けの潜在変数モデルとして.LDA などのトピックモデルと,Restricted Boltzman Machinesが紹介されている.最後に28章で,(発売当時2013年として)最先端の発展的な話題として、Deep Learningについてさわりの部分だけ取り上げられている.

本書の特徴

前節で構成を見たように,各章では「確率変数により表現されたグラフィカルモデルとしてどの区分に分類されるか」という観点でカテゴリー分類されている.この区分ポリシーを通して,機械学習全体の大局観もしくは俯瞰の視点を身につけていきやすくなっている点が,本書の最大の特徴と考える.私は機械学習や深層学習を応用する側の研究者であるが,これが機械学習そのものの研究に興味が寄っている方ほど,重要な本となると思う(ただし,2020年のこの記事をリライトした現時点では,機械学習の学会も多くが深層学習ベースではあり,本書の内容は過去の内容で研究対象ではないものが多いが).

また,類書に比べて,後発であることが当然アドバンテージになっている.著者が過去の人気機械学習テキスト自体を授業でも活用していたこともあり,それらの過去のテキストと比べて説明が簡潔で図解的なので,機械学習そのものが専門出ない人にも分かりやすい.各アルゴリズム・モデル間の相互関係性や対比の説明も増えているし,既に紹介した本書の章構成のおかげもあって,この本の目次を見るだけでも,頭の中で俯瞰的に分類が行いやすくなったと思う.

記事冒頭で紹介したPMTK3が提供されていることにより,Matlabを持っている読者(もとい学生)は、図がコードと連携している意味で書中の抽象的な解説と、実装の違いを把握しながら学べるようになっている(※ 2020/7月加筆:今は深層学習メインの時代なので,若手の方で深層学習以前のことをあまり知らないものの勉強になるので最近この本を新しく買った人は,歴史の教科書的に本書を使うだけくらいになっているとは思う).

加えて,直感的な読者の立場に立ってわかりやすくしてくれている説明や「なぜ」の解説まで提供されている章も多い.冗長性を削って簡潔性を優先している分、公理や導出の話は少なく,説明や数式の厳密性もあまり追及されていないといえる.これらの「大学院生が最初に学びやすい工夫」がされている本書は,非常に学習効率が良く,学んだ内容の定着度も高くなりやすいと言える.「ディジタル画像処理」と同じで,分野全体の大量の内容を詰め込んだテキストを作る場合は,「簡潔性」や「入門レベルの人へのわかりやすさ」を優先にせざるを得ないとは思う.

(※とはいえ、今現在は深層学習時代の真っ只中なので、このテキストの章構成で示されたできること一覧とは、機械学習で実現できることの全体像が変わってはきている。グラフィカルモデル全体像は、過去のテキストと比べて本書も簡潔になって素晴らしいが、例えばGoodfellowらの「Deep Learning」の終盤各章の各グラフモデルの推論方法の説明の方が、今の時代により即した説明になっていたりするので、2013年の時代の目線で本書を読むことをオススメする)

まとめ

この記事では、2013年発売当時に,機械学習の新たな標準テキストになったMurphy氏によるテキストを紹介した.従来の機械学習テキストと比べて,膨大な範囲がよく整理されており,なおかつ説明もわかりやすくてある程度深い説明が個別に提供されているので(2013年当時の)機械学習の大局観を簡潔に得られる点で,非常に良いテキストであることを本記事では強調した.(博士課程当時に初めてこの本を読み始めた私は,あまりに詳しく網羅されている本書に驚愕したものである)

一方で,本書は(ベイズ式の)機械学習モデルのカテゴライズに注力したテキストでありモデルの分類や紹介が主眼であるとも言える.よって,当時の代表的な画像や言語や波形などのHand-crafted な特徴量の紹介などは無く,特徴選択や特徴量の前処理などの話題もそれほど重視されていないテキストである点には注意したい.

※ ちなみに,来年2020年2月に発売予定の著者の新書,Probabilistic Machine Learning: An Introduction (Adaptive Computation and Machine Learning series)がAmazonの予約注文にすでに登場している.