SlideShare uma empresa Scribd logo
1 de 46
Baixar para ler offline
SVMについて



             インキュベーションL)
   発表者 : 服部 (インキュベーション )
                  2010/06/04
Text Classification の仕方
           modelization                          learning
                                                              C1
      tn
…




 t2                       x1 , c1,        Φ( x | c1,)         C2
t1
                          x2 , c2         Φ( x | c2,)




                                                               …
                                                               …
                                                               …
                                                               …
                            …
                            …
                            …
                            …




                                               …
                                               …
                                               …
                                               …
                          xn, cn          Φ( x | cj,)         Cn-1
               モデル化                  学習                 判別


                                                              Cn

                     不変特徴空間                判別特徴空
                                                             属性集合
                     (ベクトル空間)             (ベクトル空間)
Text model : Bag of words
            ・ 単語の詰まった鞄。(BOW表現ともいう。)
            ・ 単語辞書を使って文章を数値化すること。



      dictionary     Text 1

0:   Best                     Drug …Best… Flower    1 1 0 1
1:   Drug
2:   Congratuation   Text 2
3:   Flower
                              Drug…Congratuation…   0 1 1 0


            ・ n-gramモデル、構文木モデルもある。
Text model : Feature Selection
   ・ stop word や 意味のない特徴を使わない。
   ・ 方法


          頻度    単語の登場数でソートして、上位、下位数%を切る。



                           χ2 = ∑
                                          (x − x )2
     χ二乗統計量
                                      x      x

                                                       p(t , c)
      相互情報量        I ( x, c) = ∑∑ p (t , c) log
                              t   c                   P(t ) P(c)


              二乗統計量と 相互情報量は   きいモノ 特徴として採用する
                                モノを  として採用する。
           * χ二乗統計量と、相互情報量は値の大きいモノを特徴として採用する。
Learn : Many Method
   ・ 正直たくさんありすぎて良く分からない。
   ・ 学習器の特徴を把握した上で、学習対象ごとに適宜手法を変える。



              Bayes系        K-NN


        決定木                     Neural Network



      線形識別器                         Max entropy



        Logstic 回帰                 SVM
                     Boosting
Learn : example 1


                     SVM                KNN




1000 sample

                    決定木           Logistic regression




 Naïve Bayes   Bayesian Network      NB + 決定木
Learn : example 2


                     SVM                KNN




1000 sample

                    決定木           Logistic regression




 Naïve Bayes   Bayesian Network      NB + 決定木
Learn : example 3


                     SVM                KNN




 352 sample

                    決定木           Logistic regression




 Naïve Bayes   Bayesian Network      NB + 決定木
Learn : example 4


                     SVM                KNN




 172 sample

                    決定木           Logistic regression




 Naïve Bayes   Bayesian Network      NB + 決定木
Current my status for text-classification :
   ・ model : Bag of Words
   ・ Feature Selection : 相互情報量
   ・ Learning : bayes系 + Boosting




           Next step

             Learning → SVM
Agenda
1 SVMについて

2 SVMの学習方法

3 SVMの判別方法

4 SVMの多値分類

5 まとめ
Agenda
1 SVMについて

2 SVMの学習方法

3 SVMの判別方法

4 SVMの多値分類

5 まとめ
What is SVM ?
   ・ Support Vector Machine
   ・ 線形識別器に最大マージン化の概念を組み合わせたもの。
   ・ 高い精度
       - 大半のデータセットで state of art
   ・ 学習が遅い。スケールしない。
        ( 最近は一部する ? )
   ・ 判別が遅い場合がある。
   ・ 研究が非常に盛ん
   ・ 各種著名なOSSライブラリ有
          -   SVM-Light
          -   LIBSVM
          -   SVM-struct
          -   SVM-pref
          -   LIBLINER
線形識別器とは?
 ・ 2値 [ -1 ,1 ] 判別
 ・ 特徴空間に、学習データを2分するような面を引くイメージ
 ・ 面の法線 W を学習する。



                     w
線形識別器の問題
 ・ 解が一意に定まらない。

 ・ アルゴリズムが収束するとは限らない。 (線形分離不可)
    - データ間に明確な境界が引ける場合のみ有効
SVM の 利点
  ・ SVM は線形識別器の問題を全て解決


      - 一意な最適解が求まる
           - 最大マージン分類器


      - 線形分離不可な問題にも対応可
           - ソフトマージン化
           - カーネル法




       判別能力の高い学習器を実現
最大マージン
•   最大マージン条件を施すと分離平面が一意に定まる


    マージンd := 境界から最短位置のベクトル同士の間隔

                                           yi = −1
           d
           d                 d
       d


                   yi = +1
                                 w⋅x = 0


    マージンd が最大の面は一つしかない。
Condition Of Max Margin
          w
                                                       d = a1 + a2
                                    yi = +1
    x2                                                      w ⋅ (x1 − b) w ⋅ (x 2 − b)
                    b                                     =             −
                         a1         x1                           w            w
               a2                                           w ⋅ x1 − w ⋅ x 2
                                                          =
                                d                                  w
yi = −1                                                     2
                                                          =
      w ⋅ x 2 = −1          w⋅x = 0       w ⋅ x1 = 1        w

                      2                                       1                       2
              arg max                                  arg min w
                  w   w                                   w   2
          ( st yi w ⋅x i > 1 i = 0L n)                 ( st yi w ⋅x i > 1 i = 0L n)
Soft Margin SVM
  ・ 線形分離不可の場合は、大人しくデータの完全分離を諦める。
  ・ はみ出しを許容するが、その総和は極力 小さくしたい。


             ∑ξi
                     i    ( ξi ≥ 0 )

  ・ 最大マージン分類器の変更

          1                               1
                                   arg min w + C ∑ ξ (w ) i
                         2                  2
   arg min w
      w   2                           w   2      i

( st yi w ⋅x i > 1 i = 0 L n)     ( st yi w ⋅x i > 1 − ξ i , ξ i > 0, i = 0L n)

                                         C : ソフトマージンパラメータ
Kernel Trick
  •   学習データ x を高次元に変換して分離しやすくする。
  •   高次元に変換する関数φをカーネル関数という




               φ
