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

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

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

概要

線形回帰をMAP推定で解くで、ベイズの定理を使ってパラメータの事後分布を求めましたが、解としては事後確率を最大とする1点を採用するだけで、求められるものは1つの回帰曲線でした。今回は、パラメータが事後分布に従った確率で生じることを利用し、予測値の分布を求めていきます。予測値の分布とは以下のグラフのようなものです。赤色の部分は観測される確率が高い領域、青の部分は観測される確率の低い領域を表します。青い点は取得済みの訓練データです。

予測分布の導出

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


p(t| x, \mathbf x, \mathbf t) \tag{1}

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


\displaystyle p(t| x, \mathbf x, \mathbf t) = \int p(t,\mathbf w | x, \mathbf x, \mathbf t)d\mathbf w \tag{2}

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


\displaystyle p(t| x, \mathbf x, \mathbf t) = \int p(t|\mathbf w , x, \mathbf x, \mathbf t) p(\mathbf w | x, \mathbf x, \mathbf t)d\mathbf w \tag{3}

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


\displaystyle p(t| x, \mathbf x, \mathbf t) = \int p(t|\mathbf w , x) p(\mathbf w | \mathbf x, \mathbf t)d\mathbf w \tag{4}

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

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


\displaystyle p(t| x, \mathbf x, \mathbf t) = \int N(t|\mathbf w^T \mathbf \phi(x),\sigma^{2}) N(\mathbf w |\mathbf m_N,\mathbf S_N)d\mathbf w \tag{5}

と書けます。

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


\begin{eqnarray*}
p(\mathbf x) &=& N(\mathbf x | \mathbf \mu, \Lambda^{-1}) \tag{6} \\
p(\mathbf y | \mathbf x) &=& N(\mathbf y | \mathbf A \mathbf x + \mathbf b, \mathbf{L}^{-1}) \tag{7}
\end{eqnarray*}

であるとき、


p(\mathbf y) = N(\mathbf y | \mathbf A \mathbf \mu + \mathbf b , \mathbf{L}^{-1} + \mathbf A \mathbf \Lambda^{-1} \mathbf A^{T}) \tag{8}

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

この関係式において \mathbf x = \mathbf w \mathbf \mu = \mathbf m_N \mathbf \Lambda^{-1} = \mathbf S_N \mathbf y = t \mathbf A \mathbf x   =
\boldsymbol\phi^{T}(x)\mathbf w  \mathbf L^{-1} = \sigma^{2}\mathbf b=\mathbf{0}とすれば、


p(t| x, \mathbf x, \mathbf t) = N(t |\boldsymbol\phi^{T}(x) \mathbf m_N,  \sigma^{2} +\boldsymbol\phi^{T}(x) \mathbf S_N \boldsymbol\phi(x)) \tag{9}

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

 \mathbf m_NはMAP推定で求める \mathbf wの解でしたから、予測分布はMAP推定値を中心として分布していることがわかります。

以下の記事で実際に予測分布をプロットしてみました。

www.iwanttobeacat.com