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

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

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

ガウス過程を用いた分類を考えていきます。2クラスの分類なら、確率的生成モデル(1)で導出したシグモイド関数を用いて


y=\sigma(a(\mathbf{x})) \tag{1}

とモデル化できます。線形識別ではa(\mathbf{x})の部分は\mathbf{w}^{T}\mathbf{x}のように、係数\mathbf{w}の線形結合を考えていましたが、これを今回はガウス過程a(\mathbf{x})によってモデル化します。

a(\mathbf{x})はガウス過程なので、仮に\mathbf{x}が1次元の入力なら下図左のようなサンプルが得られます。これをシグモイド関数に通したものが下図右で、出力を確率として扱うことができるようになる、というのは確率的生成モデル(1)で見たとおりです。

f:id:opabinia2:20191029225838p:plain

さて、目標は、訓練データ\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} )を求めることです。なお2クラス分類を考えていますので、t\in\{0,1\}とすれば、t_{N+1}=1の確率が求まればt_{N+1}=0の確率も当然求まります。また、以降は入力の条件を省略してp(t_{N+1}=1 | \mathbf{t}_{N} )と表記します。

条件付き確率、同時確率、周辺確率の式(10)を用いれば、


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

と変形できます。a_{N+1}=a(\mathbf{x}_{N+1})です。さらに、条件付き確率、同時確率、周辺確率の式(8)より、


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

です。ここで、p(t_{N+1}=1)は、a_{N+1}が与えられればp(t_{N+1}=1)=\sigma(a_{N+1})で決まりますから、\mathbf{t}_{N}には依存しません。従って、


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

となります。この辺りの式変形は線形回帰をベイズ推定で解く(1)予測分布の導出とけっこう似ていますね。

で、この式(4)をなんとかして求めていくのですが、けっこう長い道のりになります、、、。次回:ガウス過程による分類(2)