PRML上巻の俯瞰&1章序論(Introduction) 読解メモ #1

f:id:lib-arts:20181230162207p:plain

PRML_上巻 表紙

PRMLの読書会を開催しているのですが、復習がてら読解メモをまとめていければと思います。(7~8割の理解を目標においた読解にあたってのメモなので、ざっくり要旨を掴む目的でご確認いただくと良いのではと思います)
前評判通り中身が充実している本なので、1章単位で進めていければと思います。
また本の対象読者と事前準備としては以下にあたるかなと思っています。

・大学教養レベルの微積分と線形代数の知識がある一方で機械学習は入門者の方
-> 機械学習についてある程度事前知識を入れてからの方が良いので『はじめてのパターン認識』や『データ解析のための統計モデリング入門』を読み流してからPRMLに取り組むと良いと思います。

・物理、数学の修士、博士号持ち
-> 基本そのまま読み進めてみて困ったら調べるでも良いかと思います。

数学などに自信はないけど実務で使いたい方などは実務でここまでの内容がクリティカルに必要になることはないのでやめた方が良いかもしれません。(ドメイン知識など違うところに専門性を持って行く方が良いと思います。)
読解メモの書き方としても、大学教養レベルの数学を前提として進めていきます。

#1では上巻の内容の俯瞰と序論として1章の情報をまとめます。
以下目次になります。

 

1. 上巻の内容の俯瞰
2. 1章の内容に関して
2.0 1章の前書き部分
2.1 多項式曲線フィッティング(1.1)
2.2 確率論(1.2)
2.3 モデル選択(1.3)
2.4 次元の呪い(1.4)
2.5 決定理論(1.5)
2.6 情報理論(1.6)
3. まとめ&所感


1. 上巻の内容の俯瞰
上巻の目次としては、1章が序論、2章が確率分布、3章が線形回帰モデル、4章が線形識別モデル、5章がニューラルネットワークです。上巻は機械学習というよりは統計学ベイズの話が多い印象です。確率分布や一般化線形モデル(GLM)、ロジスティック回帰などは機械学習の入門書よりも統計の入門書でよく見る印象です。scikit-learnで実装されていることが多い、SVMやグラフィカルモデリングEMアルゴリズム、主成分分析、マルコフモデル、決定木などオーソドックスな機械学習については下巻に多くまとまっています。
5章のニューラルネットワークについても2007年頃に書かれたもののため、近年DeepLearningの発展を通して目覚ましく変化しているところの情報はないです。が、CNNなどについては言及がされており、当時のトピックを幅広くまとめてくれています。(逆に10年以上前のものとして読むと時代背景がわかって面白いです)

上巻に関してはいわゆる最近流行りの機械学習のイメージというよりは統計モデリング系で学ぶ内容の方が多い気がしますが、統計と機械学習はオーバーラップするところも多いのであまり気にし過ぎないほうが良いのではと思います。

読み方としては、議論が丁寧で良いのですがやや冗長な印象も受けるので、数式を全て読み切る的な進め方はあまり推奨はしません。一度下巻まで通して読み切ってみて何周かする方が良いのではと思います。周囲にがっつり読もうとしている方も何人かおられますが、全て難関大出身の数学か物理の修士、博士持ちというレベルなのでそれに該当しないなら5~7割わかれば十分くらいのつもりで読む方が良いと思います。

上記でだいたいの上巻の内容は俯瞰できたと思うので、実際に1章の内容に入っていければと思います。


2. 1章の内容に関して
2.0 1章の前書き部分
前書き部分では機械学習の導入についてまとめています。要約すると長くなるのでキーワードを列挙します。

・訓練集合(training set)/テスト集合(test set) <- データセットのこと
・訓練(training)/学習(learning) <- モデルの学習
・前処理(preprocessing)/特徴抽出(feature extraction) <- モデルの学習に使うデータの整形
教師あり学習(supervised learning)/教師なし学習(unsupervised learning)/強化学習(reinforcement learning) <- 機械学習におけるI/O
・探索(exploration)/知識利用(exploitation) <- 探索と知識利用のジレンマ
・確率理論/決定理論/情報理論

