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 2024 Paperzz