グラフィカル Lasso を用いた異常検知
M1 高品 佑也
1
背景: 異常検知とは
予期される入力に
そぐわない入力を
検知すること。
機器の故障予測
ネットワークの
侵入検知
2
背景: 異常検知のタスク
外れ値検知
正常な範囲から
外れたら異常と
する﴾図右上﴿。
変化検知
潜在状態が変化
したら異常とす
る﴾図中央下﴿。
3
背景: 教師あり異常検知
ネイマン・ピアソン決定則
正常モデルと異常モデルの尤度比 ﴾密度比﴿ が閾値を超え
たら異常とする。
ln
一般的な二値分類タスクと違い、事後確率ではなく尤度を使
うのは、事前確率に偏りがあるから。
p(x∣y = normal)
p(x∣y = anomaly)
4
背景: 教師なし異常検知
異常が ﴾ほとんど﴿ 含まれていないと信じられるデータから、
正常状態だけをモデル化する。
正常モデルから見て、確率の低い点を異常とする。
− ln p(x∣y = normal)
5
背景: 教師あり・教師なし比較
教師あり
尤度比の式の対数を開くと以下のようになる。
ln p(x∣y = anomaly) − ln p(x∣y = normal)
教師なし
正常時しかモデル化できない。
− ln p(x∣y = normal)
6
今回の問題設定
多変量の時系列データに対する教師なし異常検知。
外れ値検知と変化検知どちらも行いたい。
⋮
教師なしなので、まずは正常時の同時確率をモデル化。
7
正常時のモデル
正常時の分布を多変量ガウス分布でモデル化。
ただし各変数について平均 0 分散 1 に正規化しておく。
p(x) = N(x∣0, Λ )
変数間の直接相関 が精度行列 Λ に対応する 。
真の直接相関がスパース﴾Λ がスパース﴿と仮定する。
解釈のしやすさ、ノイズへの頑健性。
時間的な依存関係は無視。
−1
∗1 ∗2
8
推定量
モデルの事後確率を最大化するように Λ を選ぶ。
N はデータ数。
= arg ln p(Λ) N(x ∣0,Λ )
Λ がスパースになって欲しいので、事前分布を以下で取る。
ρ はラプラス分布の尺度 ﴾scale﴿ パラメータの逆数。
p(Λ) = exp −ρ∥Λ∥
Λ^
Λ
max {
n=1
∏
N
(n) −1
}
2
ρ
( 1)
9
計算手法
Λ の MAP 推定の式を変形すると以下のようになる。
S は標本分散共分散行列。
= arg ln det Λ − tr(SΛ) − ρ∥Λ∥
解析解が求まらないので、ブロック座標降下法で解く 。
他の行﴾列﴿を固定し、ある行﴾列﴿について最適化。
Λ^
Λ
max { 1}
∗3
10
結局グラフィカル Lasso とは
多変量ガウス分布の精度行列 Λ をスパース推定する手法。
これまでヒューリスティックにスパース推定していたのを、
L 正則化に帰着させた。
多変量ガウス分布の性質上、精度行列 Λ の非対角成分が変数
間の条件付き独立性に対応するのがうれしい。
1
11
なぜグラフィカル Lasso と呼ばれるか
グラフィカルモデルの一種に、マルコフ
確率場 ﴾Markov random field; MRF﴿ とい
うものがある。
多変量ガウス分布はマルコフ確率場とし
て解釈でき、精度行列 Λ の非 0 成分が
グラフ上の辺の有無に対応。
精度行列 Λ の学習はマルコフ確率場の
構造学習に対応する。
12
グラフィカル Lasso の実行例
38 変数のデータをグラフィカル Lasso にかけた例。右の方が
より強い正則化をかけてある。
13
異常検知への応用
外れ値検知
正常モデルの尤度から判定する。
変化検知
グラフ構造﴾変数の相関関係﴿の変化に対応付ける。
14
外れ値検知
i 番目の変数についての異常度 a を以下のように定義。
a (x) ≡ − ln p(x ∣x )
個別の異常だけでなく、他の変数との関係の異常も検知。
i
i i i
15
多変量ガウス分布であることを使うと、異常度は以下のよう
に変形できる 。
a (x) ≡ − ln p(x ∣x )
= ln + Λ x
∗4
i i i
2
1
Λi,i
2π
2Λi,i
1
(
j=1
∑
M
i,j j)
2
16
変化検知
精度行列が Λ から Λ に変化したとすると、その差
Θ = Λ −Λ からグラフ構造の変化が読み取れる。
グラフの変化がスパース﴾Θ がスパース﴿と仮定する。
しかし、 Λ,Λ を個別に推定して差を取っても、Θ は自動的
にはスパースにならない。⟶ Θ を直接推定。
′
′
′
17
精度行列の差 Θ = Λ −Λ は、尤度比に対応する。
r (x) = ∝ exp − x Θx
Θ がスパースになるように r (x) を学習する。
′
Θ
∗
N(x∣0,Λ )′−1
N(x∣0,Λ )−1
(
2
1 ⊤
)
Θ
∗
18
p(x) = r(x)p (x) の全確率が 1 になるように正規化。
r (x) =
r (x)p (x) が p(x) の良い近似になるように Θ を求める。
= arg KL(p ∥ rp ),
subject to ∥Θ∥ ≤ R
具体的な計算は [8] を参照。
′
Θ
dxp (x)r (x)∫ ′
Θ
∗
r (x)Θ
∗
Θ
′
Θ^
Θ
min ′
1
19
現状できないこと
ガウス分布以外への対応。
ラプラス分布・指数分布など。
多峰性の分布への対応。
実用上十分ありうる﴾複数の動作状態がある系﴿。
最新の論文ではやっているっぽい[7]。
季節性を考慮した異常検知。
因果関係の発見。
20
デモ
sklearn.covariance.GraphLasso を使ってみた。
以下のリポジトリの  glasso/glasso‐anomaly.ipynb 。
https://github.com/y‐takashina/notebooks/
21
Appendix
22
1: 直接相関と間接相関
直接相関
他の変数で条件づけられた上での、 2 変数だけの相関。
p(x , x ∣x , … , x ) =
間接相関
他の変数を介した相関を含む。
p(x , x ) = dx … dx p(x)
∗
1 2 3 M
p(x , … , x )3 M
p(x)
1 2 ∫ 3 M
23
2: 直接相関と精度行列 Λ の関係
x , x が他の変数に条件付けられたときの同時確率は、
p(x , x ∣x , … , x ) =
この式から x , x に関係する項だけを取り出す。
∗
1 2
1 2 3 M
(2π)M/2
∣ det Λ∣1/2
p(x , … , x )3 M
exp − x Λx{ 2
1 ⊤
}
1 2
24
x Λx = x Λ x
= x Λ x + 2 x Λ x + x Λ x
= x Λ + 2x x Λ + x Λ
+ 2x x Λ + 2x x Λ + const.
ただし Λ は対称行列なので、 Λ = Λ
⊤
i=1
∑
M
i
j=1
∑
M
i,j j
i=1
∑
2
i
j=1
∑
2
i,j j
i=1
∑
2
i
j=3
∑
M
i,j j
i=3
∑
M
i
j=3
∑
M
i,j j
1
2
1,1 1 2 1,2 2
2
2,2
1
j=3
∑
M
j 1,j 2
j=3
∑
M
j 2,j
i,j j,i
25
x , x について周辺化すると、
p(x ∣x , … , x ) ∝ exp − x Λ + 2x x Λ
p(x ∣x , … , x ) ∝ exp − x Λ + 2x x Λ
1 2
1 3 M {
2
1
( 1
2
1,1 1
j=3
∑
M
j 1,j)}
2 3 M {
2
1
( 2
2
2,2 2
j=3
∑
M
j 2,j)}
26
これまでの式をまとめると、
p(x , x ∣x , … , x ) ∝ exp − x Λ + 2x x Λ
+x Λ + 2x x Λ + 2x x Λ
p(x ∣x , … , x ) ∝ exp − x Λ + 2x x Λ
p(x ∣x , … , x ) ∝ exp − x Λ + 2x x Λ
1 2 3 M {
2
1
( 1
2
1,1 1 2 1,2
2
2
2,2 1
j=3
∑
M
j 1,j 2
j=3
∑
M
j 2,j)}
1 3 M {
2
1
( 1
2
1,1 1
j=3
∑
M
j 1,j)}
2 3 M {
2
1
( 2
2
2,2 2
j=3
∑
M
j 2,j)}
27
x , x が条件付き独立である必要十分条件は、
p(x , x ∣x , … , x ) = p(x ∣x , … , x )p(x ∣x , … , x )
先ほどの式で、同じ色の部分は打ち消しあうので、
Λ = 0 ⇔ x ⊥⊥ x ∣ other variables
つまり、精度行列 Λ の (i, j) 成分は、他の変数に条件つけら
れた上での独立性 ﴾≒直接相関?﴿ に対応する。
変数になっていない交絡因子がある場合は、厳密な意味
での直接相関にはならない気もする。
i j
1 2 3 M 1 3 M 2 3 M
i,j i j
28
3: ブロック座標降下法
Λ, Σ, S をある変数について特別視し、以下のように書く。
≡ , ≡ , ≡
ある変数についての最適化は以下のようになる。
= arg w W w : ∥w − s∥ ≤ ρ
∗
Λ
~
[
L
l⊤
l
λ
] Σ
~
[
W
w⊤
w
σ
] S
~
[
R
s⊤
s
r
]
w^
w
min { ⊤ −1
∞ }
29
双対問題は以下のように書ける。
= arg ∥W β − b∥ + ρ∥β∥ ,
where b ≡W s, β ≡W w
Lasso の形
β^
β
min {
2
1 1/2 2
1}
−1/2 −1
30
4: 異常度の計算﴾最後が分からない﴿
a (x) ≡ − ln p(x ∣x )
= − ln
   = ln(2π) − ln + (x Λx −x Lx )
