SlideShare une entreprise Scribd logo
1  sur  41
第7回数理輪講 2012/11/16 16:00-




          コアセットを用いた
           SVM学習の高速化
              [文献紹介]
        情報理工学系研究科
     数理言語情報学研究室 M2山田直敬
       指導教員: 中川裕志 教授
紹介論文
• 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
Why This Paper?
• SVMは性能が良いものの、遅い
• 高速化のニーズがあり様々な手法が研究
  されている
• 紹介論文は、問題を全く別の視点から眺
  めることで成功している初期の事例
• 定式化も面白い



• 機械学習アルゴリズムの高速化は個人的
  な研究テーマ
                       3
発表の流れ
• Support Vector Machine (SVM)
  – カーネルによる高次元化
  – SVM は重い。大規模データにスケールしない
• Minimum Enclosing Ball (MEB)
  – コアセットを用いた高速近似解法
• Core Vector Machine
  – SVMをMEBのアルゴリズムで解く
• 実験
  – 精度はいい勝負/実行速度が非常に速い
• その後の展開
                                 4
目次
•   Support Vector Machine (SVM)   機械学習の話

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




                                            5
Support Vector Machine (SVM)
分類問題を解くアルゴリズム



        分離超平面
            ならば yi = 1 ●
予測:                                            ξj
            ならば yi = -1 ◯

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

                                         ξi
           であれば正解




                                                                  6
                     http://en.wikipedia.org/wiki/Support_vector_machine
Support Vector Machine (SVM)

           ξj

      ξi



                すなわち      損失関数の例

                  ならば正解
逆に
                                   1          1-
となるものにはペナルティを与える

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




                                                   7
           正則化項                        損失関数
カーネル法
観察:データが高次元にあれば線形識別器がうまく分類する超平面がありそう
・データを高次元に写像した先で線形SVMを行えば分離性能が良くなる
・一般に分離境界は元の空間に戻って見れば非線形となる.
・カーネルトリックによる巧妙な実現




                                          φ




  http://stackoverflow.com/questions/1148513/difference-between-a-linear-   8
  problem-and-a-non-linear-problem-essence-of-dot-pro
カーネルトリック(1/2)
・写像 φ : x → φ(x) を施した空間でのSVMの最適化問題



                                      変更はここだけ
・次の双対問題を考える



                  高次元空間での内積




                                         観察:
・主問題の解 w, bは、双対問題の解 αを用いて復元できる.      高次元での内積さえ
                                       あればよい。
                                     φの具体形が要らない
・学習後 新たな入力 x を分類するには, 次を計算すれば良い

                                                9
カーネルトリック(2/2)
・内積を                       なるカーネル関数を介して計算すると約束
                                         高次元での内積が
             例:ガウシアンカーネル                 高速に計算可能に

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




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




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




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

   時間計算量           , 空間計算量
                  激重                激重

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

・紹介論文では 近似アルゴリズムでprovableに                     time
                                                      11
目次
•   Support Vector Machine (SVM)
•   Minimum Enclosing Ball (MEB)   計算幾何学の話


•   Core Vector Machine
•   実験
•   その後の展開




                                             12
Minimum Enclosing Ball (MEB)

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




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

・次元数 d が d > 30 となると厳密解法だと非効率なアルゴリズムとなる
・高次元でのMEBはコアセットを用いた (1 + ε)-近似アルゴリズムが提案されている
・すなわち厳密解を R とすると、任意の ε > 0 に対して (1 + ε) R の解が得られる

                                                    13
MEBのコアセット
・      がコアセット ⇔




                                        R
                             (1 + ε)R




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




                                            14
MEBコアセットを求めるアルゴリズム()
・Bãdoiu & Clarkson (2002) [1]


  • 反復アルゴリズム

  • S, c, R の初期化
       – S0 , c0 , R0
       – 適当なデータ z ∈ S を
         とり, S0 = { z } とする
       – c0 = z
       – R0 = 0



                                15
MEBコアセットを求めるアルゴリズム
・Bãdoiu & Clarkson (2002) [1]

• 各ステップ 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
MEBコアセットを求めるアルゴリズム
・Bãdoiu & Clarkson (2002) [1]

• 各ステップ 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
MEBコアセットを求めるアルゴリズム
・Bãdoiu & Clarkson (2002) [1]

