Upgrade to Pro — share decks privately, control downloads, hide ads and more …

One-Class Support Vector Machine (OCSVM) で外れ値・外...

One-Class Support Vector Machine (OCSVM) で外れ値・外れサンプルを検出したりデータ密度を推定したりしよう!

One-Class SVM (OCSVM) とは?
SVMのおさらい:マージン最大化
SVMのおさらい:サポートベクター
SVMのおさらい:スラック変数の導入
SVMのおさらい:最小化する関数
OCSVMの考え方
原点からの距離で大丈夫?
高次元空間で考える
マージンの最大化
原点付近にサンプルがあるときは?
一緒に最小化
重み w と b を求める
偏微分して0
二次計画問題
直線の式を求める
G の変形
カーネル関数の例
OCSVMのまとめ
OCSVMの使い方
ν, γ の決め方

Hiromasa Kaneko

April 28, 2018
Tweet

More Decks by Hiromasa Kaneko

Other Decks in Technology

Transcript

  1. One-Class SVM (OCSVM) とは︖ サポートベクターマシン (Support Vector Machine, SVM) を

    領域推定問題に応用した⼿法 SVM では2つのクラス (1のクラス・-1のクラス) があったが、 OCSVM では1クラスだけ (すべてのサンプルが同じクラス) データ密度を連続的に推定できる カーネルトリックにより非線形に拡張可能 外れ値検出・外れサンプル検出や、モデルの適用範囲の設定に 応用される • https://datachemeng.com/outlierdetection/ • https://datachemeng.com/numberofsamplesad/ 1
  2. SVMのおさらい︓マージン最大化 2 x1 x2 クラス1 クラス-1 マージンを最大化するように 判別関数を決める︕ 2 2

    1 2 2 2 w w = + w マージン = (点と直線との距離で計算) 1 2 1 1 2 2 ( , ) f x x w x w x b b = + + = + xw
  3. SVMのおさらい︓スラック変数の導⼊ 4 x1 x2 スラック変数 ξ を導⼊︕ ξi > 1

    0 < ξi < 1 ξi = 0 サンプルごとの ξi の和 を最小化 1 n i i ξ =  n: モデル構築用 サンプル数
  4. SVMのおさらい︓最小化する関数  ||w|| / 2 の最小化 → 計算の都合上、 ||w||2 /

    2 の最小化  ξi の和の最小化 5 C : 2つの項のバランスを決める係数 x(i): i 番目のサンプルの説明変数 y(i): i 番目のサンプルの値 (1 もしくは -1) 2 1 1 2 n i i C ξ = +  w の最小化 ただし、 ( ) ( ) ( ) 0, 1 i i i i y f ξ ξ ≥ ≥ − x
  5. OCSVMの考え方 6 x1 x2 原点からの距離 (マージン) を 最大化するように直線を決める︕ 2 2

    1 2 b b w w = + w マージン = (原点と直線との距離で計算) ( ) ( ) 1 2 1 1 2 2 , 0 f x x w x w x b b b = + − = − > xw 0 サポートベクター
  6. ⾼次元空間で考える 8 (x1 ) (x2 ) 原点からの距離 (マージン) を 最大化するように直線を決める︕

    2 2 1 2 b b w w = + w マージン = (原点と直線との距離で計算) ( ) ( ) ( ) ( ) ( ) ( ) ( ) 1 2 1 1 2 2 , 0 f x x w x w x b b b φ φ φ φ φ = + − = − > x w 0 サポートベクター SVMと同様に、カーネルトリックにより そのものを考える必要はなくなる
  7. 原点付近にサンプルがあるときは︖ 10 (x1 ) (x2 ) 0 スラック変数 ξ を導⼊︕

    ξi > 0 ξi = 0 サンプルごとの ξi の和 を最小化 1 n i i ξ =  n: サンプル数
  8. 一緒に最小化 11 2 1 1 1 2 n i i

    b ξ nν = − +  w の最小化 重みを 1 nν という形でおいたのは、 あとで分かりやすくなるため ただし、 0 i ξ ≥ ( ) ( ) i i b ξ φ ≥ − x w ν (ニュー) の範囲は、0 < ν ≤ 1 x(i) : i 番目のサンプルの説明変数
  9. 重み w と b を求める Lagrangeの未定乗数法 • ラグランジュ乗数ξi 、βi (i=1,

    2, ..., n) を導⼊ 12 ( ) ( ) { } 2 1 1 1 1 1 2 n n n i i i i i i i i i G ξ b b ξ ξ n α φ β ν = = = = + − − − + −    w w x w、b、ξi に関してGを最小化し、ξi 、βi に関してGを最大化 w、b、ξi に関してGが極小 G をw、b、ξi それぞれで偏微分して 0 とする
  10. 偏微分して0 13 ( ) ( ) 1 n i i

    i α φ = =  w x ( ) 1 1, 2, , i i i n n α β ν + = = … 1 1 n i i α = =  G を w で偏微分して0 G を b で偏微分して0 G を ξi で偏微分して0 これらを使って G を変形すると・・・ ( ) ( ) ( ) ( )T 1 1 1 2 n n i j i j i j G α α φ φ = = =  x x また、 1 , 0 i i i n α β β ν + = ≥ より、 1 0 i n α ν ≤ ≤
  11. 二次計画問題 14 制約 G を ξi に対して最大化する二次計画問題を解くと ξi が求まる のもとで、

    ( ) ( )T ( ) 1 n i i i i y α φ = =  w x w が求まる 1 0 i n α ν ≤ ≤ 1 1 n i i α = =  ( ) ( ) ( ) ( )T 1 1 1 2 n n i j i j i j G α α φ φ = = =  x x
  12. 直線の式を求める 15 ( ) ( ) ( ) 1 (

    ) , n i i i f b K b φ α = = − = −  x x w x x ( ) ( ) ( ) S 1 S 1 , n i j i j i b K n α ∈ = =  x x S : サポートベクターの集合 nS : サポートベクターの個数 ( ) ( ) ( )T ( ) ( ) ( ) ( ) , i j i j K φ φ = x x x x K︓カーネル関数 カーネルトリックについてはこちら: https://datachemeng.com/supportvectormachine/
  13. G の変形 16 ( )( ) ( ) ( )

    ( ) ( ) ( ) 1 1 1 1 1 , 2 n n i j i i j j i j n n i i i i i i i G K y α α α α ε α α α α ∗ ∗ = = ∗ ∗ = = = − − − − + + −    x x ( ) ( ) ( )T ( ) ( ) ( ) ( ) , i j i j K φ φ = x x x x K︓カーネル関数 カーネルトリックについてはこちら
  14. カーネル関数の例 線形カーネル ガウシアンカーネル (使われることが多い) 多項式カーネル 17 ( ) ( )

    ( ) ( ) ( )T , i j i j K = x x x x ( ) ( ) 2 ( ) ( ) 2 ( ) ( ) ( ) ( ) 2 , exp exp 2 i j i j i j K γ σ   −   = − = − −     x x x x x x ( ) ( ) ( ) ( ) ( ) ( )T , 1 d i j i j K λ = + x x x x
  15. OCSVMのまとめ Support Vector Machine (SVM) [1] を領域推定問題に応用 18 0 写像

    Φ 元に 戻す x1 x2 f (x) = 0 x1 x2 f (x) = 0 [1] V.N. Vapnik, The nature of statistical learning theory, Springer, New York, 1999. ( ) ( ) ( ) 1 , n i i i f K b α = = −  x x x ( ) ( ) ( ) ( ) ( ) ( ) ( ) 2 ( ) , =exp T i i i i K γ = − − x x x x x x φ φ カーネル関数
  16. ν, γ の決め方 グラム⾏列 (すべてのサンプルの間でカーネル関数を計算した⾏列) の 分散が最大になるように γ を最適化する •

    グラム⾏列がばらついていたほうがデータセットをよく表現できるため • γ の候補の例: 2-20, 2-19, …, 29, 210 ν = 0.003 などとする • ν は外れ値の割合の下限、といった意味合いをもつ • ある変数が正規分布に従うとき、平均値から標準偏差の何倍かの 範囲内にサンプルがある確率は決まる。1 からその確率を引くと、 外れサンプルになる確率になる ⁃ (平均値 ± 標準偏差) 内にサンプルがある確率 : およそ 68.3 % → ν = 1 − 0.683 = 0.317 ⁃ (平均値 ± 2×標準偏差) 内にサンプルがある確率 : およそ 95.5 % → ν = 1 − 0.955 = 0.045 ⁃ (平均値 ± 3×標準偏差) 内にサンプルがある確率 : およそ 99.7% → ν = 1 − 0.997 = 0.003 • 結果が不適切であったときは、 ν を変えて検討する 20