datamining 6th svm

34
データマイニング クラス分類(V) - Fisherの線形判別 SVM 瀬々 潤 [email protected]

Upload: sesejun

Post on 20-Jun-2015

460 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Datamining 6th svm

データマイニングクラス分類(V) -Fisherの線形判別

SVM

瀬々 潤[email protected]

Page 2: Datamining 6th svm

・線形判別の概念・Fisherの線形判別・SVM ・Support Vector Machine

Page 3: Datamining 6th svm

実数値を用いたクラス分類• 今週はk-NN同様実数値をそのまま扱うクラス分類手法を扱う

• 先週までは値をYes, Noのテストにしたクラス分類手法

ID クラス 0,0 0,1 0,2 0,3 … 15,14 15,15

1 2 46 0 22 0 … 138 0

2 1 0 59 13 0 … 13 42

3 8 0 46 56 50 … 42 0

… … … … … … … … …

ID クラス 0,0 0,1 0,2 0,3 … 15,14 15,15

100 ? 59 13 0 28 … 13 42

… … … … … … … … …

Training Data

Test Data

3

Page 4: Datamining 6th svm

SVMのデモ• LIBSVM のページ:http://www.csie.ntu.edu.tw/~cjlin/libsvm/• SVM及びその亜種のライブラリを提供(C++とJava)• ライブラリ=言語などに機能を追加する一連のプログラム(関数,クラス)群.

• SVMの実装研究から始まっている

4

Page 5: Datamining 6th svm

線形分離• 訓練データを下記で表す.xiが属性を表すベクトル,yiがサンプルi

のクラスを表し,1か-1で与えられる.

• 以下を満たすベクトルw, b が存在するとき「線形分離可能」と言う

(xi, yi)(i = 1, . . . , l,xi ∈ Rn, yi ∈ {1,−1})

yi(w · (xi − b)) > 0 (i = 0, . . . , l)

線形分離面(線形分離可能な時, 線形分離する平面)

5

Page 6: Datamining 6th svm

線形分離面を利用した分類器• 線形判別関数w.x+b≧0が存在すると仮定する.

• この判別関数を用いたxの分類器d(x)を次のように定める.

• 実際には,線形分離面は1つとは限らない.• どのような面を取る?

d(x) =�

1, if w · x + b ≥ 0−1, otherwise

6

Page 7: Datamining 6th svm

Fisherの線形判別(1)• 可能性の有る線形分離面の内,次の2つの基準で2つのクラスを最も良く分離する面を選択する(必ずしも線形分離はできない)• 各クラスの中心を線aw+bへ射影した点が離れている• 各点を線aw+bへ射影した時,各クラスで分散が小さい

7

Page 8: Datamining 6th svm

Fisherの線形判別(2)• 各クラスの中心をm+,m-とすると

• クラス間の距離は• この指標の値は大きくしたい

• 各点をw.x+b=0へ射影した場合の級内分散は

• この指標の値は小さくしたい

m+ =

�d(x)=1 x

|{x|d(x) = 1}| ,m− =

�d(x)=−1 x

|{x|d(x) = −1}||(m+ −m−) · w|

d(x)=1

((x−m+) · w)2 +�

d(x)=−1

((x−m−) · w)2

8

Page 9: Datamining 6th svm

Fisherの線形判別(3)• 級内分散と級間分散の比を取り、最も大きくなる射影軸を選ぶ• 最大化問題:|w|=1の下で、次のJ(w)の値を最大にするwを求める

• 線形分離面の判別関数はw.x+bとなる。• bは射影軸が求まった後、重み付き中心を計算すれば良い

J(w) =|(m+ −m−) · w|2

�d(x)=1 ((x−m+) · w)2 +

�d(x)=−1 ((x−m−) · w)2

J(w)が最大のwを求めたい.J(w)のwでの微分が0として,解く

9

Page 10: Datamining 6th svm

Fisherの線形判別(4)

10

J(w) =wTSBwwTSWwSB = (m+ −m−)(m+ −m−)T

SW =�

d(x)=1

(x−m+)(x−m+)T +�

