66
Chapter 6: Support Vector Data Description 機械学習プロフェッショナルシリーズ輪読会 ~異常検知と変化検知~ 佐野 正太郎

サポートベクトルデータ記述法による異常検知 in 機械学習プロフェッショナルシリーズ輪読会

Embed Size (px)

Citation preview

Page 1: サポートベクトルデータ記述法による異常検知 in 機械学習プロフェッショナルシリーズ輪読会

Chapter 6: Support Vector Data Description

機械学習プロフェッショナルシリーズ輪読会

~異常検知と変化検知~

佐野 正太郎

Page 2: サポートベクトルデータ記述法による異常検知 in 機械学習プロフェッショナルシリーズ輪読会

やりたいこと

訓練データ

(ラベルなし)

Page 3: サポートベクトルデータ記述法による異常検知 in 機械学習プロフェッショナルシリーズ輪読会

やりたいこと

訓練データ

(ラベルなし)

円で囲む

Page 4: サポートベクトルデータ記述法による異常検知 in 機械学習プロフェッショナルシリーズ輪読会

正常

異常

Page 5: サポートベクトルデータ記述法による異常検知 in 機械学習プロフェッショナルシリーズ輪読会

トピック

Lagrange Method

凸最適化問題を簡単な問題へと変換

Support Vector Data Description (SVDD)

正常・異常を分離する円形境界の決定

Kernel Trick

柔軟かつ高速な境界の計算

Page 6: サポートベクトルデータ記述法による異常検知 in 機械学習プロフェッショナルシリーズ輪読会

Lagrange Method

Page 7: サポートベクトルデータ記述法による異常検知 in 機械学習プロフェッショナルシリーズ輪読会

問題設定:凸最適化問題

目的関数

