coreset+svm (論文紹介)

41
コココココココココ SVM ココココココ [ ココココ ] コココココココココ ココココココココココ M2 ココココ ココココ ココココ ココ コココココ 2012/11/16 16:00-

Upload: naotaka-yamada

Post on 11-Jun-2015

1.664 views

Category:

Technology


5 download

DESCRIPTION

coresetを使ってSVMを高速に解くというお話 情報系院生向けの輪講資料です

TRANSCRIPT

Page 1: Coreset+SVM (論文紹介)

コアセットを用いたSVM 学習の高速化

[ 文献紹介 ]

情報理工学系研究科 数理言語情報学研究室 M2 山田直敬

指導教員: 中川裕志 教授

第7回数理輪講 2012/11/16 16:00-

Page 2: Coreset+SVM (論文紹介)

紹介論文• Core Vector Machines:

Fast SVM Training on Very Large Data Sets– Ivor V. Tsang, James T. Kwok, Pak-Ming Cheung– [JMLR ’05]

• 要旨– SVM の最適化問題を計算幾何学の問題 (MEB) に帰

着– コアセットを用いた MEB の高速近似解法を流用– SVM の高速化を実現

2

Page 3: Coreset+SVM (論文紹介)

Why This Paper?

• SVM は性能が良いものの、遅い• 高速化のニーズがあり様々な手法が研究さ

れている• 紹介論文は、問題を全く別の視点から眺め

ることで成功している初期の事例• 定式化も面白い

• 機械学習アルゴリズムの高速化は個人的な研究テーマ

3

Page 4: Coreset+SVM (論文紹介)

発表の流れ• Support Vector Machine (SVM)– カーネルによる高次元化– SVM は重い。大規模データにスケールしない

• Minimum Enclosing Ball (MEB)– コアセットを用いた高速近似解法

• Core Vector Machine– SVM を MEB のアルゴリズムで解く

• 実験– 精度はいい勝負 / 実行速度が非常に速い

• その後の展開4

Page 5: Coreset+SVM (論文紹介)

目次• Support Vector Machine (SVM)• Minimum Enclosing Ball (MEB)• Core Vector Machine• 実験• その後の展開

5

機械学習の話

Page 6: Coreset+SVM (論文紹介)

Support Vector Machine (SVM)

6

分類問題を解くアルゴリズム

ξi

ξj

分離超平面

ならば yi = 1 ●ならば yi = -1 ◯予測:

であれば正解

このような分離平面を求めたい

http://en.wikipedia.org/wiki/Support_vector_machine

Page 7: Coreset+SVM (論文紹介)

Support Vector Machine (SVM)

7

ξ i

ξ j

ξi

ξj

損失関数の例

1

すなわち

ならば正解逆に

となるものにはペナルティを与える1 -

すると SVM で超平面を求める問題は、正則化項を加えた損失最小化問題に帰着する .

正則化項 損失関数

Page 8: Coreset+SVM (論文紹介)

カーネル法

8http://stackoverflow.com/questions/1148513/difference-between-a-linear-problem-and-a-non-linear-problem-essence-of-dot-pro

観察:データが高次元にあれば線形識別器がうまく分類する超平面がありそう

・データを高次元に写像した先で線形 SVM を行えば分離性能が良くなる

φ

・一般に分離境界は元の空間に戻って見れば非線形となる .

・カーネルトリックによる巧妙な実現

Page 9: Coreset+SVM (論文紹介)

カーネルトリック (1/2)

9

・写像 φ : x → φ(x) を施した空間での SVM の最適化問題

・次の双対問題を考える

高次元空間での内積

変更はここだけ

・主問題の解 w, b は、双対問題の解 α を用いて復元できる .

・学習後 新たな入力 x を分類するには , 次を計算すれば良い

観察:高次元での内積さえ

あればよい。φ の具体形が要らな

Page 10: Coreset+SVM (論文紹介)

カーネルトリック (2/2)

10

・すると、双対問題はカーネルを用いて次のように表される

・行列を用いて表すと次の式と等価になる

