Upgrade to Pro — share decks privately, control downloads, hide ads and more …

密度比推定による異常検知

oshokawa
November 04, 2015
11k

 密度比推定による異常検知

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

oshokawa

November 04, 2015
Tweet

Transcript

  1. あうとらいん •  自己紹介 •  猫紹介 •  前振り 〜とりあえずどんな感じか〜 •  密度比推定による異常検知

    –  11.1 密度比による外れ値検出問題の定式化 –  11.2 カルバック・ライブラー密度比推定法 –  11.3 最小2乗密度比推定法 •  前振り再び •  参考文献 2
  2. Chap. 1では・・・ 正常時の分布 テスト対象の分布 p 0( x ) x p

    ( x ) が所定の閾値を下回ったら異常と判定 ※ 今回の話題のために多少意訳 p ( x ) p 0( x ) Text p. 5 13
  3. こんなデータを想定してみる 確率密度 低 高 p ( x ) p 0(

    x ) 15 1 2 N ✓ 20 20 ,  10 0 0 10 ◆ 1 2 N ✓ 10 10 ,  10 0 0 10 ◆ 1 5 N ✓ 12.5 12.5 ,  5 0 0 5 ◆ 1 5 N ✓ 17.5 17.5 ,  5 0 0 5 ◆ 1 5 N ✓ 15 15 ,  0.1 0 0 0.1 ◆ 1 5 N ✓ 12.5 17.5 ,  5 0 0 5 ◆ 1 5 N ✓ 17.5 12.5 ,  5 0 0 5 ◆
  4. 密度比の振る舞い a ( x ) = ln r ( x

    ) ただし r( x ) ⌘ p( x ) p0( x ) 異常度 (11.1) Text p. 146 33
  5. 密度比の振る舞い a ( x ) = ln r ( x

    ) ただし r( x ) ⌘ p( x ) p0( x ) 異常度 (11.1) p0( x ) = (1 ↵)p( x ) + ↵˜ p( x ) 異常標本の割 合を として ↵ Text p. 146 34
  6. 密度比の振る舞い a ( x ) = ln r ( x

    ) ただし r( x ) ⌘ p( x ) p0( x ) 異常度 (11.1) p0( x ) = (1 ↵)p( x ) + ↵˜ p( x ) ln(1 ↵)  a( x 0)  1 異常標本の割 合を として ↵ なんやかんやして Text p. 146 35
  7. 密度比の振る舞い a ( x ) = ln r ( x

    ) ただし r( x ) ⌘ p( x ) p0( x ) 異常度 (11.1) p0( x ) = (1 ↵)p( x ) + ↵˜ p( x ) ln(1 ↵)  a( x 0)  1 異常標本の割 合を として ↵ なんやかんやして     :  で近似してその値との乖離を見る それ以外:何かしら他の基準を決める ↵ ⇡ 0 ↵ Text p. 146 36
  8. 密度比だけわかればいいじゃない! バプニックの原理 ある問題を解くときにそれよりも一般的な問題を 途中段階で解くべきではない 個別の密度がわかる 密度比がわかる p ( x )

    p 0( x ) r ( x ) = p ( x ) p 0( x ) こっちがわかれば おk! ※ 個別に密度推定して割り算すると 前振りみたいに大変なことになる ・誤差の増幅 ・数値的に不安定 ・密度推定自体が大変 etc. Text p. 148 45
  9. まずは密度比のモデルを決めましょう とりあえず基底関数 を導入して、パラメータ の線形モデル r ✓ ( x ) =

    b X j=1 ✓j j( x ) = ✓ > ( x ) を考えます Text p. 148 49 (11.2) ( x ) = [ 1( x ), . . . , b( x )]> ✓ = [✓1, . . . , ✓b]>
  10. 基底ベクトルの様子 52 x1 x2 x3 2( x ) 3( x

    ) D = { x1, x2, x3 } = { 2 . 5 , 0 , 2 . 5} が得られたとすると 基底ベクトル ( x ) = [ 1( x ) , 2( x ) , 3( x )]> はこんな感じ ※ 基底関数はRBFカーネルを想定(cf. p.71) 1( x ) Text p. 148
  11. “比”の役割を が担います 54 ✓ 簡単のため、テストデータが  だけに影響するとすると ✓2 x2(= 0) の近傍で、密度(のようなもの)は大体1/3くらい

    になるので、        とすると、モデルは↓ ✓ = [1, 1/3, 1]> r✓( x ) = ✓> ( x ) =  1 , 1 3, 1 2 4 1( x ) 2( x ) 3( x ) 3 5 Text p. 148
  12. 学習時に考慮すべきことは何か r ✓ ( x ) = p( x )

    p0( x ) r ✓ ( x )p0( x ) = p( x )      が •    にできるだけ近い •  確率分布の条件を満たす p( x ) r ✓ ( x )p0( x ) ように、パラメータ を決めなきゃいけない ✓ Text p. 149 57
  13. KL div.を基準に学習しましょう Kullback-Leibler先生に登場していただきます Text p. 149 58 gKL( p||r ✓

    p0 ) = Z dx p (x) ln p (x) r ✓(x) p0 (x) ⇢Z dx p (x) Z dx r ✓(x) p0 (x) = Z dx p (x) ln r ✓(x) + Z dx r ✓(x) p0 (x) + const と      を近づけたいので、 r ✓ ( x )p0( x ) p( x )
  14. KL div.を基準に学習しましょう Kullback-Leibler先生に登場していただきます Text p. 149 59 gKL( p||r ✓

    p0 ) = Z dx p (x) ln p (x) r ✓(x) p0 (x) ⇢Z dx p (x) Z dx r ✓(x) p0 (x) = Z dx p (x) ln r ✓(x) + Z dx r ✓(x) p0 (x) + const と      を近づけたいので、 r ✓ ( x )p0( x ) p( x )
  15. KL div.を基準に学習しましょう Kullback-Leibler先生に登場していただきます むし 1 N N X n=1 ln

    r ✓ ( xn) 1 N0 N0 X n=1 r ✓ ( x 0 n0 ) Text p. 149 60 gKL( p||r ✓ p0 ) = Z dx p (x) ln p (x) r ✓(x) p0 (x) ⇢Z dx p (x) Z dx r ✓(x) p0 (x) = Z dx p (x) ln r ✓(x) + Z dx r ✓(x) p0 (x) + const と      を近づけたいので、 r ✓ ( x )p0( x ) p( x )
  16. KL div.を基準に学習しましょう と      を近づけたいので、 r ✓ ( x )p0( x )

    p( x ) Kullback-Leibler先生に登場していただきます むし = 1 N N X n=1 ln r ✓ ( xn) + 1 N0 N0 X n0=1 r ✓ ( x 0 n0 ) 1 N N X n=1 ln r ✓ ( xn) 1 N0 N0 X n=1 r ✓ ( x 0 n0 ) Text p. 149 61 gKL( p||r ✓ p0 ) = Z dx p (x) ln p (x) r ✓(x) p0 (x) ⇢Z dx p (x) Z dx r ✓(x) p0 (x) = Z dx p (x) ln r ✓(x) + Z dx r ✓(x) p0 (x) + const
  17. 問題(11.5) 問題設定はこんな感じになります Text p. 150 62 min ✓ J( ✓

    ), J( ✓ ) = 1 N N X n=1 ln r ✓ ( xn) + 1 N0 N0 X n0=1 r ✓ ( x 0 n0 )
  18. 問題(11.5) この問題ってどう解釈できるの? 期待値の表記を用いると・・・ Text p. 150 63 J(✓) = h

    ln r✓iD + hr✓iD0 min ✓ J( ✓ ), J( ✓ ) = 1 N N X n=1 ln r ✓ ( xn) + 1 N0 N0 X n0=1 r ✓ ( x 0 n0 ) (11.6)
  19. 問題(11.5) 正常データ異常度最小化と解釈できます 期待値の表記を用いると・・・ 第1項は 訓練データ( ≒ 正常データ)に対する異常度の最小化 としての働き 第2項は    という規格化制約

    としての働き hr✓iD0 = 1 Text p. 150 65 J(✓) = h ln r✓iD + hr✓iD0 min ✓ J( ✓ ), J( ✓ ) = 1 N N X n=1 ln r ✓ ( xn) + 1 N0 N0 X n0=1 r ✓ ( x 0 n0 ) (11.6)
  20. 問題(11.5) 正常データ異常度最小化と解釈できます min ✓ J( ✓ ), J( ✓ )

    = 1 N N X n=1 ln r ✓ ( xn) + 1 N0 N0 X n0=1 r ✓ ( x 0 n0 ) 期待値の表記を用いると・・・ 第1項は 訓練データ( ≒ 正常データ)に対する異常度の最小化 としての働き 第2項は    という規格化制約 としての働き hr✓iD0 = 1 これが本当か どうか謎です 「小さくする」働きはある かなと思いますが・・・ Text p. 150 66 J(✓) = h ln r✓iD + hr✓iD0 (11.6)
  21. 勾配法で解きましょう rJ( ✓ ) = r  1 N N

    X n=1 ln r ✓ ( xn) + 1 N0 N0 X n0=1 r ✓ ( x 0 n0 ) = r  1 N N X n=1 ln ✓ > ( xn) + 1 N0 N0 X n0=1 ✓ > ( x 0 n0 ) = 1 N N X n=1 ( xn) ✓ > ( xn) + 1 N0 N0 X n0=1 ( x 0 n0 ) 問題(11.5)は凸最適化問題なので、 勾配法とかで最適解が求まります 適当な初期値から収束するまで以下よろしくー ✓new ✓old ⌘rJ(✓old) Text p. 150 67
  22.    ってなんなんだー? 71 ( x ) よく用いられるのは RBFカーネル とのこと(SVMとかと同じですね) ( x

    ) = [ 1( x ), . . . , N ( x )]> ただし n(x) = exp ✓ || x xn ||2 2 h2 ◆ Text p. 151
  23. RBFカーネル基底関数のイメージ (cf. p.52, 54) 72 Text p. 148 D =

    { x1, x2, x3 } = { 2 . 5 , 0 , 2 . 5} のとき ( x ) は↑の3点をカーネルの中心とした 3次元のベクトルになります x1 x2 x3 2( x ) 3( x ) 1( x ) (x) = 2 4 1(x) 2(x) 3(x) 3 5 = 2 6 6 6 6 6 6 4 exp ✓ (x x1) 2 2h 2 ◆ exp ✓ (x x2) 2 2h 2 ◆ exp ✓ (x x3) 2 2h 2 ◆ 3 7 7 7 7 7 7 5
  24.    がわかれば具体的な計算ができます 73 ( x ) K = ⇥ ( x1),

    . . . , ( xN ) ⇤> , K0 = ⇥ ( x 0 1), . . . , ( x 0 N0 ) ⇤> 勾配 密度比 r ✓ ( x ) = ✓ > ( x ) ただし 1N , 1N0 : それぞれ , 次元の1を並べたベクトル N N0 “./”演算子: 要素ごとの割り算(like matlab) Text p. 151 rJ(✓) = 1 N K(1N ./(K✓)) + 1 N0 K01N0
  25. ワーオ r ⇤( x ) ˆ r ( x )

    ー: ---: p ( x ) = N(1 , 12) ー: ー: p 0( x ) = N(0 , 22) 79
  26. 11.2 補足: Bregmanダイバージェンス[5, 6] '( x ) 81 D'( x

    || y ) ⌘ '( x ) '( y ) h x y , r'( y )i '(y) x y r'( y )>( x y ) D'( x || y ) '(z)
  27. 11.2 補足: 一般化KLダイバージェンス 82 とおくと '( p ) = Z

    d x p( x ) ln p( x ) Bregmanダイバージェンスで
  28. 11.2 補足: 一般化KLダイバージェンス D'( p || q ) = Z

    d x p( x ) ln p( x ) Z d x q( x ) ln q( x ) h p q , r'( q )i = Z d x p( x ) ln p( x ) Z d x q( x ) ln q( x ) Z d x p( x ) q( x ) ln q( x ) + 1 = Z d x p( x ) ln p( x ) q( x ) Z d x p( x ) + Z d x q( x ) gKL( p || q ) ⌘ D'( p || q ) = Z d x p( x ) ln p( x ) q( x ) Z d x p( x ) + Z d x q( x ) 一般化KLダイバージェンス 83 とおくと '( p ) = Z d x p( x ) ln p( x ) Bregmanダイバージェンスで
  29. 11.2 補足: 一般化KLダイバージェンス D'( p || q ) = Z

    d x p( x ) ln p( x ) Z d x q( x ) ln q( x ) h p q , r'( q )i = Z d x p( x ) ln p( x ) Z d x q( x ) ln q( x ) Z d x p( x ) q( x ) ln q( x ) + 1 = Z d x p( x ) ln p( x ) q( x ) Z d x p( x ) + Z d x q( x ) gKL( p || q ) ⌘ D'( p || q ) = Z d x p( x ) ln p( x ) q( x ) Z d x p( x ) + Z d x q( x ) 一般化KLダイバージェンス Z d x p( x ) = 1, Z d x q( x ) = 1 を満たすなら KLダイバージェンス KL( p || q ) ⌘ Dnorm ' ( p || q ) = Z d x p( x ) ln p( x ) q( x ) 84 とおくと '( p ) = Z d x p( x ) ln p( x ) Bregmanダイバージェンスで
  30. 11.2 補足: オリジナルのKLIEP(※) 文献[2]では一般化KLダイバージェンスの最小化で はなく、通常のKLダイバージェンスの制約付き最適 化問題をProjected Gradient Descent[7]で解い てるようです ※

    問題11.5の第二項を落とし、和が1になる制約条件を課す min ✓ N X n=1 ln r ✓ ( xn) s.t. 1 N0 N0 X n0=1 ✓ > ( x 0 n0 ) = 1 ✓ 0b 85 ※ Kullback-Leibler Importance Estimation Procedure:KL密度比推定のこと
  31. モデルは一緒です r( x ) = p( x ) p0( x

    ) 密度比 を ってなモデルで表現するとこは一緒 88 Text p. 148 r ✓ ( x ) = ✓ > ( x )
  32. KL div.の代わりに2乗誤差を最小化します min ✓ Z d x p( x )

    ln p( x ) r ✓ ( x )p0( x ) 1 + Z d x r ✓ ( x )p0( x ) min ✓ 1 2 Z d x nr ✓ ( x ) r( x )o2 p0( x ) カルバック・ライブラー密度比推定法 一般化カルバック・ライブラーダイバージェンス 最小2乗密度比推定法 2乗誤差 Text p. 154 89
  33. 2乗誤差の式をなんやかんやして・・・ J (✓) = 1 2 Z dx nr ✓(x)

    r (x) o2 p0 (x) = 1 2 Z dx nr ✓(x) 2p0 (x) 2 r ✓(x) r (x) p0 (x) + r (x) 2p0 (x) o = 1 2 Z dx nr ✓(x) 2p0 (x) 2 r ✓(x) p (x) + const o = 1 2 Z dx✓ > (x) (x) > ✓ p0 (x) Z dx✓ > (x) p (x) + const = 1 2 ✓ > Z dx (x) (x) >p0 (x) ✓ ✓ > Z dx (x) p (x) + const Text p. 154 91
  34. 2乗誤差の式をなんやかんやして・・・ J (✓) = 1 2 Z dx nr ✓(x)

    r (x) o2 p0 (x) = 1 2 Z dx nr ✓(x) 2p0 (x) 2 r ✓(x) r (x) p0 (x) + r (x) 2p0 (x) o = 1 2 Z dx nr ✓(x) 2p0 (x) 2 r ✓(x) p (x) + const o = 1 2 Z dx✓ > (x) (x) > ✓ p0 (x) Z dx✓ > (x) p (x) + const = 1 2 ✓ > Z dx (x) (x) >p0 (x) ✓ ✓ > Z dx (x) p (x) + const Text p. 154 92
  35. 2乗誤差の式をなんやかんやして・・・ J (✓) = 1 2 Z dx nr ✓(x)

    r (x) o2 p0 (x) = 1 2 Z dx nr ✓(x) 2p0 (x) 2 r ✓(x) r (x) p0 (x) + r (x) 2p0 (x) o = 1 2 Z dx nr ✓(x) 2p0 (x) 2 r ✓(x) p (x) + const o = 1 2 Z dx✓ > (x) (x) > ✓ p0 (x) Z dx✓ > (x) p (x) + const = 1 2 ✓ > Z dx (x) (x) >p0 (x) ✓ ✓ > Z dx (x) p (x) + const Text p. 154 93
  36. 2乗誤差の式をなんやかんやして・・・ J (✓) = 1 2 Z dx nr ✓(x)

    r (x) o2 p0 (x) = 1 2 Z dx nr ✓(x) 2p0 (x) 2 r ✓(x) r (x) p0 (x) + r (x) 2p0 (x) o = 1 2 Z dx nr ✓(x) 2p0 (x) 2 r ✓(x) p (x) + const o = 1 2 Z dx✓ > (x) (x) > ✓ p0 (x) Z dx✓ > (x) p (x) + const = 1 2 ✓ > Z dx (x) (x) >p0 (x) ✓ ✓ > Z dx (x) p (x) + const Text p. 154 94
  37. 2乗誤差の式をなんやかんやして・・・ J (✓) = 1 2 Z dx nr ✓(x)

    r (x) o2 p0 (x) = 1 2 Z dx nr ✓(x) 2p0 (x) 2 r ✓(x) r (x) p0 (x) + r (x) 2p0 (x) o = 1 2 Z dx nr ✓(x) 2p0 (x) 2 r ✓(x) p (x) + const o = 1 2 Z dx✓ > (x) (x) > ✓ p0 (x) Z dx✓ > (x) p (x) + const = 1 2 ✓ > Z dx (x) (x) >p0 (x) ✓ ✓ > Z dx (x) p (x) + const Text p. 154 95
  38. 2乗誤差の式をなんやかんやして・・・ ⇡ 1 N0 N0 X n0=1 ( x 0

    n0 ) ( x 0 n0 )> = ˆ G ⇡ 1 N N X n=1 ( xn) = ˆ h 標本平均で近似 同じく J (✓) = 1 2 Z dx nr ✓(x) r (x) o2 p0 (x) = 1 2 Z dx nr ✓(x) 2p0 (x) 2 r ✓(x) r (x) p0 (x) + r (x) 2p0 (x) o = 1 2 Z dx nr ✓(x) 2p0 (x) 2 r ✓(x) p (x) + const o = 1 2 Z dx✓ > (x) (x) > ✓ p0 (x) Z dx✓ > (x) p (x) + const = 1 2 ✓ > Z dx (x) (x) >p0 (x) ✓ ✓ > Z dx (x) p (x) + const Text p. 154 96
  39. 問題(11.11) 問題設定はこんな感じになります min ✓  1 2 ✓> ˆ G✓

    ✓> ˆ h + 2 ||✓||2 Text p. 154 97 正則化項をつけます
  40. 問題(11.11) 微分して0とおくと・・・ min ✓  1 2 ✓> ˆ G✓

    ✓> ˆ h + 2 ||✓||2 @J0(✓) @✓ = ✓> ˆ G ˆ h > + ✓> = 0 ˆ G✓ + ✓ = ˆ h (ˆ G + IN )✓ = ˆ h 微分して0と置いて パラメータについて解くと・・・ Text p. 154 98
  41. 問題(11.11) 微分して0とおくと解析解が得られます! min ✓  1 2 ✓> ˆ G✓

    ✓> ˆ h + 2 ||✓||2 @J0(✓) @✓ = ✓> ˆ G ˆ h > + ✓> = 0 ˆ G✓ + ✓ = ˆ h (ˆ G + IN )✓ = ˆ h ˆ ✓ = (ˆ G + IN ) 1 ˆ h 解析解 微分して0と置いて パラメータについて解くと・・・ Text p. 154 99 (11.12)
  42. ワーオ p ( x ) = N(1 , 12) ー:

    ー: r ⇤( x ) ˆ r ( x ) ー: ---: p 0( x ) = N(0 , 22) 102
  43. 参考文献 1.  井手 剛, 杉山 将. 異常検知と変化検知. 講談社. 2015 2. 

    M. Sugiyama, T. Suzuki, and T. Kanamori. Density Ratio Estimation In Machine Learning. CAMBRIDGE UNIVERSITY PRESS. 2012. 3.  M. Sugiyama, et al. Direct Importance Estimation with Model Selection and Its Application to Covariate Shift Adaptation. NIPS. 2008. 4.  T. Kanamori, et al. A Least-squares Approach to Direct Importance Estimation. JMLR, 10, 1391-1445. 2009. 5.  A. Banerjee, et al. Clustering with Bregman Divergences. JMLR 6, 1705-1749. 2005. 6.  J. Ghosh. Bregman Divergence for Data Mining Meta-Algorithms. slide. 7.  S. Boyd, and L. Vandenberghe. Convex Optimization. CAMBRIDGE UNIVERSITY PRESS. 2004. 112