(57)【要約】【課題】多次元時系列データに基づく状態識別の精度を向上させることを課題とする。【解決手段】検出装置は、複数の項目を有する複数の時系列データそれぞれについて、複数の項目の少なくともいずれかに時間シフト項を追加する。検出装置は、時間シフト項が追加された複数の時系列データそれぞれからアトラクタを生成する。検出装置は、生成された各アトラクタをパーシステントホモロジ変換することにより、各アトラクタからベッチ系列を生成する。検出装置は、生成された各ベッチ系列の時間変換に基づき、複数の時系列データにおける状態変化を検出する。【選択図】図６
2019133462.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
複数の項目を有する複数の時系列データそれぞれについて、前記複数の項目の少なくともいずれかに時間シフト項を追加し、
前記時間シフト項が追加された複数の時系列データそれぞれからアトラクタを生成し、
生成された各アトラクタをパーシステントホモロジ変換することにより、前記各アトラクタからベッチ系列を生成し、
生成された各ベッチ系列の時間変換に基づき、前記複数の時系列データにおける状態変化を検出する
処理を実行させる検出プログラム。
【請求項２】
前記複数の時系列データのいずれかからアトラクタを生成し、
前記時間シフト項が追加された時系列データから追加アトラクタを生成し、
前記アトラクタから生成されたベッチ系列と、前記追加アトラクタから生成されたベッチ系列とに基づき、前記状態変化を検出する処理を前記コンピュータに実行させる請求項１に記載の検出プログラム。
【請求項３】
前記複数の項目ごとに前記時間シフト項の数を決定し、
決定した時間シフト項を追加した前記複数の時系列データそれぞれからアトラクタを生成し、
生成された各アトラクタから前記パーシステントホモロジ変換することにより生成される各ベッチ系列の時間変換に基づき、前記複数の時系列データにおける状態変化を検出する処理を前記コンピュータに実行させる請求項１または２に記載の検出プログラム。
【請求項４】
コンピュータが、
複数の項目を有する複数の時系列データそれぞれについて、前記複数の項目の少なくともいずれかに時間シフト項を追加し、
前記時間シフト項が追加された複数の時系列データそれぞれからアトラクタを生成し、
生成された各アトラクタをパーシステントホモロジ変換することにより、前記各アトラクタからベッチ系列を生成し、
生成された各ベッチ系列の時間変換に基づき、前記複数の時系列データにおける状態変化を検出する
処理を実行する検出方法。
【請求項５】
複数の項目を有する複数の時系列データそれぞれについて、前記複数の項目の少なくともいずれかに時間シフト項を追加する追加部と、
前記時間シフト項が追加された複数の時系列データそれぞれからアトラクタを生成する第１生成部と、
生成された各アトラクタをパーシステントホモロジ変換することにより、前記各アトラクタからベッチ系列を生成する第２生成部と、
生成された各ベッチ系列の時間変換に基づき、前記複数の時系列データにおける状態変化を検出する検出部と
を有する検出装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、検出プログラム、検出方法および検出装置に関する。
【背景技術】
【０００２】
多次元時系列データの変化を検知し、検知した変化内容に基づき対象の状態を識別することが行われている。多次元時系列データの変化検知の手法としては、従来から知られている統計量に基づき検知する手法とは別に、多次元時系列データが有する複数項目のデータに含まれる性質の変化を検知する手法として、インバリアント分析や部分空間法などの手法が知られている。
【０００３】
例えば、インバリアント分析は、多次元時系列データの時間相関を監視し、一部の時系列に変化が現れた状況を相関の変化として検知する手法である。このインバリアント分析は、時系列データの物理的な意味を用いずに容易に利用できる。
【０００４】
また、部分空間法は、一次元時系列データから時間遅れの手法により部分時系列を生成し、部分時系列が規定する部分空間上の直交基底の向きや大きさの変化から、空間全体の状態変化を検知する手法である。この部分空間法は、線形分析法であることから、線形性や周期性の強いシステムに対して有効な変化検知を実行でき、部分空間の密度変化に対しても有効な変化検知が実行できる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】国際公開第２０１３／１４５４９３号
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記技術では、時系列データの種類や状態によって変化検知に向き不向きがあり、状態識別に適用可能な時系列データが限定されるので、多次元時系列データに基づく状態識別の精度が劣化する場合がある。
【０００７】
例えば、インバリアント分析は、多次元時系列データの時間相関を監視する手法であることから、対象とする複数の時系列データが同時に同方向に変化した場合には、変化を検知することが難しい。また、部分空間法は、線形分析法であることから、例えばカオス時系列のように非線形の時系列データに対しては、局所的に直交基底が異なり、空間全体として安定した直交基底の決定が困難であるので、変化を検知することが難しい。
【０００８】
また、適切な分析手法を選択するために、予め多次元時系列データの性質を調べることも考えられるが、性質が判明したとしても適切な分析手法が見つからない場合もあり、性質を調べる作業も容易ではない。
【０００９】
一つの側面では、多次元時系列データに基づく状態識別の精度を向上させることができる検出プログラム、検出方法および検出装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
第１の案では、検出プログラムは、コンピュータに、複数の項目を有する複数の時系列データそれぞれについて、前記複数の項目の少なくともいずれかに時間シフト項を追加する処理を実行させる。検出プログラムは、コンピュータに、前記時間シフト項が追加された複数の時系列データそれぞれからアトラクタを生成する処理を実行させる。検出プログラムは、コンピュータに、生成された各アトラクタをパーシステントホモロジ変換することにより、前記各アトラクタからベッチ系列を生成する処理を実行させる。検出プログラムは、コンピュータに、生成された各ベッチ系列の時間変換に基づき、前記複数の時系列データにおける状態変化を検出する処理を実行させる。
【発明の効果】
【００１１】
一実施形態によれば、多次元時系列データに基づく状態識別の精度を向上させることができる。
【図面の簡単な説明】
【００１２】
【図１】図１は、実施例１にかかる検出装置の全体例を説明する図である。
【図２】図２は、多次元時系列データに対する検出手法１の一例を説明する図である。
【図３】図３は、検出手法１の問題点を説明する図である。
【図４】図４は、検出手法１の問題点を説明する図である。
【図５】図５は、検出手法１の問題点を説明する図である。
【図６】図６は、実施例１にかかる検出装置の機能構成を示す機能ブロック図である。
【図７】図７は、時系列データＤＢに記憶される多次元時系列データの例を示す図である。
【図８】図８は、バーコードデータＤＢに記憶されるデータの例を示す図である。
【図９】図９は、ベッチ数データＤＢに記憶されるデータの例を示す図である。
【図１０】図１０は、距離データＤＢに記憶されるデータの例を示す図である。
【図１１】図１１は、検出データＤＢに記憶されるデータの例を示す図である。
【図１２】図１２は、多次元時間シフト項付きの時系列データからアトラクタを生成する例を説明する図である。
【図１３】図１３は、パーシステントホモロジについて説明するための図である。
【図１４】図１４は、バーコードデータと生成される連続データとの関係について説明するための図である。
【図１５】図１５は、状態変化の検出手法を説明する図である。
【図１６】図１６は、処理の流れを示すフローチャートである。
【図１７】図１７は、効果を説明する図である。
【図１８】図１８は、ハードウェア構成例を示す図である。
【発明を実施するための形態】
【００１３】
以下に、本願の開示する検出プログラム、検出方法および検出装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。また、各実施例は、矛盾のない範囲内で適宜組み合わせることができる。
【実施例１】
【００１４】
［全体構成］
図１は、実施例１にかかる検出装置の全体例を説明する図である。図１に示すように、実施例１にかかる検出装置１０は、学習データの一例である時系列データに対して、パーシステントホモロジ変換（ＰＨ変換）を実行してベッチ系列を生成し、ベッチ系列に基づいて時系列データの変化や異常を検出するコンピュータの一例である。
【００１５】
そして、検出装置１０は、ベッチ系列やベッチ系列と時系列データの変化との関係などを特徴量として機械学習や深層学習（ディープラーニング（ＤＬ）・Deep  Learning）などを用いた検出処理（学習処理）を実行して、学習データを事象ごとに正しく判別（分類）できるように、ニューラルネットワーク（ＮＮ：Neural  Network）などを学習する。その後、学習結果を適用した学習モデルを用いることで、判別対象データに対して、正確な事象（ラベル）の推定を実現する。
【００１６】
例えば、検出装置１０は、多次元の時系列データ（以降では、単に多次元時系列データと記載する場合がある）に対して、次元毎に特徴的な時間シフト項（遅れ時間と記載する場合がある）を導入することでより高次元での位相空間上でのアトラクタ再構成を可能にし、対象システムの次元数に依らないＴＤＡ（Topological  Data  Analysis）学習による変化検知や異常検知を実現する。
【００１７】
具体的には、検出装置１０は、複数の項目を有する前記複数の時系列データそれぞれについて、複数の項目の少なくともいずれかに時間シフト項を追加する。そして、検出装置１０は、時間シフト項が追加された複数の時系列データそれぞれからアトラクタを生成する。続いて、検出装置１０は、生成された各アトラクタをパーシステントホモロジ変換することにより、各アトラクタからベッチ系列を生成する。その後、検出装置１０は、生成された各ベッチ系列の時間変換に基づき、複数の時系列データにおける状態変化を検出する。
【００１８】
したがって、検出装置１０は、時系列データの種類や状態に関わらず、幅広いタイプの変化の検知を行うことができ、多次元時系列データに基づく、異常検知または変化検知の精度を向上させることができる。
【００１９】
［検出手法の一例］
ここで、図２から図５を用いて、多次元時系列データに対する検出手法の例を説明する。図２は、多次元時系列データに対する検出手法１の一例を説明する図である。図２に示す検出手法１は、複数の時系列データそれぞれの値を座標とする点を含む複数のアトラクタを生成し、アトラクタに対するＰＨ処理によりベッチ数系列を生成し、ベッツ数系列に基づき、複数の時系列データが示す状態を識別する手法である。
【００２０】
例えば、図２に示すように、情報処理装置などが実行する検出手法１は、時系列データXｉ（x（1）、x（2）、・・・）と、時系列データYｉ（y（1）、y（2）、・・・）と、時系列データZｉ（z（1）、z（2）、・・・）とを観測された場合、｛x（1），y（1），z（1）、x（2），y（2），z（2）、x（3），y（3），z（3）、・・・｝の三次元時系列データを生成する。
【００２１】
続いて、検出手法１は、多次元時系列データをそのまま用いてアトラクタを生成する。すなわち、検出手法１は、生成した三次元時系列データを三次元（位相）空間にプロットすることによりアトラクタを形成する。ここで生成されるアトラクタは、有限個の点集合であることから、厳密にはアトラクタではなく疑似アトラクタである。その後、検出手法１は、パーシステントホモロジ変換を実行して、生成したアトラクタをベッチ系列へ変換する。そして、検出手法１は、ベッチ系列の違いからアトラクタの違い、すなわち時系列データの違いを検出することで、状態変化を検知する。
【００２２】
このように、検出手法１は、対象システムの次元数がおおよそ判明している場合は、観測されたデータをそのまま用いることで、精度の高い状態変化の検知を実現できる。しかし、次元数が不明な対象システムも存在し、実際には対象システムの次元数よりも少ない数の時系列データしか観測できない場合もある。そのような場合、検出手法１では、状態変化の検出精度の劣化が発生する。
【００２３】
図３から図５は、検出手法１の問題点を説明する図である。図３は、対象システムにおいて３つのデータ（データ１、データ２、データ３）が発生したが、データ１とデータ２だけが観測されており、データ３は観測できなかったが存在する状態である。ここで、各データには、状態が変化する変化点が現れているものとする。ただし、データ１とデータ２では、変化点の前後でのデータの変化が小さく、データ３では、データ１およびデータ２と比べると、変化点の前後でのデータの変化が大きい。つまり、観測できなかったデータ３の時系列データが変化点前後で大きく変化している。
【００２４】
このような状態において、検出手法１では、観測されたデータ１およびデータ２を用いて、多次元時系列データの状態変化を行うので、変化点前後でのデータの変化を検知できない。具体的には、図４に示すように、変化前の時系列データから生成されたアトラクタと、変化後の時系列データから生成されたアトラクタとが類似しており、変化が小さい。このため、検出手法１では、各アトラクタから生成された各ベッチ系列の時間変化から状態変化を検知することが難しい。
【００２５】
図５の左図は、変化点前のアトラクタから生成されたベッチ系列と、変化点後のアトラクタから生成されたベッチ系列とを示す図である。図５の左図の縦軸はベッチ数、横軸は、ＰＨ変換で利用されるスケール（ｒ：半径）である。また、図５の右図は、ベッチ数の時間変化を示す図であり、縦軸がベッチ数、横軸が時間である。図５の左図に示すように、スケールｒ＝０．１でモニタした場合、変化点前後における変化検知量が少なく、さらに通常の変動幅より小さい。このため、図５の右図に示すように、ベッチ数の時間変化を参照しても、ベッチ数が変化する領域（変化点と記載する場合がある）前後でのベッチ数の変化が小さく、状態変化を検出することが困難である。
【００２６】
つまり、検出手法１では、観測できた時系列データ（データ１、データ２）の挙動を検出することができるが、観測できなかった時系列データ（データ３）の挙動を検出することができない。一般的に、時系列データの状態θは、以下のような支配法則ｆに基づき決定される。
１．θｉ＋１＝ｆ（θｉ，θｉ−１，θｉ−２，・・・）
２．θｉ＝｛xｉ，yｉ，zｉ，・・・｝は、時刻ｉにおける状態θｉで多変数から成る。
３．xｉ，yｉ，zｉは、変数であり、それぞれ時系列データを形成する。
【００２７】
支配法則を構成する変数の時系列データ全てを観測することは困難であるが、各変数は時間発展と共に相互作用を行い、その結果、それぞれの時系列データはお互いの情報を保持している。したがって、検出手法１では、観測できなかった時系列データ（データ３）の情報を取得できないので、結果として、時系列データの状態変化を見落としてしまう。
【００２８】
そこで、本実施例では、適切な条件を与えて、限られた数の観測可能な時系列データから、観測できなかった時系列データの情報を抽出することで、多次元時系列データに基づく状態識別の精度を向上させる。つまり、本実施例では、次元数が不明な対象システムに適用した場合に、上記検出手法１と比較して、より高精度な状態識別を実現する。
【００２９】
［機能構成］
図６は、実施例１にかかる検出装置１０の機能構成を示す機能ブロック図である。図６に示すように、検出装置１０は、通信部１１、記憶部１２、制御部２０を有する。
【００３０】
通信部１１は、他の装置との通信を制御する処理部であり、例えば通信インタフェースである。例えば、通信部１１は、管理者の端末から、処理開始指示を受信する。また、通信部１１は、管理者の端末等から、時系列データ（学習データ）を受信して時系列データＤＢ１３に格納する。
【００３１】
記憶部１２は、プログラムやデータを記憶する記憶装置の一例であり、例えばメモリやハードディスクなどである。この記憶部１２は、時系列データＤＢ１３、アトラクタＤＢ１４、バーコードデータＤＢ１５、ベッチ数データＤＢ１６、距離データＤＢ１７、検出データＤＢ１８を記憶する。
【００３２】
時系列データＤＢ１３は、時系列データを記憶するデータベースである。図７は、時系列データＤＢ１３に記憶される多次元時系列データの例を示す図である。図７においては、三次元の時系列データのグラフが示されており、時刻ｉにおける項目xの値はxｉであり、時刻ｉにおける項目yの値はyｉであり、時刻zにおける項目zの値はzｉである。時系列データは、心拍数以外の生体データ（脳波、脈拍或いは体温などの時系列データ）、ウェアラブルセンサのデータ（ジャイロセンサ、加速度センサ或いは地磁気センサなどの時系列データ）、金融データ（金利、物価、国際収支或いは株価などの時系列データ）、自然環境のデータ（気温、湿度或いは二酸化炭素濃度などの時系列データ）、又は社会データ（労働統計或いは人口統計などのデータ）等である。
【００３３】
本実施例では、図７に示したような多次元時系列データが扱われ、多次元時系列データが示す状態の識別が行われる。なお、図７では、次元数が三次元の例を示したが、これに限定されるものではなく、二次元または四次元以上であってもよい。また、本実施例における多次元時系列データとは、複数の項目を有する時系列データの一例である。
【００３４】
アトラクタＤＢ１４は、後述する制御部２０によって生成されるアトラクタを記憶するデータベースである。記憶されるアトラクタの詳細については後述する。なお、アトラクタには、元の多次元時系列データの特徴が反映され、アトラクタ間の類似関係は、元の多次元時系列データ間の類似関係と等価である。アトラクタと別のアトラクタとが似ていることは、元の多次元時系列データの特徴が類似することを意味する。特徴が同じであるが現象（見た目）が異なる多次元時系列データからは、互いに類似したアトラクタが生成される。
【００３５】
バーコードデータＤＢ１５は、パーシステントホモロジの計算過程において、ホモロジ群の元（すなわち穴）の発生半径と消滅半径とを使用することで生成される、バーコードデータを記憶するデータベースである。
【００３６】
図８は、バーコードデータＤＢ１５に記憶されるデータの例を示す図である。図８において、横軸の値は半径を表し、各線分は１つの穴に対応する。線分の左端に対応する半径は穴の発生半径であり、線分の右端に対応する半径は穴の消滅半径である。線分はパーシステント区間と呼ばれる。このようなバーコード図から、例えば半径が０．１８であるときには２つの穴が存在することがわかる。
【００３７】
ベッチ数データＤＢ１６は、バーコードデータから生成されるベッチ数系列に関する情報を記憶するデータベースである。図９は、ベッチ数データＤＢ１６に記憶されるデータの例を示す図である。図９の例では、処理対象の多次元時系列データが抽出される機関である各スライド窓について、次元と、半径と、ベッチ数とを含むデータが格納されており、各穴次元のベッチ数系列が連結されている。パーシステントホモロジ処理を実行することで、アトラクタが表す、元の多次元時系列データの特徴を、ベッチ数系列に反映することができる。図９の例では、スライド窓１では、０次元かつ半径が５のときのベッチ数が２０であることを示す。
【００３８】
距離データＤＢ１７は、スライド窓と基準のベッチ数系列との距離の関係を記憶するデータベースである。図１０は、距離データＤＢ１７に記憶されるデータの例を示す図である。図１０の（ａ）に示すように、距離データＤＢ１７は、スライド窓の開始時刻と、スライド窓の終了時刻と、基準のベッチ数系列との距離とを対応付けて格納する。または、図１０の（ｂ）に示すように、距離データＤＢ１７は、スライド窓の開始時刻と、基準のベッチ数系列との距離とを対応付けて格納する。
【００３９】
図１０の（ａ）の一例は、スライド窓の開始時刻が１かつ終了時刻が５０のとき、基準ベッチ数系列（例えば所定時刻前のスライド窓について生成されたベッチ数系列）との距離が２．３であることを示す。また、図１０の（ｂ）の一例は、スライド窓の開始時刻が５１のとき、基準ベッチ数系列との距離が３．１であることを示す。
【００４０】
検出データＤＢ１８は、状態変化が検出された時刻を記憶するデータベースである。図１１は、検出データＤＢ１８に記憶されるデータの例を示す図である。図１１に示すように、検出データＤＢ１８は、変化が検出された時刻を記憶し、図１１の例では、「１５：３８：００」に時系列データの状態変化が検出されたことを示す。
【００４１】
制御部２０は、検出装置１０全体の処理を司る処理部であり、例えばプロセッサなどである。制御部２０は、アトラクタ生成部２１、ＰＨ処理部２２、検出部２３、出力部２４を有する。なお、アトラクタ生成部２１、ＰＨ処理部２２、検出部２３、出力部２４は、プロセッサなどが有する電子回路やプロセッサなどが実行するプロセスの一例である。
【００４２】
アトラクタ生成部２１は、多次元時系列データからアトラクタを生成する処理部である。具体的には、アトラクタ生成部２１は、時系列データＤＢ１３に記憶される観測された多次元時系列データに対して、次元ごとに特徴的な時間シフト項を導入して仮想的な時系列データを生成する。そして、アトラクタ生成部２１は、生成した仮想的な時系列データからアトラクタを生成して、アトラクタＤＢ１４に格納する。なお、多次元時系列データから次元ごとに特徴的な遅れ時間を導入する手法としては、多次元自己相関係数や相互情報量といった、情報学で用いられる統計的手法を利用することができる。
【００４３】
例えば、アトラクタ生成部２１は、三次元時系列データ｛Xｉ，Yｉ，Zｉ｝を、時間シフト項τを導入して、さらに高次元へ拡張する。より詳細には、アトラクタ生成部２１は、観測された１個目の時系列データ「Xｉ＝｛x（1），x（2），x（3）、・・・｝」に対して、時間シフト項τを導入した２個目の時系列データ「Xi＋τx＝｛x（1＋τx），x（2＋τx），x（3＋τx）、・・・｝」を生成し、さらに、時間シフト項τを導入した３個目の時系列データ「Xi＋2τx＝｛x（1＋2τx），x（2＋2τx），x（3＋2τx）、・・・｝」を生成する。このようにして、アトラクタ生成部２１は、ｍ個の時系列データ「Ｘi＋mτx＝｛x（1＋mτx），x（2＋mτx），x（3＋mτx）、・・・｝」を生成する。なお、YｉとZｉについても同様に、これらを組にして、高次元時系列データへ拡張する。
【００４４】
一例として、XｉとYｉについてｍ＝３、Zｉについてｍ＝４とした場合、次の１０次元時系列データが生成される。１０次元時系列データ＝｛（x（1），x（1＋τx），x（1＋2τx），y（1），y（1＋τy），y（1＋2τy），（z（1），z（1＋τz），z（1＋2τz），z（1＋3τz））、
（x（2），x（2＋τx），x（2＋2τx），y（2），y（2＋τy），y（2＋2τy），（z（2），z（2＋τz），z（2＋2τz），z（2＋3τz））、
（x（3），x（3＋τx），x（3＋2τx），y（3），y（3＋τy），y（3＋2τy），（z（3），z（3＋τz），z（3＋2τz），z（3＋3τz）））｝
【００４５】
そして、アトラクタ生成部２１は、上記１０次元時系列データからアトラクタを生成する。図１２は、多次元時間シフト項付きの時系列データからアトラクタを生成する例を説明する図である。図１２に示すように、アトラクタ生成部２１は、観測され三次元時系列データ｛Xｉ，Yｉ，Zｉ｝に時間シフト項τを導入して、１０次元時系列データを生成する。続いて、アトラクタ生成部２１は、１０次元時系列データを、１０次元（位相）空間上の１０次元座標とみなして１０次元空間にプロットすることによりアトラクタを形成する。
【００４６】
ここで、アトラクタ生成部２１は、スライド窓を設定してアトラクタの生成を実行することもできる。具体的には、アトラクタ生成部２１は、時間シフト項τを導入した多次元時系列データから、開始時刻と終了時刻とを設定した各スライド窓の期間における時系列データの集合を抽出する。そして、アトラクタ生成部２１は、抽出した各時系列データを用いて、アトラクタを生成する。
【００４７】
ＰＨ処理部２２は、アトラクタ生成部２１によって生成されたアトラクタに対して、パーシステントホモロジ変換を実行して、バーコードデータおよびベッチ系列を生成する処理部である。ここで、「ホモロジ」とは、対象の特徴をｍ（ｍ≧０）次元の穴の数によって表現する手法である。ここで言う「穴」とはホモロジ群の元のことであり、０次元の穴は連結成分であり、１次元の穴は穴（トンネル）であり、２次元の穴は空洞である。各次元の穴の数はベッチ数と呼ばれる。そして、「パーシステントホモロジ」とは、対象（ここでは、点の集合（Point  Cloud））におけるｍ次元の穴の遷移を特徴付けるための手法であり、パーシステントホモロジによって点の配置に関する特徴を調べることができる。この手法においては、対象における各点が球状に徐々に膨らまされ、その過程において各穴が発生した時刻（発生時の球の半径で表される）と消滅した時刻（消滅時の球の半径で表される）とが特定される。
【００４８】
パーシステントホモロジの計算は、位相幾何学の手法であり、点の集合で表される静的な対象（例えば、タンパク質、分子の結晶、センサネットワークなど）の構造の解析等に利用されてきた。これに対して、実施例１では、時間の経過に伴って連続的に変化するデータの特徴を表す点集合（すなわちアトラクタ）を計算の対象としている。実施例１の場合、点集合の構造自体を解析することは目的でないので、一般的なパーシステントホモロジの計算とは対象及び目的が全く異なる。
【００４９】
図１３を用いて、パーシステントホモロジをより具体的に説明する。図１３は、パーシステントホモロジについて説明するための図である。ルールとして、１つの球が接した場合には２つの球の中心が線分で結ばれ、３つの球が接した場合には３つの球の中心が線分で結ばれる。ここでは、連結成分及び穴だけを考える。図１３（ａ）のケース（半径ｒ＝０）においては、連結成分のみが発生し、穴は発生していない。図１３（ｂ）のケース（半径ｒ＝ｒ1）においては、穴が発生しており、連結成分の一部が消滅している。図１３（ｃ）のケース（半径ｒ＝ｒ2）においては、さらに多くの穴が発生しており、連結成分は１つだけ持続している。図１３（ｄ）のケース（半径ｒ＝ｒ3）においては、連結成分の数は１のままであり、穴が１つ消滅している。
【００５０】
パーシステントホモロジの計算過程において、ホモロジ群の元（すなわち穴）の発生半径と消滅半径とが計算される。穴の発生半径と消滅半径とを使用することで、バーコードデータを生成することができる。バーコードデータは穴次元毎に生成されるので、複数の穴次元のバーコードデータを統合することで１塊のバーコードデータが生成できる。連続データは、パーシステントホモロジにおける球の半径（すなわち時間）とベッチ数との関係を示すデータである。
【００５１】
図１４を用いて、バーコードデータと生成される連続データとの関係について説明する。図１４は、バーコードデータと生成される連続データとの関係について説明するための図である。図１４に示す上段のグラフはバーコードデータから生成されるグラフであり、横軸が半径を表す。下段のグラフは連続データ（ベッチ系列）から生成されるグラフであり、縦軸はベッチ数を表し、横軸は時間を表す。上で述べたように、ベッチ数は穴の数を表しており、例えば上段のグラフにおいて破線に対応する半径の時には存在している穴の数が１０であるので、下段のグラフにおいては破線に対応するベッチ数も１０である。ベッチ数は、ブロック毎に計数される。なお、下段のグラフは疑似的な時系列データのグラフであるので、横軸の値自体が意味を持つわけではない。
【００５２】
ＰＨ処理部２２は、各スライド窓の期間の各時間シフト項付き時系列データに対して上記処理を実行して、各スライド窓の期間に対応するバーコードデータを生成してバーコードデータＤＢ１５に格納する。そして、ＰＨ処理部２２は、各スライド窓の期間における各場コードデータから、上記処理を実行して次元、半径、ベッチ数を抽出して、ベッチ数データＤＢ１６に格納する。
【００５３】
検出部２３は、ＰＨ処理部２２によって生成されたベッチ系列に基づいて、時系列データの状態変化を検出する処理部である。具体的には、検出部２３は、ベッチ系列上でモニタするスケール（半径）を決め、時間的に変動するベッチ数の変化から状態の変化検知を行う。図１５は、状態変化の検出手法を説明する図である。図１５に示すように、検出部２３は、ベッチ系列において、モニタするスケールとして「r0」を決定する。そして、検出部２３は、スケール「r0」におけるベッチ数の時間変化から、ベッチ数が増えた時間を変化点として検出する。
【００５４】
ここで、より検出手法についてより詳細に説明する。検出部２３は、ベッチ数データＤＢ１６に記憶されるベッチ数系列を読み出す。続いて、検出部２３は、読み出されたベッチ数系列と、基準のベッチ数系列との距離を計算する。例えば、検出部２３は、モニタするスケールにおいて、読み出されたベッチ数系列と、所定時間前のスライド窓について生成されたベッチ数系列との距離を算出する。ここで、所定時間前のスライド窓とは、対象となっているベッチ数系列が生成されたスライド窓の開始時刻より所定時間前を開始時刻とするスライド窓（例えば１つ前のスライド窓）である。所定時間前のスライド窓についてのベッチ数系列がない場合、予め生成されたベッチ数系列との距離が算出される。また、距離とは、例えばユークリッド距離、ノルム距離、コサイン類似度などである。図１５の場合、ベッチ系列のグラフにおける点Ａと点Ｂの距離である。
【００５５】
そして、検出部２３は、算出した距離を距離データＤＢ１７に格納する。また、検出部２３は、算出された距離のうち、閾値以上の距離が検出された時間を検出データＤＢ１８に格納する。ここで格納される時間が変化点に該当する。なお、上記検出処理は、全スライド窓についての処理が完了してからでもよく、ベッチ数系列の生成処理と並行して実行することもできる。また、スライド窓の期間（開始時間から終了時間までの時間）は、任意に設定することができ、連続するスライド窓が重複する期間を有するように設定することもできる。また、スライド窓の終点は、時系列データの最後を設定することもでき、任意に設定することもできる。
【００５６】
出力部２４は、検出データＤＢ１８に記憶されるデータに基づき生成した表示データをモニタなどの表示装置に表示する処理部である。例えば、出力部２４は、検出データＤＢ１８に記憶されるデータである時刻を表示するＷｅｂページなどを生成して、表示装置に表示する。また、出力部２４は、当該Ｗｅｂページなどを管理者端末に送信することもできる。
【００５７】
［処理の流れ］
次に、上述した処理の一連の流れについて説明する。図１６は、処理の流れを示すフローチャートである。なお、ここで説明する処理は、あくまで一例であり、矛盾のない範囲内で処理の順番を適宜変更することができる。
【００５８】
図１６に示すように、処理開始の指示等を受け付けると（Ｓ１０１：Ｙｅｓ）、アトラクタ生成部２１は、時系列データＤＢ１３から時系列データを読み出し（Ｓ１０２）、多次元時間シフト項付き時系列データを生成する（Ｓ１０３）。
【００５９】
続いて、アトラクタ生成部２１は、スライド窓（開始時刻および期間の長さ）を設定し（Ｓ１０４）、各項目において、スライド窓における時系列データ（多次元時間シフト項付き時系列データ）を抽出する（Ｓ１０５）。そして、アトラクタ生成部２１は、抽出された多次元時間シフト項付き時系列データからアトラクタを生成する（Ｓ１０６）。
【００６０】
その後、ＰＨ処理部２２は、パーシステントホモロジ処理によって、アトラクタからバーコードデータを生成し（Ｓ１０７）、バーコードデータからベッチ数系列を生成する（Ｓ１０８）。
【００６１】
そして、検出部２３は、生成されたベッチ数系列と所定時間前のスライド窓についてのベッチ数系列との距離を算出し（Ｓ１０９）、算出した距離を距離データＤＢ１７に保存する（Ｓ１１０）。
【００６２】
ここで、スライド窓が終点に到達していない場合（Ｓ１１１：Ｎｏ）、次のスライド窓が設定された後（Ｓ１１２）、Ｓ１０５以降が繰り返される。一方、スライド窓が終点に到達した場合（Ｓ１１１：Ｙｅｓ）、出力部２４は、距離が閾値以上である時刻の情報を表示する（Ｓ１１３）。
【００６３】
［効果］
上述したように、検出装置１０は、過去の時系列データ間の相互作用の効果を取り込むために、時間シフト項を導入する。検出装置１０は、観測された多次元時系列データに対して、次元ごとに時間シフト項を導入して仮想的な時系列データを生成する。そして、検出装置１０は、仮想的な時系列データが未観測のデータに相当することから、それらを含めてより高次元の位相空間上にアトラクタを再構成することにより、システム全体の特徴抽出を実現できる。したがって、検出装置１０は、対象システムの次元数に依らないＴＤＡ学習が実行できる。
【００６４】
検出装置１０は、観測はできなかったが、本来存在すると推定される時系列データの影響を考慮することができる。検出装置１０は、複数の観測時系列データを十分に活用することにより、時系列データ間の相互作用の効果をできるだけ多く取り込むことができる。検出装置１０は、高次元空間のアトラクタを精度良く再構成することが期待できる。
【００６５】
図１７は、効果を説明する図である。図１７は、図３の状態で実施例１による検出手法を実行した時の例を示している。上記検出手法１では、X、Yの二次元のデータの情報しかアトラクタに反映されていないが、実施例１では、X＋15の三次元目が加わることにより、三次元分のデータの情報がアトラクタに反映されている。特に、三次元目のデータに大きな変化が現れる場合には、時間シフト項を用いて三次元目の時系列データを生成することにより、直接得られなかった時系列データの情報をアトラクタに反映させることができる。この結果、ＴＤＡを適用したベッチ系列の結果では、ある固定スケールｒ（＝０．１）で時間的にモニタリングを行うと、実施例１では、検出手法１とは異なり、ベッチ数の変化が確認でき、変化点を検出できる。これはアトラクタを、時間シフト項を利用して三次元で表すことにより初めて得られたものであるといえる。
【実施例２】
【００６６】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。
【００６７】
［学習手法］
実施例１の学習は、ＤＬに限らずに他の機械学習を採用することができる。また、アトラクタの次元数も任意に設定することができる。なお、学習後に推定対象のデータのラベル推定を行う場合、学習時と同様の処理を行って学習モデルに入力する。
【００６８】
［検出手法１との組み合わせ］
実施例１の検出手法と上記検出手法１とは組み合わせることもできる。例えば、検出手法１によって、時間シフト項τを加えない状態のアトラクタからベッチ系列を生成し、ベッチ系列の比較等によって第１の閾値以上かつ第２の閾値未満の距離が検出されたときに、実施例１による検出手法を用いて、時間シフト項τを加えた追加アトラクタを生成する。そして、検出手法１で生成したアトラクタに対応するベッチ系列と、実施例１で生成した追加アトラクタに対応するベッチ系列とについて、上記距離を算出して、多次元時系列データの状態変化を検出することもできる。
【００６９】
［時間シフト項の基準］
実施例１では、XｉとYｉについてｍ＝３、Zｉについてｍ＝４とした場合、次の１０次元時系列データについて説明したが、これは一例であり、次元数等を限定するものではなく、時系列データによって任意に設定変更することができる。
【００７０】
例えば、ある超高速鉄道の運動特性を調査する場合を考えると、台車にはジャイロセンサ、加速度センサが搭載されているが、３方向のうち、それぞれ１方向しか観測されていない場合、上記X、Yに相当する。他方、車輪には温度センサ、圧力センサ、ひずみ計、集音装置の４つの観測装置が設置されていて、車輪の温度、圧力、体積、レールとの間で発せられる摩擦音を観測して車輪の状況を把握したいが、何らかの理由でそのうち１種類だけしか観測できなかった場合、上記Zに相当する。なお、時間シフト項とは、時系列データからアトラクタを再構成する際に必ず必要となる情報量である。
【００７１】
［システム］
上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【００７２】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散や統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、アイテムを表示する処理部と、選好を推定する処理部とを別々の筐体で実現することもできる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵ（Central  Processing  Unit）および当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【００７３】
［ハードウェア］
図１８は、ハードウェア構成例を示す図である。図１８に示すように、検出装置１０は、通信装置１０ａ、ＨＤＤ（Hard  Disk  Drive）１０ｂ、メモリ１０ｃ、プロセッサ１０ｄを有する。また、図１２に示した各部は、バス等で相互に接続される。
【００７４】
通信装置１０ａは、ネットワークインタフェースカードなどであり、他のサーバとの通信を行う。ＨＤＤ１０ｂは、図２に示した機能を動作させるプログラムやＤＢを記憶する。
【００７５】
プロセッサ１０ｄは、図２に示した各処理部と同様の処理を実行するプログラムをＨＤＤ１０ｂ等から読み出してメモリ１０ｃに展開することで、図２等で説明した各機能を実行するプロセスを動作させる。すなわち、このプロセスは、検出装置１０が有する各処理部と同様の機能を実行する。具体的には、プロセッサ１０ｄは、アトラクタ生成部２１、ＰＨ処理部２２、検出部２３、出力部２４等と同様の機能を有するプログラムをＨＤＤ１０ｂ等から読み出す。そして、プロセッサ１０ｄは、アトラクタ生成部２１、ＰＨ処理部２２、検出部２３、出力部２４等と同様の処理を実行するプロセスを実行する。
【００７６】
このように検出装置１０は、プログラムを読み出して実行することで検出方法を実行する情報処理装置として動作する。また、検出装置１０は、媒体読取装置によって記録媒体から上記プログラムを読み出し、読み出された上記プログラムを実行することで上記した実施例と同様の機能を実現することもできる。なお、この他の実施例でいうプログラムは、検出装置１０によって実行されることに限定されるものではない。例えば、他のコンピュータまたはサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。
【符号の説明】
【００７７】
１０  検出装置
１１  通信部
１２  記憶部
１３  時系列データＤＢ
１４  アトラクタＤＢ
１５  バーコードデータＤＢ
１６  ベッチ数データＤＢ
１７  距離データＤＢ
１８  検出データＤＢ
２０  制御部
２１  アトラクタ生成部
２２  ＰＨ処理部
２３  検出部
２４  出力部
【図１】
2019133462.tif 000003
【図２】
2019133462.tif 000004
【図３】
2019133462.tif 000005
【図４】
2019133462.tif 000006
【図５】
2019133462.tif 000007
【図６】
2019133462.tif 000008
【図７】
2019133462.tif 000009
【図８】
2019133462.tif 000010
【図９】
2019133462.tif 000011
【図１０】
2019133462.tif 000012
【図１１】
2019133462.tif 000013
【図１２】
2019133462.tif 000014
【図１３】
2019133462.tif 000015
【図１４】
2019133462.tif 000016
【図１５】
2019133462.tif 000017
【図１６】
2019133462.tif 000018
【図１７】
2019133462.tif 000019
【図１８】
2019133462.tif 000020