JP6707716B2 - 異常情報推定装置、異常情報推定方法及びプログラム - Google Patents

異常情報推定装置、異常情報推定方法及びプログラム Download PDF

Info

Publication number
JP6707716B2
JP6707716B2 JP2019519038A JP2019519038A JP6707716B2 JP 6707716 B2 JP6707716 B2 JP 6707716B2 JP 2019519038 A JP2019519038 A JP 2019519038A JP 2019519038 A JP2019519038 A JP 2019519038A JP 6707716 B2 JP6707716 B2 JP 6707716B2
Authority
JP
Japan
Prior art keywords
abnormality
vector
dimension
factor
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2019519038A
Other languages
English (en)
Other versions
JPWO2018211721A1 (ja
Inventor
泰弘 池田
泰弘 池田
石橋 圭介
圭介 石橋
中野 雄介
雄介 中野
敬志郎 渡辺
敬志郎 渡辺
川原 亮一
亮一 川原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Publication of JPWO2018211721A1 publication Critical patent/JPWO2018211721A1/ja
Application granted granted Critical
Publication of JP6707716B2 publication Critical patent/JP6707716B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3452Performance evaluation by statistical analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/23Clustering techniques
    • G06F18/232Non-hierarchical techniques
    • G06F18/2321Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/10Machine learning using kernel methods, e.g. support vector machines [SVM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/01Probabilistic graphical models, e.g. probabilistic networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Medical Informatics (AREA)
  • Evolutionary Biology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Probability & Statistics with Applications (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Testing And Monitoring For Control Systems (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は、異常情報推定装置、異常情報推定方法及びプログラムに関する。
観測対象のシステムから様々なデータをリアルタイムで観測する機能を有するシステムに関して、正常時のデータを用いて正常時におけるメトリック間(観測データ間)の相関関係を学習し、正常時におけるメトリック間の相関関係がテストデータにおいて崩れていた場合に、そのテストデータの「異常度」を出力するようなアルゴリズムが提案されている(例えば、非特許文献1、非特許文献2)。このようなアルゴリズムでは、観測するデータが大量にあるような場合でも、一次元の「異常度」というメトリックで異常の有無を判断できる。
Hodge, Victoria J., and Jim Austin. "A survey of outlier detection methodologies." Artificial intelligence review 22.2 (2004): 85-126. 櫻田 麻由 ・ 矢入 健久,"オートエンコーダを用いた次元削減による宇宙機の異常検知", 人工知能学会全国大会論文集 28, 1-3, 2014
従来技術では、「異常度」により、異常の有無を判断することは可能であるが、異常と判断された場合に、異常に関する詳細な情報を得るのは困難であった。
本発明は、上記の点に鑑みてなされたものであって、検知された異常に関する詳細な情報の推定を可能とすることを目的とする。
そこで上記課題を解決するため、異常情報推定装置は、正常時の数値ベクトルの学習に基づいて、前記数値ベクトルの入力データの異常度を出力する異常検知アルゴリズムによって異常が検知された異常データを入力する入力部と、前記異常データに足し合わすことで前記異常度が小さくなるベクトルを、各次元が異常の要因である尤もらしさを考慮して探索し、探索したベクトルに基づいて異常の要因を推定する推定部と、を有する。
検知された異常に関する詳細な情報の推定を可能とすることができる。
第1の実施の形態における異常要因推定装置10のハードウェア構成例を示す図である。 第1の実施の形態における異常要因推定装置10の機能構成例を示す図である。 第1の実施の形態における異常要因推定装置10が実行する処理手順の一例を説明するためのフローチャートである。 第8の実施の形態の一例を説明するための図である。 第10の実施の形態において出力部13が実行する処理手順の一例を説明するためのフローチャートである。 第10の実施の形態を説明するための図である。 第11の実施の形態において出力部13が実行する処理手順の一例を説明するためのフローチャートである。 第1の実施の形態で要因推定を行った場合の各特徴量の要因度を絶対値でソートしたグラフを示す図である。 第1の実施の形態で要因推定を行った場合の実際の要因を推定できた割合を示す図である。 第3の実施の形態で要因推定を行った場合の初期値を与えたときの計算時間を示す図である。 第6の実施の形態の推定の精度の一例を示す図である。 第11の実施の形態を用いて要因度をクラスタリングした結果の一例を示す図である。
以下、図面に基づいて本発明の実施の形態を説明する。図1は、第1の実施の形態における異常要因推定装置10のハードウェア構成例を示す図である。図1の異常要因推定装置10は、それぞれバスBで相互に接続されているドライブ装置100、補助記憶装置102、メモリ装置103、CPU104、及びインタフェース装置105等を有する。
異常要因推定装置10での処理を実現するプログラムは、CD−ROM等の記録媒体101によって提供される。プログラムを記憶した記録媒体101がドライブ装置100にセットされると、プログラムが記録媒体101からドライブ装置100を介して補助記憶装置102にインストールされる。但し、プログラムのインストールは必ずしも記録媒体101より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置102は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
メモリ装置103は、プログラムの起動指示があった場合に、補助記憶装置102からプログラムを読み出して格納する。CPU104は、メモリ装置103に格納されたプログラムに従って異常要因推定装置10に係る機能を実行する。インタフェース装置105は、ネットワークに接続するためのインタフェースとして用いられる。
図2は、第1の実施の形態における異常要因推定装置10の機能構成例を示す図である。異常要因推定装置10は、観測対象のシステムにおいて観測された複数種類の観測データに基づいて異常を検知するための異常検知アルゴリズムにおいて異常と判断された場合の要因を推定する際に、各次元(各観測データ)が要因となる尤もらしさを考慮することで精度よく要因推定を行う。斯かる要因推定の実行のため、異常要因推定装置10は、入力部11、演算部12及び出力部13等を有する。これら各部は、異常要因推定装置10にインストールされた1以上のプログラムが、CPU104に実行させる処理により実現される。
なお、観測対象のシステムは、ネットワークであってもよい。この場合の観測データは、MIB(Management Information Base)データ、NetFlowによるフローデータ、CPU使用率等であってもよい。
図3は、第1の実施の形態における異常要因推定装置10が実行する処理手順の一例を説明するためのフローチャートである。ここでは、異常検知アルゴリズムとしてオートエンコーダ(非特許文献2)が用いられるとする。但し、主成分分析やバリエーショナルオートエンコーダ(Variational AutoEncoder)等、公知の他のアルゴリズムが異常検知アルゴリズムとして用いられてもよい。
異常検知時において、或る観測データ(テストデータ)について異常ありと判断された場合、入力部11より当該テストデータ(異常データ)の特徴ベクトルx_test=(x_test_1,x_test_2,…,x_test_N)、オートエンコーダのパラメータセットθ、特徴ベクトルにおける各次元の特徴量の要因のなりにくさc(又は要因としての尤もらしさ)=(c_1、…、c_N)、及び異常度の閾値βが入力される(S101)。
テストデータの特徴ベクトルとは、例えば、各観測データの単位時間あたりの特徴量を次元とする数値ベクトルである。例えば、単位時間が1分で、1分間ごとの特徴量を抽出するとする。また、特徴量を、各プロトコル(TCP,UDP)の全送信バイト数であるとする。この場合、1分間のTCPの送信データの集合と、1分間のUDPの送信データの集合とについて、プロトコルがTCPである全フローの全送信バイト数、プロトコルがUDPである全フローの全送信バイト数等が計算され、それらの特徴量を各次元の要素とする2次元数値ベクトルが生成される。
また、θは、正常時におけるデータで学習されたオートエンコーダに対するパラメータであり、オートエンコーダが出力する異常度は、f(x_test,θ)として表される。以下、簡単のためθの表記は省略し、異常度を単純にf(x_test)として表す。
続いて、演算部12は、x_testの各次元に対応する次元を足し合わせることでオートエンコーダに入力した際の異常度が閾値β以下となるようなベクトルxを探索する(S102)。すなわち、f(x_test+x)が閾値β以下となるxが探索される。探索されたxにおいて、値が非ゼロである次元が、異常の要因として推定される。
探索において、要因のなりにくさc_iの大きい特徴量(次元)が要因として選ばれにくくするようにするための項として、λ||c・x||_l_pが考慮(追加)される。すなわち、
f(x_test+x)+λ||c・x||_l_p
を目的関数とし、当該目的関数が閾値β以下となるようなベクトルxが探索される。ここで、λは、項の係数、c・xは、cとxとの要素ごとの積、||・||_l_pは、l_pノルムを表す。特に、p≦1の場合には、λ||c・x||_l_pは、xにおける非ゼロの要素の数をできるだけ抑えるスパース項の役割を果たす。以下、p=1の場合について示す。
λは、どれだけ非ゼロの要素を抑えるのかを調整するためのパラメータであり、λが大きいほど非ゼロの要素は少なくなる。λの与え方としては、入力部11より直接λを入力する方法や、入力部11には所望のスパース性、すなわち、非ゼロの要素を何個以下に押さえたいのかが入力され、λについては様々な値を内部(例えば、補助記憶装置102等)で保持しておき、それぞれを採用した際の解の中で、最も所望のスパース性に近かったものを解として用いる方法等が考えられる。
cの与え方としては、例えば、対応する特徴量が異常の要因となる確率が既知である場合に、その確率の逆数に比例する値や、対応する特徴量の正常時における分布の平均がx_train_mean_iであり、標準偏差がx_train_std_iである場合に、平均からの誤差を標準偏差で除した値を外れ度合いと定義したときの、外れ度合いの絶対値の逆数に比例する値や、異常検知アルゴリズムが、入力されたテストデータと同次元の数値ベクトルを出力し、出力ベクトルとテストデータのベクトルの距離を異常度とみなすようなアルゴリズムである場合に、テストデータの値x_test_iと、x_test_iに対応する次元の出力ベクトルy_iの誤差である再構成誤差x_test_i−y_iの絶対値の逆数に比例する値等が考えられる。
また、全ての特徴量の要因のなりにくさが等しい場合、すなわちc_1=c_2=…=c_N=1である場合、λ||c・x||_l_pは、一般的なスパース項となる。
ここでは、c_1=c_2=…=c_N=1の例について示す。この時、演算部12が解くべき最適化問題は、下記のように表される。
min_xf(x_test+x)+λ||x||_1
上記の最適化問題を、f(x_test+x)≦βとなるまで解くことで、異常度を閾値β以下にするようなベクトルが探索される。上記のようなl_1ノルム最適化問題を解く手法としては様々なものが提案されており、例えば、加速付き近接勾配法を用いて効率的に解くことができる。加速付き近接勾配法については、「Beck, Amir, and Marc Teboulle. "A fast iterative shrinkage-thresholding algorithm for linear inverse problems." SIAM journal on imaging sciences 2.1 (2009): 183-202.」等の文献が参考とされてもよい。
続いて、出力部13は、xにおいて非ゼロであるような次元に対応する特徴量を、異常の要因である特徴量、xにおいて非ゼロであるような次元の値にマイナスをかけた値を要因の度合いとして出力する(S103)。すなわち、xにおいて非ゼロであるような次元に対応する特徴量が、異常の要因であると推定される。マイナスの値をかけるのは、例えば、x_iが正の値である場合、当該x_iは、x_test_iをさらに増加させれば異常度が下がることを示しており、つまり、x_test_iが正常時に比べて低い値をとっているということを表すためである。
次に、第2の実施の形態について説明する。第2の実施の形態では第1の実施の形態と異なる点について説明する。第2の実施の形態において特に言及されない点については、第1の実施の形態と同様でもよい。
第2の実施の形態では、異常の要因を推定する際に、特徴量が取りうる値を制約条件として与えて解くことで、より尤もらしい要因を推定する方法を示す。
ステップS101において、入力部11によって、第1の実施の形態におけるパラメータに加えて、各特徴量が取りうる値の制約条件が入力される。制約条件としては、例えば、最小値や最大値が入力されてもよい。この場合、トラヒック量のように負の値を取らない特徴量であれば、最小値が0として入力される。
ステップS102において、演算部12は、第1の実施の形態の最適化問題に対して、入力された制約条件を追加した最適化問題を解く。例えば、入力情報が全て負の値を取らない特徴量であれば、最適化問題は下記のように表される。
min_xf(x_test+x)+λ||x||_1
sbj.to x_test_i+x_i≧0 for all i
制約条件を含んだ最適化問題を解く方法としては、制約条件を侵害した時に目的関数を大きくするような項を目的関数に与えるペナルティ法などが考えられる。ペナルティ法については、「Kurt Bryan and Yosi Shibberu, " Penalty Functions and Constrained Optimization." Dept. of Mathematics, Rose-Hulman Institute of Technology, 2005.」等の文献が参考とされてもよい。
次に、第3の実施の形態について説明する。第3の実施の形態では第1の実施の形態と異なる点について説明する。第3の実施の形態において特に言及されない点については、第1の実施の形態と同様でもよい。
第3の実施の形態では、異常の要因を推定する最適化問題を解く際に、解の初期値を予め与えることで、より尤もらしい要因を推定しつつ、問題を解く計算時間を低減する方法を示す。
ステップS101において、入力部11によって、第1の実施の形態におけるパラメータに加えて、テストデータの各次元(各特徴量)の正常な状態からのずれを示す値が入力される。ずれを示す値としては、例えば、第1の実施の形態における外れ度合いや再構成誤差が考えられる。
ステップS102において、演算部12は、最適化問題を解く際に、xの初期値をx_0とし、x_0を入力部11より入力された各特徴量のずれにマイナスを乗じた値に比例する値として与える。例えば、ずれを示す値として再構成誤差を用いた場合、x_0_i=−α(x_test_i−y_i)として与えられる。ここで、αは比例定数である。y_iは、他の次元とi番目の次元との相関関係を考慮してi番目の次元を再構成した値である。x_test_i−y_iが正の値であるときは、x_test_iは他の次元との相関関係を考慮した場合、もっと低い値である方がよい可能性が高いため、探索の初期値x_0_iを−(x_test_i−y_i)に比例した正の値にとる。その結果、より早く最適解を得られ、計算時間を低減できると考えられる。また最適化問題の解法によっては、初期値に依存した局所解が出力される場合があるが、この場合、外れ度合いや再構成誤差に基づいて初期値を与えることで、より尤もらしい要因が解として出力されることが期待される。
次に、第4の実施の形態について説明する。第4の実施の形態では第1の実施の形態と異なる点について説明する。第4の実施の形態において特に言及されない点については、第1の実施の形態と同様でもよい。
第4の実施の形態では、異常の要因を推定する最適化問題を解く際に、解の探索時に動かす次元を制限することで、より尤もらしい要因を推定しつつ、問題を解く計算時間を低減する方法を示す。
ステップS101において、入力部11によって、第3の実施の形態と同様に、第1の実施の形態におけるパラメータに加えて、各特徴量の正常な状態からのずれを示す値及び閾値γが入力される。
ステップS102において、演算部12が最適化問題を解く際には、xについて、入力された正常な状態からのずれが閾値γ未満である次元は0として固定され、正常な状態からのずれが閾値γ以上である次元のみを動かして探索が行われる。これは、正常な状態からのずれが小さい次元は異常の要因である可能性が低いためである。そのような次元は動かさず、それ以外の次元のみを探索対象とすることで、最適化問題の探索領域を制限し、計算時間を低減できると考えられる。また、このように制約を与えることで、異常の要因である可能性が低い次元を動かさないため、より尤もらしい要因を解として出力されることが期待される。
次に、第5の実施の形態について説明する。第5の実施の形態では第1の実施の形態と異なる点について説明する。第5の実施の形態において特に言及されない点については、第1の実施の形態と同様でもよい。
第5の実施の形態では、異常の要因を推定する最適化問題を解く際に、第3の実施の形態と同様に初期値を与え、かつ、第4の実施の形態と同様に探索領域を制限することで、最適化問題の計算時間をより短縮する。
なお、上記各実施の形態の組合せは第3及び第4の実施の形態に限られない。上記各実施の形態が適宜組み合わされてよい。
次に、第6の実施の形態について説明する。第6の実施の形態では、第1の実施の形態と異なる点について説明する。第6の実施の形態において特に言及されない点については、第1の実施の形態と同様でもよい。
第6の実施の形態において、出力部13は、更に、xの各次元の絶対値に対して閾値θを与え、絶対値が閾値θを超えるような次元に対応する特徴量を、異常の要因である特徴量として出力する。ここでは、閾値θとしてxの各次元の絶対値の全体の統計量を取ることを考える。統計量の例として、xの各次元の絶対値の平均値などが挙げられる。
次に、第7の実施の形態について説明する。第7の実施の形態では、第1の実施の形態と異なる点について説明する。第7の実施の形態において特に言及されない点については、第1の実施の形態と同様でもよい。
第7の実施の形態において、出力部13は、更に、xの各次元の絶対値に対して閾値θを与え、絶対値が閾値θを超えるような次元に対応する特徴量を、異常の要因である特徴量として出力する。xの各次元の絶対値に対する閾値θは、過去に異常と判断されたテストデータの各次元の要因度と、各次元が実際に異常であったかを示す情報とに基づいて定められる。ここで、要因度とは、xの各次元の値をいう。
過去に異常と判断されたテストデータy_t=(y_{t,1},…,y_{t,N}),各次元が実際に異常の要因であったか否かを示すラベルz_t=(z_{t,1},…,z_{t,N}),t=1,…,Tが、予め補助記憶装置102に記憶されているとする。ここで、z_{t,i}は、y_{t,i}が異常の要因であった場合に1、そうでない場合に0となる。この際、閾値θについては、異常の要因であった次元の要因度に関する統計量と、異常の要因ではなかった次元の要因度に関する統計量から決定される。ここでは、異常の要因であった次元の要因度の絶対値の平均値と、異常の要因ではなかった次元の要因度の絶対値の平均値との、さらに平均の値を、閾値θとして与えることにする。すなわち、
θ=(Σ_{i=1}Σ_{t=1}z_{t,i}y_{t,i}/Σ_{i=1}Σ_{t=1}z_{t,i}+Σ_{i=1}Σ_{t=1}(1−z_{t,i})y_{t,i}/Σ_{i=1}Σ_{t=1}(1−z_{t,i}))/2
として計算される。
次に、第8の実施の形態について説明する。第8の実施の形態では、第1の実施の形態と異なる点について説明する。第8の実施の形態において特に言及されない点については、第1の実施の形態と同様でもよい。
第8の実施の形態において、出力部13は、xの各次元の絶対値をソートし、隣接する次元との絶対値の差分が最も大きい点を、異常の要因である次元と要因でない次元との境界として、絶対値が大きい側に含まれる次元を異常の要因である次元として出力する。これは、要因度の絶対値で全次元をソートした場合、異常の要因ではない次元と異常の要因である次元とでは、要因度の絶対値が大きく変化するであろうという前提に基づく。
図4は、第8の実施の形態の一例を説明するための図である。例えば、図4に示す例では、xの各次元(すなわち、各要因度)の絶対値が大きい順に左から右に並んでおり、隣との差分がd_1,…,d_6として与えられている。これらの差分のうち最も大きいd_4の部分が異常の要因である次元とそうではない次元との境界と判定され、絶対値が大きい側の次元が、異常の要因である次元として出力される。
次に、第9の実施の形態について説明する。第9の実施の形態では、第1の実施の形態と異なる点について説明する。第9の実施の形態において特に言及されない点については、第1の実施の形態と同様でもよい。
第9の実施の形態において、出力部13は、異常の要因である次元においては要因度の絶対値が大きく、そうでない次元においては要因度の絶対値が小さくなる点に着目し、要因度の絶対値を一次元データとみなして、全次元を2クラスタにクラスタリングを行い、要因度の絶対値の平均が大きい側のクラスタに含まれた次元を異常の要因である次元として出力する。クラスタリングを行う手法として、クラスタ数を指定したクラスタリングを行えるK−means等が考えられる。K−meansについては、例えば、「Jain, Anil K. "Data clustering: 50 years beyond K-means." Pattern recognition letters 31.8 (2010): 651-666.」等が参考とされてもよい。
なお、上記では、クラスタ間において、要因度の絶対値の平均を比較する例について説明したが、クラスタ間で比較される値は、クラスタ全体の傾向を示す統計量であれば所定の統計量に限定されない。したがって、例えば、中央値がクラスタ間で比較されてもよい。
次に、第10の実施の形態について説明する。第10の実施の形態では、第1の実施の形態と異なる点について説明する。第10の実施の形態において特に言及されない点については、第1の実施の形態と同様でもよい。
第10の実施の形態において、出力部13は、原因が分かっている異常データとその要因度ベクトルが与えられている際に、ベクトルxとの距離が最も近い要因度ベクトルに対応する異常データの原因をテストデータの原因として出力する。ここで、原因とは、例えば、ルータの故障等、異常そのものの原因をいい、異常データ全体に対する概念である。また、原因が分かっている異常データの要因度ベクトルは、例えば、当該異常データに関して演算部12が図3のステップS102と同様の処理を実行することにより得られる。
図5は、第10の実施の形態において出力部13が実行する処理手順の一例を説明するためのフローチャートである。第10の実施の形態では、図3のステップS103の代わりに、図5に示す処理手順が実行される。また、第10の実施の形態では、原因が分かっているL個の異常データのそれぞれの要因度ベクトルであるa_l(l=1,…,L)が予め補助記憶装置102に保存されているとする。換言すれば、a_lは、異常の原因を示すラベルであるともいえる。
ステップS103−11において、出力部13は、各異常データの要因度ベクトルa_l(l=1,…,L)を読み込む。続いて、出力部13は、要因度ベクトルa_lの中で、ベクトルxとの距離が最も近いa_l*、すなわち、a_l*=argmin_{a_l}||x−a_l||を計算する(S103−12)。続いて、出力部13は、a_l*の原因を、xに係る原因(検知された異常の原因)であるとして出力する(S103−13)。
図6は、第10の実施の形態の一例を説明するための図である。図6に示す例では、原因が分かっている異常データの要因度ベクトルa、a、a_が与えられているが、テストデータの要因度ベクトルxとの距離が最も近いaの原因である「原因××」がテストデータの原因として推定される。
次に、第11の実施の形態について説明する。第11の実施の形態では、第1の実施の形態と異なる点について説明する。第11の実施の形態において特に言及されない点については、第1の実施の形態と同様でもよい。
第11の実施の形態において、出力部13は、原因が分かっている複数の異常データとそれぞれの当該異常データの要因度ベクトルが与えられている際に、ベクトルxと当該要因度ベクトルとについてクラスタリングを行うことで、ベクトルxと同じクラスタに属する異常データに対応する原因を、テストデータに関する異常の原因として出力する。
図7は、第11の実施の形態において出力部13が実行する処理手順の一例を説明するためのフローチャートである。第11の実施の形態では、図3のステップS103の代わりに、図7に示す処理手順が実行される。また、第11の実施の形態では、原因が分かっているL個の異常データのそれぞれの要因度ベクトルa_l(l=1,…,L)と、過去に異常と判断された各テストデータのそれぞれの要因度ベクトルb_t(t=1,…,T)とが予め補助記憶装置102に保存されているとする。
ステップS103−21において、出力部13は、各要因度ベクトルa_l及び要因度ベクトルb_tを補助記憶装置102から読み込む。続いて、出力部13は、異常と判断されたテストデータの要因度ベクトルxと、読み込んだa_l及びb_tとを合わせたデータセット(a_1,…,a_L,b_1,…,b_T,x)について、クラスタリングを実施する(S103−22)。
クラスタリングの手法としては、先述のK−meansを用いる方法や、DBScan、t−SNEなど様々な手法が考えられる。DBScanについては、例えば、「Tran, Thanh N., Klaudia Drab, and Michal Daszykowski. "Revised DBSCAN algorithm to cluster data with dense adjacent clusters." Chemometrics and Intelligent Laboratory Systems 120 (2013): 92-96.等」が参考とされてもよい。t−SNEについては、例えば、「Maaten, Laurens van der, and Geoffrey Hinton. "Visualizing data using t-SNE." Journal of Machine Learning Research 9.Nov (2008): 2579-2605.」等が参考とされてもよい。また、要因度ベクトルをそのままクラスタリングするのではなく、要因度ベクトルに対して更にオートエンコーダ等を用いた次元圧縮をしたデータに対してクラスタリングを行う方法も考えられる。
出力部13は、クラスタリングを行ったら、xが属するクラスタにa_1,…a_Lが存在するかを確認する(S113−23)。もし、一つのa_lだけがxが属するクラスタに存在した場合、出力部13は、当該a_lの原因をxに係る原因(検知された異常の原因)として出力する。a_1,…,a_Lのうち複数のa_lが、xが属するクラスタに存在した場合、出力部13は、その中で原因として最も多いものを選択する。原因の数が等しい場合は、ランダムに選ぶ等の方法が考えられる。クラスタ内にa_1,…,a_Lが存在しなかった場合、出力部13は、原因は不明として出力してもよいし、第10の実施の形態の方法で最も距離が近いa_lを選択し、当該a_lの原因を出力してもよい。
次に、実際に第1の実施の形態を用いて要因の推定を行った結果について示す。ここでは、学習データ及びテストデータを人工的に生成し、テストデータにおいて異常を発生させた次元を正しく推定できるかについて評価を行った。データは100次元とし、学習データについては各次元について下記のように生成した。
x_1〜x_10: N(1000,200)(平均1000、標準偏差200の正規分布に従う乱数)
x_{i+j×10}: (1+0.1×i)×x_i+N(100,50)for i=1:10、j=1:9(x_1〜x_10の二乗に比例した値に、平均100、標準偏差50の正規分布に従うノイズを付加)
学習データとして、上記の100次元ベクトルを1万レコード生成した。一方、テストデータについては1レコードとし、100次元ベクトルを学習データと同様に生成した後、x_91〜x_100を、元の値の1/10とした。すなわち、x_91〜x_100の10次元が、異常の要因となる次元である。
異常検知アルゴリズムとしてはオートエンコーダ(非特許文献2)を用い、中間層の次元数を10、活性化関数をシグモイド関数、学習エポック数を500として学習データで学習を行い、テストデータに対して異常検知を行った。なお、学習データ及びテストデータの双方について、各次元の値を、学習データにおける平均及び分散に基づいて標準化を行った上で学習及び異常検知を行った。
第1の実施の形態における要因推定では、p=1、c_1=c_2=…=c_N=1、λ=0.0005として、一般的なスパース項付きの最適化問題として、近接勾配法を用いて解いた。出力された要因の度合いを「要因度」とした場合に、要因度の絶対値が大きい順に並べたグラフを図8に示す。
ここでは、比較として、第1の実施の形態における外れ度合い、再構成誤差、最適化問題についてスパース項を付加しなかった場合の要因度についても同様に絶対値でソートされている。
図8より、外れ度合い、再構成誤差、要因度(スパース項なし)については多くの次元において値を持つが、スパース項をつけた要因度では、10個の次元のみが値を持っており、その他の次元についてはほぼ0に近い値となった。これら10個の次元は、テストデータにおいて異常の要因としたx_91〜x_100であった。つまり、スパース項をつけた要因度のみが、要因と推定される次元(=特徴量)について絞り込めていることが分かる。
次に、要因度の絶対値の大きい上位10個において、実際の要因であるx_91〜x_100が含まれる割合(以下、「計算精度」ともいう。)を図9に示す。ここでは、学習データ及びテストデータをランダムに生成した試行を10回行い、それぞれの試行において各評価値(外れ度合い、再構成誤差、要因度(スパース項なし)、要因度(スパース項あり))の絶対値の大きい上位10個において、実際の要因であるx_91〜x_100が含まれる割合及び各割合の平均を評価している。図9より、スパース項をつけた要因度のみが、どの試行においても100%の精度で要因を推定できていることが分かる。
また、第3の実施の形態を用いて、最適化問題を解く際の初期値を与えた場合の計算速度を評価した結果を図10に示す。ここで、単位は秒であり、outlierは、外れ度合いを初期値に用いた場合、recon.は、再構成誤差を用いた場合の結果であり、α=0.5とした。計算精度は、いずれも1であった。図10より、初期値を外れ度合いや再構成誤差に基づいて与えることで、計算時間を削減できていることが確認できる。
次に、第6の実施の形態を用いて、要因度の絶対値に対して、要因度の絶対値の平均を閾値として与えた上で、要因度の絶対値が閾値を超えた次元を要因の次元として推定した場合の精度を図11に示す。図11では、外れ度合い、再構成誤差、要因度(スパース項なし)、要因度(スパース項あり)が、それぞれoutlier,recon.,w/o L1,causalとして示されている。無地の棒グラフは、異常の要因として推定された次元が実際の要因である次元に対して占める割合であるrecall、グレーの棒グラフは、要因であると抽出した次元のうち実際に要因の次元であった割合であるprecisionである。それぞれ網掛けの無い無地の棒グラフはβ=100、γ=50、網掛けの有る棒グラフはβ=200、γ=50の結果を示している。
図11より、α、βに依らず、causal以外の方法ではrecallは高いもののprecisionが非常に低く、異常の要因として推定された次元の中に、実際には要因ではなかった次元が多く含まれていることが分かる。一方で、causalにおいては、recall及びprecisionのいずれもが比較的高く、実際の要因の次元をほぼ推定した上で、誤って要因として推定した次元の数が低く抑えられていることが分かる。以上より、第6の実施の形態により、精度よく異常の要因である次元を推定できることが分かる。
次に、第11の実施の形態を用いて、ネットワークの代表的なベンチマークであるNSL−KDD(Tavallaee, Mahbod, et al. "A detailed analysis of the KDD CUP 99 data set." Computational Intelligence for Security and Defense Applications, 2009. CISDA 2009. IEEE Symposium on. IEEE, 2009.)に対して、同様にオートエンコーダによる異常検知及びスパース項付きの最適化問題を用いた要因推定アルゴリズムを実施し、計算された要因度ベクトルをクラスタリングした結果を図12に示す。
図12では、クラスタリング手法としてt−SNEを用いており、入力データをそのままクラスタリングした結果(図12左)と、要因度ベクトルを用いてクラスタリングした結果(図12右)とが示されている。ここでは、t−SNEによって多次元の要因度をその距離の関係を保ったまま2次元空間に写像した結果をプロットしているため、要因度ベクトルが近いデータは2次元空間上においても近くにプロットされ、同じクラスタを形成する。また、図12では、度実際の原因に応じたクラスタリングがどの程できているのかを示すため、データの実際の異常の原因(DoS,R2L,U2R,Probe,Normal)に応じて異なる記号でプロットされている。なお、Normalは、実際には異常でないことを示し、図12右側内にある円状のクラスタは、要因度ベクトルの各次元の要因度が全てゼロ、すなわち、異常と判断されなかったクラスタを示す。
異常は頻繁に発生しないため、原因が分かっている異常データを十分に得られず、教師あり学習による原因の特定が難しいという課題があるが、図12のように、同じ原因のデータが同じクラスタに属する傾向にある。したがって、第11の実施の形態により、原因が分かっている異常データが少ない場合にも異常の原因を特定できる可能性が示されている。
上述したように、上記各実施の形態によれば、入力データの異常度を算出するような異常検知アルゴリズムによって異常が検知された際に、異常度を小さくするベクトルを探索し、当該ベクトルと入力データのベクトルとの誤差に基づいて異常の要因が推定される。この際、各次元が要因である「尤もらしさ」に関する項(c)を探索の目的関数に入れることで、異常の検知された入力データについて精度の高い要因推定を行うことができる、また、探索の初期値や探索領域を入力データやアルゴリズムの出力に応じて与えることで、探索に要する時間を削減することができる。
なお、本実施の形態において、異常要因推定装置10は、異常情報推定装置の一例である。演算部12は、推定部及び探索部の一例である。
以上、本発明の実施の形態について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
本出願は、2017年5月17日に出願された日本国特許出願第2017−098080号に基づきその優先権を主張するものであり、同日本国特許出願の全内容を参照することにより本願に援用する。
10 異常要因推定装置
11 入力部
12 演算部
13 出力部
100 ドライブ装置
101 記録媒体
102 補助記憶装置
103 メモリ装置
104 CPU
105 インタフェース装置
B バス

Claims (16)

  1. 正常時の数値ベクトルの学習に基づいて、前記数値ベクトルの入力データの異常度を出力する異常検知アルゴリズムによって異常が検知された異常データを入力する入力部と、
    前記異常データに足し合わすことで前記異常度が小さくなるベクトルを、各次元が異常の要因である尤もらしさを考慮して探索し、探索したベクトルに基づいて異常の要因を推定する推定部と、
    を有することを特徴とする異常情報推定装置。
  2. 前記推定部は、前記探索したベクトルにおいて値が非0である次元を異常の要因として推定する、
    ことを特徴とする請求項1記載の異常情報推定装置。
  3. 前記推定部は、前記数値ベクトルの各次元が取りうる範囲を制約条件として前記ベクトルを探索する、
    ことを特徴とする請求項1又は2記載の異常情報推定装置。
  4. 前記入力部は、前記異常データの各次元について、正常な状態の前記数値ベクトルからのずれを示す値を入力し、
    前記推定部は、前記異常データと前記ずれを示す値に基づいて特定される値を初期値として、前記ベクトルを探索する、
    ことを特徴とする請求項1乃至3いずれか一項記載の異常情報推定装置。
  5. 前記入力部は、前記異常データの各次元について、正常な状態の前記数値ベクトルからのずれを示す値を入力し、
    前記推定部は、前記ずれを示す値が閾値未満である次元を0に固定して、前記ベクトルを探索する、
    ことを特徴とする請求項1乃至4いずれか一項記載の異常情報推定装置。
  6. 前記探索したベクトルに基づき、異常の要因に関する情報を出力する出力部を有する、
    ことを特徴とする請求項1記載の異常情報推定装置。
  7. 前記出力部は、前記探索したベクトルの各次元のうち、絶対値が閾値を超える次元を異常の要因として出力する、
    ことを特徴とする請求項6記載の異常情報推定装置。
  8. 前記閾値は、過去の異常データについて探索したベクトルの各次元に基づく値である、
    ことを特徴とする請求項7記載の異常情報推定装置。
  9. 前記出力部は、前記探索したベクトルの各次元の絶対値をソートし、隣接する次元との絶対値の差分が最も大きい点に基づいて、異常の要因である次元を出力する、
    ことを特徴とする請求項6記載の異常情報推定装置。
  10. 前記出力部は、前記探索したベクトルの各次元の絶対値に関してクラスタリングを行い、前記絶対値の統計量が大きい側のクラスタに属する次元を異常の要因として出力する、
    ことを特徴とする請求項6記載の異常情報推定装置。
  11. 正常時の数値ベクトルの学習に基づいて、前記数値ベクトルの入力データの異常度を出力する異常検知アルゴリズムによって異常が検知された異常データを入力する入力部と、
    前記異常データに足し合わすことで前記異常度が小さくなる第1のベクトルを、各次元が異常の要因である尤もらしさを考慮して探索する探索部と、
    異常の原因が既知の複数の数値ベクトルのそれぞれについて前記第1のベクトルと同様に探索された第の2ベクトルと、前記第1のベクトルとの距離に基づいて、異常の原因を出力する出力部、
    を有することを特徴とする異常情報推定装置。
  12. 正常時の数値ベクトルの学習に基づいて、前記数値ベクトルの入力データの異常度を出力する異常検知アルゴリズムによって異常が検知された異常データを入力する入力部と、
    前記異常データに足し合わすことで前記異常度が小さくなる第1のベクトルを、各次元が異常の要因である尤もらしさを考慮して探索する探索部と、
    異常の原因が既知の複数の数値ベクトルのそれぞれについて前記第1のベクトルと同様に探索された第の2ベクトルと、前記第1のベクトルとに関するクラスタリングの結果に基づいて、異常の原因を出力する出力部と、
    を有することを特徴とする異常情報推定装置。
  13. 正常時の数値ベクトルの学習に基づいて、前記数値ベクトルの入力データの異常度を出力する異常検知アルゴリズムによって異常が検知された異常データを入力する入力手順と、
    前記異常データに足し合わすことで前記異常度が小さくなるベクトルを、各次元が異常の要因である尤もらしさを考慮して探索し、当該ベクトルにおいて値が非0である次元を異常の要因として推定する推定手順と、
    をコンピュータが実行することを特徴とする異常情報推定方法。
  14. 正常時の数値ベクトルの学習に基づいて、前記数値ベクトルの入力データの異常度を出力する異常検知アルゴリズムによって異常が検知された異常データを入力する入力手順と、
    前記異常データに足し合わすことで前記異常度が小さくなる第1のベクトルを、各次元が異常の要因である尤もらしさを考慮して探索する探索手順と、
    異常の原因が既知の複数の数値ベクトルのそれぞれについて前記第1のベクトルと同様に探索された第の2ベクトルと、前記第1のベクトルとの距離に基づいて、異常の原因を出力する出力手順と、
    をコンピュータが実行することを特徴とする異常情報推定方法。
  15. 正常時の数値ベクトルの学習に基づいて、前記数値ベクトルの入力データの異常度を出力する異常検知アルゴリズムによって異常が検知された異常データを入力する入力手順と、
    前記異常データに足し合わすことで前記異常度が小さくなる第1のベクトルを、各次元が異常の要因である尤もらしさを考慮して探索する探索手順と、
    異常の原因が既知の複数の数値ベクトルのそれぞれについて前記第1のベクトルと同様に探索された第の2ベクトルと、前記第1のベクトルとに関するクラスタリングの結果に基づいて、異常の原因を出力する出力手順、
    をコンピュータが実行することを特徴とする異常情報推定装置。
  16. 請求項1乃至12いずれか一項記載の各部としてコンピュータを機能させるためのプログラム。
JP2019519038A 2017-05-17 2017-11-09 異常情報推定装置、異常情報推定方法及びプログラム Active JP6707716B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2017098080 2017-05-17
JP2017098080 2017-05-17
PCT/JP2017/040413 WO2018211721A1 (ja) 2017-05-17 2017-11-09 異常情報推定装置、異常情報推定方法及びプログラム

Publications (2)

Publication Number Publication Date
JPWO2018211721A1 JPWO2018211721A1 (ja) 2020-01-23
JP6707716B2 true JP6707716B2 (ja) 2020-06-10

Family

ID=64273615

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019519038A Active JP6707716B2 (ja) 2017-05-17 2017-11-09 異常情報推定装置、異常情報推定方法及びプログラム

Country Status (3)

Country Link
US (1) US11379340B2 (ja)
JP (1) JP6707716B2 (ja)
WO (1) WO2018211721A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4033361B8 (fr) * 2021-01-25 2023-10-18 Bull Sas Procédé et dispositif de détermination d'au moins une machine impliquée dans une anomalie détectée dans une infrastructure informatique complexe
KR102367597B1 (ko) * 2021-03-23 2022-02-25 주식회사 에이아이비즈 인공지능 기반의 제조공정 품질검사 시스템
CN113537363B (zh) * 2021-07-20 2023-12-15 北京奇艺世纪科技有限公司 一种异常对象检测方法及装置、电子设备及存储介质
CN114077872A (zh) * 2021-11-29 2022-02-22 税友软件集团股份有限公司 一种数据异常检测方法及相关装置
CN116702080B (zh) * 2023-08-04 2023-10-24 山东荣信集团有限公司 一种基于多维传感器的煤气制甲醇过程在线监测系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5691575B2 (ja) 2011-02-03 2015-04-01 富士通株式会社 故障解析プログラム,故障解析装置および故障解析方法

Also Published As

Publication number Publication date
WO2018211721A1 (ja) 2018-11-22
US11379340B2 (en) 2022-07-05
JPWO2018211721A1 (ja) 2020-01-23
US20200073778A1 (en) 2020-03-05

Similar Documents

Publication Publication Date Title
JP6707716B2 (ja) 異常情報推定装置、異常情報推定方法及びプログラム
JP6969637B2 (ja) 因果関係分析方法および電子デバイス
CN109859054B (zh) 网络社团挖掘方法、装置、计算机设备及存储介质
Wan et al. Learning and planning in average-reward markov decision processes
US20190340533A1 (en) Systems and methods for preparing data for use by machine learning algorithms
JP6299759B2 (ja) 予測関数作成装置、予測関数作成方法、及びプログラム
KR101965277B1 (ko) 하이퍼그래프 데이터 분석 시스템 및 방법과, 이를 위한 컴퓨터 프로그램
JP7276488B2 (ja) 推定プログラム、推定方法、情報処理装置、再学習プログラムおよび再学習方法
CN113360656A (zh) 异常数据检测方法、装置、设备及存储介质
JP6201556B2 (ja) 予測モデル学習装置、予測モデル学習方法およびコンピュータプログラム
JP2020004409A (ja) 情報処理プラットフォーム上でのソフトウェアアプリケーションの実行パラメータの自動かつ自己最適化型決定
CN111159508A (zh) 一种基于算法多样性的异常检测算法集成方法及系统
Cong et al. Exact and consistent interpretation of piecewise linear models hidden behind APIs: A closed form solution
Lapko et al. Testing the hypothesis of the independence of two-dimensional random variables using a nonparametric algorithm for pattern recognition
JPWO2020039610A1 (ja) 異常要因推定装置、異常要因推定方法、及びプログラム
JP2016520220A (ja) 隠れ属性モデル推定装置、方法およびプログラム
Tinawi Machine learning for time series anomaly detection
Escobar et al. Evaluating temporal bias in time series event detection methods
JP2010250391A (ja) データ分類方法及び装置及びプログラム
CN113705786B (zh) 基于模型的数据处理方法、装置及存储介质
KR102319015B1 (ko) 정밀 점유 지도 작성을 위한 적응형 커널 추론 방법 및 장치
KR102590793B1 (ko) 기계 학습을 위한 온라인 데이터셋의 자가 균형화 방법 및 장치
CN113447813B (zh) 海上风力发电机组的故障诊断方法及设备
Barroso et al. Inference of Causal Networks using a Topological Threshold
EP4345689A1 (en) Evaluation and training methods for unsupervised representation encoders

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190918

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200519

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200520

R150 Certificate of patent or registration of utility model

Ref document number: 6707716

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150