SlideShare une entreprise Scribd logo
1  sur  21
Télécharger pour lire hors ligne
正則化とパス追跡アルゴリズム

            東京大学 三好雄也



1
はじめに




かなり参考にさせて頂きました
http://sora-blue.net/~shogo82148/memo/algorithm/svm/csvm.html
http://ibisml.org/archive/ibisml001/karasuyama.pdf
                                           問題があれば削除します




 2
SVMの確認
       識別問題      y = sgn(𝑤𝑥 + 𝑏 )
                            𝑤𝑥 + 𝑏 =0

                                        sgn(y) = 1 … y ≧0
                                        sgn(y) =-1 … y < 0


𝑤𝑥 𝑖 + 𝑏 =0 は定数倍しても問題ないので
        ⇒   𝑤𝑥 𝑖 + 𝑏 ≧1 … 𝑦 𝑖 = 1
            𝑤𝑥 𝑖 + 𝑏 ≦ -1    … 𝑦𝑖 = 1
        ⇒   𝑦 𝑖 (𝑤𝑥 𝑖 + 𝑏 )≧1 ←このもとでマージン最大化
    3
ソフトマージン(C-SVM)の復習 1

       線形分離可能ではない場合、以下の式を満たす (w , b) は存
        在しない
         𝑦 𝑖 (𝑤𝑥 𝑖 + 𝑏 ) ≧ 1

                      そこで、
                             𝑦 𝑖 (𝑤𝑥 𝑖 + 𝑏 ) < 1

                      となる場合もペナルティ付きで認
                      めるというのがソフトマージン
          線形分離不可能


    4
ソフトマージン(C-SVM)の復習 2


                       𝑤𝑥 + 𝑏 =0


                                   セ、セーフ?




    はずれ幅 ξ 𝑖 = max{1- 𝑦 𝑖 (𝑤𝑥 𝑖 + 𝑏) ,0}
     ペナルティの大きさC → ペナルティ Cξ 𝑖


5
ソフトマージン(C-SVM)の復習 3

        ペナルティ       Cξ 𝑖 =C×max{1- 𝑦 𝑖 (𝑤𝑥 𝑖 + 𝑏) ,0}



         B                   ξ𝑖 = 0     分離成功
                          0 < ξ𝑖 ≦ 1    Aの場合
    A                        ξ𝑖 > 1     Bの場合(分離失敗)
                    A
                          C → ∞ でハードマージンと同じ
                B



6
ソフトマージン(C-SVM)の復習 4

          ペナルティ      Cξ 𝑖 =C×max{1- 𝑦 𝑖 (𝑤𝑥 𝑖 + 𝑏) ,0}

       目的関数の再定義
                        1       2         𝑛
                    min     𝑤       +C   𝑖=1 ξ 𝑖
                    𝑤,𝑏 2

             s.t.   ξ𝑖 ≧ 0                         …(2)
                    ξ 𝑖 ≧ 1- 𝑦 𝑖 (𝑤𝑥 𝑖 + 𝑏)
つまりはoverfitしないように、Cでパラメータに制約を加えている
感じ・・・なハズです。この仕組みが正則化!


    7
ソフトマージン(C-SVM)の復習 5

    精確に分けたい!

              1       2         𝑛
          min     𝑤       +C   𝑖=1 ξ 𝑖
              2

                                         過学習を防ぎたい!
                                          (正則化項)




8
SVMのパラメータ推定 1

       数式的な部分は省略します。
       結局のところ、ラグランジュ乗数法で最適化問題を解くことに
        より、以下の式と制約条件が導かれます。
                                                                           双対問題
                   1       2+ C      𝑛
             L   =     𝑤            𝑖=1 ξ 𝑖
                   2
                              𝑛                      𝑛
                       -     𝑖=1   𝜆𝑖 ξ𝑖 -          𝑖=1   𝛼 𝑖 (ξ 𝑖 − 1- 𝑦 𝑖 (𝑤𝑥 𝑖 + 𝑏 ))

                            𝑛        1
             ⇔ L=          𝑖=1   𝛼𝑖 -         𝑖,𝑗   𝛼 𝑖 𝛼𝑗 𝑦 𝑖 𝑦𝑗 𝑥 𝑖 𝑥𝑗           …(3)
                                     2

        𝜆 𝑖 について       ただし          𝜆 𝑖 ≧0 , 𝛼 𝑖 ≧0
           最大化
                                                                       𝜆 , 𝛼 はラグランジュ乗数
    9
