開発・改良に意欲的に取り組んでいます。ユーザの皆さまから寄せられるご意見やご感想は、改善点の優先順位などを検討する際に、貴重なご意見として役立ててまいります。異常検知システム技術分野[0001]本発明は、異常検知システムに係り、特に、計算機やコントローラ、機器・設備等からなるシステムの安定運用のために、故障や障害といった異常あるいはその予兆の誤検知を少なくし、システムの状態を正確に評価するのに好適な異常検知システムに関する。背景技術[0002]工場などの産業システム、化学プラント、鉄道や電力などの社会インフラシステムなど、多くのシステムは、複数の計算機、コントローラ、機器・設備から構成されている。このようなシステムでは、システムの機能が停止すると経済的にも社会的にも甚大な被害を及ぼす可能性がある。そのため、システムの機能が停止しないように、故障や障害を迅速に発見・対応したり、未然に予知し保全することが重要である。昨今では、計算機やコントローラ、機器・設備等から多くの稼動データが得られるようになってきたため、機器・設備、あるいは、システムの正常時の挙動を統計的手法に基づいて、異常やその予兆を検知する方法がとられるようになってきた。[0003]このようなプラントなどの設備における異常予兆検知については、例えば、特許文献1がある。特許文献1に記載の設備状態監視システムでは、多様な正常状態を持つ場合においても、正常を異常と判定する誤報の発生を防止し、異常判定の根拠の説明や、異常予兆と事象の関連付けを可能とするため、設備から出力されるイベント信号をもとに運転状態別にモード分割し、モード毎に正常モデルを作成し、モード毎に学習データの十分性をチェックする。その結果に応じて設定したしきい値を用いて異常識別を行うようにしている。[0004]一方、システムを計測している場合には、起動、終了、キャリブレーションなどわずかしかデータを収集できない稼働状態と、定常運転など多くのデータを収集できる稼働状態とがある。このような複数の稼働状態が混合された稼働データでは、低密度またはマイノリティな正常時の稼働データは、高密度またはマジョリティな正常時の稼働データと比較して、相対的に異常スコアが高くなる傾向があり、誤検知の原因となっている。発明が解決しようとする課題[0006]特許文献1に記載された技術は、イベント信号をもとに(システムの稼動状態を)モード分割するということを基本思想にしている。[0007]しかしながら、特許文献1記載の設備状態監視方法では、そもそもイベント信号が得られない場合の異常検知の手法については、考慮されておらず、イベント信号が得られない場合には、この異常検知の手法は適用できすることができない。イベント信号を使って、正しくモードを分割できない場合、誤検知が解消されない可能性がある。[0008]本発明の目的は、設備の稼動状態を監視するにあたり、複数の稼動状態で出力された正常時データに対して、稼働状態を分割するためのデータが得られない、あるいは、正しく分割できない場合であっても、故障や障害といった異常あるいはその予兆の誤検知を少なくし、システムの状態を正確に評価することのできる異常検知システムを提供することにある。課題を解決するための手段[0009]本発明は異常検知システムの構成は、好ましくは、監視対象となる設備の稼動データに基づいて、設備の異常またはその予兆を検知する異常検知システムであって、設備から稼動データを収集する機器と、稼動データから構築される異常検知モデルに基づいて、設備の異常またはその予兆を検知する情報処理装置とを有し、情報処理装置は、稼動データを収集する手段と、稼働データから異常検知モデルを学習する手段と、稼働データと異常検知モデルから、個々の稼動データに対して異常スコアを算出する手段とを有し、稼働データから異常検知モデルを学習する手段は、異常検知モデルの内で、その異常検知モデルの要素のばらつきが小さい異常検知モデルを学習するようにしたものである。発明の効果[0010]本発明によれば、設備の稼動状態を監視するにあたり、複数の稼動状態で出力された正常時データに対して、稼働状態を分割するためのデータが得られない、あるいは、正しく分割できない場合であっても、故障や障害といった異常あるいはその予兆の誤検知を少なくし、システムの状態を正確に評価することのできる異常検知システムを提供することができる。異常検知システムのシステム構成図である。データ管理サーバ、クライアント端末、コントローラなどを実現する情報処理装置のハードウェア構成図である。稼動データの一例を示す図である。監視単位定義データの一例を示す図である。モデルデータの一例を示す図である。異常検知結果データの一例を示す図である。異常検知システムの処理全体の概要を示すフローチャートである。異常検知システムの学習フェーズを示すフローチャートである。異常検知システムの監視フェーズを示すフローチャートである。監視画面の一例を示す図である。発明を実施するための形態[0012]以下、本発明に係る一実施形態を、図1ないし図10を用いて説明する。[0013]先ず、発明を理解するために、本発明の一実施形態に係る異常検知システムの概略について説明する。[0014]本発明の一実施形態に係る異常検知システムは、工場などの産業システム、化学プラント、鉄道や電力などの社会インフラシステムなどのシステムの機能が停止しないように、故障や障害を迅速に発見・対応、あるいは、未然に予知し保全するためのシステムである。[0015]異常検知システムの処理は、正常または正常であることが期待される稼動データ(以下、単に「正常時の稼働データ」という)から、異常検知モデルを構築する学習フェーズと、監視時に稼働データと異常検知モデルを用いて異常スコアを算出し、ユーザに通知および関連情報を表示する監視フェーズとに分けられる。[0016]学習フェーズでは、先ず、各機器・設備から収集した稼動データから、異常検知モデルを学習する。異常検知モデルには、様々な機械学習のモデルを採用できるが、本実施形態では、k近傍法をベースとしたモデルを用いた例を説明する。他の機械学習や統計のモデルを用いることもできる。学習処理では、第一に、正常時の稼働データを訓練データとして、最初のk近傍法に基づく異常検知モデルを学習する。learning)と呼ばれ、その性質上、取り込んだデータを加工せずに、単にメモリに訓練データを記憶するだけである。[0017]次に、訓練データに対してブートストラップサンプリングを行い新たな訓練データを1個または複数作成する。ここで、ブートストラップサンプリングとは、対象とするn個のデータから、重複を許してn個のデータを抽出する統計のサンプリング手法である。次に、作成した訓練データを使って新たな異常検知モデルを1個または複数作成する。元の異常検知モデルと新たに作成した異常検知モデルを組み合わせて作成した異常検知モデル(「アンサンブルモデル」という)が、元の異常検知モデルに比べ、異常スコアの分散が小さい場合、アンサンブルモデルをもとの異常検知モデルに置き換える。本実施形態では、組み合わせる具体的な方法として重み付き線形和による方法を用いる。その際、組み合わせのバランス(重み)はラインサーチ等によって最良なものを探索して決める。このような処理を所定回数繰り返し、分散が小さい異常検知モデルを構成する。Range)等を用いてもよい。[0018]監視フェーズでは、監視時の稼働データと異常検知モデルを用いて異常スコアを算出する。所定の閾値を超えた場合、異常あるいは異常の予兆が発生したと判断してユーザに異常状況を通知する。その際、最初の異常検知モデルと、最終的な異常検知モデルとの異常スコアの解離具合を合わせて提示する。これによって、システムは、ユーザに対して、低密度またはマイノリティな正常時の稼働データに基づく検知結果であったのか、高密度またはマジョリティな正常時の稼働データに基づく検知結果であったのかの示唆を与えることができる。[0019]なお、本実施形態では異常検知モデルを組み合わせる方法の一例として、重み付き線形和による方法としたが、他の方法で組み合わせてもよい。アンサンブルモデルは検知処理をする際に組み合わせた異常検知モデルの数だけ計算する必要がある。そこで、アンサンブルモデルを使って別のモデルを学習してもよい。learning)を行ってもよい。個々のアンサンブルモデルを構成するデータセットをそのモデルの重みに応じてサンプリングすることにより訓練データを作成し、それを使って異常検知モデル構築してもよい。このようにすることで、同様な性質を持ち、かつ、比較的、計算量が軽量となる異常検知モデルを再構成することができる。[0020]次に、図1および図2を用いて一実施形態に係る異常検知システムの構成について説明する。[0021]本実施形態に係る異常検知システム1は、図1に示されるように、設備10と、コントローラ11と、データ管理サーバ12と、クライアント端末13を備えている。[0022]設備10は、工場などの生産ラインなどであり、センサやアクチュエータを備えている。センサは、例えば、加速度センサ、温度センサ、圧力センサなどである。コントローラ11は、設備10のセンサやアクチュエータを制御し、また異常検知処理を行う。データ管理サーバ12は、設備10からアップロードされる稼動データのデータ管理や、異常検知モデルの学習を行うサーバ装置である。クライアント端末13は、異常または異常の予兆に関する情報をユーザに表示して提示する装置である。Network)等のネットワークで接続されている。本実施形態では構成要素がLANで接続されるとしたが、インターネットなどのグローバルネットワーク経由で接続されていてもよい。図1に示した構成は一例であって、要素数は増減してもよく、一つの構成要素が複数の機能を担うようにしてもよい。データ管理サーバ12の役割をコントローラが担ってもよい。ネットワーク構成も、本実施形態のように一つのネットワークで接続されている場合に限らず、さらに階層分けされてネットワーク構成となっていてもよい。本実施形態では設備10が監視対象となる場合について説明するが、コントローラ11や、他の計算機が監視対象となってもよい。[0024]異常検知システム1のコントローラ11は、収集部111、検知部112、ローカルデータ管理部113の各機能部を備える。[0025]収集部111は、設備10から稼動データを収集する機能部である。検知部112は、稼動データから異常スコアを算出する機能部である(詳細は、後述)。ローカルデータ管理部113は、収集した稼動データを管理して、アクセスする方法を提供する機能部である。[0026]異常検知システム1のデータ管理サーバ12は、集配部121、学習部122、統合データ管理部123を備える。[0027]集配部121は、各コントローラ11のローカルデータ管理部113からデータを収集する機能部である。データ学習部122は、稼働データを用いて異常検知モデルを構築(学習)する機能部である。統合データ管理部123は、各コントローラ11のローカルデータ管理部113に格納された稼動データを集約して、サーバ側で管理し、アクセスする方法を提供する機能部である。[0028]異常検知システム1のクライアント端末13は、表示部131を備える。表示部131は、異常または異常の予兆に関する情報をユーザに表示する機能部である。[0029]次に、図1および図2を用いて異常検知システムの各構成要素の機能部とハードウェアの対応について説明する。[0030]異常検知システムの各構成要素は、図2に示されるような一般的な情報処理装置で実現できる。Memory)503、外部記憶装置504、通信I/F(Interface)505、外部入力装置506、外部出力装置507からなる。[0032]CPU501は、RAM503上のプログラムを実行し、装置の各部を制御するプロセッサである。ROM502は、書き換え不可能な半導体記憶装置である。RAM503は、一時的にプログラムとデータを保持する半導体記憶装置である。外部記憶装置504は、データ、プログラムを保持する大容量の磁気記憶装置または半導体記憶装置である。通信I/F505は、外部のネットワークの通信を制御する装置である。外部入力装置506は、マウスやキーボード等のユーザがデータを入力するための装置である。Display)などの表示装置やデータ印刷するプリンタなどの装置である。[0033]コントローラ11の収集部111、検知部112、ローカルデータ管理部113は、各機能を実現するプログラムとして、ROM502に保持されるか、外部記憶装置504にインストールされ、RAM503上にロードされて、CPU501により実行される。[0034]また、同様に、異常検知システム1のデータ管理サーバ12の集配部121、学習部122、統合データ管理部123は、各機能を実現するプログラムとして、ROM502に保持されるか、外部記憶装置504にインストールされ、RAM503上にロードされて、CPU501により実行される。[0035]さらに、クライアント端末13の表示部131は、表示プログラムが、ROM502に保持されるか、外部記憶装置504にインストールされ、RAM503上にロードされて、CPU501により実行され、液晶表示装置などの表示装置に表示される。[0036]次に、図3ないし図6を用いて異常検知システムで使用されるデータ構造について説明する。[0037]稼動データ100は、コントローラ11が設備10から収集するデータであり、ローカルデータ管理部113で管理されるデータであり、具体的には、例えば、設備10に取り付けられたセンサ値や設備10に送られる制御信号に関するデータである。稼動データ100は、図1に示されるように、日時101と、項目名102と、値103の各項目を有する。日時101は、稼動データが発生した日時、または、収集された日時である。項目名102は、稼動データを識別するための名称であり、例えば、センサ番号や制御信号番号である。値103は、その日時、その項目に関する稼動データの値である。[0038]なお、データ管理サーバ12の統合データ管理部123が管理する稼動データも内容は同様で、個々のコントローラ11のローカルデータ管理部113の稼動データ100を統合したものある。[0039]監視単位定義データ200は、各異常検知モデルを構成するために使うデータを定義するデータであり、コントローラ11のローカルデータ管理部113、および、データ管理サーバ12の統合データ管理部123で管理されるデータである。監視単位定義データ200は、図4に示されるように、モデルID201と、項目名202の各項目を有する。モデルID201は、異常検知モデルを一意に識別するためのIDである。項目名202は、指定した項目名が異常検知モデルを構成するデータとなる。図4に示した上から1行目~3行目(カラム名の行は除く)は、モデルIDが1001の異常検知モデルについて記載しており、コントローラ1.温度と、コントローラ1.圧力、コントローラ2.電流値によって、異常検知モデルが構成されることを表している。異常検知モデルを構成する際には、ある時刻における一つまたは複数のデータによって構成してもよいし、複数時刻のデータ、すなわち、時系列データを用いてもよい。[0040]モデルデータ300は、異常検知モデルを表すデータであり、コントローラ11のローカルデータ管理部113、および、データ管理サーバ12の統合データ管理部123で管理されるデータである。モデルデータ300は、モデルID301と、サブモデルID302と、モデルパラメータ303と、重み304の各項目を有する。モデルID301は、異常検知モデルを一意に識別するためのIDである。サブモデルID302は、各異常検知モデル(各アンサンブルモデル)を構成する異常検知モデルのサブモデルを一意に識別するためのIDである。ID=0のときが、初期の異常検知モデルで、サブモデルIDが1、2、3と段階的に組み合わされる異常検知モデルである。サブモデルIDが-1は、アンサンブルモデルを再構成した異常検知モデルを表すことにする(詳細は、後述)。モデルパラメータ303は、各異常検知モデルを表現するパラメータである。k近傍法による異常検知は、前述のとおり訓練データを記憶しておくだけであるため、モデルパラメータ303は、また、各異常検知モデルの訓練データとなる。重み304は、合成(アンサンブル)する際の各異常検知モデルの重要度を表す。[0041]異常検知結果データ400は、異常検知の結果を表すデータであり、コントローラ11のローカルデータ管理部113、および、データ管理サーバ12の統合データ管理部123で管理されるデータである。異常検知結果データ400は、日時401と、モデルID402と、初期異常スコア403と、異常スコア404の各項目を有する。日時401は、異常またはその予兆があるか田舎の検知処理を行った日時を表す。モデルID402は、異常検知モデルを一意に識別するためのIDである。初期異常スコア1D403は、サブモデルID302が0のときの異常検知モデルを使って算出した異常スコアである。異常スコア403は、サブモデルID302に-1が存在しない場合には、アンサンブルモデルを使って算出した異常スコア、存在する場合には、サブモデルID302が-1の異常検知モデル、すなわち再構成された異常検知モデルを使って算出された異常スコアである。[0042]次に、図7ないし図9を用いて異常検知システムの処理について説明する。[0043]先ず、図7を用いて異常検知システムの処理全体の概要について説明する。[0044]先ず、コントローラ11の収集部111が、設備10、コントローラ11の双方またはその一方から、正常時の稼働データ100を収集し、ローカルデータ管理部113に格納する(S101)。本実施形態では収集部111が集めるデータの周期は一定であるものとする。周期が一定でない場合は、補間等によって周期を調整した稼動データに変換し格納する。[0045]次に、データ管理サーバ12の集配部121が、各コントローラ11のローカルデータ管理部113に格納された稼動データ100を集約し、データ管理サーバ12の統合データ管理部123に格納する(S102)。[0046]次に、データ管理サーバ12の学習部122が、監視単位定義データ200で項目名がモデルIDと対応づいている稼働データ100を用いて異常検知モデルを構築(学習)する(S103)。本処理に先立って、適切な監視単位定義データ200が登録されており、モデルIDと稼働データ100の対応づけがなされているものとする。異常検知モデルを構築(学習)する処理については、後に詳細に説明する。[0047]そして、学習処理の結果であるモデルデータ300を、データ管理サーバ12の統合データ管理部123に登録する。[0048]最後に、データ管理サーバ12の集配部121が、統合データ管理部123のモデルデータ300を各コントローラ11に配信し、本処理を終了する(S104)。本実施形態では、稼動データをそのまま用いたが、稼動データ100にローパスフィルターをかけたり、正規化したりといった前処理を実施してもよい。[0049]次に、図8を用いて異常検知モデルの構築(学習)処理について詳細に説明する。Detection)手法を用いて外れ値を除去する(S201)。稼働データの1%は外れ値であるとみなして、LOFのスコアの上位1%を得るような稼働データを削除する。このようにして、本異常検知手法が外れ値も含めて異常スコアのばらつきを小さくするように異常検知モデルを構築する結果、検知性能が劣化することを避けることができる。ランダムなノイズが含まれる場合には有用である。外れ値を除去する必要がないようなデータでは、本ステップを省略してもよい。[0051]次に、データ管理サーバ12の学習部122が、正常時の稼働データを訓練データとして、k近傍法に基づく初期の異常検知モデルを作成する(S202)。0は、以下の(式1)で与えられる。このとき、訓練データX0が、図5に示したサブモデルID302が0のときのモデルパラメータ1D303に対応することになる。本実施形態では、k番目までのk近傍距離の相加平均を異常スコアに用いたが、k番目のk近傍距離だけを用いてもよい。他の統計や機械学習に基づく異常検知のモデルを用いてもよい。Quantization)などの距離計算を近似する手法を使ってもよい。これによって、距離計算の負荷を大幅に軽減できる。[0052][数1][0053]次に、データ管理サーバ12の学習部122が、時刻を表す変数tに1を設定する(S203)。tを作成する(S204)。t-1として、以下の(式2(で与えられる確率P(x)に従ってサンプリングする。t-1の要素を動くものとする。異常スコアが高いものほど高い確率でサンプリングする。この処理により、後述の処理で効率よくばらつきを小さくする新しい異常検知モデルの作成を可能とする。本実施形態では、単純に異常スコアの比率を用いてサンプリングを行ったが、ランダム分布などほかの分布に基づいてサンプリングしてもよい。サンプリングを行う場合、既存の稼働データから抽出するだけでなく、補間値あるいは推定値を用いてもよい。Networks)等の生成モデルを学習し、そこからサンプリングする手法を用いたりしてもよい。これによって、稼働データに含まれない情報を含む異常検知モデルを構築でき、その結果、検知性能を向上できる場合がある。tを用いて新たな異常検知モデルを作成する(S205)。この手順はS205と同様である。newは、以下の(式3)で与えられる。ここで、なお、距離計算がボトルネックとなる場合は、バイナリハッシングや直積量子化法(PQ)などの距離計算を近似する手法を使ってもよい。これによって距離計算の負荷を大幅に軽減できる。[0057][数3][0058]次に、データ管理サーバ12の学習部122が、時刻t-1の異常検知モデルと、新たに作成した異常検知モデルを組み合わせて、ばらつき(分散)の小さい時刻tの異常検知モデルを作成する(S206)。tは時刻t-1の異常検知モデルと、新たに作成した異常検知モデルの重み付き線形和で与えられる。tは以下の式で与えられる。t_i)(i=1,2,...,N)のばらつき(分散)が小さいαを選択する。本実施形態では範囲を0から1、刻み幅を0.01としたが、よりほかの範囲や刻み幅でもよい。前述のとおり、ばらつきを評価する尺度として本実施形態では分散を用いるが四分位範囲(IQR)等を用いてもよい。[0059][数4][0060]次に、データ管理サーバ12の学習部122が、時刻を表す変数tをインクリメントして、t+1を設定する(S207)。[0061]次に、データ管理サーバ12の学習部122が、終了条件を満たしているかを判定する(S208)。本実施形態ではtが所定値Tを上回ったとき、終了条件を満たすものする。判定の結果、終了条件を満たしていなければ(S208:NO)、S204に戻り、終了条件を満たしていれば(S208:YES)、S209に進む。本実施形態ではtが所定値Tを上回ったとき、終了条件を満たすものとしたが、他の終了条件を設定してもよい。分散が所定の値以下となる、分散が初期の異常検知モデルの10%未満となる等であってよい。[0062]S208において、終了条件が満たされている場合、データ管理サーバ12の学習部122が、時刻tの異常検知モデルを構成する訓練データ群の重み付きサンプリングによって、新たな訓練データを作成する(S209)。tとするに)基づいて、どの訓練データを選択し、さらにその訓練データからランダムに1点データ(要素)を抽出するという手順を繰り返す。h(h=0,1,...,T)をとる確率Q(x)は、以下の(式5)で表される。tが、図5に示したモデルデータ300の重み1D304に対応する。この手順を繰り返すことにより、低密度またはマイノリティな正常時の稼働データと、高密度またはマジョリティな正常時の稼働データとの異常スコアのばらつきが小さくなっていく。[0065]最後に、データ管理サーバ12の学習部122が、S208で作成した訓練データを用いて異常検知モデルを作成して本処理を終了する(S210)。[0066]なお、この異常検知モデルは、前述のように、サブモデルID302が-1(アンサンブルモデルを再構成した異常検知モデル)となる。[0067]以上の手順により、異常スコアのばらつきが小さい異常検知モデルを構成できる。S209、S210のステップの処理によって、最後の時刻の異常検知モデルに近く、しかも、計算量的に軽量な異常検知モデルを構成できる。これらのステップは不要であれば、実施しなくてもよい。その場合は、最後の時刻の異常検知モデルを用いて、以降のS210における異常検知モデルを作成すればよい。[0068]なお、上記処理フローは機械学習分野でのアンサンブル学習におけるブースティングに類似した手順をとっている。一つずつモデルを追加していく手順をとっている。これに対し、アンサンブル学習におけるバギングのように、適切なサンプリングのための分布を設定した上で、複数の訓練データをサンプリングし、その数だけの異常検知モデルを作成し、線形和をとることで異常スコアを算出することもできる。[0069]次に、図9を用いて異常検知システムの監視フェーズの処理について説明する。この監視フェーズの処理に先立って、予め設備10における稼動データが収集されているものとする。[0070]まず、コントローラ11の検知部112が、サブモデル1D302が0、すなわち、最初の異常検知モデルを使って初期の異常スコア(「初期異常スコア」という)を算出する(S301)。[0071]次に、コントローラ11の検知部112が、サブモデル1D302が-1、すなわち、最後の異常検知モデルを使って異常スコアを算出する(S302)。サブモデル1D302が-1となる異常検知モデルがない場合、前述の(式4)の異常スコアを算出したときと同様の手順で異常スコアを算出する。[0072]次に、コントローラ11の検知部112が、初期異常スコア、異常スコアを異常検知結果データ400に登録する。コントローラ11の検知部112が、データ管理サーバ12の集配部121を介して、データ管理サーバ12の統合データ管理部123にも同様のデータを登録する(S303)。[0073]次に、コントローラ11の検知部112が、異常スコアがあらかじめ定めた閾値より大きいか否かを判定する(S304)。閾値より異常スコアが大きい場合には(S304:YES)、S305に進む。ない場合には(S304:NO)、本処理を終了する。[0074]S304で閾値より異常スコアが大きい場合には、コントローラ11の検知部112が、クライアント端末13の表示部131に異常があったことを通知する。これを受けて、クライアント端末13の表示部131が、稼働データ100や異常検知結果データ400といった異常の状況を知るための情報をユーザに提示する(S305)。[0075]なお、本実施形態では閾値は、予め定めているものとしたが、学習フェーズにおいて、データ管理サーバ12の学習部122が正常時の稼働データや、手に入る場合は異常時の稼働データを使って統計手法に基づき自動設定してもよい。正常時の稼働データを二つに分けて、片方でデータを学習し、もう片方で異常スコアを算出し、その最大値を閾値とするなどをしてもよい。[0076]次に、図10を用いて異常検知システムの提供するユーザインターフェースについて説明する。[0077]監視画面600は、クライアント端末13の表示部131が異常検知システムのユーザに提示し。稼動データや異常スコアなどに関する情報を表示し、設備10の監視をおこなうために提供する画面である。監視画面600は、図10に示されるように、モデル選択コンボボックス601、稼動データ表示ペイン602、異常スコア表示ペイン603、初期異常スコア表示ペイン604、スコア比率表示ペイン605を備える。[0078]モデル選択コンボボックス601には、異常検知結果データ400のモデルID402に対応するモデルIDが候補に表示される。ユーザがここで選んだモデルIDに対応した情報が、稼動データ表示ペイン602、異常スコア表示ペイン603、初期異常スコア表示ペイン604、スコア比率表示ペイン605に表示される。ユーザが操作しなくても、S304で異常が検知された場合には、ユーザに注意を促すために、自動的にモデルが選択されデータが表示されるものとする。[0079]稼働データ表示ペイン602には、選択されたモデル1Dに関する時系列データが表示される。表示されているグラフの横軸は時間、縦軸は値を示している。複数の変数がある場合、タブ602a、タブ602b、タブ602cによって、切り替えて表示することができる。図10に示した例では、停止状態から起動状態(枠602x2あたり)を経て、定常運転状態になり、途中異常な箇所があり(枠602x1あたり)を経て、終了状態(枠602x3あたり)、停止状態に戻るような稼働データの例となっている。[0080]異常スコア表示ペイン603には、選択されたモデルIDの異常検知モデルによって算出された異常スコアと閾値が表示される。表示されているグラフの横軸は時間、縦軸は異常スコアを示している。閾値を超え、かつ、例外パターンに合致していない箇所は強調表示される。ユーザはこのペインの情報を見ることにより、異常やその予兆が発生しているかどうかを把握することができる。[0081]初期異常スコア表示ペイン604には、選択されたモデルIDの異常検知モデルによって算出された初期異常スコアと閾値が表示される。表示されているグラフの横軸は時間、縦軸は異常スコアを示している。閾値を超え、かつ、例外パターンに合致していない箇所は強調表示される。[0082]スコア比率表示ペイン605には、選択されたモデルIDの異常検知モデルによって算出された初期異常スコアと異常スコアについて、初期異常スコアに対する異常スコアの比率(スコア比率=異常スコア/初期異常スコア)が表示される。表示されているグラフの横軸は時間、縦軸はスコア比率を示している。前記の初期異常スコア表示ペイン604の初期異常スコアと、スコア比率を見ることにより、ユーザは低密度もしくはマイノリティな箇所を把握できる。図10の破線枠602x2、602x3の箇所に対応するスコア比率が小さくなっている。これは、この部分にあたるシステムの起動状態や終了状態などが、停止状態や定常運転状態に比べマイノリティであることを示している。本実施形態では、マイノリティの部分の初期異常スコアに対して、異常スコアは、あまり異常としては捉えていないことを示している。したがって、ユーザは、システムの異常を分析するにあたり、スコア比率が小さくなっている箇所を注視することにより、訓練データが足りていない箇所の示唆を得ることができる。[0083]以上に説明したように、本実施形態によれば、異常スコアが異常検知モデルを学習したときに用いた、正常または正常であることが期待される稼動データ(正常時の稼働データ)に対して、低密度またはマイノリティな正常時の稼働データと、高密度もしくはマジョリティな正常時の稼働データとの異常スコアのばらつきが小さくなっていった結果、低密度もしくはマイノリティな正常時の稼働データを誤検知することが少なくなり、全体として誤検知や失報を少なく抑えることができる。[0084]また、初期異常スコアと異常スコアを比較することでどういった稼働データが低密度もしくはマイノリティであるかを把握できるようになり、訓練データの充足をユーザが判断することができる。前記稼働データから異常検知モデルを学習する手段は、前記異常検知モデルの内で、その異常検知モデルの要素のばらつきが小さい異常検知モデルを学習することを特徴とする異常検知システム。[請求項2]前記異常検知モデルの要素のばらつきは、前記異常検知モデルの要素の異常スコアの分散または四分位範囲であることを特徴とする請求項1記載の異常検知システム。[請求項3]前記稼働データから異常検知モデルを学習する手段は、初期の異常検知モデルを設定し、逐次的に異常検知モデルから異常スコアのばらつきが小さい異常検知モデルを再構成することを特徴とする請求項1記載の異常検知システム。異常検知モデルの異常スコアの最もばらつきが小さい組み合わせ方を探索し、それを異常検知モデルの異常スコアの合成に用いることを特徴とする請求項1記載の異常検知システム。[請求項5]前記稼働データから異常検知モデルを学習する手段は、複数の異常検知モデルから生成する異常検知モデルの異常スコアを、重み付き線形和によって合成することを特徴とする請求項1記載の異常検知システム。[請求項6]前記異常検知モデルは、k近傍距離に基づく異常検知モデルであることを特徴とする請求項1記載の異常検知システム。[請求項7]前記稼働データから異常検知モデルを学習する手段は、複数の異常検知モデルから新たな異常検知モデルを生成するにあたり、複数の異常検知モデルから稼働データをサンプリングして新たな異常検知モデルを生成することを特徴とする請求項1記載の異常検知システム。[請求項8]前記稼働データから異常検知モデルを学習する手段は、前記異常スコアの大きい異常検知モデルに対して、大きな確率でサンプリングすることを特徴とする請求項7記載の異常検知システム。[請求項9]前記稼働データから異常検知モデルを学習する手段は、ランダム分布に基づいてサンプリングするか、補間値あるいは推定値を用いてサンプリングするか、稼働データから生成モデルを学習し、そこからサンプリングするかのいずれかでサンプリングすることを特徴とする請求項7記載の異常検知システム。[請求項10]さらに、初期の異常検知モデルの異常スコアと、再構成された異常検知モデルの異常スコアの比率を表示する手段とを有することを特徴とする請求項1記載の異常検知システム。