上記は全て機械学習を理解する上で基本となる単語なので、わからなければwikipediaなどで確認すると良いと思います(言葉の意味をつかめれば十分なので概要を読むだけで大丈夫だと思います)。

 

2.1 多項式曲線フィッティング(1.1)
多項式フィッティングでは与えられたデータ群を多項式での近似を行います。関数の多項式展開はテイラー展開マクローリン展開がありますが、イメージとしては近いです。
近似にあたっては関数y(x,w)と訓練集合のデータ点とのずれを測る誤差関数E(w)のwに関する最小化によって実現することが可能です。誤差関数の例としては単純で広く用いられている二乗和誤差について紹介されています。

このようにモデルのパラメータwというのは求めることが可能ですが、多項式モデルの次数Mを選ぶ問題も残っています。次数を増やせば増やすほど学習データにはフィッティングするけれど、テストデータにはフィッティングしないという過学習(Overfitting)という状態に陥ります。この際にはモデル選択(model selection)を用いる必要があり、モデル選択にあたってはペナルティ項を設けるなどの正則化(regularization)を用いるなどの方法があります。ペナルティ項を加える例としては、wのノルムの2乗を加えるリッジ回帰(ridge regression)などがあります。

また、過学習を防ぐためにデータセットを学習用(training set)、とテスト用(hold-out set)に分けて評価する必要があります。(とはいえ実際に学習を行う際は過学習しているかも重要な情報のため、training setで行なった評価についてもモデリングの途中での参考情報としてよく用いるので必ずしも使わないというわけではないです。)

2.2 確率論(1.2)
1.2節では確率論についてまとめられています。1.2.4までは基礎概念が多いので、キーワードの列挙のみとします。

・確率の加法定理(sum rule)/情報定理(product rule)
・周辺確率(marginal probability)/条件付き確率(conditional probability)
ベイズの定理(Bayes' theorem)や事前(prior)/事後(posterior)確率(probability)
・確率密度(probability density)/累積分布関数(cumulative distribution function)
・期待値(expectation)/条件付き期待値(conditional expectation)
・分散(variance)/共分散(covariance)
・古典的確率(classical probability)/頻度主義(frequentist)
・尤度関数(likelihood function)/最尤推定(maximum likelihood)/誤差関数(error function)
正規分布(normal distribution)

1.2.5~1.2.6の曲線フィッティング再訪では曲線フィッティングに最尤法を用いています。目的変数の分布が正規分布だと仮定した際に最尤法を用いると最小二乗法で解けるということがまとまっています。またここでは実際にベイズ的な取り扱いを後ろの章で行うにあたっての簡単な導入も行っています。


2.3 モデル選択(1.3)
交差検証(cross-validation)などのサンプルを分けて検証する方法や、モデル選択にあたってAIC(Akaike information criterion)やBIC(Bayesian information criterion)などのモデル選択の基準として尤度/誤差関数を拡張したものについて触れています。

 

2.4 次元の呪い(1.4)
多次元になると取り扱いが難しいということをまとめています。

 

2.5 決定理論(1.5)
得られた確率分布から推論を行うにあたっての方法をまとめています。基本的に積分によって誤り率を求めていますが、1.5.2では損失行列(loss matrix)を用いて誤りの重みを調整して評価基準を作成しています。

 

2.6 情報理論(1.6)
キーワードだけ列挙します。

エントロピー(entropy)
・相対エントロピー(relative entropy)/KLダイバージェンス(Kullback-Leibler divergence)
・凸関数(convex function)/イェンセンの不等式(Jensen's inequality)

エントロピーは決定木などで使われ、14章で出てきます。また、KLダイバージェンスは9章のEMアルゴリズムなどで出てきます。

 

3. まとめ&所感
一度全体はざっと読んで二周目読み始める前にまとめているのですが、やはりなかなか密度の濃い本の印象です。一周目読む際はとりあえず上記の言葉を抑えられれば十分だと思われます。
大体の実務ではいらないレベルとは前述しましたが、少し深く考察しておくと全体像が見えるときもあるので、読んでおいて損はない本だと思いますので、余裕がある際にチャレンジしてみるのも良いと思います。