(57)【要約】      （修正有）【課題】異常を検出するための計算コストを小さくすることを目的とする。【解決手段】正常な状態で得られる複数の正常データを入力する第１入力部と、複数の正常データから、クラスタリングの対象とする正常データを選択して第１データ集合を決定する第１データ集合決定部と、第１データ集合を所定数のクラスタにする第１クラスタリング部と、クラスタごとに、それぞれの第１重心を計算する第１重心計算部と、第１重心に基づいて、正常と判定する正常範囲を設定する設定部と、診断対象における複数の診断データを入力する第２入力部と、複数の診断データから、クラスタリングの対象とする診断データを選択して第２データ集合を決定する第２データ集合決定部と、第２データ集合を所定数の診断クラスタにする第２クラスタリング部と、診断クラスタごとに、第２重心を計算する第２重心計算部と、第２重心及び前記正常範囲に基づいて診断を行う診断部とを含む。【選択図】図３７
2019003238.tif 000002
【特許請求の範囲】
【請求項１】
装置又はプロセスについての変数を示すデータであって、装置又はプロセスが正常な状態で得られる複数の正常データを入力する第１入力部と、
前記複数の正常データから、クラスタリングの対象とする前記正常データを選択して第１データ集合を決定する第１データ集合決定部と、
前記第１データ集合を所定数のクラスタにする第１クラスタリング部と、
前記クラスタごとに、それぞれの第１重心を計算する第１重心計算部と、
前記第１重心に基づいて、正常と判定する正常範囲を設定する設定部と、
診断対象となる装置又はプロセスにおける前記変数を示す複数の診断データを入力する第２入力部と、
前記複数の診断データから、クラスタリングの対象とする前記診断データを選択して第２データ集合を決定する第２データ集合決定部と、
前記第２データ集合を前記所定数の診断クラスタにする第２クラスタリング部と、
前記診断クラスタごとに、それぞれの第２重心を計算する第２重心計算部と、
前記第２重心及び前記正常範囲に基づいて診断を行う診断部と
を含む異常検出装置。
【請求項２】
前記第１データ集合決定部は、前記正常データを移動窓によって選択し、
前記第２データ集合決定部は、前記診断データを移動窓によって選択する請求項１に記載の異常検出装置。
【請求項３】
前記第１クラスタリング部及び前記第２クラスタリング部は、ｋ−ｍｅａｎｓ法によってデータ集合をクラスタリングする請求項１又は２に記載の異常検出装置。
【請求項４】
異なるデータ集合で初期値が共通した値である請求項３に記載の異常検出装置。
【請求項５】
前記第２重心の軌跡及び前記正常範囲を表示する表示部を更に含む請求項１乃至４のいずれか１項に記載の異常検出装置。
【請求項６】
前記設定部は、前記第１データ集合ごとの前記第１重心を対応付けして前記正常範囲を設定する請求項１乃至５のいずれか１項に記載の異常検出装置。
【請求項７】
装置又はプロセスについての変数を示す複数のデータであって、装置又はプロセスが正常な状態で得られる複数の正常データを入力する第１入力部と、
前記複数の正常データから、クラスタリングの対象とする前記正常データを選択して第１データ集合を決定する第１データ集合決定部と、
前記第１データ集合を所定数のクラスタにする第１クラスタリング部と、
診断対象となる装置又はプロセスにおける前記変数を示す複数の診断データを入力する第２入力部と、
前記複数の診断データから、クラスタリングの対象とする前記診断データを選択して第２データ集合を決定する第２データ集合決定部と、
前記第２データ集合を前記所定数の診断クラスタにする第２クラスタリング部と、
前記第１データ集合に基づいて、平均固有値及び平均固有ベクトルを計算し、
前記平均固有値及び前記平均固有ベクトルに基づく閾値を設定し、
前記第２データ集合に基づいて、固有値及び固有ベクトルを計算し、
前記固有値、前記固有ベクトル及び前記閾値に基づいて診断を行う診断部と
を含む異常検出装置。
【請求項８】
１以上の情報処理装置を含む異常検出システムであって、
装置又はプロセスについての変数を示す複数のデータであって、装置又はプロセスが正常な状態で得られる複数の正常データを入力する第１入力部と、
前記複数の正常データから、クラスタリングの対象とする前記正常データを選択して第１データ集合を決定する第１データ集合決定部と、
前記第１データ集合を所定数のクラスタにする第１クラスタリング部と、
前記クラスタごとに、それぞれの第１重心を計算する第１重心計算部と、
前記第１重心に基づいて、正常と判定する正常範囲を設定する設定部と、
診断対象となる装置又はプロセスにおける前記変数を示す複数の診断データを入力する第２入力部と、
前記複数の診断データから、クラスタリングの対象とする前記診断データを選択して第２データ集合を決定する第２データ集合決定部と、
前記第２データ集合を前記所定数の診断クラスタにする第２クラスタリング部と、
前記診断クラスタごとに、それぞれの第２重心を計算する第２重心計算部と、
前記第２重心及び前記正常範囲に基づいて診断を行う診断部と
を含む異常検出システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、異常検出装置及び異常検出システムに関する。
【背景技術】
【０００２】
従来、製品を製造するプラント等において、製造工程等のプロセスをセンサ等で監視する方法が知られている。そして、センサによってセンシングしたデータを用いて、プロセス上の異常を検知する方法が知られている。
【０００３】
例えば、設備状態監視装置が、まず、学習データをクラスタリングする。次に、設備状態監視装置が、新しく観測された観測データに近いクラスタを選択する。そして、選択されたクラスタに基づいて、設備状態監視装置は、正常モデルを生成する。続いて、設備状態監視装置は、正常モデルに基づいて閾値を決定する。このようにして決定される閾値と、新しく観測するデータ及び正常モデルから生成される異常測度とを比較して、設備状態監視装置は、設備の異常を検出する。このように、データ検索時間を短縮させて短時間で設備の異常を検出できる方法が知られている（例えば、特許文献１等）。
【０００４】
他にも、例えば、クラスタリングの際に、ｋ−ｍｅａｎｓ法のような非階層的なクラスタリング法を用いる方法がある。このような方法では、初期設定の仕方によって、クラスタリングの結果が、大きくばらつく場合が多い。そこで、初期設定において、独立成分分析等を行う方法が知られている（例えば、非特許文献１等）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１４−３２６５７号公報
【非特許文献】
【０００６】
【非特許文献１】"初期値設定法の違いによるｋ−ｍｅａｎｓ法の性能比較"，"ｈｔｔｐｓ：／／ｗｗｗ．ｊｓｔａｇｅ．ｊｓｔ．ｇｏ．ｊｐ／ａｒｔｉｃｌｅ／ｆｓｓ／２７／０／２７＿０＿５５／＿ｐｄｆ"，小野田  崇，坂井  美帆，山田  誠二  著，ファジィシステムシンポジウム，２０１１
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、従来の方法では、正常モデルの生成又は独立成分分析等の複雑な計算を行わないと、装置等の異常が検出できないため、異常を検出するための計算コストが大きくなるという課題がある。
【０００８】
本発明の１つの側面は、このような問題に鑑みてなされたものであり、異常を検出するための計算コストを小さくすることを目的とする。
【課題を解決するための手段】
【０００９】
上述した課題を解決し、目的を達成するため、本発明の一実施形態における、異常検出装置は、
装置又はプロセスについての変数を示す複数のデータであって、装置又はプロセスが正常な状態で得られる複数の正常データを入力する第１入力部と、
前記複数の正常データから、クラスタリングの対象とする前記正常データを選択して第１データ集合を決定する第１データ集合決定部と、
前記第１データ集合を所定数のクラスタにする第１クラスタリング部と、
前記クラスタごとに、それぞれの第１重心を計算する第１重心計算部と、
前記第１重心に基づいて、正常と判定する正常範囲を設定する設定部と、
診断対象となる装置又はプロセスにおける前記変数を示す複数の診断データを入力する第２入力部と、
前記複数の診断データから、クラスタリングの対象とする前記診断データを選択して第２データ集合を決定する第２データ集合決定部と、
前記第２データ集合を前記所定数の診断クラスタにする第２クラスタリング部と、
前記診断クラスタごとに、それぞれの第２重心を計算する第２重心計算部と、
前記第２重心及び前記正常範囲に基づいて診断を行う診断部と
を含む。
【発明の効果】
【００１０】
本発明によれば、異常を検出するための計算コストを小さくできる。
【図面の簡単な説明】
【００１１】
【図１】本発明の一実施形態に係る異常検出を行うための全体構成例を示す概略図である。
【図２】本発明の一実施形態に係る異常検出装置のハードウェア構成例を示すブロック図である。
【図３】本発明の一実施形態に係る異常検出装置に入力されるデータの集まりの一例を示す表である。
【図４】本発明の一実施形態に係る異常検出装置による全体処理例を示すフローチャートである。
【図５】本発明の一実施形態に係る異常検出装置によるオフライン処理例を示すフローチャートである。
【図６】本発明の一実施形態に係る異常検出装置が移動窓によってデータ集合を決定する例を示す図である。
【図７】本発明の一実施形態に係る異常検出装置によるオフライン処理でのクラスタリング及び重心の計算の一例を示す図である。
【図８】本発明の一実施形態に係る異常検出装置による重心を対応付けする例を示す図である。
【図９】本発明の一実施形態に係る異常検出装置によって重心が対応付けされた結果の一例を示す図である。
【図１０】本発明の一実施形態に係る異常検出装置による正常範囲の設定例を示す図である。
【図１１】本発明の一実施形態に係る異常検出装置によるオンライン処理例を示すフローチャートである。
【図１２】本発明の一実施形態に係る異常検出装置によるオンライン処理でのクラスタリング及び重心の計算の一例を示す図である。
【図１３】本発明の一実施形態に係る異常検出装置による診断例を示す図である。
【図１４】本発明の一実施形態に係る異常検出装置によるオンライン処理の処理結果例を示す図である。
【図１５】比較例におけるクラスタリング及び重心の計算の一例を示す図である。
【図１６】比較例における正常範囲の設定例を示す図である。
【図１７】本発明の一実施形態に係る異常検出装置による表示画面の第１例を示す図である。
【図１８】本発明の一実施形態に係る異常検出装置による表示画面の第２例を示す図である。
【図１９】本発明の一実施形態に係る異常検出装置による表示画面の切り替え例を示す図である。
【図２０】比較例におけるトレンドグラフを示す図である。
【図２１】比較例における散布図を示す図である。
【図２２】本発明の第２実施形態の一実施形態に係る異常検出装置による学習処理例を示すフローチャートである。
【図２３】本発明の第２実施形態の一実施形態に係る異常検出装置によるオンライン処理例を示すフローチャートである。
【図２４】本発明の第２実施形態の一実施形態に係る異常検出装置による学習処理の処理結果（その１）を示す図である。
【図２５】本発明の第２実施形態の一実施形態に係る異常検出装置による学習処理の処理結果（その２）を示す図である。
【図２６】本発明の第２実施形態の一実施形態に係る異常検出装置による学習処理の処理結果（その３）を示す図である。
【図２７】本発明の第２実施形態の一実施形態に係る異常検出装置による学習処理の処理結果（その４）を示す図である。
【図２８】本発明の第２実施形態の一実施形態に係る異常検出装置による学習処理の処理結果（その５）を示す図である。
【図２９】本発明の第２実施形態の一実施形態に係る異常検出装置によるオンライン処理の処理結果（その１）を示す図である。
【図３０】本発明の第２実施形態の一実施形態に係る異常検出装置によるオンライン処理の処理結果（その２）を示す図である。
【図３１】本発明の一実施形態に係る異常検出装置による全体処理の処理結果（その１）を示す図である。
【図３２】本発明の一実施形態に係る異常検出装置による全体処理の処理結果（その２）を示す図である。
【図３３】本発明の一実施形態に係る異常検出装置による全体処理の処理結果（その３）を示す図である。
【図３４】本発明の一実施形態に係る異常検出装置による全体処理の処理結果（その４）を示す図である。
【図３５】本発明の一実施形態に係る異常検出装置による全体処理の処理結果（その５）を示す図である。
【図３６】本発明の一実施形態に係る異常検出装置による全体処理の処理結果（その６）を示す図である。
【図３７】本発明の一実施形態に係る異常検出装置の機能構成例を示す機能ブロック図である。
【発明を実施するための形態】
【００１２】
以下、本発明の実施形態について添付の図面を参照しながら説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付し、重複した説明を省く。
【００１３】
（第１実施形態）
≪  全体構成例  ≫
例えば、製品等を製造するプラントでは、様々なプロセスが実行され、プロセスに応じて装置が稼動する。そして、プロセスに用いられる装置には、センサが設置され、様々な変数がセンサによって、定期的又は不定期的にセンシングされる。このようなセンシングによって得られるデータに基づいて、装置又はプロセスが所定の仕様通りに正常に稼動しているか異常が発生しているかが例えば以下のような構成で判断される。
【００１４】
図１は、本発明の一実施形態に係る異常検出を行うための全体構成例を示す概略図である。例えば、図示するように、製品の組み立て工程又はバッチ工程等のプロセスを行うプラントＰＬにおいて、装置等にセンサＳＥＮが設置されるとする。なお、センサＳＥＮが計測する対象は、プラントＰＬ等の工場で稼動する装置又はプロセスに限らず、ビル、住宅又は店舗等で稼動する装置が含まれてもよい。以下、図示するように、プラントＰＬにおける装置又はプロセスでセンサＳＥＮがセンシングを行う場合を例に説明する。
【００１５】
なお、プラントＰＬは、規模を問わない。すなわち、プラントＰＬは、図示するような工場等で稼動する大規模な装置でもよいし、１メートル程度の大きさの小規模な装置でもよい。
【００１６】
したがって、センサＳＥＮは、例えば、製造される製品ごとに、所定の物理量等を計測して、サンプリングした値を示すデータＤＳＥＮを異常検出装置の例となるサーバ１０に送信する。例えば、サーバ１０は、以下のようなハードウェア構成の装置である。
【００１７】
≪  異常検出装置のハードウェア構成例  ≫
図２は、本発明の一実施形態に係る異常検出装置のハードウェア構成例を示すブロック図である。例えば、サーバ１０は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）ＨＷ１と、記憶装置ＨＷ２と、入力装置ＨＷ３と、出力装置ＨＷ４と、インタフェースＨＷ５とを有するハードウェア構成である。
【００１８】
ＣＰＵＨＷ１は、演算装置及び制御装置の例である。すなわち、ＣＰＵＨＷ１は、各処理を実行するための演算及びハードウェア資源の制御等を行う装置である。
【００１９】
記憶装置ＨＷ２は、メモリ等の主記憶装置である。また、記憶装置ＨＷ２は、ハードディスク又はＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の補助記憶装置を有する構成でもよい。
【００２０】
入力装置ＨＷ３は、オペレータの操作を入力する装置である。例えば、入力装置ＨＷ３は、キーボード、マウス又はこれらの組み合わせ等である。
【００２１】
出力装置ＨＷ４は、処理結果等を出力する装置である。例えば、出力装置ＨＷ４は、ディスプレイ等である。
【００２２】
インタフェースＨＷ５は、外部装置とデータを無線又は有線によって入出力する装置である。例えば、インタフェースＨＷ５は、コネクタ及び電子回路等である。
【００２３】
なお、ハードウェア構成は、図示する構成に限られない。例えば、サーバ１０は、演算装置又は記憶装置等を更に外部又は内部に有するハードウェア構成でもよい。
【００２４】
≪  データ例  ≫
図１に示す構成によって、サーバ１０に集められたデータＤＳＥＮは、例えば、以下のように示せる。
【００２５】
図３は、本発明の一実施形態に係る異常検出装置に入力されるデータの集まりの一例を示す表である。図示する例では、列方向を変数とし、行方向をサンプルとする例である。以下、図示するように、センサＳＥＮ（図１参照）が所定の間隔ごとにセンシングを行うとする。具体的には、図示する例では、データは、１秒ごとに生成される。そして、図は、列方向に、同一の時刻において、センサＳＥＮによって計測された変数のそれぞれの値を示す。なお、変数は、図示するような種類の物理量に限られず、センサＳＥＮが計測できる値であれば、変数の種類は、限定されない。
【００２６】
また、図示する例は、データＤＳＥＮの集まりをサーバ１０が時系列にソートした例である。つまり、図示する例は、行方向に、データが時系列順に並ぶ例である。以下、図示するように、時系列順にソートされたデータの集まりを例に説明するが、ソートは、時系列に基づく順序に限られず、例えば、製品順等でもよい。
【００２７】
また、以下の説明は、センサＳＥＮが等間隔、すなわち、所定の周期ごとにセンシングする例で説明する。ただし、本発明の一実施形態に係る異常検出装置は、等間隔でなく、離散的にセンシングされたデータを対象としてもよい。
【００２８】
≪  全体処理例  ≫
図４は、本発明の一実施形態に係る異常検出装置による全体処理例を示すフローチャートである。まず、サーバ１０は、装置又はプロセスが所定の仕様通り稼動している状態、いわゆる正常な状態においてセンシングされたデータ（以下「正常データＤ１」という。）に基づいて、診断の準備となる処理（以下「オフライン処理」という。）を行う。すなわち、正常データＤ１は、装置又はプロセスが所定の仕様通り稼動しているのが確認された上でサンプリングされ、あらかじめ準備されるデータである。
【００２９】
そして、オフライン処理後、サーバ１０は、オフライン処理による処理結果を用いて、装置又はプロセスが稼動中にセンシングされるデータ（以下「診断データＤ２」という。）に基づいて、装置又はプロセスを診断して異常を検出する処理（以下「オンライン処理」という。）を行う。
【００３０】
≪  オフライン処理例  ≫（ステップＳ１０）
ステップＳ１０では、サーバ１０は、例えば、以下のようなオフライン処理を行う。
【００３１】
図５は、本発明の一実施形態に係る異常検出装置によるオフライン処理例を示すフローチャートである。
【００３２】
＜  正常データの入力例  ＞（ステップＳ１０１）
ステップＳ１０１では、サーバ１０は、正常データＤ１を入力する。以下、正常データＤ１が入力され、図３に示すようなデータの集まりが生成される例で説明する。また、以下の説明では、図３に示す１行が、１つの正常データであるとする。
【００３３】
＜  データ集合の決定例  ＞（ステップＳ１０２）
ステップＳ１０２では、サーバ１０は、データ集合を決定する。以下、後段でクラスタリングの対象とするデータの集まりを「データ集合」とし、正常データＤ１の集まりを「第１データ集合」という。具体的には、データ集合は、例えば、以下のような「移動窓ＷＩＮ」で決定される。
【００３４】
図６は、本発明の一実施形態に係る異常検出装置が移動窓によってデータ集合を決定する例を示す図である。以下、図では、クラスタリングの対象に選択されたデータ集合を移動窓ＷＩＮで示す。
【００３５】
例えば、入力された正常データＤ１のうち、クラスタリングの対象とするデータ数Ｎを「１０」とすると、図示するように、それぞれの移動窓ＷＩＮには、正常データＤ１が１０個ずつ属するようになる。そして、図示するように、移動窓ＷＩＮを１個（図では１行に相当する。）ずらして、複数の移動窓ＷＩＮを生成し、各移動窓ＷＩＮによって、異なるデータ集合を決定する。つまり、図示する例では、移動窓ＷＩＮは、１つ前の移動窓ＷＩＮと比較すると、データ集合に属する正常データＤ１が１個入れ替わるように生成される。
【００３６】
また、任意の移動窓ＷＩＮ（以下「ｉ」番目の移動窓ＷＩＮとする。）に属する「ｎ」番目の要素（以下「ベクトル」という。）を「Ｘｉｎ（ｎ＝１，２，・・・，Ｎ）」とすると、Ｘｉｎは、下記（１）式のように示せる。
Ｘｉｎ＝［ｘｉｎ，１  ｘｉｎ，２  ・・・  ｘｉｎ，ｒ］Ｔ      （１）
上記（１）式では、「Ｔ」は、行列及びベクトルの転置を示し、縦ベクトルを示す。また、上記（１）式では、「ｒ」は、列方向における変数の数を示す。
【００３７】
なお、サーバ１０は、図６に示すような形式以外のデータを処理対象としてもよい。例えば、離散的なデータを対象とする場合には、図６における「時間」は、「サンプル番号」又は「製造番号」等でもよい。
【００３８】
＜  クラスタリング例  ＞（ステップＳ１０３）
ステップＳ１０３では、サーバ１０は、データ集合をクラスタリングする。具体的には、サーバ１０は、「ｉ」番目の移動窓ＷＩＮに属するＸｉｎ（ｎ＝１，２，・・・，Ｎ）の正常データＤ１をクラスタ数Ｋ、すなわち、Ｋ個のクラスタにクラスタリングする。なお、クラスタ数Ｋは、あらかじめ設定される所定数である。
【００３９】
以下、説明では、各クラスタにクラスタ番号ｋを付けて説明する。すなわち、クラスタ番号ｋは、（ｋ＝１，２，・・・，Ｋ）となる値である。また、クラスタ番号ｋのクラスタに属するデータは、「Ｎｋ」と示す。そして、各データは、データ番号「ｎｋｊ」で示す。
【００４０】
例えば、クラスタリングは、所定数に基づいて、ｋ−ｍｅａｎｓ法等によって実現される。なお、ｋ−ｍｅａｎｓ法によるクラスタリングでは、初期値は、異なる移動窓間で共通した値であるのが望ましい。具体的には、初期値は、前回の移動窓ＷＩＮにおける重心が用いられるのが望ましい。前回の移動窓ＷＩＮは、「ｉ＋１」番目の場合には、「ｉ」番目の移動窓となる。そして、重心は、ステップＳ１０４による計算結果である。
【００４１】
ｋ−ｍｅａｎｓ法によるクラスタリングは、初期値に依存してクラスタリングの精度が変動しやすい。そのため、初期値を移動窓ごとにランダムに設定すると、正常データＤ１が示す値が安定した状態であっても、クラスタリングによる処理結果が安定しなくなる場合がある。ゆえに、正常データＤ１が示す値が安定した状態であっても、後段で計算される重心が位置する範囲が安定せず、正常範囲が安定しないため、異常及び正常を診断する精度が悪くなってしまう場合がある。
【００４２】
一方で、前回の移動窓ＷＩＮの結果が用いられると、クラスタリングによる処理結果が安定しやすい。そのため、サーバ１０は、診断の精度を向上させることができる。
【００４３】
なお、クラスタは、例えば、図示するように、時系列において所定の間隔で移動窓ＷＩＮが定められてクラスタリングされるのが望ましい。すなわち、サーバ１０は、各クラスタに属するデータが等サンプリング周期となるようにクラスタリングするのが望ましい。このようにすると、サーバ１０は、クラスタリングを安定させることができる。
【００４４】
＜  重心の計算例  ＞（ステップＳ１０４）
図５に戻り、ステップＳ１０４では、サーバ１０は、第１重心を計算する。まず、重心は、例えば、クラスタごとの各データが示す変数の値を平均して計算される平均値等である。なお、重心は、クラスタごとのメジアン（中央値、ｍｅｄｉａｎ）でもよい。
【００４５】
また、重心は、データ集合、すなわち、移動窓ごとに、計算される。具体的には、「ｉ」番目の移動窓ＷＩＮにおける「ｋ」番目のクラスタの重心を「Ｘｍｉｋ」とすると、「Ｘｍｉｋ」は、下記（２）式のように計算される。
Ｘｍｉｋ＝（１／Ｎｋ）Σｊ＝１・・・Ｎｋ｛ｎｋｊ｝      （２）
以上のように、クラスタリング及び重心の計算が行われると、例えば、以下のような処理結果となる。
【００４６】
図７は、本発明の一実施形態に係る異常検出装置によるクラスタリング及び重心の計算の一例を示す図である。図示する例は、横軸を変数の例である温度とし、一方で、縦軸を変数の例である圧力とする。
【００４７】
図７（Ａ）は、「ｉ」番目の移動窓ＷＩＮ（図６参照）のデータ集合をクラスタリングした例である。そして、図７（Ｂ）は、「ｉ＋１」番目の移動窓ＷＩＮ（図６参照）のデータ集合をクラスタリングした例である。また、これらの例は、所定数、すなわち、クラスタ数Ｋを「３」とする例である。したがって、クラスタ番号ｋが「１」乃至「３」となるクラスタＣＬが、クラスタリングによってデータ集合ごとに生成される（ステップＳ１０３）。
【００４８】
次に、サーバ１０は、クラスタＣＬごとに、重心を計算する（ステップＳ１０４）。具体的には、クラスタ番号ｋが「１」のクラスタに属する正常データＤ１の平均値を計算すると、サーバ１０は、重心Ｇ１を計算できる。同様に、「ｉ」番目の移動窓ＷＩＮでは、サーバ１０は、重心Ｇ２及び重心Ｇ３を計算する。このような第１重心の計算が、データ集合ごとに行われる。したがって、図７（Ｂ）に示すように、「ｉ＋１」番目の移動窓ＷＩＮでも、サーバ１０は、重心Ｇ１、重心Ｇ２及び重心Ｇ３を同様に計算する。以下、図示するクラスタ等を用いて説明する。
【００４９】
＜  重心を対応付けする例  ＞（ステップＳ１０５）
図５に戻り、ステップＳ１０５では、サーバ１０は、移動窓ＷＩＮごとにある重心を対応付けする。例えば、サーバ１０は、「ｉ」番目の移動窓ＷＩＮにおける重心と、「ｉ＋１」番目の移動窓ＷＩＮにおける重心とを対応付けするため、以下のような処理を行う。
【００５０】
図８は、本発明の一実施形態に係る異常検出装置による重心を対応付けする例を示す図である。まず、図８（Ａ）は、「ｉ」番目の移動窓ＷＩＮにおけるクラスタ番号ｋを行方向とし、「ｉ＋１」番目の移動窓ＷＩＮにおけるクラスタ番号ｋを列方向とする行列（以下「距離行列」という。）である。したがって、距離行列は、クラスタ数Ｋの正方行列となる。また、距離行列が示すように、「ｉ」番目の移動窓ＷＩＮにおけるクラスタと、「ｉ＋１」番目の移動窓ＷＩＮにおけるクラスタとは、組み合わせ数は、「Ｋ２」個となる。この組み合わせのうち、組み合わせるクラスタが逆になっても、対応付けは、同一であるため、図８（Ａ）に示すように、距離行列における右上半分ＨＵとなる組み合わせが、以降の処理の対象となる。
【００５１】
距離行列は、各クラスタの重心間の距離ｄを示す。距離ｄは、例えば、ユークリッド距離等である。具体的には、「ｉ」番目の移動窓ＷＩＮにおけるクラスタ番号が「１」のクラスタの重心と、「ｉ＋１」番目の移動窓ＷＩＮにおけるクラスタ番号が「２」のクラスタの重心との距離ｄが、図示する例では、「ｄ１２」となる。そして、サーバ１０は、距離ｄを計算する。
【００５２】
次に、サーバ１０は、右上半分ＨＵにある距離ｄを値が小さい順に並べる。例えば、図８（Ｂ）のような並べ替え結果であるとする。図示するように、計算された距離ｄのうち、最も値が小さい距離を「ｄｐ１ｑ１」とする。この例では、まず、「ｄｐ１ｑ１」に基づいて、「ｉ」番目の移動窓ＷＩＮから、「ｐ１」と「ｑ１」の組み合わせが抽出される。これによって、「ｉ」番目の移動窓ＷＩＮにおけるクラスタ番号が「ｐ１」のクラスタの重心と、「ｉ＋１」番目の移動窓ＷＩＮにおけるクラスタ番号が「ｑ１」のクラスタの重心とが対応付けされる。以下、このような対応付けを（ｐ１，ｑ１）と示す。
【００５３】
続いて、サーバ１０は、「ｄｐ１ｑ１」以外の距離ｄのうち、「ｉ」番目の移動窓ＷＩＮにおけるクラスタ番号が「ｐ１」以外のクラスタ番号で最も小さい値を検索する。さらに、サーバ１０は、「ｉ＋１」番目の移動窓ＷＩＮにおけるクラスタ番号が「ｑ１」以外のクラスタ番号となる組み合わせを検索する。すなわち、サーバ１０は、「ｄｐ１ｑ１」以外の距離ｄであって、「ｐ１」及び「ｑ１」が含まれない組み合わせのうち、最も小さい距離となる組み合わせを検索する。このようにして検索される距離を「ｄｐ２ｑ２」とする。これによって、「ｉ」番目の移動窓ＷＩＮにおけるクラスタ番号が「ｐ２」のクラスタの重心と、「ｉ＋１」番目の移動窓ＷＩＮにおけるクラスタ番号が「ｑ２」のクラスタの重心とが対応付けされる。以下、このような対応付けを（ｐ２，ｑ２）と示す。
【００５４】
以上のように、対応付けを繰り返し行うと、（ｐ１，ｑ１）、（ｐ２，ｑ２）、・・・（ｐＫ，ｑＫ）のように、サーバ１０は、「ｉ」番目の移動窓ＷＩＮにおけるクラスタの重心と、「ｉ＋１」番目の移動窓ＷＩＮにおけるクラスタの重心とをすべて対応付けすることができる。また、このような対応付けとすると、ｐ１、ｐ２、・・・ｐＫは、異なるクラスタの重心となる。同様に、ｑ１、ｑ２、・・・ｑＫも、異なるクラスタの重心となる。したがって、「ｉ」番目の移動窓ＷＩＮにおけるクラスタ番号が「ｐ１」のクラスタの重心と、「ｉ＋１」番目の移動窓ＷＩＮにおけるクラスタ番号が「ｑ１」のクラスタの重心とが、重複なく対応付けされる。
【００５５】
そして、サーバ１０は、移動窓ＷＩＮごとに繰り返す。すなわち、ｉ＝１、２、・・・と繰り返し上記のような対応付けを行う。このようにして、サーバ１０は、移動窓ＷＩＮ間において、すべてのクラスタの重心を対応付けする。
【００５６】
以上のような対応付けがされると、例えば、図７に示す重心Ｇ１、Ｇ２及びＧ３は、以下のように対応付けされる。
【００５７】
図９は、本発明の一実施形態に係る異常検出装置によって重心が対応付けされた結果の一例を示す図である。例えば、図７（Ａ）に示す「ｉ」番目の移動窓ＷＩＮにおけるクラスタの重心と、図７（Ｂ）に示す「ｉ＋１」番目の移動窓ＷＩＮにおけるクラスタの重心とを対応付けすると、図示するように、重心Ｇ１、Ｇ２及びＧ３が（ｐ１，ｑ１）、（ｐ２，ｑ２）及び（ｐ３，ｑ３）と対応付けされる。
【００５８】
以上のような対応付けを行うと、各重心は、移動窓ＷＩＮがｉ＝１、２、・・・と移動すると、前の移動窓ＷＩＮにおける重心から位置が変化する。そして、サーバ１０は、重心が変化していく位置を繋いで線にすると、移動窓間における重心の軌跡を生成できる。
【００５９】
＜  正常範囲の設定例  ＞（ステップＳ１０６）
図５に戻り、ステップＳ１０６では、サーバ１０は、正常範囲を設定する。以下、オンライン処理にて、サーバ１０に正常と判定させる範囲を「正常範囲」という。例えば、以下のように、正常範囲を設定する。
【００６０】
図１０は、本発明の一実施形態に係る異常検出装置による正常範囲の設定例を示す図である。まず、ステップＳ１０５までの処理を行うと、図１０（Ａ）に示すように、それぞれの重心の軌跡を生成できる。そして、各重心の正常範囲をそれぞれの軌跡に基づいて生成する。
【００６１】
具体的には、まず、サーバ１０は、図１０（Ａ）に示す重心Ｇ１の軌跡に基づいて、重心Ｇ１が位置する範囲（以下「存在範囲Ｅ１」という。）を算出できる。同様に、サーバ１０は、重心Ｇ２の軌跡に基づいて、重心Ｇ２が位置する存在範囲Ｅ２を算出できる。さらに、サーバ１０は、重心Ｇ３の軌跡に基づいて、重心Ｇ３が位置する存在範囲Ｅ３を算出できる。
【００６２】
そして、サーバ１０は、各存在範囲に基づいて正常範囲を設定する。図１０（Ｂ）に示す例では、正常範囲Ｓ１、Ｓ２及びＳ３は、存在範囲Ｅ１、Ｅ２及びＥ３に基づいて、設定される。具体的には、重心の軌跡の平均、分散又は共分散行列等を計算すると、サーバ１０は、それぞれの正常範囲Ｓ１、Ｓ２及びＳ３を設定できる。他にも、存在範囲Ｅ１、Ｅ２及びＥ３を球等で近似すると、それぞれの正常範囲Ｓ１、Ｓ２及びＳ３を設定できる。
【００６３】
さらに、正常範囲Ｓ１、Ｓ２及びＳ３は、存在範囲Ｅ１、Ｅ２及びＥ３に基づいて、いわゆる安全率又は余裕等を考慮して設定されてもよい。例えば、オンライン処理にて、「正常」と判断する範囲を狭くする場合には、正常範囲Ｓ１、Ｓ２及びＳ３は、安全率等に基づいて、存在範囲Ｅ１、Ｅ２及びＥ３より範囲が狭くなるように設定される。一方で、オンライン処理にて、「正常」と判断する範囲を広くする場合には、正常範囲Ｓ１、Ｓ２及びＳ３は、安全率等に基づいて、存在範囲Ｅ１、Ｅ２及びＥ３より範囲が広くなるように設定される。
【００６４】
≪  オンライン処理例  ≫（ステップＳ２０）
図４に戻り、ステップＳ２０では、サーバ１０は、オンライン処理を行う。すなわち、あらかじめ行われるオフライン処理が行われた後、装置又はプロセスが稼動して診断対象となるデータ（以下「診断データ」という。）が送られてくると、サーバ１０は、オンライン処理を行う。オンライン処理は、例えば、以下のような処理である。
【００６５】
図１１は、本発明の一実施形態に係る異常検出装置によるオンライン処理例を示すフローチャートである。なお、図１１では、図５と同様の処理（ただし、図１１では、図５における「正常データ」を「診断データ」と読み替える。）を同一の符号を付し、説明を省略する。
【００６６】
＜  診断データの入力例  ＞（ステップＳ２０１）
ステップＳ２０１では、サーバ１０は、診断データＤ２を入力する。すなわち、装置又はプロセスが稼動中に所定の変数がセンシングされた結果を示すデータが、サーバ１０に入力される。この時点では、装置又はプロセスが異常であるか正常であるか不明であるため、診断データに基づいて、装置又はプロセスが診断される。
【００６７】
次に、サーバ１０は、診断データに対して、正常データと同様に、ステップＳ１０２乃至ステップＳ１０４を行う。なお、診断データに対するステップＳ１０２によって定まるデータ集合を「第２データ集合」という。
【００６８】
図１２は、本発明の一実施形態に係る異常検出装置によるオンライン処理でのクラスタリング及び重心の計算の一例を示す図である。例えば、診断データＤ２に対して、クラスタリング及び重心の計算が行われると、図示するような処理結果が得られる。
【００６９】
具体的には、図１２（Ａ）は、「ｉ」番目の移動窓で定まる診断データＤ２が３つのクラスタＣＬにクラスタリングされ（Ｋ＝３）、重心Ｇ１０、Ｇ２０及びＧ３０が計算される例を示す。同様に、図１２（Ｂ）は、「ｉ＋１」番目の移動窓で定まる診断データＤ２に対しての処理結果であり、重心Ｇ１１、Ｇ２１及びＧ３１が計算される例を示す。さらに、図１２（Ｃ）は、「ｉ＋２」番目の移動窓で定まる診断データＤ２に対しての処理結果であり、重心Ｇ１２、Ｇ２２及びＧ３２が計算される例を示す。
【００７０】
＜  正常範囲の範囲内か否かの判断例  ＞（ステップＳ２０２）
図１１に戻り、ステップＳ２０２では、サーバ１０は、重心が正常範囲の範囲内か否かを判断する。すなわち、オフライン処理にて設定される正常範囲に、オンライン処理におけるステップＳ１０２乃至ステップＳ１０４で計算される各重心が含まれるか否かを判断する。
【００７１】
次に、重心が正常範囲の範囲内にあると判断すると（ステップＳ２０２でＹＥＳ）、サーバ１０は、ステップＳ２０３に進む。一方で、重心が正常範囲の範囲内にないと判断すると（ステップＳ２０２でＮＯ）、サーバ１０は、ステップＳ２０４に進む。
【００７２】
＜  正常と診断する例  ＞（ステップＳ２０３）
ステップＳ２０３では、サーバ１０は、正常と診断する。
【００７３】
＜  異常と診断する例  ＞（ステップＳ２０４）
ステップＳ２０４では、サーバ１０は、異常と診断する。
【００７４】
以上のようなステップＳ２０２乃至ステップＳ２０４は、具体的には、以下のような診断処理である。
【００７５】
図１３は、本発明の一実施形態に係る異常検出装置による診断例を示す図である。まず、オフライン処理によって、あらかじめ正常範囲Ｓ１、Ｓ２及びＳ３が設定されるとする。そして、オンライン処理におけるステップＳ１０２乃至ステップＳ１０４によって、診断データに基づいて、重心Ｇ１０、Ｇ２０、Ｇ３０、Ｇ１１、Ｇ２１、Ｇ３１、Ｇ１２、Ｇ２２及びＧ３２が図示するように計算される。したがって、サーバ１０は、正常範囲Ｓ１、Ｓ２及びＳ３の位置と、重心Ｇ１０、Ｇ２０、Ｇ３０、Ｇ１１、Ｇ２１、Ｇ３１、Ｇ１２、Ｇ２２及びＧ３２の位置とを比較することによって、各重心が正常範囲Ｓ１、Ｓ２及びＳ３の範囲内か否かを判断できる。例えば、図示するように、正常範囲Ｓ１、Ｓ２及びＳ３の範囲に、重心Ｇ１０、Ｇ２０、Ｇ３０、Ｇ１１、Ｇ２１、Ｇ３１、Ｇ１２、Ｇ２２及びＧ３２が含まれる場合には、サーバ１０は、正常と診断する（ステップＳ２０３）。
【００７６】
以上のようなオンライン処理が行われると、例えば、以下のような処理結果となる。
【００７７】
図１４は、本発明の一実施形態に係る異常検出装置によるオンライン処理の処理結果例を示す図である。以下、図１４（Ａ）に示す診断データＤ２を例に説明する。オンライン処理では、まず、診断データＤ２が入力される（図１１  ステップＳ２０１）。
【００７８】
次に、診断データＤ２は、例えば、図１４（Ｂ）に示すように、データ集合が決定され（図１１  ステップＳ１０２）、３つのクラスタＣＬにクラスタリングされる（図１１  ステップＳ１０３）。そして、クラスタＣＬごとに、例えば、図１４（Ｃ）に示すように、重心Ｇ１、Ｇ２及びＧ３を計算する（図１１  ステップＳ１０４）。このようにすると、例えば、図１４（Ｄ）に示すように、重心Ｇ１、Ｇ２及びＧ３が得られる。
【００７９】
したがって、重心Ｇ１、Ｇ２及びＧ３が得られると、サーバ１０は、正常範囲Ｓ１、Ｓ２及びＳ３に、重心Ｇ１、Ｇ２及びＧ３が含まれるかが判断できる（図１１  ステップＳ２０２）。具体的には、図１４（Ｅ）における重心Ｇ１のように、重心が正常範囲Ｓ１の範囲内である場合には、サーバ１０は、正常と診断する（図１１  ステップＳ２０３）。一方で、重心Ｇ２及びＧ３のように、重心が正常範囲Ｓ２及びＳ３の範囲外である場合には、サーバ１０は、異常と診断する（図１１  ステップＳ２０４）。
【００８０】
以上のように、サーバ１０は、精度良く診断を行うことができる。
【００８１】
＜比較例＞
図１５は、比較例におけるクラスタリング及び重心の計算の一例を示す図である。図示する比較例は、各移動窓「ｉ」、「ｉ＋１」及び「ｉ＋２」において、ランダムな初期値を設定し、ｋ−ｍｅａｎｓ法によりクラスタリングが行われる例である。
【００８２】
図１５に示すように、初期値がランダムに設定されると、各移動窓において生成されるクラスタが不安定となる。図示する例では、「ｋ＝１」のクラスタＣＬが図１５（Ａ）から、図１５（Ｂ）及び図１５（Ｃ）と横方向に、クラスタが生成される範囲が広がってしまう例である。このように、初期値がランダムに設定されると、クラスタＣＬが生成される範囲又は位置の一貫性がなくなる場合がある。このようなクラスタリングであると、例えば、以下のように、正常範囲が広く設定される場合が多い。
【００８３】
図１６は、比較例における正常範囲の設定例を示す図である。オンライン処理が行われると、例えば、図１６（Ａ）乃至図１６（Ｃ）に示すように、重心Ｇ１０、Ｇ２０、Ｇ３０、Ｇ１１、Ｇ２１、Ｇ３１、Ｇ１２、Ｇ２２及びＧ３２が計算される。そして、図１６（Ｄ）に示すように、診断が行われる。
【００８４】
図１６（Ｄ）に示すように、クラスタが不安定であると、正常範囲Ｓ１、Ｓ２及びＳ３が広く設定される。そのため、異常を見落とす可能性が高くなる場合がある。
【００８５】
また、比較例では、正常範囲Ｓ１、Ｓ２及びＳ３のバラツキが大きくなりやすい。
【００８６】
＜表示画面例＞
なお、サーバ１０は、例えば、以下のような表示画面を出力するのが望ましい。
【００８７】
図１７は、本発明の一実施形態に係る異常検出装置による表示画面の第１例を示す図である。
【００８８】
図示するように、サーバ１０は、例えば、各重心のそれぞれの軌跡Ｌ１、Ｌ２及びＬ３を表示する。まず、オフライン処理が行われると、正常範囲Ｓ１、Ｓ２及びＳ３が設定されるので、サーバ１０は、表示画面ＤＩＳ上に、正常範囲Ｓ１、Ｓ２及びＳ３を表示する。
【００８９】
次に、正常範囲Ｓ１、Ｓ２及びＳ３に重ねて、重心の計算結果の軌跡Ｌ１、Ｌ２及びＬ３を表示画面ＤＩＳ上に表示する。このようにすると、プラントが持つ特性及び状態等がどのように変化しているかをオペレータに表示することができる。
【００９０】
また、図示するように、サーバ１０は、正常範囲Ｓ２から重心が範囲外となる異常ＥＭが発生しているのをわかりやすく表示できる。図示するような表示画面ＤＩＳであると、複数の運転状態のうち、いずれかに異常ＥＭが発生したかをわかりやすく表示でき、異常ＥＭを起こした原因の特定に有益な情報を出力することができる。
【００９１】
なお、サーバ１０は、例えば、以下のような表示画面を出力してもよい。
【００９２】
図１８は、本発明の一実施形態に係る異常検出装置による表示画面の第２例を示す図である。図示するように、サーバ１０は、いわゆるトレンドグラフ上で、重心の軌跡を表示してもよい。なお、トレンドグラフ上で正常範囲を表示する場合には、例えば、上限値及び下限値等で正常範囲を表示する。また、以下のようないわゆる散布図を表示してもよい。
【００９３】
図１９は、本発明の一実施形態に係る異常検出装置による表示画面の切り替え例を示す図である。なお、散布図ＦＩＧ上で正常範囲を表示する場合には、例えば、楕円等で正常範囲を表示する。
【００９４】
以上のようなトレンドグラフ又は散布図は、例えば、図１７に示す表示画面ＤＩＳ上等で、切り替えて表示される。
【００９５】
＜比較例＞
図２０は、比較例におけるトレンドグラフを示す図である。圧力及び温度を監視するためのトレンドグラフＧＲ１は、例えば、図示するようなグラフである。
【００９６】
図２１は、比較例における散布図を示す図である。圧力及び温度を監視するための散布図ＧＲ２は、例えば、図示するようなグラフである。
【００９７】
図示するようなトレンドグラフＧＲ１又は散布図ＧＲ２では、オペレータは、プラントにおける装置又はプロセスが、複数の特性又は運転状態に分かれていることがわかりにくい場合が多い。
【００９８】
（第２実施形態）
第２実施形態は、例えば、第１実施形態と同様の全体構成及びハードウェア構成によって実現できる。以下、第１実施形態と同様の全体構成及びハードウェア構成である場合を例に説明する。したがって、以下の説明では、同一の構成には、第１実施形態と同一の符号を付し、説明を省略する。
【００９９】
第２実施形態では、オフライン処理にて、例えば、以下のような学習処理が行われる点が異なる。
【０１００】
図２２は、本発明の第２実施形態の一実施形態に係る異常検出装置による学習処理例を示すフローチャートである。まず、サーバ１０は、例えば、第１実施形態と同様に、ステップＳ１０１乃至ステップＳ１０５を行う。したがって、サーバ１０は、正常データＤ１をクラスタリングし、各クラスタの重心を移動窓間で対応付けできる。
【０１０１】
＜  固有値及び固有ベクトルの計算例  ＞（ステップＳ３０１）
ステップＳ３０１では、サーバ１０は、固有値及び固有ベクトルを計算する。例えば、ステップＳ３０１では、クラスタごとに、それぞれの固有値及びそれぞれの固有ベクトルを計算し、移動窓ＷＩＮを移動させる。すなわち、ｉ＝１、２、・・・と、それぞれの移動窓ＷＩＮにおいて、各クラスタのそれぞれの固有値及びそれぞれの固有ベクトルを計算する。
【０１０２】
＜  平均固有値及び平均固有ベクトルの計算例  ＞（ステップＳ３０２）
ステップＳ３０２では、サーバ１０は、平均固有値及び平均固有ベクトルを計算する。すなわち、ステップＳ３０１で移動窓ＷＩＮごとに計算される固有値を平均してクラスタごとに平均固有値を計算する。同様に、ステップＳ３０１で移動窓ごとに計算される固有ベクトルを平均してクラスタごとに平均固有ベクトルを計算する。
【０１０３】
＜  平均固有値及び平均固有ベクトルとの距離の計算例  ＞（ステップＳ３０３）
ステップＳ３０３では、サーバ１０は、平均固有値及び平均固有ベクトルとの距離を計算する。すなわち、ステップＳ３０３では、サーバ１０は、ステップＳ３０２で計算される平均固有値及び平均固有ベクトルと、ステップＳ３０１で計算される固有値及び固有ベクトルとの距離を計算する。なお、距離は、ユークリッド距離等である。
【０１０４】
＜  閾値の設定例  ＞（ステップＳ３０４）
ステップＳ３０４では、サーバ１０は、閾値を設定する。例えば、ステップＳ３０３で計算される距離のうち、値の大きい距離を閾値に採用する。
【０１０５】
具体的には、ステップＳ３０３で計算された距離に対して、あらかじめ設定された値、例えば、上位「５パーセント」となる距離を閾値として採用する。なお、閾値は、上位「５パーセント」に限られず、他の値が設定されてもよい。
【０１０６】
そして、オンライン処理では、サーバ１０は、以下のような処理を行う。
【０１０７】
図２３は、本発明の第２実施形態の一実施形態に係る異常検出装置によるオンライン処理例を示すフローチャートである。まず、第２実施形態におけるオンライン処理では、サーバ１０は、第１実施形態と同様に、診断データＤ２に対して、ステップＳ２０１、ステップＳ１０２及びステップＳ１０３を行う。
【０１０８】
＜  平均固有値及び平均固有ベクトルとの距離の計算例  ＞（ステップＳ４０１）
ステップＳ４０１では、サーバ１０は、平均固有値及び平均固有ベクトルとの距離を計算する。例えば、ステップＳ３０３と同様に距離を計算する。
【０１０９】
＜  平均固有値及び平均固有ベクトルとの距離が閾値以下か否かの判断例  ＞（ステップＳ４０２）
ステップＳ４０２では、サーバ１０は、平均固有値及び平均固有ベクトルとの距離が閾値以下か否かを判断する。すなわち、ステップＳ４０１で計算される距離が、オフライン処理で設定される閾値以下であるか否かを判断する。
【０１１０】
次に、平均固有値及び平均固有ベクトルとの距離が閾値以下であると判断すると（ステップＳ４０２でＹＥＳ）、ステップＳ２０３に進む。一方で、平均固有値及び平均固有ベクトルとの距離が閾値以下でないと判断すると（ステップＳ４０２でＮＯ）、ステップＳ２０４に進む。
【０１１１】
以下、第１実施形態と同様に、サーバ１０は、正常である、又は、異常であると診断する。以上のように、第２実施形態では、固有値及び固有ベクトルを計算し、平均固有値及び平均固有ベクトルとの距離を計算する。そして、距離が閾値以下であれば、正常であると診断し、一方で、距離が閾値以下でなければ、異常であると診断する。
【０１１２】
したがって、以上のような処理を行うと、例えば、以下のような処理結果となる。
【０１１３】
図２４は、本発明の第２実施形態の一実施形態に係る異常検出装置による学習処理の処理結果（その１）を示す図である。まず、図２４（Ａ）に示すような正常データＤ１があるとする。図２４（Ａ）は、温度及び圧力の２変数を時系列で示すトレンドグラフである。この例では、移動窓がｉ＝１、２、・・・、Ｉと設定される。そして、移動窓が設定されると、例えば、移動窓ごとに、図２４（Ｂ）乃至図２４（Ｄ）に示すようなデータ集合が決定される（図２２  ステップＳ１０２）。次に、データ集合ごとに、正常データＤ１は、クラスタリングされる（図２２  ステップＳ１０３）。続いて、クラスタリングによって生成されるクラスタに対して、クラスタごとに、例えば、以下のような処理を行う。
【０１１４】
図２５は、本発明の第２実施形態の一実施形態に係る異常検出装置による学習処理の処理結果（その２）を示す図である。以下、図２５（Ａ）に示すクラスタＣＬを例に説明する。このクラスタＣＬの正常データが、例えば、図２５（Ｂ）のようなデータ（図では、正常データを「Ｘ」とする。）であるとする。このような場合には、まず、図２５（Ｃ）のように、クラスタＣＬに含まれる「Ｘ」を平均して平均値「Ｘｍ」を計算する。
【０１１５】
次に、図２５（Ｄ）に示すように、各「Ｘ」から平均値「Ｘｍ」を減算して平均値を除去して「Ｘ２」を計算する。続いて、図２５（Ｅ）に示すように、「Ｘ２」を用いて、共分散行列Ｓを計算する。なお、図２５（Ｅ）における「Ｎ」は、サンプル数を示す。
【０１１６】
さらに、図２５（Ｆ）に示すように、固有値分解を行うと、図２５（Ｇ）に示すような固有値の対角行列及び図２５（Ｈ）に示すような固有ベクトルを並べた行列を生成できる。また、固有値の対角行列から、図２５（Ｉ）に示すような固有値を並べたベクトルを生成できる。
【０１１７】
以上のように計算すると、サーバ１０は、移動窓及びクラスタごとに、固有値及び固有ベクトルを計算できる。以下、固有値を「ｃ」、かつ、固有ベクトルを「Ｖ」とする。
【０１１８】
図２６は、本発明の第２実施形態の一実施形態に係る異常検出装置による学習処理の処理結果（その３）を示す図である。ステップＳ３０１、すなわち、図２５に示す処理を行うと、サーバ１０は、図示するように、各移動窓及び各クラスタの固有値「ｃ」と、固有ベクトル「Ｖ」が計算できる。
【０１１９】
次に、各固有値「ｃ」を平均すると、平均固有値を計算できる。具体的には、図示するように、クラスタ番号が「ｋ＝１」の平均固有値は、「ｃ１Ａ」となる。同様に、クラスタ番号が「ｋ＝１」の平均固有ベクトルは、「Ｖ１Ａ」となる（図２２  ステップＳ３０２）。
【０１２０】
続いて、各固有値と、ステップＳ３０２、すなわち、図２６に示す処理を行うと計算できる平均固有値との距離を計算する。固有値及び平均固有値は、いずれもベクトルで表現されるため、距離は、両ベクトルのユークリッド距離等によって算出される（図２２  ステップＳ３０３）。
【０１２１】
一方で、固有ベクトル及び平均固有ベクトルは、いずれも行列で表現されるため、距離は、行列の要素を一列に並べたベクトル同士のユークリッド距離等である。なお、固有ベクトルは、長さが「１」の単位ベクトルであるため、例えば、"Ｃｌｕｓｔｅｒｉｎｇ  ｏｆ  Ｍｕｌｔｉｖａｒｉａｔｅ  Ｔｉｍｅ−Ｓｅｒｉｅｓ  Ｄａｔａ,  Ｓｅｂｏｒｇ  ａｎｄ  Ｓｉｎｇｈａｌ，  Ａｍｅｒｉｃａｎ  Ｃｏｎｔｒｏｌ  Ｃｏｎｆｅｒｅｎｃｅ，  ２００２"等に記載される方法によって、まず、「０」乃至「１」の値となる類似度を計算する。次に、「１−類似度」又は類似度の逆数を計算して、両ベクトルの距離とする（図２２  ステップＳ３０３）。
【０１２２】
図２７は、本発明の第２実施形態の一実施形態に係る異常検出装置による学習処理の処理結果（その４）を示す図である。次に、サーバ１０は、固有値と、平均固有値との距離から、閾値ＴＨ１を計算する。例えば、ステップＳ３０３で計算される距離の分布のうち、上位「５パーセント」が含まれるような閾値ＴＨ１を計算する（図２２  ステップＳ３０４）。
【０１２３】
図２８は、本発明の第２実施形態の一実施形態に係る異常検出装置による学習処理の処理結果（その５）を示す図である。次に、サーバ１０は、固有ベクトルと、平均固有ベクトルとの距離から、閾値ＴＨ２を計算する。例えば、ステップＳ３０３で計算される距離の分布のうち、上位「５パーセント」が含まれるような閾値ＴＨ２を計算する（図２２  ステップＳ３０４）。
【０１２４】
以上のように設定される閾値ＴＨ１又は閾値ＴＨ２以下となる距離が、正常と診断とされる。
【０１２５】
そして、オンライン処理によって、ステップＳ２０１、ステップＳ１０２、ステップＳ１０３及びステップＳ４０１が行われると、サーバ１０は、正常データと同様に、診断データＤ２に基づいて、固有値及び固有ベクトルを計算できる。そして、オフライン処理によって設定される閾値と、診断データＤ２に基づいて計算される固有値及び固有ベクトルとを比較すると、以下のように診断できる。
【０１２６】
図２９は、本発明の第２実施形態の一実施形態に係る異常検出装置によるオンライン処理の処理結果（その１）を示す図である。例えば、データの分布Ｊ１が、図示するような分布である場合が正常であるとする。
【０１２７】
したがって、固有値及び固有ベクトルに基づいて、診断データＤ２が分布Ｊ１ような分布であると判断すると（図２３  ステップＳ４０２でＹＥＳ）、サーバ１０は、正常であると診断する（図２３  ステップＳ２０３）。
【０１２８】
図３０は、本発明の第２実施形態の一実施形態に係る異常検出装置によるオンライン処理の処理結果（その２）を示す図である。固有値及び固有ベクトルに基づいて、診断データＤ２が図示するような分布Ｊ２である判断すると（図２３  ステップＳ４０２でＮＯ）、サーバ１０は、異常であると診断する（図２３  ステップＳ２０４）。
【０１２９】
図示するように、固有値及び固有ベクトルを用いると、サーバ１０は、クラスタの分布の変化を検出できる。重心が一定であっても、クラスタ内のデータが分布する位置及び傾向が異常な場合がある。例えば、図２９に示す例では、温度と、圧力とが、いわゆる正の相関となる関係である。一方で、図３０に示す例では、温度と、圧力とが、いわゆる負の相関となる関係である。このような傾向は、重心に基づく監視では、正常と診断される場合がある。
【０１３０】
そこで、固有値及び固有ベクトルに基づいて診断を行うと、サーバ１０は、傾向の異変等を精度良く検出できる。
【０１３１】
＜シミュレーション結果＞
以下、シミュレーションにより発生させたデータに対して全体処理を行った実験結果を示す。まず、オフライン処理に用いたデータ及びオフライン処理による処理結果は、以下のようになった。
【０１３２】
図３１は、本発明の一実施形態に係る異常検出装置による全体処理の処理結果（その１）を示す図である。まず、実験では、図３１（Ａ）に示すような正常データＤ１を用いた。図３１（Ａ）は、正常データＤ１を変数ごとに、時系列で示す。そして、正常データＤ１を散布図にすると、図３１（Ｂ）のように示せる。
【０１３３】
図３２は、本発明の一実施形態に係る異常検出装置による全体処理の処理結果（その２）を示す図である。次に、図３１（Ｂ）に示す正常データＤ１を移動窓ごとに３つのクラスタＣＬにクラスタリングすると、図３２に示すような結果となった。
【０１３４】
図３３は、本発明の一実施形態に係る異常検出装置による全体処理の処理結果（その３）を示す図である。図３２に示すクラスタＣＬごとに、重心を計算し、重心に基づいて正常範囲を設定すると、図示するような結果となった。また、図３３は、重心の計算結果をプロットした図である。
【０１３５】
次に、オンライン処理に用いたデータ及びオンライン処理による処理結果は、以下のようになった。
【０１３６】
図３４は、本発明の一実施形態に係る異常検出装置による全体処理の処理結果（その４）を示す図である。実験では、図３４（Ａ）に示すような診断データＤ２を用いた。図３４（Ａ）は、診断データＤ２を変数ごとに、時系列で示す。そして、診断データＤ２を散布図にすると、図３４（Ｂ）のように示せる。
【０１３７】
図３５は、本発明の一実施形態に係る異常検出装置による全体処理の処理結果（その５）を示す図である。図３４（Ｂ）に示す診断データＤ２を３つのクラスタＣＬにクラスタリングすると、図３５に示すような結果となった。
【０１３８】
図３６は、本発明の一実施形態に係る異常検出装置による全体処理の処理結果（その６）を示す図である。図では、異常と診断された重心、すなわち、図３３に示す処理結果に基づいて設定される正常範囲の範囲外と判断された重心が、画面上に表示された例である。図示するような画面が表示されると、オペレータは、異常と診断された結果があるかを把握できる。
【０１３９】
＜機能構成例＞
図３７は、本発明の一実施形態に係る異常検出装置の機能構成例を示す機能ブロック図である。図示するように、サーバ１０は、第１入力部ＦＮ１と、第１データ集合決定部ＦＮ２と、第１クラスタリング部ＦＮ３と、第１重心計算部ＦＮ４と、設定部ＦＮ５と、第２入力部ＦＮ６と、第２データ集合決定部ＦＮ７と、第２クラスタリング部ＦＮ８と、第２重心計算部ＦＮ９と、診断部ＦＮ１０とを含む機能構成である。また、サーバ１０は、図示するように、表示部ＦＮ１１を更に含む機能構成であるのが望ましい。
【０１４０】
第１入力部ＦＮ１は、複数の正常データＤ１を入力する。例えば、第１入力部ＦＮ１は、インタフェースＨＷ５（図２参照）等で実現される。
【０１４１】
第１データ集合決定部ＦＮ２は、複数の正常データＤ１から、クラスタリングの対象とする正常データを選択して第１データ集合を決定する。例えば、第１データ集合決定部ＦＮ２は、ＣＰＵＨＷ１（図２参照）等で実現される。
【０１４２】
第１クラスタリング部ＦＮ３は、データ集合を所定数のクラスタにする。例えば、第１クラスタリング部ＦＮ３は、ＣＰＵＨＷ１（図２参照）等で実現される。
【０１４３】
第１重心計算部ＦＮ４は、データ集合ごと、かつ、クラスタごとに、それぞれの第１重心を計算する。例えば、第１重心計算部ＦＮ４は、ＣＰＵＨＷ１（図２参照）等で実現される。
【０１４４】
設定部ＦＮ５は、第１重心に基づいて、正常と判定する正常範囲を設定する。例えば、設定部ＦＮ５は、ＣＰＵＨＷ１（図２参照）等で実現される。
【０１４５】
第２入力部ＦＮ６は、診断対象となる装置又はプロセスにおける変数を示す複数の診断データＤ２を入力する。例えば、第２入力部ＦＮ６は、インタフェースＨＷ５（図２参照）等で実現される。
【０１４６】
第２データ集合決定部ＦＮ７は、複数の診断データＤ２から、クラスタリングの対象とする診断データＤ２を選択して第２データ集合を決定する。例えば、第２データ集合決定部ＦＮ７は、ＣＰＵＨＷ１（図２参照）等で実現される。
【０１４７】
第２クラスタリング部ＦＮ８は、第２データ集合を所定数の診断クラスタにする。例えば、第２クラスタリング部ＦＮ８は、ＣＰＵＨＷ１（図２参照）等で実現される。
【０１４８】
第２重心計算部ＦＮ９は、診断クラスタの重心となる第２重心を計算する。例えば、第２重心計算部ＦＮ９は、ＣＰＵＨＷ１（図２参照）等で実現される。
【０１４９】
診断部ＦＮ１０は、第２重心及び正常範囲に基づいて診断を行う。例えば、診断部ＦＮ１０は、ＣＰＵＨＷ１（図２参照）等で実現される。
【０１５０】
表示部ＦＮ１１は、正常範囲及び第２重心の軌跡を表示する。例えば、表示部ＦＮ１１は、出力装置ＨＷ４（図２参照）等で実現される。
【０１５１】
以上のような機能構成であると、サーバ１０は、単純な方法で正常範囲を設定できるため、正常範囲を少ない計算コストで設定できる。したがって、サーバ１０は、異常を単純な方法で検出できるため、異常を検出するための計算コストを小さくすることができる。このような機能構成であると、サーバ１０は、精度良く異常を検出することができる。
【０１５２】
また、サーバ１０は、表示部ＦＮ１１によって、例えば、図１７に示すような表示画面ＤＩＳを表示するのが望ましい。このような表示画面ＤＩＳを表示すると、正常範囲及び第２重心の軌跡を重ねてオペレータに見せることができるため、オペレータに異常が発生している状態等をわかりやすく知らせることができる。
【０１５３】
≪  その他の実施形態  ≫
なお、本発明に係る各処理の全部又は一部は、アセンブラ等の低水準言語又はオブジェクト指向言語等の高水準言語で記述され、コンピュータに異常検出方法を実行させるためのプログラムによって実現されてもよい。すなわち、プログラムは、異常検出装置等の情報処理装置又は１以上の情報処理装置を含む異常検出システム等のコンピュータに各処理を実行させるためのコンピュータプログラムである。
【０１５４】
したがって、プログラムに基づいて異常検出方法が実行されると、コンピュータが有する演算装置及び制御装置は、各処理を実行するため、プログラムに基づいて演算及び制御を行う。また、コンピュータが有する記憶装置は、各処理を実行するため、プログラムに基づいて、処理に用いられるデータを記憶する。
【０１５５】
また、プログラムは、コンピュータが読み取り可能な記録媒体に記録されて頒布することができる。なお、記録媒体は、磁気テープ、フラッシュメモリ、光ディスク、光磁気ディスク又は磁気ディスク等のメディアである。さらに、プログラムは、電気通信回線を通じて頒布することができる。
【０１５６】
なお、本発明に係る実施形態は、１以上の情報処理装置を有する異常検出システムによって実現されてもよい。また、複数の情報処理装置を有する情報処理システムは、各処理を冗長、分散、並列、仮想化又はこれらを組み合わせて実行してもよい。
【０１５７】
以上、本発明の好ましい実施例について詳述したが、本発明は、上述の実施形態に限定されず、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形又は変更が可能である。
【符号の説明】
【０１５８】
１０  サーバ
Ｄ１  正常データ
Ｄ２  診断データ
ＦＮ１  第１入力部
ＦＮ２  第１データ集合決定部
ＦＮ３  第１クラスタリング部
ＦＮ４  第１重心計算部
ＦＮ５  設定部
ＦＮ６  第２入力部
ＦＮ７  第２データ集合決定部
ＦＮ８  第２クラスタリング部
ＦＮ９  第２重心計算部
ＦＮ１０  診断部
ＦＮ１１  表示部
【図１】
2019003238.tif 000003
【図２】
2019003238.tif 000004
【図３】
2019003238.tif 000005
【図４】
2019003238.tif 000006
【図５】
2019003238.tif 000007
【図６】
2019003238.tif 000008
【図７】
2019003238.tif 000009
【図８】
2019003238.tif 000010
【図９】
2019003238.tif 000011
【図１０】
2019003238.tif 000012
【図１１】
2019003238.tif 000013
【図１２】
2019003238.tif 000014
【図１３】
2019003238.tif 000015
【図１４】
2019003238.tif 000016
【図１５】
2019003238.tif 000017
【図１６】
2019003238.tif 000018
【図１７】
2019003238.tif 000019
【図１８】
2019003238.tif 000020
【図１９】
2019003238.tif 000021
【図２０】
2019003238.tif 000022
【図２１】
2019003238.tif 000023
【図２２】
2019003238.tif 000024
【図２３】
2019003238.tif 000025
【図２４】
2019003238.tif 000026
【図２５】
2019003238.tif 000027
【図２６】
2019003238.tif 000028
【図２７】
2019003238.tif 000029
【図２８】
2019003238.tif 000030
【図２９】
2019003238.tif 000031
【図３０】
2019003238.tif 000032
【図３１】
2019003238.tif 000033
【図３２】
2019003238.tif 000034
【図３３】
2019003238.tif 000035
【図３４】
2019003238.tif 000036
【図３５】
2019003238.tif 000037
【図３６】
2019003238.tif 000038
【図３７】
2019003238.tif 000039