SVMのパラメータ推定 2

    ラグランジュ乗数法の中で以下の式が現れる。
                         𝑛
               w=       𝑖=1   𝛼 𝑖 𝑦𝑖 𝑥𝑖
                   𝑛
                  𝑖=1   𝛼 𝑖 𝑦 𝑖 =0
                  𝜆 𝑖 + 𝛼 𝑖 =C

    (3)式を最大化し、最適な 𝜆 を求め、以下のようにパラメータ
     w* , b* を求める。
                         𝑛
               w* =     𝑖=1   𝛼 𝑖 𝑦𝑖 𝑥𝑖
                         𝑛
               b* =     𝑖=1   𝛼 𝑖 𝑦𝑖 𝑥𝑖

    10
SVMのパラメータ推定 3

    まとめると、ソフトマージンSVMの場合、以下の制約条件が課
     されるものの基本的にはハードマージンSVMと変わりはない
                𝑛
               𝑖=1   𝛼 𝑖 𝑦 𝑖 =0 , 0≦ 𝛼 𝑖 ≦C

    繰り返しとなるが、ソフトマージンSVMは
              ξ𝑖 = 0     or    C→∞

    で、ハードマージンSVMと等しくなる



    11
補足 1 Φ?
             Φ(𝑥 𝑖 )の Φ ←こいつのことです。

    教科書p120にも書いてありますが、写像を意味します。
    今までは比較的線形で分離しやすい例を用いていたため、 Φは用いてい
     ませんでした。
    しかし、以下のような場合、線形で分離するのはまず無理です。

                     そこで、何らかの変換(写像)を行い、
                     分離しやすい形に直してしまおうとい
                     うのがカーネルの発想です。

                            変換前:入力空間
                            変換後:特徴空間

    12
補足 2 Φ?
    変換によるイメージ




    次元を増やす変換だと(これがカーネル!)




    13   フリーソフトによるデータ解析・マイニング Rとカーネル法・サポートベクターマシンより
パス追跡とは

    Cの値が変わると、判別境界が大きく変わる(図12.1)

    Cの決め方の手順
        → Cの候補を設定 → 交差検証法、ブートストラップ
     しかし、k-交差検証法の場合、計算コストが高くなる
       → パス追跡アルゴリズムにより、いちいち最適問題を
          解かずに最適な C の値を追いかける!
    ただし、機械学習系ではまだ注目を集め始めた段階であり、
     結果も安定しないことから、まだまだ検証が必要な手法?


    14
パス追跡アルゴリズム 1
    初期化      C = 𝐶 𝑚𝑖𝑛
    繰り返し     C = 𝐶 𝑚𝑎𝑥 となるまで以下のStepを繰り返す
    出力       C ∈[𝐶 𝑚𝑖𝑛 , 𝐶 𝑚𝑎𝑥 ] と 𝑓𝑐

              パス追跡                        グリッドサーチ
         𝜆𝑖                          𝜆𝑖
                変化点を求める                     1つずつ最適化




                            C                       C
    15
パス追跡アルゴリズム 2

    Step1:直線の方程式を求める
    Step2:直線の変化点(break point)を見つける

                       学習データを3つに分ける
          C変化で
         境界も変化           1.   L = { i | 𝑦 𝑖 𝑓𝑐 <1}
                         2.   R = { i | 𝑦 𝑖 𝑓𝑐 >1}
                         3.   Ε ⇒ 0≦ 𝛼 𝑖 (C) ≦C

                       それぞれの点の状態が違う状態に移る
           Cが増えると      Cが “break point”
          幅が小さくなる


    16
パス追跡アルゴリズム 3




    イメージ的には csvm.svg を参照
         http://sora-blue.net/~shogo82148/memo/algorithm/svm/csvm.html

    それぞれの点の状態が変化していることが確認できる




    17
パス追跡アルゴリズム in R 1
α の推定値
fit <- svmpath(x, y, kernel.function=radial.kernel, param.kernel=sigma)

x …200×2 の2次元 y …200個のラベル(-1,1)

Svmpath
⇒ fit $ lambda : the value of the regularization parameter …C , 0~45の500弱個
⇒ fit $ alpha : αの値 …200×500弱