Kernel Function
   •    入力ベクトル x を下記のカーネル関数で変換*

       - RBFカーネル                            xi − x j
                                                       2

                                        −
              φ ( xi ) ⋅ φ (x j ) = e         σ2



       - 多項式カーネル
              φ ( x i ) ⋅ φ ( x j ) = (o + g x i ⋅ x j ) d

       - sigmoid カーネル
              φ ( x i ) ⋅ φ ( x j ) = tanh(a x i ⋅ x j − b)
                                *実際は変換はせず、内積の変換だけする。
非線形 SVM
  ・ xをカーネル関数φ(x)で高次元化

              1
       arg min w + C ∑ ξ (w ) i
                2
                                                            C : soft margin
          w   2      i
                                                                 parameter

        ( st yi w ⋅x i > 1 − ξ i , ξ i > 0, i = 0L n)



   非線形SVM
              1
       arg min w + C ∑ ξ (w ) i
                2

          w   2      i

     ( st yi w ⋅ ϕ (x i ) > 1 − ξ i , ξ i > 0, i = 0 L n)
Agenda
1 SVMについて

2 SVMの学習方法

3 SVMの判別方法

4 SVMの多値分類

5 まとめ
SVM Solver

・ duality (双対性)
                         1
      min W (w ) W (w ) = w + C ∑ ξ (w ) i
                           2

       w                 2      i

          ( st ∀i yi w ⋅ ϕ (x i ) > 1 − ξ i , ξ i > 0 )




                                1 T
         min f (α )     f (α ) = α Qα − eT α
          α                     2
         ( st ∀i 0 ≤ α i ≤ C , ∑ y i α i = 0 )
                                    Q ij = yi y jφ ( xi )φ ( x j ) , ei = 1
・ svm-light , SMO
         ∂f
             = Qα − e = 0
         ∂α
        ( 0 ≤ α i ≤ C , ∑ yiα i = 0 )

        ○ αを2個だけ更新する場合
               → SMO


        ○ αを複数更新する場合
            → SVM-light
SMO Solver
                                  (ms)

○ Platt (1999)
         → Heuristic
○ Keerthi (2000)
         → violating pair
○ Chen and Lin (2005)
         → violating pair
            (second order)
         → shrinking


・ SMOの計算オーダー ( n2d )
                                         Training binary spam data
  if n=120,000 d = 10000 ?                        at ameba
                                         (spam:3061 normal:1954)
  → 30 * 30 * 5 * 3(sec) ≒ 225 (min)
                                          (learn:4004 query:1011)
                                               feature ~2000
・ 大規模でなければできなくもない?
Other SVM Solver




   n : 学習データ数, d : 特徴数, s : 1データ辺りの平均特徴数
   ρ: 収束許容値,    λ: svm正規化param

   ・ 最近はオンライン手法が主流
        Pegasos, FOLOS
   ・ 近似手法(cvm)、線形only(LIBLINEAR)の手法も盛ん。

      → 飛躍的に速度が改善
Agenda
1 SVMについて

2 SVMの学習方法

3 SVMの判別方法

4 SVMの多値分類

5 まとめ
SVM Classifier
    ・ svmは非線形カーネルを使用した場合に非常に遅い

      (ms)




                      Ameba Spma data
                      1011件を判定
                      Svm : RBF カーネルを使用
・ Bayesの計算量は入力ベクトルの単語数に比例

  Bayes

          f (x) = p (c)∑ p ( xi | c)
                                              n

                            i∈x

                    1       ( if f (x | c) > f (x | c ) )
          S ( x) = 
                    −1               ( else )


・ SVMの計算量はSV数に比例 (SV数はデータが総数に概ね比例)

  SVM
          f ( x) =   ∑ w φ (x )
                     i∈SV
                            i     i   •   φ ( x)

                    1 (if f (x) > 0)
          S ( x) = 
                    − 1 (if f (x) <= 0)
・ 線形の場合はBayesと同オーダーの速度になる。


 線形SVM(カーネル無)                                     非線形SVM (RBF)

f ( x) =   ∑ w φ (x )
           i∈SV
                  i   i   •   φ ( x)   f ( x) =   ∑ w φ (x )
                                                  i∈SV
                                                         i        i        •   φ ( x)

           ∑ wi xi • x
                                                                           2
      =                                                      −
                                                                 xi − x

           i∈SV                              =    ∑ wi e          σ2


           ∑∑ wi xi [s] x[s]
                                                  i∈SV
      =                                                                2        2
                                                                 x i + x − 2 x i ⋅x
           i∈SV s∈S                                          −

                         
                                             =    ∑ wi e                       σ2

      = ∑  ∑ wi x i [ s]  x[ s ]                i∈SV
                                                                                    2                 2
        s∈S  i∈SV                                              ∑ x i [ s ] + ∑ x[ s ]                   −2   ∑ xi [ s ]⋅x[ s ]
                                                                 s∈S                    s∈S                    s∈S
                                                             −
                                             =    ∑we                                         σ   2

                  事前計算可 大半はゼロ                     i∈SV
                                                         i




                                                             事前計算不可
・ 一般的に非線形SVMの判別はSVの数に引きずられて遅い
  が、例外もある。

2次の多項式カーネル ( expand quadratic kernel )

 f ( x) =   ∑ w φ (x )
            i∈SV
                   i   i   •   φ ( x)

       =    ∑ wi (o + x i • x) 2
            i∈SV

                                                                            
       =     ∑
            i∈SV
                 wi o 2 + 2 o∑  ∑ wi x i [ s ]  x[ s ] + ∑  ∑ wi x i [ s ]2  x[ s]2
                             s∈S  i∈SV                   s∈S  i∈SV          
                                                   k −1
                                               k
                                                                                      
                                        +2    ∑∑             ∑ (wi x i [ s ] x i [h])  x[ s ] x[h]
                                             h = s +1 s = 0  i∈SV                     


   * 事前計算可能 → 計算時間がSVの数に比例しない
     (入力ベクトルの特徴数の2乗に比例)

  *特徴数の2乗を記憶する必要有 要変数選択
・ その他の高速化

多項式カーネル + 転置Index

  1 事前にSVの転置Index ( I ) を作成しておく。
  2 クエリ x の特徴成分 xi を含むSVの集合をAをIを用いて獲得する。
  3 以下を計算して判別


      f ( x) =   ∑ w φ (x )
                 i∈SV
                        i   i   •   φ ( x)

            =    ∑ wi (o + x i • x) 2
                 i∈SV

            =      ∑ wi o 2 + ∑ wi (o + x i • x) 2
                 i∈SV − A       i∈A
