51
PRML §6 — kernel method @taki0313 10/10/22 @taki0313

PRML 6 — kernel method - 山本 研究室 · PDF file1/50 ToC Introduction 6.1 双対表現 6.2 カーネル関数の構成 6.3 RBFネットワーク 6.4 ガウス過程 @taki0313

Embed Size (px)

Citation preview

PRML §6 — kernel method

@taki0313

10/10/22

@taki0313

1/50ToC

Introduction

6.1 双対表現

6.2 カーネル関数の構成

6.3 RBFネットワーク

6.4 ガウス過程

@taki0313

2/50Introduction

@§3 回帰 / @§4 分類 — linear, parametric

kernel function k(x, x′) = φ(x)Tφ(x′)

– ある特徴空間上での内積, 対称k(x, x′) = k(x′, x)– 恒等カーネル k(x, x′) = xTx′

– 不変カーネル k(x, x′) = k(x − x′)– 均一カーネル k(x, x′) = k(||x − x′||)

kernel trick

– kernelを用いて特徴空間上でごにょごにょする技法

@taki0313

3/50

−1 0 1−1

−0.5

0

0.5

1

−1 0 10

0.25

0.5

0.75

1

−1 0 10

0.25

0.5

0.75

1

−1 0 1−0.4

0.0

1.0

−1 0 10.0

1.0

2.0

−1 0 10.0

3.0

6.0

Figure 1: kernelとk(x,x’)をx’を×としてxの関数にしたもの@taki0313

4/50ToC

Introduction

6.1 双対表現

6.2 カーネル関数の構成

6.3 RBFネットワーク

6.4 ガウス過程

@taki0313

5/50双対表現 — dual representation

正則化項付き線形回帰の評価式

– J(w) = 12

∑{wTφ(xn) − tn}2 + λ

2wTw

– wについての勾配=0

w = − 1λ

∑{wTφ(xn)}φ(xn) =

∑anφ(xn) = ΦTa

– ΦT = (φ(x1) · · ·φ(xN))

パラメータの変換 w ­ a — w = ΦTa → J(w)

– J(a) = 12a

TΦΦTΦΦTa − aTΦΦTt + 12t

Tt + λ2a

TΦΦTa

グラム行列 — Knm ≡ φ(xn)Tφ(xm) = k(xn, xm)

@taki0313

6/50双対表現 — dual representation

Kを用いて

– K = ΦΦT

– J(a) = 12a

TKKa − aTKt + 12t

Tt + λ2a

TKa

w = ΦTa を anの式に代入して

– λan + aTΦφ(xn) = tn → (λIN + K)a = t

予測の式

– y(x) = aTΦφ(x)– y(x) = k(x)T(K + λIN)−1t — k(x) = k(xn, x)

@taki0313

7/50双対表現 — dual representation

kernel method — グラム行列K(NxN)の逆行列を求める

基底関数 — 計画行列Φ(MxM)の逆行列を求める

一般に…

– N >> M

– グラム行列の逆行列を求めるコストは大きい­ 全てをカーネルkの上で行なえるのが嬉しいことらしい。

@taki0313

8/50ToC

Introduction

6.1 双対表現

6.2 カーネル関数の構成

6.3 RBFネットワーク

6.4 ガウス過程

@taki0313

9/50カーネル関数の構成

カーネル関数 — 特徴空間上への写像 φ(x)

カーネルkが有効か? ­ ある空間上での内積になること

– (xTz)2 = (x1z1 + x2z2)2 = x2

1z21 + 2x1z1x2z2 + x2

2z22

– = (x21 ,√

2x1x2, x22)(z

21 ,√

2z1z2, z22)

T = φ (x)Tφ (z)

カーネルkが有効か? ­ グラム行列K が半正定値行列

カーネルの構成法 — (6.13) ∼ (6.22)

@taki0313

10/50カーネルの作り方

k(x, x′) = ck1(x, x′)k(x, x′) = f (x)k1(x, x′)f (x′)k(x, x′) = q(k1(x, x′))k(x, x′) = exp(k1(x, x′))k(x, x′) = k1(x, x′) + k2(x, x′)k(x, x′) = k1(x, x′)k2(x, x′)k(x, x′) = k3(φ(x), φ(x′))k(x, x′) = xTAxk(x, x′) = ka(xa, x′a) + kb(xb, x′b)k(x, x′) = ka(xa, x′a)kb(xb, x′b)

– cは定数、fは任意の関数

– qは非負の係数をもつ多項式

– Φ : x → RM

– k3はRM上のkernel

– Aは対称, 半正定値– x = (xa, xb)

