(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-11
(45)【発行日】2024-11-19
(54)【発明の名称】異常検知装置、異常検知方法および異常検知プログラム
(51)【国際特許分類】
G06N 20/00 20190101AFI20241112BHJP
G06F 11/07 20060101ALI20241112BHJP
【FI】
G06N20/00
G06F11/07 151
(21)【出願番号】P 2023529217
(86)(22)【出願日】2021-06-21
(86)【国際出願番号】 JP2021023416
(87)【国際公開番号】W WO2022269690
(87)【国際公開日】2022-12-29
【審査請求日】2023-10-27
(73)【特許権者】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】中原 英里
(72)【発明者】
【氏名】塩田 哲哉
(72)【発明者】
【氏名】豊田 真智子
【審査官】千葉 久博
(56)【参考文献】
【文献】特開2020-149601(JP,A)
【文献】特開2020-107248(JP,A)
【文献】米国特許出願公開第2021/0056430(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 20/00
G06F 11/07
(57)【特許請求の範囲】
【請求項1】
所定の時点における異常が検知される検知対象の時系列データを取得する取得部と、
前記時系列データから、前記所定の時点以前の時間の区間における特徴量方向の特徴を抽出する第1抽出部と、
前記特徴量方向の特徴から、前記時間の区間における時間方向の特徴を抽出する第2抽出部と、
前記特徴量方向の特徴および前記時間方向の特徴に基づいて、所定の時点における異常スコアを算出するとともに、前記異常スコアに対する前記所定の時点以前における特徴量方向の寄与度および時間方向の寄与度を算出する算出部と、
を備えることを特徴とする異常検知装置。
【請求項2】
前記算出部は、教師なし学習モデルによって、所定の時点における異常スコアを算出するとともに、前記特徴量方向の寄与度および前記時間方向の寄与度を算出し、
前記異常スコアに基づいて前記異常を検知した場合には、前記特徴量方向の寄与度または前記時間方向の寄与度を用いて前記異常の原因を特定する特定部を、
さらに備えることを特徴とする請求項1に記載の異常検知装置。
【請求項3】
前記第1抽出部は、前記時系列データの各特徴量に2次元畳み込みを行い、前記特徴量方向の特徴を抽出し、
前記第2抽出部は、前記特徴量方向の特徴の前記各特徴量に1次元畳み込みを行い、前記時間方向の特徴を抽出する、
ことを特徴とする請求項1または2に記載の異常検知装置。
【請求項4】
前記算出部は、前記異常スコアに関する予測誤差、前記特徴量方向の寄与度、および前記時間方向の寄与度のうち少なくとも1つに対するペナルティから構成される損失関数を用いて学習を行っ
た教師なし学習モデルによって、前記異常スコアを算出するとともに、前記特徴量方向の寄与度および前記時間方向の寄与度を算出する、
ことを特徴とする請求項1から3のいずれか1項に記載の異常検知装置。
【請求項5】
異常検知装置によって実行される異常検知方法であって、
所定の時点における異常が検知される検知対象の時系列データを取得する取得工程と、
前記時系列データから、前記所定の時点以前の時間の区間における特徴量方向の特徴を抽出する第1抽出工程と、
前記特徴量方向の特徴から、前記時間の区間における時間方向の特徴を抽出する第2抽出工程と、
前記特徴量方向の特徴および前記時間方向の特徴に基づいて、所定の時点における異常スコアを算出するとともに、前記異常スコアに対する前記所定の時点以前における特徴量方向の寄与度および時間方向の寄与度を算出する算出工程と、
を含むことを特徴とする異常検知方法。
【請求項6】
コンピュータを請求項1から4のいずれか1項に記載の異常検知装置として機能させるための異常検知プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、異常検知装置、異常検知方法および異常検知プログラムに関する。
【背景技術】
【0002】
機械学習技術を用いた異常検知は、異常が発生する頻度が極めて少ない場合、正常データを用いて教師なし学習でモデルを作成する。そして、正常状態からの乖離を表す異常スコアを算出する。算出した異常スコアに対して、閾値を設定することにより異常・正常の判断を行う。機械学習の異常検知には、各サンプルを独立に扱うことで時系列データであるか否かに関わらず適用可能な手法と、時間窓を設定し、その範囲のサンプルの順序を考慮する時系列データ向けの手法(以下、「時系列異常検知」と表記)とがある。
【0003】
ここで、時系列異常検知で設定する時間窓とは、時系列データをある一定区間に区切る窓を指す。モデル作成時には、時間方向にずらしながら時間窓内のデータを使って挙動を学習する。時系列異常検知では、正常時の時系列データの挙動を学習し、予測値と実測値の差である予測誤差を用いて異常スコアを算出する。モデル学習時に学んだ正常な時系列データに類似する振舞いのサンプルは予測誤差が小さくなり、未学習のサンプルは予測誤差が大きくなるため、この性質を利用して時系列データから異常を検出することが可能である。
【0004】
上述のように、機械学習技術を用いた異常検知では、予測したサンプルの異常スコアが、事前に設定した異常判定の閾値を超えているか否かによって異常が起こったと判断し、異常発生時間を特定する。しかし、異常スコアは異常がいつ発生したのかを検知しているに過ぎず、異常を発生させた原因である特徴量はわからないため、閾値を超えたサンプルの前後の挙動を確認する等の追加分析が必要となる。
【0005】
一方、異常を発生させる原因となった特徴量を特定するための既存技術として、学習済モデル等により寄与度を算出する技術がある。ここで、寄与度とは、機械学習モデルが出力した結果に影響を与えた度合いのことを示し、寄与度が大きいほど異常の原因であると判断することができる。また、入力データの時間方向の前後関係を考慮して寄与度を出力し、入力データのどの時間が分類結果に寄与したのかを示す技術も存在する(例えば、非特許文献1参照)。
【先行技術文献】
【非特許文献】
【0006】
【文献】R. Assaf, et al. "MTEX-CNN: Multivariate Time series EXplanations for Predictions with Convolutional Neural Networks", 2019 IEEE International Conference on Data Mining (ICDM), pp.952-957、[online]、[2021年6月8日検索]、インターネット<https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=8970899&tag=1>
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、上述した従来技術では、教師なし異常検知において、時系列性を考慮した原因特定を容易にすることができなかった。なぜならば、上述した従来技術には、以下のような課題があるためである。
【0008】
まず、上記の学習済モデル等により寄与度を出力する技術では、各サンプルを時間方向に独立に扱っているので、データの時間方向の前後関係は考慮しない寄与度が出力される。また、上記の入力データの時間方向の前後関係を考慮して寄与度を出力する技術では、教師あり学習かつ分類問題を対象とした手法であるので、教師データのない異常検知技術にはそのままでは適用できない。
【課題を解決するための手段】
【0009】
上述した課題を解決し、目的を達成するために、本発明に係る異常検知装置は、所定の時点における異常が検知される検知対象の時系列データを取得する取得部と、前記時系列データから、前記所定の時点以前の時間の区間における特徴量方向の特徴を抽出する第1抽出部と、前記特徴量方向の特徴から、前記時間の区間における時間方向の特徴を抽出する第2抽出部と、前記特徴量方向の特徴および前記時間方向の特徴に基づいて、所定の時点における異常スコアを算出するとともに、前記異常スコアに対する前記所定の時点以前における特徴量方向の寄与度および時間方向の寄与度を算出する算出部と、を備えることを特徴とする。
【0010】
また、本発明に係る異常検知方法は、異常検知装置によって実行される異常検知方法であって、所定の時点における異常が検知される検知対象の時系列データを取得する取得工程と、前記時系列データから、前記所定の時点以前の時間の区間における特徴量方向の特徴を抽出する第1抽出工程と、前記特徴量方向の特徴から、前記時間の区間における時間方向の特徴を抽出する第2抽出工程と、前記特徴量方向の特徴および前記時間方向の特徴に基づいて、所定の時点における異常スコアを算出するとともに、前記異常スコアに対する前記所定の時点以前における特徴量方向の寄与度および時間方向の寄与度を算出する算出工程と、を含むことを特徴とする。
【0011】
また、本発明に係る異常検知プログラムは、所定の時点における異常が検知される検知対象の時系列データを取得する取得ステップと、前記時系列データから、前記所定の時点以前の時間の区間における特徴量方向の特徴を抽出する第1抽出ステップと、前記特徴量方向の特徴から、前記時間の区間における時間方向の特徴を抽出する第2抽出ステップと、前記特徴量方向の特徴および前記時間方向の特徴に基づいて、所定の時点における異常スコアを算出するとともに、前記異常スコアに対する前記所定の時点以前における特徴量方向の寄与度および時間方向の寄与度を算出する算出ステップと、をコンピュータに実行させることを特徴とする。
【発明の効果】
【0012】
本発明では、教師なし異常検知において、時系列性を考慮した原因特定を容易にする。
【図面の簡単な説明】
【0013】
【
図1】
図1は、第1の実施形態に係る異常検知システムの一例を示す図である。
【
図2】
図2は、第1の実施形態に係る異常検知装置の構成例を示すブロック図である。
【
図3】
図3は、第1の実施形態に係る学習モデルのアーキテクチャの一例を示す図である。
【
図4】
図4は、第1の実施形態に係る特徴抽出処理の一例を示す図である。
【
図5】
図5は、第1の実施形態に係る学習データの一例を示す図である。
【
図6】
図6は、第1の実施形態に係る評価データの一例を示す図である。
【
図7】
図7は、第1の実施形態に係るデータの加工処理の一例を示す図である。
【
図8】
図8は、第1の実施形態に係るデータの加工処理の一例を示す図である。
【
図9】
図9は、第1の実施形態に係るデータの加工処理の一例を示す図である。
【
図10】
図10は、第1の実施形態に係る異常検知精度の評価処理の流れの一例を示す図である。
【
図11】
図11は、第1の実施形態に係る異常検知精度の評価処理の一例を示す図である。
【
図12】
図12は、第1の実施形態に係る異常検知精度の評価処理の一例を示す図である。
【
図13】
図13は、第1の実施形態に係る寄与度の評価処理の流れの一例を示す図である。
【
図14】
図14は、第1の実施形態に係る特徴量方向の寄与度の算出処理の一例を示す図である。
【
図15】
図15は、第1の実施形態に係る時間方向の寄与度の算出処理の一例を示す図である。
【
図16】
図16は、第1の実施形態に係る寄与度の評価処理の一例を示す図である。
【
図17】
図17は、第1の実施形態に係る学習モデルのアーキテクチャの有効性の評価結果の一例を示す図である。
【
図18】
図18は、第1の実施形態に係る学習モデルのアーキテクチャの有効性の評価結果の一例を示す図である。
【
図19】
図19は、第1の実施形態に係る学習モデルのアーキテクチャの有効性の評価結果の一例を示す図である。
【
図20】
図20は、第1の実施形態に係る学習モデルのアーキテクチャの有効性の評価結果を説明する図である。
【
図21】
図21は、第1の実施形態に係る学習モデルのアーキテクチャの有効性の評価結果の一例を示す図である。
【
図22】
図22は、第1の実施形態に係る学習モデルのアーキテクチャの有効性の評価結果の一例を示す図である。
【
図23】
図23は、第1の実施形態に係る学習モデルのアーキテクチャの有効性の評価結果の一例を示す図である。
【
図24】
図24は、第1の実施形態に係る学習モデルのアーキテクチャの有効性の評価結果の一例を示す図である。
【
図25】
図25は、第1の実施形態に係る学習モデルのアーキテクチャの有効性の評価結果の一例を示す図である。
【
図26】
図26は、第1の実施形態に係る処理全体の流れの一例を示すフローチャートである。
【
図27】
図27は、プログラムを実行するコンピュータを示す図である。
【発明を実施するための形態】
【0014】
以下に、本発明に係る異常検知装置、異常検知方法および異常検知プログラムの実施形態を図面に基づいて詳細に説明する。なお、本発明は、以下に説明する実施形態により限定されるものではない。
【0015】
〔第1の実施形態〕
以下に、第1の実施形態(適宜、本実施形態)に係る異常検知システムの処理、従来技術と本実施形態との比較、異常検知装置10の構成、処理の詳細、処理の流れを順に説明し、最後に本実施形態の効果を説明する。
【0016】
[異常検知システムの処理]
図1を用いて、本実施形態に係る異常検知システム(適宜、本システム)の処理を説明する。
図1は、第1の実施形態に係る異常検知システムの一例を示す図である。本システムは、異常検知装置10を有する。なお、
図1に示した異常検知システムには、複数台の異常検知装置10が含まれてもよい。
【0017】
また、本システムでは、異常検知装置10が取得するデータとして、時系列データ20が関与する。ここで、時系列データ20は、各サンプルの順序を考慮するデータであって、時系列的な情報を含むデータである。
【0018】
上記のようなシステムにおいて、単一の時系列異常検知モデルにより、異常スコアを算出でき、かつその異常スコアの高低に関わらず、異常原因と思われる時刻と特徴量を特定するための寄与度を算出できる、Convolutional Neural Network(以下、「CNN」と表記)ベースの異常検知処理の例を説明する。
【0019】
まず、異常検知装置10は、時系列データ20を取得する。このとき、異常検知装置10の処理により、異常スコアから異常を検知するだけではなく、異常スコア上昇前の時刻からの影響も考慮し、異常スコアに寄与した特徴量と時間がわかることが望ましい(
図1(1)参照)。
【0020】
次に、異常検知装置10は、異常発生時刻から過去の特定時間分を遡って異常原因の特定を実施する(
図1(2)参照)。
図1の例では、異常発生時刻tからw時間分遡り、時刻t-wからt-1の区間において異常発生時刻tの異常原因の特定を実施する。
【0021】
そして、異常検知装置10は、時系列データ20に基づいて特徴量方向の寄与度を算出する(
図1(3)参照)。
図1の例では、算出した寄与度によって、時刻tの異常スコアに影響した特徴量は、センサAとセンサEに関する特徴量であることがわかる。
【0022】
また、異常検知装置10は、時系列データ20に基づいて時間方向の寄与度を算出する(
図1(4)参照)。
図1の例では、算出した寄与度によって、時刻tの異常スコアに影響した時間は、時刻t-wからt-1の区間における後半の時間であることがわかる。
【0023】
このため、異常検知装置10の処理により、異常原因となる特徴量だけではなく、時間的な関連性も把握することが可能となる(
図1(5)参照)。以上より、本システムでは、異常検知に用いた同一のモデルに対して、異常を特定したい時刻から一定時間分(
図1ではw時間分)遡って特徴量方向と時間方向の寄与度を算出することにより、時系列異常検知の原因特定を容易にする。すなわち、本システムは、時系列異常検知に加えて、時系列性を考慮した原因特定を実行することができる。
【0024】
[従来の異常検知処理]
ここで、参考技術として一般的に行われる従来の異常検知処理に関連する技術について説明する。
【0025】
機械学習を用いた時系列異常検知の既存技術として、Recurrent Neural Network(以下、「RNN」と表記)やLong Short Time Memory(以下、「LSTM」と表記)を用いた手法がある。RNNは自己回帰の構造を持つニューラルネットワークであり、時系列データの過去の時刻の情報を保持する隠れ層を取り入れることで予測を可能にしている。ただし、RNNには長期間の依存関係をモデル化するのが難しいという短所がある。その短所を改善したのがLSTMであり、モデルに忘却ゲートを導入することで、長期間の依存関係を学習することを可能にした手法である。
【0026】
また、異常を発生させる原因となった特徴量を特定するための既存技術として、再構成誤差を用いた異常原因特定技術と、LIME(参考文献1:Ross, A. S., Hughes, M. C. & DoshiVelez, F. Right for the Right Reasons: TrainingDifferentiable Models by Constraining their Explanations. arXiv [cs.LG] (2017))やSHAP(参考文献2:Lundberg, S. & Lee, S.-I. A Unified Approach to Interpreting Model Predictions.NIPS2017 (2017))、Smooth Grad(参考文献3:Smilkov, D., Thorat, N., Kim, B., Viegas, F. & Wattenberg, M. SmoothGrad: removingnoise by adding noise. arXiv [cs.LG] (2017))等を用いて、学習済モデルにより寄与度を算出する技術がある。
【0027】
まず、再構成誤差を用いた異常原因特定技術について説明する。再構成誤差は入力層、中間層、出力層を持つモデルの入力層と出力層の差分によって、特徴量ごとに算出される値である。再構成誤差は、オートエンコーダ(Autoencoder)や主成分分析といった中間層でデータの圧縮表現を得る手法であれば算出可能である。学習済みの正常サンプルと類似する挙動をしているサンプルの場合は、出力層において正しく復元されることで各特徴量の再構成誤差が小さくなり、正常データと違った挙動をしているサンプルの場合は、出力層での復元がうまくいかず、再構成誤差が大きくなる。そのため、再構成誤差に対して可視化や統計量算出等を行い、値が大きい特徴量を異常原因である推定する。
【0028】
次に、学習済モデルにより寄与度を算出する技術について説明する。上記のLIMEやSHAPでは、原因を推定したいサンプルを選択し、原因の推定用の新たなモデルを作成することで各特徴量の寄与度を出力する。一方、出力した結果に対する入力サンプルの勾配を計算することで寄与度を出力する技術もあり、代表として上記のSmooth Gradが挙げられる。ここで、Smooth Gradでは、入力サンプルに対して意図的にガウシアンノイズを加えた複数のサンプルを作成し、それらの結果を平均することでノイズが少ない寄与度を出力可能にする。これらの手法は主に教師あり学習を用いた分類モデルに適用する手法であるが、教師なし異常検知手法に対しても異常スコアと閾値に基づき、正常・異常のラベルを付けることで適用可能である。
【0029】
しかしながら、上述した再構成誤差を用いた異常原因特定技術、学習済モデルより寄与度を出力する技術ともに、各サンプルを時間方向に独立に扱っているので、データの時間方向の前後関係は考慮しない寄与度が出力される。そのため、時系列異常検知の原因推定技術としては不十分である。
【0030】
一方、データの時間方向の前後関係を考慮して寄与度を出力する技術として、MTEX-CNN(例えば、非特許文献1参照)が挙げられる。MTEX-CNNは、教師あり学習を用いて系列分類モデルを作成し、CNNの最後の畳み込み層により出力された値を使って判断根拠を提示することができるGrad-CAMを用いて寄与度を出力する。MTEX-CNNは、時系列分類と寄与度の出力を同一のモデルで行うことができ、時間窓で区切られた入力データのどの特徴量が分類結果に寄与したのかを示す特徴量方向の寄与度と、入力データのどの時間が分類結果に寄与したのかを示す時間方向の寄与度を出力可能にしている。
【0031】
しかしながら、上述したMTEX-CNNは、教師あり学習かつ分類問題を対象とした手法であるので、教師なし異常検知に適用するには工夫が必要である。
【0032】
以下に、従来技術では解決できない課題について説明する。異常検知の原因特定を行うための既存技術は、各サンプルを時間方向に独立に扱っているため、選択したサンプルの前後関係は考慮しない寄与度が出力される。しかし、時系列データは、前の時刻に依存して振舞いが変化することが知られている(参考文献4:Brockwell, P. J., Davis, R. A. & Fienberg, S. E. Time Series: Theory and Methods: Theory and Methods. (Springer Science & Business Media, 1991))。
【0033】
経年劣化のように徐々に進行して大きくなる異常の場合は、異常スコアも緩やかに上昇するため、時系列データ特有の異常傾向であるといえる。このような異常発生から異常スコアの上昇まで時間遅れが発生する傾向をもつ異常に対する原因推定としては、予測時刻時点の異常スコアの上昇がどの特徴量が原因であるかに加え、どの時刻からの影響であるのかを合わせて提示することが望ましいといえる。これは、特徴量の寄与度に加えて時間に対する寄与度を出力することを意味し、既存技術の異常原因特定技術では対応できない。そのため、教師なし時系列異常検知に対して、異常発生時刻前の時間方向の関係を考慮した寄与度を出力可能な技術が必要である。
【0034】
[異常検知装置10の構成]
次に、
図2を用いて、本実施形態に係る異常検知装置10の構成を詳細に説明する。
図2は、第1の実施形態に係る異常検知装置の構成例を示すブロック図である。異常検知装置10は、入力部11、出力部12、通信部13、記憶部14および制御部15を有する。
【0035】
(1.入力部11)
入力部11は、当該異常検知装置10への各種情報の入力を司る。例えば、入力部11は、マウスやキーボード等で実現され、当該異常検知装置10への設定情報等の入力を受け付ける。
【0036】
(2.出力部12)
出力部12は、当該異常検知装置10からの各種情報の出力を司る。例えば、出力部12は、ディスプレイ等で実現され、当該異常検知装置10に記憶された設定情報等を出力する。
【0037】
(3.通信部13)
通信部13は、他の装置との間でのデータ通信を司る。例えば、通信部13は、各通信装置との間でデータ通信を行う。また、通信部13は、図示しないオペレータの端末との間でデータ通信を行うことができる。
【0038】
(4.記憶部14)
記憶部14は、制御部15が動作する際に参照する各種情報や、制御部15が動作した際に取得した各種情報を記憶する。ここで、記憶部14は、例えば、RAM(Random Access Memory)、フラッシュメモリ等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置等で実現され得る。なお、
図2の例では、記憶部14は、異常検知装置10の内部に設置されているが、異常検知装置10の外部に設置されてもよいし、複数の記憶部が設置されていてもよい。
【0039】
(5.制御部15)
制御部15は、当該異常検知装置10全体の制御を司る。制御部15は、取得部15a、第1抽出部15b、第2抽出部15c、算出部15dおよび特定部15eを有する。ここで、制御部15は、例えば、CPU(Central Processing Unit)やMPU(Micro Processing Unit)等の電子回路やASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路である。
【0040】
(5-1.取得部15a)
取得部15aは、所定の時点における異常が検知される検知対象の時系列データを取得する。例えば、取得部15aは、時刻ごとに複数のセンサから送信されたセンサ値を含むデータを取得する。一方、取得部15aは、取得した時系列データを第1抽出部15bに出力する。また、取得部15aは、取得した時系列データを記憶部14に格納してもよい。
【0041】
(5-2.第1抽出部15b)
第1抽出部15bは、時系列データから、所定の時点以前の時間の区間における特徴量方向の特徴を抽出する。例えば、第1抽出部15bは、時系列データの各特徴量に2次元畳み込みを行い、特徴量方向の特徴を抽出する。また、第1抽出部15bは、特徴量方向の特徴として、第1の特徴量マップ(特徴量マップ1)を出力する。
【0042】
処理の詳細を説明すると、例えば、第1抽出部15bは、時間窓w、d次元の時系列データの各特徴量に2次元畳み込みを2回行い、特徴量マップを(w/4)×d次元に圧縮する。また、第1抽出部15bは、1回目のフィルタ数は64、2回目のフィルタ数は128と設定し、畳み込みを行うことで、特徴量方向の特徴抽出を行う。なお、第1抽出部15bによる特徴量方向の特徴抽出処理については、[処理の詳細](2.特徴抽出処理)にて後述する。
【0043】
(5-3.第2抽出部15c)
第2抽出部15cは、特徴量方向の特徴から、所定の時間の区間における時間方向の特徴を抽出する。例えば、第2抽出部15cは、特徴量方向の特徴の各特徴量に1次元畳み込みを行い、時間方向の特徴を抽出する。また、第2抽出部15cは、時間方向の特徴として、第2の特徴量マップ(特徴量マップ2)を出力する。
【0044】
処理の詳細を説明すると、例えば、第2抽出部15cは、d次元の第1の特徴量マップについて、d次元のすべての特徴量を利用するように1次元畳み込みを行うことで、入力データ全体の時間方向の特徴抽出を行う。なお、第2抽出部15cによる時間方向の特徴抽出処理については、[処理の詳細](2.特徴抽出処理)にて後述する。
【0045】
(5-4.算出部15d)
算出部15dは、特徴量方向の特徴および時間方向の特徴に基づいて、所定の時点における異常スコアを算出するとともに、異常スコアに対する所定の時点以前における特徴量方向の寄与度および時間方向の寄与度を算出する。例えば、算出部15dは、教師なし学習モデルによって、所定の時点における異常スコアを算出するとともに、特徴量方向の寄与度および時間方向の寄与度を算出する。
【0046】
さらに、算出部15dは、異常スコアに関する予測誤差、特徴量方向の寄与度、および時間方向の寄与度のうち少なくとも1つに対するペナルティから構成される損失関数を用いて学習を行った教師なし学習モデルによって、異常スコアを算出するとともに、特徴量方向の寄与度および時間方向の寄与度を算出する。
【0047】
処理の詳細を説明すると、算出部15dは、特徴量方向の畳み込みを行った最終層に対して予測値を用いて逆伝播を行い、得られた勾配値から重みを計算する。そして、算出部15dは、得られた重みと第1の特徴量マップをかけ合わせた行列に対して、活性化関数を用いることで特徴量方向の寄与度を出力する。また、算出部15dは、時間方向の畳み込みを行った最終層に対して予測値を用いて逆伝播を行い、得られた勾配値から重みを計算する。そして、算出部15dは、得られた重みと第2の特徴量マップをかけ合わせた行列に対して、活性化関数を用いることで時間方向の寄与度を出力する。なお、算出部15dによる寄与度算出処理については、[処理の詳細](3.寄与度算出処理)にて後述する。
【0048】
(5-5.特定部15e)
特定部15eは、異常スコアに基づいて異常を検知した場合には、特徴量方向の寄与度または時間方向の寄与度を用いて異常の原因を特定する。例えば、特定部15eは、特徴量方向の寄与度を用いて、異常発生時刻の異常スコアに影響した特徴として、センサの種類を特定する。また、特定部15eは、時間方向の寄与度を用いて、異常発生時刻の異常スコアに影響した時刻を特定する。さらに、特定部15eは、特定した情報を記憶部14に格納してもよい。
【0049】
[処理の詳細]
図3~
図25や数式等を用いて、本実施形態に係る処理の詳細を説明する。以下では、学習モデルのアーキテクチャの概要、特徴抽出処理、寄与度算出処理、損失関数、学習モデルの評価処理の順に説明する。
【0050】
(1.学習モデルのアーキテクチャの概要)
図3を用いて、本実施形態に係る学習モデルのアーキテクチャ(適宜、本アーキテクチャ)の概要について説明する。
図3は、第1の実施形態に係る学習モデルのアーキテクチャの一例を示す図である。以下では、異常スコア、特徴量方向の寄与度、および時間方向の寄与度を同一のモデルから出力する学習モデルのアーキテクチャについて説明する。
【0051】
本アーキテクチャでは、CNNを用いて特徴量がd次元、時間窓がwである入力データを使って、ある時点の実測値を予測するモデルを作成することで時系列異常検知を行う。ある時点とは、k時刻前でも先でも構わない。また、本アーキテクチャでは、入力データに対し、CNNによる2段階の特徴抽出を行う。すなわち、本アーキテクチャでは、1段階目は特徴量方向の特徴抽出(
図3(1)参照)が、2段階目は時間方向の特徴抽出(
図3(2)参照)を行う。その後、本アーキテクチャでは、全結合層を得て(
図3(3)参照)、予測値y^を出力し(
図3(4)参照)、実測値yの誤差(平均二乗誤差等)を計算することで異常スコアを算出する(
図3(5)参照)。
【0052】
(2.特徴抽出処理)
図4を用いて、特徴抽出処理の詳細について説明する。
図4は、第1の実施形態に係る特徴抽出処理の一例を示す図である。以下では、特徴量方向の特徴抽出処理、時間方向の特徴抽出処理の順に説明する。
【0053】
(2-1.特徴量方向の特徴抽出処理)
1段階目の特徴量方向の特徴抽出処理(第1抽出処理)では、まず、異常検知装置10は、特徴量ごとに2次元畳み込みを複数回行う(
図4(1)参照)。次に、異常検知装置10は、特徴量方向の特徴抽出における最後の2次元畳み込みを行った後に行列を転置することで、c×dサイズの特徴量マップ1を得る(
図4(2)参照)。
【0054】
なお、cは時間窓wよりも小さい値でないといけない。また、畳み込みに使用するフィルタサイズw’は、w’×1である必要があり、w’は1<w’<wという制限がある。例えば、異常検知装置10は、2次元畳み込みを2回行い、w’=4、c=w/4とし、特徴量マップを(w/4)×d次元に圧縮する。また、畳み込みに使用するフィルタ数は任意の値を設定可能である。例えば、異常検知装置10は、1回目のフィルタ数は64、2回目のフィルタ数は128と設定し、畳み込みを行う。また、異常検知装置10は、特徴量方向の畳み込みに、ハーフパディングを使用してもよい。
【0055】
(2-2.時間方向の特徴抽出処理)
2段階目の時間方向の特徴抽出処理(第2抽出処理)では、異常検知装置10は、1段階目で得た特徴量マップ1について、d次元のすべての特徴量を利用するように1次元畳み込みを行うことで、入力データ全体の時間方向の特徴抽出を行い(
図4(3)参照)、特徴量マップ2を得る(
図4(4)参照)。
【0056】
なお、この畳み込みで使用するフィルタサイズは、c’×dである必要があり、1<c’<cという制限がある。また、パラメータnはフィルタc’に依存して決まる値であり、n=c-c’+1となる。例えば、異常検知装置10は、c’=4と設定し、畳み込みを行う。また、異常検知装置10は、時間方向の畳み込みに、ハーフパディングを使用してもよい。
【0057】
そして、異常検知装置10は、上記の第1抽出処理、第2抽出処理を行った上で、全結合層を得て(
図4(5)参照)、予測値y^を出力する(
図4(6)参照)。
【0058】
(3.寄与度算出処理)
特徴抽出処理に続く処理として、寄与度算出処理の詳細を説明する。以下では、寄与度算出処理の概要、特徴量方向の寄与度算出処理、時間方向の寄与度算出処理の順に説明する。
【0059】
(3-1.寄与度算出処理の概要)
まず、異常検知装置10は、学習モデルの出力値を用いて選択した畳み込み層に対して、学習モデルから出力された値を逆伝播することで勾配値を出力し、その勾配値のGlobal Average Poolingを計算することで重みを出力する。そして、異常検知装置10は、選択した畳み込み層から得られた特徴量マップと得られた重みをかけ合わせた行列を、活性化関数(ReLU関数等)を用いて変換することによって寄与度を算出する。
【0060】
すなわち、異常検知装置10は、特徴量方向の特徴抽出を行った層の出力である特徴量マップ1(
図4(2)参照)と、時間方向の特徴抽出を行った層の出力である特徴量マップ2(
図4(4)参照)それぞれに対して、k点先(kは任意の変数)の予測値y^を用いて寄与度算出処理を実行し、特徴量方向の寄与度、時間方向の寄与度とともに、k点先の予測値に対する寄与度を出力する。
【0061】
(3-2.特徴量方向の寄与度算出処理)
異常検知装置10は、特徴量方向の畳み込みを行った最終層に対して予測値y^lを用いて逆伝播を行い、ここで得られた勾配値をcで割ることで重みを計算する。そして、異常検知装置10は、得られた重みと特徴量マップ1をかけ合わせた行列に対して、活性化関数を用いることで寄与度を出力する。
【0062】
なお、異常検知装置10は、特徴量マップ1に対する寄与度はc×d次元であり、入力データと次元が合わず出力された寄与度が解釈できないため、入力データのサイズと同じw×d次元にサイズを変更することで、解釈可能な特徴量方向の寄与度を出力する。例えば、異常検知装置10は、(w/4)×d次元からw×d次元にサイズを変更し、特徴量方向の寄与度を出力する。
【0063】
(3-3.時間方向の寄与度算出処理)
異常検知装置10は、時間方向の畳み込みを行った最終層に対して予測値y^lを用いて逆伝播を行い、ここで得られた勾配値をnで割ることで、重みを計算する。そして、異常検知装置10は、得られた重みと特徴量マップ2をかけ合わせた行列に対して、活性化関数を用いることで寄与度を出力する。
【0064】
なお、異常検知装置10は、特徴量マップ2に対する寄与度はn×m次元であり、入力データの時間窓wとサイズが合わないため、w×1次元にサイズを変更することで、時間方向の寄与度を出力する。
【0065】
(4.損失関数)
本実施形態に係る学習モデルの学習を行う損失関数の詳細を説明する。まず、損失関数Lossは、下記(1)式のように示される。
【0066】
【数1】
損失関数Lossを構成するL
adは、下記(2)式のように示される。
【0067】
【数2】
損失関数Lossを構成するL
featureは、下記(3)式のように示される。
【0068】
【数3】
損失関数Lossを構成するL
timeは、下記(4)式のように示される。
【0069】
【0070】
ここで、上記(2)式中の||yi-y^l||は2つのベクトル間の距離を表し、具体的にはユークリッド距離や平均二乗誤差等を用いて計算する。また、上記(3)式のAは特徴量寄与度の行列、上記(4)式のBは時間寄与度の行列を表す。また、上記(1)式の損失関数Lossは、予測誤差に対するペナルティを表すLad、特徴量の寄与度に対するペナルティを表すLfeature、および時間の寄与度に対するペナルティを表すLtimeから構成される。
【0071】
上記(1)式の損失関数Lossにおいて、寄与度に対するペナルティ(Lfeature、Ltime)は、学習時に寄与度が0に近づくような正則化を加えているものであり、この正則化により、正常サンプルに対する寄与度が小さく、異常サンプルに対する寄与度が大きくなるような効果が期待される。
【0072】
なお、損失関数Lossの上記(1)式は、必ずしも寄与度に対するペナルティを含む必要はなく、予測誤差のペナルティLadのみや、どちらか一方の寄与度のペナルティ(Lfeature、Ltime)のみを含むものであってもよい。また、寄与度に対するペナルティの上記(3)式、(4)式は、同様の効果を生む正則化であれば、これに限定されるものではない。以下では、予測誤差のみの損失関数を用いたものを「正則化なし手法」、予測誤差に加えて、学習時に存在しないデータに対して寄与度が大きく出力されるように正則化を行う手法を「正則化あり手法」と表記する。
【0073】
(5.学習モデルの評価処理)
図5~
図25を用いて、本実施形態に係る学習モデルの評価処理の詳細を説明する。以下では、学習モデルの評価処理の概要、正則化なし手法による評価処理、正則化あり手法による評価処理、学習モデルの有効性の順に説明する。なお、本実施形態に係る学習モデルの評価処理は、以下に説明する処理により限定されるものではない。
【0074】
(5-1.学習モデルの評価処理の概要)
図5~
図16を用いて、本実施形態に係る学習モデルの評価処理の概要を説明する。以下では、学習モデルに利用するデータの作成、データの加工、異常検知精度の評価、寄与度の評価の順に説明する。
【0075】
(5-1-1.データの作成)
図5および
図6を用いて、学習モデルに利用するデータの作成について説明する。
図5は、第1の実施形態に係る学習データの一例を示す図である。
図6は、第1の実施形態に係る評価データの一例を示す図である。
【0076】
学習モデルに利用するデータとして、特徴量が5次元の人工データを作成する。ここで、学習データと評価データの差異は以下の通りである。
【0077】
1~4次元目(正常次元)については、学習データ、評価データともに同じ規則でデータを生成し、差異は存在しない。すなわち、
図5のように、学習データでは、全区間で大きな変動のない波形を示す。また、
図6(2)のように、評価データであっても、正常次元は学習データと同じ波形を示す。
【0078】
5次元目(異常次元)については、学習データは、三角関数と一様分布を組み合わせてデータを生成する。一方、評価データは、学習データと同じ規則でデータを生成し、著しく大きい値を定期的に加算して異常状態を擬似的に作成する。すなわち、
図6(1)のように、定期的に異常波形が出るようにデータを生成する。なお、
図6(1)において、網掛けで示された矩形部分はすべて異常区間として扱う。
【0079】
(5-1-2.データの加工)
図7~
図9を用いて、学習モデルに利用するデータの加工について説明する。
図7~
図9は、第1の実施形態に係るデータの加工処理の一例を示す図である。
【0080】
まず、
図7のように、時間窓で時系列データを切り出し、モデルに入力可能なデータ形式に変換して、ラベルを付与する。
図7では、時間窓w=20としているが、特に限定されない。
【0081】
次に、時間窓で切り出したデータの5次元目に1時刻でも異常値が含まれていれば、異常ラベルを付与する。ここで、
図8(1)のように、1時刻も異常値が含まれていない場合は、正常ラベルを付与する。
図8(2)のように、数時刻分に異常値が含まれる場合は、異常ラベルを付与する。
図8(3)のように、全時刻が異常値の場合は、当たり前に異常であるので、異常ラベルを付与する。
【0082】
なお、
図9では、評価データ1079件のうち、異常データが350件含まれ、作成した人工データには、約32%の異常データを含むことがわかる。
【0083】
(5-1-3.異常検知精度の評価)
図10~
図12を用いて、異常検知精度の評価について説明する。
図10は、第1の実施形態に係る異常検知精度の評価処理の流れの一例を示す図である。
図11および
図12は、第1の実施形態に係る異常検知精度の評価処理の一例を示す図である。
【0084】
図10を用いて、評価データの異常ラベル・正常ラベルと異常判定結果とを比較することで異常検知精度を算出して評価を行う流れについて説明する。学習過程においては、まず、正常な学習データを入力し、学習モデルの学習を行う(
図10(1)参照)。次に、学習モデルにより、異常スコアが計算され、正常な範囲内の異常スコアが出力される(
図10(2)参照)。そして、出力された異常スコアを用いて、閾値が決定される。なお、閾値の決定については、
図11を用いて後述する。
【0085】
一方、評価過程においては、まず、評価データを学習モデルに入力し、予測を行う(
図10(4)参照)。次に、学習モデルにより、異常スコアが計算され、異常スコアが出力される(
図10(5)参照)。そして、出力された異常スコアと決定された閾値とが比較され(
図10(6)参照)、異常または正常の判定が行われることによって判定結果が出力される(
図10(7)参照)。最後に、評価データのラベルと判定結果とから、正誤判定が行われることによって、異常検知精度の評価が行われる(
図10(8)参照)。なお、評価指標には適合率、再現率、F1スコア、ROC-AUC(Receiver Operating Characteristic-Area Under the Curve)を利用することとし、数値の算出において、5試行の平均値を算出するものとする。
【0086】
また、
図11および
図12を用いて、閾値の決定、閾値による異常の判定について説明する。まず、異常判定に用いる閾値は、学習データ全件に対して異常スコアを計算し、その95%tile値を閾値として設定する(
図11参照)。一方、決定された閾値を超えた場合には、評価データを異常と判定する(
図12参照)。
【0087】
(5-1-4.寄与度の評価)
図13~
図16を用いて、寄与度の評価について説明する。
図13は、第1の実施形態に係る寄与度の評価処理の流れの一例を示す図である。
図14~
図16は、第1の実施形態に係る寄与度の評価処理の一例を示す図である。
【0088】
図13を用いて、寄与度の評価の流れについて説明する。まず、評価データを学習モデルに入力し、予測を行う(
図13(1)参照)。次に、学習モデルにより、寄与度が計算され、特徴量方向および時間方向の寄与度が出力される(
図13(2)参照)。そして、出力された寄与度の最大値が算出され、ヒストグラムが描画される(
図13(3)参照)。最後に、評価データのラベルと描画されたヒストグラムとから、寄与度の評価が行われる(
図13(4)参照)。
【0089】
図14を用いて、特徴量方向の寄与度を算出した上で、その最大値を算出する処理について説明する。
図14では、特徴量方向の寄与度として算出した数値が表形式で示されている。
図14において、最大値である「7.6」が、特徴量方向の寄与度のヒストグラムの描画に際して出力される。
【0090】
図15を用いて、時間方向の寄与度を算出した上で、その最大値を算出する処理について説明する。
図15では、時間方向の寄与度として算出した数値が表形式で示されている。
図15において、最大値である「6.8」が、時間方向の寄与度のヒストグラムの描画に際して出力される。
【0091】
図16を用いて、特徴量方向および時間方向の正常ラベル・異常ラベルごとの最大値のヒストグラムを作成し、形状を比較する処理について説明する。なお、以下では、時間方向の寄与度について説明するが、特徴量方向の寄与度についても同様に処理される。
【0092】
まず、異常ラベルを付与された複数の時間方向の寄与度から、異常ラベルの最大値ヒストグラムが描画される(
図16(1)(2)参照)。ここで、描画される異常ラベルの最大値ヒストグラムは、寄与度が裾の重い分布となることが望ましい。すなわち、異常の場合には、異常原因に対しては高い寄与度が得られるべきである。
【0093】
一方、正常ラベルを付与された複数の時間方向の寄与度から、正常ラベルの最大値ヒストグラムが描画される(
図16(3)(4)参照)。ここで、描画される正常ラベルの最大値ヒストグラムは、寄与度が0になることが望ましい。すなわち、正常の場合には、異常原因ではないので寄与度は低くなるべきである。
【0094】
そして、異常ラベルの最大値ヒストグラムと正常ラベルの最大値ヒストグラムとを比較して、適切に寄与度が反映されているかを評価する(
図16(2)(3)参照)。
【0095】
(5-2.正則化なし手法による評価処理)
図17~
図20を用いて、本実施形態に係る学習モデルの正則化なし手法による評価処理を説明する。
図17~
図19は、第1の実施形態に係る学習モデルのアーキテクチャの有効性の評価結果の一例を示す図である。
図20は、第1の実施形態に係る学習モデルのアーキテクチャの有効性の評価結果を説明する図である。以下では、異常検知精度の評価結果、寄与度の評価結果の順に説明する。
【0096】
(5-2-1.異常検知精度の評価結果)
まず、学習モデルのアーキテクチャの異常検知精度の有効性の評価結果について説明する。以下では、正則化なし手法による学習モデルのアーキテクチャの概要を説明した上で、有効性の評価結果について説明する。
【0097】
まず、正則化なし手法による学習モデルのアーキテクチャは、損失関数Lossとして、平均二乗誤差を利用したLad(数2参照)のみを用いる。すなわち、Loss=Ladにしたがって、異常検知処理を行う。また、異常検知精度の評価については、上述の(5-1-3.異常検知精度の評価)に基づいて行われる。このとき、有効性の基準として、AUCが0.8以上であれば有効と判断される。
【0098】
図17に示すように、上記の正則化なし手法による学習モデルのアーキテクチャでは、AUCが0.885(5試行平均)となり、異常検知精度は有効であり、異常検知に十分活用できると判断される。
【0099】
(5-2-2.寄与度の評価結果)
次に、学習モデルのアーキテクチャの寄与度の有効性の評価結果について説明する。以下では、時間方向の寄与度に基づき、異常ラベルの最大値ヒストグラムの評価、正常ラベルの最大値ヒストグラムの評価の順に説明する。
【0100】
まず、
図18を用いて、異常ラベルの最大値ヒストグラムの評価について説明する。まず、異常ラベルの最大値ヒストグラムにおいて、寄与度の最大値が0の場合には、異常データでもうまく異常原因が特定できないこともあることを示す(
図18(1)参照)。一方、寄与度の最大値が0より大きい場合には、異常と思われる時刻や特徴量をうまく捉えることができていることを示す(
図18(2)参照)。したがって、
図18においては、異常に対して高い寄与度が出力されているとは判断できず、異常原因の分離が効果的にできているとはいえない。
【0101】
次に、
図19を用いて、正常ラベルの最大値ヒストグラムの評価について説明する。まず、正常ラベルの最大値ヒストグラムにおいて、寄与度の最大値が0の場合には、正常データは異常原因が存在しないので、寄与度の最大値はすべて0になることが好ましい(
図19(1)参照)。すなわち、
図20に示すように、寄与度の最大値はすべて0になるヒストグラムが理想形ということができる。一方、寄与度の最大値が0より大きい場合には、正常データなのに異常原因と思われる箇所が存在すると判定することを示す(
図19(2)参照)。したがって、
図19においては、正常に対して低い寄与度が出力されているとは判断できず、異常原因の分離が効果的にできているとはいえない。
【0102】
(5-3.正則化あり手法による評価処理)
図21~
図25を用いて、本実施形態に係る学習モデルの正則化あり手法による評価処理を説明する。
図21~
図25は、第1の実施形態に係る学習モデルのアーキテクチャの有効性の評価結果の一例を示す図である。以下では、異常検知精度の評価結果、寄与度の評価結果の順に説明する。
【0103】
(5-3-1.異常検知精度の評価結果)
まず、学習モデルのアーキテクチャの異常検知精度の有効性の評価結果について説明する。以下では、正則化あり手法による学習モデルのアーキテクチャの概要を説明した上で、有効性の評価結果について説明する。
【0104】
まず、正則化あり手法による学習モデルのアーキテクチャは、損失関数Lossとして、平均二乗誤差を利用したLad(数2参照)に加えて、Lfeature(数3参照)およびLtime(数4参照)を用いる。すなわち、Loss=Lad+Lfeature+Ltime(数1参照)にしたがって、異常検知処理を行う。また、異常検知精度の評価については、上述の(5-1-3.異常検知精度の評価)に基づいて行われる。このとき、正則化は最適化を難しくする操作であるため、異常検知精度が劣化しないことが確認されればよい。
【0105】
図21に示すように、上記の正則化あり手法による学習モデルのアーキテクチャでは、AUCが0.948(5試行平均)となり、正則化なし手法に基づくAUCである0.885を上回り、正則化による悪影響は存在しないと評価される。
【0106】
(5-3-2.寄与度の評価結果)
次に、学習モデルのアーキテクチャの寄与度の有効性の評価結果について説明する。以下では、時間方向の寄与度に基づき、正常ラベルの最大値ヒストグラムの評価、異常ラベルの最大値ヒストグラムの評価の順に説明する。
【0107】
まず、
図22および
図23を用いて、正常ラベルの最大値ヒストグラムの評価について説明する。
図22は、正則化なし手法で描画された正常ラベルの最大値ヒストグラムであり、寄与度の最大値が0以外の値をとる。一方、
図23は、正則化あり手法で描画された正常ラベルの最大値ヒストグラムであり、寄与度の最大値がほぼ0になっている。したがって、正則化によって、正常ラベルの最大値ヒストグラムでは、寄与度の最大値が0である割合が増加しており、混乱を招くような異常原因の出力を回避できることがわかる。
【0108】
次に、
図24および
図25を用いて、異常ラベルの最大値ヒストグラムの評価について説明する。
図24は、正則化なし手法で描画された異常ラベルの最大値ヒストグラムであり、寄与度の最大値は0~10の範囲に収まっている。一方、
図25は、正則化あり手法で描画された異常ラベルの最大値ヒストグラムであり、より異常に過剰に反応するようになったため、寄与度の最大値は0~100の範囲と大きな値をとるようになっている。したがって、正則化によって、異常ラベルの最大値ヒストグラムでは、寄与度の最大値が正則化なし手法と比較して大きくなっているため、異常原因を強調する、すなわち異常原因を特定しやすくなっていることがわかる。
【0109】
(5-4.学習モデルの有効性)
以上より、本実施形態に係る学習モデルのアーキテクチャは、異常検知に利用することができる性能をもつことが判断できる。また、本実施形態に係る学習モデルの学習に用いる損失関数に正則化を行うことにより、異常原因特定が容易になる。
【0110】
[処理の流れ]
図26を用いて、本実施形態に係る処理の流れを詳細に説明する。
図26は、第1の実施形態に係る処理全体の流れの一例を示すフローチャートである。以下では、異常検知処理全体の流れを示すとともに、各処理の概要を説明する。
【0111】
(処理全体の流れ)
まず、異常検知装置10の取得部15aは、時系列データ取得処理を実行する(ステップS101)。次に、異常検知装置10の第1抽出部15bは、特徴量方向の特徴抽出処理(第1抽出処理)を実行する(ステップS102)。また、異常検知装置10の第2抽出部15cは、時間方向の特徴抽出処理(第2抽出処理)を実行する(ステップS103)。続いて、異常検知装置10の算出部15dは、寄与度算出処理を実行する(ステップS104)。最後に、異常検知装置10の特定部15eは、異常原因特定処理を実行し(ステップS105)、処理を終了する。なお、上記のステップS101~S105は、異なる順序で実行することもできる。また、上記のステップS101~S105のうち、省略される処理があってもよい。
【0112】
(各処理の流れ)
第1に、取得部15aによる時系列データ取得処理について説明する。この処理では、取得部15aは、異常を検知する検知対象の時系列データを取得する。
【0113】
第2に、第1抽出部15bによる特徴量方向の特徴抽出処理について説明する。この処理では、まず、第1抽出部15bは、特徴量ごとに2次元畳み込みを複数回行い、特徴量方向の特徴抽出における最後の2次元畳み込みを行った後に行列を転置することで、特徴量マップ1を出力する。
【0114】
第3に、第2抽出部15cによる時間方向の特徴抽出処理について説明する。この処理では、第2抽出部15cは、ステップS102の処理で出力された特徴量マップ1について、すべての特徴量を利用するように1次元畳み込みを行うことで、入力データ全体の時間方向の特徴抽出を行い、特徴量マップ2を出力する。
【0115】
第4に、算出部15dによる寄与度算出処理について説明する。この処理では、算出部15dは、学習モデルの出力値を用いて選択した畳み込み層に対して、学習モデルから出力された値を逆伝播することで勾配値を出力した上で、重みを出力する。そして、算出部15dは、ステップS102およびS103の処理で出力された特徴量マップと得られた重みをかけ合わせた行列を、活性化関数を用いて変換することによって寄与度を算出する。このとき、算出部15dは、特徴量方向の寄与度、時間方向の寄与度をそれぞれ出力する。
【0116】
第5に、特定部15eによる異常原因特定処理について説明する。この処理では、特定部15eは、ステップS104の処理で出力された特徴量方向の寄与度、時間方向の寄与度をもとに、異常原因と思われる時刻と特徴量を特定する。
【0117】
[第1の実施形態の効果]
第1に、上述した本実施形態に係る異常検知処理では、所定の時点における異常が検知される検知対象の時系列データを取得し、時系列データから、所定の時点以前の時間の区間における特徴量方向の特徴を抽出し、特徴量方向の特徴から時間方向の特徴を抽出し、特徴量方向の特徴および時間方向の特徴に基づいて、所定の時点における異常スコアを算出するとともに、異常スコアに対する所定の時点以前における特徴量方向の寄与度および時間方向の寄与度を算出する。このため、本処理では、教師なし異常検知において、時系列性を考慮した原因特定を容易にする。
【0118】
第2に、上述した本実施形態に係る異常検知処理では、教師なし学習モデルによって、所定の時点における異常スコアを算出するとともに、特徴量方向の寄与度および時間方向の寄与度を算出し、異常スコアに基づいて異常を検知した場合には、特徴量方向の寄与度または時間方向の寄与度を用いて異常の原因を特定する。このため、本処理では、教師なし異常検知において、時系列性を考慮した原因特定を容易にし、かつ原因となる特徴または時間の影響を特定できる。
【0119】
第3に、上述した本実施形態に係る異常検知処理では、時系列データの各特徴量に2次元畳み込みを行い、特徴量方向の特徴を抽出し、特徴量方向の特徴の各特徴量に1次元畳み込みを行い、時間方向の特徴を抽出する。このため、本処理では、教師なし異常検知において、時系列性を考慮した原因特定を容易に、かつ効率的に行うことができる。
【0120】
第4に、上述した本実施形態に係る異常検知処理では、異常スコアに関する予測誤差、特徴量方向の寄与度、および時間方向の寄与度のうち少なくとも1つに対するペナルティから構成される損失関数を用いて学習を行った教師なし学習モデルによって、異常スコアを算出するとともに、特徴量方向の寄与度および時間方向の寄与度を算出する。このため、本処理では、教師なし異常検知において、時系列性を考慮した原因特定を容易に、かつ精度よく行うことができる。
【0121】
〔システム構成等〕
上記実施形態に係る図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示のごとく構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【0122】
また、上記実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【0123】
〔プログラム〕
また、上記実施形態において説明した異常検知装置10が実行する処理をコンピュータが実行可能な言語で記述したプログラムを作成することもできる。この場合、コンピュータがプログラムを実行することにより、上記実施形態と同様の効果を得ることができる。さらに、かかるプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータに読み込ませて実行することにより上記実施形態と同様の処理を実現してもよい。
【0124】
図27は、プログラムを実行するコンピュータを示す図である。
図27に例示するように、コンピュータ1000は、例えば、メモリ1010と、CPU1020と、ハードディスクドライブインタフェース1030と、ディスクドライブインタフェース1040と、シリアルポートインタフェース1050と、ビデオアダプタ1060と、ネットワークインタフェース1070とを有し、これらの各部はバス1080によって接続される。
【0125】
メモリ1010は、
図27に例示するように、ROM(Read Only Memory)1011及びRAM1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、
図27に例示するように、ハードディスクドライブ1090に接続される。ディスクドライブインタフェース1040は、
図27に例示するように、ディスクドライブ1100に接続される。例えば、磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ1100に挿入される。シリアルポートインタフェース1050は、
図27に例示するように、例えば、マウス1110、キーボード1120に接続される。ビデオアダプタ1060は、
図27に例示するように、例えばディスプレイ1130に接続される。
【0126】
ここで、
図27に例示するように、ハードディスクドライブ1090は、例えば、OS1091、アプリケーションプログラム1092、プログラムモジュール1093、プログラムデータ1094を記憶する。すなわち、上記のプログラムは、コンピュータ1000によって実行される指令が記述されたプログラムモジュールとして、例えば、ハードディスクドライブ1090に記憶される。
【0127】
また、上記実施形態で説明した各種データは、プログラムデータとして、例えば、メモリ1010やハードディスクドライブ1090に記憶される。そして、CPU1020が、メモリ1010やハードディスクドライブ1090に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出し、各種処理手順を実行する。
【0128】
なお、プログラムに係るプログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1090に記憶される場合に限られず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ等を介してCPU1020によって読み出されてもよい。あるいは、プログラムに係るプログラムモジュール1093やプログラムデータ1094は、ネットワーク(LAN(Local Area Network)、WAN(Wide Area Network)等)を介して接続された他のコンピュータに記憶され、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。
【0129】
上記の実施形態やその変形は、本願が開示する技術に含まれると同様に、請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【0130】
10 異常検知装置
11 入力部
12 出力部
13 通信部
14 記憶部
15 制御部
15a 取得部
15b 第1抽出部
15c 第2抽出部
15d 算出部
15e 特定部
20 時系列データ