Chap.8 Support Vector Machine
はじめてのパターン認識 輪読会
Nobuyuki Takayasu
Tokyo, Japan
September 12, 2019
Contents
1 ハードマージン SVM
2 ソフトマージン SVM
3 高次元埋め込み (非線形特徴写像)
4 双対の直感的理解
ハードマージン SVM の定義
定義 (ハードマージン SVM)
最大マージンを実現する線形識別境界による 2 クラス分類を行う学習法
最大マージン :線形識別境界とサポートベクトルの距離の最大値
例:点 (x1i, x2i) と直線 (l : w1x1i + w2x2i + b = 0) の距離
d =
|w1x1i + w2x2i + b|
√
w2
1 + w2
2
=
wT x + b
||w||
線形識別境界 :データを 2 クラスに分割する境界
超平面の式 w0xi + b0 = 0 (最適解 w0, 最適バイアス b0)
分類 :データを任意の数のカテゴリにふるい分ける
※線形分離可能な分類問題に限る
マージン最大化の原理
最大マージンを得る条件
点(各データ)と直線(線形識別境界)の距離の条件
マージン最大化条件
距離の条件
i 番目のデータと線形識別境界の距離を di、マージンを D、
クラスと正解ラベルの対応は (C1,C2) = (ti = 1, tj = −1)
di =
||wT xi + b||
||w||
≥ D ⇒
||wT xi + b||
||w||
||w|| ≥ D||w|| ∵ D||w|| = κ
⇒ ||wT
xi + b|| ≥ κ
⇒ ||wT
xi + b|| ≥ 1 ∵ w =
w
κ
, b =
b
κ
⇒



||wT xi + b|| ≥ 1 (wT xi + b ≥ 0)
||wT xi + b|| ≤ −1 (wT xi + b ≥ 0)
誤分類無しの条件 ⇒ ti(wT
xi + b) ≥ 1
距離の条件
||wT
xi + b|| =



||wT xi + b|| ≥ 1 (wT xi + b ≥ 0)
||wT xi + b|| ≤ −1 (wT xi + b ≥ 0)
誤分類無しの条件 ⇒ ti(wT
xi + b) − 1 ≥ 0
マージン最大化条件
クラスそれぞれのサポートベクトルまでの距離→マージン D1, D2
ρ = D1 + D2 = min
i
di + min
j
dj



i ∈ {C1の添字集合 }
j ∈ {C2の添字集合 }
=
||wT xS V1 + b||
||w||
+
||wT xS V2 + b||
||w||



xS V1 ∈ C1
xS V2 ∈ C2
=
2
||w||
マージンを最大化するような重みとバイアスを w0, b0 とおくと、マージン
最大化の式は
ρ(w0, b0) = max
w,b
ρ(w, b) = max
w
2
||w||
∝ max
w
1
||w||
マージン最大化条件
マージン最大化の式を変形していくと
ρ(w0, b0) ⇒ max
w
2
||w||
⇒ max
w
1
||w||
⇒ min
w
||w||
⇒ min
w
1
2
||w||2
⇒ min
w
1
2
wT
w
マージン最大化条件は次のように書き直せる。
max
w,b
ρ(w, b) ⇒ min
w
1
2
wT
w
ハードマージン SVM  主問題
不等式制約条件最適化問題の主問題
minimize f(w) =
1
2
wT
w
subject to gi(w, b) = tt(wT
x + b) − 1 ≥ 0 (i = 1, · · · , N)
最適化の対象となる評価関数 f(w) と不等式制約条件 gi(w, b) の二つから新
たな関数を導入する→ラグランジュ関数
ラグランジュ関数
minimize L(w, b, α) =
1
2
wT
w −
N∑
i=1
αi(tt(wT
x + b) − 1)
subject to αi ≥ 0 (αiラグランジュ未定乗数)
脱線:ラグランジュ関数の直感的理解
制約あり最適化問題
minimize f(x)
subject to gi(x) ≤ 0(i = 1, · · · , m)
hj(x) = 0( j = 1, · · · , l)
最適化問題の評価関数と制約を一つの関数にし、問題を作り変えると、
制約なし最適化問題
minimize f(x) +
m∑
i=1
I−(gi(w)) +
l∑
j=1
I0(hj(w))
I− =



0 (gi ≤ 0)
∞ (otherwise)
, I0 =



0 (hi = 0)
∞ (otherwise)
脱線:ラグランジュ関数の直感的理解
指示関数による書き換え 
minimize f(x) +
m∑
i=1
I−(gi(w)) +
l∑
j=1
I0(hj(w))
I− =



0 (gi ≤ 0)
∞ (otherwise)
, I0 =



0 (hi = 0)
∞ (otherwise)
脱線:ラグランジュ関数の直感的理解
指示関数による書き換え
minimize f(x) +
m∑
i=1
I−(gi(w)) +
l∑
j=1
I0(hj(w))
I− =



0 (gi ≤ 0)
∞ (otherwise)
, I0 =



0 (hi = 0)
∞ (otherwise)
指示関数は 0 付近で敏感な関数で扱いづらい→指示関数を線形近似する
線形近似→ラグランジュ関数
minimize f(x) +
m∑
i=1
λigi(w) +
l∑
j=1
νjhj(w)
subject to λi ≥ 0 (λiラグランジュ未定乗数)
ハードマージン SVM  主問題
不等式制約条件最適化問題の主問題
minimize f(w) =
1
2
wT
w
subject to gi(w, b) = tt(wT
x + b) − 1 ≥ 0 (i = 1, · · · , N)
最適化の対象となる評価関数 f(w) と不等式制約条件 gi(w, b) の二つから新
たな関数を導入する→ラグランジュ関数
ラグランジュ関数
minimize L(w, b, α) =
1
2
wT
w −
N∑
i=1
αi(tt(wT
x + b) − 1)
subject to αi ≥ 0 (αiラグランジュ未定乗数)
ハードマージン SVM  ラグランジュ関数の展開
ラグランジュ関数を展開
L(w, b, α) =
1
2
wT
w −
N∑
i=1
αi
(
tt(wT
xi + b) − 1
)
=
1
2
wT
w −
N∑
i=1
(
αitiwT
xi + αitib − αi
)
=
1
2
wT
w −
N∑
i=1
αitiwT
xi − b
N∑
i=1
αiti +
N∑
i=1
αi
最適解 w0, b0 は次に表される最適化条件(KKT 条件)を満たす解として得
られる。
ハードマージン SVM  最適化条件
最適化条件(KKT 条件)
∂L(w, b, α)
∂w w=w0
= 0 (1)
∂L(w, b, α)
∂b
= 0 (2)
ti(wT
xi + b) − 1 ≥ 0 (3)
αi ≥ 0 (4)
αi
(
ti(wT
xi + b) − 1
)
= 0 (5)
天下り的に定義した KKT 条件をラグランジュ関数に適用していく。
ハードマージン SVM  最適化条件の適用
L(w, b, α) =
1
2
wT
w −
N∑
i=1
αitiwT
xi − b
N∑
i=1
αiti +
N∑
i=1
αi
KKT 条件 (1)
∂L(w, b, α)
∂w w=w0
= w0 −
N∑
i=1
αitixi = 0
w0 =
N∑
i=1
αitixi
微分によりラグランジュ関数の極値を求めており、ラグランジュ関数が凸
関数であることから極値=局所最適解=大域最適解となる。また、移項によ
り最適解 w0 がラベル、入力、未定乗数から求まることが分かる。
ハードマージン SVM  最適化条件の適用
L(w, b, α) =
1
2
wT
w −
N∑
i=1
αitiwT
xi − b
N∑
i=1
αiti +
N∑
i=1
αi
KKT 条件 (1) w0 =
N∑
i=1
αitixi
ハードマージン SVM  最適化条件の適用
L(w, b, α) =
1
2
wT
w −
N∑
i=1
αitiwT
xi − b
N∑
i=1
αiti +
N∑
i=1
αi
KKT 条件 (2)
∂L(w, b, α)
∂b
=
N∑
i=1
αiti = 0
KKT 条件 (3) ti(wT
xi + b) − 1 ≥ 0
KKT 条件 (2):ラグランジュ関数のバイアスによる偏微分が 0
KKT 条件 (3):制約条件 データの数 x だけ存在する
ハードマージン SVM  最適化条件の適用
L(w, b, α) =
1
2
wT
w −
N∑
i=1
αitiwT
xi − b
N∑
i=1
αiti +
N∑
i=1
αi
KKT 条件 (4) αi ≥ 0
KKT 条件 (5) αi
(
ti(wT
xi + b) − 1
)
= 0
KKT 条件 (4):ラグランジュ未定乗数の制約条件
KKT 条件 (5):相補性条件
ti(wT
x + b) − 1 ≥ 0 ⇒ αi = 0 (非有効)
ti(wT
x + b) − 1 = 0 ⇒ αi 0 (有効)
ti(wT x + b) − 1 = 0 の時のみ、αi 0 が許される。この許可によって有効な
条件がラグランジュ関数の制約となり、これは SV によって与えられる。
ハードマージン SVM  最適化条件の適用
最適化条件
w0 =
N∑
i=1
αitixi (1)
∂L(w, b, α)
∂b
=
N∑
i=1
αiti = 0 (2)
ti(wT
xi + b) − 1 ≥ 0 (3)
αi ≥ 0 (4)
αi
(
ti(wT
xi + b) − 1
)
= 0 (5)
ラグランジュ関数
L(w, b, α) =
1
2
wT
w −
N∑
i=1
αitiwT
xi − b
N∑
i=1
αiti +
N∑
i=1
αi
ハードマージン SVM  ラグランジュ関数
ラグランジュ関数に KTT 条件を代入していく
L(w0, b, α) =
1
2
wT
0 w0 −
N∑
i=1
αitiwT
0 xi − b
N∑
i=1
αiti +
N∑
i=1
αi
=
1
2
wT
0 w0 −
N∑
i=1
αitiwT
0 xi +
N∑
i=1
αi (∵ KTT(2))
=
1
2
wT
0 w0 − wT
0
( N∑
i=1
αitixi
)
+
N∑
i=1
αi (∵ KTT(1))
=
1
2
(
N∑
i=1
αitixi)T
(
N∑
i=1
αitixi) − (
N∑
i=1
αitixi)T
( N∑
i=1
αitixi
)
+
N∑
i=1
αi
=
1
2
N∑
i=1
N∑
j=1
αitiαjtjxT
i xj −
N∑
i=1
N∑
j=1
αitiαjtjxT
i xj +
N∑
i=1
αi
= −
1
2
N∑
i=1
N∑
j=1
αitiαjtjxT
i xj +
N∑
i=1
αi
ハードマージン SVM  双対問題
N 個の 1 を並べたベクトルを 1 = (1, · · · , 1)T 、入力による行列を
H = Hi,j = titjxT
i xj、正解ラベルを t = (t1, · · · , tN)T とすると
双対問題
maxmize L(α) = αT
1 −
1
2
αT
Hα
subject to αT
t = 0
双対問題のラグランジュ関数
˜L(α, β) = αT
1 −
1
2
αT
Hα − βαT
t
KKT 条件
w0 =
N∑
i=1
αitixi ,
N∑
i=1
αiti = 0
αi
(
ti(wT
xi + b) − 1
)
= 0 ⇒