計算の高速化
system.time(fit <- svmpath(x,y,kernel.function=radial.kernel,param.kernel=sigma))
system.time(for (i in 1:length(C.list))
           ksvm(x,y,kernel="rbfdot",kpar=list(sigma=sigma),C=C.list[i]))

僕のPCだと
           Cの数…414個 svmpath → 0.11秒 ksvm → 30.01秒でした

   18
パス追跡アルゴリズム in R 2
       dat$x
                 最後のコード(path-svm.r)でも何らか
                 の方法で、カーネル法を用います。


                 ただ、このカーネルにガウシアンカー
                 ネルを用いる場合、 “σ” の値をどうす
                 るかという問題も生じます。


                 そこで、最後のコードではCを100段階
                 に変化させるとともに “σ” の値も10段
                 階で変化させています。

     〇:1   〇:2
19
パス追跡アルゴリズム in R 3
sigma.list <- 1/quantile(dist(x),prob=seq(0.01,0.5,l=20))^2

for (sigma in sigma.list){
           print(sigma)
           err <- c()
           for (j in 1:kcv){
                                                              C-SVM
                        ## k-交差検証法
                        tmpx <- x[idx!=j,]
                        tmpy <- y[idx!=j]
                        fit <- svmpath(tmpx, tmpy,
                                   + kernel.function=radial.kernel, param.kernel=sigma)
                        pred <- predict(fit,x[idx==j,],1/C.list,type="class")
                        err <- rbind(err, colMeans(pred != y[idx==j]))
           }
           cverr <- rbind(cverr,colMeans(err))
}

 20
まとめ


    SVMにおけるパス追跡アルゴリズムとは、交差検証法の計算
     量を軽減することを目的としたものであり、近年、その有効性
     が認識されつつある。
    ただし、最適化問題としては既に確立しているものの、機械
     学習においては統計的性質など研究課題は多い。
    また、値も安定しない。
    なお、パターン認識の本では線形までしか示されていない



    21

Contenu connexe

Tendances

スペクトラルグラフ理論入門
スペクトラルグラフ理論入門スペクトラルグラフ理論入門
スペクトラルグラフ理論入門
irrrrr
 

Tendances (20)

[GTCJ2018]CuPy -NumPy互換GPUライブラリによるPythonでの高速計算- PFN奥田遼介
[GTCJ2018]CuPy -NumPy互換GPUライブラリによるPythonでの高速計算- PFN奥田遼介[GTCJ2018]CuPy -NumPy互換GPUライブラリによるPythonでの高速計算- PFN奥田遼介
[GTCJ2018]CuPy -NumPy互換GPUライブラリによるPythonでの高速計算- PFN奥田遼介
 
【解説】 一般逆行列
【解説】 一般逆行列【解説】 一般逆行列
【解説】 一般逆行列
 
LBFGSの実装
LBFGSの実装LBFGSの実装
LBFGSの実装
 
直交領域探索
直交領域探索直交領域探索
直交領域探索
 
SMO徹底入門 - SVMをちゃんと実装する
SMO徹底入門 - SVMをちゃんと実装するSMO徹底入門 - SVMをちゃんと実装する
SMO徹底入門 - SVMをちゃんと実装する
 
ようやく分かった!最尤推定とベイズ推定
ようやく分かった!最尤推定とベイズ推定ようやく分かった!最尤推定とベイズ推定
ようやく分かった!最尤推定とベイズ推定
 
Graphic Notes on Linear Algebra and Data Science
Graphic Notes on Linear Algebra and Data ScienceGraphic Notes on Linear Algebra and Data Science
Graphic Notes on Linear Algebra and Data Science
 
機械学習のためのベイズ最適化入門
機械学習のためのベイズ最適化入門機械学習のためのベイズ最適化入門
機械学習のためのベイズ最適化入門
 
Variational AutoEncoder
Variational AutoEncoderVariational AutoEncoder
Variational AutoEncoder
 
数学カフェ 確率・統計・機械学習回 「速習 確率・統計」
数学カフェ 確率・統計・機械学習回 「速習 確率・統計」数学カフェ 確率・統計・機械学習回 「速習 確率・統計」
数学カフェ 確率・統計・機械学習回 「速習 確率・統計」
 