・ 各手法の速度比 ( ameba spam data : 判別数 : 1011件 )
    (ms)




・ 精度
              SVM(RBF) : 91.30%
              SVM(Poly) : 89.81%
              NaiveBayes : 85.36%



 速度重視なら 2次多項式カーネル(expand quadratic )が良い。
Agenda
1 SVMについて

2 SVMの学習方法

3 SVMの判別方法

4 SVMの多値分類

5 まとめ
Multi Class SVM
   ・ SVMは2値の判別器だが、工夫次第で多値分類もできる。

   ・ 代表的なのは下記の4種類

       ・ One Against All
       ・ One Against One (voting)
       ・ Pairwise coupling
       ・ Listwise


   ・ 上から二つ目まで紹介
One Against All
          ・ T個のクラスのデータがある場合に、あるクラスAとそれ以外
           (補集合)で2値化したデータをT個作成しれそれぞれ学習
          ・ 判別時は fC_i (x) ( c_i ( i= { 0 … T} ) ) を計算して、最もス
            コアが高いクラスに判別する。



              1
D1(svm)            D1
                   D2

                   D3
                   D4
             -1             C_1

                                                        C_2
One Against All
          ・ T個のクラスのデータがある場合に、あるクラスAとそれ以外
           (補集合)で2値化したデータをT個作成しれそれぞれ学習
          ・ 判別時は fC_i (x) ( c_i ( i= { 0 … T} ) ) を計算して、最もス
            コアが高いクラスに判別する。



              1
                   D1
D2(svm)            D2

                   D3
                   D4
             -1             C_1

                                                        C_2
One Against All
          ・ T個のクラスのデータがある場合に、あるクラスAとそれ以外
           (補集合)で2値化したデータをT個作成しれそれぞれ学習
          ・ 判別時は fC_i (x) ( c_i ( i= { 0 … T} ) ) を計算して、最もス
            コアが高いクラスに判別する。



              1
                   D1
                   D2

D3(svm)            D3
                   D4
             -1             C_1

                                                        C_2
One Against All
          ・ T個のクラスのデータがある場合に、あるクラスAとそれ以外
           (補集合)で2値化したデータをT個作成しれそれぞれ学習
          ・ 判別時は fC_i (x) ( c_i ( i= { 0 … T} ) ) を計算して、最もス
            コアが高いクラスに判別する。



             -1
                   D1
                   D2

                   D3
D4(svm)            D4
              1             C_1

                                                        C_2
One Against One (voting)
  ・ T個のクラスのデータがある場合に、全てのクラスの組み合
    わせ ( = T (T-1) / 2 ) の学習データを作成する。


  ・ 判別時は fC_i,j (x) ( i ≠j ∈ { 0 … T } ) を計算して、最多勝
    クラスを判別クラスとする。


  ・ クラス数が増えると、激しく遅い。
Test
    ・ Data Set : News20
            class       :    20
            learning    :    15,935
            query       :    3993
            feature     :    62061 ( average per data 75 )


    ・ learning time ( by Chen And Lin SMO )
 (ms)                                     (ms)




                       N/A                                   N/A
・ classifier time




・ precision

                    SVM(RBF) : 79.94%
                    SVM(Poly) : 82.21%
                    NaiveBayes : 63.83%
Discussion
  One Against One ( voting )

  ・ クラス数が多い場合votingやcouplingが実用的ではなさそう。



  One Against All

  ・ 実用的にはこちら。

  ・ 特徴が62061もあっても、Expand Quadratic 法 は優位性がある。
    (変数選択すれば劇的に速くなりそう。)
Agenda
1 SVMについて

2 SVMの学習方法

3 SVMの判別方法

4 SVMの多値分類

5 まとめ
Conclusion
  ・ SVMは線形識別器を発展させたモノ。
  ・ SVMは精度が高い。
  ・ SVMは学習が遅くてスケールしない。
  ・ 判別も非線形の時は遅い。多値分類は更に遅い。
  ・ 以下の対策を打てばなんとか実用( text multi-classification )の
    範囲内で利用可能だと思われる。(私見)

         モデル化 → ・ 変数選択
         学習     → ・ オンライン実装
                       - Pegasos, FLOS
                   ・ カーネル
                      - 2次の多項式カーネル
         判別     → ・ expand quadratic kernel
         多値     → ・ One Against All

Mais conteúdo relacionado

Mais procurados

はじめてのパターン認識8章サポートベクトルマシン
はじめてのパターン認識8章サポートベクトルマシンはじめてのパターン認識8章サポートベクトルマシン
はじめてのパターン認識8章サポートベクトルマシンNobuyukiTakayasu
 
クラシックな機械学習の入門 3. 線形回帰および識別
クラシックな機械学習の入門 3. 線形回帰および識別クラシックな機械学習の入門 3. 線形回帰および識別
クラシックな機械学習の入門 3. 線形回帰および識別Hiroshi Nakagawa
 
コンピュータ先端ガイド2巻3章勉強会(SVM)
コンピュータ先端ガイド2巻3章勉強会(SVM)コンピュータ先端ガイド2巻3章勉強会(SVM)
コンピュータ先端ガイド2巻3章勉強会(SVM)Masaya Kaneko
 
機械学習と深層学習の数理
機械学習と深層学習の数理機械学習と深層学習の数理
機械学習と深層学習の数理Ryo Nakamura
 
今さら聞けないカーネル法とサポートベクターマシン
今さら聞けないカーネル法とサポートベクターマシン今さら聞けないカーネル法とサポートベクターマシン
今さら聞けないカーネル法とサポートベクターマシンShinya Shimizu
 
Crfと素性テンプレート
Crfと素性テンプレートCrfと素性テンプレート
Crfと素性テンプレートKei Uchiumi
 
Let's Simulate a Quantum Computer with Pretty Scala
Let's Simulate a Quantum Computer with Pretty ScalaLet's Simulate a Quantum Computer with Pretty Scala
Let's Simulate a Quantum Computer with Pretty ScalaTakatomo Torigoe
 
パターン認識 05 ロジスティック回帰
パターン認識 05 ロジスティック回帰パターン認識 05 ロジスティック回帰
パターン認識 05 ロジスティック回帰sleipnir002
 
