28
コンピュータービジョン 最先端ガイド勉強会 3 カーネル情報処理入門 4.ベクトルデータに対するカーネル法(Ⅰ) 堀川 隆弘 @thorikawa

コンピュータービジョン最先端ガイド2 3.4ベクトルデータに対するカーネル法(SVM)

Embed Size (px)

DESCRIPTION

2011/2/19に開催された第9回コンピュータービジョン最先端ガイド勉強会の発表資料です。2巻3.4のSVMについての解説。

Citation preview

Page 1: コンピュータービジョン最先端ガイド2 3.4ベクトルデータに対するカーネル法(SVM)

コンピュータービジョン

最先端ガイド勉強会 第 3章 カーネル情報処理入門

4.ベクトルデータに対するカーネル法(Ⅰ)

堀川 隆弘

@thorikawa

Page 2: コンピュータービジョン最先端ガイド2 3.4ベクトルデータに対するカーネル法(SVM)

アウトライン

線形 SVM

元空間における分離境界を求める

非線形 SVM

特徴空間における分離境界を求める

SVMの汎化性能と正則化・問題点

Page 3: コンピュータービジョン最先端ガイド2 3.4ベクトルデータに対するカーネル法(SVM)

SVM:Support Vector Machine

二クラスの分類を行う、教師有り学習アルゴリズム

超平面を分離境界としてデータを分類する。

正例データと負例データのうち、両者の境界にあるもの ≡ Support Vector だけを予測に使う。

Support Vector との距離(Margin)を最大化する分類平面を選ぶ。

Page 4: コンピュータービジョン最先端ガイド2 3.4ベクトルデータに対するカーネル法(SVM)

SVMの特徴

高次元においても高い汎化能力を示す

非線形 SVMでは、特徴空間を高次元へ非線形変換しているので、識別能力の高い非線形識別関数を生成することが可能

解が必ず大域最適解に収束する(ニューラルネットワークとの違い)

Page 5: コンピュータービジョン最先端ガイド2 3.4ベクトルデータに対するカーネル法(SVM)

線形 SVM と非線形 SVM

線形 SVMは元空間上での線形分離

非線形 SVMは特徴空間上での線形分離

入力空間においては分離境界が非線形であっても、より高次元の特徴空間上では線形であり得る。

Page 6: コンピュータービジョン最先端ガイド2 3.4ベクトルデータに対するカーネル法(SVM)

線形 SVM

𝑓 𝑥 = 𝑤𝑡𝑥 + 𝑤0と表すことができ、かつ線形分離「丌可能」と仮定して考える

スラック変数ξn ≥ 0を導入する

正しく識別され、かつマージン境界の上または内側では ξn

= 0

それ以外の場合 ξn = yn − f xn

このとき、

分類境界f x = 0上にあるデータではξn = 1

誤分類されたデータではξn > 1が成り立つ

Page 7: コンピュータービジョン最先端ガイド2 3.4ベクトルデータに対するカーネル法(SVM)

これらをまとめて誤分類を許容するために、制約条件(2)を以下のようにす

る。

∀i, yi 𝑤𝑡x𝑖 + 𝑤0 − 1 − ξi ≥ 0 (79)

Where

∀i, ξi ≥ 0

このとき、誤分類に対しソフトにペナルティを不えることができる目的関数とし

て以下を設定する。

Minimize w,𝑤0 ,ξ

1

2 w 2 + c ξi

n

i=1

(80)

c はスラック変数による誤分類のペナルティと、マージンの大きさの間のトレー

ドオフを制御するパラメータ。

Page 8: コンピュータービジョン最先端ガイド2 3.4ベクトルデータに対するカーネル法(SVM)

ラグランジュの未定乗数法

複数の変数に1つ以上の制約条件が課せられたときに、関数の停留点を求め

る方法。

等式制約の未定乗数法

制約条件g x, y = 0のもとで関数f x, y の極値を求める

という問題を考えるとき、あるパラメータλ ≠ 0が存在して

∇f = λ∇g (L.1)

が成り立つ。

これと制約条件から極値をとる x,y を求められる。

Page 9: コンピュータービジョン最先端ガイド2 3.4ベクトルデータに対するカーネル法(SVM)

ラグランジュ関数

L x,λ ≡ f x +λg(x) (L.2)

で定義される Lに対し、停留条件 L.1は∇xL = 0 と表すことができる。

また、∂L

∂λ= 0 より制約式 g(x)=0が導かれる。

つまり、元の等式制約条件の下で f(x)を最大化するためには、ラグランジュ関数

