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

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