d(x)=−1

(x−m−)(x−m−)T

∂J(w)∂w

= 0�

f

g

��=

f �g − fg�

g2

(wTSBw)SWw = (wTSWw)SBw

J(w)を行列で書き直す

微分して0      であれば良い

であることを利用して変形すると

また,2つの方向が並進しているのでw ∝ S−1

W (m+ −m−)SBw � m+ −m−

よって,線形判別面の方向は上記で計算されること,また,方向を知るにはSwの逆行列を計算する事が最も重い計算だと分かる.

Page 11: Datamining 6th svm

SVM (Support Vector Machine)• マージン

• 平行な線形分離面の対の内,最も幅の大きいものの距離• マージンを最大化する線形分離面を取るアプローチ

サポートベクター

マージンの領域

の領域

線形分離面

11

Page 12: Datamining 6th svm

マージンの幅

• マージンの幅ρ(w,b)を以下で定義する

サポートベクター

マージンの領域

の領域

線形分離面

ρ(w, b) = min{xi|yi=1}

xi · w|w| − max

{xi|yi=−1}

xi · w|w|

灰色の丸 灰色の四角12

Page 13: Datamining 6th svm

マージン幅を   に調節の領域

の領域

w0 · x + b0 = ±1となるようにw0, b0を取るとρ(w0, b0) = min

{xi|yi=1}

xi · w0

|w0| − max{xi|yi=−1}

xi · w0

|w0|

=1− b0

|w0| −−1− b0

|w0| =2

|w0|13

2/|w0|

w0 · x + b0 = 1

w0 · x + b0 ≥ 1

w0 · x + b0 = 0w0 · x + b0 = −1w0 · x + b0 ≤ −1

w0

Page 14: Datamining 6th svm

マージンの最大化•    の最大化と     の最小化が同値であることを考えると最小化問題:マージンを最大化する超平面は,制約条件

の下で目的関数    を最小化する  で与えられる

• 目的関数が2次式なので,2次計画問題と呼ばれる• 特に,目的関数が凸関数なので,凸2次計画問題• 目的関数が1次式なら,線形計画問題• 2次計画問題を直接解くのは難しいので,この最適化問題を双対問題に変換して解く• 双対問題への変換には,ラグランジュ未定乗数法を使う

yi(w0 · xi + b) ≥ 1 (i = 1, . . . , l)

w0 · w0 w0

14

2/|w0| w0 · w0

Page 15: Datamining 6th svm

双対問題への変換(1)

• 上記のラグランジアンについて,w, b に関して最小化,Λに関して最大化する

Λ = (α1, . . . ,αl) (αi ≥ 0)

定理:マージンを最大化する超平面は,制約条件

の下で目的関数    を最小化する  で与えられる

yi(w0 · xi + b) ≥ 1 (i = 1, . . . , l)

w0 · w0 w0

ラグランジュ乗数

L(w, b,Λ) =|w|2

2−

l�

i=1

αi (yi(xi · w + b)− 1)ラグランジアン

式(1)

15

Page 16: Datamining 6th svm

双対問題への変換(2)• w=w0, b=b0において,L(w, b, Λ)が最小であるから

• この式を利用してw=w0, b=b0 におけるラグランジアンを計算すると

• 以上の式では,wとbが最小であることを利用したのでこの式を最大化するΛを求めれば良い.

∂L(w, b,Λ)∂w

����w=w0

= w0 −l�

i=1

αiyixi = 0

∂L(w, b,Λ)∂b

����b=b0

= −l�

i=1

αiyi = 0

w0 =l�

i=1

αiyixi ,l�

i=1

αiyi = 0よって

L(w0, b0,Λ) =12w0 · w0 −

l�

i=1

αi [yi(xi · w0 + b0)− 1]

=l�

i=1

αi −12

l�

i=1

l�

j=1

αiαjyiyjxi · xj

式(2)

16

Page 17: Datamining 6th svm

SVMの双対問題• 最大マージンを与えるw, bは,制約条件

のもと,目的関数

