SlideShare a Scribd company logo
1 of 65
Download to read offline
Chap.8 Support Vector Machine
はじめてのパターン認識 輪読会
Nobuyuki Takayasu
Tokyo, Japan
September 10, 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

More Related Content

What's hot

はじめてのパターン認識輪読会 10章後半
はじめてのパターン認識輪読会 10章後半はじめてのパターン認識輪読会 10章後半
はじめてのパターン認識輪読会 10章後半koba cky
 
サポートベクトルデータ記述法による異常検知 in 機械学習プロフェッショナルシリーズ輪読会
サポートベクトルデータ記述法による異常検知 in 機械学習プロフェッショナルシリーズ輪読会サポートベクトルデータ記述法による異常検知 in 機械学習プロフェッショナルシリーズ輪読会
サポートベクトルデータ記述法による異常検知 in 機械学習プロフェッショナルシリーズ輪読会Shotaro Sano
 
2値分類・多クラス分類
2値分類・多クラス分類2値分類・多クラス分類
2値分類・多クラス分類t dev
 
PRML輪読#7
PRML輪読#7PRML輪読#7
PRML輪読#7matsuolab
 
PRML 上 1.2.4 ~ 1.2.6
PRML 上 1.2.4 ~ 1.2.6PRML 上 1.2.4 ~ 1.2.6
PRML 上 1.2.4 ~ 1.2.6禎晃 山崎
 
はじぱた7章F5up
はじぱた7章F5upはじぱた7章F5up
はじぱた7章F5upTyee Z
 
PRML第6章「カーネル法」
PRML第6章「カーネル法」PRML第6章「カーネル法」
PRML第6章「カーネル法」Keisuke Sugawara
 
クラシックな機械学習入門:付録:よく使う線形代数の公式
クラシックな機械学習入門:付録:よく使う線形代数の公式クラシックな機械学習入門:付録:よく使う線形代数の公式
クラシックな機械学習入門:付録:よく使う線形代数の公式Hiroshi Nakagawa
 
PRML輪読#6
PRML輪読#6PRML輪読#6
PRML輪読#6matsuolab
 
パーセプトロン型学習規則
パーセプトロン型学習規則パーセプトロン型学習規則
パーセプトロン型学習規則Shuhei Sowa
 
パターン認識 05 ロジスティック回帰
パターン認識 05 ロジスティック回帰パターン認識 05 ロジスティック回帰
パターン認識 05 ロジスティック回帰sleipnir002
 
機械学習による統計的実験計画(ベイズ最適化を中心に)
機械学習による統計的実験計画(ベイズ最適化を中心に)機械学習による統計的実験計画(ベイズ最適化を中心に)
機械学習による統計的実験計画(ベイズ最適化を中心に)Kota Matsui
 
PRML輪読#3
PRML輪読#3PRML輪読#3
PRML輪読#3matsuolab
 
確率的主成分分析
確率的主成分分析確率的主成分分析
確率的主成分分析Mika Yoshimura
 
Fisher Vectorによる画像認識
Fisher Vectorによる画像認識Fisher Vectorによる画像認識
Fisher Vectorによる画像認識Takao Yamanaka
 
スペクトラルグラフ理論入門
スペクトラルグラフ理論入門スペクトラルグラフ理論入門
スペクトラルグラフ理論入門irrrrr
 
[DL輪読会]近年のエネルギーベースモデルの進展
[DL輪読会]近年のエネルギーベースモデルの進展[DL輪読会]近年のエネルギーベースモデルの進展
[DL輪読会]近年のエネルギーベースモデルの進展Deep Learning JP
 
SMO徹底入門 - SVMをちゃんと実装する
SMO徹底入門 - SVMをちゃんと実装するSMO徹底入門 - SVMをちゃんと実装する
SMO徹底入門 - SVMをちゃんと実装するsleepy_yoshi
 
PCAの最終形態GPLVMの解説
PCAの最終形態GPLVMの解説PCAの最終形態GPLVMの解説
PCAの最終形態GPLVMの解説弘毅 露崎
 

What's hot (20)

はじめてのパターン認識輪読会 10章後半
はじめてのパターン認識輪読会 10章後半はじめてのパターン認識輪読会 10章後半
はじめてのパターン認識輪読会 10章後半
 
サポートベクトルデータ記述法による異常検知 in 機械学習プロフェッショナルシリーズ輪読会
サポートベクトルデータ記述法による異常検知 in 機械学習プロフェッショナルシリーズ輪読会サポートベクトルデータ記述法による異常検知 in 機械学習プロフェッショナルシリーズ輪読会
サポートベクトルデータ記述法による異常検知 in 機械学習プロフェッショナルシリーズ輪読会
 
2値分類・多クラス分類
2値分類・多クラス分類2値分類・多クラス分類
2値分類・多クラス分類
 
PRML輪読#7
PRML輪読#7PRML輪読#7
PRML輪読#7
 
PRML 上 1.2.4 ~ 1.2.6
PRML 上 1.2.4 ~ 1.2.6PRML 上 1.2.4 ~ 1.2.6
PRML 上 1.2.4 ~ 1.2.6
 