機械学習による統計的実験計画(ベイズ最適化を中心に)
機械学習による統計的実験計画(ベイズ最適化を中心に)機械学習による統計的実験計画(ベイズ最適化を中心に)
機械学習による統計的実験計画(ベイズ最適化を中心に)
 
基礎からのベイズ統計学第5章
基礎からのベイズ統計学第5章基礎からのベイズ統計学第5章
基礎からのベイズ統計学第5章
 
スペクトラルグラフ理論入門
スペクトラルグラフ理論入門スペクトラルグラフ理論入門
スペクトラルグラフ理論入門
 
最小カットを使って「燃やす埋める問題」を解く
最小カットを使って「燃やす埋める問題」を解く最小カットを使って「燃やす埋める問題」を解く
最小カットを使って「燃やす埋める問題」を解く
 
Iclr2016 vaeまとめ
Iclr2016 vaeまとめIclr2016 vaeまとめ
Iclr2016 vaeまとめ
 
PRMLの線形回帰モデル(線形基底関数モデル)
PRMLの線形回帰モデル(線形基底関数モデル)PRMLの線形回帰モデル(線形基底関数モデル)
PRMLの線形回帰モデル(線形基底関数モデル)
 
第8章 ガウス過程回帰による異常検知
第8章 ガウス過程回帰による異常検知第8章 ガウス過程回帰による異常検知
第8章 ガウス過程回帰による異常検知
 
『バックドア基準の入門』@統数研研究集会
『バックドア基準の入門』@統数研研究集会『バックドア基準の入門』@統数研研究集会
『バックドア基準の入門』@統数研研究集会
 
ブラックボックス最適化とその応用
ブラックボックス最適化とその応用ブラックボックス最適化とその応用
ブラックボックス最適化とその応用
 
ノンパラベイズ入門の入門
ノンパラベイズ入門の入門ノンパラベイズ入門の入門
ノンパラベイズ入門の入門
 

En vedette

Rによる主成分分析 入門
Rによる主成分分析 入門Rによる主成分分析 入門
Rによる主成分分析 入門
Hiro47
 
パターン認識 第10章 決定木
パターン認識 第10章 決定木 パターン認識 第10章 決定木
パターン認識 第10章 決定木
Miyoshi Yuya
 
パターン認識第9章 学習ベクトル量子化
パターン認識第9章 学習ベクトル量子化パターン認識第9章 学習ベクトル量子化
パターン認識第9章 学習ベクトル量子化
Miyoshi Yuya
 
ベイズ統計入門
ベイズ統計入門ベイズ統計入門
ベイズ統計入門
Miyoshi Yuya
 
正則化つき線形モデル(「入門機械学習第6章」より)
正則化つき線形モデル(「入門機械学習第6章」より)正則化つき線形モデル(「入門機械学習第6章」より)
正則化つき線形モデル(「入門機械学習第6章」より)
Eric Sartre
 
機会学習ハッカソン:ランダムフォレスト
機会学習ハッカソン:ランダムフォレスト機会学習ハッカソン:ランダムフォレスト
機会学習ハッカソン:ランダムフォレスト
Teppei Baba
 

En vedette (18)

SVMについて
SVMについてSVMについて
SVMについて
 
Rによる主成分分析 入門
Rによる主成分分析 入門Rによる主成分分析 入門
Rによる主成分分析 入門
 
パターン認識 第10章 決定木
パターン認識 第10章 決定木 パターン認識 第10章 決定木
パターン認識 第10章 決定木
 
パターン認識第9章 学習ベクトル量子化
パターン認識第9章 学習ベクトル量子化パターン認識第9章 学習ベクトル量子化
パターン認識第9章 学習ベクトル量子化
 
ベイズ統計入門
ベイズ統計入門ベイズ統計入門
ベイズ統計入門
 
決定木学習
決定木学習決定木学習
決定木学習
 
Rによる分類木 入門
Rによる分類木 入門Rによる分類木 入門
Rによる分類木 入門
 
多変量解析
多変量解析多変量解析
多変量解析
 
クラシックな機械学習の入門 3. 線形回帰および識別
クラシックな機械学習の入門 3. 線形回帰および識別クラシックな機械学習の入門 3. 線形回帰および識別
クラシックな機械学習の入門 3. 線形回帰および識別
 