– ka, kbはそれぞれで有効なkernel

@taki0313

11/50有名なカーネル

ガウスカーネル k(x, x′) = exp(−12||x − x′||2)

– ||x − x′||2 = xTx + (x′)Tx′ − 2xTx′

– カーネルトリック — → κ(x, x) + κ(x′, x′) − 2κ(x, x′)

シグモイドカーネル k(x, x′) = tanh(axTx′ + b)

@taki0313

12/50確率的生成モデル → カーネル

生成モデル p(x) → k(x, x′) = p(x)p(x′)

一般化

– 離散 — k(x, x′) =∑

i p(x|i)p(x′|i)p(i)

– 連続 — k(x, x′) =∫

p(x|z)p(x′|z)p(z)dz

HMM → §13

– よく知らないので…– k(X,X′) =

∑Z p(X|Z)p(X′|Z)p(Z)

@taki0313

13/50生成モデル → カーネル

parametric な生成モデル — p(x|θ)

フィッシャーカーネル

– フィッシャースコア — g(θ, x) = ∇θ ln p(x|θ)– フィッシャー情報量行列 — F = Eθ[g(θ, x)g(θ, x)T ]

近似 — F ∼ 1N

∑g(θ, xn)g(θ, xn)

T

– フィッシャーカーネル∗ k(x, x′) = g(θ, x)TF−1g(θ, x′)∗ k(x, x′) = g(θ, x)Tg(θ, x′)

@taki0313

14/50ToC

Introduction

6.1 双対表現

6.2 カーネル関数の構成

6.3 RBFネットワーク

6.4 ガウス過程

@taki0313

15/50RBF network — Radial Basis Function

関数補間

– 入力集合 {x1, x2, · · · , xN, }{t1, t2, · · · , tN}– 1 ≤ n ≤ Nについて f (xn) = tnになる関数 fを求める– f (x) =

∑wnh(||x − xn||) として{wn} を最小二乗法で求める。

— 過学習

ノイズが入る場合の補間

– ノイズの分布 ν(ξ) — 確率変数ξ

– 二乗誤差 E = 12

∑Nn=1

∫{y(xn + ξ) − tn}2ν(ξ)dξ

@taki0313

16/50RBF network — Radial Basis Function

変分法による最適化

– Nadaraya-Watson Model.

– y(x) =∑

tnh(x − xn), h(x − xn) =ν(x − xn)∑ν(x − xn)

– 正則化 → 全ての関数が小さい値にならにように

−1 −0.5 0 0.5 10

0.2

0.4

0.6

0.8

1

−1 −0.5 0 0.5 10

0.2

0.4

0.6

0.8

1

@taki0313

17/506.3.1 Nadaraya-Watson Model

§3.3.3 — 新しい入力xに対する予測を線形結合の式で行う

– y(x,mN) =∑

k(x, xn)tn — 等価カーネル– 和の制約を満たしている

回帰 ­ 密度推定

– 訓練集合 {xn, tn} → p(x, t)の推定 — Parzen推定法(§2.5.1)

– p(x, t) = 1N

∑f (x − xn, t − tn) — 各要素を中心に持つ

– 条件付き期待値 が良い — y(x) = E[t|x] =∫ ∞−∞ tp(t|x)dt

– E[t|x] =

∫tpdt∫pdt

=

∑n

∫tf (x − xn, t − tn)dt∑

m

∫f (x − xm, t − tm)dt

@taki0313

18/506.3.1 Nadaraya-Watson Model

y(x) = E[t|x] =

∫tpdt∫pdt

=

∑n

∫tf (x − xn, t − tn)dt∑

m

∫f (x − xm, t − tm)dt

簡単化 — 各要素の平均は0 —∫

tf (x, t)dt = 0

変数置換 → Nadaraya-Watson Model

– y(x) =∑

n g(x − xn)tn/∑

m g(x − xm) =∑

n k(x, xn)tn– g(x) =

∫ ∞−∞ f (x, t)dt

– k(x, xn) = g(x − xn)/∑

m g(x − xm)

@taki0313

19/506.3.1 Nadaraya-Watson Model

条件付き確率分布— p(t|x) = p(t, x)/∫

p(t, x)dt

例 — 1次元、f (x , t) ∼ N (0,σ2), z = (x , t) の場合

0 0.2 0.4 0.6 0.8 1−1.5

−1

−0.5

0

0.5

1

1.5 • sin(緑)

• データ点(青)

• 条件付き期待値(赤)

• 赤±2σ

@taki0313

20/50ToC

Introduction

