機械学習基礎理論独習

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

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

PRML演習問題 5.3(標準)

問題

複数の目標変数を持ち、入力ベクトル \bf x を固定したときの目標変数の分布が

\begin{eqnarray}
p({\bf t}|{\bf x},{\bf w})={\mathcal N}({\bf t}|{\bf y}({\bf x},{\bf w}),{\bf \Sigma})\tag{5.192}
\end{eqnarray}

という形のガウス関数であるような回帰問題を考える。
ここで、{\bf y}({\bf x},{\bf w}) は入力べクトル {\bf x}、重みベクトル {\bf w} を持つ
ニューラルネットワークの出力であり、\bf \Sigma は目標値の想定されたガウスノイスの共分散である。
\bf x\bf t の独立な観測値の集合が与えられたとき、
\bf\Sigma は固定で既知と仮定して、\bf w に関する最尤推定解を見つけるための最小化すべき誤差関数を書き下せ。
さらに、\bf\Sigma もまたデータから決定すべきと仮定し、\bf\Sigma最尤推定解の式を書き下せ。
ここでは 5.2 節で議論した独立な目標変数の場合と異なり、\bf w\bf\Sigma の最適化が連結されている点に注意せよ。

参考

\begin{eqnarray}
\dfrac{\partial}{\partial{\bf A}}\ln|{\bf A}|=({\bf A}^{-1})^\top\tag{C.28}
\end{eqnarray}

\begin{eqnarray}
\dfrac{\partial}{\partial{\bf A}}{\rm Tr}({\bf A}^{-1}{\bf B})=-({\bf A}^{-1}{\bf B}{\bf A}^{-1})^\top\tag{1}
\end{eqnarray}

解答

尤度関数は、以下のようになります。

\begin{eqnarray}
p({\bf T}|{\bf X},{\bf w},{\bf\Sigma})&=&\prod_{n=1}^N{\mathcal N}({\bf t}_n|{\bf y}({\bf x}_n,{\bf w}),{\bf\Sigma})\\
&=&\prod_{n=1}^N\frac{1}{(2\pi)^{K/2}|{\bf\Sigma}|^{1/2}}\exp\left(-\frac{1}{2}({\bf t}_n-{\bf y}_n)^\top{\bf\Sigma}^{-1}({\bf t}_n-{\bf y}_n)\right)\tag{2}
\end{eqnarray}

(2){\bf y}_n={\bf y}({\bf x}_n,{\bf w}) とおきました。
(2) に対数を取ります。

\begin{eqnarray}
\ln p({\bf T}|{\bf X},{\bf w},{\bf\Sigma})&=&-\frac{N}{2}(\ln|{\bf\Sigma}|+K\ln(2\pi))-\frac{1}{2}\sum_{n=1}^N({\bf t}_n-{\bf y}_n)^\top{\bf\Sigma}^{-1}({\bf t}_n-{\bf y}_n)\tag{3}
\end{eqnarray}

\bf\Sigma は固定とすれば、\bf w について最小化すべき誤差関数は、次の式となります。

\begin{eqnarray}
E({\bf w})=\frac{1}{2}\sum_{n=1}^N({\bf t}_n-{\bf y}_n)^\top{\bf\Sigma}^{-1}({\bf t}_n-{\bf y}_n)\tag{4}
\end{eqnarray}

\bf\Sigma が固定でない場合は、\ln p({\bf T}|{\bf X},{\bf w},{\bf\Sigma})\bf\Sigma微分して ={\bf O} とおきます。

\begin{eqnarray}
&&\frac{\partial}{\partial {\bf\Sigma}}\ln p({\bf T}|{\bf X},{\bf w},{\bf\Sigma})={\bf O}\\
&&\Leftrightarrow-\frac{N}{2}\underbrace{\frac{\partial}{\partial {\bf\Sigma}}\ln|{\bf\Sigma}|}_{:=A}-\frac{1}{2}\sum_{n=1}^N\underbrace{\frac{\partial}{\partial {\bf\Sigma}}({\bf t}_n-{\bf y}_n)^\top{\bf\Sigma}^{-1}({\bf t}_n-{\bf y}_n)}_{:=B}={\bf O}\tag{5}
\end{eqnarray}

A を計算します。

\begin{eqnarray}
\underbrace{\frac{\partial}{\partial {\bf\Sigma}}\ln|{\bf\Sigma}|}_{(1)}&=&({\bf\Sigma}^{-1})^\top\\
&=&{\bf\Sigma}^{-1}\tag{6}
\end{eqnarray}

B を計算します。

\begin{eqnarray}
\frac{\partial}{\partial {\bf\Sigma}}({\bf t}_n-{\bf y}_n)^\top{\bf\Sigma}^{-1}({\bf t}_n-{\bf y}_n)&=&\frac{\partial}{\partial {\bf\Sigma}}{\rm Tr}\left(({\bf t}_n-{\bf y}_n)^\top{\bf\Sigma}^{-1}({\bf t}_n-{\bf y}_n)\right)\\
&=&\underbrace{\frac{\partial}{\partial {\bf\Sigma}}{\rm Tr}\left({\bf\Sigma}^{-1}({\bf t}_n-{\bf y}_n)({\bf t}_n-{\bf y}_n)^\top\right)}_{(C.28)}\\
&=&-{\bf\Sigma}^{-1}({\bf t}_n-{\bf y}_n)({\bf t}_n-{\bf y}_n)^\top{\bf\Sigma}^{-1}\tag{7}
\end{eqnarray}

(6),(7)(5) に代入します。

\begin{eqnarray}
&&-\frac{N}{2}{\bf\Sigma}^{-1}-\frac{1}{2}\sum_{n=1}^N\left(-{\bf\Sigma}^{-1}({\bf t}_n-{\bf y}_n)({\bf t}_n-{\bf y}_n)^\top{\bf\Sigma}^{-1}\right)={\bf O}\\
&&\Leftrightarrow\frac{N}{2}{\bf\Sigma}^{-1}=\frac{1}{2}{\bf\Sigma}^{-1}\left(\sum_{n=1}^N({\bf t}_n-{\bf y}_n)({\bf t}_n-{\bf y}_n)^\top\right){\bf\Sigma}^{-1}\\
&&\Leftrightarrow{\bf\Sigma}=\frac{1}{N}\sum_{n=1}^N({\bf t}_n-{\bf y}_n)({\bf t}_n-{\bf y}_n)^\top\tag{8}
\end{eqnarray}

補足

(1),(C.28) の導出については、ベクトルと行列に関する微分の公式導出をご覧ください。

目次へ戻る