Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

単純ベイズ法による異常検知 #ml-professional

4,129 views

Published on

単純ベイズ法による異常検知 #ml-professional

Published in: Data & Analytics
  • Be the first to comment

単純ベイズ法による異常検知 #ml-professional

  1. 1. 異常検知と変化検知 単純ベイズ法による異常検知 機械学習プロフェッショナルシリーズ輪読会 #6 @a_macbee / 2015-10-07
  2. 2.  第三章:  単純ベイズ法による  異常検知 について学んでいきます
  3. 3.  3.1  多次元の問題を1次元に  帰着する
  4. 4. この章では多次元の問題について考える
  5. 5. この章では多次元の問題について考える 多次元の異常検知問題の例:スパムメール検知 メール文章中の各単語の 出現頻度情報を利用して スパム (=異常) か判定 { こんにちは: 1, お得: 0, … } → 普通のメール ( 正常 ) { こんにちは: 0, お得: 10, … } → スパムメール ( 異常 )
  6. 6. この章では多次元の問題について考える 多次元の異常検知問題の例:スパムメール検知 メール文章中の各単語の 出現頻度情報を利用して スパム (=異常) か判定 単語の種類数が次元数に相当する { こんにちは: 1, お得: 0, … } → 普通のメール ( 正常 ) { こんにちは: 0, お得: 10, … } → スパムメール ( 異常 )
  7. 7. { こんにちは: 1, お得: 0, … } → 普通のメール ( 正常 ) { こんにちは: 0, お得: 10, … } → スパムメール ( 異常 )
  8. 8. { こんにちは: 1, お得: 0, … } → 普通のメール ( 正常 ) { こんにちは: 0, お得: 10, … } → スパムメール ( 異常 ) x(1) = { x1 (1), x2 (1), … xM (1)} → 0 = y(1) x(2) = { x1 (2), x2 (2), … xM (2)} → 1 = y(2) … x(N) = { x1 (N), x2 (N), … xM (N)} → 0 = y(N) 正常:y = 0 異常:y = 1
  9. 9. { こんにちは: 1, お得: 0, … } → 普通のメール ( 正常 ) { こんにちは: 0, お得: 10, … } → スパムメール ( 異常 ) x(1) = { x1 (1), x2 (1), … xM (1)} → 0 = y(1) x(2) = { x1 (2), x2 (2), … xM (2)} → 1 = y(2) … x(N) = { x1 (N), x2 (N), … xM (N)} → 0 = y(N) ( 1.1 ) 正常:y = 0 異常:y = 1 M次元のラベル付き異常値検出問題
  10. 10. 何が難しいのか?
  11. 11. { こんにちは: 1, お得: 0, … } → 普通のメール ( 正常 ) { こんにちは: 0, お得: 10, … } → スパムメール ( 異常 ) x(1) = { x1 (1), x2 (1), … xM (1)} → 0 = y(1) x(2) = { x1 (2), x2 (2), … xM (2)} → 1 = y(2) … x(N) = { x1 (N), x2 (N), … xM (N)} → 0 = y(N) ( 1.1 ) 正常:y = 0 異常:y = 1 「変数がたくさんあって手に負えない」 = Mの次元数が増えると辛い ( 1.2 )
  12. 12. そんなときの 単純ベイズ法
 (a.k.a ナイーブベイズ法)
  13. 13. 単純ベイズ法 ベイズの定理に従い事後確率が最大になる y に分類 ( 今回の例の場合,y は 0 or 1,x は M次元のベクトル)
  14. 14. 単純ベイズ法 ベイズの定理に従い事後確率が最大になる y に分類 ( 今回の例の場合,y は 0 or 1,x は M次元のベクトル) ここで,M次元の変数それぞれが独立であると仮定 → ナイーブ 尤度を各パラメータ毎の尤度の積で書ける ( 3.1 )
  15. 15. 単純ベイズ法 ベイズの定理に従い事後確率が最大になる y に分類 ( 今回の例の場合,y は 0 or 1 ) ここで,M次元の変数それぞれが独立であると仮定 → ナイーブ 尤度を各パラメータ毎の尤度の積で書ける ( 3.1 ) 異常度の計算に使います ( 1.2 )
  16. 16. 「統計的に独立」 って何が嬉しいの? 深ぼってみる
  17. 17. 尤度を最尤推定の枠組みで考える 1/2 ( 3.1 )
  18. 18. 尤度を最尤推定の枠組みで考える 1/2 ( 3.1 ) 対数尤度で考える 未知パラメータを含む形で明示的に書く ( 3.2 )
  19. 19. 尤度を最尤推定の枠組みで考える 1/2 ( 3.1 ) 対数尤度で考える 未知パラメータを含む形で明示的に書く ( 3.2 ) 今回の例の場合,多項分布 となるため (※後述), i 番目の語の出現確率D1はy(n)=1となる標本の集合
  20. 20. 尤度を最尤推定の枠組みで考える 2/2 未知パラメータ毎に微分して 0 になる点が 最尤解を与える ※1 θに拘束条件がないと仮定 変数ごと,yごとに問題が切り分けられる! ( 3.2 )
  21. 21. 変数が統計的に独立な場合の最尤推定
 式 (3.1) のように変数ごとに積の形となってい る場合,M変数のそれぞれに対して別々に最尤 推定することで,モデルのパラメータを求める ことができる 定理 3.1 ( 3.1 )
  22. 22. [章3.1] まとめ
  23. 23. まとめ 1/2 • 多次元の問題について考えるにあたり,単純ベ イズ法の考え方を導入した
  24. 24. まとめ 1/2 • 多次元の問題について考えるにあたり,単純ベ イズ法の考え方を導入した • 変数が統計的に独立であると仮定して,尤度は 各パラメータの積で与えられる ( 3.1 )
  25. 25. まとめ 1/2 • 多次元の問題について考えるにあたり,単純ベ イズ法の考え方を導入した • 変数が統計的に独立であると仮定して,尤度は 各パラメータの積で与えられる ( 3.1 ) 異常度の計算に使います ( 1.2 )
  26. 26. まとめ 2/2 • M変数のそれぞれについて最尤推定することで,モデル のパラメータを求められる (定理 3.1) • ここでは,単純ベイズ法は各変数が独立だとみなすモ デリング手法を異常度に適用したもの・・・と考えてOK ( 3.2 )
  27. 27. まとめ 2/2 • M変数のそれぞれについて最尤推定することで,モデル のパラメータを求められる (定理 3.1) • ここでは,単純ベイズ法の各変数が独立だとみなすモ デリング手法を,異常度計算に適用した ( 3.2 )
  28. 28. まとめ 2/2 • M変数のそれぞれについて最尤推定することで,モデル のパラメータを求められる (定理 3.1) • ここでは,単純ベイズ法の各変数が独立だとみなすモ デリング手法を,異常度計算に適用した ( 3.2 ) 今回の例の場合,多項分布 となるとしてたけど・・・ 多項分布って何だっけ?
  29. 29. 多項分布による単純ベイズ分類 について深掘る
  30. 30.  3.3  多項分布による 単純ベイズ分類
  31. 31. 多項分布:頻度についての分布 頻度を集計したベクトル x について,x の出方を表す確率分布 ( 3.6 ) 条件:
  32. 32. 多項分布:頻度についての分布 頻度を集計したベクトル x について,x の出方を表す確率分布 ( 3.6 ) 条件: 各メールを文章中の単語の集まりで表す x = ( うれしい, がっかり, 値段, … ) 各単語の頻度を単語ごとに集計 メールを単語の袋詰で表現する Bag-of-Wordsモデル
  33. 33. 多項分布:頻度についての分布 頻度を集計したベクトル x について,x の出方を表す確率分布 ( 3.6 ) 条件: 各単語の出現確率 各単語の 出現確率の和は1 単語の総数の階乗をAとすると
  34. 34. 多項分布:頻度についての分布 頻度を集計したベクトル x について,x の出方を表す確率分布 ( 3.6 ) 条件:
  35. 35. 改めて対数尤度関数をみてみると・・・ ( 3.2 )
  36. 36. 改めて対数尤度関数をみてみると・・・ ( 3.2 ) y=0と1に対応して Mult(x¦θ0)とMult(x¦θ1)のモデルを仮定 θ0とθ1を最尤推定する ( 3.7 ) ※ (定数) は未知パラメータに関係しない定数
  37. 37. 改めて対数尤度関数をみてみると・・・ ( 3.2 ) y=0と1に対応して Mult(x¦θ0)とMult(x¦θ1)のモデルを仮定 θ0とθ1を最尤推定する ( 3.7 ) ただし,次の制約を満たすこと: この対数尤度関数を最大化する
  38. 38. 制約をラグランジュの未定乗数で取り入れると以下の通リ書ける 束縛条件最大化したい関数
  39. 39. 整理すると以下の通リ書ける よく出現する単語ほど出現確率が 高く見積もられる ( Dyにおける単語 i の出現総数 )=Ni y ( Dyにおける全単語の出現総数 )=¦Dy¦
  40. 40. 整理すると以下の通リ書ける ( Dyにおける単語 i の出現総数 )=Ni y ( Dyにおける全単語の出現総数 )=¦Dy¦ よく出現する単語ほど出現確率が 高く見積もられる  一度も出現しない単語をゼロ扱いするのは都合が悪い              → スムージングする              γ > 0 としてゲタを履かせる
  41. 41. 多項分布のパラメータを 求めることが出来た!
  42. 42. 求めたパラメータを利用して 異常値検出をしよう
  43. 43. 異常値検出: スパムメール検出 ( 3.9 ) ( 1.2 ) 求めた多項分布の式を代入  係数ベクトルα → 線形分類器の   形になっている
  44. 44. [章3.3] まとめ
  45. 45. まとめ 1/3 • 確率分布が多項分布である場合の単純ベイズ法 について考える • 例えばメールのBag-of-Wordsの表現は多項 分布にあたる ( 3.6 )
  46. 46. まとめ 2/3 • 確率分布を多項分布とした場合の最尤推定
 → よく出現する単語ほど出現確率が高く見積もられる ゲタを履かせる → スムージング
  47. 47. まとめ 3/3 • 求めた最尤値を利用して異常度を計算できる • 異常度は本質的には線形分類器になっている
  48. 48.  3.4  最大事後確率推定と  多項分布のスムージング
  49. 49. 未知パラメータの事前分布 • 未知パラメータに常識的な想定を込めた事前分布を導入 
 → 多項分布の場合は「ディリクレ分布」 定数 αi > 0 を設定 (αnを無限とおくとn次元目の単語は必ず出現すると想定している) ( 3.10 )
  50. 50. 未知パラメータの事前分布 • 未知パラメータに常識的な想定を込めた事前分布を導入 
 → 多項分布の場合は「ディリクレ分布」 定数 αi > 0 を設定 (αnを無限とおくとn次元目の単語は必ず出現すると想定している) 最大事後確率推定でモデルを推定する ( 3.10 )
  51. 51. 定義 3.1: 最大事後確率推定 • データDを与えたときのパラメータθの尤度を p(D¦θ) とする.また,θの事前分布を p(θ) と する.このとき,最適パラメータθ* を により選ぶ方法を,最大事後確率推定もしくは
 MAP推定と呼ぶ. ( 3.12 )
  52. 52. 定義 3.1: 最大事後確率推定 • データDを与えたときのパラメータθの尤度を p(D¦θ) とする.また,θの事前分布を p(θ) と する.このとき,最適パラメータθ* を により選ぶ方法を,最大事後確率推定もしくは
 MAP推定と呼ぶ. ( 3.12 )  尤度と事前分布の積を最大化するθ  → 事後分布を最大化するθ
  53. 53. 最大事後確率推定を利用してθを求める [ 事前分布 ] 未知パラメータθ0とθ1はお互い独立
  54. 54. 最大事後確率推定を利用してθを求める [ 事前分布 ] 未知パラメータθ0とθ1はお互い独立 ( 3.12 ) ( 3.7 )
  55. 55. 最大事後確率推定を利用してθを求める [ 事前分布 ] 未知パラメータθ0とθ1はお互い独立 ( 3.12 ) ( 3.7 ) のように変更するだけ
  56. 56. 最大事後確率推定を利用してθを求める [ 事前分布 ] 未知パラメータθ0とθ1はお互い独立 ( 3.12 ) [ 対数尤度関数 ] ( 3.13 )
  57. 57. 上記の対数尤度関数をラグランジュ未定乗数を用いて素朴に微分 ( 3.13 ) ( 3.14 )
  58. 58. 上記の対数尤度関数をラグランジュ未定乗数を用いて素朴に微分 ( 3.13 ) ( 3.14 ) ( 3.8 )αをγ+1と置く →
  59. 59. [章3.4] まとめ
  60. 60. まとめ 1/2 • 未知パラメータの事前分布を考える • 多項分布のモデル推定をするため,ディリクレ 分布を事前分布として導入 • 事前分布を考慮して最大事後確率推定を行う ( 3.10 ) ( 3.12 )
  61. 61. まとめ 2/2 • 事前分布を含んだ対数尤度関数をラグランジュ未 定乗数法で解き,未知パラメータの最適化を得る ( 3.13 ) ( 3.14 )
  62. 62.  3.5  二値分類と  異常検知の関係
  63. 63. ベイズ決定則  以下を満たす場合 y = 1 と判定 ( 3.15 ) 全体の誤り確率を最小にする最適な判別規則 p(y=1¦x) と p(y=0¦x) を計算してみて,大きい方を選ぶ
  64. 64. ベイズ決定則  以下を満たす場合 y = 1 と判定 ( 3.15 ) 全体の誤り確率を最小にする最適な判別規則 p(y=1¦x) と p(y=0¦x) を計算してみて,大きい方を選ぶ と比較
  65. 65. 任意の標本 x が与えられたときにそれを y=0 または y=1 のいずれ かに分類する.その判定規則は以下の通リ与える:
  66. 66. 任意の標本 x が与えられたときにそれを y=0 または y=1 のいずれ かに分類する.その判定規則は以下の通リ与える:  誤り確率を最小にするように  a(x) と τ を決めたい
  67. 67. 任意の標本 x が与えられたときにそれを y=0 または y=1 のいずれ かに分類する.その判定規則は以下の通リ与える: 訓練データに基づいて,あるいは勘と経験で p(x) と p(y¦x) が求められていたとすると・・・
  68. 68. 任意の標本 x が与えられたときにそれを y=0 または y=1 のいずれ かに分類する.その判定規則は以下の通リ与える: 訓練データに基づいて,あるいは勘と経験で p(x) と p(y¦x) が求められていたとすると・・・ [ 誤り確率 ] ( 3.16 )
  69. 69. 任意の標本 x が与えられたときにそれを y=0 または y=1 のいずれ かに分類する.その判定規則は以下の通リ与える: 訓練データに基づいて,あるいは勘と経験で p(x) と p(y¦x) が求められていたとすると・・・ [ 誤り確率 ] 条件を満たすと y=1であると判別 p(y=0¦x)p(x)をxについて積分 → y=0となる確率 y=0であると判別 y=1となる確率 ※指示関数 I[・]:中身が真のときに 1,そうでないときに 0 ( 3.16 )
  70. 70. 任意の標本 x が与えられたときにそれを y=0 または y=1 のいずれ かに分類する.その判定規則は以下の通リ与える: 訓練データに基づいて,あるいは勘と経験で p(x) と p(y¦x) が求められていたとすると・・・ [ 誤り確率 ] ( 3.16 ) ( 3.17 )
  71. 71. この誤り確率を最小にしたい
  72. 72. この誤り確率を最小にしたい p(y=1¦x) > p(y=0¦x) の場合に {・} は負となる {・} の中が負となる場合を 拾えれば良い
  73. 73. この誤り確率を最小にしたい p(y=1¦x) > p(y=0¦x) の場合に {・} は負となる {・} の中が負となる場合を 拾えれば良い とおけば良い
  74. 74. この誤り確率を最小にしたい p(y=1¦x) > p(y=0¦x) の場合に {・} は負となる {・} の中が負となる場合を 拾えれば良い とおけば良い  実際にはlogをとってる
  75. 75. この誤り確率を最小にしたい p(y=1¦x) > p(y=0¦x) の場合に {・} は負となる {・} の中が負となる場合を 拾えれば良い とおけば良い
  76. 76. ベイズ決定則  以下を満たす場合 y = 1 と判定 ( 3.15 ) 全体の誤り確率を最小にする最適な判別規則 p(y=1¦x) と p(y=0¦x) を計算してみて,大きい方を選ぶ
  77. 77. ベイズ決定則  以下を満たす場合 y = 1 と判定 ( 3.15 ) 全体の誤り確率を最小にする最適な判別規則 p(y=1¦x) と p(y=0¦x) を計算してみて,大きい方を選ぶ ネイマン・ピアソン決定則に よく似ている
  78. 78. ベイズ決定則とネイマン・ピアソン決定則を比較 • ネイマンピアソン決定則
 p(x¦y=1)とp(x¦y=0)の比がある閾値を超えたら 以上と判定 • ベイズ決定則
 p(x¦y=1)p(y=1)とp(x¦y=0)p(y=0)の比が1を超 えたら以上と判定
  79. 79. ベイズ決定則とネイマン・ピアソン決定則を比較 • ネイマンピアソン決定則
 p(x¦y=1)とp(x¦y=0)の比がある閾値を超えたら 以上と判定 • ベイズ決定則
 p(x¦y=1)p(y=1)とp(x¦y=0)p(y=0)の比が1を超 えたら以上と判定 p(y=1) << p(y=0) なので, 異常判定を強く抑制している = 二値分類器を使って異常検知するのは注意が必要
  80. 80. [章3.5] まとめ
  81. 81. まとめ • 二値分類で一般的に使われるベイズ則をとりあ えげた • ベイズ則は異常判定を強く抑制する傾向にある ため,利用する際には注意が必要  以下を満たす場合 y = 1 と判定 ( 3.15 )
  82. 82. 3.2 独立変数モデルのもとでの ホテリングのT2法
  83. 83. 独立変数モデルをラベルなしデータに適用 ホテリングのT2法を例として挙げる ( 3.3 ) ※ x はM次元 ※ 共分散行列の非対角成分を0とおいている
  84. 84. 独立変数モデルをラベルなしデータに適用 ホテリングのT2法を例として挙げる ( 3.3 ) ※ x はM次元 ※ 共分散行列の非対角成分を0とおいている この場合も定理3.1は成り立つ
  85. 85. (※途中計算省略) 最尤推定で以下の解が得られる ( 3.4 ) 一次元の標本平均と分散に一致
  86. 86. (※途中計算省略) 最尤推定で以下の解が得られる 一次元の標本平均と分散に一致 [ 異常度 ] ( 3.4 ) ( 3.5 ) M個の変数それぞれの異常度の和 ※異常度計算についてはp.18の流れを参照
  87. 87. (※途中計算省略) 最尤推定で以下の解が得られる 一次元の標本平均と分散に一致 [ 異常度 ] ( 3.4 ) ( 3.5 ) M個の変数それぞれの異常度の和 ・面倒な行列計算が不要で,変数同士の独立性がよく成り立つ  のであれば実用上有用 ・独立性がなりたたない場合もおおまかな異常度を見積もれる
  88. 88. (a) 変数間に相関がない (b) 変数間に線形相関がある 変数間の相関と異常判定に与える影響
  89. 89. (a) 変数間に相関がない (b) 変数間に線形相関がある 変数間の相関と異常判定に与える影響赤い四角=正常と判定される範囲 範囲は変数毎に決まる (変数間に線形相関がある場合) 変数個々に見ている限 りは,異常判定の枠が不当に大きくなる傾向にある
  90. 90. (a) 変数間に相関がない (b) 変数間に線形相関がある 変数間の相関と異常判定に与える影響赤い四角=正常と判定される範囲 範囲は変数毎に決まる (変数間に線形相関がある場合) 変数個々に見ている限 りは,異常判定の枠が不当に大きくなる傾向にある  → 後の章で相関がある場合の異常検知について扱う
  91. 91. [章3.2] まとめ
  92. 92. まとめ • 独立変数モデルはラベルなしデータにも使える • ホテリングのT2 法を例として挙げた • 異常度はM個の変数それぞれの異常度の和として表せる
 
 
 • しかし,変数間に相関がある場合,異常判定の枠が不 当に大きくなる傾向にあるので注意が必要 ( 3.5 )

×