はじぱた7章F5up
はじぱた7章F5upはじぱた7章F5up
はじぱた7章F5up
 
PRML第6章「カーネル法」
PRML第6章「カーネル法」PRML第6章「カーネル法」
PRML第6章「カーネル法」
 
PRML chapter7
PRML chapter7PRML chapter7
PRML chapter7
 
クラシックな機械学習入門:付録:よく使う線形代数の公式
クラシックな機械学習入門:付録:よく使う線形代数の公式クラシックな機械学習入門:付録:よく使う線形代数の公式
クラシックな機械学習入門:付録:よく使う線形代数の公式
 
PRML輪読#6
PRML輪読#6PRML輪読#6
PRML輪読#6
 
パーセプトロン型学習規則
パーセプトロン型学習規則パーセプトロン型学習規則
パーセプトロン型学習規則
 
パターン認識 05 ロジスティック回帰
パターン認識 05 ロジスティック回帰パターン認識 05 ロジスティック回帰
パターン認識 05 ロジスティック回帰
 
機械学習による統計的実験計画(ベイズ最適化を中心に)
機械学習による統計的実験計画(ベイズ最適化を中心に)機械学習による統計的実験計画(ベイズ最適化を中心に)
機械学習による統計的実験計画(ベイズ最適化を中心に)
 
PRML輪読#3
PRML輪読#3PRML輪読#3
PRML輪読#3
 
確率的主成分分析
確率的主成分分析確率的主成分分析
確率的主成分分析
 
Fisher Vectorによる画像認識
Fisher Vectorによる画像認識Fisher Vectorによる画像認識
Fisher Vectorによる画像認識
 
スペクトラルグラフ理論入門
スペクトラルグラフ理論入門スペクトラルグラフ理論入門
スペクトラルグラフ理論入門
 
[DL輪読会]近年のエネルギーベースモデルの進展
[DL輪読会]近年のエネルギーベースモデルの進展[DL輪読会]近年のエネルギーベースモデルの進展
[DL輪読会]近年のエネルギーベースモデルの進展
 
SMO徹底入門 - SVMをちゃんと実装する
SMO徹底入門 - SVMをちゃんと実装するSMO徹底入門 - SVMをちゃんと実装する
SMO徹底入門 - SVMをちゃんと実装する
 
PCAの最終形態GPLVMの解説
PCAの最終形態GPLVMの解説PCAの最終形態GPLVMの解説
PCAの最終形態GPLVMの解説
 

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

コンピュータービジョン最先端ガイド2 3.4ベクトルデータに対するカーネル法(SVM)
コンピュータービジョン最先端ガイド2 3.4ベクトルデータに対するカーネル法(SVM) コンピュータービジョン最先端ガイド2 3.4ベクトルデータに対するカーネル法(SVM)
コンピュータービジョン最先端ガイド2 3.4ベクトルデータに対するカーネル法(SVM) Takahiro (Poly) Horikawa
 
東京都市大学 データ解析入門 9 クラスタリングと分類分析 2
東京都市大学 データ解析入門 9 クラスタリングと分類分析 2東京都市大学 データ解析入門 9 クラスタリングと分類分析 2
東京都市大学 データ解析入門 9 クラスタリングと分類分析 2hirokazutanaka
 
サポートベクトルマシン入門
サポートベクトルマシン入門サポートベクトルマシン入門
サポートベクトルマシン入門Wakamatz
 
お披露目会05/2010
お披露目会05/2010お披露目会05/2010
お披露目会05/2010JAVA DM
 
凸最適化 〜 双対定理とソルバーCVXPYの紹介 〜
凸最適化 〜 双対定理とソルバーCVXPYの紹介 〜凸最適化 〜 双対定理とソルバーCVXPYの紹介 〜
凸最適化 〜 双対定理とソルバーCVXPYの紹介 〜Tomoki Yoshida
 
東京都市大学 データ解析入門 6 回帰分析とモデル選択 1
東京都市大学 データ解析入門 6 回帰分析とモデル選択 1東京都市大学 データ解析入門 6 回帰分析とモデル選択 1
東京都市大学 データ解析入門 6 回帰分析とモデル選択 1hirokazutanaka
 
パターン認識第9章 学習ベクトル量子化
パターン認識第9章 学習ベクトル量子化パターン認識第9章 学習ベクトル量子化
パターン認識第9章 学習ベクトル量子化Miyoshi Yuya
 
クラシックな機械学習の入門  5. サポートベクターマシン
クラシックな機械学習の入門  5. サポートベクターマシンクラシックな機械学習の入門  5. サポートベクターマシン
クラシックな機械学習の入門  5. サポートベクターマシンHiroshi Nakagawa
 
パターン認識 第12章 正則化とパス追跡アルゴリズム
パターン認識 第12章 正則化とパス追跡アルゴリズムパターン認識 第12章 正則化とパス追跡アルゴリズム
パターン認識 第12章 正則化とパス追跡アルゴリズムMiyoshi Yuya
 
