(57)【要約】 【課題】異常検知モデルを最適化して異常検知の判定精度を向上する。【解決手段】異常検知装置は、時系列に入力される複数のセンサデータに基づいて、センサデータの異常を検知するための複数の候補モデルを複数の手法で生成するモデル生成部と、複数の候補モデルの判定精度を算出する精度算出部と、複数の候補モデルの判定精度に基づいて、複数の候補モデルの中から一つ以上の候補モデルを選択して異常検知モデルを生成するモデル選択部と、異常検知モデルに基づいて、新たなセンサデータが正常か異常かを判別するデータ分類部と、精度算出部で算出された複数の候補モデルの判定精度と、データ分類部にて正常か異常かが判別された新たなセンサデータと、に基づいて、複数の候補モデルを更新するモデル更新部と、を備える。【選択図】図１
2020064367.tif 000002
【特許請求の範囲】
【請求項１】
時系列に入力される複数のセンサデータに基づいて、前記センサデータの異常を検知するための複数の候補モデルを複数の手法で生成するモデル生成部と、
前記複数の候補モデルの判定精度を算出する精度算出部と、
前記複数の候補モデルの判定精度に基づいて、前記複数の候補モデルの中から一つ以上の候補モデルを選択して異常検知モデルを生成するモデル選択部と、
前記異常検知モデルに基づいて、新たなセンサデータが正常か異常かを判別するデータ分類部と、
前記精度算出部で算出された前記複数の候補モデルの判定精度と、前記データ分類部にて正常か異常かが判別された前記新たなセンサデータと、に基づいて、前記複数の候補モデルを更新するモデル更新部と、を備える、異常検知装置。
【請求項２】
前記モデル選択部は、
前記データ分類部で正常と判別されたセンサデータに基づいて生成された前記複数の候補モデルを含む第１候補モデル群と、前記データ分類部で正常又は異常と判別されたセンサデータに基づいて生成された前記複数の候補モデルを含む第２候補モデル群と、のいずれか一方の候補モデル群を選択する候補モデル群選択部と、
前記候補モデル群選択部にて選択された前記第１候補モデル群又は前記第２候補モデル群から、１以上の候補モデルを含む適用モデル群を選択する適用モデル群選択部と、
前記適用モデル群に基づいて生成された適用モデルを前記異常検知モデルとする適用モデル生成部と、を有する、請求項１に記載の異常検知装置。
【請求項３】
前記候補モデル群選択部は、前記第１候補モデル群内の前記複数の候補モデルの判定精度と、前記第２候補モデル群内の前記複数の候補モデルの判定精度と、に基づいて、前記第１候補モデル群と前記第２候補モデル群とのいずれか一方を選択し、
前記適用モデル群選択部は、前記候補モデル群選択部にて選択された前記第１候補モデル群又は前記第２候補モデル群内の前記複数の候補モデルの判定精度に基づいて、前記適用モデル群を選択する、請求項２に記載の異常検知装置。
【請求項４】
前記候補モデル群を前記候補モデル群選択部にて自動で選択するか、操作者が手動で前記候補モデル群を選択するか指示する第１指示部と、
前記適用モデル群を前記適用モデル群選択部にて自動で選択するか、操作者が手動で前記適用モデル群を選択するかを指示する第２指示部と、
前記第１指示部にて、操作者が手動で前記候補モデル群を選択すると指示された場合に、現時点の候補モデル群に含まれる候補モデルの選択と、過去の候補モデル群に含まれる候補モデルの選択とを指示する第３指示部と、
前記第１、第２及び第３指示部による指示が終わった後に、前記適用モデルの学習を指示する第４指示部と、
正常なセンサデータの波形を可視化する第１可視化部と、
異常なセンサデータの波形を可視化する第２可視化部と、を備える、請求項２又は３に記載の異常検知装置。
【請求項５】
前記複数の候補モデルの判定精度を示す数値がいずれも所定値以下に低下したか否かを判定する初期化判定部と、
前記複数の候補モデルの判定精度を示す数値がいずれも前記所定値以下に低下したと判定された場合に、前記異常検知モデルを初期化する候補モデル初期化部と、を新たに備える、請求項１乃至４のいずれか一項に記載の異常検知装置。
【請求項６】
前記複数のセンサデータを、一つ以上の特徴的なデータグループに分類するグループ化部と、
前記グループ化部で分類された各データグループごとに、候補モデルを生成するのに最適な手法を選択する手法選択部と、
前記グループ化部で分類された各データグループごとに、前記手法選択部で選択された手法にて生成された前記候補モデルの評価値を算出するグループ評価部と、を新たに備え、
前記モデル生成部は、前記グループ化部で分類された各データグループごとに、前記手法選択部で選択された手法にて前記候補モデルを生成し、
前記手法選択部は、前記グループ化部で分類された各データグループごとに、前記グループ評価部で算出された前記評価値に基づいて前記手法を選択し、
前記モデル更新部は、前記グループ評価部で算出された前記評価値に基づいて前記手法選択部が選択し直した前記手法を用いて、前記候補モデルを更新し、
前記モデル選択部は、前記グループ化部で分類された各データグループごとに、前記モデル更新部で更新された前記候補モデルに基づいて前記異常検知モデルを生成する、請求項１に記載の異常検知装置。
【請求項７】
前記手法選択部は、前記グループ化部で分類された各データグループに前記複数の手法をそれぞれ適用して前記候補モデルを生成した場合の適応度が最大になるように、遺伝的アルゴリズムを利用して前記最適な手法を選択する、請求項６に記載の異常検知装置。
【請求項８】
前記グループ評価部は、
すべてのセンサデータをグループ化するか、一部のセンサデータをグループ化するかを選択する第１選択部と、
前記第１選択部で選択されたデータグループに供給されるセンサデータを可視化する第１可視化部と、
前記グループ化部で分類される各データグループごとに、候補モデルを生成するための手法を選択する第２選択部と、
前記グループ化部で分類される各データグループごとに、前記第２選択部で選択された手法で生成された候補モデルを可視化する第２可視化部と、
グループ化を終了するか否かを選択する第３選択部と、
サブグループ化を行うか否かを選択する第４選択部と、
サブグループ化を行う場合に、サブグループ化を行うデータグループの識別番号を入力するグループＩＤ入力部と、を備える請求項６又は７に記載の異常検知装置。
【請求項９】
時系列に入力される前記複数のセンサデータに対する前処理を行う前処理部を備え、
前記モデル生成部は、前記前処理を行った後の前記複数のセンサデータに基づいて、前記複数の候補モデルを生成し、
前記データ分類部は、前記前処理部で前処理を行った後の前記複数のセンサデータが正常か異常かを判別する、請求項１乃至８のいずれか一項に記載の異常検知装置。
【請求項１０】
前記モデル更新部は、専門家の知見により正常か異常かが判別された前記新たなセンサデータと、専門家の知見に加えて前記異常検知モデルに基づいて正常か異常かが判別された前記新たなセンサデータと、の少なくとも一方に基づいて、前記複数の候補モデルを更新する、請求項１乃至９のいずれか一項に記載の異常検知装置。
【請求項１１】
時系列に入力される複数のセンサデータに基づいて、前記センサデータの異常を検知するための複数の候補モデルを複数の手法で生成し、
前記複数の候補モデルの判定精度を算出し、
前記複数の候補モデルの判定精度に基づいて、前記複数の候補モデルの中から一つ以上の候補モデルを選択して異常検知モデルを生成し、
前記異常検知モデルに基づいて、新たなセンサデータが正常か異常かを判別し、
前記算出された前記複数の候補モデルの判定精度と、正常か異常かが判別された前記新たなセンサデータと、に基づいて、前記複数の候補モデルを更新する処理をコンピュータに実行させる、異常検知方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、異常検知装置及び異常検知方法に関する。
【背景技術】
【０００２】
製造工場やプラントでは、製品の品質あるいは製造工程を様々な装置に設置した様々な種類のセンサにより監視していることが多い。これらのセンサは、大量の正常データと少量の異常データからなる大量の時系列の波形データあるいは表データを生成する。製造工場やプラントの歩留まり向上、製品の品質向上、製造工場やプラントのオペレーションの信頼度向上、適切な保守計画を支援するためには、大量のデータからの異常検出が非常に重要である。
【０００３】
製造工場やプラントでのセンサデータに基づいて異常検知モデルを生成し、生成した異常検知モデルに基づいて、新たに取得されたセンサデータが正常か異常かを判別する異常検知装置が提案されている。
【０００４】
しかしながら、異常検知モデルを生成するには、種々の手法があり、各手法ごとに異なるモデルが生成されるため、最適なモデルを選択するのが容易ではない。また、異常データは時間の経過とともに増える傾向にあるため、正常データの割合が多い初期状態で生成した異常検知モデルを継続的に使用することが望ましいとは限らない。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１６−２００９７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明が解決しようとする課題は、異常検知モデルを最適化して異常検知の判定精度を向上可能な異常検知装置及び異常検知方法を提供することである。
【課題を解決するための手段】
【０００７】
本実施形態によれば、時系列に入力される複数のセンサデータに基づいて、前記センサデータの異常を検知するための複数の候補モデルを複数の手法で生成するモデル生成部と、
前記複数の候補モデルの判定精度を算出する精度算出部と、
前記複数の候補モデルの判定精度に基づいて、前記複数の候補モデルの中から一つ以上の候補モデルを選択して異常検知モデルを生成するモデル選択部と、
前記異常検知モデルに基づいて、新たなセンサデータが正常か異常かを判別するデータ分類部と、
前記精度算出部で算出された前記複数の候補モデルの判定精度と、前記データ分類部にて正常か異常かが判別された前記新たなセンサデータと、に基づいて、前記複数の候補モデルを更新するモデル更新部と、を備える、異常検知装置が提供される。
【図面の簡単な説明】
【０００８】
【図１】第１の実施形態による異常検知装置のブロック図。
【図２】第１の実施形態による異常検知装置が異常検知モデルを生成する一具体例を示す図。
【図３】第１の実施形態による異常検知装置の処理動作を示すフローチャート。
【図４】第２の実施形態による異常検知装置の概略構成を示すブロック図。
【図５】第２の実施形態による異常検知装置が異常検知モデルを生成する一具体例を示す図。
【図６】第２の実施形態による異常検知装置の処理動作を示すフローチャート。
【図７】ユーザが各種の選択及び可視化を行うＧＵＩ画面の一例を示す図。
【図８】第３の実施形態による異常検知装置の概略構成を示すブロック図。
【図９】正常データを３つの特徴的なデータグループに分ける例を示す図。
【図１０】第３の実施形態におけるグループ化部と手法選択部の処理動作を示すフローチャート。
【図１１】第３の実施形態による異常検知装置が行うグループ化の意義を模式的に説明する図。
【図１２】遺伝的アルゴリズムを用いて正常データをグループ化する例を示す図。
【図１３】図１２の各データグループに手法を割り当てるのに用いる遺伝的アルゴリズムの処理手順を説明する図。
【図１４】（ａ）は手法リスト、（ｂ）はセンサデータリスト、（ｃ）は初期の候補モデル群を示す図。
【図１５】（ａ）は複数の候補モデル群についての直前の候補解のリストを示す図、（ｂ）は交叉と突然変異を適用して得られた候補解のリストを示す図。
【図１６】データグループの評価のためのＧＵＩ画面の一例を示す図。
【発明を実施するための形態】
【０００９】
以下、図面を参照して本発明の実施形態を説明する。以下の実施形態では、異常検知装置内の特徴的な構成および動作を主に説明するが、異常検知装置には以下の説明で省略した構成および動作が存在しうる。
【００１０】
（第１の実施形態）
図１は第１の実施形態による異常検知装置１のブロック図である。図１の異常検知装置１は、前処理部２と、モデル群学習／更新部３と、モデル選択部４と、データ分類部５とを備えている。この他、図１の異常検知装置１は、製造工場やプラント等に設置された種々のセンサで検知されたセンサデータを格納するセンサデータ保持部６を備えていてもよい。なお、センサデータ保持部６は必須の構成部ではなく、種々のセンサからのセンサデータをリアルタイムで図１の異常検知装置１に取り込んでもよい。
【００１１】
センサデータは、各センサが増分的に生成する時系列波形データあるいは時系列波形データを統計値に変換した表データを含んでいてもよい。センサデータは異常検知モデルを学習するのに利用する教師データと、未知の異常を検知するのに利用するテストデータとを含んでいる。教師データは、各センサの正常データと異常データの少なくとも一方を含んでいる。教師データは一種類のセンサの正常データと異常データだけでなく、複数種類のセンサの正常データと異常データの少なくとも一方を含んでいてもよい。また、各センサデータは、教師データであるか、テストデータであるかを識別するフラグを保持していてもよい。さらに、センサデータは各センサデータのため前処理が必要かどうかを示すフラグも保持していてもよい。
【００１２】
図１の前処理部２は、必須の構成部ではないが、以下では、図１の異常検知装置１が前処理部２を備える例を説明する。前処理部２はセンサデータの前処理を行う。センサデータが時系列波形データの場合、前処理として時系列波形データの長さを調整する必要が生じる場合がある。この場合、前処理部２は、各時系列波形データの時間長を等しくする。あるいは、前処理部２は、時系列波形データを平滑化してもよい。平滑化手法としてローパスフィルタ、ハイパスフィルタ、カーネル密度推定などを適用してもよい。また、異常検知モデルが時系列波形データを処理できない場合は、前処理部２は時系列波形データから特徴を抽出する処理を行ってもよい。時系列波形データから抽出される特徴とは、統計値である。より具体的には、統計値には、最大値、中央値、最小値、平均値、標準偏差値、尖度、歪度、自己相関などが含まれる。あるいは、前処理部２が抽出する特徴は、時系列波形データの波形振幅、状態レベル、アンダーシュートとオーバーシュート、基準面、遷移時間などでもよい。あるいは、前処理部２は、時系列波形データを複数のセグメントに区切って各セグメントより以前の特徴を抽出することもできる。時系列波形データから特徴を抽出して生成したデータは表データとなる。前処理部２で生成したデータを図１のセンサデータ保持部６に格納してもよい。
【００１３】
異常検知モデルの候補となる候補モデルは、複数の手法で生成することができる。例えば、図１の異常検知装置１は、複数の手法がリスト化された手法リストを保持する手法リスト保持部７を備えていてもよい。手法リストは、教師なし学習の手法と教師あり学習の手法を含んでいる。教師なし学習の手法は、例えば、従来の１−クラスサポートベクターマシン(One-Class Support Vector Machine)を用いた手法、クラスタリング手法（ｋ平均法、階層クラスタリング）、主成分分析手法、自己組織化写像手法、深層学習手法、教師なしインクリメンタル学習手法などを含んでいてもよい。教師あり学習の手法は、例えば、分類器を用いた手法、インクリメンタルサポートベクターマシンを用いた手法、インクリメンタル決定木手法、インクリメンタル深層畳み込みニューラルネットワーク手法、Learn++手法、Fuzzy ARTMAP手法などを含んでいてもよい。手法リスト保持部７をモデル群学習／更新部３に統合してもよい。
【００１４】
モデル群学習／更新部３は、手法リストから教師なし学習と教師あり学習の複数の手法を選択し、初期の教師データを用いて候補モデル群を学習し、増分的に来る教師データを用いて候補モデル群を更新する。
【００１５】
モデル群学習／更新部３は、モデル生成部８と、精度算出部９と、モデル更新部１０とを有する。モデル生成部８は、時系列に入力される複数のセンサデータに基づいて、センサデータの異常を検知するための複数の候補モデルを複数の手法で生成する。精度算出部９は、複数の候補モデルの判定精度を算出する。モデル更新部１０は、精度算出部９で算出された判定精度と、正常か異常かが判別された新たなセンサデータとに基づいて、複数の候補モデルを更新する。モデル更新部１０は、専門家の知見により正常か異常かが判別された新たなセンサデータと、専門家の知見に加えて異常検知モデルに基づいて正常か異常かが判別された新たなセンサデータと、の少なくとも一方に基づいて、複数の候補モデルを更新してもよい。
【００１６】
モデル更新部１０は、複数の方式のいずれかにてモデル更新を行うことができる。代表的な方式として以下の第１〜第４方式がある。
【００１７】
第１方式では、増分的に来る全ての教師データを収集して、増分的に教師データが来るタイミングで、モデル生成部８が選択した全ての手法を用いて新たに各候補モデルを学習する。第１方式では、大量の教師データを記憶する記憶装置が必要となる。
【００１８】
第２方式では、過去の教師データを廃棄して、増分的に来る教師データのみを用いてモデル生成部８が選択した全ての手法を用いて新たに各候補モデルを学習する。第２方式では、学習モデルの判定精度が変動する可能性がある。
【００１９】
第３方式では、初期教師データを用いてモデル生成部８が選択した全ての手法の候補モデルを学習し、増分的に来る教師データを用いて候補モデル群のパラメータを更新し、更新モデルを更新後に全ての教師データを廃棄する。第３方式では、大量の教師データを保持する記憶装置が不要となる。
【００２０】
第４方式では、第３方式と同じように初期教師データを用いてモデル生成部８が選択した全ての手法のモデルを学習し、増分的に来る教師データを用いて候補モデル群のパラメータを更新し、モデル更新後に教師データの一部を保持する。この場合、保持した教師データの選択手法が必要となる。通常は、教師データに含まれる異常データの割合は小さいため、全ての異常データと、増分的に来る正常データと、過去の正常データからランダムにピックアップした正常データとを保持することができる。
【００２１】
モデル更新部１０が選択する方式は、モデル生成部８が選択した手法によって変わりうる。なお、モデル更新部１０が選択する方式をユーザが事前に決定してもよい。
【００２２】
モデル選択部４は、複数の候補モデルの判定精度に基づいて、複数の候補モデルの中から、一つ以上の候補モデルを選択して異常検知モデルを生成する。具体的には、モデル選択部４は、モデル群学習／更新部３が学習あるいは更新した候補モデル群から一つ以上の良い候補モデルを選択する。モデル選択部４が複数の候補モデルを選択した場合、選択された複数の候補モデルを用いてメタモデルを生成し、そのメタモデルを適用する異常検知モデル（以下、適用モデルとも呼ぶ）を適用モデル保持部１１に保持する。モデル群学習／更新部３がｎ個の候補モデルを学習した場合、候補モデルの組合せ数は２n−１個である。このため、モデル選択部４は、組み合わせ最適手法、ヒューリスティック手法あるいは貪欲法を用いて、良好な候補モデル群を選択することができる。候補モデル群の組み合わせ最適手法として遺伝的アルゴリズムと遺伝的プログラミングを用いることができる。複数の候補モデルを用いて生成するメタモデルで総合的な判断を行うため、メタモデルのルールが必要である。多数決定（Majority Voting)、 ＯＲルールあるいは遺伝的プログラミングを用いたルールを利用してメタモデルを生成することができる。多数決定では、多数の候補モデルの判定結果が異常であればテストデータを異常と判断する。ＯＲルールでは、一つ以上の候補モデルの判定結果が異常であればテストデータを異常と判断する。遺伝的プログラミングでは下記のようなルールを作ることができる。
ＩＦ  （候補モデル１の判定＝異常  ＡＮＤ  候補モデル２の判定＝正常）ＯＲ（候補モデル１の判定＝正常  ＡＮＤ  候補モデル２の判定＝異常）ＴＨＥＮ  （テストデータ＝異常）。
【００２３】
適用モデル保持部１１は、モデル選択部４が選択した候補モデル群に基づいて生成したメタモデルを適用モデルとして保持する。
【００２４】
データ分類部５は、新たなセンサデータが正常か異常かを判別する。より具体的には、データ分類部５は、候補モデル群を用いて生成したメタモデルを用いて、前処理部２で前処理された新たなセンサデータ（テストデータ）が正常か異常かを分類し、その分類結果を分類結果保持部１２に保持する。
【００２５】
図１の異常検知装置１は、コンセプトドリフト検出部（初期化部）１３を備えていてもよい。コンセプトドリフト検出部１３は、初期化判定部１３ａとモデル初期化部１３ｂを有していてもよい。初期化判定部１３ａは、複数の候補モデルの判定精度を示す数値がいずれも所定値以下に低下したか否かを判定する。モデル初期化部１３ｂは、複数の候補モデルの判定精度を示す数値がいずれも所定値以下に低下したと判定された場合に、異常検知モデルを初期化する。
【００２６】
より具体的には、コンセプトドリフト検出部１３は、増分的に来る教師データを用いてモデル群学習／更新部３がモデル群を更新したとき、増分的に来る教師データは以前の教師データから大幅に変化しているかどうかを検出する。コンセプトドリフト検出部１３は、コンセプトドリフトを検出すると、モデル群学習／更新部３に対してモデル学習をリセットする指示と、センサデータ保持部６に対して過去の教師データを廃棄する指示を発令する。コンセプトドリフト手法として、増分的に来た教師データを用いてモデル群学習／更新部３が候補モデル群を更新した後、複数あるいは全ての候補モデルの判定精度が落ちているかどうかの評価を利用することができる。コンセプトドリフト検出部１３はモデル群学習／更新部３に統合してもよい。
【００２７】
図２は第１の実施形態による異常検知装置１が異常検知モデルを生成する一具体例を示す図である。図２の例では、センサデータ保持部６は、時刻ｔ１で正常データ１と異常データ１からなる初期教師データを供給し、時刻ｔ２で正常データ２と異常データ２からなる教師データ２を供給し、時刻ｔ３で正常データ３と異常データ３からなる教師データ３を供給し、時刻ｔ４で正常データ４と異常データ４からなる教師データ４を供給し、時刻ｔ５で正常データ５と異常データ５からなる教師データ５を増分的に供給する。
【００２８】
手法リスト保持部７は、教師なし学習の手法として｛Ａ１，Ａ２，Ａ３，Ａ４｝を、教師あり学習の手法として｛Ｂ１，Ｂ２，Ｂ３，Ｂ４，Ｂ５｝を含む手法リストを保持する。
【００２９】
モデル群学習／更新部３は初期教師データを用いて全ての手法のモデルを学習し、判定精度を算出する。初期教師データは、正常データ１の割合が異常データ１の割合よりも多いという特徴がある。モデル群学習／更新部３内のモデル生成部８は、教師なし学習と教師あり学習を行う。教師なし学習では、正常データだけからなる教師データを用いて、複数の手法｛Ａ１，Ａ２，Ａ３，Ａ４｝にて、複数の候補モデル｛Ａ１（ｔ１），Ａ２（ｔ１），Ａ３（ｔ１），Ａ４（ｔ１）｝を生成する。精度算出部９は、これらの候補モデルの判定精度を算出する。この例では、｛０．７、０．９、０．８、０．６｝である。教師あり学習では、正常データと異常データからなる教師データを用いて、複数の手法｛Ｂ１，Ｂ２，Ｂ３，Ｂ４，Ｂ５｝にて、複数の候補モデル｛Ｂ１（ｔ１），Ｂ２（ｔ１），Ｂ３（ｔ１），Ｂ４（ｔ１），Ｂ５（ｔ１）｝を生成する。これら候補モデルの判定精度は、｛０．４、０．３、０．５、０．９、０．２｝である。
【００３０】
モデル選択部４は、教師なし学習手法を用いたモデル｛Ａ１（ｔ１），Ａ２（ｔ１），Ａ３（ｔ１），Ａ４（ｔ１）｝の平均判定精度が良いことから、その中から最良であるＡ２（ｔ１）を異常検知モデルとして選択する。
【００３１】
時刻ｔ１から、次のモデル更新のタイミングである時刻ｔ２までの間にセンサデータ保持部６から供給されたセンサデータについては、時刻ｔ１にモデル選択部４で選択された異常検知モデルＡ２（ｔ１）を用いて、正常か異常かを判断し、その判断結果は分類結果保持部１２に保持される。時刻ｔ１〜ｔ２の間の正常と異常の判断結果は、時刻ｔ２で候補モデルを更新する際に利用してもよい。
【００３２】
次に、時刻ｔ２のときの処理を説明する。時刻ｔ２のとき、センサデータ保持部６は正常データ２と異常データ２からなる教師データ２を供給する。前処理部２は、教師データ２の前処理を行う。モデル群学習／更新部３は、前処理後の教師データ２を用いて全ての手法の候補モデルを更新し、判定精度を算出する。
【００３３】
教師なし学習では、正常データだけからなる教師データを用いて、複数の手法｛Ａ１，Ａ２，Ａ３，Ａ４｝にて、複数の候補モデル｛Ａ１（ｔ２），Ａ２（ｔ２），Ａ３（ｔ２），Ａ４（ｔ２）｝を生成する。精度算出部９は、これらの候補モデルの判定精度を算出する。この例では、｛０．７、１．０、０．７、０．５｝である。教師あり学習では、正常データと異常データからなる教師データを用いて、複数の手法｛Ｂ１，Ｂ２，Ｂ３，Ｂ４，Ｂ５｝にて、複数の候補モデル｛Ｂ１（ｔ２），Ｂ２（ｔ２），Ｂ３（ｔ２），Ｂ４（ｔ２），Ｂ５（ｔ２）｝を生成する。これら候補モデルの判定精度は、｛０．５、０．４、０．６、０．９、０．３｝である。
【００３４】
モデル選択部４は、教師なし学習手法を用いたモデル｛Ａ１（ｔ２），Ａ２（ｔ２），Ａ３（ｔ２），Ａ４（ｔ２）｝の平均判定精度が良いことから、その中から最良であるＡ２（ｔ２）を異常検知モデルとして選択する。
【００３５】
次に、時刻ｔ３のときの処理を説明する。時刻ｔ３のとき、センサデータ保持部６は正常データ３と異常データ３からなる教師データ３を供給する。前処理部２では、教師データ３の前処理を行う。モデル群学習／更新部３は、前処理後の教師データ３を用いて全ての手法の候補モデルを更新し、判定精度を算出する。
【００３６】
教師なし学習では、正常データだけからなる教師データを用いて、複数の手法｛Ａ１，Ａ２，Ａ３，Ａ４｝にて、複数の候補モデル｛Ａ１（ｔ３），Ａ２（ｔ３），Ａ３（ｔ３），Ａ４（ｔ３）｝を生成する。精度算出部９は、これらの候補モデルの判定精度を算出する。この例では、｛０．６、０.９、０．７、０．５｝である。教師あり学習では、正常データと異常データからなる教師データを用いて、複数の手法｛Ｂ１，Ｂ２，Ｂ３，Ｂ４，Ｂ５｝にて、複数の候補モデル｛Ｂ１（ｔ３），Ｂ２（ｔ３），Ｂ３（ｔ３），Ｂ４（ｔ３），Ｂ５（ｔ３）｝を生成する。これら候補モデルの判定精度は、｛０．８、０．９、０．７、１．０、０．５｝である。
【００３７】
モデル選択部４は、教師なし学習手法を用いたモデル｛Ｂ１（ｔ３），Ｂ２（ｔ３），Ｂ３（ｔ３），Ｂ４（ｔ３），Ｂ５（ｔ３）｝の平均判定精度が良いことから、その中から最良であるＢ４（ｔ３）を異常検知モデルとして選択する。
【００３８】
次に、時刻ｔ４のときの操作は時刻ｔ３のときと似ているので、説明を省略する。最後に、時刻ｔ５のときの処理を説明する。時刻ｔ５のとき、センサデータ保持部６は正常データ５と異常データ５からなる教師データ５を供給する。前処理部２では、教師データ５の前処理を行う。次に、モデル群学習／更新部３は、前処理後の教師データ５を用いて全ての手法のモデルを更新し、判定精度を算出する。
【００３９】
教師なし学習では、正常データだけからなる教師データを用いて、複数の手法｛Ａ１，Ａ２，Ａ３，Ａ４｝にて、複数の候補モデル｛Ａ１（ｔ５），Ａ２（ｔ５），Ａ３（ｔ５），Ａ４（ｔ５）｝を生成する。精度算出部９は、これらの候補モデルの判定精度を算出する。この例では、｛０．５、０.７、０．５、０．３｝である。教師あり学習では、正常データと異常データからなる教師データを用いて、複数の手法｛Ｂ１，Ｂ２，Ｂ３，Ｂ４，Ｂ５｝にて、複数の候補モデル｛Ｂ１（ｔ５），Ｂ２（ｔ５），Ｂ３（ｔ５），Ｂ４（ｔ５），Ｂ５（ｔ５）｝を生成する。これら候補モデルの判定精度は、｛０．６、０．４、０．５、０．７、０．２｝である。
【００４０】
モデル選択部４は、教師なし学習手法を用いたモデル｛Ｂ１（ｔ３），Ｂ２（ｔ３），Ｂ３（ｔ３），Ｂ４（ｔ３），Ｂ５（ｔ３）｝の平均判定精度が良いことから、その中から最良であるＢ４（ｔ３）を異常検知モデルとして選択する。
【００４１】
時刻ｔ４と比べて、すべての候補モデルの判定精度が落ちているため、コンセプトドリフト検出部１３はコンセプトドリフトが生じたと判断し、モデル群学習／更新部３へモデル学習をリセットする指示と、センサデータ保持部６に過去の教師データの廃棄指示を発令する。モデル群学習／更新部３はコンセプトドリフト検出部１３からのモデル学習のリセット指示を受けて、教師データ５のみを用いて全ての手法のモデルを学習し、判定精度を算出する。
【００４２】
教師なし学習では、正常データだけからなる教師データを用いて、複数の手法｛Ａ１，Ａ２，Ａ３，Ａ４｝にて、複数の候補モデル｛Ａ１（ｔ５），Ａ２（ｔ５），Ａ３（ｔ５），Ａ４（ｔ５）｝を生成する。精度算出部９は、これらの候補モデルの判定精度を算出する。この例では、｛０．７、０.８、０．８、０．７｝である。教師あり学習では、正常データと異常データからなる教師データを用いて、複数の手法｛Ｂ１，Ｂ２，Ｂ３，Ｂ４，Ｂ５｝にて、複数の候補モデル｛Ｂ１（ｔ５），Ｂ２（ｔ５），Ｂ３（ｔ５），Ｂ４（ｔ５），Ｂ５（ｔ５）｝を生成する。これら候補モデルの判定精度は、｛０．７、０．５、０．６、０．８、０．３｝である。
【００４３】
モデル選択部４は教師なし学習手法を用いたモデル｛Ａ１（ｔ５），Ａ２（ｔ５），Ａ３（ｔ５），Ａ４（ｔ５）｝の平均判定精度が良いので、その中から最良であるＡ３（ｔ５）を異常検知モデルとして選択する。
【００４４】
図３は第１の実施形態による異常検知装置１の処理動作を示すフローチャートである。まず、前処理部２は、センサデータ保持部６から供給されたセンサデータから、教師データを抽出する（ステップＳ１）。次に、前処理部２は、教師データに対して前処理を行う（ステップＳ２）。前処理として、例えば、教師データの長さを調整する。
【００４５】
モデル学習／更新部は手法リスト保持部７から手法リストを取得する（ステップＳ３）。次に、モデル群学習／更新部３は、初期モデル学習か否かを判定する（ステップＳ４）。
【００４６】
初期モデル学習の場合（ステップＳ４がＹＥＳ）、モデル群学習／更新部３は初期教師データを用いて全ての候補モデルを学習する（ステップＳ５）。ステップＳ４で初期モデル学習でないと判定された場合（ＮＯの場合）、モデル群学習／更新部３は直近の学習で生成した候補モデルに対して新しい教師データを付与して、候補モデルを更新する（ステップＳ６）。
【００４７】
ステップＳ５又はＳ６の処理が終わると、コンセプトドリフト検出部１３はコンセプトドリフトが生じたか否かを検出する（ステップＳ７）。コンセプトドリフトが生じた場合（ＹＥＳの場合）、コンセプトドリフト検出部１３はモデル群学習／更新部３へモデル学習をリセットする指示を発令する（ステップＳ８）。そのとき、モデル群学習／更新部３は候補モデルを初期化し、新しい教師データを用いて全ての候補モデルを学習し直す（ステップＳ９）。
【００４８】
次に、モデル選択部４は、複数の候補モデルの判定精度に基づいて、複数の候補モデルの中から、一つ以上の候補モデルを選択して適用モデルを生成して適用モデル保持部１１に保持する（ステップＳ１０）。
【００４９】
上述したように、コンセプトドリフト検出部１３は省略してもよい。コンセプトドリフト検出部１３を省略した場合には、図３のステップＳ７〜Ｓ９の処理は不要となる。
【００５０】
このように、第１の実施形態では、複数の手法を用いて教師なし学習を行って複数の候補モデルを生成して判定精度を検出するとともに、複数の手法を用いて教師あり学習を行って複数の候補モデルを生成して判定精度を検出する。そして、判定精度が高い方の複数の候補モデルの中から最適な候補モデルを適用モデルとして選択するため、候補モデルの判定精度を高めることができる。また、時系列に入力される複数のセンサデータを用いて、候補モデルの更新を継続的に行うため、時間の経過とともに正常データと異常データの割合が変化しても、それに応じて候補モデルを更新でき、候補モデルの信頼性を向上できる。また、複数の候補モデルの判定精度が一様に低下した場合には、コンセプトドリフトが生じたと判断して、候補モデルをリセットするとともに過去のセンサデータを廃棄して、新たに候補モデルを生成し直すことができるため、途中でセンサデータの種類が変化した場合には、新たな異常検知モデルを生成できる。さらに、各センサデータに対して前処理を行った後にモデル群学習／更新部３とデータ分類部５の処理を行うことができるため、各センサデータの時間長さや特徴が異なる場合であっても、センサデータに依存せずに異常検知の判定精度が高い異常検知モデルを生成できる。
【００５１】
（第２の実施形態）
第２の実施形態では、複数の候補モデルの中から１以上の候補モデルを含む候補モデル群を選択し、さらにその中から、１以上の候補モデルを含む適用モデル群を選択し、選択された適用モデル群に基づいて生成したメタモデル（適用モデル）を異常検知モデルとするものである。
【００５２】
図４は第２の実施形態による異常検知装置１の概略構成を示すブロック図である。図４の異常検知装置１は、モデル選択部４の処理が図１とは異なっている。図４のモデル選択部４は、候補モデル群選択部２１と、適用モデル群選択部２２と、適用モデル生成部２３とを有する。
【００５３】
候補モデル群選択部２１は、データ分類部５で正常と判別されたセンサデータに基づいて生成された複数の候補モデルを含む第１モデル群と、データ分類部５で正常又は異常と判別されたセンサデータに基づいて生成された複数の候補モデルを含む第２モデル群と、のいずれか一方を選択する。候補モデル群選択部２１は、第１候補モデル群内の複数の候補モデルの判定精度と、第２候補モデル群内の複数の候補モデルの判定精度と、に基づいて、第１候補モデル群と第２候補モデル群とのいずれか一方を選択してもよい。
【００５４】
第１モデル群と第２モデル群は、現時点での複数の候補モデルだけでなく、過去モデル群保持部２４に保持された過去の時点での複数の候補モデルを含んでいてもよい。よって、候補モデル群選択部２１は、現時点の候補モデル群と過去の候補モデル群から複数の良い候補モデルを選択することができる。選択手法として、教師なし学習の手法を用いて学習した現時点又は過去の候補モデル群と、教師あり学習の手法を用いて学習した現時点又は過去の候補モデル群を選択することができる。
【００５５】
また、教師なし学習の手法を用いて学習した候補モデル群と、教師あり学習の手法を用いて学習した候補モデル群の組み合わせから、固定数の候補モデルを選択してもよい。選択する評価基準として、モデル群の平均判定精度を利用することができる。教師なし学習の手法を用いて学習した候補モデル群と、教師あり学習の手法を用いて学習した候補モデル群から一つの候補モデル群を選択する際には、平均的に判定精度が高い候補モデル群を選択する。固定数の候補モデルを含む候補モデル群を選択するとき、教師なし学習の手法を用いた候補モデル群と教師あり学習の手法を合わせた候補モデル群の中から、判定精度が上位の固定数の候補モデルを選択してもよい。増分的に来る教師データがノイジー教師データであり、幾つかの候補モデルをノイジー教師データを用いて更新する場合、更新された候補モデルの判定精度が落ちる可能性があるので、候補モデル群を選択する際には、過去の候補モデルを利用してもよい。すなわち、増分的に来る教師データを用いてある候補モデルを更新したときに判定精度が落ちる場合には、更新後の候補モデルの代わりに過去の候補モデルを用いてもよい。
【００５６】
過去モデル群保持部２４は、候補モデル群選択部２１が選択した候補モデル群と過去の候補モデル群を保持する。過去の何ステップ前の候補モデルを保持するか、候補モデル何個を保持するかを予め決めても良い。過去モデル群保持部２４の機能を候補モデル群選択部２１が備えていてもよい。
【００５７】
適用モデル群選択部２２は、候補モデル群選択部２１にて選択された第１候補モデル群又は第２候補モデル群から、１以上の候補モデルを含む適用モデル群を選択する。適用モデル群選択部２２は、候補モデル群選択部２１にて選択された第１候補モデル群又は第２候補モデル群内の複数の候補モデルの判定精度に基づいて、適用モデル群を選択してもよい。
【００５８】
より具体的には、適用モデル群選択部２２は、候補モデル群選択部２１が選択した候補モデル群から精度が良い１つ以上の候補モデル群を選択する。候補モデル群選択部２１がｎ個の候補モデルを選択した場合、その候補モデルの組合せは２n−１個ある。適用モデル群選択部２２は、組み合わせ最適手法、ヒューリスティック手法あるいは貪欲法等を用いて、精度の良い適用モデルを生成することができる。組み合わせ最適手法として遺伝的アルゴリズムと遺伝的プログラミングを用いることができる。
【００５９】
適用モデル生成部２３は、適用モデル群選択部２２が選択した適用モデル群からメタモデルを生成し、生成したメタモデルを適用モデル保持部１１に保持する。複数の候補モデルを用いて生成するメタモデルで総合的な判断を行うため、メタモデルのルールが必要である。メタモデルとして多数決定(Majority Voting)、ＯＲルールあるいは遺伝的プログラミングを用いたルールを利用することができる。多数決定では、多数の候補モデルの判定結果が異常であればテストデータを異常と判断する。ＯＲルールでは、一つ以上の候補モデルの判定結果が異常であればテストデータを異常と判断する。遺伝的プログラミングでは下記のようなルールを作ることができる。
ＩＦ（候補モデル１の判定＝異常ＡＮＤ候補モデル２の判定＝正常）ＯＲ（候補モデル１の判定＝正常ＡＮＤ候補モデル２の判定＝異常）ＴＨＥＮ（テストデータ＝異常）。
【００６０】
適用モデル保持部１１は、適用モデル群選択部２２が選択した適用モデル群とその適用モデル群を用いて生成したメタモデルを保持する。
【００６１】
データ分類部５は、適用モデル保持部１１が保持する適用モデル群と、その適用モデル群を用いて生成したメタモデルを用い、前処理後のテストデータを分類し、判断結果を分類結果保持部１２に保存する。すなわち、データ分類部５はテストデータが異常か正常かであるかを判断する。
【００６２】
図５は第２の実施形態による異常検知装置１が異常検知モデルを生成する一具体例を示す図である。図５の例では、センサデータ保持部６は、時刻ｔ１で正常データ１と異常データ１からなる初期教師データを供給し、時刻ｔ２で正常データ２と異常データ２からなる教師データ２を供給し、時刻ｔ３で正常データ３と異常データ３からなる教師データ３を供給し、時刻ｔ４で正常データ４と異常データ４からなる教師データ４を供給し、時刻ｔ５で正常データ５と異常データ５からなる教師データ５を増分的に供給する。
【００６３】
手法リスト保持部７は、教師なし学習の手法として｛Ａ１，Ａ２，Ａ３，Ａ４｝を、教師あり学習の手法として｛Ｂ１，Ｂ２，Ｂ３，Ｂ４，Ｂ５｝を含む手法リストを保持する。
【００６４】
時刻ｔ１では、モデル群学習／更新部３内のモデル生成部８は、初期教師データを用いて、複数の手法にて、教師なし学習と教師あり学習を行う。
【００６５】
適用モデル群選択部２２は、教師なし学習で得られた複数の候補モデル群｛Ａ１（ｔ１），Ａ２（ｔ１），Ａ３（ｔ１），Ａ４（ｔ１）｝の中から、良い判定精度が得るメタモデルを生成するため候補モデル群｛Ａ２（ｔ１），Ａ３（ｔ１），Ａ４（ｔ１）｝を選択する。候補モデル群の選択後は、データ分類部５は｛Ａ２（ｔ１），Ａ３（ｔ１），Ａ４（ｔ１）｝を用いた適用モデル（メタモデル）、例えば多数決定等により、テストデータを分類する。
【００６６】
次に、時刻ｔ２のときの処理を説明する。時刻ｔ２のとき、センサデータ保持部６は正常データ２と異常データ２からなる教師データ２を供給する。前処理部２では、教師データ２の前処理を行う。
【００６７】
モデル群学習／更新部３は、前処理後の教師データ２を用いて全ての手法のモデルを更新し、判定精度を算出する。教師データ２を用いた更新したモデルは｛Ａ１（ｔ２），Ａ２（ｔ２），Ａ３（ｔ２），Ａ４（ｔ２）｝とＢ１（ｔ２），Ｂ２（ｔ２），Ｂ３（ｔ２），Ｂ４（ｔ２），Ｂ５（ｔ２）｝であり、判定精度はそれぞれ｛０．７、１．０、０．７、０．５｝と｛０．５、０．４、０．６、０．９、０．３｝である。
【００６８】
候補モデル群選択部２１は、例えば平均判定精度を用いて候補モデル群を選択する。教師なしモデル群の平均判定精度は０．７２５、教師ありモデル群の平均判定精度は０．５４なので、候補モデル群選択部２１は、教師なしモデル群｛Ａ１（ｔ２），Ａ２（ｔ２），Ａ３（ｔ２），Ａ４（ｔ２）｝を選択する。次に、選択した候補モデル群と過去の候補モデル群を比較して、判定精度の良い候補モデル群を選択する。選択した候補モデル群のうち、Ａ３（ｔ２），Ａ４（ｔ２）の判定精度はＡ３（ｔ１），Ａ４（ｔ１）より落ちているので、候補モデル群選択部２１はＡ３（ｔ２），Ａ４（ｔ２）の代わりにそれぞれＡ３（ｔ１），Ａ４（ｔ１）を候補モデル群として選択する。すなわち、候補モデル群選択部２１は｛Ａ１（ｔ２），Ａ２（ｔ２），Ａ３（ｔ１），Ａ４（ｔ１）｝を選択し、過去モデル群保持部２４に保持する。
【００６９】
適用モデル群選択部２２は、選択された候補モデル群｛Ａ１（ｔ２），Ａ２（ｔ２），Ａ３（ｔ１），Ａ４（ｔ１）｝の中から、良い判定精度が得られる適用モデル（メタモデル）を生成するための適用モデル群｛Ａ１（ｔ２），Ａ２（ｔ２），Ａ４（ｔ１）｝を選択する。データ分類部５は、適用モデル群｛Ａ１（ｔ２），Ａ２（ｔ２），Ａ４（ｔ１）｝を用いた適用モデル（メタモデル）、例えば多数決定等により、テストデータを分類する。
【００７０】
次に、時刻ｔ３のときの処理を説明する。時刻ｔ３のとき、センサデータ保持部６は正常データ３と異常データ３からなる教師データ３を供給する。前処理部２では、教師データ３の前処理を行う。
【００７１】
モデル群学習／更新部３は、前処理後の教師データ３を用いて全ての手法のモデルを更新し、判定精度を算出する。教師データ３を用いた更新したモデルは｛Ａ１（ｔ３），Ａ２（ｔ３），Ａ３（ｔ３），Ａ４（ｔ３）｝とＢ１（ｔ３），Ｂ２（ｔ３），Ｂ３（ｔ３），Ｂ４（ｔ３），Ｂ５（ｔ３）｝となり、判定精度はそれぞれ｛０．６、０.９、０．７、０．５｝と｛０．８、０．９、０．７、１．０、０．５｝となる。
【００７２】
候補モデル群選択部２１は、例えば平均判定精度を用いて候補モデル群を選択する。教師なしモデル群の平均判定精度は０．６７５、教師ありモデル群の平均判定精度は０．７８なので、候補モデル群選択部２１は、教師ありモデル群Ｂ１（ｔ３），Ｂ２（ｔ３），Ｂ３（ｔ３），Ｂ４（ｔ３），Ｂ５（ｔ３）｝を選択する。次に、選択した候補モデル群と過去の候補モデル群を比較して、判定精度の良い候補モデル群を選択する。選択した候補モデル群の判定精度は過去の候補モデルより良いので、選択した候補モデル群を変更せずに過去モデル群保持部２４に保持する。
【００７３】
適用モデル群選択部２２は、候補モデル群｛Ｂ１（ｔ３），Ｂ２（ｔ３），Ｂ３（ｔ３），Ｂ４（ｔ３），Ｂ５（ｔ３）｝の中から、良い判定精度が得られる適用モデル（メタモデル）を生成するための適用モデル群｛Ｂ１（ｔ３），Ｂ２（ｔ３），Ｂ４（ｔ３）｝を選択する。データ分類部５は、適用モデル群｛｛Ｂ１（ｔ３），Ｂ２（ｔ３），Ｂ４（ｔ３）｝を用いた適用モデル（メタモデル）、例えば多数決定を用いてテストデータを分類する。
【００７４】
次に、時刻ｔ４のときの処理は時刻ｔ２のときと似ているので、説明を省略する。最後に、時刻ｔ５のときの処理を説明する。時刻ｔ５のとき、センサデータ保持部６は正常データ５と異常データ５からなる教師データ５を供給する。前処理部２では、教師データ５の前処理を行う。
【００７５】
モデル群学習／更新部３は、教師データ５を用いて全ての手法のモデルを更新し、判定精度を算出する。教師なし学習では、複数の候補モデル｛Ａ１（ｔ５），Ａ２（ｔ５），Ａ３（ｔ５），Ａ４（ｔ５）｝を生成し、教師あり学習では、複数の候補モデルＢ１（ｔ５），Ｂ２（ｔ５），Ｂ３（ｔ５），Ｂ４（ｔ５），Ｂ５（ｔ５）｝を生成する。教師なし学習と教師あり学習で生成した複数の候補モデルの判定精度はそれぞれ｛０．５、０.７、０．５、０．３｝と｛０．６、０．４、０．５、０．７、０．２｝であり、以前の時刻での判定精度よりも低下している。このため、コンセプトドリフト検出部１３はコンセプトドリフトを検出し、モデル群学習／更新部３へモデル学習をリセットする指示と、センサデータ保持部６に過去の教師データの廃棄指示を発令する。
【００７６】
モデル群学習／更新部３はコンセプトドリフト検出部１３からモデル学習をリセットする指示を受けて、教師データ５のみを用いて全ての手法のモデルを学習し、判定精度を算出する。教師データ５を用いた学習したモデルは｛Ａ１（ｔ５），Ａ２（ｔ５），Ａ３（ｔ５），Ａ４（ｔ５）｝と｛Ｂ１（ｔ５），Ｂ２（ｔ５），Ｂ３（ｔ５），Ｂ４（ｔ５），Ｂ５（ｔ５）｝であり、判定精度はそれぞれ｛０．７、０.８、０．８、０．７｝と｛０．７、０．５、０．６、０．８、０．３｝である。
【００７７】
候補モデル群選択部２１は、例えば平均判定精度を用いて候補モデル群を選択する。教師なしモデル群の平均判定精度は０．７５、教師ありモデル群の平均判定精度は０．５８なので、候補モデル群選択部２１は、教師なしモデル群｛Ａ１（ｔ５），Ａ２（ｔ５），Ａ３（ｔ５），Ａ４（ｔ５）｝を選択して、過去モデル群保持部２４に保存する。
【００７８】
適用モデル群選択部２２は、選択された候補モデル群｛Ａ１（ｔ５），Ａ２（ｔ５），Ａ３（ｔ５），Ａ４（ｔ５）｝の中から、良い判定精度が得られる適用モデル（メタモデル）を生成するための適用モデル群を選択する。本例では、候補モデル群選択部２１は適用モデル（メタモデル）を生成するために、適用モデル群｛Ａ１（ｔ５），Ａ２（ｔ５），Ａ３（ｔ５）｝を選択する。データ分類部５は、適用モデル群｛Ａ１（ｔ５），Ａ２（ｔ５），Ａ３（ｔ５）｝を用いた適用モデル（メタモデル）、例えば多数決定を用いてテストデータを分類する。
【００７９】
ここで、ｋ近傍法を用いたモデル学習と教師データの管理について説明する。時刻ｔ１における教師なし学習では、例えばｋ近傍法が用いられる。時刻ｔ１では、モデル群学習／更新部３は教師データ１を用いてｋ近傍法のモデルパラメータｋを学習する。例えば、時刻ｔ１ではｋ近傍法のモデルパラメータｋの値が１とする。時刻ｔ１で他の候補モデルの学習後、センサデータ保持部６は正常データ１を廃棄する。
【００８０】
時刻ｔ２では、モデル群学習／更新部３は教師データ２と異常データ１を用いてｋ近傍法のモデルパラメータｋを学習する。例えば、時刻ｔ２ではｋ近傍法のモデルパラメータｋの値が３になったとする。時刻ｔ２で他の候補モデルの学習後、センサデータ保持部６は正常データ２を廃棄する。時刻ｔ３では、モデル群学習／更新部３は教師データ３と異常データ１と異常データ２を用いてｋ近傍法のモデルパラメータｋを学習する。例えば、時刻ｔ３ではｋ近傍法のモデルパラメータｋの値が３となったとする。時刻ｔ３で他の候補モデルの学習後、センサデータ保持部６は正常データ２を廃棄する。また、ｔ３でｋ近傍法のモデルパラメータｋの値が変わってないので、センサデータ保持部６は異常データ３も廃棄することができる。
【００８１】
図６は第２の実施形態による異常検知装置１の処理動作を示すフローチャートである。図６のステップＳ１１〜Ｓ１９は、図４のステップＳ１〜Ｓ９と同じであるため、説明を省略する。
ステップＳ１７でコンセプトドリフトが生じていないと判定された場合、あるいはステップＳ１９でモデル群学習／更新部３が候補モデルを初期化し、新しい教師データを用いて全てのモデルを学習し直した場合、次に、候補モデル群選択部２１は更新した現在モデル群と過去モデル群の中から候補モデル群を選択し、選択した候補モデル群を過去モデル群保持部２４に保存する（ステップＳ２０）。次に、適用モデル群選択部２２は、候補モデル群から判定精度の良い適用モデル群を選択し、選択した適用モデル群を用いた新しい適用モデル（メタモデル）を生成し、適用モデル保持部１１に保存する（ステップＳ２１）。
【００８２】
候補モデル群の選択は、自動的な処理で行ってもよいし、手動で行ってもよい。また、コンセプトドリフトが生じたか否かを可視化できるようにしてもよい。図７はユーザが各種の選択及び可視化を行うＧＵＩ画面３０の一例を示す図である。図７のＧＵＩ画面３０は、第１指示部３１と、第２指示部３２と、第３指示部３３と、第４指示部３４と、第１可視化部３５と、第２可視化部３６と、選択適用モデル群表示部３７と、メタモデル情報表示部３８とを有する。第１〜第４指示部３１〜３４は、ユーザが選択指示するものである。
【００８３】
第１指示部３１は、候補モデル群を候補モデル群選択部２１にて自動で選択するか、操作者が手動で候補モデル群を選択するか指示する。第２指示部３２は、適用モデル群を適用モデル群選択部２２にて自動で選択するか、操作者が手動で適用モデル群を選択するかを指示する。第３指示部３３は、第１指示部３１にて、操作者が手動で候補モデル群を選択すると指示された場合に、現時点の候補モデル群に含まれる候補モデルの選択と、過去の候補モデル群に含まれる候補モデルの選択とを指示する。第３指示部３３には、各候補モデルを選択するか否かを指示するチェックボタンが設けられている。第４指示部３４は、第１〜第３指示部３１〜３３による指示が終わった後に、適用モデルの学習を指示する。
【００８４】
第１可視化部３５は、正常なセンサデータの波形を可視化する。より具体的には、第１可視化部３５は、過去の代表的なセンサデータの正常波形と、現在の正常波形とを可視化する。第２可視化部３６は、異常なセンサデータの波形を可視化する。より具体的には、第２可視化部３６は、過去の代表的なセンサデータの異常波形と、現在の異常波形とを可視化する。選択適用モデル群表示部３７は、適用モデル群を構成する各候補モデルを生成するのに用いる手法と、判定精度と、適用モデル群に基づくメタモデルの判定精度とを表示する。メタモデル情報表示部３８は、メタモデルの詳細情報又はメタモデルを特定するパラメータ値を表示する。
【００８５】
ユーザは、第１可視化部３５と第２可視化部３６で可視化される正常データと異常データの波形を確認することにより、コンセプトドリフトが生じたか否かを目視で確認できる。また、ユーザは、過去の正常データと異常データのうち、代表的な正常波形と異常波形を持つ候補モデル群を選択し、新たに供給されるセンサデータを用いて、その候補モデル群を更新することで、正常波形と異常波形を更新することができる。
【００８６】
このように、第２の実施形態では、各時刻での教師なし学習で得られた複数の候補モデルと、教師あり学習で得られた複数の候補モデルの中から、候補モデル群を選択し、さらに候補モデル群の中から、判定精度の高い適用モデル群を選択し、適用モデル群から適用モデル（メタモデル）を生成する。これにより、判定精度の高い複数の候補モデルを考慮に入れて、最終的な適用モデルを生成でき、センサデータの異常検知をより精度よく行うことができる。
【００８７】
また、適用モデル群を選択する際には、現時点の候補モデルだけでなく、過去の候補モデルも選択対象に含めることができるため、適用モデル群の判定精度を向上できる。
【００８８】
さらに、候補モデル群や適用モデル群を選択する際には、ユーザがＧＵＩ画面で種々の細かい選択を行えるようにしたため、ユーザの意向を考慮に入れて、適用モデル群とメタモデルを選択できる。
【００８９】
（第３の実施形態）
第３の実施形態は、センサデータをグループ化して、グループごとに最適な手法でモデル化を行うものである。
【００９０】
図８は第３の実施形態による異常検知装置１の概略構成を示すブロック図である。図８の異常検知装置１は、図１の異常検知装置１と比べて、モデル群学習／更新部３の内部構成が異なっている。
【００９１】
図８の異常検知装置１内のモデル群学習／更新部３は、モデル生成部８、精度算出部９及びモデル更新部１０に加えて、グループ化部４１と、手法選択部４２と、グループ評価部４３とを有する。
【００９２】
グループ化部４１は、前処理部２で前処理を行った後の複数のセンサデータを、一つ以上の特徴的なグループに分類する。より具体的には、グループ化部４１は、前処理を行った後の教師データを複数の特徴的なデータグループに分類する。グループ化の手法として、クラスタリング手法、例えば、ｋ平均法、階層型クラスタリングなどを適用できる。
【００９３】
手法選択部４２は、グループ化部４１で分類された各データグループごとに、候補モデルを生成するのに最適な手法を選択する。手法選択部４２は、組合せ最適手法を用いて手法を選択してもよいし、ヒューリスティックス法や貪欲法を用いてもよい。データグループがｍ個、手法がｎ個ある場合、ｍ×ｎ個の組合せの候補モデルの学習を行って、最終的に最良の手法を選択することができる。手法選択部４２の他に、モデルパラメータ値ＤＢ４４とマッピングＤＢ４５を設けてもよい。モデルパラメータ値ＤＢ４４は、手法選択部４２が選択した手法に対応するモデルパラメータ値を保持する。モデルパラメータ値は、候補モデルを生成する際に使用される。マッピングＤＢ４５は、手法選択部４２が選択した手法とデータグループとの対応関係を保持する。
【００９４】
グループ評価部４３は、グループ化部４１で分類された各データグループごとに、手法選択部４２で選択された手法にて生成された候補モデルの評価値を算出する。必要に応じてグループ評価部４３は、サブグループ化が必要なデータグループを選択してもよいし、あるいは、教師データから削除が必要なデータグループを選択してもよい。ＧＵＩにより、ユーザにデータグループを評価させてもよい。
【００９５】
モデル生成部８は、グループ化部４１で分類された各データグループごとに、手法選択部４２で選択された手法にて候補モデルを生成する。手法選択部４２は、グループ化部４１で分類された各データグループごとに、グループ評価部４３で算出された評価値に基づいて手法を選択する。モデル更新部１０は、グループ評価部４３で算出された評価値に基づいて手法選択部４２が選択し直した手法を用いて、候補モデルを更新する。モデル選択部４は、グループ化部４１で分類された各データグループごとに、モデル更新部１０で更新された候補モデルに基づいて異常検知モデルを生成する。
【００９６】
手法選択部４２は、グループ化部４１で分類された各データグループに複数の手法をそれぞれ適用して候補モデルを生成した場合の適応度が最大になるように、遺伝的アルゴリズムを利用して最適な手法を選択してもよい。
【００９７】
図９は正常データを３つの特徴的なデータグループＧ１，Ｇ２，Ｇ３に分ける例を示す図である。図９は、正常データを、波形の形状により、３つのデータグループＧ１〜Ｇ３に分類する例を示している。各データグループＧ１〜Ｇ３には任意の手法を割り当てることができる。図９では、各データグループＧ１〜Ｇ３のそれぞれに、手法Ａ，Ｂ，Ｃを割り当てて生成した候補モデルの判定精度をグループ評価部４３で評価し、最終的にデータグループＧ１，Ｇ２，Ｇ３にそれぞれ手法Ａ，Ｂ，Ｃを割り当てた例を示している。
【００９８】
図１０は第３の実施形態におけるグループ化部４１と手法選択部４２の処理動作を示すフローチャートである。まず、前処理部２はセンサデータの中から教師データを抽出し（ステップＳ３１）、例えばデータ長さを調整する等の前処理を行う（ステップＳ３２）。次に、グループ化部４１は、クラスタリングにてセンサデータを特徴的な複数のデータグループに分類する（ステップＳ３３）。次に、グループ評価部４３は、データグループを評価する（ステップＳ３４）。具体的には、グループ評価部４３は、よいグループ化を行えたか否かを評価する（ステップＳ３５）。よいグループ化を行えなかったと評価された場合、サブグループ化や削除が必要なデータグループを明示する等して、グループ化部４１に再度のグループ化を指示する。この場合、ステップＳ３３以降の処理が再度行われることになる。
【００９９】
一方、よいグループ化が行えたと、グループ評価部４３が評価した場合、手法選択部４２は、グループ化を行った各データグループに種々の手法を適用して、候補モデルの学習を行う（ステップＳ３６）。グループ評価部４３は、各データグループに種々の手法を適用して生成した候補モデルの評価値を計算し、評価値が高い手法を各データグループに割り当てる（ステップＳ３７）。手法選択部４２は、候補モデルを生成する際に使用されるモデルパラメータ値をモデルパラメータ値ＤＢ４４に保存するとともに、手法選択部４２が選択した手法とデータグループとの対応関係をマッピングＤＢ４５に保存する（ステップＳ３８）。
【０１００】
ステップＳ３８の処理が終了した後は、各データグループごとに、図３のステップＳ４以降の処理が行われる。
【０１０１】
図１１は第３の実施形態による異常検知装置１が行うグループ化の意義を模式的に説明する図である。図１１の黒色星マーク４６は従来手法で検知できる異常を示し、白抜き星マーク４７は従来手法では検知できない異常を示している。従来手法では、黒色星マーク４６が存在しない範囲を正常と判断するため、図１１の大円４８内を正常と判断するような異常検知モデルが生成される。これに対して、図１１の異常検知装置１では、複数のデータグループに分けて、各データグループごとに異常検知モデルを生成するため、複数の小円４９からなる複数の異常検知モデルが生成される。よって、従来は検知できなかった白抜き星マーク４７も、異常として正しく検知できるようになる。
【０１０２】
図１２は遺伝的アルゴリズムを用いて正常データ（教師データ）をグループ化する例を示す図である。図１２では、センサデータをＮ（Ｎは２以上の整数）個のデータグループに分類し、各データグループごとに、遺伝的アルゴリズムにて個別の手法を割り当てて、候補モデルを生成するものである。各データグループに割り当てられる手法は、例えば、１−クラスＳＶＭ、ｋ平均法、ロジステックス回帰、ｋ−近傍法、ＳＶＭ、深層学習、ニューラルネットワークなどである。
【０１０３】
図１３は図１２の各データグループに手法を割り当てるのに用いる遺伝的アルゴリズムの処理手順を説明する図である。図１３では、上述した７つの手法を識別するＩＤを含む手法リスト（図１４（ａ））と、Ｎ個のデータグループを識別するＩＤを含むセンサデータリスト（図１４（ｂ））とに基づいて、Ｍ（Ｍは２以上の整数）個の候補解からなる初期の候補モデル群を生成し（図１４（ｃ））、各候補モデル群を評価するための適応度を計算する（ステップＳ４１）。図１４（ｃ）に示すように、Ｍ個の候補解はそれぞれ、各候補モデルが使用する手法の組合せが異なっている。
【０１０４】
次に、終了条件と一致するか否かを判定する（ステップＳ４２）。終了条件とは、適応度が所定の値（例えば、１．０）以上になった場合である。また、処理の反復回数が予め設定した回数に到達した場合を終了条件としてもよい。終了条件と一致する場合には、例えば適応度が最も高い候補モデル群を選択する（ステップＳ４３）。
【０１０５】
ステップＳ４２で終了条件と一致しないと判定されると、遺伝的アルゴリズムを利用して以下のステップＳ４４〜Ｓ４６の処理を行う。ステップＳ４４では、直前の候補解から適応度に応じて二つの候補解を選択する。図１５（ａ）は複数の候補モデル群についての直前の候補解のリストを示す図である。ステップＳ４４では、このリストから、候補解が高い上の二つの候補解を選択する。次に、ステップＳ４５では、選択した候補解に交叉と突然変異を適用して新たな二つの候補解を生成する。ステップＳ４５により、図１５（ｂ）のようなリストが得られる。ステップＳ４６では、新たな二つの候補解の適応度を算出する。
【０１０６】
次に、ステップＳ４７では所定値以上の新たな候補解を生成したか否かをチェックする。所定値以上の新たな候補解を生成していない場合（ステップＳ４７のＮＯ）、ステップＳ４４〜Ｓ４６にて新たな候補解を生成する。所定値以上の新たな候補解を生成している場合（ステップＳ４７のＹＥＳ）、ステップＳ４２の処理が行われる。
【０１０７】
図８のグループ評価部４３は、ユーザによる設定に基づいてデータグループを評価してもよい。図１６はデータグループの評価のためのＧＵＩ画面５１の一例を示す図である。図１６のＧＵＩ画面５１は、第１選択部５２と、第１可視化部５３と、第２選択部５４と、第２可視化部５５と、第３選択部５６と、第４選択部５７と、グループＩＤ入力部５８とを有する。
【０１０８】
第１選択部５２は、すべてのセンサデータをグループ化するか、一部のセンサデータをグループ化するかを選択する。第１可視化部５３は、第１選択部５２で選択されたデータグループに供給されるセンサデータを可視化する。第２可視化部５５は、グループ化部４１で分類される各データグループごとに、第２選択部５４で選択された手法で生成された候補モデルを可視化する。第３選択部５６は、グループ化を終了するか否かを選択する。第４選択部５７は、サブグループ化を行うか否かを選択する。グループＩＤ入力部５８は、サブグループ化を行う場合に、サブグループ化を行うデータグループの識別番号を入力する。
【０１０９】
図１６は、手法Ａ（ｋ平均法）と、手法Ｂ（階層型クラスタリング）と、手法Ｃ（遺伝的アルゴリズム）の中から一つを選択する例を示しているが、選択可能な具体的な手法は図１６に示したものに限定されない。
【０１１０】
第２可視化部５５は、グループ化した結果を表示する。具体的には、各データグループごとに、波形データを可視化する。データグループがサブグループ化されている場合は、サブグループの波形データを可視化する。
【０１１１】
第３選択部５６は、グループ化結果データ可視化部で可視化された波形データが良好であるとユーザが判断した場合に、ユーザによって操作される。このボタンの操作により、グループ化の処理が完了になる。
【０１１２】
このように、第３の実施形態では、センサデータを複数のデータグループに分類して、各データグループごとに最適な手法を選択して、各データグループごとに異常検知モデルを生成する。これにより、従来は異常を検知できなった異常も正しく検知でき、異常検知精度を向上できる。
【０１１３】
上述した実施形態で説明した異常検知装置１の少なくとも一部は、ハードウェアで構成してもよいし、ソフトウェアで構成してもよい。ソフトウェアで構成する場合には、異常検知装置１の少なくとも一部の機能を実現するプログラムをフレキシブルディスクやＣＤ−ＲＯＭ等の記録媒体に収納し、コンピュータに読み込ませて実行させてもよい。記録媒体は、磁気ディスクや光ディスク等の着脱可能なものに限定されず、ハードディスク装置やメモリなどの固定型の記録媒体でもよい。
【０１１４】
また、異常検知装置１の少なくとも一部の機能を実現するプログラムを、インターネット等の通信回線(無線通信も含む)を介して頒布してもよい。さらに、同プログラムを暗号化したり、変調をかけたり、圧縮した状態で、インターネット等の有線回線や無線回線を介して、あるいは記録媒体に収納して頒布してもよい。
【０１１５】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１１６】
１  異常検知装置、２  前処理部、３  モデル群学習／更新部、４  モデル選択部、５  データ分類部、６  センサデータ保持部、７  手法リスト保持部、８  モデル生成部、９  精度算出部、１０  モデル更新部、１１  適用モデル保持部、１２  分類結果保持部、１３  コンセプトドリフト検出部、１３ａ  初期化判定部、１３ｂ  モデル初期化部、２１  候補モデル群選択部、２２  適用モデル群選択部、２３  適用モデル生成部、２４  過去モデル群保持部、４１  グループ化部、４２  手法選択部、４３  グループ評価部、４４  モデルパラメータ値ＤＢ、４５  マッピングＤＢ
【図１】
2020064367.tif 000003
【図２】
2020064367.tif 000004
【図３】
2020064367.tif 000005
【図４】
2020064367.tif 000006
【図５】
2020064367.tif 000007
【図６】
2020064367.tif 000008
【図７】
2020064367.tif 000009
【図８】
2020064367.tif 000010
【図９】
2020064367.tif 000011
【図１０】
2020064367.tif 000012
【図１１】
2020064367.tif 000013
【図１２】
2020064367.tif 000014
【図１３】
2020064367.tif 000015
【図１４】
2020064367.tif 000016
【図１５】
2020064367.tif 000017
【図１６】
2020064367.tif 000018