(57)【特許請求の範囲】
【請求項１】
データ間の関係性に基づいて、検知対象である検知データの、観測値と、重回帰式で表わされるデータ間の関係性に基づいて観測値から推定される値と、の差である乖離を表す乖離値ベクトルと、比較対象である比較データの、観測値と、重回帰式で表わされるデータ間の関係性に基づいて観測値から推定される値と、の差である乖離を表す乖離値ベクトルと、を計算する乖離値ベクトル計算部と、
前記検知データの前記乖離値ベクトルの、前記比較データの前記乖離値ベクトルの集合からの離散度合を、異常を示す度合として計算する異常度計算部と、
前記離散度合が所定の閾値を超えた場合に前記検知データは異常であることを判定する異常判定部と、
を有することを特徴とする異常検知装置。
【請求項２】
データ間の関係性に基づいて、検知対象である検知データの、観測値と、単回帰式で表わされるデータ間の関係性に基づいて観測値から推定される値と、の差である乖離を表す乖離値ベクトルと、比較対象である比較データの、観測値と、単回帰式で表わされるデータ間の関係性に基づいて観測値から推定される値と、の差である乖離を表す乖離値ベクトルと、を計算する乖離値ベクトル計算部と、
前記検知データの前記乖離値ベクトルの、前記比較データの前記乖離値ベクトルの集合からの離散度合を、異常を示す度合として計算する異常度計算部と、
前記離散度合が所定の閾値を超えた場合に前記検知データは異常であることを判定する異常判定部と、
を有することを特徴とする異常検知装置。
【請求項３】
データ間の関係性に基づいて、検知対象である検知データの、観測値と、自己回帰式で表わされるデータ間の関係性に基づいて観測値から推定される値と、の差である乖離を表す乖離値ベクトルと、比較対象である比較データの、観測値と、自己回帰式で表わされるデータ間の関係性に基づいて観測値から推定される値と、の差である乖離を表す乖離値ベクトルと、を計算する乖離値ベクトル計算部と、
前記検知データの前記乖離値ベクトルの、前記比較データの前記乖離値ベクトルの集合からの離散度合を、異常を示す度合として計算する異常度計算部と、
前記離散度合が所定の閾値を超えた場合に前記検知データは異常であることを判定する異常判定部と、
を有することを特徴とする異常検知装置。
【請求項４】
前記乖離値ベクトル計算部が計算した前記乖離値ベクトルを記憶する乖離値ベクトル記憶部をさらに有し、
前記異常度計算部は、前記乖離値ベクトル記憶部が記憶する乖離値ベクトルを用いて前記離散度合を計算することを特徴とする請求項１〜３のいずれか一つに記載の異常検知装置。
【請求項５】
前記データ間の関係性を推定し、前記データ間の関係性を示すパラメータを算出する関係性推定部をさらに有し、
前記乖離値ベクトル計算部は、前記関係性推定部が算出した前記データ間の関係性を示すパラメータを前記データ間の関係性に適用し、前記乖離値ベクトルを計算することを特徴とする請求項１〜４のいずれか一つに記載の異常検知装置。
【請求項６】
前記異常度計算部は、前記検知データの乖離値ベクトルの、前記比較データの乖離値ベクトルの集合からの、空間的な距離や密度に基づき、前記離散度合を計算することを特徴とする請求項１〜５のいずれか一つに記載の異常検知装置。
【請求項７】
前記異常度計算部は、前記比較データの乖離値ベクトルの平均と、前記比較データの乖離値ベクトルの共分散行列とを計算し、前記検知データの乖離値ベクトルと、前記比較データの乖離値ベクトルの平均と、前記比較データの乖離値ベクトルの共分散行列とに基づいて求められたマハラノビス距離を、前記離散度合として計算することを特徴とする請求項１〜５のいずれか一つに記載の異常検知装置。
【請求項８】
前記異常度計算部は、前記比較データの乖離値ベクトルを高次元空間に写像した場合に該写像した乖離値ベクトルに対応する点における原点からの距離が最大化する平面を求め、前記検知データの乖離値ベクトルを前記高次元空間に写像した場合に該写像した乖離値ベクトルに対応する点が、前記平面から見て原点側にあるか否かを基に、前記離散度合を計算することを特徴とする請求項１〜５のいずれか一つに記載の異常検知装置。
【請求項９】
検知対象である検知データの集合に対して異常の有無を検知する異常検知装置が実行する異常検知方法であって、
データ間の関係性に基づいて、検知対象である検知データの、観測値と、重回帰式で表わされるデータ間の関係性に基づいて観測値から推定される値と、の差である乖離を表す乖離値ベクトルと、比較対象である比較データの、観測値と、重回帰式で表わされるデータ間の関係性に基づいて観測値から推定される値と、の差である乖離を表す乖離値ベクトルと、を計算する工程と、
前記検知データの前記乖離値ベクトルの、前記比較データの前記乖離値ベクトルの集合からの離散度合を、異常を示す度合として計算する工程と、
前記離散度合が所定の閾値を超えた場合に前記検知データは異常であることを判定する工程と、
を含んだことを特徴とする異常検知方法。
【請求項１０】
検知対象である検知データの集合に対して異常の有無を検知する異常検知装置が実行する異常検知方法であって、
データ間の関係性に基づいて、検知対象である検知データの、観測値と、単回帰式で表わされるデータ間の関係性に基づいて観測値から推定される値と、の差である乖離を表す乖離値ベクトルと、比較対象である比較データの、観測値と、単回帰式で表わされるデータ間の関係性に基づいて観測値から推定される値と、の差である乖離を表す乖離値ベクトルと、を計算する工程と、
前記検知データの前記乖離値ベクトルの、前記比較データの前記乖離値ベクトルの集合からの離散度合を、異常を示す度合として計算する工程と、
前記離散度合が所定の閾値を超えた場合に前記検知データは異常であることを判定する工程と、
を含んだことを特徴とする異常検知方法。
【請求項１１】
検知対象である検知データの集合に対して異常の有無を検知する異常検知装置が実行する異常検知方法であって、
データ間の関係性に基づいて、検知対象である検知データの、観測値と、自己回帰式で表わされるデータ間の関係性に基づいて観測値から推定される値と、の差である乖離を表す乖離値ベクトルと、比較対象である比較データの、観測値と、自己回帰式で表わされるデータ間の関係性に基づいて観測値から推定される値と、の差である乖離を表す乖離値ベクトルと、を計算する工程と、
前記検知データの前記乖離値ベクトルの、前記比較データの前記乖離値ベクトルの集合からの離散度合を、異常を示す度合として計算する工程と、
前記離散度合が所定の閾値を超えた場合に前記検知データは異常であることを判定する工程と、
を含んだことを特徴とする異常検知方法。
【請求項１２】
データ間の関係性に基づいて、検知対象である検知データの、観測値と、重回帰式で表わされるデータ間の関係性に基づいて観測値から推定される値と、の差である乖離を表す乖離値ベクトルと、比較対象である比較データの、観測値と、重回帰式で表わされるデータ間の関係性に基づいて観測値から推定される値と、の差である乖離を表す乖離値ベクトルと、を計算するステップと、
前記検知データの前記乖離値ベクトルの、前記比較データの前記乖離値ベクトルの集合からの離散度合を、異常を示す度合として計算するステップと、
前記離散度合が所定の閾値を超えた場合に前記検知データは異常であることを判定するステップと、
をコンピュータに実行させるための異常検知プログラム。
【請求項１３】
データ間の関係性に基づいて、検知対象である検知データの、観測値と、単回帰式で表わされるデータ間の関係性に基づいて観測値から推定される値と、の差である乖離を表す乖離値ベクトルと、比較対象である比較データの、観測値と、単回帰式で表わされるデータ間の関係性に基づいて観測値から推定される値と、の差である乖離を表す乖離値ベクトルと、を計算するステップと、
前記検知データの前記乖離値ベクトルの、前記比較データの前記乖離値ベクトルの集合からの離散度合を、異常を示す度合として計算するステップと、
前記離散度合が所定の閾値を超えた場合に前記検知データは異常であることを判定するステップと、
をコンピュータに実行させるための異常検知プログラム。
【請求項１４】
データ間の関係性に基づいて、検知対象である検知データの、観測値と、自己回帰式で表わされるデータ間の関係性に基づいて観測値から推定される値と、の差である乖離を表す乖離値ベクトルと、比較対象である比較データの、観測値と、自己回帰式で表わされるデータ間の関係性に基づいて観測値から推定される値と、の差である乖離を表す乖離値ベクトルと、を計算するステップと、
前記検知データの前記乖離値ベクトルの、前記比較データの前記乖離値ベクトルの集合からの離散度合を、異常を示す度合として計算するステップと、
前記離散度合が所定の閾値を超えた場合に前記検知データは異常であることを判定するステップと、
をコンピュータに実行させるための異常検知プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、異常検知装置、異常検知方法及び異常検知プログラムに関する。
【背景技術】
【０００２】
多数のサーバやルータ等の機器で構成されるシステムでは、各装置のハードディスクやメモリ等のハードウェア異常を検知することが運用上必要になる。情報・通信機器に限らず、多数のセンサを持つ産業機械や自動車などにおいても、温度や加速度等のセンサデータから機械の異常検知をしたいという需要が存在する。また、機器類だけでなく、例えばクレジットカードの利用状況を分析することによる不正使用の検知、情報セキュリティにおけるＤＤｏＳ（Distributed  Denial  of  Service）攻撃の検知分野やマルウェアの検知分野でも、異常検知技術が用いられている。
【０００３】
最も簡単な異常検知の方法として、人間がデータを直接視認することで、データにおける異常を検知するという方法が考えられる。しかし、多数のデータがどのような傾向を示した時に異常であるかを把握するには、相当な習熟が必要になるため、人間の目で異常判定することは困難である。仮に人間の目で異常検知できるとしても、特定の習熟した作業者に依存してしまい、その作業者がいなくなれば異常検知はできなくなってしまう。以上を鑑みると、異常検知の仕組みを何らかの方法で機械的に実行することが必要になる。
【０００４】
このような機械的な異常検知の方法として最も簡易なものに、データの値域に閾値を設け、閾値を超えた際に異常であると判定する方法がある。この方法は、適切に機能する場合があるものの、一般的には、妥当な閾値を決定することが困難である。これは、閾値を大きくすると、本来異常として発見したい事象をとり損ねる可能性がある一方で、閾値を小さくすると異常でないのに異常であると判定してしまう事象が増えるためである。
【０００５】
そこで、それまでに出現していないパターンを発見し、異常であると判定する異常検知方法として、広く利用されている方法にＬＯＦが提案されている（例えば、非特許文献１参照）。ＬＯＦは、データ空間内での局所的密度を計算する方法である。
【０００６】
具体的には、ＬＯＦは、新たに得られたデータが、それまでに得られているデータの空間の中で密度の高い箇所に存在する場合は、異常度合いを表す数値を小さく出力する。言い換えると、ＬＯＦは、新たに得られたデータがそれまでにも得られているデータと類似するデータである場合、新たに得られたデータは、異常ではないと判定する。一方、新たに得られたデータが密度の低い箇所に存在する場合、異常度合いを表す数値を大きく出力する。言い換えると、ＬＯＦは、新たに得られたデータがそれまでに得られているデータと類似しないデータである場合、新たに得られたデータは、異常であると判定する。
【０００７】
また、データ間に何らかの関係性がある場合に、この関係性が崩れたことから異常を検知する方法がある。この方法として、複数種類のデータ間の相関関係が維持されているか否かを分析し、その結果から異常を発見する方法が提案されている。この方法では、データを２組ずつ選び、例えば単回帰により一方から他方を予測する関数を構築し、その予測値が観測値から一定以上離れていることによって相関関係が破壊されているとみなしている。
【先行技術文献】
【非特許文献】
【０００８】
【非特許文献１】M.  Breunig,  H.  Kriegel,  R.  Ng，  and  J.  Sander,  “ＬＯＦ:  Identifying  Density-Based  Local  Outliers”,  SIGMOD,  Volume  29  Issue  2,  93-104,  2000
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、ＬＯＦでは、データ間に相関がある場合に、相関に従っているデータであって本来正常であるデータであっても、データの集合から外れているデータを異常として検知する、という問題がある。具体的に、図１３〜図１５を参照して、従来技術の問題を説明する。図１３〜図１５は、従来技術に係る異常検知方法を説明するための図である。図１３〜図１５は、データとしてＸ及びＹの組が与えられたとして、座標平面上にその組をプロットしたものである。
【００１０】
図１３では、Ｘ及びＹの組に対する点として、平均ベクトルが（３，３）であり、共分散行列が［［１，０．９］、［０．９，１］］の２次元正規分布に従う点を２００点（白丸）プロットしている。また、右上に位置する点Ｐｂは、(６．５，６．５)の点である。また、左上の点Ｐｒは、（２，５）の点である。
【００１１】
この図１３では、次のような、データ間に相関が見られる場合をイメージして、ＸとＹとの組に対する点をプロットしている。例えば、Ｘ及びＹが、アプリケーションサーバＡとアプリケーションサーバＢとのＣＰＵ（Central  Processing  Unit）使用率をそれぞれ表しているとする。そして、アプリケーションサーバＡとアプリケーションサーバＢとが、Ｗｅｂサーバからのリクエストを均等に受け付けている場合を例とする。
【００１２】
この場合、Ｗｅｂサーバへのアクセス数が増加し、アプリケーションサーバへのリクエストが増加すると、Ｘ及びＹがともに上昇すると考えられる。逆に、Ｗｅｂサーバへのアクセス数が減少すると、Ｘ及びＹはともに下降すると考えられる。図１３において、白丸は、正常な状態のデータの例である。そして、点Ｐｂは、相関関係を維持したままで、それまでには存在していなかった値をとった場合の例である。また、点Ｐｒは、相関関係が崩れた場合の例である。以下、正常な状態のデータである白丸が先に与えられ、続いて異常検知対象データとして、点Ｐｂ及び点Ｐｒが与えられた状況を考える。
【００１３】
このうち、点Ｐｂは、正常な状態において成り立つ相関関係を維持しているため、本来、異常でないと判定すべき場合がある。一方、点Ｐｒでは正常な状態において成り立つ相関関係には従っていないため、異常であると判定すべき場合がある。しかしながら、ＬＯＦではデータ間の関係性を考慮していないため、白丸の密度が低い点に存在する点Ｐｂ及び点Ｐｒは、いずれも異常度合いを表わす数値が大きく出力されてしまう。すなわち、異常であると判定すべきではない点Ｐｂにおいて、異常であると判定されてしまう問題がある。
【００１４】
一方、複数種類データ間の相関関係が維持されているか否かを分析し、その結果から異常を発見する方法では、図１４や図１５に示すように、データ間の関係性が複数あり、複雑な関係が見られる場合に異常を検知することが難しいという問題がある。
【００１５】
例えば、図１４の白丸は、平均ベクトルが（３，３）、共分散行列が［［１，０．９９］，［０．９９，１］］の２次元正規分布に従う２００点（データ群Ｒｂ）と、これらを（π／５）だけ反時計回りに回転させた点（データ群Ｒｂ´）である。図１４の例では、データ間の関係性が２つあり、検知データをいずれの相関関係と比較すればよいか判断が難しい。そして、この図１４では、白丸で表示された点の相関係数は「０．０７」と小さい。したがって、関係性が崩れたことから異常を検知する方法でも、図１４の例では、正常な状態のデータに限っても相関が見られないと判断するため、異常検知を適切に実行することが難しい。
【００１６】
そして、図１５では、正常な状態が、データで見ると３つの離れた群を構成している場合のイメージを示す。図１５中の白丸は正常な状態のデータである。点Ｐｇは、異常判定対象のデータである。また、直線Ｌｂは、正常な白丸のみから単回帰直線（具体的には、「Ｙ＝０．９１７５Ｘ＋０．１０８１」の関係を有する。）を計算し、図１５中にプロットしたものである。図１５中、左下の白丸の群（データ群Ｒｃ）は、Ｘ及びＹが、それぞれ平均が「０．５」、標準偏差が「０．１」の正規分布に従う乱数をとった１００点をプロットしたものである。右の直線Ｌｂの上の群（データ群Ｒｄ）は、Ｘは平均「３」、標準偏差「０．１」、Ｙは平均「４」、標準偏差「０．１」の正規分布に従う乱数をとった２０点をプロットしたものである。右の直線Ｌｂの下の群（データ群Ｒｅ）は、Ｘは平均「４」、標準偏差「０．１」、Ｙは平均「３」、標準偏差「０．１」の正規分布に従う乱数をとった２０点をプロットしたものである。なお、白丸の相関係数は「０．９２３１」という高い値をとっている。
【００１７】
ここで、図１５に示す点Ｐｇは、明らかに白丸の３つのデータ群Ｒｃ〜Ｒｄから大きく離れている。しかしながら、単回帰直線の直線Ｌｂには近い位置であるため、点Ｐｇと直線Ｌｂとの比較を行うだけでは、点Ｐｇが直線Ｌｂに対応する相関から崩れていると判断することはできない。すなわち、点Ｐｇは、正常な状態のデータから見れば離れた箇所に存在するものであるが、関係性が崩れたことから異常を検知する方法では、この点Ｐｇを異常であると検知することができない。
【００１８】
本発明は、上記に鑑みてなされたものであって、データ間の関係性に基づいた検知対象データの異常検知を精度よく実行することができる異常検知装置、異常検知方法及び異常検知プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１９】
上述した課題を解決し、目的を達成するために、本発明に係る異常検知装置は、データ間の関係性に基づいて、検知対象である検知データの、データ間の関係性からの乖離を表す乖離値ベクトルと、比較対象である比較データの、データ間の関係性からの乖離を表す乖離値ベクトルと、を計算する乖離値ベクトル計算部と、検知データの乖離値ベクトルの、比較データの乖離値ベクトルの集合からの離散度合を、異常を示す度合として計算する異常度計算部と、離散度合が所定の閾値を超えた場合に検知データは異常であることを判定する異常判定部と、を有する。
【発明の効果】
【００２０】
本発明によれば、データ間の関係性に基づき、検知対象データの異常検知を精度よく実行することができる。
【図面の簡単な説明】
【００２１】
【図１】図１は、実施の形態１に係る異常検知装置の構成の一例を示すブロック図である。
【図２】図２は、実施の形態１における処理対象のデータ構成の一例を示す図である。
【図３】図３は、図１に示す乖離値ベクトル計算部が行う乖離値ベクトルの計算処理の例を示す図である。
【図４】図４は、図１に示す乖離値ベクトル計算部が行う乖離値ベクトルの計算処理の他の例を示す図である。
【図５】図５は、図１に示す異常度計算部による異常度計算処理を説明する図である。
【図６】図６が、図１に示す異常度計算部による異常度計算処理の他の例を説明する図である。
【図７】図７は、図１に示す異常検知装置が実行する異常検知処理の処理手順を示すフローチャートである。
【図８】図８は、実施の形態１の異常検知処理を説明する図である。
【図９】図９は、実施の形態３に係る異常度計算処理を説明する図である。
【図１０】図１０は、実施の形態３に係る異常度計算処理を説明する図である。
【図１１】図１１は、実施の形態３に係る異常度計算処理及び異常判定処理を説明する図である。
【図１２】図１２は、プログラムが実行されることにより、異常検知装置が実現されるコンピュータの一例を示す図である。
【図１３】図１３は、従来技術に係る異常検知方法を説明するための図である。
【図１４】図１４は、従来技術に係る異常検知方法を説明するための図である。
【図１５】図１５は、従来技術に係る異常検知方法を説明するための図である。
【発明を実施するための形態】
【００２２】
以下、図面を参照して、本発明の一実施の形態を詳細に説明する。なお、この実施の形態により本発明が限定されるものではない。また、図面の記載において、同一部分には同一の符号を付して示している。
【００２３】
［実施の形態１］
まず、第一の実施形態について説明する。以下の実施形態では、第一の実施形態に係る異常検知装置の構成、異常検知装置による処理の流れを説明する。
【００２４】
［異常検知装置の構成］
図１は、実施の形態１に係る異常検知装置１０の構成の一例を示すブロック図である。図１に示すように、第一の実施形態に係る異常検知装置１０は、通信処理部１１、制御部１２及び記憶部１３を有する。
【００２５】
通信処理部１１は、接続される端末装置２０との間でやり取りする各種情報に関する通信を制御する。例えば、通信処理部１１は、比較対象であるデータ、検知対象となるデータ、及び、検知対象となるデータに対する異常検知処理の要求を端末装置２０から受信する。また、例えば、通信処理部１１は、異常検知処理の処理結果を端末装置２０に対して送信する。
【００２６】
制御部１２は、各種の処理手順などを規定したプログラム及び所要データを格納するための内部メモリを有し、これらによって種々の処理を実行する。例えば、制御部１２は、ＣＰＵやＭＰＵ（Micro  Processing  Unit）などの電子回路である。制御部１２は、関係性推定部１２１、乖離値ベクトル計算部１２２、異常度計算部１２３及び異常判定部１２４を有する。
【００２７】
関係性推定部１２１は、データ間の関係性を推定し、データ間の関係性を示すパラメータを算出する。例えば、与えられたデータについて、データ間の関係性が式として与えられているものの、パラメータに相当するものが未定である場合に、パラメータを推定する。具体的には、データＸとデータＹとの関係性が、「Ｙ＝ａＸ＋ｂ」という単回帰であることは与えられているが、「ａ」及び「ｂ」が不明な場合に、関係性推定部１２１は、与えられたデータを基に「ａ」及び「ｂ」を推定する。この場合、関係性推定部１２１は、それを出力した機器等が正常な状態のデータ、言い換えると、異常な状態のデータを含まないデータを、パラメータ推定のために用いることが望ましい。
【００２８】
乖離値ベクトル計算部１２２は、データ間の関係性に基づき、関係性からの乖離を表す乖離値ベクトルを計算する。実施の形態１では、乖離値ベクトル計算部１２２は、データ間の関係性に基づいて、検知対象である検知データの、データ間の関係性からの乖離を表す乖離値ベクトルを計算する。そして、乖離値ベクトル計算部１２２は、データ間の関係性に基づいて、比較対象である比較データの、データ間の関係性からの乖離を表す乖離値ベクトルを計算する。すなわち、乖離値ベクトル計算部１２２は、データ間に何らかの関係性が見られる場合に、その関係性からの乖離を示す値を、検知データ及び比較データについて計算する。なお、乖離値ベクトル計算部１２２は、データ間の乖離値ベクトルを、記憶部１３（後述）の乖離値ベクトル記憶部１３１に記憶させてもよい。また、乖離値ベクトル計算部１２２は、関係性推定部１２１が算出したデータ間の関係性を示すパラメータを、データ間の関係性に適用し、データ間の乖離値ベクトルを計算する。なお、このデータ間の関係性は、予め与えられたものであってもよい。
【００２９】
異常度計算部１２３は、検知データの乖離値ベクトルの、比較データの乖離値ベクトルの集合からの離散度合を計算する。具体的には、異常度計算部１２３は、検知データの乖離値ベクトルの、比較データの乖離値ベクトルの集合からの、空間的な距離や密度などに基づき、離散度合を計算する。この異常度計算部１２３が計算した離散度合は、異常を示す異常度として、異常判定部１２４（後述）における判定において用いられる。なお、異常度計算部１２３は、乖離値ベクトル記憶部１３１（後述）が記憶する乖離値ベクトルを用いて離散度合を計算してもよい。
【００３０】
異常判定部１２４は、異常度計算部１２３が計算した離散度合が所定の閾値を超えた場合に、検知データは異常であることを判定する。異常判定部１２４は、離散度合が所定の閾値以下である場合に、検知データは正常であることを判定する。異常判定部１２４による判定結果は、異常検知結果として、通信処理部１１を介して、例えば、端末装置２０に出力される。
【００３１】
記憶部１３は、ＲＡＭ（Random  Access  Memory）、フラッシュメモリ（Flash  Memory）等の半導体メモリ素子、又は、ハードディスク、光ディスク等の記憶装置によって実現され、異常検知装置１０を動作させる処理プログラムや、処理プログラムの実行中に使用されるデータなどが記憶される。記憶部１３は、乖離値ベクトル計算部１２２が計算した乖離値ベクトルを記憶する乖離値ベクトル記憶部１３１を有する。
【００３２】
［処理対象のデータの例］
次に、異常検知装置１０における処理対象のデータの例について説明する。図２は、異常検知装置１０における処理対象のデータ構成の一例を示す図である。
【００３３】
図２に示すように、例えば、検知データとして、「Ｘ１」〜「ＸＮ」というＮ種類のデータが与えられたとする。図２において、「ｘｎｍ」は、ｎ番目のデータのｍにおける観測値である。添字の「ｍ」は、観測された地点や時点を意味する。例えば、「Ｘ１」〜「ＸＮ」がユーザ「１」からユーザ「Ｎ」を示し、データの要素が商品「ｍ」の購入の有無を表す場合、添字が等しいデータは、同一商品の購入の有無を意味する。或いは、「Ｘ１」〜「ＸＮ」がサーバ「１」からサーバ「Ｎ」のＣＰＵ使用率を示し、データの要素が時点「ｍ」におけるＣＰＵ使用率を表す場合、添字が等しいデータは、観測時点が等しいことを意味する。
【００３４】
［関係性推定部の処理］
関係性推定部１２１は、「Ｘ１」〜「ＸＮ」の間に成り立つ関係性を推定し、「Ｘ１」〜「ＸＮ」間の関係性を示すパラメータを算出する。
【００３５】
この場合、関係性推定部１２１は、それを出力した機器等が正常な状態のデータ、言い換えると、異常な状態のデータを含まないデータを、パラメータ算出のために用いることが望ましい。正常な状態のデータであるか否かは、機器が正常であったことから判断してもよい。また、正常な状態のデータであるか否かは、データを見て、異常値に相当するものを含まないことなどを基に、人間が視認して判断してもよい。これは、異常判定部１２４での異常検知において、「正常と異なる」ことを「異常」とみなすという指標を用いるためである。さらに、関係性推定部１２１において、正常なデータのみを用いて、正常な状態のデータに成り立つ関係式を推定することで、異常検知の感度を向上させることが期待できる。
【００３６】
例えば、データ間の関係性が式として与えられているものの、パラメータに相当するものが未定である場合に、関係性推定部１２１は、このパラメータを推定する。具体的には、データＸとデータＹとの関係性が、「Ｙ＝ａＸ＋ｂ」という単回帰であることは与えられているが、「ａ」及び「ｂ」が不明な場合に、関係性推定部１２１は、与えられたデータを基に「ａ」及び「ｂ」を推定する。
【００３７】
また、関係性推定部１２１は、データ間の関係性として、例えば、「Ｘ１」〜「ＸＮ」のいずれかを目的変数、残りを説明変数とする重回帰式が与えられる場合、この重回帰式のパラメータを求める。また、関係性推定部１２１は、データ間の関係性として、「Ｘ１」〜「ＸＮ」の中から２組ずつを選択し、２組ごとに一方を目的変数とし、他方を説明変数とする単回帰式が与えられる場合、この単回帰式のパラメータを求める。
【００３８】
或いは、関係性推定部１２１は、データ間の関係性として、各「ＸＮ」が系列データであり、過去のデータから将来を予測する自己回帰式またはベクトル自己回帰式が与えられる場合、この自己回帰式またはベクトル自己回帰式のパラメータを求めてもよい。添え字の「１，２，…，ｍ，…」に順序性がある場合、例えば、前述のサーバのＣＰＵ使用率がデータである例などの場合である。
【００３９】
また、データ間の関係性は、混合分布モデルでモデリングしてあってもよいし、より複雑な非線形な関係を表す式で示されたものであってもよい。例えば、何らかの確率分布を用いて、データ間の関係性を表してもよい。例えば、データ間の関係性が「Ｋ」個のクラスタを持つ、混合分布モデルにより表現される場合、関係性推定部１２１は、（１）式に示す関係式のパラメータを求める。
【００４０】
【数１】
0006538615.tif 000002
【００４１】
なお、「Ｘ１」〜「ＸＮ」の間に成り立つ関係性が予め与えられている場合には、本実施の形態では、関係性推定部１２１の算出処理を省略することができる。
【００４２】
［乖離値ベクトル計算部の処理］
続いて、乖離値ベクトル計算部１２２は、「Ｘ１」〜「ＸＮ」および「Ｘ１」〜「ＸＮ」の間に成り立つ関係性から、乖離値ベクトルを計算する。図３は、乖離値ベクトル計算部１２２が行う乖離値ベクトルの計算処理の例を示す図である。
【００４３】
図３に示す例では、乖離値ベクトルは、添字「ｍ」ごとに計算されるものとしている。また、この例では、図３に示すデータ「Ｘ１」〜「ＸＮ」が与えられ、この「Ｘ１」〜「ＸＮ」の間に成り立つ関係性を、「Ｆ（Ｘ１，Ｘ２，・・・，ＸＮ)＝０」としている。この例では、関係式が、「Ｘ１」〜「ＸＮ」のいずれかを目的変数、残りを説明変数とする重回帰式であることをイメージしている。
【００４４】
具体的には、図３における「Ｘ１の乖離値」は、添字「ｍ」における観測値「ｘ１ｍ」と、「ｍ」において観測されたデータから、関係性を用いて推定される「Ｘ１」の値「Ｆ（ｘ１ｍ，ｘ２ｍ，・・・，ｘＮｍ)」と、の差である。また、「Ｘ２の乖離値」は、添字「ｍ」における観測値「ｘ２ｍ」と、「ｍ」において観測されたデータから、関係性を用いて推定される「Ｘ２」の値「Ｆ（ｘ１ｍ，ｘ２ｍ，・・・，ｘＮｍ)」と、の差である。乖離値ベクトル計算部１２２は、図３に示す計算処理を行うことによって、「Ｘ１」〜「ＸＮ」の各乖離値を計算する。そして、図３に示すように、乖離値ベクトル計算部１２２は、共通の添字「ｍ」を持つ複数種類のデータから計算した乖離値を、乖離値ベクトルとして出力する。
【００４５】
また、データ間の関係性は「Ｆ（Ｘ１，Ｘ２，・・・，ＸＮ)＝０」のように、全てのデータに対して一つの関係性が与えられる場合だけでなく、データの組に対して与えられる場合もある。例えば、「Ｘ１」〜「ＸＮ」の中から２組ずつを選択し、２組ごとに一方を目的変数、他方を説明変数とする単回帰式で関連性が与えられる場合である。そこで、図４を参照して、この場合における乖離値ベクトルの計算処理について説明する。図４は、乖離値ベクトル計算部１２２が行う乖離値ベクトルの計算処理の他の例を示す図である。
【００４６】
図４に示すように、例えば、「Ｘ１のＸ２から見た乖離値」は、添字「ｍ」における観測値「ｘ１ｍ」と、「ｍ」において観測されたデータから、「Ｘ１」と「Ｘ２」の関係性「Ｆ１２」を用いて推定される「Ｘ１」の値「Ｆ１２(ｘ１ｍ，ｘ２ｍ)」と、の差を乖離値である。乖離値ベクトル計算部１２２は、図４に示す計算処理を行うことによって、「Ｘ１のＸ２から見た乖離値」〜「ＸＮ−１のＸＮから見た乖離値」を計算する。そして、乖離値ベクトル計算部１２２は、図４に示すように、共通の添字「ｍ」を持つ複数種類のデータから計算した乖離値を、乖離値ベクトルとして出力する。
【００４７】
なお、図４では特に指定していないが、データ間の関係性が一部の組み合わせに対してのみ成り立つと考えてもよい。例えば、「Ｘ１」と「Ｘ２」の間は、相関係数が大きく相関関係が認められるのに対し、「Ｘ１」と「Ｘ３」の間は、相関係数が小さく相関関係が認められないような場合である。このような場合、乖離値ベクトル計算部１２２は、関係性が認められるものに対してのみ乖離値を計算すればよい。
【００４８】
また、データ間の関係性が（１）式に示す混合分布モデルで表現される場合には、乖離値ベクトル計算部１２２は、以下の（２）式で定義される各クラスタへの帰属度「ｍｋ」を計算する。帰属度が大きい程、そのクラスタへの帰属度が高い、すなわち、そのクラスタの中心点に近いと言える。言い換えると、帰属度が大きい程、そのクラスタへの乖離度が小さいと言える。
【００４９】
【数２】
0006538615.tif 000003
【００５０】
この場合、乖離値ベクトル計算部１２２は、（２）式を用いて計算した帰属度「ｍｋ」に対し、乖離値ベクトルとして、「（ｍ１，ｍ２，・・・，ｍＫ）」を求める。或いは、乖離値ベクトル計算部１２２は、（２）式を用いて計算した帰属度「ｍｋ」に対し、乖離値ベクトルとして、「−logΣπｋP（ｘ｜θｋ）」のように、負の対数尤度を計算してもよい。なお、この場合には、乖離値ベクトルは、１次元となる。
【００５１】
乖離値ベクトル計算部１２２は、上記に示したような計算処理を行うことによって、データ間の関係性に基づいて検知データ及び比較データのデータ間の関係性からの乖離を表す乖離値ベクトルを計算する。なお、一般的には、比較データは複数存在する。もちろん、比較データは、一つでもよい。
【００５２】
［異常度計算部の処理］
次に、異常度計算部１２３の処理について説明する。異常度計算部１２３は、乖離値ベクトル計算部１２２が、検知データから計算した乖離値ベクトルと、比較データから計算した乖離値ベクトルと、を用いて、離散度合を計算する。
【００５３】
具体的には、異常度計算部１２３は、検知データの乖離値ベクトルが、比較データの乖離値ベクトルの集合から、空間的にどのくらい離れているかを計算する。この場合、異常度計算部１２３は、例えばｋ−ＮＮ（k−nearest  neighbor  method）法を用いて、検知データの乖離値ベクトルが、比較データの乖離値ベクトルの集合から、空間的にどのくらい離れているかを計算する。図５を参照して、異常度計算部１２３が、ｋ−ＮＮ法を用いて、離散度合を計算した場合について説明する。
【００５４】
図５は、異常度計算部１２３による異常度計算処理を説明する図である。図５は、乖離値ベクトルの次元１〜次元３に対し、乖離値ベクトル計算部１２２が比較データ及び検知データから計算した各乖離値ベクトルをプロットした図である。図５において、原点近傍に位置する白丸のデータ群Ｒ１は、比較データから計算された乖離値ベクトルに対応する。点Ｐ１は、検知データから計算した乖離値ベクトルに対応する（図５の（１）参照）。ｋ−ＮＮ法では、検知データの乖離値に対応する点Ｐ１から見て、ｋ番目に近い点Ｐｋまでの距離を、異常度（離散度合）として計算する（図５の（２）参照）。ここで、「ｋ」は、パラメータであり、ヒューリスティックスを用いて設定される。
【００５５】
また、異常度計算部１２３は、検知データの乖離値ベクトルが、比較データの乖離値ベクトルの集合から、どのくらい空間的に疎な位置に存在するかを計算してもよい。この場合、異常度計算部１２３は、例えば、ＬＯＦを用いて検知データの乖離値ベクトルが、比較データの乖離値ベクトルの集合から、空間的にどのくらい離れているかを計算する。
【００５６】
図６は、異常度計算部１２３による異常度計算処理の他の例を説明する図である。ＬＯＦは、空間内での局所的密度を計算する手法である。図６の白丸のデータ群Ｒ１は、比較データの乖離値ベクトルに対応する点の集まりであり、点Ｐ１は、検知データから計算した乖離値ベクトルに対応する点である（図６の（１）参照）。
【００５７】
具体的には、検知データの乖離値（点Ｐ１）から見て、ｋ番目までに近い点Ｐｋまでの距離の平均を、それらｋ番目の点Ｐｋから見てｍ番目までに近い点Ｐｍまでの距離の平均で割った値を異常度（離散度合）として計算する（図６の（２）参照）。例えば、データ群Ｒ１の密度の高い位置に、検知データの乖離値ベクトルに対応する点Ｐ１があった場合には、点Ｐ１からｋ番目に近い点Ｐｋまでの距離の平均が小さくなり、点Ｐｋから点Ｐｍまでの距離も小さくなるため、離散度合は小さくなる。一方、データ群Ｒ１の密度の低い位置に点Ｐ１があった場合には、点Ｐ１からｋ番目に近い点Ｐｋまでの距離の平均が大きくなるため、離散度合は小さくなる。なお、「ｋ」及び「ｍ」は、パラメータであり、ヒューリスティックスを用いて設定される。
【００５８】
また、比較データは、正常な状態のデータに限定することで、後述する異常判定部１２４の異常検知精度を高めることができる。「正常な状態のデータ」の定義は前述の通りである。また、正常な状態のデータのみを比較データとした場合、乖離値ベクトルは、空間的には局所に集中することに注意しておく。例えば図５及び図６において説明した方法を用いて乖離値ベクトルを計算すると、空間的には原点近傍に乖離値ベクトルが集中する。また、（２）式に示す帰属度「ｍｋ」に対し、乖離値ベクトルを（ｍ１，ｍ２，・・・，ｍＫ）で定義した場合は、乖離値ベクトルは、空間的にはＫ個のクラスタに集中する。
【００５９】
また、検知データと比較データとが別々に与えられる場合がある。例えば、ある特定の過去１日分の複数のサーバのＣＰＵ使用率を比較データとして異常検知装置１０に届き、検知データは、異常検知装置１０の運用時に逐次的に届くような場合である。このような場合、比較データの乖離値ベクトルを、検知対象のデータが届くたびに計算し直すことは計算リソース上、効率的ではない。そこで、記憶部１３の乖離値ベクトル記憶部１３１は、このような場合に比較データの乖離値を再計算する必要がないように、比較データの乖離値ベクトルを記憶しておく。乖離値ベクトル記憶部１３１を利用する場合、異常度計算部１２３は、検知データの乖離値ベクトルと、乖離値ベクトル記憶部１３１が記憶する乖離値ベクトルと、を比較する。
【００６０】
そして、乖離値ベクトル記憶部１３１を利用する場合も、比較データとして、正常な状態のデータから計算した乖離値ベクトルのみを記憶させることで、異常検知精度を高めることができる。
【００６１】
［異常判定部の処理］
異常判定部１２４は、異常度計算部１２３が計算した離散度合が所定の閾値を超えた場合に、検知データは異常であることを判定する。異常判定部１２４は、離散度合が所定の閾値以下である場合に、検知データは正常であることを判定する。
【００６２】
ここで、判定の基準となる閾値は、予め設定されたものである。或いは、テストデータがある場合は、テストデータ中の特定のデータ、すなわち、異常が発生した際のデータにおける異常度を閾値として設定してもよい。または、テストデータにおける異常度が、適当な確率分布に従うと考え、その上位５％或いは上位１％などの値を閾値として設定してもよい。異常判定部１２４による判定結果は、異常検知結果として、通信処理部１１を介して、例えば、端末装置２０に出力される。
【００６３】
［異常検知処理の流れ］
次に、異常検知装置１０が実行する異常検知処理について説明する。図７は、異常検知装置１０が実行する異常検知処理の処理手順を示すフローチャートである。
【００６４】
まず、異常検知装置１０では、関係性推定部１２１が、入力されたデータに対して、データ間の関係性を推定し、データ間の関係性を示すパラメータを算出する関係性推定処理を行う（ステップＳ１）。関係性推定部１２１は、それを出力した機器等が正常な状態のデータ、言い換えると、異常な状態のデータを含まないデータを、パラメータ推定のために用いる。データ間に成り立つ関係性が予め与えられている場合には、本ステップＳ１を省略することができる。
【００６５】
そして、乖離値ベクトル計算部１２２は、データ間の関係性に基づいて、検知対象である検知データの集合及び比較データの集合におけるデータ間の乖離値ベクトルを計算する乖離値ベクトル計算処理を実行する（ステップＳ２）。ここで、乖離値ベクトル計算部１２２は、比較データが予め与えられている場合、該比較データの集合におけるデータ間の乖離値ベクトルを計算して、乖離値ベクトル記憶部１３１に記憶する。
【００６６】
続いて、異常度計算部１２３は、検知データの乖離値ベクトルの、比較データの乖離値ベクトルの集合からの離散度合を、異常度として計算する異常度計算処理を行う（ステップＳ３）。なお、異常度計算部１２３は、比較データの乖離値ベクトルが予め計算されて乖離値ベクトル記憶部１３１に記憶されている場合、乖離値ベクトル記憶部１３１から比較データの乖離値ベクトルを読み出して、比較データの乖離値ベクトルの集合を取得する。
【００６７】
そして、異常判定部１２４は、異常度計算部１２３が計算した離散度合を基に、検知データが異常であるか否かを判定する異常判定処理を行う（ステップＳ４）。この場合、異常判定部１２４は、異常度計算部１２３が計算した離散度合が所定の閾値を超えた場合に、検知データは異常であることを判定する。一方、異常判定部１２４は、離散度合が所定の閾値以下である場合に、検知データは正常であることを判定する。異常判定部１２４は、判定結果を異常検知結果として、通信処理部１１を介して端末装置２０に出力し、異常検知処理を終了する。
【００６８】
［異常検知処理の具体例］
図８は、実施の形態１の異常検知処理を説明する図である。図８は、データとして、Ｘ及びＹの組が与えられたとして、座標平面上にその組をプロットしたものである。図８の白丸は、正常な状態の比較データに対応する。また、点Ｐｂは、相関関係を維持したままで、それまでには存在していなかった値をとった場合の例である。点Ｐｒは、相関関係が崩れた場合の例である。また、正常である比較データ（図８の白丸）を基に、Ｘ及びＹの関係性として、直線Ｌｔで示される「Ｙ＝ａＸ＋ｂ」という単回帰が与えられている。
【００６９】
図８の示す点Ｐｂは、直線Ｌｔ上に位置し、正常である場合に成り立つ相関関係を維持しているため、正常であることが想定される。ここで、従来用いられていたＬＯＦでは、データ間の関係性を考慮しておらず、白丸の密度が低い点に存在する点Ｐｂ及び点Ｐｒは、いずれも異常であると検知される。
【００７０】
これに対し、本実施の形態１では、データ間の関係性に基づいて、検知データの集合におけるデータ間の乖離値ベクトルと、比較データの集合におけるデータ間の乖離値ベクトルと、を計算し、検知データの乖離値ベクトルの、比較データの乖離値ベクトルの集合からの離散度合を、異常度として異常判定を行う。
【００７１】
例えば、点Ｐｂが検知データである場合を例とする。この点Ｐｂは、直線Ｌｔ上に位置するため、点Ｐｂに示す「Ｘ，Ｙ」は、直線Ｌｔで示される「Ｙ＝ａＸ＋ｂ」の関係を有していると言える。したがって、この点Ｐｂに示す「Ｘ，Ｙ」について、直線Ｌｔで示される「Ｙ＝ａＸ＋ｂ」に対する乖離値ベクトルを計算し、その乖離値ベクトルの、正常である比較データ（白丸）の乖離値ベクトルの集合からの離散度合を計算すると、ほぼ０となり、点Ｐｂは正常であることを検知できる。
【００７２】
一方、点Ｐｒが検知データである場合について説明する。この点Ｐｒは、直線Ｌｔから離れているため、点Ｐｒに示す「Ｘ，Ｙ」は、「Ｙ＝ａＸ＋ｂ」の関係を有していないと言える。したがって、この点Ｐｒに示す「Ｘ，Ｙ」の、直線Ｌｔで示される「Ｙ＝ａＸ＋ｂ」に対する乖離値ベクトルを計算し、その乖離値ベクトルの、正常である比較データ（白丸）の乖離値ベクトルの集合からの離散度合を計算すると、その値は大きくなり、Ｐｒは異常であることを検知できる。
【００７３】
このように、異常検知装置１０は、乖離値ベクトルという概念を導入し、検知対象のデータの乖離値ベクトルと、正常である比較データの乖離値ベクトルの集合との空間的な距離や密度に基づき離散度合（異常度）を計算し、検知データの異常の有無を判定する。したがって、異常検知装置１０は、データ間に相関がある場合に、相関に乗っているが、比較データの集合から外れた、正常であると想定できるデータ（例えば、点Ｐｂ）を、正常であると検知することができる。
【００７４】
また、図１４や図１５のように、データ間に単なる相関関係でない、複雑な関係性が見られる場合であっても、データ間の関係性からの乖離値ベクトルという概念により、異常検知を精度よく実行することができる。
【００７５】
［実施の形態１の効果］
上記のように、実施の形態１では、乖離値ベクトルという概念を導入し、データ間の関係性に基づいて計算した、検知データの乖離値ベクトルと、正常である比較データの乖離値ベクトルの集合との空間的な距離や密度に基づき離散度合（異常度）を計算し、検知データの異常の有無を判定するため、データ間の関係性に基づいた検知対象データの異常検知を精度よく実行することができる。
【００７６】
［実施の形態２］
次に、実施の形態２について説明する。実施の形態２では、離散度合として、検知データ及び比較データの乖離値ベクトルに基づいたマハラノビス距離を計算し、異常の有無を判定する。なお、実施の形態２に係る異常検知装置は、図１に示す異常検知装置１０と同等の構成を有する。
【００７７】
実施の形態２では、実施の形態１と同様に、乖離値ベクトル計算部１２２が、データ間の関係性に基づいて、検知対象である検知データの集合におけるデータ間の乖離値ベクトルを計算する。そして、乖離値ベクトル計算部１２２は、比較データの集合におけるデータ間の乖離値ベクトルを計算する。なお、実施の形態１と同様に、乖離値ベクトル計算部１２２は、比較データが予め与えられている場合、該比較データの集合におけるデータ間の乖離値ベクトルを計算して、乖離値ベクトル記憶部１３１に記憶してもよい。
【００７８】
そして、異常度計算部１２３は、比較データの乖離値ベクトルが多次元正規分布に従うと仮定し、それらの乖離値ベクトルの平均と共分散行列とを計算する。続いて、異常度計算部１２３は、（３）式で定義されるマハラノビス距離を計算し、このマハラノビス距離を離散度合（異常度）として出力する。
【００７９】
【数３】
0006538615.tif 000004
【００８０】
異常判定部１２４は、異常度計算部１２３が計算したマハラノビス距離が一定の閾値を超えた場合に、検知データは異常であることを判定する。一方、異常判定部１２４は、異常度計算部１２３が計算したマハラノビス距離が一定の閾値以下である場合には、検知データは正常であることを判定する。なお、本実施の形態２では、比較データの乖離値ベクトルが多次元正規分布に従うと仮定しており、この場合、乖離値ベクトルのマハラノビス距離は近似的にｘ二乗分布に従うため、ｘ二乗分布に基づき閾値を決定することができる。このような方法は、ホテリングのＴ２検定と呼ばれている（「竹内啓，統計学辞典  P112，東洋経済新聞社，1989」参照）。
【００８１】
［実施の形態２の効果］
このように、実施の形態２においては、離散度合として、マハラノビス距離を計算し、計算したマハラノビス距離と所定の閾値との比較結果によって、異常の有無を判定する。マハラノビス距離は、データ間の関係性に基づく検知データ及び比較データの乖離値ベクトルを基に計算されたものであるため、実施の形態２は、実施の形態１と同様に、データ間の関係性に基づいた検知対象データの異常検知を精度よく実行することができる。  
【００８２】
［実施の形態３］
次に、実施の形態３について説明する。この実施の形態３に係る異常検知装置は、図１に示す異常検知装置１０と同等の構成を有する。
【００８３】
また、実施の形態１と同様に、乖離値ベクトル計算部１２２は、データ間の関係性に基づいて、検知対象である検知データの集合におけるデータ間の乖離値ベクトルを計算する。そして、乖離値ベクトル計算部１２２は、比較データの集合におけるデータ間の乖離値ベクトルを計算する。なお、実施の形態１と同様に、乖離値ベクトル計算部１２２は、比較データが予め与えられている場合、該比較データの集合におけるデータ間の乖離値ベクトルを計算して、乖離値ベクトル記憶部１３１に記憶してもよい。そこで、次に、異常度計算部１２３の処理を説明する。
【００８４】
［異常度計算部の処理］
実施の形態３では、異常度計算部１２３は、さらに、One-class  Support  Vector  Machine（以下「Ｏｎｅ-ｃｌａｓｓ  ＳＶＭ」と略す。詳しくは、「B.  Scholkopf,  J.  C.  Platt,  J.  Shawe-Taylor，  A.  J.  Smola，  and  R.  C.  Williamson,  “Estimating  the  Support  of  a  High-Dimensional  Distribution”,  Neural  Computation，  13(7):1443-1471，  2001．」参照。）の概念に基づいて、比較データの乖離値ベクトルの集合を含む領域を推定する。
【００８５】
具体的に、図９を参照して、離散度合（異常度）を求める処理について説明する。図９は、実施の形態３に係る異常度計算処理を説明する図である。図９は、データの乖離値ベクトルを所定の高次元空間に写像したものである。
【００８６】
異常度計算部１２３は、Ｏｎｅ-ｃｌａｓｓ  ＳＶＭに基づき、正常データである比較データの乖離値ベクトルを、高次元空間（図９ではφの次元１及び次元２）に写像する。そして、異常度計算部１２３は、写像した比較データの乖離値ベクトルに対応する点の、原点からの距離（マージン）が最大化するような平面（超平面）を求める。この平面は、図９の例では、超平面Ｌｅとして示している。この超平面Ｌｅは、正常である比較データの乖離値ベクトルの集合の境界に対応するものであり、実際には、写像した比較データの乖離値ベクトルを示す点は、超平面Ｌｅよりも原点側でない方に位置する。
【００８７】
続いて、異常度計算部１２３は、検知対象データの乖離値ベクトルを、比較データに対して写像した高次元空間と同じ高次元空間に写像する。例えば、図９に示すように、写像した検知データの乖離値ベクトルを示す各点は、超平面Ｌｅから見て、原点側にある群Ｒ２と、原点側にない群Ｒ３とに分けられる。異常度計算部１２３は、写像した検知データの乖離値ベクトルに対応する点が、超平面Ｌｅから見て原点側にあるか否かを基に、離散度合（異常度）を計算する。
【００８８】
そこで、異常度計算部１２３における計算処理を、図１０を参照して、説明する。図１０は、実施の形態３に係る異常度計算処理を説明する図である。まず、比較データの乖離値ベクトルを「ｅ１，ｅ２，・・・，ｅＭ」とする。この比較データの乖離値ベクトルに対し、図１０に示す式Ｇ（（Ａ）式参照）を、（Ｂ）式及び（Ｃ）式に示す条件下で最小化する最小化問題を解く。なお、記号「＜，＞」は内積を表す。
【００８９】
この問題では、超平面として、各データの（「φ（ベクトルｅｍ）」の距離を、「ｄｍ」としたときに、最も小さいｄｍを最大化する超平面を求めようとしている。言い換えると、最も超平面に近いデータまでの距離を最大化する、超平面のパラメータ「ベクトルｗ」と「ρ」を求めようとしている。
【００９０】
この最小化問題は、以下の（４）式に示す「Ｌ」を最小化するＬａｇｒａｎｇｅの未定乗数法により解くことができる。この（４）式の１行目は、Ｇそのものであり、（４）式の２行目については、図１０の（Ｂ）式に示す制約条件を反映し、（４）式の３行目については、図１０の（Ｃ）式に示す制約条件を反映する。
【００９１】
【数４】
0006538615.tif 000005
【００９２】
図１１は、実施の形態３に係る異常度計算処理及び異常判定処理を説明する図である。異常度計算部１２３は、異常データの乖離値ベクトルを「ｅ’」としたとき、図１１に示す式ｆ（ｅ’）によって、検知データの乖離値ベクトル「ｅ’」に対する異常度を計算する。式ｆ（ｅ’）は、（４）式で求めたパラメータを適用し、比較データの乖離値ベクトル「ｅｍ」を高次元空間に写像した点と、検知データの乖離値ベクトル「ｅ’」を高次元空間に写像した点との距離に基づいた異常度を計算するものである。異常度計算部１２３は、この式ｆ（ｅ’）を用いた計算を行うことによって、写像した検知データの乖離値ベクトルに対応する点が、超平面Ｌｅから見て原点側にあるか否かを示す異常度を求めることができる。
【００９３】
このように、異常度計算部１２３は、上述のＯｎｅ-ｃｌａｓｓ  ＳＶＭに従い、写像した検知データの乖離値ベクトルを示す点が、平面（例えば、超平面Ｌｅ）から見て原点側にあるか、或いは、平面から見て原点側にないかを、式ｆ（ｅ’）を用いて計算する。
【００９４】
［異常判定部の処理］
そして、実施の形態３では、異常判定部１２４は、写像した検知データの乖離値ベクトルを示す点が、平面から見て原点側にある場合には、該検知データは異常であると判定する。一方、異常判定部１２４は、写像した検知データの乖離値ベクトルを示す点が、平面から見て原点側にない場合には、正常であると判定する。例えば、異常判定部１２４は、図９に示す写像した検知データの乖離値ベクトルを示す各点のうち、超平面Ｌｅから見て、原点側にある群Ｒ２については、検知データは異常であると判定する。一方、異常判定部１２４は、超平面Ｌｅから見て、原点側にない群Ｒ３については、検知データは正常であると判定する（図９の枠Ｂ１参照）。
【００９５】
ここで、異常判定部１２４は、検知データに対し式（ｅ’）で求めた異常度と、前述の未定乗数法（（４）式）によって求めた超平面に対応するパラメータ（ρチルダ）と、を比較することによって、検知データの異常の有無を判定する。すなわち、図１１に示すように、異常判定部１２４は、検知データについての異常度ｆ（ｅ’）が、（４）式からパラメータ（ρチルダ）よりも小さい場合には、検知データが超平面Ｌｅよりも原点側にあると判断して、該検知データは異常であると判定する。一方、異常判定部１２４は、検知データについての異常度ｆ（ｅ’）が、パラメータ（ρチルダ）よりも大きい場合には、検知データが超平面Ｌｅよりも原点側にないと判断して、正常であると判定する。
【００９６】
［実施の形態３の効果］
このように、実施の形態３においては、比較データの乖離値ベクトルを高次元空間に写像して原点からの距離が最大化する超平面を求める。そして、実施の形態３では、検知データの乖離値ベクトルを高次元空間に写像した場合に該写像した乖離値ベクトルに対応する点が、超平面から見て原点側にあるか否かを基に異常度を計算して、異常の有無を判定する。すなわち、実施の形態３においても、実施の形態１と同様に、データ間の関係性に基づいて計算した、検知データの乖離値ベクトルと、正常である比較データの乖離値ベクトルの集合との距離によって、検知データの異常の有無を判定しているため、データ間の関係性に基づいた検知対象データの異常検知を精度よく実行することができる。
【００９７】
［実施形態のシステム構成について］
図１に示した異常検知装置１０の各構成要素は機能概念的なものであり、必ずしも物理的に図示のように構成されていることを要しない。すなわち、異常検知装置１０の機能の分散および統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散または統合して構成することができる。
【００９８】
また、異常検知装置１０においておこなわれる各処理は、全部または任意の一部が、ＣＰＵ（Central  Processing  Unit）およびＣＰＵにより解析実行されるプログラムにて実現されてもよい。また、異常検知装置１０においておこなわれる各処理は、ワイヤードロジックによるハードウェアとして実現されてもよい。
【００９９】
また、実施形態において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的に行うこともできる。もしくは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上述および図示の処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて適宜変更することができる。
【０１００】
［プログラム］
図１２は、プログラムが実行されることにより、異常検知装置１０が実現されるコンピュータの一例を示す図である。コンピュータ１０００は、例えば、メモリ１０１０、ＣＰＵ１０２０を有する。また、コンピュータ１０００は、ハードディスクドライブインタフェース１０３０、ディスクドライブインタフェース１０４０、シリアルポートインタフェース１０５０、ビデオアダプタ１０６０、ネットワークインタフェース１０７０を有する。これらの各部は、バス１０８０によって接続される。
【０１０１】
メモリ１０１０は、ＲＯＭ（Read  Only  Memory）１０１１及びＲＡＭ１０１２を含む。ＲＯＭ１０１１は、例えば、ＢＩＯＳ（Basic  Input  Output  System）等のブートプログラムを記憶する。ハードディスクドライブインタフェース１０３０は、ハードディスクドライブ１０９０に接続される。ディスクドライブインタフェース１０４０は、ディスクドライブ１１００に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ１１００に挿入される。シリアルポートインタフェース１０５０は、例えばマウス１１１０、キーボード１１２０に接続される。ビデオアダプタ１０６０は、例えばディスプレイ１１３０に接続される。
【０１０２】
ハードディスクドライブ１０９０は、例えば、ＯＳ１０９１、アプリケーションプログラム１０９２、プログラムモジュール１０９３、プログラムデータ１０９４を記憶する。すなわち、異常検知装置１０の各処理を規定するプログラムは、コンピュータ１０００により実行可能なコードが記述されたプログラムモジュール１０９３として実装される。プログラムモジュール１０９３は、例えばハードディスクドライブ１０９０に記憶される。例えば、異常検知装置１０における機能構成と同様の処理を実行するためのプログラムモジュール１０９３が、ハードディスクドライブ１０９０に記憶される。なお、ハードディスクドライブ１０９０は、ＳＳＤ（Solid  State  Drive）により代替されてもよい。
【０１０３】
また、上述した実施の形態の処理で用いられる設定データは、プログラムデータ１０９４として、例えばメモリ１０１０やハードディスクドライブ１０９０に記憶される。そして、ＣＰＵ１０２０が、メモリ１０１０やハードディスクドライブ１０９０に記憶されたプログラムモジュール１０９３やプログラムデータ１０９４を必要に応じてＲＡＭ１０１２に読み出して実行する。
【０１０４】
なお、プログラムモジュール１０９３やプログラムデータ１０９４は、ハードディスクドライブ１０９０に記憶される場合に限らず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ１１００等を介してＣＰＵ１０２０によって読み出されてもよい。あるいは、プログラムモジュール１０９３及びプログラムデータ１０９４は、ネットワーク（ＬＡＮ、ＷＡＮ等）を介して接続された他のコンピュータに記憶されてもよい。そして、プログラムモジュール１０９３及びプログラムデータ１０９４は、他のコンピュータから、ネットワークインタフェース１０７０を介してＣＰＵ１０２０によって読み出されてもよい。
【０１０５】
以上、本発明者によってなされた発明を適用した実施の形態について説明したが、本実施の形態による本発明の開示の一部をなす記述及び図面により本発明は限定されることはない。すなわち、本実施の形態に基づいて当業者等によりなされる他の実施の形態、実施例及び運用技術等は全て本発明の範疇に含まれる。
【符号の説明】
【０１０６】
１０  異常検知装置
１１  通信処理部
１２  制御部
１３  記憶部
１２１  関係性推定部
１２２  乖離値ベクトル計算部
１２３  異常度計算部
１２４  異常判定部
１３１  乖離値ベクトル記憶部
【図１】
0006538615.tif 000006
【図２】
0006538615.tif 000007
【図３】
0006538615.tif 000008
【図４】
0006538615.tif 000009
【図５】
0006538615.tif 000010
【図６】
0006538615.tif 000011
【図７】
0006538615.tif 000012
【図８】
0006538615.tif 000013
【図９】
0006538615.tif 000014
【図１０】
0006538615.tif 000015
【図１１】
0006538615.tif 000016
【図１２】
0006538615.tif 000017
【図１３】
0006538615.tif 000018
【図１４】
0006538615.tif 000019
【図１５】
0006538615.tif 000020