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
様々な手法
ドメインによって選ぶ
データストリームへの適用
モデルが変化していく
© Copyright 2025 Paperzz