6.1 双対表現

6.2 カーネル関数の構成

6.3 RBFネットワーク

6.4 ガウス過程

@taki0313

21/50ガウス過程

確率過程

– 任意の有限な値集合 {y1, y2, · · · , yn}に対して矛盾のない同時分布を与えるもの

– その同時分布がガウス分布 — ガウス過程

§6.1 回帰、双対性→カーネル — 非確率的モデル

確率的識別モデル + カーネル法 — ガウス過程

@taki0313

22/506.4.1 線形回帰の復習

線形回帰モデルy(x) = wTφ(x)パラメータの事前分布 p(w) = N (w|0,α−1I )

入力 {x1, x2, · · · , xN}による評価­ {y(x1), y(x2), · · · , y(xN)}による評価→ {yn}, y = (y1, y2, · · · , yN)T を評価する

– E[y] = ΦE[w] = 0– Cov [y] = ΦCov [wwT]ΦT = 1

αΦΦT = K– Knm = k(xn, xm) = 1

α φ(xn)Tφ(xm)

線形回帰はガウス過程の特殊な場合

@taki0313

23/50ガウス過程

同時分布の性質が平均、共分散で完全に記述される

– 平均(1次モーメント) =0とする = p(w|α)の平均を0

– ガウス過程 ← カーネル関数 — E[y(xn), y(xm)] = k(xn, xm)

−1 −0.5 0 0.5 1−3

−1.5

0

1.5

3

−1 −0.5 0 0.5 1−3

−1.5

0

1.5

3

カーネル&ガウス過程から取り出した関数

@taki0313

24/50カーネル関数の直接定義

図(左) — ガウスカーネル k(x, x′) = exp(−||x−x′||22σ2 )

図(右) — 指数カーネル k(x, x) = exp(−θ|x − x′|)— オルンシュタイン-ウーレンベック過程

@taki0313

25/506.4.2 ガウス過程による回帰

ガウス分布のノイズを考える — tn = yn + εn

p(tn|yn) = N (tn|yn, β−1)

データ y = (y1, · · · , yN)T と t = (t1, · · · , tN)が与えられるその同時分布が等方的ガウス分布になるとする(ガウス過程)

– p(t|y) = N (t|y, β−1IN)

– p(y) = N (y|0,K)

– K は xn, xmが似ていれば大きい値になる

実際の予測のための分布 p(t)

@taki0313

26/506.4.2 ガウス過程による回帰

実際の予測のための分布 p(t)を考える

– p(t) =∫

p(t|y)p(y)dy ∼ N (t|0,C)

– C(xn, xm) = k(xn, xm) + β−1δnm

– データとノイズが独立なので共分散を加えるだけでいい

回帰に使われるようなモデル

k(xn, xm) = θ0 exp{−θ12 ||xn − xm||2} + θ2 + θ3xT

nxm

— (θ0, θ1, θ2, θ3)毎のプロット : 図6.5

@taki0313

27/50図6.5 — 事前分布からのサンプル

(1.00, 4.00, 0.00, 0.00)

−1 −0.5 0 0.5 1−3

−1.5

0

1.5

3(9.00, 4.00, 0.00, 0.00)

−1 −0.5 0 0.5 1−9

−4.5

0

4.5

9(1.00, 64.00, 0.00, 0.00)

−1 −0.5 0 0.5 1−3

−1.5

0

1.5

3

(1.00, 0.25, 0.00, 0.00)

−1 −0.5 0 0.5 1−3

−1.5

0

1.5

3(1.00, 4.00, 10.00, 0.00)

−1 −0.5 0 0.5 1−9

−4.5

0

4.5

9(1.00, 4.00, 0.00, 5.00)

−1 −0.5 0 0.5 1−4

−2

0

2

4

@taki0313

28/50図6.6 — 同時分布からのサンプル

x

t

−1 0 1−3

0

3 ガウス過程の事前分布からサンプリングされた関数 f

入力 {xn}

入力に対する{yn} (赤)

サンプル {tn}(緑)

– ノイズ入り

@taki0313

29/506.4.2 ガウス過程による回帰

これまで — ガウス過程の視点からの同時分布のモデル化

新しい入力に対する予測が必要

– 訓練集合 {x1, · · · , xN}, t = (t1, · · · , tN)T

– 入力 xN+1 , その予測値 tN+1

– 予測分布 p(tN+1|tN)

– 同時分布 p(tN) を書き下す– tN+1 = (t1, · · · , tN, tN+1)

T

@taki0313

30/50予測分布

p(tN+1) = N (tN+1|0,CN+1) — (6.61)より