• 各ステップ 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
MEBコアセットを求めるアルゴリズム
・Bãdoiu & Clarkson (2002) [1]

• 各ステップ 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
MEBコアセットを求めるアルゴリズム
・Bãdoiu & Clarkson (2002) [1]

• 各ステップ 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
MEBコアセットを求めるアルゴリズム
・Bãdoiu & Clarkson (2002) [1]

• 各ステップ 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
MEBコアセットを求めるアルゴリズム
・Bãdoiu & Clarkson (2002) [1]

• 各ステップ 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
MEBコアセットを求めるアルゴリズム
・Bãdoiu & Clarkson (2002) [1]

• 各ステップ 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
MEBコアセットを求めるアルゴリズム
・Bãdoiu & Clarkson (2002) [1]

• 各ステップ 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
MEBコアセットを求めるアルゴリズム
・Bãdoiu & Clarkson (2002) [1]

• 各ステップ 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
MEBコアセットを求めるアルゴリズム
・Bãdoiu & Clarkson (2002) [1]

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

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




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




                                   28
Core Vector Machine (CVM) (1/4)
・MEBの双対問題を考える




・行列で書くと

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


                                   29
Core Vector Machine (CVM) [2/4]
                           (MEBの双対)


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

  ・          (定数)

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

・すると、           となるのでMEBの双対問題は

                        となる。


             同じ構造を持ってる!



                               (SVMの双対)   30
Core Vector Machine (CVM) [3/4]
・逆にSVM側から考えると、


                                      (SVMの双対)
において,

           ,where


    とすれば                              を得る


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


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

                                            31
Core Vector Machine (CVM) [4/4]
• 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)        小さいQPを解く必要がある
                               ここは既存のSVMソルバ
      Rt+1 = RMEB(St+1)        (SMO)を用いる
• εR だけ拡大した球が全ての点を
  含めば終了


                                               32
Core Vector Machine の理論保証

・時間計算量



・空間計算量




・データ数について”線形” な時間で最適解に近づく
・近似精度と計算量のトレードオフ
・データ数m が大きければ大きいほど効果が絶大
・実験ではヒューリスティクスを用いてさらなる高速化を図っている


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




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

                           ・計算時間

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

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




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


                           ・テスト時の誤差

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




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


                           ・計算時間

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




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


                           ・テスト時の誤差

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




                                      38
Core Vector Machine まとめ
• 機械学習の(L2)SVMと計算幾何学のMEBは
  双対問題にすれば同じ構造を持っていた

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

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

• データ数が尐ない場合には不向き
                            39
CVM その後の展開
• 回帰問題にも応用
 – Core Vector Regression [3] ’05
• 小さい問題でMEBを解くところを改良 高
  速化
 – Ball Vector Machine [3] ‘07
• バッチではなくストリームでCVMを実行
 – One Pass SVM [5] ’09




                                    40
参考文献
年代順

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

Contenu connexe

Tendances

Tendances (20)

SSII2020 [OS2-02] 教師あり事前学習を凌駕する「弱」教師あり事前学習
SSII2020 [OS2-02] 教師あり事前学習を凌駕する「弱」教師あり事前学習SSII2020 [OS2-02] 教師あり事前学習を凌駕する「弱」教師あり事前学習
SSII2020 [OS2-02] 教師あり事前学習を凌駕する「弱」教師あり事前学習
 
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
 
[DL輪読会]Relational inductive biases, deep learning, and graph networks
[DL輪読会]Relational inductive biases, deep learning, and graph networks[DL輪読会]Relational inductive biases, deep learning, and graph networks
[DL輪読会]Relational inductive biases, deep learning, and graph networks
 
ドメイン適応の原理と応用
ドメイン適応の原理と応用ドメイン適応の原理と応用
ドメイン適応の原理と応用
 
Overcoming Catastrophic Forgetting in Neural Networks読んだ
Overcoming Catastrophic Forgetting in Neural Networks読んだOvercoming Catastrophic Forgetting in Neural Networks読んだ
Overcoming Catastrophic Forgetting in Neural Networks読んだ
 
SSII2021 [OS2-01] 転移学習の基礎:異なるタスクの知識を利用するための機械学習の方法
SSII2021 [OS2-01] 転移学習の基礎:異なるタスクの知識を利用するための機械学習の方法SSII2021 [OS2-01] 転移学習の基礎:異なるタスクの知識を利用するための機械学習の方法
SSII2021 [OS2-01] 転移学習の基礎:異なるタスクの知識を利用するための機械学習の方法
 
