吉澤 貴拓
Takahiro Yoshizawa
異常検知と変化検知
Anomaly Detection And Change Detection
Chapter 0
異常検知の基本
• 異常検知とは何か
• 異常というには秤と基準が必要!
• 異常度と閾値
• 異常検知って以外と身近なんですよ〜
簡単に言えば「他のデータに比べて珍しいor変なデータを見つけ出す」こと
そして,異常に対して何らかの対処をします.
たとえば,
生体正常モニタ
9 月 の 全 体 ゼ ミ 資 料 と し て 異 常 検 知 を 取 り 上 げ ま す
何をもって変というのか?
どこから変というのか?
異 常 ! と い う に は , 秤 と 基 準 が 必 要 ! !
生体正常モニタが警告をならすのは…
*心拍数がある値を超えるとか,
*鼓動の強さがある強さに満たないとか,
*心電図が変な形をしているとか
-> (周波数解析すれば,周波数別の強さの分布の形が違う)
お医者さんは,これら全てを見て異常かどうかがわかる
つまり,お医者さん(の経験と勘)の代わりになるものが必要
異常検知するには,これらをいろいろひっくるめて
異常度と閾値をきめなければならない!
異 常 度 と 閾 値
あるデータの異常度を決めるには,まずそのデータの確率分布が知りたい!!!
どれが異常でどれが異常じゃないかを知っているのなら
正常である確率と異常である確率の比を用いて
異常度を定義することができる!
もし正常なデータしか取れていないのであれば
正常である確率の小ささを用いて異常度を定義する!
𝒙’
𝑝(𝒙′
|𝑦 = 0, 𝒟)
𝑝(𝒙′
|𝑦 = 1, 𝒟)
ここで定義した異常度を用いて,
その異常度がある閾値を超えたら異常と判定する.
詳しくは,9~12ページをみてください.
異 常 検 知 っ て 結 構 身 近 な ん で す よ
• スマホの高温異常(スマホ内の温度がある一定の温度を超えたら)
• 工場の機械故障予知(機械の中の様々なセンサーデータをもちいて)
• 迷惑メール分類(メールの中に出てくる単語別の出現頻度で異常度を定義)
• ナビの渋滞情報(衛星で交通量を図って,ある一定量を超えたら…)
• Twitter のトレンド検出
簡単な発想ではあるが,
ビジネス的にも必要とされる応用例がたくさんある!(原始的な人工知能と似ている)
異常検知と変化検知
Anomaly Detection And Change Detection
Chapter 1 : 異常検知の基本的な考え方
Chapter 2 : ホテリングのT2法による異常検知
Chapter 3 : 単純ベイズによる異常検知
Chapter 4 : 近傍法による異常検知
Chapter 5 : 混合分布モデルによる逐次更新型異常検知
Chapter 6 : サポートベクトル記述法による異常検知
Chapter 7 : 方向データの異常検知
Chapter 8 : ガウス過程回帰による異常検知
Chapter 9 : 部分空間法による変化検知
Chapter 10 : 疎構造学習による異常検知
Chapter 11 : 密度比推定による異常検知
Chapter 12 : 密度比推定による変化検知
この本のChap1~3をまとめました
Chapter1
異常検知の基本的な考え方
• 確率分布を用いた異常や変化の表し方
• ネイマン・ピアソン決定則
• 異常検知器の性能評価
• 正常標本精度と異常標本精度
異 常 ラ ベ ル 付 き デ ー タ に お け る ネ イ マ ン ・ ピ ア ソ ン 決 定 則
N e y m a n - P e a r s o n D e c i s i o n R u l e i n S u p e r v i s e d A n o m a l y D e t e c t i o n
<問題設定>
M次元のベクトル𝒙が,異常かどうかのラベル𝑦 と共に
N個の訓練データ𝒟として観測されていたとする.
𝒟 = 𝒙 1
, 𝑦 1
, 𝒙 2
, 𝑦 2
, … … , 𝒙 𝑛
, 𝑦 𝑛
この時,新たに観測された𝒙’が異常かどうかを判別したい
<考え方>
訓練データ𝒟より,異常時と正常時それぞれの確率分布を得る.
𝑝(𝒙′
|𝑦 = 0, 𝒟)よりも𝑝(𝒙′
|𝑦 = 1, 𝒟)の方が優勢であれば異常
と判定するので異常度𝑎 𝒙′
を以下のように定義する
𝑎 𝒙′ = ln
𝑝(𝒙′|𝑦 = 1, 𝒟)
𝑝(𝒙′|𝑦 = 0, 𝒟)
*ちなみにこの異常度の定義は,ある一定の正答率においてヒット率を最大にする
ネイマン・ピアソン決定則
𝑎 𝒙′
= ln
𝑝(𝒙′|𝑦=1,𝒟)
𝑝(𝒙′|𝑦=0,𝒟)
が所定の閾値を超えたら𝑦 = 1
𝒙’
𝑝(𝒙′
|𝑦 = 0, 𝒟)
𝑝(𝒙′
|𝑦 = 1, 𝒟)
イメージ
異 常 ラ ベ ル な し デ ー タ に お け る ネ イ マ ン ・ ピ ア ソ ン 決 定 則
N e y m a n - P e a r s o n D e c i s i o n R u l e i n U n s u p e r v i s e d A n o m a l y D e t e c t i o n
<問題設定>
M次元のベクトル𝒙が, N個の訓練データ𝒟として観測されているとする.
このうち異常標本数は圧倒的少数であると信じられる必要がある.
𝒟 = 𝒙 1
, 𝒙 2
, … … , 𝒙 𝑛
この時,新たに観測された𝒙’が異常かどうかを判別したい
<考え方>
訓練データ𝒟より,正常時の確率分布を得る.
• 正常時に出現確率が低いものは異常度が高い,高いものは異常度が低いこと
また,情報理論の観点から
• 異常度が高いと得られる情報量は高い,低いと得られる情報量は低い
情報量は確率分布の負の対数と結びつけて考えられる
これより,異常度𝑎 𝒙′ を以下のように定義できる
𝑎 𝒙′
= −ln 𝑝(𝒙′
|𝒟)
ネイマン・ピアソン決定則
𝑎 𝒙′
= −ln 𝑝(𝒙′
|𝒟)が所定の閾値を超えたら𝑦 = 1
𝒙’
𝑝(𝒙′
|𝒟)
正常標本精度(正答率)(=1-誤報率)
(正常標本精度) ≡
(実際に正常な標本なうち,正しく正常と判定できた数 )
(実際に正常な標本の総数)
検 知 器 の 性 能 評 価
異常標本精度(ヒット率)
(異常標本精度) ≡
(実際に異常な標本なうち,正しく 異常と判定できた数 )
(実際に異常な標本の総数)
P e r f o r m a n c e E v a l u a t i o n o f D e t e c t o r
実際に正常な標本
正常と判定された標本
実際に異常な標本
異常と判定された標本
分 岐 点 精 度 と F 値
正答率とヒット率は,閾値の設定によって大きく左右される
右図のように閾値に対して正答率𝑟0とヒット率𝑟1をグラフにした際,
2つの交点を性能分岐点という.
この閾値においては,(正答率𝑟0)=(ヒット率𝑟1)が成り立つ
実用上は,性能分岐点を求める代わりに𝑟0と𝑟1の調和平均𝑓を
閾値や,何らかのパラメータに対し幾つか計算する.
その中で最大の𝑓を与える点を分岐点精度とする.
その点における𝑓をF値と呼ぶ
B r e a k - e v e n A c c u r a c y a n d F - s c o r e
正答率
ヒット率
分岐点精度
分岐点閾値
𝑓 =
2𝑟0 𝑟1
𝑟0 + 𝑟1
性能分岐点
ヒット率を誤報率の関数として表したものをROC曲線という.
ある閾値𝜏に対し
𝑋, 𝑌 = (1 − 𝑟0, 𝑟1)
のようになる点の集まりである.
また,このROC曲線がX軸とはさむ領域の面積を,
AUCといい異常検知器の良さの指標となる.
異常度をネイマン・ピアソンの決定則の形で定義すると
ROCにおける曲線の傾きの対数は,
その点における異常判定の閾値に等しい
R O C 曲 線 と A U C
R e c e i v e r O p e r a t i n g C h a r a c t e r i s t i c C u r v e & A r e a U n d e r C u r v e
1
1
0 1-(正答率)
(
ヒ
ッ
ト
率
)
AUC
ROC曲線
Chapter2
ホテリングのT2法による異常
検知
• 多変量正規分布の最尤推定
• マハラノビス距離
平均との距離がどれだけ離れて
いるかで考えよう!
多 変 量 正 規 分 布
ホテリングの𝑇2
法では,
データが,異常標本を含まないか圧倒的少数であるという前提のもと,(今までと同じ)
各標本が独立に次のような正規分布に従うと仮定する
𝒩 𝒙 𝝁, Σ =
Σ −
1
2
2 𝜋
𝑀
2
exp
−1
2
𝒙 − 𝝁 ⊺ Σ −1 𝒙 − 𝝁
また, 𝝁, Σをデータ𝒟から求めるために,以下の𝒟の対数尤度ℒ 𝝁, Σ 𝒟 を用いて
最尤推定を行う.
ℒ 𝝁, Σ 𝒟 = ln
𝑛=1
𝑁
𝒩 𝒙(n) 𝝁, Σ =
𝑛=1
𝑁
ln 𝒩 𝒙(n) 𝝁, Σ
M u l t i v a r i a t e n o r m a l d i s t r i b u t i o n
Σ:共分散行列
𝝁:平均
( 参 考 ) 最 尤 推 定
対数尤度の式
ℒ 𝝁 , Σ 𝒟 = ln
𝑛=1
𝑁
𝒩 𝒙 ( n )
𝝁 , Σ =
𝑛=1
𝑁
ln 𝒩 𝒙 ( n )
𝝁 , Σ
多変量正規分布の式を代入すると
ℒ 𝝁 , Σ 𝒟 =
−𝑀𝑁
2
ln 2π −
𝑁
2
ln Σ −
1
2
𝑛=1
𝑁
𝒙 ( n )
− 𝝁
⊺
Σ − 1
𝒙 ( n )
− 𝝁
この対数尤度の式を𝝁 , Σ を動かすことによって最大化する. 𝝁 で微分して0とする.
𝜕ℒ 𝝁 , Σ 𝒟
𝜕𝝁
=
1
2
𝑛=1
𝑁
Σ − 1
𝒙 ( n )
− 𝝁
すると,
𝝁 =
1
𝑁
𝑛−1
𝑁
𝒙(n)
Σ ≡
1
𝑁
𝑛=1
𝑁
𝒙 ( n )
− 𝝁 𝒙 ( n )
− 𝝁
⊺
M a x i m u m L i k e l i h o o d E s t i m a t i o n
マ ハ ラ ノ ビ ス 距 離
前項で求めた,最尤推定量を代入することで,確率密度関数が得られる.
𝑝 𝒙 𝒟 = 𝒩 𝒙 𝝁, Σ
そこで,異常度をここから定義すると
𝑎 𝒙′ = (𝒙′ − 𝝁)⊺Σ −1(𝒙′ − 𝝁)
この式は,観測データが平均からどれだけずれているかを表したものである.
これをマハラノビス距離という.
共分散行列の逆行列Σ −1をかけることによって,
ばらつきが大きい方向の変動は大目にみているわけです
M a h a l a n o b i s D i s t a n c e
ホ テ リ ン グ の 𝑇 2
法
𝑀次元正規分布𝒩 ( 𝝁, Σ)からの𝑁個の独立標本 𝒙 1
, 𝒙 2
, … … , 𝒙 𝑛
に基づき, 𝝁
とΣを定義する.
新たに𝒩 ( 𝝁, Σ)から独立標本 𝒙′
を新たに観測した時に,以下が成立する
1. 𝒙′
− 𝝁は平均0,共分散
𝑁+1
𝑁
Σの𝑀次元正規分布に従う.
2. Σは𝒙′
− 𝝁と統計的に独立である
3. 𝑇2 ≡
𝑁−𝑀
𝑁+1 𝑀
𝑎 𝒙′
により定義される統計量𝑇2は,自由度 𝑀, 𝑁 − 𝑀 のF分
布に従う.
4. 𝑁 >> 𝑀のとき,𝑎 𝒙′ は近似的に自由度𝑀,スケール因子1の𝜒2分布に従
う
H o t e l l i n g ’ s T ^ 2
←最尤推定
←𝑎 𝒙′
=
(𝒙′
− 𝝁 )⊺
Σ −1
(𝒙′
− 𝝁 )
𝜒 2
分 布 に 従 う 異 常 判 定 の ア ル ゴ リ ズ ム
所与の誤報率𝛼に基づき,𝜒2分布から以下の方程式により閾値𝑎thを求めておく.
1 − 𝛼 =
0
𝑎th
𝑑𝑥 𝜒2
𝑥 𝑀, 1)
• 正常標本が,圧倒的だと信じられるデータから標本平均,および共分散行列を定義しておく
𝝁 =
1
𝑁
𝑛−1
𝑁
𝒙(n) , Σ ≡
1
𝑁
𝑛=1
𝑁
𝒙( n ) − 𝝁 𝒙( n) − 𝝁
⏉
• 新たな観測値𝒙′
を得るたびに,異常度としてのマハラノビス距離を計算する
𝑎 𝒙′ =(𝒙′ − 𝝁 )⏉Σ −1(𝒙′ − 𝝁)
• 𝑎 𝒙′ >𝑎thなら警報を出す.
Chapter3
単純ベイズ法による
異常検知
• 多変量正規分布の最尤推定
• マハラノビス距離
迷惑メールってどうやって
振り分けてるの?
多 次 元 の 問 題 だ け れ ど も , 1 次 で 考 え ら れ る !
異常度を計算するためには,𝑦が与えられた時の𝒙の条件付き確率𝑝 𝒙 𝑦 が必要である.
変数𝒙がそれぞれ独立の場合
𝑝 𝒙 𝑦 = 𝑝 𝑥1 𝑦 𝑝 𝑥2 𝑦 … … 𝑝 𝑥 𝑀 𝑦 =
𝑖=1
𝑀
𝑝 𝑥𝑖 𝑦
これに具体的なパラメータ𝜽𝑖
𝑦
を加えて考えると
対数尤度を計算すると
ℒ 𝜣 𝒟 =
𝑛=1
𝑁
𝑖=1
𝑀
ln 𝑝 𝑥𝑖
(𝑛)
𝜽𝑖
𝑦(𝑛)
, 𝑦(𝑛)
=
𝑖=1
𝑀
𝑛∈𝒟1
ln 𝑝 𝑥𝑖
(𝑛) 𝜽𝑖
𝟏
, 𝑦 = 1 +
𝑛∈𝒟0
ln 𝑝 𝑥𝑖
(𝑛) 𝜽𝑖
𝟎
, 𝑦 = 0
このように,すべて和の形になったのでそれぞれの項に対し別々に最尤推定を行うことでモデルのパラ
メータを求めることができる.(つまり1次の問題)
多 項 分 布 に お け る 単 純 ベ イ ズ 分 類
迷惑メールを振り分けるのに使われているのが,多項分布を用いた異常検知
これは単語や売れたものごとの「出現頻度」に着目する.
ある要素𝑖の出現確率を𝜃𝑖とし, 𝑖=1
𝑀
𝜃𝑖 = 1となるという前提のもと,この確率分布は
Mult 𝑥 𝜽 =
(𝑥1 + 𝑥2 + ⋯ + 𝑥 𝑀)
𝑥1! 𝑥2! … 𝑥 𝑀!
𝜃1
𝑥1
… 𝜃 𝑀
𝑥 𝑀
まずは,ここから𝑦ごとに𝑥の分布を求める.
𝑦 = 0と1に対応して,Mult 𝑥 𝜽 𝟎
とMult 𝑥 𝜽 𝟏
を仮定し,パラメータに対しそれぞれ最尤推定を行う.
ℒ 𝜽0
, 𝜽1
|𝒟 =
𝑛∈𝒟1 𝑖=1
𝑀
𝑥𝑖
(𝑛)
ln 𝜽𝑖
1
+
𝑛∈𝒟0 𝑖=1
𝑀
𝑥𝑖
(𝑛)
ln 𝜽𝑖
0
+ (定数)
N a i v e B a y e s C l a s s i f i c a t i o n w i t h M u l t i n o m i a l D i s t r i b u t i o n
正 常 と 異 常 , ふ た つ の モ デ ル に 対 す る 最 尤 推 定
対数尤度
ℒ 𝜽0
, 𝜽1
|𝒟 =
𝑛∈𝒟1 𝑖=1
𝑀
𝑥𝑖
(𝑛)
ln 𝜽𝑖
1
+
𝑛∈𝒟0 𝑖=1
𝑀
𝑥𝑖
(𝑛)
ln 𝜽𝑖
0
+ (定数)
に対し, 𝑖=1
𝑀
𝜃𝑖
0
= 1, 𝑖=1
𝑀
𝜃𝑖
1
= 1の制約をラグランジュ乗数𝜆0, 𝜆1であたえる.
それを,𝜽0
で微分すると以下のようになり,これは𝜽1でも同様になる.
0 =
𝜕
𝜕𝜃𝑖
0 ℒ − 𝜆0
𝑗=1
𝑀
𝜃𝑗
0
− 𝜆1
𝑗=1
𝑀
𝜃𝑗
1
=
1
𝜃𝑖
0
𝑛∈𝒟
𝑥𝑖
(𝑛)
− 𝜆0
これより,直ちに次の解が得られる.(()内は迷惑メールの場合)
𝜃𝑖
0
= 𝑛∈𝒟0 𝑥𝑖
(𝑛)
𝑗=1
𝑀
𝑛∈𝒟0 𝑥𝑖
(𝑛)
=
𝒟0における単語𝑖の出現総数
𝒟0における全単語の出現総数
𝜃𝑖
1
= 𝑛∈𝒟1 𝑥𝑖
(𝑛)
𝑗=1
𝑀
𝑛∈𝒟1 𝑥𝑖
(𝑛)
=
𝒟1
における単語𝑖の出現総数
𝒟1における全単語の出現総数
学習には,この単語の出現頻度に対して通常下駄を履かせる(汎化性能を上げるため)
単 純 ベ イ ズ 法 に よ る 迷 惑 メ ー ル 分 類
あらかじめ単語集をつくっておく(単語数𝑀). スムージングの定数𝛾をきめる.(通例𝛾 = 1)
• 訓練(最尤推定)
• 閾値決定用の検証データと訓練データとに分けておく
• 訓練データ内の異常データ(𝑦 = 1)から,単語𝑖の出現回数𝑁𝑖
1
を数える
• 総単語出現数 𝒟1 = 𝑖=1
𝑀
𝑁𝑖
1
を計算し,パラメータ 𝜃𝑖
1
を求める.
• 正常データ(𝑦 = 0)についても同じことを行う
• 各単語𝑖に対し,𝛼𝑖 = ln( 𝜃𝑖
1
/ 𝜃𝑖
0
)を計算する
• 訓練(閾値の最適化)
• 検証データ内の標本に対し異常度𝑎 𝒙 = 𝜶⏉
𝒙を計算する
• 異常判定の閾値𝑎thを決める
• 運用時
• やってきたメールの単語の数を数え,単語の袋詰め𝒙′
を求める
• 異常度𝑎 𝒙′
= 𝜶⏉
𝒙′を計算する.
• 𝑎 𝒙′ > 𝑎thなら迷惑メールと判定する.
← 𝜃𝑖
1
=
𝑁𝑖
1
+𝛾
𝒟1 +𝑀𝛾
おしまい.