を最大化するΛで与えられる• SVMでは,この双対問題を解く• w0の値は,求まったΛから計算する• 式(2)の利用(          )

• 式(2)よりαi≠0となる点xi はwに寄与し,KKKTの条件より,この点はサポートベクターとなることがわかる.• KKT条件:

l�

i=1

αiyi = 0, αi ≥ 0

L(w0, b0,Λ) =l�

i=1

αi −12

l�

i=1

l�

j=1

αiαjyiyjxi · xj

式(3)

w0 =�l

i=1 αiyixi

αi [yi(xi · w0 + b0)− 1] = 017

Page 18: Datamining 6th svm

非線形境界• 超平面以外の関数でも分離したい!• 写像を考える• 非線形境界の利用は,アルゴリズムによらない一般的な方法

(A) 元の空間.曲線でクラス分類 (B) 写像後の空間.直線でクラス分類 18

Page 19: Datamining 6th svm

非線形境界(続)• どのような写像を用意すればよい?

• 高次元の空間に写像すれば,分離可能性が高まる• しかし,データの格納だけでも大変になるので,現実的ではない

• 双対問題に着目する• 双対問題の目的関数は下記.

• 点xを高次元な空間Φ(x)に写像すると,目的関数は次になる

• 分離面は,次のようになる

• 高次元のΦでは,内積の計算が重い・・・ので工夫する

L(w0, b0,Λ) =l�

i=1

αi −12

l�

i=1

l�

j=1

αiαjyiyjxi · xj

L(w0, b0,Λ) =l�

i=1

αi −12

l�

i=1

l�

j=1

αiαjyiyjΦ(xi) · Φ(xj)

Φ(x) · w0 + b0 =l�

i=1

αiyiΦ(x) · Φ(xi) + b0 = 0

19

Page 20: Datamining 6th svm

カーネル Kernel• 関数K(x, y) = Φ(x)・Φ(y) をカーネルと呼ぶ•                      とすると,

• 写像空間(6次元)の内積は,写像前の空間の内積で計算できる• カーネルとして良く使われるもの

• 線形カーネル:• RBFカーネル:• シグモイドカーネル:

• σ,κ,δは変数.• シグモイドカーネルは全ての空間でカーネルとはならない(Mercerの条件)

Φ((x1, x2)) = (x21,√

2x1x2, x22,√

2x1,√

2x2, 1)Φ((x1, x2)) · Φ((y1, y2))

= (x1y1)2 + 2x1y1x2y2 + (x2y2)2 + 2x1y1 + 2x2y2 + 1= (x1y1 + x2y2 + 1)2

= ((x1, x2) · (y1, y2) + 1)2

(x · y + 1)d,exp(−||x− y||2/2σ2),tanh(κx · y − δ)

20

Page 21: Datamining 6th svm

ソフトマージン• 線形分離では厳密に誤分類が無い事を条件にしているが,実際のデータではノイズなどにより,多少誤分類が生じてしまう場合が有る.

• 多少の誤分類を許して,境界線を引きたい• 誤分類にペナルティを用意する

• ξはスラック変数と呼ばれる

yi(w · xi + b) ≥ 1− ξi

where ξi ≥ 0 (i = 1, . . . , l)

最小化する目的関数は

12w · w + C

�l�

i=1

ξi

21

Page 22: Datamining 6th svm

双対問題(1)• スラック変数導入前と同様に双対問題を求める

非負のラグランジュ乗数 Λ = (α1, . . . ,αl),R = (r1, . . . , rl)

ラグランジアンL

L(w, ξ, b,Λ,R)

=12w · w + C

l�

i=1

ξi −l�

i=1

αi [yi(xi · w + b)− 1 + ξi]−l�

i=1

riξi

w0, b0, ξ0i w, b, ξiをLを最小化する とすると,以下のKKT条件が成立

∂L(w, ξ, b,Λ,R)∂w

����w=w0

= w0 −l�

i=0

αiyixi = 0

∂L(w, ξ, b,Λ,R)∂b

����b=b0

= −l�

i=0

αiyi = 0

∂L(w, ξ, b,Λ,R)∂ξi