Jokyonokai
JokyonokaiJokyonokai
Jokyonokainwpmq516
 
Jokyonokai
JokyonokaiJokyonokai
Jokyonokainwpmq516
 
オンライン凸最適化と線形識別モデル学習の最前線_IBIS2011
オンライン凸最適化と線形識別モデル学習の最前線_IBIS2011オンライン凸最適化と線形識別モデル学習の最前線_IBIS2011
オンライン凸最適化と線形識別モデル学習の最前線_IBIS2011Preferred Networks
 
Quantum Support Vector Machine
Quantum Support Vector MachineQuantum Support Vector Machine
Quantum Support Vector MachineYuma Nakamura
 
Or seminar2011final
Or seminar2011finalOr seminar2011final
Or seminar2011finalMikio Kubo
 

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

Prml07
Prml07Prml07
Prml07
 
コンピュータービジョン最先端ガイド2 3.4ベクトルデータに対するカーネル法(SVM)
コンピュータービジョン最先端ガイド2 3.4ベクトルデータに対するカーネル法(SVM) コンピュータービジョン最先端ガイド2 3.4ベクトルデータに対するカーネル法(SVM)
コンピュータービジョン最先端ガイド2 3.4ベクトルデータに対するカーネル法(SVM)
 
東京都市大学 データ解析入門 9 クラスタリングと分類分析 2
東京都市大学 データ解析入門 9 クラスタリングと分類分析 2東京都市大学 データ解析入門 9 クラスタリングと分類分析 2
東京都市大学 データ解析入門 9 クラスタリングと分類分析 2
 
サポートベクトルマシン入門
サポートベクトルマシン入門サポートベクトルマシン入門
サポートベクトルマシン入門
 
お披露目会05/2010
お披露目会05/2010お披露目会05/2010
お披露目会05/2010
 
凸最適化 〜 双対定理とソルバーCVXPYの紹介 〜
凸最適化 〜 双対定理とソルバーCVXPYの紹介 〜凸最適化 〜 双対定理とソルバーCVXPYの紹介 〜
凸最適化 〜 双対定理とソルバーCVXPYの紹介 〜
 
東京都市大学 データ解析入門 6 回帰分析とモデル選択 1
東京都市大学 データ解析入門 6 回帰分析とモデル選択 1東京都市大学 データ解析入門 6 回帰分析とモデル選択 1
東京都市大学 データ解析入門 6 回帰分析とモデル選択 1
 
パターン認識第9章 学習ベクトル量子化
パターン認識第9章 学習ベクトル量子化パターン認識第9章 学習ベクトル量子化
パターン認識第9章 学習ベクトル量子化
 
SVM
SVMSVM
SVM
 
クラシックな機械学習の入門  5. サポートベクターマシン
クラシックな機械学習の入門  5. サポートベクターマシンクラシックな機械学習の入門  5. サポートベクターマシン
クラシックな機械学習の入門  5. サポートベクターマシン
 
パターン認識 第12章 正則化とパス追跡アルゴリズム
パターン認識 第12章 正則化とパス追跡アルゴリズムパターン認識 第12章 正則化とパス追跡アルゴリズム
パターン認識 第12章 正則化とパス追跡アルゴリズム
 
1次式とノルムで構成された最適化問題とその双対問題
1次式とノルムで構成された最適化問題とその双対問題1次式とノルムで構成された最適化問題とその双対問題
1次式とノルムで構成された最適化問題とその双対問題
 
Jokyonokai
JokyonokaiJokyonokai
Jokyonokai
 
Jokyonokai
JokyonokaiJokyonokai
Jokyonokai
 
Gurobi python
Gurobi pythonGurobi python
Gurobi python
 
オンライン凸最適化と線形識別モデル学習の最前線_IBIS2011
オンライン凸最適化と線形識別モデル学習の最前線_IBIS2011オンライン凸最適化と線形識別モデル学習の最前線_IBIS2011
オンライン凸最適化と線形識別モデル学習の最前線_IBIS2011
 
Quantum Support Vector Machine
Quantum Support Vector MachineQuantum Support Vector Machine
Quantum Support Vector Machine
 
Or seminar2011final
Or seminar2011finalOr seminar2011final
Or seminar2011final
 
PRML5
PRML5PRML5
PRML5
 
Re revenge chap03-1
Re revenge chap03-1Re revenge chap03-1
Re revenge chap03-1
 

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

  • 1. Chap.8 Support Vector Machine はじめてのパターン認識 輪読会 Nobuyuki Takayasu Tokyo, Japan September 10, 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) 分類 :データを任意の数のカテゴリにふるい分ける ※線形分離可能な分類問題に限る
  • 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  主問題 不等式制約条件最適化問題の主問題 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ラグランジュ未定乗数)
  • 10. 脱線:ラグランジュ関数の直感的理解 制約あり最適化問題 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)
  • 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  主問題 不等式制約条件最適化問題の主問題 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ラグランジュ未定乗数)
  • 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 クラス分類を行う学習法 線形分離不可能な場合に想定される データ構造 データが入り混じっている 入り混じっていないが線形分離 不可能
  • 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