共分散行列の分割

— CN+1 =

(CN kkT c

)— 正定値でなければならない

— c = k(xN+1, xN+1) + β−1, kの要素はk(xn, xN+1)

2章の結果から、条件付き分布p(tN+1|t)は

– m(xN+1) = kTC−1N t

– σ2(xN+1) = c − kTC−1N k

@taki0313

31/50予測分布

事前分布&条件付き分布はガウス分布

予測分布の平均・分散もxN+1に依存

t1

t2

m(x2)

−1 0 1

−1

0

1

訓練/テストデータが1つずつ

• 楕円 — 同時分布 p(t1, t2)

• t1 — 訓練データ(青)

• t1に依存して p(t2|t1)(緑)

@taki0313

32/50予測分布

ガウス過程による回帰の例

0 0.2 0.4 0.6 0.8 1

−1

−0.5

0

0.5

1

• sin関数(緑)

• データ(右3つ以外, 青)

• ガウス過程による予測分布の平均(赤)

• 標準分布の2倍ぐらい(薄い赤)

@taki0313

33/506.4.2 ガウス過程による回帰

Kの固有値λi → Cの固有値λi + β−1

– k(xn, xm)が∀xn, xmに関して半正定値であればいい

予測分布の平均

– m(xN+1) =∑

ank(xn, xN+1)

– anはC−1N tのn番目の要素

– kが動径に依存するならRBFが使える

計算量

– ガウス過程 NxNの逆行列 O(N3) — 基底による回帰 O(M3)

@taki0313

34/506.4.3 超パラメータの学習

予測が共分散の選び方にある程度依存する → parametric

ハイパーパラメータθ → p(t|θ)

– θの点推定, 共役勾配法

ガウス分布&ガウス過程では…

– ln p(t|θ) = −12 ln |CN| − 1

2tTC−1

N t − N2 ln(2π)

– 勾配 — ∂∂θi

ln p(t|θ) = −12Tr(C−1

N∂CN∂θi

) + 12t

TC−1N

∂CN∂θi

C−1N t

一般には非凸関数で、近似的に解く。以下略

@taki0313

35/506.4.4 関連度自動決定

関連度自由決定(ARD) —ニューラルネットから提案された何か

詳しくは §7.2.2

例 — 2次元の入力空間x = (x1, x2)をもつガウス過程

– カーネル k(x, x′) = θ0 exp{−1

2

∑ηi(xi − x ′

i )2}

@taki0313

36/50図6.9 — ARD事前分布からのサンプル

−1

0

1

−1

0

1−1

0

1

−1

0

1

−1

0

1−1

0

1

η1 = η2 = 1 (左)

η1 = 1, η2 = 0.01 (右)

ηは入力に対する敏感さ

ARDの文脈から出力の予測にあまり寄与しない入力変数を求められる。

@taki0313

37/50図6.10 — ARDにおけるηの変化

0 20 40 60 80 10010

−4

10−2

100

102

3次元の入力 x1, x2, x3

最適化 — 共役勾配法

目標変数t

– x1:ガウス分布、100個– x2はx1+ノイズ– x3はランダムなノイズ– sin(2πx1)+ノイズ

η1 > η2 >>>> η3

@taki0313

38/506.4.4 ARD

ARD → 指数・2次カーネル

– k(xn, xm) = θ0 exp{−12

∑ηi(xni − xmi)

2} + θ2 + θ3

∑xnixmi

種々の応用において有用らしいカーネル

@taki0313

39/506.4.5 ガウス過程による分類

確率的な分類 → 事後確率 ∈ (0, 1)

ガウス過程 → 実数値全体 → 活性化関数 → 分類問題

2クラス分類問題 t ∈ {0, 1}

– 関数a(x)上でのガウス過程を考える– y = σ(a)と変換する– y ∈ {0, 1}へ落とす– 1次元の例 — 図6.11

@taki0313

40/50図6.11

−1 −0.5 0 0.5 1−10

−5

0

5

10

−1 −0.5 0 0.5 10

0.25

0.5

0.75

1

• 上図

– a(x)に対するガウス過程の事前分布からのサンプル

• 下図

– ロジスティックシグモイド関数で変換した

@taki0313

41/506.4.5 ガウス過程による分類

目標変数tの確率分布 — ベルヌーイ分布

– p(t|a) = σ(a)t(1 − σ(a))1−t

入力の訓練集合{x1, · · · , xN}

対応する目標変数の観測値t = (t1, t2 · · · , tN)T

テスト点xN+1に対するtN+1を予測