Randomforestで高次元の変数重要度を見る #japanr LT
 Randomforestで高次元の変数重要度を見る #japanr LT Randomforestで高次元の変数重要度を見る #japanr LT
Randomforestで高次元の変数重要度を見る #japanr LT
 
正則化つき線形モデル(「入門機械学習第6章」より)
正則化つき線形モデル(「入門機械学習第6章」より)正則化つき線形モデル(「入門機械学習第6章」より)
正則化つき線形モデル(「入門機械学習第6章」より)
 
Feature Selection with R / in JP
Feature Selection with R / in JPFeature Selection with R / in JP
Feature Selection with R / in JP
 
JAWS-UG CLI専門支部 #67 Amazon Machine Learning 入門
JAWS-UG CLI専門支部 #67 Amazon Machine Learning 入門JAWS-UG CLI専門支部 #67 Amazon Machine Learning 入門
JAWS-UG CLI専門支部 #67 Amazon Machine Learning 入門
 
はじめよう多変量解析~主成分分析編~
はじめよう多変量解析~主成分分析編~はじめよう多変量解析~主成分分析編~
はじめよう多変量解析~主成分分析編~
 
Amazon Machine Learning
Amazon Machine LearningAmazon Machine Learning
Amazon Machine Learning
 
機会学習ハッカソン:ランダムフォレスト
機会学習ハッカソン:ランダムフォレスト機会学習ハッカソン:ランダムフォレスト
機会学習ハッカソン:ランダムフォレスト
 
「はじめてでもわかる RandomForest 入門-集団学習による分類・予測 -」 -第7回データマイニング+WEB勉強会@東京
「はじめてでもわかる RandomForest 入門-集団学習による分類・予測 -」 -第7回データマイニング+WEB勉強会@東京「はじめてでもわかる RandomForest 入門-集団学習による分類・予測 -」 -第7回データマイニング+WEB勉強会@東京
「はじめてでもわかる RandomForest 入門-集団学習による分類・予測 -」 -第7回データマイニング+WEB勉強会@東京
 
多変量解析の授業(駒場キャンパス)の演習で話すために作った資料
多変量解析の授業(駒場キャンパス)の演習で話すために作った資料多変量解析の授業(駒場キャンパス)の演習で話すために作った資料
多変量解析の授業(駒場キャンパス)の演習で話すために作った資料
 

Similaire à パターン認識 第12章 正則化とパス追跡アルゴリズム

競技プログラミングでの線型方程式系
競技プログラミングでの線型方程式系競技プログラミングでの線型方程式系
競技プログラミングでの線型方程式系
tmaehara
 
オンライン凸最適化と線形識別モデル学習の最前線_IBIS2011
オンライン凸最適化と線形識別モデル学習の最前線_IBIS2011オンライン凸最適化と線形識別モデル学習の最前線_IBIS2011
オンライン凸最適化と線形識別モデル学習の最前線_IBIS2011
Preferred Networks
 
Jokyonokai130531
Jokyonokai130531Jokyonokai130531
Jokyonokai130531
nwpmq516
 

Similaire à パターン認識 第12章 正則化とパス追跡アルゴリズム (20)

Quantum Support Vector Machine
Quantum Support Vector MachineQuantum Support Vector Machine
Quantum Support Vector Machine
 
東京都市大学 データ解析入門 6 回帰分析とモデル選択 1
東京都市大学 データ解析入門 6 回帰分析とモデル選択 1東京都市大学 データ解析入門 6 回帰分析とモデル選択 1
東京都市大学 データ解析入門 6 回帰分析とモデル選択 1
 
凸最適化 〜 双対定理とソルバーCVXPYの紹介 〜
凸最適化 〜 双対定理とソルバーCVXPYの紹介 〜凸最適化 〜 双対定理とソルバーCVXPYの紹介 〜
凸最適化 〜 双対定理とソルバーCVXPYの紹介 〜
 
(文献紹介) 画像復元:Plug-and-Play ADMM
(文献紹介) 画像復元:Plug-and-Play ADMM(文献紹介) 画像復元:Plug-and-Play ADMM
(文献紹介) 画像復元:Plug-and-Play ADMM
 
競技プログラミングでの線型方程式系
競技プログラミングでの線型方程式系競技プログラミングでの線型方程式系
競技プログラミングでの線型方程式系
 
