svm
DESCRIPTION
testTRANSCRIPT
SVM勉強会(中山)
SVM(Support Vector Machine)とは
• 教師あり学習の手法
– 2クラスのパターン識別を行う手法
– 未学習データに対して識別能力が高い(汎化能力)
• 線形二値分類器
• 非線形二値分類器
2
x1
x2
SVM(Support Vector Machine )とは
• 二値分類器
– 学習データD={(d1,y1), (d2,y2), (d3,y3), …,(d|D|,y|D|)}
di=(x1,x2):学習サンプル
yi:クラスラベル, Y∋yi, Y={1,-1}
3
x1
x2
正クラス
負クラス
分離超平面
2次元の例
N-1次元の図形
SVMの方針(1)
• 線形分類器を線形方程式であらわす.
• 超平面の定式化
– f(x) = w・x-b = 0を満たす点xの集合
良い超平面を構築するためにwとbを調節4
x1
x2正クラス
f(x)>0
負クラスf(x)<0
SVMの方針(2)
• マージン最大化
– どちらのクラスからもなるべく遠い位置で分ける
– マージン:最も近い訓練事例への距離
5
良い超平面を構築するとは??
x1
x2
正クラスf(x)>0
負クラスf(x)<0
サポート
ベクトル
マージン最大化(1)
• マージンを定式化
– 正例の場合を考えてみる
– 右図よりマージンdは点線部分
6
x1
x2
正クラスf(x)>0
負クラスf(x)<0
x+
x*
x-w
H+
H-
H+である
サポートベクトルではないデータ
マージン最大化(2)
• マージン最大化問題
• 凸2次計画問題で表す
– 目的関数が2次関数
– 制約条件が1次関数7
大きさ・分数
めんどい
x1
x2正クラ
スf(x)>0
負クラス
f(x)<0
x+
x*x-w
H+
正例
負例
まとめる
不等式制約付2次計画問題
局所最適解に陥らない
目的関数
制約条件
どうやって最適解を求めるか
• 考えられる方法
– x1で偏微分して0とおけば
– 必ずしもx2をx1で表現できるとは限らない
8
ラグランジュの未定乗数法を使おう
ラグランジュの未定乗数法
• 解法
– 変数λを導入し,ラグランジュ関数L(x,λ)を定義する
– 関数L(x,λ)のxに関する偏微分が0となり,かつ与えられた制約が満たされる時,最適な解が得られる.
9
計算例(等式制約)
10
停留点
ラグランジュの乗数法は何をしてるのか
• 交わらず制約式がある値で接している点こそが最適値
11
x1
x2 x2
AB
AB
B地点の標高が最適であるとき B地点の標高が最適でないときx1
ラグランジュの乗数法は何をしてるのか
• ラグランジュ関数を用いた解法をもう一度見てみる
12
x2
A
B
x1
A
B
②
①
①
②
あるxでのf(x)の接線に対する法線ベクトルが制約式g(x)に対する法線ベクトルの整数倍で表せられ
るxが最適解となる
①
x2
B地点の標高が最適であるときB地点の標高が最適でないと
き
②
不等式制約の場合:制約条件の導出(1)
• 制約が緩和される
– 条件を見つける(何かしらで厳しく)
• g(x)>0では
– C地点が最適解である⇒
13
x2
A
B
x1
g(x)>0
C
不等式制約の場合:制約条件の導出(2)
• g(x)=0では– 最大化するためには∇f(x)の勾配が
∇g(x)の勾配と逆向きである必要がある
• 最小化するためは
– 上式の左辺の符号を反転
14
x2
A
B
①
B地点の標高が最適であるとき
②
②①
g(x)>0
不等式制約の場合:制約条件の導出(3)
• g(x)≧0の制約下で得られる条件
• x, λが以上の条件を満たすときxがある問題の
最適解となる(ことが知られている)
15
KKT条件
不等式制約:主問題と双対問題(1)
• 先ほどの問題の不等式制約Ver
– λに関する最小化問題に置き換える
16
主問題
双対問題
不等式制約:主問題と双対問題(2)
• λを変数とする関数で表せる
• ラグランジュ関数に代入
• λに関する最適化問題(双対問題)に置き換えることで主問題を扱いやすくする.
17
制約条件は のみ
マージン最大化へ:主問題から双対問題
• ラグランジュ関数の導入
• (2)を元のラグランジュ関数に代入
18
最小化なので-
主問題
マージン最大化へ:双対問題を解く
• (3)を使って整理すると
• αi以外は既知,
• 制約条件を満たしラグランジュ関数が最大となるαiを求める
19
主問題から双対問題に持ってこれた!
双対問題
Support Vectorと呼ばれる所以
• KKT条件から
• xがサポートベクトルではない場合
• xがサポートベクトルである場合
20
KKT条件
αi≧0であるベクトルだけを考慮(支持:Support)する
SVMの計算例(1)
• 学習データD={(d1,-1), (d2,-1),(d3,1)}d1=(0,1), d2=(1,1) d3=(2,1)
• まずは双対問題を解く
21
x1
x2
(0,1) (2,1)
正クラス
(1,1)
負クラス
SVMの計算量(2)
• 次はサポートベクトルのみ(α2, α3のみを考える)
• 主問題へ
22
SVMの計算例(3)
• 学習器に新しいデータx=(2,0)が来たら?
• 得られた超平面
23
x1
x2
(0,1)
(1,1)
(2,0)
正クラス
負クラス
超平面