L.2の x,λに関する停留点を求めればよい。

Page 10: コンピュータービジョン最先端ガイド2 3.4ベクトルデータに対するカーネル法(SVM)

丌等式制約の未定乗数法

制約条件g x, y ≥ 0のもとで関数f x, y の極値を求める

という問題を考えるとき、解には2つの可能性がある。

1. 停留点が g(x)>0の領域にある

2. 停留点が g(x)=0上にある

1の場合、停留条件は ∇f = 0

2の場合、停留条件は等式制約の場合と同様だが、制約条件から ∇f が領域

g(x)>0の外へと向かわなければいけないことを考慮して、

∃𝜆 > 0, ∇f = −𝜆∇g

いずれの場合も以下の Karush-Kuhn-Tucker条件(KKT条件)が成り立つ。

g x ≥ 0 (L.3)

𝜆 ≥ 0 (L.4)

𝜆g(x) = 0 (L.5)

この条件下でラグランジュ関数 L.2の x,λに関する停留点を求めればよい。

Page 11: コンピュータービジョン最先端ガイド2 3.4ベクトルデータに対するカーネル法(SVM)

双対問題

制約条件と目的関数を入れ替えることで、変数よりも制約条件が尐ない場合、

主問題よりも楽に解ける可能性が高い。

例) 制約条件 x+y=1のもとで目的関数 f(x,y)=2x2 + 3y2を最小化する。

ラグランジュ関数L(x, y) = 2x2 + 3y2 − 𝜆(𝑥 + 𝑦 − 1)で、

停留条件∇xL = 4x −λ = 0, ∇yL = 6y −λ = 0 から、x,y を消去して、

−5

12λ

2+λ = 0 を得る。

・目的関数が x,yの関数がλの関数になった!

・次元が 2 →1になった!

Page 12: コンピュータービジョン最先端ガイド2 3.4ベクトルデータに対するカーネル法(SVM)

マージン最大化の双対問題

元のマージン最大化問題

Minimize w,𝑤0 ,ξ

1

2 w 2 + c ξi

n

i=1

(M.1)

subject to ∀i, yi 𝑤𝑡x𝑖 + 𝑤0 − 1 − ξi ≥ 0

∀i, ξi ≥ 0 (M.2)

の双対問題を考える。

この最適化問題をとくためのラグランジュ関数は、

L 𝑤,𝑤0, ξ, 𝜆, μ =1

2 w 2 + c ξi

n

i=1

− 𝜆i yi w𝑇𝑥𝑖 + w0 − 1 + ξi

n

i=1

− μiξi

n

i=1

(M.3)

となる。

Page 13: コンピュータービジョン最先端ガイド2 3.4ベクトルデータに対するカーネル法(SVM)

ラグランジュ関数をw, 𝑤0, ξiで微分したものを0でおいて、以下の結果を得る。

∂L

∂𝑤= 0 ⇒ w = 𝜆iyixi

n

i=1

(M.4)

∂L

∂𝑤0= 0 ⇒ 𝜆iyi

n

i=1

= 0 (M.5)

∂L

∂ξi= 0 ⇒ 𝜆i = c − μn (M.6)

Page 14: コンピュータービジョン最先端ガイド2 3.4ベクトルデータに対するカーネル法(SVM)

これをもとのラグランジュ関数に代入すると、以下の双対表現が得られる。

双対表現(dual representation)

L 𝜆 = 𝜆i

n

i=1

−1

2 𝜆i𝜆jyiyjxi

txj

n

j=1

n

i=1

(81改)

subject to

0 ≤ 𝜆i ≤ c, i = 1, … , n

𝜆iyi = 0

n

i=1

ただし、最初の制約条件は𝜆n = c − μn とμn ≥ 0を用いた。

この双対問題の解き方については後述。

Page 15: コンピュータービジョン最先端ガイド2 3.4ベクトルデータに対するカーネル法(SVM)

双対問題を解き、𝜆iが求まったとして、分類規則は次のようになる。

w = 𝜆iyixi

n

i=1

(83)

w0 = yi − wtxi

(但し、xiは𝜆i > 0なる任意のxi) (84)

f(x) = wtx + w0 = 𝜆iyi(xi,

n

i=1

x) + w0 (85)

Page 16: コンピュータービジョン最先端ガイド2 3.4ベクトルデータに対するカーネル法(SVM)

対応する KKT条件は以下

KKT条件

𝜆i ≥ 0, i = 1, … , n (M.7)

yi w𝑇xi + w0 − 1 + ξi ≥ 0 (M.8)

