Isolation forest
- 3. 研究背景(2/2)
• 既存の異常検知法の欠点
• False Negativeが多い
• 通常のデータのプロファイルに利用されるが、
異常検知には利用されない
• 計算がとても複雑である
• 低次元のデータやデータサイズの小さいものを使わざるを得ない
• 既存手法と異なる、モデルに基づく異常検知法
Isolation Forestを提案
• 異常なデータの持つ特徴を利用する
• 異常なデータは正常なデータに対して少数である
• 異常なデータは正常なデータと大きく異なっている
3
データ群
正常なデータ 異常なデータ
データ長
16byte
データ長
128byte
- 4. Isolation Forest(iForest)について
• Isolation Tree(iTree)の結果を統合した検知方法
• 作成する木の数、サブサンプリングサイズによって
検知精度が決定する(不定要素はこの2種のみ)
• 既存手法(k近傍法、LOF)で利用される、
密度や距離は利用しない
• 計算量は線形時間、メモリ使用量も少ない
• iTreeについて
• データ集合の要素を機構増に配置する
• 再帰的にパーティションをランダムに行い要素を分割
• 異常なデータはパーティションで早く分割される
• 異常なデータはパーティションの数が少なくなる
4
- 9. iTreeの作成方法
• iTreeの定義
• iTreeは二分木
• T:iTreeのノード、葉か二つの子を持つ
• X:入力値{𝑥1, 𝑥2, 𝑥3, … , 𝑥 𝑛}
• q:Xの持つ属性
• p:Xを分割する値で属性qの最小値から最大値までのランダムな値
• iTreeの構成方法
• Xを次の3つの条件になるまで分割
1. 木の高さが事前に決めた最大値と同じ高さになる
2. 𝑋 = 1
3. 𝑥𝑖が全て同じ値を持つ
• 全てのノードが葉になれば木の構成を終了
• 葉のノード数はn,内部ノードはn-1、iTreeは2n-1のノードを持つ
• iTreeのメモリ使用量はO(n)
9
- 10. 異常検知の方法
• パス長から異常検知のアノマリースコアを算出
• ℎ 𝑥 :パス長
• 𝑐 𝑛 :iTree内でのh(x)の正規化
• 𝐻 𝑖 :調和数、𝐻 𝑖 = log 𝑖 + 0.57721
• 𝐸 𝐻 𝑥 :すべてのiTreeのℎ 𝑥 の平均値
• 𝑠 𝑥, 𝑛 :xのアノマリースコア
• アノマリースコアの算出方法
• 𝑐 𝑛 = 𝐻 𝑛 − 1 − 2 𝑛−1
𝑛
†
• 𝑠 𝑥, 𝑛 = 2
−
𝐸 ℎ 𝑥
𝑐 𝑛
• 異常かどうかの判定方法
• sが1に近いとき →異常
• s < 0.5 →異常ではない
• 全ての s = 0.5 →異常なデータはデータセットにない
10
†B.R.Preiss. Data Structures and Algorithms with Object Oriented Design Patterns in Java. Wiley,1999
- 14. 評価環境
• 動作環境
• シングルスレッド
• CPU:2.3GHz
• 評価項目
• 処理時間(学習時間と評価時間の合計)とAUC
• 評価対象
• 11個の実データセットと1個の人工的データセット
• n:データの総数
• d:パラメータの数(次元数)
• Satelliteより上は
データ数1000以上
14
- 17. LOFとRFとの比較結果
• AUCについて
• LOF :7/8のデータセットにおいてiForestの性能が上
• RF :全てにおいてiForestの性能が同等or上
• 時間について
• 殆どのデータセットにおいてiForestの性能が上
17
既存の異常検知法よりもiForestは良い結果を出している
- 18. サブサンプリング数の変更
• サブサンプリング数φを2,4,8,…,32768まで変更
• グラフについて
• データセットはデータ数の多いHttpとForestCoverを利用
• 実線がAUC、点線がiForest実行時間
• 左軸:時間、右軸:検知精度、x軸:サブサンプリング数
• φがちいさくてもAUCは収束する
• Http :φ=128で最もよいAUC値と誤差0.00045
• ForestCover :φ=512で最も良いAUC値と誤差0.00018
• φが大きくなると実行時間が長くなる
• φを大きくすることは必要ではない 18
- 19. 高次元データの異常検知
• 高次元のデータにはノイズが存在
• 506個の無関係の属性を追加しiForestを実行
• 尖度を利用、分類するのに重要な属性のランキングを作成
• 尖度:確率変数の確率密度関数や頻度関数の鋭さを示す。
• iForestの実行に使う属性の数を決め、ランキングから属性を選択
• 実行結果
• 属性の多いMammography
,Annthyroidを利用
• 実線がAUC、点線が時間
• x軸:iForestに使う属性の数
左軸:時間、右軸:AUC
19
iForestは余分なノイズや属性があったとしても検知可能
しかし除いたほうがよい結果が出るため尖度の利用を推奨
- 20. 通常のデータのみのiForest
• 異常なデータの収集は難しいケースが多い
• 通常のデータのみで異常検知が可能であるか検証
• データセットはHttpとForestCoverを使用
• データセットから異常なデータを除外しiForestを実行
• 異常なデータを除外すると検知率が下がる
• サブサンプリング数を大きくすると問題がなくなる
20
データセット 元のAUC 通常のデータのみ
(φ=256)
通常のデータのみ
(φの値変更)
Http(KDDCUP99) 0.9997 0.9919 0.9997
(φ=8192)
ForestCover 0.8817 0.8802 0.884
(φ=512)
通常のデータのみでiForestを行う場合
サブサンプリング数を挙げたほうが良い結果となる
- 21. まとめ
• 異常検知法としてIsolation Forestを提案した
• 異常なデータの持つ「少なく、違っている」点を利用し、
木を構成する
• 異常なデータは構成した木の根から近いところに存在
• iForestはサブサンプリングや少ないデータでも検知可能な
ことにより処理時間やメモリ使用量が少なく済む
• 評価の結果
• データサイズが大きくなるほど既存手法より性能が良い
• 異常検知に関係のないデータが含まれている場合でも
尖度を利用することにより検知が可能となる
• 通常のデータのみを用いても異常検知が可能である
• 通常のデータのみの場合であればデータサイズは大きくするべき
21