機械学習に詳しくなりたいブログ

機械学習や数学について勉強した内容を中心に書きます。100%趣味です。記事は数学的に厳密でなかったり誤りを含んでいるかもしれません。ご指摘頂ければ幸いです。

ガウス過程による分類(6)

ガウス過程による分類(5)の続きです。

何をやっている途中かと言うと、最終目標である


\displaystyle p(t_{N+1}=1 | \mathbf{t}_{N} )= \int p(t_{N+1}=1 |a_{N+1} )p(a_{N+1}|\mathbf{t}_{N}) d a_{N+1} \tag{1}

を求めるため、右辺後半の項を計算している途中です。ラプラス近似やニュートン法などを駆使し、ようやくガウス過程による分類(2)の式(10)、ガウス過程による分類(5)の式(16)により、


\begin{eqnarray*}
p(a_{N+1}|\mathbf{t}_{N}) &=& \int p(a_{N+1}|\mathbf{a}_{N}) p(\mathbf{a}_{N}|\mathbf{t}_{N}) d\mathbf{a}_{N} \tag{2} \\
&\simeq& N(a_{N+1}| \mathbf{k}^{T}\mathbf{C}_{N}^{-1}\mathbf{a}_{N}, c- \mathbf{k}^{T}\mathbf{C}_{N}^{-1}\mathbf{k})N(\mathbf{a}_{N}|\mathbf{a}_{N}^{\prime}, \mathbf{H}^{-1})  \tag{3}
\end{eqnarray*}

と求めることができました。今回はこれを計算してきます。

計算するために、以下の公式を使います。


\begin{eqnarray*}
p(\mathbf x) &=& N(\mathbf x | \boldsymbol\mu, \boldsymbol \Lambda^{-1}) \tag{4} \\
p(\mathbf y | \mathbf x) &=& N(\mathbf y | \mathbf A \mathbf x + \mathbf b,\mathbf{L}^{-1}) \tag{5}
\end{eqnarray*}

であるとき、


p(\mathbf y) = N(\mathbf y | \mathbf A \mathbf \mu + \mathbf b , \mathbf{L}^{-1} + \mathbf A \boldsymbol\Lambda^{-1} \mathbf A^{T}) \tag{6}

ここで、\boldsymbol\mu = \mathbf{a}_{N}^{\prime}\boldsymbol{\Lambda}^{-1} = \mathbf{H}^{-1}\mathbf{A}=\mathbf{k}^{T}\mathbf{C}_{N}^{-1}\mathbf{L}^{-1}=c-\mathbf{k}^{T}\mathbf{C}_{N}^{-1}\mathbf{k}とすれば、


\mathbf{A}\boldsymbol{\mu} + \mathbf{b} = \mathbf{k}^{T}\mathbf{C}_{N}^{-1}\mathbf{a}_{N}^{\prime} \tag{7}

です。ここでガウス過程による分類(5)の式(3)より、


\begin{eqnarray*}
\mathbf{t}_{N}-\boldsymbol {\sigma}_{N}-\mathbf{C}_{N}^{-1}\mathbf{a}_{N}^{\prime} &=& 0 \tag{8}\\
\mathbf{a}_{N}^{\prime} &=& \mathbf{C}_{N}(\mathbf{t}_{N}-\boldsymbol {\sigma}_{N}) \tag{9}
\end{eqnarray*}

です。なお式(9)の右辺の\boldsymbol {\sigma}_{N}の中にaが入っていますからこれで\mathbf{a}_{N}^{\prime}を求めることはできてません。式(7)に代入すれば、


\mathbf{A}\boldsymbol{\mu} + \mathbf{b} = \mathbf{k}^{T}\mathbf{C}_{N}(\mathbf{t}_{N}-\boldsymbol {\sigma}_{N}) \tag{10}

となり、これがp(a_{N+1}|\mathbf{t})の平均値です。次に分散を求めますと、


\mathbf{L}^{-1} + \mathbf A \boldsymbol\Lambda^{-1} \mathbf A^{T} = c-\mathbf{k}^{T}\mathbf{C}_{N}^{-1}\mathbf{k}+\mathbf{k}^{T}\mathbf{C}_{N}^{-1}\mathbf{H}^{-1}(\mathbf{k}^{T}\mathbf{C}_{N}^{-1})^{T} \tag{11}

です。ここでガウス過程による分類(5)より、\mathbf{H}^{-1}=\mathbf{W}_{N}+\mathbf{C}_{N}^{-1}です。さらに転置行列の定理転置行列の逆行列\mathbf{C}_{N}は共分散行列だから対称行列であることに注意し、式(11)は