ti(wT xi + b) − 1 = 0 ⇒ αi  0
ti(wT xi + b) − 1 ≥ 0 ⇒ αi = 0
ハードマージン SVM  双対問題
下に凸な線:主問題の評価関数を最小にする w の探索
上に凸な線:双対問題の評価関数を最大にする α の探索
この最適化問を計算機で解く場合は SMO を使用する
ハードマージン SVM  双対問題
N 個の 1 を並べたベクトルを 1 = (1, · · · , 1)T 、入力による行列を
H = Hi,j = titjxT
i xj、正解ラベルを t = (t1, · · · , tN)T とすると
双対問題
maxmize L(α) = αT
1 −
1
2
αT
Hα
subject to αT
t = 0
SMO を用いて、α を求めたら、KKT(1) より最適解 w0 が求まる。
w0 =
N∑
i=1
αitixi
また KKT 条件 (5) より、最適なバイアスが求まる。
ここで添え字 (SV) はサポートベクトルとその正解ラベルを表す。
tS V(wT
0 xS V + b0) − 1 = 0 ⇒
1 − tsvb0
tsv
= wT
0 xS V
⇒ b0 =
1
tS V
− wT
0 xS V
ハードマージン SVM  最大マージン
ラグランジュ未定乗数の最適解を ˜α = ( ˜α1, · · · , ˜αN)T と置くと、
wT
0 w =
( N∑
i=1
˜αitixT
i
)
w0 (∵ KKT(1))
=
N∑
i=1
˜αiti
1 − tib0
ti
=
N∑
i=1
˜αi − b0
N∑
i=1
˜αiti (∵ KKT(2))
=
N∑
i=1
˜αi
したがって、最大マージンは
Dmax =
1
||w0||
=
1
√
wT
0 w0
=
1
√
∑N
i=1 ˜αi
ハードマージン SVM  まとめ
ハードマージン SVM
線形分離可能である場合に最大マージンを実現
する線形識別境界によってデータを 2 クラス分
類する方法
識別の条件
1. 各データと線形識別境界との距離の条件
ti(wT
xi + b) ≥ 1
2. マージン最大化条件を満たす関数
min
w
1
2
wT
w
ラグランジュ未定乗数法より主問題と等価な双
対問題を導き、線形識別境界の式を求める。
脱線:SMO(Sequential minimal optimization)
SMO(逐次最小問題最適化法) のアルゴリズムについて大雑把な理解
双対問題
maxmize L(α) = αT
1 −
1
2
αT
Hα
subject to αT
t = 0
アルゴリズム 
INPUT : t, x / OUTPUT : α
1. 初期化 α = 0
2.while KKT 条件を違反する変数が存在
3. KKT 条件を違反する変数 α1 を選択
4. 帳尻を合わせる変数 α2 を選択
5. α1, α2 を更新
6.end while
7.return α
詳細→ Fast Training of Support Vector Machines using Sequential Minimal Optimization/John C. Platt
線形分離不可能な場合
ハードマージン SVM は線形分離可能な場合にのみ活用可能
→ 線形分離不可能な場合はどうするか
⇒ ・誤分類を許容する ソフトマージン SVM
・高次元で分離する 高次元埋め込み (非線形特徴写像)
ソフトマージン SVM
定義 (ソフトマージン SVM)
最大マージンを実現する線形識別境界による 2 クラス分類を行うが、いく
らかの誤分類は許容する学習法
線形分離不可能な場合に想定される
データと線形識別境界の距離関係
マージンを越えない
マージンは越えるが、
線形識別境界は越えない
 線形識別境界を超える
(誤分類)
ソフトマージン SVM  スラック変数
線形分離可能な場合の制約条件 
gi(w, b) = ti(wT
xi + b) ≥ 1
 
線形分離不可能な場合の制約条件 
上手く分類できなかったデータを
分類できるような補正項を導入
gi(w, b) = ti(wT
xi + b) + ξi ≥ 1
スラック変数 ⇒



ξi = 0
0  ξi ≤ 1
ξi  1
ソフトマージン SVM  スラック変数
線形分離不可能な場合の制約条件 
上手く分類できなかったデータを分類できるような補正項を導入
gi(w, b) = ti(wT
xi + b) + ξi ≥ 1
スラック変数 ⇒



ξi = 0
0  ξi ≤ 1
ξi  1
 
ξi = max[0, 1 − ti(wT
xi + b)] =