Active Learning の基礎と最近の研究
Active Learning の基礎と最近の研究Active Learning の基礎と最近の研究
Active Learning の基礎と最近の研究
 
[DL輪読会]A closer look at few shot classification
[DL輪読会]A closer look at few shot classification[DL輪読会]A closer look at few shot classification
[DL輪読会]A closer look at few shot classification
 
[DL輪読会]NVAE: A Deep Hierarchical Variational Autoencoder
[DL輪読会]NVAE: A Deep Hierarchical Variational Autoencoder[DL輪読会]NVAE: A Deep Hierarchical Variational Autoencoder
[DL輪読会]NVAE: A Deep Hierarchical Variational Autoencoder
 
Crowd Counting & Detection論文紹介
Crowd Counting & Detection論文紹介Crowd Counting & Detection論文紹介
Crowd Counting & Detection論文紹介
 
強化学習と逆強化学習を組み合わせた模倣学習
強化学習と逆強化学習を組み合わせた模倣学習強化学習と逆強化学習を組み合わせた模倣学習
強化学習と逆強化学習を組み合わせた模倣学習
 
Kaggle Happywhaleコンペ優勝解法でのOptuna使用事例 - 2022/12/10 Optuna Meetup #2
Kaggle Happywhaleコンペ優勝解法でのOptuna使用事例 - 2022/12/10 Optuna Meetup #2Kaggle Happywhaleコンペ優勝解法でのOptuna使用事例 - 2022/12/10 Optuna Meetup #2
Kaggle Happywhaleコンペ優勝解法でのOptuna使用事例 - 2022/12/10 Optuna Meetup #2
 
Long-Tailed Classificationの最新動向について
Long-Tailed Classificationの最新動向についてLong-Tailed Classificationの最新動向について
Long-Tailed Classificationの最新動向について
 
[DL輪読会]1次近似系MAMLとその理論的背景
[DL輪読会]1次近似系MAMLとその理論的背景[DL輪読会]1次近似系MAMLとその理論的背景
[DL輪読会]1次近似系MAMLとその理論的背景
 
SSII2022 [SS2] 少ないデータやラベルを効率的に活用する機械学習技術 〜 足りない情報をどのように補うか?〜
SSII2022 [SS2] 少ないデータやラベルを効率的に活用する機械学習技術 〜 足りない情報をどのように補うか?〜SSII2022 [SS2] 少ないデータやラベルを効率的に活用する機械学習技術 〜 足りない情報をどのように補うか?〜
SSII2022 [SS2] 少ないデータやラベルを効率的に活用する機械学習技術 〜 足りない情報をどのように補うか?〜
 
深層学習による非滑らかな関数の推定
深層学習による非滑らかな関数の推定深層学習による非滑らかな関数の推定
深層学習による非滑らかな関数の推定
 
ゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learning
ゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learningゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learning
ゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learning
 
【DL輪読会】Self-Supervised Learning from Images with a Joint-Embedding Predictive...
【DL輪読会】Self-Supervised Learning from Images with a Joint-Embedding Predictive...【DL輪読会】Self-Supervised Learning from Images with a Joint-Embedding Predictive...
【DL輪読会】Self-Supervised Learning from Images with a Joint-Embedding Predictive...
 
SSII2020SS: グラフデータでも深層学習 〜 Graph Neural Networks 入門 〜
SSII2020SS: グラフデータでも深層学習 〜 Graph Neural Networks 入門 〜SSII2020SS: グラフデータでも深層学習 〜 Graph Neural Networks 入門 〜
SSII2020SS: グラフデータでも深層学習 〜 Graph Neural Networks 入門 〜
 
GANの簡単な理解から正しい理解まで
GANの簡単な理解から正しい理解までGANの簡単な理解から正しい理解まで
GANの簡単な理解から正しい理解まで
 

En vedette

集合知第7回
集合知第7回集合知第7回
集合知第7回
Noboru Kano
 
python-twitterを用いたTwitterデータ収集
python-twitterを用いたTwitterデータ収集python-twitterを用いたTwitterデータ収集
python-twitterを用いたTwitterデータ収集
Hikaru Takemura
 

En vedette (12)