𝜆i yi w𝑇xi + w0 − 1 + ξi = 0 (M.9)

μi ≥ 0 (M.10)

ξi ≥ 0 (M.11)

μnξn = 0 (M.12)

よって、全ての訓練データに対し、𝜆n = 0またはyi w𝑇xi + w0 − 1 + ξi = 0が

成立する。(85)より、𝜆n = 0の点は新しいデータ点の予測に寄不しない。

それ以外の𝜆n ≠ 0となる点を Support Vector と呼び、マージンの縁に存在す

る。

Page 17: コンピュータービジョン最先端ガイド2 3.4ベクトルデータに対するカーネル法(SVM)

非線形 SVM

d次元からD次元への写像φを考え、d次元ベクトルxiの代わりに、D次元ベク

トルφ(xi)を新しい n個の学習パターン(特徴ベクトル)とみなしてみる。

計算式は線形SVMの場合とほぼ同様になり、マージン最大化を表す式は以下

のようになる。

Minimize w,𝑤0 ,ξ

1

2 w 2 + c ξi

n

i=1

(N.1)

subject to ∀i, yi 𝑤𝑡φ(xi) + 𝑤0 − 1 − ξi ≥ 0

∀i, ξi ≥ 0 (N.2)

Page 18: コンピュータービジョン最先端ガイド2 3.4ベクトルデータに対するカーネル法(SVM)

対応するラグランジュ関数は、

L 𝑤,𝑤0, ξ, 𝜆, μ

=1

2 w 2 + c ξi

n

i=1

− 𝜆i yi 𝑤𝑡φ(xi) + w0 − 1 + ξi

n

i=1

− μiξi

n

i=1

(N.3)

これを𝑤,𝑤0, ξiについて微分して 0 とおき、以下の双対表現が得られる。

L 𝜆 = 𝜆i

n

i=1

−1

2 𝜆i𝜆jyiyjφ(xi)

tφ(xj)

n

j=1

n

i=1

(N.4)

Page 19: コンピュータービジョン最先端ガイド2 3.4ベクトルデータに対するカーネル法(SVM)

d 次元ベクトルxi , xjを入力とするカーネル関数 k(x,y)があって、k(xi , xj) ≡

φ(xi)tφ(xj) が成立するとすれば、以下のようにも表せる。

双対表現(dual representation)

L 𝜆 = 𝜆i

n

i=1

−1

2 𝜆i𝜆jyiyjk(xi , xj)

n

j=1

n

i=1

(89改)

subject to

0 ≤ 𝜆i ≤ c, i = 1, … , n

𝜆iyi = 0

n

i=1

これを解いて、識別関数は

f x = 𝜆iyik(x, xn)

n

i=1

+ 𝑤0 (91)

Page 20: コンピュータービジョン最先端ガイド2 3.4ベクトルデータに対するカーネル法(SVM)

と表すことができる。

カーネル関数を用いることによって、

・訓練データ各点の特徴空間上の座標φ(x)を計算しなくてよい

・φ(x)が未知でも最適解を得ることができる

というメリットがある。

また、特徴空間の次元をM、訓練データの数を N とすると、

もともとの問題(N.1,N.2)はM+N+1変数、双対問題(89)は N変数であった。

これにより、特徴空間の次元がガウスカーネルのような無限次元の場合にも、

最大マージン分類器を適用できるようになる。

Page 21: コンピュータービジョン最先端ガイド2 3.4ベクトルデータに対するカーネル法(SVM)

マージン最大化と凸最適化

k xi , xj が半正定値より、双対問題は凸最適化問題になる。

凸最適化

f x1, … , xn → max

subject to

g1 x1 , … , xn ≤ 0

…gn x1 , … , xn ≤ 0

h1 x1, … , xn = 0

…hn x1, … , xn = 0

fが上に凸の関数で、制約条件が定義する領域が凸であるとき、こ

の問題を凸最適化問題と呼ぶ。

凸最適化問題においては、局所最適解=大域最適解になる。

Page 22: コンピュータービジョン最先端ガイド2 3.4ベクトルデータに対するカーネル法(SVM)

二次計画法の解法

一般に M個の変数を持つ二次計画問題を解くにはΟ M3 の時間がかかることが知られている。

効率的に解くアルゴリズムが必要。

Chunking (Vapnik, 1982)

最終的にゼロにならないラグランジュ乗数だけを残す。

カーネル行列の大きさを、全データ数の2乗から、非ゼロのラグラン

ジュ乗数の数の2乗程度まで減らすことが可能。