����ξ=ξ0

i

= C − αi − ri = 022

Page 23: Datamining 6th svm

双対問題(2)• 成立した条件をラグランジアンLの式に代入して,変形すると

• この目的関数は,ペナルティーとして導入したCやξに依存せず,ソフトマージン導入前のSVMの目的関数と変化が無い• 制約条件として,αiの上限がCとなる.• Cを無限大に飛ばせば,ソフトマージン無しの状態

• C - αi - ri = 0 で,riが非負であることから,0≦αi≦Cが成立

L(w, ξ, b,Λ,R) =l�

i=1

αi −12

l�

i=1

l�

j=1

αiαjyiyjxi · xj

最大マージンを与えるw,bは制約条件

のもと,目的関数

を最大化するΛで与えられる

L(w, ξ, b,Λ,R) =l�

i=1

αi −12

l�

i=1

l�

j=1

αiαjyiyjxi · xj

l�

i=1

αiyi = 0, 0 ≤ αi ≤ C

23

Page 24: Datamining 6th svm

補足: Karush-Kuhn-Tucker条件(KKT条件)

• 制約付き最小化問題の必要条件• 制約条件gi(x) ≦ 0 (x = (x1, x2, ..., xn)) の下,目的関数f(x)を最小化する問題を考える.

• KKT条件: 上記の問題の最適解は,以下の式を満たす

• f(x)とgi(x)が全て凸の関数である場合は,x, λがKKT条件を満たせば,目的関数f(x)が最小値を取る.

∂f(x)∂xj

+m�

i=1

λi∂gi(x)∂xj

= 0, j = 1, 2, ..., n

λigi(x) = 0, λi ≥ 0, gi(x) ≤ 0, i = 1, 2, ...,m

24

Page 25: Datamining 6th svm

SMO (Sequence Minimal Optimization)• SVMを実際に計算する方法

• 双対問題の解Λ=(α1, α2, ...,αl)を求める• αiの数は点の数と一致

• 6000点のデータなら,6000個• 全てを一度に動かすのは現実的ではない

• 選択した2個(αi, αj)だけを動かし,最適解を求め,その次に別の2個を選択し最適解を求める,というプロセスを繰り返す.• 2個のαiの移動なら,解析的に解が求まる点を利用

• 現在は,SMOを元として様々な改良が行われている

• 以下,目的関数を  と表そうLD

LD = L(w, ξ, b,Λ,R) =l�

i=1

αi −12

l�

i=1

l�

j=1

αiαjyiyjxi · xj

25

Page 26: Datamining 6th svm

2変数の解析的更新(1)•     のみを更新して,LDを最大化する• 更新前を     とし,更新後を     とする

α1,α2

αold1 ,αold

2 αnew1 ,αnew

2

Eoldi ≡ wold · xi + bold − yi

η ≡ 2K12 −K11 −K22, where Kij = xi · xj

αnew2 = αold

2 − y2(Eold1 − Eold

2 )η

予測エラー

と定義すると,次式でα2の更新が行える

証明は,       から           を利用して�li=1 αiyi = 0

LDを変形し,LD’=0 を使う.

因に,式変形をすることで,

γ ≡ α1 + sα2 = Const.

η = 2K12 −K11 −K22 = − | x2 − x1 |2≤ 0 26

Page 27: Datamining 6th svm

2変数の解析的更新(2)•     は           より,直線上を動く• しかし,前ページの式では,動いた後の     が制約条件(0

以上,C未満)を満たしているかは保証されない

• 制約条件も満たしている更新後のα2を    とする  

が取りうる場所

(A)                   の時 (B)                   の時

α1,α2 γ ≡ α1 + sα2 = Const.

αclipped2

αnew1 ,αnew

2

27

Page 28: Datamining 6th svm

2変数の解析的更新(3)y1 = y1(s = 1)

y1 �= y2(s = −1)

L = max(0,αold1 + α

old2 − C), H = min(C,α

old1 + α

old2 )

L = max(0,αold2 − α

old1 ), H = min(C,C + α

old2 − α

old1 )

