EbiMaru’s diary

ラマン分光とか機械学習とか研究している京大生のブログ

具体例で学ぶベイズモデル選択

ベイズ的推定におけるモデルの選択方法を書いていきます.基本的にはベイズ的線形回帰を例に取り,基底の数や種類を変えて,どのような基底をどのくらい用意するべきかを書いていきます.ここからエビデンス近似なんかに繋がって行きます.

Keywords

ベイズ統計,ベイズモデリング,モデル選択

 モデルとは?

モデルというだけだと抽象的ですよね.例えば,事前分布であったり,ハイパーパラメータの値だったり,仮定する確率分布だったり,基底関数だったり...これらは全部モデルなんですが,それらをまとめてビショップ先生に敬意を表して(?)\mathcal{M}_i と書いておきます(ただし今回いじるのは基底の数と種類だけです).ハイパーパラメータなんかは交差検証でそれなりの値を出せたりします(こちれはどちらかというと頻度分布主義的な手法で今回は使いません).更に,赤池情報基準(AIC),ベイズ情報基準(BIC)とかWAICなんてものもありますね.これらに共通するモデル選択の目標とは,得られたデータに過度にフィットしないようにしつつ(つまり過学習を避ける),単純すぎないで予測精度が悪くならないようなモデルを選ぶ(つまり観測されたモデルパラメータ\check{\boldsymbol{w}}と推定された\hat{\boldsymbol{w}}の差を小さくする)ことです.今回はハイパーパラメータの大小の比較ではなく,xの累乗と別の「表現力のいい」関数を用いて比較していきます.ハイパーパラメータに関しても同様の思想で「エビデンス近似」と呼ばれる手法で最適化できます.
 \sin 2\pi x+1にガウシアンノイズが乗っているような系で考えていきます.基底としてx^{m}(m=0,1,..,M-1)を使うとして,何個使えばいいでしょうか?あるいは,得られたデータの分布から\sin 2 \pi x1で近似したいと思ったときどちらがいいでしょうか?現実的には,真の分布なんてわからないわけですから,「最もそれっぽい」ものを選ぶ必要があります.前準備としてベイズ的線形回帰の式を結果だけ示します.

ベイズ的線形回帰

ベイズ的線形回帰とは,実現値の集合\mathcal{D} = \{ \check{\boldsymbol{t}},\check{\boldsymbol{x}} \}が与えられたとき,再構成の目標値tを,M個の基底関数\phi_m(x)を用い,それにかかる係数\boldsymbol{w}=(w_0, w_2,...,w_{M-1})^\mathrm{T}から推定する手法で,例えば事前分布を平均\boldsymbol{m}_0,共分散を(\alpha \beta)^{-1} \boldsymbol{S}_0の多変量正規分布と仮定し,尤度を分散\sqrt{1/\beta}の多変量正規分布とすると,係数に関する事後分布は正規分布となり


p(\boldsymbol{w}|\mathcal{D}) = \mathcal{N} (\boldsymbol{w}|\boldsymbol{m}, \beta^{-1} \boldsymbol{S})\\
\boldsymbol{S}^{-1} = \alpha \boldsymbol{S}_0^{-1} +  \boldsymbol{\Phi}^\mathrm{T} \boldsymbol{\Phi} \\
\boldsymbol{m} = \boldsymbol{S}(\boldsymbol{\Phi}\check{\boldsymbol{t}}+\alpha \boldsymbol{S}_0^{-1} \boldsymbol{m}_0)

です.ただし\boldsymbol{\Phi}は計画行列(ref. PRML p.139)です(事後分布の平均が\alphaのみに依存するように事前分布の分散を調節しています.\alphaは事前分布の影響の強さを示します).確率モデルp(t|x,\boldsymbol{w},\beta)

\displaystyle{
p(t|x,\boldsymbol{w},\beta) = \mathcal{N}(t|\boldsymbol{\phi}(x)^\mathrm{T} \boldsymbol{w} , \beta^{-1})
}

とすると,ここからp(t|x,\mathcal{D})

\displaystyle{
p(t|x,\mathcal{D}) = p(t|\boldsymbol{m}^\mathrm{T}\boldsymbol{\phi}(x),\sigma(x)^2) \\
\sigma(x) = \frac{1}{\beta} \bigl( 1 + \boldsymbol{\phi}(x)^\mathrm{T} \boldsymbol{S} \boldsymbol{\phi}(x) \bigr)
}