データ解析3 最適化の復習
データ解析3 最適化の復習データ解析3 最適化の復習
データ解析3 最適化の復習
 
PRML復々習レーン#3 3.1.3-3.1.5
PRML復々習レーン#3 3.1.3-3.1.5PRML復々習レーン#3 3.1.3-3.1.5
PRML復々習レーン#3 3.1.3-3.1.5
 
RBMを応用した事前学習とDNN学習
RBMを応用した事前学習とDNN学習RBMを応用した事前学習とDNN学習
RBMを応用した事前学習とDNN学習
 
サポートベクターマシン(SVM)の数学をみんなに説明したいだけの会
サポートベクターマシン(SVM)の数学をみんなに説明したいだけの会サポートベクターマシン(SVM)の数学をみんなに説明したいだけの会
サポートベクターマシン(SVM)の数学をみんなに説明したいだけの会
 
自然科学の統計学2.2 slideshare
自然科学の統計学2.2 slideshare自然科学の統計学2.2 slideshare
自然科学の統計学2.2 slideshare
 
オンライン凸最適化と線形識別モデル学習の最前線_IBIS2011
オンライン凸最適化と線形識別モデル学習の最前線_IBIS2011オンライン凸最適化と線形識別モデル学習の最前線_IBIS2011
オンライン凸最適化と線形識別モデル学習の最前線_IBIS2011
 
Jokyonokai130531
Jokyonokai130531Jokyonokai130531
Jokyonokai130531
 
Sized Linear Algebra Package のチュートリアル
Sized Linear Algebra Package のチュートリアルSized Linear Algebra Package のチュートリアル
Sized Linear Algebra Package のチュートリアル
 
6 Info Theory
6 Info Theory6 Info Theory
6 Info Theory
 
コンピュータ先端ガイド2巻3章勉強会(SVM)
コンピュータ先端ガイド2巻3章勉強会(SVM)コンピュータ先端ガイド2巻3章勉強会(SVM)
コンピュータ先端ガイド2巻3章勉強会(SVM)
 
University CodeSprint 4 - Magic value
University CodeSprint 4 - Magic valueUniversity CodeSprint 4 - Magic value
University CodeSprint 4 - Magic value
 
逐次モンテカルロ法の基礎
逐次モンテカルロ法の基礎逐次モンテカルロ法の基礎
逐次モンテカルロ法の基礎
 
Coreset+SVM (論文紹介)
Coreset+SVM (論文紹介)Coreset+SVM (論文紹介)
Coreset+SVM (論文紹介)
 
深層生成モデルを用いたマルチモーダル学習
深層生成モデルを用いたマルチモーダル学習深層生成モデルを用いたマルチモーダル学習
深層生成モデルを用いたマルチモーダル学習
 
[DSO] Machine Learning Seminar Vol.2 Chapter 3
[DSO] Machine Learning Seminar Vol.2 Chapter 3[DSO] Machine Learning Seminar Vol.2 Chapter 3
[DSO] Machine Learning Seminar Vol.2 Chapter 3
 

