Nov.18, 2008

Anomaly Detection :
A Survey
Varun Chandola, Arindam Banerjee,
Vipin Kumar
Comp.Surveys, 2009 ( Nov.18, 2008, 若林 担当)
目次
introduction
„ 問題の定義、問題のバリエーション
„ 分類手法
„ nearest neighbor法
„ クラスタリングによる手法
„ 統計的手法
„
Anomaly Detectionとは
„
異常検出
… 期待されない振る舞いをするデータ
„
anomaly, outlier, discordant observation,
exception, aberration, surprise, peculiarity,
contaminant
… クレジットカードの不正利用
… 健康診断の計測値データ
… ネットワークの不正アクセス発見
… 航空機、宇宙船の異常発見
… 軍事偵察における敵の行動の発見
What are anomalies?
„
定義された「正常な振る舞い」から外れたデータ
… 正常な点データ
„
領域N1, 領域N2
… Anomaly
„
データo1, データo2, 領域O3
…
„
不正利用、不正アクセス、テロ行動
“興味ある”データ
… 領域O3はAnomalyか?
„
ラベルなし学習ではモデルに依存
他の研究との関係
„
Noise removal, Noise accommodation
… 異常値は”つまらない”データ
„
„
除去した後のデータが目的
Novelty detection
… 過去に観測したことのないパターンの発見
„
ex. ニュースのnew topic detection
… 積極的に新しいパターンを学習
„
Anomaly detectionの手法を使える
Anomaly detectionの難しさ
„
「正常な振る舞い」を定義
… 「正常データ」から「正常モデル」を構築
… 正常モデルに従わないデータがanomaly
„
問題点
… 「従わない」をどう定義するか
„
正常と異常の境界、境界にあるデータ
… 「正常な振る舞い」は永遠に変化しないか?
„
過去の正常データからモデルを作る意味はあるか?
… 「正常データ」だけの集合を用意できるとは限らない
„
ラベルなし学習
問題の分類
„
入力データの性質による分類
… ベクトルデータ
„
属性の数
…
„
1属性(univariate), 多属性(multivariate)
属性の型
…
バイナリ、連続値、非数値
… 系列データ
„
時系列データ、遺伝子配列、タンパク質配列データ
… 空間データ
„
環境データ
… 時空間データ
„
気候データ
… グラフデータ
Anomalyの種類による分類
„
Point anomaly
… 単独でアノマリ
他のデータインスタンスに依存しない
„ モデルと対象インスタンスのみを見て判断
„
„
Contextual anomaly
… “文脈的”なアノマリ
気温2℃は冬には正常、夏では異常
„ 1000$の買い物 クリスマスには正常
„
„
Collective anomaly
ラベルつきデータの有無による分類
„
ラベルつき学習データ
… 多くの場合人手で作成
„
„
高価
Supervised anomaly detection
… 正常と異常のラベルつき学習データ
„
„
全ての異常ケースを用意するのは困難
Semi-Supervised anomaly detection
… 正常のみの学習データ
„
Unsupervised anomaly detection
… ラベル無し学習データ
„
„
正常か異常かは分からないまま学習
正常と異常を分ける仮定が必要
要求される出力による分類
„
各テストデータに対する異常判定
… アノマリスコア
„
スコア付きの異常検出
…
どのくらい「異常らしい」か
… ラベル出力
„
正常か異常かの2値出力
クレジットカード不正利用発見
„
他人による不正利用を感知
… 利用履歴から推定
„
普段と比較して異常に高額の利用、頻繁な利用
… ベクトルによる表現
„
利用者ID、利用額、前回利用からの時間
… オンライン分析
„
すぐに利用停止にする必要がある
医療におけるアノマリ発見
„
測定データから病気の疑いを感知
… 身長、体重、年齢、血液型、…
„
Point Anomaly
… 心電図波形、MRI画像
Classification based techniques
„
分類問題
… 正常データからモデル(分類器)を学習
… モデルによりテストデータを正常と異常に分類
„
マルチクラス分類
… 複数の正常クラスを持つ
„
„
どのクラスにも属さないとき異常と判定
2クラス分類
… 正常クラスはひとつ
Neural Network
„
階層型ニューラルネット
… 非線形のベクトル分類が可能
„
多入力、多出力の線形素子の組み合わせ
u1
S1
u2
S2
u3
„
S i = ∑ wij u j + bi
j
中間層
(隠れ層)
重みwij、バイアスbiを学習
正常、異常の教師データ
… 不正解を出力したら修正
ƒ 収束するまで繰り返す
…
入力層
出力層
171cm
94kg
632mg/dl
anomaly!
Bayesian Network
„
アノマリの事後確率を求める
… 観測の上での条件付確率
„
学習データから推定
…
最尤推定
… 最も事後確率の高いクラスに分類 buffer-overflow
„
正常クラス、異常クラス
…
マルチクラス分類
P(BOA|ssh, ftp) = 0.01
P(BOA|ssh, buffer-overflow) = 0.68
P(BOA|buffer-overflow, ftp) = 0.47
P(BOA|ssh, buffer-overflow, ftp) = 0.97
…
ssh
ftp
Normal
buffer-overflow attack
brute force attack
Support Vector Machine
„
2値分類アルゴリズム
… ベクトルの線形分離
„
線形分離不可能な場合、特徴空間に射影
…
„
カーネル法
マージンを最大にする分離超平面
分離超平面
マージン
最大化
正常
異常
Rule Based Classification
„
Decision Tree
… 正常と異常を分けるルールを学習
… 条件が木構造の形
„
Association rule mining
… 頻出パターンから相関ルールを発見
Nearest Neighbor法
„
正常データ同士は「近い」
… 空間上で密集するデータは正常
„
異常データは空間上で孤立
…
p1, p2がアノマリ
… データ同士の「距離」を定義
… 距離が定義できれば適用可能
グラフ構造
„ 系列データ
„
k Nearest Neighbor
„
自分からk番目に近いデータまでを見る
… 距離を「アノマリ度」とする手法
k番目のデータまでの距離
„ 1からk番目までの距離の和
„
… 密度を「アノマリ度」とする手法
ある距離dまでに含まれるデータの数
„ Local Outlier Factor
„
近傍kのデータそれぞれの密度の平均で割る
D
… LOFが大きいほど正常
…
LOF =
1
N
∑D
k
k
k近傍法のバリエーション
„
Connectivity-based Outlier Factor
… 連鎖するデータを優先して近傍とする
„
„
„
„
„
„
1.自分を近傍集合に入れる
2.一番近いデータを探して近傍集合に入れる
3.近傍集合の要素それぞれ一番近いデータを探す
4.その中で最も距離の短いデータを近傍集合に入れる
5.近傍集合の大きさがkになるまで繰り返す
Outlier Detection using In-degree Number
… 自分が何人のk近傍に入っているか
„
Multi-granularity Deviation Factor
… 近傍kの密度の分散
クラスタリングによるアノマリ発見
„
Anomaly Detectionへの適用
… クラスタに所属しないデータを認める手法
DBSCAN
„ ROCK
„
… アノマリ判定
どのクラスタにも所属しないデータ
„ 小さくスパースなクラスタに含まれるデータ
„
… 新しく入ってきたデータのアノマリ判定
クラスタリングの枠組みでは議論されていない
„ 「クラスタの重心に近いデータは正常」と仮定
„
統計的手法
„
検定手法
… 統計的な信頼性の下で判定
„
確率モデルの適用
… データは確率モデルに基づいて発生すると仮定
„
学習データによりモデルのパラメタを推定
…
„
「正常モデル」
モデルにおける確率が低いデータはAnomaly
… パラメトリックモデル
„
分布の形をあらかじめ想定
…
正規分布、指数分布
… ノンパラメトリックモデル
„
分布の形が学習データに依存
正規分布
„
平均μ、分散σ2で決まる
… 学習データからパラメタを推定
„
全学習データの平均、分散
1
µ = ∑x
N
N
i =1
1
σ =
N
2
i
N
∑ (x − µ)
i =1
2
i
… t検定
z=
„
|x−µ|
σ
zが小さいほど正常
…
学習データの平均と差がない
Mahalanobis距離
„
t検定の多次元データへの拡張
D 2 = ( x − µ )T S −1 ( x − µ )
… Sは共分散行列
… 分散の逆数の重み
„
分散が大きい方向には差が大きくなりやすい
… Dが大きいほどアノマリ
混合分布によるモデル化
„
正常モデルとアノマリモデルの混合分布
D = λA + (1 − λ ) M
„
正常を混合分布でモデル化
… 混合正規分布
… 混合ポアソン分布
ノンパラメトリック手法
„
ヒストグラムモデル
… データを「ビン」に落とす
„
値の離散化
… 確率の高いビンが正常
… 多変数に弱い
„
独立を仮定することが多い
50
40
30
20
10
0
エントロピー最小化
„
アノマリ集合Oの発見
… 与えられたベクトルデータの集合D
„
C(D) – C(D-O) を最大にするO
… アノマリデータは複雑性を増大させる
„
Cをベクトルのエントロピーとして定義
Entropy ( x )=− ∑ p ( xi ) log p ( xi )
i
„
…k
pは各成分の確率分布
= |O| 個のアノマリデータ
„
kをあらかじめ指定
コルモゴロフ複雑性の最小化
„
Kolmogorov Complexity
… Dを生成する最小のプログラムがDの複雑性
„
D = “AAAAABBBBBCCCCC….YYYYYZZZZZ”
…
„
for(char k=‘A’; k<=‘Z’; k++) print(k+k+k+k+k);
…
„
130byte
46byte
C(D) – C(D-O) を最大にするO
… Cをコルモゴロフ複雑性として定義
„
任意の圧縮アルゴリズムで最小にした文字列
…
特定のドメインの圧縮に特化したアルゴリズム
主成分のマハラノビス距離
„
主成分分析
… 学習データDの基底変換
ˆ ˆˆ ˆ
yi = ei ( x − x )
eはDの共分散行列の固有ベクトル
„ 次元i の分散は固有値λi
„
„
主成分のマハラノビス距離
平均0、共分散0
„ χ2値に従う
„
Contextを考慮したアノマリ発見
Context属性つきのデータ(x, y)
„ 混合分布によるモデル
„
… Contextの確率分布
„
p(x∈U)
クリスマスの買い物である確率
… 特定のContext上での振舞いの確率分布
„
クリスマスでの正常な買い物の仕方
p(y∈V)
Hierarchical Regime-switching model
„
隠れ状態を持つ時系列モデル
… 階層構造をもつ
… 携帯電話の不正使用検出
V={1,0}は不正に複製されている状態
„ S={1,0}は不正通話している状態
„ Yは通話情報のベクトル
„
系列集合からのアノマリ発見
„
系列データ集合
… アノマリは系列全体
„
„
たんぱく質(アミノ酸系列データ)
プログラムのシステムコール列
… ベクトルのアノマリ発見に帰着
„
系列を特徴量ベクトルに写像
… 系列同士の距離を定義
„
クラスタリング、k-NN
… 系列の確率を定義
„
FSA、マルコフモデル
…
„
確率の低い系列がアノマリ
HMM
…
確率の低いシンボル出力が出たら「ミスマッチ」とする
ƒ ミスマッチ回数
discord発見
„
長い系列データの部分系列がアノマリ
… マーケットバスケットトランザクション
„
itemsetの系列
…
符号化して符号長が最小になるような部分系列に分割
結論とFuture Work
„
様々な手法
… ドメインによって選ぶ
„
データストリームへの適用
… モデルが変化していく