はじめに
本記事は, 機械学習の教科書の決定版ともいえる, Christopher Bishop先生による[『Pattern Recognition and Machine Learning (パターン認識と機械学習)』] (https://www.microsoft.com/en-us/research/people/cmbishop/prml-book/) , 通称PRMLの演習問題のうち, 私が解いた問題の解答を記したものです. これは, 私の所属する[生物測定学研究室] (https://www.ut-biomet.org/) の輪読会でPRMLを取り扱っており, その勉強の一環として演習問題を解いたときのものです. なお, 他の演習問題の解答例に関する記事については, [PRML 演習問題 解答集 まとめ] (https://qiita.com/Lab_of_Biomet/items/15e38ca34fafa8176d89) をご覧ください.
問題
\begin{align*}
p ( \mathbf { y } ) = \mathcal { N } ( \mathbf { y } | \mathbf { A } \boldsymbol { \mu } + \mathbf { b } , \mathbf { L } ^ { - 1 } + \mathbf { A } \mathbf { \Lambda } ^ { - 1 } \mathbf { A } ^ { \mathrm
{ T } } )
\tag {2.115}
\end{align*}
と
\begin{align*}
p ( \mathbf { x } | \mathbf { y } ) = \mathcal { N } ( \mathbf { x } | \mathbf { \Sigma } \left\{ \mathbf { A } ^ { \mathrm { T } } \mathbf { L } ( \mathbf { y } - \mathbf { b } ) + \mathbf { \Lambda } \boldsymbol { \mu } \right\} , \mathbf { \Sigma } )
\tag {2.116}
\end{align*}
の結果と,
\begin{align*}
\left( \mathbf { P } ^ { - 1 } + \mathbf { B } ^ { \mathrm { T } } \mathbf { R } ^ { - 1 } \mathbf { B } \right) ^ { - 1 } \mathbf { B } ^ { \mathrm { T } } \mathbf { R } ^ { - 1 } = \mathbf { P } \mathbf { B } ^ { \mathrm { T } } \left( \mathbf { B } \mathbf { P } \mathbf { B } ^ { \mathrm { T } } + \mathbf { R } \right) ^ { - 1 }
\tag {C.5}
\end{align*}
と
\begin{align*}
\left( \mathbf { A } + \mathbf { B D } ^ { - 1 } \mathbf { C } \right) ^ { - 1 } = \mathbf { A } ^ { - 1 } - \mathbf { A } ^ { - 1 } \mathbf { B } \left( \mathbf { D } + \mathbf { C A } ^ { - 1 } \mathbf { B } \right) ^ { - 1 } \mathbf { C A } ^ { - 1 }
\tag {C.7}
\end{align*}
の行列恒等式をともに用いて,
\begin{align*}
\boldsymbol { \mu } _ { n } = \mathbf { A } \boldsymbol { \mu } _ { n - 1 } + \mathbf { K } _ { n } \left( \mathbf { x } _ { n } - \mathbf { C } \mathbf { A } \mu _ { n - 1 } \right),
\tag {13.89}
\end{align*}
\begin{align*}
\mathbf { V } _ { n } = \left( \mathbf { I } - \mathbf { K } _ { n } \mathbf { C } \right) \mathbf { P } _ { \boldsymbol { n } - 1 },
\tag {13.90}
\end{align*}
\begin{align*}
c _ { n } = \mathcal { N } \left( \mathbf { x } _ { n } | \mathbf { C } \mathbf { A } \boldsymbol { \mu } _ { n - 1 } , \mathbf { C } \mathbf { P } _ { n - 1 } \mathbf { C } ^ { \mathrm { T } } + \mathbf { \Sigma } \right),
\tag {13.91}
\end{align*}
の結果を導け. ここで, カルマン利得行列$\mathbf{K}_n$は
\begin{align*}
\mathbf { K } _ { n } = \mathbf { P } _ { n - 1 } \mathbf { C } ^ { \mathrm { T } } \left( \mathbf { C } \mathbf { P } _ { n - 1 } \mathbf { C } ^ { \mathrm { T } } + \mathbf { \Sigma } \right) ^ { - 1 }
\tag {13.92}
\end{align*}
で定義される.
解答
まず, 2章の内容を思い出そう. $\mathbf { x }$の周辺ガウス分布
\begin{align*}
p ( \mathbf { x } ) = \mathcal { N } ( \mathbf { x } | \boldsymbol { \mu } , \mathbf { \Lambda } ^ { - 1 } )
\tag {2.113}
\end{align*}
と, $\mathbf { x }$が与えられたときの$\mathbf { y }$の条件付き分布
\begin{align*}
p ( \mathbf { y } | \mathbf { x } ) = \mathcal { N } ( \mathbf { y } | \mathbf { A } \mathbf { x } + \mathbf { b } , \mathbf { L } ^ { - 1 } )
\tag {2.114}
\end{align*}
が与えられたとすると, $\mathbf { y }$の周辺分布が
\begin{align*}
p ( \mathbf { y } ) = \mathcal { N } ( \mathbf { y } | \mathbf { A } \boldsymbol { \mu } + \mathbf { b } , \mathbf { L } ^ { - 1 } + \mathbf { A } \mathbf { \Lambda } ^ { - 1 } \mathbf { A } ^ { \mathrm
{ T } } )
\tag {2.115}
\end{align*}
で, $\mathbf { y }$が与えられたときの$\mathbf { x }$の条件付き分布が
\begin{align*}
p ( \mathbf { x } | \mathbf { y } ) = \mathcal { N } ( \mathbf { x } | \mathbf { \Sigma } \left\{ \mathbf { A } ^ { \mathrm { T } } \mathbf { L } ( \mathbf { y } - \mathbf { b } ) + \mathbf { \Lambda } \boldsymbol { \mu } \right\} , \mathbf { \Sigma } ),
\tag {2.116}
\end{align*}
ただし
\begin{align*}
\mathbf { \Sigma } = \left( \mathbf { \Lambda } + \mathbf { A } ^ { \mathrm { T } } \mathbf { L } \mathbf { A } \right) ^ { - 1 }
\tag {2.117}
\end{align*}
で与えられた.
ここで,
\begin{align*}
c _ { n } \mathcal { N } \left( \mathbf { z } _ { n } | \boldsymbol { \mu } _ { n } , \mathbf { V } _ { n } \right) = \mathcal { N } \left( \mathbf { x } _ { n } | \mathbf { C } \mathbf { z } _ { n } , \mathbf { \Sigma } \right) \times \\
\int \mathcal { N } \left( \mathbf { z } _ { n } | \mathbf { A } \mathbf { z } _ { n - 1 } , \mathbf { \Gamma } \right) \mathcal { N } \left( \mathbf { z } _ { n - 1 } | \boldsymbol { \mu } _ { n - 1 } , \mathbf { V } _ { n - 1 } \right) \mathrm { d } \mathbf { z } _ { n - 1 }
\tag {13.86}
\end{align*}
及び
\begin{align*}
\int \mathcal { N } \left( \mathbf { z } _ { n } | \mathbf { A } \mathbf { z } _ { n - 1 } , \mathbf { \Gamma } \right) \mathcal { N } \left( \mathbf { z } _ { n - 1 } | \boldsymbol { \mu } _ { n - 1 } , \mathbf { V } _ { n - 1 } \right) \mathrm { d } \mathbf { z } _ { n - 1 } \\
= \mathcal { N } \left( \mathbf { z } _ { n } | \mathbf { A } \boldsymbol { \mu } _ { n - 1 } , \mathbf { P } _ { n - 1 } \right),
\tag {13.87}
\end{align*}
\begin{align*}
\mathbf { P } _ { n - 1 } = \mathbf { A } \mathbf { V } _ { n - 1 } \mathbf { A } ^ { \mathrm { T } } + \mathbf { \Gamma }
\tag {13.88}
\end{align*}
から, 今回の例では$\mathbf { x }$の周辺ガウス分布 (2.113)式に
\begin{align*}
p ( \mathbf { z } _ { n } ) = \mathcal { N } \left( \mathbf { z } _ { n } | \mathbf { A } \boldsymbol { \mu } _ { n - 1 } , \mathbf { P } _ { n - 1 } \right)
\tag {13.21.1}
\end{align*}
が相当し, $\mathbf { x }$が与えられたときの$\mathbf { y }$の条件付き分布(2.114)式に
\begin{align*}
p ( \mathbf { x } _ { n } | \mathbf { z } _ { n } ) = \mathcal { N } \left( \mathbf { x } _ { n } | \mathbf { C } \mathbf { z } _ { n } , \mathbf { \Sigma } \right)
\tag {13.21.2}
\end{align*}
が相当する. したがって, (2.113)式と(13.21.1)式, さらに(2.114)式と(13.21.2)式を比較することで, (2.115)式および(2.116)式に, $ \mathbf { x } = \mathbf { z } _ { n } $, $ \boldsymbol { \mu } = \mathbf { A } \boldsymbol { \mu } _ { n - 1 } $, $ \mathbf { \Lambda } = \mathbf { P } _ { n - 1 } ^ { - 1 } $, $ \mathbf { y } = \mathbf { x } _ { n } $, $ \mathbf { A } = \mathbf { C } $, $ \mathbf { b } = \mathbf { 0 } $, $ \mathbf { L } = \mathbf { \Sigma } ^ { - 1 } $ を代入すれば 求める解が得られることになる.
これらを代入すると,
\begin{align*}
\boldsymbol { \mu } _ { n } = \mathbf { V } \left\{ \mathbf { C } ^ { \mathrm { T } } \mathbf { \Sigma } ^ { - 1 } \mathbf { x } _ { n } + \mathbf { P } _ { n - 1 } ^ { - 1 } \mathbf { A } \boldsymbol { \mu } _ { n - 1 } \right\},
\tag {13.21.3}
\end{align*}
\begin{align*}
\mathbf { V } _ { n } = \left( \mathbf { P } _ { n - 1 } ^ { - 1 } + \mathbf { C } ^ { \mathrm { T } } \mathbf { \Sigma } ^ { - 1 } \mathbf { C } \right) ^ { - 1 },
\tag {13.21.4}
\end{align*}
\begin{align*}
c _ { n } = \mathcal { N } \left( \mathbf { x } _ { n } | \mathbf { C } \mathbf { A } \boldsymbol { \mu } _ { n - 1 } , \mathbf { C P } _ { n - 1 } \mathbf { C } ^ { \mathrm { T } } + \mathbf { \Sigma } \right)
\tag {13.91}
\end{align*}
が得られる. ここで, カルマン利得行列を
\begin{align*}
\mathbf { K } _ { n } = \mathbf { P } _ { n - 1 } \mathbf { C } ^ { \mathrm { T } } \left( \mathbf { C } \mathbf { P } _ { n - 1 } \mathbf { C } ^ { \mathrm { T } } + \mathbf { \Sigma } \right) ^ { - 1 }
\tag {13.92}
\end{align*}
のように定義すると,
\begin{align*}
\left( \mathbf { P } ^ { - 1 } + \mathbf { B } ^ { \mathrm { T } } \mathbf { R } ^ { - 1 } \mathbf { B } \right) ^ { - 1 } \mathbf { B } ^ { \mathrm { T } } \mathbf { R } ^ { - 1 } = \mathbf { P } \mathbf { B } ^ { \mathrm { T } } \left( \mathbf { B } \mathbf { P } \mathbf { B } ^ { \mathrm { T } } + \mathbf { R } \right) ^ { - 1 }
\tag {C.5}
\end{align*}
より, カルマン利得行列は
\begin{align*}
\mathbf { K } _ { n } &= \mathbf { P } _ { n - 1 } \mathbf { C } ^ { \mathrm { T } } \left( \mathbf { C } \mathbf { P } _ { n - 1 } \mathbf { C } ^ { \mathrm { T } } + \mathbf { \Sigma } \right) ^ { - 1 } \\
&= \left( \mathbf { P } _ { n - 1 } ^ { - 1 } + \mathbf { C } ^ { \mathbf { T } } \mathbf { \Sigma } ^ { - 1 } \mathbf { C } \right) ^ { - 1 } \mathbf { C } ^ { \mathrm { T } } \mathbf { \Sigma } ^ { - 1 } \\
&= \mathbf { V } _ { n } \mathbf { C } ^ { \mathrm { T } } \mathbf { \Sigma } ^ { - 1 }
\tag {13.21.5}
\end{align*}
と変形できる. さらに,
\begin{align*}
\left( \mathbf { A } + \mathbf { B D } ^ { - 1 } \mathbf { C } \right) ^ { - 1 } = \mathbf { A } ^ { - 1 } - \mathbf { A } ^ { - 1 } \mathbf { B } \left( \mathbf { D } + \mathbf { C A } ^ { - 1 } \mathbf { B } \right) ^ { - 1 } \mathbf { C A } ^ { - 1 }
\tag {C.7}
\end{align*}
より, $ \mathbf { V } _ { n } $に関しては,
\begin{align*}
\mathbf { V } _ { n } &= \left( \mathbf { P } _ { n - 1 } ^ { - 1 } + \mathbf { C } ^ { \mathrm { T } } \mathbf { \Sigma } ^ { - 1 } \mathbf { C } \right) ^ { - 1 }, \\
&= \mathbf { P } _ { n - 1 } - \mathbf { P } _ { n - 1 } \mathbf { C } ^ { \mathrm { T } } \left( \mathbf { \Sigma } + \mathbf { C } \mathbf { P } _ { n - 1 } \mathbf { C } ^ { \mathrm { T } } \right) ^ { - 1 } \mathbf { C } \mathbf { P } _ { n - 1 } \\
&= \left( \mathbf { I } - \mathbf { K } _ { n } \mathbf { C } \right) \mathbf { P } _ { \boldsymbol { n } - 1 }
\tag {13.21.6}
\end{align*}
と変形でき, これはまさしく(13.90)式である.
最後に$ \boldsymbol { \mu } _ { n } $に関しての変形は, (13.21.3), (13.21.5), (13.21.6)式を用いれば,
\begin{align*}
\boldsymbol { \mu } _ { n } &= \mathbf { V } \left\{ \mathbf { C } ^ { \mathrm { T } } \mathbf { \Sigma } ^ { - 1 } \mathbf { x } _ { n } + \mathbf { P } _ { n - 1 } ^ { - 1 } \mathbf { A } \boldsymbol { \mu } _ { n - 1 } \right\} \\
&= \mathbf { K } _ { n } \mathbf { x } _ { n } + \left( \mathbf { I } - \mathbf { K } _ { n } \mathbf { C } \right) \mathbf { A } \boldsymbol { \mu } _ { n - 1 } \\
&= \mathbf { A } \boldsymbol { \mu } _ { n - 1 } + \mathbf { K } _ { n } \left( \mathbf { x } _ { n } - \mathbf { C } \mathbf { A } \mu _ { n - 1 } \right)
\tag {13.21.7}
\end{align*}
と導け, これはまさしく(13.89)式である.
以上で証明は終了である. (証明終)