PRML §6 — kernel method @taki0313 10/10/22 @taki0313 ToC Introduction 6.1 双対表現 6.2 カーネル関数の構成 6.3 RBF ネットワーク 6.4 ガウス過程 @taki0313 1/50 Introduction @§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 2/50 3/50 1 1 1 0.5 0.75 0.75 0 0.5 0.5 −0.5 0.25 0.25 −1 −1 0 1 1.0 0 −1 0 1 0 −1 2.0 6.0 1.0 3.0 0 1 0 1 0.0 −0.4 −1 0 1 0.0 −1 0 1 0.0 −1 Figure 1: kernel と k(x,x’) を x’ を×として x の関数にしたもの @taki0313 ToC Introduction 6.1 双対表現 6.2 カーネル関数の構成 6.3 RBF ネットワーク 6.4 ガウス過程 @taki0313 4/50 双対表現 — dual representation 正則化項付き線形回帰の評価式 ∑ T 1 – J(w) = 2 {w φ(xn) − tn }2 + λ2 wTw – w についての勾配=0 ∑ T ∑ 1 w = − λ {w φ(xn)}φ(xn) = an φ(xn) = ΦTa – ΦT = (φ(x1) · · · φ(xN)) パラメータの変換 w a — w = ΦTa → J(w) – J(a) = 12 aTΦΦTΦΦTa − aTΦΦTt + 12 tTt + λ2 aTΦΦTa グラム行列 — Knm ≡ φ(xn)T φ(xm) = k(xn, xm) @taki0313 5/50 双対表現 — dual representation K を用いて – K = ΦΦT – J(a) = 12 aTKKa − aTKt + 12 tTt + λ2 aTKa w = ΦTa を an の式に代入して – λan + aTΦφ(xn) = tn → (λIN + K)a = t 予測の式 – y (x) = aTΦφ(x) T – y (x) = k(x) (K + λIN)−1t — k(x) = k(xn, x) @taki0313 6/50 双対表現 — dual representation 7/50 kernel method — グラム行列 K(NxN) の逆行列を求める 基底関数 — 計画行列 Φ(MxM) の逆行列を求める 一般に… – N >> M – グラム行列の逆行列を求めるコストは大きい 全てをカーネ ル k の上で行なえるのが嬉しいことらしい。 @taki0313 ToC Introduction 6.1 双対表現 6.2 カーネル関数の構成 6.3 RBF ネットワーク 6.4 ガウス過程 @taki0313 8/50 カーネル関数の構成 カーネル関数 — 特徴空間上への写像 φ(x) カーネル k が有効か? ある空間上での内積になること – (xTz)2 √ = (x1z1 + x2z2)2√= x12z12 + 2x1z1x2z2 + x22z22 T – = (x12, 2x1x2, x22)(z12, 2z1z2, z22)T = φ (x) φ (z) カーネル k が有効か? グラム行列 K が半正定値行列 カーネルの構成法 — (6.13) ∼ (6.22) @taki0313 9/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′) = xTAx k(x, x′) = ka(xa, x′a) + kb (xb, x′b) k(x, x′) = ka(xa, x′a)kb (xb, x′b) @taki0313 10/50 – c は定数、f は任意の 関数 – q は非負の係数をも つ多項式 – Φ : x → RM – k3 は RM 上の kernel – A は対称, 半正定値 – x = (xa, xb) – ka, kb はそれぞれで 有効な kernel 有名なカーネル ガウスカーネル 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 11/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 12/50 生成モデル → カーネル parametric な生成モデル — p(x|θ) フィッシャーカーネル – フィッシャースコア — g(θ, x) = ∇θ ln p(x|θ) – フィッシャー情報量行列 — F = Eθ [g(θ, x)g(θ, x)T ] ∑ 1 g(θ, xn)g(θ, xn)T 近似 — F ∼ N – フィッシャーカーネル ∗ k(x, x′) = g(θ, x)T F−1g(θ, x′) ∗ k(x, x′) = g(θ, x)T g(θ, x′) @taki0313 13/50 ToC Introduction 6.1 双対表現 6.2 カーネル関数の構成 6.3 RBF ネットワーク 6.4 ガウス過程 @taki0313 14/50 RBF network — Radial Basis Function 15/50 関数補間 – 入力集合 {x1, x2, · · · , xN, }{t1, t2, · · · , tN } – 1 ≤ n ≤ N について f (xn ) = tn になる関数 f を求める ∑ – f (x) = wn h(||x − xn||) として {wn } を最小二乗法で求める。 — 過学習 ノイズが入る場合の補間 – ノイズの分布 ν(ξ) — ∫確率変数 ξ ∑N 1 – 二乗誤差 E = 2 n=1 {y (xn + ξ) − tn }2ν(ξ)dξ @taki0313 RBF network — Radial Basis Function 16/50 変分法による最適化 – Nadaraya-Watson Model. ∑ ν(x − xn) – y (x) = tn h(x − xn), h(x − xn) = ∑ ν(x − xn) – 正則化 → 全ての関数が小さい値にならにように 1 1 0.8 0.8 0.6 0.6 0.4 0.4 0.2 0.2 0 −1 @taki0313 −0.5 0 0.5 1 0 −1 −0.5 0 0.5 1 6.3.1 Nadaraya-Watson Model 17/50 §3.3.3 — 新しい入力 x に対する予測を線形結合の式で行う ∑ – y (x, mN) = k(x, xn)tn — 等価カーネル – 和の制約を満たしている 回帰 密度推定 – 訓練集合 {xn, tn} → p(x, t) の推定 — Parzen 推定法 (§2.5.1) ∑ 1 – p(x, t) = N f (x − xn, t − tn ) — 各要素を中心に持つ ∫∞ – 条件付き期待値 が良い∫ — y (x) = E[t|x] = −∞ tp(t|x)dt ∫ ∑ tf (x − xn, t − tn )dt tpdt n ∫ ∫ =∑ – E[t|x] = pdt m f (x − xm, t − tm )dt @taki0313 6.3.1 Nadaraya-Watson Model ∫ ∑ ∫ tpdt tf (x − xn, t − tn )dt n y (x) = E[t|x] = ∫ =∑ ∫ pdt 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 18/50 6.3.1 Nadaraya-Watson Model 条件付き確率分布— p(t|x) = p(t, x)/ ∫ 19/50 p(t, x)dt 例 — 1 次元、f (x, t) ∼ N (0, σ 2), z = (x, t) の場合 • sin(緑) 1.5 1 • データ点 (青) 0.5 0 • 条件付き期待値 (赤) −0.5 −1 −1.5 0 @taki0313 0.2 0.4 0.6 0.8 1 • 赤± 2 σ ToC Introduction 6.1 双対表現 6.2 カーネル関数の構成 6.3 RBF ネットワーク 6.4 ガウス過程 @taki0313 20/50 ガウス過程 21/50 確率過程 – 任意の有限な値集合 {y1, y2, · · · , yn } に対して矛盾のない同時 分布を与えるもの – その同時分布がガウス分布 — ガウス過程 §6.1 回帰、双対性→カーネル — 非確率的モデル 確率的識別モデル + カーネル法 — ガウス過程 @taki0313 6.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 22/50 ガウス過程 23/50 同時分布の性質が平均、共分散で完全に記述される – 平均 (1 次モーメント) =0 とする = p(w|α) の平均を 0 – ガウス過程 ← カーネル関数 — E[y (xn), y (xm)] = k(xn, xm) 3 3 1.5 1.5 0 0 −1.5 −1.5 −3 −1 −0.5 0 0.5 1 −3 −1 −0.5 0 0.5 1 カーネル&ガウス過程から取り出した関数 @taki0313 カーネル関数の直接定義 24/50 ′ 図 (左) — ガウスカーネル k(x, x ) = ||x−x′||2 exp(− 2σ2 ) 図 (右) — 指数カーネル k(x, x) = exp(−θ|x − x′|) — オルンシュタイン-ウーレンベック過程 @taki0313 6.4.2 ガウス過程による回帰 25/50 ガウス分布のノイズを考える — 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 6.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{− θ21 ||xn − xm||2} + θ2 + θ3xT n xm — (θ0, θ1, θ2, θ3) 毎のプロット : 図 6.5 @taki0313 26/50 図 6.5 — 事前分布からのサンプル (1.00, 4.00, 0.00, 0.00) (9.00, 4.00, 0.00, 0.00) (1.00, 64.00, 0.00, 0.00) 3 9 3 1.5 4.5 1.5 0 0 0 −1.5 −4.5 −1.5 −3 −1 −0.5 0 0.5 1 −9 −1 (1.00, 0.25, 0.00, 0.00) −0.5 0 0.5 1 −3 −1 9 4 1.5 4.5 2 0 0 0 −1.5 −4.5 −2 −0.5 0 0.5 1 −9 −1 −0.5 0 0.5 −0.5 0 0.5 1 (1.00, 4.00, 0.00, 5.00) (1.00, 4.00, 10.00, 0.00) 3 −3 −1 @taki0313 27/50 1 −4 −1 −0.5 0 0.5 1 図 6.6 — 同時分布からのサンプル ガウス過程の事前分布から サンプリングされた関数 f 3 t 入力 {xn } 0 入力に対する {yn } (赤) サンプル {tn }(緑) −3 −1 @taki0313 28/50 0 x 1 – ノイズ入り 6.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 29/50 予測分布 p(tN+1) = N (tN+1|0, CN+1) — (6.61) より 共分散行列の分割 ( ) CN k — CN+1 = — 正定値でなければならない T k c — c = k(xN+1, xN+1) + β −1, k の要素は k(xn, xN+1) 2 章の結果から、条件付き分布 p(tN+1|t) は 1 – m(xN+1) = kTC− N t 1 – σ 2(xN+1) = c − kTC− N k @taki0313 30/50 予測分布 31/50 事前分布&条件付き分布はガウス分布 予測分布の平均・分散も xN+1 に依存 t2 訓練/テストデータが 1 つずつ 1 • 楕円 — 同時分布 p(t1, t2) m(x2 ) 0 t1 • t1 — 訓練データ (青) −1 • t1 に依存して p(t2|t1)(緑) −1 @taki0313 0 1 予測分布 32/50 ガウス過程による回帰の例 • sin 関数 (緑) • データ (右 3 つ以外, 青) 1 0.5 • ガウス過程による予測分布 の平均 (赤) 0 −0.5 −1 0 @taki0313 0.2 0.4 0.6 0.8 1 • 標準分布の 2 倍ぐらい (薄い 赤) 6.4.2 ガウス過程による回帰 33/50 K の固有値 λi → C の固有値 λi + β −1 – k(xn, xm) が ∀xn, xm に関して半正定値であればいい 予測分布の平均 ∑ – m(xN+1) = an k(xn, xN+1) 1 – an は C− N t の n 番目の要素 – k が動径に依存するなら RBF が使える 計算量 – ガウス過程 NxN の逆行列 O(N 3) — 基底による回帰 O(M 3) @taki0313 6.4.3 超パラメータの学習 34/50 予測が共分散の選び方にある程度依存する → parametric ハイパーパラメータ θ → p(t|θ) – θ の点推定, 共役勾配法 ガウス分布&ガウス過程では… 1 N – ln p(t|θ) = − 12 ln |CN| − 12 tTC− t − N 2 ln(2π) −1 ∂ CN 1 1 T −1 ∂ CN −1 ∂ ln p(t|θ) = − Tr (C ) + – 勾配 — ∂θ N ∂θi 2 2 t CN ∂θ CN t i i 一般には非凸関数で、近似的に解く。以下略 @taki0313 6.4.4 関連度自動決定 35/50 関連度自由決定 (ARD) — ニューラルネットから提案された何か 詳しくは §7.2.2 例 — 2 次元の入力空間 x = (x1, x2) をもつガウス過程 } { 1∑ ′ ′ 2 – カーネル k(x, x ) = θ0 exp − 2 ηi (xi − xi ) @taki0313 図 6.9 — ARD 事前分布からのサンプル 36/50 1 η1 = η2 = 1 (左) 0 η1 = 1, η2 = 0.01 (右) −1 1 1 0 0 −1 −1 η は入力に対する敏感さ 1 ARD の文脈から出力の予測 にあまり寄与しない入力変 数を求められる。 0 −1 1 1 0 0 −1 −1 @taki0313 図 6.10 — ARD におけるηの変化 2 10 目標変数 t 0 10 −2 10 −4 10 0 20 40 60 80 3 次元の入力 x1, x2, x3 最適化 — 共役勾配法 @taki0313 100 – – – – x1:ガウス分布、100 個 x2 は x1+ノイズ x3 はランダムなノイズ sin(2πx1)+ノイズ η1 > η2 >>>> η3 37/50 6.4.4 ARD 38/50 ARD → 指数・2 次カーネル ∑ ∑ 1 2 – k(xn, xm) = θ0 exp{− 2 ηi (xni − xmi ) } + θ2 + θ3 xni xmi 種々の応用において有用らしいカーネル @taki0313 6.4.5 ガウス過程による分類 確率的な分類 → 事後確率 ∈ (0, 1) ガウス過程 → 実数値全体 → 活性化関数 → 分類問題 2 クラス分類問題 t ∈ {0, 1} – – – – 関数 a(x) 上でのガウス過程を考える y = σ(a) と変換する y ∈ {0, 1} へ落とす 1 次元の例 — 図 6.11 @taki0313 39/50 図 6.11 40/50 10 • 上図 5 0 −5 −10 −1 −0.5 0 0.5 1 – a(x) に対するガウス過程 の事前分布からのサンプ ル 1 • 下図 0.75 – ロジスティックシグモイ ド関数で変換した 0.5 0.25 0 −1 @taki0313 −0.5 0 0.5 1 6.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 41/50 6.4.5 ガウス過程による分類 42/50 ベクトル 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 6.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 43/50 6.4.6 ラプラス近似 ベイズの定理 & p(tN|aN+1, aN) = p(tN|aN) より ∫ p(aN+1|tN) = p(aN+1, aN|tN)daN ∫ 1 = p(aN+1, aN)p(tN|aN+1, aN)daN p(tN) ∫ 1 p(aN+1|aN)p(aN)p(tN|aN)daN = p(tN) ∫ = p(aN+1|aN)p(aN|tN)daN @taki0313 44/50 6.4.6 ラプラス近似 45/50 条件付き分布 — (6.66), (6.67) 1 T −1 – p(aN+1|aN) = N (aN+1|kTC− a , c − k CN k) N N 積分 → ラプラス近似 & ガウス分布の畳み込み p(aN) — 平均 0, 共分散行列 CN であるガウス過程による データについての項 (各々独立として…) ∏N ∏N antn tn 1−tn – p(tN|aN) = n=1 σ(an ) (1 − σ(an )) = n=1 e σ(−an ) @taki0313 6.4.6 ラプラス近似 46/50 定数項を無視してラプラス近似 – Ψ(aN) = ln p(aN) + ln p(tN|aN) ∑N N 1 1 T T = − 2 aNCNaN − 2 ln(2π) − 2 ln |CN| + tNaN − n=1 ln(1 + e an ) 1 – ∇Ψ(aN) = tN − σN − C− N aN σN の要素は σ(an ) 1 – ∇∇Ψ(aN) = −WN − C− N W は対角要素に σ(an )(1 − σ(an )) を持つ正定値行列 dσ da = σ(1 − σ)(4.88) 正定値行列の和も正定値行列 (演習 6.24) @taki0313 6.4.6 ラプラス近似 47/50 ヘッセ行列 A = −∇∇Ψ(aN) が正定値 — 事後分布 p(aN|tN ) の対 数が凸関数 凸関数 — 極小・極大 = 最小・最大 逐次更新で最適解を目指せる — Newton-Raphson medhot (4.92) −1 – anew = C (I + W C ) {tN−σN + WnaN} N N N N – aN∗ に収束するまで — モード – このとき aN∗ = CN(tN−σN) 1 収束時のヘッセ行列 H = −∇∇Ψ(aN) = WN + C− N @taki0313 6.4.6 ラプラス近似 収束時の、事後分布 p(aN|tN) のガウス分布による近似 – q(aN) = N (aN|a∗N, H−1) 2 つのガウス分布の畳み込み積分の評価 — 2 章 – E[aN+1|tN] = kT(tN − σN) −1 – var [aN+1|tN] = c − kT(WN + CN)−1k →ガウス分布の情報が得られたので… @taki0313 48/50 6.4.6 ラプラス近似 共分散パラメータ θ の決定 – 尤度最大化, 最尤推定 ∫ – 尤度関数 p(tN|θ) = p(tN|aN)p(aN|θ)daN 近似 1 N – ln p(tN|θ) = Ψ(a∗N) − 12 ln |WN + C− | + N 2 ln(2π) Ψ(a∗N) = ln p(a∗N) + ln p(tN|a∗N) θ の微分が CN と aN の二種類の項が表れる (以下略?) @taki0313 49/50 6.4.7 ニューラルネットとの関係 ニューラルネット – 隠れユニットの数 M を上手く調整すれば強い – M → ∞ ガウス過程っぽい. ただし独立 – ニューラルネット — 隠れユニットの共有とが面白い ガウス過程 – 共分散関数に性質が左右される – 解析的に求められないところは近似 @taki0313 50/50
© Copyright 2024 Paperzz