Sakusaku svm
Sakusaku svmSakusaku svm
Sakusaku svm
 
集合知第7回
集合知第7回集合知第7回
集合知第7回
 
クラシックな機械学習の入門  5. サポートベクターマシン
クラシックな機械学習の入門  5. サポートベクターマシンクラシックな機械学習の入門  5. サポートベクターマシン
クラシックな機械学習の入門  5. サポートベクターマシン
 
SVM&R with Yaruo!!#2
SVM&R with Yaruo!!#2SVM&R with Yaruo!!#2
SVM&R with Yaruo!!#2
 
とりあえず機械学習をやってみた
とりあえず機械学習をやってみたとりあえず機械学習をやってみた
とりあえず機械学習をやってみた
 
20140705.西野研セミナー
20140705.西野研セミナー20140705.西野研セミナー
20140705.西野研セミナー
 
PythonによるCVアルゴリズム実装
PythonによるCVアルゴリズム実装PythonによるCVアルゴリズム実装
PythonによるCVアルゴリズム実装
 
PyQtではじめるGUIプログラミング
PyQtではじめるGUIプログラミングPyQtではじめるGUIプログラミング
PyQtではじめるGUIプログラミング
 
python-twitterを用いたTwitterデータ収集
python-twitterを用いたTwitterデータ収集python-twitterを用いたTwitterデータ収集
python-twitterを用いたTwitterデータ収集
 
scikit-learnを用いた機械学習チュートリアル
scikit-learnを用いた機械学習チュートリアルscikit-learnを用いた機械学習チュートリアル
scikit-learnを用いた機械学習チュートリアル
 
Scikit learnで学ぶ機械学習入門
Scikit learnで学ぶ機械学習入門Scikit learnで学ぶ機械学習入門
Scikit learnで学ぶ機械学習入門
 
「はじめてでもわかる RandomForest 入門-集団学習による分類・予測 -」 -第7回データマイニング+WEB勉強会@東京
「はじめてでもわかる RandomForest 入門-集団学習による分類・予測 -」 -第7回データマイニング+WEB勉強会@東京「はじめてでもわかる RandomForest 入門-集団学習による分類・予測 -」 -第7回データマイニング+WEB勉強会@東京
「はじめてでもわかる RandomForest 入門-集団学習による分類・予測 -」 -第7回データマイニング+WEB勉強会@東京
 

Similaire à Coreset+SVM (論文紹介)

Jokyonokai130531
Jokyonokai130531Jokyonokai130531
Jokyonokai130531
nwpmq516
 
パターン認識 第12章 正則化とパス追跡アルゴリズム
パターン認識 第12章 正則化とパス追跡アルゴリズムパターン認識 第12章 正則化とパス追跡アルゴリズム
パターン認識 第12章 正則化とパス追跡アルゴリズム
Miyoshi Yuya
 
パターン認識 08 09 k-近傍法 lvq
パターン認識 08 09 k-近傍法 lvqパターン認識 08 09 k-近傍法 lvq
パターン認識 08 09 k-近傍法 lvq
sleipnir002
 
Semi-supervised Active Learning Survey
Semi-supervised Active Learning SurveySemi-supervised Active Learning Survey
Semi-supervised Active Learning Survey
Yo Ehara
 
Cvim tutorial2 03_06_wk77_110220-0546
Cvim tutorial2 03_06_wk77_110220-0546Cvim tutorial2 03_06_wk77_110220-0546
Cvim tutorial2 03_06_wk77_110220-0546
Wataru Kishimoto
 

Similaire à Coreset+SVM (論文紹介) (20)

Jokyonokai130531
Jokyonokai130531Jokyonokai130531
Jokyonokai130531
 
Quantum Support Vector Machine
Quantum Support Vector MachineQuantum Support Vector Machine
Quantum Support Vector Machine
 
パターン認識 第12章 正則化とパス追跡アルゴリズム
パターン認識 第12章 正則化とパス追跡アルゴリズムパターン認識 第12章 正則化とパス追跡アルゴリズム
パターン認識 第12章 正則化とパス追跡アルゴリズム
 
凸最適化 〜 双対定理とソルバーCVXPYの紹介 〜
凸最適化 〜 双対定理とソルバーCVXPYの紹介 〜凸最適化 〜 双対定理とソルバーCVXPYの紹介 〜
凸最適化 〜 双対定理とソルバーCVXPYの紹介 〜
 
