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

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

ガウス過程による回帰(2)

概要

前回の記事の続きです。

www.iwanttobeacat.com

訓練データ(\mathbf{x},\mathbf{t})が得られているとき、新たな入力\mathbf{x}_{N+1}に対するt_{N+1}を求めること、つまりp(t_{N+1}| \mathbf{t})を求めることが目標です。*1 先回は、


\displaystyle p(t_{N+1}| \mathbf{t}) = \frac{p(t_{N+1},\mathbf{t})}{p(\mathbf{t})} \tag{1}

におけるp(t_{N+1},\mathbf{t}) を計算したところまでです。今回は式(1)を計算していきます。

計算・・・

計算の方針は、p(\mathbf{a},\mathbf{b})が正規分布であるとき、p(\mathbf{a}|\mathbf{b})もまた正規分布であるという性質を用いることです。この性質より、p(t_{N+1},\mathbf{t})は正規分布でしたので、p(t_{N+1}| \mathbf{t})も正規分布となります。つまり、式(1)は、


\displaystyle p(t_{N+1}| \mathbf{t}) = \frac{1}{\sqrt{2\pi \sigma^{2}} }\exp \left\{ -\frac{(t_{N+1}-\mu)^{2}}{2\sigma^{2}} \right\} \tag{2}

の形で書けるはずです。正規分布の形は、\mu\sigmaの値がわかれば1つに定まりますので、式(2)の指数部だけに注目してみます。多変量正規分布の確率密度関数は、多変量正規分布の式(5)ですから、p(t_{N+1},\mathbf{t})の指数部は、ガウス過程による回帰(1)の式(9)より、


\displaystyle \exp \left\{  - \frac{1}{2}(\mathbf{t},t_{N+1})^{T} \mathbf{C}_{N+1}^{-1} (\mathbf{t},t_{N+1}) \right\} \tag{3}

です。そしてp(\mathbf{t})の指数部はガウス過程による回帰(1)の式(8)より、


\displaystyle \exp \left(  - \frac{1}{2}\mathbf{t}^{T} \mathbf{C}_{N}^{-1} \mathbf{t} \right) \tag{4}

です。したがって、p(t_{N+1}| \mathbf{t})の指数部は、


\displaystyle \exp \left\{  - \frac{1}{2}(\mathbf{t},t_{N+1})^{T} \mathbf{C}_{N+1}^{-1} (\mathbf{t},t_{N+1}) +\frac{1}{2}\mathbf{t}^{T} \mathbf{C}_{N}^{-1} \mathbf{t} \right\} \tag{5}

となります。ここで、


  \mathbf{C}_{N+1}^{-1} = \left(
    \begin{array}{cc}
      \mathbf{A} & \mathbf{B}  \\
      \mathbf{C} & \mathbf{D}  \\
    \end{array}
  \right) \tag{6}

とおいて、式(5)の\expの中を展開していくと、


\displaystyle -\frac{\mathbf{D}}{2} \{ t_{N+1}^{2} + \mathbf{D}^{-1}(\mathbf{t}^{T}\mathbf{B}+\mathbf{C}\mathbf{t})t_{N+1} + const \} \tag{7}

となります。これを、\displaystyle -\frac{(t_{N+1}-\mu)^{2}}{2\sigma^{2}}の形にすれば\mu\sigmaが求まります。式(7)を平方完成すれば、


\displaystyle -\frac{\mathbf{D}}{2} \left\{ t_{N+1} + \frac{1}{2}\mathbf{D}^{-1}( \mathbf{t}^{T}\mathbf{B}+\mathbf{C}\mathbf{t})  \right\}^{2}   + const \tag{8}

となります。よって、


\displaystyle \mu = -\frac{1}{2} \mathbf{D}^{-1} (\mathbf{t}^{T}\mathbf{B}+\mathbf{C}\mathbf{t} ) \tag{9}


\displaystyle \sigma^{2} = \mathbf{D}^{-1} \tag{10}

です。

