(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024041512
(43)【公開日】2024-03-27
(54)【発明の名称】異常検知装置、方法およびプログラム
(51)【国際特許分類】
G05B 23/02 20060101AFI20240319BHJP
【FI】
G05B23/02 R
【審査請求】未請求
【請求項の数】11
【出願形態】OL
(21)【出願番号】P 2022146371
(22)【出願日】2022-09-14
(71)【出願人】
【識別番号】000003078
【氏名又は名称】株式会社東芝
(71)【出願人】
【識別番号】317015294
【氏名又は名称】東芝エネルギーシステムズ株式会社
(74)【代理人】
【識別番号】110003708
【氏名又は名称】弁理士法人鈴榮特許綜合事務所
(72)【発明者】
【氏名】田口 安則
(72)【発明者】
【氏名】中田 康太
(72)【発明者】
【氏名】内藤 晋
(72)【発明者】
【氏名】加藤 佑一
(72)【発明者】
【氏名】富永 真哉
(72)【発明者】
【氏名】高戸 直之
(72)【発明者】
【氏名】三宅 亮太
(72)【発明者】
【氏名】寺門 優介
(72)【発明者】
【氏名】青木 俊夫
【テーマコード(参考)】
3C223
【Fターム(参考)】
3C223AA02
3C223AA06
3C223FF05
3C223FF06
3C223FF22
3C223FF26
3C223FF33
3C223GG01
3C223HH03
(57)【要約】 (修正有)
【課題】異常の早期検知と誤検知の抑制を両立する異常検知装置を提供する。
【解決手段】異常検知装置は、予測部と、仮検知部と、特徴量算出部と、第2閾値設定部と、検知部と、を備える。予測部は、監視対象システムに設置された複数のセンサの測定値を入力すると前記測定値の予測値を出力する第1関数に基づいて、監視対象時刻の予測値を生成する。仮検知部は、前記測定値と前記予測値との偏差が前記第1閾値を超えたことを仮検知する。第2閾値設定部は、前記測定値の時間変化に関する特徴量と、前記特徴量を入力すると第2閾値を出力する第2関数に基づいて、第2閾値を設定する。検知部は、監視対象時刻における前記仮検知の連続回数が前記第2閾値以上であるか否かを判定することにより前記監視対象システムの異常または当該異常の予兆を検知し、当該検知結果に関する検知信号を生成する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
監視対象システムに設置された複数のセンサの測定値を取得する測定値取得部と、
前記測定値を入力すると前記測定値の予測値を出力する第1関数を取得する第1関数取得部と、
第1閾値を取得する第1閾値取得部と、
前記測定値の時間変化に関する特徴量を入力すると第2閾値を出力する第2関数を取得する第2関数取得部と、
監視対象時刻に取得した測定値と前記第1関数に基づいて、前記予測値を生成する予測部と、
前記測定値と前記予測値との偏差が前記第1閾値を超えたことを仮検知し、当該仮検知結果に関する仮検知信号を生成する仮検知部と、
前記仮検知信号に基づいて、監視対象時刻における前記仮検知の連続回数をカウントするカウンター部と、
前記測定値に基づいて、前記特徴量を算出する特徴量算出部と、
前記特徴量と前記第2関数に基づいて、第2閾値を設定する第2閾値設定部と、
前記連続回数が前記第2閾値以上であるか否かを判定することにより前記監視対象システムの異常または当該異常の予兆を検知し、当該検知結果に関する検知信号を生成する検知部と、
を備える異常検知装置。
【請求項2】
前記特徴量は、前記測定値の微分値、前記微分値の絶対値、前記微分値の累積値または前記絶対値の累積値である、
請求項1に記載の異常検知装置。
【請求項3】
前記第1関数は、機械学習で生成された学習済みモデルが表す関数である、
請求項1または2に記載の異常検知装置。
【請求項4】
前記第2関数は、前記学習済みモデルの訓練に利用した測定値の集合である訓練データに基づいて計算された前記特徴量の頻度分布に基づいて、第1の頻度を有する特徴量が入力されると前記第2閾値として第1の値を出力し、前記第1の頻度よりも小さい第2の頻度を有する特徴量が入力されると前記第2閾値として前記第1の値以上の第2の値を出力し、
前記第2関数から出力される前記第2閾値は、前記第2関数への入力である前記特徴量の前記頻度分布における頻度に応じて2種類以上の値をとる、
請求項3に記載の異常検知装置。
【請求項5】
前記累積値に関する累積期間は、前記第1関数へ入力される前記測定値の時間窓長以下である、
請求項2に記載の異常検知装置。
【請求項6】
前記特徴量のトレンドグラフを表示する表示部をさらに備える、
請求項1に記載の異常検知装置。
【請求項7】
前記偏差と前記特徴量の相関係数を表示する表示部をさらに備える、
請求項1に記載の異常検知装置。
【請求項8】
前記頻度分布を表示する表示部をさらに備える、
請求項4に記載の異常検知装置。
【請求項9】
前記第2閾値のトレンドグラフを表示する表示部をさらに備える、
請求項1に記載の異常検知装置。
【請求項10】
監視対象システムに設置された複数のセンサの測定値を取得することと、
前記測定値を入力すると前記測定値の予測値を出力する第1関数を取得することと、
第1閾値を取得する第1閾値取得部と、
前記測定値の時間変化に関する特徴量を入力すると第2閾値を出力する第2関数を取得することと、
前記測定値と前記第1関数に基づいて、前記予測値を生成することと、
前記測定値と前記予測値との偏差が前記第1閾値を超えたことを仮検知し、当該仮検知結果に関する仮検知信号を生成することと、
前記仮検知信号に基づいて、監視対象時刻における前記仮検知の連続回数をカウントすることと、
前記測定値に基づいて、前記特徴量を算出することと、
前記特徴量と前記第2関数に基づいて、第2閾値を設定することと、
前記連続回数が前記第2閾値以上であるか否かを判定することにより前記監視対象システムの異常または当該異常の予兆を検知し、当該検知結果に関する検知信号を生成することと、
を備える方法。
【請求項11】
コンピュータに、
監視対象システムに設置された複数のセンサの測定値を取得する機能と、
前記測定値を入力すると前記測定値の予測値を出力する第1関数を取得する機能と、
第1閾値を取得する第1閾値取得部と、
前記測定値の時間変化に関する特徴量を入力すると第2閾値を出力する第2関数を取得する機能と、
前記測定値と前記第1関数に基づいて、前記予測値を生成する機能と、
前記測定値と前記予測値との偏差が前記第1閾値を超えたことを仮検知し、当該仮検知結果に関する仮検知信号を生成する機能と、
前記仮検知信号に基づいて、監視対象時刻における前記仮検知の連続回数をカウントする機能と、
前記測定値に基づいて、前記特徴量を算出する機能と、
前記特徴量と前記第2関数に基づいて、第2閾値を設定する機能と、
前記連続回数が前記第2閾値以上であるか否かを判定することにより前記監視対象システムの異常または当該異常の予兆を検知し、当該検知結果に関する検知信号を生成する機能と、
を実現させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、異常検知装置、方法およびプログラムに関する。
【背景技術】
【0002】
発電プラントや水処理プラントに用いられるインフラシステムや、製造装置に用いられるシステムは、複数の機器から構成される。インフラシステムが停止した場合、社会機能に悪影響を与えることがある。また、製造装置のシステムが停止した場合、経済的損失を生むことがある。このため、これらのシステムを健全な状態に保つことが重要である。
【0003】
システムの故障を未然に防ぐため、あるいは、故障後にできるだけ早くシステムを復旧するためには、システムを監視する必要がある。システムを監視するため、1つ以上のセンサがシステム内の各所に設置される場合が多い。そして、設置した1つ以上のセンサの測定値を利用することにより、システムの状態を監視できる。しかし、システムの規模が大きかったり、システムが複雑だったりすると、監視に必要なセンサの数が多くなる。この場合、限られた人数で全てのセンサを同時に監視するのは困難である。
【0004】
このような課題に対し、システムの監視を補助または自動化する異常検知装置が知られている。このような異常検知装置では、例えば、正常な状態で測定されたセンサの測定値から生成した近似式を用いて予測値を生成し、測定値が予測値から連続して乖離する回数が所定の閾値に達した場合に、異常を検知したとみなす方法が用いられる。このような方法により、システムの正常な挙動を誤って異常とみなして検知する誤検知が抑制される。
【0005】
しかし、ここで注意すべきは、異常の早期の検知と誤検知の抑制が、二律背反の関係にあることである。センサや時刻によらず連続回数に関する閾値を一律で小さく設定すると、異常を早期に検知できるものの、誤検知が多くなる。逆に、センサや時刻によらず連続回数に関する閾値を一律で大きく設定すると、誤検知を減らせるものの、異常を早期に検知できなくなる。
【先行技術文献】
【特許文献】
【0006】
【発明の概要】
【発明が解決しようとする課題】
【0007】
本発明が解決しようとする課題は、異常の早期検知と誤検知の抑制を両立する異常検知装置、方法、および、プログラムを提供することである。
【課題を解決するための手段】
【0008】
このような課題を解決するため、実施形態の異常検知装置は、測定値取得部と、第1関数取得部と、第2関数取得部と、予測部と、仮検知部と、カウンター部と、特徴量算出部と、第2閾値設定部と、検知部と、を備える。測定値取得部は、監視対象システムに設置された複数のセンサの測定値を取得する。第1関数取得部は、前記測定値を入力すると前記測定値の予測値を出力する第1関数を取得する。第2関数取得部は、前記測定値の時間変化に関する特徴量を入力すると第2閾値を出力する第2関数を取得する。予測部は、監視対象時刻に取得した測定値と前記第1関数に基づいて、前記予測値を生成する。仮検知部は、前記測定値と前記予測値との偏差が前記第1閾値を超えたことを仮検知し、当該仮検知結果に関する仮検知信号を生成する。カウンター部は、前記仮検知信号に基づいて、監視対象時刻における前記仮検知の連続回数をカウントする。特徴量算出部は、前記測定値に基づいて、前記特徴量を算出する。第2閾値設定部は、前記特徴量と前記第2関数に基づいて、第2閾値を設定する。検知部は、前記連続回数が前記第2閾値以上であるか否かを判定することにより前記監視対象システムの異常または当該異常の予兆を検知し、当該検知結果に関する検知信号を生成する。
【図面の簡単な説明】
【0009】
【
図1】第1の実施形態に係る異常検知装置の構成の一例を示す図
【
図2】第1の実施形態に係る異常検知装置による異常検知処理の処理手順を例示するフローチャート
【
図3】第1の実施形態に係る異常検知装置による予測値の時間変化の一例を示す図
【
図4】第1の実施形態に係る異常検知装置による偏差の時間変化の一例を示す図
【
図5】第4の変形例に係る異常検知装置の構成の一例を示す図
【
図6】第4の変形例に係る異常検知装置による特徴量の時間変化の一例を示す図
【
図7】第5の変形例に係る異常検知装置の構成の一例を示す図
【
図8】第6の変形例に係る異常検知装置の構成の一例を示す図
【
図9】第6の変形例に係る異常検知装置に用いられる特徴量の頻度分布の一例を示す図
【
図10】
図9の頻度分布に閾値を重畳表示した一例を示す図
【
図11】第7の変形例に係る異常検知装置の構成の一例を示す図
【
図12】第7の変形例に係る異常検知装置による第2閾値の時間変化の一例を示す図
【
図13】第2の実施形態に係る異常検知装置に用いられる特徴量の頻度分布の一例を示す図
【発明を実施するための形態】
【0010】
以下、図面を参照しながら、異常検知装置、方法およびプログラムの実施形態について詳細に説明する。以下の説明において、略同一の機能及び構成を有する構成要素については、同一符号を付し、重複説明は必要な場合にのみ行う。
【0011】
(第1の実施形態)
図1は、第1の実施形態に係る異常検知装置100の構成を示す図である。異常検知装置100は、ネットワーク等を介して、監視対象のシステムに接続されている。異常検知装置100は、監視対象システムの異常または異常の予兆を検知する装置である。以下では、異常と異常の予兆を区別せずに異常と表記する。異常検知装置100は、監視対象システムに設置された複数のセンサにおいて時々刻々と測定される測定値を取得して、システムの異常を検知する。そして、異常検知結果を示す信号をディスプレイ等の外部機器へ出力する。
【0012】
ネットワークは、例えば、LAN(Local Area Network)である。なお、ネットワークへの接続は、有線接続、及び無線接続を問わない。また、ネットワークはLANに限定されず、インターネットや公衆の通信回線等であっても構わない。
【0013】
異常検知装置100は、異常検知装置100全体を制御する処理回路と、記憶媒体(メモリ)と、を備える。処理回路は、記憶媒体内のプログラムを呼び出し実行することにより、第1関数取得部101、第1閾値取得部102、測定値取得部104、第2関数取得部103、予測部105、仮検知部106、カウンター部107、特徴量算出部108、第2閾値設定部109及び検知部110の機能を実行するプロセッサである。処理回路は、CPU(Central Processing Unit)、ASIC(Application Specific Integrated Circuit)又はFPGA(Field Programmable Gate Array)等を含む集積回路から形成される。プロセッサは、1つの集積回路から形成されてもよく、複数の集積回路から形成されてもよい。
【0014】
記憶媒体には、プロセッサで用いられる処理プログラム、及び、プロセッサでの演算で用いられるパラメータ及びテーブル等が記憶される。記憶媒体は、種々の情報を記憶するHDD(Hard Disk Drive)やSSD(Solid State Drive)、集積回路等の記憶装置である。また、記憶装置は、HDDやSSD等以外にも、CD(Compact Disc)、DVD(Digital Versatile Disc)、フラッシュメモリ等の可搬性記憶媒体であってもよく、フラッシュメモリ、RAM(Random Access Memory)等の半導体メモリ素子等との間で種々の情報を読み書きする駆動装置であってもよい。
【0015】
なお、第1関数取得部101、第1閾値取得部102、第2関数取得部103、測定値取得部104、予測部105、仮検知部106、カウンター部107、特徴量算出部108、第2閾値設定部109及び検知部110が有する各機能は、単一の処理回路にて実現されてもよく、複数の独立したプロセッサを組み合わせて処理回路を構成し、各プロセッサがプログラムを実行することにより各機能を実現するものとしても構わない。また、第1関数取得部101、第1閾値取得部102、第2関数取得部103、測定値取得部104、予測部105、仮検知部106、カウンター部107、特徴量算出部108、第2閾値設定部109及び検知部110が有する各機能は、個別のハードウェア回路として実装してもよい。
【0016】
第1関数取得部101は、第1関数を取得し、取得した第1関数を予測部105に送る。第1関数は、異常検知装置100の外部から後述の測定値を入力すると、後述の予測値を出力する関数である。第1関数としては、例えば、機械学習で生成された学習済みモデルが表す関数が用いられる。具体的には、第1関数は、例えば、監視対象システムに設置された複数のセンサ(以下、監視対象センサと呼ぶ)の測定値の履歴データから生成された機械学習モデルである。機械学習方式としては、例えば、線型回帰、多項式回帰、リッジ回帰、カーネルリッジ回帰、サポートベクター回帰、決定木回帰、ランダムフォレスト回帰、ニューラルネットワーク等、様々なものが知られている。ニューラルネットワークには、オートエンコーダや深層学習が含まれる。
【0017】
第1閾値取得部102は、異常検知装置100の外部から、監視対象センサに対する第1閾値を取得し、仮検知部106に送る。第1閾値は、測定値と予測値との偏差に対して後述の仮検知を行う際に用いる閾値である。
【0018】
第2関数取得部103は、異常検知装置100の外部から第2関数を取得し、取得した第2関数を第2閾値設定部109に送る。第2関数は、測定値に基づいて算出される後述の特徴量を入力すると後述の第2閾値を出力する関数である。
【0019】
測定値取得部104は、異常検知装置100の外部から、監視対象システムに設置された複数のセンサの測定値を取得する。具体的には、測定値取得部104は、監視するシステムに設置された各センサの測定値を含む情報(以下、測定値データと呼ぶ)を取得する。測定値データは、監視するシステムに設置された複数のセンサにおいて時々刻々と測定される時系列データである。測定値データの取得間隔は、センサのサンプリング間隔や異常検知装置100の処理速度に応じて定めることが好ましい。測定値データの取得間隔は、例えば、1分や10分等である。監視対象時刻付近の複数の時刻の測定値を扱うために、測定値取得部104の内部にメモリを設けても良い。
【0020】
測定値取得部104は、各測定値を要素に持つベクトルを生成し、生成したベクトルを予測部105に送る。このベクトルは、予測部105における後述の予測処理に用いられる。また、測定値取得部104は、各測定値を要素に持つベクトルを生成し、生成したベクトルを仮検知部106に送る。このベクトルは、仮検知部106における後述の仮検知処理に用いられる。また、測定値取得部104は、各測定値を要素に持つベクトルを生成し、生成したベクトルを特徴量算出部108に送る。このベクトルは、特徴量算出部108における後述の特徴量の算出に用いられる。
【0021】
予測部105は、測定値と第1関数に基づいて、予測値を生成する。具体的には、予測部105は、測定値取得部104から取得した各センサの監視対象時刻における測定値を第1関数取得部101から取得した第1関数に入力することにより、第1関数から出力された各センサの予測値を取得する。予測部105は、生成した予測値を仮検知部106に送る。
【0022】
仮検知部106は、測定値と予測値との偏差が第1閾値を超えたことを仮検知し、当該仮検知結果に関する仮検知信号を生成する。仮検知とは、最終的な異常検知を行う前に、測定値が異常の候補であるか否かを仮に検知することである。仮検知部106は、測定値取得部104から取得した測定値のベクトルと、予測部105から取得した予測値とを用いて測定値と予測値との偏差を各センサについて算出し、算出した偏差と第1閾値取得部102から取得した第1閾値に基づいて、測定値が異常の候補であるか否かを監視対象センサのそれぞれについて判定する。測定値が異常の候補であると判定した場合、測定値が異常の候補であることを表す信号(以下、仮検知信号と呼ぶ)を生成し、生成した仮検知信号をカウンター部107に送る。
【0023】
カウンター部107は、仮検知信号に基づいて、監視対象時刻における仮検知の連続回数をカウントする。具体的には、カウンター部107は、仮検知部106から取得した仮検知信号を経時的に記憶しておき、監視対象時刻までに連続して測定値が異常の候補であると判定された回数を算出する。その後、カウンター部107は、算出した回数を連続回数として検知部110に送る。
【0024】
特徴量算出部108は、測定値に基づいて、測定値の時間変化に関する特徴量を算出する。具体的には、特徴量算出部108は、測定値取得部104から取得した各センサの測定値に基づいて、測定値の時間変化に関する特徴量を各センサについて算出する。特徴量としては、例えば、測定値の微分値、測定値の微分値の絶対値、測定値の微分値の累積値、または、測定値の微分値の絶対値の累積値等を用いることができる。特徴量算出部108は、算出した特徴量を第2閾値設定部109に送る。
【0025】
第2閾値設定部109は、特徴量と第2関数に基づいて、第2閾値を設定する。具体的には、第2閾値設定部109は、第2関数取得部103から取得した第2関数と、特徴量算出部108から取得した特徴量に基づいて、各センサについて第2閾値を設定する。第2閾値設定部109は、センサ毎に設定した第2閾値を検知部110に送る。
【0026】
第2関数は、第1関数として用いられる学習済みモデルの学習に用いられる訓練データとして正常パターンのデータを充分に準備できないパターンに対して、第2閾値が大きく設定される関数である。第2関数は、学習済みモデルの訓練に利用した測定値の集合である訓練データに基づいて計算された特徴量の頻度分布に基づいて、第1の頻度を有する特徴量が入力されると第2閾値として第1の値を出力し、第1の頻度よりも小さい第2の頻度を有する特徴量が入力されると第2閾値として第1の値以上の第2の値を出力する。また、第2関数から出力される第2閾値は、第2関数への入力である特徴量の頻度分布における頻度に応じて2種類以上の値をとるように設計される。
【0027】
例えば、発電プラントや水処理プラントなどのプラントや、製造装置に対して用いられる監視対象システムでは、定常運転が支配的である場合が多い。この場合の運転は定常的であるため、測定値の時間変化が大きいタイミングが少ない。よって、この場合向けの第2関数は、測定値の時間変化が大きいときに第2閾値が大きく設定される関数として設計すると良い。測定値の時間変化が大きいことは特徴量またはその絶対値が大きいことと対応している。特徴量またはその絶対値が大きいほど、訓練データにおける頻度が小さい性質がわかっているため、この性質を利用し、第2関数としては、入力される特徴量またはその絶対値が小さい場合に、第2閾値として大きい値を出力するような関数が用いられる。この場合、第2関数は、第1の特徴量が入力されると第2閾値として第1の値を出力し、第1の特徴量よりも大きい第2の特徴量が入力される、あるいは、第1の特徴量の絶対値よりも絶対値が大きい第2の特徴量が入力されると、第2閾値として第1の値以上の第2の値を出力する。このため、第2閾値設定部109は、特徴量算出部108から取得した特徴量またはその絶対値が小さいほど、第2閾値として大きい値を設定する。
【0028】
なお、第2関数は、入力された特徴量が所定の閾値よりも小さい場合に大きい値を出力し、入力された特徴量が所定の閾値以上である場合に小さい値を出力するような出力が2種類の関数であってもよく、入力された特徴量の大きさに応じて3種類以上の値を出力するような関数であってもよい。
【0029】
検知部110は、カウンター部107から取得した連続回数と第2閾値設定部109から取得した第2閾値から、監視対象センサに対する検知信号を生成し、生成した検知信号を異常検知装置100の外部に出力する。例えば、検知部110は、連続回数が第2閾値以上であるか否かを判定することにより監視対象システムの異常を検知し、当該検知結果に関する検知信号を生成する。
【0030】
次に、異常検知装置100により実行される処理の動作について説明する。
図2は、異常検知処理の手順の一例を示すフローチャートである。異常検知処理は、監視対象のシステムに設置された監視対象センサから得られるセンサ値に基づいてシステムの異常を検知する処理である。なお、以下で説明する各処理における処理手順は一例に過ぎず、各処理は可能な限り適宜変更可能である。また、以下で説明する処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が可能である。
【0031】
なお、ステップS201からステップS203までの処理は、監視対象時刻において異常の検知を実行する前に予め実行される処理である。一方、ステップS204からステップS211までの処理は、監視対象時刻において異常を検知する処理である。ステップS204からステップS211までの処理は、例えば、所定の時間間隔で実行される。この時間間隔は、測定値を取得する間隔でもあるため、以降、サンプリング間隔と呼ぶ。このサンプリング間隔は、N個の監視対象センサのうち多くの監視対象センサの測定値の傾向を把握しやすいように、各監視対象センサの測定値のトレンドグラフにおいて値が過剰に急激には変化しない程度の時間間隔に設定される場合が多い。監視対象時刻や各部の同期は、処理回路により制御される。
【0032】
(異常検知処理)
(ステップS201)
第1関数取得部101は、異常検知装置100の外部から、後述の測定値を入力すると、後述の予測値を出力する第1関数を取得し、予測部105に送る。ここでは、第1関数をfで表す。第1関数fは、例えば、監視対象システムに設置された複数のセンサの測定値の履歴データから生成された機械学習モデルである。機械学習モデルfを訓練する際には、例えば、履歴データから後述のxとyの組からなる訓練データを生成し、その訓練データから、f(x)のyに対する二乗誤差の総和Eが最小になるように機械学習モデルfを学習させる。二乗誤差の総和Eは、以下の式(1)を用いて算出される。
【0033】
【0034】
式(1)において、||・||は、ベクトルのL2ノルムを表す。Dは、訓練データに含まれるxとyの組の数を表す。xとyの添え字iは、その組の番号を表し、i=1,2,…,Dである。
【0035】
(ステップS202)
第1閾値取得部102は、異常検知装置100の外部から、N個の監視対象センサに対する第1閾値を取得し、仮検知部106に送る。監視対象の各センサに対する第1閾値をN次元ベクトルjで表す。また、ベクトルjのn(n=1,2,…,N)番目の要素をjnで表す。jnは、n番目の監視対象センサに対する第1閾値を表す。
【0036】
(ステップS203)
第2関数取得部103は、異常検知装置100の外部から、特徴量を入力すると第2閾値を出力する第2関数を取得し、第2閾値設定部109に送る。ここでは、第2関数をgで表す。第2関数gは、後述の第2閾値kを生成するための関数である。第2関数gは、例えば、以下の式(2)を満たすベクトル値関数である。
【0037】
【0038】
式(2)において、・Tは、行列やベクトルの転置を表す。gnは、特徴量vを入力すると第2閾値kn(n=1,2,…,N)を出力する関数である。第2閾値kn、特徴量v、関数gnについては後述する。
【0039】
(ステップS204)
測定値取得部104は、異常検知装置100の外部から、監視対象システムに設置された複数のセンサの測定値を取得する。その後、測定値取得部104は、予測部105における後述の予測処理に必要な各測定値を要素に持つベクトルxを予測部105に送る。また、測定値取得部104は、仮検知部106における後述の仮検知処理に必要な各測定値を要素に持つベクトルyを仮検知部106に送る。また、測定値取得部104は、特徴量算出部108における後述の特徴量の算出に必要な各測定値を要素に持つベクトルzを特徴量算出部108に送る。監視対象時刻付近の複数の時刻の測定値を扱うために、測定値取得部104の内部にメモリを設けても良い。
【0040】
予測部105における予測処理において参照する測定値について、センサの数をMで表し、参照する時間前の長さをWで表す。この場合、ベクトルxの次元数は、MWである。ベクトルxの時間窓には、監視対象時刻が含まれていても、含まれていなくても良い。
【0041】
ベクトルyは、監視対象時刻におけるN個の監視対象センサの測定値を要素に持つN次元ベクトルである。ベクトルyのn(n=1,2,…,N)番目の要素をynで表す。ynは、監視対象時刻におけるn番目の監視対象センサの測定値を表す。
【0042】
ベクトルzは、監視対象時刻付近におけるN個の監視対象センサの測定値を要素に持つNU次元ベクトルである。ここで、Uは、監視対象時刻付近における時間窓の長さを表す。zの時間窓には、監視対象時刻が含まれる。
【0043】
(ステップS205)
予測部105は、第1関数fと測定値のベクトルxから、監視対象時刻におけるN個の監視対象センサの測定値の予測値を要素に持つN次元ベクトルf(x)を生成する。ここで、ベクトルf(x)のn(n=1,2,…,N)番目の要素をfnで表す。fnは、監視対象時刻におけるn番目の監視対象センサの予測値を表す。予測部105は、予測値のベクトルf(x)を仮検知部106に送る。
【0044】
(ステップS206)
仮検知部106は、測定値のベクトルy、予測値のベクトルf(x)、および、第1閾値jに基づいて、N個の監視対象センサのそれぞれについて、測定値が異常の候補であるか否かを表す仮検知信号を生成し、生成した仮検知信号をカウンター部107に送る。ここで、仮検知信号をN次元ベクトルcで表す。ベクトルcのn(n=1,2,…,N)番目の要素をcnで表す。cnは、n番目の監視対象センサの仮検知信号を表す。cnは、例えば、以下の式(3)を用いて算出される。
【0045】
【0046】
(ステップS207)
カウンター部107は、仮検知信号のベクトルcに基づいて、N個の監視対象センサのそれぞれについて、仮検知の連続回数を数え、検知部110に送る。仮検知の連続回数は、監視対象時刻までに仮検知が連続して検知された回数である。ここで、N個の監視対象センサの仮検知の連続回数をN次元ベクトルrで表す。ベクトルrのn(n=1,2,…,N)番目の要素をrnで表す。rnは、n番目の監視対象センサの仮検知の連続回数を表す。監視対象時刻において、cnが0であれば、rnも0とする。また、監視対象時刻において、cnが1であれば、監視対象時刻から過去にさかのぼってcnが何回連続で1だったかを数えた結果をrnとする。仮検知の連続回数を数えるには、仮検知信号のベクトルcの履歴データが必要である。その履歴データの保持のために、カウンター部107の内部にメモリを設けても良い。
【0047】
(ステップS208)
特徴量算出部108は、測定値のベクトルzから、N個の監視対象センサの測定値の時間方向の変化を表す特徴量を算出し、第2閾値設定部109に送る。N個の監視対象センサの特徴量をベクトルvで表す。
【0048】
(ステップS209)
第2閾値設定部109は、第2関数gと特徴量のベクトルvから、N個の監視対象センサに対する第2閾値を設定し、検知部110に送る。ここで、N個の監視対象センサに対する第2閾値を、N次元ベクトルkで表す。ベクトルkのn(n=1,2,…,N)番目の要素をknで表す。knは、n番目の監視対象センサに対する第2閾値を表す。ベクトルkは、k=g(v)によって計算される。
【0049】
(ステップS210)
検知部110は、連続回数のベクトルrと第2閾値のベクトルkから、N個の監視対象センサに対する検知信号を生成し、異常検知装置100の外部に出力する。N個の監視対象センサに対する検知信号を、N次元ベクトルdで表す。ベクトルdのn(n=1,2,…,N)番目の要素をdnで表す。dnは、n番目の監視対象センサに対する検知信号を表す。dnは、例えば、以下の式(4)を用いて算出される。
【0050】
【0051】
式(4)において、dnが1であることは、n番目の監視対象センサが異常として検知されたことを表す。また、dnが0であることは、n番目の監視対象センサが異常として検知されなかったことを表す。
【0052】
(ステップS211)
異常検知装置100は、異常検知処理を継続するか否かを判定する。例えば、監視対象システムに対する検査や補修を行う場合、または、異常検知装置100をメンテナンスする場合に、異常検知処理を継続しないと判定する。異常検知処理を継続する場合(ステップS211-Yes)、処理はステップS204に戻り、ステップS204からステップS211までの処理を繰り返し実行する。異常検知処理を継続しない場合(ステップS211-No)、異常検知処理を終了する。
【0053】
異常検知処理では、以上の処理により、各監視対象時刻において、検知信号のベクトルdが生成される。すなわち、各監視対象時刻において、各監視対象センサの異常が検知される。
【0054】
(特徴量の具体例)
ここで、特徴量vの具体例について詳しく説明する。
特徴量vは、測定値の時間変化に関し、測定値の時間変化が相対的に激しい時期を特定するために計算される。特徴量vは、例えば、N個のベクトルan(n=1,2,…,N)を連結したベクトルである。
【0055】
ベクトルanは、例えば、測定値のベクトルzのうちのn番目の監視対象センサの測定値の要素を抽出したU次元ベクトルを用いて算出される。ベクトルanは、例えば、前述のU次元ベクトルを微分することにより算出される。微分ステップが1の場合、anは(U-1)次元ベクトルであり、N個のanを連結したvは、N(U-1)次元ベクトルである。微分ステップが(U-1)の場合、anは1次元ベクトル、すなわち、スカラーであり、N個のanを連結したvはN次元ベクトルである。微分ステップは、1やU-1以外の値でも構わない。この場合も、N個のanを連結したベクトルvが、測定値の時間変化を表す特徴量になる。
【0056】
anは、前述のU次元ベクトルの微分値の絶対値を用いて算出しても構わない。この場合も、N個のanを連結したベクトルvが測定値の時間変化を表す特徴量になる。
【0057】
また、anは、前述の微分値や微分値の絶対値を時間方向に累積したスカラーとしても構わない。この場合も、N個のanを連結したベクトルvが測定値の時間変化を表す特徴量になる。また、anを計算する際、第1関数fに入力する測定値のベクトルxを参照すると実装しやすい。そこで、微分値や微分値の絶対値を時間方向に累積する際の累積期間は、第1関数fに入力する測定値のベクトルxの時間窓長以下にすることが好ましい。
【0058】
vは、N個のanを連結したベクトルのL1ノルムであっても構わない。この場合、特徴量vは、スカラーである。この場合も、vが測定値の時間変化を表す特徴量になる。
【0059】
(第2関数の具体例)
次に、第2関数gの具体例について詳しく説明する。
第2関数gは、特徴量から、第2閾値を決定する関数である。vがベクトルの場合、gを定める関数gnは、例えば、以下の式(5)を用いて算出される。
【0060】
【0061】
式(5)において、||・||1は、ベクトルのL1ノルムを表す。bnは、正の定数である。εnは、正の定数である。定数εnの役割は、関数gnの出力値が発散するのを防止することである。この関数gnでは、ベクトルvのL1ノルム||v||1が小さいほど、大きな値が出力される。また、kn=gn(v)であるため、ベクトルvのL1ノルム||v||1が小さいほど、n番目の監視対象センサの第2閾値knの値が大きくなる。
【0062】
anを計算するための微分のステップが1の場合、anは(U-1)次元ベクトルであり、vはN(U-1)次元ベクトルである。この場合、||an||1は、n番目の監視対象センサに対して微分ステップ1で微分した微分値の絶対値の累積値を表し、以下の式(6)が成り立つ。
【0063】
【0064】
kn=gn(v)と式(5)、(6)より、微分ステップが1の場合、knは、微分値の絶対値の累積値の総和||v||1が小さいほど大きな値をとる。
【0065】
anを計算するための微分のステップが(U-1)の場合、anは1次元ベクトル、すなわち、スカラーである。この場合、||an||1=|an|が成り立ち、||an||1は、微分ステップU-1でn番目の監視対象センサを微分した際の微分値の絶対値を表し、以下の式(7)が成り立つ。
【0066】
【0067】
式(7)において、|・|は、スカラーの絶対値を表す。kn=gn(v)と式(5)、(7)より、微分ステップが(U-1)の場合、knは、微分値の絶対値の総和||v||1が小さいほど大きな値をとる。
【0068】
微分ステップによってvや||v||1が変化するものの、vや||v||1が監視対象センサの時間変化の大きさを表す特徴量である点は同じである。したがって、この関数gnの場合、微分ステップによらず、knは監視対象センサの時間変化が小さいほど大きな値をとる。このように、監視対象センサの測定値が急激に変化する時刻での第2閾値が、他の時刻での第2閾値よりも大きくなるように自動で制御される。
【0069】
前述したように、第2関数としては、他の様々な関数が採用されて構わない。ただし、第2関数には制約がある。具体的には、第2関数は、第1関数として用いられる学習済みモデルの学習に用いられる訓練データとして正常パターンのデータを充分に準備できないパターンに対して、第2閾値が大きく設定される関数である必要がある。例えば、発電プラントや水処理プラントなどのプラントや、製造装置に対して用いられる監視対象システムでは、定常運転が支配的であるため、第2関数は、測定値の時間変化が多いときに第2閾値が大きく設定される関数である必要がある。すなわち、第2関数は、学習済みモデルの訓練に利用した測定値の集合である訓練データに基づいて計算された特徴量の頻度分布に基づいて、第1の頻度を有する特徴量が入力されると第2閾値として第1の値を出力し、第1の頻度よりも小さい第2の頻度を有する特徴量が入力されると第2閾値として第1の値以上の第2の値を出力する。また、第2閾値は、第2関数への入力である特徴量の頻度分布における頻度に応じて2種類の値をとるように設計されている。
【0070】
(第1の実施形態の効果)
以下、本実施形態に係る異常検知装置100の効果について説明する。
【0071】
(誤検知の発生原理)
まず、本実施形態において抑制できる誤検知の発生原理について説明する。
我々発明者らは、誤検知には、特定の発生パターンと、その発生パターンの発生原理が存在することを発見した。すなわち、我々発明者らは、ある誤検知についての発生原理を発見した。
【0072】
図3及び
図4は、誤検知の特定の発生パターンを説明するための図である。
図3は、n番目の監視対象センサの測定値y
nと予測値f
nのトレンドグラフである。
図3の横軸は時刻を表し、
図3の縦軸は測定値及び予測値を表す。
図3の実線は、測定値y
nの時間推移を表す。
図3の破線は、予測値f
nの時間推移を表す。
図3は、正常な挙動として上下に変動している場合の測定値y
nの時間推移を示している。
図4は、監視対象センサの測定値y
nと予測値f
nとの偏差(y
n-f
n)のトレンドグラフである。
図4の横軸は
図3と同期した時刻を表し、
図4の縦軸は偏差を表す。
図4の実線は、偏差(y
n-f
n)の時間推移を表す。
図4の上側の破線は、第1閾値j
nを表し、
図4の下側の破線は、第1閾値j
nを-1倍したものを表す。
【0073】
上述したように、
図3は、測定値y
nの正常な挙動を示している。このため、
図4の偏差が第1閾値を超えた際に異常として検知した場合、その検知は誤検知となる。
図3及び
図4に示すように、
図4における偏差が第1閾値を超えている時期は、
図3における測定値の時間変化が相対的に激しい時期と同期していることがわかる。したがって、測定値の時間変化が相対的に激しい時期に誤検知が発生しやすいという発生パターンが存在することが分かる。
【0074】
また、
図3及び
図4に示すように、
図4における偏差が第1閾値を超えている時期は、
図3における予測値の変化が測定値の変化に追従していないことがわかる。したがって、予測値が測定値に追従していない時期に誤検知が発生しやすいという発生パターンが存在することが分かる。
【0075】
前述の通り、第1関数fは、例えば、二乗誤差の総和Eを最小化することで学習される。よって、第1関数fの学習に用いられる訓練データにおいて出現頻度が低い入力xlに対する予測値f(xl)の二乗誤差(=||f(xl)-yl||2)は、訓練データにおいて出現頻度が高い入力xhに対する予測値f(xh)の二乗誤差(=||f(xh)-yh||2)よりも大きくなる。ここで、入力xlの「l」と、入力xhの「h」は、インデックスを表す。
【0076】
前述の通り、監視対象センサのサンプリング間隔は、N個のセンサのうち多くの監視対象センサの測定値のトレンドグラフにおいて、値が急激に変化しない程度の時間間隔に設定される場合が多い。したがって、履歴データには、測定値が急激に変化する時刻が多くないセンサが多い。訓練データは履歴データから作成される。このため、訓練データにおいて、測定値が急激に変化する時刻が多くない監視対象センサが多くなる。したがって、監視対象システムが正常な状態における予測値f(x)の二乗誤差(=||f(x)-y||
2)は、監視対象センサの測定値が急激に変化する時刻において大きくなりがちである。
図4において、測定値の時間変化が相対的に激しい時期に予測値f
nが測定値y
nに追従せず、偏差の絶対値|y
n-f
n|が大きくなったのは、このためである。監視対象システムが正常であるにも関わらず、予測値f
nが測定値y
nに追従しない場合、各監視対象センサについて、測定値の予測値からの偏差が大きくなる。そのため、偏差の絶対値が第1閾値を超えやすくなり、仮検知が生じやすくなる。その結果、誤検知が生じやすくなる。これが、我々発明者が発見した誤検知の発生原理である。
【0077】
発電プラントや水処理プラントなどのプラントや、製造装置に対して用いられる監視対象システムでは、定常運転が支配的であるため、監視対象センサの多くは、測定値が急激に変化する時刻が少なくなる。このため、第1関数として用いられる学習済みモデルの学習に用いられる訓練データにおいて、急激に変化する測定値の出現頻度が低くなる。言い換えると、急激に変化する測定値のデータが正常パターンのデータとして充分に準備できない。このため、測定値の時間変化が相対的に激しい時期において、学習済みモデルから出力される予測値が測定値に追随しにくくなり、誤検知が生じやすくなる性質があることがわかる。本実施形態の異常検知装置100は、この性質を利用して誤検知を抑制する。
【0078】
(本実施形態の構成及び効果)
本実施形態の異常検知装置100は、監視対象システムに設置された複数のセンサの測定値と、第1関数と、第2関数を取得する。第1関数は、測定値を入力すると測定値の予測値を出力する関数であり、例えば、機械学習で生成された学習済みモデルが表す関数である。第2関数は、測定値の時間変化に関する特徴量を入力すると第2閾値を出力する関数である。特徴量は、例えば、測定値の微分値、微分値の絶対値、微分値の累積値、または微分値の絶対値の累積値である。異常検知装置100は、測定値と第1関数に基づいて予測値を生成し、測定値と予測値との偏差が第1閾値を超えたことを仮検知し、当該仮検知結果に関する仮検知信号を生成する。異常検知装置100は、その後、仮検知信号に基づいて、監視対象時刻における仮検知の連続回数をカウントする。また、異常検知装置100は、測定値に基づいて特徴量を算出し、特徴量と第2関数に基づいて、第2閾値を設定する。第2関数は、学習済みモデルの訓練に利用した測定値の集合である訓練データに基づいて計算された特徴量の頻度分布に基づいて、第1の頻度を有する特徴量が入力されると第2閾値として第1の値を出力し、第1の頻度よりも小さい第2の頻度を有する特徴量が入力されると第2閾値として第1の値以上の第2の値を出力することにより、第2閾値として、特徴量に応じて2種類以上の値を出力するように設計されている。そして、異常検知装置100は、連続回数が第2閾値以上であるか否かを判定することにより監視対象システムの異常または当該異常の予兆を検知し、当該検知結果に関する検知信号を生成する。
【0079】
従来技術においては、仮検知の連続回数に関する第2閾値が時刻にもセンサにもよらず一律で設定されていた。この場合、第2閾値を一律で大きく設定することにより、誤検知が抑制される。しかし、仮検知の連続回数が第2閾値を超えるまで異常として検知されないため、異常の検知タイミングが遅れる。逆に、第2閾値を一律で小さく設定すると、異常の検知タイミングの遅れを抑制できるものの、誤検知が抑制されない。
【0080】
本実施形態では、第2閾値は、N個の監視対象センサの測定値の時間方向の変化を表す特徴量と、第2関数に応じて設定される。そして、監視対象センサの測定値が急激に変化する時刻での第2閾値が、他の時刻での第2閾値よりも大きくなるように自動で制御される。そのため、監視対象センサの測定値が急激に変化する時刻での誤検知が抑制される。監視対象センサの測定値が急激に変化しない時刻では、第2閾値の値が大きくならないため、異常検知タイミングが遅れない。監視対象センサの測定値が急激に変化する時刻は、相対的に少ないため、異常検知タイミングが遅れる可能性を最小限に抑制できる。したがって、本実施形態の異常検知装置100によれば、異常の早期の検知と誤検知の抑制を両立できる。このように、訓練データにおいて稀な時間変化パターンを特定することで、誤検知を抑制することができる。
【0081】
また、前述のように、測定値の時間変化が相対的に激しい時期は、訓練データにおいて稀な時間変化パターンであるため、誤検知が生じやすいことが分かった。上記構成により、本実施形態の異常検知装置100によれば、監視対象センサの測定値が急激に変化する時刻を特徴量で特定し、当該時刻での第2閾値が他の時刻よりも大きくなるように、特徴量と第2関数を用いて第2閾値を自動で制御する。これにより、測定値の時間変化が相対的に激しい時期での第2閾値が大きくなり、測定値の時間変化が相対的に激しい時期において異常が検知されづらくなり、誤検知を抑制することができる。すなわち、誤検知が生じやすい期間において他の期間よりも第2閾値を大きくすることで、誤検知が生じやすい期間で異常が検知されづらくなり、誤検知を抑制することができる。
【0082】
また、特徴量として微分値の累積値または微分値の絶対値の累積値を用いる場合、累積値の累積期間は、第1関数fに入力する測定値の時間窓長以下である。この場合、特徴量を計算する際に第1関数に入力する測定値のベクトルを参照することができるため、実装しやすくなる。
【0083】
(第1の変形例)
第1の実施形態では、式(2)のように、第2関数gがn番目の監視対象センサの第2閾値knが特徴量のベクトルvに依存する場合について説明した。前述のように、特徴量vは、N個のベクトルan(n=1,2,…,N)を連結したベクトルである。第2閾値knは、特徴量のベクトルvのうちのベクトルanにのみ依存しても構わない。この場合、第2関数gは、例えば、以下の式(8)を満たすベクトル値関数となる。
【0084】
【0085】
式(8)において、anは、n番目の監視対象センサの時間変化を表す特徴量である。したがって、本変形例では、第2閾値knは、n番目の監視対象センサの時間変化を表す特徴量で決まるため、他の監視対象センサの時間変化を表す特徴量には依存しない。n番目の監視対象センサの予測値fnは、他の監視対象センサではなく、自身の測定値の影響を最も強く受ける。そのため、本変形例でも、第1の実施形態と同様の効果が得られる。
【0086】
(第2の変形例)
第1の実施形態では、監視対象システムが正常な状態における予測値f(x)の二乗誤差||f(x)-y||^2が、監視対象センサの測定値が急激に変化する時刻において大きくなりがちな性質に基づいて、第2関数として、測定値の時間変化が多いときに第2閾値が大きく設定される関数を用いた。監視対象システムが正常な状態における監視対象センサの測定値が急激に変化する時刻において予測値f(x)の二乗誤差||f(x)-y||^2が大きくなりがちな本質的な理由は、測定値が急激に変化する時刻のデータが訓練データにおいて少ないことである。本変形例では、第2関数として、学習済みモデルfの訓練に利用した測定値の集合である訓練データから計算される特徴量の分布において頻度が低い特徴量が入力されると値が大きい第2閾値を出力する関数を用いる。
【0087】
本変形例の第2関数gを定めるgnは、例えば、以下の式(9)を用いて算出される。
【0088】
【0089】
式(9)において、Pは、入力される特徴量の頻度であり、特徴量のベクトルvを入力すると訓練データから計算される特徴量の分布における頻度を出力する関数である。Pは、単純な経験分布により頻度を計算する関数であってもよく、カーネル密度推定を用いてノンパラメトリックに頻度を計算する関数であってもよく、混合ガウス分布を用いてパラメトリックに頻度を計算する関数であってもよい。αn及びβnは、正の定数であり、αn>βnの関係を満たす。τnは、頻度に関する閾値を表す。頻度は、0から1の値に正規化した確率で表現しても構わない。この場合、訓練データから計算される特徴量の分布において、頻度が低い特徴量が入力されると値がβnよりも大きいαnがgn(v)の出力となる。kn=gn(v)であるため、訓練データから計算される特徴量の分布において頻度が低い特徴量が入力されると、大きい値であるαnが第2閾値knとなる。
【0090】
また、第2関数gは、例えば、以下の式(10)で表されるガウス関数であってもよい。
【0091】
【0092】
式(10)において、θnとσnは、ガウス関数の値が正のパラメータである。式(10)に示す第2関数を用いた場合も、訓練データから計算される特徴量の分布において頻度が低い特徴量が入力されると値が大きな値がgn(v)の出力となる。kn=gn(v)であるため、訓練データから計算される特徴量の分布において頻度が低い特徴量が入力されると、大きな値が第2閾値knとなる。
【0093】
本変形例は、第1の実施形態よりも広い範囲に適用することができる。第1の実施形態の方式では、訓練データから計算される特徴量の分布において、測定値の時間変化が大きいときの特徴量の頻度が低い場合に生じる誤検知を抑制する。一方、本変形例の方式では、測定値の時間変化量が大きいときに生じる誤検知に限られず、訓練データから計算される特徴量の分布において特徴量の頻度が低い場合に生じる誤検知を抑制することができる。また、第1の実施形態と同様に、第2閾値を大きくすることによって異常検知タイミングが遅れるリスクを最小限に抑制することができる。
【0094】
(第3の変形例)
第2の変形例では、式(9)を用いてgnを求めるため、ベクトルvの次元が高い場合、P(v)の計算時に次元の呪いの影響を受ける。その影響を排除するために、以下の式(11)から式(14)までのいずれかを用いてgnを求めてもよい。この場合、時間変化に関する特徴量の次元を小さくすることができ、次元の呪いから解放される。anがスカラーの場合、次元の呪いの影響をさらに受けづらい。本変形例は、第1の変形例と第2の変形例の組み合わせになっている。このため、第1の変形例及び第2の変形例と同様の効果を得ることができる。
【0095】
【0096】
【0097】
【0098】
【0099】
(第4の変形例)
図5は、第4の変形例に係る異常検知装置100の構成を示す図である。本変形例の異常検知装置100は、表示部111をさらに有する。実施形態と同様の構成、動作、及び効果については、説明を省略する。
【0100】
本変形例では、特徴量算出部108は、算出した特徴量を第2閾値設定部109と表示部111に送る。
【0101】
表示部111は、特徴量に基づいて特徴量のトレンドグラフを表示するための表示画面データを生成し、生成した表示画面データを外部のディスプレイ等に出力する。例えば、特徴量の時間変化を示すトレンドグラフを表示するための表示画面データが生成され、特徴量のトレンドグラフが外部のディスプレイ等に表示される。
図6は、特徴量のトレンドグラフの一例を示す図である。
図6は、
図3及び
図4と同じ監視対象センサの特徴量を示す図である。
図6の横軸は、時刻であり、
図3及び
図4と同じ時刻に対応している。
図6の縦軸は、特徴量である。また、
図6は、特徴量として測定値の微分値を用いた場合の例である。
【0102】
前述したように
図3及び
図4は、測定値及び偏差の正常な挙動を示している。このため、
図4の偏差が第1閾値を超えた際に異常が検知された場合、その検知は誤検知となる。
図4及び
図6から分かる通り、偏差が第1閾値を超えたタイミングでは、特徴量である微分値の絶対値が大きい場合が多い。すなわち、誤検知が起きるタイミングでは、特徴量である微分値の絶対値が大きい場合が多い。
【0103】
本変形例では、特徴量のトレンドグラフを表示させることができる。このため、偏差が第1閾値を超えることで検知された異常が誤検知であった場合でも、ユーザは、特徴量のトレンドグラフを確認することで、その異常の検知が誤検知である可能性が高いことに気づくことができる。また、特徴量のトレンドグラフに加えて、測定値の時間変化を示すトレンドグラフや偏差の時間変化を示すトレンドグラフを同一画面に表示してもよい。この場合、これらのトレンドグラフの横軸である時刻の軸を揃えると、ユーザがグラフを見比べやすい。
【0104】
(第5の変形例)
図7は、第5の変形例に係る異常検知装置100の構成を示す図である。本変形例の異常検知装置100は、表示部112をさらに有する。実施形態と同様の構成、動作、及び効果については、説明を省略する。
【0105】
本変形例では、仮検知部106は、算出した偏差をカウンター部107と表示部112に送る。また、特徴量算出部108は、算出した特徴量を第2閾値設定部109と表示部111に送る。
【0106】
表示部112は、偏差と特徴量に基づいて偏差またはその絶対値と特徴量またはその絶対値の相関係数を算出し、算出した相関関係を表示するための表示画面データを生成し、生成した表示画面データを外部のディスプレイ等に出力する。例えば、各監視対象センサについて、偏差(yn-fn)またはその絶対値と特徴量またはその絶対値の相関係数を画面に表示すると良い。特徴量がベクトルの場合、相関係数を計算できない。この場合、例えば、特徴量の時間累積値や特徴量のL1ノルムを算出し、スカラーでない特徴量をスカラーに変換した後に、変換後の特徴量(スカラー)と偏差(yn-fn)またはその絶対値との相関係数を画面に表示すると良い。
【0107】
画面に表示された相関係数が大きい場合、ユーザは、偏差またはその絶対値が特徴量またはその絶対値に連動していたことを定量的に確認できる。両者が連動していることを数値で確認できれば、ユーザは、特徴量に応じて第2閾値を制御する第1の実施形態のシステムを安心して利用できる。
【0108】
(第6の変形例)
図8は、第6の変形例に係る異常検知装置100の構成を示す図である。本変形例の異常検知装置100は、表示部113をさらに有する。実施形態と同様の構成、動作、及び効果については、説明を省略する。
【0109】
本変形例では、表示部113は、学習済みモデルの訓練に利用した訓練データに基づいて計算された特徴量の頻度分布を外部から取得し、取得した頻度分布を表示するための表示画面データを生成し、生成した表示画面データを外部のディスプレイ等に出力する。例えば、頻度分布として、訓練データから計算される特徴量の頻度P(v)、あるいは、P(a
n)の分布を画面に表示すると良い。
図9は、訓練データから計算されるn番目の監視対象センサの特徴量a
nの頻度P(a
n)を頻度分布として表示した例を示す。
図9は、特徴量として測定値の微分値を用い、a
nがスカラーの場合の例である。
図9の横軸は、頻度を表す。
図9の縦軸は、特徴量を表す。頻度は、0から1に正規化した確率で表現しても構わない。
【0110】
図9では、特徴量が0の付近で特徴量の頻度が高い。特徴量として微分値を用いているため、特徴量が0付近であることは、測定値があまり変化しない定常状態であることに対応する。逆に、特徴量が0付近でないことは、測定値が変化する過渡状態であることに対応する。したがって、
図9は、訓練データ中のn番目の監視対象センサの測定値について、主に定常状態のデータで構成されていることを意味する。
図9では、時間変化に関する特徴量の頻度が0付近で高くなっている。このため、
図9に示す頻度分布を表示することで、ユーザは、n番目の監視対象センサの測定値が急激に変化する時刻での第2閾値が、他の時刻での第2閾値よりも大きくなるように自動で制御されることで、誤検知を抑制できることを確認することができる。
【0111】
また、頻度分布に加えて頻度に関する閾値を表示してもよい。
図10は、第3の変形例において式(11)を採用した場合の頻度に関する閾値τ
nを、
図9に示す頻度分布に重畳した例を示す図である。この図から、特徴量がε以上、または、λ以下の場合、その特徴量の頻度は閾値τ
n以下であることがわかる。頻度に関する閾値τ
nを頻度分布上に表示することで、ユーザは、n番目の監視対象センサの第2閾値k
nがα
nまたはβ
nになる特徴量を一目で確認することができる。
【0112】
(第7の変形例)
図11は、第7の変形例に係る異常検知装置100の構成を示す図である。本変形例の異常検知装置100は、表示部114をさらに有する。実施形態と同様の構成、動作、及び効果については、説明を省略する。
【0113】
本変形例では、第2閾値設定部109は、設定した第2閾値を検知部110と表示部114に送る。
【0114】
表示部114は、第2閾値に基づいて第2閾値のトレンドグラフを表示するための表示画面データを生成し、生成した表示画面データを外部のディスプレイ等に出力する。例えば、第2閾値の時間変化を示すトレンドグラフを表示するための表示画面データが生成され、第2閾値のトレンドグラフが外部のディスプレイ等に表示される。
図12は、第2閾値のトレンドグラフの一例を説明するための図である。
図12(a)は、特徴量のトレンドグラフの一例を示す。
図12(b)は、
図12(a)のように特徴量が変化した場合の第2閾値のトレンドグラフを示す。
図12(b)は、n番目の監視対象センサの第2閾値k
nのトレンドグラフである。また、
図12(a)及び
図12(b)は、
図3、
図4及び
図6と同じ監視対象センサのトレンドグラフである。
図12(a)及び
図12(b)の横軸は、時刻であり、
図3、
図4及び
図6と同じ時刻に対応している。
図12(a)の縦軸は、特徴量を表す。
図12(b)の縦軸は、第2閾値を表す。また、
図12(b)は、訓練データの特徴量が
図10に示す頻度分布を有し、第3の変形例の式(11)を採用して第2閾値を算出した場合の例を示している。
【0115】
図10に示すように、特徴量がε以上またはλ以下の場合に、その特徴量の頻度が閾値τ
n以下になるため、
図12(b)では、
図12(a)において特徴量がε以上の時刻と、λ以下の時刻において第2閾値がα
nとなり、それ以外の時刻で第2閾値として採用されるβ
nよりも大きくなっている。
【0116】
本変形例では、第2閾値のトレンドグラフを表示させることができる。ユーザは、第2閾値のトレンドグラフを確認することにより、n番目の監視対象センサの各時刻における第2閾値knを一目で把握できる。また、第2閾値のトレンドグラフに加えて、測定値の時間変化を示すトレンドグラフや偏差の時間変化を示すトレンドグラフを同一画面に表示してもよい。この場合、測定値が急激に変化したタイミングや、偏差の絶対値が第1閾値を超えたタイミングで第2閾値knが大きくなる様子をユーザが一目で確認できる。
【0117】
(第2の実施形態)
第1の実施形態及びその変形例では、発電プラントや水処理プラントなどのプラントや、製造装置に対して用いられる監視対象システムでは、定常運転が支配的であるため、第2関数として、測定値の時間変化が多いときに第2閾値が大きく設定される関数が用いられた。本実施形態では、監視対象システムが、測定値の時間変化が多い過渡状態が支配的であるシステムである場合について説明する。第1の実施形態と同様の構成、動作、及び効果については、説明を省略する。
【0118】
本実施形態においても、第2関数は、第1関数として用いられる学習済みモデルの学習に用いられる訓練データとして正常パターンのデータを充分に準備できないパターンに対して、第2閾値が大きく設定される関数である必要がある。このため、本実施形態では、第2関数は、測定値の時間変化が多いときに第2閾値が小さく設定され、測定値があまり変化しないときに第2閾値が大きく設定される関数である必要がある。
【0119】
図13は、訓練データから計算されるn番目の監視対象センサの特徴量a
nの頻度P(a
n)を頻度分布として表示した例を示す。
図13は、特徴量として測定値の微分値を用い、a
nがスカラーの場合の例である。
図13の横軸は、頻度を表す。
図13の縦軸は、特徴量を表す。頻度は、0から1に正規化した確率で表現しても構わない。
【0120】
図13では、0付近以外の2か所で特徴量の頻度が高い。特徴量が微分値であるため、
図13において頻度が高い正の特徴量は、訓練データ中のn番目の監視対象センサの測定値について、測定値が上昇傾向にあるタイミングが多いことを表す。
図13において頻度が高い負の特徴量は、訓練データ中のn番目の監視対象センサの測定値について、測定値が下降傾向にあるタイミングが多いことを表す。
図13において頻度が高い特徴量が正と負でそれぞれ1つずつあることは、訓練データ中のn番目の監視対象センサについて、測定値が上下動するタイミングが多く、あまり変化しないタイミングが少なかったことを表す。
【0121】
本実施形態では、n番目の監視対象センサの測定値があまり変化しない時刻での第2閾値が、他の時刻での第2閾値よりも大きくなるように自動で制御されるため、特徴量が
図13のように分布する場合に、訓練データにおける頻度が低いことに起因して生じる誤検知を抑制することができる。また、本実施形態では、特徴量が0付近でないタイミングで第2閾値が大きくならないため、もし、特徴量の頻度が高いタイミングで異常が生じたとしても、第2閾値が小さく設定されるため、検知タイミングが遅れることなく異常を検知することができる。
【0122】
また、本実施形態においても、第1の実施形態の第2の変形例や第3の変形例のように、訓練データにおける頻度に応じて第2閾値を制御することで、訓練データにおける頻度が低いことに起因する誤検知を抑制でき、かつ、特徴量の
図13における頻度が高いタイミングで生じた異常の検知タイミングが遅れないようにすることができる。
【0123】
このように、訓練データから計算される特徴量の分布における頻度を算出して第2閾値を制御する場合、第1の実施形態と第2の実施形態のどちらの場合でも、より多くの誤検知を抑制できる。
【0124】
また、第1の実施形態と同様に、頻度分布を外部のディスプレイ等に表示させてもよい。この場合、例えば、
図13に示す頻度分布が表示される。また、頻度分布に加えて頻度に関する閾値を表示してもよい。
図14は、本実施形態に第3の変形例を適用し、上述の式(11)を採用した場合の頻度に関する閾値τ
nを、
図14に示す頻度分布に重畳した例を示す図である。頻度に関する閾値τ
nを頻度分布上に表示することで、ユーザは、n番目の監視対象センサの第2閾値k
nがα
nまたはβ
nになる特徴量を一目で確認することができる。
【0125】
かくして、前述のいずれかの実施形態によれば、異常の早期検知と誤検知の抑制を両立する異常検知装置、方法、および、プログラムを提供することができる。
【0126】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【0127】
100…異常検知装置、101…関数取得部、102…閾値取得部、103…関数取得部、104…測定値取得部、105…予測部、106…仮検知部、107…カウンター部、108…特徴量算出部、109…閾値設定部、110…検知部、111、112、113、114…表示部。