(57)【要約】【課題】ＳＯＭを用いる学習のための入力データに対して所定の提条件を考慮することなく、教師なし学習と半教師あり学習との双方の性質を併せ持つ異常判定を実施することが可能になる。【解決手段】判定装置１０は、学習部１２２及び判定部１２３を有する。学習部１２２は、教師なし学習済みのＳＯＭに入力データを入力して得られたＳＯＭの出力層の代表ベクトルと入力データとの間の量子化誤差と、代表ベクトルの近傍距離の値との分布から、これらの外れ値の閾値を求め、該求めた閾値を組み合わせて複数の閾値を生成する。判定部１２３は、判定対象のベクトルデータをＳＯＭに入力し、判定対象のベクトルデータの量子化誤差を計算し、該量子化誤差と複数の閾値の少なくともいずれかとを比較して、判定対象のベクトルデータの異常判定を行う。【選択図】図５
2020160618.tif 000002
【特許請求の範囲】
【請求項１】
複写された通信データまたは通信の数値データに統計処理を行い、多変量変数のベクトルデータを取得する取得部と、
学習対象の前記ベクトルデータを入力データとしてＳＯＭ（Self  Organizing  Map）による教師なし学習を行った後、学習済みの前記ＳＯＭに再度入力データを入力して得られた前記ＳＯＭの出力層の代表ベクトルと前記入力データとの間の量子化誤差と、前記代表ベクトルの近傍距離とを計算し、前記量子化誤差と前記代表ベクトルの近傍距離の値との分布からこれらの外れ値の閾値を求め、該求めた閾値を組み合わせて、複数の閾値を生成する学習部と、
判定対象の前記ベクトルデータを前記ＳＯＭに入力し、前記判定対象のベクトルデータが写像される出力層の代表ベクトルと前記判定対象のベクトルデータとの間の量子化誤差を計算し、該計算した量子化誤差と前記複数の閾値の少なくともいずれかとを比較して前記判定対象のベクトルデータが異常であるか否かを判定する判定部と、
を有することを特徴とする判定装置。
【請求項２】
前記学習部は、外れ値検出の境界の閾値を計算する手法である箱ひげ図に対して前記量子化誤差と前記近傍距離との分布を与えて前記量子化誤差と前記近傍距離とのひげの上端値を計算し、前記量子化誤差の最大値、前記量子化誤差のひげの上端値、前記近傍距離のひげ上端値を用いて、前記複数の閾値を生成することを特徴とする請求項１に記載の判定装置。
【請求項３】
前記学習部は、前記量子化誤差の最大値である第１の閾値、前記近傍距離のひげの上端値である第２の閾値、前記第１の閾値及び前記第２の閾値の和である第３の閾値、及び、前記量子化誤差のひげの上端値と第２の閾値との和である第４の閾値を生成することを特徴とする請求項２に記載の判定装置。
【請求項４】
前記判定部は、前記第１の閾値、前記第２の閾値、前記第３の閾値及び前記第４の閾値のいずれかと、前記判定対象のベクトルデータの量子化誤差とを比較し、前記判定対象のベクトルデータの量子化誤差が比較対象の閾値を超えた場合には、前記判定対象のベクトルデータが異常であると判定することを特徴とする請求項３に記載の判定装置。
【請求項５】
判定装置が実行する判定方法であって、
複写された通信データまたは通信の数値データに統計処理を行い、多変量変数のベクトルデータを取得する工程と、
学習対象の前記ベクトルデータを入力データとしてＳＯＭ（Self  Organizing  Map）による教師なし学習を行った後、学習済みの前記ＳＯＭに再度入力データを入力して得られた前記ＳＯＭの出力層の代表ベクトルと前記入力データとの間の量子化誤差と、前記代表ベクトルの近傍距離とを計算し、前記量子化誤差と前記代表ベクトルの近傍距離の値との分布からこれらの外れ値の閾値を求め、該求めた閾値を組み合わせて、複数の閾値を生成する工程と、
判定対象の前記ベクトルデータを前記ＳＯＭに入力し、前記判定対象のベクトルデータが写像される出力層の代表ベクトルと前記判定対象のベクトルデータとの間の量子化誤差を計算し、該計算した量子化誤差と前記複数の閾値の少なくともいずれかとを比較して前記判定対象のベクトルデータが異常であるか否かを判定する工程と、
を含んだことを特徴とする判定方法。
【請求項６】
複写された通信データまたは通信の数値データに統計処理を行い、多変量変数のベクトルデータを取得するステップと、
学習対象の前記ベクトルデータを入力データとしてＳＯＭ（Self  Organizing  Map）による教師なし学習を行った後、学習済みの前記ＳＯＭに再度入力データを入力して得られた前記ＳＯＭの出力層の代表ベクトルと前記入力データとの間の量子化誤差と、前記代表ベクトルの近傍距離とを計算し、前記量子化誤差と前記代表ベクトルの近傍距離の値との分布からこれらの外れ値の閾値を求め、該求めた閾値を組み合わせて、複数の閾値を生成するステップと、
判定対象の前記ベクトルデータを前記ＳＯＭに入力し、前記判定対象のベクトルデータが写像される出力層の代表ベクトルと前記判定対象のベクトルデータとの間の量子化誤差を計算し、該計算した量子化誤差と前記複数の閾値の少なくともいずれかとを比較して前記判定対象のベクトルデータが異常であるか否かを判定するステップと、
をコンピュータに実行させることを特徴とする判定プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、判定装置、判定方法及び判定プログラムに関する。
【背景技術】
【０００２】
自己組織化写像（Self  Organizing  Map：ＳＯＭ）は、データ解析の技術分野における、機械学習によるクラスタリング手法の１つである（例えば、非特許文献１参照）。クラスタリングは、クラスタ解析、クラスタ分析ともいう。
【０００３】
ここで、クラスタリングとは、複数の変数からなる多変量データの解析手法の１つである。多変量は一般的に多次元のベクトルで表される。以降、多変量をベクトルと呼ぶ。そして、クラスタリングは、ラベルを予め付与することなく、それぞれのベクトルの種類を未知のものとして、ベクトルの値の特徴のみを用いてベクトルをいくつかの集団、すなわちクラスタに分類する手法である。なお、ラベルは、解析対象となる多変量データを分類するために基準とする情報である。
【０００４】
このように、予備知識なしでデータを分類する機械学習の手法は、教師なし学習と呼ばれる。一方で、データに対し予め外的基準によるラベルを付与した上で、ラベルが示す分類に適合するように分類基準を別途学習する手法は、教師あり学習と呼ばれる。
【０００５】
ＳＯＭは、教師なし学習を行うニューラルネットワークの一種である。一般に、ニューラルネットワークは、人間の脳に見られるいくつかの機能的特性を計算機上で模擬した計算モデルのことである。
【０００６】
ＳＯＭは、入力層と出力層とからなる２層構造のニューラルネットワークである。ＳＯＭは、多変量のｎ次元ベクトルである入力データを、ベクトル量子化を行いつつ、低次元（通常は２次元）の格子構造のモデルである出力層に非線形写像する手法である。
【０００７】
ここで、ベクトル量子化とは、複数の異なる入力データをまとめ、１つの代表値を表すベクトルに置き換えて出力することをいう。量子化によって置き換えられる出力のベクトル数は、入力データのベクトル数よりも少なくなる。すなわち、入力データがＮ個のｎ次元ベクトルから構成されるとすれば、出力は、Ｋ個のｎ次元ベクトル（Ｋ＜Ｎ）となる。
【０００８】
ベクトル量子化の手順は、以下のようになる。まず、Ｎ個の入力ベクトルをＫ個のクラスタに分類する。次に、Ｋ個のクラスタそれぞれに「代表ベクトル」と呼ばれる、クラスタを代表するベクトルを１つ割り当てる。この代表ベクトルの決定方法として、様々な方法が存在し、ＳＯＭは、それらの決定方法の中の１つに位置づけられる。このような手順により、Ｎ個の入力ベクトルをＫ個の代表ベクトルに置き換えることによって、ベクトル量子化を行う。
【０００９】
ＳＯＭにおいて、ベクトル量子化によって出力される代表ベクトルは、出力層の各格子点に配置されている。代表的な２次元のＳＯＭにおいては、出力層はＫ個の格子点からなる２次元格子となる。例えば、ｘ軸、ｙ軸からなる２次元直交座標において、ｘ軸の格子点の数をＸ、ｙ軸の格子点の数をＹとすれば、出力層の格子点の数Ｋは、Ｋ＝Ｘ×Ｙである。
【００１０】
さらに、ＳＯＭでは、互いに似た特徴を持つ代表ベクトルは、出力層の上で距離的に近い格子点（以下ノードと呼ぶ。）に配置される。通常、ベクトル間の距離の計算として、ユークリッド距離が用いられる。ＳＯＭは、このＳＯＭの特性によって、同様の特徴を持つ代表ベクトル、すなわち、相対的なユークリッド距離が短い代表ベクトル同士をまとめることで、出力層の上でいくつかのクラスタに分けることができる。
【００１１】
一般的な機械学習と同様、ＳＯＭにも学習フェーズと写像フェーズとの２つの処理フェーズがある。学習フェーズでは、入力データを用いてベクトル量子化を行いつつ、競合的学習を繰り返し行って出力層を構築する。学習フェーズでは、入力データは入力層と出力層とからなる２層構造のニューラルネットワークのモデルを構築するために使われる。一方、写像フェーズでは、学習フェーズによって構築したモデルを用いて、入力データを入力層から出力層に写像する。写像フェーズでは、入力データは、出力層上の１つの代表ベクトルに写像され、代表ベクトルのクラスタによって分類される。
【００１２】
次に、ＳＯＭを利用した異常判定手法について説明する。ＳＯＭを利用した異常判定手法には、大きく分けて教師なし学習による異常判定方式と、半教師あり学習による異常判定方式の２つがある（例えば、非特許文献２参照）。
【００１３】
第一の方式として、教師なし学習による異常判定方式について説明する。教師なし学習による異常判定では、クラスタリングを行うデータ、すなわち入力データが、学習を開始する時点で予め全て与えられていることが必要である。さらに第一の方式では、入力データの大多数は正常である、という仮定が成り立つ必要がある。これらの条件と仮定の下、第一の方式では、入力データの中から、入力データの大多数にほとんど合致しないと思われるデータを、クラスタリングの手法を用いて抽出する。
【００１４】
ＳＯＭを利用した教師なし学習による異常判定では、まず、学習フェーズにおいて、入力データを用いて、ＳＯＭのモデルを構築する。
【００１５】
次に、ＳＯＭを利用した教師なし学習による異常判定では、学習によって得られるモデルの出力層の代表ベクトルに対してクラスタリングを行う。そして、ＳＯＭを利用した教師なし学習による異常判定では、クラスタリングの結果得られる複数の代表ベクトルのクラスタの中から、入力データの大多数が写像されているクラスタの集合を特定する。これは、「正常」に相当するクラスタを特定する処理となる。
【００１６】
続いて、ＳＯＭを利用した教師なし学習による異常判定では、残りのクラスタから少数の入力データが写像され、かつ、入力データの大多数が写像されているクラスタの集合からの相対的な距離が最も遠いクラスタを特定する。そして、ＳＯＭを利用した教師なし学習による異常判定では、その代表ベクトルのクラスタを「異常」とする。これは、「異常」に相当するクラスタを特定する処理となる。
【００１７】
そして、ＳＯＭを利用した教師なし学習による異常判定では、「異常」と分類したクラスタに写像されている入力データを特定することによって、入力データの中から異常と判断されるデータを抽出することができる（例えば、非特許文献３参照）。
【００１８】
また、第二の方式として、半教師あり学習による異常判定方式について説明する。半教師あり学習による異常判定では、予め外的基準よってラベルが付与された、正常に相当する入力データが必要である。この第二の方式は、正常なデータ及び異常なデータの半分、すなわち、一部のラベルつきデータを用いて学習を行うため、半教師あり学習と呼ばれる。この条件の下、半教師あり学習による異常判定では、正常に相当する入力データのみを機械学習することによって、逆に正常なデータに合致しない異常なデータを識別できるようにする。
【００１９】
具体的には、半教師あり学習による異常判定では、学習フェーズにおいて、学習器は、入力データから正常な領域と推定される多次元の境界面を決定する学習を行う。次に、半教師あり学習による異常判定では、判定フェーズにおいて、学習を終えた学習器に、新たな判定対象のデータを入力する。ここで、もし新たな入力データが正常な領域の境界内部にあると学習器によって判定された場合には正常となり、境界の外部にあると判定された場合には異常となる。
【００２０】
ＳＯＭを利用した半教師あり学習による異常判定では、第一の方式と同様、入力データを使って学習フェーズにおいてＳＯＭのモデルを構築する。ＳＯＭを利用した半教師あり学習による異常判定では、入力するデータは全て正常に相当するデータであり、学習によって、ある入力データは、出力層のある１つのノードに写像されるようになる。ここで、ＳＯＭにおいては、全ての入力データは必ずどれかの１つ代表ベクトルに写像されるが、逆にどの入力データも写像されない代表ベクトルを持つノードが出力層には存在する。
【００２１】
したがって、ＳＯＭを利用した半教師あり学習による異常判定では、学習後のＳＯＭの出力層に、正常に相当する入力データが写像されるノードと、何も写像されないノードとが分布する。これによって、ＳＯＭを利用した半教師あり学習による異常判定では、出力層上の正常と推定される領域の境界面を決定できる。
【００２２】
既存の方式を用いてＳＯＭの写像フェーズにおいて異常な入力データを判定するために、判定対象のデータが写像される出力層の代表ベクトルと、入力データとの間の量子化誤差、すなわち２つのベクトル間のユークリッド距離を計算する。そして、ＳＯＭを利用した半教師あり学習による異常判定では、その値が別途予め設定された閾値よりも大きい場合に、入力データは、正常な領域の外部にあると判断し異常と判定される。また、ＳＯＭを利用した半教師あり学習による異常判定では、入力データが、正常に相当する入力データが全く写像されないノードに写像された場合にも異常と判定できる（例えば、非特許文献４参照）。
【先行技術文献】
【非特許文献】
【００２３】
【非特許文献１】自己組織化マップ，T.  コホネン(著)，大北  正昭  (監修)，丸善出版；改訂版  (2016/2/1)，ISBN-10:  4621065513，ISBN-13:  978-4621065518,  pp.60-62,  111-117.
【非特許文献２】Victoria  J.,  Hodge  and  Jim  Austin,  “A  Survey  of  Outlier  Detection  Methodologies”,  Artificial  Intelligence  Review,  22:2004,  2004.
【非特許文献３】M.  Almi'ani,  A.  A.  Ghazleh,  A.  Al-Rahayfeh  and  A.  Razaque,  “Intelligent  Intrusion  Detection  System  Using  Clustered  Self  Organized  Map”,  2018  Fifth  International  Conference  on  Software  Defined  Systems  (SDS)  ,  Barcelona，  2018,  pp.  138-144.
【非特許文献４】Albert  J.  Hoglund,  Kimmo  Hatonen,  and  Antti  S.  Sorvari,  “A  COMPUTER  HOST-BASED  USER  ANOMALY  DETECTION  SYSTEM  USING  THE  SELF-ORGANIZING  MAP”,  Neural  Networks,  2000.  IJCNN  2000,  Proceedings  of  the  IEEE-INNS-ENNS  International  Joint  Conference  on.  Vol.  5.  IEEE,  2000.
【発明の概要】
【発明が解決しようとする課題】
【００２４】
このように、ＳＯＭを利用した異常判定手法には、大きく分けて教師なし学習による異常判定方式と半教師あり学習による異常判定方式との２つがあり、それぞれデータを正常と異常に分類する方法が異なる。このとき、既存の異常判定方式ではそれぞれ以下のような問題が発生する。
【００２５】
第一の問題について説明する。教師なし学習による異常判定方式では、まず入力データが学習を開始する時点で予め全て与えられていることが必要である。このため、教師なし学習による異常判定方式では、学習後に入力データが新たに生成される場合に、全ての入力データを使って学習を再度やり直す必要がある。特に、通信ネットワークの異常判定では、判定対象となる通信に関するデータが時間の経過と共に動的に生成されて入力データが増加するため、教師なし学習による異常判定方式では、学習を終了することができないという問題が発生する。
【００２６】
また、教師なし学習による異常判定方式では、入力データの大多数は正常であるという仮定が成り立つ必要がある。しかしながら、教師あり学習のように外的基準で予めラベルを付与することなく入力データの種類の分布を事前に確認することは、現実世界では一般的に困難である。このため、別途経験的な分析などにより入力データの大多数が正常であるなどの傾向を把握できなければ、教師なし学習による異常判定方式による異常判定の精度はあまり高くならないという問題が発生する。
【００２７】
さらに、教師なし学習による異常判定方式の判定の仕組みの問題として、入力データに正常と異常データとがほぼ同じ数含まれていたとすると、入力データの中で大多数を占めるクラスタを特定することができないため、異常判定を行えないという問題がある。
【００２８】
次に、第二の問題について説明する。半教師あり学習による異常判定方式では、学習を開始する時点で入力データが全て与えられている必要はないが、学習に入力するデータは全て正常に相当するデータである必要がある。このため、半教師あり学習による異常判定方式では、学習器とは別に予め外的基準により入力データを分類しておく必要がある。しかしながら、半教師あり学習による異常判定方式では、正常と異常の明確な外部の分類基準がない場合に、学習のための入力データに異常に相当するデータが混入してしまう可能性がある。このように、半教師あり学習による異常判定方式では、前提条件を完全に満たすことができない場合には、異常なデータも正常なものとして学習してしまうため、判定精度が低下するという問題がある。
【００２９】
さらに、半教師あり学習による異常判定方式では、正常と異常の判定を、判定対象のデータが写像される出力層の代表ベクトル及び入力データの間の量子化誤差と、予め設定した閾値との間の大小比較で行う。このため、半教師あり学習による異常判定方式では、判定を行うために、事前に人間が閾値を何かしらの手段で決めて与えなければならない。
【００３０】
ここで、半教師あり学習による異常判定方式では、この閾値が多変量の入力ベクトルの量子化誤差であるため、学習の結果得られたＳＯＭの出力層に関する情報がなければ、適切な閾値の値を定めることが、通常できないという問題がある。したがって、半教師あり学習による異常判定方式では、人間が試行錯誤的に閾値を調整して適当な値を発見しなければならない。しかしながら、そのような調整は、ＳＯＭの出力層や異常判定に関する事前知識がなければ難しい。さらに、閾値は、そもそも、連続値をとる実数であり、恣意的に設定可能であることから、最適な閾値とその閾値とを用いた異常判定の結果の妥当性を判断できないという問題がある。
【００３１】
このように、第一の問題の第一の原因として、教師なし学習による異常判定方式では、通信データのように、時間とともに増加するような入力データを取り扱うことができないことが挙げられる。第一の問題の第二の原因として、動的に生成される入力データについては、入力データに含まれる正常と異常の分布を事前に確認する手段がないことが挙げられる。
【００３２】
また、第二の問題の第一の原因として、半教師あり学習による異常判定方式では、学習のための入力データに異常に相当するデータが混入した場合に、その混入したデータを区別する手段がないことが挙げられる。そして、第二の問題の第二の原因として、半教師あり学習による異常判定方式では、異常判定基準となる閾値を、人手を介さずに自動的に調節して設定する手段がないことがあげられる。
【００３３】
本発明は、上記に鑑みてなされたものであって、ＳＯＭを用いる学習のための入力データに対して所定の提条件を考慮することなく、教師なし学習と半教師あり学習との双方の性質を併せ持つ異常判定を実施することが可能になる判定装置、判定方法及び判定プログラムを提供することを目的とする。
【課題を解決するための手段】
【００３４】
上述した課題を解決し、目的を達成するために、本発明の判定装置は、複写された通信データまたは通信の数値データに統計処理を行い、多変量変数のベクトルデータを取得する取得部と、学習対象のベクトルデータを入力データとしてＳＯＭによる教師なし学習を行った後、学習済みのＳＯＭに再度入力データを入力して得られたＳＯＭの出力層の代表ベクトルと入力データとの間の量子化誤差と、代表ベクトルの近傍距離とを計算し、量子化誤差と代表ベクトルの近傍距離の値との分布からこれらの外れ値の閾値を求め、該求めた閾値を組み合わせて、複数の閾値を生成する学習部と、判定対象のベクトルデータをＳＯＭに入力し、判定対象のベクトルデータが写像される出力層の代表ベクトルと判定対象のベクトルデータとの間の量子化誤差を計算し、該計算した量子化誤差と複数の閾値の少なくともいずれかとを比較して判定対象のベクトルデータが異常であるか否かを判定する判定部と、を有することを特徴とする。
【発明の効果】
【００３５】
本発明によれば、ＳＯＭを用いる学習のための入力データに対して所定の提条件を考慮することなく、教師なし学習と半教師あり学習との双方の性質を併せ持つ異常判定を実施することが可能になる。
【図面の簡単な説明】
【００３６】
【図１】図１は、ＳＯＭの出力層の例を示した図である。
【図２】図２は、ｊ番目の代表ベクトルの周囲にある近傍の代表ベクトルとの位置関係を示す図である。
【図３】図３は、Ｕ−マトリックスの一例を示す図である。
【図４】図４は、箱ひげ図を説明する図である。
【図５】図５は、実施の形態における通信システムの構成の一例を示す図である。
【図６】図６は、図５に示す通信システムにおける処理の流れを説明する図である。
【図７】図７は、実施の形態に係る学習処理の処理手順を示すフローチャートである。
【図８】図８は、実施の形態に係る判定処理の処理手順を示すフローチャートである。
【図９】図９は、プログラムが実行されることにより、判定装置が実現されるコンピュータの一例を示す図である。
【発明を実施するための形態】
【００３７】
以下、図面を参照して、本発明の一実施形態を詳細に説明する。なお、この実施の形態により本発明が限定されるものではない。また、図面の記載において、同一部分には同一の符号を付して示している。
【００３８】
［実施の形態］
本実施の形態に係る判定装置は、学習フェーズにおいて、ＳＯＭによる教師なし学習を行った後、ＳＯＭの出力層の代表ベクトルと入力データとの間の量子化誤差と、ＳＯＭの出力層にある代表ベクトルの近傍距離とを計算し、これらの値の分布から既存の外れ値の閾値を計算する。本実施の形態に係る判定装置は、学習フェーズにおいて、これらから得られる２つの閾値を組み合わせて、教師なし学習及び半教師あり学習の性質を持つ異常判定のための複数の閾値を生成する。
【００３９】
続いて、本実施の形態に係る判定装置は、写像フェーズにおいて、判定対象のデータをＳＯＭに入力して、判定対象のデータの量子化誤差を計算し、計算した量子化誤差と、複数の閾値の少なくともいずれかとの大小比較を基に、入力データの異常を判定する。
【００４０】
このように、本実施の形態に係る判定装置は、教師なし学習及び半教師あり学習の性質を持つ異常判定のための複数の閾値を生成する。そして、本実施の形態に係る判定装置は、いずれかの閾値と、入力データの量子化誤差との比較によって、教師なし学習及び半教師あり学習を組み合わせた異常判定を行うことが可能になる。
【００４１】
［数理的背景］
まず、以降の説明において必要となる数理的背景を説明する。図１は、ＳＯＭの出力層の例を示した図である。図１における１つの六角形は、１つの代表ベクトルを表す。代表ベクトルは、２次元空間上に六角格子状に配列され、格子配列は全体で長方形を形成する。なお、格子の形状は、正方格子も選択できる。
【００４２】
代表ベクトルが六角格子の場合、１つの格子点の周囲には６つの格子点が等距離で存在する。図１の例では、横軸（Ｘ軸）の格子点(Ｘ)が１３個、縦軸（Ｙ軸）の格子点(Ｙ)が１３個あり、全体の格子点の数(Ｋ)は１６９個ある。格子点の配列の左下を１番目として右上に向かって数えると、ｊ番目の代表ベクトルは、ｍｊ(ｊ＝１，２，・・・，Ｋ)、Ｋ＝Ｘ×Ｙで表すことができる。
【００４３】
本実施の形態では、ＳＯＭの学習と写像フェーズとの両方において、格子配列の上下左右の境界は、上下、左右それぞれで、循環するトロイダル構造であると限定する。つまり、格子配列の長方形の上辺と下辺、及び左辺と右辺を隣接させて学習と写像を行う。この条件により、１つの格子点の近傍には、必ず６つの格子点が存在することになる。
【００４４】
図１は、学習フェーズによって構築したＳＯＭを用いて入力データを、出力層に写像した結果の例を示している。六角形の中の数字及び色は、写像された入力データの数を表し、写像された入力データの数が多いほど赤い色で表現される。写像された入力データの数が０の代表ベクトルは灰色で表されている。
【００４５】
そして、入力データが写像される出力層の代表ベクトルと入力データとの間の量子化誤差ｄｉ（ｉ＝１，２，・・・，Ｎ）は、以下の式（１）で表される。
【００４６】
【数１】
2020160618.tif 000003
【００４７】
図２は、ｊ番目の代表ベクトルの周囲にある近傍の代表ベクトルとの位置関係を示す図である。図２において、中心の代表ベクトルと周囲の代表ベクトルとの間の近傍距離ｈｊ(ｊ＝１，２，・・・，Ｋ)は、以下の式（２）で表される。
【００４８】
【数２】
2020160618.tif 000004
【００４９】
六角格子の場合には、近傍の代表ベクトルが６つ存在するので、近傍距離は、中心の代表ベクトルと、それら６つの代表ベクトルそれぞれとの間のユークリッド距離を計算し、それらの平均値を計算することによって得られる。
【００５０】
図３は、Ｕ−マトリックスの一例を示す図である。Ｕ−マトリックスは、上記のように計算した近傍距離ｈｊ(ｊ＝１，２，・・・，Ｋ)を全格子点について計算し、ｈｊの大小によって濃淡階調で可視化した図である。六角形の中の数字は、ｈｊの値を示している。
【００５１】
ｈｊの値が大きくＵ−マトリックスで濃く表される代表ベクトルは、近傍の代表ベクトルとの間の距離が離れていることを示す。これに対し、ｈｊの値が小さく薄く表される代表ベクトルは、近傍の代表ベクトルと距離が近いことを示す。
【００５２】
ＳＯＭでは、互いに似た特徴を持つ代表ベクトルは出力層の上で近い格子点に配置される。このため、隣接し合うｈｊが小さい代表ベクトルの集団（連続する淡い階調の領域）は、代表ベクトルのクラスタを形成しているとみなすことができる。一方、隣接し合うｈｊが大きい代表ベクトルは、相対的に近傍の代表ベクトルから離れており、出力層の代表ベクトル全体の集合から孤立しているとみなすことができる。
【００５３】
したがって、ｈｊが大きい代表ベクトルに写像される入力ベクトルは、教師なし学習による異常判定方式における入力データの大多数が写像されているクラスタの集合から、相対的に離れている、異常のクラスタに属しているとみなすことができる。
【００５４】
図４は、箱ひげ図を説明する図である。箱ひげ図は、既存の最も簡易な外れ値検出手法の１つである。箱ヒゲ図は、あるデータの分布が与えられたときに、五数要約と呼ばれる要約統計量を用いて、外れ値検出の境界の閾値を計算するための手法である。データ分布の五数要約は、Ｑ０／４，Ｑ１／４，Ｑ２／４，Ｑ３／４，Ｑ４／４の５つの値である。
【００５５】
Ｑ０／４は、最小値（minimum）である。Ｑ１／４は、第１四分位点（lower  quartile）であり、データを小さい順に並べ、データの全数の１／４にあたるところのデータの値である。Ｑ２／４は、中央値（第２四分位点、median）であり、データを小さい順に並べてデータの全数の１／２にあたるところのデータの値である。Ｑ３／４は、第３四分位点（upper  quartile）であり、データを小さい順に並べてデータの全数の３／４にあたるところのデータの値である。Ｑ４／４は、最大値（maximum）である。
【００５６】
箱ヒゲ図を用いて外れ値を扱う場合には、以下の式（３）〜式（５）のように、ひげの上限値及びひげの下限値を計算する。ＩＱＲは四分位範囲と呼ばれる。
【００５７】
【数３】
2020160618.tif 000005
【００５８】
【数４】
2020160618.tif 000006
【００５９】
【数５】
2020160618.tif 000007
【００６０】
ひげの上端値は、与えられたデータのうち、ひげの上限より小さい最大値である。ひげの下端値は、与えられたデータのうち、ひげの下限より大きい最小値となる。
【００６１】
本実施の形態に係る判定装置は、箱ひげ図に対して、ＳＯＭの出力層の代表ベクトルと入力データとの間の量子化誤差ｄｉと、代表ベクトルの近傍距離ｈｊの分布を与え、それぞれの「ひげの端」の値を計算する。ここで、ｄｉとｈｊとは、距離であり負の値は取らないため、最小値は０である。本実施の形態では、ひげの上端値のみを計算する。
【００６２】
以上から、量子化誤差ｄｉと代表ベクトルの近傍距離ｈｊとの分布について、これらの最大値とひげの上端値とが得られる。以下の説明では、これらを、Ｄｍａｘ（量子化誤差ｄｉの最大値）、Ｄｗｈｉ（量子化誤差ｄｉのひげ上端値）、Ｈｗｈｉ（近傍距離ｈｊのひげ上端値）で表す。
【００６３】
本実施の形態に係る判定装置では、これらの値を組み合わせて合算することにより、異常判定の手法を選択するための４種類の閾値Ｔ１〜Ｔ４を算出する。閾値Ｔ１〜Ｔ４は、式（６）〜式（９）のように表される。
【００６４】
【数６】
2020160618.tif 000008
【００６５】
【数７】
2020160618.tif 000009
【００６６】
【数８】
2020160618.tif 000010
【００６７】
【数９】
2020160618.tif 000011
【００６８】
閾値Ｔ１は、学習済みのＳＯＭに対して再度学習に用いた入力データを入力し得られる写像の量子化誤差ｄｉの最大値Ｄｍａｘである。このため、学習時の入力データを写像すると、その量子化誤差ｄｉは、Ｄｍａｘ以下になる。ここで、学習時の入力データが全て正常に相当すると仮定すれば、閾値Ｔ１は、写像された代表ベクトルから正常と推定される領域の境界面までの距離の最大値に相当する。すなわち閾値Ｔ１は、半教師あり学習による異常判定における量子化誤差ｄｉの閾値の１つに相当するとみなすことができる。
【００６９】
閾値Ｔ２は、学習済みＳＯＭの近傍距離ｈｊのひげの上端値Ｈｗｈｉである。このため、ある近傍距離ｈｊがＨｗｈｉより大きい場合、その代表ベクトルの近傍距離は、近傍距離ｈｊの分布における外れ値であり、出力層の代表ベクトル全体の集合から孤立しているとみなすことができる。すなわち、閾値Ｔ２は、教師なし学習による異常判定方式において入力データが写像されるクラスタの近傍距離ｈｊの閾値の１つに相当するとみなすことができる。
【００７０】
閾値Ｔ３は、閾値Ｔ１及び閾値Ｔ２を合算した値である。言い換えると、閾値Ｔ３は、半教師あり学習による量子化誤差の異常判定と、教師なし学習による代表ベクトルの異常判定の閾値と、を組み合わせた値である。
【００７１】
すなわち、閾値Ｔ１及び閾値Ｔ２の和である閾値Ｔ３を用いることによって、学習時の入力データが全て正常に相当すると完全に仮定できない場合であっても、教師なし学習による異常判定方式の要素を含めながら、閾値判定することが可能になる。閾値Ｔ３は、半教師あり学習及び教師なし学習の異常判定で用いる各閾値を組み合わせた方式である。閾値Ｔ３は、量子化誤差ｄｉの最大値Ｄｍａｘを用いる分、より学習時の入力データが全て正常に相当すると仮定する半教師あり学習における閾値（Ｔ１）に近い異常判定の閾値であると言える。
【００７２】
閾値Ｔ４は、閾値Ｔ３における量子化誤差ｄｉの最大値Ｄｍａｘに代えて、量子化誤差ｄｉのひげの上端値Ｄｗｈｉを、Ｈｗｈｉと合算する。Ｄｗｈｉを用いる閾値Ｔ４を用いることによって、閾値Ｔ３において学習時の入力データが全て正常に相当すると仮定することなしに、量子化誤差ｄｉの分布の外れ値から、量子化誤差の異常判定を簡易に実施することができる。
【００７３】
すなわち、閾値Ｔ４は、教師なし学習による量子化誤差及び代表ベクトルの異常判定の閾値を組み合わせた値である。閾値Ｔ４も閾値Ｔ３と同様に、学習時の入力データが全て正常に相当すると完全に仮定できない場合であっても、教師なし学習による異常判定方式の要素を含めながら閾値判定することが可能になる。閾値Ｔ４は、量子化誤差ｄｉのひげの上端値を閾値に用いる分、学習時の入力データの分布の偏りによって、量子化誤差の外れ値を分類する傾向が強くなるため、より教師なし学習における閾値（Ｔ２）に近い異常判定の閾値であると言える。
【００７４】
本実施の形態に係る判定装置は、写像フェーズにおいて、新たに正常か異常かを判定したい入力データｘ´を、学習済みＳＯＭに入力し、その量子化誤差ｄ´を、以下の式（１０）式を用いて計算する。
【００７５】
【数１０】
2020160618.tif 000012
【００７６】
半教師あり学習による異常判定方式において、学習時の入力データが全て正常に相当すると仮定すれば、どの学習データも写像されない代表ベクトルを持つノードは、異常と判断できる。したがって、本実施の形態に係る判定装置では、入力データｘ´が学習フェーズで入力データが全く写像されない（すなわち写像数が０）の代表ベクトルに写像される場合、ｘ´自体の量子化誤差に写像先の代表ベクトルの近傍距離を加えることによって、教師なし学習及び半教師あり学習を組み合わせた異常判定を、ｄ´と閾値Ｔ１〜Ｔ４のいずれかとの比較により行う。
【００７７】
具体的に、本実施の形態に係る判定装置では、判定対象のデータｘ´が、正常であるか否かについては、以下のようにして判定する。まず、本実施の形態に係る判定装置では、閾値Ｔ１からＴ４の中から判定用の閾値１つを選択する。選択する閾値をＴ´とする。そして、本実施の形態に係る判定装置では、データｘ´から量子化誤差ｄ´を計算し、閾値Ｔ´と比較する。そして、本実施の形態に係る判定装置では、式（１１）のように判定を行う。
【００７８】
【数１１】
2020160618.tif 000013
【００７９】
［通信システムの構成］
次に、実施の形態に係る判定装置の構成について説明する。図５は、実施の形態における通信システムの構成の一例を示す図である。図５に示すように、実施の形態における通信システム１は、複数の計算機端末２に接続するネットワーク機器３と、ネットワーク機器3と接続する判定装置１０とを有する。
【００８０】
ネットワーク機器３は、コンピュータネットワークを構成するネットワーク機器の１つである。ネットワーク機器３は、自装置に接続している計算機端末２や機器が行う通信のデータをそのまま複写し、別の接続口から、複写した通信データを出力する。または、ネットワーク機器３は、自装置に接続している計算機端末２２や機器が行う通信のデータを数えることで数値化し、その数値データを出力する。
【００８１】
判定装置１０は、ネットワーク機器３が出力した複写した通信データまたは通信の数値データを入力データとして、ＳＯＭによる異常判定を実行する。判定装置１０は、学習フェーズにおいて、ＳＯＭによる教師なし学習を行った後、入力データの量子化誤差とＳＯＭの出力層にある代表ベクトルとの近傍距離を計算し、これらの値の分布から既存の外れ値の閾値を計算する。そして、判定装置１０は、学習フェーズにおいて、これらから得られる２つの閾値を組み合わせて、教師なし学習及び半教師あり学習の性質を持つ異常判定のための閾値を４種類生成する。判定装置１０は、写像フェーズにおいて、判定対象のデータについて量子化誤差を計算し、４種類の閾値との大小比較を基に、入力データの異常を判定する。
【００８２】
［判定装置の構成］
次に、図５を参照して、判定装置１０の構成について説明する。図５に示すように、判定装置１０は、通信部１１、制御部１２、記憶部１３、入力部１４及び出力部１５を有する。
【００８３】
通信部１１は、ネットワーク等を介して接続された他の装置との間で、各種情報を送受信する通信インタフェースである。通信部１１は、ＮＩＣ（Network  Interface  Card）等で実現され、ＬＡＮ（Local  Area  Network）やインターネットなどの電気通信回線を介した他の装置と制御部１２（後述）との間の通信を行う。例えば、通信部１１は、ネットワークを介して、ネットワーク機器３から、ネットワーク機器３が複写した通信データまたは通信の数値データを受信する。また、通信部１１は、判定部１２３（後述）によるＳＯＭによる判定結果を、例えば、対処を行う他の装置に送信する。
【００８４】
制御部１２は、判定装置１０全体を制御する。制御部１２は、例えば、ＣＰＵ（Central  Processing  Unit）、ＭＰＵ（Micro  Processing  Unit）等の電子回路や、ＡＳＩＣ（Application  Specific  Integrated  Circuit）、ＦＰＧＡ（Field  Programmable  Gate  Array）等の集積回路である。また、制御部１２は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、内部メモリを用いて各処理を実行する。また、制御部１２は、各種のプログラムが動作することにより各種の処理部として機能する。
【００８５】
制御部１２は、統計処理部１２１（取得部）、学習部１２２及び判定部１２３を有する。制御部１２の各機能部によって実行される処理は、ＳＯＭモデル１３２（後述）の学習及び閾値の計算を行う学習フェーズと、判定対象のデータをＳＯＭモデルに入力して異常判定を行う写像フェーズとに大別される。制御部１２における学習部１２２は、学習フェーズの処理を行う機能部である。判定部１２３は、写像フェーズを行う機能部である。
【００８６】
統計処理部１２１は、ネットワーク機器３から受信した、複写された通信データまたは通信の数値データを取得する。統計処理部１２１は、これらのデータに統計処理を行い、多変量変数のベクトルとする。統計処理部１２１は、取得したベクトルを含む統計データを、二次記憶領域（例えば、記憶部１３の統計データ記憶部１３１（後述））に保存する。ベクトルの変数の例としては、パケットサイズ、ペイロードサイズの平均や変動係数、パケット到着間隔時間の変動係数などがある。
【００８７】
学習部１２２は、本実施の形態の数理的背景で説明した学習フェーズの各処理を実行する。学習部１２２は、統計データ記憶部１３１の学習対象のベクトルデータを読み込み、このベクトルデータを入力データとして、ＳＯＭによる教師なし学習を行ったＳＯＭのモデルを生成する。なお、ＳＯＭを生成する単位としては、計算機端末２の１台ごとに生成してもよいし、複数の計算機端末２をまとめてもよい。
【００８８】
そして、学習部１２２は、学習済みの前記ＳＯＭに再度入力データを入力して得られたＳＯＭの出力層の代表ベクトルと入力データとの間の量子化誤差と、代表ベクトルの近傍距離とを計算する。学習部１２２は、量子化誤差と代表ベクトルの近傍距離の値との分布から、これらの外れ値の閾値を生成する。学習部１２２は、少なくとも、この計算から得られる２つの閾値を組み合わせて、複数の閾値Ｔ１〜Ｔ４を生成する。学習部１２２は、ＳＯＭモデル１３２、全代表ベクトルの近傍距離ｈｊを含む近傍距離データ１３３、閾値Ｔ１〜Ｔ４を含む閾値データ１３４を、全て一組にして、二次記憶領域（記憶部１３の学習データ記憶部１３０）に保存する。
【００８９】
判定部１２３は、本実施の形態の数理的背景で説明した写像フェーズの各処理を実行する。判定部１２３は、判定対象のベクトルデータのＳＯＭモデルに入力し、判定対象のベクトルデータについて異常判定を行う。判定部１２３は、統計データ記憶部１３１に保存されたベクトルデータのうち、学習フェーズの入力データに含まれないデータ、または、新たに判定したいと指定されたデータを判定対象のベクトルデータとして読み込む。
【００９０】
判定部１２３は、判定対象のベクトルデータを、ＳＯＭモデル１３２に入力し、判定対象のベクトルデータが写像される出力層の代表ベクトルと判定対象のベクトルデータとの間の量子化誤差ｄ´を計算する。続いて、判定部１２３は、量子化誤差ｄ´を閾値Ｔ１，Ｔ２，Ｔ３，Ｔ４のそれぞれと比較して、判定対象のデータが異常であるか否かを判定する。
【００９１】
判定部１２３は、判定結果を判定対象のデータに付与し、二次記憶領域（記憶部１３の判定データ記憶部１３５）に保存する。保存された判定結果を、図示しないオペレータが取得することで対処等の判断を行ってもよいし、その内容がアラームとして別途通知されてもよい。そして、その内容を基に、ネットワーク機器３において異常な通信をフィルタさせる指示情報が、ネットワーク機器３に送信されてもよい。
【００９２】
記憶部１３は、ＨＤＤ（Hard  Disk  Drive）、ＳＳＤ（Solid  State  Drive）、光ディスク等の記憶装置である。なお、記憶部１３は、ＲＡＭ（Random  Access  Memory）、フラッシュメモリ、ＮＶＳＲＡＭ（Non  Volatile  Static  Random  Access  Memory）等のデータを書き換え可能な半導体メモリであってもよい。記憶部１３は、判定装置１０で実行されるＯＳ（Operating  System）や各種プログラムを記憶する。さらに、記憶部１３は、プログラムの実行で用いられる各種情報を記憶する。
【００９３】
記憶部１３は、統計データ記憶部１３１、学習データ記憶部１３０及び判定データ記憶部１３５を有する。統計データ記憶部１３１は、統計処理部１２１が統計処理によって取得した多変量変数ベクトルを含む統計データを記憶する。学習データ記憶部１３０は、学習部１２２が生成したＳＯＭモデル１３２、学習部１２２が計算した代表ベクトルの近傍距離を含む近傍距離データ１３３、及び、学習部１２２が計算した閾値Ｔ１〜Ｔ４を含む閾値データ１３４を含む。判定データ記憶部１３５は、判定対象のデータと、判定部１２３による判定結果とを対応付けて記憶する。
【００９４】
入力部１４は、判定装置１０の操作者からの各種操作を受け付ける入力インタフェースである。例えば、入力部１４は、タッチパネル、音声入力デバイス、キーボードやマウス等の入力デバイスによって構成される。入力部１４は、例えば、操作者による操作に応じて、学習フェーズの開始指示、写像フェーズの開始指示、判定結果の送信指示を受け付ける。
【００９５】
出力部１５は、例えば、液晶ディスプレイなどの表示装置、プリンタ等の印刷装置、情報通信装置等によって実現される。出力部１５は、例えば、判定結果の画面表示等を行う。
【００９６】
［処理の流れ］
次に、通信システム１における処理の流れについて説明する。図６は、図５に示す通信システム１における処理の流れを説明する図である。
【００９７】
図６に示すように、ネットワーク機器３が、計算機端末２が行う通信のデータを複写した通信データまたは通信の数値データを、判定装置１０の統計処理部１２１に出力する（図６の（１）参照）。
【００９８】
判定装置１０では、統計処理部１２１が、複写された通信データまたは通信の数値データに統計処理を行い、多変量変数のベクトルデータを取得し、二次記憶領域に保存する（図６の（２）参照）。
【００９９】
学習部１２２は、統計データ記憶部１３１のベクトルデータを入力データとして読み込む（図６の（３）参照）。そして、学習部１２２は、学習フェーズの処理の結果、ＳＯＭのモデルの生成、入力データの量子化誤差と代表ベクトルの近傍距離ｈｊとの計算、及び、これらの外れ値の閾値を組み合わせた閾値Ｔ１〜Ｔ４の計算を行う。そして、学習部１２２は、ＳＯＭモデル１３２、全代表ベクトルの近傍距離ｈｊを含む近傍距離データ１３３、閾値Ｔ１〜Ｔ４を含む閾値データ１３４の保存を行う（図６の（４）参照）。
【０１００】
そして、判定部１２３は、二次記憶領域から、ＳＯＭモデル１３２、全代表ベクトルの近傍距離ｈｊ、閾値Ｔ１〜Ｔ４の読み込みを行う（図６の（５）参照）。判定部１２３は、二次記憶領域から、判定対象のベクトルデータの読み込みを行う（図６の（６）参照）。
【０１０１】
判定部１２３は、判定対象のベクトルデータをＳＯＭモデル１３２に入力して写像し、量子化誤差ｄ´を計算する。続いて、判定部１２３は、量子化誤差ｄ´を閾値Ｔ１，Ｔ２，Ｔ３，Ｔ４のそれぞれとの大小を比較し、判定対象のベクトルデータが異常であるか否かを判定する。判定部１２３は、判定結果を判定対象のデータに付与し、二次記憶領域に保存する（図６の（７）参照）。
【０１０２】
［学習処理の処理手順］
次に、学習フェーズにおける学習処理の処理手順について説明する。図７は、実施の形態に係る学習処理の処理手順を示すフローチャートである。
【０１０３】
学習フェーズでは、学習部１２２は、与えられた入力データのみを用いて、図７に示す処理を行う。学習部１２２は、入力データを用いてＳＯＭによる教師なし学習を行う（ステップＳ１）。学習部１２２は、ＳＯＭ出力層データを保存する（ステップＳ２）。そして、学習部１２２は、入力データの量子化誤差を計算する（ステップＳ６）。学習部１２２は、代表ベクトルの近傍距離を計算し（ステップＳ３）、記憶部１３に保存する（ステップＳ４）。
【０１０４】
学習部１２２は、量子化誤差と代表ベクトル近傍距離の値との分布から、それらのひげ上端をそれぞれ計算する（ステップＳ５，Ｓ７）。学習部１２２は、量子化誤差の最大値、近傍距離のひげの上端値、量子化誤差のひげの上端値を基に、閾値Ｔ１，Ｔ２，Ｔ３，Ｔ４を計算する（ステップＳ８）。学習部１２２は、計算した閾値Ｔ１，Ｔ２，Ｔ３，Ｔ４を記憶部１３に保存して（ステップＳ９）、学習処理を終了する。
【０１０５】
［判定処理の処理手順］
次に、写像フェーズにおける判定処理の処理手順について説明する。図８は、実施の形態に係る判定処理の処理手順を示すフローチャートである。
【０１０６】
写像フェーズでは、学習フェーズで得られるＳＯＭのモデル、代表ベクトル近傍距離の値、及び、閾値Ｔ１，Ｔ２，Ｔ３，Ｔ４を用いて、図８に示す処理を行う。判定部１２３は、判定対象のデータｘ´を学習済みのＳＯＭ入力層に入力する（ステップＳ１１）。判定部１２３は、判定対象のデータｘ´の量子化誤差ｄ´を計算する（ステップＳ１２）。
【０１０７】
続いて、判定部１２３は、閾値Ｔ１から順に閾値Ｔ４までについて、閾値Ｔ´を選択する（ステップＳ１３）。判定部１２３は、閾値Ｔ´と量子化誤差ｄ´とを比較し、式（１１）を用いて判定を行う（ステップＳ１４）。判定部１２３は、判定結果を、判定対象のデータｘ´と対応付けて保存する（ステップＳ１５）。
【０１０８】
そして、判定部１２３は、閾値Ｔ１〜Ｔ４全てと、量子化誤差ｄ´とを比較した場合（ステップＳ１６：Ｙｅｓ）、処理を終了する。一方、判定部１２３は、閾値Ｔ１〜Ｔ４全てと、量子化誤差ｄ´とを比較していない場合（ステップＳ１６：Ｎｏ）、次の閾値を選択して（ステップＳ１３）、量子化誤差ｄ´と比較し、判定する（ステップＳ１４）。
【０１０９】
判定対象のデータｘ´に関する最終的な異常判定は、閾値Ｔ１〜Ｔ４のいずれか１つとの判定結果によって行ってもよい。また、判定対象のデータｘ´に関する最終的な異常判定は、閾値Ｔ１〜Ｔ４を用いた判定結果のうち複数の判定結果を合わせて総合的に行ってもよい。
【０１１０】
例えば、学習に用いる入力データと、判定対象のデータとが同じ集団から選ばれ、教師あり学習による異常検知を適用する場合について説明する。この場合、入力データが全て正常データであることを前提としていることから、判定に入力するデータが異常となる可能性はゼロとなる。この場合、判定部１２３は、教師なし学習による異常検知方式の閾値である閾値Ｔ２、または、閾値Ｔ２に近い閾値Ｔ４を用いればよい。
【０１１１】
また、学習に用いるデータが全て正常データであることを保証（証明）することは一般的には困難である場合が多いが、完全ではないがほぼ正常データであると判断可能な場合、判定部１２３は、半教師あり学習による異常検知方式の閾値Ｔ１、または、閾値Ｔ１に近い閾値Ｔ３を閾値に用いればよい。
【０１１２】
さらに、時間とともに増加するような入力データのように、データの全体分布が学習時に確定できない場合には、教師なし学習による異常検知方式を用いることは難しくなる。この場合には、判定部１２３は、半教師あり学習における閾値Ｔ１に近い閾値Ｔ３、または、教師なし学習における閾値Ｔ２に近い閾値Ｔ４の閾値を用いればよい。判定部１２３は、教師なし学習及び半教師あり学習の性質を持つ異常判定のための閾値を用いるため、教師なし学習及び半教師あり学習を組み合わせた異常判定を行うことが可能になる。
【０１１３】
［実施の形態の効果］
本実施の形態に係る判定装置１０は、学習フェーズにおいて、ＳＯＭによる教師なし学習を行った後、ＳＯＭの出力層の代表ベクトルと入力データとの間の量子化誤差と、ＳＯＭの出力層にある代表ベクトルの近傍距離とを計算し、これらの値の分布から既存の外れ値の閾値を計算する。判定装置１０は、学習フェーズにおいて、これらから得られる２つの閾値を組み合わせて、教師なし学習及び半教師あり学習の性質を持つ異常判定のための複数の閾値を生成する。
【０１１４】
続いて、判定装置１０は、写像フェーズにおいて、判定対象のデータをＳＯＭに入力して、判定対象のデータの量子化誤差を計算し、計算した量子化誤差と、複数の閾値の少なくともいずれかとの大小比較を基に、入力データの異常を判定する。
【０１１５】
このように、判定装置１０は、教師なし学習及び半教師あり学習の性質を持つ異常判定のための複数の閾値を生成する。そして、本実施の形態に係る判定装置は、いずれかの閾値と、入力データの量子化誤差との比較によって、教師なし学習及び半教師あり学習を組み合わせた異常判定を行うことが可能になる。
【０１１６】
このため、判定装置１０は、学習を開始する時点で入力データが全て与えられている必要がないため、通信ネットワークのように時間とともに増加するような入力データでもＳＯＭによる異常判定が可能になる。
【０１１７】
また、判定装置１０は、ＳＯＭの出力層にある代表ベクトルの近傍距離を用いて異常検知ができるため、教師なし学習による異常検知方式のように入力データに含まれる正常と異常の分布を事前に把握する必要がない。
【０１１８】
また、判定装置１０は、半教師あり学習による異常検知方式のように，学習時の入力データが全て正常であると仮定する必要がないため、学習する入力データに異常に相当するデータが混入しても異常検知ができる。
【０１１９】
また、判定装置１０は、教師なし学習及び半教師あり学習の性質を持つ異常判定のための複数の閾値を自動的に生成するため、事前に閾値を決定するという煩雑な処理が不要である。
【０１２０】
また、判定装置１０は、学習時の入力データの量子化誤差及び代表ベクトルの近傍距離から４種類の閾値Ｔ１〜Ｔ４を自動的に生成し、それぞれの閾値との比較により異常判定を行っている。これらの閾値Ｔ１〜Ｔ４は、教師なし学習及び半教師あり学習の性質を持つ併せ持つ異常判定を可能とするため、判定装置１０は、入力データに関する前提条件によって、異常検知方式を教師なし学習または半教師あり学習のどちらかに限定する必要がない。
【０１２１】
そして、判定装置１０は、４種類の閾値Ｔ１〜Ｔ４のいずれか１つを用いた判定結果を基に、最終的な異常判定を行ってもよい。また、判定装置１０は、閾値Ｔ１〜Ｔ４の用いて行った複数の判定結果を組み合わせて、最終的な異常判定を行ってもよい。
【０１２２】
このように、本実施の形態では、ＳＯＭを用いる学習のための入力データに対して所定の提条件を考慮することなく、教師なし学習と半教師あり学習との双方の性質を併せ持つ異常判定を一括で実施することが可能になる。
【０１２３】
［システム構成等］
図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部又は任意の一部が、ＣＰＵ及び当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【０１２４】
また、本実施の形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部又は一部を手動的に行なうこともでき、あるいは、手動的に行なわれるものとして説明した処理の全部又は一部を公知の方法で自動的に行なうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【０１２５】
［プログラム］
図９は、プログラムが実行されることにより、判定装置１０が実現されるコンピュータの一例を示す図である。コンピュータ１０００は、例えば、メモリ１０１０、ＣＰＵ１０２０を有する。また、コンピュータ１０００は、ハードディスクドライブインタフェース１０３０、ディスクドライブインタフェース１０４０、シリアルポートインタフェース１０５０、ビデオアダプタ１０６０、ネットワークインタフェース１０７０を有する。これらの各部は、バス１０８０によって接続される。
【０１２６】
メモリ１０１０は、ＲＯＭ１０１１及びＲＡＭ１０１２を含む。ＲＯＭ１０１１は、例えば、ＢＩＯＳ（Basic  Input  Output  System）等のブートプログラムを記憶する。ハードディスクドライブインタフェース１０３０は、ハードディスクドライブ１０９０に接続される。ディスクドライブインタフェース１０４０は、ディスクドライブ１１００に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ１１００に挿入される。シリアルポートインタフェース１０５０は、例えばマウス１１１０、キーボード１１２０に接続される。ビデオアダプタ１０６０は、例えばディスプレイ１１３０に接続される。
【０１２７】
ハードディスクドライブ１０９０は、例えば、ＯＳ（Operating  System）１０９１、アプリケーションプログラム１０９２、プログラムモジュール１０９３、プログラムデータ１０９４を記憶する。すなわち、判定装置１０の各処理を規定するプログラムは、コンピュータにより実行可能なコードが記述されたプログラムモジュール１０９３として実装される。プログラムモジュール１０９３は、例えばハードディスクドライブ１０９０に記憶される。例えば、判定装置１０における機能構成と同様の処理を実行するためのプログラムモジュール１０９３が、ハードディスクドライブ１０９０に記憶される。なお、ハードディスクドライブ１０９０は、ＳＳＤ（Solid  State  Drive）により代替されてもよい。
【０１２８】
また、上述した実施形態の処理で用いられる設定データは、プログラムデータ１０９４として、例えばメモリ１０１０やハードディスクドライブ１０９０に記憶される。そして、ＣＰＵ１０２０が、メモリ１０１０やハードディスクドライブ１０９０に記憶されたプログラムモジュール１０９３やプログラムデータ１０９４を必要に応じてＲＡＭ１０１２に読み出して実行する。
【０１２９】
なお、プログラムモジュール１０９３やプログラムデータ１０９４は、ハードディスクドライブ１０９０に記憶される場合に限らず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ１１００等を介してＣＰＵ１０２０によって読み出されてもよい。あるいは、プログラムモジュール１０９３及びプログラムデータ１０９４は、ネットワーク（ＬＡＮ、ＷＡＮ（Wide  Area  Network）等）を介して接続された他のコンピュータに記憶されてもよい。そして、プログラムモジュール１０９３及びプログラムデータ１０９４は、他のコンピュータから、ネットワークインタフェース１０７０を介してＣＰＵ１０２０によって読み出されてもよい。
【０１３０】
以上、本発明者によってなされた発明を適用した実施形態について説明したが、本実施形態による本発明の開示の一部をなす記述及び図面により本発明は限定されることはない。すなわち、本実施形態に基づいて当業者等によりなされる他の実施形態、実施例及び運用技術等は全て本発明の範疇に含まれる。
【符号の説明】
【０１３１】
１  通信システム
２  計算機端末
３  ネットワーク機器
１０  判定装置
１１  通信部
１２  制御部
１３  記憶部
１４  入力部
１５  出力部
１２１  統計処理部
１２２  学習部
１２３  判定部
１３０  学習データ記憶部
１３１  統計データ記憶部
１３２  ＳＯＭモデル
１３３  近傍距離データ
１３４  閾値データ
１３５  判定データ記憶部
【図１】
2020160618.tif 000014
【図２】
2020160618.tif 000015
【図３】
2020160618.tif 000016
【図４】
2020160618.tif 000017
【図５】
2020160618.tif 000018
【図６】
2020160618.tif 000019
【図７】
2020160618.tif 000020
【図８】
2020160618.tif 000021
【図９】
2020160618.tif 000022