ここで、ガウス過程による回帰(1)の式(10)より、


  \mathbf{C}_{N+1} = \left(
    \begin{array}{cc}
      \mathbf{C}_{N} & \mathbf{k}  \\
      \mathbf{k}^{T} & c  \\
    \end{array}
  \right) \tag{11}

でしたので、ブロック行列の逆行列の公式より、


 
    \mathbf{C}_{N+1}^{-1} =  
 \left(
    \begin{array}{cc}
      \mathbf{C}_{N}^{-1} + S^{-1}\mathbf{C}_{N}^{-1}\mathbf{k}\mathbf{k}^{T}\mathbf{C}_{N}^{-1} & -S^{-1}\mathbf{C}_{N}^{-1}\mathbf{k}  \\
      -S^{-1}\mathbf{k}^{T}\mathbf{C}_{N}^{-1} & S^{-1}  \\
    \end{array} 
  \right)
\tag{12}


S = c-\mathbf{k}^{T}\mathbf{C}_{N}^{-1}\mathbf{k} \tag{13}

となります。Sはスカラです。式(6)と式(12)より、


\begin{eqnarray*}
\displaystyle \mu &=& -\frac{1}{2} \mathbf{D}^{-1} (\mathbf{t}^{T}\mathbf{B}+\mathbf{C}\mathbf{t} ) \tag{14}\\
\displaystyle &=& -\frac{S}{2} \left(  -S^{-1}\mathbf{t}^{T} \mathbf{C}_{N}^{-1}\mathbf{k} - S^{-1}\mathbf{k}^{T}\mathbf{C}_{N}^{-1} \mathbf{t} \right)  \tag{15}\\
\displaystyle &=& -\frac{S}{2} \left\{  -S^{-1}\mathbf{t}^{T} \mathbf{C}_{N}^{-1}\mathbf{k} - S^{-1} (\mathbf{C}_{N}^{-1}\mathbf{k})^{T} \mathbf{t} \right\}  \tag{16}

\end{eqnarray*}

となります。\mathbf{C}_{N}は分散共分散行列ですから対称行列です。対称行列の逆行列もまた逆行列であることに注意。ここで\mathbf{C}_{N}^{-1}\mathbf{k}はベクトルですから、


\mathbf{t}^{T}\mathbf{C}_{N}^{-1}\mathbf{k} =  (\mathbf{C}_{N}^{-1}\mathbf{k})^{T} \mathbf{t} \tag{17}

ですので、


\displaystyle \mu = \mathbf{t}^{T}\mathbf{C}_{N}^{-1}\mathbf{k} =  \mathbf{k}^{T}\mathbf{C}_{N}^{-1}\mathbf{t} \tag{18}

です。また、


\begin{eqnarray*}
\displaystyle \sigma^{2} &=& \mathbf{D}^{-1}  \tag{19} \\
&=& c- \mathbf{k}^{T}\mathbf{C}_{N}^{-1}\mathbf{k} \tag{20}
\end{eqnarray*}

です。

以上より新たな入力に対する分布p(t_{N+1}| \mathbf{t})が定まりました。予測値は分布の平均値とすればいいので、式(18)で求められることになります。

まとめ

さて、ここで


\mathbf{a}= \mathbf{C}_{N}^{-1}\mathbf{t} \tag{21}

とすれば、予測値m(\mathbf{x}_{N+1})は、


\displaystyle m(\mathbf{x}_{N+1}) = \sum_{n=1}^{N} a_{n} k(\mathbf{x}_n,\mathbf{x}_{N+1}) \tag{22}

と書くことができ、カーネル回帰分析の式(16)と同様に、カーネル関数\times定数で表すことができます。なんかいろいろやってきましたけど、正則化最小二乗法から導出しても、確率分布を導入して導出しても、係数の事前分布を設定して導出しても、結局たどり着くところは同じなんですね。

以下の記事で、この結果を用いて回帰の実験をしてみました。

www.iwanttobeacat.com


※今回の計算は手持ちの参考書にはなく、多くを自力で行ったので、ところどころ厳密性を欠いていたりするかもしれません。

*1:\mathbf{x}\mathbf{x}_{N+1}の条件の表記は省略しています