機械学習基礎理論独習

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

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

PRML演習問題 2.38(基本)

問題

二次形式を平方完成することで、(2.141)(2.142)の結果を導出せよ。

参照

\begin{eqnarray}
p({\bf x}|\mu)&=&\prod_{n=1}^Np(x_n|\mu)\\
&=&\frac{1}{(2\pi\sigma^2)^{N/2}}\exp\left(-\frac{1}{2\sigma^2}\sum_{n=1}^N(x_n-\mu)^2\right)\tag{2.137}
\end{eqnarray}

\begin{eqnarray}
p(\mu)={\mathcal N}(\mu|\mu_0,\sigma_0^2)\tag{2.138}
\end{eqnarray}

\begin{eqnarray}
p(\mu|{\bf x})\propto p({\bf x}|\mu)p(\mu)\tag{2.139}
\end{eqnarray}

\begin{eqnarray}
p(\mu|{\bf x})={\mathcal N}(\mu|\mu_N,\sigma_N^2)\tag{2.140}
\end{eqnarray}

\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_{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_{ML}=\frac{1}{N}\sum_{n=1}^Nx_n\tag{2.143}
\end{eqnarray}

解答

問題文だけだと字足らずなので、補足すると、
「事後分布(2.140)の平均\mu_N、分散\sigma_N^2(2.141)(2.142)で表されることを指数部分を平方完成することにより示せ。」
となります。

p({\bf x}|\mu)の指数部分は-\dfrac{1}{2\sigma^2}\displaystyle\sum_{n=1}^N(x_n-\mu)^2であり、p(\mu)の指数部分は-\dfrac{1}{2\sigma_0^2}(\mu-\mu_0)^2であり、
p(\mu|{\bf x})の指数部分は-\dfrac{1}{2\sigma_N^2}(\mu-\mu_N)^2であるので、式(2.139)より、次の式が成り立ちます。

\begin{eqnarray}
&&-\frac{1}{2\sigma^2}\sum_{n=1}^N(x_n-\mu)^2-\frac{1}{2\sigma_0^2}(\mu-\mu_0)^2=-\frac{1}{2\sigma_N^2}(\mu-\mu_N)^2\\
&&\Leftrightarrow \frac{1}{2\sigma^2}\sum_{n=1}^N(x_n-\mu)^2+\frac{1}{2\sigma_0^2}(\mu-\mu_0)^2=\frac{1}{2\sigma_N^2}(\mu-\mu_N)^2\tag{1}
\end{eqnarray}

\mu^2,\muの係数比較するために、
まず、式(1)の左辺を\mu^2,\muについて整理します。

\begin{eqnarray}
\frac{1}{2\sigma^2}\sum_{n=1}^N(x_n-\mu)^2+\frac{1}{2\sigma_0^2}(\mu-\mu_0)^2&=&\left(\frac{N}{2\sigma^2}+\frac{1}{2\sigma_0^2}\right)\mu^2-\left(\frac{\sum_{n=1}^N x_n}{\sigma^2}+\frac{\mu_0}{\sigma_0^2}\right)\mu+{\rm const.}\tag{2}
\end{eqnarray}

次に、式(1)の右辺を\mu^2,\muについて整理します。

\begin{eqnarray}
\frac{1}{2\sigma_N^2}(\mu-\mu_N)^2=\frac{1}{2\sigma_N^2}\mu^2-\frac{\mu_N}{\sigma_N^2}\mu+{\rm const.}\tag{3}
\end{eqnarray}

(2),(3)\mu^2の係数を比較します。

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

(4)より、式(2.141)が示せました。

(2),(3)\muの係数を比較します。

\begin{eqnarray}
&&\frac{\sum_{n=1}^N x_n}{\sigma^2}+\frac{\mu_0}{\sigma_0^2}=\frac{\mu_N}{\sigma_N^2}\\
&&\Leftrightarrow \frac{\mu_N}{\sigma_N^2}=\frac{N\mu_{ML}}{\sigma^2}+\frac{\mu_0}{\sigma_0^2}\\
&&\Leftrightarrow \mu_N=\sigma_N^2\left(\frac{N\mu_{ML}}{\sigma^2}+\frac{\mu_0}{\sigma_0^2}\right)\\
&&\Leftrightarrow \mu_N=\left(\frac{1}{\sigma_0^2}+\frac{N}{\sigma^2}\right)^{-1}\left(\frac{N\mu_{ML}}{\sigma^2}+\frac{\mu_0}{\sigma_0^2}\right)\\
&&\Leftrightarrow \mu_N=\left(\frac{\sigma^2+N\sigma_0^2}{\sigma_0^2\sigma^2}\right)^{-1}\left(\frac{N\mu_{ML}\sigma_0^2+\mu_0\sigma^2}{\sigma^2\sigma_0^2}\right)\\
&&\Leftrightarrow \mu_N=\left(\frac{\sigma_0^2\sigma^2}{\sigma^2+N\sigma_0^2}\right)\left(\frac{N\mu_{ML}\sigma_0^2+\mu_0\sigma^2}{\sigma^2\sigma_0^2}\right)\\
&&\Leftrightarrow \mu_N=\frac{N\mu_{ML}\sigma_0^2+\mu_0\sigma^2}{\sigma^2+N\sigma_0^2}\\
&&\Leftrightarrow \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_{ML}\tag{5}
\end{eqnarray}

(5)より、式(2.142)が示せました。

補足

問題文には「平方完成することで」とありましたが、「係数比較」で解きました。
実質同じなので、問題ないと思います。

目次へ戻る