Slide 1

Slide 1 text

サポートベクターマシン Support Vector Machine SVM 0 明治大学 理⼯学部 応用化学科 データ化学⼯学研究室 ⾦⼦ 弘昌

Slide 2

Slide 2 text

サポートベクターマシン (SVM) とは︖ 線形判別関数によるクラス分類 2つのクラス (1のクラス・-1のクラス) のどちらに属するか決定 予測能⼒の⾼いモデルを作成可能 カーネルトリックにより非線形の判別モデルに 1

Slide 3

Slide 3 text

線形判別関数 2 x1 x2 クラス1 クラス-1 1 2 1 1 2 2 ( , ) f x x w x w x b b = + + = + xw [ ] 1 1 2 2 , w x x w   = =     x w 線形判別関数︓

Slide 4

Slide 4 text

SVMの基本的な考え方 3 x1 x2 クラス1 クラス-1 マージンを最大化するように 判別関数を決める︕ 2 2 1 2 2 2 w w = + w マージン = (点と直線との距離で計算) 1 2 1 1 2 2 ( , ) f x x w x w x b b = + + = + xw

Slide 5

Slide 5 text

サポートベクター 4 x1 x2 クラス1 クラス-1 サポートベクター ・・・他のクラスのサンプルと 最も近いところにいるサンプル f(x) = 1 (クラス1) f(x) = -1 (クラス-1)

Slide 6

Slide 6 text

マージンの最大化 5 x1 x2 クラス1 クラス-1 2 2 1 2 2 2 w w = + w マージン = (点と直線との距離で計算) 1 2 1 1 2 2 ( , ) f x x w x w x b b = + + = + xw 線形判別関数︓ 2 w の最大化 1 2 w の最小化

Slide 7

Slide 7 text

きれいに分離できないときは︖ 6 x1 x2 スラック変数 ξ を導⼊︕ ξi > 1 0 < ξi < 1 ξi = 0 サンプルごとの ξi の和 を最小化 1 n i i ξ = ∑ n: モデル構築用 サンプル数

Slide 8

Slide 8 text

2つの項を一緒に最小化 ||w|| / 2 の最小化 → 計算の都合上、 ||w||2 / 2 の最小化 ξi の和の最小化 7 C : 2つの項のバランスを決める係数 x(i): i 番目のサンプルの説明変数 y(i): i 番目のサンプルの値 (1 もしくは -1) 2 1 1 2 n i i C ξ = + ∑ w の最小化 ただし、 ( ) ( ) ( ) 0, 1 i i i i y f ξ ξ ≥ ≥ − x

Slide 9

Slide 9 text

重み w を求める Lagrangeの未定乗数法 • ラグランジュ乗数αi 、βi (i=1, 2, ..., n) を導⼊ 8 ( ) { } 2 ( ) ( ) 1 1 1 1 1 2 n n n i i i i i i i i i i G C ξ y f ξ ξ α β = = = = + − − + − ∑ ∑ ∑ w x w、b、ξi に関してGを最小化し、αi 、βi に関してGを最大化 w、b、ξi に関してGが極小 G をw、b、ξi それぞれで偏微分して 0 とする

Slide 10

Slide 10 text

偏微分して0 9 ( ) ( )T 1 n i i i i y α = = ∑ w x ( ) 1, 2, , i i C i n α β + = = K ( ) 1 0 n i i i y α = = ∑ G を w で偏微分して0 G を b で偏微分して0 G を ξi で偏微分して0 これらを使って G を変形すると・・・ ( ) ( ) ( ) ( )T 1 1 1 1 2 n n n i j i j i i j i i j G y y α α α = = = = − ∑ ∑∑ x x

Slide 11

Slide 11 text

二次計画問題 10 ( ) ( ) ( ) ( )T 1 1 1 1 2 n n n i j i j i i j i i j G y y α α α = = = = − ∑ ∑∑ x x 制約 G を αi に対して最大化する二次計画問題を解くと αi が求まる ( ) 1 0 , 0 n i i i i C y α α = ≤ ≤ = ∑ のもとで、 ( ) ( )T 1 n i i i i y α = = ∑ w x w が求まる

Slide 12

Slide 12 text

線形判別関数を求める 11 ( ) ( )T ( ) ( )T 1 1 ( ) n n i i i i i i i i f b y b y b α α = = = + = + = + ∑ ∑ x xw x x xx ( ) ( ) ( ) ( )T S S S 1 i i i j j i j b y y n α ∈ ∈   = −     ∑ ∑ x x S : サポートベクター (αi ≠0 のサンプル) の集合 nS : サポートベクターの個数

Slide 13

Slide 13 text

非線形SVMへの拡張 12 線形判別関数は判別能⼒に限界 元の空間より⾼次元に写像 ⾼次元空間上で線形判別関数を構築 ⾼次元空間への写像の例︓ 写像前(1次元) 線形判別不能 写像後(2次元) 線形判別可能 線形判別関数 ( ) 2 , x x x →

Slide 14

Slide 14 text

カーネルトリック 13 線形判別関数 (元の空間)︓ ( ) ( )T 1 ( ) n i i i i f y b α = = + ∑ x xx ( ) ( )T ( ) ( ) 1 ( ) n i i i i f y b α φ φ = = + ∑ x x x 非線形判別関数 (⾼次元空間)︓ ϕ(x) を求める必要はなく、内積 ϕ(x)ϕ(x(i))T が分かればOK︕ ⾼次元空間への写像︓ ( ) ( ) ( )T ( ) ( ) ( ) ( ) , i j i j K φ φ = x x x x ⾼次元空間への写像 ϕ(x) ではなく、内積を指定 (カーネル関数 K ) ( ) φ → x x

Slide 15

Slide 15 text

カーネル関数の例 線形カーネル ガウシアンカーネル (使われることが多い) 多項式カーネル 14 ( ) ( ) ( ) ( ) ( )T , i j i j K = x x x x ( ) ( ) 2 ( ) ( ) 2 ( ) ( ) ( ) ( ) 2 , exp exp 2 i j i j i j K γ σ   −   = − = − −     x x x x x x ( ) ( ) ( ) ( ) ( ) ( )T , 1 d i j i j K λ = + x x x x

Slide 16

Slide 16 text

最終的なSVMを作る前に最適化するパラメータ ガウシアンカーネルを使用したSVMのとき、最初に C と γ とを 適切に設定する必要がある 15 2 1 1 2 n i i C ξ = + ∑ w ( ) ( ) 2 ( ) ( ) ( ) ( ) , exp i j i j K γ = − − x x x x グリッドサーチ + クロスバリデーション による C および γ の最適化

Slide 17

Slide 17 text

グリッドサーチ+クロスバリデーション C と γ の候補を設定し、すべての組合せ (グリッド, 下図の● ) で クロスバリデーションを⾏う C と γ の候補の例 • C : 2-5, 2-4, ..., 29, 210 • γ : 2-10, 2-9, ..., 24, 25 例) クロスバリデーション後の 正解率が最も⾼い C ・ γ の組を選択 • 正解率についてはこちら 16 C γ 2-10 2-9 24 25 ・・・ 2-5 2-4 29 210 ・・・