パターン認識 第12章 正則化とパス追跡アルゴリズム

  • 1. 正則化とパス追跡アルゴリズム 東京大学 三好雄也 1
  • 3. SVMの確認  識別問題 y = sgn(𝑤𝑥 + 𝑏 ) 𝑤𝑥 + 𝑏 =0 sgn(y) = 1 … y ≧0 sgn(y) =-1 … y < 0 𝑤𝑥 𝑖 + 𝑏 =0 は定数倍しても問題ないので ⇒ 𝑤𝑥 𝑖 + 𝑏 ≧1 … 𝑦 𝑖 = 1 𝑤𝑥 𝑖 + 𝑏 ≦ -1 … 𝑦𝑖 = 1 ⇒ 𝑦 𝑖 (𝑤𝑥 𝑖 + 𝑏 )≧1 ←このもとでマージン最大化 3
  • 4. ソフトマージン(C-SVM)の復習 1  線形分離可能ではない場合、以下の式を満たす (w , b) は存 在しない 𝑦 𝑖 (𝑤𝑥 𝑖 + 𝑏 ) ≧ 1 そこで、 𝑦 𝑖 (𝑤𝑥 𝑖 + 𝑏 ) < 1 となる場合もペナルティ付きで認 めるというのがソフトマージン 線形分離不可能 4
  • 5. ソフトマージン(C-SVM)の復習 2 𝑤𝑥 + 𝑏 =0 セ、セーフ? はずれ幅 ξ 𝑖 = max{1- 𝑦 𝑖 (𝑤𝑥 𝑖 + 𝑏) ,0} ペナルティの大きさC → ペナルティ Cξ 𝑖 5
  • 6. ソフトマージン(C-SVM)の復習 3 ペナルティ Cξ 𝑖 =C×max{1- 𝑦 𝑖 (𝑤𝑥 𝑖 + 𝑏) ,0} B ξ𝑖 = 0 分離成功 0 < ξ𝑖 ≦ 1 Aの場合 A ξ𝑖 > 1 Bの場合(分離失敗) A C → ∞ でハードマージンと同じ B 6
  • 7. ソフトマージン(C-SVM)の復習 4 ペナルティ Cξ 𝑖 =C×max{1- 𝑦 𝑖 (𝑤𝑥 𝑖 + 𝑏) ,0}  目的関数の再定義 1 2 𝑛 min 𝑤 +C 𝑖=1 ξ 𝑖 𝑤,𝑏 2 s.t. ξ𝑖 ≧ 0 …(2) ξ 𝑖 ≧ 1- 𝑦 𝑖 (𝑤𝑥 𝑖 + 𝑏) つまりはoverfitしないように、Cでパラメータに制約を加えている 感じ・・・なハズです。この仕組みが正則化! 7
  • 8. ソフトマージン(C-SVM)の復習 5 精確に分けたい! 1 2 𝑛 min 𝑤 +C 𝑖=1 ξ 𝑖 2 過学習を防ぎたい! (正則化項) 8
  • 9. SVMのパラメータ推定 1  数式的な部分は省略します。  結局のところ、ラグランジュ乗数法で最適化問題を解くことに より、以下の式と制約条件が導かれます。 双対問題 1 2+ C 𝑛 L = 𝑤 𝑖=1 ξ 𝑖 2 𝑛 𝑛 - 𝑖=1 𝜆𝑖 ξ𝑖 - 𝑖=1 𝛼 𝑖 (ξ 𝑖 − 1- 𝑦 𝑖 (𝑤𝑥 𝑖 + 𝑏 )) 𝑛 1 ⇔ L= 𝑖=1 𝛼𝑖 - 𝑖,𝑗 𝛼 𝑖 𝛼𝑗 𝑦 𝑖 𝑦𝑗 𝑥 𝑖 𝑥𝑗 …(3) 2 𝜆 𝑖 について ただし 𝜆 𝑖 ≧0 , 𝛼 𝑖 ≧0 最大化 𝜆 , 𝛼 はラグランジュ乗数 9
  • 10. SVMのパラメータ推定 2  ラグランジュ乗数法の中で以下の式が現れる。 𝑛 w= 𝑖=1 𝛼 𝑖 𝑦𝑖 𝑥𝑖 𝑛 𝑖=1 𝛼 𝑖 𝑦 𝑖 =0 𝜆 𝑖 + 𝛼 𝑖 =C  (3)式を最大化し、最適な 𝜆 を求め、以下のようにパラメータ w* , b* を求める。 𝑛 w* = 𝑖=1 𝛼 𝑖 𝑦𝑖 𝑥𝑖 𝑛 b* = 𝑖=1 𝛼 𝑖 𝑦𝑖 𝑥𝑖 10
  • 11. SVMのパラメータ推定 3  まとめると、ソフトマージンSVMの場合、以下の制約条件が課 されるものの基本的にはハードマージンSVMと変わりはない 𝑛 𝑖=1 𝛼 𝑖 𝑦 𝑖 =0 , 0≦ 𝛼 𝑖 ≦C  繰り返しとなるが、ソフトマージンSVMは ξ𝑖 = 0 or C→∞ で、ハードマージンSVMと等しくなる 11
  • 12. 補足 1 Φ? Φ(𝑥 𝑖 )の Φ ←こいつのことです。  教科書p120にも書いてありますが、写像を意味します。  今までは比較的線形で分離しやすい例を用いていたため、 Φは用いてい ませんでした。  しかし、以下のような場合、線形で分離するのはまず無理です。 そこで、何らかの変換(写像)を行い、 分離しやすい形に直してしまおうとい うのがカーネルの発想です。 変換前:入力空間 変換後:特徴空間 12
  • 13. 補足 2 Φ?  変換によるイメージ  次元を増やす変換だと(これがカーネル!) 13 フリーソフトによるデータ解析・マイニング Rとカーネル法・サポートベクターマシンより
  • 14. パス追跡とは  Cの値が変わると、判別境界が大きく変わる(図12.1)  Cの決め方の手順 → Cの候補を設定 → 交差検証法、ブートストラップ しかし、k-交差検証法の場合、計算コストが高くなる → パス追跡アルゴリズムにより、いちいち最適問題を 解かずに最適な C の値を追いかける!  ただし、機械学習系ではまだ注目を集め始めた段階であり、 結果も安定しないことから、まだまだ検証が必要な手法? 14
  • 15. パス追跡アルゴリズム 1  初期化 C = 𝐶 𝑚𝑖𝑛  繰り返し C = 𝐶 𝑚𝑎𝑥 となるまで以下のStepを繰り返す  出力 C ∈[𝐶 𝑚𝑖𝑛 , 𝐶 𝑚𝑎𝑥 ] と 𝑓𝑐 パス追跡 グリッドサーチ 𝜆𝑖 𝜆𝑖 変化点を求める 1つずつ最適化 C C 15
  • 16. パス追跡アルゴリズム 2  Step1:直線の方程式を求める  Step2:直線の変化点(break point)を見つける 学習データを3つに分ける C変化で 境界も変化 1. L = { i | 𝑦 𝑖 𝑓𝑐 <1} 2. R = { i | 𝑦 𝑖 𝑓𝑐 >1} 3. Ε ⇒ 0≦ 𝛼 𝑖 (C) ≦C それぞれの点の状態が違う状態に移る Cが増えると Cが “break point” 幅が小さくなる 16
  • 17. パス追跡アルゴリズム 3  イメージ的には csvm.svg を参照 http://sora-blue.net/~shogo82148/memo/algorithm/svm/csvm.html  それぞれの点の状態が変化していることが確認できる 17
  • 18. パス追跡アルゴリズム in R 1 α の推定値 fit <- svmpath(x, y, kernel.function=radial.kernel, param.kernel=sigma) x …200×2 の2次元 y …200個のラベル(-1,1) Svmpath ⇒ fit $ lambda : the value of the regularization parameter …C , 0~45の500弱個 ⇒ fit $ alpha : αの値 …200×500弱 計算の高速化 system.time(fit <- svmpath(x,y,kernel.function=radial.kernel,param.kernel=sigma)) system.time(for (i in 1:length(C.list)) ksvm(x,y,kernel="rbfdot",kpar=list(sigma=sigma),C=C.list[i])) 僕のPCだと Cの数…414個 svmpath → 0.11秒 ksvm → 30.01秒でした 18
  • 19. パス追跡アルゴリズム in R 2 dat$x 最後のコード(path-svm.r)でも何らか の方法で、カーネル法を用います。 ただ、このカーネルにガウシアンカー ネルを用いる場合、 “σ” の値をどうす るかという問題も生じます。 そこで、最後のコードではCを100段階 に変化させるとともに “σ” の値も10段 階で変化させています。 〇:1 〇:2 19
  • 20. パス追跡アルゴリズム in R 3 sigma.list <- 1/quantile(dist(x),prob=seq(0.01,0.5,l=20))^2 for (sigma in sigma.list){ print(sigma) err <- c() for (j in 1:kcv){ C-SVM ## k-交差検証法 tmpx <- x[idx!=j,] tmpy <- y[idx!=j] fit <- svmpath(tmpx, tmpy, + kernel.function=radial.kernel, param.kernel=sigma) pred <- predict(fit,x[idx==j,],1/C.list,type="class") err <- rbind(err, colMeans(pred != y[idx==j])) } cverr <- rbind(cverr,colMeans(err)) } 20
  • 21. まとめ  SVMにおけるパス追跡アルゴリズムとは、交差検証法の計算 量を軽減することを目的としたものであり、近年、その有効性 が認識されつつある。  ただし、最適化問題としては既に確立しているものの、機械 学習においては統計的性質など研究課題は多い。  また、値も安定しない。  なお、パターン認識の本では線形までしか示されていない 21