この記事はアドベントカレンダー ほぼ厚木の民 の11日目記事です。
昨年の同じ時期に書いて放置していたエントリの続き(といっても部分的な走り書きのメモ)を書きます。
前回のおさらい
- y=wTϕ(x) のパラメータ w を求めたいが、次元が指数的に増える
- w∼N(0,λ2I) として期待値をとりパラメータを積分消去
- y∼N(0,λ2ΦΦT)
ガウス過程回帰モデル
N個の観測値
D={(x1,y1),(x2,y2),⋯,(xN,yN)}
について
y=f(x)
の関係があり、この f がガウス過程 GP(0,k(x,x′)) に従うものとする。
このとき、 D にない新しい観測値 x∗ が与えられたとき、どのように y∗を予測するかを考える。
x1,x2,⋯xN,x∗ から計算したカーネル行列を K′、(y1,y2,⋯,yN,y∗)T を y′ とおく。y′ はガウス分布 N(0,K′) に従う
( yy∗)∼N⎝⎜⎜⎜⎛0,K′( Kk∗Tk∗k∗∗)⎠⎟⎟⎟⎞
ので、y∗ の分布を求めることができる。
p(y∗∣x∗,D)=N(k∗TK−1y,k∗∗−k∗TK−1k∗)
x∗ が複数与えられた場合(X∗)も同様で、
p(y∗∣X∗,D)=N(k∗TK−1y,k∗∗−k∗TK−1k∗)
となる。
カーネルのハイパーパラメータ推定
例えばRBFカーネル
k(x,x′)=θ1exp(−θ2∣(x−x′)∣2)+θ3δ(x,x′)
のパラメータ θ=(θ1,θ2,θ3) についていい感じに推定したい。このとき θ に依存するカーネル行列を Kθ とおく。学習データの確率は
p(y∣X,θ)=N(y∣0,Kθ)=(2π)2N1∣Kθ∣211exp(−21yTKy−1y)
対数尤度 L を最大化することを考える。
L=logp(y∣X,θ)∝−log∣Kθ∣−yTKθ−1y+Const.
θ のある要素 θ について
∂θ∂L=tr(Kθ−1∂θ∂Kθ)+(Kθ−1y)T∂θ∂Kθ(Kθ−1y)
のように微分することができ、最急降下法やL-BFGSなどを使って最適化することができる。