(57)【要約】【課題】大規模、複雑かつ偏りのあるデータを用いて異常を検知する。【解決手段】取得部１５ａが、センサが出力するデータを取得し、学習部１５ｂが、ガウス分布に従うエンコーダとデコーダとを含んでデータの確率分布を表す生成モデルにおいて、該デコーダの分散パラメータがガンマ分布に従うものとし、さらに、分散パラメータを積分消去して、データを用いて生成モデルを学習し、検知部１５ｃが、学習された生成モデルを用いてデータの確率分布を推定し、新たに取得されたデータの推定される発生確率が所定の閾値より低い場合に異常として検知する。【選択図】図４
2019040423.tif 000002
【特許請求の範囲】
【請求項１】
センサが出力するデータを取得する取得部と、
ガウス分布に従うエンコーダとデコーダとを含んで前記データの確率分布を表す生成モデルにおいて、該デコーダの分散パラメータがガンマ分布に従うものとして、前記データを用いて該生成モデルを学習する学習部と、
学習された生成モデルを用いて前記データの確率分布を推定し、新たに取得された前記データの推定される発生確率が所定の閾値より低い場合に異常として検知する検知部と、
を備えることを特徴とする検知装置。
【請求項２】
前記学習部は、さらに、前記分散パラメータを積分消去することを特徴とする請求項１に記載の検知装置。
【請求項３】
前記検知部は、異常を検知した場合に、警報を出力することを特徴とする請求項１または２に記載の検知装置。
【請求項４】
検知装置で実行される検知方法であって、
センサが出力するデータを取得する取得工程と、
ガウス分布に従うエンコーダとデコーダとを含んで前記データの確率分布を表す生成モデルにおいて、該デコーダの分散パラメータがガンマ分布に従うものとして、前記データを用いて該生成モデルを学習する学習工程と、
学習された生成モデルを用いて前記データの確率分布を推定し、新たに取得された前記データの推定される発生確率が所定の閾値より低い場合に異常として検知する検知工程と、
を含んだことを特徴とする検知方法。
【請求項５】
センサが出力するデータを取得する取得ステップと、
ガウス分布に従うエンコーダとデコーダとを含んで前記データの確率分布を表す生成モデルにおいて、該デコーダの分散パラメータがガンマ分布に従うものとして、前記データを用いて該生成モデルを学習する学習ステップと、
学習された生成モデルを用いて前記データの確率分布を推定し、新たに取得された前記データの推定される発生確率が所定の閾値より低い場合に異常として検知する検知ステップと、
をコンピュータに実行させるための検知プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、検知装置、検知方法および検知プログラムに関する。
【背景技術】
【０００２】
近年、車やエアコン等の様々な物をインターネットに接続するいわゆるＩｏＴの普及に伴い、物に取り付けられたセンサから大規模かつ複雑なセンサデータが生成されている。そこで、このセンサデータを用いて物の異常や故障を事前に検知する技術が注目されている。
【０００３】
例えば、機械学習を用いてセンサデータが示す異常値を検出して、物に異常や故障が発生する前触れを検知することができる。すなわち、機械学習によりデータの確率分布を推定する生成モデルを作成し、発生する確率が高いデータを正常、発生する確率が低いデータを異常と定義して異常を検知している。
【０００４】
また、大規模かつ複雑なデータの確率分布を推定する技術として、多層のニューラルネットワークを用いた深層学習（Deep  Learning）における生成モデルであるＶＡＥ（Variational  AutoEncoder）が知られている（非特許文献１参照）。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】Diederik  P．Kingma、Max  Welling、“Auto-Encoding  Variational  Bayes”、[online]、2014年5月、［２０１７年８月３日検索]、インターネット＜URL:https://arxiv.org/abs/1312.6114＞
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来の機械学習の生成モデルでは、ＩｏＴのセンサデータのような大規模かつ複雑なデータを取り扱うことが困難であった。また、センサデータのように値の分散が小さく偏りのあるデータの生成モデルにＶＡＥを適用すれば、学習が不安定になり、確率分布の推定の精度が低下するおそれがあった。
【０００７】
本発明は、上記に鑑みてなされたものであって、大規模、複雑かつ偏りのあるデータを用いて異常を検知することを目的とする。
【課題を解決するための手段】
【０００８】
上述した課題を解決し、目的を達成するために、本発明に係る検知装置は、センサが出力するデータを取得する取得部と、ガウス分布に従うエンコーダとデコーダとを含んで前記データの確率分布を表す生成モデルにおいて、該デコーダの分散パラメータがガンマ分布に従うものとして、前記データを用いて該生成モデルを学習する学習部と、学習された生成モデルを用いて前記データの確率分布を推定し、新たに取得された前記データの推定される発生確率が所定の閾値より低い場合に異常として検知する検知部と、を備えることを特徴とする。
【発明の効果】
【０００９】
本発明によれば、大規模、複雑かつ偏りのあるデータを用いて異常を検知することができる。
【図面の簡単な説明】
【００１０】
【図１】図１は、検知装置の概要について説明するための説明図である。
【図２】図２は、検知装置の概要について説明するための説明図である。
【図３】図３は、検知装置の概要について説明するための説明図である。
【図４】図４は、検知装置の概略構成を例示する模式図である。
【図５】図５は、学習部の処理を説明するための説明図である。
【図６】図６は、学習部の処理を説明するための説明図である。
【図７】図７は、検知部の処理を説明するための説明図である。
【図８】図８は、検知処理手順を示すフローチャートである。
【図９】図９は、検知プログラムを実行するコンピュータを例示する図である。
【発明を実施するための形態】
【００１１】
以下、図面を参照して、本発明の一実施形態を詳細に説明する。なお、この実施形態により本発明が限定されるものではない。また、図面の記載において、同一部分には同一の符号を付して示している。
【００１２】
［検知装置の概要］
本実施形態の検知装置は、ＶＡＥをベースにした生成モデルを作成してＩｏＴのセンサデータの異常を検知する。ここで、ＶＡＥは、エンコーダおよびデコーダと呼ばれる２つの条件付き確率分布で構成される。エンコーダは、元のデータを符号化して、次元数を減らす等、表現を変換する。デコーダは、エンコーダで符号化されたデータを復号化して元のデータを再現する。元のデータが連続値の場合、一般に、エンコーダおよびデコーダにガウス分布が適用される。
【００１３】
また、ＶＡＥの生成モデルは、デコーダの再現率を表す尤度に対応する対数尤度を最大にするように、エンコーダおよびデコーダのパラメータを決定することにより、作成される。これらのパラメータ（分散パラメータおよび平均パラメータ）は、対数尤度の下限を表す変分下限が最大となる場合において決定される。言い換えれば、ＶＡＥの学習においては、変分下限にマイナス１を乗じた損失関数の平均値を最小化するように、エンコーダおよびデコーダのパラメータが決定される。
【００１４】
図１〜図３は、本実施形態の検知装置の概要について説明するための説明図である。図１には、偏りのあるデータの一例として、ＫＤＤ  Ｃｕｐ９９  Ｄａｔａのサブセットである３次元のＳＭＴＰデータセットが例示されている。図１に示す例では、ｄｉｍ３について、値が４の周辺に偏っている。また、図２には、ＶＡＥについてのエポック数すなわち勾配降下法の反復数と、損失関数の平均値との関係が例示されている。また、図３には、デコーダの分散パラメータと、反復数の増加に伴う損失関数の値の変化との関係が例示されている。なお、図３には、反復数が９８１〜９８３の場合について例示されている。また、図３のグラフにおいて、横軸は分散パラメータのｌｏｇスケールの最小値を表し、縦軸は１反復後の損失関数値と現在の損失関数値との差を表す。
【００１５】
ＶＡＥについて、一部のセンサが発生する、値の分散が小さく偏りのある図１に例示されるようなデータを用いて学習した場合に、デコーダのガウス分布の分散パラメータとして推定される値が非常に小さくなる。
【００１６】
そうすると、図２に示すように、デコーダによって再現されたデータが元のデータから少しズレただけで、ＶＡＥの学習誤差が発散して学習が不安定化する。すなわち、本来ならばエポック数が増加するほど損失関数の平均値が最小値に収束するところ、図２に示す例では、損失関数の平均値が発散している。
【００１７】
また、図３に示すように、分散パラメータが小さくなるほど損失関数が不安定に変化する。すなわち、図３に示す例では、横軸の値が小さくなるほど、反復数が１回増えた場合の損失関数の値の変化が大きくなっている。
【００１８】
そこで、本実施形態の検知装置では、デコーダの分散パラメータの過小推定を回避するため、分散パラメータがガンマ分布に従うものと仮定する。さらに、検知装置は、分散パラメータの積分消去を行う。すなわち、本実施形態の検知装置では、後述するように、デコーダとして、平均パラメータが同一かつ分散パラメータが異なる無数のガウス分布を混合した確率分布であるｓｔｕｄｅｎｔのｔ分布を適用する。これにより、検知装置は、デコーダの分散パラメータの過小推定を回避して大規模、複雑かつ偏りのあるデータの生成モデルを学習し、データの異常を検知することが可能となる。
【００１９】
［検知装置の構成］
図４は、検知装置の概略構成を例示する模式図である。図４に例示するように、検知装置１０は、パソコン等の汎用コンピュータで実現され、入力部１１、出力部１２、通信制御部１３、記憶部１４、および制御部１５を備える。
【００２０】
入力部１１は、キーボードやマウス等の入力デバイスを用いて実現され、操作者による入力操作に対応して、制御部１５に対して処理開始などの各種指示情報を入力する。出力部１２は、液晶ディスプレイなどの表示装置、プリンター等の印刷装置等によって実現される。
【００２１】
通信制御部１３は、ＮＩＣ（Network  Interface  Card）等で実現され、ネットワーク３を介したサーバ等の外部の装置と制御部１５との通信を制御する。
【００２２】
記憶部１４は、ＲＡＭ（Random  Access  Memory）、フラッシュメモリ（Flash  Memory）等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現され、後述する検知処理により学習されたデータの生成モデルのパラメータ等が記憶される。なお、記憶部１４は、通信制御部１３を介して制御部１５と通信する構成でもよい。
【００２３】
制御部１５は、ＣＰＵ（Central  Processing  Unit）等を用いて実現され、メモリに記憶された処理プログラムを実行する。これにより、制御部１５は、図４に例示するように、取得部１５ａ、学習部１５ｂおよび検知部１５ｃとして機能する。なお、これらの機能部は、異なるハードウェアに実装されてもよい。
【００２４】
取得部１５ａは、センサが出力するデータを取得する。例えば、取得部１５ａは、ＩｏＴ機器に取り付けられたセンサが出力する速度や温度等のセンサデータを、通信制御部１３を介して取得する。
【００２５】
学習部１５ｂは、ガウス分布に従うエンコーダとデコーダとを含んでデータの確率分布を表す生成モデルにおいて、該デコーダの分散パラメータがガンマ分布に従うものとして、データを用いて生成モデルを学習する。
【００２６】
具体的には、学習部１５ｂは、データが発生する確率分布を表す生成モデルを、ガウス分布に従うエンコーダとデコーダとを含むＶＡＥをベースに作成する。その際、学習部１５ｂは、デコーダの分散パラメータがガンマ分布に従うものと仮定する。これは、学習部１５ｂが、ＭＡＰ（Maximum  A  Posteriori、事後確率最大化）推定を行うことを意味する。
【００２７】
さらに、学習部１５ｂは、分散パラメータを積分消去する。具体的には、学習部１５ｂは、デコーダとして、平均パラメータが同一かつ分散パラメータが異なる無数のガウス分布を混合した確率分布であるｓｔｕｄｅｎｔのｔ分布を適用する。ｓｔｕｄｅｎｔのｔ分布Ｓｔは、次式（１）により導出される。
【００２８】
【数１】
2019040423.tif 000003
【００２９】
図５および図６は、学習部１５ｂの処理を説明するための説明図である。図５には、本実施形態の生成モデルおよび従来の生成モデルの作成手法における、時間（ｓ）と損失関数の平均値との関係が例示されている。図５において、Ｇａｕｓｓｉａｎ（ガウス分布）は、従来のＶＡＥを表す。ＭＡＰ（ｂ＝１）は、デコーダの分散パラメータがガンマ分布に従うものとしたＭＡＰ推定により生成モデルを作成する手法であり、上記式（１）のパラメータａ＝１、ｂ＝１とした場合を表す。また、ＭＡＰ（ｂ＝０．００１）は、上記式（１）のパラメータａ＝１、ｂ＝０．００１としたＭＡＰ推定による生成モデルの作成手法を表す。Ｓｔｕｄｅｎｔ−ｔは、上記式（１）に示したｔ分布を適用した生成モデルの作成手法を表す。
【００３０】
図５に示すように、従来のＶＡＥと比較して、デコーダの分散パラメータがガンマ分布に従うとした本実施形態の学習部１５ｂによるＭＡＰ推定により、損失関数の平均値がより小さい値に収束しており、学習が安定化することがわかる。また、デコーダがｔ分布に従うものとする本実施形態の学習部１５ｂによれば、さらに損失関数の平均値が小さい値に収束し、学習が安定化することがわかる。
【００３１】
また、図６には、上記の各手法で学習された生成モデルの対数尤度が例示されている。対数尤度は、各生成モデルの精度評価の尺度であり、値が大きいほど精度が高いことを表す。図６に示す例では、前述のＳＭＴＰデータセットの他、Ａｌｏｉ（Amsterdam  library  of  object  images）、Ａｎｎ−Ｔｈｙｒｏｉｄ、Ｂｒｅａｓｔ−Ｃａｎｃｅｒ、Ｓａｔｅｌｌｉｔｅの各種のデータセットを用いて、対数尤度が算出されている。
【００３２】
図６に示すように、いずれのデータセットを用いた場合にも、従来のＶＡＥ（Ｇａｕｓｓｉａｎ）と比較して、ｔ分布を適用した本実施形態の手法（Ｓｔｕｄｅｎｔ−ｔ）により、対数尤度の値が大きくなり精度が向上していることがわかる。
【００３３】
なお、Ｂｒｅａｓｔ−Ｃａｎｃｅｒデータセットを用いた場合およびＳａｔｅｌｌｉｔｅデータセットを用いた場合には、Ｇａｕｓｓｉａｎ、ＭＡＰ（ｂ＝０．００１）、Ｓｔｕｄｅｎｔ−ｔのいずれの手法でも、対数尤度の値が統計的な有意差がない最高値を示し、高い精度が維持されていることがわかる。このように、本実施形態の学習部１５ｂにより、安定して効率的な学習が可能となり、高精度に生成モデルを作成できる。
【００３４】
検知部１５ｃは、学習された生成モデルを用いてデータの確率分布を推定し、新たに取得されたデータの推定される発生確率が所定の閾値より低い場合に異常として検知する。例えば、図７は、検知部１５ｃの処理を説明するための説明図である。図７に例示するように、検知装置１０では、車等のモノに取り付けられた速度、回転数、走行距離等のセンサのデータを取得部１５ａが取得して、学習部１５ｂがデータの確率分布を表す生成モデルを作成する。
【００３５】
また、検知部１５ｃが、作成された生成モデルを用いてデータ発生の確率分布を推定する。そして、検知部１５ｃは、新たに取得部１５ａが取得したデータの推定される発生確率が、所定の閾値以上の場合には正常、所定の閾値より低い場合には異常と判定する。検知部１５ｃは異常を検知した場合に、警報を出力する。例えば、出力部１２あるいは通信制御部１３を介して管理装置等に、異常検知の旨のメッセージやアラームを出力する。
【００３６】
［検知処理］
次に、図８を参照して、本実施形態に係る検知装置１０による検知処理について説明する。図８は、検知処理手順を示すフローチャートである。図８のフローチャートは、例えば、検知処理の開始を指示する操作入力があったタイミングで開始される。
【００３７】
まず、取得部１５ａが、車等のモノに取り付けられた速度、回転数、走行距離等のセンサのデータを取得する（ステップＳ１）。次に、学習部１５ｂが、取得されたデータを用いて、データの確率分布を表す生成モデルを学習する（ステップＳ２）。
【００３８】
その際、学習部１５ｂは、ガウス分布に従うエンコーダとデコーダとを含んでデータの確率分布を表す生成モデルにおいて、該デコーダの分散パラメータがガンマ分布に従うものとして、データを用いて生成モデルを学習する。さらに、学習部１５ｂは、分散パラメータを積分消去する。
【００３９】
次に、検知部１５ｃが、作成された生成モデルを用いてデータ発生の確率分布を推定する（ステップＳ３）。また、検知部１５ｃは、新たに取得部１５ａが取得したデータの推定される発生確率が所定の閾値より低い場合に、異常として検知する（ステップＳ４）。検知部１５ｃは異常を検知した場合に、警報を出力する。これにより、一連の検知処理が終了する。
【００４０】
以上、説明したように、本実施形態の検知装置１０において、取得部１５ａが、センサが出力するデータを取得する。また、学習部１５ｂが、ガウス分布に従うエンコーダとデコーダとを含んでデータの確率分布を表す生成モデルにおいて、該デコーダの分散パラメータがガンマ分布に従うものとして、データを用いて生成モデルを学習する。検知部１５ｃは、学習された生成モデルを用いてデータの確率分布を推定し、新たに取得されたデータの推定される発生確率が所定の閾値より低い場合に異常として検知する。
【００４１】
これにより、検知装置１０は、ＩｏＴ機器のセンサデータのように大規模、複雑かつ偏りのあるデータの生成モデルを、デコーダの分散パラメータの過小推定を回避し、安定して効率よく（ロバストに）学習し、データの異常を検知することが可能となる。
【００４２】
なお、本実施形態の検知装置１０は、従来のＶＡＥをベースとしたものに限定されない。すなわち、学習部１５ｂの処理は、ＶＡＥの特殊なケースであるＡＥ（Auto  Encoder）をベースとしてもよいし、エンコーダおよびデコーダがガウス分布以外の確率分布に従うものとしてもよい。
【００４３】
［プログラム］
上記実施形態に係る検知装置１０が実行する処理をコンピュータが実行可能な言語で記述したプログラムを作成することもできる。一実施形態として、検知装置１０は、パッケージソフトウェアやオンラインソフトウェアとして上記の検知処理を実行する検知プログラムを所望のコンピュータにインストールさせることによって実装できる。例えば、上記の検知プログラムを情報処理装置に実行させることにより、情報処理装置を検知装置１０として機能させることができる。ここで言う情報処理装置には、デスクトップ型またはノート型のパーソナルコンピュータが含まれる。また、その他にも、情報処理装置にはスマートフォン、携帯電話機やＰＨＳ（Personal  Handyphone  System）などの移動体通信端末、さらには、ＰＤＡ（Personal  Digital  Assistants）などのスレート端末などがその範疇に含まれる。
【００４４】
また、検知装置１０は、ユーザが使用する端末装置をクライアントとし、当該クライアントに上記の検知処理に関するサービスを提供するサーバ装置として実装することもできる。例えば、検知装置１０は、ＩｏＴ機器のセンサのデータを入力とし、異常を検知した場合に検知結果を出力する検知処理サービスを提供するサーバ装置として実装される。この場合、検知装置１０は、Ｗｅｂサーバとして実装することとしてもよいし、アウトソーシングによって上記の検知処理に関するサービスを提供するクラウドとして実装することとしてもかまわない。以下に、検知装置１０と同様の機能を実現する検知プログラムを実行するコンピュータの一例を説明する。
【００４５】
図９は、検知プログラムを実行するコンピュータを例示する図である。コンピュータ１０００は、例えば、メモリ１０１０と、ＣＰＵ１０２０と、ハードディスクドライブインタフェース１０３０と、ディスクドライブインタフェース１０４０と、シリアルポートインタフェース１０５０と、ビデオアダプタ１０６０と、ネットワークインタフェース１０７０とを有する。これらの各部は、バス１０８０によって接続される。
【００４６】
メモリ１０１０は、ＲＯＭ（Read  Only  Memory）１０１１およびＲＡＭ１０１２を含む。ＲＯＭ１０１１は、例えば、ＢＩＯＳ（Basic  Input  Output  System）等のブートプログラムを記憶する。ハードディスクドライブインタフェース１０３０は、ハードディスクドライブ１０３１に接続される。ディスクドライブインタフェース１０４０は、ディスクドライブ１０４１に接続される。ディスクドライブ１０４１には、例えば、磁気ディスクや光ディスク等の着脱可能な記憶媒体が挿入される。シリアルポートインタフェース１０５０には、例えば、マウス１０５１およびキーボード１０５２が接続される。ビデオアダプタ１０６０には、例えば、ディスプレイ１０６１が接続される。
【００４７】
ここで、ハードディスクドライブ１０３１は、例えば、ＯＳ１０９１、アプリケーションプログラム１０９２、プログラムモジュール１０９３およびプログラムデータ１０９４を記憶する。上記実施形態で説明した各テーブルは、例えばハードディスクドライブ１０３１やメモリ１０１０に記憶される。
【００４８】
また、検知プログラムは、例えば、コンピュータ１０００によって実行される指令が記述されたプログラムモジュール１０９３として、ハードディスクドライブ１０３１に記憶される。具体的には、上記実施形態で説明した検知装置１０が実行する各処理が記述されたプログラムモジュール１０９３が、ハードディスクドライブ１０３１に記憶される。
【００４９】
また、検知プログラムによる情報処理に用いられるデータは、プログラムデータ１０９４として、例えば、ハードディスクドライブ１０３１に記憶される。そして、ＣＰＵ１０２０が、ハードディスクドライブ１０３１に記憶されたプログラムモジュール１０９３やプログラムデータ１０９４を必要に応じてＲＡＭ１０１２に読み出して、上述した各手順を実行する。
【００５０】
なお、検知プログラムに係るプログラムモジュール１０９３やプログラムデータ１０９４は、ハードディスクドライブ１０３１に記憶される場合に限られず、例えば、着脱可能な記憶媒体に記憶されて、ディスクドライブ１０４１等を介してＣＰＵ１０２０によって読み出されてもよい。あるいは、検知プログラムに係るプログラムモジュール１０９３やプログラムデータ１０９４は、ＬＡＮ（Local  Area  Network）やＷＡＮ（Wide  Area  Network）等のネットワークを介して接続された他のコンピュータに記憶され、ネットワークインタフェース１０７０を介してＣＰＵ１０２０によって読み出されてもよい。
【００５１】
以上、本発明者によってなされた発明を適用した実施形態について説明したが、本実施形態による本発明の開示の一部をなす記述および図面により本発明は限定されることはない。すなわち、本実施形態に基づいて当業者等によりなされる他の実施形態、実施例および運用技術等は全て本発明の範疇に含まれる。
【符号の説明】
【００５２】
１０  検知装置
１１  入力部
１２  出力部
１３  通信制御部
１４  記憶部
１５  制御部
１５ａ  取得部
１５ｂ  学習部
１５ｃ  検知部
【図１】
2019040423.tif 000004
【図２】
2019040423.tif 000005
【図３】
2019040423.tif 000006
【図４】
2019040423.tif 000007
【図５】
2019040423.tif 000008
【図６】
2019040423.tif 000009
【図７】
2019040423.tif 000010
【図８】
2019040423.tif 000011
【図９】
2019040423.tif 000012