機械学習基礎理論独習

誤りがあればご指摘いただけると幸いです。数式が整うまで少し時間かかります。リンクフリーです。

勉強ログです。リンクフリーです
目次へ戻る

PRML演習問題 2.39(標準)

問題

ガウス確率変数の平均の事後分布についての結果 (2.141)(2.142) を元に、
最初の N-1 個のデータ点の影響を分離し、\mu_N\sigma_N^2 の逐次更新の式を求めよ。
そして、事後分布 p(\mu|x_1,\ldots,x_{N-1})={\mathcal N}(\mu|\mu_{N-1},\sigma_{N-1}^2) に尤度関数 p(x_N|\mu)={\mathcal N}(x_N|\mu,\sigma^2) を掛けた後、
平方完成と正規化をすることで、N 個の観測値を得た後の事後分布と同じ結果を導出せよ。

参照

\begin{eqnarray}
\mu_N=\frac{\sigma^2}{N\sigma_0^2+\sigma^2}\mu_0+\frac{N\sigma_0^2}{N\sigma_0^2+\sigma^2}\mu_{\rm ML}\tag{2.141}
\end{eqnarray}

\begin{eqnarray}
\frac{1}{\sigma_N^2}=\frac{1}{\sigma_0^2}+\frac{N}{\sigma^2}\tag{2.142}
\end{eqnarray}

\begin{eqnarray}
\mu_{\rm ML}=\frac{1}{N}\sum_{n=1}^Nx_n\tag{2.143}
\end{eqnarray}

解答

(2.142) より、\sigma_N^2 を求めます。

\begin{eqnarray}
&&\frac{1}{\sigma_N^2}=\frac{1}{\sigma_0^2}+\frac{N}{\sigma^2}\\
&&\Leftrightarrow\frac{1}{\sigma_N^2}=\frac{\sigma^2+N\sigma_0^2}{\sigma_0^2\sigma^2}\\
&&\Leftrightarrow\sigma_N^2=\frac{\sigma_0^2\sigma^2}{\sigma^2+N\sigma_0^2}\tag{1}
\end{eqnarray}

(2.141) を変形します。

\begin{eqnarray}
\mu_N&=&\frac{\sigma^2}{N\sigma_0^2+\sigma^2}\mu_0+\frac{N\sigma_0^2}{N\sigma_0^2+\sigma^2}\mu_{\rm ML}\\
&=&\frac{\sigma^2}{N\sigma_0^2+\sigma^2}\mu_0+\frac{N\sigma_0^2}{N\sigma_0^2+\sigma^2}\underbrace{\frac{1}{N}\sum_{n=1}^Nx_n}_{(2.143)}\\
&=&\frac{\sigma^2}{N\sigma_0^2+\sigma^2}\mu_0+\frac{\sigma_0^2}{N\sigma_0^2+\sigma^2}\sum_{n=1}^Nx_n\\
&=&\frac{1}{N\sigma_0^2+\sigma^2}\left(\sigma^2\mu_0+\sigma_0^2\sum_{n=1}^Nx_n\right)\\
&=&\frac{\sigma_0^2\sigma^2}{N\sigma_0^2+\sigma^2}\left(\frac{\mu_0}{\sigma_0^2}+\frac{\sum_{n=1}^Nx_n}{\sigma^2}\right)\\
&=&\underbrace{\sigma_N^2}_{(1)}\left(\frac{\mu_0}{\sigma_0^2}+\frac{\sum_{n=1}^{N-1}x_n}{\sigma^2}+\frac{x_N}{\sigma^2}\right)\\
&=&\sigma_N^2\left(\frac{\mu_0\sigma^2+\sigma_0^2\sum_{n=1}^{N-1}x_n}{\sigma_0^2\sigma^2}+\frac{x_N}{\sigma^2}\right)\\
&=&\sigma_N^2\Bigg(\underbrace{\frac{\sigma^2+(N-1)\sigma_0^2}{\sigma_0^2\sigma^2}}_{=1/\sigma_{N-1}^2}\underbrace{\frac{\sigma_0^2\sigma^2}{\sigma^2+(N-1)\sigma_0^2}}_{=\sigma_{N-1}^2}\frac{\mu_0\sigma^2+\sigma_0^2\sum_{n=1}^{N-1}x_n}{\sigma_0^2\sigma^2}+\frac{x_N}{\sigma^2}\Bigg)\\
&=&\sigma_N^2\left(\frac{1}{\sigma_{N-1}^2}\frac{\mu_0\sigma^2+\sigma_0^2\sum_{n=1}^{N-1}x_n}{\sigma^2+(N-1)\sigma_0^2}+\frac{x_N}{\sigma^2}\right)\\
&=&\sigma_N^2\left(\frac{1}{\sigma_{N-1}^2}\mu_{N-1}+\frac{x_N}{\sigma^2}\right)\\
&=&\frac{\sigma_N^2}{\sigma_{N-1}^2}\mu_{N-1}+\frac{\sigma_N^2}{\sigma^2}x_N\tag{2}
\end{eqnarray}