= ln + (2x l x + x λ)
= ln + l x + λx
∗
i i i
⎩
⎨
⎧
(2π)(M−1)/2
∣ det L∣1/2
(2π)M/2
∣ det Λ∣1/2
exp − x Lx{ 2
1
i
⊤
i}
exp − x Λx{ 2
1 ⊤
}
⎭
⎬
⎫
2
1
2
1
∣
∣
∣
∣
det L
det Λ
∣
∣
∣
∣
2
1 ⊤
i
⊤
i
2
1
(
λ −l L l⊤ −1
2π
)
2
1
i
⊤
i i
2
2
1
λ
2π
2λ
1
( ⊤
i i)
2
31
参考文献
日本語書籍
[1] 井手剛, 杉山将. 異常検知と変化検知. 機械学習プロフェッショナ
ルシリーズ, 講談社, 2015
[2] 井手剛. 依存関係にスパース性を入れる. 岩波データサイエンス
Vol. 5, 岩波書店, 2017
ぶっちゃけ上のどちらかを買って読めばよい。
32
日本語論文・スライド
[3] 井手剛. 疎な相関グラフの学習による相関異常の検出.
http://ide‐research.net/papers/2009_DMSM_Ide.pdf, 2009
[4] 井手剛. 潜在的グラフ構造からの異常検知. http://latent‐
dynamics.net/01/2010_LD_Ide.pdf, 2010
[3] は書籍と同じくらい詳しい。無料で DL できる。
[4] は変数間の相関を使うモチベーションが書かれている。
33
英語論文
[5] J. Friedman et al. Sparse inverse covariance estimation with the
graphical lasso. Biostatistics, 9:432‐441, 2008.
[6] O. Banerjee et al. Model Selection Through Sparse Maximum
Likelihood Estimation for Multivariate Gaussian or Binary Data.
Journal of Machine Learning Research, 9:485‐516, 2008
[5] はグラフィカル Lasso を提案した論文。
[6] は [5] の出発点になった論文。
34
英語論文
[7] T. Ide et al. Sparse Gaussian Markov Random Field Mixtures for
Anomaly Detection. Proceedings of the 2016 IEEE International
Conference on Data Mining, 955‐960, 2016
[8] S. Liu et al. Direct Learning of Sparse Changes in Markov
Networks by Density Ratio Estimation. Neural Computation,
26:1169‐1197, 2014
[7] はグラフィカル Lasso の混合分布への拡張。
[8] はグラフィカル Lasso を用いた変化検知。
35

グラフィカル Lasso を用いた異常検知