はじめてのパターン認識8章 サポートベクトルマシン
はじめてのパターン認識8章 サポートベクトルマシンはじめてのパターン認識8章 サポートベクトルマシン
はじめてのパターン認識8章 サポートベクトルマシンNobuyukiTakayasu
 
2012-06-15-トピックを考慮したソーシャルネットワーク上の情報拡散モデル
2012-06-15-トピックを考慮したソーシャルネットワーク上の情報拡散モデル2012-06-15-トピックを考慮したソーシャルネットワーク上の情報拡散モデル
2012-06-15-トピックを考慮したソーシャルネットワーク上の情報拡散モデルYuya Yoshikawa
 
クラシックな機械学習の入門 6. 最適化と学習アルゴリズム
クラシックな機械学習の入門  6. 最適化と学習アルゴリズムクラシックな機械学習の入門  6. 最適化と学習アルゴリズム
クラシックな機械学習の入門 6. 最適化と学習アルゴリズムHiroshi Nakagawa
 
行列およびテンソルデータに対する機械学習(数理助教の会 2011/11/28)
行列およびテンソルデータに対する機械学習(数理助教の会 2011/11/28)行列およびテンソルデータに対する機械学習(数理助教の会 2011/11/28)
行列およびテンソルデータに対する機械学習(数理助教の会 2011/11/28)ryotat
 
パターン認識と機械学習6章(カーネル法)
パターン認識と機械学習6章(カーネル法)パターン認識と機械学習6章(カーネル法)
パターン認識と機械学習6章(カーネル法)Yukara Ikemiya
 
はじめてのパターン認識 第8章 サポートベクトルマシン
はじめてのパターン認識 第8章 サポートベクトルマシンはじめてのパターン認識 第8章 サポートベクトルマシン
はじめてのパターン認識 第8章 サポートベクトルマシンMotoya Wakiyama
 
TokyoNLP#7 きれいなジャイアンのカカカカ☆カーネル法入門-C++
TokyoNLP#7 きれいなジャイアンのカカカカ☆カーネル法入門-C++TokyoNLP#7 きれいなジャイアンのカカカカ☆カーネル法入門-C++
TokyoNLP#7 きれいなジャイアンのカカカカ☆カーネル法入門-C++sleepy_yoshi
 
Infinite SVM - ICML 2011 読み会
Infinite SVM - ICML 2011 読み会Infinite SVM - ICML 2011 読み会
Infinite SVM - ICML 2011 読み会Shuyo Nakatani
 
2値分類・多クラス分類
2値分類・多クラス分類2値分類・多クラス分類
2値分類・多クラス分類t dev
 

Mais procurados (20)

PRML chapter7
PRML chapter7PRML chapter7
PRML chapter7
 
はじめてのパターン認識8章サポートベクトルマシン
はじめてのパターン認識8章サポートベクトルマシンはじめてのパターン認識8章サポートベクトルマシン
はじめてのパターン認識8章サポートベクトルマシン
 
クラシックな機械学習の入門 3. 線形回帰および識別
クラシックな機械学習の入門 3. 線形回帰および識別クラシックな機械学習の入門 3. 線形回帰および識別
クラシックな機械学習の入門 3. 線形回帰および識別
 
Relative attributes
Relative attributesRelative attributes
Relative attributes
 
PRML chapter5
PRML chapter5PRML chapter5
PRML chapter5
 
コンピュータ先端ガイド2巻3章勉強会(SVM)
コンピュータ先端ガイド2巻3章勉強会(SVM)コンピュータ先端ガイド2巻3章勉強会(SVM)
コンピュータ先端ガイド2巻3章勉強会(SVM)
 
機械学習と深層学習の数理
機械学習と深層学習の数理機械学習と深層学習の数理
機械学習と深層学習の数理
 
今さら聞けないカーネル法とサポートベクターマシン
今さら聞けないカーネル法とサポートベクターマシン今さら聞けないカーネル法とサポートベクターマシン
今さら聞けないカーネル法とサポートベクターマシン
 
Crfと素性テンプレート
Crfと素性テンプレートCrfと素性テンプレート
Crfと素性テンプレート
 
Let's Simulate a Quantum Computer with Pretty Scala
Let's Simulate a Quantum Computer with Pretty ScalaLet's Simulate a Quantum Computer with Pretty Scala
Let's Simulate a Quantum Computer with Pretty Scala
 
パターン認識 05 ロジスティック回帰
パターン認識 05 ロジスティック回帰パターン認識 05 ロジスティック回帰
パターン認識 05 ロジスティック回帰
 
はじめてのパターン認識8章 サポートベクトルマシン
はじめてのパターン認識8章 サポートベクトルマシンはじめてのパターン認識8章 サポートベクトルマシン
はじめてのパターン認識8章 サポートベクトルマシン
 
2012-06-15-トピックを考慮したソーシャルネットワーク上の情報拡散モデル
2012-06-15-トピックを考慮したソーシャルネットワーク上の情報拡散モデル2012-06-15-トピックを考慮したソーシャルネットワーク上の情報拡散モデル
2012-06-15-トピックを考慮したソーシャルネットワーク上の情報拡散モデル
 
クラシックな機械学習の入門 6. 最適化と学習アルゴリズム
クラシックな機械学習の入門  6. 最適化と学習アルゴリズムクラシックな機械学習の入門  6. 最適化と学習アルゴリズム
クラシックな機械学習の入門 6. 最適化と学習アルゴリズム
 
行列およびテンソルデータに対する機械学習(数理助教の会 2011/11/28)
行列およびテンソルデータに対する機械学習(数理助教の会 2011/11/28)行列およびテンソルデータに対する機械学習(数理助教の会 2011/11/28)
行列およびテンソルデータに対する機械学習(数理助教の会 2011/11/28)
 
パターン認識と機械学習6章(カーネル法)
パターン認識と機械学習6章(カーネル法)パターン認識と機械学習6章(カーネル法)
パターン認識と機械学習6章(カーネル法)
 
はじめてのパターン認識 第8章 サポートベクトルマシン
はじめてのパターン認識 第8章 サポートベクトルマシンはじめてのパターン認識 第8章 サポートベクトルマシン
はじめてのパターン認識 第8章 サポートベクトルマシン
 
