LoginSignup
0
0

More than 3 years have passed since last update.

はじめに

本記事は, 機械学習の教科書の決定版ともいえる, Christopher Bishop先生による『Pattern Recognition and Machine Learning (パターン認識と機械学習)』 , 通称PRMLの演習問題のうち, 私が解いた問題の解答を記したものです. これは, 私の所属する生物測定学研究室 の輪読会でPRMLを取り扱っており, その勉強の一環として演習問題を解いたときのものです. なお, 他の演習問題の解答例に関する記事については, PRML 演習問題 解答集 まとめ をご覧ください.

問題

\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)式である.
以上で証明は終了である. (証明終)

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0