ξ = 0 ⇐ 1 ≤ ti(wT xi + b)
0  ξi ≤ 1 ⇐ 0  ti(wT xi + b) ≤ 1
ξi  1 ⇐ 0  ti(wT xi + b)
0 より小さい場合は 0、大きい場合はその値を返す→ヒンジ関数
ソフトマージン SVM 主問題
主問題
minimize
1
2
wT
w + C
N∑
i=1
ξi
subject to gi(w, b) = ti(wT
xi + b) + ξi ≥ 1, ξi ≥ 0
C:ハイパーパラメータは交差確認法等によって定める。また大きな外れ値
が一つでもあると最小化しづらくなる。
ラグランジュ関数
minimize L(w, b, α, ξ, µ) =
1
2
wT
w + C
N∑
i=1
ξi
−
N∑
i=1
αi(ti(wT
xi + b) − 1 + ξi) −
N∑
i=1
µiξi
subject to ξi ≥ 0, αi ≥, µi ≥ 0
ソフトマージン SVM ラグランジュ関数の展開
L(w, b, α, ξ, µ) =
1
2
wT
w + C
N∑
i=1
ξi −
N∑
i=1
αi(ti(wT
xi + b) − 1 + ξi) −
N∑
i=1
µiξi
=
1
2
wT
w + C
N∑
i=1
ξi −
N∑
i=1
(αitiwT
xi + αitib) − αi + αiξi) −
N∑
i=1
µiξi
=
1
2
wT
w + C
N∑
i=1
ξi −
N∑
i=1
αitiwT
xi −
N∑
i=1
αitib +
N∑
i=1
αi −
N∑
i=1
αiξi −
N∑
i=1
µiξi
ソフトマージン SVM  最適化条件
ハードマージン SVM と同様に最適化条件を列挙
最適化条件(KKT 条件)
∂L(w, b, α, ξ, µ)
∂w w=w0
= 0 (1)
∂L(w, b, α, ξ, µ)
∂b
= 0 (2)
∂L(w, b, α, ξ, µ)
∂ξ
= 0 (3)
ti(wT
xi + b) − 1 + ξi ≥ 0 (4)
ξi ≥ 0, αi ≥ 0, µi ≥ 0 (5)
αi
(
ti(wT
xi + b) − 1 + ξi
)
= 0 (6)
µiξi = 0 (7)
これらをラグランジュ関数に適用する。
ソフトマージン SVM ラグランジュ関数
L(w, b, α, ξ, µ) =
1
2
wT
w + C
N∑
i=1
ξi −
N∑
i=1
αitiwT
xi
−b
N∑
i=1
αiti +
N∑
i=1
αi −
N∑
i=1
αiξi −
N∑
i=1
µiξi
KKT 条件 (1)
∂L(w, b, α, ξ, µ)
∂w w=w0
= w0 −
N∑
i=!
αitixi = 0
⇒ w0 =
N∑
i=!
αitixi
ソフトマージン SVM ラグランジュ関数
L(w, b, α, ξ, µ) =
1
2
wT
w + C
N∑
i=1
ξi −
N∑
i=1
αitiwT
xi
−b
N∑
i=1
αiti +
N∑
i=1
αi −
N∑
i=1
αiξi −
N∑
i=1
µiξi
KKT 条件 (2)
∂L(w, b, α, ξ, µ)
∂b w=w0
=
N∑
i=!
αiti = 0
⇒
N∑
i=!
αiti = 0
ソフトマージン SVM ラグランジュ関数
L(w, b, α, ξ, µ) =
1
2
wT
w + C
N∑
i=1
ξi −
N∑
i=1
αitiwT
xi
−b
N∑
i=1
αiti +
N∑
i=1
αi −
N∑
i=1
αiξi −
N∑
i=1
µiξi
KKT 条件 (3)
∂L(w, b, α, ξ, µ)
∂ξ w=w0
= C − αi − µi = 0
⇒ C − αi = µi ≥ 0
⇒ C ≥ αi ≥ 0
ラグランジュ未定乗数の条件 (αi ≥ 0, µi ≥ 0) よりペナルティの強さを定め
るパラメータが未定乗数の一つの上限を定めていることが分かる。
ソフトマージン SVM ラグランジュ関数
L(w, b, α, ξ, µ) =
1
2
wT
w + C
N∑
i=1
ξi −
N∑
i=1
αitiwT
xi
−b
N∑
i=1
αiti +
N∑
i=1
αi −
N∑
i=1
αiξi −
N∑
i=1
µiξi
KKT 条件 (4) ti(wT
xi + b) − 1 + ξi ≥ 0
制約条件そのもの。データの数だけ存在する。
ソフトマージン SVM ラグランジュ関数
L(w, b, α, ξ, µ) =
1
2
wT
w + C
N∑
i=1
ξi −
N∑
i=1
αitiwT
xi
−b
N∑
i=1
αiti +
N∑
i=1
αi −
N∑
i=1
αiξi −
N∑
i=1
µiξi
KKT 条件 (5) ξi ≥ 0, αi ≥ 0, µi ≥ 0 ⇒ ξi ≥ 0, C ≥ αi ≥ 0, µi ≥ 0
ラグランジュ未定乗数およびスラック変数の条件
ソフトマージン SVM ラグランジュ関数
L(w, b, α, ξ, µ) =
1
2
wT
w + C
N∑
i=1
ξi −
N∑
i=1
αitiwT
xi
−b
N∑
i=1
αiti +
N∑
i=1
αi −
N∑
i=1
αiξi −
N∑
i=1
µiξi
KKT 条件 (6) αi
(
ti(wT
xi + b) − 1 + ξi
)
= 0
相補性条件 1:
制約条件を課された i 番目のデータがラグランジュ関数に寄与する条件



ti(wT xi + b) − 1 + ξi = 0 ⇒ αi ≥ 0
ti(wT xi + b) − 1 + ξi ≥ 0 ⇒ αi = 0
ソフトマージン SVM ラグランジュ関数
L(w, b, α, ξ, µ) =
1
2
wT
w + C
N∑
i=1
ξi −
N∑
i=1
αitiwT
xi
−b
N∑
i=1
αiti +
N∑
i=1
αi −
N∑
i=1
αiξi −
N∑
i=1
µiξi
KKT 条件 (6) µiξi = 0
相補性条件 2:
制約条件を課された i 番目のデータがラグランジュ関数に寄与する条件
µiξi = 0 ⇒



µi = 0, ξi  0
µi  0, ξi = 0
ソフトマージン SVM 主問題
相補性条件 2 から SV を二種類に分けられる。



µi = 0, ξi  0 ⇒ αi ≥ 0 ⇒ C − αi = µi = 0 ⇒ C = αi ≥ 0
µi  0, ξi = 0 ⇒ αi = 0 ⇒ C − αi = µi  0 ⇒ C  αi ≥ 0
⇒



ξi  0, C = αi ≥ 0 上限サポートベクトル
ξi = 0, C  αi ≥ 0 自由サポートベクトル
ソフトマージン SVM  最適化条件
最適化条件を整理して列挙
最適化条件(KKT 条件)
∂L(w, b, α, ξ, µ)
∂w w=w0
= 0 ⇛ w0 =
N∑
i=1
αitixi (1)
∂L(w, b, α, ξ, µ)
∂b
= 0 ⇒
N∑
i=1
αiti = 0 (2)
∂L(w, b, α, ξ, µ)
∂ξ
= 0 ⇒ C ≥ αi ≥ 0 (3)
ti(wT
xi + b) − 1 + ξi ≥ 0 (4)
ξi ≥ 0, αi ≥ 0, µi ≥ 0 (5)
αi
(
ti(wT
xi + b) − 1 + ξi
)
= 0 (6)
µiξi = 0 (7)
これらをラグランジュ関数に適用する。
ソフトマージン SVM 最適化条件の適用
L(w, b, α, ξ, µ) =
1
2
wT
w + C
N∑
i=1
ξi −
N∑
i=1
αitiwT
xi − b
N∑
i=1
αiti +
N∑
i=1
αi −
N∑
i=1
αiξi −
N∑
i=1
µiξi
=
1
2
wT
w + C
N∑
i=1
ξi −
N∑
i=1
αitiwT
xi +
N∑
i=1
αi −
N∑
i=1
αiξi −
N∑
i=1
µiξi (∵ KKT(2))
=
1
2
wT
w + C
N∑
i=1
ξi −
N∑
i=1
αitiwT
xi +
N∑
i=1
αi − C
N∑
i=1
ξi (∵ KKT(3))
=
1
2
wT
w −
N∑
i=1
αitiwT
xi +
N∑
i=1
αi
⇒
1
2
(
N∑
i=1
αitixi)T
(
N∑
i=1
αitixi) − (
N∑
i=1
αitixi)T
( N∑
i=1
αitixi
)
+
N∑
i=1
αi (∵ KTT(1))
=
1
2
N∑
i=1
N∑
j=1
αitiαjtjxT
i xj −
N∑
i=1
N∑
j=1
αitiαjtjxT
i xj +
N∑
i=1
αi
= −
1
2
N∑
i=1
N∑
j=1
αitiαjtjxT
i xj +
N∑
i=1
αi
ソフトマージン SVM  双対問題
N 個の 1 を並べたベクトルを 1 = (1, · · · , 1)T 、入力による行列を
H = Hi,j = titjxT
i xj、正解ラベルを t = (t1, · · · , tN)T とすると
双対問題
maxmize L(α) = αT
1 −
1
2
αT
Hα
subject to αT
t = 0, C ≥ αi ≥ 0
双対問題のラグランジュ関数
˜L(α, β) = αT
1 −
1
2
αT
Hα − βαT
t
KKT 条件
ti(wT
xi + b) − 1 + ξi ≥ 0
ξi ≥ 0, αi ≥ 0, µi ≥ 0
αi
(
ti(wT
xi + b) − 1 + ξi
)
= 0
µiξi = 0
ソフトマージン SVM  双対問題
N 個の 1 を並べたベクトルを 1 = (1, · · · , 1)T 、入力による行列を
H = Hi,j = titjxT
i xj、正解ラベルを t = (t1, · · · , tN)T とすると
双対問題
maxmize L(α) = αT
1 −
1
2
αT
Hα
subject to αT
t = 0, C ≥ αi ≥ 0
SMO を用いて、α を求めたら、KKT(1) より最適解 w0 が求まる。
w0 =
N∑
i=1
αitixi
また KKT 条件 (5) より、最適なバイアスが求まる。
ここで添え字 (SV) は自由サポートベクトルとその正解ラベルを表す。
tS V(wT
0 xS V + b0) − 1 = 0 ⇒
1 − tsvb0
tsv
= wT
0 xS V
⇒ b0 =
1
tS V
− wT
0 xS V
ソフトマージン SVM  最大マージン
ラグランジュ未定乗数の最適解を ˜α = ( ˜α1, · · · , ˜αN)T と置くと、
wT
0 w =
( N∑
i=1
˜αitixT
i
)
w0
=
N∑
i=1
˜αiti
(1 − tib0
ti
)
=
N∑
i=1
˜αi − b0
N∑
i=1
ti ˜αi
=
N∑
i=1
˜αi (∵ KKT(2))
したがって、最大マージンは
Dmax =
1
||w0||
=
1
√
wT
0 w0
=
1
√
∑N
i=1 ˜αi
ソフトマージン SVM  まとめ
ソフトマージン SVM
線形分離不可能である場合に最大マージンを実
現する線形識別境界による 2 クラス分類を行う
が、いくらかの誤分類は許容する学習法
識別の条件
1. 各データと線形識別境界との距離の条件
ti(wT
xi + b) + ξi ≥ 1
2. マージン最大化条件を満たす関数
min
w
1
2
wT
w + C
N∑
i=1
ξi
ラグランジュ未定乗数法より主問題と等価な双
対問題を導き、線形識別境界の式を求める。
線形分離不可能な場合
ハードマージン SVM は線形分離可能な場合にのみ活用可能
→ 線形分離不可能な場合はどうするか
⇒ ・誤分類を許容する ソフトマージン SVM
・高次元で分離する 高次元埋め込み (非線形特徴写像)
高次元埋め込み
定義 (高次元埋め込み)
線形分離不可能な学習データを高次元特徴空間に写像し、その空間におい
て線形分離による 2 クラス分類を行う学習法
線形分離不可能な場合に想定される
データ構造
データが入り混じっている
入り混じっていないが線形分離
不可能
高次元埋め込み
定義 (高次元埋め込み)
線形分離不可能な学習データを高次元特徴空間に写像し、その空間におい
て 2 クラス分類を行う学習法
非線形変換
x = (x1, x2, · · · , xd) ⇒ φ(x) = (φ0 = 1, φ1(x), · · · , φM(x))T
ex) x = (x1, x2) ⇒ φ(x) = (1, x1, x2, x2
1, x2
2, x1x2, x1/x2, · · · )T
φ(x) は特徴量ベクトルの集合なので、線形識別関数で表せて
w0φ0 + w1φ + · · · + wMφM =
M∑
j=0
wjφj = wT
φ
ソフトマージン SVM 双対問題を非線形写像の形式に書き直せば
双対問題 
maxmize −
1
2
N∑
i=1
N∑
j=1
αitiαjtjφ(xi)T
φ(xj) +
N∑
i=1
αi
subject to αT
t = 0, C ≥ αi ≥ 0
非線形変換
双対問題 
maxmize −
1
2
N∑
i=1
N∑
j=1
αitiαjtjφT
(xi)φ(xj) +
N∑
i=1
αi
subject to αT
t = 0, C ≥ αi ≥ 0
 