ここで , は要素ごとの積をそれぞれ表す・カーネルを用いた非線形 SVM は α についての ( 凸 ) 二次計画問題に帰着する

・内積を なるカーネル関数を介して計算すると約束

例:ガウシアンカーネル高次元での内積が高速に計算可能に

Page 11: Coreset+SVM (論文紹介)

SVM の計算量

11

・ α についての凸二次計画問題

通常の内点法を用いると各ステップで K の逆行列が必要となるデータ数を m とすると 、 K は m × m の行列

時間計算量 , 空間計算量

・機械学習ではデータ数 m が大きい場合がほとんど。内点法を用いた最適化は 実用的には使えない。・様々な高速化が提案されている Ex. Chunking, SMO , RSVM ,….

実験的に time 程度

・紹介論文では 近似アルゴリズムで provable に time

激重激重

Page 12: Coreset+SVM (論文紹介)

目次• Support Vector Machine (SVM)• Minimum Enclosing Ball (MEB)• Core Vector Machine• 実験• その後の展開

12

計算幾何学の話

Page 13: Coreset+SVM (論文紹介)

Minimum Enclosing Ball (MEB)

13

・与えられたデータ を 全て内包するような球のうち、最も半径の小さいものを求める問題

R

c

・次元数 d が d > 30 となると厳密解法だと非効率なアルゴリズムとなる・高次元での MEB はコアセットを用いた (1 + ε)- 近似アルゴリズムが提案されている

・すなわち厳密解を R とすると、任意の ε > 0 に対して (1 + ε) R の解が得られる

・最適な c , R をもって と表すことにする

Page 14: Coreset+SVM (論文紹介)

R

MEB のコアセット

14

・ がコアセット ⇔

・コアセット Q の MEB を ε 倍だけ拡大した球が データ全体を含んでいる

(1 + ε)R

Page 15: Coreset+SVM (論文紹介)

MEB コアセットを求めるアルゴリズム ()

• 反復アルゴリズム

• S, c, R の初期化– S0 , c0 , R0

– 適当なデータ z ∈ S をとり , S0 = { z } とする

– c0 = z

– R0 = 0

15

・ Bãdoiu & Clarkson (2002) [1]

Page 16: Coreset+SVM (論文紹介)

MEB コアセットを求めるアルゴリズム

• 各ステップ t で St , ct , Rt を次のように更新

1. ct から最も遠い点 z を見つける

2. St+1 = St ∪ { z }

3. St+1 の MEB を求める4. ct+1 = cMEB(St+1)

Rt+1 = RMEB(St+1)

16

・ Bãdoiu & Clarkson (2002) [1]

Page 17: Coreset+SVM (論文紹介)

MEB コアセットを求めるアルゴリズム

• 各ステップ t で St , ct , Rt を次のように更新

1. ct から最も遠い点 z を見つける

2. St+1 = St ∪ { z }

3. St+1 の MEB を求める4. ct+1 = cMEB(St+1)

Rt+1 = RMEB(St+1)

17

・ Bãdoiu & Clarkson (2002) [1]

Page 18: Coreset+SVM (論文紹介)

MEB コアセットを求めるアルゴリズム

• 各ステップ t で St , ct , Rt を次のように更新

1. ct から最も遠い点 z を見つける

2. St+1 = St ∪ { z }

3. St+1 の MEB を求める4. ct+1 = cMEB(St+1)

Rt+1 = RMEB(St+1)

18

・ Bãdoiu & Clarkson (2002) [1]

Page 19: Coreset+SVM (論文紹介)

MEB コアセットを求めるアルゴリズム

• 各ステップ t で St , ct , Rt を次のように更新

1. ct から最も遠い点 z を見つける

2. St+1 = St ∪ { z }

3. St+1 の MEB を求める4. ct+1 = cMEB(St+1)

Rt+1 = RMEB(St+1)

19

・ Bãdoiu & Clarkson (2002) [1]

Page 20: Coreset+SVM (論文紹介)

MEB コアセットを求めるアルゴリズム

• 各ステップ t で St , ct , Rt を次のように更新

1. ct から最も遠い点 z を見つける

