IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ KDDI株式会社の特許一覧 ▶ KDDIデジタルセキュリティ株式会社の特許一覧

特許7324131異常値検出装置、異常値検出方法及び異常値検出プログラム
<>
  • 特許-異常値検出装置、異常値検出方法及び異常値検出プログラム 図1
  • 特許-異常値検出装置、異常値検出方法及び異常値検出プログラム 図2
  • 特許-異常値検出装置、異常値検出方法及び異常値検出プログラム 図3
  • 特許-異常値検出装置、異常値検出方法及び異常値検出プログラム 図4
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-08-01
(45)【発行日】2023-08-09
(54)【発明の名称】異常値検出装置、異常値検出方法及び異常値検出プログラム
(51)【国際特許分類】
   G05B 23/02 20060101AFI20230802BHJP
   G06F 11/34 20060101ALI20230802BHJP
   G06N 20/00 20190101ALI20230802BHJP
【FI】
G05B23/02 302V
G06F11/34
G06N20/00
【請求項の数】 8
(21)【出願番号】P 2019217909
(22)【出願日】2019-12-02
(65)【公開番号】P2021089463
(43)【公開日】2021-06-10
【審査請求日】2022-02-18
(73)【特許権者】
【識別番号】000208891
【氏名又は名称】KDDI株式会社
(73)【特許権者】
【識別番号】519429510
【氏名又は名称】KDDIデジタルセキュリティ株式会社
(74)【代理人】
【識別番号】100106002
【弁理士】
【氏名又は名称】正林 真之
(74)【代理人】
【識別番号】100120891
【弁理士】
【氏名又は名称】林 一好
(72)【発明者】
【氏名】澤谷 雪子
(72)【発明者】
【氏名】窪田 歩
(72)【発明者】
【氏名】中島 昭人
(72)【発明者】
【氏名】浦川 順平
【審査官】武田 広太郎
(56)【参考文献】
【文献】国際公開第2018/230645(WO,A1)
【文献】国際公開第2014/042147(WO,A1)
【文献】特開2019-036112(JP,A)
【文献】国際公開第2019/224694(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G05B 23/02
G06F 11/34
G06N 20/00
(57)【特許請求の範囲】
【請求項1】
学習期間の時系列データに対して所定の分析モデルを適用し、未知の期間の値を推定するための時系列モデルを作成するモデル作成部と、
前記時系列モデルによる推定値に対して実測値の乖離度が閾値を超え、かつ、前記学習期間において当該実測値の乖離度と所定の割合以内に近い、若しくはそれ以上の乖離度の値が出現した回数が所定以下の場合に、当該実測値を異常値として検出する異常検出部と、を備え、
前記異常検出部は、前記時系列モデルによる推定値を含む所定確率以上の信頼区間から前記実測値が外れた場合に、当該実測値を異常値として検出する異常値検出装置。
【請求項2】
学習期間の時系列データに対して所定の分析モデルを適用し、未知の期間の値を推定するための時系列モデルを作成するモデル作成部と、
前記時系列モデルによる推定値に対して実測値の乖離度が閾値を超え、かつ、当該実測値の乖離度と所定の割合以内に近い、若しくはそれ以上の乖離度の値が過去の一定期間に出現していない場合に、当該実測値を異常値として検出する異常検出部と、を備え、
前記異常検出部は、前記時系列モデルによる推定値を含む所定確率以上の信頼区間から前記実測値が外れた場合に、当該実測値を異常値として検出する異常値検出装置。
【請求項3】
前記モデル作成部は、前記学習期間における異常値を除去した時系列データに対して前記分析モデルを適用する請求項1又は請求項に記載の異常値検出装置。
【請求項4】
過去に異常値が発生した時刻以前の所定期間における時系列データを学習元データとし、当該異常値の悪性度を機械学習した分類モデルを作成する学習部と、
前記分類モデルに基づいて、前記異常検出部により検出された異常値の悪性度を判定する判定部と、を備える請求項1から請求項のいずれかに記載の異常値検出装置。
【請求項5】
前記学習部は、前記学習元データの統計値を特徴ベクトルとして前記分類モデルを作成する請求項に記載の異常値検出装置。
【請求項6】
学習期間の時系列データに対して所定の分析モデルを適用し、未知の期間の値を推定するための時系列モデルを作成するモデル作成ステップと、
前記時系列モデルによる推定値に対して実測値の乖離度が閾値を超え、かつ、前記学習期間において当該実測値の乖離度と所定の割合以内に近い、若しくはそれ以上の乖離度の値が出現した回数が所定以下の場合に、当該実測値を異常値として検出する異常検出ステップと、をコンピュータが実行し、
前記異常検出ステップにおいて、前記時系列モデルによる推定値を含む所定確率以上の信頼区間から前記実測値が外れた場合に、当該実測値を異常値として検出する異常値検出方法。
【請求項7】
学習期間の時系列データに対して所定の分析モデルを適用し、未知の期間の値を推定するための時系列モデルを作成するモデル作成ステップと、
前記時系列モデルによる推定値に対して実測値の乖離度が閾値を超え、かつ、当該実測値の乖離度と所定の割合以内に近い、若しくはそれ以上の乖離度の値が過去の一定期間に出現していない場合に、当該実測値を異常値として検出する異常検出ステップと、をコンピュータが実行し、
前記異常検出ステップにおいて、前記時系列モデルによる推定値を含む所定確率以上の信頼区間から前記実測値が外れた場合に、当該実測値を異常値として検出する異常値検出方法。
【請求項8】
請求項1から請求項のいずれかに記載の異常値検出装置としてコンピュータを機能させるための異常値検出プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、時系列データの異常値を検出するための装置、方法及びプログラムに関する。
【背景技術】
【0002】
従来、データに見られるパターンの異常な変化を検出する異常検出の手法が提案されている。例えば、非特許文献1において、異常検出の手法は大きく分けて、外れ値検出、変化点検出、及び異常行動検出の3つがあることが紹介されている。これらのうち、時系列データに適用できる手法は、外れ値検出及び変化点検出である。
【0003】
外れ値検出は、数値の出現頻度に基づき、出現率の低い値を異常値として検出する手法であり、例えば、SmartShifterと呼ばれる手法が提案されている。
変化点検出は、AR(自己回帰)、MA(移動平均)、ARMA(自己回帰移動平均)、ARIMA(自己回帰和分移動平均)、SARIMA(季節ARIMA)などの時系列分析モデルを用いて、変化点の候補となる点の前後の時系列データに別々のモデルをあてはめた場合と、時系列データの全体に単一のモデルをあてはめた場合とを比べ、前者のあてはめ誤差が有意に少ない場合、この候補点を変化点とみなす手法である。また、時系列データを2段階にわたって学習し、各時点の変化点スコアをオンラインで算出するChangeFinderと呼ばれる手法も提案されている。
【先行技術文献】
【非特許文献】
【0004】
【文献】山西 健司、竹内 純一、丸山 裕子、「最新!データマイニング手法:5.統計的異常検出3手法」、一般社団法人情報処理学会、2005年1月、情報処理、46巻1号、pp.34-40
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、既存の外れ値検出では一般に、周期変動があるようなデータでは正しく検出できないことが多い。正常時にランダムにスパイクが発生する時系列データでスパイクを検知したくない場合には、SmartShifterなどの既存の手法において検出閾値を高く設定する必要があり、結果として見逃しが生じる。
また、変化点が曖昧で徐々に異常値を示し始める時系列データの場合には、ChangeFinderなどの既存の手法では、異常状態の開始のタイミングの検知が難しい。
このように、周期性、和分成分などの特性が存在するが、平常時にランダムにスパイクが発生する時系列データ、又は変化点が曖昧で徐々に異常値を示し始める時系列データなどに対して、従来の方式では誤検知又は見逃しが発生していた。
【0006】
本発明は、時系列データの異常値を精度良く検出できる異常値検出装置、異常値検出方法及び異常値検出プログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明に係る異常値検出装置は、学習期間の時系列データに対して所定の分析モデルを適用し、未知の期間の値を推定するための時系列モデルを作成するモデル作成部と、前記時系列モデルによる推定値に対して実測値の乖離度が閾値を超えた場合に、当該実測値を異常値として検出する異常検出部と、を備え、前記異常検出部は、前記時系列モデルによる推定値を含む所定確率以上の信頼区間から前記実測値が外れた場合に、当該実測値を異常値として検出する。
【0008】
前記異常検出部は、前記実測値の乖離度が閾値を超え、かつ、前記学習期間において当該実測値の乖離度と所定の割合以内に近い、若しくはそれ以上の乖離度の値が出現した回数が所定以下の場合に、当該実測値を異常値として検出してもよい。
【0009】
前記異常検出部は、前記実測値の乖離度が閾値を超え、かつ、当該実測値の乖離度と所定の割合以内に近い、若しくはそれ以上の乖離度の値が過去の一定期間に出現していない場合に、当該実測値を異常値として検出してもよい。
【0010】
前記モデル作成部は、前記学習期間における異常値を除去した時系列データに対して前記分析モデルを適用してもよい。
【0011】
前記異常値検出装置は、過去に異常値が発生した時刻以前の所定期間における時系列データを学習元データとし、当該異常値の悪性度を機械学習した分類モデルを作成する学習部と、前記分類モデルに基づいて、前記異常検出部により検出された異常値の悪性度を判定する判定部と、を備えてもよい。
【0012】
前記学習部は、前記学習元データの統計値を特徴ベクトルとして前記分類モデルを作成してもよい。
【0013】
本発明に係る異常値検出方法は、学習期間の時系列データに対して所定の分析モデルを適用し、未知の期間の値を推定するための時系列モデルを作成するモデル作成ステップと、前記時系列モデルによる推定値に対して実測値の乖離度が閾値を超えた場合に、当該実測値を異常値として検出する異常検出ステップと、をコンピュータが実行し、前記異常検出ステップにおいて、前記時系列モデルによる推定値を含む所定確率以上の信頼区間から前記実測値が外れた場合に、当該実測値を異常値として検出する。
【0014】
本発明に係る異常値検出プログラムは、前記異常値検出装置としてコンピュータを機能させるためのものである。
【発明の効果】
【0015】
本発明によれば、時系列データの異常値を精度良く検出できる。
【図面の簡単な説明】
【0016】
図1】実施形態における異常値検出装置の機能構成を示す図である。
図2】実施形態における異常値の悪性度を学習するための学習用データを例示する図である。
図3】実施形態における異常値の悪性度を学習するための特徴ベクトルを例示する図である。
図4】実施形態における異常値検出装置による異常値検出及び悪性度判定の処理手順を示すフローチャートである。
【発明を実施するための形態】
【0017】
以下、本発明の実施形態の一例について説明する。
本実施形態における異常値検出方法では、異常値検出装置1が時系列データの異常値を、時系列モデルからの乖離度に基づいて検出し、さらに、異常値の悪性度を機械学習により判定する。
【0018】
図1は、本実施形態における異常値検出装置1の機能構成を示す図である。
異常値検出装置1は、サーバ又はパーソナルコンピュータなどの情報処理装置(コンピュータ)であり、制御部10及び記憶部20の他、各種データの入出力デバイス及び通信デバイスなどを備える。
【0019】
制御部10は、異常値検出装置1の全体を制御する部分であり、記憶部20に記憶された各種プログラムを適宜読み出して実行することにより、本実施形態における各機能を実現する。制御部10は、CPUであってよい。
【0020】
記憶部20は、ハードウェア群を異常値検出装置1として機能させるための各種プログラム、及び各種データなどの記憶領域であり、ROM、RAM、フラッシュメモリ又はハードディスク(HDD)などであってよい。具体的には、記憶部20は、本実施形態の各機能を制御部10に実行させるためのプログラム(異常値検出プログラム)、各種パラメータ、分類モデル及びこのプログラムが処理対象とする時系列データなどを記憶する。
【0021】
制御部10は、モデル作成部11と、異常検出部12と、学習部13と、判定部14とを備える。
制御部10は、これらの機能部により、時系列データに発生した異常値を検出すると共に、この異常値の悪性度を判定する。
【0022】
モデル作成部11は、過去の観測済みである学習期間の時系列データに対して、所定の分析モデルを適用し、未知の期間の値を推定するための時系列モデルを作成する。
対象とするデータは、例えばトラフィックデータ、又はIDS(Intrusion Detection System)のアラート数などの平常時の時系列データである。モデル作成部11は、この時系列データの平常時の傾向を、SARIMAモデル(AR、MA、ARMA、ARIMAを含む)により分析し、時系列モデルを作成する。
【0023】
具体的には、モデル作成部11は、学習用の時系列データを用いてSARIMAモデルの最適パラメータを自動計算する。SARIMAモデルのパラメータにはp,d,q,SP,SD,SQ,sがあるが、これらのパラメータ値の候補として、例えば、p=[0,1,6,12,24]、d=[0,1]、q=[0,1,2]、SP=[0]、SD=[0]、SQ=[0]、s=[0]のように、0を含むいくつかの数値が設定される。
【0024】
モデルを最適化するためのパラメータ値の組み合わせの選択に当たっては、モデル作成部11は、各パラメータの総当たりの組み合わせに対し、学習期間T0~T1の時系列データを用いて推定を行う。そして、例えば、推定結果の赤池情報量基準(Akaike Information Criterion:AIC)のもっとも低いパラメータの組み合わせが探索される。
【0025】
このとき、モデル作成部11は、学習期間におけるスパイクなどの異常値をノイズとして除去した時系列データに対して分析モデルを適用してもよい。
【0026】
また、モデル作成部11は、1日毎など、所定の周期で時系列モデルを更新してもよい。このとき、モデル作成部11は、現在までのひと月分など、最新の一定期間の時系列データを用いて時系列モデルを作成する。
【0027】
異常検出部12は、モデル作成部11により作成された時系列モデルに基づいて、学習データにない時刻T1以降の未知の期間のデータを推定する。そして、異常検出部12は、この推定値と新たに取得された実測値とを比較し、推定値に対して実測値の上方あるいは下方への乖離度が閾値を超えた場合に、この実測値を異常値として検出する。
【0028】
具体的には、異常検出部12は、例えば、時系列モデルによる推定値を含む所定確率以上の信頼区間(例えば、95%信頼区間)から実測値が外れた場合に、この実測値を異常値として検出する。すなわち、異常検出部12は、実測値が確率的に低い出現値かどうかの判定をSARIMA推定時に行う。
【0029】
さらに、異常検出部12は、実測値の乖離度が閾値を超え、かつ、学習期間T0~T1において、この実測値の乖離度と所定の割合以内に近い、若しくはそれ以上の乖離度の値が出現した回数が所定以下の場合に、この実測値を異常値として検出してもよい。すなわち、異常検出部12は、平常時にランダムにスパイクが高頻度で発生する時系列データの場合に、同程度以下のスパイクを異常値と誤検出することなく、本来検出したい出現頻度の低い外れ値、又は平常よりも高いピークなどを異常値として検出する。
【0030】
また、異常検出部12は、実測値の乖離度が閾値を超え、かつ、この実測値の乖離度と所定の割合以内に近い、若しくはそれ以上の乖離度の値が過去の一定期間に出現していない場合に、この実測値を異常値として検出してもよい。すなわち、異常検出部12は、実測値の乖離度が閾値を超えた際に、一定時間(例えば、1日)さかのぼった期間内に同程度以上に乖離度の高い値が1回でも出現しているか否かを検出する。そして、異常検出部12は、この期間内に出現するような頻度で発生する値を異常値とすることなく、さらに頻度の低い外れ値、又は平常よりも高いピークなどを異常値として検出する。
【0031】
学習部13は、過去に異常値が発生した時刻以前の所定期間における時系列データを学習元データとし、この異常値の悪性度を機械学習した分類モデルを作成する。
具体的には、学習部13は、学習元データの平均、分散、最大値及び最小値などの統計値の組み合わせを特徴ベクトルとして分類モデルを作成する。
【0032】
図2は、本実施形態における異常値の悪性度を学習するための学習用データを例示する図である。
学習元データは、一つ又は複数の時系列データであり、この中に悪性度が実際に高い異常値が複数含まれていることとする。
【0033】
異常値が観測された際に、詳細な解析又はユーザの判断により、この異常値の悪性度が低いと判定される場合、異常値が観測された時刻よりも特定長Dの時間さかのぼった期間(7月1日2時から7月15日1時まで)の時系列データを良性異常値の学習元データとする。
また、悪性度が高いと判定される異常値が観測された際には、異常値が観測された時刻よりも特定長Dの時間さかのぼった期間(7月1日3時から7月15日2時まで)の時系列データを悪性異常値の学習元データとする。
なお、この例では、異常値そのものを学習元データに含めているが、これには限られず、いずれかに統一されていれば含めても含めなくてもよい。また、特定長Dは、時系列データの特徴に応じて、適宜設定されてよい。
【0034】
図3は、本実施形態における異常値の悪性度を学習するための特徴ベクトルを例示する図である。
悪性異常値及び良性異常値それぞれの学習用データからは、統計値(平均、分散、最大値、最小値など)が算出され、学習部13は、これらを学習用データそれぞれの特徴ベクトルとし、悪性度をフラグとして、ニューラルネットワーク、サポートベクタマシン(SVM)、決定木などの機械学習を用いて分類モデルを作成する。
【0035】
判定部14は、異常検出部12により異常値が検出された場合、この異常値が検出された時刻から特定長Dさかのぼった期間の時系列データから、学習部13と同様の統計値を算出して特徴ベクトルとし、分類モデルに基づいて、検出された異常値の悪性度を判定する。
【0036】
図4は、本実施形態における異常値検出装置1による異常値検出及び悪性度判定の処理手順を示すフローチャートである。
この処理は、異常値検出装置1が新たな時系列データ(実測値)を取得する度に繰り返し実行される。
なお、ここでは、学習用データに基づいて、時系列モデル及び分類モデルが作成済みであるものとする。
【0037】
ステップS1において、異常検出部12は、時系列データの値として、新たな実測値を取得する。
ステップS2において、異常検出部12は、時系列モデルによる推定値と実測値との乖離度を算出する。
ステップS3において、異常検出部12は、乖離度が閾値を超えたか否かを判定する。この判定がYESの場合、処理はステップS4に移り、判定がNOの場合、処理は終了する。
【0038】
ステップS4において、異常検出部12は、学習期間における、乖離度が同程度以上の異常値の出現回数をカウントする。
ステップS5において、異常検出部12は、出現回数が閾値以下か否かを判定する。この判定がYESの場合、異常検出部12は、実測値を異常値として検出し、処理はステップS6に移る。一方、判定がNOの場合、処理は終了する。
【0039】
ステップS6において、判定部14は、実測値を取得した時刻以前の期間Dの時系列データを取得する。
ステップS7において、判定部14は、時系列データから特徴ベクトルを算出する。
ステップS8において、判定部14は、特徴ベクトルを分類モデルに入力し、異常値の悪性度を判定する。
【0040】
本実施形態によれば、異常値検出装置1は、学習期間の時系列データに対してSARIMAなどの分析モデルを適用し、未知の期間の値を推定するための時系列モデルを作成する。そして、異常値検出装置1は、時系列モデルによる推定値に対して実測値の乖離度が閾値を超えた場合、例えば、時系列モデルによる推定値を含む所定確率以上の信頼区間から実測値が外れた場合に、この実測値を異常値として検出する。
したがって、異常値検出装置1は、時系列モデルに基づく予測値との大幅な乖離が発生したことに応じて異常値を検出するため、徐々に大きくなるような、変化点が判別しにくいような時系列データの異常値を精度良く検出できる。
【0041】
異常値検出装置1は、実測値の乖離度が閾値を超え、かつ、学習期間において、この実測値の乖離度と所定の割合以内に近い、若しくはそれ以上の乖離度の値が出現した回数が所定以下の場合に、実測値を異常値として検出する。
したがって、異常値検出装置1は、平常時にも発生している問題ないスパイクなどの値を異常値とみなさず、他の深刻な異常値を優先的に検出できる。
【0042】
また、異常値検出装置1は、実測値の乖離度が閾値を超え、かつ、この実測値の乖離度と所定の割合以内に近い、若しくはそれ以上の乖離度の値が過去の一定期間に出現していない場合に、この実測値を異常値として検出してもよい。
これにより、異常値検出装置1は、例えば1日1回、同程度の外れ値が観測されるような場合に、1日さかのぼった期間内で同程度以上の値の有無を検出することで、このような値を異常値とすることなく、さらに頻度の低い外れ値、又は平常よりも高いピークなどを深刻な異常値として優先的に検出できる。
【0043】
異常値検出装置1は、学習期間における異常値を除去した時系列データに対して分析モデルを適用することにより、時系列モデルによる推定値にノイズの影響が生じないようにし、異常値の検出精度を向上できる。
【0044】
このように、異常値検出装置1は、将来の予測として利用されてきた分析モデルによって、従来は平均化されていた時系列データの異常値を精度良く検出できる。
この結果、異常値検出装置1は、例えばIDSのログなどにおいて、平常時の傾向からの乖離を検出しつつ、頻度の高い通常のスパイクなどを除外して、頻度の低い異常を適切に検知できる。
【0045】
また、異常値検出装置1は、過去に異常値が発生した時刻以前の所定期間における時系列データを学習元データとし、異常値の悪性度を機械学習した分類モデルを作成し、この分類モデルに基づいて、異常値の悪性度を判定する。
したがって、異常値検出装置1は、過去の異常に関する知見、すなわち悪性度の高低に応じた時系列的特徴を機械学習することで、異常値として検出したものの中から特に悪性度の高い攻撃などによる異常値を見分けることができる。
これにより、従来は手動で見分けていた異常の悪性度が自動的に算出されるため、時間及び人的コストの削減につながる。
【0046】
異常値検出装置1は、学習元データの統計値を特徴ベクトルとして分類モデルを作成することにより、悪性度を容易に、かつ、適切に判定できる。
特に、従来の異常検出手法では、過去の正常値に類似するベクトルがないことを根拠に異常検知しているため、悪性度までは検証できないが、異常値検出装置1は、異常値の中でも良性で誤検知されたもの又は緊急度が低いものと、悪性で緊急度が高いものとの分類問題とすることで、悪性な異常値を精度良く判定できる。
【0047】
以上、本発明の実施形態について説明したが、本発明は前述した実施形態に限るものではない。また、前述した実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、実施形態に記載されたものに限定されるものではない。
【0048】
異常値検出装置1による異常値検出方法は、ソフトウェアにより実現される。ソフトウェアによって実現される場合には、このソフトウェアを構成するプログラムが、情報処理装置(コンピュータ)にインストールされる。また、これらのプログラムは、CD-ROMのようなリムーバブルメディアに記録されてユーザに配布されてもよいし、ネットワークを介してユーザのコンピュータにダウンロードされることにより配布されてもよい。さらに、これらのプログラムは、ダウンロードされることなくネットワークを介したWebサービスとしてユーザのコンピュータに提供されてもよい。
【符号の説明】
【0049】
1 異常値検出装置
10 制御部
11 モデル作成部
12 異常検出部
13 学習部
14 判定部
20 記憶部
図1
図2
図3
図4