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

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

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

概要

前回の以下の記事の続きです。

www.iwanttobeacat.com

前回までのおさらい

訓練データ\mathbf{x}=\{\mathbf{x}_{1},\cdots,\mathbf{x}_{N} \}\mathbf{t}_{N}=(t_1,\cdots,t_{N})^{T}が与えられたとき、新たな入力\mathbf{x}_{N+1}に対するt_{N+1}=1の確率、すなわちp(t_{N+1}=1 | \mathbf{t}_{N},\mathbf{x},\mathbf{x}_{N+1} )を求めることが目標です。そしてこれは、いくつかの式変形によって以下のように表せました。


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

式(1)下線部はシグモイド関数の出力 \sigma(a_{N+1})ですが、p(a_{N+1}|\mathbf{t}_{N})は解析的に求めらません。これは


\displaystyle p(a_{N+1}|\mathbf{t}_{N}) = 
\begin{align}
\int 
  \underset{A} {\underline{p(a_{N+1}|\mathbf{a}_{N}) }}
 \,
  \underset{B} {\underline{p(\mathbf{a}_{N}|\mathbf{t}_{N}) }}
 d\mathbf{a}_{N}
\end{align}
 \tag{2}

と変形することができました。さらに式(2)下線部Aは


p(a_{N+1}|\mathbf{a}_{N}) = N(a_{N+1}| \mathbf{k}^{T}\mathbf{C}_{N}^{-1}\mathbf{a}_{N}, c- \mathbf{k}^{T}\mathbf{C}_{N}^{-1}\mathbf{k}) \tag{3}

と求めることができました。そして式(2)下線部Bのp(\mathbf{a}_{N}|\mathbf{t}_{N})ラプラス近似で正規分布の形にして式(2)を計算していく方針です。

p(\mathbf{a}_{N}|\mathbf{t}_{N})の計算

ベイズの定理*1より、


\displaystyle p(\mathbf{a}_{N}|\mathbf{t}_{N}) = \frac{p(\mathbf{t}_{N} | \mathbf{a}_{N})p(\mathbf{a}_{N})}{p(\mathbf{t}_{N})} \tag{4}

です。正規化項であるp(\mathbf{t}_{N})を無視すれば、


p(\mathbf{a}_{N}|\mathbf{t}_{N}) \approx p(\mathbf{t}_{N} | \mathbf{a}_{N})p(\mathbf{a}_{N}) \tag{5}

です。ラプラス近似を行うためには、関数の対数をとり、そのヘッセ行列などを求めなくてはなりませんので、


\ln p(\mathbf{a}_{N}|\mathbf{t}_{N}) \approx \ln (p(\mathbf{t}_{N} | \mathbf{a}_{N})p(\mathbf{a}_{N})) \tag{6}

を考えます。式(6)を \Psi(\mathbf{a}_{N})とおいて、


\begin{eqnarray*}
\Psi(\mathbf{a}_{N}) &=& \ln ( p(\mathbf{t}_{N} | \mathbf{a}_{N}) p(\mathbf{a}_{N})) \tag{7} \\
&=& \ln  p(\mathbf{t}_{N} | \mathbf{a}_{N}) + \ln p(\mathbf{a}_{N}) \tag{8}
\end{eqnarray*}

です。ここで、まず式(8)の右辺p(\mathbf{t}_{N} | \mathbf{a}_{N})を考えます。p(t_{n}=1|a_{n})=\sigma(a_{n})p(t_{n}=0|a_{n})=1-\sigma(a_{n})なので、


\displaystyle p(\mathbf{t}_{N} | \mathbf{a}_{N}) =\prod_{n=1}^{N} \sigma(a_{n})^{t_{n}} \left( 1-\sigma(a_{n}) \right)^{1-t_{n}} \tag{9}

と書けます。\sigma(a)はシグモイド関数で、


\displaystyle \sigma(a) = \frac{1}{1+\exp(-a)} \tag{10}

ですから、


\displaystyle \sigma(a)^{t} \left( 1-\sigma(a) \right)^{1-t} = \left( \frac{1}{1+\exp(-a)} \right)^{t} \left( 1- \frac{1}{1-\exp(-a)}\right)^{1-t} \tag{11}

です。式(11)右辺を変形していけば、


\begin{eqnarray*}

 &=& \left( \frac{1}{1+\exp(-a)} \right)^{t} \left( \frac{\exp(-a)}{1-\exp(-a)}\right)^{1-t}\tag{12} \\
&=&  \frac{1}{ ( 1+\exp(-a) )^{t} } \frac{\exp(-a+at)}{ ( 1+\exp(-a) )^{1-t} }  \tag{13}\\
&=&  \frac{\exp(-a+at)}{  1+\exp(-a)  }  \tag{14}\\
&=&  \exp(at) \frac{\exp(-a)}{  1+\exp(-a)  }  \tag{15}\\
&=&  \exp(at) \frac{1}{  \exp(a)+1  }  \tag{16}\\
&=&  \exp(at) \sigma(-a)  \tag{17}\\
\end{eqnarray*}

と計算できます。従って式(9)は、


\displaystyle p(\mathbf{t}_{N} | \mathbf{a}_{N}) =\prod_{n=1}^{N} \exp(a_{n}t_{n}) \sigma(-a_{n}) \tag{18}

です。

そして、式(8)右辺のもう1つの項p(\mathbf{a}_{N})は、ガウス過程という前提条件で、


p(\mathbf{a}_{N}) = N(\mathbf{a}_{N}|\mathbf{0},\mathbf{C}_{N}) \tag{19}

でした。

以上より、


\displaystyle \Psi(\mathbf{a}_{N}) = \ln  \prod_{n=1}^{N} \exp(a_{n}t_{n}) \sigma(-a_{n}) + \ln N(\mathbf{a}_{N}|\mathbf{0},\mathbf{C}_{N}) \tag{20} \\

です。いろいろ計算がややこしくて何をやっているか見失いそうになるんですが、今はp(\mathbf{a}_{N}|\mathbf{t}_{N})をラプラス近似で正規分布の形にもっていこうとしている途中です、、、。

続きは次回 www.iwanttobeacat.com