Large-Scale Bandit Problems and KWIK Learning
Large-Scale Bandit Problems and KWIK LearningLarge-Scale Bandit Problems and KWIK Learning
Large-Scale Bandit Problems and KWIK Learning
 
第9回スキル養成講座講義資料
第9回スキル養成講座講義資料第9回スキル養成講座講義資料
第9回スキル養成講座講義資料
 
パターン認識 08 09 k-近傍法 lvq
パターン認識 08 09 k-近傍法 lvqパターン認識 08 09 k-近傍法 lvq
パターン認識 08 09 k-近傍法 lvq
 
yyoshida thesis
yyoshida thesisyyoshida thesis
yyoshida thesis
 
第8回 配信講義 計算科学技術特論A(2021)
第8回 配信講義 計算科学技術特論A(2021)第8回 配信講義 計算科学技術特論A(2021)
第8回 配信講義 計算科学技術特論A(2021)
 
210603 yamamoto
210603 yamamoto210603 yamamoto
210603 yamamoto
 
東京都市大学 データ解析入門 6 回帰分析とモデル選択 1
東京都市大学 データ解析入門 6 回帰分析とモデル選択 1東京都市大学 データ解析入門 6 回帰分析とモデル選択 1
東京都市大学 データ解析入門 6 回帰分析とモデル選択 1
 
逐次モンテカルロ法の基礎
逐次モンテカルロ法の基礎逐次モンテカルロ法の基礎
逐次モンテカルロ法の基礎
 
クラシックな機械学習の入門 6. 最適化と学習アルゴリズム
クラシックな機械学習の入門  6. 最適化と学習アルゴリズムクラシックな機械学習の入門  6. 最適化と学習アルゴリズム
クラシックな機械学習の入門 6. 最適化と学習アルゴリズム
 
大規模凸最適化問題に対する勾配法
大規模凸最適化問題に対する勾配法大規模凸最適化問題に対する勾配法
大規模凸最適化問題に対する勾配法
 
Simulation_Report1
Simulation_Report1Simulation_Report1
Simulation_Report1
 
サポートベクターマシン(SVM)の数学をみんなに説明したいだけの会
サポートベクターマシン(SVM)の数学をみんなに説明したいだけの会サポートベクターマシン(SVM)の数学をみんなに説明したいだけの会
サポートベクターマシン(SVM)の数学をみんなに説明したいだけの会
 
第9回 配信講義 計算科学技術特論A(2021)
第9回 配信講義 計算科学技術特論A(2021)第9回 配信講義 計算科学技術特論A(2021)
第9回 配信講義 計算科学技術特論A(2021)
 
Semi-supervised Active Learning Survey
Semi-supervised Active Learning SurveySemi-supervised Active Learning Survey
Semi-supervised Active Learning Survey
 
Cvim tutorial2 03_06_wk77_110220-0546
Cvim tutorial2 03_06_wk77_110220-0546Cvim tutorial2 03_06_wk77_110220-0546
Cvim tutorial2 03_06_wk77_110220-0546
 
数理最適化と機械学習の 融合アプローチ -分類と新しい枠組み-
数理最適化と機械学習の融合アプローチ-分類と新しい枠組み-数理最適化と機械学習の融合アプローチ-分類と新しい枠組み-
数理最適化と機械学習の 融合アプローチ -分類と新しい枠組み-
 