です.

    1. ビショップ,2006, パターン認識機械学習, 丸善出版, p.p.30 - 31.

モデルエビデンス

 良いモデルとは端的に言ってモデルエビデンス


ME = p(\mathcal{D}|\mathcal{M}_i)

を最大化するような\mathcal{M}_iを選ぶことです.上式は


p(\mathcal{D}|\mathcal{M}_i) = \int p(\mathcal{D}|\boldsymbol{w}, \mathcal{M}_i)p(\boldsymbol{w}|\mathcal{M}_i) d\boldsymbol{w}

と書け,すなわち,事前分布p(\boldsymbol{w}|\mathcal{M}_i)からランダムにサンプリングしたときに\mathcal{D}が生成できる確率を表しています.最大事後確率推定(MAP推定)で推定された係数\boldsymbol{w}_\mathrm{MAP}の周りで確率が鋭く尖っていると仮定すると上式の対数は正規分布では

\displaystyle{
\ln p(\mathcal{D}|\mathcal{M}_i) \approx \ln p(\mathcal{D}|\boldsymbol{w}_\mathrm{MAP}) +\frac{1}{2} \ln \frac{\mathrm{det}\boldsymbol{S}_\mathrm{posterior}}{\mathrm{det}\boldsymbol{S}_\mathrm{prior} }}

と近似できます.左辺第1項は予測分布と観測されたデータの誤差,第2項は事前分布と事後分布の分散の広がり(体積)の比です.実際に変化を見てみましょう

モデルの変化(基底の数)

基底として,xの累乗x_mを3個,4個,10個用意した場合を考えます.テストデータは[0,1]の間にN=20個で,分散\sqrt{1/\beta}=0.2を持っているとします.以下にテストデータと真の分布のグラフを載せます. 20190406231704

ひとまず,事前分布として


p(\boldsymbol{w}) = \mathcal{N}(\boldsymbol{w}|\boldsymbol{0},1/\alpha \beta \boldsymbol{I})

を用いた場合を考えましょう.\alpha = 10^{-8}とします(本来は\betaは未知で,\alpha含めてエビデンス近似などで最適化する必要がありますがここでは割愛します).これによる予測分布を下図に示します.

二次関数までしか使っていないM=3ならともかくM=4,10はそこまで予測として違いがないように思えます.では,\boldsymbol{w}に関する事前分布と事後分布はどうでしょうか?事前分布と事後分布の平均と分散,つまり\boldsymbol{w}_\mathrm{MAP}と周辺化された分散\sigma_m = \sqrt{ \{ \boldsymbol{S} \}_{mm} / \beta}を見てみましょう.

基底の数が多いほど,推定された平均が上下に大きく振動し,事前分布に対して事後分布の分散も対して変わっていないように見えます.もはや近似式が使えるかも怪しいです.モデルエビデンスを計算しましょう.

\displaystyle{
ME = \ln p(\mathcal{D}|\boldsymbol{w}_\mathrm{MAP}) + \frac{1}{2} \ln \frac{\mathrm{det} \beta^{-1} \boldsymbol{S}}{\mathrm{det} (\beta \alpha)^{-1} \boldsymbol{S}_0}  \\
= - \frac{1}{2} \left( N \ln \frac{2 \pi}{\beta} + \beta || \check{\boldsymbol{t}} - \boldsymbol{\Phi} \boldsymbol{w}_\mathrm{MAP} ||^2 \right) + \frac{1}{2} \ln \frac{\mathrm{det} \boldsymbol{S}}{\mathrm{det} \alpha^{-1} \boldsymbol{S}_0}  
}

と計算できます.基底の数ごとのモデルエビデンス(ME)は下のグラフとなります.

20190406231654

M=4を越したあたりから,徐々に減っていっていることがわかります.十分な表現力を持つ関数の数ではM=4が最低なので,当たり前といえば当たり前ですね.一般にモデルエビデンスは基底の数に対して最大値を越すと単調に減少して行く場合が多いです.

モデルの変化(基底の種類)

もし,グラフの分布から,基底の種類を\sin2\pi x1で表されると考えた場合はどうでしょう?回帰の結果と計算されたMEを下に示します. 20190406234753

モデルエビデンスxの累乗の場合よりかなり少なくなっています.このようにテストデータに対して「表現力のいい」関数を選ぶこともモデル選択において大切であることがわかります.

参考文献

    1. ビショップ, 2006, 「パターン認識機械学習 上」,丸善出版,p.p.160 - 164.

追記

4/6:図を修正しました.