(57)【要約】【課題】学習用の通信データ間でデータ数に偏りがある場合であっても、通信データの確率密度を精度よく学習できる。【解決手段】学習装置１０は、学習対象である正常な通信データを複数収集する収集部１１と、正常な通信データの確率密度を推定する第１の推定部１２１と、第１の推定部１２１によって推定された確率密度に応じて正常な通信データをクラスタリングするクラスタリング部１２２と、クラスタリング部１２２によってクラスタリングされたクラスタごとに学習を行い、クラスタごとの正常な通信データの確率密度を推定してクラスタごとの正常な通信データの確率密度の特徴を表すモデルのパラメータを更新する第２の推定部１２３と、推定されたクラスタごとの確率密度を統合する統合部１２４と、有する。【選択図】図２
2019101982.tif 000002
【特許請求の範囲】
【請求項１】
学習対象である正常な通信データを複数収集する収集部と、
前記正常な通信データの確率密度を推定する第１の推定部と、
前記第１の推定部によって推定された前記確率密度に応じて前記正常な通信データをクラスタリングするクラスタリング部と、
前記クラスタリング部によってクラスタリングされたクラスタごとに学習を行い、前記クラスタごとの前記正常な通信データの確率密度を推定して前記クラスタごとの前記正常な通信データの確率密度の特徴を表すモデルのパラメータを更新する第２の推定部と、
推定された前記クラスタごとの確率密度を統合する統合部と、
を有することを特徴とする学習装置。
【請求項２】
前記第２の推定部は、前記クラスタごとに確率密度推定器を有し、各確率密度推定器は、前記クラスタごとに学習を行い、それぞれが有するモデルのパラメータを更新することを特徴とする請求項１に記載の学習装置。
【請求項３】
通信データの確率密度の特徴を表すモデルを基に通信データの異常を検知する検知装置と、前記モデルのパラメータを更新する学習装置と、を有する検知システムであって、
前記学習装置は、
学習対象である正常な通信データを複数収集する収集部と、
前記正常な通信データの確率密度を推定する第１の推定部と、
前記第１の推定部によって推定された前記確率密度に応じて前記正常な通信データをクラスタリングするクラスタリング部と、
前記クラスタリング部によってクラスタリングされたクラスタごとに学習を行い、前記クラスタごとの前記正常な通信データの確率密度を推定して前記クラスタごとの前記モデルのパラメータを更新する第２の推定部と、
推定された前記クラスタごとの確率密度を統合する統合部と、
を有し、
前記検知装置は、
前記第２の推定部によって更新された前記モデルのパラメータを適用して、検知対象の通信データの確率密度を推定する第３の推定部と、
前記第３の推定部によって推定された確率密度を基に前記検知対象の通信データの異常の有無を検知する検知部と、
を有することを特徴とする検知システム。
【請求項４】
前記第２の推定部は、前記クラスタごとに確率密度推定器を有し、各確率密度推定器は、前記クラスタごとに学習を行い、それぞれが有するモデルのパラメータを更新し、
前記統合部は、前記第２の推定部の各確率密度推定器がそれぞれ推定した確率密度を統合し、
前記第３の推定部は、前記第２の推定部が有する確率密度推定器と同数の確率密度推定器であって、それぞれが有するモデルのパラメータが前記第２の推定部によって更新された各パラメータに設定されている確率密度推定器を有し、各確率密度推定器が前記検知対象の通信データに対しそれぞれ推定した確率密度を統合し、統合後の確率密度を前記検知対象の通信データの確率密度として前記検知部に出力することを特徴とする請求項３に記載の検知システム。
【請求項５】
学習装置によって実行される学習方法であって、
学習対象である正常な通信データを複数収集する収集工程と、
前記正常な通信データの確率密度を推定する第１の推定工程と、
前記第１の推定工程において推定された前記確率密度に応じて前記正常な通信データをクラスタリングするクラスタリング工程と、
前記クラスタリング工程においてクラスタリングされたクラスタごとに学習を行い、前記クラスタごとの前記正常な通信データの確率密度を推定して前記クラスタごとの前記正常な通信データの確率密度の特徴を表すモデルのパラメータを更新する第２の推定工程と、
推定された前記クラスタごとの確率密度を統合する統合工程と、
を含んだことを特徴とする学習方法。
【請求項６】
学習対象である正常な通信データを複数収集する収集ステップと、
前記正常な通信データの確率密度を推定する第１の推定ステップと、
前記第１の推定ステップにおいて推定された前記確率密度に応じて前記正常な通信データをクラスタリングするクラスタリングステップと、
前記クラスタリングステップにおいてクラスタリングされたクラスタごとに学習を行い、前記クラスタごとの前記正常な通信データの確率密度を推定して前記クラスタごとの前記正常な通信データの確率密度の特徴を表すモデルのパラメータを更新する第２の推定ステップと、
推定された前記クラスタごとの確率密度を統合する統合ステップと、
をコンピュータに実行させるための学習プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、学習装置、検知システム、学習方法及び学習プログラムに関する。
【背景技術】
【０００２】
ＩｏＴ（Internet  of  Things）時代の到来に伴い、多種のデバイス（ＩｏＴ機器）がインターネットに接続され、多様な使われ方をされるようになっている。これにともない、ＩｏＴ機器向けのトラフィックセッション異常検知システムや侵入検知システム(ＩＤＳ：Intrusion  Detection  System）等のＩｏＴ機器のセキュリティ対策が期待されている。
【０００３】
このような技術として、例えば、ＶＡＥ（Variational  Auto  Encoder）等の教師なし学習による確率密度推定器を用いるものがある。この技術では、正常な通信データの確率密度を学習後、確率密度の低い通信を異常として検知する。このため、この技術では、正常な通信データのみが分かればよく、全ての悪性データを学習せずとも異常検知が可能である。したがって、この技術は、未だ過渡期にあり全ての脅威情報を知り尽くされていないＩｏＴ機器に対する脅威の検知に有効である。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】Diederik  P  Kingma,  Max  Welling，“Auto-Encoding  Variational  Bayes”，［平成２９年１１月１７日検索］，インターネット＜ＵＲＬ：https://arxiv.org/abs/1312.6114＞
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、ＶＡＥ等の確率密度推定器は、学習対象の正常な通信データ間でデータ数に偏りがある場合に、精度よく学習できないことがある。
【０００６】
通信データでは、データ数に偏りがある状況がよく発生する。例えば、ＨＴＴＰ（Hypertext  Transfer  Protocol）通信等は、よく使用されるため、短時間で大量のデータが集まる。これに対し、稀にしか通信を行わないＮＴＰ（Network  Time  Protocol）通信等は、データ数があまり集まらない。このような状況で、ＶＡＥによる学習を行うと、データ数が少ないＮＴＰ通信の学習がうまくいかず、発生確率を低く見積もってしまい、正常な通信データに対する誤検知の原因になる場合がある。
【０００７】
本発明は、上記に鑑みてなされたものであって、学習対象の通信データ間でデータ数に偏りがある場合であっても、通信データの確率密度を精度よく学習できる学習装置、検知システム、学習方法及び学習プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
上述した課題を解決し、目的を達成するために、本発明に係る学習装置は、学習対象である正常な通信データを複数収集する収集部と、正常な通信データの確率密度を推定する第１の推定部と、第１の推定部によって推定された確率密度に応じて正常な通信データをクラスタリングするクラスタリング部と、クラスタリング部によってクラスタリングされたクラスタごとに学習を行い、クラスタごとの正常な通信データの確率密度を推定してクラスタごとの正常な通信データの確率密度の特徴を表すモデルのパラメータを更新する第２の推定部と、推定されたクラスタごとの確率密度を統合する統合部と、を有することを特徴とする。
【０００９】
また、本発明に係る検知システムは、通信データの確率密度の特徴を表すモデルを基に通信データの異常を検知する検知装置と、モデルのパラメータを更新する学習装置と、を有する検知システムであって、学習装置は、学習対象である正常な通信データを複数収集する収集部と、正常な通信データの確率密度を推定する第１の推定部と、第１の推定部によって推定された確率密度に応じて正常な通信データをクラスタリングするクラスタリング部と、クラスタリング部によってクラスタリングされたクラスタごとに学習を行い、クラスタごとの正常な通信データの確率密度を推定してクラスタごとのモデルのパラメータを更新する第２の推定部と、推定されたクラスタごとの確率密度を統合する統合部と、を有し、検知装置は、第２の推定部によって更新されたモデルのパラメータを適用して、検知対象の通信データの確率密度を推定する第３の推定部と、第３の推定部によって推定された確率密度を基に検知対象の通信データの異常の有無を検知する検知部と、を有することを特徴とする。
【発明の効果】
【００１０】
本発明によれば、学習対象の通信データ間でデータ数に偏りがある場合であっても、通信データの確率密度を精度よく学習できる。
【図面の簡単な説明】
【００１１】
【図１】図１は、実施の形態に係る検知システムの構成の一例を示す図である。
【図２】図２は、図１に示す学習装置の構成の一例を示す図である。
【図３】図３は、ＶＡＥについて説明する図である。
【図４】図４は、ＶＡＥについて説明する図である。
【図５】図５は、図１に示す検知装置の構成の一例を示す図である。
【図６】図６は、図２に示す学習装置が実行する学習処理の流れを説明する図である。
【図７】図７は、図５に示す検知装置が実行する検知処理の流れを説明する図である。
【図８】図８は、図２に示す学習装置による学習処理の処理手順を示すフローチャートである。
【図９】図９は、図５に示す検知装置による検知処理の処理手順を示すフローチャートである。
【図１０】図１０は、実施の形態に係る検知システムの適用例を説明する図である。
【図１１】図１１は、従来手法による学習結果の一例を示す図である。
【図１２】図１２は、図１１に示す学習状態におけるＲＯＣ（Receiver  Operatorating  Characteristic）曲線を示す図である。
【図１３】図１３は、図２に示す第１の推定部による学習結果の一例を示す図である。
【図１４】図１４は、図１１で使用された学習対象データに対し、図２に示す学習装置が出力したアノマリスコアのデータ数依存を示すヒストグラムである。
【図１５】図１５は、図１４に示す学習状態におけるＲＯＣ曲線を示す図である。
【図１６】図１６は、プログラムが実行されることにより、学習装置及び検知装置が実現されるコンピュータの一例を示す図である。
【発明を実施するための形態】
【００１２】
以下、図面を参照して、本発明の一実施形態を詳細に説明する。なお、この実施形態により本発明が限定されるものではない。また、図面の記載において、同一部分には同一の符号を付して示している。
【００１３】
［実施の形態］
本発明の実施の形態について説明する。図１は、実施の形態に係る検知システムの構成の一例を示す図である。
【００１４】
図１に示すように、実施の形態に係る検知システム１は、学習装置１０及び検知装置２０を有する。学習装置１０及び検知装置２０は、例えば、ネットワーク等を介して接続する。また、学習装置１０及び検知装置２０は、例えば、ネットワーク等を介して、外部装置と接続する。
【００１５】
学習装置１０は、複数の正常な通信データを学習して、正常な通信データの確率密度の特徴を表すモデルのパラメータを更新する。学習装置１０は、学習対象の通信データに対し、２段階に分けて、確率密度を推定する。
【００１６】
まず、学習装置１０は、１段階目では、入力された通信データの確率密度を粗く推定する。続いて、学習装置１０は、この推定結果に基づき、正常な通信データを、確率密度に応じてクラスタリングする。そして、２段階目では、学習装置１０は、クラスタごとに、各クラスタの通信データの確率密度を推定する。続いて、推定されたクラスタごとの確率密度を統合することによって、学習対象の通信データ間でデータ数に偏りがある場合であっても、精度よく異常検知を行えるモデルを得る。
【００１７】
検知装置２０は、学習装置１０によって更新されたモデルのパラメータを適用して、検知対象の通信データの確率密度を推定する。続いて、検知装置２０は、推定した確率密度が所定値よりも低い場合に、検知対象の通信データが異常であることを検知し、外部の対処装置等に通信データの異常発生を通知する。
【００１８】
［学習装置の構成］
次に、学習装置１０の構成について説明する。図２は、図１に示す学習装置１０の構成の一例を示す図である。学習装置１０は、図２に示すように、収集部１１及び学習部１２を有する。
【００１９】
なお、学習装置１０は、例えば、ＲＯＭ（Read  Only  Memory）、ＲＡＭ（Random  Access  Memory）、ＣＰＵ（Central  Processing  Unit）等を含むコンピュータ等に所定のプログラムが読み込まれて、ＣＰＵが所定のプログラムを実行することで実現される。また、学習装置１０は、ネットワーク等を介して接続された他の装置との間で、各種情報を送受信する通信インタフェースを有する。例えば、学習装置１０は、ＮＩＣ（Network  Interface  Card）等を有し、ＬＡＮ（Local  Area  Network）やインターネットなどの電気通信回線を介した他の装置との間の通信を行う。
【００２０】
収集部１１は、学習対象である正常な通信データ（学習対象データ）を複数収集する。例えば、収集部１１は、ネットワークを介して、学習対象である正常なトラフィックセッションの収集を行う。
【００２１】
この場合、収集部１１が収集する通信データのデータ間でデータ数に偏りが生じる場合がある。具体的には、通信がＨＴＴＰ通信については、しばしば使用されるため、収集部１１は、正常なＨＴＴＰ通信データを収集できる。これに対し、管理用ＦＴＰ通信については、使用頻度が少ないため、収集部１１は、正常なＦＴＰ通信データを少量しか得ることができない場合がある。このように、収集部１１が収集する学習対象データのデータ間では、データ数の偏りがある場合がある。学習装置１０では、データ数の偏りがある場合であっても、２段階に分けて学習を行うことによって、精度よく異常検知を行えるモデルを得る。
【００２２】
次に、学習部１２について説明する。学習部１２は、第１の推定部１２１、クラスタリング部１２２、第２の推定部１２３及び統合部１２４を有する。
【００２３】
第１の推定部１２１は、収集部１１が収集した学習対象データの確率密度を推定する。この際、第１の推定部１２１は、確率密度推定器として、ＶＡＥ１２１１を用いて、学習対象データの確率密度を推定する。
【００２４】
ここで、ＶＡＥについて説明する。図３及び図４は、ＶＡＥについて説明する図である。図３に示すように、ＶＡＥは、あるデータ点ｘｉの入力を受け付けると、そのデータに対応したアノマリスコア（ｓｃｏｒｅ）（異常度）を出力する。確率密度をｐ（ｘｉ）とすると、アノマリスコアは、−ｌｏｇｐ（ｘｉ）の近似値となる。
【００２５】
同様に、図４に示すように、ＶＡＥに、あるクラスタＣｋに属するデータ点ｘｉを入力した場合、アノマリスコア（ｓｃｏｒｅ）は、−ｌｏｇｐ（ｘｉ｜Ｃｋ）の近似値になっている。このように、ＶＡＥが出力するアノマリスコアは、値が高いほど、この通信データの異常度が高いことを示す。
【００２６】
第１の推定部１２１は、このような演算を行うＶＡＥ１２１１を有し、入力された複数の学習対象データを学習し、各学習対象データのアノマリスコアを出力する。この際、第１の推定部１２１は、学習結果に応じてＶＡＥ１２１１のモデルパラメータを更新する。
【００２７】
クラスタリング部１２２は、第１の推定部１２１によって推定された確率密度に応じて、学習対象データをクラスタリングする。言い換えると、クラスタリング部１２２は、学習対象データに直接クラスタリングのアルゴリズムを適用するのではなく、第１の推定部１２１によって粗く推定されたアノマリスコアに基づいて、クラスタリングを行う。したがって、クラスタリング部１２２は、学習対象データの性質、すなわち、学習対象データの密度（データ数）に着目したクラスタリングを実施する。クラスタリング部１２２は、Ｂａｙｅｓｉａｎ  ＧＭＭ（Gaussian  Mixture  Models）アルゴリズム、ＶＢ（Variational  Bayesian）ＧＭＭアルゴリズム等を用いて、クラスタリングを実施する。
【００２８】
第２の推定部１２３は、クラスタリング部１２２によってクラスタリングされたクラスタごとに学習を行い、クラスタごとの学習対象データの確率密度を推定してクラスタごとの学習対象データの確率密度の特徴を表すモデルのパラメータを更新する。
【００２９】
例えば、クラスタリング部１２２によって学習対象データが３つのクラスタにクラスタリングされる場合、第２の推定部１２３は、３つのクラスタにそれぞれ対応する第１ＶＡＥ１２３１、第２ＶＡＥ１２３２及び第３ＶＡＥ１２３３を有する。第１ＶＡＥ１２３１、第２ＶＡＥ１２３２及び第３ＶＡＥ１２３３は、対応するクラスタごとに学習を行い、それぞれが有するモデルのパラメータを更新する。そして、第１ＶＡＥ１２３１、第２ＶＡＥ１２３２及び第３ＶＡＥ１２３３は、対応するクラスタの各アノマリスコアを推定する。
【００３０】
統合部１２４は、第２の推定部１２３の各確率密度推定器がそれぞれ推定したクラスタごとの確率密度を統合する。図２の例では、統合部１２４は、第１ＶＡＥ１２３１、第２ＶＡＥ１２３２及び第３ＶＡＥ１２３３がそれぞれ推定したよるクラスタごとのアノマリスコアを統合する。
【００３１】
そして、学習装置１０は、第２の推定部１２３の各ＶＡＥによって更新された、それぞれが有する各モデルのパラメータを検知装置２０に出力する。また、学習装置１０は、統合部１２４が採用した各クラスタの事前分布（後述）を検知装置２０に出力する。
【００３２】
［検知装置の構成］
次に、検知装置２０の構成について説明する。図５は、図１に示す検知装置２０の構成の一例を示す図である。検知装置２０は、図５に示すように、推定部２１及び検知部２２を有する。検知装置２０は、異常の有無の検知対象の通信データ（検知対象データ）が入力される。また、検知装置２０は、学習装置１０が出力した各ＶＡＥの更新パラメータ及び各クラスタの事前分布が入力される。
【００３３】
なお、検知装置２０は、例えば、ＲＯＭ、ＲＡＭ、ＣＰＵ等を含むコンピュータ等に所定のプログラムが読み込まれて、ＣＰＵが所定のプログラムを実行することで実現される。また、検知装置２０は、ネットワーク等を介して接続された他の装置との間で、各種情報を送受信する通信インタフェースを有する。例えば、検知装置２０は、ＮＩＣ等を有し、ＬＡＮやインターネットなどの電気通信回線を介した他の装置との間の通信を行う。
【００３４】
推定部２１は、検知用推定部２１１（第３の推定部）及び統合部２１２を有する。検知用推定部２１１は、第２の推定部１２３によって更新されたモデルのパラメータを適用して、検知対象データの確率密度を推定する。検知用推定部２１１は、第２の推定部１２３が有する確率密度推定器と同数の確率密度推定器を有する。
【００３５】
図５の例では、検知用推定部２１１は、第２の推定部１２３が有するＶＡＥと同数の第１ＶＡＥ２１１１、第２ＶＡＥ２１１２及び第３ＶＡＥ２１１３を有する。第１ＶＡＥ２１１１、第２ＶＡＥ２１１２及び第３ＶＡＥ２１１３は、対応するクラスタの各アノマリスコアを推定する。なお、第１ＶＡＥ２１１１、第２ＶＡＥ２１１２及び第３ＶＡＥ２１１３がそれぞれ有するモデルのパラメータは、第２の推定部１２３によって更新された各パラメータに設定されている。
【００３６】
統合部２１２は、検知用推定部２１１の各確率密度推定器が検知対象データに対しそれぞれ推定した確率密度を統合し、統合後の確率密度を検知対象データの確率密度として検知部２２に出力する。図５の例では、統合部１２４は、第１ＶＡＥ２１１１、第２ＶＡＥ２１１２及び第３ＶＡＥ２１１３がそれぞれ推定したクラスタごとのアノマリスコアを統合する。
【００３７】
検知部２２は、検知用推定部２１１によって推定された確率密度を基に検知対象データの異常の有無を検知する。検知部２２は、検知対象データの確率密度が所定値よりも低い場合に、検知対象データが異常であることを検知する。具体的には、検知部２２は、検知用推定部２１１によって推定されたアノマリスコアが所定値よりも高い場合に、検知対象データが異常であることを検知する。
【００３８】
［学習装置の処理の流れ］
次に、学習装置１０の処理の流れについて説明する。図６は、図２に示す学習装置１０が実行する学習処理の流れを説明する図である。
【００３９】
学習装置１０では、図６に示すように、収集部１１が学習対象データを収集し（図６の（１）参照）、この学習対象データを、第１の推定部１２１のＶＡＥ１２１１が学習して確率密度を推定し、ＶＡＥ１２１１が有するモデルのパラメータを更新する（図６の（２）参照）。この場合、ＶＡＥ１２１１は、学習対象データを学習し、各学習対象データのアノマリスコアを出力する。例えば、ＶＡＥ１２１１は、ヒストグラムＨ１（図６参照）を出力する。ヒストグラムＨ１は、横軸がアノマリスコアであり、縦軸がデータ数である。アノマリスコアは、−ｌｏｇｐ（ｘｉ）の近似値であるため、データ点の密度が低ければ低いほど高い値となり、異常度が高いと判定される。
【００４０】
ここで、ＶＡＥ１２１１が確率密度推定を行った通信データは、全てが正常データであるにも関わらず、ヒストグラムＨ１では、データ数の密度が低い通信データでアノマリスコアが高く出ている。言い換えると、データ数の密度が低い通信データに対し、適切に学習できないと考えられる。
【００４１】
そこで、学習装置１０は、データ数に係らず、学習対象データを適切に学習するために、データ数が多いデータ、データ数が少ないデータを別々に学習する。このため、学習装置１０では、クラスタリング部１２２が、学習対象データに対し、データ数に応じたクラスタリング、すなわち、確率密度に応じたクラスリングを実施する（図６の（３）参照）。なお、クラスタリング部１２２は、ＧＭＭ、ＶＢＧＭＭ等のアルゴリズムを用いてクラスタリングを実施する。
【００４２】
この結果、学習対象データは、アノマリスコアのヒストグラムＨ１に基づき、ヒストグラムＨ１´のようにクラスタＣ１，Ｃ２，Ｃ３の３つのクラスタにクラスタリングされる（図６の（４）参照）。
【００４３】
これに応じて、第２の推定部１２３は、各クラスタＣ１，Ｃ２，Ｃ３の通信データを専門に学習するＶＡＥのインスタンスを作る。そして、第２の推定部１２３では、第１ＶＡＥ１２３１がクラスタＣ１の通信データを学習し、第２ＶＡＥ１２３２がクラスタＣ２の通信データを学習し、第３ＶＡＥ１２３３の通信データをそれぞれ学習し、それぞれが有するモデルのパラメータを更新する（図６の（５）参照）。この際、第１ＶＡＥ１２３１、第２ＶＡＥ１２３２及び第３ＶＡＥ１２３３は、各クラスタのアノマリスコアを統合部１２４に出力する。なお、更新された各モデルのパラメータは、検知装置２０に出力される。
【００４４】
続いて、統合部１２４は、第１ＶＡＥ１２３１、第２ＶＡＥ１２３２及び第３ＶＡＥ１２３３のアノマリスコアを統合し（図６の（６）参照）、学習対象データ全体のアノマリスコアである最終スコア（−ｌｏｇｐ（ｘｉ）の近似値）を求めて、学習処理を終了する。
【００４５】
［統合部の処理］
次に、統合部１２４が行う統合処理について説明する。統合部１２４は、第２の推定部１２３における個々のＶＡＥが推定した各クラスタの確率密度を統合し、学習対象データ全体の確率密度を求める演算を行う。統合部１２４は、第２の推定部１２３における個々のＶＡＥが推定した各クラスタの確率密度を基に、各クラスタＣｋがしたがう確率分布ｐ（ｘ｜Ｃｋ）とクラスタＣｋに対応するクラスタの事前分布ｐ（Ｃｋ）との積の合計を、各クラスタの確率密度の統合値として演算する。この演算を数式で表すと、以下の（１）式で表すことができる。
【００４６】
【数１】
2019101982.tif 000003
【００４７】
図２の例では、第１ＶＡＥ１２３１、第２ＶＡＥ１２３２及び第３ＶＡＥ１２３３は、クラスタＣ１，Ｃ２，Ｃ３ごとのデータがしたがう確率分布ｐ（ｘ｜Ｃｋ）の学習を行う。この学習によって、第１ＶＡＥ１２３１は、−ｌｏｇｐ（ｘｉ｜Ｃ１）の近似値となるｓｃｏｒｅ１を出力する。第２ＶＡＥ１２３２は、−ｌｏｇｐ（ｘｉ｜Ｃ２）の近似値となるｓｃｏｒｅ２を出力する。第３ＶＡＥ１２３３は、−ｌｏｇｐ（ｘｉ｜Ｃ３）の近似値となるｓｃｏｒｅ３を出力する。
【００４８】
ここで、所望の最終スコアは、−ｌｏｇｐ（ｘｉ）の近似値である。したがって、統合部１２４は、（１）式に基づき、最終スコア（ｓｃｏｒｅ）を、以下の（２）式のように計算する。
【００４９】
【数２】
2019101982.tif 000004
【００５０】
ここで、各クラスタの事前分布ｐ（Ｃｋ）のとり方には自由度がある。一例として、本実施の形態では、正則化項のαを導入し、事前分布ｐ（Ｃｋ）を、以下の（３）式として計算する。
【００５１】
【数３】
2019101982.tif 000005
【００５２】
（３）式において、｜Ｃｋ｜は、クラスタＣｋに属するデータ数を表す。さらに、本実施の形態では、統合部１２４は、αを無限大の極限とみなして、事前分布ｐ（Ｃｋ）を、以下の（４）式を用いて計算を行ってもよい。
【００５３】
【数４】
2019101982.tif 000006
【００５４】
ただし、（４）式において、Ｋは、クラスタの個数である。この場合、以下の（５）式が成り立つ。
【００５５】
【数５】
2019101982.tif 000007
【００５６】
このため、統合部１２４は、最終スコアとして、単純にアノマリスコアの最小値をとるとしてもよい。したがって、上記した最終スコアの近似式として、以下の（６）式の関係も成り立つ。
【００５７】
【数６】
2019101982.tif 000008
【００５８】
統合部１２４は、処理速度が求められる場合には、（６）式を用いて最終スコアを算出することも可能である。なお、統合部１２４は、（３）式または（４）式を用いて計算した各クラスタの事前分布ｐ（Ｃｋ）を、検知装置２０に出力する。
【００５９】
［検知装置の処理の流れ］
次に、検知装置の処理の流れについて説明する。図７は、図５に示す検知装置２０が実行する検知処理の流れを説明する図である。
【００６０】
検知装置２０では、図７に示すように、検知用推定部２１１は、第１ＶＡＥ２１１１、第２ＶＡＥ２１１２及び第３ＶＡＥ２１１３のそれぞれが、学習対象データの各クラスタＣ１，Ｃ２，Ｃ３のデータのみを学習済みである（図７の（１）参照）。言い換えると、第１ＶＡＥ２１１１、第２ＶＡＥ２１１２及び第３ＶＡＥ２１１３のそれぞれには、学習装置１０の第２の推定部１２３によって更新された各クラスタに対応するモデルのパラメータが適用されている。
【００６１】
このため、検知装置２０は、検知対象データの入力を受け付けると、第１ＶＡＥ２１１１、第２ＶＡＥ２１１２及び第３ＶＡＥ２１１３は、それぞれアノマリスコア（ｓｃｏｒｅ１，ｓｃｏｒｅ２，ｓｃｏｒｅ３）を出力する（図７の（２）参照）。
【００６２】
統合部２１２は、統合部１２４と同様の処理を行うことによって、第１ＶＡＥ２１１１、第２ＶＡＥ２１１２及び第３ＶＡＥ２１１３がそれぞれ推定したアノマリスコアを統合する（図７の（３）参照）。これによって、統合部２１２は、検知対象データの最終スコアとして、−ｌｏｇｐ（ｘｉ）の近似値を、検知部２２に出力する。検知部２２は、検知用推定部２１１によって推定された最終スコアが所定値よりも高い場合に、検知対象データが異常であることを検知する。
【００６３】
［学習処理の処理手順］
次に、学習処理の処理手順について説明する。図８は、図２に示す学習装置１０による学習処理の処理手順を示すフローチャートである。
【００６４】
まず、図８に示すように、収集部１１は、学習対象データを収集し（ステップＳ１１）、収集した学習対象データを第１の推定部１２１に出力する。第１の推定部１２１は、ＶＡＥ１２１１を用いて、収集部１１が収集した学習対象データの確率密度を、推定する第１の推定処理を行う（ステップＳ１２）。
【００６５】
クラスタリング部１２２は、第１の推定部１２１によって推定された確率密度に応じて、学習対象データをクラスタリングするクラスタリング処理を行う（ステップＳ１３）。そして、第２の推定部１２３は、第１ＶＡＥ１２３１、第２ＶＡＥ１２３２及び第３ＶＡＥ１２３３を用いて、クラスタリング部１２２によってクラスタリングされたクラスタごとに学習を行い、クラスタごとの学習対象データの確率密度を推定してクラスタごとの学習対象データの確率密度の特徴を表すモデルのパラメータを更新する第２の推定処理を行う（ステップＳ１４）。
【００６６】
続いて、統合部１２４は、第２の推定部１２３の各ＶＡＥがそれぞれ推定したよるクラスタごとの確率密度を統合する統合処理を行う（ステップＳ１５）。学習装置１０は、第２の推定部１２３の各ＶＡＥによって更新された、それぞれが有する各モデルのパラメータ、及び、統合部１２４が採用した各クラスタの事前分布を出力する出力処理を行い（ステップＳ１６）、学習処理を終了する。
【００６７】
［検知処理の処理手順］
次に、検知処理の処理手順について説明する。図９は、図５に示す検知装置２０による検知処理の処理手順を示すフローチャートである。
【００６８】
まず、図９に示すように、検知装置２０は、検知対象データの入力を受け付ける（ステップＳ２１）。そして、検知用推定部２１１では、第１ＶＡＥ２１１１、第２ＶＡＥ２１１２及び第３ＶＡＥ２１１３が、第２の推定部１２３によって更新されたモデルのパラメータを適用して、検知対象データの確率密度を推定する検知用推定処理を行う（ステップＳ２２）。
【００６９】
続いて、統合部２１２は、検知用推定部２１１の各ＶＡＥが検知対象データに対しそれぞれ推定した確率密度を統合し、統合後の確率密度を検知対象データの確率密度として検知部２２に出力する統合処理を行う（ステップＳ２３）。
【００７０】
そして、検知部２２は、検知用推定部２１１によって推定された検知対象データの確率密度を基に検知対象データの異常の有無を検知する検知処理を行う（ステップＳ２４）。具体的には、検知部２２は、検知用推定部２１１によって推定された検知対象データの確率密度が所定値よりも低い場合に、検知対象データが異常であることを検知する。そして、検知部２２は、外部の対処装置等に検知結果を出力し（ステップＳ２５）、検知処理を終了する。
【００７１】
［実施例］
例えば、本実施の形態に係る検知システム１は、ＩｏＴ機器の異常検知に適用することができる。図１０は、実施の形態に係る検知システム１の適用例を説明する図である。図１０に示すように、複数のＩｏＴ機器２が接続されたネットワーク３上に、検知システム１を設ける。この場合、検知システム１は、ＩｏＴ機器２が送受信するトラフィックセッション情報を収集し、正常トラフィックセッションの確率密度の学習、及び、異常トラフィックセッションの検知を行う。正常トラフィックセッションの確率密度の学習には、上記学習処理を適用し、トラフィックセッションデータ間にデータ数の偏りがある場合にも精度よく学習を行う。また、異常トラフィックセッションの検知には、上記検知処理を適用し、学習処理において学習されたモデルパラメータを適用した確率密度推定を行い、高精度の異常検知を行う。
【００７２】
［評価実験］
次に、実際のＩｏＴ機器間のトラフィックセッションデータに対し、従来手法と、本実施の形態に係る手法とで評価を行った結果を示す。
【００７３】
まず、従来手法を用いて評価を行った結果について説明する。従来手法は、１個のＶＡＥを用いて確率密度を推定する手法である。図１１は、従来手法による学習結果の一例を示す図である。図１１は、複数種類のトラフィックセッションデータが混ざった学習対象データに対し、従来手法を用いて推定されたアノマリスコアのデータ数依存を示すヒストグラムである。
【００７４】
例えば、学習対象データには、図１１に示すように、２０９５１データとデータ数が多い１８８３ポートのＭＱＴＴ（Message  Queueing  Telemetry  Transport）通信（図１１の（１）参照）、２０４データとデータ数が少ない１９３５ポートのカメラ通信（図１１の（３）参照）、データ数が中程度の５３ポートのＤＮＳ（Domain  Name  System）通信等（図１１の（２）参照）が含まれる。
【００７５】
このようなデータ間でデータ数の偏りがある通信データを、ＶＡＥを用いて学習すると、いずれも正常な通信データにもかかわらず、データ数の分布によってアノマリスコアが変動する。具体的には、データ数が多いＭＱＴＴ通信は、アノマリスコアが低く出るものに対し（図１１の（１）参照）、データ数が少ないカメラ通信は、アノマリスコアが高く出てしまい、正常な通信データに対する誤検知の原因となる（図１１の（３）参照）。実際に、図１１に示す学習状態に対する評価結果を示す。
【００７６】
図１２は、図１１に示す学習状態におけるＲＯＣ曲線を示す図である。図１２は、従来手法によって得られたモデルに対して、学習対象に含まれる通常画質のカメラストリーミング通信（正常）と、画質を落としたカメラストリーミング通信（異常）とを見分けられるかを評価した結果である。この結果を基に、検知率として、ＡＵＣ（Area  Under  Curve）値を求める。このＡＵＣ値は、０．５が最低値であり、１．０が最大値である。ＡＵＣ値が１．０に近い場合には、この検知器は、検知率が高く誤検知率が低いと評価でき、ＡＵＣ値が０．５に近い場合には、完全にランダムに答えを返す検知器であると評価できる。
【００７７】
従来手法に対応する図１２のＲＯＣ曲線から求めたＡＵＣ値は、０．５９０７８２であった。このため、従来手法では、画質の低下をほぼ検知できていない。これは、学習時に、データ数が少ないカメラ通信の特徴を十分にとらえきれていないため、画質の低下を検知できなかったことが原因と考えられる。
【００７８】
これに対し、本実施の形態の手法を適用した場合について説明する。図１３は、図２に示す第１の推定部１２１による学習結果の一例を示す図である。本実施の形態では、第１の推定部１２１が、図１２に示すアノマリスコアのデータ依存を計算すると、クラスタリング部１２２が、アノマリスコアに応じてクラスタリングを行う。図１３の例では、クラスタリング部１２２は、学習対象のトラフィックセッションデータを、データ数が多いＭＱＴＴ通信に対応するクラスタＣ１´、データ数が中程度のＤＮＳ通信等を含むクラスタＣ２´、データ数が少ないカメラ通信に対応するクラスタＣ３´に分割する。
【００７９】
そして、本実施の形態では、クラスタＣ１´を第１ＶＡＥ１２３１が学習し（図１３の（１）参照）、クラスタＣ２´を第２ＶＡＥ１２３２が学習し（図１３の（２）参照）、クラスタＣ３´を第３ＶＡＥ１２３３が学習する（図１３の（３）参照）。すなわち、本実施の形態では、数が多いトラフィックセッションデータと、数が少ないトラフィックセッションデータとを別々に学習させている。そして、本実施の形態では、第１ＶＡＥ１２３１、第２ＶＡＥ１２３２及び第３ＶＡＥ１２３３のそれぞれが学習結果に応じてモデルのパラメータを更新するとともに、統合部１２４が、それぞれの学習結果を統合し、アノマリスコアを出力する。
【００８０】
図１４は、図１１で使用された学習対象データに対し、図２に示す学習装置１０が出力したアノマリスコアのデータ数依存を示すヒストグラムである。図１４に示すように、学習装置１０によれば、数が少ない通信データ、例えば、１９３５ポートのカメラ通信についても、低いアノマリスコアを実現することができている（図１４の（ａ）参照）。次に、実際に、図１４に示す学習状態に対する評価結果を示す。
【００８１】
図１５は、図１４に示す学習状態におけるＲＯＣ曲線を示す図である。図１５は、学習装置１０によって得られたモデルに対して、学習対象に含まれる通常画質のカメラストリーミング通信（正常）と、画質を落としたカメラストリーミング通信（異常）とを見分けられるかを評価した結果である。
【００８２】
この図１５のＲＯＣ曲線から求めたＡＵＣ値は、０．９９８９２８である。したがって、学習装置１０の学習精度の向上によって、検知装置２０では、画質の低下をほぼ検知できるように改善されている。すなわち、学習装置１０の学習処理によって、検知装置２０では、高い精度で、正常データと異常データとを識別することができ、誤検知の大幅な低減が可能となった。
【００８３】
［実施の形態の効果］
このように、本実施の形態に係る学習装置１０は、学習対象データの確率密度を推定した後に、この確率密度に応じて学習対象データをクラスタリングし、クラスタごとに改めて学習を行う。すなわち、学習装置１０は、クラスタごとの学習対象データの確率密度を推定して、クラスタごとの学習対象データの確率密度の特徴を表すモデルのパラメータを更新する。そして、学習装置１０は、クラスタごとの確率密度を統合する。
【００８４】
したがって、学習装置１０は、まず、１段階目の学習において、確率密度推定とクラスタリングとを行うことによって、データの密度に応じたクラスタリングの実施を可能にする。そして、学習装置１０は、２段階目の学習において、クラスタごとにＶＡＥを用意し、クラスタごとに個別にＶＡＥに学習対象データを学習させ、クラスタごとの確率密度を統合する。この結果、学習装置１０は、データ数の少ない学習対象データに対しても精度よく学習を行うことができる。言い換えると、学習装置１０によれば、学習対象データ間でデータ数に偏りがある場合であっても、学習対象データの確率密度を精度よく学習でき、高精度で異常検知を行えるようなモデルを得ることができる。
【００８５】
そして、検知装置２０では、学習装置１０のＶＡＥと同数のＶＡＥを設け、得られたモデルを適用し、検知対象データに対する各ＶＡＥの確率密度を統合した結果を確率密度推定結果とする。これによって、検知装置２０では、高精度で確率密度推定を実施することができ、これにともない、誤検知の低減が実現でき、検知率の向上を図ることができる。
【００８６】
［システム構成等］
図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部又は任意の一部が、ＣＰＵ及び当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【００８７】
また、本実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部又は一部を手動的におこなうこともでき、あるいは、手動的に行なわれるものとして説明した処理の全部又は一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【００８８】
［プログラム］
図１６は、プログラムが実行されることにより、学習装置１０及び検知装置２０が実現されるコンピュータの一例を示す図である。コンピュータ１０００は、例えば、メモリ１０１０、ＣＰＵ１０２０を有する。また、コンピュータ１０００は、ハードディスクドライブインタフェース１０３０、ディスクドライブインタフェース１０４０、シリアルポートインタフェース１０５０、ビデオアダプタ１０６０、ネットワークインタフェース１０７０を有する。これらの各部は、バス１０８０によって接続される。
【００８９】
メモリ１０１０は、ＲＯＭ１０１１及びＲＡＭ１０１２を含む。ＲＯＭ１０１１は、例えば、ＢＩＯＳ（Basic  Input  Output  System）等のブートプログラムを記憶する。ハードディスクドライブインタフェース１０３０は、ハードディスクドライブ１０９０に接続される。ディスクドライブインタフェース１０４０は、ディスクドライブ１１００に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ１１００に挿入される。シリアルポートインタフェース１０５０は、例えばマウス１１１０、キーボード１１２０に接続される。ビデオアダプタ１０６０は、例えばディスプレイ１１３０に接続される。
【００９０】
ハードディスクドライブ１０９０は、例えば、ＯＳ（Operating  System）１０９１、アプリケーションプログラム１０９２、プログラムモジュール１０９３、プログラムデータ１０９４を記憶する。すなわち、学習装置１０及び検知装置２０の各処理を規定するプログラムは、コンピュータにより実行可能なコードが記述されたプログラムモジュール１０９３として実装される。プログラムモジュール１０９３は、例えばハードディスクドライブ１０９０に記憶される。例えば、学習装置１０及び検知装置２０における機能構成と同様の処理を実行するためのプログラムモジュール１０９３が、ハードディスクドライブ１０９０に記憶される。なお、ハードディスクドライブ１０９０は、ＳＳＤ（Solid  State  Drive）により代替されてもよい。
【００９１】
また、上述した実施形態の処理で用いられる設定データは、プログラムデータ１０９４として、例えばメモリ１０１０やハードディスクドライブ１０９０に記憶される。そして、ＣＰＵ１０２０が、メモリ１０１０やハードディスクドライブ１０９０に記憶されたプログラムモジュール１０９３やプログラムデータ１０９４を必要に応じてＲＡＭ１０１２に読み出して実行する。
【００９２】
なお、プログラムモジュール１０９３やプログラムデータ１０９４は、ハードディスクドライブ１０９０に記憶される場合に限らず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ１１００等を介してＣＰＵ１０２０によって読み出されてもよい。あるいは、プログラムモジュール１０９３及びプログラムデータ１０９４は、ネットワーク（ＬＡＮ、ＷＡＮ（Wide  Area  Network）等）を介して接続された他のコンピュータに記憶されてもよい。そして、プログラムモジュール１０９３及びプログラムデータ１０９４は、他のコンピュータから、ネットワークインタフェース１０７０を介してＣＰＵ１０２０によって読み出されてもよい。
【００９３】
以上、本発明者によってなされた発明を適用した実施形態について説明したが、本実施形態による本発明の開示の一部をなす記述及び図面により本発明は限定されることはない。すなわち、本実施形態に基づいて当業者等によりなされる他の実施形態、実施例及び運用技術等は全て本発明の範疇に含まれる。
【符号の説明】
【００９４】
１  検知システム
２  ＩｏＴ機器
３  ネットワーク
１０  学習装置
１１  収集部
１２  学習部
１２１  第１の推定部
１２２  クラスタリング部
１２３  第２の推定部
１２４  統合部
１２１１  ＶＡＥ
１２３１，２１１１  第１ＶＡＥ
１２３２，２１１２  第２ＶＡＥ
１２３３，２１１３  第３ＶＡＥ
２０  検知装置
２１  推定部
２２  検知部
２１１  検知用推定部
２１２  統合部
【図１】
2019101982.tif 000009
【図２】
2019101982.tif 000010
【図３】
2019101982.tif 000011
【図４】
2019101982.tif 000012
【図５】
2019101982.tif 000013
【図６】
2019101982.tif 000014
【図７】
2019101982.tif 000015
【図８】
2019101982.tif 000016
【図９】
2019101982.tif 000017
【図１０】
2019101982.tif 000018
【図１１】
2019101982.tif 000019
【図１２】
2019101982.tif 000020
【図１３】
2019101982.tif 000021
【図１４】
2019101982.tif 000022
【図１５】
2019101982.tif 000023
【図１６】
2019101982.tif 000024