Coreset+SVM (論文紹介)

  • 1. 第7回数理輪講 2012/11/16 16:00- コアセットを用いた SVM学習の高速化 [文献紹介] 情報理工学系研究科 数理言語情報学研究室 M2山田直敬 指導教員: 中川裕志 教授
  • 2. 紹介論文 • 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
  • 3. Why This Paper? • SVMは性能が良いものの、遅い • 高速化のニーズがあり様々な手法が研究 されている • 紹介論文は、問題を全く別の視点から眺 めることで成功している初期の事例 • 定式化も面白い • 機械学習アルゴリズムの高速化は個人的 な研究テーマ 3
  • 4. 発表の流れ • Support Vector Machine (SVM) – カーネルによる高次元化 – SVM は重い。大規模データにスケールしない • Minimum Enclosing Ball (MEB) – コアセットを用いた高速近似解法 • Core Vector Machine – SVMをMEBのアルゴリズムで解く • 実験 – 精度はいい勝負/実行速度が非常に速い • その後の展開 4
  • 5. 目次 • Support Vector Machine (SVM) 機械学習の話 • Minimum Enclosing Ball (MEB) • Core Vector Machine • 実験 • その後の展開 5
  • 6. Support Vector Machine (SVM) 分類問題を解くアルゴリズム 分離超平面 ならば yi = 1 ● 予測: ξj ならば yi = -1 ◯ このような分離平面を求めたい ξi であれば正解 6 http://en.wikipedia.org/wiki/Support_vector_machine
  • 7. Support Vector Machine (SVM) ξj ξi すなわち 損失関数の例 ならば正解 逆に 1 1- となるものにはペナルティを与える するとSVMで超平面を求める問題は、正則化項を加えた損失最小化問題に帰着する. 7 正則化項 損失関数
  • 9. カーネルトリック(1/2) ・写像 φ : x → φ(x) を施した空間でのSVMの最適化問題 変更はここだけ ・次の双対問題を考える 高次元空間での内積 観察: ・主問題の解 w, bは、双対問題の解 αを用いて復元できる. 高次元での内積さえ あればよい。 φの具体形が要らない ・学習後 新たな入力 x を分類するには, 次を計算すれば良い 9
  • 10. カーネルトリック(2/2) ・内積を なるカーネル関数を介して計算すると約束 高次元での内積が 例:ガウシアンカーネル 高速に計算可能に ・すると、双対問題はカーネルを用いて次のように表される ・行列を用いて表すと次の式と等価になる ここで , は要素ごとの積をそれぞれ表す ・カーネルを用いた非線形SVMは α についての(凸)二次計画問題に帰着する 10
  • 11. SVMの計算量 ・αについての凸二次計画問題 通常の内点法を用いると各ステップで Kの逆行列が必要となる データ数をm とすると 、Kは m × m の行列 時間計算量 , 空間計算量 激重 激重 ・機械学習ではデータ数 m が大きい場合がほとんど。内点法を用いた最適化は 実用的には使えない。 ・様々な高速化が提案されている Ex. Chunking, SMO , RSVM ,…. 実験的に time 程度 ・紹介論文では 近似アルゴリズムでprovableに time 11
  • 12. 目次 • Support Vector Machine (SVM) • Minimum Enclosing Ball (MEB) 計算幾何学の話 • Core Vector Machine • 実験 • その後の展開 12
  • 13. Minimum Enclosing Ball (MEB) ・与えられたデータ を R 全て内包するような球のうち、最も半径の小さいものを求 める問題 c ・最適な c , Rをもって と表すことにする ・次元数 d が d > 30 となると厳密解法だと非効率なアルゴリズムとなる ・高次元でのMEBはコアセットを用いた (1 + ε)-近似アルゴリズムが提案されている ・すなわち厳密解を R とすると、任意の ε > 0 に対して (1 + ε) R の解が得られる 13
  • 14. MEBのコアセット ・ がコアセット ⇔ R (1 + ε)R ・コアセット Q のMEBを ε 倍だけ拡大した球が データ全体を含んでいる 14
  • 15. MEBコアセットを求めるアルゴリズム() ・Bãdoiu & Clarkson (2002) [1] • 反復アルゴリズム • S, c, R の初期化 – S0 , c0 , R0 – 適当なデータ z ∈ S を とり, S0 = { z } とする – c0 = z – R0 = 0 15
  • 16. MEBコアセットを求めるアルゴリズム ・Bãdoiu & Clarkson (2002) [1] • 各ステップ 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
  • 17. MEBコアセットを求めるアルゴリズム ・Bãdoiu & Clarkson (2002) [1] • 各ステップ 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
  • 18. MEBコアセットを求めるアルゴリズム ・Bãdoiu & Clarkson (2002) [1] • 各ステップ 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
  • 19. MEBコアセットを求めるアルゴリズム ・Bãdoiu & Clarkson (2002) [1] • 各ステップ 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
  • 20. MEBコアセットを求めるアルゴリズム ・Bãdoiu & Clarkson (2002) [1] • 各ステップ 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
  • 21. MEBコアセットを求めるアルゴリズム ・Bãdoiu & Clarkson (2002) [1] • 各ステップ 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
  • 22. MEBコアセットを求めるアルゴリズム ・Bãdoiu & Clarkson (2002) [1] • 各ステップ 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
  • 23. MEBコアセットを求めるアルゴリズム ・Bãdoiu & Clarkson (2002) [1] • 各ステップ 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
  • 24. MEBコアセットを求めるアルゴリズム ・Bãdoiu & Clarkson (2002) [1] • 各ステップ 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
  • 25. MEBコアセットを求めるアルゴリズム ・Bãdoiu & Clarkson (2002) [1] • 各ステップ 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
  • 26. MEBコアセットを求めるアルゴリズム ・Bãdoiu & Clarkson (2002) [1] • 各ステップ 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
  • 27. MEBコアセットを求めるアルゴリズム • アルゴリズムのステップ数は 1/ ε 回 • コアセットに1個づつ点を追加する • 途中で小さい問題に対するMEBを厳密に 解いている • コアセットの要素数は 1/ε 個 27
  • 28. 目次 • Support Vector Machine (SVM) • Minimum Enclosing Ball (MEB) • Core Vector Machine 本題 • 実験 • その後の展開 28
  • 29. Core Vector Machine (CVM) (1/4) ・MEBの双対問題を考える ・行列で書くと ・なお、双対問題の解 α から c, Rは次のように復元できる 29
  • 30. Core Vector Machine (CVM) [2/4] (MEBの双対) ・ここでKについて一つだけ仮定をおく ・ (定数) ・ これはガウシアンカーネル等様々なカーネルで成り立つ ・すると、 となるのでMEBの双対問題は となる。 同じ構造を持ってる! (SVMの双対) 30
  • 31. Core Vector Machine (CVM) [3/4] ・逆にSVM側から考えると、 (SVMの双対) において, ,where とすれば を得る ・ であることに注意すればSVMは なる空間上でのMEBを解いていることと同じ 31
  • 32. Core Vector Machine (CVM) [4/4] • 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) 小さいQPを解く必要がある ここは既存のSVMソルバ Rt+1 = RMEB(St+1) (SMO)を用いる • εR だけ拡大した球が全ての点を 含めば終了 32
  • 33. Core Vector Machine の理論保証 ・時間計算量 ・空間計算量 ・データ数について”線形” な時間で最適解に近づく ・近似精度と計算量のトレードオフ ・データ数m が大きければ大きいほど効果が絶大 ・実験ではヒューリスティクスを用いてさらなる高速化を図っている 33
  • 34. 目次 • Support Vector Machine (SVM) • Minimum Enclosing Ball (MEB) • Core Vector Machine • 実験 • その後の展開 34
  • 35. 実験1 • ε = 10-6 で他のアルゴリズムと比較 1. forest cover type – データ数 522,911 次元数 54 ・計算時間 データが比較的小さい場合は 既存手法とほとんど同じ データが大きくなると CVMが有利に働く. (データ数50万で約25倍高速化) 35
  • 36. 実験1 • ε = 10-6 で他のアルゴリズムと比較 1. forest cover type – データ数 522,911 次元数 54 ・テスト時の誤差 高速化を実現しながらも、 誤差は他の手法に匹敵している 36
  • 37. 実験2 • ε = 10-6 で他のアルゴリズムと比較 1. UCI adult – データ数 32.561 次元数 123 ・計算時間 データ数が比較的尐ない場合は 既存の手法と比べて時間が かかってしまう 37
  • 38. 実験2 • ε = 10-6 で他のアルゴリズムと比較 1. UCI adult – データ数 32.561 次元数 123 ・テスト時の誤差 既存の手法の中最も良いものと ほとんど変わらない 38
  • 39. Core Vector Machine まとめ • 機械学習の(L2)SVMと計算幾何学のMEBは 双対問題にすれば同じ構造を持っていた • コアセットを用いてMEBを効率的に求め る近似アルゴリズムがSVMにも適用でき る • データ数が多い場合は、精度を保ちつつ、 既存アルゴリズムよりも高速に学習可能 • データ数が尐ない場合には不向き 39
  • 40. CVM その後の展開 • 回帰問題にも応用 – Core Vector Regression [3] ’05 • 小さい問題でMEBを解くところを改良 高 速化 – Ball Vector Machine [3] ‘07 • バッチではなくストリームでCVMを実行 – One Pass SVM [5] ’09 40
  • 41. 参考文献 年代順 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