TokyoNLP#7 きれいなジャイアンのカカカカ☆カーネル法入門-C++
TokyoNLP#7 きれいなジャイアンのカカカカ☆カーネル法入門-C++TokyoNLP#7 きれいなジャイアンのカカカカ☆カーネル法入門-C++
TokyoNLP#7 きれいなジャイアンのカカカカ☆カーネル法入門-C++
 
Infinite SVM - ICML 2011 読み会
Infinite SVM - ICML 2011 読み会Infinite SVM - ICML 2011 読み会
Infinite SVM - ICML 2011 読み会
 
2値分類・多クラス分類
2値分類・多クラス分類2値分類・多クラス分類
2値分類・多クラス分類
 

Semelhante a お披露目会05/2010

オンライン凸最適化と線形識別モデル学習の最前線_IBIS2011
オンライン凸最適化と線形識別モデル学習の最前線_IBIS2011オンライン凸最適化と線形識別モデル学習の最前線_IBIS2011
オンライン凸最適化と線形識別モデル学習の最前線_IBIS2011Preferred Networks
 
Infinite SVM [改] - ICML 2011 読み会
Infinite SVM [改] - ICML 2011 読み会Infinite SVM [改] - ICML 2011 読み会
Infinite SVM [改] - ICML 2011 読み会Shuyo Nakatani
 
Datamining 5th Knn
Datamining 5th KnnDatamining 5th Knn
Datamining 5th Knnsesejun
 
8.4 グラフィカルモデルによる推論
8.4 グラフィカルモデルによる推論8.4 グラフィカルモデルによる推論
8.4 グラフィカルモデルによる推論sleepy_yoshi
 
Jokyonokai
JokyonokaiJokyonokai
Jokyonokainwpmq516
 
Jokyonokai
JokyonokaiJokyonokai
Jokyonokainwpmq516
 
東京都市大学 データ解析入門 6 回帰分析とモデル選択 1
東京都市大学 データ解析入門 6 回帰分析とモデル選択 1東京都市大学 データ解析入門 6 回帰分析とモデル選択 1
東京都市大学 データ解析入門 6 回帰分析とモデル選択 1hirokazutanaka
 
Quantum Support Vector Machine
Quantum Support Vector MachineQuantum Support Vector Machine
Quantum Support Vector MachineYuma Nakamura
 
Datamining 5th knn
Datamining 5th knnDatamining 5th knn
Datamining 5th knnsesejun
 
Rで学ぶデータサイエンス第13章(ミニマックス確率マシン)
Rで学ぶデータサイエンス第13章(ミニマックス確率マシン)Rで学ぶデータサイエンス第13章(ミニマックス確率マシン)
Rで学ぶデータサイエンス第13章(ミニマックス確率マシン)Daisuke Yoneoka
 
パターン認識 04 混合正規分布
パターン認識 04 混合正規分布パターン認識 04 混合正規分布
パターン認識 04 混合正規分布sleipnir002
 
パターン認識第9章 学習ベクトル量子化
パターン認識第9章 学習ベクトル量子化パターン認識第9章 学習ベクトル量子化
パターン認識第9章 学習ベクトル量子化Miyoshi Yuya
 
パターン認識と機械学習 §6.2 カーネル関数の構成
パターン認識と機械学習 §6.2 カーネル関数の構成パターン認識と機械学習 §6.2 カーネル関数の構成
パターン認識と機械学習 §6.2 カーネル関数の構成Prunus 1350
 
パターン認識 第12章 正則化とパス追跡アルゴリズム
パターン認識 第12章 正則化とパス追跡アルゴリズムパターン認識 第12章 正則化とパス追跡アルゴリズム
パターン認識 第12章 正則化とパス追跡アルゴリズムMiyoshi Yuya
 
論文紹介 Semi-supervised Learning with Deep Generative Models
論文紹介 Semi-supervised Learning with Deep Generative Models論文紹介 Semi-supervised Learning with Deep Generative Models
論文紹介 Semi-supervised Learning with Deep Generative ModelsSeiya Tokui
 

Semelhante a お披露目会05/2010 (20)

オンライン凸最適化と線形識別モデル学習の最前線_IBIS2011
オンライン凸最適化と線形識別モデル学習の最前線_IBIS2011オンライン凸最適化と線形識別モデル学習の最前線_IBIS2011
オンライン凸最適化と線形識別モデル学習の最前線_IBIS2011
 
6 Info Theory
6 Info Theory6 Info Theory
6 Info Theory
 
bigdata2012ml okanohara
bigdata2012ml okanoharabigdata2012ml okanohara
bigdata2012ml okanohara
 
Re revenge chap03-1
Re revenge chap03-1Re revenge chap03-1
Re revenge chap03-1
 
Infinite SVM [改] - ICML 2011 読み会
Infinite SVM [改] - ICML 2011 読み会Infinite SVM [改] - ICML 2011 読み会
Infinite SVM [改] - ICML 2011 読み会
 
Datamining 5th Knn
Datamining 5th KnnDatamining 5th Knn
Datamining 5th Knn
 
8.4 グラフィカルモデルによる推論
8.4 グラフィカルモデルによる推論8.4 グラフィカルモデルによる推論
8.4 グラフィカルモデルによる推論
 
線形計画法入門
線形計画法入門線形計画法入門
線形計画法入門
 
Jokyonokai
JokyonokaiJokyonokai
Jokyonokai
 
Jokyonokai
JokyonokaiJokyonokai
Jokyonokai
 
東京都市大学 データ解析入門 6 回帰分析とモデル選択 1
東京都市大学 データ解析入門 6 回帰分析とモデル選択 1東京都市大学 データ解析入門 6 回帰分析とモデル選択 1
東京都市大学 データ解析入門 6 回帰分析とモデル選択 1
 
Quantum Support Vector Machine
Quantum Support Vector MachineQuantum Support Vector Machine
Quantum Support Vector Machine
 
Datamining 5th knn
Datamining 5th knnDatamining 5th knn
Datamining 5th knn
 
Rで学ぶデータサイエンス第13章(ミニマックス確率マシン)
Rで学ぶデータサイエンス第13章(ミニマックス確率マシン)Rで学ぶデータサイエンス第13章(ミニマックス確率マシン)
Rで学ぶデータサイエンス第13章(ミニマックス確率マシン)
 
パターン認識 04 混合正規分布
パターン認識 04 混合正規分布パターン認識 04 混合正規分布
パターン認識 04 混合正規分布
 
