12. マージン最大化の双対問題
元のマージン最大化問題
n
1 2
Minimize w +c ξi (M.1)
w ,������ 0 ,ξ 2
i=1
subject to ∀i, yi ������ ������ x������ + ������0 − 1 − ξi ≥ 0
(M.2)
∀i, ξi ≥ 0
の双対問題を考える。
この最適化問題をとくためのラグランジュ関数は、
n n n
1
L ������, ������0 , ξ, ������, μ = w 2
+c ξi − ������i yi w ������ ������������ + w0 − 1 + ξi − μi ξ i (M.3)
2
i=1 i=1 i=1
となる。
13. ラグランジュ関数を w, ������0 , ξi で微分したものを 0 でおいて、以下の結果を得る。
n
∂L
=0 ⇒ w= ������i yi xi (M.4)
∂������
i=1
n
∂L
=0 ⇒ ������i yi = 0 (M.5)
∂������0
i=1
∂L
= 0 ⇒ ������i = c − μn (M.6)
∂ξi
14. これをもとのラグランジュ関数に代入すると、以下の双対表現が得られる。
双対表現(dual representation)
n n n
1
L ������ = ������i − ������i ������j yi yj xi t xj (81 改)
2
i=1 i=1 j=1
subject to
0 ≤ ������i ≤ c, i = 1, … , n
n
������i yi = 0
i=1
ただし、最初の制約条件は������n = c − μn とμn ≥ 0を用いた。
この双対問題の解き方については後述。
15. 双対問題を解き、������i が求まったとして、分類規則は次のようになる。
n
w= ������i yi xi (83)
i=1
w0 = yi − w t x i
(84)
(但し、xi は������i > 0なる任意のxi )
n
f(x) = w t x + w0 = ������i yi (xi, x) + w0 (85)
i=1
16. 対応する 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 と呼び、マージンの縁に存在す
る。
17. 非線形 SVM
d 次元から D 次元への写像φを考え、d 次元ベクトルxi の代わりに、D 次元ベク
トルφ(xi )を新しい n 個の学習パターン(特徴ベクトル)とみなしてみる。
計算式は線形 SVM の場合とほぼ同様になり、マージン最大化を表す式は以下
のようになる。
n
1 2
Minimize w +c ξi (N.1)
w ,������ 0 ,ξ 2
i=1
subject to ∀i, yi ������ ������ φ(xi ) + ������0 − 1 − ξi ≥ 0
(N.2)
∀i, ξi ≥ 0
18. 対応するラグランジュ関数は、
L ������, ������0 , ξ, ������, μ
n n n
1 (N.3)
= w 2
+c ξi − ������i yi ������������ φ(xi ) + w0 − 1 + ξi − μi ξ i
2
i=1 i=1 i=1
これを������, ������0 , ξi について微分して 0 とおき、以下の双対表現が得られる。
n n n
1
L ������ = ������i − ������i ������j yi yj φ(xi )t φ(xj ) (N.4)
2
i=1 i=1 j=1
19. d 次元ベクトルxi , xj を入力とするカーネル関数 k(x,y)があって、k(xi , xj ) ≡
φ(xi )t φ(xj ) が成立するとすれば、以下のようにも表せる。
双対表現(dual representation)
n n n
1
L ������ = ������i − ������i ������j yi yj k(xi , xj ) (89 改)
2
i=1 i=1 j=1
subject to
0 ≤ ������i ≤ c, i = 1, … , n
n
������i yi = 0
i=1
これを解いて、識別関数は
n
f x = ������i yi k(x, xn ) + ������0 (91)
i=1
24. SMO(sequential minimal optimization)
アイデア
全ての ������n ではなく、2個の������i だけを選び、逐次更新する。
アルゴリズム概略
動かす対象を������1 , ������2 の2点とする。
このとき、(89)の制約式より以下が成立する。
������1 y1 + ������new y2 = ������1 y1 + ������old y2
new
2
old
2
これと制約式 0 ≤ ������n ≤ cから以下の新たな制約式が導きだせる。
y1 = y2 の場合
U ≤ ������new ≤ V
2
where U = max 0, ������1 + ������old − c , V = min
old
2 c, ������1 + ������old
old
2
y1 ≠ y2 の場合
U ≤ ������new ≤ V
2
where U = max 0, C − ������1 + ������old , V = min
old
2 C, ������old − ������1
2
old
25. また、目的関数(89)は������1 , ������2 に関連する部分だけに注目して、以下のように
整理できる。
1 1
W ������1 , ������2 = ������1 + ������2 − K11 ������1 − K 22 ������2 2 − y1 y2 K12 ������1 ������2 − y1 ν1 ������1 − y2 ν2 ������2 + const.
2
2 2
where
K ij = k xi , xj
n
νi = yj ������j k xi , xj
j=3
目的関数を������2 で微分して=0 とおくことで、更新式が求まる。
new old
y2 f x1 − y1 − f x2 − y2
������2 = ������2 +
K11 + K 22 − 2K12
この更新式に対して、前述の制約式を適用したものを������new の更新値とする。 2
(������1 は������1 y1 + ������new y2 = ������1 y1 + ������old y2 から求まる。)
new new
2
old
2
なお、各部分問題で動かす 2 点の選び方には、いくつかのヒューリスティック
が存在する。