(57)【要約】【課題】モデルを用いてデータの分析を行う技術において、データの次元変更によるモデルの再訓練が必要になった場合でも、継続的に分析を行うことを可能とする。【解決手段】モデル学習装置において、訓練用データを用いて教師無の深層学習モデルの学習を行う学習手段と、前記深層学習モデルにおける入力次元間の相関関係を算出する算出手段と、相関関係が存在する次元の組毎に、前記訓練用データを用いて分析用モデルの学習を行う分割モデル学習手段とを備える。【選択図】図１
2020177290.tif 000002
【特許請求の範囲】
【請求項１】
訓練用データを用いて教師無の深層学習モデルの学習を行う学習手段と、
前記深層学習モデルにおける入力次元間の相関関係を算出する算出手段と、
相関関係が存在する次元の組毎に、前記訓練用データを用いて分析用モデルの学習を行う分割モデル学習手段と
を備えるモデル学習装置。
【請求項２】
前記算出手段は、前記深層学習モデルにおける入力データの各次元の最終出力値に対する寄与度を算出し、当該寄与度に基づいて入力次元間の相関関係を算出する
請求項１に記載のモデル学習装置。
【請求項３】
請求項１又は２に記載の前記分割モデル学習手段により学習された分析用モデルを用いてデータ分析を行うデータ分析手段を備えるデータ分析装置。
【請求項４】
訓練用データの次元を複数のグループに分割し、グループ毎に、分割された訓練用データを用いて教師無の深層学習モデルの学習を行う部分学習手段と、
グループ毎に、前記深層学習モデルにおける入力次元間の相関関係を算出する算出手段と、
グループ毎に、相関関係が存在する次元の組毎に前記訓練用データを用いて分割モデルの学習を行う特徴量抽出手段と、
グループ毎の各分割モデルから得られる特徴量を用いて深層学習モデルを学習し、当該深層学習モデルにおける入力次元間の相関関係が存在する次元の組毎に、前記訓練用データを用いて分析用モデルの学習を行う学習手段と
を備えるモデル学習装置。
【請求項５】
請求項４に記載の前記学習手段により学習された分析用モデルを用いてデータ分析を行うデータ分析手段を備えるデータ分析装置。
【請求項６】
モデル学習装置が実行するモデル学習方法であって、
訓練用データを用いて教師無の深層学習モデルの学習を行う学習ステップと、
前記深層学習モデルにおける入力次元間の相関関係を算出する算出ステップと、
相関関係が存在する次元の組毎に、前記訓練用データを用いて分析用モデルの学習を行う分割モデル学習ステップと
を備えるモデル学習方法。
【請求項７】
モデル学習装置が実行するモデル学習方法であって、
訓練用データの次元を複数のグループに分割し、グループ毎に、分割された訓練用データを用いて教師無の深層学習モデルの学習を行う部分学習ステップと、
グループ毎に、前記深層学習モデルにおける入力次元間の相関関係を算出する算出ステップと、
グループ毎に、相関関係が存在する次元の組毎に前記訓練用データを用いて分割モデルの学習を行うステップと、
グループ毎の各分割モデルから得られる特徴量を用いて深層学習モデルを学習し、当該深層学習モデルにおける入力次元間の相関関係が存在する次元の組毎に、前記訓練用データを用いて分析用モデルの学習を行うステップと
を備えるモデル学習方法。
【請求項８】
コンピュータを、請求項１、２又は４に記載のモデル学習装置における各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、深層学習を用いた分析に関するものであり、特に大規模のネットワーク機器から発生するログデータやＩｏＴのセンサ群から得られる大量のデータに関する継続的な分析に関するものである。
【背景技術】
【０００２】
分類問題（非特許文献１）、未来予測（非特許文献１）、異常検知（非特許文献２）など様々なタスクに対し精度向上を目的として深層学習が用いられているが、深層学習の手法では訓練による深層学習モデルの構築と訓練済みモデルを用いた対象データの評価の２タームが存在し、これらのタームの中では入力されるデータの次元が等しくなければならないという前提が存在する。
【０００３】
一方でネットワーク機器から発生するログデータやＩｏＴのセンサ群から発生するデータは機器やセンサの交換や設定変更により、深層学習に入力されるデータ次元が変更される場合が存在し、この時訓練済みのモデルに対してデータの次元が変化したデータは入力できないためモデルの再訓練が必要となる。また、機械学習的な手法を用いる場合、分析対象データの種類（今回の問題設定の場合、ネットワーク機器やセンサの数に応じて増大）が多くなり過ぎると計算量が多くなりすぎる、また学習に必要なデータ量が増大する問題がありスケールしない。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】J. Schmidhuber, "Deep learning in neural networks: An overview", Neural Networks, 61, 2015.
【非特許文献２】R. Chalapathy and S. Chawla, "DEEP LEARNING FOR ANOMALY DETECTION: A SURVEY", arXiv:1901.03407, 2019.
【非特許文献３】G. E. Hinton and R. R. Salakhutdinov, "Reducing the Dimensionality of Data with Neural Networks" Science , 313 (5786), 2006.
【非特許文献４】X.Guo, X. Liu, E. Zhu and J. Yin, "Deep Clustering with Convolutional Autoencoders",ICONIP 2017.
【非特許文献５】P. Vincent, H. Larochelle, Y. Bengio and P. A. Manzagol "Extracting and composing robust features with denoising autoencoder", ICML 2008
【非特許文献６】D. P Kingma and M. Welling, "Auto-encoding variational Bayes", ICLR, 2014
【非特許文献７】S. Bach, A. Binder,G. Montavon, F. Klauschen, K. R. Muller and  W. Samek, "On Pixel-Wise Explanations for Non-Linear Classifier Decisions by Layer-Wise Relevance Propagation", PloS one, 10(7), 2015.
【非特許文献８】A. Shrikumar, P. Greenside and A. Kundaje, "Learning important features through propagating activation differences", ICML, 2017
【非特許文献９】J. Macqueen, "Some methods for classification and analysis of multivariate observations", Proceedings of the fifth Berkeley symposium on mathematical statistics and probability, 1(14), 1967
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記で述べたデータの次元変更によるモデルの再訓練が必要になった場合、訓練に必要なデータを収集する期間及びそのデータを用いてモデルを再訓練する期間では、上記で述べた分類、予測、異常検知等のタスクを実行できなくなる。また分析対象データの種類が多すぎる場合に分析用のモデルの学習が計算量及び学習データ量の観点から行えない場合がある。
【０００６】
本発明は上記の点に鑑みてなされたものであり、モデルを用いてデータの分析を行う技術において、データの次元変更によるモデルの再訓練が必要になった場合でも、継続的に分析を行うことを可能とする技術を提供することを目的とする。
【課題を解決するための手段】
【０００７】
開示の技術によれば、訓練用データを用いて教師無の深層学習モデルの学習を行う学習手段と、
前記深層学習モデルにおける入力次元間の相関関係を算出する算出手段と、
相関関係が存在する次元の組毎に、前記訓練用データを用いて分析用モデルの学習を行う分割モデル学習手段と
を備えるモデル学習装置が提供される。
【発明の効果】
【０００８】
開示の技術によれば、モデルを用いてデータの分析を行う技術において、データの次元変更によるモデルの再訓練が必要になった場合でも、継続的に分析を行うことを可能とする技術が提供される。
【図面の簡単な説明】
【０００９】
【図１】小規模データを取り扱う際の異常検知装置の機能ブロック図である。
【図２】大規模データを取り扱う際の異常検知装置の機能ブロック図
【図３】ネットワークログデータの前処理の例を説明するための図である。
【図４】寄与度計算の概要を示す図である。
【図５】分割モデル再学習の概要を示す図である。
【図６】異常検知を例にした分析の例を示す図である。
【図７】多段深層学習モデルによる相関関係取得の処理を示す図である。
【図８】装置のハードウェア構成の例を示す図である。
【図９】実施例１、２の処理を説明するためのフローチャートである。
【図１０】実施例１の処理を説明するためのフローチャートである。
【図１１】実施例２の処理を説明するためのフローチャートである。
【図１２】ＡＥを用いた相関分割の例を示す図である。
【図１３】モデル分割と異常検知精度を示す図である。
【発明を実施するための形態】
【００１０】
以下、図面を参照して本発明の実施の形態（本実施の形態）を説明する。以下で説明する実施の形態は一例に過ぎず、本発明が適用される実施の形態は、以下の実施の形態に限られるわけではない。また、以下では、本発明を異常検知装置に適用する場合の例を示しているが、本発明は異常検知の分野に限らず、様々な分野に適用可能である。
【００１１】
（実施の形態の概要）
データの次元変更が生じた場合でも、タスク実行不能時間をなくし継続的な分析を行うために、本実施の形態では、一つの深層学習モデルで入力データ全体を取り扱うのではなく、入力データの次元間の相関関係に基づき深層学習モデルを分割し、複数のモデルで入力データを取り扱う。この場合、入力次元が変更したとしても変化した次元が関与するモデルのみ再訓練を行い、その他無関係のモデルでは分析を継続することで、分析の継続性を確保する。
【００１２】
また、分析対象データの種類数に関する分析用モデルの構築不可能性に関する問題に関しては、多段の相関関係取得モデルによるモデル分割により１つあたりのモデルが取り扱うデータの種類を削減することにより学習データ量や計算量を削減することを可能としている。
【００１３】
以下では、具体的な実施の形態として、小規模データのモデル分割手法である実施例１、及び、大規模データのモデル分割手法である実施例２を説明する。
【００１４】
（実施例１：小規模データのモデル分割手法）
まず、実施例１を説明する。
【００１５】
＜機能構成例＞
実施例１における異常検知装置１００の機能ブロックを図１に示す。
【００１６】
図１に示すように、異常検知装置１００は、データ収集部１１０、データ前処理部１２０、全体訓練部１３０、深層学習モデル分割部１４０、データ分析部１５０を有する。深層学習モデル分割部１４０は、寄与度計算部１４１、相関関係算出部１４２、分割モデル再学習部１４３を有する。各機能部の処理内容については後述する。
【００１７】
なお、異常検知装置１００は、モデル学習の機能を含むので、これをモデル学習装置と呼んでもよい。また、異常検知装置１００は、データ分析の機能を含むので、これをデータ分析装置と呼んでもよい。
【００１８】
また、異常検知装置１００からデータ分析部１５０を除いた装置をモデル学習装置と呼んでもよい。また、異常検知装置１００からモデル学習用の機能部（全体訓練部１３０及び深層学習モデル分割部１４０）を除いた装置をデータ分析装置と呼んでもよい。この場合のデータ分析装置には、分割モデル再学習部１４３で学習されたモデルが格納され、当該モデルがデータ分析に使用される。
【００１９】
＜ハードウェア構成例＞
異常検知装置１００は、例えば、コンピュータに、本実施の形態で説明する処理内容を記述したプログラムを実行させることにより実現可能である。例えば、モデルでデータを分析することは、データをコンピュータに入力し、モデルに相当するプログラムをコンピュータに実行させることで実現できる。
【００２０】
すなわち、異常検知装置１００は、コンピュータに内蔵されるＣＰＵやメモリ等のハードウェア資源を用いて、当該異常検知装置１００で実施される処理に対応するプログラムを実行することによって実現することが可能である。上記プログラムは、コンピュータが読み取り可能な記録媒体（可搬メモリ等）に記録して、保存したり、配布したりすることが可能である。また、上記プログラムをインターネットや電子メール等、ネットワークを通して提供することも可能である。
【００２１】
図８は、本実施の形態における上記コンピュータのハードウェア構成例を示す図である。図８のコンピュータは、それぞれバスＢで相互に接続されているドライブ装置１０００、補助記憶装置１００２、メモリ装置１００３、ＣＰＵ１００４、インタフェース装置１００５、表示装置１００６、及び入力装置１００７等を有する。
【００２２】
当該コンピュータでの処理を実現するプログラムは、例えば、ＣＤ−ＲＯＭ又はメモリカード等の記録媒体１００１によって提供される。プログラムを記憶した記録媒体１００１がドライブ装置１０００にセットされると、プログラムが記録媒体１００１からドライブ装置１０００を介して補助記憶装置１００２にインストールされる。但し、プログラムのインストールは必ずしも記録媒体１００１より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置１００２は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
【００２３】
メモリ装置１００３は、プログラムの起動指示があった場合に、補助記憶装置１００２からプログラムを読み出して格納する。ＣＰＵ１００４は、メモリ装置１００３に格納されたプログラムに従って、当該異常検知装置１００に係る機能を実現する。インタフェース装置１００５は、ネットワークに接続するためのインタフェースとして用いられる。表示装置１００６はプログラムによるＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）等を表示する。入力装置１００７はキーボード及びマウス、ボタン、又はタッチパネル等で構成され、様々な操作指示を入力させるために用いられる。
【００２４】
なお、前述したモデル学習装置、データ分析装置に関しても同様に、図８に示すようなコンピュータにプログラムを実行させることで実現できる。また、実施例２で説明する異常検知装置２００（及びモデル学習装置、データ分析装置）に関しても同様に、図８に示すようなコンピュータにプログラムを実行させることで実現できる。
【００２５】
以下、異常検知装置１００の各機能部の処理内容を詳細に説明する。
【００２６】
＜データ収集部１１０、データ前処理部１２０＞
データ収集部１１０は、本実施例で対象としているＩＣＴシステムのネットワークログデータ（数値、テキスト）やＩｏＴシステムのセンサデータを収集する。これらのデータはデータ前処理部１２０に送られて深層学習に用いることが可能な形状に整形される。
【００２７】
図３に、ネットワークワークログデータに対する前処理により得られるデータの一例を示す。
【００２８】
図３に示すように、整形されたデータは行列の形式をとり、横方向すなわち列のことをデータの次元と定義し、列の数を次元数、それぞれの列のことを各次元と呼ぶ。例えば、図３の例において、時刻００：００に得られた「メモリ（機器Ａ）」の次元の値が０．２であることが示されている。
【００２９】
＜全体訓練部１３０＞
モデル分割の対象とする分析手法は表現力の高い深層学習モデルであるので、モデル分割に用いる相関関係取得も深層学習モデルによって行う。そこで、全体訓練部１３０では整形されたデータを用いてデータ次元間の相関関係を調べるための深層学習モデルを構築する。相関関係を取得するための深層学習モデルとしては教師無のデータ特徴抽出モデルであるAutoEncoder(AE)（非特許文献３）、Convolutional AutoEncoder（非特許文献４）、Denoising AutoEncoder（非特許文献５）、Variational AutoEncoder(VAE)（非特許文献６）などを用いることができる。
【００３０】
全体訓練部１３０が深層学習モデルを学習した後、学習に用いた整形済みデータと学習済み深層学習モデルを寄与度計算部１４１に入力する。
【００３１】
＜寄与度計算部１４１＞
本実施例では、寄与度計算部１４１及び相関関係算出部１４２により、教師無の深層学習モデルに対し、出力側から入力側への逆伝播による深層学習モデルの解釈手法を活用し入力データの次元間の相関関係を算出する。より詳細には下記のとおりである。
【００３２】
ＡＥ（ＶＡＥ）及びその派生形は、深層学習モデル内部で入力データの特徴を抽出しつつ、出力が入力に近くなるように訓練を行うモデルである。ここでは、入力データの次元間相関関係の取得方法として深層学習モデルの解釈を目的として提案されている手法のうちデータの次元の重要度を計算する手法を用いる。このような手法としてLayer-wise relevance propagation(LRP) （非特許文献７）、DeepLIFT（非特許文献８）などが知られている。これらの手法は分類問題のテスト（分析）時にどの次元が分析結果に寄与していたのかを示す手法であるが、本実施例では、当該手法を訓練用データを復元するように学習するモデルであるＡＥ（ＶＡＥ）及びその派生形に応用する。
【００３３】
寄与度計算部１４１が実行するＬＲＰやＤｅｅｐＬＩＦＴによる寄与度の算出方法について図４を参照しながら説明する。
【００３４】
寄与度として（ａ）隣り合う層間毎の寄与度、及び（ｂ）それらを繋げて最終出力値に対する入力の寄与度を求めることができる。以下ではＬＲＰ及びＤｅｅｐＬＩＦＴによる解釈手法として提案されているもののうち一番簡単なものを例として説明する。ちなみに以降、寄与度算出部１４１の処理の説明における上付き文字は指数ではなく添え字である。
【００３５】
（ａ）初めに層毎の寄与度について説明する。ここでは中間層（１層目）と中間層（２層目）を例にして説明する。なお、図面及び数式のイメージにおいて太字は多次元ベクトルを表す。明細書のテキストにおいては、多次元ベクトルを表す文字についてはその旨を記載する。
【００３６】
（ｘ１，ｘ２）（ｘは多次元ベクトル）は図４の深層学習モデルの場合、１層目と２層目を結ぶ重み行列Ｗ１、及びバイアスｂ１（ｂは多次元ベクトル）、非線形関数ｆ１を用いて、
【００３７】
【数１】
2020177290.tif 000003
と表わされる。Ｗ、ｂ、ｆは一般化されて、ｋ層目とｋ＋１層目に関してはＷｋ、バイアスｂｋ、非線形関数ｆｋと表わされる。
【００３８】
ｘ１のｊ次元目のｘ２のｉ次元目に対する寄与度は
【００３９】
【数２】
2020177290.tif 000004
寄与度を比率にする場合：
【００４０】
【数３】
2020177290.tif 000005
【００４１】
【数４】
2020177290.tif 000006
と表わされる。
【００４２】
寄与度計算部１４１において、訓練用データ全体もしくはサンプリングした一部の訓練データを訓練済みモデルの入力とし、各訓練データ毎に上記の寄与度を算出しその平均をとる。寄与度は１層目２層目間だけでなく０層目１層目間から、ｎ層目ｎ＋１層目間まですべて計算を行う。図４の下側には、ｋ＝０〜ｎ、ｋ層目ｍｋ次元、ｋ＋１層目ｍｋ＋１次元と仮定した場合におけるｋ層目からｋ＋１層目への寄与度行列Ｃｋが示されている。
【００４３】
（ｂ）（ａ）で求めた寄与度Ｃｉｊｋを元に、ＬＲＰ及びＤｅｅｐＬＩＦＴそれぞれで最終出力に対する入力データの各次元の寄与度を求めることができる。その結果は以下のようになる。以下の式において、ｉは出力値の次元、ｊは入力データの次元、ｋｌはｌ層目の次元である。
【００４４】
【数５】
2020177290.tif 000007
寄与度を比率にする場合：
【００４５】
【数６】
2020177290.tif 000008
【００４６】
【数７】
2020177290.tif 000009
この場合の寄与度も（ａ）の場合と同様、訓練用データ全体もしくはサンプリングした一部の訓練データを訓練済みモデルの入力とし、各訓練データ毎に上記の寄与度を算出しその平均をとる。
【００４７】
＜相関関係算出部１４２＞
相関関係算出部１４２及び分割モデル再学習部１４３により、入力データの次元間の相関関係に基づき、入力データの次元をクラスタリングし、クラスタ毎に分析用の深層学習モデルを構築する。より具体的には下記のとおりである。
【００４８】
相関関係算出部１４２は寄与度計算部１４１で計算された寄与度を用いて入力次元の相関関係を取得する。相関関係取得法として、大まかに分けて、（１）寄与度に対して閾値を設定する方法、（２）クラスタ数を設定する手法、の２種類の手法がある。以下、それぞれに対して詳しく説明する。
【００４９】
（１）寄与度に対して閾値を設定する方法について、閾値を用いる段階を変えることで、下記の（イ）、（ロ）の２種類の手法がある。
【００５０】
（イ）寄与度計算部１４１により前述した手法（ａ）で計算された寄与度行列Ｃｋ（ｋ＝０〜ｎ）を用いて以下のようなバイナリ行列Ｂｋ（ｋ＝０〜ｎ）を作成する。
【００５１】
【数８】
2020177290.tif 000010
更に式（５）を用いて、
【００５２】
【数９】
2020177290.tif 000011
を計算することで入出力の各次元が接続しているかいないかを表すバイナリ行列Ｂが得られる。ＡＥ及びＶＡＥなどでは入力と出力の次元が等しいのでこの行列は正方行列であり、行方向が入力次元、列方向が出力次元となる。
【００５３】
この正方行列を入出力次元数の列ベクトルＢｉに分解し、以下の内積計算をすべての次元のペアで行い、相関関係の算出を行う。
【００５４】
ｉｆ  Ｂｉ・Ｂｊ＝０  ⇒  次元ｉと次元ｊに相関関係無し。
【００５５】
ｉｆ  Ｂｉ・Ｂｊ＞０  ⇒  次元ｉと次元ｊに相関関係あり。
すべての次元のペアに関して上の計算を行い、相関関係のあるグループ毎に次元をクラスタリングする。
【００５６】
（ロ）寄与度計算部１４１により前述した手法（ｂ）で計算された寄与度行列Ｃを列ベクトルＣｉに分解し、各列ベクトルのペアワイズの距離を算出しそれに対して閾値を設定することで相関関係を算出する。ここで距離の定義として
Ｌ＿１、Ｌ＿２距離を含むミンコフスキー距離：
【００５７】
【数１０】
2020177290.tif 000012
コサイン類似度：
【００５８】
【数１１】
2020177290.tif 000013
などを用いることができる。ただし、上記式の上付き文字は指数である。
【００５９】
自身を含む全次元と相関関係のない次元が存在する場合、ｉ）それらの次元をひとまとめにして１つの相関関係のグループとみなす場合やｉｉ）それらの次元は以降の分析に使用しないという２種類の取り扱いのいずれかを使用することができる。
【００６０】
（２）クラスタ数を決めたうえでクラスタリングする手法としては、ｋＭｅａｎｓ法（非特許文献９）を主に使用することができる。クラスタリングの入力として、（１）（ロ）と同様にＣｉを用いる。この場合も孤立した次元が発生した場合ｉ）それらを１つの相関関係グループとみなす場合とｉｉ）それぞれ独立な相関関係グループとみなす場合の２パターンのいずれかを使用することができる。
【００６１】
＜分割モデル再学習部１４３＞
分割モデル再学習部１４３では、相関関係算出部１４２で得られた相関関係及び全体訓練部１３０で相関関係取得モデルを訓練するために用いた訓練用データを用いて相関関係が存在する次元毎に分析用モデルを用いて訓練を行う。この処理の具体例を図５に示す。
【００６２】
相関関係算出部１４２により、図５に示す訓練用データが相関関係１｛メモリ（機器Ａ），ＣＰＵ（機器Ａ），ログ１出現数（正規化済み），...．｝，相関関係２｛ｄｕｒａｔｉｏｎ平均（ｓｏｕｒｃｅ  ＩＰ  Ａ），Ｂｙｔｅｓ／ｍｉｎ（機器Ａ），...．｝という２種類の相関関係に分割されたと仮定する。
【００６３】
分割モデル再学習部１４３は、相関関係１に該当するデータを分析用モデル１に入力することで分析用モデル１の訓練を行い、相関関係２に該当するデータを分析用モデル２に入力することで分析用モデル２の訓練を行う。このように、相関関係毎のモデルにデータを入力することで訓練をやり直す。学習された各分析用モデルは、データ分析部１５０に格納される。
【００６４】
＜データ分析部１５０＞
最後にデータ分析部１５０は、テスト（分析）に用いるデータを、分割モデル再学習部１４３で作成した複数のモデルに該当する次元毎に分けて入力し、分析結果を出力する。
【００６５】
分析結果の出力の際に、最終的にすべてのモデルの出力をまとめて１つの結果として出力する必要がある場合には、その方法として、ａ）すべてのモデルから得られる出力結果をまとめて平均をとる、ｂ）各モデルの出力結果をバイナリ化してその平均値をとるなどの処理を行う。
【００６６】
例えば、分類問題の場合、ある分析対象データの次元を分割し分割モデル再学習部１４３で得られた各モデルに次元分割したデータが入力された場合、それぞれのモデルは各ラベルに該当する確率を出力するが、一つの分析結果として出力する場合にはａ）その確率を全モデルで平均し規格化する、ｂ）各モデルの確率を順位付けし投票制にするなどが考えられる。
【００６７】
異常検知を例とした相関分割されたモデル群による分析の具体例を図６に示す。図６に示す例では、分析用データが、相関関係１に該当する次元のデータと、相関関係２に該当する次元のデータとに分割される。相関関係１に該当する次元のデータは、データ分析部１５０における分析用モデル１に入力され、相関関係２に該当する次元のデータは、データ分析部１５０における分析用モデル２に入力される。図６の例では、モデル１、モデル２のいずれからも「異常」が出力され、これらをまとめて最終結果（"異常"）を出力する。
【００６８】
解決しようとする課題で説明したデータの構造変化による継続不能性について、例えば、次元が減る場合は消滅した次元と相関を持つモデルを除いた他のモデルのみで分析を継続し、次元が増える場合はひとまず増えた次元を取り除いて分析を行いこれまでと挙動が大きく異なるように変化したモデルを次元変化の影響を受けたモデルとみなし、以降の分析ではそのモデルを取り除いた残りのモデルで分析を行う。
【００６９】
（実施例２：大規模データのモデル分割手法）
次に実施例２を説明する。実施例２では、入力データの次元を恣意的に分割し、それぞれの中に存在する次元間の相関関係を実施例１で説明した手法で取得し、実施例１で説明した手法で相関に応じて分割された次元の組毎に特徴抽出のための教師無深層学習モデルを構築し、抽出された特徴量を利用して、全体的な相関関係を取得するという、深層学習モデルの段階的な使用により入力データの次元全体の相関関係を取得する。以下、より詳しく説明する。
【００７０】
実施例１では、相関関係を取得するための深層学習モデルを訓練する全体訓練部１３０を導入している。しかし、取り扱うデータの次元が大きくなると全体訓練部１３０の学習が不能になる可能性がある。
【００７１】
実施例１の方法で寄与度を計算しようとした場合に、次元数の大きさが原因で一つの相関学習モデルではデータ処理が行えずエラーが出るような場合、以下で説明する手法にて、大規模データに対する相関分割を行う。
【００７２】
＜機能構成例＞
実施例２における異常検知装置２００の機能ブロックを図２に示す。
【００７３】
図２に示すように、異常検知装置２００は、データ収集部２１０、データ前処理部２２０、部分訓練部２３０、部分深層学習モデル分割部２４０、全体訓練部２５０、全体深層学習モデル分割部２６０、データ分析部２７０を有する。部分深層学習モデル分割部２４０は、部分寄与度計算部２４１、部分相関関係算出部２４２、分割モデル特徴抽出部２４３を有する。全体深層学習モデル分割部２６０は、全体寄与度計算部２６１、全体相関関係算出部２６２、分割モデル再学習部２６３を有する。
【００７４】
なお、異常検知装置２００は、モデル学習の機能を含むので、これをモデル学習装置と呼んでもよい。また、異常検知装置２００は、データ分析の機能を含むので、これをデータ分析装置と呼んでもよい。
【００７５】
また、異常検知装置２００からデータ分析部２７０を除いた装置をモデル学習装置と呼んでもよい。また、異常検知装置２００からモデル学習用の機能部（部分訓練部２３０、部分深層学習モデル分割部２４０、全体訓練部２５０及び全体深層学習モデル分割部２６０）を除いた装置をデータ分析装置と呼んでもよい。この場合のデータ分析装置には、分割モデル再学習部２６３で学習されたモデルが入力され、当該モデルがデータ分析に使用される。
【００７６】
また、実施例１の異常検知装置１００（あるいは実施例１のモデル学習装置、データ分析装置）の機能と実施例２の異常検知装置２００（あるいは実施例２のモデル学習装置、データ分析装置）の機能の両方を含む異常検知装置（あるいはモデル学習装置、データ分析装置）が用いられてもよい。当該異常検知装置（あるいはモデル学習装置）においては、例えば、入力データの規模が大きすぎて全体訓練部１３０での学習でエラーが生じた場合に、部分訓練部２３０での処理に移行する、といった処理を行うことができる。
【００７７】
以下、実施例２の機能部の処理内容を説明する。
【００７８】
＜データ収集部２１０、データ前処理部２２０、部分訓練部２５０＞
データ収集部２１０、データ前処理部２２０の処理内容は基本的には実施例１のデータ収集部１１０、データ前処理部１２０の処理内容と同じである。
【００７９】
実施例２では、データ前処理部２２０は、前処理において入力次元が大規模になった場合、入力次元を恣意的に分割する。なお、この分割は部分訓練部２３０が実施してもよい。分割の仕方としてネットワーク機器やセンサの実際の位置に基づく分割やデータの種類に基づく分割などを行うことができる。
【００８０】
部分訓練部２３０は、恣意的に分割された訓練データを用いてその中での相関関係を取得するための深層学習モデルを作成する。ここで、部分訓練部２３０で用いる相関取得モデルは実施例１と同様ＡＥ（ＶＡＥ）及びその派生形の教師無し深層学習モデルを使用することができる。実施例２では訓練用データが分割されているので、部分訓練部２３０は、分割された訓練データのそれぞれのモデルの訓練を行う。よって、複数のモデルが訓練される。
【００８１】
＜部分寄与度計算部２４１、部分相関関係算出部２４２＞
部分寄与度計算部１４１、部分相関関係算出部２４２の処理内容は、実施例１で説明した寄与度計算部２４１、相関関係算出部１４２の処理内容と同じである。ただし、実施例２では、部分訓練部２３０により得られたそれぞれのモデルに対して、恣意的に分割された次元の中での相関関係を調べる。
【００８２】
図７の（ａ）に具体例が示されている。図７の（ａ）に示す例では、前処理データを恣意的に３つのグループに分解したと仮定し、部分相関関係算出部２４２で、各グループについて相関関係を取得したことが示されている。図７の（ａ）において、グループ内の同一網掛けのノードが相関関係を持つことを示している。
【００８３】
＜分割モデル特徴抽出部２４３＞
分割モデル特徴抽出部２４３の処理内容は基本的には分割モデル再学習部１４３と同様である。分割モデル特徴抽出部２４３では、恣意的に分割された各グループの中の相関関係に基づいてモデルをさらに分割して、訓練用データを用いてＡＥあるいはＶＡＥのような特徴を抽出するモデルを訓練させる。
【００８４】
図７の（ｂ）に具体例が示されている。分割モデル特徴抽出部２４３は、各グループの中で相関関係に基づいてモデル分割を行い、それぞれの相関関係の内部の特徴量を抽出するための深層学習モデルを学習する。図７の（ｂ）は、グループ１が、分割モデル１〜３等に分割され、それぞれで深層学習モデルの学習を行うことが示されている。３グループの場合、グループ２、３も同様の学習を行う。
【００８５】
＜全体訓練部２５０＞
全体訓練部２５０では、分割モデル特徴抽出部２４３で訓練されたモデルに訓練データを入力した際に得られる次元が削減された中間層から出力されるデータを、全グループの全モデル分並べたものを相関取得モデルに対する入力とする。ここでも、実施例１の全体訓練部１３０と同様、全体訓練部２５０で用いる相関取得モデルとしてＡＥ（ＶＡＥ）及びその派生形を用いることができる。
【００８６】
＜全体寄与度計算部２６１、全体相関関係算出部２６２、分割モデル再学習部２６３、データ分析部２７０＞
全体訓練部２５０で学習された深層学習モデルについても寄与度計算及び入力された中間層のデータに関する相関関係の算出をそれぞれ全体寄与度計算部２６１及び全体相関関係算出部２６２で行う。全体寄与度計算部２６１及び全体相関関係算出部２６２の処理内容自体は、実施例１の寄与度計算部２４１及び相関関係算出部２４２と同じである。
【００８７】
全体深層学習モデル分割部２６０において、入力に用いられた分割モデル特徴抽出部２４３のモデルの中間層がどの相関関係に属しているかは把握済みなので、これらの情報から入力次元全体の相関関係を把握することが可能になる。この相関関係に基づいて入力データの次元を分割し直し、実施例１と同様の分析モデル再学習及び、分析を分割モデル再学習部２６３及びデータ分析部２７０で行う。
【００８８】
例えば、恣意的に訓練データを３つのグループに分割した場合を考え、分割モデル特徴抽出部２４３により、グループ１について分割モデル１１、分割モデル１２、分割モデル１３が得られ、グループ２について分割モデル２１、分割モデル２２が得られ、グループ３について分割モデル３１、分割モデル３２、分割モデル３３、分割モデル３４が得られたとする。
【００８９】
このとき、全体訓練部２５０では、分割モデル１１、分割モデル１２、分割モデル１３分割モデル２１、分割モデル２２、分割モデル３１、分割モデル３２、分割モデル３３、及び分割モデル３４のそれぞれの各中間層からの出力データが訓練を行う相関取得モデルに対する入力となる。仮に、各中間層の出力が２次元であるとすると。当該相関取得モデルの入力次元（及び出力次元）は、１８次元になる。
【００９０】
全体相関関係算出部２６２により、例えば、１８次元のうち、第１次元と第１０次元の相関があることが分かったとする。そして、第１次元は分割モデル１１に対応する相関関係に属し、第１０次元は分割モデル３２に対応する相関関係に属するとする。また、分割モデル１１に対応する相関関係は、元の訓練データの第２次元、第５次元、第６次元であり、分割モデル３２に対応する相関関係は、元の訓練データの第４次元、第７次元、第８次元であるとする。このとき、この相関に関して、分割モデル再学習部２６２では、元の訓練データの第２次元、第４次元、第５次元、第６次元、第７次元、第８次元の分析用モデルが学習されることになる。
【００９１】
図７の（ｃ）に具体例が示されている。全グループの全モデルの中間層を横に並べて、全体訓練部２５０、全体寄与度計算部２６１、全体相関関係算出部２６２にて最終的に次元間相関関係を算出する。図７の（ｃ）の例では、グループ１、２、３の同一網掛けの中間層が相関関係をもつ（出力次元が接合している）ため、グループ１、２、３に跨って同一網掛けの次元が相関関係を持っている。
【００９２】
（処理フロー）
図９〜図１１のフローチャートを参照して、実施例１、実施例２の全体の処理の流れを説明する。以下の説明の例では、最初に実施例１の異常検知装置１００を使用し、データの規模に応じて、実施例１の異常検知装置１００を継続使用、又は、実施例２の異常検知装置２００を使用することとしている。なお、個々の機能部の処理内容については既に説明しているので、簡潔に説明している。
【００９３】
Ｓ１０１において、データ前処理部１２０により行列化されたデータを全体訓練部１３０に入力する。
【００９４】
Ｓ１０２において全体訓練部１３０が学習を行うが、データの規模が大きい場合、学習不能であることから（Ｓ１０３のＮｏ）、Ｓ２００（大規模データの相関分割（図１１））へ進む。それ以外の場合（Ｓ１０３のＹｅｓ）、Ｓ１０４（小規模データの相関分割（図１０））へ進む。最初にＳ１０４（小規模データの相関分割（図１０））へ進むほうを説明する。
【００９５】
図１０のＳ１０５において、寄与度計算部１４１は寄与度を計算する。Ｓ１０６において、相関関係算出部１４２は、相関関係を算出し、訓練データの次元を分割する。
【００９６】
Ｓ１０７において、分割モデル再学習部１４３は、分割された次元毎に分析用モデルを学習する。Ｓ１０８において、データ分析部１５０は、分割モデル再学習部１４３により学習された分析用モデルを用いて、テストデータに対する分析を実行する。
【００９７】
次に、Ｓ２００（大規模データの相関分割（図１１））へ進むほうを説明する。
【００９８】
Ｓ２０１において、データ前処理部２２０が、前処理された行列データの次元を恣意的にいくつかに分割する。Ｓ２０２において、部分訓練部２３０は、各分割データを用いて、分割されたグループ毎のモデルの学習を行う。
【００９９】
Ｓ２０３において、部分寄与度計算部２４１は、モデル毎に寄与度計算を実施する。Ｓ２０４において、部分相関関係算出部２４２は、モデル毎に相関関係を算出し、モデル毎に次元の分割を行う。Ｓ２０５において、分割モデル特徴抽出部２４３は、分割されたモデル毎にモデル再学習を行う。
【０１００】
Ｓ２０６において、全体訓練部２５０は、分割モデル特徴抽出部２４３で得られた特徴量を用いてモデル学習を行う。Ｓ２０７において、全体寄与度計算部２６１が寄与度計算を行う。Ｓ２０８において、全体相関関係算出部２６２が、相関関係を算出し、相関関係に基づいて次元の分割を行う。
【０１０１】
Ｓ２０９において、分割モデル再学習部２６３は、相関に基づき分割されたモデルの再学習を行う。Ｓ２１０において、データ分析部２７０は、分割モデル再学習部２６３により学習された分析用モデルを用いて、テストデータに対する分析を実行する。
【０１０２】
（実施の形態に係る技術の効果について）
実施例１、２を用いて説明した本実施の形態に係る技術により、データの相関関係という特性に基づいてモデルを分割することで、分析の精度を落とすことなくデータ構造変化が発生した場合の分析タスクの継続不能性という問題に対応することが可能となる。
【０１０３】
以下では異常検知のタスクを例に挙げ、その精度を落とすことなくモデルの分割が可能であることを示す。
【０１０４】
ＫＳＬ＿ＫＤＤというネットワーク侵入検知系のベンチマークデータに対してＡＥを用いた異常検知を相関関係に基づいて分割した結果を示す。図１２はＡＥを用いた相関分割の結果（一部）を示しており、各○は下側から入力、中間層、出力の各次元を表しており、入力の次元の○で同じ網掛けのものが本手法により相関関係があると判定されたものである。
【０１０５】
また相関関係の取得方法としては各層間のリンクに対する閾値決定によってリンクの切断を行いその上で出力同士が繋がっている場合に相関があるとみなしている。さらにこの相関関係に基づき異常検知のための深層学習モデルを分割し異常検知を行った結果を図１３に示す。
【０１０６】
図１３におけるＡＵＣが異常検知の精度を表しており、ＡＵＣが高い方が異常検知の精度が高い。図１３は相関関係を決定するための閾値によって異常検知精度が変わること、及びモデル分割を行うとモデル分割を行わない場合（閾値＝０）よりも精度がよくなる場合があるということを示しており、モデル分割をタスクの精度を落とさず実行できることからこの手法の有用性を表している。
【０１０７】
（実施の形態のまとめ）
本実施の形態により、少なくとも下記の各項に記載されたモデル学習装置、データ分析装置、モデル学習方法、及びプログラムが提供される。
（第１項）
訓練用データを用いて教師無の深層学習モデルの学習を行う学習手段と、
前記深層学習モデルにおける入力次元間の相関関係を算出する算出手段と、
相関関係が存在する次元の組毎に、前記訓練用データを用いて分析用モデルの学習を行う分割モデル学習手段と
を備えるモデル学習装置。
（第２項）
前記算出手段は、前記深層学習モデルにおける入力データの各次元の最終出力値に対する寄与度を算出し、当該寄与度に基づいて入力次元間の相関関係を算出する
第１項に記載のモデル学習装置。
（第３項）
第１項又は第２項に記載の前記分割モデル学習手段により学習された分析用モデルを用いてデータ分析を行うデータ分析手段を備えるデータ分析装置。
（第４項）
訓練用データの次元を複数のグループに分割し、グループ毎に、分割された訓練用データを用いて教師無の深層学習モデルの学習を行う部分学習手段と、
グループ毎に、前記深層学習モデルにおける入力次元間の相関関係を算出する算出手段と、
グループ毎に、相関関係が存在する次元の組毎に前記訓練用データを用いて分割モデルの学習を行う特徴量抽出手段と、
グループ毎の各分割モデルから得られる特徴量を用いて深層学習モデルを学習し、当該深層学習モデルにおける入力次元間の相関関係が存在する次元の組毎に、前記訓練用データを用いて分析用モデルの学習を行う学習手段と
を備えるモデル学習装置。
（第５項）
第４項に記載の前記学習手段により学習された分析用モデルを用いてデータ分析を行うデータ分析手段を備えるデータ分析装置。
（第６項）
モデル学習装置が実行するモデル学習方法であって、
訓練用データを用いて教師無の深層学習モデルの学習を行う学習ステップと、
前記深層学習モデルにおける入力次元間の相関関係を算出する算出ステップと、
相関関係が存在する次元の組毎に、前記訓練用データを用いて分析用モデルの学習を行う分割モデル学習ステップと
を備えるモデル学習方法。
（第７項）
モデル学習装置が実行するモデル学習方法であって、
訓練用データの次元を複数のグループに分割し、グループ毎に、分割された訓練用データを用いて教師無の深層学習モデルの学習を行う部分学習ステップと、
グループ毎に、前記深層学習モデルにおける入力次元間の相関関係を算出する算出ステップと、
グループ毎に、相関関係が存在する次元の組毎に前記訓練用データを用いて分割モデルの学習を行うステップと、
グループ毎の各分割モデルから得られる特徴量を用いて深層学習モデルを学習し、当該深層学習モデルにおける入力次元間の相関関係が存在する次元の組毎に、前記訓練用データを用いて分析用モデルの学習を行うステップと
を備えるモデル学習方法。
（第８項）
コンピュータを、第１項、第２項又は第４項に記載のモデル学習装置における各手段として機能させるためのプログラム。
【０１０８】
以上、本実施の形態について説明したが、本発明はかかる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【０１０９】
１００  異常検知装置
１１０  データ収集部
１２０  データ前処理部
１３０  全体訓練部
１４０  深層学習モデル分割部
１４１  寄与度計算部
１４２  相関関係算出部
１４３  分割モデル再学習部
１５０  データ分析部
２００  異常検知装置
２１０  データ収集部
２２０  データ前処理部
２３０  部分訓練部
２４０  部分深層学習モデル分割部
２４１  部分寄与度計算部
２４２  部分相関関係算出部
２４３  分割モデル特徴抽出部
２５０  全体訓練部
２６０  全体深層学習モデル分割部
２６１  全体寄与度計算部
２６２  全体相関関係算出部
２６３  分割モデル再学習部
２７０  データ分析部
１０００  ドライブ装置
１００２  補助記憶装置
１００３  メモリ装置
１００４  ＣＰＵ
１００５  インタフェース装置
１００６  表示装置
１００７  入力装置
【図１】
2020177290.tif 000014
【図２】
2020177290.tif 000015
【図３】
2020177290.tif 000016
【図４】
2020177290.tif 000017
【図５】
2020177290.tif 000018
【図６】
2020177290.tif 000019
【図７】
2020177290.tif 000020
【図８】
2020177290.tif 000021
【図９】
2020177290.tif 000022
【図１０】
2020177290.tif 000023
【図１１】
2020177290.tif 000024
【図１２】
2020177290.tif 000025
【図１３】
2020177290.tif 000026