(57)【要約】  実施形態の異常検知装置は、算出部と、判定部とを持つ。算出部は、対象機器から取得されたデータを用いて機械学習により予測される予測値と、前記対象機器において実際に計測された計測値とに基づいて異常度を算出する。判定部は、所定時間範囲内における、前記算出部によって算出された前記異常度の変化の度合に基づいて、前記異常度の変化が前記対象機器の異常を示すものであるか否かを判定する。
2018230645.tif 000002
【特許請求の範囲】
【請求項１】
対象機器から取得されたデータを用いて機械学習により予測される予測値と、前記対象機器において実際に計測された計測値とに基づいて異常度を算出する算出部と、
所定時間範囲内における、前記算出部によって算出された前記異常度の変化の度合に基づいて、前記異常度の変化が前記対象機器の異常を示すものであるか否かを判定する判定部と、
を備える異常検知装置。
【請求項２】
前記算出部によって算出された前記異常度の変化を検出する検出部をさらに備える、
請求項１に記載の異常検知装置。
【請求項３】
前記判定部は、前記検出部が閾値を超える一方向への前記異常度の変化を検出し、かつ、所定の判定対象時間内に前記異常度の値の変動が所定範囲内に収まった場合に、前記対象機器の状態の変更履歴を参照する、
請求項２に記載の異常検知装置。
【請求項４】
前記判定部は、前記異常度が前記閾値を超える前に、前記対象機器の状態の変更履歴が存在する場合、前記異常度の変化が前記対象機器の異常を示すものではないと判定する、
請求項３に記載の異常検知装置。
【請求項５】
前記検出部は、前記異常度のフィルタリングを行い、前記異常度の時間に対する変化度合が所定の値以上である前記異常度を抑制する、
請求項２から４のいずれか一項に記載の異常検知装置。
【請求項６】
前記判定部は、予め設定された異常度の判定条件に基づいて、前記対象機器から取得されたデータを異常度の評価の対象から除外するか否かを判定する、
請求項１から５のいずれか一項に記載の異常検知装置。
【請求項７】
前記判定部が、前記異常度が閾値を超える前に、前記対象機器の状態の変更履歴が存在し、前記異常度の変化が前記対象機器の異常を示すものではないと判定した場合に、前記対象機器の状態の変更後に取得されたデータと、前記機械学習に使用された第１モデルの生成に使用されたデータとを混合した学習データを生成し、前記学習データを使用して第２モデルを生成する学習部をさらに備える、
請求項１から６のいずれか一項に記載の異常検知装置。
【請求項８】
前記機械学習に使用された前記第１モデルと、前記学習部で生成された前記第２モデルとの精度を比較し、精度が高いモデルを機械学習に使用するモデルとして決定する決定部をさらに備える、
請求項７に記載の異常検知装置。
【請求項９】
前記決定部は、前記第１モデルに基づいて算出される第１異常度と、前記第２モデルに基づいて算出される第２異常度とを比較し、算出された異常度の絶対値が低いモデルを機械学習に使用するモデルとして決定する、
請求項８に記載の異常検知装置。
【請求項１０】
前記判定部が前記異常度の変化が前記対象機器の異常を示すものであると判定した場合に、前記異常の発生を発報する発報部をさらに備える、
請求項１から９のいずれか一項に記載の異常検知装置。
【請求項１１】
対象機器から取得されたデータを用いて機械学習により予測される予測値と、前記対象機器において実際に計測された計測値とに基づいて異常度を算出し、
所定時間範囲内における、前記算出された前記異常度の変化の度合に基づいて、前記異常度の変化が前記対象機器の異常を示すものであるか否かを判定する、
異常検知方法。
【請求項１２】
コンピュータに、
対象機器から取得されたデータを用いて機械学習により予測される予測値と、前記対象機器において実際に計測された計測値とに基づいて異常度を算出させ、
所定時間範囲内における、前記算出された前記異常度の変化の度合に基づいて、前記異常度の変化が前記対象機器の異常を示すものであるか否かを判定させる、
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、異常検知装置、異常検知方法、およびプログラムに関する。
【背景技術】
【０００２】
近年、機械学習を用いた異常検知手法が知られている。例えば、監視対象の機器から取得したデータを用いて機械学習により予測される予測値と、実際に計測された計測値との誤差を算出し、この誤差と予め設定された閾値とを比較することで、機器の異常を検知する手法が知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】日本国特許第５６２３１１０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来の異常検知手法において使用される閾値は、過去の計測値等に基づき設計者により予め設定される。この閾値は高く設定されると、誤差が閾値を超えたときには既に機器の故障等が進行している場合がある。このため、誤差が機器の故障等が進行していない段階（例えば、故障の予兆を示している段階）で異常を検知するためには、閾値を低く設定する必要がある。しかしながら、閾値は低く設定されると、本来、異常と判定すべきではない状態を異常と判定してしまう「誤検知」が頻繁に発生してしまう場合がある。【０００５】
上述の誤検知には様々な原因がある。すなわち、誤検知とは「この条件に当てはまる場合は異常として扱いたくない」という設計者の意図によって定まるものであるため、例えば、一時的な値の変動等は異常と判定することが好ましくない場合がある。また、機械学習においてシステムの全状態を網羅した学習が行われていない場合、状態の変化に伴う正常な範囲内での値の変動を誤って異常と判定してしまうこともある。例えば、「冷房」運転時のデータにより学習したモデルを用いて「暖房」運転時の動作を評価した場合や、試験運用と実運用との条件が異なる際に試験運用時のデータにより学習したモデルを用いて実運用時の動作を評価した場合等が考えられる。このため、精度の高い異常検知を可能としつつも、誤検知の抑制が可能な手法が求められている。【０００６】
本発明が解決しようとする課題は、異常検知における誤検知を抑制し、検知精度を向上させることが可能な異常検知装置、異常検知方法、およびプログラムを提供することである。
【課題を解決するための手段】
【０００７】
実施形態の異常検知装置は、算出部と、判定部とを持つ。算出部は、対象機器から取得されたデータを用いて機械学習により予測される予測値と、前記対象機器において実際に計測された計測値とに基づいて異常度を算出する。判定部は、所定時間範囲内における、前記算出部によって算出された前記異常度の変化の度合に基づいて、前記異常度の変化が前記対象機器の異常を示すものであるか否かを判定する。
【図面の簡単な説明】
【０００８】
【図１】実施形態の異常検知装置の一例を示す図。
【図２】実施形態の異常度の上昇傾向のパターンを示す図。
【図３】実施形態の異常検知装置の処理の一例を示すフローチャート。
【図４】実施形態のフィルタリングの前後における異常度の時間変化を示すグラフ。
【図５】実施形態のフィルタリングの前後における異常度の時間変化を示すグラフ。
【図６】実施形態の異常検知装置の異常判定処理の一例を示すフローチャート。
【図７】実施例１においてパターン１に相当する時系列データに対してフィルタリングを行った前後の様子を示す図。
【図８】実施例１においてパターン２に相当する時系列データに対してフィルタリングを行った前後の様子を示す図。
【図９】実施例１においてパターン３に相当する時系列データに対してフィルタリングを行った前後の様子を示す図。
【図１０】実施例１においてパターン４に相当する時系列データに対してフィルタリングを行った前後の様子を示す図。
【図１１】実施例２において異常度の時系列データに対してフィルタリングを行い、矩形と判定された異常度の算出に使用された計測値を学習した場合の異常度の変化を示す図。
【発明を実施するための形態】
【０００９】
以下、実施形態の異常検知装置、異常検知方法、およびプログラムを、図面を参照して説明する。
【００１０】
図１は、実施形態の異常検知装置１の一例を示す図である。異常検知装置１は、機械学習を用いて、異常検知の対象となる対象機器Ｔの異常の発生の有無を検知する。異常検知装置１は、対象機器Ｔからデータ（計測値等）を取得し、このデータから予測される対象機器Ｔの挙動の予測値と、実際に計測された計測値とに基づいて異常度を算出し、この異常度の変化度合（例えば、異常度の上昇傾向、或いは下降傾向）に基づいて対象機器Ｔの異常の発生の有無を検知する。異常度とは、対象機器Ｔの予測値と計測値との違いの度合い（乖離度）を示す指標値である。
【００１１】
異常検知装置１は、例えば、未来のある時点における、対象機器Ｔの予測値と計測値との誤差、または、現在（データ取得時）における、対象機器Ｔの予測値と計測値との誤差を異常度として算出する。異常検知装置１は、例えば、二乗誤差等を用いて異常度を算出する。なお、異常検知装置１は、絶対誤差等の他の任意の誤差算出手法を用いて異常度を算出してもよい。また、異常度は、対象機器Ｔの予測値と計測値との誤差に基づいて算出されるものに限られず、対象機器Ｔの予測値と計測値との違いの度合いを示す指標値であれば任意のものを使用してよい。また、異常度は、０または正の値であって、その値が大きいほど（絶対値が大きいほど）、対象機器Ｔの予測値と計測値との誤差が大きいことを示すように定義されてもよい。或いは、異常度は、０または負の値であって、その値が小さいほど（絶対値が大きいほど）、対象機器Ｔの予測値と計測値との誤差が大きいことを示すように定義されてもよい。以下においては、異常度が、０または正の値であって、その値が大きいほど、対象機器Ｔの予測値と計測値との誤差が大きいことを示すように定義された例を説明する。なお、本実施形態における異常の検知とは、対象機器Ｔの故障の予兆を検知することと、対象機器Ｔの故障を検知することとの双方を含む。以下においては、異常の検知が、故障の予兆を検知することである例を説明する。
【００１２】
本実施形態において対象とする異常度の上昇傾向は、例えば、図２に示すような４つのパターンに分類される。パターン１は、時間の経過とともに、異常度が徐々に上昇する上昇傾向を示す。パターン２は、スパイク状の異常度の上昇が連続して発生する上昇傾向を示す。これらのパターン１および２の上昇傾向は、故障の予兆である場合が多いと判定されるため、異常検知装置１は、これらのパターンに相当する異常度の上昇傾向を「異常」と判定する。
【００１３】
パターン３は、異常度が急激に上昇してその後に安定する（時間に対する異常度のグラフが矩形状となる）上昇傾向を示す。このパターン３の上昇傾向は、異常度が急激に上昇するような突発的な故障が発生したか（すなわち、異常が発生した）、または、対象機器Ｔの状態が変更されたこと（すなわち、異常は発生していない）を示していることが想定される。対象機器Ｔの状態が変更されたとは、対象機器Ｔの動作状態、動作環境等が変更されたことを言う。例えば、対象機器Ｔが空調機器である場合に「冷房」運転から「暖房」運転に変更されること、対象機器Ｔが生産設備である場合に生産物が変更されること等を示す。この場合、異常検知装置１は、突発的な故障が発生したと判定される場合にのみ「異常」と判定し、対象機器Ｔの状態が変更されたと判定される場合には「異常ではない（誤検知）」と判定する。
【００１４】
パターン４は、単一のスパイク状の異常度の上昇が発生する上昇傾向を示す。このパターン４の上昇傾向は、例えば、１つのセンサのみが特異な値（予測値と大きく異なる計測値）を出力しているような場合が想定される。この場合、異常検知装置１は、パターン４に相当する異常度の上昇傾向を「誤検知」と判定する。
【００１５】
対象機器Ｔは、例えば、任意の計測値を出力することが可能な機器、装置、設備、施設、工場、プラント等を含む。異常検知装置１と、対象機器Ｔとは、ネットワークＮを介して互いに接続されている。ネットワークＮは、例えば、ＷＡＮ（Wide Area Network）やＬＡＮ（Local Area Network）、インターネット、専用回線等を含む。
【００１６】
異常検知装置１は、例えば、通信部１０と、算出部１２と、検出部１４と、異常判定部１６（判定部の一例）と、学習部１８と、更新判定部２０（決定部の一例）と、発報部２２と、記憶部２４とを備える。異常検知装置１は、通信部１０を介して、対象機器Ｔからデータを取得して記憶部２４に記憶させる。対象機器Ｔから取得されるデータには、対象機器Ｔに設置されたセンサ等により計測された計測値Ｄ、対象機器Ｔの状態変更の履歴を示す状態変更履歴Ｈ、動作条件等が含まれる。
【００１７】
算出部１２は、通信部１０から入力された計測値Ｄを用いて、異常度を算出する。例えば、算出部１２は、対象機器Ｔの動作を学習することにより生成されたモデルＭ（第１モデル）を記憶部２４から読み出し、このモデルＭを用いた機械学習により対象機器Ｔの挙動の予測値を算出し、この予測値と、計測値との誤差である異常度を算出する。
【００１８】
算出部１２における機械学習では、多層構造のニューラルネットワーク（Ｄｅｅｐ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋ：ＤＮＮ）、畳み込みニューラルネットワーク（Ｃｏｎｖｏｌｕｔｉｏｎａｌ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋ：ＣＮＮ）、再帰型ニューラルネットワーク（Ｒｅｃｕｒｒｅｎｔ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋ：ＲＮＮ）等を用いたディープラーニング技術を採用してよい。
【００１９】
検出部１４は、算出部１２によって算出された異常度に対してフィルタリングを行い、フィルタリング後の異常度のデータにおける、予め設定された閾値を超えているまたは閾値以上である異常度（以下、単に「閾値を超えている異常度」と呼ぶ）の存在を検出する。すなわち、検出部１４は、異常度の時間に対する変化度合が所定の値以上である異常度を抑制する。これにより、検出部１４は、時間方向に対する異常度の変化を滑らかにする。検出部１４は、例えば、ローパスフィルター（ＬＰＦ：Low-pass filter）を用いたフィルタリングを行う。検出部１４は、例えば、時間に対する異常度の変化が所定の周波数以下であるデータのみを通過させるフィルタリングを行う。なお、検出部１４は、上述のフィルタリングを行わず、算出部１２によって算出された異常度のデータにおける、予め設定された閾値を超えているまたは閾値以上である異常度の存在（異常度の上昇）を検出してもよい。以下においては、検出部１４が上述のフィルタリングを行う例について説明する。
【００２０】
異常判定部１６は、閾値を超えている異常度が、「異常（故障の予兆）」および「異常ではない（誤検知）」のいずれを示すものであるのかを判定する。すなわち、異常判定部１６は、所定時間範囲内における、算出部１２によって算出された異常度の上昇の変化度合に基づいて、異常度の上昇が対象機器Ｔの異常を示すものであるか否かを判定する。異常判定部１６は、閾値を超えた異常度の上昇傾向を示したデータが、予め設定された異常度を無視するルール（判定条件）に該当するか否か、所定の判定対象時間内に異常度の上昇が安定するか否か（所定範囲に収まるか否か）、対象機器Ｔにおいて状態変更が行われているか否かに基づいて「異常」または「誤検知」の判定を行う。異常判定部１６の詳細については後述する。
【００２１】
学習部１８は、異常判定部１６が対象機器Ｔの状態変更が行われていたと判定した場合に、対象機器Ｔの状態変更後の計測値を含む学習データを用いて再学習を行い新たなモデル（第２モデル）を生成する。学習部１８は、例えば、現在のモデル（第１モデル）を生成するために使用したデータと、対象機器Ｔの状態変更後の計測値とをランダムに混合したデータを用いて再学習を行い新たなモデルを生成する。
【００２２】
更新判定部２０は、現在のモデルおよび新たなモデルの精度評価を行う。更新判定部２０は、現在のモデルにより予測された予測値から算出される異常度（第１異常度）と、新たなモデルにより予測された予測値から算出される異常度（第２異常度）とを比較し、より低い異常度を算出したモデルを精度が高いモデルであると判定する。更新判定部２０は、現在のモデルの精度が高いと判定した場合、現在のモデルを以後の機械学習で使用するモデルに決定し、記憶部２４に記憶されたモデル（現在のモデル）は更新しない。一方、更新判定部２０は、新たなモデルの精度が高いと判定した場合、新たなモデルを以後の機械学習で使用するモデルに決定し、記憶部２４に記憶されたモデル（現在のモデル）を新たなモデルで更新する。
【００２３】
発報部２２は、異常判定部１６が「異常」と判定した場合に、管理者等に異常が発生した旨を発報する。発報部２２は、音声、警告音等により異常が発生した旨を発報する。なお、発報部２２は、表示部（図示しない）に異常が発生した旨を表示させてもよい。
【００２４】
異常検知装置１の各機能部は、コンピュータ等に搭載されるＣＰＵ等のプロセッサが、プログラムメモリ等に記憶されたプログラムを実行することで実現される。なお、これらの機能部は、プロセッサがプログラムを実行するのと同様の機能を有するＬＳＩ（Large Scale Integration）、ＡＳＩＣ（Application Specific Integrated Circuit）、およびＦＰＧＡ（Field-Programmable Gate Array）、ＧＰＵ（Graphics Processing Unit）等のハードウェアにより実現されてもよいし、ソフトウェアとハードウェアが協働することにより実現されてもよい。
【００２５】
記憶部２４は、対象機器Ｔから取得された計測値Ｄ、モデルＭ、状態変更履歴等を記憶する。記憶部２４は、例えば、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）、ＨＤＤ（Hard Disk Drive）フラッシュメモリ、ＳＤカード、レジスタ、またはこれらのうち複数が組み合わされたハイブリッド型記憶装置等により実現される。また、記憶部２４の一部または全部は、ＮＡＳ（Network Attached Storage）や外部のストレージサーバ等、異常検知装置１がアクセス可能な外部装置であってもよい。
【００２６】
次に、異常検知装置１の動作について説明する。図３は、異常検知装置１の処理の一例を示すフローチャートである。図３に示すフローチャートの処理は対象機器Ｔの異常検知を行っている間に継続的に繰り返し実行される。
【００２７】
まず、異常検知装置１は、通信部１０を介して、対象機器Ｔから計測値Ｄを取得する（ステップＳ１０１）。異常検知装置１は、取得した計測値Ｄを記憶部２４に記憶させる。異常検知装置１は、対象機器Ｔに状態変更が行われている場合には、その状態変更の履歴を示す状態変更履歴Ｈを取得し、記憶部２４に記憶させる。
【００２８】
次に、算出部１２は、通信部１０から入力された計測値Ｄを用いて、異常度を算出する（ステップＳ１０３）。例えば、算出部１２は、モデルＭを記憶部２４から読み出し、このモデルＭを用いた機械学習により対象機器Ｔの挙動の予測値を算出し、この予測値と、計測値との誤差である異常度を算出する。算出部１２は、例えば、未来のある時点における対象機器Ｔの挙動の予測値を算出し、この予測値と、同時点において実際に計測された計測値との誤差である異常度を算出する。算出部１２は、算出した異常度を検出部１４に入力する。
【００２９】
次に、検出部１４は、算出部１２から入力された異常度に対してフィルタリングを行う（ステップＳ１０５）。検出部１４は、例えば、ローパスフィルターを用いたフィルタリングを行う。図４および５は、フィルタリングの前後における異常度の時間変化を示すグラフである。図４に示すように、図２に示す「パターン４」に相当する単一のスパイク状の異常度の上昇は、フィルタリングにより抑制される。これにより、後述する異常判定部１６の処理において、単一のスパイク状の異常度の上昇は「異常」と判定されないため誤検知を抑制することができる。
【００３０】
また、図５に示すように、図２に示す「パターン４」に相当する単一のスパイク状の異常度の上昇がフィルタリングにより抑制されることで、図２に示す「パターン３」に相当する矩形型の異常度の上昇傾向の判定が可能となる。これにより、後述する異常判定部１６の処理において、異常度の安定が早期に判定でき、異常度の上昇傾向が捉えやすくなり、図２に示す「パターン３」に相当する矩形型の判定が可能となる。なお、検出部１４は、ローパスフィルターに代えて、異常度の上昇傾向を捉えやすくするような別のフィルターを用いてもよい。また、検出部１４は、異常度の上昇傾向に関する予め定められたルール（例えば、スパイク状の異常度の上昇の数、出現頻度等に関するルール）に基づいて、このルールに合致する異常度のデータを除外するようにしてもよい。
【００３１】
次に、検出部１４は、フィルタリングを行った異常度のデータに、閾値を超えているデータが存在するか否かを判定する（ステップＳ１０７）。検出部１４がフィルタリングを行った異常度のデータに閾値を超えているデータが存在しないと判定した場合、異常検知装置１は、本フローチャートのこれ以降の処理を行わず、再度、上述の計測値の取得処理に戻り、同様な処理を繰り返す。
【００３２】
一方、検出部１４は、フィルタリングを行った異常度のデータに、閾値を超えているデータが存在すると判定した場合、異常判定部１６を起動する。検出部１４によって起動された異常判定部１６は、閾値を超えている異常度が、「異常」および「誤検知」のいずれを示すものであるのかを判定する異常判定を行う（ステップＳ１０９）。図６は、異常検知装置１の異常判定処理の一例を示すフローチャートである。
【００３３】
まず、異常判定部１６は、検出部１４によって起動された起動時刻ｔを、例えば、メモリ（図示しない）や記憶部２４等に記録する（ステップＳ２０１）。次に、異常判定部１６は、閾値を超える異常度の算出に使用された計測値が、異常度を無視するルールに当てはまるか否かを判定する（ステップＳ２０３）。例えば、異常度を無視するルールとして「出力電圧が０ボルト（停止期間のため異常検知対象外）」が予め定められており、計測値がこのルールに該当する場合、異常判定部１６は、異常度を無視するルールに当てはまると判定する。異常判定部１６は、閾値を超える異常度の算出に使用された計測値が、異常度を無視するルールに当てはまると判定した場合、「ルール該当」と判定し（ステップＳ２１７）、本フローチャートの処理を終了する。
【００３４】
一方、異常判定部１６は、閾値を超える異常度の算出に使用された計測値が、異常度を無視するルールに当てはまらないと判定した場合、起動時刻ｔから所定の時間幅Ｘに含まれる異常度を抽出し、この時間幅Ｘの異常度が安定しているか否かを判定する（ステップＳ２０５）。異常判定部１６は、例えば、抽出した時間幅Ｘの異常度の標準偏差が所定の分散閾値Ｄ以下であるか否かを判定し、所定の分散閾値Ｄ以下である場合には異常度が安定していると判定する。異常判定部１６は、図２に示すパターン３のような矩形型の異常度の上昇傾向に関しては、時間の経過とともに、異常度が安定していると判定する。
【００３５】
異常判定部１６は、時間幅Ｘの異常度が安定していると判定した場合、例えば、記憶部２４に記憶された状態変更履歴Ｈを参照し、起動時刻ｔから状態変更に必要とされる時間Ａを減算した時刻（ｔ−Ａ）から、起動時刻ｔまでの間に対象機器Ｔの状態変更が行われているか否かを判定する（ステップＳ２０７）。対象機器Ｔの状態変更が行われている場合、異常度の上昇は状態変更に起因するものであると考えられる。このため、異常判定部１６は、対象機器Ｔの状態変更が行われていると判定した場合、「異常無し」と判定し（ステップＳ２１５）、本フローチャートの処理を終了する。一方、対象機器Ｔの状態変更が行われていない場合、異常度の上昇は状態変更によるものではない何らかの異常な要因に起因するものであると考えられる。このため、異常判定部１６は、対象機器Ｔの状態変更が行われていないと判定した場合、「異常有り」と判定し（ステップＳ２１１）、本フローチャートの処理を終了する。
【００３６】
一方、異常判定部１６は、時間幅Ｘの異常度が安定していないと判定した場合、判定対象とする全ての異常度に対する処理が完了したか否かを判定する（ステップＳ２０９）。異常判定部１６は、例えば、起動時刻ｔから所定時間Ｓ経過までに含まれる異常度を判定対象と設定している場合、この起動時刻ｔから所定時間Ｓ経過までに含まれる異常度に対する処理が完了したか否かを判定する。異常判定部１６は、判定対象とする全ての異常度の処理が完了したと判定した場合（起動時刻ｔから所定時間Ｓ経過までに異常度が安定しなかった場合）、「異常有り」と判定し（ステップＳ２１１）、本フローチャートの処理を終了する。一方、異常判定部１６は、判定対象とする全ての異常度の処理が完了していないと判定した場合、次の時間幅Ｘの異常度（すなわち、起動時刻ｔ＋Ｘからｔ＋２Ｘまでの期間に含まれる異常度）を抽出し（ステップＳ２１３）、この次の時間幅Ｘの異常度が安定しているか否かを判定する（ステップＳ２０５）。
【００３７】
図３に示すフローチャートの説明に戻る。次に、異常判定部１６は、「ルール該当」と判定している場合（ステップＳ１１１）、本フローチャートのこれ以降の処理を行わず、再度、上述の計測値の取得処理に戻り、同様な処理を繰り返す。
【００３８】
一方、異常判定部１６は、「ルール該当」と判定しておらず、かつ、「異常有り」と判定している場合（ステップＳ１１３）、発報部２２を起動する。発報部２２は、管理者等に異常が発生した旨を発報する（ステップＳ１１５）。
【００３９】
一方、異常判定部１６は、「ルール該当」と判定しておらず、かつ、「異常無し」と判定している場合（ステップＳ１１３）（すなわち、対象機器Ｔの状態変更が行われていると判定した場合）、学習部１８を起動する。学習部１８は、対象機器Ｔの状態変更後の計測値を含む学習データを用いて再学習を行い（ステップＳ１１７）、新たなモデルを生成する。学習部１８は、例えば、現在のモデルを生成するために使用したデータと、対象機器Ｔの状態変更後の計測値とをランダムに混合したデータを用いて再学習を行い新たなモデルを生成する。学習部１８は、生成した新たなモデルと、再学習に用いた学習データと、直近の所定期間（例えば、直近１ヶ月等）の計測値から再学習に用いた学習データを除外した評価用データとを、更新判定部２０に入力する。
【００４０】
次に、更新判定部２０は、学習部１８から入力された評価用データを用いて、現在のモデルおよび新たなモデルの精度評価を行い、モデルの更新が必要か否かを判定する（ステップＳ１１９）。更新判定部２０は、例えば、現在のモデルにより予測された予測値から算出される異常度と、新たなモデルにより予測された予測値から算出される異常度とを比較し、現在のモデルに基づく異常度が、新たなモデルに基づく異常度よりも高い場合に、モデルの更新が必要と判定し、現在のモデルに基づく異常度が、新たなモデルに基づく異常度よりも低い場合に、モデルの更新が不要と判定する。更新判定部２０は、例えば、評価用データに含まれる複数のデータにおいて、異常度の平均値等を用いて、いずれのモデルの異常度が低いかを判定する。
【００４１】
更新判定部２０は、モデルの更新が必要と判定した場合、記憶部２４に記憶された現在のモデルを新たなモデルで更新する（ステップＳ１２１）。一方、更新判定部２０は、モデルの更新が不要と判定した場合、記憶部２４に記憶された現在のモデルの更新を行わない。以上により、本フローチャートの一連の処理を終了し、再度、上述の計測値の取得処理に戻り、同様な処理を繰り返す。
【００４２】
以下、実施例を示し、実施形態をより具体的に説明する。
【００４３】
（実施例１）
実施例１において、異常度の時系列データを準備し、この異常度の時系列データに対してローパスフィルターによるフィルタリングを行った結果を示す。フィルタリングにおけるサンプリング周波数を１．０（Ｈｚ）とし、タップ数を６００とし、カットオフ周波数を０．０５（Ｈｚ）に設定した。
【００４４】
図７は、図２に示すパターン１（徐々に上昇）に相当する時系列データに対して、ローパスフィルターによるフィルタリングを行った前後の様子を示す。図８は、図２に示すパターン２（連続のスパイク）に相当する時系列データに対して、ローパスフィルターによるフィルタリングを施した前後の様子を示す。
【００４５】
図７に示す実施例では、フィルタリング前における異常度の急激な変動が抑制された結果、曲線が平滑化され異常度の上昇傾向の判定が容易となることが分かった。また、フィルタリング後の異常度に関して、閾値を定め（Ｓ１）、閾値を超えた時刻（上述の起動時刻ｔ）を記録し（Ｓ２）、起動時刻ｔから所定時間Ｓを経過する間に異常度の上昇が安定するかを確認した。この実施例では、異常度の上昇が安定しないことが分かった。これにより、後続する異常判定部１６の処理では、この徐々に上昇する異常度の上昇は「異常」と判定されることが分かった。
【００４６】
図８に示す例では、フィルタリングの結果、連続のスパイク状の異常度の大きさが全体的に減少しているが、依然として閾値を超えていることが示されている。これにより、後続する異常判定部１６の処理では、この連続のスパイク状の異常度の上昇は「異常」と判定されることが分かった。
【００４７】
図９は、実施例１において、図２に示すパターン３（矩形）に相当する時系列データに対して、ローパスフィルターによるフィルタリングを行った前後の様子を示す。図１０は、実施例１において、図２に示すパターン４（単一のスパイク）に相当する時系列データに対して、ローパスフィルターによるフィルタリングを行った前後の様子を示す。
【００４８】
図９に示す実施例では、フィルタリング前における異常度の急激な変動が抑制された結果、曲線が平滑化され異常度の上昇傾向の判定（矩形型）が容易となることが分かった。また。フィルタリング後の異常度に関して、閾値を定め（Ｓ１）、閾値を超えた時刻（上述の起動時刻ｔ）を記録し（Ｓ２）、起動時刻ｔから所定時間Ｓを経過する間に異常度の上昇が安定するかを確認した。この実施例では、異常度の上昇が安定することが確認できた。この場合、記憶部２４に記憶された時刻ｔ−ＡからＡまでの間の状態変更履歴Ｈを確認することで（Ｓ４）、異常度の急激な上昇が状態変更によるものであるのか、または、故障の予兆を示すものであるのかを判定することが可能となる。
【００４９】
また、図１０に示す実施例では、フィルタリングによって、単一のスパイク状の異常度の上昇が抑制され、異常度が閾値未満の値に抑えられている。これにより、後続する異常判定部１６の処理では、この単一のスパイク状の異常度の上昇は「異常ではない」と判定され、誤検知を抑制することが可能となることが分かった。
【００５０】
（実施例２）
次に、実施例２において、異常度の時系列データを準備し、この異常度の時系列データに対してローパスフィルターによるフィルタリングを行い、矩形と判定されたデータを学習した場合の異常度の様子を確認した。フィルタリングにおけるサンプリング周波数を１．０（Ｈｚ）とし、タップ数を６００とし、カットオフ周波数を０．０５（Ｈｚ）に設定した。
【００５１】
図１１は、異常度の時系列データに対してフィルタリングを行い、矩形と判定された異常度の算出に使用された計測値を学習した場合の異常度の変化を示す。この実施例では、異常度の時系列データに対して、ローパスフィルターによるフィルタリングを施した後、まずは、矩形１の範囲の状態変化後の計測値を学習して新たなモデルを生成することで、矩形１の範囲における異常度の上昇が抑えられる（状態変化学習後１参照）。さらに、矩形２の範囲の状態変化後の計測値を学習して新たなモデルを生成することで、矩形２の範囲における異常度の上昇が抑えられる（状態変化学習後２参照）。これにより、状態変化学習後２における「徐々に上昇１」の異常度の上昇に基づいて、異常を検知し、発報処理を行うことが可能となる。
【００５２】
以上で説明した実施形態によれば、異常検知における誤検知を抑制し、検知精度を向上させることが可能となる。これにより、異常度に対する閾値を低く設定することが可能となり、故障につながる予兆を早期に検出することが可能となる。また、状態変更があった場合にはモデルの更新を行うことで、誤検知への対処を自動的に完了することが可能である。このため、作業者によるモデルの修正が不要となる。また、異常検知開始時点において対象機器Ｔの全ての状態を網羅した学習が完了していない場合であっても、異常検知を正常に実施および運用することが可能となる。
【００５３】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【図１】
2018230645.tif 000003
【図２】
2018230645.tif 000004
【図３】
2018230645.tif 000005
【図４】
2018230645.tif 000006
【図５】
2018230645.tif 000007
【図６】
2018230645.tif 000008
【図７】
2018230645.tif 000009
【図８】
2018230645.tif 000010
【図９】
2018230645.tif 000011
【図１０】
2018230645.tif 000012
【図１１】
2018230645.tif 000013
【国際調査報告】
2018230645.tif 000014
2018230645.tif 000015
2018230645.tif 000016