パターン認識第9章 学習ベクトル量子化
パターン認識第9章 学習ベクトル量子化パターン認識第9章 学習ベクトル量子化
パターン認識第9章 学習ベクトル量子化
 
パターン認識と機械学習 §6.2 カーネル関数の構成
パターン認識と機械学習 §6.2 カーネル関数の構成パターン認識と機械学習 §6.2 カーネル関数の構成
パターン認識と機械学習 §6.2 カーネル関数の構成
 
パターン認識 第12章 正則化とパス追跡アルゴリズム
パターン認識 第12章 正則化とパス追跡アルゴリズムパターン認識 第12章 正則化とパス追跡アルゴリズム
パターン認識 第12章 正則化とパス追跡アルゴリズム
 
論文紹介 Semi-supervised Learning with Deep Generative Models
論文紹介 Semi-supervised Learning with Deep Generative Models論文紹介 Semi-supervised Learning with Deep Generative Models
論文紹介 Semi-supervised Learning with Deep Generative Models
 
Chapter2.3.6
Chapter2.3.6Chapter2.3.6
Chapter2.3.6
 

Mais de JAVA DM

Matrix Factorizationを使った評価予測
Matrix Factorizationを使った評価予測Matrix Factorizationを使った評価予測
Matrix Factorizationを使った評価予測JAVA DM
 
MP Joinを使った類似データ抽出
MP Joinを使った類似データ抽出MP Joinを使った類似データ抽出
MP Joinを使った類似データ抽出JAVA DM
 
芸能人推薦のしくみ
芸能人推薦のしくみ芸能人推薦のしくみ
芸能人推薦のしくみJAVA DM
 
20100930sig startups learn
20100930sig startups learn20100930sig startups learn
20100930sig startups learnJAVA DM
 
双対定理
双対定理双対定理
双対定理JAVA DM
 
整数列圧縮
整数列圧縮整数列圧縮
整数列圧縮JAVA DM
 
NewPFD PForDelta
NewPFD PForDeltaNewPFD PForDelta
NewPFD PForDeltaJAVA DM
 
NaiveBayes+DAEM
NaiveBayes+DAEMNaiveBayes+DAEM
NaiveBayes+DAEMJAVA DM
 
lsh p-stable
lsh p-stablelsh p-stable
lsh p-stableJAVA DM
 

Mais de JAVA DM (9)

Matrix Factorizationを使った評価予測
Matrix Factorizationを使った評価予測Matrix Factorizationを使った評価予測
Matrix Factorizationを使った評価予測
 
MP Joinを使った類似データ抽出
MP Joinを使った類似データ抽出MP Joinを使った類似データ抽出
MP Joinを使った類似データ抽出
 
芸能人推薦のしくみ
芸能人推薦のしくみ芸能人推薦のしくみ
芸能人推薦のしくみ
 
20100930sig startups learn
20100930sig startups learn20100930sig startups learn
20100930sig startups learn
 
双対定理
双対定理双対定理
双対定理
 
整数列圧縮
整数列圧縮整数列圧縮
整数列圧縮
 
NewPFD PForDelta
NewPFD PForDeltaNewPFD PForDelta
NewPFD PForDelta
 
NaiveBayes+DAEM
NaiveBayes+DAEMNaiveBayes+DAEM
NaiveBayes+DAEM
 
lsh p-stable
lsh p-stablelsh p-stable
lsh p-stable
 

Último

PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000Shota Ito
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
プレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツールプレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツールsugiuralab
 
プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価sugiuralab
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxAtomu Hidaka
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directoryosamut
 

Último (8)

PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
 
プレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツールプレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツール
 
プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
 

