one-class support vector machine ocsvm...one-class svm (ocsvm) とは...
TRANSCRIPT
One-Class Support Vector MachineOCSVM
0
明治大学 理⼯学部 応用化学科データ化学⼯学研究室 ⾦⼦ 弘昌
One-Class SVM (OCSVM) とは︖サポートベクターマシン (Support Vector Machine, SVM) を
領域推定問題に応用した⼿法
SVM では2つのクラス (1のクラス・-1のクラス) があったが、OCSVM では1クラスだけ (すべてのサンプルが同じクラス)
データ密度を連続的に推定できる
カーネルトリックにより非線形に拡張可能
外れ値検出・外れサンプル検出や、モデルの適用範囲の設定に応用される
• https://datachemeng.com/outlierdetection/• https://datachemeng.com/numberofsamplesad/
1
SVMのおさらい︓マージン最大化 2
x1
x2
クラス1
クラス-1
マージンを最大化するように判別関数を決める︕
2 21 2
2 2
w w=
+wマージン =
(点と直線との距離で計算)
1 2 1 1 2 2( , )f x x w x w x b
b
= + += +xw
SVMのおさらい︓サポートベクター 3
x1
x2
クラス1
クラス-1
サポートベクター
・・・他のクラスのサンプルと最も近いところにいるサンプルf(x) = 1 (クラス1)f(x) = -1 (クラス-1)
SVMのおさらい︓スラック変数の導⼊ 4
x1
x2スラック変数 ξ を導⼊︕
ξi > 1
0 < ξi < 1
ξi = 0
サンプルごとの ξi の和
を最小化1
n
ii
ξ=
n: モデル構築用サンプル数
SVMのおさらい︓最小化する関数 ||w|| / 2 の最小化→ 計算の都合上、 ||w||2 / 2 の最小化
ξi の和の最小化
5
C : 2つの項のバランスを決める係数x(i): i 番目のサンプルの説明変数y(i): i 番目のサンプルの値 (1 もしくは -1)
2
1
1
2
n
ii
C ξ=
+ w の最小化
ただし、 ( )( ) ( )0, 1i ii iy f ξξ ≥ ≥ −x
OCSVMの考え方 6
x1
x2
原点からの距離 (マージン) を最大化するように直線を決める︕
2 21 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
サポートベクター
原点からの距離で大丈夫︖ 7
特に標準化 (オートスケーリング) したあととか、原点を中⼼にしてサンプルが散らばっているのでは︖
外れ値ほど原点の近くになるように、⾼次元空間に写像すれば大丈夫︕
⾼次元空間で考える 8
�(x1)
�(x2)原点からの距離 (マージン) を最大化するように直線を決める︕
2 21 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と同様に、カーネルトリックにより � そのものを考える必要はなくなる
マージンの最大化 9
b
wの最大化
21
2b−w の最小化
原点付近にサンプルがあるときは︖ 10
�(x1)
�(x2)
0
スラック変数 ξ を導⼊︕
ξi > 0
ξi = 0 サンプルごとの ξi の和
を最小化1
n
ii
ξ=
n: サンプル数
一緒に最小化 11
2
1
1 1
2
n
ii
b ξnν =
− + w の最小化
重みを 1
nνという形でおいたのは、
あとで分かりやすくなるため
ただし、
0iξ ≥
( )( )iib ξφ ≥ −x w
ν (ニュー) の範囲は、0 < ν ≤ 1
x(i) : i 番目のサンプルの説明変数
重み w と b を求めるLagrangeの未定乗数法
• ラグランジュ乗数ξi、βi (i=1, 2, ..., n) を導⼊
12
( )( ){ }2
1 1 1
1 1
2
n n ni
i i i i ii 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 とする
偏微分して0 13
( )( )1
ni
ii
α φ=
=w x
( )11, 2, ,i i i n
nα β
ν+ = = …
1
1n
ii
α=
=
G を w で偏微分して0
G を b で偏微分して0
G を ξi で偏微分して0
これらを使ってG を変形すると・・・
( )( ) ( )( )T
1 1
1
2
n ni j
i ji j
G α α φ φ= =
= x x
また、 1, 0i i in
α β βν
+ = ≥ より、 10 i n
αν
≤ ≤
二次計画問題 14
制約
G を ξi に対して最大化する二次計画問題を解くと ξi が求まる
のもとで、
( )( )T( )
1
nii
ii
yα φ=
=w xw が求まる
10 i n
αν
≤ ≤1
1n
ii
α=
=
( )( ) ( )( )T
1 1
1
2
n ni j
i ji j
G α α φ φ= =
= x x
直線の式を求める 15
( )
( )( )
1
( )
,n
ii
i
f b
K b
φ
α=
= −
= −
x x w
x x
( )( ) ( )
S 1S
1,
ni j
ij i
b Kn
α∈ =
= x x
S : サポートベクターの集合nS : サポートベクターの個数
( ) ( ) ( )T( ) ( ) ( ) ( ),i j i jK φ φ=x x x xK︓カーネル関数
カーネルトリックについてはこちら: https://datachemeng.com/supportvectormachine/
G の変形 16
( )( ) ( )
( ) ( )
( ) ( )
1 1
1 1
1,
2
n ni j
i i j ji j
n n
i i i i ii i
G K
y
α α α α
ε α α α α
∗ ∗
= =
∗ ∗
= =
= − − −
− + + −
x x
( ) ( ) ( )T( ) ( ) ( ) ( ),i j i jK φ φ=x x x xK︓カーネル関数
カーネルトリックについてはこちら
カーネル関数の例線形カーネル
ガウシアンカーネル (使われることが多い)
多項式カーネル
17
( )( ) ( ) ( ) ( )T,i j i jK =x x x x
( ) ( )2( ) ( )
2( ) ( ) ( ) ( )2
, exp exp2
i j
i j i jK γσ
− = − = − −
x xx x x x
( ) ( )( ) ( ) ( ) ( )T, 1di j i jK λ= +x x x x
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
ii
i
f K bα=
= −x x x
( ) ( ) ( )( )
( ) ( ) ( )
2( )
,
=exp
Ti i i
i
K
γ
=
− −
x x x x
x x
φ φカーネル関数
OCSVMの使い方f(x) が 0 より小さくなったら、x は外れ値
f(x) の値が大きいほど、データ密度が⾼い
19
ν, γ の決め方グラム⾏列 (すべてのサンプルの間でカーネル関数を計算した⾏列) の
分散が最大になるように γ を最適化する• グラム⾏列がばらついていたほうがデータセットをよく表現できるため• γ の候補の例: 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