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

Cdf94b210491a56ec5e99b7f1efd72a1?s=47 oshokawa
November 04, 2015
8k

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

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

Cdf94b210491a56ec5e99b7f1efd72a1?s=128

oshokawa

November 04, 2015
Tweet

Transcript

  1. 異常検知と変化検知 Chapter 11 密度比推定による異常検知 2015.11.04 @ MLP勉強会 Twitter @oshokawa Facebook

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

    –  11.1 密度比による外れ値検出問題の定式化 –  11.2 カルバック・ライブラー密度比推定法 –  11.3 最小2乗密度比推定法 •  前振り再び •  参考文献 2
  3. 自己紹介 名前:滝(石川) 勇太 専門:機械学習 職種:でーたさいえんてぃすと(笑) 趣味:ぬこ 3

  4. 猫を二匹飼ってます 4

  5. かわいい 5

  6. トロ様(左)とウニ様(右) 6

  7. かわいい 7

  8. ダブルあくび 8

  9. かわいい 9

  10. 多分仲はいい 10

  11. そろそろ本題に 入ったほうがいいですか? 11

  12. 前振り とりあえずどんな感じか 12

  13. Chap. 1では・・・ 正常時の分布 テスト対象の分布 p 0( x ) x p

    ( x ) が所定の閾値を下回ったら異常と判定 ※ 今回の話題のために多少意訳 p ( x ) p 0( x ) Text p. 5 13
  14. 確率密度を 割り算してみよう! 14

  15. こんなデータを想定してみる 確率密度 低 高 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 ◆
  16. こんなデータを想定してみる 確率密度 低 高 •:データ点 p ( x ) p

    0( x ) サンプリング サンプリング 16
  17. こんな振動データ的なイメージ 17 ー:X-方向加速度 ---:Y-方向加速度

  18. こんな振動データ的なイメージ ー:X-方向加速度 ---:Y-方向加速度 通常モード 18

  19. こんな振動データ的なイメージ 19 高速モード ー:X-方向加速度 ---:Y-方向加速度

  20. こんな振動データ的なイメージ 20 通常? ー:X-方向加速度 ---:Y-方向加速度

  21. こんな振動データ的なイメージ 21 高速? ー:X-方向加速度 ---:Y-方向加速度

  22. こんな振動データ的なイメージ 22 !? ー:X-方向加速度 ---:Y-方向加速度

  23. こんな振動データ的なイメージ 23 アカーン ー:X-方向加速度 ---:Y-方向加速度

  24. それぞれ推定してみよう 確率密度 低 高 カーネル密度推定を使用 24

  25. いい感じに推定できたぞ じゃあ、(数値的に)割り算するよ 25

  26. !!!!????? 密度比 低(異常) 高(正常) 26

  27. ヤバス 全部異常でおk? 27

  28. そんなはずはないので 密度比推定してみるよ 28

  29. これはいいものだ 密度比 低(異常) 高(正常) 29

  30. これはいいものだ 密度比 低(異常) 高(正常) アカーンな辺り !?な辺り 30

  31. なかなかイケてらっしゃる 今日は前ページの手法の 勉強をするよ 31

  32. 密度比推定による異常検知 11.1 密度比による外れ値検出問題の定式化[1] Text p. 145 32

  33. 密度比の振る舞い a ( x ) = ln r ( x

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

    ) ただし r( x ) ⌘ p( x ) p0( x ) 異常度 (11.1) p0( x ) = (1 ↵)p( x ) + ↵˜ p( x ) 異常標本の割 合を として ↵ Text p. 146 34
  35. 密度比の振る舞い 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
  36. 密度比の振る舞い 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
  37. なるほど 密度比がわかれば異常度を 評価できるのね 37

  38. でも、 確率密度を推定して 割り算するのって 現実的なの? cf. さっきの例 38

  39. 難しい問題解かなくてもいいじゃない バプニックの原理 ある問題を解くときにそれよりも一般的な問題を 途中段階で解くべきではない Text p. 148 39

  40. 個別の密度がわかると・・・ バプニックの原理 ある問題を解くときにそれよりも一般的な問題を 途中段階で解くべきではない 個別の密度がわかる p ( x ) p

    0( x ) Text p. 148 40
  41. 密度比がわかる バプニックの原理 ある問題を解くときにそれよりも一般的な問題を 途中段階で解くべきではない 個別の密度がわかる 密度比がわかる p ( x )

    p 0( x ) r ( x ) = p ( x ) p 0( x ) Text p. 148 41
  42. でも、密度比がわかっても・・・ バプニックの原理 ある問題を解くときにそれよりも一般的な問題を 途中段階で解くべきではない 密度比がわかる r ( x ) =

    p ( x ) p 0( x ) Text p. 148 42
  43. 個別の密度はわからない バプニックの原理 ある問題を解くときにそれよりも一般的な問題を 途中段階で解くべきではない 個別の密度がわかる 密度比がわかる p ( x )

    p 0( x ) r ( x ) = p ( x ) p 0( x ) Text p. 148 43
  44. でも とりあえず今回は 44

  45. 密度比だけわかればいいじゃない! バプニックの原理 ある問題を解くときにそれよりも一般的な問題を 途中段階で解くべきではない 個別の密度がわかる 密度比がわかる p ( x )

    p 0( x ) r ( x ) = p ( x ) p 0( x ) こっちがわかれば おk! ※ 個別に密度推定して割り算すると 前振りみたいに大変なことになる ・誤差の増幅 ・数値的に不安定 ・密度推定自体が大変 etc. Text p. 148 45
  46. そんなわけで 個別に密度を推定せず 密度比を直接推定する 方法を考えます 46

  47. 密度比推定による異常検知 11.2 カルバック・ライブラー密度比推定法 [1, 2, 3] Text p. 148 47

  48. 表記の準備 訓練データ ほぼ全てが正常とみなせる テストデータ 異常が入ってるかもしれない Text p. 145 48 D

    = x1, . . . , xN ✓ ⇠ p( x ) ◆ D0 = x 0 1, . . . , x 0 N0 ✓ ⇠ p0( x ) ◆
  49. まずは密度比のモデルを決めましょう とりあえず基底関数 を導入して、パラメータ の線形モデル r ✓ ( x ) =

    b X j=1 ✓j j( x ) = ✓ > ( x ) を考えます Text p. 148 49 (11.2) ( x ) = [ 1( x ), . . . , b( x )]> ✓ = [✓1, . . . , ✓b]>
  50. なんかいきなり よくわかんないモデル が登場したぞ! 50

  51. モデルの気持ちを考えよう 51 p ( x ) こんな確率密度関数から 正常データが出てくるとしましょう Text p.

    148
  52. 基底ベクトルの様子 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
  53. モデルの気持ちを考えよう 53 p 0( x ) んでもって、こんな確率密度関数から テストデータが出てくるとしましょう p (

    x )
  54. “比”の役割を が担います 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
  55. テストデータが密な場所は比が小さくなる 55 簡単のため、テストデータが  だけに影響するとすると ✓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
  56. 56 では を学習する方法を 見ていきましょー ✓

  57. 学習時に考慮すべきことは何か r ✓ ( x ) = p( x )

    p0( x ) r ✓ ( x )p0( x ) = p( x )      が •    にできるだけ近い •  確率分布の条件を満たす p( x ) r ✓ ( x )p0( x ) ように、パラメータ を決めなきゃいけない ✓ Text p. 149 57
  58. 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 )
  59. 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 )
  60. 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 )
  61. 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
  62. 問題(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 )
  63. 問題(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)
  64. 問題(11.5) 正常データ異常度最小化と解釈できます 期待値の表記を用いると・・・ 第1項は 訓練データ( ≒ 正常データ)に対する異常度の最小化 としての働き Text p.

    150 64 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)
  65. 問題(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)
  66. 問題(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)
  67. 勾配法で解きましょう 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
  68. ひとこと 本には書いてありませんが、 パラメータに関する非負制約 は必要っぽい 規格化に関する制約についてはよくわからんです 教えてエロい人 ✓new ✓old ⌘rJ (

    ✓old ) ✓new max( ✓new, 0b) Text p. 151 68 ✓i 0, i = 1, . . . , b
  69. よし これで準備は整って 69

  70. よし これで準備は整って なーーーーい 70

  71.    ってなんなんだー? 71 ( x ) よく用いられるのは RBFカーネル とのこと(SVMとかと同じですね) ( x

    ) = [ 1( x ), . . . , N ( x )]> ただし n(x) = exp ✓ || x xn ||2 2 h2 ◆ Text p. 151
  72. 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
  73.    がわかれば具体的な計算ができます 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
  74. よし 今度こそ準備が整って 74

  75. よし 今度こそ準備が整って なーーーーい 75

  76. はどうやって決めるのさ? 76 h カルバック・ライブラー密度比推定では 交差検証法 が使えます! 近傍法やサポートベクトルデータ記述法では・・・ (教師ありデータがないと)CVにおける評価基準がない! カルバック・ライブラー密度比推定では・・・ カルバック・ライブラーダイバージェンスを

    CVの評価基準にできる! 詳しくは「アルゴリズム11.1」を見てね! Text p. 152
  77. 試してみよー 77

  78. こんな分布から200サンプルずつ生成 p ( x ) = N(1 , 12) ー:

    ー: p 0( x ) = N(0 , 22) 78
  79. ワーオ r ⇤( x ) ˆ r ( x )

    ー: ---: p ( x ) = N(1 , 12) ー: ー: p 0( x ) = N(0 , 22) 79
  80. 11.2 まとめ KLダイバージェンスの最小化で 密度比が直接推定できるよ! 80

  81. 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)
  82. 11.2 補足: 一般化KLダイバージェンス 82 とおくと '( p ) = Z

    d x p( x ) ln p( x ) Bregmanダイバージェンスで
  83. 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ダイバージェンスで
  84. 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ダイバージェンスで
  85. 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密度比推定のこと
  86. 11.2 補足: オリジナルのKLIEP 多分どっちでもいいんだと思います (最適解は変わる気がしますが) ちなみに本資料11.2の例題は本に書いてある方法に 非負制約をつけたもので実装しました 86

  87. 密度比推定による異常検知 11.3 最小2乗密度比推定法[1, 2, 4] Text p. 153 87

  88. モデルは一緒です r( x ) = p( x ) p0( x

    ) 密度比 を ってなモデルで表現するとこは一緒 88 Text p. 148 r ✓ ( x ) = ✓ > ( x )
  89. 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
  90. そんなわけで 2乗誤差を なんやかんやしていきます 90

  91. 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
  92. 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
  93. 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
  94. 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
  95. 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
  96. 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
  97. 問題(11.11) 問題設定はこんな感じになります min ✓  1 2 ✓> ˆ G✓

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

    ✓> ˆ h + 2 ||✓||2 @J0(✓) @✓ = ✓> ˆ G ˆ h > + ✓> = 0 ˆ G✓ + ✓ = ˆ h (ˆ G + IN )✓ = ˆ h 微分して0と置いて パラメータについて解くと・・・ Text p. 154 98
  99. 問題(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)
  100. 試してみよー 100

  101. さっきと同じデータで p ( x ) = N(1 , 12) ー:

    ー: p 0( x ) = N(0 , 22) 101
  102. ワーオ p ( x ) = N(1 , 12) ー:

    ー: r ⇤( x ) ˆ r ( x ) ー: ---: p 0( x ) = N(0 , 22) 102
  103. 11.3 まとめ 2乗誤差の最小化でも 密度比が直接推定できるよ! 103

  104. Chap. 11 まとめ -- Point1 -- 「密度比」を直接推定 することで異常検知のための モデルが作れます --

    Point2 -- 密度比推定には 幾つかのアプローチ があります 104
  105. 前振り再び 密度比の様子と正常/異常判定について考える 105

  106. 2次元人工データ再訪 106 確率密度 低 高 •:データ点 p ( x )

    p 0( x ) サンプリング サンプリング
  107. 密度比の様子 p ( x ) p 0( x ) 107

  108. p ( x ) p 0( x ) 閾値を適当に決めてみたよ 訓練データ(正常データ)の密度比の下側10%を

    閾値にしてみた イメージ的には「危険率10%」 108
  109. どう見ても正常・異常なものは拾えてそう p ( x ) p 0( x ) ザ・正常

    ザ・異常 109
  110. でも若干怪しいものちらほら p ( x ) p 0( x ) 誤警報

    or 外れ値 見逃し ビミョー 110
  111. 実際に現場で使う場合は いろいろ調整が必要です 111

  112. 参考文献 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
  113. ご清聴あじゅじゅしたー 113