異常検知と変化検知の1~3章をまとめてみた

  • 1.
  • 2.
    Chapter 0 異常検知の基本 • 異常検知とは何か •異常というには秤と基準が必要! • 異常度と閾値 • 異常検知って以外と身近なんですよ〜
  • 3.
    簡単に言えば「他のデータに比べて珍しいor変なデータを見つけ出す」こと そして,異常に対して何らかの対処をします. たとえば, 生体正常モニタ 9 月 の全 体 ゼ ミ 資 料 と し て 異 常 検 知 を 取 り 上 げ ま す 何をもって変というのか? どこから変というのか?
  • 4.
    異 常 !と い う に は , 秤 と 基 準 が 必 要 ! ! 生体正常モニタが警告をならすのは… *心拍数がある値を超えるとか, *鼓動の強さがある強さに満たないとか, *心電図が変な形をしているとか -> (周波数解析すれば,周波数別の強さの分布の形が違う) お医者さんは,これら全てを見て異常かどうかがわかる つまり,お医者さん(の経験と勘)の代わりになるものが必要 異常検知するには,これらをいろいろひっくるめて 異常度と閾値をきめなければならない!
  • 5.
    異 常 度と 閾 値 あるデータの異常度を決めるには,まずそのデータの確率分布が知りたい!!! どれが異常でどれが異常じゃないかを知っているのなら 正常である確率と異常である確率の比を用いて 異常度を定義することができる! もし正常なデータしか取れていないのであれば 正常である確率の小ささを用いて異常度を定義する! 𝒙’ 𝑝(𝒙′ |𝑦 = 0, 𝒟) 𝑝(𝒙′ |𝑦 = 1, 𝒟) ここで定義した異常度を用いて, その異常度がある閾値を超えたら異常と判定する. 詳しくは,9~12ページをみてください.
  • 6.
    異 常 検知 っ て 結 構 身 近 な ん で す よ • スマホの高温異常(スマホ内の温度がある一定の温度を超えたら) • 工場の機械故障予知(機械の中の様々なセンサーデータをもちいて) • 迷惑メール分類(メールの中に出てくる単語別の出現頻度で異常度を定義) • ナビの渋滞情報(衛星で交通量を図って,ある一定量を超えたら…) • Twitter のトレンド検出 簡単な発想ではあるが, ビジネス的にも必要とされる応用例がたくさんある!(原始的な人工知能と似ている)
  • 7.
    異常検知と変化検知 Anomaly Detection AndChange Detection Chapter 1 : 異常検知の基本的な考え方 Chapter 2 : ホテリングのT2法による異常検知 Chapter 3 : 単純ベイズによる異常検知 Chapter 4 : 近傍法による異常検知 Chapter 5 : 混合分布モデルによる逐次更新型異常検知 Chapter 6 : サポートベクトル記述法による異常検知 Chapter 7 : 方向データの異常検知 Chapter 8 : ガウス過程回帰による異常検知 Chapter 9 : 部分空間法による変化検知 Chapter 10 : 疎構造学習による異常検知 Chapter 11 : 密度比推定による異常検知 Chapter 12 : 密度比推定による変化検知 この本のChap1~3をまとめました
  • 8.
  • 9.
    異 常 ラベ ル 付 き デ ー タ に お け る ネ イ マ ン ・ ピ ア ソ ン 決 定 則 N e y m a n - P e a r s o n D e c i s i o n R u l e i n S u p e r v i s e d A n o m a l y D e t e c t i o n <問題設定> M次元のベクトル𝒙が,異常かどうかのラベル𝑦 と共に N個の訓練データ𝒟として観測されていたとする. 𝒟 = 𝒙 1 , 𝑦 1 , 𝒙 2 , 𝑦 2 , … … , 𝒙 𝑛 , 𝑦 𝑛 この時,新たに観測された𝒙’が異常かどうかを判別したい <考え方> 訓練データ𝒟より,異常時と正常時それぞれの確率分布を得る. 𝑝(𝒙′ |𝑦 = 0, 𝒟)よりも𝑝(𝒙′ |𝑦 = 1, 𝒟)の方が優勢であれば異常 と判定するので異常度𝑎 𝒙′ を以下のように定義する 𝑎 𝒙′ = ln 𝑝(𝒙′|𝑦 = 1, 𝒟) 𝑝(𝒙′|𝑦 = 0, 𝒟) *ちなみにこの異常度の定義は,ある一定の正答率においてヒット率を最大にする ネイマン・ピアソン決定則 𝑎 𝒙′ = ln 𝑝(𝒙′|𝑦=1,𝒟) 𝑝(𝒙′|𝑦=0,𝒟) が所定の閾値を超えたら𝑦 = 1 𝒙’ 𝑝(𝒙′ |𝑦 = 0, 𝒟) 𝑝(𝒙′ |𝑦 = 1, 𝒟) イメージ
  • 10.
    異 常 ラベ ル な し デ ー タ に お け る ネ イ マ ン ・ ピ ア ソ ン 決 定 則 N e y m a n - P e a r s o n D e c i s i o n R u l e i n U n s u p e r v i s e d A n o m a l y D e t e c t i o n <問題設定> M次元のベクトル𝒙が, N個の訓練データ𝒟として観測されているとする. このうち異常標本数は圧倒的少数であると信じられる必要がある. 𝒟 = 𝒙 1 , 𝒙 2 , … … , 𝒙 𝑛 この時,新たに観測された𝒙’が異常かどうかを判別したい <考え方> 訓練データ𝒟より,正常時の確率分布を得る. • 正常時に出現確率が低いものは異常度が高い,高いものは異常度が低いこと また,情報理論の観点から • 異常度が高いと得られる情報量は高い,低いと得られる情報量は低い 情報量は確率分布の負の対数と結びつけて考えられる これより,異常度𝑎 𝒙′ を以下のように定義できる 𝑎 𝒙′ = −ln 𝑝(𝒙′ |𝒟) ネイマン・ピアソン決定則 𝑎 𝒙′ = −ln 𝑝(𝒙′ |𝒟)が所定の閾値を超えたら𝑦 = 1 𝒙’ 𝑝(𝒙′ |𝒟)
  • 11.
    正常標本精度(正答率)(=1-誤報率) (正常標本精度) ≡ (実際に正常な標本なうち,正しく正常と判定できた数 ) (実際に正常な標本の総数) 検知 器 の 性 能 評 価 異常標本精度(ヒット率) (異常標本精度) ≡ (実際に異常な標本なうち,正しく 異常と判定できた数 ) (実際に異常な標本の総数) P e r f o r m a n c e E v a l u a t i o n o f D e t e c t o r 実際に正常な標本 正常と判定された標本 実際に異常な標本 異常と判定された標本
  • 12.
    分 岐 点精 度 と F 値 正答率とヒット率は,閾値の設定によって大きく左右される 右図のように閾値に対して正答率𝑟0とヒット率𝑟1をグラフにした際, 2つの交点を性能分岐点という. この閾値においては,(正答率𝑟0)=(ヒット率𝑟1)が成り立つ 実用上は,性能分岐点を求める代わりに𝑟0と𝑟1の調和平均𝑓を 閾値や,何らかのパラメータに対し幾つか計算する. その中で最大の𝑓を与える点を分岐点精度とする. その点における𝑓をF値と呼ぶ B r e a k - e v e n A c c u r a c y a n d F - s c o r e 正答率 ヒット率 分岐点精度 分岐点閾値 𝑓 = 2𝑟0 𝑟1 𝑟0 + 𝑟1 性能分岐点
  • 13.
    ヒット率を誤報率の関数として表したものをROC曲線という. ある閾値𝜏に対し 𝑋, 𝑌 =(1 − 𝑟0, 𝑟1) のようになる点の集まりである. また,このROC曲線がX軸とはさむ領域の面積を, AUCといい異常検知器の良さの指標となる. 異常度をネイマン・ピアソンの決定則の形で定義すると ROCにおける曲線の傾きの対数は, その点における異常判定の閾値に等しい R O C 曲 線 と A U C R e c e i v e r O p e r a t i n g C h a r a c t e r i s t i c C u r v e & A r e a U n d e r C u r v e 1 1 0 1-(正答率) ( ヒ ッ ト 率 ) AUC ROC曲線
  • 14.
  • 15.
    多 変 量正 規 分 布 ホテリングの𝑇2 法では, データが,異常標本を含まないか圧倒的少数であるという前提のもと,(今までと同じ) 各標本が独立に次のような正規分布に従うと仮定する 𝒩 𝒙 𝝁, Σ = Σ − 1 2 2 𝜋 𝑀 2 exp −1 2 𝒙 − 𝝁 ⊺ Σ −1 𝒙 − 𝝁 また, 𝝁, Σをデータ𝒟から求めるために,以下の𝒟の対数尤度ℒ 𝝁, Σ 𝒟 を用いて 最尤推定を行う. ℒ 𝝁, Σ 𝒟 = ln 𝑛=1 𝑁 𝒩 𝒙(n) 𝝁, Σ = 𝑛=1 𝑁 ln 𝒩 𝒙(n) 𝝁, Σ M u l t i v a r i a t e n o r m a l d i s t r i b u t i o n Σ:共分散行列 𝝁:平均
  • 16.
    ( 参 考) 最 尤 推 定 対数尤度の式 ℒ 𝝁 , Σ 𝒟 = ln 𝑛=1 𝑁 𝒩 𝒙 ( n ) 𝝁 , Σ = 𝑛=1 𝑁 ln 𝒩 𝒙 ( n ) 𝝁 , Σ 多変量正規分布の式を代入すると ℒ 𝝁 , Σ 𝒟 = −𝑀𝑁 2 ln 2π − 𝑁 2 ln Σ − 1 2 𝑛=1 𝑁 𝒙 ( n ) − 𝝁 ⊺ Σ − 1 𝒙 ( n ) − 𝝁 この対数尤度の式を𝝁 , Σ を動かすことによって最大化する. 𝝁 で微分して0とする. 𝜕ℒ 𝝁 , Σ 𝒟 𝜕𝝁 = 1 2 𝑛=1 𝑁 Σ − 1 𝒙 ( n ) − 𝝁 すると, 𝝁 = 1 𝑁 𝑛−1 𝑁 𝒙(n) Σ ≡ 1 𝑁 𝑛=1 𝑁 𝒙 ( n ) − 𝝁 𝒙 ( n ) − 𝝁 ⊺ M a x i m u m L i k e l i h o o d E s t i m a t i o n
  • 17.
    マ ハ ラノ ビ ス 距 離 前項で求めた,最尤推定量を代入することで,確率密度関数が得られる. 𝑝 𝒙 𝒟 = 𝒩 𝒙 𝝁, Σ そこで,異常度をここから定義すると 𝑎 𝒙′ = (𝒙′ − 𝝁)⊺Σ −1(𝒙′ − 𝝁) この式は,観測データが平均からどれだけずれているかを表したものである. これをマハラノビス距離という. 共分散行列の逆行列Σ −1をかけることによって, ばらつきが大きい方向の変動は大目にみているわけです M a h a l a n o b i s D i s t a n c e
  • 18.
    ホ テ リン グ の 𝑇 2 法 𝑀次元正規分布𝒩 ( 𝝁, Σ)からの𝑁個の独立標本 𝒙 1 , 𝒙 2 , … … , 𝒙 𝑛 に基づき, 𝝁 とΣを定義する. 新たに𝒩 ( 𝝁, Σ)から独立標本 𝒙′ を新たに観測した時に,以下が成立する 1. 𝒙′ − 𝝁は平均0,共分散 𝑁+1 𝑁 Σの𝑀次元正規分布に従う. 2. Σは𝒙′ − 𝝁と統計的に独立である 3. 𝑇2 ≡ 𝑁−𝑀 𝑁+1 𝑀 𝑎 𝒙′ により定義される統計量𝑇2は,自由度 𝑀, 𝑁 − 𝑀 のF分 布に従う. 4. 𝑁 >> 𝑀のとき,𝑎 𝒙′ は近似的に自由度𝑀,スケール因子1の𝜒2分布に従 う H o t e l l i n g ’ s T ^ 2 ←最尤推定 ←𝑎 𝒙′ = (𝒙′ − 𝝁 )⊺ Σ −1 (𝒙′ − 𝝁 )
  • 19.
    𝜒 2 分 布に 従 う 異 常 判 定 の ア ル ゴ リ ズ ム 所与の誤報率𝛼に基づき,𝜒2分布から以下の方程式により閾値𝑎thを求めておく. 1 − 𝛼 = 0 𝑎th 𝑑𝑥 𝜒2 𝑥 𝑀, 1) • 正常標本が,圧倒的だと信じられるデータから標本平均,および共分散行列を定義しておく 𝝁 = 1 𝑁 𝑛−1 𝑁 𝒙(n) , Σ ≡ 1 𝑁 𝑛=1 𝑁 𝒙( n ) − 𝝁 𝒙( n) − 𝝁 ⏉ • 新たな観測値𝒙′ を得るたびに,異常度としてのマハラノビス距離を計算する 𝑎 𝒙′ =(𝒙′ − 𝝁 )⏉Σ −1(𝒙′ − 𝝁) • 𝑎 𝒙′ >𝑎thなら警報を出す.
  • 20.
  • 21.
    多 次 元の 問 題 だ け れ ど も , 1 次 で 考 え ら れ る ! 異常度を計算するためには,𝑦が与えられた時の𝒙の条件付き確率𝑝 𝒙 𝑦 が必要である. 変数𝒙がそれぞれ独立の場合 𝑝 𝒙 𝑦 = 𝑝 𝑥1 𝑦 𝑝 𝑥2 𝑦 … … 𝑝 𝑥 𝑀 𝑦 = 𝑖=1 𝑀 𝑝 𝑥𝑖 𝑦 これに具体的なパラメータ𝜽𝑖 𝑦 を加えて考えると 対数尤度を計算すると ℒ 𝜣 𝒟 = 𝑛=1 𝑁 𝑖=1 𝑀 ln 𝑝 𝑥𝑖 (𝑛) 𝜽𝑖 𝑦(𝑛) , 𝑦(𝑛) = 𝑖=1 𝑀 𝑛∈𝒟1 ln 𝑝 𝑥𝑖 (𝑛) 𝜽𝑖 𝟏 , 𝑦 = 1 + 𝑛∈𝒟0 ln 𝑝 𝑥𝑖 (𝑛) 𝜽𝑖 𝟎 , 𝑦 = 0 このように,すべて和の形になったのでそれぞれの項に対し別々に最尤推定を行うことでモデルのパラ メータを求めることができる.(つまり1次の問題)
  • 22.
    多 項 分布 に お け る 単 純 ベ イ ズ 分 類 迷惑メールを振り分けるのに使われているのが,多項分布を用いた異常検知 これは単語や売れたものごとの「出現頻度」に着目する. ある要素𝑖の出現確率を𝜃𝑖とし, 𝑖=1 𝑀 𝜃𝑖 = 1となるという前提のもと,この確率分布は Mult 𝑥 𝜽 = (𝑥1 + 𝑥2 + ⋯ + 𝑥 𝑀) 𝑥1! 𝑥2! … 𝑥 𝑀! 𝜃1 𝑥1 … 𝜃 𝑀 𝑥 𝑀 まずは,ここから𝑦ごとに𝑥の分布を求める. 𝑦 = 0と1に対応して,Mult 𝑥 𝜽 𝟎 とMult 𝑥 𝜽 𝟏 を仮定し,パラメータに対しそれぞれ最尤推定を行う. ℒ 𝜽0 , 𝜽1 |𝒟 = 𝑛∈𝒟1 𝑖=1 𝑀 𝑥𝑖 (𝑛) ln 𝜽𝑖 1 + 𝑛∈𝒟0 𝑖=1 𝑀 𝑥𝑖 (𝑛) ln 𝜽𝑖 0 + (定数) N a i v e B a y e s C l a s s i f i c a t i o n w i t h M u l t i n o m i a l D i s t r i b u t i o n
  • 23.
    正 常 と異 常 , ふ た つ の モ デ ル に 対 す る 最 尤 推 定 対数尤度 ℒ 𝜽0 , 𝜽1 |𝒟 = 𝑛∈𝒟1 𝑖=1 𝑀 𝑥𝑖 (𝑛) ln 𝜽𝑖 1 + 𝑛∈𝒟0 𝑖=1 𝑀 𝑥𝑖 (𝑛) ln 𝜽𝑖 0 + (定数) に対し, 𝑖=1 𝑀 𝜃𝑖 0 = 1, 𝑖=1 𝑀 𝜃𝑖 1 = 1の制約をラグランジュ乗数𝜆0, 𝜆1であたえる. それを,𝜽0 で微分すると以下のようになり,これは𝜽1でも同様になる. 0 = 𝜕 𝜕𝜃𝑖 0 ℒ − 𝜆0 𝑗=1 𝑀 𝜃𝑗 0 − 𝜆1 𝑗=1 𝑀 𝜃𝑗 1 = 1 𝜃𝑖 0 𝑛∈𝒟 𝑥𝑖 (𝑛) − 𝜆0 これより,直ちに次の解が得られる.(()内は迷惑メールの場合) 𝜃𝑖 0 = 𝑛∈𝒟0 𝑥𝑖 (𝑛) 𝑗=1 𝑀 𝑛∈𝒟0 𝑥𝑖 (𝑛) = 𝒟0における単語𝑖の出現総数 𝒟0における全単語の出現総数 𝜃𝑖 1 = 𝑛∈𝒟1 𝑥𝑖 (𝑛) 𝑗=1 𝑀 𝑛∈𝒟1 𝑥𝑖 (𝑛) = 𝒟1 における単語𝑖の出現総数 𝒟1における全単語の出現総数 学習には,この単語の出現頻度に対して通常下駄を履かせる(汎化性能を上げるため)
  • 24.
    単 純 ベイ ズ 法 に よ る 迷 惑 メ ー ル 分 類 あらかじめ単語集をつくっておく(単語数𝑀). スムージングの定数𝛾をきめる.(通例𝛾 = 1) • 訓練(最尤推定) • 閾値決定用の検証データと訓練データとに分けておく • 訓練データ内の異常データ(𝑦 = 1)から,単語𝑖の出現回数𝑁𝑖 1 を数える • 総単語出現数 𝒟1 = 𝑖=1 𝑀 𝑁𝑖 1 を計算し,パラメータ 𝜃𝑖 1 を求める. • 正常データ(𝑦 = 0)についても同じことを行う • 各単語𝑖に対し,𝛼𝑖 = ln( 𝜃𝑖 1 / 𝜃𝑖 0 )を計算する • 訓練(閾値の最適化) • 検証データ内の標本に対し異常度𝑎 𝒙 = 𝜶⏉ 𝒙を計算する • 異常判定の閾値𝑎thを決める • 運用時 • やってきたメールの単語の数を数え,単語の袋詰め𝒙′ を求める • 異常度𝑎 𝒙′ = 𝜶⏉ 𝒙′を計算する. • 𝑎 𝒙′ > 𝑎thなら迷惑メールと判定する. ← 𝜃𝑖 1 = 𝑁𝑖 1 +𝛾 𝒟1 +𝑀𝛾
  • 25.