事後予測分布の式を、もう少し簡単にする。
事後予測分布
尤度関数として正規分布
p(y∣X,w)=Nd(y∣Xw,σ2Id)
を設定し、事前分布として多変量正規分布
p(w)=Nn(w∣m0,V0)∝exp(−21(w−m0)TV0−1(w−m0))
を設定したとき、事後予測分布は次のようなものに帰着した。
p(y∗∣X∗,X,y)=Nd∗(y∗∣my,Vy) my∗∣y=Vy∗∣y=K∗T(K+σ2Id)−1yK∗∗+σ2Id∗−K∗T(K+σ2Id)−1K∗ ⎩⎨⎧K=K∗=K∗∗=XV0XTXV0X∗TX∗V0X∗T
カーネルトリック
ここで、行列 K,K∗,K∗∗ の成分を展開して見てみよう。
K=K∗=K∗∗=x1TV0x1x2TV0x1⋮xdTV0x1x1TV0x2x2TV0x2⋮xdTV0x2⋯⋯⋱⋯x1TV0xdx2TV0xd⋮xdTV0xdx1TV0x1∗x2TV0x1∗⋮xdTV0x1∗x1TV0x2∗x2TV0x2∗⋮xdTV0x2∗⋯⋯⋱⋯x1TV0xd∗x2TV0xd∗⋮xdTV0xd∗x1∗TV0x1∗x2∗TV0x1∗⋮xd∗TV0x1∗x1∗TV0x2∗x2∗TV0x2∗⋮xd∗TV0x2∗⋯⋯⋱⋯x1∗TV0xd∗x2∗TV0xd∗⋮xd∗TV0xd∗
実際には紙面の都合でこんなに丁寧に書けないため、次のように省略して書くのが通例だろう。
K=K∗=K∗∗=[xiTV0xj]ij[xiTV0xj∗]ij∗[xi∗TV0xj∗]i∗j∗∈Rd×d∈Rd×d∗∈Rd∗×d∗
これを纏めて次のように表すことにしよう。
[KK∗TK∗K∗∗]=[xiTV0xj]ij∈R(d+d∗)×(d+d∗)
カーネル関数
どうやら、同じ形の項 xiTV0xj が何度も繰り返し出現するらしい。そこで、これを
kij=k(xi,xj)=xiTV0xj
と書き直してしまおう。すると次のようになる。
[KK∗TK∗K∗∗]=[kij]ij∈R(d+d∗)×(d+d∗)
さて、もとの定義どおりであれば
kij=xiTV0xj=∑k,lV0klxikxjl
となるが、ここでちょっと変なことをする。
📄
線形回帰とカーネル法
で取り扱っているように、関数 k:Rd×Rd→R として、もっと一般に xi と xj を入力とする関数を許す。
kij=k(xi,xj)
これにより、カーネル法と似たような理屈で、非常に表現力の高い回帰モデルを作成できる。
カーネル法の命名を借りて、この関数 k をカーネル関数 (kernel function) という。そしてカーネル関数を並べた行列 K をカーネル行列 (kernel matrix) という。
カーネル関数として要求される条件はカーネル法の場合と同じで、
-
KT=K
-
uTKu≥0∀u∈R
すなわちカーネル行列が半正定値行列となる必要がある。
カーネル関数には、データを滑らかにつなぐもの、周期的な曲線を描くもの、近似直線を描くものなど、色々ある。例えば次のガウスカーネルは、データを滑らかにつなぐものとして知られており、内挿によく使用される。
k(xi,xj)=exp(−2σ21∥xi−xj∥22)
解釈のまとめ