【文献】
櫻田麻由,矢入健久,オートエンコーダを用いた次元削減による宇宙機の異常検知,一般社団法人 人工知能学会 第28回全国大会論文集CD−ROM[CD−ROM] 2014年度 人工知能学会全国大会(第28回)論文集,日本,2014年 5月15日,P1−3
(58)【調査した分野】(Int.Cl.,DB名)
【発明の概要】
【発明が解決しようとする課題】
【0005】
装置の振動、電流及び画像等の正常時データは、高い周波数でサンプリングされる場合がある。このため、正常時データを蓄積するデータベースには、大きな記憶容量が必要とされる。しかしながら、大きな記憶容量のデータベースを生産設備等の現場に設置することは、費用対効果の観点から難しい場合がある。また、どの程度まで大きな記憶容量のデータベースが必要なのかが事前に分かっていなければ、生産設備等の現場にデータベースを設置することが難しい場合がある。
【0006】
上記事情に鑑み、本発明は、大きな記憶容量のデータベースがなくても検出対象の装置の異常を検出することが可能である異常検出装置、異常検出方法、異常検出プログラム及び記録媒体を提供することを目的としている。
【課題を解決するための手段】
【0007】
本発明の一態様は、検出対象の装置に関するデータを取得する取得部と、取得されたデータから、予め定められた条件に基づいてデータを切り出す切出部と、切り出されたデータから特徴ベクトルを抽出する特徴抽出部と、抽出された前記特徴ベクトルを分析し、分析結果に基づいて前記特徴ベクトルのモデルを生成する学習部と、新たに取得されたデータの前記特徴ベクトルと前記モデルとの乖離度を算出する乖離度算出部とを備える異常検出装置である。
【0008】
上記の構成により、異常検出装置は、データを蓄積する前にデータを分析をして乖離度を算出するので、大きな記憶容量のデータベースがなくても検出対象の装置の異常を検出することが可能である。
【0009】
本発明の一態様は、上記の異常検出装置であって、前記乖離度を出力する出力部を更に備える。
【0010】
上記の構成により、異常検出装置は、乖離度を外部装置に出力することが可能である。
【0011】
本発明の一態様は、上記の異常検出装置であって、予め定められた処理を前記乖離度に基づいて実行する後処理部を更に備える。
【0012】
上記の構成により、異常検出装置は、算出された乖離度のノイズを低減することが可能である。異常検出装置は、算出された乖離度を強調することが可能である。
【0013】
本発明の一態様は、上記の異常検出装置であって、複数の選択部と、合成部とを更に備え、前記複数の選択部は、抽出された前記特徴ベクトルのうちから分析の対象とされる前記特徴ベクトルを制御信号に基づいて選択し、前記学習部は、前記選択部による選択結果ごとに前記特徴ベクトルを分析し、分析結果に基づいて複数の前記モデルを生成し、前記乖離度算出部は、前記モデルごとに前記乖離度を算出し、前記合成部は、前記モデルごとに算出された前記乖離度を合成する。
【0014】
上記の構成により、異常検出装置は、データのばらつきによるモデル推定の差異を考慮して、特徴ベクトルのモデルを安定的に推定することが可能である。異常検出装置は、データのばらつきによるモデル推定の差異を考慮して、特徴ベクトルのモデルに基づいて、乖離度を安定的に算出することが可能である。
【0015】
本発明の一態様は、上記の異常検出装置であって、前記乖離度算出部は、前記モデルにおける前記特徴ベクトルの解釈値を算出する。
【0016】
上記の構成により、乖離度を特徴ベクトルの要素ごとに算出することが可能である。
【0017】
本発明の一態様は、上記の異常検出装置であって、前記特徴ベクトルの要素ごとに前記乖離度を算出する要素別乖離度算出部と、前記要素ごとに算出された前記乖離度を合算する乖離度合算部とを更に備える。
【0018】
上記の構成により、異常検出装置、抽出された特徴ベクトルの貢献度を算出することが可能である。
【0019】
本発明の一態様は、異常検出装置が実行する異常検出方法であって、検出対象の装置に関するデータを取得するステップと、取得されたデータから、予め定められた条件に基づいてデータを切り出すステップと、切り出されたデータから特徴ベクトルを抽出するステップと、抽出された前記特徴ベクトルを分析し、分析結果に基づいて前記特徴ベクトルのモデルを生成するステップと、新たに取得されたデータの前記特徴ベクトルと前記モデルとの乖離度を算出するステップとを含む異常検出方法である。
【0020】
上記の構成により、異常検出装置は、異常検出方法を実行することによって、大きな記憶容量のデータベースがなくても検出対象の装置の異常を検出することが可能である。
【0021】
本発明の一態様は、コンピュータに、検出対象の装置に関するデータを取得する手順と、取得されたデータから、予め定められた条件に基づいてデータを切り出す手順と、切り出されたデータから特徴ベクトルを抽出する手順と、抽出された前記特徴ベクトルを分析し、分析結果に基づいて前記特徴ベクトルのモデルを生成する手順と、新たに取得されたデータの前記特徴ベクトルと前記モデルとの乖離度を算出する手順とを実行させるための異常検出プログラムである。
【0022】
上記の構成により、異常検出装置は、異常検出プログラムを実行することによって、大きな記憶容量のデータベースがなくても検出対象の装置の異常を検出することが可能である。
【0023】
本発明の一態様は、コンピュータに、検出対象の装置に関するデータを取得する手順と、取得されたデータから、予め定められた条件に基づいてデータを切り出す手順と、切り出されたデータから特徴ベクトルを抽出する手順と、抽出された前記特徴ベクトルを分析し、分析結果に基づいて前記特徴ベクトルのモデルを生成する手順と、新たに取得されたデータの前記特徴ベクトルと前記モデルとの乖離度を算出する手順とを実行させるための異常検出プログラムを記録したコンピュータ読み取り可能な記録媒体である。
【0024】
上記の構成により、異常検出装置は、コンピュータ読み取り可能な記録媒体に記録された異常検出プログラムを実行することによって、大きな記憶容量のデータベースがなくても検出対象の装置の異常を検出することが可能である。
【発明の効果】
【0025】
本発明により、データを蓄積する前にデータを分析をして乖離度を算出するので、大きな記憶容量のデータベースがなくても検出対象の装置の異常を検出することが可能である。
【発明を実施するための形態】
【0027】
本発明の実施形態について、図面を参照して詳細に説明する。
(第1実施形態)
図1は、異常検出装置1aの構成の例を示す図である。異常検出装置1aは、情報処理装置であり、例えば、パーソナルコンピュータ、ワークステーション等である。異常検出装置1aは、例えばPLC(Programmable Logic Controller)に備えられた情報処理部でもよい。
【0028】
異常検出装置1aは、検出対象の装置に関するデータ(以下「装置データ」という。)を取得し、取得された装置データを分析する。装置データは、大きな記憶容量のデータベースに蓄積されなくてもよい。検出対象の装置は、特定の装置に限られないが、例えば、生産設備に設置された電動機、ポンプである。装置データは、物理量のデータであり、例えば、振動、温度、電流、トルク、圧力、流量等の実数データである。装置データは、装置に与えられた指示値でもよく、例えば、発停、処理モード又は処理量を表す指示値でもよい。
【0029】
異常検出装置1aは、装置データが分析された結果(学習結果)に基づいて、その装置データの特徴ベクトルのモデルを生成する。異常検出装置1aは、装置データに基づいて生成されたモデルと、新たに取得された装置データの特徴ベクトルとの乖離度(非正常度)に基づいて、検出対象の装置の異常を検出する。
【0030】
異常検出装置1aは、取得部2と、切出部3と、特徴抽出部4と、モデル処理部5aと、出力部6とを備える。これら機能部の一部又は全部は、CPU(Central Processing Unit)等のプロセッサがプログラムを実行することにより実現される。また、各機能部の一部又は全部は、FPGA(Field-Programmable Gate Array)、LSI(Large Scale Integration)やASIC(Application Specific Integrated Circuit)等のハードウェアを用いて実現されてもよい。
【0031】
取得部2は、検出対象の装置の状態をセンシングしたセンサから、有線又は無線の通信によって装置データを取得する。取得部2は、検出対象の装置に備えられたインタフェースから、有線又は無線の通信によって装置データを取得してもよい。取得部2は、取得された装置データと時刻情報(タイムスタンプ)とを対応づける。取得部2は、時刻情報に対応付けられた装置データのファイルを、外部装置から取得してもよい。装置データのファイルの形式は、例えば、CSV(Comma-Separated Values)形式である。
【0032】
取得部2は、取得された装置データの形式を、切出部3が使用する装置データの形式に変換する。例えば、取得部2がADコンバータ(アナログ・デジタル変換器)である場合、取得部2は、センサから取得された装置データを表すアナログ信号を、切出部3が使用するデジタル信号に変換する。例えば、取得部2がサーバである場合、取得部2は、LAN(Local Area Network)を介して取得されたパケットを、切出部3が使用するベースバンド信号に変換する。装置データX(t)は、式(1)のように表される。
【0034】
ここで、tは、離散時間(サンプリング時刻)を表す変数である。dは、取得部2によって取得された装置データの個数である。
【0035】
切出部3は、装置データの切出処理を制御する信号(以下「切出制御信号」という。)を取得する。切出部3は、時系列で連続する各装置データを、取得部2によって取得された装置データから、切出制御信号に応じて切り出す。
【0036】
図2は、切出処理の例を示す図である。第1センサの装置データは、例えば検出対象の装置の振動データである。第2センサの装置データは、例えば検出対象の装置の圧力データである。外部ファイルの装置データは、例えば検出対象の装置の電流データである。外部記憶装置の装置データは、例えば検出対象の装置の電圧データである。切出制御信号は、例えば、スイッチ等のオン又はオフを表す装置データに応じている。これらの装置データは一例である。
【0037】
切出部3は、オン又はオフを表す切出制御信号がオンを表す期間(時刻t1から時刻t2までの期間)について、時系列で連続する各装置データ(セグメント)を切り出す。切り出された各装置データS(k)は、式(2)のように表される。
【0039】
ここで、kは、切り出された装置データの通し番号を表す。n
kは、k番目の切り出された装置データに含まれるサンプルの個数(以下「セグメント長」という。)である。セグメント長は一定でなくてもよい。
【0040】
切出部3は、パルス信号である切出制御信号の始端が検出された時刻から所定時間が経過するまでの時刻について、時系列で連続する各装置データを切り出してもよい。切出部3は、パルス信号である切出制御信号の終端が検出された時刻から所定時間が経過するまでの時刻について、時系列で連続する各装置データを切り出してもよい。
【0041】
切出部3は、パルス信号である切出制御信号が検出された時刻から、次の切出制御信号が検出される時刻までの期間について、時系列で連続する各装置データを切り出してもよい。切出部3は、予め定められた装置データが閾値以上となった時刻から、その装置データが閾値未満となった時刻までの期間について、時系列で連続する各装置データを切り出してもよい。また、切出部3は、外部信号によらずに定周期で各装置データを切り出してもよい。
【0042】
特徴抽出部4は、切り出された装置データを分析することによって、切り出された装置データS(k)から特徴ベクトルを抽出する。すなわち、特徴抽出部4は、切り出された装置データの特徴ベクトルz(k)を、式(3)のように生成する。
【0044】
ここで、zは、特徴ベクトルであり、m次元の実数値を定義域として持つ縦ベクトルである。特徴抽出部4が特徴ベクトルを抽出する方法は、特定の方法に限定されない。例えば、特徴抽出部4は、通し番号kの切り出された装置データに関して、平均、標準偏差、最小値、最大値等の統計量を算出する。これら4個の統計量を特徴抽出部4が算出する場合、特徴抽出部4は、m(=4×d)次元の特徴ベクトルを生成する。特徴抽出部4は、フーリエ変換によって装置データが分解された周期信号ごとのパワーを、特徴ベクトルとして抽出してもよい。特徴抽出部4は、装置データの順序統計量を特徴ベクトルとして抽出してもよい。
【0045】
モデル処理部5aは、抽出された特徴ベクトルを分析する。モデル処理部5aは、分析結果に基づいて、特徴ベクトルのモデル(基準パターンモデル)を生成する。モデル処理部5aは、学習部50と、記憶部51と、乖離度算出部52aとを備える。
【0046】
学習部50は、学習制御信号を外部装置から取得する。学習制御信号は、例えばオン又はオフを表す信号である。学習制御信号のオン又はオフは、例えば、ユーザ又は外部システムによって操作される。学習部50は、学習制御信号がオンを表す場合、抽出された装特徴ベクトルを、特徴抽出部4から取得する。学習部50は、抽出された特徴ベクトルごとに、特徴ベクトルを分析(学習)する。学習部50は、特徴ベクトルの分析結果に基づいて、特徴ベクトルのモデルを生成する。このように、学習部50は、特徴ベクトルのモデルを逐次的に生成する。
【0047】
特徴ベクトルのモデルは、特定の形態のモデルに限定されないが、例えば、特徴ベクトルzの各要素の間で連続する変数が満たすべき式(4)のような拘束条件(関係性)が与えられた連立方程式で表されるモデルである。学習部50は、主成分分析を実行することによって、式(4)のような拘束条件を得る。学習部50は、ニューラルネットワークを用いて拘束条件を得てもよい。
【0049】
特徴ベクトルのモデルは、例えば、特徴ベクトルzの確率密度分布p(z)で表されるモデルでもよい。例えば、学習部50は、特徴ベクトルzの多変量正規分布で表されるモデルを生成する。特徴ベクトルzの多変量正規分布は、特徴ベクトルzの平均値ベクトルμ∈R
m及び共分散行列Σ∈R
m×mによって表される。学習部50は、特徴ベクトルzの多変量正規分布を、式(5)及び式(6)のように算出する。
【0052】
ここで、z
sumは、特徴ベクトルの累積和を表す。Z
sumは、特徴ベクトルの行列とその特徴ベクトルが転置されたベクトルとの行列積の累積和を表す。それらの各要素は、多変量正規分布における十分統計量を構成する。すなわち、多変量正規分布の平均値ベクトル及び共分散行列は、z
sum及びZ
sumに基づいて算出可能である。
【0053】
学習部50は、1番目から(k−1)番目までの切り出された装置データに基づく特徴ベクトルの累積和z
sum(k−1)と、k番目の切り出された装置データの特徴ベクトルz(k)とに基づいて、1番目からk番目までの切り出された装置データに基づく特徴ベクトルの累積和z
sum(k)を、式(7)のように算出する。
【0055】
学習部50は、1番目から(k−1)番目までの切り出された装置データに基づく特徴ベクトルとその特徴ベクトルが転置されたベクトルとの行列積の累積和Z
sum(k−1)と、k番目の切り出された装置データの特徴ベクトルの行列Z(k)とに基づいて、1番目からk番目までの切り出された装置データに基づく特徴ベクトルとその特徴ベクトルが転置されたベクトルとの行列積の累積和Z
sum(k)を、式(8)のように算出する。
【0057】
学習部50は、取得部2によって取得された装置データを大きな記憶容量のデータベースに蓄積することなく、平均値ベクトルμ(k)と共分散行列Σ(k)と特徴ベクトルの累積和z
sum(k)と特徴ベクトルの行列積の累積和Z
sum(k)とによって定まる多変量正規分布を、特徴ベクトルzのモデルとして算出する。
【0058】
学習部50は、取得された装置データを近似する確率分布であれば、多変量正規分布以外の確率分布を算出してもよい。例えば、多変量正規分布以外の確率分布は、混合多変量正規分布、装置データの複数のサンプルに基づく経験的な密度関数である。学習部50は、生成された特徴ベクトルのモデルを記憶部51に記録する。
【0059】
記憶部51は、フラッシュメモリ等の不揮発性の記憶装置(非一時的な記録媒体)である。記憶部51は、特徴ベクトルのモデルを記憶する。特徴ベクトルのモデルは、例えば数式データで表される。特徴ベクトルのモデルは、学習部50によって生成された特徴ベクトルのモデルで更新される。記憶部51は、プログラムを記憶してもよい。記憶部51は、RAM(Random Access Memory)等の揮発性の記録媒体を更に備えてもよい。
【0060】
乖離度算出部52aは、特徴ベクトルのモデルが生成された後に新たに取得された装置データの特徴ベクトルz
testを、特徴抽出部4から取得する。乖離度算出部52aは、特徴ベクトルz
testと、記憶部51に記憶されている特徴ベクトルのモデルとの乖離度(非正常度)を算出する。
【0061】
例えば、乖離度算出部52aは、特徴ベクトルのモデルが特徴ベクトルzの確率分布p(z)で表される場合、z
testの負の対数尤度を、乖離度として算出する。例えば、乖離度算出部52aは、特徴ベクトルのモデルを表す数式のパラメータに所定の演算処理を実行することによって、乖離度を算出してもよい。例えば、特徴ベクトルzの各要素の間に式(4)のような拘束条件に基づくモデルでは、乖離度算出部52aは、拘束条件の不整合度(例えば、f(z)のL2ノルム)を、乖離度として算出してもよい。
【0062】
出力部6は、算出された乖離度を外部装置に出力する。外部装置は、例えば表示装置である。外部装置が表示装置である場合、外部装置は、算出された乖離度を表す画像を表示する。
【0063】
次に、異常検出装置1aの動作の例を説明する。
図3は、異常検出装置1aの動作の例を示すフローチャートである。取得部2は、装置データを取得する(ステップS101)。切出部3は、切出処理を実行する条件が成立しているか否かを判定する。例えば、切出部3は、切出制御信号がオンを表す場合、切出処理を実行する条件が成立していると判定する(ステップS102)。
【0064】
切出処理を実行する条件が成立していない場合(ステップS102:NO)、切出部3は、ステップS102の処理を再実行する。切出処理を実行する条件が成立している場合(ステップS102:YES)、切出部3は、取得された装置データから、予め定められた条件に基づいてデータを切り出す。例えば、切出部3は、切出制御信号の検出時刻に基づいて、時系列で連続する各装置データを切り出す(ステップS103)。特徴抽出部4は、切り出された装置データから特徴ベクトルzを抽出する(ステップS104)。
【0065】
学習部50は、学習処理を実行する条件が成立しているか否かを判定する。例えば、学習部50は、学習制御信号がオンを表す場合、学習処理を実行する条件が成立していると判定する(ステップS105)。学習処理を実行する条件が成立していない場合(ステップS105:NO)、乖離度算出部52aは、ステップS108の処理を実行する。
【0066】
学習処理を実行する条件が成立している場合(ステップS105:YES)、学習部50は、抽出された特徴ベクトルzを分析し、分析結果に基づいて特徴ベクトルのモデルを生成する(ステップS106)。学習部50は、記憶部51に記憶されている特徴ベクトルのモデルを、新たに生成された特徴ベクトルのモデルで更新する(ステップS107)。
【0067】
乖離度算出部52aは、新たに取得された装置データの特徴ベクトルを、特徴抽出部4から取得する。乖離度算出部52aは、新たに取得された装置データの特徴ベクトルと、記憶部51に記憶されている特徴ベクトルのモデルとの乖離度を算出する(ステップS108)。出力部6は、算出された乖離度を外部装置等に出力する(ステップS109)。なお、ステップS105からステップS107までの処理と、ステップS108の処理とは、実行順を交換することが可能である。
【0068】
以上のように、第1実施形態の異常検出装置1aは、取得部2と、切出部3と、特徴抽出部4と、学習部50と、乖離度算出部52aとを備える。取得部2は、装置データを取得する。切出部3は、取得された装置データから、予め定められた条件に基づいてデータを切り出す。特徴抽出部4は、切り出された装置データから特徴ベクトルを抽出する。学習部50は、抽出された特徴ベクトルを分析する。学習部50は、分析結果に基づいて特徴ベクトルのモデルを生成する。乖離度算出部52aは、新たに取得された装置データの特徴ベクトルと、特徴ベクトルのモデルとの乖離度を算出する。
【0069】
これによって、第1実施形態の異常検出装置1aは、データを蓄積する前にデータを分析をして乖離度を算出するので、大きな記憶容量のデータベースがなくても検出対象の装置の異常を検出することが可能である。
【0070】
(第2実施形態)
第2実施形態では、異常検出装置が後処理部を備える点が、第1実施形態と相違する。第2実施形態では、第1実施形態との相違点について説明する。
【0071】
図4は、異常検出装置1bの構成の例を示す図である。異常検出装置1bは、取得部2と、切出部3と、特徴抽出部4と、モデル処理部5bと、出力部6と、後処理部7とを備える。モデル処理部5bは、学習部50と、記憶部51と、乖離度算出部52bとを備える。
【0072】
後処理部7は、算出された乖離度を乖離度算出部52bから取得する。後処理部7は、一定期間ごとの乖離度を算出する。例えば、後処理部7は、所定個数の装置データのサンプルについて、乖離度の平均値(単純移動平均)を算出してもよい。例えば、後処理部7は、所定個数の装置データのサンプルについて、乖離度の重みづけ平均(指数平滑平均)を算出してもよい。例えば、後処理部7は、一定期間における乖離度の統計量(例えば、最大値)を算出してもよい。出力部6は、乖離度を外部装置等に出力する。
【0073】
次に、異常検出装置1bの動作の例を説明する。
図5は、異常検出装置1bの動作の例を示すフローチャートである。ステップS201からステップS208までの処理は、
図3に示されたステップS101からステップS108までの処理と同様である。ステップS208の次に、後処理部7は、一定期間ごとの乖離度を算出する(ステップS209)。出力部6は、乖離度を外部装置等に出力する(ステップS210)。
【0074】
以上のように、第2実施形態の異常検出装置1bは、予め定められた処理を乖離度に基づいて実行する。例えば、異常検出装置1bは、予め定められた分析処理によって、乖離度を算出する。これによって、第2実施形態の異常検出装置1bは、算出された乖離度のノイズを低減することが可能である。異常検出装置1bは、算出された乖離度を強調することが可能である。
【0075】
(第3実施形態)
第3実施形態では、異常検出装置が複数のモデル処理部を備える点が、第1実施形態と相違する。第3実施形態では、第1実施形態との相違点について説明する。
【0076】
図6は、異常検出装置1cの構成の例を示す図である。異常検出装置1cは、取得部2と、切出部3と、特徴抽出部4と、M個(Mは、2以上の整数)のモデル処理部5cと、出力部6と、合成部8とを備える。異常検出装置1cのモデル処理部5cは、多重化されている。モデル処理部5cは、学習部50と、記憶部51と、乖離度算出部52cと、選択部53とを備える。
【0077】
選択部53は、学習制御信号がオンを表している場合、抽出された特徴ベクトルを特徴抽出部4から取得する。選択部53は、取得された特徴ベクトルを、その特徴ベクトルに基づくモデルの学習に使用するか否かを決定する。例えば、選択部53は、一様乱数の実現値が規定値以下であるか否かに基づいて、特徴ベクトルを確率的に選択する。選択部53は、選択された特徴ベクトルを、学習部50に出力する。
【0078】
学習部50は、選択部53によって選択された特徴ベクトルに基づいて、特徴ベクトルのモデルを生成する。乖離度算出部52cは、学習制御信号がオンを表している場合、新たに取得された装置データの特徴ベクトルと、特徴ベクトルのモデルとの乖離度を算出する。これによって、M個の乖離度算出部52cは、M個の乖離度を算出することができる。
【0079】
合成部8は、乖離度を乖離度算出部52cごとに取得し、M個の乖離度を合成する。例えば、合成部8は、M個の乖離度の統計量(例えば、平均値や最大値等)を算出することによって、M個の乖離度を合成する。合成部8は、M個の乖離度の合成結果を、出力部6に出力する。出力部6は、M個の乖離度の合成結果を、外部装置に出力する。
【0080】
次に、異常検出装置1cの動作の例を説明する。
図7は、異常検出装置1cの動作の例を示すフローチャートである。ステップS301からステップS304までの処理は、
図3に示されたステップS101からステップS104までの処理と同様である。ステップS306からステップS308までの処理は、モデル処理部5cごとに実行される。
【0081】
ステップS304の次に、学習部50は、学習処理を実行する条件が成立しているか否かを判定する。例えば、学習部50は、学習制御信号がオンを表す場合、学習処理を実行する条件が成立していると判定する(ステップS305)。学習処理を実行する条件が成立していない場合(ステップS305:NO)、乖離度算出部52cは、ステップS309の処理を実行する。
【0082】
学習処理を実行する条件が成立している場合(ステップS305:YES)、選択部53は、取得された特徴ベクトルのうちから、学習部50による分析(学習処理)の対象とされる特徴ベクトルを選択する(ステップS306)。学習部50は、選択された特徴ベクトルzを分析し、分析結果に基づいて特徴ベクトルのモデルを生成する(ステップS307)。学習部50は、記憶部51に記憶されている特徴ベクトルのモデルを、新たに生成された特徴ベクトルのモデルで更新する(ステップS308)。
【0083】
合成部8は、乖離度を乖離度算出部52cごとに取得する(ステップS309)。合成部8は、M個の乖離度を合成する(ステップS310)。出力部6は、乖離度を外部装置等に出力する(ステップS311)。
【0084】
以上のように、第3実施形態の異常検出装置1cは、M個のモデル処理部5cを並列に備える。すなわち、異常検出装置1cは、M個の選択部53と、M個の学習部50と、M個の乖離度算出部52cと、合成部8とを備える。選択部53は、抽出された特徴ベクトルのうちから分析の対象とされる特徴ベクトルを学習制御信号に基づいて選択する。学習部50は、選択部53による選択結果ごとに特徴ベクトルを分析する。学習部50は、分析結果に基づいて、M個のモデルを生成する。乖離度算出部52cは、特徴ベクトルのモデルごとに乖離度を算出する。合成部8は、特徴ベクトルのモデルごとに算出された乖離度を合成する。
【0085】
これによって、第3実施形態の異常検出装置1cは、特徴ベクトルのモデルを安定的に推定することが可能である。異常検出装置1cは、特徴ベクトルのモデルに基づいて、乖離度を安定的に算出することが可能である。
【0086】
(第4実施形態)
第4実施形態では、新たに取得された特徴ベクトルの値をモデル上の特徴ベクトルの値に異常検出装置が変換する点が、第1実施形態と相違する。第4実施形態では、第1実施形態との相違点について説明する。
【0087】
図8は、異常検出装置1dの構成の例を示す図である。異常検出装置1dは、取得部2と、切出部3と、特徴抽出部4と、モデル処理部5dと、出力部6とを備える。モデル処理部5dは、学習部50と、記憶部51と、乖離度算出部52dとを備える。乖離度算出部52dは、変換部520と、要素別乖離度算出部521と、乖離度合算部522とを備える。
【0088】
変換部520は、新たに抽出された特徴ベクトルz(k)を、特徴抽出部4から取得する。変換部520は、新たに抽出された特徴ベクトルz(k)を、記憶部51に記憶されている特徴ベクトルのモデルにおける特徴ベクトルz
pre(k)に変換する。すなわち、変換部520は、新たに抽出された特徴ベクトルz(k)が特徴ベクトルのモデル上で解釈された場合の予測値である特徴ベクトルz
pre(k)を算出する。
【0089】
例えば、変換部520は、特徴ベクトルのモデルが主成分分析によるモデルである場合、主成分空間に射影された特徴ベクトルを元の空間に戻す逆変換を実行することによって、特徴ベクトルのモデルにおける特徴ベクトルz
pre(k)を算出する。例えば、変換部520は、ニューラルネットワークの例であるオートエンコーダと呼ばれるアルゴリズムを用いて、特徴ベクトルのモデルにおける特徴ベクトルz
pre(k)を算出してもよい。変換部520は、特徴ベクトルのモデルにおける特徴ベクトルz
pre(k)を、要素別乖離度算出部521及び出力部6に出力する。
【0090】
要素別乖離度算出部521は、特徴ベクトルのモデルにおける特徴ベクトルz
pre(k)を、変換部520から取得する。要素別乖離度算出部521は、新たに抽出された特徴ベクトルz(k)を、変換部520から取得する。要素別乖離度算出部521は、新たに抽出された特徴ベクトルz(k)と、記憶部51に記憶されている特徴ベクトルのモデルとの乖離度を、特徴ベクトルの要素ごとに算出する。
【0091】
要素別乖離度算出部521は、特徴ベクトルのm個の要素におけるj番目の要素の乖離度a
j(k)を、式(9)のように算出する。要素別乖離度算出部521は、要素ごとの乖離度a
1(k),…,a
m(k)を、各貢献度として出力部6に出力してもよい。
【0093】
要素別乖離度算出部521は、要素ごとの乖離度a
1(k),…,a
m(k)に基づいて、スカラ値である乖離度a(k)を、例えば式(10)のように算出する。
【0095】
乖離度合算部522は、特徴ベクトルの要素ごとに算出された乖離度を合算することによって貢献度C
jを算出する。例えば、式(11)のように、乖離度合算部522は、j番目の要素の乖離度を、要素別の乖離度の総和で規格化する。
【0097】
出力部6は、特徴ベクトルの乖離度を外部装置等に出力する。出力部6は、特徴ベクトルの要素ごとの乖離度への貢献度を、外部装置等に出力してもよい。
【0098】
次に、異常検出装置1dの動作の例を説明する。
図9は、異常検出装置1dの動作の例を示すフローチャートである。ステップS401からステップS407までの処理は、
図3に示されたステップS101からステップS107までの処理と同様である。
【0099】
変換部520は、抽出された特徴ベクトルを、記憶部51に記憶されている特徴ベクトルのモデルにおける特徴ベクトルに変換する(ステップS408)。要素別乖離度算出部521は、新たに取得された装置データの特徴ベクトルと、記憶部51に記憶されている特徴ベクトルのモデルとの乖離度を、特徴ベクトルの要素ごとに算出する(ステップS409)。乖離度合算部522は、特徴ベクトルの要素ごとに算出された乖離度を合算することによって貢献度を算出する(ステップS410)。出力部6は、特徴ベクトルの乖離度等を外部装置等に出力する(ステップS411)。
【0100】
以上のように、第4実施形態の異常検出装置1dは、乖離度算出部52dを備える。乖離度算出部52dは、変換部520と、要素別乖離度算出部521と、乖離度合算部522とを備える。変換部520は、抽出された特徴ベクトルを、特徴ベクトルのモデルにおける特徴ベクトルに変換する。要素別乖離度算出部521は、特徴ベクトルの要素ごとに乖離度を算出する。乖離度合算部522は、特徴ベクトルの要素ごとに算出された乖離度を合算する。
【0101】
これによって、第4実施形態の異常検出装置1dは、抽出された特徴ベクトルの貢献度を算出することが可能である。
【0102】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。