お披露目会05/2010

  • 1. SVMについて インキュベーションL) 発表者 : 服部 (インキュベーション ) 2010/06/04
  • 2. Text Classification の仕方 modelization learning C1 tn … t2 x1 , c1, Φ( x | c1,) C2 t1 x2 , c2 Φ( x | c2,) … … … … … … … … … … … … xn, cn Φ( x | cj,) Cn-1 モデル化 学習 判別 Cn 不変特徴空間 判別特徴空 属性集合 (ベクトル空間) (ベクトル空間)
  • 3. Text model : Bag of words ・ 単語の詰まった鞄。(BOW表現ともいう。) ・ 単語辞書を使って文章を数値化すること。 dictionary Text 1 0: Best Drug …Best… Flower 1 1 0 1 1: Drug 2: Congratuation Text 2 3: Flower Drug…Congratuation… 0 1 1 0 ・ n-gramモデル、構文木モデルもある。
  • 4. Text model : Feature Selection ・ stop word や 意味のない特徴を使わない。 ・ 方法 頻度 単語の登場数でソートして、上位、下位数%を切る。 χ2 = ∑ (x − x )2 χ二乗統計量 x x p(t , c) 相互情報量 I ( x, c) = ∑∑ p (t , c) log t c P(t ) P(c) 二乗統計量と 相互情報量は きいモノ 特徴として採用する モノを として採用する。 * χ二乗統計量と、相互情報量は値の大きいモノを特徴として採用する。
  • 5. Learn : Many Method ・ 正直たくさんありすぎて良く分からない。 ・ 学習器の特徴を把握した上で、学習対象ごとに適宜手法を変える。 Bayes系 K-NN 決定木 Neural Network 線形識別器 Max entropy Logstic 回帰 SVM Boosting
  • 6. Learn : example 1 SVM KNN 1000 sample 決定木 Logistic regression Naïve Bayes Bayesian Network NB + 決定木
  • 7. Learn : example 2 SVM KNN 1000 sample 決定木 Logistic regression Naïve Bayes Bayesian Network NB + 決定木
  • 8. Learn : example 3 SVM KNN 352 sample 決定木 Logistic regression Naïve Bayes Bayesian Network NB + 決定木
  • 9. Learn : example 4 SVM KNN 172 sample 決定木 Logistic regression Naïve Bayes Bayesian Network NB + 決定木
  • 10. Current my status for text-classification : ・ model : Bag of Words ・ Feature Selection : 相互情報量 ・ Learning : bayes系 + Boosting Next step Learning → SVM
  • 11. Agenda 1 SVMについて 2 SVMの学習方法 3 SVMの判別方法 4 SVMの多値分類 5 まとめ
  • 12. Agenda 1 SVMについて 2 SVMの学習方法 3 SVMの判別方法 4 SVMの多値分類 5 まとめ
  • 13. What is SVM ? ・ Support Vector Machine ・ 線形識別器に最大マージン化の概念を組み合わせたもの。 ・ 高い精度 - 大半のデータセットで state of art ・ 学習が遅い。スケールしない。 ( 最近は一部する ? ) ・ 判別が遅い場合がある。 ・ 研究が非常に盛ん ・ 各種著名なOSSライブラリ有 - SVM-Light - LIBSVM - SVM-struct - SVM-pref - LIBLINER
  • 14. 線形識別器とは? ・ 2値 [ -1 ,1 ] 判別 ・ 特徴空間に、学習データを2分するような面を引くイメージ ・ 面の法線 W を学習する。 w
  • 15. 線形識別器の問題 ・ 解が一意に定まらない。 ・ アルゴリズムが収束するとは限らない。 (線形分離不可) - データ間に明確な境界が引ける場合のみ有効
  • 16. SVM の 利点 ・ SVM は線形識別器の問題を全て解決 - 一意な最適解が求まる - 最大マージン分類器 - 線形分離不可な問題にも対応可 - ソフトマージン化 - カーネル法 判別能力の高い学習器を実現
  • 17. 最大マージン • 最大マージン条件を施すと分離平面が一意に定まる マージンd := 境界から最短位置のベクトル同士の間隔 yi = −1 d d d d yi = +1 w⋅x = 0 マージンd が最大の面は一つしかない。
  • 18. Condition Of Max Margin w d = a1 + a2 yi = +1 x2 w ⋅ (x1 − b) w ⋅ (x 2 − b) b = − a1 x1 w w a2 w ⋅ x1 − w ⋅ x 2 = d w yi = −1 2 = w ⋅ x 2 = −1 w⋅x = 0 w ⋅ x1 = 1 w 2 1 2 arg max arg min w w w w 2 ( st yi w ⋅x i > 1 i = 0L n) ( st yi w ⋅x i > 1 i = 0L n)
  • 19. Soft Margin SVM ・ 線形分離不可の場合は、大人しくデータの完全分離を諦める。 ・ はみ出しを許容するが、その総和は極力 小さくしたい。 ∑ξi i ( ξi ≥ 0 ) ・ 最大マージン分類器の変更 1 1 arg min w + C ∑ ξ (w ) i 2 2 arg min w w 2 w 2 i ( st yi w ⋅x i > 1 i = 0 L n) ( st yi w ⋅x i > 1 − ξ i , ξ i > 0, i = 0L n) C : ソフトマージンパラメータ
  • 20. Kernel Trick • 学習データ x を高次元に変換して分離しやすくする。 • 高次元に変換する関数φをカーネル関数という φ
  • 21. Kernel Function • 入力ベクトル x を下記のカーネル関数で変換* - RBFカーネル xi − x j 2 − φ ( xi ) ⋅ φ (x j ) = e σ2 - 多項式カーネル φ ( x i ) ⋅ φ ( x j ) = (o + g x i ⋅ x j ) d - sigmoid カーネル φ ( x i ) ⋅ φ ( x j ) = tanh(a x i ⋅ x j − b) *実際は変換はせず、内積の変換だけする。
  • 22. 非線形 SVM ・ xをカーネル関数φ(x)で高次元化 1 arg min w + C ∑ ξ (w ) i 2 C : soft margin w 2 i parameter ( st yi w ⋅x i > 1 − ξ i , ξ i > 0, i = 0L n) 非線形SVM 1 arg min w + C ∑ ξ (w ) i 2 w 2 i ( st yi w ⋅ ϕ (x i ) > 1 − ξ i , ξ i > 0, i = 0 L n)
  • 23. Agenda 1 SVMについて 2 SVMの学習方法 3 SVMの判別方法 4 SVMの多値分類 5 まとめ
  • 24. SVM Solver ・ duality (双対性) 1 min W (w ) W (w ) = w + C ∑ ξ (w ) i 2 w 2 i ( st ∀i yi w ⋅ ϕ (x i ) > 1 − ξ i , ξ i > 0 ) 1 T min f (α ) f (α ) = α Qα − eT α α 2 ( st ∀i 0 ≤ α i ≤ C , ∑ y i α i = 0 ) Q ij = yi y jφ ( xi )φ ( x j ) , ei = 1
  • 25. ・ svm-light , SMO ∂f = Qα − e = 0 ∂α ( 0 ≤ α i ≤ C , ∑ yiα i = 0 ) ○ αを2個だけ更新する場合 → SMO ○ αを複数更新する場合 → SVM-light
  • 26. SMO Solver (ms) ○ Platt (1999) → Heuristic ○ Keerthi (2000) → violating pair ○ Chen and Lin (2005) → violating pair (second order) → shrinking ・ SMOの計算オーダー ( n2d ) Training binary spam data if n=120,000 d = 10000 ? at ameba (spam:3061 normal:1954) → 30 * 30 * 5 * 3(sec) ≒ 225 (min) (learn:4004 query:1011) feature ~2000 ・ 大規模でなければできなくもない?
  • 27. Other SVM Solver n : 学習データ数, d : 特徴数, s : 1データ辺りの平均特徴数 ρ: 収束許容値, λ: svm正規化param ・ 最近はオンライン手法が主流 Pegasos, FOLOS ・ 近似手法(cvm)、線形only(LIBLINEAR)の手法も盛ん。 → 飛躍的に速度が改善
  • 28. Agenda 1 SVMについて 2 SVMの学習方法 3 SVMの判別方法 4 SVMの多値分類 5 まとめ
  • 29. SVM Classifier ・ svmは非線形カーネルを使用した場合に非常に遅い (ms) Ameba Spma data 1011件を判定 Svm : RBF カーネルを使用
  • 30. ・ Bayesの計算量は入力ベクトルの単語数に比例 Bayes f (x) = p (c)∑ p ( xi | c) n i∈x  1 ( if f (x | c) > f (x | c ) ) S ( x) =   −1 ( else ) ・ SVMの計算量はSV数に比例 (SV数はデータが総数に概ね比例) SVM f ( x) = ∑ w φ (x ) i∈SV i i • φ ( x)  1 (if f (x) > 0) S ( x) =   − 1 (if f (x) <= 0)
  • 31. ・ 線形の場合はBayesと同オーダーの速度になる。 線形SVM(カーネル無) 非線形SVM (RBF) f ( x) = ∑ w φ (x ) i∈SV i i • φ ( x) f ( x) = ∑ w φ (x ) i∈SV i i • φ ( x) ∑ wi xi • x 2 = − xi − x i∈SV = ∑ wi e σ2 ∑∑ wi xi [s] x[s] i∈SV = 2 2 x i + x − 2 x i ⋅x i∈SV s∈S −   = ∑ wi e σ2 = ∑  ∑ wi x i [ s]  x[ s ] i∈SV 2 2 s∈S  i∈SV  ∑ x i [ s ] + ∑ x[ s ] −2 ∑ xi [ s ]⋅x[ s ] s∈S s∈S s∈S − = ∑we σ 2 事前計算可 大半はゼロ i∈SV i 事前計算不可
  • 32. ・ 一般的に非線形SVMの判別はSVの数に引きずられて遅い が、例外もある。 2次の多項式カーネル ( expand quadratic kernel ) f ( x) = ∑ w φ (x ) i∈SV i i • φ ( x) = ∑ wi (o + x i • x) 2 i∈SV     = ∑ i∈SV wi o 2 + 2 o∑  ∑ wi x i [ s ]  x[ s ] + ∑  ∑ wi x i [ s ]2  x[ s]2 s∈S  i∈SV  s∈S  i∈SV  k −1 k   +2 ∑∑  ∑ (wi x i [ s ] x i [h])  x[ s ] x[h] h = s +1 s = 0  i∈SV  * 事前計算可能 → 計算時間がSVの数に比例しない (入力ベクトルの特徴数の2乗に比例) *特徴数の2乗を記憶する必要有 要変数選択
  • 33. ・ その他の高速化 多項式カーネル + 転置Index 1 事前にSVの転置Index ( I ) を作成しておく。 2 クエリ x の特徴成分 xi を含むSVの集合をAをIを用いて獲得する。 3 以下を計算して判別 f ( x) = ∑ w φ (x ) i∈SV i i • φ ( x) = ∑ wi (o + x i • x) 2 i∈SV = ∑ wi o 2 + ∑ wi (o + x i • x) 2 i∈SV − A i∈A
  • 34. ・ 各手法の速度比 ( ameba spam data : 判別数 : 1011件 ) (ms) ・ 精度 SVM(RBF) : 91.30% SVM(Poly) : 89.81% NaiveBayes : 85.36% 速度重視なら 2次多項式カーネル(expand quadratic )が良い。
  • 35. Agenda 1 SVMについて 2 SVMの学習方法 3 SVMの判別方法 4 SVMの多値分類 5 まとめ
  • 36. Multi Class SVM ・ SVMは2値の判別器だが、工夫次第で多値分類もできる。 ・ 代表的なのは下記の4種類 ・ One Against All ・ One Against One (voting) ・ Pairwise coupling ・ Listwise ・ 上から二つ目まで紹介
  • 37. One Against All ・ T個のクラスのデータがある場合に、あるクラスAとそれ以外 (補集合)で2値化したデータをT個作成しれそれぞれ学習 ・ 判別時は fC_i (x) ( c_i ( i= { 0 … T} ) ) を計算して、最もス コアが高いクラスに判別する。 1 D1(svm) D1 D2 D3 D4 -1 C_1 C_2
  • 38. One Against All ・ T個のクラスのデータがある場合に、あるクラスAとそれ以外 (補集合)で2値化したデータをT個作成しれそれぞれ学習 ・ 判別時は fC_i (x) ( c_i ( i= { 0 … T} ) ) を計算して、最もス コアが高いクラスに判別する。 1 D1 D2(svm) D2 D3 D4 -1 C_1 C_2
  • 39. One Against All ・ T個のクラスのデータがある場合に、あるクラスAとそれ以外 (補集合)で2値化したデータをT個作成しれそれぞれ学習 ・ 判別時は fC_i (x) ( c_i ( i= { 0 … T} ) ) を計算して、最もス コアが高いクラスに判別する。 1 D1 D2 D3(svm) D3 D4 -1 C_1 C_2
  • 40. One Against All ・ T個のクラスのデータがある場合に、あるクラスAとそれ以外 (補集合)で2値化したデータをT個作成しれそれぞれ学習 ・ 判別時は fC_i (x) ( c_i ( i= { 0 … T} ) ) を計算して、最もス コアが高いクラスに判別する。 -1 D1 D2 D3 D4(svm) D4 1 C_1 C_2
  • 41. One Against One (voting) ・ T個のクラスのデータがある場合に、全てのクラスの組み合 わせ ( = T (T-1) / 2 ) の学習データを作成する。 ・ 判別時は fC_i,j (x) ( i ≠j ∈ { 0 … T } ) を計算して、最多勝 クラスを判別クラスとする。 ・ クラス数が増えると、激しく遅い。
  • 42. Test ・ Data Set : News20 class : 20 learning : 15,935 query : 3993 feature : 62061 ( average per data 75 ) ・ learning time ( by Chen And Lin SMO ) (ms) (ms) N/A N/A
  • 43. ・ classifier time ・ precision SVM(RBF) : 79.94% SVM(Poly) : 82.21% NaiveBayes : 63.83%
  • 44. Discussion One Against One ( voting ) ・ クラス数が多い場合votingやcouplingが実用的ではなさそう。 One Against All ・ 実用的にはこちら。 ・ 特徴が62061もあっても、Expand Quadratic 法 は優位性がある。 (変数選択すれば劇的に速くなりそう。)
  • 45. Agenda 1 SVMについて 2 SVMの学習方法 3 SVMの判別方法 4 SVMの多値分類 5 まとめ
  • 46. Conclusion ・ SVMは線形識別器を発展させたモノ。 ・ SVMは精度が高い。 ・ SVMは学習が遅くてスケールしない。 ・ 判別も非線形の時は遅い。多値分類は更に遅い。 ・ 以下の対策を打てばなんとか実用( text multi-classification )の 範囲内で利用可能だと思われる。(私見) モデル化 → ・ 変数選択 学習 → ・ オンライン実装 - Pegasos, FLOS ・ カーネル - 2次の多項式カーネル 判別 → ・ expand quadratic kernel 多値 → ・ One Against All