2. St+1 = St ∪ { z }

3. St+1 の MEB を求める4. ct+1 = cMEB(St+1)

Rt+1 = RMEB(St+1)

20

・ Bãdoiu & Clarkson (2002) [1]

Page 21: Coreset+SVM (論文紹介)

MEB コアセットを求めるアルゴリズム

• 各ステップ t で St , ct , Rt を次のように更新

1. ct から最も遠い点 z を見つける

2. St+1 = St ∪ { z }

3. St+1 の MEB を求める4. ct+1 = cMEB(St+1)

Rt+1 = RMEB(St+1)

21

・ Bãdoiu & Clarkson (2002) [1]

Page 22: Coreset+SVM (論文紹介)

MEB コアセットを求めるアルゴリズム

• 各ステップ t で St , ct , Rt を次のように更新

1. ct から最も遠い点 z を見つける

2. St+1 = St ∪ { z }

3. St+1 の MEB を求める4. ct+1 = cMEB(St+1)

Rt+1 = RMEB(St+1)

22

・ Bãdoiu & Clarkson (2002) [1]

Page 23: Coreset+SVM (論文紹介)

MEB コアセットを求めるアルゴリズム

• 各ステップ t で St , ct , Rt を次のように更新

1. ct から最も遠い点 z を見つける

2. St+1 = St ∪ { z }

3. St+1 の MEB を求める4. ct+1 = cMEB(St+1)

Rt+1 = RMEB(St+1)

23

・ Bãdoiu & Clarkson (2002) [1]

Page 24: Coreset+SVM (論文紹介)

MEB コアセットを求めるアルゴリズム

• 各ステップ t で St , ct , Rt を次のように更新

1. ct から最も遠い点 z を見つける

2. St+1 = St ∪ { z }

3. St+1 の MEB を求める4. ct+1 = cMEB(St+1)

Rt+1 = RMEB(St+1)

24

・ Bãdoiu & Clarkson (2002) [1]

Page 25: Coreset+SVM (論文紹介)

MEB コアセットを求めるアルゴリズム

• 各ステップ t で St , ct , Rt を次のように更新

1. ct から最も遠い点 z を見つける

2. St+1 = St ∪ { z }

3. St+1 の MEB を求める4. ct+1 = cMEB(St+1)

Rt+1 = RMEB(St+1)

25

・ Bãdoiu & Clarkson (2002) [1]

Page 26: Coreset+SVM (論文紹介)

MEB コアセットを求めるアルゴリズム

• 各ステップ t で St , ct , Rt を次のように更新

1. ct から最も遠い点 z を見つける

2. St+1 = St ∪ { z }

3. St+1 の MEB を求める4. ct+1 = cMEB(St+1)

Rt+1 = RMEB(St+1)

• εR だけ拡大した球が全ての点を含めば終了

26

・ Bãdoiu & Clarkson (2002) [1]

Page 27: Coreset+SVM (論文紹介)

MEB コアセットを求めるアルゴリズム• アルゴリズムのステップ数は 1/ ε 回• コアセットに 1 個づつ点を追加する• 途中で小さい問題に対する MEB を厳密に

解いている

• コアセットの要素数は 1/ε 個

27

Page 28: Coreset+SVM (論文紹介)

目次• Support Vector Machine (SVM)• Minimum Enclosing Ball (MEB)• Core Vector Machine• 実験• その後の展開

28

本題

Page 29: Coreset+SVM (論文紹介)

Core Vector Machine (CVM) (1/4)

29

・ MEB の双対問題を考える

・行列で書くと

・なお、双対問題の解 α から c, R は次のように復元できる

Page 30: Coreset+SVM (論文紹介)

Core Vector Machine (CVM) [2/4]

30

(MEB の双対 )

(SVM の双対 )

・ここで K について一つだけ仮定をおく

・ これはガウシアンカーネル等様々なカーネルで成り立つ

・すると、

( 定数 )

となるので MEB の双対問題は

となる。

同じ構造を持ってる!

Page 31: Coreset+SVM (論文紹介)