– 予測分布p(tN+1|t)を決定する– 要素a(x1), · · · , a(xN+1)を持つベクトルaN+1

@taki0313

42/506.4.5 ガウス過程による分類

ベクトルaN+1い対するガウス過程による事前分布

– p(aN+1) = N (aN+1|0,CN+1)

– 正しいラベルが付いている → CNにはノイズが入ってない– 正定値保証のためにパラメータνの項を入れる– C (xn, xm) = k(xn, xm) + νδnm

– カーネルはパラメータθによって決まる

2クラス分類 — p(tN+1 = 1|tN)を予測する

– p(tN+1 = 1|tN) =∫

p(tN+1 = 1|aN+1)p(aN+1|tN)daN+1

@taki0313

43/506.4.5 ガウス過程による分類

p(tN+1 = 1|tN) =∫

p(tN+1 = 1|aN+1)p(aN+1|tN)daN+1

解析的に解けない

– 詳細略– 漸近的にガウス分布に近づく– どうやってガウス分布として近似するか∗ 10.1 変分推論法∗ 10.7 EP法∗ 6.4.6 ラプラス近似

@taki0313

44/506.4.6 ラプラス近似

ベイズの定理 & p(tN|aN+1, aN) = p(tN|aN) より

p(aN+1|tN) =

∫p(aN+1, aN|tN)daN

=1

p(tN)

∫p(aN+1, aN)p(tN|aN+1, aN)daN

=1

p(tN)

∫p(aN+1|aN)p(aN)p(tN|aN)daN

=

∫p(aN+1|aN)p(aN|tN)daN

@taki0313

45/506.4.6 ラプラス近似

条件付き分布 — (6.66), (6.67)

– p(aN+1|aN) = N (aN+1|kTC−1N aN, c − kTC−1

N k)

積分 → ラプラス近似 & ガウス分布の畳み込み

p(aN) — 平均0, 共分散行列CNであるガウス過程による

データについての項(各々独立として…)

– p(tN|aN) =∏N

n=1 σ(an)tn(1 − σ(an))

1−tn =∏N

n=1 eantnσ(−an)

@taki0313

46/506.4.6 ラプラス近似

定数項を無視してラプラス近似

– Ψ(aN) = ln p(aN) + ln p(tN|aN)

= −12a

TNCNaN − N

2 ln(2π)− 12 ln |CN|+ tTNaN −

∑Nn=1 ln(1 + ean)

– ∇Ψ(aN) = tN − σN − C−1N aN

σNの要素はσ(an)

– ∇∇Ψ(aN) = −WN − C−1N

Wは対角要素にσ(an)(1 − σ(an))を持つ正定値行列dσda = σ(1 − σ)(4.88)

正定値行列の和も正定値行列 (演習6.24)

@taki0313

47/506.4.6 ラプラス近似

ヘッセ行列 A = −∇∇Ψ(aN)が正定値— 事後分布p(aN|tN)の対数が凸関数

凸関数 — 極小・極大 = 最小・最大

逐次更新で最適解を目指せる— Newton-Raphson medhot (4.92)

– anewN = CN(I + WNCN)−1{tN−σN + WnaN}

– a∗N に収束するまで — モード– このとき a∗N = CN(tN−σN)

収束時のヘッセ行列 H = −∇∇Ψ(aN) = WN + C−1N

@taki0313

48/506.4.6 ラプラス近似

収束時の、事後分布p(aN|tN)のガウス分布による近似

– q(aN) = N (aN|a∗N,H−1)

2つのガウス分布の畳み込み積分の評価 — 2章

– E[aN+1|tN] = kT(tN − σN)

– var [aN+1|tN] = c − kT(W−1N + CN)−1k

→ガウス分布の情報が得られたので…

@taki0313

49/506.4.6 ラプラス近似

共分散パラメータθの決定

– 尤度最大化, 最尤推定– 尤度関数p(tN|θ) =

∫p(tN|aN)p(aN|θ)daN

近似

– ln p(tN|θ) = Ψ(a∗N) − 12 ln |WN + C−1

N | + N2 ln(2π)

Ψ(a∗N) = ln p(a∗N) + ln p(tN|a∗N)

θの微分がCNとaNの二種類の項が表れる(以下略?)

@taki0313

50/506.4.7 ニューラルネットとの関係

ニューラルネット

– 隠れユニットの数Mを上手く調整すれば強い– M → ∞ ガウス過程っぽい. ただし独立– ニューラルネット — 隠れユニットの共有とが面白い

ガウス過程

– 共分散関数に性質が左右される– 解析的に求められないところは近似

@taki0313