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

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

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

概要

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

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})ラプラス近似を使うために対数をとった\Psi(\mathbf{a}_{N})を考え、それが、


\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{4} \\

となりました。今回はこの計算の続きで、式中の正規分布の表現Nに定義通り代入して計算するのみです。そろそろおさらいのほうが長くなってきているという。

\Psi(\mathbf{a}_{N})の計算

式(4)におけるN(\mathbf{a}_{N}|\mathbf{0},\mathbf{C}_{N})は、多変量正規分布の式をそのままあてはめれば*1


\displaystyle N(\mathbf{a}_{N}|\mathbf{0},\mathbf{C}_{N}) = \frac{1}{\sqrt{(2 \pi)^{N} \det \mathbf{C_{N}}}} \exp(-\frac{1}{2}\mathbf{a}_{N}^{T} \mathbf{C}_{N}^{-1} \mathbf{a}_{N}) \tag{5}

です。そして\sigmaはシグモイド関数ですから、式(4)は


\displaystyle \Psi(\mathbf{a}_{N}) = \ln  \prod_{n=1}^{N} \frac{\exp(a_{n}t_{n})}{1+\exp(a_{N})} + \ln \frac{1}{\sqrt{ (2 \pi)^{N} \det \mathbf{C_{N}} }} \exp(-\frac{1}{2}\mathbf{a}_{N}^{T} \mathbf{C}_{N}^{-1} \mathbf{a}_{N}) \tag{6}

です。これを展開してけば、


\begin{eqnarray*}
\displaystyle \Psi(\mathbf{a}_{N}) &=& \sum_{n=1}^{N}  \ln  \frac{e^{a_{n}t_{n}} }{1+e^{a_{n}}} + \ln \frac{1}{\sqrt{ (2 \pi)^{N} \det \mathbf{C_{N}} }} + \ln \exp(-\frac{1}{2}\mathbf{a}_{N}^{T} \mathbf{C}_{N}^{-1} \mathbf{a}_{N}) \tag{7}  \\
&=& \sum_{n=1}^{N}  \ln  e^{a_{n}t_{n}} - \sum_{n=1}^{N} \ln (1+e^{a_{n}}) - \frac{1}{2}\ln (2 \pi)^{N} \det \mathbf{C_{N}} - \frac{1}{2}\mathbf{a}_{N}^{T} \mathbf{C}_{N}^{-1} \mathbf{a}_{N} \tag{8} \\
&=& \sum_{n=1}^{N}   a_{n}t_{n} - \sum_{n=1}^{N} \ln (1+e^{a_{n}}) - \frac{N}{2} \ln 2 \pi - \frac{1}{2} \ln \det \mathbf{C_{N}} - \frac{1}{2}\mathbf{a}_{N}^{T} \mathbf{C}_{N}^{-1} \mathbf{a}_{N} \tag{9} \\
&=&  \mathbf{t}_{N}^{T} \mathbf{a}_{N} -  \sum_{n=1}^{N} \ln (1+e^{a_{n}})  - \frac{N}{2} \ln 2 \pi - \frac{1}{2} \ln \det \mathbf{C_{N}} - \frac{1}{2}\mathbf{a}_{N}^{T} \mathbf{C}_{N}^{-1} \mathbf{a}_{N} \tag{10} 
\end{eqnarray*}

です。ラプラス近似をするためには、 \nabla \Psi(\mathbf{a}_{N}^{\prime})=\mathbf{0}となる点 \mathbf{a}_{N}^{\prime} と、\nabla\nabla \Psi(\mathbf{a}_{N}^{\prime})の値が必要になります。それが求められれば、p(\mathbf{a}_{N}|\mathbf{t}_{N})


\displaystyle p(\mathbf{a}_{N}|\mathbf{t}_{N}) \simeq p(\mathbf{a}_{N}^{\prime}|\mathbf{t}_{N}) \exp \left\{  -\frac{1}{2}(\mathbf{a}_{N} - \mathbf{a}_{N}^{\prime})^{T} \mathbf{H}(\mathbf{a}_{N}-\mathbf{a}_{N}^{\prime}) \right\} \tag{11}

と近似できます。ここで\mathbf{H}=-\nabla\nabla \Psi(\mathbf{a}_{N}^{\prime})です。さらに、p(\mathbf{a}_{N}|\mathbf{t}_{N})は確率密度関数ですから、


\begin{eqnarray*}
\displaystyle p(\mathbf{a}_{N}|\mathbf{t}_{N}) &\simeq& \frac{1}{\sqrt{ (2 \pi)^{N} \det \mathbf{H}^{-1} }} \exp \left\{  -\frac{1}{2}(\mathbf{a}_{N} - \mathbf{a}_{N}^{\prime})^{T} \mathbf{H}(\mathbf{a}_{N}-\mathbf{a}_{N}^{\prime}) \right\} \tag{12}\\
&\simeq& N(\mathbf{a}_{N}|\mathbf{a}_{N}^{\prime},\mathbf{H}^{-1}) \tag{13}
\end{eqnarray*}

と書けます。

さて、 \mathbf{a}_{N}^{\prime} を求めていきたいのですが、これは解析的に求めることができないためニュートン法(多変数の場合)を使います。

続きは次回

www.iwanttobeacat.com