以下、図面を参照しながら、本発明の実施形態について説明する。
(第1実施形態)
図1は、本発明の実施形態に係る時系列データ分析装置を表すブロック図である。図1の時系列データ分析装置は、入力設定部10、特徴ベクトル生成部11、更新処理部12、予測部16、表示部17、学習用データ記憶部18、テスト用データ記憶部19、及び出力情報記憶部20を備える。更新処理部12は、重み更新部13、特徴波形更新部14、及び更新終了判定部15を備える。
本時系列データ分析装置は、学習フェーズと、テストフェーズとを備える。学習フェーズでは、学習用の時系列データと、クラス分類モデルの性能指標に関するパラメータである性能指標パラメータとに基づき、クラス分類モデルのモデルパラメータと、複数の特徴波形とを学習する。モデルパラメータは複数の特徴波形に対する重みを含む。テストフェーズでは、学習フェーズで学習したモデルパラメータと複数の特徴波形とを用いて、テスト対象となる時系列データのクラスを予測することにより、当該テスト対象となる時系列データに異常があるかを判断する。
以下、学習フェーズとテストフェーズに分けて、本装置について詳細に説明する。
<学習フェーズ>
学習用データ記憶部18は、学習用の入力データを記憶している。学習用の入力データとして、2値ラベル付きの学習用の時系列データのセット、時系列データに関するパラメータ情報、特徴波形(shapelet)に関するパラメータ情報、クラス分類モデルの性能指標の情報、当該性能指標に関するパラメータ(性能指標パラメータ)の情報とを記憶している。
学習用データ記憶部18は、2値ラベル付きの学習用の時系列データのセットと、時系列データのパラメータ情報を記憶している。時系列データは、一例として、分析対象装置に設置されたセンサの検出値に基づく時系列データである。時系列データは、センサの検出値そのものでもよいし、検出値の統計値(平均、最大、最小、標準偏差など)でもよいし、複数のセンサの検出値の演算値(例えば電流と電圧とを乗算した電力)でもよい。
学習用の時系列データは、教師付き時系列データであり、正常又は異常を表す2値ラベルが付与されている。一例として、正常ラベルのラベル値は1、異常ラベルのラベル値は-1であるが、これに限定されない。正常ラベルを付与された時系列データ(第1時系列データ)は正常クラスに属する。異常ラベルを付与された時系列データは異常クラスに属する。
一例として正常クラスは第1クラス、異常クラスは第2クラスに対応する。第1クラスに属する時系列データは第1時系列データに対応する。第2クラスに属する時系列データは第2時系列データに対応する。
時系列データのパラメータ情報は、時系列データの個数、及び時系列データの長さの情報である。以下の説明で、時系列データの集合を“T”、時系列データの個数を“I”とする。また、各時系列データの長さを“Q”とする。すなわち、各時系列データは、Q個の点からなるデータである。時系列データセットTは、I×Qの行列で表すことができる。
図2に、学習用データ記憶部18に格納されている時系列データ集合Tの例を示す。集合TにはI個の時系列データが含まれる。各時系列データの長さは同じQである。すなわち、各時系列データは、Q個の点を含む。図では、Q個の点を線でつないだ例が示される。個々の時系列データをTi(i=1,2,…,I)によって表している。任意の時系列データは時系列データiと表現する。本実施形態では、各時系列データの長さは同じQであるが、長さが異なる場合への拡張も可能である。各時系列データは等間隔でサンプリングされており、データ欠損はないものとする。データ欠損がある場合は、補間処理によりデータ補間を行えばよい。
また、学習用データ記憶部18は、特徴波形(shapelet)に関するパラメータ情報として、特徴波形の個数と、特徴波形の長さを表す値を記憶している。特徴波形の個数を“K”、特徴波形の長さを“L”とする。Lは、時系列データの長さQよりも小さい値である。
特徴波形は、L個の点からなるデータである。特徴波形の集合をSとすると、SはK×Lの行列である。特徴波形は、Time Series Shapelets法(TSS法)でshapeletと呼ばれるものに相当する。後述するように、特徴波形は、学習フェーズの開始時に初期の形状が決定された後は、繰り返し更新されていく。
図3に、2つ(K=2)の特徴波形を含む特徴波形集合Sの例を示す。各特徴波形の長さはLである。各特徴波形をS1、S2で表している。本実施形態では、各特徴波形の長さは同じLであるが、長さが異なる場合への拡張も可能である。
ここで、時系列データiと特徴波形kとの距離について説明する。時系列データiと特徴波形kとの距離は、時系列データiにおける長さKの各区間の部分時系列と、特徴波形kとの距離のうち、最も小さい距離として定義される。具体的には、時系列データiにおいて波形の開始位置(先頭)からの長さであるオフセットを波形の末尾方向に順次動かす。各オフセットから長さLの区間の部分時系列と、特徴波形kとの距離を計算する。そして、最も小さくなる距離を、時系列データiと特徴波形kとの距離とする。距離が小さいほど、特徴波形kは時系列データと類似(フィット)している。距離にはユークリッド距離を用いる。但し、波形間の類似度を評価可能な距離であれば、どのような種類の距離でもよい。
時系列データiにおけるオフセットjから長さLの区間の部分時系列と、特徴波形kとの距離は、以下の式(1)で計算される。
Ti,j+l-1は、時系列データ集合Tに含まれる時系列データiにおけるオフセットjの位置から数えてl-1番目の位置の値を表す。Sk,lは、特徴波形集合Sに含まれる特徴波形kの先頭から数えてl番目の位置の値を表す。Di,k,jは、時系列データiにおけるオフセットjから長さLの区間の部分時系列(部分波形)と、特徴波形kとの間の平均距離に相当する。
時系列データiと特徴波形kとの距離は、上記の式(1)に基づき、以下の式(2)で計算される。
本学習フェーズでは、クラス分類モデルのモデルパラメータの学習と、特徴波形集合Sの学習を行う。クラス分類モデルとして、Support Vector Machine(SVM)モデルを想定する。この場合、モデルパラメータは、識別境界の重みベクトルWに対応する。重みベクトルWはK次元のベクトルであり、K個の特徴波形の重みを含む。特徴波形集合SはK×Lの行列である。前述した通り、Kは特徴波形の個数を表し、Lは特徴波形の長さを表す。
学習用データ記憶部18は、学習においてクラス分類モデルの性能を評価するための性能指標と、及び性能指標に関するパラメータ(性能指標パラメータ)とを記憶する。ここでは、性能指標の例としてpAUC(partial Area Under the ROC curve)、性能指標パラメータとして偽陽性率(false positive rate)の範囲を指定するパラメータを用いる。偽陽性率とは、正解が負ラベルのデータのラベルを、間違えて正ラベルと予測する割合である。すなわち、異常クラスに属するデータのクラスを、正常クラスと予測する割合である。
ここで図4を用いて、ROC曲線、AUC、pAUCについて説明する。
図4は、ROC曲線、AUC、pAUCを模式的に示す。ROC曲線は、縦軸を真陽性率(true positive rate)、横軸を偽陽性率(false positive rate)とした座標系に描かれたグラフである。真陽性率は、正解が正ラベルのデータを、正しく正ラベルと予測する割合である。すなわち、正常クラスに属するデータのクラスを、正常クラスと予測する割合である。予測は、クラス分類モデルの出力値(スコア)を閾値と比較することで行う。閾値以上であれば正常と判断(正ラベルを予測)、閾値未満であれば異常と判断(負ラベルを予測)する。閾値を例えばスコアの最大値から最小値まで変更させると、ROC曲線が描かれる。
正解が負ラベルのデータを、間違えて正ラベルと予測した回数をFP、正解が正ラベルのデータを、正しく正ラベルと予測した回数をTP、正解が正ラベルのデータを、間違えて負ラベルと予測した回数をFN、正解が負ラベルのデータを、正しく負ラベルと予測する回数をTNとする。このとき真陽性率はTP/(TP+FN)、偽陽性率はFP/(FP+TN)により計算できる。
AUCは、ROC曲線の下の面積、すなわち、ROC曲線と偽陽性率の軸とによって囲まれた領域の面積である。
pAUCは、横軸の偽陽性率における特定の範囲と、ROC曲線とによって囲まれる領域の面積である。横軸の偽陽性率の範囲は、0以上1以下であり、上記の特定の範囲は、性能指標パラメータで指定される。例えば、0以上0.1以下とする。但し、この範囲は一例であり、0以上0.05以下、又は、0以上0.01以下など、他の範囲でもよい。
ここでは性能指標としてpAUC、性能指標パラメータとして偽陽性率の範囲を用いるが、他の性能指標でもよい。例えば、偽陰性率(false negative rate)に基づいた性能指標及び性能指標パラメータを定義し、それを用いてもよい。偽陰性率(false negative rate)は、正解が正ラベルのデータを、間違えて負ラベルと予測する割合である。
本装置の操作者(ユーザ)は、GUI(Graphical User Interface)を介して、学習用データ記憶部18に学習用の入力データを設定してもよい。この場合、GUIは表示部17の画面に表示させる。
図5は、GUIの画面の例を示す。性能指標としてpAUCを指定している。性能指標パラメータとして調整つまみ(バー)31の位置を調整することで、偽陽性率の範囲を指定している。偽陽性率の範囲の下限値はゼロとし、ここでは範囲の上限値(β)を指定している。図示の例では、上限値(β)を0.01としている。なお、偽陽性率の範囲の下限値をゼロより大きい値とすることを排除しない。調整つまみ31を左右に移動させることで、上限値β(偽陽性率の範囲)を容易に調整可能になっている。また、学習用の時系列データセットをファイルパスにより指定している。この場合、ファイルパスで指定されたファイルを読み出す。ファイルには時系列データの長さ及び個数の情報が格納されていてもよい。また、図の画面で、特徴波形の長さとして5、特徴波形の個数として2を指定している。
入力設定部10は、学習用データ記憶部18から学習用の入力データとして、2値ラベル付きの学習用の時系列データのセット、時系列データのパラメータ情報(時系列データの個数、時系列データの長さ)、特徴波形のパラメータ情報(特徴波形の個数、長さ)、クラス分類モデルの性能指標の情報(ここではpAUC)、性能指標パラメータの情報(ここでは偽陽性率の範囲)を読み出す。入力設定部10は、読み出したデータを特徴ベクトル生成部11に入力する。学習用の入力データの一部又は全部を、本装置の操作者又は管理者であるユーザが、入力装置を用いて入力してもよい。入力装置は、キーボード、マウス、タッチパッド又はスマートフォンなど、本装置に各種データ又は指示を入力するための装置である。この場合、入力装置から受信したデータが、特徴ベクトル生成部11に入力される。
ここで、特徴波形のパラメータ情報を特徴ベクトル生成部11に入力しない構成も可能である。この場合、特徴ベクトル生成部11では、特徴波形の個数及び長さとして、デフォルト値を用いればよい。例えば、特徴波形の個数(最大個数)Kを2、特徴波形の長さLをQ×0.1などとする。
また、入力設定部10は、特徴波形集合Sと、モデルパラメータ(重みベクトル)Wとを初期化する。重みベクトルWは、各特徴波形の重みを含む。
重みベクトルWの初期化は、例えば、K個の全ての要素を0とする。
特徴波形集合Sの初期化は、例えば、以下のように行う。各時系列データの先頭から長さLの窓フレームを一定間隔ずつシフトしながら、窓フレームに含まれる長さLの部分波形(セグメント)を抽出する。これらのセグメントに対して、k-means法などのクラスタリングを行うことにより、K個のクラスタを生成する。K個のクラスタのセントロイド(重心)を計算する。重心は、例えばクラスタに属するすべてのセグメントの平均を計算することで取得する。K個のクラスタから計算されたK個の重心を、初期化した特徴波形集合Sとする。
特徴波形集合Sの初期化は、他の方法でもよい。例えば乱数を用いて長さLのK個の特徴波形を生成し、これらの特徴波形を特徴波形集合Sとすることも排除されない。
特徴ベクトル生成部11が、各時系列データに対してK次元の特徴ベクトルを生成する。具体的には、各時系列データを対象として、対象となる時系列データとK個の特徴波形との距離を特徴量として計算する。計算したK個の特徴量(距離)を、K個の特徴波形に対応する要素に格納したK次元の特徴ベクトルを生成する。この特徴ベクトルは学習用の特徴ベクトルである。第1時系列データ(例えば正常クラスの時系列データ)に基づき生成された特徴ベクトルは第1特徴ベクトル、第2時系列データ(例えば異常クラスの時系列データ)に基づき生成された特徴ベクトルは第2特徴ベクトルに対応する。
i番目の時系列データに対する特徴ベクトルを“Xi”とする。特徴ベクトルXiのk番目の要素(k番目の特徴波形との距離)は、前述した式(2)で定義される通り、Xi,kである。したがって、例えば、特徴波形セットSが特徴波形1,2,・・・,Kを含み、特徴波形1、2、・・・、Kと時系列データiとの距離をXi,1,Xi,2,・・・,Xi,kとすると、特徴ベクトルXi=(Xi,1,Xi,2,・・・,Xi,k)である。
更新処理部12は、複数の時系列データに対して生成された複数の特徴ベクトルと、性能指標パラメータとに基づき、クラス分類モデルにおけるモデルパラメータ(重みベクトル)Wと、複数の特徴波形(特徴波形セットS)とを更新する。以下、更新処理部12が備える重み更新部13、特徴波形更新部14及び更新終了判定部15について説明する。
重み更新部13は、機械学習により、クラス分類モデルのモデルパラメータ(重みベクトル)の学習と、特徴波形集合の学習とを同時に行う。ここでは、クラス分類モデルとして、Support Vector Machine(SVM)を用いる。SVMは、特徴空間において、正常と異常を判別する識別境界を学習するアルゴリズム、または当該識別境界に基づき判定を行うクラス分類モデルである。特徴空間は、Xi,k(k=1,2,…,K)を軸とするK次元の空間である。特徴波形の個数Kが2であれば、特徴空間は、Xi,1とXi,2を軸とする2次元の空間である。モデルパラメータ(重みベクトル)は、当該識別境界に対応する。モデルパラメータ(重みベクトル)Wは、各特徴波形に対応するパラメータ(重み)w1,w2,・・・,wkを含む。識別境界は、線形とするが、非線形でもよい。
識別境界が非線形の場合、モデルパラメータ(重みベクトル)は無限次元のベクトルとなるため、代わりに、識別境界のモデルパラメータ(重みベクトル)Wとして、サポートベクトル集合Svと、集合Svに属するサポートベクトルの寄与率の集合Saとを用いる。サポートベクトルは,識別境界の決定に寄与する特徴ベクトルである。寄与率は,そのサポートベクトルが、識別境界の決定にどの程度寄与するかを表しており,寄与率の絶対値が大きいほど、その決定に大きく寄与する(寄与率が0の場合は,識別境界の決定に寄与せず、それに対応する特徴ベクトルはサポートベクトルではない)。SVMでは,カーネル(内積を拡張した関数)と、サポートベクトルとその寄与率とを用いて,非線形の識別境界を表現できる。
本実施形態においてSVMによるモデルパラメータ(重みベクトル)の学習を、特徴波形集合の学習と同時に行う。これらの学習は、以下の最適化問題として定式化される。
上記の最適化問題において、X+は、正ラベルを持つ特徴ベクトルの集合を表す。X-は、負ラベルを持つ特徴ベクトルの集合を表す。正ラベルを持つ特徴ベクトルを正常特徴ベクトル、負ラベルをもつ特徴ベクトルを異常特徴ベクトルと称する場合がある。
式(3)は、関数H(X,z,π,W)の最大値を、制約条件(Subject to)の下で最小化することにより、モデルパラメータ(重みベクトル)Wと、特徴波形集合Sとを求めることを規定している。
βは、性能指標パラメータとして指定されたpAUCの偽陽性率の範囲の上限値である。例えば偽陽性率の範囲が0以上0.1以下として指定された場合、βは0.1である。
I+は、時系列データセットにおける正ラベルの時系列データ(正例)の個数を表す。I-は、時系列データセットにおける正ラベルの時系列データ(負例)の個数を表す。全時系列データの個数は前述した通りIであるから、I=I++I-である。
z
βは、負例の特徴ベクトル(異常特徴ベクトル)の集合から任意にi
β
-個(少なくとも1つ)を取り出した場合の異常特徴ベクトルの部分集合を表す。i
β
-は、式(5)で定義されており、βI
-を引数として床関数を計算した値である。
は床関数であり、実数である引数以下の最大の整数である。例えば、引数が4.65であれば、床関数の出力は4である。なお、βI
-が整数にならない場合や、偽陽性率の範囲の下限値が0以外の値を取る場合は、文献(A Structural SVM Based Approach for Optimizing Partial AUC, JMLR2013)と同様の方法で厳密に定式化することもできる。
zは、式(6)で定義される通り、スコアの大きい順に選択したiβ
-個の異常特徴ベクトルを格納することを定義している。X-の添字であるa1、a2、・・・はインデックスを表している。スコアはクラス分類モデルの出力値であり、後述するように、モデルパラメータ(重みベクトル)と特徴ベクトルの内積である。クラス分類モデルの出力値をYとすると、クラス分類モデルはY=WT・Xと表せる。本実施形態では、スコアが大きいほど正ラベルの可能性が高いことを意味する。但し、スコアが小さいほど正ラベルの可能性が高くなるように変形してもよい。
式(3)のΠは、時系列データセットから選択したI+個の正例とiβ
-個の負例とに基づくオーダーリング行列(ordering matrix)の集合を表す。オーダーリング行列は、I+行iβ
-列の行列である。オーダーリング行列は、I+個の正例と、iβ
-個の負例とを1つずつ組み合わせたペア(計I+×iβ
-個のペア)に対応する要素に、正例のスコアと負例のスコアとの大小関係に応じた値を格納する。正例のスコアが負例のスコア以上であれば、対応する要素の値は0、正例のスコアが負例のスコアより小さければ、そのペアに対応する要素の値は1である。すなわち、各ペアについて、正例よりも正ラベルの可能性が高いスコアを負例が有する場合に1、それ以外の場合に0を格納する。換言すれば、スコアの大小関係が本来の関係と逆転している場合に1、それ以外は0を格納する。
πは上記オーダーリング行列であり、Πに帰属している。
式(4)は、Lpノルムがλ以下であることを定めている(Lpノルム正則化)。λはハイパーパラメータであり、予め与えておく。pはノルムの次数を表す。p=1はL1ノルム、p=2はL2ノルムを表す。
p=1の場合は||W||1=|w1|+|w2|+・・・+|wK|である。
p=2の場合は||W||2=|w1|2+|w2|2+・・・+|wK|2である。
pの値は予め決めておく。本実施形態ではパラメータ情報で指定した特徴波形の個数と同数の特徴波形を学習することを想定し、例えばp=2とする(L2ノルム)。p=2とすることで、学習される特徴波形の個数が、指定した個数と同数になりやすい(重みw1,w2,・・・,wkのいずれもゼロになりにくい)。後述する第2の実施形態では、スパースモデリングにより、パラメータ情報で多数の個数を指定し、学習される特徴波形の個数を、指定した個数よりも小さい値に絞り込むため、p=1とする(L1ノルム)。この場合、w1,w2,・・・,wkのうち多くのwがゼロになり、結果として学習される特徴波形の個数が絞り込まれる。但し、これらに限定されず、pの値を任意に定めることができる。pを3以上としてもよい。
式(7)は、目的関数H(X,z,π,W)を定義している。変数として、特徴ベクトルX、重みベクトルW、z、πを含んでいる。
目的関数Hに含まれるΔβ(π*,π)は、式(9)で定義されている。Δβ(π*,π)は、行列πに含まれるすべての要素を合計し、行列πの要素数(I+×βI-)で除算することより、行列πに含まれる1の個数の割合(誤り率)を計算している。πの添字i+は行、i-は列を表す。π*は、上記オーダーリング行列πと同じサイズの行列であり、すべての要素をゼロ(0)とした行列である。
目的関数Hに含まれるφ
z(X,π)は式(8)で定義されている。φ
z(X,π
*)は、式(8)のπをπ
*に置き換えればよい。φ
z(X,π
*)-φ
z(X,π)は、πにおいて0になっている要素に対応する成分はゼロになり、1になっている要素に対応する成分が基本的に非ゼロになる(もしπ=π
*であれば、φ
z(X,π
*)-φ
z(X,π)はゼロベクトルである)。したがって、πにおいて0である要素に対応する正例と負例の特徴ベクトル
が大きくなる(つまり、それらの特徴ベクトルに対して正しく重み付けされる)ようになる。
式(10)は、前述した通り、時系列データiと特徴波形kとの距離を定義している。式(11)は、前述した通り、時系列データiの特徴ベクトルを定義している。
上述の最適化問題は、確率的勾配法を用いて効率的に計算することが可能である。これにより、重みベクトルWと特徴波形集合Sを効率的に算出できる。より詳細には、重み更新部13は、確率的勾配法に基づき、重みベクトルWを更新する。次に、特徴波形更新部14は、確率的勾配法に基づき、特徴波形集合Sを更新する。特徴ベクトル生成部11、重み更新部13及び特徴波形更新部14の処理を繰り返すことで、重みベクトルW及び特徴波形集合Sを学習する。ここでは確率的勾配法を用いたが、最急降下法など、他の種類の勾配法を用いてもよい。以下、重み更新部13及び特徴波形更新部14について詳細に説明する。
重み更新部13が、モデルパラメータ(重みベクトル)Wを射影勾配降下法(確率的勾配法の一例である)により更新する。具体的には、目的関数H(X,z,π,W)をモデルパラメータ(重みベクトル)Wで偏微分する。この際、式(3)のmaxに該当するzとπを見つける。zは前述したようにスコアの大きい順に選択したiβ
-個の異常特徴ベクトルである。πは後述するように、zと、正常特徴ベクトルとに基づき特定すればよい。この特定したzとπを目的関数H(X,z,π,W)に代入してWで直接微分することで、勾配∂H/∂Wの値を計算する。重み更新部13は、計算した値(偏微分値)に基づき、重みベクトルWを更新する。
例えば重みベクトルWから、偏微分値(Wと同じ次元のベクトル)を減算する。つまり、Wの値を、偏微分値とは逆方向に動かす。これによりHの値が小さくなる。ここでは偏微分値を減算したが、偏微分値に一定の係数をかけた値を減算してもよい。減算されたWが前述の正則化の制約(式(4))を満たしているかを判断する。正則化の制約を満たしている場合は、減算されたWを、更新されたWとする。一方、減算されたWが正則化の制約を満たしていない場合は、減算されたWの値を、L2ボールに原点方向(すなわちL2ボールとのユークリッド距離が最小になる方向)に射影し、L2ボールに射影された点の値を、更新されたWとする。L2ボールは、L2ノルムの距離(ユークリッド距離)を表すグラフである。ここでは半径λの球である。L2ボールは、Wの値の取り得る範囲を示している。一例としてλは1である。但し、λは1より大きくても、1より小さくてもよい。
図6は、λが1のときL2ボールに重みベクトルの値を射影する例を示す。L2ボールは半径1の円である。減算された重みベクトルWaがL2ボールの外側に位置している。つまり、減算された重みベクトルWaは正則化の制約を満たしていない。重みベクトルWaの位置と、原点とを結ぶ直線とを算出する。算出した直線と、L2ボールとの交点Caを算出する。交点Caの値を、更新されたWとする。減算された重みベクトルがWbの場合についても同様にして、重みベクトルWbの位置と原点とを結ぶ直線とを算出する。算出した直線と、L2ボールとの交点Cbを算出する。交点Cbの値を、更新されたWとする。
上記の最適化問題では特徴ベクトルXまたは特徴波形集合Sに依存する部分は、モデルパラメータ(重みベクトル)Wに依存しない。例えば式(10)は、Wに依存しない。
特徴波形更新部14が、特徴波形集合Sを確率的勾配降下法(確率的勾配法の一例である)により更新する。
図7は、特徴波形更新部14の動作の一例を示すフローチャートである。まず正ラベル及び負ラベルの一方をランダムに選択する(A01)。ランダムに選択することで、正ラベルと負ラベルが均等に(同等の確率で)選択される。ランダムでなく、正ラベルと負ラベルとを交互に選択するなど、他の方法を用いてもよい。
選択したラベルが正ラベルか負ラベルかを判断する(A02)。
正ラベルが選択された場合、正ラベルの時系列データの特徴ベクトル(正常特徴ベクトル)のセットから、ランダムに1つの正常特徴ベクトルを選択する(A03)。正常特徴ベクトルは、一例として第1特徴ベクトルに対応する。
選択した正常特徴ベクトルに対応する時系列データのスコアを算出する。正常特徴ベクトルに対応する時系列データとは、正常特徴ベクトルが生成される元となった時系列データのことである。また、負ラベルの時系列データの特徴ベクトル(異常特徴ベクトル)のセットにおいて、各異常特徴ベクトルに対応する時系列データのスコアを算出する(A04)。異常特徴ベクトルに対応する時系列データとは、異常特徴ベクトルが生成される元となった時系列データのことである。異常特徴ベクトルは、一例として第2特徴ベクトルに対応する。
以下、正常特徴ベクトルに対応する時系列データのスコアを単に正常特徴ベクトルのスコア、異常特徴ベクトルに対応する時系列データのスコアを単に異常特徴ベクトルのスコアと称する。
スコアは、重み更新部13で直近に更新されたモデルパラメータ(重みベクトル)と、特徴ベクトルとの内積により算出される。一例として、重みベクトルWが(w1,w2)であり、時系列データiの特徴ベクトルXiが(Xi,1,Xi,2)であれば、スコアはWT・Xi=w1Xi,1,+w2Xi,2である。なおTは転置を意味する。
スコアは、時系列データが正例(正常の時系列データ)及び負例(異常の時系列データ)をいずれに分類するかを判定するためのクラス分類モデルの出力値(予測値)に対応する。ここでは、スコアが大きいほど、その時系列データは正常である可能性が大きいことを意味する。但し、スコアが小さいほど、その時系列データは正常である可能性が大きいことを意味するようにしてもよい。
ステップA03で選択した正常特徴ベクトルを対象特徴ベクトルとする(A04)。また、式(3)のmaxに該当するzとπを見つける(同A04)。これに該当するzは、異常特徴ベクトルXiをWT・Xiが大きい順にiβ
-個取り出した異常特徴ベクトルらである。これに該当するπを見つけるために、異常特徴ベクトルのスコアが正常特徴ベクトルのスコアよりも高くなってしまっている、異常特徴ベクトルと正常特徴ベクトルの組み合わせを見つける。この組み合わせは、性能指標が悪化する、異常特徴ベクトルと正常特徴ベクトルの組み合わせである。換言すれば、正常特徴ベクトルのスコアよりも正常クラスに属する可能性が高いスコアの異常特徴ベクトルを見つける。この組み合わせから、該当するπを見つける。つまり各異常特徴ベクトルをπの各列へ割り当てる割り当てパターンは複数存在するが、この中からmaxを満たすパターンを見つけ、見つけたパターンによりπを特定する。文献(A Structural SVM Based Approach for Optimizing Partial AUC, JMLR2013)のAlgorithm 2(Find Most-Violated Constraint)に本手法の詳細が記載されている(同A04)。
このように、本ステップでは、勾配降下法に必要な情報である、式(3)のmaxに該当するzとπとの組を1つ見つける。
選択した対象特徴ベクトルと、maxに該当するzとπとを用いて、確率的勾配降下法に基づき、特徴波形集合Sを更新する(A05)。
具体的には、目的関数H(X,z,π,W)を特徴波形集合Sで偏微分した勾配∂H/∂Sを計算する。計算の一例を示す。微分公式の連鎖律(chain rule)を用いて、∂H/∂Sを以下のように変形できる。Xiは対象特徴ベクトルを表す変数である。
∂H/∂S=∂H/∂Xi・∂Xi/∂S ・・・(12)
zとπとに基づき∂H/∂Xiの式を導出し、当該式における変数Xiに上記対象特徴ベクトルを入力し、当該式における変数Wに、更新された重みベクトルWの値を入力することで、∂H/∂Xiの値を計算する。また、∂Xi/∂Sの式における変数Sに、現在の特徴波形(初期の特徴波形もしくは前回更新された特徴波形)を入力することで、∂Xi/∂Sの値を計算する。なお、∂Xi/∂Sの式は式(10)から導けばよい。∂H/∂Xiの値と、∂Xi/∂Sの値とを乗算することで、∂H/∂Sの値(偏微分値)を計算する。
∂H/∂Sの値(偏微分値)に基づき、特徴波形集合Sを更新する。例えば特徴波形集合Sから∂H/∂Sの値を減算する。つまり、Sの値を、偏微分値とは逆方向に動かす(Hの値を小さくする方向に動かす)。ここでは偏微分値を減算したが、偏微分値に係数をかけた値を減算してもよい。これにより、更新された特徴波形集合Sを得る。これは、前述したスコアの大小関係を訂正するように、特徴波形集合Sを更新することに相当する。
ステップA02で負ラベルが選択されたと判断された場合、負ラベルの時系列データの特徴ベクトル(異常特徴ベクトル)から、pAUCに影響する1つの異常特徴ベクトルを選択する(A06)。具体的には、まず、各異常特徴ベクトルのスコアを算出する。スコアは、重み更新部13で直近に更新されたモデルパラメータ(重みベクトル)と、異常特徴ベクトルとの内積により算出する。これらの異常特徴ベクトルをスコアの大きい順にソートする(但し小さい順でもよい)。スコアが大きい順に、U(Uは1以上の整数)個の異常特徴ベクトルを特定する。U個は、性能指標パラメータに応じた決まる値であり、一例として、β×I個である。U個の異常特徴ベクトルの中から、1つの異常特徴ベクトルを選択する。例えば、ランダムに選択してもよい、最もスコアが大きい異常特徴ベクトルを選択してもよいし、その他の方法で選択してもよい。ここでは1つの異常特徴ベクトルを選択したが、2以上の少数(所定数)の異常特徴ベクトルを選択してもよい。ここではスコアの大きい順にU個の異常特徴ベクトルを選択したが、閾値以上のスコアを有する異常特徴ベクトルを選択してもよい。閾値は予め決めても良いし、任意に決めてもよい。
スコアが大きい異常特徴ベクトルは、偽陽性になる可能性が高い特徴ベクトルであるといえる。換言すれば、パラメータ情報として指定した偽陽性率の範囲に影響する特徴ベクトル、すなわちpAUCに影響する特徴ベクトルである。このような特徴ベクトルを選択することで、偽陽性率の指定した範囲でpAUCを最大化するという偽陽性率の条件に応じた特徴波形を効率的に学習することができる。
偽陽性率の範囲(β)は一例として0.05又は0.01以下など、通常、小さい範囲に指定される。したがって、単純に全ての異常特徴ベクトルの中から選択してしまうと、偽陽性率の範囲に影響する異常特徴ベクトルは殆ど選ばれず、その結果、偽陽性率の範囲のpAUCを最適化(最大化)する条件に適した特徴波形が学習されにくい。このため、本ステップA06では、偽陽性率の範囲に影響する時系列データの特徴ベクトル(異常特徴ベクトル)をスコアに基づき特定し、その中から1つ(又は少数)の異常特徴ベクトルを選択している。この選択された特徴ベクトルを対象特徴ベクトルとする。
ステップA06で選択した異常特徴ベクトルを対象特徴ベクトルとする(A07)。また、式(3)のmaxに該当するzとπを見つける(同A07)。これに該当するzは、異常特徴ベクトルXiをWT・Xiが大きい順にiβ
-個取り出した異常特徴ベクトルらである。これに該当するπを見つけるために、異常特徴ベクトルのスコアが正常特徴ベクトルのスコアよりも高くなってしまっている異常特徴ベクトルと正常特徴ベクトルの組み合わせを見つける。この組み合わせは、性能指標が悪化する、異常特徴ベクトルと正常特徴ベクトルの組み合わせである。換言すれば、対象特徴ベクトルのスコアよりも正常クラスに属する可能性が低いスコアの正常特徴ベクトルを見つける。この組み合わせから、上述したステップA04と同様の方法で、該当するπを見つける(文献(A Structural SVM Based Approach for Optimizing Partial AUC, JMLR2013)のAlgorithm 2(Find Most-Violated Constraint)参照)。
このように、本ステップでは、勾配降下法に必要な情報である、式(3)のmaxに該当するzとπとの組を1つ見つける。
選択した対象特徴ベクトルと、maxに該当するzとπとを用いて、確率的勾配降下法に基づき、特徴波形集合Sを更新する(A05)。本ステップA05の詳細は前述したため、省略する。
更新終了判定部15は、モデルパラメータ(重みベクトル)W及び特徴波形集合Sの更新を終了するか判定する。具体的には、更新終了条件が満たされたか判定する。更新終了条件は、例えば特徴ベクトル生成部11と、重み更新部13と、特徴波形更新部14との一連の処理の繰り返し回数により規定される。例えば繰り返し回数が予め定めた回数(10000回など)に達したかを判定する。予め定めた回数に達した場合は、重みベクトルWと特徴波形集合Sの学習が十分に行われたと判断し、処理を終了する。予め定めた回数に達していない場合は、予め定めた回数に達するまで、上記一連の処理を繰り返す。更新終了条件を更新回数により規定することにより、学習に要する時間を所望の範囲内に設定することができる。
更新終了判定部15は、学習の結果から、予測用(判定用)の閾値を決定してもよい。例えば偽陽性率が一定値以下になるよう閾値を決定してもよい。あるいは、閾値は予め定め与えてもよい。
出力情報記憶部20は、学習により得られた特徴波形集合Sのデータと重みベクトルWのデータとを内部に格納する。
表示部17は、学習により得られた特徴波形集合S及び重みベクトルWを含む学習結果データを画面に表示する。
図8に表示部17に表示された学習結果データの例を示す。図8(A)は、学習用の正ラベルの時系列データ(サンプル3)と、学習された2つの特徴波形(それぞれS1、S2とする)が表示されている。特徴波形S1、S2はいずれも異常(負ラベル)を検出するのに有効な特徴波形である。ここでは図5に示した条件で学習を行った例を示す(偽陽性率の範囲の上限値(β)の値を0.01としている)。横軸は時間、縦軸は振幅である。サンプル3は、学習用の全時系列データのうち3番目の時系列データである。この時系列データ(サンプル3)と、特徴波形S1、S2と、学習された重みベクトルWから計算されるスコアは8である。8は閾値以上であり、サンプル3は正しく分類されている。特徴波形S1、S2のグラフは、サンプル3に対してそれぞれ最も距離が近い位置に配置されている。特徴波形S1、S2は、サンプル3に対して最も距離が近い位置でも、サンプル3との距離が離れている。すなわち、特徴波形S1、S2は、サンプル3とフィットしていない。正常を示す情報を表示してもよい。当該情報及びスコアは、スコアに基づく情報の一例である。ここではサンプル3を表示したが、他の時系列データも同様にして表示されてよい。
図8(B)は、学習用の負ラベルの時系列データ(サンプル11、4)と、学習された特徴波形S1及び特徴波形S2が表示されている。特徴波形S1及び特徴波形S2は図8(A)と同じである。この時系列データ(サンプル11)と、特徴波形S1、S2と、学習された重みベクトルWから計算されるスコアは-5である。-5は閾値未満であり、したがって、サンプル11は正しく分類されている。同様に、時系列データ(サンプル4)と、特徴波形S1、s2と、学習された重みベクトルWから計算されるスコアも-5である。-5は閾値未満であり、したがって、サンプル4も正しく分類されている。サンプル11、4に対して、異常を示す情報をとして表示してもよい。当該情報及びスコアは、スコアに基づく情報の一例である。
サンプル11に対して特徴波形S1、S2のグラフがそれぞれ最も距離が近い位置に配置されている。特徴波形S2はサンプル11にフィットしていない(サンプル11との距離が大きい)ものの、特徴波形S1が、サンプル11の部分波形にフィットしている(サンプル11との距離が近い)。特徴波形S1はこのフィットしている部分波形を、異常に特有な形状として検出するのに有効である。
サンプル4に対して特徴波形S1、S2のグラフがそれぞれ最も距離が近い位置に配置されている。特徴波形S1はサンプル4にフィットしていないが、特徴波形S2が、サンプル4の部分波形にフィットしている。特徴波形S2はこのフィットしている部分波形を異常に特有な形状として検出するのに有効である。学習用の負ラベルの時系列データのセットにおいて、このような形状を持つ時系列データの個数がたとえ少なくても(例えば負ラベルの時系列データの多くは、サンプル11において特徴波形S1にフィットしている部分波形に類似の部分波形を有する場合でも)、当該時系列データを負ラベルに分類すべきものとして有効に検出できる。
図9は、学習された特徴波形S1、S2とモデルパラメータ(重みベクトル)Wとを用いて、学習に用いた時系列データに対して正ラベル又は負ラベルの予測(判定)を行い、その結果に基づき作成したROC曲線の例を示す。判定は、時系列データに対してスコアを計算し、スコアを閾値と比較することで行う。スコアが閾値以上であれば正ラベル、閾値未満であれば負ラベルに分類する。偽陽性率が0以上0.01以下の範囲でROC曲線と囲まれた部分の面積がpAUCである。pAUCが大きくなっている。このため、偽陽性率が0.01以下の範囲でも、高精度に時系列データに対する正常・異常の判定を行うことができる。
図8では偽陽性率の範囲の上限値(β)を0.01としたが、以下、βを1.0として学習を行った場合の例を図10及び図11を用いて説明する。
図10は、この場合のGUIの画面の例を示す。ユーザは、GUIを解して、性能指標パラメータの範囲を調整つまみ31の操作(ユーザ入力情報)により変更し、最大値の1.0に設定する。それ以外の条件は図5と同じである。変更後の偽陽性率の範囲で学習を行う(つまりAUCを最大化するように学習する)。このように性能指標パラメータを変更することで、学習される特徴波形、重みベクトルWが変わり、また、計算されるスコア、判定されるラベル、偽陽性率の範囲(β)における予測性能も変わる。変更後の偽陽性率の範囲で学習を行った結果得られる学習結果データの例を、図11を用いて説明する。
図11(A)は、学習用の正ラベルの時系列データ(サンプル2)と、学習された特徴波形(S3とする)が表示されている。特徴波形は1つのみ学習されている(これは、重み更新処理部の処理で他の特徴波形の重みが0になったため、当該他の特徴波形が出力されなかった場合である)。この時系列データ(サンプル2)と、特徴波形S3と、学習された重みベクトルWから計算されるスコアは10である。10は閾値以上であり、サンプル2は正しく分類されている。特徴波形S3のグラフは、サンプル2に対してそれぞれ最も距離が近い位置に配置されている。特徴波形S3は、サンプル2に対して最も距離が近い位置でも、サンプル2との距離が離れている。すなわち、特徴波形S3は、サンプル2とフィットしていない。
図11(B)は、学習用の負ラベルの時系列データ(サンプル8)と、学習された特徴波形S3が表示されている。特徴波形S3は図11(A)と同じである。この時系列データ(サンプル8)と、特徴波形S3と、学習された重みベクトルWから計算されるスコアは-5である。-5は閾値未満であり、サンプル8は正しく分類されている。
図12は、学習された特徴波形S3と重みベクトルWとに基づき、学習に用いた時系列データに対して正ラベル又は負ラベルの判定を行い、その結果に基づき作成したROC曲線の例を示す。偽陽性率が0以上0.01以下の範囲でROC曲線と囲まれた部分の面積(pAUC)は、図9よりも小さいことが理解される。
つまり、β=1.0として、(pAUCではなく)AUCを最適化(最大化)するように学習された結果、図8で示した特徴波形S2のような、発生回数が少ない形状を異常として検出するのに有効な特徴波形を学習できない。このため、このような形状をもつ時系列データを異常として検出できない。このことから、図9のようにβの小さい範囲でpAUCを最適化するよう学習を行うことで、発生回数の少ない形状の異常をも検出可能な特徴波形及び重みベクトルWを学習できる。また、ROC曲線は単調増加関数であるため、pAUCを最適化した結果、AUCも、図12に比べて大きくなる。よって、図9のようにβを小さい範囲に指定して学習を行ったクラス分類モデル(重みベクトルW)の方が、全体としての予測性能も高い。但し、β=1.0としても、異常検出に有効な特徴波形S3を学習できるため、本実施形態はこの場合も、異常検出のための学習に有効である。
図13は、学習されたモデルパラメータ(重みベクトル)により表される識別境界を模式的に示す図である。図13(A)は、線形の識別境界の例、図13(B)が、非線形の識別境界の例を示す。いずれもこの例では、特徴空間は、2次元である。図13(A)に示すように、線形の識別境界の場合、識別境界は直線によって表される。この例では、直線に対して、上側が正常領域(上側)、下側が異常領域である。黒丸は特徴ベクトルを表す。図13(B)に示すように、非線形の識別境界の場合、識別境界は、複雑な形状になっている。この例では、識別境界の内側が正常領域、外側が異常領域である。
図14は、学習フェーズの動作のフローチャートである。
ステップA11において、入力設定部10は、複数の特徴波形(特徴波形集合)と、クラス分類モデルの重みベクトルWとを初期化する。クラス分類モデルは、クラス分類器又は予測器などとも称される。
ステップA12において、特徴ベクトル生成部11は、学習用の各時系列データに対して複数の特徴波形との距離を計算し、計算した複数の距離を要素として含む特徴ベクトルを生成する。
ステップA13において、重み更新部13は、性能指標パラメータに基づく目的関数H(式(3)参照)と、各時系列データの特徴ベクトルとに基づき、確率的勾配法に基づき、重みベクトルWを更新する。具体的には、目的関数をWで偏微分(δH/δW)した式における変数Xに各特徴ベクトルを入力して、偏微分値(Wの勾配)を計算する。現在の重みベクトルWから、偏微分値又はこれに係数を乗じた値を減算する。減算された重みベクトルが、L2ノルムの正則化の制約を満たすかを判断する(式(4)参照)。制約を満たしていない場合には、L2ボールへ重みベクトルを射影することにより(図6参照)、重みベクトルを更新する。L2ノルムの正則化の制約を満たす場合は、減算された重みベクトルを、更新された重みベクトルとする。
ステップA14において、特徴波形更新部14は、性能指標パラメータに基づき例えば1つの時系列データiを対象特徴ベクトルXiとして選択する。選択した対象特徴ベクトルXiに基づき、各特徴波形を更新する。例えば目的関数Hを特徴波形集合Sで偏微分し(δH/δS)、これをδH/δXi・δXi/δSに変形する。δH/δXi及びδXi/δSの値をそれぞれ計算し、計算した値を乗算することで、δH/δS(Sの勾配)を計算する。特徴波形集合Sから、Sの勾配の値を減算することにより、特徴波形集合Sを更新する。
ステップA15において、更新終了判定部15が、更新終了条件が満たされたか判定する。更新終了条件は、例えばステップA12~A14の繰り返し回数(更新回数)が閾値に達することである。更新終了条件が満たされない間は(NO)、ステップA12~A14を繰り返す。更新終了条件が満たされた場合は(YES)、ステップA16に進む。
ステップA16において、更新された複数の特徴波形のデータと、更新された重みベクトルのデータとを出力し、出力情報記憶部20に格納する。なお、重みが0の特徴波形が存在する場合は、その特徴波形を出力しなくてよい。また、当該重み0の要素を重みベクトルから除去する(削除した要素の個数だけ、重みベクトルが短くなる)。
<テストフェーズ>
テストフェーズでは、学習した特徴波形の集合及び重みベクトルを入力として与えて、テスト用の時系列データのスコアを算出し、算出したスコアに基づき、時系列データに対して正ラベル又は負ラベルを決定(正常か異常かを決定)する。以下、詳細に説明する。
テストフェーズでは、入力設定部10と、テスト用データ記憶部19と、出力情報記憶部20と、特徴ベクトル生成部11と、予測部16と、表示部17とを用いる。
出力情報記憶部20には、学習フェーズで最終的に得られた更新後の特徴波形集合S(K個の更新後の特徴波形を含む)と、重みベクトル(モデルパラメータ)Wとが記憶されている。
テスト用データ記憶部19は、テスト対象となる時系列データを記憶している。この時系列データは、テスト対象となる分析対象装置に設置されたセンサの検出値に基づくものである。
入力設定部10は、テスト対象となる時系列データをテスト用データ記憶部19から読み出して、特徴ベクトル生成部11に入力する。
特徴ベクトル生成部11は、テスト対象の時系列データ(tとする)を読み出し、当該時系列データと、特徴波形集合Sとの距離に基づき、K次元の特徴ベクトル(Xtとする)を計算する。
予測部16は、特徴ベクトルXtと、重みベクトルWとに基づきスコアを算出する。具体的には、クラス分類モデルの式(スコアの算出式)を
Y=Xt・W ・・・(13)
とする。このとき、特徴ベクトルXtと、重みベクトルWとの内積を計算することで、スコアを算出する。例えば、K=2であり、特徴ベクトルXtが(Xt,1,Xt,2)、重みベクトルWが(w1,w2)であれば、Xt,1・w1+Xt,2・w2によりスコアを算出する。
予測部16は、算出したスコアを閾値と比較する。閾値は、前述したように、更新終了判定部15が決定した値でもよいし、予め定めた値でもよい。スコアが閾値以上であれば、テスト対象となる時系列データは正常であると判定し、正ラベルを付与する。閾値未満であれば、テスト対象となる時系列データは異常であると判定し、負ラベルを付与する。
表示部17は、予測部16の評価結果に基づくデータ(評価結果データ)を画面に表示する。評価結果データは、テスト対象となる時系列データ、付与されたラベルの情報(正常又は異常の判定結果)、当該時系列データに最も近い位置に配置された特徴波形、算出されたスコアを含む。評価結果データは、上述した学習結果データと同様の形式を有する。判定結果が異常の場合のみ、評価結果データを表示してもよい。出力情報記憶部20は評価結果データを内部に記憶してもよい。
図15は、表示部17に表示された評価結果データの一例を示す。テスト対象となる時系列データ(テストデータNo.118)が表示されている。特徴波形S1、S2がそれぞれ時系列データに対して最も近い位置に配置されている。特徴波形S2が時系列データの部分波形にフィットしている。スコアは-4.9であり、負ラベルが付与されている。すなわち、時系列データは異常である(分析対象装置に異常が発生している)と判定されている。異常と判定されたことを示す情報が表示されている。当該情報及びスコアは、スコアに基づく情報の一例である。ユーザは、評価結果データを確認することで、異常の発生を判断できる。また、ユーザは、どの特徴波形が時系列データにフィットしているかに応じて、異常と判断された根拠を特定できる。例えば特徴波形S2がフィットしていれば、発生頻度の低い異常が発生したと判断できる。
なお、重みベクトル(モデルパラメータ)Wとして、サポートベクトルの集合Svと、寄与率の集合Saを用いる場合、クラス分類モデルを、以下のように生成する。(Sa,Sv)は識別境界のモデルパラメータに対応し、Xは入力変数(特徴ベクトル)に対応する。Yは出力である。Yに-1を掛けた“-Y”を異常度と定義する。Kはカーネル関数であり、SvはサポートベクトルS’vの集合である。SaはSvに属するサポートベクトルの寄与率S’aの集合である。
予測部16は、計算された異常度“-Y”が閾値以上であれば、テスト対象となる時系列データは異常であると判定し、負ラベルを付与する。異常度“-Y”が閾値未満であれば、テスト対象となる時系列データは正常であると判定し、正ラベルを付与する。
図16は、テストフェーズの動作のフローチャートである。
ステップA21において、特徴ベクトル生成部11が、テスト対象の時系列データと、学習された各特徴波形との距離を計算し、計算した距離を各特徴波形に対応する要素に格納した特徴ベクトルを生成する。
ステップA22において、予測部16が、特徴ベクトルと、学習された重みベクトルとの内積により、スコア(評価値)を算出する。
ステップA23において、予測部16が、算出したスコアを閾値と比較する。閾値以上であれば、テスト対象となる時系列データは正常であると判定し、正ラベルを付与する。閾値未満であれば、テスト対象となる時系列データは異常(分析対象装置に異常が発生している)であると判定し、負ラベルを付与する。
ステップA24において、表示部17は、評価結果データを画面に表示する。評価結果データは、一例として、テスト対象となる時系列データ、付与されたラベルの情報(正常又は異常の判定結果)、当該時系列データに最も近い位置に配置された特徴波形、及び算出されたスコアを含む。
本実施形態では性能指標パラメータとして偽陽性率の範囲を直接、GUIから指定する例を示したが、ユーザに調整可能として提示する性能指標パラメータの名称は偽陽性率でなくてもよい。例えば、誤検知と見逃しを重視する度合いを調整するパラメータをユーザに調整可能に提示してもよい。または、上位ランキングの何位まで(スコアが最も大きい側又は最も小さい側から数えた時系列データの個数)の判定の正しさを重視するかを調整するパラメータをユーザに調整可能に提示してもよい。いずれの場合にも、本装置の学習において、内部的に、ユーザが指定したパラメータの値を、偽陽性率の範囲に置き換える。例えばユーザの指定したパラメータの値と、偽陽性率の範囲とを対応付けた情報(例えば関数又はテーブル)を予め学習用データ記憶部18に格納しておくことで、このような置き換えを実現する。この後の処理は、前述した本実施形態と同様である。
図17に、本実施形態に係る時系列データ分析装置のハードウェア構成を示す。本実施形態に係る時系列データ分析装置は、コンピュータ装置100により構成される。コンピュータ装置100は、CPU101と、入力インターフェース102と、表示装置103と、通信装置104と、主記憶装置105と、外部記憶装置106とを備え、これらはバス107により相互に接続されている。
CPU(中央演算装置)101は、主記憶装置105上で、コンピュータプログラムである分析プログラムを実行する。分析プログラムは、時系列データ分析装置の上述の各機能構成を実現するプログラムのことである。CPU101が、分析プログラムを実行することにより、各機能構成は実現される。
入力インターフェース102は、キーボード、マウス、及びタッチパネルなどの入力装置からの操作信号を、時系列データ分析装置に入力するための回路である。
表示装置103は、時系列データ分析装置から出力されるデータまたは情報を表示する。表示装置103は、例えば、LCD(液晶ディスプレイ)、CRT(ブラウン管)、及びPDP(プラズマディスプレイ)であるが、これに限られない。学習用データ記憶部18、テスト用データ記憶部19、出力情報記憶部20に記憶されたデータまたは情報は、この表示装置103により表示することができる。
通信装置104は、時系列データ分析装置が外部装置と無線又は有線で通信するための回路である。学習用の入力データまたはテスト用の時系列データなどのデータは、通信装置104を介して外部装置から入力することができる。外部装置から入力したデータを、学習用データ記憶部18またはテスト用データ記憶部19に格納することができる。
主記憶装置105は、分析プログラム、分析プログラムの実行に必要なデータ、及び分析プログラムの実行により生成されたデータなどを記憶する。分析プログラムは、主記憶装置105上で展開され、実行される。主記憶装置105は、例えば、RAM、DRAM、SRAMであるが、これに限られない。学習用データ記憶部18、テスト用データ記憶部19及び出力情報記憶部20は、主記憶装置105上に構築されてもよい。
外部記憶装置106は、分析プログラム、分析プログラムの実行に必要なデータ、及び分析プログラムの実行により生成されたデータなどを記憶する。これらのプログラムやデータは、分析プログラムの実行の際に、主記憶装置105に読み出される。外部記憶装置106は、例えば、ハードディスク、光ディスク、フラッシュメモリ、及び磁気テープであるが、これに限られない。学習用データ記憶部18、テスト用データ記憶部19及び出力情報記憶部20は、外部記憶装置106上に構築されてもよい。
なお、分析プログラムは、コンピュータ装置100に予めインストールされていてもよいし、CD-ROMなどの記憶媒体に記憶されていてもよい。また、分析プログラムは、インターネット上にアップロードされていてもよい。
本実施形態では、時系列データ分析装置が、学習フェーズと、テストフェーズとの両方を行う構成を備えていたが、いずれか一方のみを行う構成でもよい。つまり、学習フェーズを行う装置と、テストフェーズを行う装置を別々に構成してもよい。
本実施形態ではクラス分類モデルとしてSVMを用いたが、ロジスティック回帰モデルなど、他のモデルを用いてもよい。
以上、本実施形態によれば、pAUC等の性能指標を最適化するように時系列データに対するクラス分類モデルの重みを学習する。したがって、性能指標の条件(例えば偽陽性率の範囲)に合わせてクラス分類モデルを生成することで、その条件の元で高い予測性能を達成することができる。また、本実施形態では、当該条件の元で予測に有効な特徴波形を学習できる。
また、本実施形態によれば、時系列データにおいて、pAUC等の性能指標を直接最適化しつつ、予測に有効な特徴波形を学習できる。時系列データのラベル(異常有無)の予測では、学習された重みに基づき高い精度での予測が可能になるとともに、予測の根拠(いずれの特徴波形が時系列データにフィットしたか)も提示できる。
pAUCを性能指標として最適化することで、例えば、(1)トラブルの見逃しを十分低く保ったもとで、正しくトラブルを予測する、(2)誤診断を低く抑えたもとで、正しく診断事例を予測する、(3)少数の上位のランキングの予測精度を正確するなどの要求に応えることができる。
(第2の実施形態)
本実施形態では、最初に多数の特徴波形を学習用に指定し、これらの特徴波形の中から、予測に有効な特徴波形をスパースモデリングにより絞り込むことを特徴とする。
図18は、第2の実施形態に係る時系列データ解析装置のブロック図である。特徴波形絞り込み部21が追加されている。それ以外のブロックは図1と同じであるため、拡張又は変更された機能を除き、説明を省略する。
第1の実施形態では特徴波形のパラメータ情報として特徴波形の個数を例えば2など、所望数もしくはそれに近い値を指定した。これに対して、本実施形態では、入力設定部10は、第1の実施形態よりも十分大きな個数、例えば最大個数(例えば500)を指定する。
重み更新部13は、最適化問題における正則化の制約(式(4)参照)としてL1ノルム(Lasso)正則化を用いる。つまりp=1とする。第1の実施形態ではL2ノルム正則化(p=2)であったが、本実施形態では、L1ノルム正則化(p=1)を用いる。
この変更により、重み更新部13では、L1ノルム正則化による射影勾配降下法を用いる。第1の実施形態ではL2ノルム正則化の制約のため射影用にL2ボールを用いたが、本実施形態ではL1ノルム正則化の制約のため、射影用にL1ノルムの距離(マンハッタン距離)を表すL1ボールを用いる。L1ボールは、原点から各頂点までの距離がλである正方形であり、重みベクトルWの取り得る範囲を示している。一例としてλは1である。但し、λは1より大きくても、1より小さくてもよい。δH/δWの値だけ減算された重みベクトルWがL1ノルム正則化の制約を満たさない場合は、上記減算された重みベクトルWをL1ボールに対して射影する。射影は、ユークリッド距離が最小になる辺上の位置に対して行う。射影された位置の値を、更新された重みベクトルWとする。
図19は、λが1のときのL1ボールと、L1ボールに重みベクトルWを射影する例を示す。減算された重みベクトルWdがL1ボールの外側に位置している。重みベクトルWdの位置からユークリッド距離が最小となる辺上の位置に射影する。射影された点Cdの値を、更新されたWとする。減算された重みベクトルがWe又はWfの場合についても同様にして、L1ボールに対してユークリッド距離が最小となる辺上の位置に射影する。L1ボールとの交点Cf又はCgを算出し、算出した交点Cb又はCgの値を、更新されたWとする。
L1ボールでは、L2ボール(図6参照)と比べて各軸との交点が尖っているため、その交点に射影される場合が多くなり、その結果、重みベクトルのいくつかの成分が0となるもしくは0になり易い。
特徴波形更新部14の動作は、第1の実施形態と同じである。
特徴波形絞り込み部21は、重み更新部13で更新された重みベクトルに基づき、重みが0の要素が存在するかを判断し、重みが0の要素が存在する場合は、当該要素に対応する特徴波形を削除する。すなわち、現在存在する複数の特徴波形のうち、重みが0でない特徴波形に絞り込む。削除した要素の個数分だけ、重みベクトルの長さは短くなる。
更新終了判定部15は、更新終了条件が満たされたかを判断し、更新終了条件が満たされるまで、特徴ベクトル生成部11、重み更新部13、特徴波形更新部14、及び特徴波形絞り込み部21の動作を繰り返す。更新終了条件は第1の実施形態と同様である。
L1ノルム正則化では、最終的に、多くの成分の重みが0になる。更新終了判定部15は、最終的に重みの値が0となった特徴波形を学習結果として出力しない。重みが0でない特徴波形を、学習された特徴波形として出力し、出力情報記憶部20に格納する。これにより、第1の実施形態よりも、予測精度の高いクラス分類モデル(重みベクトルW)と、検出精度の高い必要最小限の個数の特徴波形とを学習することができる。重みが0でない特徴波形を出力したが、重みが所定値以上の特徴波形のみを出力し、所定値未満の特徴波形を出力しないことも可能である。
図20は、第2の実施形態に係る学習フェーズの動作のフローチャートである。
ステップA11、A12は、第1の実施形態の図14のステップA11、A12と同じである。
ステップA17は、L1ノルム正則化の制約を満たすための処理を除き、第1の実施形態の図14のステップA13と同じである。第1の実施形態のステップA13ではL2ノルム正則化を用いたが、本実施形態のステップA13ではL1ノルム正則化を用いる。すなわち、δH/δWの値だけ減算された重みベクトルが、L1ノルムの正則化の制約を満たすかを判断する(式(4)参照)。制約を満たしていない場合には、L1ボールへ、減算された重みベクトルを射影することにより(図19参照)、重みベクトルを更新する。L1ノルム正則化の制約を満たす場合は、減算された重みベクトルを、更新された重みベクトルとする。
ステップA14は、第1の実施形態の図14のステップA14と同じである。
ステップA18において、特徴波形絞り込み部21は、更新された重みベクトルに基づき、重みが0の要素が存在するかを判断し、重みが0の要素が存在する場合は、当該要素に対応する特徴波形を削除する。すなわち、現在存在する複数の特徴波形のうち、重みが0でない特徴波形に絞り込む。
ステップA15は、第1の実施形態の図14のステップA15と同じである。
ステップA19において、更新された1つ又は複数の特徴波形(最終的に残った1つ又は複数の特徴波形、すなわち重みが0でない特徴波形)のデータと、更新された重みベクトルのデータとを出力し、出力情報記憶部20に格納する。
以上、本実施形態によれば、スパースモデリングを用いることで多数の初期の特徴波形から絞り込みをかけつつ、予測に有効な特徴波形を学習できる。また、精度の高いクラス分類モデル(重み)を学習できる。
(第3の実施形態)
第3の実施形態では、時系列データ分析装置が、通信ネットワークを介して、分析対象装置に接続された時系列データ分析システムの実施形態を示す。
図21に、第3の実施形態に係る時系列データ分析システムを示す。時系列データ分析装置41は、第1~第2の実施形態のいずれかに係る時系列データ分析装置に相当する。時系列データ分析装置41は、通信ネットワーク42を介して、複数の分析対象装置43に接続されている。分析対象装置43には、物理量を検出するセンサが搭載されている。分析対象装置43は、センサの検出値に基づく時系列データを生成し、生成した時系列データを、通信ネットワーク42を介して、時系列データ分析装置41に送信する。時系列データ分析装置41は、学習フェーズ用に時系列データを収集する場合、各分析対象装置43が事前に正常状態及び異常状態のいずれにあるかを確認しておく。時系列データ分析装置41は、正常状態にある分析対象装置43から受信した時系列データに正ラベルを付し、異常状態にある分析対象装置43から受信した時系列データに負ラベルを付して、学習用データ記憶部18に格納する。また、時系列データ分析装置41は、テストフェーズ用に時系列データを収集する場合は、受信した時系列データをテスト用データ記憶部19に格納する。これにより、リアルタイムに分析対象装置43の異常有無をテストできる。
なお、本発明は上記各実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記各実施形態に開示されている複数の構成要素を適宜組み合わせることによって種々の発明を形成できる。また例えば、各実施形態に示される全構成要素からいくつかの構成要素を削除した構成も考えられる。さらに、異なる実施形態に記載した構成要素を適宜組み合わせてもよい。