仮定:非線形変換規則は不明だが、変換後の内積が変換前の特徴ベクトルの
関数で表せる
φT
(xi)φ(xj) = K(xi, xj)
このような関数 (xi, xj) を核関数またはカーネル関数という。
また、(xi, xj) を要素に持つ、N × N 行列 K(x, x) をグラム行列という。
脱線:グラム行列
K(x, x) =


K(x1, x1) · · · K(x1, xj) · · · K(x1, xN)
...
...
...
K(xi, x1) K(xi, xj) K(xi, xN)
...
...
...
K(xN, x1) · · · K(x1, xj) · · · K(xN, xN)


性質 1(対称性):K(xi, xj) = K(xj, xi)
性質 2(半正定値性 ):yT K(x, x)y ≥ 0 s.t. y 0
⇒ yT
K(x, x)y = yT
φT
(x)φ(x)y =
(
yT
φT
(x)
)(
φ(x)y
)
= ||φ(x)y|| ≥ 0
非線形変換:カーネル関数
双対問題 
maxmize −
1
2
N∑
i=1
N∑
j=1
αitiαjtjK(xj, xi) +
N∑
i=1
αi
subject to αT
t = 0, C ≥ αi ≥ 0
 
具体的なカーネル関数の例
ユークリッド内積 K(u, v) = uT
v
多項式カーネル Kp(u, v) = (α + uT
v)p
(α ≥ 0)
動径基底関数カーネル Kσ(u, v) = exp
(
−
||u − v||2
2σ2
)
(σ  0)
カーネル関数はよく分からない。詳しくは再生核ヒルベルト空間、正定値
カーネル
非線形変換:多項式カーネル
多項式カーネル 
Kp(u, v) = (α + uT
v)p
(α ≥ 0)
 
α = 1, p = 2, u = (u1, u2), v = (v1, v2) として上記カーネルを展開
K2(u, v) = (1 + uT
v)2
= (1 + u1v1 + u2v2)2
= 1 + u2
1v2
1 + 2u1u2v1v2 + u2
2v2
2 + 2u1v1 + 2u2v2
= φ(u)T
φ(v)
φ(u) = (1, u2
1,
√
2u1u2, u2
2, u2
2,
√
2u1,
√
2u2)T
φ(v) = (1, v2
1,
√
2v1v2, v2
2, v2
2,
√
2v1,
√
2v2)T
非線形変換:多項式カーネル
多項式カーネル 
Kp(u, v) = (α + uT
v)p
(α ≥ 0)
 
右辺に二項定理を適用。
二項定理 (a + b)n
=
n∑
k=0
(
n
k
)
ak
bn−k
=
n∑
k=0
nCkak
bn−k
a = uT v, b = α と置けば
Kp(u, v) = (α + uT
v)p
=
p∑
i=0
(
p
i
)
αp−i
(uT
v)i
非線形変換:多項式カーネル
多項式カーネル 
Kp(u, v) = (α + uT
v)p
(α ≥ 0)
 
多項式カーネルによる非線形特徴空間の次元 D(d, p) は
D(d, p) =
(
d + p
p
)
入力の次元 d = 1、多項式カーネルの次数 p = 1 のそれぞれの場合
D(d = 1, p) =
(
1 + p
p
)
D(d, p = 1) =
(
d + p
1
)
次に入力の次元 d − 1、多項式カーネルの次数 p − 1 のそれぞれ一般的な場合
D(d − 1, p) =
(
d − 1 + p
p
)
D(d, p − 1) =
(
d + p − 1
p − 1
)
非線形変換:多項式カーネル
多項式カーネル 
Kp(u, v) = (α + uT
v)p
(α ≥ 0)
 
二項係数を適用することで入力の次元 d、多項式カーネルの次数 p の時の非
線形特徴空間の次元が仮定と同形式になる。
二項係数
(
n
k
)
=
(
n − 1
k
)
+
(
n − 1
k − 1
)
入力の次元 d − 1、多項式カーネルの次数 p − 1 のそれぞれ一般的な場合
D(d, p) = D(d − 1, p) + D(d, p − 1) =
(
d − 1 + p
p
)
+
(
d + p − 1
p − 1
)
=
(
d + p
p
)
例:d = 16 × 16, p = 4 の時、
D(16 × 16, 4) =
260!
(260 − 4)!4!
= 186043585
非線形変換:動径基底関数カーネル
動径基底関数カーネル 
Kσ(u, v) = exp
(
−
||u − v||2
2σ2
)
σ : カーネル関数の広がりを制御するパラメータ
 
上記カーネルを展開
Kσ(u, v) = exp
(
−
||u − v||2
2σ2
)
(∵ ||u − v||2
= (u − v)T
(u − v))
= exp
(
−
||u||2
2σ2
)
exp
(
−
||v||2
2σ2
)
exp
(2uT v
2σ2
)
二つの指数関数と α = 0, p = 1 の多項式カーネルの積で表せる.
非線形変換:動径基底関数カーネル
マクローリン展開 
f(x) =
f(0)
0!
x0
+
f(0)1
1!
x1
+
f(0)2
2!
x2
+ · · · =
∞∑
n=0
fn(0)
n!
xn
 
