(57)【要約】【課題】複数の時系列データにおける類似する区間を、ヒストグラムを用いずに求める。【解決手段】演算手段は、複数の系列データを連結して円状の円状系列データｆ（ｔ）を生成し、ｔから区間長Ｔまで遡った範囲［ｔ，ｔ−Ｔ］を参照データＺ（τ）とし、円状系列データｆ（ｔ）の区間［ｔ，ｔ＋Ｌ−Ｔ−１］を入力データｇ（ｘ）として、連続ＤＰ処理を用いて、参照データＺ（τ）と入力データｇ（ｘ）とのスポッティング点（ｘ＊，τ＊）を求め、参照データＺ（τ）の範囲［１，τ＊］に類似する入力データｇ（ｘ）の類似区間を検出し、ｔを１からＬまで変化させて類似区間を検出することにより、円状系列データの全区間の類似区間を検出し、検出された類似区間が複数の系列データのどの区間に該当するかを求める。【選択図】  図９
2014153984.tif 000002
【特許請求の範囲】
【請求項１】
複数ｎ個の系列データＳｎ（ｔ）において、類似するデータを示す系列的な区間を、類似区間として検出する類似系列区間検出装置であって、
前記ｎ個の系列データＳｎ（ｔ）を記録する記録手段と、
前記ｎ個の系列データＳｎ（ｔ）を順番に連結して１つにまとめられた連結系列データを生成するとともに、該連結系列データの全体の系列的な長さＬと、前記ｎ個の系列データＳｎ（ｔ）の連結順番および連結位置に関する情報とを、前記記録手段に記録する連結系列データ生成手段と、
前記連結系列データの始点と終点とを連結して円状を成す円状系列データｆ（ｔ）を生成する円状系列データ生成手段と、
該円状系列データｆ（ｔ）において類似区間と想定され得る最大の区間長をＴとして、前記円状系列データｆ（ｔ）より区間［ｔ−Ｔ，ｔ−１］の範囲で遡って系列データを抽出することによって、参照データＺ（τ）（１≦τ≦Ｔ）を設定するとともに、前記参照データＺ（τ）以外の前記円状系列データｆ（ｔ）の残りの区間［ｔ，ｔ＋Ｌ−Ｔ−１］の系列データを入力データｇ（ｘ）（１≦ｘ≦Ｌ−Ｔ）として設定するデータ設定手段と、
前記参照データＺ（τ）と前記入力データｇ（ｘ）との局所距離ｄ（ｘ，τ）（＝‖ｇ（ｘ）−Ｚ（τ）‖）を、連続ＤＰ処理に基づいて求める局所距離算出手段と、
該局所距離算出手段により求められた局所距離ｄ（ｘ，τ）に基づいて、連続ＤＰ処理における漸化式を用いて、局所距離の最小値Ｄ（ｘ，τ）を求めると共に、求められた局所距離の最小値Ｄ（ｘ，τ）を傾斜制限に基づいて決定される漸化式の重み付け係数ｋとτとで除算することにより、前記最小値Ｄ（ｘ，τ）を正規化したＡ（ｘ，τ）（＝Ｄ（ｘ，τ）／（ｋ×τ））を求める正規化処理手段と、
該Ａ（ｘ，τ）が予め設定される閾値ｈ以下となるτ（ｘ）を、ｘの前後αの区間［ｘ−α，ｘ＋α］からなるｘの局所間隔（local interval of x）で算出し、算出されたτ（ｘ）に基づいて、前記参照データＺ（τ）と前記入力データｇ（ｘ）とにおけるスポッティング点（ｘ＊，τ＊）を、類似区間の最小の区間長を定める係数τ０を用いて、
【数１】
2014153984.tif 000010
に基づいて算出するスポッティング点算出手段と、
該スポッティング点（ｘ＊，τ＊）に至る最適パスを、連続ＤＰ処理における累積値のバックトレース処理によって求めることにより、前記区間［ｘ−α，ｘ＋α］において、前記参照データＺ（τ）の区間［１，τ＊］に類似する前記入力データｇ（ｘ）の類似区間を求める部分類似区間検出手段と、
該部分類似区間検出手段により求められた区間［ｘ−α，ｘ＋α］の入力データｇ（ｘ）における類似区間を、全てのｘについて求めることにより、ｘの全区間における入力データｇ（ｘ）の類似区間を求める全体類似区間検出手段と、
前記円状系列データｆ（ｔ）のｔの値を、１からＬへと順番に増加させることにより、前記データ設定手段において、全てのｔに対応する参照データＺ（τ）と入力データｇ（ｘ）とを設定させると共に、前記全体類似区間検出手段において、全てのｔに対応する入力データｇ（ｘ）の類似区間を求めさせることにより、円状系列データの全ての区間において類似区間の検出を行う円状類似区間検出手段と、
該円状類似区間検出手段により検出された類似区間が、前記ｎ個の系列データにおけるどの系列データのどの区間に該当するかを、前記記録手段に記録された前記連結順番および前記連結位置に関する情報に基づいて求めることにより、ｎ個の系列データにおける類似区間の検出を行う複数系列類似区間検出手段と
を備えることを特徴とする類似系列区間検出装置。
【請求項２】
前記局所距離算出手段は、前記局所距離ｄ（ｘ，τ）を求める場合において、前記記録手段に記録された前記ｎ個の系列データにおける前記連結位置の情報に基づいて、前記局所距離ｄ（ｘ，τ）におけるｘが、前記ｎ個の系列データのいずれかの終端点ｘａに該当するか否かを判断し、ｘが終端点ｘａに該当する場合には、局所距離ｄ（ｘａ，τ）の値として∞を設定することを特徴とする請求項１に記載の類似系列区間検出装置。
【請求項３】
複数ｎ個の系列データＳｎ（ｔ）において、類似するデータを示す系列的な区間を、類似区間として検出する類似系列区間検出装置であって、
前記ｎ個の系列データＳｎ（ｔ）のどの区間が、前記類似区間に該当するかを求める演算手段を備え、
該演算手段は、
前記ｎ個の系列データＳｎ（ｔ）を順番に連結して１つにまとめた連結系列データの始点と終点とを連結して円状系列データｆ（ｔ）を生成し、
該円状系列データｆ（ｔ）に対して、ｔから区間長Ｔまで遡った範囲［ｔ，ｔ−Ｔ］の系列データを参照データＺ（τ）（１≦τ≦Ｔ）として設定すると共に、該参照データＺ（τ）以外の前記円状系列データｆ（ｔ）の残りの区間［ｔ，ｔ＋Ｌ−Ｔ−１］の系列データを入力データｇ（ｘ）（１≦ｘ≦Ｌ−Ｔ）として設定し、
連続ＤＰ処理を用いて、前記参照データＺ（τ）と前記入力データｇ（ｘ）とのスポッティング点（ｘ＊，τ＊）を求め、
求められたスポッティング点に至る最適パスを、連続ＤＰ処理において用いられる累積値のバックトレース処理によって求めることにより、前記参照データＺ（τ）の区間［１，τ＊］の系列データに類似する前記入力データｇ（ｘ）の類似区間を検出し、
ｔを１からＬまで変化させて、全てのｔに基づいて参照データと入力データとを設定して前記類似区間の検出処理を行うことにより、前記円状系列データの全ての区間における類似区間の検出を行い、
前記ｎ個の系列データＳｎ（ｔ）を連結して前記円状系列データを生成したときの連結位置および連結順番に関する情報に基づいて、前記円状系列データにおいて検出された前記類似区間が、前記ｎ個の系列データにおけるどの系列データのどの区間に該当するかを求める
ことを特徴とする類似系列区間検出装置。
【請求項４】
複数ｎ個の系列データＳｎ（ｔ）において、類似するデータを示す系列的な区間を、類似区間として検出する類似系列区間検出装置の類似系列区間検出プログラムであって、
連結系列データ生成手段に、記録手段に記録される前記ｎ個の系列データＳｎ（ｔ）を順番に連結して１つにまとめられた連結系列データを生成させるともに、該連結系列データの全体の系列的な長さＬと、前記ｎ個の系列データＳｎ（ｔ）の連結順番および連結位置に関する情報とを、前記記録手段に記録させる連結系列データ生成ステップと、
円状系列データ生成手段に、前記連結系列データの始点と終点とを連結して円状を成す円状系列データｆ（ｔ）を生成させる円状系列データ生成ステップと、
データ設定手段に、前記円状系列データｆ（ｔ）において類似区間と想定され得る最大の区間長をＴとして、前記円状系列データｆ（ｔ）より区間［ｔ−Ｔ，ｔ−１］の範囲で遡って系列データを抽出させることによって、参照データＺ（τ）（１≦τ≦Ｔ）を設定させるとともに、前記参照データＺ（τ）以外の前記円状系列データｆ（ｔ）の残りの区間［ｔ，ｔ＋Ｌ−Ｔ−１］の系列データを入力データｇ（ｘ）（１≦ｘ≦Ｌ−Ｔ）として設定させるデータ設定ステップと、
局所距離算出手段に、前記参照データＺ（τ）と前記入力データｇ（ｘ）との局所距離ｄ（ｘ，τ）（＝‖ｇ（ｘ）−Ｚ（τ）‖）を、連続ＤＰ処理に基づいて求めさせる局所距離算出ステップと、
正規化処理手段に、前記局所距離算出ステップにおいて求められた局所距離ｄ（ｘ，τ）に基づいて、連続ＤＰ処理における漸化式を用いて、局所距離の最小値Ｄ（ｘ，τ）を求めさせると共に、求められた局所距離の最小値Ｄ（ｘ，τ）を傾斜制限に基づいて決定される漸化式の重み付け係数ｋとτとで除算することにより、前記最小値Ｄ（ｘ，τ）を正規化したＡ（ｘ，τ）（＝Ｄ（ｘ，τ）／（ｋ×τ））を求めさせる正規化処理ステップと、
スポッティング点算出手段に、前記Ａ（ｘ，τ）が予め設定される閾値ｈ以下となるτ（ｘ）を、ｘの前後αの区間［ｘ−α，ｘ＋α］からなるｘの局所間隔（local interval of x）で算出させ、算出されたτ（ｘ）に基づいて、前記参照データＺ（τ）と前記入力データｇ（ｘ）とにおけるスポッティング点（ｘ＊，τ＊）を、類似区間の最小の区間長を定める係数τ０を用いて、
【数２】
2014153984.tif 000011
に基づいて算出させるスポッティング点算出ステップと、
部分類似区間検出手段に、前記スポッティング点（ｘ＊，τ＊）に至る最適パスを、連続ＤＰ処理における累積値のバックトレース処理によって求めさせることにより、前記区間［ｘ−α，ｘ＋α］において、前記参照データＺ（τ）の区間［１，τ＊］に類似する前記入力データｇ（ｘ）の類似区間を求めさせる部分類似区間検出ステップと、
全体類似区間検出手段により、前記部分類似区間検出ステップにおいて求められた前記区間［ｘ−α，ｘ＋α］の前記入力データｇ（ｘ）における類似区間を、全てのｘについて求めさせることにより、ｘの全区間における前記入力データｇ（ｘ）の類似区間を求めさせる全体類似区間検出ステップと、
円状類似区間検出手段に、前記円状系列データｆ（ｔ）のｔの値を、１からＬへと順番に増加させることにより、前記データ設定ステップにおいて、全てのｔに対応する参照データＺ（τ）と入力データｇ（ｘ）とを設定させると共に、前記全体類似区間検出ステップにおいて、全てのｔに対応する入力データｇ（ｘ）の類似区間を求めさせることにより、円状系列データの全ての区間において類似区間の検出を行わせる円状類似区間検出ステップと、
複数系列類似区間検出手段に、前記円状類似区間検出ステップにおいて検出された類似区間が、前記ｎ個の系列データにおけるどの系列データのどの区間に該当するかを、前記記録手段に記録された前記連結順番および前記連結位置に関する情報に基づいて求めさせることにより、ｎ個の系列データにおける類似区間の検出を行わせる複数系列類似区間検出ステップと
を実行させるための類似系列区間検出プログラム。
【請求項５】
前記局所距離算出ステップにおいて、前記局所距離算出手段が、前記局所距離ｄ（ｘ，τ）を求める場合に、前記ｎ個の系列データにおける前記連結位置の情報に基づいて、前記局所距離ｄ（ｘ，τ）におけるｘが、前記ｎ個の系列データのいずれかの終端点ｘａに該当するか否かを、前記局所距離算出手段に判断させ、ｘが終端点ｘａに該当する場合には、局所距離ｄ（ｘａ，τ）の値として∞を設定させるプログラムであることを特徴とする請求項４に記載の類似系列区間検出プログラム。
【請求項６】
複数ｎ個の系列データＳｎ（ｔ）において、類似するデータを示す系列的な区間を、類似区間として検出する類似系列区間検出装置の類似系列区間検出プログラムであって、
前記ｎ個の系列データＳｎ（ｔ）のどの区間が、前記類似区間に該当するかを求める演算手段に、
前記ｎ個の系列データＳｎ（ｔ）を順番に連結して１つにまとめた連結系列データの始点と終点とを連結して円状系列データｆ（ｔ）を生成させるステップと
該円状系列データｆ（ｔ）に対して、ｔから区間長Ｔまで遡った範囲［ｔ，ｔ−Ｔ］の系列データを参照データＺ（τ）（１≦τ≦Ｔ）として設定させると共に、該参照データＺ（τ）以外の前記円状系列データｆ（ｔ）の残りの区間［ｔ，ｔ＋Ｌ−Ｔ−１］の系列データを入力データｇ（ｘ）（１≦ｘ≦Ｌ−Ｔ）として設定させるステップと、
連続ＤＰ処理を用いて、前記参照データＺ（τ）と前記入力データｇ（ｘ）とのスポッティング点（ｘ＊，τ＊）を求めさせるステップと、
求められたスポッティング点に至る最適パスを、連続ＤＰ処理において用いられる累積値のバックトレース処理によって求めさせることにより、前記参照データＺ（τ）の区間［１，τ＊］の系列データに類似する前記入力データｇ（ｘ）の類似区間を検出させるステップと、
ｔを１からＬまで変化させて、全てのｔに基づいて参照データと入力データとを設定して前記類似区間の検出処理を行わせることにより、前記円状系列データの全ての区間における類似区間の検出を行わせるステップと、
前記ｎ個の系列データＳｎ（ｔ）を連結して前記円状系列データを生成したときの連結位置および連結順番に関する情報に基づいて、前記円状系列データにおいて検出された前記類似区間が、前記ｎ個の系列データにおけるどの系列データのどの区間に該当するかを求めさせるステップと
を実行させるための類似系列区間検出プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、類似系列区間検出装置および類似系列区間検出プログラムに関し、より詳細には、複数の系列データに存在する類似した区間（類似した系列データ）を検出することが可能な類似系列区間検出装置および類似系列区間検出プログラムに関する。
【背景技術】
【０００２】
従来より、音声や動画などのような時系列的なデータにおいて、共通するデータ部分を検索することが通常的に行われている。このようなデータの検索には、一般的にクエリ（ｑｕｅｒｙ）を用いて検索が行われる。ここで、クエリとは、検索処理を行うために設定（入力）される文字列・データ列などを意味している。クエリを用いて検索を行うことにより、検索対象データからクエリに該当するデータ列などを求めることが可能となる。
【０００３】
例えば、クエリを用いて検索を行う方法として、検索対象となる系列的なデータにおいて、一定区間毎の特徴的なデータ分布を、ヒストグラムによって求めるActive Searchと呼ばれる方法(例えば、非特許文献１参照)が知られている。
【０００４】
しかしながら、音声や動画などの検索対象データには、各種の変形やノイズなどが存在するため、クエリと厳密に一致するデータだけを検索したのでは、所望のデータを検索することが困難であった。このため、クエリと厳密に一致する（exact matching）データだけでなく、検索対象データとなる系列的なデータにおいて、類似するデータ（類似する区間）を検出する方法が求められている。このような検索方法では、大規模となる検索対象データとクエリとの組を検索対象とする拡張クエリ（extended query）という考え方が導入されている。
【０００５】
この考え方を拡大・応用することによって、クエリとしてかなり長い時系列データを用いることができる。このため、長い時系列データのどの部分が厳密にクエリとして機能するかを、ユーザが予め認識しなくても、検索を行うことが可能である。この検索方法では、分節されていない長い記号列（自然言語文など）や、音声や動画などの特徴的な時系列データをクエリとして用いることができる。この検索方法として、Active Searchをベースに提案されたＲＩＦＡＳと呼ばれる方法（例えば、非特許文献２参照）が知られている。
【０００６】
Active SearchやＲＩＦＡＳでは、検索対象データの一定の固定区間長においてヒストグラムを求めて類似性を求めることを特徴としている。しかしながら、求められたヒストグラムが同じであっても、異なる時系列データを表す場合もある。例えば、一定の固定区間長において、データＡ，Ｂ，Ｃ，Ｄが時系列的に連続する場合には、データＡＢＣＤの順番で連続する場合であっても、データＢＡＤＣの順番で連続する場合あっても、データＣＤＡＢの順番で連続する場合あっても、同じヒストグラムとして検出されてしまう。この場合には、同じヒストグラムが検出されても、実際の時系列的なデータは異なったデータと判断される。このため、ヒストグラムが同一・類似したものであっても、区間系列におけるデータの類似性を正確に表すものとは言えなかった。
【０００７】
また、一般的に、検索対象データにおける類似区間が、系列の中で一定の固定長を持つとは限らない。しかしながら、Active SearchやＲＩＦＡＳでは、固定区間長におけるヒストグラムを求めるため、類似する系列において長さが異なる場合が考慮されていないという問題があった。
【０００８】
一方で、類似するデータと判断できる区間を検出する方法として、連続ＤＰ（Dynamic Programming:動的計画法）を用いて（例えば、非特許文献３参照）、系列における伸縮許容な距離に基づいて音声検出を行う方法が提案されている（非特許文献４参照）。連続ＤＰは、例えば、２つの系列データにおけるマッチング演算を行うことにより類似するデータ（対応するパターンデータ）の検出を行う方法である。
【０００９】
例えば、一方の系列データの要素ｎ１と比較対象となる他方の系列データの要素ｎ２との対応点で評価値を求める場合に、要素ｎ１の直前の要素（ｎ−１）１と、要素ｎ２の直前の要素（ｎ−１）２とを用いた、要素ｎ１と要素（ｎ−１）２との対応点、要素ｎ２と要素（ｎ−１）１との対応点、および要素（ｎ−１）１と要素（ｎ−１）２との対応点におけるそれぞれの評価値を用いて３種類の評価値を計算し、これらの３種類の評価値のうち最小となる対応点の評価値を記憶すると共に、最小の評価値をもたらした経路を記録する。この計算を全ての対応点について行い、全ての経路を記憶した後に、最小の評価値を示す経路（最適パス）を、バックトレース処理を用いて求めることにより、要素同士の対応関係において類似するデータのマッチングを求めることができる。
【００１０】
また、連続ＤＰをベースにして、２つの系列データにおいて、系列として類似するデータ（類似する区間）を検出するＲＩＦＣＤＰと呼ばれる方法（例えば、非特許文献５参照）が提案されている。ＲＩＦＣＤＰでは、各時刻で連続ＤＰによる出力求め、この出力に付随する最適履歴系列の中から部分系列を検出することを特徴としている。ＲＩＦＣＤＰでは、連続ＤＰをベースにしていることから、各時刻での連続ＤＰ出力に至る途中の累積値を記録しておき、全体履歴の任意の２点における累積値の差で部分区間の有無を判断する。ＲＩＦＣＤＰでは、検出する類似区間の長さが一定でない点で、Active SearchやＲＩＦＡＳとは異なっている。
【００１１】
しかしながら、ＲＩＦＣＤＰにおいて連続ＤＰにより求められる最適履歴系列は、対象となる２つの系列データの区間全体に基づいて得られるものである。このため、２つの系列データの全区間同士の最適マッチングを求めるために用いられる最適履歴系列では、２つの系列データの部分区間同士の最適マッチングを保証することができない。系列データの一部区間のデータが、区間全体に基づいて求められる履歴と最適にマッチングしていると判断することが困難である。さらに、２つの系列データの部分区間同士の最適マッチングを判断する場合には、全体履歴系列において任意の２点をとって部分区間を指定することになるが、この２点を指定するための組合せに関する問題が生じ得るという特徴があった。
【００１２】
また、上述したＲＩＦＡＳやＲＩＦＣＤＰは、２つの長い系列データにおける類似区間の検出を目的とする方法であり、複数の系列データにおける類似区間の検出を行う場合に最適な方法とは言えなかった。このような多数の系列データ間で類似するデータを検出する計算方法としてＲＤＤＳ法と呼ばれる方法が提案されている（例えば、非特許文献６参照）。
【先行技術文献】
【非特許文献】
【００１３】
【非特許文献１】柏野邦夫、ガビン・スミス、村瀬洋、「ヒストグラム特徴を用いた音響信号の高速探索法−時系列アクティブ探索法−」、電子情報通信学会論文誌、社団法人電子情報通信学会、Vol. J82-D-II、No. 9、1999年9月25日、p. 1365-1373
【非特許文献２】西村拓一、水野道尚、小木しのぶ、関本信博、岡隆一、「アクティブ探索法による時系列データ中の一致区間検出−参照区間自由時系列アクティブ探索法−」、電子情報通信学会論文誌、社団法人電子情報通信学会、Vol. J84-D-II、No. 8、2001年8月1日、p. 1826-1837
【非特許文献３】Ryuichi Oka, "Spotting method for classification of real world data", The Computer Journal, Vol. 41, No. 8, 1998年, p. 559-565
【非特許文献４】岡隆一、西村拓一、張建新、伊原正典、「フレーム特徴の音素記号化に基づく語彙に依存しない音声検索」、電子情報通信学会論文誌、社団法人電子情報通信学会、Vol. J86-D-II、No. 6、2003年6月1日、p. 764-775
【非特許文献５】伊藤慶明、木山次郎、小島浩、関進、岡隆一、「時系列標準パターンの任意区間によるスポッティングのためのReference Interval-free 連続ＤＰ(RIFCDP)」、電子情報通信学会論文誌、社団法人電子情報通信学会、Vol. J79-D-II、No. 9、1996年9月25日、p. 1474-1483
【非特許文献６】杉山雅英、「複数時系列中の類似セグメント高速探索法（情報検索）」、情報処理学会論文誌、社団法人情報処理学会、Vol. 49、No.1、2008年1月15日、p.487-496
【発明の概要】
【発明が解決しようとする課題】
【００１４】
ＲＤＤＳ法は、ＲＩＦＡＳを多系列に拡張した方法と見なすことができる。実世界では、単に２つの系列データの間だけではなく、多数の系列データにおいて存在する類似区間（類似する部分データ）の検出を行うことが求められる傾向がある。例えば、複数の話者が議論する場合に、複数の話者の発する音声の系列群の中に、類似する発話区間がどれだけあるかによって、議論される内容（話題）を推定することができる。また、多数の遺伝子の塩基系列の間で、類似する部分系列（類似する部分データ）がどこに存在するかを推定する場合に応用することも可能である。しかしながら、ＲＤＤＳ法を用いて計算処理を行う場合には、セグメント長（一定固定長であり、この区間でヒストグラムを作成する）のｎ乗（ｎは系列の個数）を上限とする計算量が必要になると想定されており、ｎが大きい場合には、演算処理負担が増大するという問題があった。
【００１５】
本発明は、上記問題に鑑みて成されるものであり、複数の系列データにおける類似する部分データの検索処理を行うにあたって、ヒストグラムを用いることなく、複数の系列データの間に存在する多様な長さを持つ類似区間の検出を、系列的なマッチングによって求めることが可能な類似系列区間検出装置および類似系列区間検出プログラムを提供することを課題とする。
【課題を解決するための手段】
【００１６】
上記課題を解決するために、本発明に係る類似系列区間検出装置および類似系列区間検出プログラムは、複数ｎ個の系列データＳｎ（ｔ）において、類似するデータを示す系列的な区間を、類似区間として検出する類似系列区間検出装置および類似系列区間検出プログラムであって、前記ｎ個の系列データＳｎ（ｔ）のどの区間が前記類似区間に該当するかを求める演算手段を備え、該演算手段は、前記ｎ個の系列データＳｎ（ｔ）を順番に連結して１つにまとめた連結系列データの始点と終点とを連結して円状系列データｆ（ｔ）を生成し、該円状系列データｆ（ｔ）に対して、ｔから区間長Ｔまで遡った範囲［ｔ，ｔ−Ｔ］の系列データを参照データＺ（τ）（１≦τ≦Ｔ）として設定すると共に、該参照データＺ（τ）以外の前記円状系列データｆ（ｔ）の残りの区間［ｔ，ｔ＋Ｌ−Ｔ−１］の系列データを入力データｇ（ｘ）（１≦ｘ≦Ｌ−Ｔ）として設定し、連続ＤＰ処理を用いて、前記参照データＺ（τ）と前記入力データｇ（ｘ）とのスポッティング点（ｘ＊，τ＊）を求め、求められたスポッティング点に至る最適パスを、連続ＤＰ処理において用いられる累積値のバックトレース処理によって求めることにより、前記参照データＺ（τ）の区間［１，τ＊］の系列データに類似する前記入力データｇ（ｘ）の類似区間を検出し、ｔを１からＬまで変化させて、全てのｔに基づいて参照データと入力データとを設定して前記類似区間の検出処理を行うことにより、前記円状系列データの全ての区間における類似区間の検出を行い、前記ｎ個の系列データＳｎ（ｔ）を連結して前記円状系列データを生成したときの連結位置および連結順番に関する情報に基づいて、前記円状系列データにおいて検出された前記類似区間が、前記ｎ個の系列データにおけるどの系列データのどの区間に該当するかを求めることを特徴とする。
【００１７】
さらに、本発明に係る類似系列区間検出装置および類似系列区間検出プログラムは、複数ｎ個の系列データＳｎ（ｔ）において、類似するデータを示す系列的な区間を、類似区間として検出する類似系列区間検出装置および類似系列区間検出プログラムであって、連結系列データ生成手段に、記録手段に記録される前記ｎ個の系列データＳｎ（ｔ）を順番に連結して１つにまとめられた連結系列データを生成させるともに、該連結系列データの全体の系列的な長さＬと、前記ｎ個の系列データＳｎ（ｔ）の連結順番および連結位置に関する情報とを、前記記録手段に記録させる連結系列データ生成ステップと、円状系列データ生成手段に、前記連結系列データの始点と終点とを連結して円状を成す円状系列データｆ（ｔ）を生成させる円状系列データ生成ステップと、データ設定手段に、前記円状系列データｆ（ｔ）において類似区間と想定され得る最大の区間長をＴとして、前記円状系列データｆ（ｔ）より区間［ｔ−Ｔ，ｔ−１］の範囲で遡って系列データを抽出させることによって、参照データＺ（τ）（１≦τ≦Ｔ）を設定させるとともに、前記参照データＺ（τ）以外の前記円状系列データｆ（ｔ）の残りの区間［ｔ，ｔ＋Ｌ−Ｔ−１］の系列データを入力データｇ（ｘ）（１≦ｘ≦Ｌ−Ｔ）として設定させるデータ設定ステップと、局所距離算出手段に、前記参照データＺ（τ）と前記入力データｇ（ｘ）との局所距離ｄ（ｘ，τ）（＝‖ｇ（ｘ）−Ｚ（τ）‖）を、連続ＤＰ処理に基づいて求めさせる局所距離算出ステップと、正規化処理手段に、前記局所距離算出ステップにおいて求められた局所距離ｄ（ｘ，τ）に基づいて、連続ＤＰ処理における漸化式を用いて、局所距離の最小値Ｄ（ｘ，τ）を求めさせると共に、求められた局所距離の最小値Ｄ（ｘ，τ）を傾斜制限に基づいて決定される漸化式の重み付け係数ｋとτとで除算することにより、前記最小値Ｄ（ｘ，τ）を正規化したＡ（ｘ，τ）（＝Ｄ（ｘ，τ）／（ｋ×τ））を求めさせる正規化処理ステップと、スポッティング点算出手段に、前記Ａ（ｘ，τ）が予め設定される閾値ｈ以下となるτ（ｘ）を、ｘの前後αの区間［ｘ−α，ｘ＋α］からなるｘの局所間隔（local interval of x）で算出させ、算出されたτ（ｘ）に基づいて、前記参照データＺ（τ）と前記入力データｇ（ｘ）とにおけるスポッティング点（ｘ＊，τ＊）を、類似区間の最小の区間長を定める係数τ０を用いて、
【数１】
2014153984.tif 000003
に基づいて算出させるスポッティング点算出ステップと、部分類似区間検出手段に、前記スポッティング点（ｘ＊，τ＊）に至る最適パスを、連続ＤＰ処理における累積値のバックトレース処理によって求めさせることにより、前記区間［ｘ−α，ｘ＋α］において、前記参照データＺ（τ）の区間［１，τ＊］に類似する前記入力データｇ（ｘ）の類似区間を求めさせる部分類似区間検出ステップと、全体類似区間検出手段により、前記部分類似区間検出ステップにおいて求められた前記区間［ｘ−α，ｘ＋α］の前記入力データｇ（ｘ）における類似区間を、全てのｘについて求めさせることにより、ｘの全区間における前記入力データｇ（ｘ）の類似区間を求めさせる全体類似区間検出ステップと、円状類似区間検出手段に、前記円状系列データｆ（ｔ）のｔの値を、１からＬへと順番に増加させることにより、前記データ設定ステップにおいて、全てのｔに対応する参照データＺ（τ）と入力データｇ（ｘ）とを設定させると共に、前記全体類似区間検出ステップにおいて、全てのｔに対応する入力データｇ（ｘ）の類似区間を求めさせることにより、円状系列データの全ての区間において類似区間の検出を行わせる円状類似区間検出ステップと、複数系列類似区間検出手段に、前記円状類似区間検出ステップにおいて検出された類似区間が、前記ｎ個の系列データにおけるどの系列データのどの区間に該当するかを、前記記録手段に記録された前記連結順番および前記連結位置に関する情報に基づいて求めさせることにより、ｎ個の系列データにおける類似区間の検出を行わせる複数系列類似区間検出ステップとを実行させることを特徴とする。
【００１８】
ここで、系列データとは、音楽データや動画データのような時間要素を備えた系列的なデータ（以下、時系列データとする。）や、遺伝子の塩基系列のような遺伝子データや、自然言語文などのような分節されていない長い記号列などが該当する。また、静止画像についても、行または列を連結することにより１つの系列データとして扱うことができる。
【００１９】
本発明に係る類似系列区間検出装置および類似系列区間検出プログラムでは、ｎ個の系列データＳｎ（ｔ）を順番に連結して円状の円状系列データｆ（ｔ）を生成し、円状系列データｆ（ｔ）に対して、区間長Ｔの参照データＺ（τ）と、その他の区間からなる入力データｇ（ｘ）とを設定し、連続ＤＰ処理を用いて、参照データＺ（τ）と入力データｇ（ｘ）との類似区間の検出（類似区間のマッチング）を行うことを特徴とする。このため、複数（ｎ個）の系列データにおいて類似区間の検出処理を行う場合であっても、系列データの個数に依存することなく連続ＤＰ処理を適用することが可能となる。
【００２０】
また、連続ＤＰ処理を用いて、参照データＺ（τ）と入力データｇ（ｘ）との類似区間の検出を行うことができるので、類似区間を固定区間に限定することなく、一定の伸縮の範囲を考慮した類似区間の検出を行うことができる。このため、類似区間の検出を、厳密に一致する（exact matching）データだけに限定するのではなく、好適に類似範囲や類似内容が拡張されたデータ（拡張クエリ：extended query）まで許容して、類似区間の検出を行うことが可能となる。
【００２１】
さらに、本発明に係る類似系列区間検出装置および類似系列区間検出プログラムでは、円状系列データを用いて連続ＤＰ処理を行う拡張された連続ＤＰ処理（以下、Circle連続ＤＰとする）を用いて類似区間の検出を行う。Circle連続ＤＰを用いることにより、ヒストグラムを用いた類似区間の検出とは異なり、複数の系列間に存在する多様な長さを持つ類似区間の検出を行うことが可能となる。このため、ヒストグラムをベースとした類似区間の検出のように、ヒストグラムが同じであっても類似区間に該当しない場合や、類似区間の区間長が一致しないことにより類似区間として検出できない場合等の問題が生じることがない。
【００２２】
また、ヒストグラムにより類似区間を検出するのではなく、連続ＤＰ処理を用いて類似区間の検出を行うため、セグメント長のｎ乗の計算量が想定される従来の検出手法よりも、計算量を低減することが可能である。Circle連続ＤＰを用いる方法では、演算を、円状系列データにおける全区間長Ｌの２乗オーダーの計算量に抑えることができ、対象とする時系列データの全系列数ｎには依存しない。このため、Circle連続ＤＰによる類似区間の検出方法を、系列数が増大する大規模な時系列データ処理に適したアルゴリズムとして利用することができる。
【００２３】
さらに、Circle連続ＤＰを用いて類似区間の検出を行うことにより、ｔに基づいて円状系列データから参照データと入力データとが抽出され、さらにｔを１からＬまで増加させることにより、円状系列データの全ての区間において、参照データと入力データとを設定することができるので、結果として、複数の系列データの全ての区間において類似区間の検索処理を行うことが可能となる。さらに、複数の系列データが円状に連結された円状系列データに基づいて類似区間の検出が行われるため、類似区間が異なる系列データに存在する場合であっても、同じ系列データ（１つの系列データ）の中に複数の類似区間が存在する場合であっても、適切に類似区間を検出することができる。
【００２４】
また、本発明に係る類似系列区間検出装置および類似系列区間検出プログラムでは、局所距離の最小値Ｄ（ｘ，τ）を傾斜制限に基づいて決定される漸化式の重み付け係数ｋとτとで除算することにより、最小値Ｄ（ｘ，τ）を正規化したＡ（ｘ，τ）を求め、求められたＡ（ｘ，τ）に基づいて参照データＺ（τ）と入力データｇ（ｘ）のスポッティング点（ｘ＊，τ＊）を求めることを特徴とする。
【００２５】
従来の連続ＤＰ処理では、比較対象となる参照データの全体の区間長Ｔを用いて、最小値Ｄ（ｘ，τ）を重み付け係数ｋとＴとで割る方法を用いることが通常であった。しかしながら、区間長Ｔは、想定される類似する区間の最大の長さに基づいて設定される値であり、実際に類似区間は、区間長Ｔよりも短くなる可能性が高い。このため、最小値Ｄ（ｘ，τ）をＴで割る方法では、連続ＤＰにおける参照データとして、類似する区間以外の区間をも含んだ全区間を基準として、入力データとのマッチング処理を行ってしまうことになり、類似した区間同士の最適なマッチングを保証することができなくなってしまうおそれがある。
【００２６】
一方で、本発明に係るCircle連続ＤＰでは、τが取り得る範囲である区間［１，Ｔ］の中（１≦τ≦Ｔの中）で、Ｄ（ｘ，τ）／（ｋ×τ）の最小値をとるτ＊を用いることで、最大の区間長Ｔの範囲ではなく、より短い区間［１，τ＊］を基準として類似区間の検出を行うことが可能となり、類似する区間の検出精度（マッチング精度）を向上させることが可能となる。
【００２７】
また、上述した類似系列区間検出装置において、前記局所距離算出手段は、前記局所距離ｄ（ｘ，τ）を求める場合において、前記記録手段に記録された前記ｎ個の系列データにおける前記連結位置の情報に基づいて、前記局所距離ｄ（ｘ，τ）におけるｘが、前記ｎ個の系列データのいずれかの終端点ｘａに該当するか否かを判断し、ｘが終端点ｘａに該当する場合には、局所距離ｄ（ｘａ，τ）の値として∞を設定するものであってもよい。
【００２８】
さらに、上述した類似系列区間検出プログラムは、前記局所距離算出ステップにおいて、前記局所距離算出手段が、前記局所距離ｄ（ｘ，τ）を求める場合に、前記ｎ個の系列データにおける前記連結位置の情報に基づいて、前記局所距離ｄ（ｘ，τ）におけるｘが、前記ｎ個の系列データのいずれかの終端点ｘａに該当するか否かを、前記局所距離算出手段に判断させ、ｘが終端点ｘａに該当する場合には、局所距離ｄ（ｘａ，τ）の値として∞を設定させるプログラムであってもよい。
【００２９】
本発明に係る円状系列データｆ（ｔ）は、複数の系列データが連結された円状のデータである。このため、例えば、検出された区間が、ある系列データの終端点（ｘａとする）に該当する場合に、次に連結された時系列データの始端点（ｘｂとする）にも該当することになる。このため、終端点ｘａにおける局所距離ｄ（ｘａ，τ）の値と、始端点ｘｂにおける局所距離ｄ（ｘｂ，τ）の値とは、同じ値となってしまい、重複した計算を行うことになってしまう。従って、ｘが終端点ｘａに該当する場合には、終端点ｘａにおける局所距離ｄ（ｘａ，τ）を∞に設定すること（ｄ（ｘａ，τ）＝∞）により、局所距離の最小値Ｄ（ｘ，τ）の計算等の重複を防止することが可能となる。このように始端点と終端点とにおける重複検出を防止することにより、一度検出された類似区間を円状系列データにおける検索対象データから除くことができ、Circle連続ＤＰによる計算処理の負担を軽減することが可能となる。
【発明の効果】
【００３０】
本発明に係る類似系列区間検出装置および類似系列区間検出プログラムでは、ｎ個の系列データＳｎ（ｔ）を順番に連結して円状の円状系列データｆ（ｔ）を生成し、円状系列データｆ（ｔ）に対して、区間長Ｔの参照データＺ（τ）と、その他の区間からなる入力データｇ（ｘ）とを設定し、連続ＤＰ処理を用いて、参照データＺ（τ）と入力データｇ（ｘ）との類似区間の検出（類似区間のマッチング）を行うことを特徴とする。このため、複数（ｎ個）の系列データにおいて類似区間の検出処理を行う場合であっても、系列データの個数に依存することなく連続ＤＰ処理を適用することが可能となる。
【００３１】
また、連続ＤＰ処理を用いて、参照データＺ（τ）と入力データｇ（ｘ）との類似区間の検出を行うことができるので、類似区間を固定区間に限定することなく、一定の伸縮の範囲を考慮した類似区間の検出を行うことができる。このため、類似区間の検出を、厳密に一致する（exact matching）データだけに限定するのではなく、好適に類似範囲や類似内容が拡張されたデータ（拡張クエリ：extended query）まで許容して、類似区間の検出を行うことが可能となる。
【００３２】
さらに、本発明に係る類似系列区間検出装置および類似系列区間検出プログラムでは、円状系列データを用いて連続ＤＰ処理を行う拡張された連続ＤＰ処理（以下、Circle連続ＤＰとする）を用いて類似区間の検出を行う。Circle連続ＤＰを用いることにより、ヒストグラムを用いた類似区間の検出とは異なり、複数の系列間に存在する多様な長さを持つ類似区間の検出を行うことが可能となる。このため、ヒストグラムをベースとした類似区間の検出のように、ヒストグラムが同じであっても類似区間に該当しない場合や、類似区間の区間長が一致しないことにより類似区間として検出できない場合等の問題が生じることがない。
【００３３】
また、ヒストグラムにより類似区間を検出するのではなく、連続ＤＰ処理を用いて類似区間の検出を行うため、セグメント長のｎ乗の計算量が想定される従来の検出手法よりも、計算量を低減することが可能である。Circle連続ＤＰを用いる方法では、演算を、円状系列データにおける全区間長Ｌの２乗オーダーの計算量に抑えることができ、対象とする時系列データの全系列数ｎには依存しない。このため、Circle連続ＤＰによる類似区間の検出方法を、系列数が増大する大規模な時系列データ処理に適したアルゴリズムとして利用することができる。
【００３４】
さらに、Circle連続ＤＰを用いて類似区間の検出を行うことにより、ｔに基づいて円状系列データから参照データと入力データとが抽出され、さらにｔを１からＬまで増加させることにより、円状系列データの全ての区間において、参照データと入力データとを設定することができるので、結果として、複数の系列データの全ての区間において類似区間の検索処理を行うことが可能となる。さらに、複数の系列データが円状に連結された円状系列データに基づいて類似区間の検出が行われるため、類似区間が異なる系列データに存在する場合であっても、同じ系列データ（１つの系列データ）の中に複数の類似区間が存在する場合であっても、適切に類似区間を検出することができる。
【図面の簡単な説明】
【００３５】
【図１】実施の形態に係る検出装置の概略構成を示したブロック図である。
【図２】（ａ）は、複数の時系列データを示した概念図であり、（ｂ）は、複数の時系列データが連結されて１つにまとめられた時系列データを示した概念図である。
【図３】１つにまとめられた時系列データの始点と終点とを連結して、円状時系列データを生成し、生成された円状時系列データに参照窓を設けて参照データを決定し、シフト処理により円状時系列データをシフトさせる処理を説明するための図である。
【図４】実施の形態に係る参照データと入力データとを用いた連続ＤＰによる処理内容を説明するための概念図である。
【図５】Circle連続ＤＰにおける傾斜制限の局所パスを説明するための図である。
【図６】Circle連続ＤＰにおける演算開始時の参照データと入力データとのデータ配置を示した概念図である。
【図７】Circle連続ＤＰにおける最終演算時の参照データと入力データとのデータ配置を示した概念図である。
【図８】実施の形態に係る参照データと入力データとを用いた連続ＤＰにおいて、スポッティング点を決定するための処理を説明するための概念図である。
【図９】実施の形態に係るＣＰＵの処理内容を示したフローチャートである。
【発明を実施するための形態】
【００３６】
以下、本発明に係る類似系列区間検出装置について、図面を用いて詳細に説明を行う。
【００３７】
図１は、類似系列区間検出装置の一例である検出装置の概略構成を示したブロック図である。検出装置１は、一般的なコンピュータにより構成することができ、図１に示すように、ＣＰＵ(Central Processing Unit）（演算手段、連結系列データ生成手段、円状系列データ生成手段、データ設定手段、局所距離算出手段、正規化処理手段、スポッティング点算出手段、部分類似区間検出手段、全体類似区間検出手段、円状類似区間検出手段、
複数系列類似区間検出手段）２と、ＲＯＭ（Read Only Memory）３と、ＲＡＭ（Random Access Memory）（記録手段）４と、記録部（記録手段）５と、ディスプレイ部６と、操作部７とにより概略構成されている。
【００３８】
ＣＰＵ２は、複数の系列データの中から類似する部分データの検出を行う機能を有している。ＣＰＵ２は、後述する処理プログラム（例えば、図９のフローチャートに基づくプログラム）に従って、類似する部分データの検出処理を行う。
【００３９】
本実施の形態に係る検出装置１では、系列データとして時系列データ（時間要素を備えた系列的なデータ）を一例として示して説明を行う。時系列データとして、例えば、音声データや動画データなどのような時系列的に内容が変化し得るデータが該当する。動画データの場合には、動画データの１フレーム毎の画像データを走査線に沿って複数に分割することにより１画面を時系列データとしてとらえることができ、音声データと同様の時系列データとして捉えることができる。
【００４０】
また、静止画像についても、行または列を連結することにより１つの時系列データとして扱うことができる。本実施の形態に係る検出装置１を用いることにより、複数の静止画像の間において、背景に依存しない類似部分画像の抽出を行うことが可能になる。このような背景に依存しない類似部分の抽出処理は、画像処理においてもっとも困難な処理であるとされている。
【００４１】
さらに、本実施の形態において用いる時系列データは、時系列的に有限なデータを前提とする。また、時系列データにおいて検索対象とするデータの時系列的な長さ（データの時系列的な部分）を「区間」という表現を用いて説明を行う。
【００４２】
ＲＡＭ４は、ＣＰＵ２の処理に利用されるワークエリアとして用いられる。ＲＯＭ３には、時系列データにおける類似する区間の検出処理に関するプログラム等が記録されている。ＣＰＵ２は、ＲＯＭ３より読み込んだプログラムに従って、類似する区間の検出処理を行う。
【００４３】
記録部５には、複数の時系列データなどが記録されている。本実施の形態に係る記録部５は、一般的なハードディスクにより構成されている。なお、記録部５の構成は、ハードディスクだけに限定されるものではなく、フラッシュメモリ、ＳＳＤ（Solid State Drive / Solid State Disk）などのように、複数の時系列データを、ＣＰＵ２によって読み出し可能な状態で記録することが可能であり、後述する連結位置や連結順番に関する情報を記録することが可能なものであるならば、具体的な構成は特に限定されるものではない。
【００４４】
なお、本実施の形態に係る検出装置１では、ＣＰＵ２において実行されるプログラム（類似する区間の検出処理に関するプログラム：図９参照）を、ＲＯＭ３に記録する構成として説明を行うが、これらのプログラムは、記録部５に記録されるものであってもよい。
【００４５】
ディスプレイ部６は、記録部５に記録される時系列データなどをユーザに対して視認可能に表示させ、また、ＣＰＵ２による類似する区間の検出処理結果を表示させる役割を有している。ディスプレイ部６には、液晶ディスプレイや、ＣＲＴディスプレイなどの一般的な表示装置が用いられる。
【００４６】
操作部７は、ユーザが検出装置１を操作するために必要なデータの入力や、検出装置１の具体的な操作などを行う場合に用いられる装置であって、一般的なキーボードやマウスなどにより構成される。
【００４７】
ＣＰＵ２は、ＲＯＭ３より演算処理に必要なプログラムを読み取り、読み取ったプログラムに従って、記録部５に記録される複数の時系列データを読み出して、類似する区間の検出処理を行う。以下に、ＣＰＵ２が行う処理の内容を説明し、その後、ＣＰＵ２の具体的な処理手順を、フローチャートを示して説明する。
【００４８】
まず、ＣＰＵ２が行う処理内容を理解するための考え方について説明する。ＣＰＵ２では、複数の時系列データにおいて類似する部分的なデータ（類似区間）が存在するか否かを判断し、類似する区間が存在する場合には類似する部分の検出を行う。このような類似する区間を検出するために、本実施の形態に係る検出装置１では、Circle連続ＤＰと呼ばれる処理方法を用いる。
【００４９】
図２（ａ）は、複数の時系列データ（系列データＳｎ（ｔ））を示した概念図であり、図２（ａ）には、Ｓ１（ｔ）からＳｎ（ｔ）までのｎ個の時系列データが示されている。時系列データの個数は特に限定されないが、本実施の形態では、ｎを３以上の数とする。各時系列データはそれぞれ一定の時系列的な長さを備えており、時間ｔの関数として示すことが可能となっている。なお、図２（ａ）に示されるｎ個の時系列データの長さは、便宜上同じ長さで示されているが、各時系列データの長さは、必ずしも全て同じ長さとは限らず、それぞれ異なる長さであってもよい。
【００５０】
各時系列データには、類似した部分データが含まれているものとする。図２（ａ）において、［Ａ］，［Ｂ］，［Ｃ］で示される区間は、それぞれ類似した区間を示している。ここで、類似する区間とは、時系列データにおける部分的なデータが類似していることを意味しており、必ずしも類似する区間の長さが同じであるとは限らない。また、類似する区間は、異なる時系列データとの関係で存在するだけでなく、同じ時系列データにおいても存在する可能性があるものとする。図２（ａ）では、説明の便宜上、［Ａ］，［Ｂ］，［Ｃ］で示される類似する区間を図示しているが、実際の時系列データでは、類似する区間の有無や、その個数、その位置等に関する情報が不明である。
【００５１】
ＣＰＵ２では、類似する区間の検出処理を行う初めの処理として、図２（ｂ）に示すように、複数の時系列データを連結して１つの時系列データ（連結系列データ）にまとめる処理（連結系列データ生成処理）を行う。複数の時系列データを連結して１つの時系列データにまとめる場合に、ＣＰＵ２では、まとめられた時系列データのどの部分が、連結する前の複数の時系列データのどの部分に該当するかを判断できるように、まとめられた時系列データにおける連結位置や、連結された複数の時系列データの連結順番などの情報を、記録部５あるいはＲＡＭ４などに記録する。このようにして記録された情報に基づいて、ＣＰＵ２は、類似する区間が複数の時系列データのどの部分に該当するかを、最終的に判断することが可能となる。
【００５２】
次に、ＣＰＵ２は、まとめられた時系列データの始点と終点とを連結して、円状（環状）の時系列データ（円状系列データ）を生成する（円状系列データ生成処理）。ＣＰＵ２では、円状に連結された時系列データ（以下、円状時系列データと称する。円状系列データの一例に該当する）を、Circle連続ＤＰにおける直接的な検索対象として、類似する区間の検出処理を行う。なお、ＣＰＵ２は、Circle連続ＤＰを用いた処理において、円状時系列データを１つの時系列データとして用いるため、処理を行う最中に、連結前の複数の時系列データの個別の時系列を全く考慮する必要がない。ＣＰＵ２では、Circle連続ＤＰを用いて、円状時系列データにおける類似する区間を全て検出した後に、連結前の複数の時系列データのどの位置（時系列位置）に、類似する区間が属するかを最終的な処理として判断する。類似する区間がどの時系列データに属するか否かは、複数の時系列データを連結した際に、記録部５あるいはＲＡＭ４に記録した連結位置や連結順番に関する情報から、容易に判断することが可能である。
【００５３】
図３は、Circle連続ＤＰの処理内容を示した概念図である。円状時系列データに変形する前の時系列データ（まとめられた時系列データ）の全体の長さを、説明の便宜上、区間長Ｌとする（図３の左上図参照）。まとめられた時系列データは、ｔの関数であるため、ｔ＝１からｔ＝ＬまでのＬ個のフレームによりデータが形成されていると考えることができる。円状時系列データは、まとめられた時系列データの始点と終点とが連結されたものであるため、区間長Ｌの円状のデータとなる（図３の右上図参照）。
【００５４】
Circle連続ＤＰでは、区間長Ｔの部分的な時系列データを円状時系列データから参照する。この区間長Ｔは、円状時系列データの一部を構成するため、円状時系列データに対して、区間長Ｔの参照用の窓（以下、参照窓（reference window）と称する。）を設定したものと考えることができる（図３の左下図参照）。この区間長Ｔの長さの部分的な時系列データを、Circle連続ＤＰにおける参照データとする。
【００５５】
ここで、区間長Ｔは、区間長Ｌよりも短い区間長であって（つまり、Ｔ＜Ｌ）、さらに、円状時系列データの類似する区間において想定され得る最大の長さ（区間長）に設定される。すなわち、上述したように、類似する区間の区間長は、必ずしも一定でなく、さらに類似する区間の区間長が全て同じ長さになるわけではない。このため、区間長Ｔを、Circle連続ＤＰにおいて検出され得る類似する区間の最大の長さにすることにより、異なる長さからなる全ての類似する区間を検出することが可能となる。
【００５６】
参照データ以外の円状時系列データをCircle連続ＤＰにおける入力データとする。このようにして参照データと入力データとを設定し（データ設定処理）、参照データと入力データとを用いて連続ＤＰ処理を行うことにより、参照データに類似する区間が入力データに存在するか否かを判断することが可能となり、結果として、円状時系列データにおける類似する区間の検出を行うことが可能となる。参照データは、参照窓により設定されるデータであるため、連続ＤＰによる演算が終了した後に、円状時系列データを時計回りに１フレームだけシフトすることによって、参照窓により特定される参照データの区間も１フレーム分だけシフトすることができる（図３の右下図参照）。このように参照データの区間を１フレームずつシフトさせつつ、特定される参照データと入力データ（円状時系列データにおいて参照データ以外の区間のデータ）とを用いて連続ＤＰの演算を行い、１フレーム毎のシフトを円状時系列データが１周するまで繰り返し行うことにより、円状時系列データ全体において類似する区間の検出を行うことが可能となる。
【００５７】
図４は、参照データと入力データとを用いた連続ＤＰの処理内容を説明するための概念図である。図４の縦軸に参照データを示し、横軸に入力データを示している。本実施の形態では、円状時系列データを、時間ｔの関数としてｆ（ｔ）で表すものとする。また、参照データを、τの関数としてＺ（τ）で示し、入力データをｘの関数としてｇ（ｘ）で表すものとする。
【００５８】
ここで、円状時系列データｆ（ｔ）の長さはＬであるため、ｔは、１≦ｔ≦Ｌとなる。また、円状時系列データは、まとめられた時系列データの始点と終点とが連結されたものであるため、ｔがＬまで達して終点位置に到達した場合には、円状時系列データが始点位置の円状時系列データに戻ることになる。つまり、円状時系列データｆ（Ｌ＋ｔ）＝ｆ（ｔ）が成立する。
【００５９】
また、入力データｇ（ｘ）は、円状時系列データにおいて参照データ以外の区間のデータに該当するため、ｘは、１，２，・・・，Ｌ−Ｔの値となる。また。入力データｇ（ｘ）は、円状時系列データｆ（ｔ）との関係において、時間ｔを基準として、ｇ（ｘ）＝ｆ（ｔ＋ｘ−１）が成立するものとする。
【００６０】
これらを整理すると、
円状時系列データ：ｆ（ｔ）  但し、１≦ｔ≦Ｌ
Ｌは、円状時系列データの全体長
円状であるため、ｆ（Ｌ＋ｔ）＝ｆ（ｔ）
入力データ：ｇ（ｘ）  但し、ｘ＝１，２，・・・，Ｌ−Ｔ
Ｔは、参照データの区間長
また、時間ｔにおいて、ｇ（ｘ）＝ｆ（ｔ＋ｘ−１）
一方で、参照データＺ（τ）は、区間長がＴであるため、τが、１，２，・・・，Ｔとなる。
参照データ：Ｚ（τ）  但し、τ＝１，２，・・・，Ｔ
【００６１】
また、後述する連続ＤＰを用いて参照データに類似する入力パターンｇ（ｘ）の区間の対応を求める場合、参照データの時系列中の座標点τ＊がまず定まる（詳細については、後述するスポッティング点の検出処理において説明する）が、この参照データの区間［１，τ＊］のデータは、円状時系列データｆ（ｔ）の区間［ｔ−τ＊，ｔ−１］とする。本実施の形態では、参照データにおいてτが増大する方向のデータ系列が、円状時系列データｆ（ｔ）のｔの増大する方向のデータ系列や、入力データｇ（ｘ）のｘの増大する方向のデータ系列に比べて流れが逆転することを特徴としている。
【００６２】
参照データの区間［１，τ＊］のデータが、連続ＤＰにおける横軸ｘの入力データｇ（ｘ）の区間［ｘ１，ｘ２］に対応する場合、その区間［ｘ１，ｘ２］（入力データｇ（ｘ）の区間）は、円状時系列データｆ（ｔ）における［ｔ＋ｘ１−１，ｔ＋ｘ２−１］の区間に該当する。また、連続ＤＰによって、参照データＺ（τ）に対応する入力データｇ（ｘ）の類似する区間（部分系列）が求められる場合、求められる区間は１つに限定されず、複数の区間において検出される場合もある。図４に示した概念図では、参照データＺ（τ）に対応する入力データｇ（ｘ）の類似する区間（類似区間）として、２つの区間が検出される場合を一例として示している。
【００６３】
ＣＰＵ２が、入力データｇ（ｘ）において参照データＺ（τ）に類似する区間が存在するか否かを判断する場合には、最小となる局所距離を求める（局所距離算出処理）。入力データｇ（ｘ）と参照データＺ（τ）との局所距離はｄ（ｘ，τ）で示すことができ、以下の式で定義される。
ｄ（ｘ，τ）＝‖ｇ（ｘ）−Ｚ（τ）‖
１≦ｘ≦Ｌ−Ｔ，１≦τ≦ｔ
但し、ｘまたはτが、連結前の複数の時系列データのいずれかのデータの終端点に該当する場合には、ｄ（ｘ，τ）＝∞になるように設定が行われる。
【００６４】
より詳細に説明すると、円状時系列データｆ（ｔ）は、複数の時系列データが連結された円状のデータである。このため、例えば、検出された区間がある時系列データの終端点（ｘａとする）に該当する場合には、次に連結された時系列データの始端点（ｘｂとする）にも該当することになる。このため、終端点ｘａにおける局所距離ｄ（ｘａ，τ）の値と、始端点ｘｂにおける局所距離ｄ（ｘｂ，τ）の値とは、同じ値となってしまい、重複した計算を行うことになってしまう。従って、ＣＰＵ２では、ｘまたはτが終端点ｘａに該当する場合には、終端点ｘａにおける局所距離ｄ（ｘａ，τ）を∞とすること（ｄ（ｘａ，τ）＝∞）により、次述する局所距離の最小値Ｄ（ｘ，τ）の計算等の重複を防止することが可能となる。
【００６５】
このように始端点と終端点とにおける重複検出を防止することにより、一度検出された類似区間を円状時系列データにおける検索対象データから除くことができ、Circle連続ＤＰによるＣＰＵ２の計算処理の負担を軽減することが可能となる。
【００６６】
また、本実施の形態に係るCircle連続ＤＰにおいて適用される評価関数は、次のようになる。まず、局所距離（評価関数）の最小値Ｄ（ｘ，τ）を次の式（１）で定める。
【数２】
2014153984.tif 000004
但し、ｉ∈［１，Ｔ］，τ（ｊ）∈［１，ｉ］，ｘ（ｊ）∈［１，Ｌ−Ｔ］，τ＝τ（ｉ），
ｒｊ：τ（ｊ）→ｘ（ｊ），ｘ（ｊ）＝ｒｊ（τ（ｊ）），
ｒ＝（ｒ１，ｒ２，・・・，ｒｉ）
ここで、関数ｒの要素ｒｊは、τ（ｊ）からｘ（ｊ）への写像を示している。従って、ｘ（ｊ）に対して、ｘ（ｊ）＝ｒｊ（τ（ｊ））の関係が成立する。
【００６７】
また、図５は、Circle連続ＤＰで用いる傾斜制限の局所パスの集合を示した図である。図５に示す傾斜制限に基づいて、参照データと入力データとの非線形対応が１／２倍から２倍までの伸縮の範囲で求められることになる。
【００６８】
ＣＰＵ２は、上述した局所距離の最小値Ｄ（ｘ，τ）の計算を行うために、以下の漸化式を用いる。
ｆｏｒ ｘ（１≦ｘ≦Ｌ−Ｔ）
τ＝１： Ｄ（ｘ，１）＝３ｄ（ｘ，１）
２≦τ≦Ｔ：
【数３】
2014153984.tif 000005
【００６９】
この処理において、ＣＰＵ２は、局所距離の最小値Ｄ（ｘ，τ）を求めるために、各ｘについて、τが１の場合には、Ｄ（ｘ，１）＝３ｄ（ｘ，１）とし、τが２≦τ≦Ｔの場合には、式（２）の示す漸化式のうち、最小の値となる漸化式を用いて、Ｄ（ｘ，τ）を求め、この演算処理を、ｘの１≦ｘ≦Ｌ−Ｔの範囲で繰り返し実行する。
【００７０】
式（２）の漸化式は、図５に示した傾斜制限の局所パスに対応した数式である。例えば、式（２）における２番目の項のみを使ってＤ（ｘ，τ）を求めると、参照データと入力データとの線形マッチングを求めることになる。
【００７１】
また、Ｄ（ｘ，τ）およびｄ（ｘ，τ）における境界条件として、ｘが０以下の場合（ｘ≦０）、ｘがＬ−Ｔよりも大きい値の場合（ｘ＞Ｌ−Ｔ）、およびτが１からＴの範囲に含まれない場合のいずれかに該当する場合には、Ｄ（ｘ，τ）＝ｄ（ｘ，τ）＝∞とする。
【数４】
2014153984.tif 000006
【００７２】
Circle連続ＤＰにおいて、局所距離の最小値Ｄ（ｘ，τ）を求める処理は、円状時系列データに変形する前の時系列データ（まとめられた時系列データ）の全体区間長Ｌに対応して実行され、時系列データｆ（ｔ）のｔ毎に実行されることになる。従って最小値Ｄ（ｘ，τ）を求める計算は、Ｌ回行われることになり、さらに各ｔにおいて、範囲［１，Ｌ−Ｔ］のｘの全ての値と、範囲［１，Ｔ］のτの全ての値とについて、漸化式が計算されることになる。
【００７３】
また、時間ｔがｔ＋１へと更新されると、Circle連続ＤＰにおける参照データＺ（τ）および入力データｇ（ｘ）も、ｔに伴って更新されることになる。参照データＺ（τ）および入力データｇ（ｘ）の更新は、以下の順番で更新される。
Ｆｉｒｓｔ，Ｚ（１）＝ｇ（１）（＝ｆ（１））
Ｓｅｃｏｎｄ，ｆｏｒ  ｘ＝１，２，・・・，Ｌ−Ｔ−１，ｇ（ｘ）＝ｇ（ｘ＋１）
Ｔｈｉｒｄ，ｇ（Ｌ−Ｔ）＝Ｚ（Ｔ）
Ｆｉｎａｌ，ｆｏｒ  τ＝２，３，・・・，Ｔ，Ｚ（τ）＝Ｚ（τ−１）
【００７４】
まず初めに、Ｚ（１）＝ｇ（１）（＝ｆ（１））とし、次に、ｘを１から順番にＬ−Ｔ−１まで増加させるときにｇ（ｘ）＝ｇ（ｘ＋１）として、ｇ（ｘ）をｇ（ｘ＋１）へと順番に更新する。その後に、ｇ（Ｌ−Ｔ）＝Ｚ（Ｔ）として、最後に、τが２から順番にＴまで増加させるときにＺ（τ）＝Ｚ（τ−１）として、Ｚ（τ）をＺ（τ−１）へと順番に更新する。
【００７５】
これらの更新が終わった後に、局所距離の一部が新たに計算され、残りのｄ（ｘ，τ）は、既に計算が行われたｄ（ｘ＋１，τ−１）によって更新される。以下に更新式を示す。
ｆｏｒ ｘ＝１，２，・・・，Ｌ−Ｔ，ｄ（ｘ，１）＝‖ｇ（ｘ）−Ｚ（１）‖
Ｆｏｒ １≦τ≦Ｔ，ｄ（Ｌ−Ｔ，τ）＝‖ｇ（Ｌ−Ｔ）−Ｚ（τ）‖
Ｌｏｃａｌ ｄｉｓｔａｎｃｅ ｕｐｄａｔｉｎｇ：
ｆｏｒ τ＝２，３，・・・，Ｔ，ａｎｄ  ｘ＝１，２，・・・，Ｌ−Ｔ−１，
ｄ（ｘ，τ）＝ｄ（ｘ＋１，τ−１）
【００７６】
図６は、Circle連続ＤＰにおける演算開始時の参照データと入力データとのデータ配置を示した概念図であり、図７は、最終演算時の参照データと入力データとのデータ配置を示した概念図である。Circle連続ＤＰでは、円状に形成された円状時系列データに基づいて連続ＤＰが行われるが、連続ＤＰ演算における最初と最後のデータ配置は、実際の演算処理においても重要であるため、図を示して説明する。
【００７７】
演算開始時には、図６に示すように、参照データＺ（τ）のτには、［１，Ｔ］に対応して、円状時系列データｆ（ｔ）の［１，Ｔ］の区間のデータを逆方向に設定（配置）する。すなわち、τ＝１の場合には、円状時系列データにおける時間Ｔのｆ（Ｔ）を参照データＺ（１）として設定し、τ＝Ｔの場合には、円状時系列データにおける時間１のｆ（１）を、参照データＺ（Ｔ）として設定することになる。このようにして参照データＺ（τ）を設定した後に、入力データｇ（ｘ）のｘを範囲［１，Ｌ−Ｔ］で動作させて連続ＤＰ処理を行う。この場合における入力データｇ（ｘ）は、ｇ（ｘ）＝ｆ（Ｔ＋ｘ）として設定される。
【００７８】
一方で、最終演算時には、図７に示すように、参照データＺ（τ）と入力データｇ（ｘ）が設定される。最終演算時においても、参照データＺ（τ）のτには、［１，Ｔ］に対応して、円状時系列データｆ（ｔ）の［Ｌ−Ｔ＋１，Ｌ］の区間のデータを逆方向に設定（配置）する。すなわち、τ＝１の場合には、円状時系列データにおける時間Ｌのｆ（Ｌ）を参照データＺ（１）として設定し、τ＝Ｔの場合には、円状時系列データにおける時間Ｌ−Ｔ＋１のｆ（Ｌ−Ｔ＋１）を、参照データＺ（Ｔ）として設定することになる。このようにして参照データＺ（τ）を設定した後に、入力データｇ（ｘ）のｘを範囲［１，Ｌ−Ｔ］で動作させて連続ＤＰ処理を行う。この場合における入力データｇ（ｘ）は、ｇ（ｘ）＝ｆ（ｘ）として設定される。
【００７９】
上述したようにして、参照データＺ（τ）と入力データｇ（ｘ）が設定された後に、全てのｔについて連続ＤＰによる演算処理が行われる。この連続ＤＰによる演算処理において、参照データと入力データとの時系列における類似区間の検出は、スポッティング点の検出を通じて行われることになる。参照データを確定する参照窓の大きさは、一定の区間長Ｔである。しかしながら、類似する区間の長さは、必ずしも一定ではなく、類似する区間であると判断される場合であっても、その類似する区間同士の区間長もさまざまな長さとなり得る。このため、既に説明したように、区間長Ｔの長さとして、類似する区間の長さとして想定される最大の長さの値が設定される。
【００８０】
Circle連続ＤＰでは、既に図４を示して説明したように、参照データの区間のデータ系列の流れと入力データの区間のデータ時系列の流れとが逆転している。このため、参照データＺ（τ）と入力データｇ（ｘ）との対応において、参照データＺ（１）がｘ軸上の点ｘの入力データｇ（ｘ）に対応し、双方時間を遡るようにして対応点が形成される。
【００８１】
まず、Ｚ（１）に対応するｇ（ｘ）が、類似区間の双方の終端が一致するように対応する。その次に、始端を決める必要が生ずるが、始端は、局所距離の最小値Ｄ（ｘ，τ）に対して以下の式（３）に基づく計算を行うことによって求められる。なお、Ｄ（ｘ，τ）から定まる始端の点を（ｘ＊，τ＊）として示す。この点（ｘ＊，τ＊）が、上述したスポッティング点に該当する。このスポッティング点に基づいて、類似する区間を求めることが可能となる。
【００８２】
図８は、参照データＺ（τ）と入力データｇ（ｘ）との連続ＤＰにおけるスポッティング点の決定処理を説明するための概念図である。スポッティング点を決定するために、ＣＰＵ２では、まず、次の式に基づいて、Ａ（ｘ，τ）を求める（正規化処理）。
【数５】
2014153984.tif 000007
【００８３】
但し、１≦τ≦Ｔおよび１≦ｘ≦Ｌ−Ｔの範囲で、それぞれτとｘとを増加させて全てのｘ，τの組合せに対応するＡ（ｘ，τ）を求める。
【００８４】
また、Ａ（ｘ，τ）を求めるために、Ｄ（ｘ，τ）を３τで割る理由は、τに至る全ての最適パスがとる漸化式の重み係数の和を用いてＤ（ｘ，τ）を正規化するためである。なお、「３τ」の「３」は、傾斜制限に基づいて決定される漸化式の重み付け係数ｋを示し、傾斜制限が異なれば、漸化式の重み付け係数が「３」以外の係数となる場合もある。このため、Ｄ（ｘ，τ）を除する値は、τに重み付け係数ｋを掛けた値（ｋ×τ）であればよく、必ずしも３τには限定されない。
本実施の形態では、式（２）のような漸化式を用いるため、３τで割る処理を行っている。このように３τでＤ（ｘ，τ）を割ることによって、参照データ内の長さが異なる区間長（部分長）の間で比較を行うことが可能となる。
【００８５】
次に、ＣＰＵ２は、閾値ｈを用いて、ｘを固定し、［ｘ−α，ｘ＋α］の区間でＡ（ｘ，τ）≦ｈとなるτ（ｘ）を求める。［ｘ−α，ｘ＋α］の区間、つまり、ｘを中心とする前後αの区間を、ｘの局所間隔（local interval of x）と称する。ＣＰＵ２では、次の式に基づいて、スポッティング点（ｘ＊，τ＊）を求める（スポッティング点算出処理）。
【数６】
2014153984.tif 000008
【００８６】
なお、式（４）に示すτ０は、類似区間の最小の区間長を定める係数である。図８に示すように、ｘ＊はｘ軸（入力データの区間を示す軸）における類似区間の始端を示す。また、τ＊は、参照データにおける始端を示し、Ａ（ｘ，τ）が閾値ｈ以下となる最長の参照データの部分区間（類似する区間）の長さを示す。
【００８７】
ＣＰＵ２は、（ｘ＊，τ＊）を求めた後に、（ｘ＊，τ＊）に至る最適パス（最適経路）を、連続ＤＰにおける累積値のバックトレース処理によって求める。その結果、τ＝１に対応する入力データの類似区間の終点ｘ＊ｅｎｄを求めることが可能となる。求められたｘ＊ｅｎｄは、ｘ＊ｅｎｄ≧ｘ＊が成立する（部分類似区間検出処理）。
【００８８】
バックトレース処理によって求められる、参照データＺ（τ）の類似する区間は、［１，τ＊］範囲となる。また、入力データｇ（ｘ）における類似する区間は、［ｘ＊，ｘ＊ｅｎｄ］の範囲となる。また、入力データｇ（ｘ）における［ｘ＊，ｘ＊ｅｎｄ］の範囲は、円状時系列データｆ（ｔ）における［ｔ＋ｘ＊−１，ｔ＋ｘ＊ｅｎｄ−１］の範囲に対応する。
【数７】
2014153984.tif 000009
【００８９】
但し、参照データＺ（１）は、ｇ（ｘ＊）に対応し、Ｚ（τ＊）は、ｇ（ｘ＊ｅｎｄ）に対応することになる。また、入力データｇ（ｘ）における類似する区間は必ずしも１つには限定されず、入力データに複数の類似する区間が存在する場合には、入力データにおける類似する範囲が複数箇所検出されることになる。
【００９０】
ＣＰＵ２は、上述した式（４）に基づくスポッティング点の検出およびバックトレース処理を、全てのｘの局所間隔（local interval of x）において実行することにより、入力データの全区間に対して類似する区間の検出を行う（全体類似区間検出処理）。さらに、ＣＰＵ２は、この処理を全てのｔ（１≦ｔ≦Ｌ）に対して行う。このように、全てのｘに対して、さらに全てのｔに対して処理を行うことにより、円状時系列データｆ（ｔ）の全ての範囲において、類似する区間を検出することが可能となる（円状類似区間検出処理）。
【００９１】
図９は、上述したＣＰＵ２の処理内容を示したフローチャートである。ＣＰＵ２は、図９に該当するプログラムをＲＯＭ３より読み出して、読み出したプログラムを実行することにより、円状時系列データにおける類似する区間の検出処理を行うことが可能となる。
【００９２】
まず、ＣＰＵ２は、複数の時系列データを連結し（連結系列データ生成ステップ）、連結された時系列データに基づいて円状時系列データを生成する（円状系列データ生成ステップ）（ステップＳ．１）。この場合、ＣＰＵ２は、複数の時系列データにおける連結位置に関する情報や連結させた連結順番に関する情報などを、ＲＡＭ４あるいは記録部５に記録しておく。この処理において、ＣＰＵ２は、連結系列データ生成手段および円状系列データ生成手段として機能することになる。
【００９３】
次に、ＣＰＵ２は、ｔに１を代入し、ｔにおける初期値設定を行う（ステップＳ．２）。そして、ＣＰＵ２は、ｔの値に基づいて、生成された円状時系列データから、予め設定されるＴに該当するデータを抽出することにより参照データの設定を行うと共に、円状時系列データのうち参照データ以外のデータを入力データとして設定する（データ設定ステップ）（ステップＳ．３）。この処理において、ｔ＝１の場合には、１つ目のフレームにおける連続ＤＰ処理に該当するため、図６に示すような演算開始時のデータ配置が行われることになる。また、この処理において、ＣＰＵ２は、データ設定手段として機能することになる。
【００９４】
その後、ＣＰＵ２は、ｘを１からＬ−Ｔに増加させつつ（１≦ｘ≦Ｌ−Ｔ）、τを１からＴに増加させて（１≦τ≦Ｔ）、全てのｘ，τに対応するｄ（ｘ，τ）を求める（局所距離算出ステップ）（ステップＳ．４）。この処理において、ＣＰＵ２は、局所距離算出手段として機能することになる。また、ＣＰＵ２は、ｘが連結される前の時系列データの終端点（ｘａ）に該当する場合に、ｄ（ｘａ，τ）の値を∞に設定することにより、類似区間の重複検出を行わないようにする。
【００９５】
そして、ＣＰＵ２は、求められたｄ（ｘ，τ）に基づいてＤ（ｘ，τ）を求める共に、求められたＤ（ｘ，τ）からＡ（ｘ，τ）を求めて（正規化処理ステップ）、求められたＡ（ｘ，τ）に基づいてスポッティング点（ｘ＊，τ＊）を検出する（スポッティング点算出ステップ）（ステップＳ．５）。この処理において、ＣＰＵ２は、正規化処理手段およびスポッティング点算出手段として機能することになる。そして、ＣＰＵ２は、求められたスポッティング点（ｘ＊，τ＊）に基づいて、全てのｘの局所間隔について、類似区間の検出を行う（部分類似区間検出ステップおよび全体類似区間検出ステップ）（ステップＳ．６）。この処理において、ＣＰＵ２は、部分類似区間検出手段および全体類似区間検出手段として機能することになる。
【００９６】
そして、ＣＰＵ２は、ｔがＬよりも大きい値であるか否か（ｔ＞Ｌ？）を判断し（ステップＳ．７）、ｔがＬ以下である場合（ステップＳ．７においてＮｏの場合）には、ｔに１を加えた上で（ステップＳ．８）、処理をステップＳ．３へと移行する。ｔに１を加えることにより、ステップＳ．３において、ＣＰＵ２は、１フレームだけ円状時系列データをずらした状態で、参照データと入力データとの設定を行うことになる（データ設定ステップ）。このように、ｔがＬ以下である場合に、１フレーム分シフトされた区間位置に基づいて参照データと入力データを設定して、ステップＳ．４からステップＳ．６までの処理を行うことによって、円状時系列データの全ての区間に対して、参照窓に基づく新たな参照データと入力データとの設定（更新）と、新たに設定（更新）された参照データと入力データとによる類似区間の検出処理を行うことが可能となる（円状類似区間検出ステップ）。この処理において、ＣＰＵ２は、円状類似区間検出手段として機能することになる。
【００９７】
ｔがＬより大きい値である場合（ステップＳ．７においてＹｅｓの場合）、ＣＰＵ２は、ステップＳ．１においてＲＡＭ４あるいは記録部５に記録した、複数の時系列データにおける連結位置に関する情報や連結させた連結順番に関する情報などに基づいて、複数の時系列データのどの区間のデータが類似する区間のデータに該当するかを判断し（複数系列類似区間検出ステップ）（ステップＳ．９）、複数の時系列データにおける類似区間の検出処理を終了する。この処理において、ＣＰＵ２は、複数系列類似区間検出手段として機能することになる。
【００９８】
図９に示す処理に従って、ＣＰＵ２が類似する区間の検出を行うことによって、複数の時系列データにおける類似区間の検出を行うことができる。また、図９に示すCircle連続ＤＰを用いて類似区間の検出を行う場合には、ＲＤＤＳ法を用いた場合よりも計算量を軽減することが可能となる。
【００９９】
ＲＤＤＳ法の場合には、既に説明したように、セグメント長のｎ乗の計算量が必要とされる。一方で、Circle連続ＤＰでは、式（２）に示した漸化式の演算回数によって計算量負担が決定される。上述したCircle連続ＤＰでは、固定したｔについて、横軸ｘの幅がＬ−Ｔのサイズだけ想定され、縦軸τについて高さＴが考えられるので、横Ｌ−Ｔ、高さＴの面上の各点において、式（２）のＤ（ｘ，τ）の更新が行われることになる。つまり、Ｔ×（Ｌ−Ｔ）回の更新が行われることになる。また、ｔは、既に説明したように、Ｌ回
更新されるので、漸化式における演算回数の総数は、｛Ｔ×（Ｌ−Ｔ）｝×Ｌとなる。ここで、Ｔの値は、それほど大きくない定数であるため、全体としての計算量は、Ｌの２乗オーダーの計算量（Ｏ（Ｌ×Ｌ））となる。
【０１００】
ここで、Ｌは複数の時系列データを連結したときの長さ（区間長）である。このため、Ｌが大きくなると計算量は増すことになる。しかしながら、ＲＤＤＳ法の場合のようなｎ乗の計算量に比べれば、計算負担が明らかに軽減される。
【０１０１】
さらに、以下のような方法を用いることにより、計算量をさらに軽減させることも可能である。第１の方法として、ｔのシフト量を１フレームずつ行うのではなく、シフト量を複数フレームにして、シフト間隔を大きくすることが考えられる。類似する区間の検出精度を損なわないシフト間隔（フレーム数）は、実験的に決めることが可能である。また、第２の方法として、Circle連続ＤＰにおける局所距離の累積演算において、累積値が閾値ｈを超えた場合に、そのときのτの値以上のτの値について累積演算を行わないようにすることも考えられる。累積距離は単調増加であるため、累積値が閾値ｈを超えた場合には、演算を停止しても検出結果に支障が生じない。
【０１０２】
また、本実施の形態に係る検出装置１では、上述したように、ＣＰＵ２においてＡ（ｘ，τ）を求める場合、ＣＰＵ２が、Ｄ（ｘ，τ）を３τで割る処理を行うが、従来の連続ＤＰでは、比較対象となる参照データの全体の区間長Ｔを用いて、３Ｔで割る方法を用いることが通常であった。しかしながら、本実施の形態において設定される区間長Ｔは、想定され得る類似区間の最大の長さに基づいて設定される値であるため、実際に類似する区間は、区間長Ｔよりも短くなる可能性が高い。このため、３Ｔで割る方法を用いると、連続ＤＰにおける参照データとして、類似する区間以外の区間をも含んだ全区間を基準として、入力データとのマッチング処理を行ってしまうことになり、類似した区間同士の最適なマッチングを保証することができなくなってしまうおそれがある。
【０１０３】
本実施の形態に係るCircle連続ＤＰでは、τが取り得る範囲である区間［１，Ｔ］の中（１≦τ≦Ｔの中）で、Ｄ（ｘ，τ）／３τの最小値をとるτ＊を用いることで、最大の区間長Ｔの長さの参照データの大きさの中で、小さい値の区間［１，τ＊］を類似区間として採用することでき、類似する区間のマッチング処理における精度を向上させることが可能となる。
【０１０４】
さらに、本実施の形態に示したCircle連続ＤＰでは、連続ＤＰを用いて類似する区間の検出を行っていることから、従来のようにヒストグラムによる系列マッチングを行うのではない。このため、多様な長さを持つ類似区間の検出を高い精度で行うことが可能である。
【０１０５】
また、Circle連続ＤＰでは、複数の時系列データを連結して１つの時系列データを生成し、さらに生成された時系列データを円状に連結した円状時系列データを用いて、類似する区間の検出を行う。このため、類似する区間の検出処理において、連結前の複数の時系列データがいくつの系列であったかということはあまり重要ではない。Circle連続ＤＰでは、円状時系列データを生成して処理を行うので、連結前の時系列データの個数に計算量が依存しなくなる。実際にCircle連続ＤＰを用いる計算量は、上述したようにＬの２乗オーダー（Ｏ（Ｌ×Ｌ））であり、対象とする時系列データの全時系列数ｎには依存していない。このため、Circle連続ＤＰは、系列数が増大する大規模な時系列データ処理に適したアルゴリズムとして利用することができる。
【０１０６】
さらに、Circle連続ＤＰでは、厳密なマッチングをベースとして類似性の判断を行うのではなく、類似度（距離）をベースとして、時系列間における多様な類似性の判断を行うことを特徴としている。このため、ノイズの多い記号列や音声特徴列や動画像特徴列など、記号化を十分に行うことが困難な時系列データに対して、Circle連続ＤＰを適用することが可能である。
【０１０７】
また、Circle連続ＤＰによる処理手法は、ヒストグラムをベースとしたものではなく、時系列間でのマッチングの最適性が保証されるという特徴を備えたものである。このため、Circle連続ＤＰを用いることにより、系列データベースにおいて、系列数が多い場合であっても計算量の増大を抑えることが可能となり、データベースの組織化、データマイニング、データ検索などへ広く応用することが可能である。
【０１０８】
以上、本発明に係る類似系列区間検出装置および類似系列区間検出プログラムについて、図面を用いて詳細に説明したが、本発明に係る類似系列区間検出装置および類似系列区間検出プログラムは、実施の形態に示した例には限定されない。
【０１０９】
例えば、実施の形態に示した類似系列区間検出装置のCircle連続ＤＰでは、外部からの検索クエリによる検索処理については説明されていない。つまり、実施の形態に示したCircle連続ＤＰの例においては、複数の時系列データに類似する区間が存在し得る場合を例として説明している。実施の形態では、複数の時系列データとは別に参照データとなり得る外部の時系列データを検索クエリとして用い、この時系列データ（検索クエリ）と複数の時系列データとの間に、類似した区間が存在するか否かを検索する場合については、詳細な説明を行っていない。
【０１１０】
しかしながら、外部からの時系列データを検索クエリとして用いる場合であっても、時系列の長さに関係なく、１つの時系列データとして検索対象となる複数の時系列データ群に加えることにより、実施の形態で説明したCircle連続ＤＰと同様の考え方で、類似する区間の検索を行うことが可能となる。詳細には、まず初めに、外部からの時系列データを含めた複数の時系列データを連結して円状時系列データを作成する。その次に、Circle連続ＤＰにより類似区間の検出を行う場合において、参照データとして外部からの時系列データを設定し、そのクエリ長の回数（フレーム数）のみ、円状時系列データのシフト処理を行うことによって、外部からの時系列データに類似する部分だけを検出することが可能となる。
【０１１１】
また、実施の形態に示す検出装置１では、図９に示すCircle連続ＤＰの処理を、ＣＰＵ２が行う場合について説明したが、図９に示した処理は、必ずしも１つのＣＰＵで全ての処理を行う必要はなく、複数の演算手段を用いて処理を分担する構成とすることも可能である。今日では、処理内容に応じてさまざまな演算回路（例えば、ＡＳＩＣ（Application Specific Integrated Circuit）等）を用いることが多くなっている。このため、Circle連続ＤＰにおいても、処理内容に応じて複数の演算回路を設けて、処理内容に応じて複数の演算回路が処理を分担する構成であっても、実施の形態に示したCircle連続ＤＰを実現することが可能である。
【符号の説明】
【０１１２】
１     …検出装置（類似系列区間検出装置）
２     …ＣＰＵ（演算手段、連結系列データ生成手段、円状系列データ生成手段、データ設定手段、局所距離算出手段、正規化処理手段、スポッティング点算出手段、部分類似区間検出手段、全体類似区間検出手段、円状類似区間検出手段、複数系列類似区間検出手段）
３     …ＲＯＭ
４     …ＲＡＭ（記録手段）
５     …記録部（記録手段）
６     …ディスプレイ部
７     …操作部
【図１】
2014153984.tif 000012
【図２】
2014153984.tif 000013
【図３】
2014153984.tif 000014
【図４】
2014153984.tif 000015
【図５】
2014153984.tif 000016
【図６】
2014153984.tif 000017
【図７】
2014153984.tif 000018
【図８】
2014153984.tif 000019
【図９】
2014153984.tif 000020