Upload
shotaro-sano
View
1.787
Download
4
Embed Size (px)
Citation preview
Chapter 6: Support Vector Data Description
機械学習プロフェッショナルシリーズ輪読会
~異常検知と変化検知~
佐野 正太郎
やりたいこと
訓練データ
(ラベルなし)
やりたいこと
訓練データ
(ラベルなし)
円で囲む
正常
異常
トピック
Lagrange Method
凸最適化問題を簡単な問題へと変換
Support Vector Data Description (SVDD)
正常・異常を分離する円形境界の決定
Kernel Trick
柔軟かつ高速な境界の計算
Lagrange Method
問題設定:凸最適化問題
目的関数
制約条件
)}({minimize xfx
),...,1( 0)( Jjhj x
),...,1( 0)( Iigi x
凸関数
凸関数
線形関数
ラグランジュ関数
以下の関数を作ってみる
J
j
jj
I
i
ii hgfL11
)()()(),,( xxxμλx
0,0 where ji
目的関数 不等式制約 等式制約
ラグランジュ関数
以下の関数を作ってみる
このとき
J
j
jj
I
i
ii hgfL11
)()()(),,( xxxμλx
0,0 where ji
目的関数 不等式制約 等式制約
)(),,( xμλx fL
弱双対性
ラグランジュ関数の下限は目的関数より常に小さい
)(),,(),,(min xμλxμλx
xfLL
弱双対性
ラグランジュ関数の下限は目的関数より常に小さい
よって主問題の最小値(最適解)より小さい
)(),,(),,(min xμλxμλxx
fLL
)(),,(min *xμλx
xfL
弱双対性
ラグランジュ関数の下限は目的関数より常に小さい
よって主問題の最小値(最適解)より小さい
)(),,(),,(min xμλxμλxx
fLL
),( μλg下限はλとμの関数
)(),,(min *xμλx
xfL
弱双対性
ラグランジュ関数の下限は目的関数より常に小さい
よって主問題の最小値(最適解)より小さい
)(),,(),,(min xμλxμλxx
fLL
),( μλg
左側から大きくしていくと
f(x)の最適解に近づく
)(),,(min *xμλx
xfL
弱双対性
ラグランジュ関数の下限は目的関数より常に小さい
よって主問題の最小値(最適解)より小さい
の最大化問題を双対問題と呼ぶ
)(),,(),,(min xμλxμλxx
fLL
),( μλg )(),,(min *xμλx
xfL
),( μλg
強双対性
強双対:双対問題の最大値が主問題の最小値と一致
凸最適化問題では強双対性が成立する
厳密には凸最適化問題かつSlater条件を満たす場合
)(),( ***xμλ fg
強双対性
強双対:双対問題の最大値が主問題の最小値と一致
凸最適化問題では強双対性が成立する
厳密には凸最適化問題かつSlater条件を満たす場合
)(),( ***xμλ fg
強双対性が成立する場合 主問題の代わりに双対問題を最適化する
ラグランジュ法
ラグランジュ法の流れ
主問題を双対問題に変換
ラグランジュ関数を作成
ラグランジュ関数の主問題変数に関する下限を計算
ラグランジュ関数を主問題変数で偏微分
偏微分が0になる条件を計算
条件をラグランジュ関数に再代入
双対問題をラグランジュ乗数について最適化
双対問題の最適解から主問題の解を計算
KKT条件:最適解における必要十分条件
0)(,0)( xx ji hg
0,0 ji
0)( xiig
0),,(
x
μλxL
KKT条件:最適解における必要十分条件
が主問題の最適解 と が双対問題の最適解
0)(,0)( xx ji hg
0,0 ji
0)( xiig
0),,(
x
μλxL
強双対の場合
凸最適化の場合
xλ μ
KKT条件:最適解における必要十分条件
不等式制約関数か
ラグランジュ乗数の
どちらかはゼロ
(スラック相補性)
0)( xiig
Support Vector Data Description
やりたいこと
訓練データ
(ラベルなし)
円で囲む
問題の定式化
標本集合を囲むできるだけ小さな円を求める
i.e., 円の中心座標 と半径 を求める
R
Rb
b
問題の定式化
標本集合を囲むできるだけ小さな円を求める
i.e., 円の中心座標 と半径 を求める
多少円の外に出る標本があっても OK !
i.e., 各データの遊び を求める(円内では )
R
遊び
R
b
b
nu 0nu
問題の定式化
目的関数
制約条件
線形関数
(凸関数)
凸関数
線形関数
(凸関数)
Rb
RuR n 2
}{minimize1
)(2
,,2
N
n
n
RuCR
ub
022 bxnnuR
0)( nu
問題の定式化
目的関数
制約条件
線形関数
(凸関数)
凸関数
線形関数
(凸関数)
Rb
RuR n 2
}{minimize1
)(2
,,2
N
n
n
RuCR
ub
022 bxnnuR
0)( nu
凸最適化問題
ラグランジュ法の出番
ラグランジュ法の流れ
主問題を双対問題に変換
ラグランジュ関数を作成
ラグランジュ関数の主問題変数に関する下限を計算
ラグランジュ関数を主問題変数で偏微分
偏微分が0になる条件を計算
条件をラグランジュ関数に再代入
双対問題をラグランジュ乗数について最適化
双対問題の最適解から主問題の解を計算
問題の変換:ラグランジュ関数
0,0 where nn
N
n
nuCRL1
)(2),,,,( ubR2
N
n
n
n
n xuR1
2)(2 }{ b
N
n
n
nu1
)(
目的関数
制約条件
制約条件
問題の変換:ラグランジュ関数の微分
011
2
N
n
nR
L
0)(
nnn
Cu
L
0221 1
)(
N
n
N
n
n
nn xbb
L
ラグランジュ関数に再代入
問題の変換:双対問題の導出
ラグランジュ関数の下限
),,,,(min),( 2
,,2βαubβα
ubRLg
R
N
n
n
T
nnn
N
n
n
T
nn
1
''
1
xxxx
問題の変換:双対問題の導出
ラグランジュ関数の下限
制約条件
),,,,(min),( 2
,,2βαubβα
ubRLg
R
N
n
n
T
nnn
N
n
n
T
nn
1
''
1
xxxx
n0
n0
問題の変換:双対問題の導出
ラグランジュ関数の下限
制約条件
),,,,(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
問題の変換:双対問題の導出
ラグランジュ関数の下限
制約条件
),,,,(min),( 2
,,2βαubβα
ubRLg
R
N
n
n
T
nnn
N
n
n
T
nn
1
''
1
xxxx
Cn 0
ラグランジュ法の流れ
主問題を双対問題に変換
ラグランジュ関数を作成
ラグランジュ関数の主問題変数に関する下限を計算
ラグランジュ関数を主問題変数で偏微分
偏微分が0になる条件を計算
条件をラグランジュ関数に再代入
双対問題をラグランジュ乗数について最適化
双対問題の最適解から主問題の解を計算
双対問題
目的関数
制約条件
}{1
''
1maximize
N
n
n
T
nnn
N
n
n
T
nn xxxxα
Cn 0
ラグランジュ乗数の二次式
線形制約
双対問題
目的関数
制約条件
}{1
''
1maximize
N
n
n
T
nnn
N
n
n
T
nn xxxxα
Cn 0
ラグランジュ乗数の二次式
線形制約
二次計画問題
SMO法 / 双対座標降下法
ラグランジュ法の流れ
主問題を双対問題に変換
ラグランジュ関数を作成
ラグランジュ関数の主問題変数に関する下限を計算
ラグランジュ関数を主問題変数で偏微分
偏微分が0になる条件を計算
条件をラグランジュ関数に再代入
双対問題をラグランジュ乗数について最適化
双対問題の最適解から主問題の解を計算
ラグランジュ関数の微分結果より
よって円の中心座標
KKT条件と主問題の解(中心座標)
N
n
nn
1
**xb
011
2
N
n
nR
L
02211
N
n
nn
N
n
n
Lxb
b
KKT条件と主問題の解(半径)
KKT条件のスラック相補性より
0}{2
*2* bxnnn uR
0nun
KKT条件と主問題の解(半径)
KKT条件のスラック相補性より
0}{2
*2* bxnnn uR
0nun
ラグランジュ関数の微分結果から
0
)(
nnn
Cu
L
KKT条件と主問題の解(半径)
KKT条件のスラック相補性より
0nu)( *
nC
0}{2
*2* bxnnn uR
KKT条件と主問題の解(半径)
KKT条件のスラック相補性より
を満たす について
0nu)( *
nC
Cn *0
2*2
bx nR
nx
0}{2
*2* bxnnn uR
KKT条件と主問題の解(半径)
KKT条件のスラック相補性より
を満たす について
0nu)( *
nC
が円周上に乗ってる
(サポートベクトル) nx
0}{2
*2* bxnnn uR
Cn *0
2*2
bx nR
nx
異常度の計算
円から逸脱してる長さで定義
22
)( Ra bxx
実験:正規分布からの学習
平均 / 分散 の正規分布からサンプル生成 )2,2( 1
実験:正規分布からの学習
平均 / 分散 の正規分布からサンプル生成 )2,2( 1
C=1.0
実験:正規分布からの学習
平均 / 分散 の正規分布からサンプル生成
C=0.01 C=0.1
)2,2( 1
Kernel Trick
やりたいこと
単一の円で囲むと困る場合
e.g., サンプルが複数のクラスタ上に分布してる
e.g., 円形の分布になってない
もっと柔軟に境界を決めたい
解決策:非線形写像による境界決定
d次元空間
解決策:非線形写像による境界決定
x
)(x
d次元空間
d’次元空間
適当な非線形写像
解決策:非線形写像による境界決定
d’次元空間
こっちで境界決定
d次元空間
解決策:非線形写像による境界決定
d次元空間
d’次元空間
元の空間に戻すと
所望の分離になってる
カーネルトリック
実装上で写像計算が必要なところ
二次計画問題の定義
半径の計算
異常度の計算
})()()()({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
カーネルトリック
実装上で写像計算が必要なところ
二次計画問題の定義
半径の計算
異常度の計算
})()()()({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
カーネルトリック
写像計算せずに写像後の内積計算だけする
全ての内積計算を内積カーネルで置き換える
写像計算のコストを削減
RBFカーネルで無限次元への写像も可能
)()(),( yxyx TK内積カーネル
RBFカーネル
内積カーネルの定義
無限次元上で内積計算をしてることになる
}exp{),(2
yxyx K
0
222)exp(
!
)2()exp(}exp{
j
jT
jy
yxxyx
実験:混合正規分布からの学習
線形カーネルの場合
RBFカーネルの場合
実験:混合正規分布からの学習
C=0.1 , σ=0.5 C=0.01, σ=0.5
RBFカーネルの場合
実験:混合正規分布からの学習
C=0.01 , σ=0.01 C=0.01, σ=0.1
Thank you!