展開したカーネルの最後の指数関数をもう少し展開
exp
(
−
uT v
σ2
)
= exp
( d∑
i=1
ui
σ
vi
σ
)
=
∞∏
i=1
exp
(ui
σ
vi
σ
)
=
d∏
i=1
( ∞∑
n=0
1
n!
(ui
σ
vi
σ
))
(∵ マクローリン展開)
=
d∏
i=1
uT
i vi
二つのベクトル ui, vi は無限の要素を持つベクトルであるから特徴空間は無
限次元になる.
双対
双対 
1 つの対象に対し 2 つの等価な記述法が存在するとき,2 つの記述法
を取り替える操作を双対とよぶ。より一般に,2 つの記述法(概念・理論・
モデル・…)A,B が,どちらも同じ対象を表す(と信じられる)とき,A と
B は互いに双対であるという。
双対性/加藤 晃史 (https://www.s.u-tokyo.ac.jp/ja/story/newsletter/keywords/21/06.html)
 
例:双対グラフ、フーリエ変換、ルジャンドル変換、電場-磁場、
双対(論理学)
双対な例:双対グラフ
双対グラフ 
平面グラフ G の双対グラフとはすべての頂点が G の各面に対応する
グラフである。(Wikipedia:双対グラフ)
 
Figure: ドロネー図 Figure: ボロノイ図
双対な例:双対グラフ
ルジャンドル変換 
凸関数である関数 f(x)(x ∈ R) に対して次のように定義される関数を
f(x) のルジャンドル変換であるという。
g(p) := max
x
(px − f(x))
 
例:全微分可能で、その一回微分が狭義凸関数であるような
1 変数関数 f(x) を考える。
d f =
∂ f
∂x
dx = pdx
p を変数とする関数を考え、全微分する。
g(p) = px − f(x) ⇒ dg = pdx − d f = pdx + xdp − pdx
= xdp
これにより、 f(x) を考える代わりに等価な g(p) を考えることでいろいろで
きるようになる。
参考資料
非線形最適化の基礎/福島雅夫/2017 年 11 月 25 日第 14 刷
はじめてのパターン認識/平井有三/2018 年 8 月 20 日第 1 版第 9 刷
SMO 徹底入門:
https://www.slideshare.net/sleepy_yoshi/smo-svm
Fast Training of Support Vector Machines using Sequential Minimal
Optimization /John C. Platt/ Microsoft Research 1 Microsoft Way,
Redmond, WA 98052
Convex Optimization/Stephen Boyd et al./
https://web.stanford.edu/~boyd/cvxbook/bv_cvxbook.pdf

はじめてのパターン認識8章 サポートベクトルマシン

  • 1.
    Chap.8 Support VectorMachine はじめてのパターン認識 輪読会 Nobuyuki Takayasu Tokyo, Japan September 12, 2019
  • 2.
    Contents 1 ハードマージン SVM 2ソフトマージン SVM 3 高次元埋め込み (非線形特徴写像) 4 双対の直感的理解
  • 3.
    ハードマージン SVM の定義 定義(ハードマージン SVM) 最大マージンを実現する線形識別境界による 2 クラス分類を行う学習法 最大マージン :線形識別境界とサポートベクトルの距離の最大値 例:点 (x1i, x2i) と直線 (l : w1x1i + w2x2i + b = 0) の距離 d = |w1x1i + w2x2i + b| √ w2 1 + w2 2 = wT x + b ||w|| 線形識別境界 :データを 2 クラスに分割する境界 超平面の式 w0xi + b0 = 0 (最適解 w0, 最適バイアス b0) 分類 :データを任意の数のカテゴリにふるい分ける ※線形分離可能な分類問題に限る
  • 4.
  • 5.
    距離の条件 i 番目のデータと線形識別境界の距離を di、マージンをD、 クラスと正解ラベルの対応は (C1,C2) = (ti = 1, tj = −1) di = ||wT xi + b|| ||w|| ≥ D ⇒ ||wT xi + b|| ||w|| ||w|| ≥ D||w|| ∵ D||w|| = κ ⇒ ||wT xi + b|| ≥ κ ⇒ ||wT xi + b|| ≥ 1 ∵ w = w κ , b = b κ ⇒    ||wT xi + b|| ≥ 1 (wT xi + b ≥ 0) ||wT xi + b|| ≤ −1 (wT xi + b ≥ 0) 誤分類無しの条件 ⇒ ti(wT xi + b) ≥ 1
  • 6.
    距離の条件 ||wT xi + b||=    ||wT xi + b|| ≥ 1 (wT xi + b ≥ 0) ||wT xi + b|| ≤ −1 (wT xi + b ≥ 0) 誤分類無しの条件 ⇒ ti(wT xi + b) − 1 ≥ 0
  • 7.
    マージン最大化条件 クラスそれぞれのサポートベクトルまでの距離→マージン D1, D2 ρ= D1 + D2 = min i di + min j dj    i ∈ {C1の添字集合 } j ∈ {C2の添字集合 } = ||wT xS V1 + b|| ||w|| + ||wT xS V2 + b|| ||w||    xS V1 ∈ C1 xS V2 ∈ C2 = 2 ||w|| マージンを最大化するような重みとバイアスを w0, b0 とおくと、マージン 最大化の式は ρ(w0, b0) = max w,b ρ(w, b) = max w 2 ||w|| ∝ max w 1 ||w||
  • 8.
    マージン最大化条件 マージン最大化の式を変形していくと ρ(w0, b0) ⇒max w 2 ||w|| ⇒ max w 1 ||w|| ⇒ min w ||w|| ⇒ min w 1 2 ||w||2 ⇒ min w 1 2 wT w マージン最大化条件は次のように書き直せる。 max w,b ρ(w, b) ⇒ min w 1 2 wT w
  • 9.
    ハードマージン SVM  主問題 不等式制約条件最適化問題の主問題 minimizef(w) = 1 2 wT w subject to gi(w, b) = tt(wT x + b) − 1 ≥ 0 (i = 1, · · · , N) 最適化の対象となる評価関数 f(w) と不等式制約条件 gi(w, b) の二つから新 たな関数を導入する→ラグランジュ関数 ラグランジュ関数 minimize L(w, b, α) = 1 2 wT w − N∑ i=1 αi(tt(wT x + b) − 1) subject to αi ≥ 0 (αiラグランジュ未定乗数)
  • 10.
    脱線:ラグランジュ関数の直感的理解 制約あり最適化問題 minimize f(x) subject togi(x) ≤ 0(i = 1, · · · , m) hj(x) = 0( j = 1, · · · , l) 最適化問題の評価関数と制約を一つの関数にし、問題を作り変えると、 制約なし最適化問題 minimize f(x) + m∑ i=1 I−(gi(w)) + l∑ j=1 I0(hj(w)) I− =    0 (gi ≤ 0) ∞ (otherwise) , I0 =    0 (hi = 0) ∞ (otherwise)
  • 11.
    脱線:ラグランジュ関数の直感的理解 指示関数による書き換え minimize f(x)+ m∑ i=1 I−(gi(w)) + l∑ j=1 I0(hj(w)) I− =    0 (gi ≤ 0) ∞ (otherwise) , I0 =    0 (hi = 0) ∞ (otherwise)
  • 12.
    脱線:ラグランジュ関数の直感的理解 指示関数による書き換え minimize f(x) + m∑ i=1 I−(gi(w))+ l∑ j=1 I0(hj(w)) I− =    0 (gi ≤ 0) ∞ (otherwise) , I0 =    0 (hi = 0) ∞ (otherwise) 指示関数は 0 付近で敏感な関数で扱いづらい→指示関数を線形近似する 線形近似→ラグランジュ関数 minimize f(x) + m∑ i=1 λigi(w) + l∑ j=1 νjhj(w) subject to λi ≥ 0 (λiラグランジュ未定乗数)
  • 13.
    ハードマージン SVM  主問題 不等式制約条件最適化問題の主問題 minimizef(w) = 1 2 wT w subject to gi(w, b) = tt(wT x + b) − 1 ≥ 0 (i = 1, · · · , N) 最適化の対象となる評価関数 f(w) と不等式制約条件 gi(w, b) の二つから新 たな関数を導入する→ラグランジュ関数 ラグランジュ関数 minimize L(w, b, α) = 1 2 wT w − N∑ i=1 αi(tt(wT x + b) − 1) subject to αi ≥ 0 (αiラグランジュ未定乗数)
  • 14.
    ハードマージン SVM  ラグランジュ関数の展開 ラグランジュ関数を展開 L(w,b, α) = 1 2 wT w − N∑ i=1 αi ( tt(wT xi + b) − 1 ) = 1 2 wT w − N∑ i=1 ( αitiwT xi + αitib − αi ) = 1 2 wT w − N∑ i=1 αitiwT xi − b N∑ i=1 αiti + N∑ i=1 αi 最適解 w0, b0 は次に表される最適化条件(KKT 条件)を満たす解として得 られる。
  • 15.
    ハードマージン SVM  最適化条件 最適化条件(KKT条件) ∂L(w, b, α) ∂w w=w0 = 0 (1) ∂L(w, b, α) ∂b = 0 (2) ti(wT xi + b) − 1 ≥ 0 (3) αi ≥ 0 (4) αi ( ti(wT xi + b) − 1 ) = 0 (5) 天下り的に定義した KKT 条件をラグランジュ関数に適用していく。
  • 16.
    ハードマージン SVM  最適化条件の適用 L(w,b, α) = 1 2 wT w − N∑ i=1 αitiwT xi − b N∑ i=1 αiti + N∑ i=1 αi KKT 条件 (1) ∂L(w, b, α) ∂w w=w0 = w0 − N∑ i=1 αitixi = 0 w0 = N∑ i=1 αitixi 微分によりラグランジュ関数の極値を求めており、ラグランジュ関数が凸 関数であることから極値=局所最適解=大域最適解となる。また、移項によ り最適解 w0 がラベル、入力、未定乗数から求まることが分かる。
  • 17.
    ハードマージン SVM  最適化条件の適用 L(w,b, α) = 1 2 wT w − N∑ i=1 αitiwT xi − b N∑ i=1 αiti + N∑ i=1 αi KKT 条件 (1) w0 = N∑ i=1 αitixi
  • 18.
    ハードマージン SVM  最適化条件の適用 L(w,b, α) = 1 2 wT w − N∑ i=1 αitiwT xi − b N∑ i=1 αiti + N∑ i=1 αi KKT 条件 (2) ∂L(w, b, α) ∂b = N∑ i=1 αiti = 0 KKT 条件 (3) ti(wT xi + b) − 1 ≥ 0 KKT 条件 (2):ラグランジュ関数のバイアスによる偏微分が 0 KKT 条件 (3):制約条件 データの数 x だけ存在する
  • 19.
    ハードマージン SVM  最適化条件の適用 L(w,b, α) = 1 2 wT w − N∑ i=1 αitiwT xi − b N∑ i=1 αiti + N∑ i=1 αi KKT 条件 (4) αi ≥ 0 KKT 条件 (5) αi ( ti(wT xi + b) − 1 ) = 0 KKT 条件 (4):ラグランジュ未定乗数の制約条件 KKT 条件 (5):相補性条件 ti(wT x + b) − 1 ≥ 0 ⇒ αi = 0 (非有効) ti(wT x + b) − 1 = 0 ⇒ αi 0 (有効) ti(wT x + b) − 1 = 0 の時のみ、αi 0 が許される。この許可によって有効な 条件がラグランジュ関数の制約となり、これは SV によって与えられる。
  • 20.
    ハードマージン SVM  最適化条件の適用 最適化条件 w0= N∑ i=1 αitixi (1) ∂L(w, b, α) ∂b = N∑ i=1 αiti = 0 (2) ti(wT xi + b) − 1 ≥ 0 (3) αi ≥ 0 (4) αi ( ti(wT xi + b) − 1 ) = 0 (5) ラグランジュ関数 L(w, b, α) = 1 2 wT w − N∑ i=1 αitiwT xi − b N∑ i=1 αiti + N∑ i=1 αi
  • 21.
    ハードマージン SVM  ラグランジュ関数 ラグランジュ関数にKTT 条件を代入していく L(w0, b, α) = 1 2 wT 0 w0 − N∑ i=1 αitiwT 0 xi − b N∑ i=1 αiti + N∑ i=1 αi = 1 2 wT 0 w0 − N∑ i=1 αitiwT 0 xi + N∑ i=1 αi (∵ KTT(2)) = 1 2 wT 0 w0 − wT 0 ( N∑ i=1 αitixi ) + N∑ i=1 αi (∵ KTT(1)) = 1 2 ( N∑ i=1 αitixi)T ( N∑ i=1 αitixi) − ( N∑ i=1 αitixi)T ( N∑ i=1 αitixi ) + N∑ i=1 αi = 1 2 N∑ i=1 N∑ j=1 αitiαjtjxT i xj − N∑ i=1 N∑ j=1 αitiαjtjxT i xj + N∑ i=1 αi = − 1 2 N∑ i=1 N∑ j=1 αitiαjtjxT i xj + N∑ i=1 αi
  • 22.
    ハードマージン SVM  双対問題 N個の 1 を並べたベクトルを 1 = (1, · · · , 1)T 、入力による行列を H = Hi,j = titjxT i xj、正解ラベルを t = (t1, · · · , tN)T とすると 双対問題 maxmize L(α) = αT 1 − 1 2 αT Hα subject to αT t = 0 双対問題のラグランジュ関数 ˜L(α, β) = αT 1 − 1 2 αT Hα − βαT t KKT 条件 w0 = N∑ i=1 αitixi , N∑ i=1 αiti = 0 αi ( ti(wT xi + b) − 1 ) = 0 ⇒    ti(wT xi + b) − 1 = 0 ⇒ αi 0 ti(wT xi + b) − 1 ≥ 0 ⇒ αi = 0
  • 23.
    ハードマージン SVM  双対問題 下に凸な線:主問題の評価関数を最小にするw の探索 上に凸な線:双対問題の評価関数を最大にする α の探索 この最適化問を計算機で解く場合は SMO を使用する
  • 24.
    ハードマージン SVM  双対問題 N個の 1 を並べたベクトルを 1 = (1, · · · , 1)T 、入力による行列を H = Hi,j = titjxT i xj、正解ラベルを t = (t1, · · · , tN)T とすると 双対問題 maxmize L(α) = αT 1 − 1 2 αT Hα subject to αT t = 0 SMO を用いて、α を求めたら、KKT(1) より最適解 w0 が求まる。 w0 = N∑ i=1 αitixi また KKT 条件 (5) より、最適なバイアスが求まる。 ここで添え字 (SV) はサポートベクトルとその正解ラベルを表す。 tS V(wT 0 xS V + b0) − 1 = 0 ⇒ 1 − tsvb0 tsv = wT 0 xS V ⇒ b0 = 1 tS V − wT 0 xS V
  • 25.
    ハードマージン SVM  最大マージン ラグランジュ未定乗数の最適解を˜α = ( ˜α1, · · · , ˜αN)T と置くと、 wT 0 w = ( N∑ i=1 ˜αitixT i ) w0 (∵ KKT(1)) = N∑ i=1 ˜αiti 1 − tib0 ti = N∑ i=1 ˜αi − b0 N∑ i=1 ˜αiti (∵ KKT(2)) = N∑ i=1 ˜αi したがって、最大マージンは Dmax = 1 ||w0|| = 1 √ wT 0 w0 = 1 √ ∑N i=1 ˜αi
  • 26.
    ハードマージン SVM  まとめ ハードマージンSVM 線形分離可能である場合に最大マージンを実現 する線形識別境界によってデータを 2 クラス分 類する方法 識別の条件 1. 各データと線形識別境界との距離の条件 ti(wT xi + b) ≥ 1 2. マージン最大化条件を満たす関数 min w 1 2 wT w ラグランジュ未定乗数法より主問題と等価な双 対問題を導き、線形識別境界の式を求める。
  • 27.
    脱線:SMO(Sequential minimal optimization) SMO(逐次最小問題最適化法)のアルゴリズムについて大雑把な理解 双対問題 maxmize L(α) = αT 1 − 1 2 αT Hα subject to αT t = 0 アルゴリズム INPUT : t, x / OUTPUT : α 1. 初期化 α = 0 2.while KKT 条件を違反する変数が存在 3. KKT 条件を違反する変数 α1 を選択 4. 帳尻を合わせる変数 α2 を選択 5. α1, α2 を更新 6.end while 7.return α 詳細→ Fast Training of Support Vector Machines using Sequential Minimal Optimization/John C. Platt
  • 28.
    線形分離不可能な場合 ハードマージン SVM は線形分離可能な場合にのみ活用可能 →線形分離不可能な場合はどうするか ⇒ ・誤分類を許容する ソフトマージン SVM ・高次元で分離する 高次元埋め込み (非線形特徴写像)
  • 29.
    ソフトマージン SVM 定義 (ソフトマージンSVM) 最大マージンを実現する線形識別境界による 2 クラス分類を行うが、いく らかの誤分類は許容する学習法 線形分離不可能な場合に想定される データと線形識別境界の距離関係 マージンを越えない マージンは越えるが、 線形識別境界は越えない  線形識別境界を超える (誤分類)
  • 30.
    ソフトマージン SVM  スラック変数 線形分離可能な場合の制約条件 gi(w, b) = ti(wT xi + b) ≥ 1 線形分離不可能な場合の制約条件 上手く分類できなかったデータを 分類できるような補正項を導入 gi(w, b) = ti(wT xi + b) + ξi ≥ 1 スラック変数 ⇒    ξi = 0 0 ξi ≤ 1 ξi 1
  • 31.
    ソフトマージン SVM  スラック変数 線形分離不可能な場合の制約条件 上手く分類できなかったデータを分類できるような補正項を導入 gi(w, b) = ti(wT xi + b) + ξi ≥ 1 スラック変数 ⇒    ξi = 0 0 ξi ≤ 1 ξi 1 ξi = max[0, 1 − ti(wT xi + b)] =    ξ = 0 ⇐ 1 ≤ ti(wT xi + b) 0 ξi ≤ 1 ⇐ 0 ti(wT xi + b) ≤ 1 ξi 1 ⇐ 0 ti(wT xi + b) 0 より小さい場合は 0、大きい場合はその値を返す→ヒンジ関数
  • 32.
    ソフトマージン SVM 主問題 主問題 minimize 1 2 wT w+ C N∑ i=1 ξi subject to gi(w, b) = ti(wT xi + b) + ξi ≥ 1, ξi ≥ 0 C:ハイパーパラメータは交差確認法等によって定める。また大きな外れ値 が一つでもあると最小化しづらくなる。 ラグランジュ関数 minimize L(w, b, α, ξ, µ) = 1 2 wT w + C N∑ i=1 ξi − N∑ i=1 αi(ti(wT xi + b) − 1 + ξi) − N∑ i=1 µiξi subject to ξi ≥ 0, αi ≥, µi ≥ 0
  • 33.
    ソフトマージン SVM ラグランジュ関数の展開 L(w,b, α, ξ, µ) = 1 2 wT w + C N∑ i=1 ξi − N∑ i=1 αi(ti(wT xi + b) − 1 + ξi) − N∑ i=1 µiξi = 1 2 wT w + C N∑ i=1 ξi − N∑ i=1 (αitiwT xi + αitib) − αi + αiξi) − N∑ i=1 µiξi = 1 2 wT w + C N∑ i=1 ξi − N∑ i=1 αitiwT xi − N∑ i=1 αitib + N∑ i=1 αi − N∑ i=1 αiξi − N∑ i=1 µiξi
  • 34.
    ソフトマージン SVM  最適化条件 ハードマージンSVM と同様に最適化条件を列挙 最適化条件(KKT 条件) ∂L(w, b, α, ξ, µ) ∂w w=w0 = 0 (1) ∂L(w, b, α, ξ, µ) ∂b = 0 (2) ∂L(w, b, α, ξ, µ) ∂ξ = 0 (3) ti(wT xi + b) − 1 + ξi ≥ 0 (4) ξi ≥ 0, αi ≥ 0, µi ≥ 0 (5) αi ( ti(wT xi + b) − 1 + ξi ) = 0 (6) µiξi = 0 (7) これらをラグランジュ関数に適用する。
  • 35.
    ソフトマージン SVM ラグランジュ関数 L(w,b, α, ξ, µ) = 1 2 wT w + C N∑ i=1 ξi − N∑ i=1 αitiwT xi −b N∑ i=1 αiti + N∑ i=1 αi − N∑ i=1 αiξi − N∑ i=1 µiξi KKT 条件 (1) ∂L(w, b, α, ξ, µ) ∂w w=w0 = w0 − N∑ i=! αitixi = 0 ⇒ w0 = N∑ i=! αitixi
  • 36.
    ソフトマージン SVM ラグランジュ関数 L(w,b, α, ξ, µ) = 1 2 wT w + C N∑ i=1 ξi − N∑ i=1 αitiwT xi −b N∑ i=1 αiti + N∑ i=1 αi − N∑ i=1 αiξi − N∑ i=1 µiξi KKT 条件 (2) ∂L(w, b, α, ξ, µ) ∂b w=w0 = N∑ i=! αiti = 0 ⇒ N∑ i=! αiti = 0
  • 37.
    ソフトマージン SVM ラグランジュ関数 L(w,b, α, ξ, µ) = 1 2 wT w + C N∑ i=1 ξi − N∑ i=1 αitiwT xi −b N∑ i=1 αiti + N∑ i=1 αi − N∑ i=1 αiξi − N∑ i=1 µiξi KKT 条件 (3) ∂L(w, b, α, ξ, µ) ∂ξ w=w0 = C − αi − µi = 0 ⇒ C − αi = µi ≥ 0 ⇒ C ≥ αi ≥ 0 ラグランジュ未定乗数の条件 (αi ≥ 0, µi ≥ 0) よりペナルティの強さを定め るパラメータが未定乗数の一つの上限を定めていることが分かる。
  • 38.
    ソフトマージン SVM ラグランジュ関数 L(w,b, α, ξ, µ) = 1 2 wT w + C N∑ i=1 ξi − N∑ i=1 αitiwT xi −b N∑ i=1 αiti + N∑ i=1 αi − N∑ i=1 αiξi − N∑ i=1 µiξi KKT 条件 (4) ti(wT xi + b) − 1 + ξi ≥ 0 制約条件そのもの。データの数だけ存在する。
  • 39.
    ソフトマージン SVM ラグランジュ関数 L(w,b, α, ξ, µ) = 1 2 wT w + C N∑ i=1 ξi − N∑ i=1 αitiwT xi −b N∑ i=1 αiti + N∑ i=1 αi − N∑ i=1 αiξi − N∑ i=1 µiξi KKT 条件 (5) ξi ≥ 0, αi ≥ 0, µi ≥ 0 ⇒ ξi ≥ 0, C ≥ αi ≥ 0, µi ≥ 0 ラグランジュ未定乗数およびスラック変数の条件
  • 40.
    ソフトマージン SVM ラグランジュ関数 L(w,b, α, ξ, µ) = 1 2 wT w + C N∑ i=1 ξi − N∑ i=1 αitiwT xi −b N∑ i=1 αiti + N∑ i=1 αi − N∑ i=1 αiξi − N∑ i=1 µiξi KKT 条件 (6) αi ( ti(wT xi + b) − 1 + ξi ) = 0 相補性条件 1: 制約条件を課された i 番目のデータがラグランジュ関数に寄与する条件    ti(wT xi + b) − 1 + ξi = 0 ⇒ αi ≥ 0 ti(wT xi + b) − 1 + ξi ≥ 0 ⇒ αi = 0
  • 41.
    ソフトマージン SVM ラグランジュ関数 L(w,b, α, ξ, µ) = 1 2 wT w + C N∑ i=1 ξi − N∑ i=1 αitiwT xi −b N∑ i=1 αiti + N∑ i=1 αi − N∑ i=1 αiξi − N∑ i=1 µiξi KKT 条件 (6) µiξi = 0 相補性条件 2: 制約条件を課された i 番目のデータがラグランジュ関数に寄与する条件 µiξi = 0 ⇒    µi = 0, ξi 0 µi 0, ξi = 0
  • 42.
    ソフトマージン SVM 主問題 相補性条件2 から SV を二種類に分けられる。    µi = 0, ξi 0 ⇒ αi ≥ 0 ⇒ C − αi = µi = 0 ⇒ C = αi ≥ 0 µi 0, ξi = 0 ⇒ αi = 0 ⇒ C − αi = µi 0 ⇒ C αi ≥ 0 ⇒    ξi 0, C = αi ≥ 0 上限サポートベクトル ξi = 0, C αi ≥ 0 自由サポートベクトル
  • 43.
    ソフトマージン SVM  最適化条件 最適化条件を整理して列挙 最適化条件(KKT条件) ∂L(w, b, α, ξ, µ) ∂w w=w0 = 0 ⇛ w0 = N∑ i=1 αitixi (1) ∂L(w, b, α, ξ, µ) ∂b = 0 ⇒ N∑ i=1 αiti = 0 (2) ∂L(w, b, α, ξ, µ) ∂ξ = 0 ⇒ C ≥ αi ≥ 0 (3) ti(wT xi + b) − 1 + ξi ≥ 0 (4) ξi ≥ 0, αi ≥ 0, µi ≥ 0 (5) αi ( ti(wT xi + b) − 1 + ξi ) = 0 (6) µiξi = 0 (7) これらをラグランジュ関数に適用する。
  • 44.
    ソフトマージン SVM 最適化条件の適用 L(w,b, α, ξ, µ) = 1 2 wT w + C N∑ i=1 ξi − N∑ i=1 αitiwT xi − b N∑ i=1 αiti + N∑ i=1 αi − N∑ i=1 αiξi − N∑ i=1 µiξi = 1 2 wT w + C N∑ i=1 ξi − N∑ i=1 αitiwT xi + N∑ i=1 αi − N∑ i=1 αiξi − N∑ i=1 µiξi (∵ KKT(2)) = 1 2 wT w + C N∑ i=1 ξi − N∑ i=1 αitiwT xi + N∑ i=1 αi − C N∑ i=1 ξi (∵ KKT(3)) = 1 2 wT w − N∑ i=1 αitiwT xi + N∑ i=1 αi ⇒ 1 2 ( N∑ i=1 αitixi)T ( N∑ i=1 αitixi) − ( N∑ i=1 αitixi)T ( N∑ i=1 αitixi ) + N∑ i=1 αi (∵ KTT(1)) = 1 2 N∑ i=1 N∑ j=1 αitiαjtjxT i xj − N∑ i=1 N∑ j=1 αitiαjtjxT i xj + N∑ i=1 αi = − 1 2 N∑ i=1 N∑ j=1 αitiαjtjxT i xj + N∑ i=1 αi
  • 45.
    ソフトマージン SVM  双対問題 N個の 1 を並べたベクトルを 1 = (1, · · · , 1)T 、入力による行列を H = Hi,j = titjxT i xj、正解ラベルを t = (t1, · · · , tN)T とすると 双対問題 maxmize L(α) = αT 1 − 1 2 αT Hα subject to αT t = 0, C ≥ αi ≥ 0 双対問題のラグランジュ関数 ˜L(α, β) = αT 1 − 1 2 αT Hα − βαT t KKT 条件 ti(wT xi + b) − 1 + ξi ≥ 0 ξi ≥ 0, αi ≥ 0, µi ≥ 0 αi ( ti(wT xi + b) − 1 + ξi ) = 0 µiξi = 0
  • 46.
    ソフトマージン SVM  双対問題 N個の 1 を並べたベクトルを 1 = (1, · · · , 1)T 、入力による行列を H = Hi,j = titjxT i xj、正解ラベルを t = (t1, · · · , tN)T とすると 双対問題 maxmize L(α) = αT 1 − 1 2 αT Hα subject to αT t = 0, C ≥ αi ≥ 0 SMO を用いて、α を求めたら、KKT(1) より最適解 w0 が求まる。 w0 = N∑ i=1 αitixi また KKT 条件 (5) より、最適なバイアスが求まる。 ここで添え字 (SV) は自由サポートベクトルとその正解ラベルを表す。 tS V(wT 0 xS V + b0) − 1 = 0 ⇒ 1 − tsvb0 tsv = wT 0 xS V ⇒ b0 = 1 tS V − wT 0 xS V
  • 47.
    ソフトマージン SVM  最大マージン ラグランジュ未定乗数の最適解を˜α = ( ˜α1, · · · , ˜αN)T と置くと、 wT 0 w = ( N∑ i=1 ˜αitixT i ) w0 = N∑ i=1 ˜αiti (1 − tib0 ti ) = N∑ i=1 ˜αi − b0 N∑ i=1 ti ˜αi = N∑ i=1 ˜αi (∵ KKT(2)) したがって、最大マージンは Dmax = 1 ||w0|| = 1 √ wT 0 w0 = 1 √ ∑N i=1 ˜αi
  • 48.
    ソフトマージン SVM  まとめ ソフトマージンSVM 線形分離不可能である場合に最大マージンを実 現する線形識別境界による 2 クラス分類を行う が、いくらかの誤分類は許容する学習法 識別の条件 1. 各データと線形識別境界との距離の条件 ti(wT xi + b) + ξi ≥ 1 2. マージン最大化条件を満たす関数 min w 1 2 wT w + C N∑ i=1 ξi ラグランジュ未定乗数法より主問題と等価な双 対問題を導き、線形識別境界の式を求める。
  • 49.
    線形分離不可能な場合 ハードマージン SVM は線形分離可能な場合にのみ活用可能 →線形分離不可能な場合はどうするか ⇒ ・誤分類を許容する ソフトマージン SVM ・高次元で分離する 高次元埋め込み (非線形特徴写像)
  • 50.
    高次元埋め込み 定義 (高次元埋め込み) 線形分離不可能な学習データを高次元特徴空間に写像し、その空間におい て線形分離による 2クラス分類を行う学習法 線形分離不可能な場合に想定される データ構造 データが入り混じっている 入り混じっていないが線形分離 不可能
  • 51.
  • 52.
    非線形変換 x = (x1,x2, · · · , xd) ⇒ φ(x) = (φ0 = 1, φ1(x), · · · , φM(x))T ex) x = (x1, x2) ⇒ φ(x) = (1, x1, x2, x2 1, x2 2, x1x2, x1/x2, · · · )T φ(x) は特徴量ベクトルの集合なので、線形識別関数で表せて w0φ0 + w1φ + · · · + wMφM = M∑ j=0 wjφj = wT φ ソフトマージン SVM 双対問題を非線形写像の形式に書き直せば 双対問題 maxmize − 1 2 N∑ i=1 N∑ j=1 αitiαjtjφ(xi)T φ(xj) + N∑ i=1 αi subject to αT t = 0, C ≥ αi ≥ 0
  • 53.
    非線形変換 双対問題 maxmize − 1 2 N∑ i=1 N∑ j=1 αitiαjtjφT (xi)φ(xj)+ N∑ i=1 αi subject to αT t = 0, C ≥ αi ≥ 0 仮定:非線形変換規則は不明だが、変換後の内積が変換前の特徴ベクトルの 関数で表せる φT (xi)φ(xj) = K(xi, xj) このような関数 (xi, xj) を核関数またはカーネル関数という。 また、(xi, xj) を要素に持つ、N × N 行列 K(x, x) をグラム行列という。
  • 54.
    脱線:グラム行列 K(x, x) =   K(x1,x1) · · · K(x1, xj) · · · K(x1, xN) ... ... ... K(xi, x1) K(xi, xj) K(xi, xN) ... ... ... K(xN, x1) · · · K(x1, xj) · · · K(xN, xN)   性質 1(対称性):K(xi, xj) = K(xj, xi) 性質 2(半正定値性 ):yT K(x, x)y ≥ 0 s.t. y 0 ⇒ yT K(x, x)y = yT φT (x)φ(x)y = ( yT φT (x) )( φ(x)y ) = ||φ(x)y|| ≥ 0
  • 55.
    非線形変換:カーネル関数 双対問題 maxmize − 1 2 N∑ i=1 N∑ j=1 αitiαjtjK(xj,xi) + N∑ i=1 αi subject to αT t = 0, C ≥ αi ≥ 0 具体的なカーネル関数の例 ユークリッド内積 K(u, v) = uT v 多項式カーネル Kp(u, v) = (α + uT v)p (α ≥ 0) 動径基底関数カーネル Kσ(u, v) = exp ( − ||u − v||2 2σ2 ) (σ 0) カーネル関数はよく分からない。詳しくは再生核ヒルベルト空間、正定値 カーネル
  • 56.
    非線形変換:多項式カーネル 多項式カーネル Kp(u, v)= (α + uT v)p (α ≥ 0) α = 1, p = 2, u = (u1, u2), v = (v1, v2) として上記カーネルを展開 K2(u, v) = (1 + uT v)2 = (1 + u1v1 + u2v2)2 = 1 + u2 1v2 1 + 2u1u2v1v2 + u2 2v2 2 + 2u1v1 + 2u2v2 = φ(u)T φ(v) φ(u) = (1, u2 1, √ 2u1u2, u2 2, u2 2, √ 2u1, √ 2u2)T φ(v) = (1, v2 1, √ 2v1v2, v2 2, v2 2, √ 2v1, √ 2v2)T
  • 57.
    非線形変換:多項式カーネル 多項式カーネル Kp(u, v)= (α + uT v)p (α ≥ 0) 右辺に二項定理を適用。 二項定理 (a + b)n = n∑ k=0 ( n k ) ak bn−k = n∑ k=0 nCkak bn−k a = uT v, b = α と置けば Kp(u, v) = (α + uT v)p = p∑ i=0 ( p i ) αp−i (uT v)i
  • 58.
    非線形変換:多項式カーネル 多項式カーネル Kp(u, v)= (α + uT v)p (α ≥ 0) 多項式カーネルによる非線形特徴空間の次元 D(d, p) は D(d, p) = ( d + p p ) 入力の次元 d = 1、多項式カーネルの次数 p = 1 のそれぞれの場合 D(d = 1, p) = ( 1 + p p ) D(d, p = 1) = ( d + p 1 ) 次に入力の次元 d − 1、多項式カーネルの次数 p − 1 のそれぞれ一般的な場合 D(d − 1, p) = ( d − 1 + p p ) D(d, p − 1) = ( d + p − 1 p − 1 )
  • 59.
    非線形変換:多項式カーネル 多項式カーネル Kp(u, v)= (α + uT v)p (α ≥ 0) 二項係数を適用することで入力の次元 d、多項式カーネルの次数 p の時の非 線形特徴空間の次元が仮定と同形式になる。 二項係数 ( n k ) = ( n − 1 k ) + ( n − 1 k − 1 ) 入力の次元 d − 1、多項式カーネルの次数 p − 1 のそれぞれ一般的な場合 D(d, p) = D(d − 1, p) + D(d, p − 1) = ( d − 1 + p p ) + ( d + p − 1 p − 1 ) = ( d + p p ) 例:d = 16 × 16, p = 4 の時、 D(16 × 16, 4) = 260! (260 − 4)!4! = 186043585
  • 60.
    非線形変換:動径基底関数カーネル 動径基底関数カーネル Kσ(u, v)= exp ( − ||u − v||2 2σ2 ) σ : カーネル関数の広がりを制御するパラメータ 上記カーネルを展開 Kσ(u, v) = exp ( − ||u − v||2 2σ2 ) (∵ ||u − v||2 = (u − v)T (u − v)) = exp ( − ||u||2 2σ2 ) exp ( − ||v||2 2σ2 ) exp (2uT v 2σ2 ) 二つの指数関数と α = 0, p = 1 の多項式カーネルの積で表せる.
  • 61.
    非線形変換:動径基底関数カーネル マクローリン展開 f(x) = f(0) 0! x0 + f(0)1 1! x1 + f(0)2 2! x2 +· · · = ∞∑ n=0 fn(0) n! xn 展開したカーネルの最後の指数関数をもう少し展開 exp ( − uT v σ2 ) = exp ( d∑ i=1 ui σ vi σ ) = ∞∏ i=1 exp (ui σ vi σ ) = d∏ i=1 ( ∞∑ n=0 1 n! (ui σ vi σ )) (∵ マクローリン展開) = d∏ i=1 uT i vi 二つのベクトル ui, vi は無限の要素を持つベクトルであるから特徴空間は無 限次元になる.
  • 62.
    双対 双対 1 つの対象に対し2 つの等価な記述法が存在するとき,2 つの記述法 を取り替える操作を双対とよぶ。より一般に,2 つの記述法(概念・理論・ モデル・…)A,B が,どちらも同じ対象を表す(と信じられる)とき,A と B は互いに双対であるという。 双対性/加藤 晃史 (https://www.s.u-tokyo.ac.jp/ja/story/newsletter/keywords/21/06.html) 例:双対グラフ、フーリエ変換、ルジャンドル変換、電場-磁場、 双対(論理学)
  • 63.
    双対な例:双対グラフ 双対グラフ 平面グラフ Gの双対グラフとはすべての頂点が G の各面に対応する グラフである。(Wikipedia:双対グラフ) Figure: ドロネー図 Figure: ボロノイ図
  • 64.
    双対な例:双対グラフ ルジャンドル変換 凸関数である関数 f(x)(x∈ R) に対して次のように定義される関数を f(x) のルジャンドル変換であるという。 g(p) := max x (px − f(x)) 例:全微分可能で、その一回微分が狭義凸関数であるような 1 変数関数 f(x) を考える。 d f = ∂ f ∂x dx = pdx p を変数とする関数を考え、全微分する。 g(p) = px − f(x) ⇒ dg = pdx − d f = pdx + xdp − pdx = xdp これにより、 f(x) を考える代わりに等価な g(p) を考えることでいろいろで きるようになる。
  • 65.
    参考資料 非線形最適化の基礎/福島雅夫/2017 年 11月 25 日第 14 刷 はじめてのパターン認識/平井有三/2018 年 8 月 20 日第 1 版第 9 刷 SMO 徹底入門: https://www.slideshare.net/sleepy_yoshi/smo-svm Fast Training of Support Vector Machines using Sequential Minimal Optimization /John C. Platt/ Microsoft Research 1 Microsoft Way, Redmond, WA 98052 Convex Optimization/Stephen Boyd et al./ https://web.stanford.edu/~boyd/cvxbook/bv_cvxbook.pdf