図1は、例示的な異常検出システム100を例示する図である。異常検出システム100は、例えば、監視対象装置101、集音装置102、及び情報処理装置103を含む。監視対象装置101は、異常を検出する対象となる装置であり、複数の動作モードで動作して稼働音を発する。監視対象装置101は、例えば、室外機、半導体製造装置、真空ポンプ、遠心機の回転部品を備える装置や、その他の稼働中に音を発する装置を含む。集音装置102は、例えば、マイク120などの音を収集する装置と、レコーダ130などの収集した音を記録する装置を含み、監視対象装置101が発する稼働音を含む音データを記録する。
情報処理装置103は、例えば、監視対象装置101の異常を検出する装置であってよい。情報処理装置103は、例えば、集音装置102で収集した監視対象装置101の稼働音を含む音データを取得し、音データを用いて監視対象装置101に発生する異常を検出する。情報処理装置103による音データを用いた異常検出の例を以下に説明する。
情報処理装置103は、集音装置102で集音された音データを取得する。集音装置102で収集される音データは、データ量が大きいことがある。そのため、音データを用いた監視対象装置101の異常の検出は、例えば、音データをフーリエ変換して得られた周波数スペクトルから特徴量を抽出し、抽出した特徴量を用いて実行される。
図2は、音データからの特徴量の抽出を例示する図である。図2に示す様に、例えば、音データ(図2(a))を時間領域からフーリエ変換により周波数領域に変換することで周波数スペクトル(図2(b))が得られる。そして、例えば、周波数スペクトルの所定の周波数領域の強度を積算するなどして周波数スペクトルから特徴量を得ることができる。例えば、図2(c)には、集音装置102で検出された所定期間の音データから得られた周波数スペクトルの1kHz〜10kHzまでの強度総和と、全周波数帯域の強度総和とを特徴量として抽出した例が示されている。
なお、特徴量の抽出に用いる周波数領域は、任意の範囲に設定されてよく、例えば、国際標準化機構(ISO:International Organization for Standardization)で規定されている周波数範囲が特徴量として用いられてよい。そして、例えば、監視対象装置101が正常に動作している際の特徴量を取得して学習することで、監視対象装置101の稼働中に特徴量が学習した特徴量の値から大きく外れた場合に異常と判定することが可能である。
また、例えば、監視対象装置101によっては、稼働中に稼働条件を変更して複数の動作モードで動作することがある。図3は、監視対象装置101が複数の動作モードで動作した場合の特徴量の変動を例示する図である。図3において、矢印301は、動作モードの切り替えのタイミングを示しており、図3に示す様に、動作モードの切り替えとともに特徴量が変動している。この場合、複数の動作モードのそれぞれにおいて正常に動作している状態で監視対象装置101が発する稼働音を含む音を正常音としてサンプリングし、複数の動作モードのそれぞれで特徴量を学習することが考えられる。それにより、複数の動作モードのそれぞれで異常を検出することが可能である。
しかしながら、例えば、監視対象装置101が或る動作モードにおいて恒常的に発する稼働音を正常音として収集している最中に、変則的に起きた事象に伴い発生する事象音が集音されることがある。変則的に生じる事象音としては、例えば、監視対象装置101に冷媒の供給を開始する際や停止する際などに過渡的に発生する冷媒の流れる音や周辺を通る電車や車両の走行音などが挙げられる。この場合、変則的に発生した事象音も正常音として集音されるため、その動作モードでの異常を検出する場合に、同様に事象音が発生したとしても監視対象装置101が正常に動作していると判定することができる。しかしながら、例えば、その事象音が別の動作モードの実行中に発生した場合、異常と誤判定してしまうことがある。
また、例えば、複数の動作モードの全てで正常音の収集の際に事象音を含む正常音もサンプリングできれば、事象音がどの動作モードの実行時に発生したとしても、監視対象装置101が正常に動作していると判定することが可能である。しかしながら、実際には全ての動作モードで事象音を含む正常音をサンプリングすることは困難であったり、時間を要したりすることがある。そのため、事象音の発生に伴う異常の誤判定を低減できる技術の提供が望まれている。
以下、いくつかの実施形態を説明する。なお、複数の図面において対応する要素には同一の符号を付す。
図4は、実施形態に係る情報処理装置103のブロック構成を例示する図である。情報処理装置103は、例えば、サーバ、パーソナルコンピュータ(PC)、ノートPCなどのコンピュータであってよい。情報処理装置103は、例えば、制御部401及び記憶部402を含む。情報処理装置103の記憶部402は、例えば、後述するデータ点情報900などの情報を記憶している。これらの各部の詳細及び記憶部402に格納されている情報の詳細については後述する。
図5は、集音装置102で集音された監視対象装置101の稼働音を含む音データと特徴量の変化とを例示する図である。図5(a)は、例示的な監視対象装置101の稼働音の波形データを示す図である。図5(a)において、区間(1)は、監視対象装置101を起動した際に発生した起動音の信号波形を示している。区間(2)は、動作モードAを実行中の稼働音の信号波形データを示している。区間(3)は、動作モードAを実行中に更に冷媒の供給を開始しており、動作モードAの稼働音に加えて冷媒の供給の開始時に発生する事象音が含まれた信号波形データを示している。区間(4)は、冷媒の供給開始後に時間が経過し、冷媒の供給が安定した状態の動作モードAの稼働音を示す図である。区間(5)は、動作モードAを実行中に冷媒の供給を停止しており、動作モードAの稼働音に加えて冷媒の供給停止時に発生する事象音が含まれた信号波形データを示している。区間(6)は、動作モードAを実行中の稼働音の信号波形データを示している。図5に示す様に、冷媒供給の開始及び停止に伴う事象音が、集音装置102で集音されており波形が変化している。なお、実施形態では、例えば、監視対象装置101の異常の検出に用いる少なくとも1つの特徴量の値を、異常が発生したと判定され得るほど変動させる変則的に発生する音を事象音と呼ぶ。例えば、冷媒の供給開始時や冷媒の供給終了時には比較的大きな音が発生することがあるが、冷媒の供給開始後に時間が経過して冷媒の供給が安定すると音は小さくなる傾向がある。そして、冷媒の供給を開始する際や停止する際などに過渡的に発生する大きな音は事象音であってよい。一方、冷媒の供給が安定した状態でなる小さな音は事象音に含まれなくてよい。従って、例えば、事象音を含まないと音や稼働音のみといった表現をした場合、監視対象装置101の稼働音以外の音を全く含まないことを表していなくてもよく、他の音が含まれていてもよい。
図5(b)は、例示的な監視対象装置101の稼働音から抽出した特徴量の時間変化を例示する図である。図5(b)に示す様に、動作モードAの稼働音から抽出した特徴量Aと、動作モードAに加えて冷媒の供給開始時の事象音も含む特徴量Aとは異なっており、事象音の発生で特徴量Aは変動している。また、図5(b)には、動作モードBの実行時の監視対象装置101の稼働音から取得した特徴量Aも含まれている。図5(b)に示す様に、動作モードAの実行時の稼働音から得た特徴量Aは、動作モードBの実行時の稼働音から得た特徴量Aとは異なっており、動作モードの変更により特徴量Aは変動している。この様に特徴量は、監視対象装置101の状態を監視するために利用することができる。そして、監視対象装置101が正常に動作している状態で収集した特徴量を用いて、集音装置102で集音された音データから監視対象装置101の異常を検出することが可能である。
図6は、ローカルクラスタについて例示する図である。図6には、それぞれが異なる周波数領域の成分に基づく特徴量A及び特徴量Bのそれぞれを軸にとった多次元空間に、監視対象装置101の稼働音を含む音データを複数のタイミングでサンプリングしてプロットした複数のデータ点が示されている。サンプリングに用いる監視対象装置101の稼働音を含む音データは、監視対象装置101が正常に動作している状態で動作モードA及び動作モードBを実行した際に集音装置102で収集した音データである。図6に示すように、動作モードAの実行中にサンプリングされたデータ点は、クラスタを形成している。また、動作モードBの実行中にサンプリングされたデータ点は、別のクラスタを形成している。更に、動作モードAの実行時において事象音が発生した際にサンプリングされたデータは、動作モードAのクラスタの付近に、ローカルクラスタを形成している。この様に、監視対象装置101が正常に動作している場合の稼働音は、実施している動作モードや事象音の発生の有無などの状況に応じて異なる位置にクラスタを形成し得る。そして、監視対象装置101が正常に動作している状態でサンプリングしたデータ点の情報を用いて、監視対象装置101の異常を検出することができる。なお、図6に示すように、正常に動作している状態でサンプリングしたデータ点を以下の図面においても白丸で示す。また、図6及び以下の説明では、特徴量Aと特徴量Bの2つの特徴量を用いる場合を例示するが、実施形態はこれに限定されるものではない。例えば、3つ以上のより多くの特徴量を収集し、3次元以上の多次元空間にサンプリングした音データと対応するデータ点をプロットする場合にも実施形態は適用可能である。
図7は、監視対象装置101の異常の検出について例示する図である。図7には、図6に示した正常動作時にサンプリングしたデータ点が白丸でプロットされている。また、図7には、監視対象装置101における異常の発生を監視する異常検出の実行時にサンプリングされたデータ点が黒三角で示されている。そして、例えば、データ点601のように、正常動作時の点が形成するいずれかのクラスタに、異常検出の実行時にサンプリングされたデータ点が落ちれば、そのデータ点と対応する時点において監視対象装置101は正常に動作していると判定することができる。一方、データ点602のように、正常動作時の点が形成するクラスタから異常検出の実行時にサンプリングされたデータ点が外れていれば、監視対象装置101に異常が発生していると判定することができる。
しかしながら、例えば、異常検出の実行時にサンプリングされたデータ点が、データ点603の位置にプロットされたとする。この場合、データ点603は、正常動作時にサンプリングされたデータ点が形成するいずれのクラスタにも含まれていないため、制御部401は、データ点603と対応する時点において異常が発生したと判定する。しかしながら、データ点603は、動作モードBの実行時に事象音が発生した際にサンプリングされたデータ点が形成するローカルクラスタに属する位置にあり、実際には監視対象装置101に異常は起きていない。にもかかわらず、動作モードBを実行して正常音を収集した際に事象音が発生した状態でサンプリングされたデータ点が観測できていないため、制御部401は、異常と誤判定してしまう。
また、例えば、正常音のサンプリング時に全ての動作モードにおいて事象音を含む稼働音が収集できていれば、いずれの動作モードの実行中に事象音が発生しても正常と判定することが可能である。しかしながら、実際には変則的に発生する事象音を含む監視対象装置101の稼働音を全ての動作モードにおいて収集することが困難なこともある。そこで、以下で述べる実施形態では、或る動作モードの実行時に発生した事象音により形成されるローカルクラスタに属するデータ点を特定する。そして、ローカルクラスタに属するデータ点と対応する疑似のデータ点群を、他の動作モードにも追加して、監視対象装置101の異常の検出を行う。
図8は、実施形態に係る或る動作モードの実行時に発生した事象音により形成されるローカルクラスタに属するデータ点を別の動作モードに追加する例を述べる図である。図8には、動作モードAのクラスタとは異なる位置に、動作モードAにおいて事象音が発生した際にサンプリングされたローカルクラスタが形成されている。そして、制御部401は、動作モードAのクラスタに対するローカルクラスタに属するデータ点群の相対的な位置関係を特定し、特定した相対的な位置関係と一致する動作モードBのクラスタからの相対的な位置に疑似のデータ点群を追加する。そのため、他の動作モードにおいて事象音が発生した場合にも、疑似のデータ点群に基づいて正常と判定することが可能である。そして、例えば、正常音のサンプリング時に事象音を含む稼働音を全ての動作モードにおいてサンプリングできていないとしても、事象音の発生に起因して異常と誤検出してしまうことを抑制できる。
以下、図9から図11を参照して、実施形態に係る正常音からサンプリングした音の波形データを多次元空間にプロットして得られた複数のデータ点からのローカルクラスタに属するデータ点の特定と、疑似のデータ点を追加について説明する。
図9は、実施形態に係るデータ点情報900を例示する図である。データ点情報900には、例えば、データ点についての情報を含むエントリが登録されている。エントリは、例えば、サンプリング時刻と、特徴量とを含んでよい。サンプリング時刻は、例えば、集音装置102で集音された音の波形データをサンプリングしたタイミングを示す情報であり、サンプリング期間の開始時刻や終了時刻などの時刻であってよい。特徴量は、エントリのサンプリング時刻と対応する音の波形データから取得された特徴量であってよい。特徴量は、例えば、所定の周波数領域の成分の強度を積算して得られた値であってよい。なお、音の波形データからは、複数の特徴量が取得されてよく、図9の例では特徴量1〜特徴量20が登録されている。データ点情報900に登録されている複数の特徴量は、互いに異なる周波数領域の成分から抽出されていてよい。そして、データ点情報900には、例えば、正常音から複数のタイミングでサンプリングされた複数のエントリが登録されていてよい。データ点情報900のエントリは、正常音からサンプリングした音の波形データを複数の特徴量のそれぞれを軸とする多次元空間にプロットして得られる上述のデータ点と対応している。なお、異常検出時にサンプリングされた波形データのエントリも、データ点情報900の形式で記憶部402に記録されてよい。
そして、実施形態では制御部401は、例えば、正常音から複数のタイミングでサンプリングした音の波形データを複数の特徴量のそれぞれを軸とする多次元空間にプロットして得られた複数のデータ点に異なる2つのアルゴリズムを適用して2つの異常度を求める。そして、制御部401は、求めた2つの異常度に基づいてローカルクラスタに属するデータ点を特定する。
例えば、1つ目のアルゴリズムでは、制御部401は、複数のデータ点を、複数の特徴量のうちからランダムに選択した或る特徴量の軸に沿ってランダムに二分割し、個々のデータ点に分割されるまで分割を繰り返す。そして、制御部401は、個々のデータ点に分割されるまでに要した分割回数に基づいて、複数のデータ点のそれぞれに第1の異常度を算出する。第1の異常度の算出には、例えば、Isolation Forestと呼ばれる手法が利用できる。
2つ目のアルゴリズムでは、制御部401は、例えば、多次元空間の軸に用いられている複数の特徴量を代表する代表値をデータ点毎に取得し、複数のデータ点のそれぞれに対応する複数の代表値を取得する。そして、制御部401は、例えば、複数の代表値を、分割後の2つのグループの代表値の分布が所定の条件を満たすように二分割し、個々のデータ点に分割されるまで分割を繰り返す。制御部401は、個々のデータ点に分割されるまでに要した分割回数に基づいて、複数のデータ点のそれぞれに第2の異常度を算出する。第2の異常度の算出には、Sciforestと呼ばれる手法が利用できる。以下、2つの異常度の算出アルゴリズムについて例示する。
<Isolation Forest>
図10は、Isolation Forestを例示する図である。Isolation Forestでは、正常音を多次元空間にプロットして得られた複数のデータ点を1つの特徴量の軸に沿ってランダムに二分割して二分決定木を作成する。そして、各データ点と対応する枝の深さをデータ点の異常度を表す指標とする。なお、分割は、それぞれのデータ点が1つに分割されるまで行われてよい。また、二分決定木の枝の長さは、枝が長いほど異常度が低いことを表す。複数のデータ点をランダムに二分割する場合、クラスタを形成しているデータ点は多くのデータ点がまとまって存在しているため、完全に個々のデータ点に分離するまでにかかる分割回数が多くなる。その結果、クラスタを形成しているデータ点の枝は長くなり、異常度は低くなる傾向がある。一方、クラスタから離れた位置に単独で存在するデータ点は、ランダムにデータ点を二分割して行くと、簡単に単独の点に分割されるため、枝が短くなり、異常度が高くなる傾向にある。ここで、データ点がローカルクラスタに属している場合、ある程度の数のデータ点が密集して存在しているため、ランダムに点を二分割すると、分割に回数がかかり、枝が長くなる。そのため、ローカルクラスタに属するデータ点は、Isolation Forestでは異常度が低くなる傾向がある。
<Sciforest>
Sciforestでは、正常音を複数の特徴量を軸にとった多次元空間にプロットして得られた複数のデータ点のそれぞれについて、データ点と対応する複数の特徴量の代表値を取得する。なお、データ点と対応する複数の特徴量は、例えば、データ点情報900から取得することができる。複数の特徴量の代表値としては、例えば、複数の特徴量を一次元に射影した一次元ベクトルを用いることができる。
まず、各特徴量のバラつきの影響を軽減するため、データ点情報900の各特徴量の一列全体の値で標準偏差を求める。例えば、特徴量1では、X1〜Xnのデータの標準偏差を求める。そして、列ごとに求めた標準偏差で、列の特徴量を割ることで特徴量の値を規格化する。例えば、X1/特徴量1の標準偏差、X2/特徴量1の標準偏差、…、Xn/特徴量1の標準偏差を行ごとに計算し、特徴量1の規格化された値として以降用いる。
そして、各行ごとに、特徴量1から特徴量20のそれぞれの規格化された値に、ランダムな値(値は-1〜1)の中から選択された係数を掛けて得られた値を、行ごと足し合わせることで一次元のベクトルYを生成することができる。一次元ベクトルYは、データ点情報900のエントリ毎に一つ定義されるため、一次元ベクトルYはデータ点と対応している。
そして、制御部401は、複数のデータ点を、データ点と対応する一次元ベクトルYの分布が所定の条件を満たす様に二分割を実行して、二分決定木を作成し、その各データ点と対応する枝の深さをデータ点の異常度を表す指標とする。なお、分割は、それぞれのデータ点が1つに分割されるまで行われてよい。所定の条件は、例えば、以下の式1で定義されるSdgain(Y)が最大となることであってよい。
なお、上述の式1において、σ(Y)は、分割前の全データ点と対応する複数の一次元ベクトルYの標準偏差である。σ(Yl)は、例えば、分割後の一方のデータ点群に対する一次元ベクトルYの標準偏差である。また、σ(Yr)は、例えば、分割後の他方のデータ点群に対する一次元ベクトルYの標準偏差である。即ち、式1のSdgain(Y)が最大となるように二分割すると、分割後の2つのグループの一次元ベクトルYのバラつきを示す値(例えば、標準偏差)の和が最小になるように二分割を実行することができる。また、この様に分割する場合、事象音を含まない通常の稼働音に基づいて生成される動作モード毎の通常のクラスタ(例えば、図6の動作モードA及び動作モードBのクラスタ)は、点の数が多いため、完全に個々の点に分離するまでにかかる分割回数が多くなる。その結果、通常のクラスタに属するデータ点は、枝が長くなり、異常度は低くなる傾向がある。一方、クラスタから離れた位置に単独で存在するデータ点は、Isolation Forestと同じく簡単に分けられるため、枝が短くなり、異常度が高くなる傾向にある。ここで、ローカルクラスタに属するデータ点は、ある程度密集して点が存在している。しかしながら、Sciforestでは、分割後のデータ点群のバラつきを考慮して分割が行われるため、クラスタを形成する点の数が通常のクラスタよりも少ないローカルクラスタは、全体として、枝が短くなり、異常度が低くなる傾向がある。
なお、所定の条件は、以上の条件に限定されるものでは無く、分割後のそれぞれのデータ点群の分布を考慮して分割を行う手法であれば、その他の条件であってもよい。例えば、別の例では、制御部401は、分割後の2つのデータ点群の代表値の分布が双峰性を満たす様に分割を実行してよい。双峰性とは、例えば、2つの山をもつ分布を指す。また更に、制御部401は、代表値の分布が双峰性を満たす場合には、より山の分離の距離が離れるように分割を実行してよい。
図11は、単峰性及び双峰性を例示する図である。図11において、縦軸は、データ点の数を表し、横軸は代表値の値を表す。図11(a)は、単峰性を例示しており、分布の山が一つである。図11(b)は、山の境界が曖昧な2つの山を有する双峰性の分布を例示している。図11(b)は、曖昧に分離した2つの山を有する双峰性の分布を例示している。そして、制御部401は、一例では、分割後の2つのグループのデータ点群が形成する分布が、図11(b)に示すように、それぞれ異なる位置に山を形成するように分割を実行してよい。更には、制御部401は、分割後の2つのグループのデータ点群が形成する分布が、図11(c)に示すように、それぞれのデータ点群の山が完全に分離されるように分割を実行してよい。なお、双峰性と、上述の式1のSdgain(Y)には、ある程度の相関があり、Sdgain(Y)が高くなると双峰性の山の分離がよい傾向がある。
<二分決定木からの異常度の算出>
続いて、以上で述べたIsolation Forestで作成した二分決定木、及びSciforestで作成した二分決定木のそれぞれからの異常度の算出について例示する。
二分決定木から、異常度を例えば以下の式2で求めることができる。
なお、式2において、xは、各データ点を表す。h(x)は、各データ点xにおける、二分決定木の最終的に到達した枝の深さを表す。E(h(x))は、二分決定木の作成を複数回実行した場合に、生成された複数の二分決定木の中から、異常度の算出に用いる二分決定木が選択される期待値を表す。つまり、E(h(x))、或るデータ点xの平均的な枝の深さを表す。また、c(ψ)は全てのデータ点における、平均的な枝の深さを表す。従って、式2は、二分決定木の中で各データ点が、平均的な深さに対して、どの程度深いかを、木の分岐回数(2のN乗)の形で表現している。以上の式2で求まる値Sを、制御部401は、異常度として用いてよい。
以上で述べた2つのアルゴリズムによって求められる異常度の傾向をまとめたテーブルを図12に示す。図12に示す様に、事象音を含まない通常の稼働音に基づいて形成される通常のクラスタに属するデータ点については、Isolation Forestを用いても、Sciforestを用いても、いずれも異常度が低くなる。そのため、Isolation Forestで得た異常度と、Sciforestで得た異常度との差分の大きさは、通常のクラスタに属するデータ点では小さくなる。
また、クラスタから離れた位置に単独で存在する異常なデータ点については、Isolation Forestを用いても、Sciforestを用いても、いずれも異常度が高くなり、Isolation Forestで得た異常度と、Sciforestで得た異常度との差分の大きさは小さくなる。
しかしながら、通常のクラスタよりもデータ点の数は少ないが、ある程度の数の点が密集して存在しているローカルクラスタの場合、Isolation Forestでは異常度が低くでるが、Sciforestの場合異常度が高くでる。その結果、Isolation Forestで得た異常度と、Sciforestで得た異常度との差分の大きさは大きくなる。
従って、各データ点について、Isolation Forestで得た異常度と、Sciforestで得た異常度との差分の大きさを用いて、複数のデータ点のうちから、ローカルクラスタを形成するデータ点を抽出することができる。なお、Isolation Forestで得た異常度と、Sciforestで得た異常度との差分の大きさを、例えば、ローカルクラスタ度と呼ぶことがある。
図13は、ローカルクラスタを形成するデータ点の抽出を例示する図である。図13(a)には、データ点の分布が示されており、図13(b)には、各データ点のローカルクラスタ度が示されている。図13に示す様に、通常のクラスタや、クラスタから外れた位置に単独で存在するデータ点は、ローカルクラスタ度は、小さい値を示している。しかしながら、ローカルクラスタのデータ点では、ローカルクラスタ度が高い値を示している。従って、制御部401は、ローカルクラスタ度が所定値以上の値を有するデータ点を、ローカルクラスタを形成しているデータ点として特定することができる。
続いて、制御部401は、特定したローカルクラスタのデータ点を、図14(a)に示す様に、複数のデータ点の中から除去する。
続いて、図14(b)に示す様に、制御部401は、クラスタリングを行い、残りのデータ点をクラスタに分ける。制御部401は、例えば、k平均法(k-means法)を用いて、データ点をクラスタに分けてよい。特徴量は、動作モードの変更に応じて異なる値を示し得るため、クラスタは、各動作モードと対応して形成され得る。
続いて、制御部401は、クラスタの中心と、クラスタの広がりを示す情報とを取得する。クラスタの中心は、例えば、クラスタに属する複数のデータ点の座標を平均することで特定されてよい。また、クラスタの広がりを示す情報には、例えば、クラスタに属する複数のデータ点から得たマハラノビス距離を用いることができる。
続いて、制御部401は、ローカルクラスタが、図14(b)で特定したどのクラスタと対応づけられるかを特定する。図15(a)は、ローカルクラスタとクラスタとの対応付けを例示する図である。図15(a)に示す様に、制御部401は、ローカルクラスタに属するデータ点と、各クラスタの中心との距離を比較し、ローカルクラスタに属するデータ点に最も距離の近いクラスタを、ローカルクラスタと対応するクラスタとして特定する。なお、これは、以下の推定に基づいている。即ち、例えば、或る動作モードの実行時に更に監視対象装置101の稼働音以外の事象音が混じってローカルクラスタが形成される場合、ローカルクラスタは、他のクラスタよりもその動作モードの元のクラスタに最も近い位置に形成される可能性が高い。例えば、図15(a)では、クラスタAは、動作モードAの実行中に観測されたデータ点で形成されるクラスタであり、ローカルクラスタは、動作モードAの稼働音に事象音が混じった音データから形成されるクラスタである。
続いて、制御部401は、ローカルクラスタをクラスタA以外のクラスタにも転写する。図15(b)は、ローカルクラスタの転写を例示する図である。制御部401は、例えば、クラスタAの中心からのローカルクラスタの各データ点への相対位置を特定する。そして、制御部401は、クラスタBの中心から特定した相対位置と同じ相対位置になるようにローカルクラスタのデータ点を転写し、クラスタBに対するローカルクラスタの疑似のデータ点群1501を生成する。
そして、制御部401は、例えば、監視対象装置101の異常の検出時にサンプリングされた異常判定対象のデータ点の異常度を、転写した疑似のデータ点群1501を追加した正常音に基づく複数のデータ点を用いて判定する。そのため、制御部401は、例えば、図16に示す様に、異常判定対象のデータ点(黒三角で示す)が、データ点1601のように、動作モードAのクラスタやローカルクラスタに落ちた場合にデータ点1601と対応する時点において正常と判定できる。また、制御部401は、例えば、異常判定対象のデータ点が、データ点1602のように、いずれのクラスタからも離れた位置にある場合にはデータ点1602と対応する時点において異常が発生していると判定することができる。更に、制御部401は、異常判定対象のデータ点が、データ点1603のように、転写した疑似のデータ点群1501が形成するローカルクラスタに落ちた場合にも、データ点1603と対応する時点において正常と判定することができる。
以上で述べた様に、実施形態によれば、或る動作モードで発生した事象音に伴い形成されるローカルクラスタのデータ点群と対応する疑似のデータ点群を別の動作モードにも追加して、監視対象装置101の異常を評価するために用いる異常評価データを生成する。そのため、制御部401は、監視対象装置101の異常の誤検出を低減することができる。なお、異常評価データは、例えば、データ点情報900に疑似のデータ点群のエントリを追加したデータであってよい。
図17は、実施形態に係る異常評価データの生成処理の動作フローを例示する図である。制御部401は、例えば、異常評価データの生成処理の実行指示が入力されると、図17の動作フローを開始してよい。
ステップ1701(以降、ステップを“S”と記載し、例えば、S1701と表記する)において制御部401は、データ点情報900からデータ点の情報を読み出す。なお、データ点情報900には、監視対象装置101を正常に動作させた状態で収集されたデータ点の情報が登録されていてよい。
続いて、制御部401は、S1702及びS1703の処理を実行する。なお、制御部401は、S1702及びS1703の処理を、並行して実行してもよいし、一方から順に実行してもよい。
S1702において制御部401は、Isolation Forestの手法を用いて、各データ点の異常度を計算する。また、S1703では制御部401は、Sciforestの手法を用いて異常度を計算する。
S1704において制御部401は、それぞれのデータ点について、Isolation Forestで得た異常度と、Sciforestで得た異常度との値によって処理を分ける。なお、Isolation Forestで得た異常度と、Sciforestで得た異常度とは、図12の傾向を示す。そのため、例えば、S1704においてデータ点に対して求めたIsolation Forestの異常度と、Sciforestの異常度との両方が所定の閾値よりも高かったとする(S1704が両方高い)。この場合、その点は異常な点であると考えられるため、制御部401は、そのデータ点に対する処理を終了してよい。
一方、例えば、S1704においてデータ点に対して求めたIsolation Forestの異常度と、Sciforestの異常度との差分の大きさが所定値よりも高い場合(S1704で差分の大きさが所定値より高い)、フローはS1705に進む。S1705において制御部401は、差分の大きさが所定値よりも高いと判定されたデータ点をローカルクラスタに属するデータ点として特定してよい。
また、S1704においてデータ点に対して求めたIsolation Forestの異常度と、Sciforestの異常度との両方が所定の閾値よりも低い場合(S1704が両方低い)、フローはS1706に進み、制御部401は、その点を通常のデータ点と判定する。なお、通常のデータ点は、例えば、事象音が発生していない状態で正常動作時の稼働音からサンプリングされたデータ点であってよい。
S1707において制御部401は、通常のデータ点をクラスタリングする。制御部401は、例えば、k平均法などを用いて通常のデータ点をクラスタリングしてよい。
S1708において制御部401は、各クラスタごとに、クラスタの中心と、クラスタの広がりを示す情報とを特定する。例えば、制御部401は、各クラスタごとに、クラスタに属するデータ点の座標の平均することで、クラスタの中心座標を特定してよい。また、制御部401は、クラスタに属するデータ点のマハラノビス距離を計算し、マハラノビス距離をクラスタの広がりを示す情報として用いてよい。
S1709において制御部401は、ローカルクラスタと対応する最近傍クラスタを特定する。例えば、制御部401は、S1705でローカルクラスタに属すると判定された複数のデータ点のそれぞれと、S1708で特定した各クラスタの中心との距離をクラスタごとに平均して、各クラスタとローカルクラスタとの距離として用いてよい。そして、制御部401は、各クラスタとローカルクラスタとの距離のうちで、距離が最も短いクラスタをローカルクラスタと対応する最近傍クラスタとして特定してよい。
S1710において制御部401は、ローカルクラスタと最近傍クラスタとの相対位置と同じ相対位置になるように、他のクラスタにもローカルクラスタのデータ点を転写することで、ローカルクラスタの疑似のデータ点群を生成する。そして、制御部401は、生成した疑似のデータ点群の情報をデータ点情報900に追加して更新し、本動作フローは終了する。なお、S1710における疑似データ点群の追加は、例えば、最近傍クラスタ以外の全てのクラスタに実行されてもよく、一部のクラスタに実行されてもよい。
以上で述べたように、図17の異常評価データの生成処理によれば、正常動作時のデータ点のサンプリング時に、或る動作モードにおいて発生した事象音に起因するローカルクラスタを、別の動作モードにも追加することができる。そのため、監視対象装置101の異常検出時に、別の動作モードで事象音が発生したとしても、異常と判定してしまうことを抑止できる。従って、実施形態によれば、監視対象装置101の異常の誤検出を低減することができる。
図18は、実施形態に係る異常検出処理を例示する図である。制御部401は、例えば、監視対象装置101の異常検出の開始指示が入力されると、集音装置102で収集される音データから所定の時間間隔毎にサンプリングした音データを、異常検出対象の音データとして用いて図18の処理を実行してよい。
S1801において制御部401は、異常検出対象の音データをフーリエ変換して周波数スペクトルを取得し、周波数スペクトルから特徴量を抽出する。例えば、制御部401は、データ点情報900に項目として含まれている複数の特徴量を取得してよい。
S1802において制御部401は、取得した特徴量を用いて異常検出対象の音データの異常度を計算する。例えば、制御部401は、データ点情報900に登録されている特徴量を軸にとった多次元空間に、データ点情報900に登録されているエントリのデータ点と、異常検出対象の音データのデータ点とをプロットする。なお、データ点情報900には図17の動作フローにより、疑似のデータ点のエントリが登録されているものとする。そして、制御部401は、異常検出対象の音データのデータ点の異常度を、例えば、local Outlier Factor法、或いは、上述のIsolation Forest法、又はSciforest法などの手法を用いて求めてよい。なお、local Outlier Factor法は、例えば、それぞれのデータ点について、その点からk番目に近いデータ点までの距離を求め、そのデータ点のスコアとする手法である。異常なデータ点は近傍にデータ点が少ないため、スコアが大きくなる。
そして、S1803において制御部401は、異常度が所定の閾値以上であるか否かを判定する。異常度が所定の閾値未満である場合(S1803がNO)、本動作フローは終了する。一方、異常度が所定の閾値以上である場合(S1803がYES)、フローはS1804に進む。S1804において制御部401は、異常検出対象の音データがサンプリングされた時点において監視対象装置101に異常が発生していると判定し、異常を示す情報を出力して本動作フローは終了する。
以上で述べた様に、図18の動作フローによれば、制御部401は、図17の動作フローでローカルクラスタの疑似のデータ点が追加されたデータ点情報900を用いて、監視対象装置101の異常を検出することができる。
<変形例>
上述の実施形態では、ローカルクラスタと対応する疑似のデータ点を追加する例を述べたが、実施形態これに限定されるものではない。例えば、実施形態の変形例では、制御部401は、正常音を多次元空間にプロットして得られた複数のデータ点のうちから、ローカルクラスタに属するデータ点群を除去して、異常評価データを生成してもよい。
図19は、変形例に係る異常評価データの生成処理の動作フローを例示する図である。制御部401は、例えば、異常評価データの生成処理の実行指示が入力されると、図19の動作フローを開始してよい。
なお、図19のS1901〜S1903の処理は、例えば、図17のS1701〜S1703の処理とそれぞれ対応していてよく、制御部401は、図17のS1701〜S1703の処理と同様の処理を実行してよい。
続く、S1904において制御部401は、Isolation Forestの異常度と、Sciforestの異常度との差分の大きさ(ローカルクラスタ度)が所定値よりも高いデータ点を、ローカルクラスタのデータ点として特定する。
S1905において制御部401は、データ点情報900からローカルクラスタに属するデータ点群のエントリを削除して、データ点情報900を更新する。
S1906において制御部401は、ローカルクラスタ内のデータ点と、更新されたデータ点情報900に含まれているデータ点との間の距離に基づいて異常度を算出する。例えば、制御部401は、local Outlier Factor法を用いて算出したスコアを異常度としてよい。
S1907において制御部401は、ローカルクラスタ内のデータ点の異常度に基づいて、ローカルクラスタの異常度範囲を設定し、本動作フローは終了する。例えば、制御部401は、ローカルクラスタ内の複数のデータ点のそれぞれの異常度を平均した平均値を中心に、所定の誤差範囲をとりローカルクラスタの異常度範囲を設定してよい。
以上で述べた様に、図19の動作フローによれば、制御部401は、データ点情報900からローカルクラスタに属するデータ点のエントリを削除することができる。また更に、制御部401は、データ点がローカルクラスタに属する場合に取り得る異常度範囲を設定することができる。
続いて、変形例に係る異常検出処理を説明する。図20は、変形例に係る異常度検出処理の動作フローを例示する図である。制御部401は、例えば、監視対象装置101の異常検出の開始指示が入力されると、集音装置102で収集される音データから所定の時間間隔毎にサンプリングした音データを、異常検出対象の音データとして用いて図20の処理を実行してよい。
なお、図20のS2001〜S2003、及びS2006の処理は、例えば、図18のS1801〜S1804の処理とそれぞれ対応していてよく、制御部401は、図18のS1801〜S1804の処理と同様の処理を実行してよい。ただし、図20においては、異常度は、例えば、local Outlier Factor法などの評価対象のデータ点と他のデータ点との間の距離に基づいて異常度を算出する手法で算出されるものとする。
そして、S2003で異常度が閾値以上と判定された場合(S2003がYES)、フローはS2004に進む。S2004において制御部401は、S2002で計算された異常度が、S1907で設定した異常度範囲内か否かを判定する。S2002で計算された異常度が異常度範囲内でない場合(S2004がNO)、フローはS2006に進む。一方、S2002で計算された異常度が異常度範囲内である場合(S2004がYES)、フローはS2005に進む。S2005において制御部401は、異常と判定せず、異常判定対象のデータ点がローカルクラスタに属する可能性があることを示す情報を出力し、本動作フローは終了する。
以上で述べた様に、図20の動作フローによれば、制御部401は、異常判定対象のデータ点の異常度が、ローカルクラスタに属する可能性のある異常度範囲内にある場合に、ローカルクラスタに属する可能性があることを示す情報を出力する。そのため、ローカルクラスタに属する可能性のあるデータ点を、異常と判定することを抑止できる。
以上において、実施形態を例示したが、実施形態はこれに限定されるものではない。例えば、上述の動作フローは例示であり、実施形態はこれに限定されるものではない。可能な場合には、動作フローは、処理の順番を変更して実行されてもよく、別に更なる処理を含んでもよく、又は、一部の処理が省略されてもよい。
図21は、実施形態に係る情報処理装置103を実現するためのコンピュータ2100のハードウェア構成を例示する図である。図21の情報処理装置103を実現するためのハードウェア構成は、例えば、プロセッサ2101、メモリ2102、記憶装置2103、読取装置2104、通信インタフェース2106、及び入出力インタフェース2107を備える。なお、プロセッサ2101、メモリ2102、記憶装置2103、読取装置2104、通信インタフェース2106、入出力インタフェース2107は、例えば、バス2108を介して互いに接続されている。
プロセッサ2101は、例えば、シングルプロセッサであっても、マルチプロセッサやマルチコアであってもよい。プロセッサ2101は、メモリ2102を利用して例えば上述の動作フローの手順を記述したプログラム(例えば、異常検出プログラム)を実行することにより、上述した制御部401の一部または全部の機能を提供する。
メモリ2102は、例えば半導体メモリであり、RAM領域及びROM領域を含んでいてよい。記憶装置2103は、例えばハードディスク、フラッシュメモリ等の半導体メモリ、又は外部記憶装置である。なお、RAMは、Random Access Memoryの略称である。また、ROMは、Read Only Memoryの略称である。
読取装置2104は、プロセッサ2101の指示に従って着脱可能記憶媒体2105にアクセスする。着脱可能記憶媒体2105は、例えば、半導体デバイス(USBメモリ等)、磁気的作用により情報が入出力される媒体(磁気ディスク等)、光学的作用により情報が入出力される媒体(CD−ROM、DVD等)などにより実現される。なお、USBは、Universal Serial Busの略称である。CDは、Compact Discの略称である。DVDは、Digital Versatile Diskの略称である。
上述の記憶部402は、例えばメモリ2102、記憶装置2103、及び着脱可能記憶媒体2105を含んでよい。記憶装置2103には、例えば、データ点情報900が格納されている。
通信インタフェース2106は、プロセッサ2101の指示に従ってネットワークや他の装置とデータを送受信する。例えば、プロセッサ2101は、通信インタフェース2106を介して集音装置102から音データを収集してよい。入出力インタフェース2107は、例えば、入力装置及び出力装置との間のインタフェースであってよい。入力装置は、例えばユーザからの指示を受け付けるキーボードやマウスなどのデバイスである。出力装置は、例えばディスプレーなどの表示装置、及びスピーカなどの音声装置である。
実施形態に係るプログラム(例えば、異常検出プログラム)及び音データなどのデータは、例えば、下記の形態で情報処理装置103に提供される。
(1)記憶装置2103に予め記憶されている。
(2)着脱可能記憶媒体2105により提供される。
(3)他の装置から通信を介して提供される。
なお、図21を参照して述べた情報処理装置103を実現するためのコンピュータ2100のハードウェア構成は、例示であり、実施形態はこれに限定されるものではない。例えば、上述の機能部の一部または全部の機能がFPGA及びSoCなどによるハードウェアとして実装されてもよい。なお、FPGAは、Field Programmable Gate Arrayの略称である。SoCは、System-on-a-chipの略称である。
以上において、いくつかの実施形態が説明される。しかしながら、実施形態は上記の実施形態に限定されるものではなく、上述の実施形態の各種変形形態及び代替形態を包含するものとして理解されるべきである。例えば、各種実施形態は、その趣旨及び範囲を逸脱しない範囲で構成要素を変形して具体化できることが理解されよう。また、前述した実施形態に開示されている複数の構成要素を適宜組み合わせることにより、種々の実施形態が実施され得ることが理解されよう。更には、実施形態に示される全構成要素からいくつかの構成要素を削除して又は置換して、或いは実施形態に示される構成要素にいくつかの構成要素を追加して種々の実施形態が実施され得ることが当業者には理解されよう。