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

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

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

ガウス過程による回帰(1)の続きです。訓練データ(\mathbf{x},\mathbf{t})が得られているとき、新たな入力\mathbf{x}_{N+1}に対するt_{N+1}を求めること、つまりp(t_{N+1}| \mathbf{t})を求めることが目標です(\mathbf{x}\mathbf{x}_{N+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}) を計算しました。

ここで、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*}

です。\mathbf{k}ガウス過程による回帰(1)の式(11)でしたので、新たな入力\mathbf{x}_{N+1}に依存します。平均値、分散ともに式(18)、(20)より\mathbf{k}が含まれていますので、新たな入力点によって平均、分散が異なるような分布となっていることがわかります。

以上より新たな入力に対する分布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定数で表すことができます。なんかいろいろやってきましたけど、正則化最小二乗法から導出しても、確率分布を導入して導出しても、係数の事前分布を設定して導出しても、結局たどり着くところは同じなんですね。次回この結果を用いて回帰の実験をしてみます。→ガウス過程による回帰(3)実験結果