保護共役勾配法(protected conjugate gradient method)を用い

て実装可能(Burges, 1998)

Page 23: コンピュータービジョン最先端ガイド2 3.4ベクトルデータに対するカーネル法(SVM)

分解法(decomposition method) (Osuna et al., 1996)

サイズの小さな二次計画問題を繰り返し解くことで、最終的な解を

得る。

実際には、2つのラグランジュ乗数を含む部分問題を繰り返し解く

SMO(sequential minimal optimization)(Platt, 1999)が広く使

われている。

Page 24: コンピュータービジョン最先端ガイド2 3.4ベクトルデータに対するカーネル法(SVM)

SMO(sequential minimal optimization) アイデア

全ての 𝜆n ではなく、2個の𝜆iだけを選び、逐次更新する。

アルゴリズム概略 動かす対象を𝜆1, 𝜆2の2点とする。

このとき、(89)の制約式より以下が成立する。

𝜆1new y1 + 𝜆2

new y2 = 𝜆1old y1 + 𝜆2

old y2

これと制約式 0 ≤ 𝜆n ≤ cから以下の新たな制約式が導きだせる。

y1 = y2の場合

U ≤ 𝜆2new ≤ V

where U = max 0, 𝜆1old + 𝜆2

old − c , V = min c, 𝜆1old + 𝜆2

old

y1 ≠ y2の場合

U ≤ 𝜆2new ≤ V

where U = max 0, C − 𝜆1old + 𝜆2

old , V = min C, 𝜆2old − 𝜆1

old

Page 25: コンピュータービジョン最先端ガイド2 3.4ベクトルデータに対するカーネル法(SVM)

また、目的関数(89)は𝜆1, 𝜆2に関連する部分だけに注目して、以下のように

整理できる。

W 𝜆1, 𝜆2 = 𝜆1 + 𝜆2 −1

2K11𝜆1

2 −1

2K22𝜆2

2 − y1y2K12𝜆1𝜆2 − y1ν1𝜆1 − y2ν2𝜆2 + const.

where

Kij = k xi , xj

νi = yj𝜆j

n

j=3

k xi , xj

目的関数を𝜆2で微分して=0 とおくことで、更新式が求まる。

𝜆2new = 𝜆2

old +y2 f x1 − y1 − f x2 − y2

K11 + K22 − 2K12

この更新式に対して、前述の制約式を適用したものを𝜆2newの更新値とする。

(𝜆1newは𝜆1

new y1 + 𝜆2new y2 = 𝜆1

old y1 + 𝜆2old y2から求まる。)

なお、各部分問題で動かす 2点の選び方には、いくつかのヒューリスティック

が存在する。

Page 26: コンピュータービジョン最先端ガイド2 3.4ベクトルデータに対するカーネル法(SVM)

汎化性能と正則化

Minimize w,𝑤0 ,ξ

1

2 w 2 + c ξi

n

i=1

・c大→誤分類したらダメ、絶対!マージン小。モデルが複雑。

・c小→誤分類しても OK 。マージン大。モデルが簡易。

Generalized Overfitting ©http://f.hatena.ne.jp/aidiary/

Cパラメータで柔軟に

調整可能

Page 27: コンピュータービジョン最先端ガイド2 3.4ベクトルデータに対するカーネル法(SVM)

SVMの問題点

カーネルの選択に注意を要する

実際の選択肢は多くなく、パラメータ変更時の振る舞いも予想がつくので大きな問題にはならない。

ほぼガウスカーネル&クロスバリデーションで十分?

実数ベクトルの場合は大体ガウスカーネル。他、問題の種別に応じて、使用するカーネルは大体限定される。

多クラス分類や事後確率を求めるには工夫が必要

二次計画問題の計算量が多い

N個の変数を持つ二次計画問題の計算量はO N3

計算量を優先させるために線形 SVM を使う場合もある

Page 28: コンピュータービジョン最先端ガイド2 3.4ベクトルデータに対するカーネル法(SVM)

参考文献

1. C.M.ビショップ:パターン認識と機械学習 上・下,シュプリンガー・ジャパン

2. 金谷 健一:これならわかる最適化数学,共立出版

3. 赤穂昭太郎:カーネル多変量解析,岩波書店

4. 中川 裕志:「数理手法(統計的機械学習入門)」講義スライドhttp://www.r.dl.itc.u-tokyo.ac.jp/~nakagawa/SML1/kernel1.pdf

5. 前田 英作:痛快!サポートベクトルマシンhttp://ci.nii.ac.jp/naid/110002764121/