制約条件

)}({minimize xfx

),...,1( 0)( Jjhj x

),...,1( 0)( Iigi x

凸関数

凸関数

線形関数

Page 8: サポートベクトルデータ記述法による異常検知 in 機械学習プロフェッショナルシリーズ輪読会

ラグランジュ関数

以下の関数を作ってみる

J

j

jj

I

i

ii hgfL11

)()()(),,( xxxμλx

0,0 where ji

目的関数 不等式制約 等式制約

Page 9: サポートベクトルデータ記述法による異常検知 in 機械学習プロフェッショナルシリーズ輪読会

ラグランジュ関数

以下の関数を作ってみる

このとき

J

j

jj

I

i

ii hgfL11

)()()(),,( xxxμλx

0,0 where ji

目的関数 不等式制約 等式制約

)(),,( xμλx fL

Page 10: サポートベクトルデータ記述法による異常検知 in 機械学習プロフェッショナルシリーズ輪読会

弱双対性

ラグランジュ関数の下限は目的関数より常に小さい

)(),,(),,(min xμλxμλx

xfLL

Page 11: サポートベクトルデータ記述法による異常検知 in 機械学習プロフェッショナルシリーズ輪読会

弱双対性

ラグランジュ関数の下限は目的関数より常に小さい

よって主問題の最小値(最適解)より小さい

)(),,(),,(min xμλxμλxx

fLL

)(),,(min *xμλx

xfL

Page 12: サポートベクトルデータ記述法による異常検知 in 機械学習プロフェッショナルシリーズ輪読会

弱双対性

ラグランジュ関数の下限は目的関数より常に小さい

よって主問題の最小値(最適解)より小さい

)(),,(),,(min xμλxμλxx

fLL

),( μλg下限はλとμの関数

)(),,(min *xμλx

xfL

Page 13: サポートベクトルデータ記述法による異常検知 in 機械学習プロフェッショナルシリーズ輪読会

弱双対性

ラグランジュ関数の下限は目的関数より常に小さい

よって主問題の最小値(最適解)より小さい

)(),,(),,(min xμλxμλxx

fLL

),( μλg

左側から大きくしていくと

f(x)の最適解に近づく

)(),,(min *xμλx

xfL

Page 14: サポートベクトルデータ記述法による異常検知 in 機械学習プロフェッショナルシリーズ輪読会

弱双対性

ラグランジュ関数の下限は目的関数より常に小さい

よって主問題の最小値(最適解)より小さい

の最大化問題を双対問題と呼ぶ

)(),,(),,(min xμλxμλxx

fLL

),( μλg )(),,(min *xμλx

xfL

),( μλg

Page 15: サポートベクトルデータ記述法による異常検知 in 機械学習プロフェッショナルシリーズ輪読会

強双対性

強双対:双対問題の最大値が主問題の最小値と一致

凸最適化問題では強双対性が成立する

厳密には凸最適化問題かつSlater条件を満たす場合

)(),( ***xμλ fg

Page 16: サポートベクトルデータ記述法による異常検知 in 機械学習プロフェッショナルシリーズ輪読会

強双対性

強双対:双対問題の最大値が主問題の最小値と一致

凸最適化問題では強双対性が成立する

厳密には凸最適化問題かつSlater条件を満たす場合

)(),( ***xμλ fg

強双対性が成立する場合 主問題の代わりに双対問題を最適化する

ラグランジュ法

Page 17: サポートベクトルデータ記述法による異常検知 in 機械学習プロフェッショナルシリーズ輪読会

ラグランジュ法の流れ

主問題を双対問題に変換

ラグランジュ関数を作成

ラグランジュ関数の主問題変数に関する下限を計算

ラグランジュ関数を主問題変数で偏微分

偏微分が0になる条件を計算

条件をラグランジュ関数に再代入

双対問題をラグランジュ乗数について最適化

双対問題の最適解から主問題の解を計算

Page 18: サポートベクトルデータ記述法による異常検知 in 機械学習プロフェッショナルシリーズ輪読会

KKT条件:最適解における必要十分条件

0)(,0)( xx ji hg

0,0 ji

0)( xiig

0),,(

x

μλxL

Page 19: サポートベクトルデータ記述法による異常検知 in 機械学習プロフェッショナルシリーズ輪読会

KKT条件:最適解における必要十分条件

が主問題の最適解 と が双対問題の最適解

0)(,0)( xx ji hg

0,0 ji

0)( xiig

0),,(

x

μλxL

強双対の場合

凸最適化の場合

xλ μ

Page 20: サポートベクトルデータ記述法による異常検知 in 機械学習プロフェッショナルシリーズ輪読会

KKT条件:最適解における必要十分条件

不等式制約関数か

ラグランジュ乗数の

どちらかはゼロ

(スラック相補性)

0)( xiig

Page 21: サポートベクトルデータ記述法による異常検知 in 機械学習プロフェッショナルシリーズ輪読会

Support Vector Data Description

Page 22: サポートベクトルデータ記述法による異常検知 in 機械学習プロフェッショナルシリーズ輪読会

やりたいこと

訓練データ

(ラベルなし)

円で囲む

Page 23: サポートベクトルデータ記述法による異常検知 in 機械学習プロフェッショナルシリーズ輪読会

問題の定式化

標本集合を囲むできるだけ小さな円を求める

i.e., 円の中心座標 と半径 を求める

R

Rb

b

Page 24: サポートベクトルデータ記述法による異常検知 in 機械学習プロフェッショナルシリーズ輪読会

問題の定式化

標本集合を囲むできるだけ小さな円を求める

i.e., 円の中心座標 と半径 を求める

多少円の外に出る標本があっても OK !

i.e., 各データの遊び を求める(円内では )

R

遊び

R

b

b

nu 0nu

Page 25: サポートベクトルデータ記述法による異常検知 in 機械学習プロフェッショナルシリーズ輪読会

問題の定式化

目的関数

制約条件

線形関数

(凸関数)

凸関数

線形関数

(凸関数)

Rb

RuR n 2

}{minimize1

)(2

,,2

N

n

n

RuCR

ub

022 bxnnuR

0)( nu

Page 26: サポートベクトルデータ記述法による異常検知 in 機械学習プロフェッショナルシリーズ輪読会

問題の定式化

目的関数

制約条件

線形関数

(凸関数)

凸関数

線形関数

(凸関数)

Rb

RuR n 2

}{minimize1

)(2

,,2

N

n

n

RuCR

ub

022 bxnnuR

0)( nu

凸最適化問題

ラグランジュ法の出番

Page 27: サポートベクトルデータ記述法による異常検知 in 機械学習プロフェッショナルシリーズ輪読会

ラグランジュ法の流れ

主問題を双対問題に変換

ラグランジュ関数を作成

ラグランジュ関数の主問題変数に関する下限を計算

ラグランジュ関数を主問題変数で偏微分

偏微分が0になる条件を計算

条件をラグランジュ関数に再代入

双対問題をラグランジュ乗数について最適化

双対問題の最適解から主問題の解を計算

Page 28: サポートベクトルデータ記述法による異常検知 in 機械学習プロフェッショナルシリーズ輪読会

問題の変換:ラグランジュ関数

0,0 where nn

N

n

nuCRL1

)(2),,,,( ubR2

N

n

n

n

n xuR1

2)(2 }{ b

N

n

n

nu1

)(

目的関数

制約条件

制約条件

Page 29: サポートベクトルデータ記述法による異常検知 in 機械学習プロフェッショナルシリーズ輪読会

問題の変換:ラグランジュ関数の微分

011

2

N

n

nR

L

0)(

nnn

Cu

L

0221 1

)(

N

n

N

n

n

nn xbb

L

ラグランジュ関数に再代入

Page 30: サポートベクトルデータ記述法による異常検知 in 機械学習プロフェッショナルシリーズ輪読会

問題の変換:双対問題の導出

ラグランジュ関数の下限

),,,,(min),( 2

,,2βαubβα

ubRLg

R

N

n

n

T

nnn

N

n

n

T

nn

1

''

1

xxxx

Page 31: サポートベクトルデータ記述法による異常検知 in 機械学習プロフェッショナルシリーズ輪読会

問題の変換:双対問題の導出

ラグランジュ関数の下限

制約条件

),,,,(min),( 2

,,2βαubβα

ubRLg

R

N

n

n

T

nnn

N

n

n

T

nn

1

''

1

xxxx

n0

n0

Page 32: サポートベクトルデータ記述法による異常検知 in 機械学習プロフェッショナルシリーズ輪読会

問題の変換:双対問題の導出

ラグランジュ関数の下限

制約条件

),,,,(min),( 2

,,2βαubβα

ubRLg

R

N

n

n

T

nnn

N

n

n

T

nn

1

''

1

xxxx

n0

n0ラグランジュ関数の微分結果から

0

)(

nnn

Cu

L

Page 33: サポートベクトルデータ記述法による異常検知 in 機械学習プロフェッショナルシリーズ輪読会

問題の変換:双対問題の導出

ラグランジュ関数の下限

制約条件

),,,,(min),( 2

,,2βαubβα

ubRLg

R

N

n

n

T

nnn

N

n

n

T

nn

1

''

1

xxxx

Cn 0

Page 34: サポートベクトルデータ記述法による異常検知 in 機械学習プロフェッショナルシリーズ輪読会

ラグランジュ法の流れ

主問題を双対問題に変換

ラグランジュ関数を作成

ラグランジュ関数の主問題変数に関する下限を計算

ラグランジュ関数を主問題変数で偏微分

偏微分が0になる条件を計算

条件をラグランジュ関数に再代入

双対問題をラグランジュ乗数について最適化

双対問題の最適解から主問題の解を計算

Page 35: サポートベクトルデータ記述法による異常検知 in 機械学習プロフェッショナルシリーズ輪読会

双対問題

目的関数

制約条件

}{1

''

1maximize

N

n

n

T

nnn

N

n

n

T

nn xxxxα

Cn 0

ラグランジュ乗数の二次式

線形制約

Page 36: サポートベクトルデータ記述法による異常検知 in 機械学習プロフェッショナルシリーズ輪読会

双対問題

目的関数

制約条件

}{1

''

1maximize

N

n

n

T

nnn

N

n

n

T

nn xxxxα

Cn 0

ラグランジュ乗数の二次式

線形制約

二次計画問題

SMO法 / 双対座標降下法

Page 37: サポートベクトルデータ記述法による異常検知 in 機械学習プロフェッショナルシリーズ輪読会

ラグランジュ法の流れ

主問題を双対問題に変換

ラグランジュ関数を作成

ラグランジュ関数の主問題変数に関する下限を計算

ラグランジュ関数を主問題変数で偏微分

偏微分が0になる条件を計算

条件をラグランジュ関数に再代入

双対問題をラグランジュ乗数について最適化

双対問題の最適解から主問題の解を計算

Page 38: サポートベクトルデータ記述法による異常検知 in 機械学習プロフェッショナルシリーズ輪読会

ラグランジュ関数の微分結果より

よって円の中心座標

KKT条件と主問題の解(中心座標)

N

n

nn

1

**xb

011

2

N

n

nR

L

02211

N

n

nn

N

n

n

Lxb

b

Page 39: サポートベクトルデータ記述法による異常検知 in 機械学習プロフェッショナルシリーズ輪読会

KKT条件と主問題の解(半径)

KKT条件のスラック相補性より

0}{2

*2* bxnnn uR

0nun

Page 40: サポートベクトルデータ記述法による異常検知 in 機械学習プロフェッショナルシリーズ輪読会

KKT条件と主問題の解(半径)

KKT条件のスラック相補性より

0}{2

*2* bxnnn uR

0nun

ラグランジュ関数の微分結果から

0

)(

nnn

Cu

L

Page 41: サポートベクトルデータ記述法による異常検知 in 機械学習プロフェッショナルシリーズ輪読会

KKT条件と主問題の解(半径)

KKT条件のスラック相補性より

0nu)( *

nC

0}{2

*2* bxnnn uR

Page 42: サポートベクトルデータ記述法による異常検知 in 機械学習プロフェッショナルシリーズ輪読会

KKT条件と主問題の解(半径)

KKT条件のスラック相補性より

を満たす について

0nu)( *

nC

Cn *0

2*2

bx nR

nx

0}{2

*2* bxnnn uR

Page 43: サポートベクトルデータ記述法による異常検知 in 機械学習プロフェッショナルシリーズ輪読会

KKT条件と主問題の解(半径)

KKT条件のスラック相補性より

を満たす について

0nu)( *

nC

が円周上に乗ってる

(サポートベクトル) nx

0}{2

*2* bxnnn uR

Cn *0

2*2

bx nR

nx

Page 44: サポートベクトルデータ記述法による異常検知 in 機械学習プロフェッショナルシリーズ輪読会

異常度の計算

円から逸脱してる長さで定義

22

)( Ra bxx

Page 45: サポートベクトルデータ記述法による異常検知 in 機械学習プロフェッショナルシリーズ輪読会

実験:正規分布からの学習

平均 / 分散 の正規分布からサンプル生成 )2,2( 1

Page 46: サポートベクトルデータ記述法による異常検知 in 機械学習プロフェッショナルシリーズ輪読会

実験:正規分布からの学習

平均 / 分散 の正規分布からサンプル生成 )2,2( 1

C=1.0

Page 47: サポートベクトルデータ記述法による異常検知 in 機械学習プロフェッショナルシリーズ輪読会

実験:正規分布からの学習

平均 / 分散 の正規分布からサンプル生成

C=0.01 C=0.1

)2,2( 1

Page 48: サポートベクトルデータ記述法による異常検知 in 機械学習プロフェッショナルシリーズ輪読会

Kernel Trick

Page 49: サポートベクトルデータ記述法による異常検知 in 機械学習プロフェッショナルシリーズ輪読会
Page 50: サポートベクトルデータ記述法による異常検知 in 機械学習プロフェッショナルシリーズ輪読会
Page 51: サポートベクトルデータ記述法による異常検知 in 機械学習プロフェッショナルシリーズ輪読会
Page 52: サポートベクトルデータ記述法による異常検知 in 機械学習プロフェッショナルシリーズ輪読会
Page 53: サポートベクトルデータ記述法による異常検知 in 機械学習プロフェッショナルシリーズ輪読会
Page 54: サポートベクトルデータ記述法による異常検知 in 機械学習プロフェッショナルシリーズ輪読会

やりたいこと

単一の円で囲むと困る場合

e.g., サンプルが複数のクラスタ上に分布してる

e.g., 円形の分布になってない

もっと柔軟に境界を決めたい

Page 55: サポートベクトルデータ記述法による異常検知 in 機械学習プロフェッショナルシリーズ輪読会

解決策:非線形写像による境界決定

d次元空間

Page 56: サポートベクトルデータ記述法による異常検知 in 機械学習プロフェッショナルシリーズ輪読会

解決策:非線形写像による境界決定

x

)(x

d次元空間

d’次元空間

適当な非線形写像

Page 57: サポートベクトルデータ記述法による異常検知 in 機械学習プロフェッショナルシリーズ輪読会

解決策:非線形写像による境界決定

d’次元空間

こっちで境界決定

d次元空間

Page 58: サポートベクトルデータ記述法による異常検知 in 機械学習プロフェッショナルシリーズ輪読会

解決策:非線形写像による境界決定

d次元空間

d’次元空間

元の空間に戻すと

所望の分離になってる

Page 59: サポートベクトルデータ記述法による異常検知 in 機械学習プロフェッショナルシリーズ輪読会

カーネルトリック

実装上で写像計算が必要なところ

二次計画問題の定義

半径の計算

異常度の計算

})()()()({1

''

1maximize

N

n

n

T

nnn

N

n

n

T

nn xxxxα

N

nn

N

n

n

T

nn

T

nnn

TR1 1

sup

***

supsup

2

2,1

2121)()(2)()()()( xxxxxx

N

nn

N

n

n

T

nn

T

nnn Ra1

2

1

***T

2,1

2121)()(2)()()()()( xxxxxxx

Page 60: サポートベクトルデータ記述法による異常検知 in 機械学習プロフェッショナルシリーズ輪読会

カーネルトリック

実装上で写像計算が必要なところ

二次計画問題の定義

半径の計算

異常度の計算

})()()()({1

''

1maximize

N

n

n

T

nnn

N

n

n

T

nn xxxxα

N

nn

N

n

n

T

nn

T

nnn

TR1 1

sup

***

supsup

2

2,1

2121)()(2)()()()( xxxxxx

N

nn

N

n

n

T

nn

T

nnn Ra1

2

1

***T

2,1

2121)()(2)()()()()( xxxxxxx

Page 61: サポートベクトルデータ記述法による異常検知 in 機械学習プロフェッショナルシリーズ輪読会

カーネルトリック

写像計算せずに写像後の内積計算だけする

全ての内積計算を内積カーネルで置き換える

写像計算のコストを削減

RBFカーネルで無限次元への写像も可能

)()(),( yxyx TK内積カーネル

Page 62: サポートベクトルデータ記述法による異常検知 in 機械学習プロフェッショナルシリーズ輪読会

RBFカーネル

内積カーネルの定義

無限次元上で内積計算をしてることになる

}exp{),(2

yxyx K

0

222)exp(

!

)2()exp(}exp{

j

jT

jy

yxxyx

Page 63: サポートベクトルデータ記述法による異常検知 in 機械学習プロフェッショナルシリーズ輪読会

実験:混合正規分布からの学習

線形カーネルの場合

Page 64: サポートベクトルデータ記述法による異常検知 in 機械学習プロフェッショナルシリーズ輪読会

RBFカーネルの場合

実験:混合正規分布からの学習

C=0.1 , σ=0.5 C=0.01, σ=0.5

Page 65: サポートベクトルデータ記述法による異常検知 in 機械学習プロフェッショナルシリーズ輪読会

RBFカーネルの場合

実験:混合正規分布からの学習

C=0.01 , σ=0.01 C=0.01, σ=0.1

Page 66: サポートベクトルデータ記述法による異常検知 in 機械学習プロフェッショナルシリーズ輪読会

Thank you!