の時

の時

と定義すると      が成立するL ≤ α2 ≤ H

(証明はsとγの値で場合分け.証明の概略図は次ページ)

αclipped2 は,次式で求められる

αclipped2 =

H, if αnew2 ≥ H

αnew2 , if L < α

new2 < H

L, if αnew2 ≤ L

(証明はLDが凸関数であることを利用する. 証明の概略図は次々ページ)

28

Page 29: Datamining 6th svm

•  の可動範囲が       である証明の図

(A)          かつ     の時 (B)           かつ     の時

(C)          かつ     の時 (D)           かつ     の時

L ≤ α2 ≤ H

Page 30: Datamining 6th svm

•     の値の証明の概略図αclipped2

断面図

の場合

の場合

の場合(B)

(C)

(D)

(A) が取る範囲

:      の場所(αnew1 ,αnew

2 )

:        の場所(αnew1 ,αclipped

2 )

Page 31: Datamining 6th svm

1.           を計算する2.    の時,次の手順で更新後のαを計算

(a)                を計算(b)     を計算(c)                 を計算

3.    の時,LDがα2の1次式になるので,LとHの何れかの位置で,値の大きいほうを選択する.α1の計算は2(c)を利用.

4. 下記で残りのパラメータを更新.α1,2以外は変更しない事に注意•   は,    として導いた.

2変数の解析的更新手順η = 2K12 −K11 −K22

η < 0

αnew2 = αold

2 + y2(Eold2 −Eold

1 )η

αclipped2

αnew1 = αold

1 − s(αclipped2 − αold

2 )η = 0

wnew = wold + (αnew1 − αold

1 )y1x1 + (αclipped2 − αold

2 )y2x2

Enew(x, y) = Eold(x, y) + y1(αnew1 − αold

1 )x1 · x+y2(αclipped

2 − αold2 )x2 · x− bold + bnew

bnew = bold − Eold(x, y)− y1(αnew1 − αold

1 )x1 · x− y2(αclipped2 − αold

2 )x2 · x

bnew Enew = 0

31

Page 32: Datamining 6th svm

更新するαiの選択• 各ステップで,α1とα2を選択する• α1の選択(外側のループ)

• 全ての点がKKT条件を満たして欲しいので,KKT条件を破る点を選択する

• 始めは全ての点を順に選択してしらべる• 2度目は,サポートベクターとなる点を中心にしらべる

• 0 < αi < C の点を調べる• 計算量削減のため

• α2の選択(内側のループ)• LDが最も大きくなる様に選択をしたい(最急降下する方向)• カーネルなどを考えると,最善の選択をするのは難しいので,|E1-E2|が最も大きくなるように選択する• E1が正なら,E2は最も小さい点,E1が負なら最も大きな点32

Page 33: Datamining 6th svm

SMOを使ったSVMの実装まとめ• 双対問題を解く• 点の個数個存在するラグランジュ乗数を最適化する

• サポートベクターのみがラグランジュ乗数α≠0

• ラグランジュ乗数αを2個のみ変化させる• 2個なら解析的に解が求まる

• 2個のαは可能な限り最急降下する方向を選択する• 実際には|E2-E1|が最大となる様に選択

• ラグランジアンLDが更新されなくなる=KKT条件が全ての点で満たされるまで,続ける

33

Page 34: Datamining 6th svm

クラス分類問題の発展• クラスが3個以上の多クラス(血液型みたいなもの)の場合

• A型とそれ以外,B型とそれ以外,という複数の2クラスを解く問題に分割して,解くことが多い

• クラスが離散値ではなく,連続値(数値)の場合• 回帰問題(regression problem)と呼ばれる• 0~100の値を取る場合,0~10, 10~20,などと区間を分けて解くことが多い

• クラスが1つしか存在しない場合• Webで「化粧品」に関連したページを集めたい.人力で集められるのは,高々100ページ.この100ページを元に「化粧品クラス」のWebページを当てる• 残り全てのページが「化粧品クラスではない」とは言えない

• One Class SVMなどが提案されている 34