Core Vector Machine (CVM) [3/4]

31

・逆に SVM側から考えると、

(SVM の双対 )

において ,

,where

とすれば を得る

・ であることに注意すれば SVM は

なる空間上での MEB を解いていることと同じ

Page 32: Coreset+SVM (論文紹介)

Core Vector Machine (CVM) [4/4]

32

• S0, c0, R0 を初期化• 各ステップ t で St , ct , Rt を次

のように更新

1. ct から最も遠い点 z を見つける

2. St+1 = St ∪ { z }

3. St+1 の MEB を求める

4. ct+1 = cMEB(St+1)

Rt+1 = RMEB(St+1)

• εR だけ拡大した球が全ての点を含めば終了

距離計算は を介して行う

小さい QP を解く必要があるここは既存の SVMソルバ(SMO) を用いる

Page 33: Coreset+SVM (論文紹介)

Core Vector Machine の理論保証

33

・時間計算量

・空間計算量

・データ数について”線形” な時間で最適解に近づく・近似精度と計算量のトレードオフ

・データ数 m が大きければ大きいほど効果が絶大・実験ではヒューリスティクスを用いてさらなる高速化を図っている

Page 34: Coreset+SVM (論文紹介)

目次• Support Vector Machine (SVM)• Minimum Enclosing Ball (MEB)• Core Vector Machine• 実験• その後の展開

34

Page 35: Coreset+SVM (論文紹介)

実験 1• ε = 10-6 で他のアルゴリズムと比較1. forest cover type – データ数 522,911 次元数 54

35

・計算時間

データが比較的小さい場合は既存手法とほとんど同じ

データが大きくなるとCVM が有利に働く . ( データ数 50万で約 25倍高速化 )

Page 36: Coreset+SVM (論文紹介)

実験 1• ε = 10-6 で他のアルゴリズムと比較1. forest cover type – データ数 522,911 次元数 54

36

・テスト時の誤差

高速化を実現しながらも、誤差は他の手法に匹敵している

Page 37: Coreset+SVM (論文紹介)

実験 2

37

• ε = 10-6 で他のアルゴリズムと比較1. UCI adult – データ数 32.561 次元数 123

・計算時間

データ数が比較的少ない場合は既存の手法と比べて時間がかかってしまう

Page 38: Coreset+SVM (論文紹介)

実験 2

38

• ε = 10-6 で他のアルゴリズムと比較1. UCI adult – データ数 32.561 次元数 123

・テスト時の誤差

既存の手法の中最も良いものとほとんど変わらない

Page 39: Coreset+SVM (論文紹介)

Core Vector Machine まとめ• 機械学習の (L2)SVM と計算幾何学の MEB

は双対問題にすれば同じ構造を持っていた

• コアセットを用いて MEB を効率的に求める近似アルゴリズムが SVM にも適用できる

• データ数が多い場合は、精度を保ちつつ、既存アルゴリズムよりも高速に学習可能

• データ数が少ない場合には不向き39

Page 40: Coreset+SVM (論文紹介)

CVM その後の展開• 回帰問題にも応用– Core Vector Regression [3] ’05

• 小さい問題で MEB を解くところを改良 高速化– Ball Vector Machine [3] ‘07

• バッチではなくストリームで CVM を実行– One Pass SVM [5] ’09

40

Page 41: Coreset+SVM (論文紹介)

参考文献

1. M. Bãdoiu & K. L. Clarkson. “Optimal core sets for balls”, Computational Geometry, 2002.

2. I. W. Tsang, J. T. Kwok & P. Cheung. “Core Vector Machines: Fast SVM Training on Very Large Data Sets”, JMLR,2005.

3. I. W. Tsang, J. T. Kwok & KT. Lai. “Core Vector Regression for Very Large Regression Problems”, ICML, 2005.

4. I. W. Tsang, A. Kocsor, J. T. Kwok. “Simpler core vector machines with enclosing balls”, ICML, 2007.

5. P. Rai, H. Daum´e III, S. Venkatasubramanian. “Streamed Learning: One-Pass SVMs” , IJCAI , 2009 41

年代順