機械学習に詳しくなりたいブログ

機械学習や数学について勉強した内容を中心に書きます。100%趣味です。記事は数学的に厳密でなかったり誤りを含んでいるかもしれません。ご指摘頂ければ幸いです。

線形回帰をベイズ推定で解く(1)予測分布の導出

線形回帰をMAP推定で解くで、ベイズの定理を使ってパラメータの事後分布を求めましたが、解としては事後確率を最大とする1点を採用するだけでした。今回のベイズ推定では、パラメータが事後分布に従った確率で生じることを利用し、予測値の分布を求めていきます。

具体的に見ていきます。まず予測分布とは、

(1)p(t|x,x,t)

です。訓練データx,tが観測済みで、新たなxが入力された時の出力tの確率分布という意味です。そのままですね。出力値はこれまでyで表していたのですが、参考書はtを使っているのでそれに倣います。yは真値で揺らがない値なので分布として求めるものではないっていうことなのでしょうか。さて、この式を条件付き確率、同時確率、周辺確率の式(10)を使えば、以下のように変形できます。

(2)p(t|x,x,t)=p(t,w|x,x,t)dw

右辺は条件付き確率、同時確率、周辺確率の式(8)のように変形できることを使って、

(3)p(t|x,x,t)=p(t|w,x,x,t)p(w|x,x,t)dw

となります。定理だけではここまでしか変形できませんが、ここで各変数の関係を考えてみます。まずwxは、モデルのパラメータと新たな入力ですから独立です。そして予測値tは、wが与えられた条件下においてtと条件付き独立です。つまりwが決定してれば、訓練データx,tが何であったか?という条件は予測値に影響しないということです。wは訓練データから決まるのだから、まあそうですよね。以上を使って、式(3)から不要な条件を取り除くと、

(4)p(t|x,x,t)=p(t|w,x)p(w|x,t)dw

と書けます。右辺の各項は変数の意味からも理解できます。p(t|w,x)は、予測値はモデルパラメータと入力から決まるということ、p(w|x,t)はモデルのパラメータは訓練データによって決まるということ、それぞれ当たり前のことを表しています。そして式全体としては周辺化の計算ですが、言葉で説明を加えるなら、「全てのwについて、その事後確率の重み付けをしながら分布p(t|w,x)を積分している」と言えると思います。つまりwの事後確率が高いところではp(t|w,x)も高い値をとります。こうしてベイズ推定による予測分布が求まります。この積分は解析的に求まる問題なら良いですが、数値計算では計算量が多くなってしまう問題があるようです。

さて、p(t|w,x)の分布はどういうものであったかと言うと、真値からN(0,σ2)の誤差が加わっているものと仮定していました。そしてパラメータの事後分布はMAP推定の解の導出より、N(mN,SN)でした。真値をwTϕ(x)とすれば、

(5)p(t|x,x,t)=N(t|wTϕ(x),σ2)N(w|mN,SN)dw

と書けます。

ここで多変量正規分布に対する以下の関係を使います。

(6)p(x)=N(x|μ,Λ1)(7)p(y|x)=N(y|Ax+b,L1)

であるとき、

(8)p(y)=N(y|Aμ+b,L1+AΛ1AT)

です。導出は難しくないのですが数式を書くのが大変なので、今回は公式として使います。(パターン認識と機械学習(上) C.M.ビショップ著 の第2章に載っています)

この関係式においてx=wμ=mNΛ1=SNy=tAx=ϕT(x)wL1=σ2b=0とすれば、

(9)p(t|x,x,t)=N(t|ϕT(x)mN,σ2+ϕT(x)SNϕ(x))

と求められます。式(4)は入力と訓練データの条件が入っていて式(6)~(8)との対応がわかりづらいです。式(6)~(8)におけるp(x),p(y),p(y|x)をそれぞれp(w|x,t),p(t|x,x,t),p(t|w,x)に対応させています。x,x,tの条件を除いて考えれば対応が見えてくると思います。

mNはMAP推定で求めるwの解でしたから、予測分布はMAP推定値を中心として分布していることがわかります。長くなったので実際に予測分布をプロットしてみるのは次回にします。→線形回帰をベイズ推定で解く(2)予測分布をプロット