\mathbf{L}^{-1} + \mathbf A \boldsymbol\Lambda^{-1} \mathbf A^{T} = c-\mathbf{k}^{T}\mathbf{C}_{N}^{-1}\mathbf{k}+\mathbf{k}^{T}\mathbf{C}_{N}^{-1}(\mathbf{W}_{N}+\mathbf{C}_{N}^{-1})^{-1}\mathbf{C}_{N}^{-1}\mathbf{k} \tag{12}

となります。

さて、Woodburyの公式より、


(\mathbf{A}+\mathbf{B}\mathbf{C}\mathbf{D})^{-1} = \mathbf{A}^{-1} - \mathbf{A}^{-1}\mathbf{B}(\mathbf{C}^{-1}+\mathbf{D}\mathbf{A}^{-1}\mathbf{B})^{-1}\mathbf{D}\mathbf{A}^{-1} \tag{13}

でした。式(13)において\mathbf{B}=\mathbf{D}=\mathbf{I}とすれば、


(\mathbf{A}+\mathbf{C})^{-1} = \mathbf{A}^{-1} - \mathbf{A}^{-1}(\mathbf{C}^{-1}+\mathbf{A}^{-1})\mathbf{A}^{-1} \tag{14}

となります。式(14)を(\mathbf{C}_{N}^{-1}+\mathbf{W}_{N})^{-1}に対して適用すれば、式(12)は


\begin{eqnarray*}
式(12) &=& c-\mathbf{k}^{T}\mathbf{C}_{N}^{-1}\mathbf{k}+\mathbf{k}^{T}\mathbf{C}_{N}^{-1} \left\{   \mathbf{C}_{N}-\mathbf{C}_{N}(\mathbf{W}_{N}^{-1}+\mathbf{C}_{N})\mathbf{C}_{N} \right\}\mathbf{C}_{N}^{-1}\mathbf{k} \tag{15} \\
&=& c-\mathbf{k}^{T}\mathbf{C}_{N}^{-1}\mathbf{k}+\mathbf{k}^{T}\mathbf{C}_{N}^{-1}\mathbf{k}  -\mathbf{k}^{T}(\mathbf{W}_{N}^{-1}+\mathbf{C}_{N})\mathbf{k} \tag{16} \\
&=& c-\mathbf{k}^{T}(\mathbf{W}_{N}^{-1}+\mathbf{C}_{N})\mathbf{k} \tag{17} \\
\end{eqnarray*}

となります。

平均と分散が式(10)、式(17)の通り求まり、


p(a_{N+1}|\mathbf{t}_{N}) \simeq N(\mathbf{a}_{N+1} | \mathbf{k}^{T}\mathbf{C}_{N}(\mathbf{t}_{N}-\boldsymbol {\sigma}_{N}) ,c-\mathbf{k}^{T}(\mathbf{W}_{N}^{-1}+\mathbf{C}_{N})\mathbf{k}  ) \tag{18} \\

です。

p(t_{N+1}=1|a_{N+1})=\sigma(a_{N+1})でしたから、これと式(18)を求めたかった式(1)に代入すれば、


\displaystyle p(t_{N+1} 1 | \mathbf{t}_{N} )\simeq \int \sigma(a_{N+1})N(\mathbf{a}_{N+1} | \mathbf{k}^{T}\mathbf{C}_{N}(\mathbf{t}_{N}-\boldsymbol {\sigma}_{N}) ,c-\mathbf{k}^{T}(\mathbf{W}_{N}^{-1}+\mathbf{C}_{N})\mathbf{k}  ) d a_{N+1} \tag{19}

となります。

ここで以下の近似を使います。


\displaystyle \int \sigma(a)N(a|\mu,\sigma^{2})d\sigma \simeq \sigma\left(\frac{\mu}{\sqrt {1+\displaystyle\frac{\pi\sigma^{2}}{8} }} \right)   \tag{20}

この近似の導出は追っていないのですが、とりあえず既知のものとして使います。

すると式(19)は、


\displaystyle p(t_{N+1}=1 | \mathbf{t}_{N} )\simeq \sigma \left(   \frac{\mathbf{k}^{T}\mathbf{C}_{N}(\mathbf{t}_{N}-\boldsymbol {\sigma}_{N})}{1+\displaystyle \frac{\pi}{8}\left\{  c-\mathbf{k}^{T}(\mathbf{W}_{N}^{-1}+\mathbf{C}_{N})\mathbf{k}  \right\} } \right) \tag{21}

となり、非常に長い道のりでしたが、これで新たな入力に対する予測値を計算することができます。式(21)を用いた実験結果は次回:ガウス過程による分類(7)実験結果