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

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

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

概要

前回の以下の記事の続きです。 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 p(t_{N+1}=1 |a_{N+1} )p(a_{N+1}|\mathbf{t}_{N}) d a_{N+1} \tag{1}

p(a_{N+1}|\mathbf{t}_{N})の計算

式(1)において、p(t_{N+1}=1|a_{N+1})=\sigma(a_{N+1})ですから、式(1)右辺の前半は簡単に求まりますが、p(a_{N+1}|\mathbf{t}_{N})は解析的に求められず、これを何とかしていかなくてはなりません。

確率の周辺化の式を用いて、*1


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

と変形し、さらにベイズの定理により、*2


\displaystyle 式(2)=\frac{1}{p(\mathbf{t}_{N})} \int p(a_{N+1},\mathbf{a}_{N})p(\mathbf{t}_{N}|a_{N+1},\mathbf{a}_{N}) d\mathbf{a}_{N} \tag{3}

です。そして確率の乗法定理により、*3


\displaystyle 式(3)=\frac{1}{p(\mathbf{t}_{N})} \int p(a_{N+1}|\mathbf{a}_{N})p(\mathbf{a}_{N})p(\mathbf{t}_{N}|a_{N+1},\mathbf{a}_{N}) d\mathbf{a}_{N} \tag{4}

です。ここでa_{N+1}\mathbf{t}_{N}は独立ですから条件から取り除くことができ、


\displaystyle 式(4)=\frac{1}{p(\mathbf{t}_{N})} \int p(a_{N+1}|\mathbf{a}_{N})p(\mathbf{a}_{N})p(\mathbf{t}_{N}| \mathbf{a}_{N}) d\mathbf{a}_{N} \tag{5}

です。そしてベイズの定理の式(1)より、 p(\mathbf{a}_{N}) p(\mathbf{t}_{N} | \mathbf{a}_{N}) = p(\mathbf{t}_{N})p(\mathbf{a}_{N} | \mathbf{t}_{N}) ですから、以上より


\displaystyle \displaystyle 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{6}

となります。

p(a_{N+1}|\mathbf{a}_{N})の計算

ここでまずは式(6)のp(a_{N+1}|\mathbf{a}_{N})を考えます。

aはガウス過程という前提条件でした。\mathbf{y}がガウス過程に従うとき、 p(\mathbf{y}) = N(\mathbf{y}|\mathbf{0},\alpha^{-1}\mathbf{K}) と書けましたから*4a_{N+1}もこの形で書くことができるはずです。ここで\alphaの定数倍をカーネル関数の中に含めれば


p(a_{N+1}) = N(a_{N+1}|\mathbf{0},\mathbf{K}) \tag{7}

と書けます。今考えているのは分類問題で離散値データですから、ガウス過程による回帰(1)の式(1)ようにノイズはありませんが、共分散行列の正定値性の保証のため*5


C(x_{n},x_{m}) = k(x_{n},x_{m}) + \nu \delta_{nm} \tag{8}

のようにノイズの項を加えたものを考えます。これが正定値行列であることが、後々最適解を持つことの保証になります。行列の各要素が式(8)で与えられる共分散行列\mathbf{C}_{N+1}を用いれば、


p(a_{N+1}) = N(a_{N+1}|\mathbf{0},\mathbf{C}_{N+1}) \tag{9}

と書けます。すると、ガウス過程による回帰(1)ガウス過程による回帰(2)p(t_{N+1}|\mathbf{t}_{N})を計算したのと同様の手順で、


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{10}

と計算できます。

残りはp(\mathbf{a}_{N}|\mathbf{t}_{N})

次に、式(6)のp(\mathbf{a}_{N}|\mathbf{t}_{N})の計算です。計算の方針はラプラス近似を使って正規分布の形にもっていくことです。そして式(10)とあわせて2つの正規分布の計算とします。

続きは次回 www.iwanttobeacat.com


*1:条件付き確率、同時確率、周辺確率の式(10)

*2:ベイズの定理の式(2)

*3:条件付き確率、同時確率、周辺確率の式(2)

*4:ガウス過程の式(15)

*5:分散は0以上であることに注意し、共分散行列の対角成分が正の場合の2次形式を計算してみれば、常に正になることがわかる。