(2.142) を変形します。

\begin{eqnarray}
\frac{1}{\sigma_N^2}&=&\frac{1}{\sigma_0^2}+\frac{N}{\sigma^2}\\
&=&\frac{1}{\sigma_0^2}+\frac{N-1}{\sigma^2}+\frac{1}{\sigma^2}\\
&=&\frac{1}{\sigma_{N-1}^2}+\frac{1}{\sigma^2}\tag{3}
\end{eqnarray}

(2),(3) より、\mu_N\sigma_N^2 の逐次更新の式が求まりました。

問題文にある、事後分布(新たな事前分布) p(\mu|x_1,\ldots,x_{N-1}) と尤度関数 p(x_N|\mu) の積は、
ベイズの定理(ベイズ更新)より、事後分布 p(\mu|x_1,\ldots,x_{N}) であり、以下のように書けます。

\begin{eqnarray}
p(\mu|x_1,\ldots,x_{N})\propto p(x_N|\mu)p(\mu|x_1,\ldots,x_{N-1})\tag{4}
\end{eqnarray}

(4) の右辺を変形していきます。

\begin{eqnarray}
p(x_N|\mu)p(\mu|x_1,\ldots,x_{N-1})&=&{\mathcal N}(x_N|\mu,\sigma^2){\mathcal N}(\mu|\mu_{N-1},\sigma_{N-1}^2)\\
&\propto&\exp\left(-\frac{1}{2\sigma^2}(x_N-\mu)^2\right)\exp\left(-\frac{1}{2\sigma_{N-1}^2}(\mu-\mu_{N-1})^2\right)\\
&=&\exp\left(-\frac{1}{2\sigma^2}(x_N-\mu)^2-\frac{1}{2\sigma_{N-1}^2}(\mu-\mu_{N-1})^2\right)\\
&\propto&\exp\left(-\frac{1}{2\sigma^2}(\mu^2-2x_N\mu)-\frac{1}{2\sigma_{N-1}^2}(\mu^2-2\mu_{N-1}\mu)\right)\\
&=&\exp\left(-\frac{1}{2}\frac{\sigma_{N-1}^2+\sigma^2}{\sigma_{N-1}^2\sigma^2}\mu^2+\frac{\sigma_{N-1}^2x_N+\sigma^2\mu_{N-1}}{\sigma_{N-1}^2\sigma^2}\mu\right)\tag{5}
\end{eqnarray}

(5)ガウス分布なので、式 (4) の左辺 p(\mu|x_1,\ldots,x_{N})={\mathcal N}(\mu|\mu_N,\sigma_N^2) として、計算します。

\begin{eqnarray}
p(\mu|x_1,\ldots,x_{N})&=&{\mathcal N}(\mu|\mu_N,\sigma_N^2)\\
&\propto&\exp\left(-\frac{1}{2\sigma_N^2}(\mu-\mu_n)^2\right)\\
&\propto&\exp\left(-\frac{1}{2}\frac{1}{\sigma_N^2}\mu^2+\frac{\mu_N}{\sigma_N^2}\mu\right)\tag{6}
\end{eqnarray}

(5),(6)\mu^2 の係数について比較します。

\begin{eqnarray}
&&\frac{1}{\sigma_N^2}=\frac{\sigma_{N-1}^2+\sigma^2}{\sigma_{N-1}^2\sigma^2}\\
&&\Leftrightarrow\frac{1}{\sigma_N^2}=\frac{1}{\sigma_{N-1}^2}+\frac{1}{\sigma^2}\tag{7}
\end{eqnarray}

(5),(6)\mu の係数について比較します。

\begin{eqnarray}
&&\frac{\mu_N}{\sigma_N^2}=\frac{\sigma_{N-1}^2x_N+\sigma^2\mu_{N-1}}{\sigma_{N-1}^2\sigma^2}\\
&&\Leftrightarrow\mu_N=\frac{\sigma_N^2}{\sigma_{N-1}^2}\mu_{N-1}+\frac{\sigma_N^2}{\sigma^2}x_N\tag{8}
\end{eqnarray}

(7), (8) と 式 (2), (3) が等しいので、
\mu_N\sigma_N^2 の逐次更新から得られる式と、事後分布から得られる式が一致することが示せました。

目次へ戻る