(57)【特許請求の範囲】
【請求項１】
時系列データである入力データを取得するデータ取得部と、
時系列データである学習データから抽出した部分列である複数の学習部分列の中で類似する前記学習部分列を統合して標本部分列を生成する際に、統合される複数の前記学習部分列の間の相違度の上限である標本誤差上限を、前記入力データから取出したデータを用いて算出する標本誤差上限算出部と、
前記標本誤差上限を用いて、前記学習データから前記標本部分列を生成する標本部分列生成部と、
を備えることを特徴とする情報処理装置。
【請求項２】
前記時系列データは、稼働中の生産設備から取得したデータであることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記標本部分列を用いて、前記学習データの中に診断対象データと類似の波形が存在するか否かを診断するための閾値を算出する閾値算出部、
をさらに備えることを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記標本部分列と前記閾値とを用いて、前記学習データの中に前記診断対象データと類似の波形が存在するか否かを診断する診断部、
をさらに備えることを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記データ取得部は、前記入力データを分割して前記学習データと試行データとを生成し、
前記標本誤差上限算出部は、前記試行データと前記学習データとの間の前記相違度に基づいて、前記標本誤差上限を算出することを特徴とする請求項１から４のいずれか１項に記載の情報処理装置。
【請求項６】
前記標本誤差上限算出部は、前記試行データと前記学習データとの間の前記相違度の統計値と、予め定められた計算式とを用いて、前記標本誤差上限を算出することを特徴とする請求項５に記載の情報処理装置。
【請求項７】
前記計算式は、前記標本誤差上限が、前記相違度の平均値と前記相違度の標準偏差の正の実数倍との和に正の実数を乗じたものであることを示していることを特徴とする請求項６に記載の情報処理装置。
【請求項８】
前記標本誤差上限算出部は、前記試行データと前記学習データとの間の前記相違度の統計値に基づいて前記標本誤差上限を算出し、前記標本誤差上限が、前記相違度の平均値と前記相違度の標準偏差の正の実数倍との和に正の実数を乗じたものであることを特徴とする請求項５に記載の情報処理装置。
【請求項９】
前記試行データと前記学習データとの間の前記相違度は、前記試行データから抽出された部分列である試行部分列のそれぞれに対応して求められ、
複数の前記試行部分列のそれぞれに対応する前記相違度は、抽出範囲をずらしながら前記学習データから抽出された複数の部分列である学習部分列のそれぞれと前記試行部分列との間の前記相違度のうち最小の値であることを特徴とする請求項６または７に記載の情報処理装置。
【請求項１０】
前記データ取得部は、前記診断部が前記学習データの中に類似の波形が存在しないと判定した前記診断対象データである非類似データを前記学習データに追加する指示を受け付けると、前記非類似データを前記学習データに追加することを特徴とする請求項４に記載の情報処理装置。
【請求項１１】
前記時系列データは、設備の状態を検知するセンサデータであり、
前記診断部は、前記学習データの中に前記診断対象データと類似の波形が存在しない場合、前記設備に異常が生じていると判断することを特徴とする請求項４に記載の情報処理装置。
【請求項１２】
前記データ取得部は、前記診断部が前記設備に異常が生じていると判断したにも関わらず、前記設備に異常が生じていないことを示すメッセージを受け付けると、前記異常を検知した前記診断対象データである非類似データを前記学習データに追加することを特徴とする請求項１１に記載の情報処理装置。
【請求項１３】
情報処理装置が実行する方法であって、
時系列データである入力データを取得するステップと、
時系列データである学習データから抽出した部分列である複数の学習部分列の中で類似する前記学習部分列を統合して標本部分列を生成する際に、統合される複数の前記学習部分列の間の相違度の上限である標本誤差上限を、前記入力データを用いて算出するステップと、
前記標本誤差上限を用いて、前記学習データから前記標本部分列を生成するステップと、
を含むことを特徴とする情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、予め定めたデータを用いて時系列データを診断する情報処理装置および情報処理方法に関する。
【背景技術】
【０００２】
正常なデータを予め定義して学習データとし、学習データの中に診断対象データと類似している波形が存在するか否かに基づいて、診断対象データが正常であるか否かを診断する方法がある。例えば、生産設備が正常に稼働しているときに取得されたセンサデータを学習データとして、稼働中の生産設備のセンサデータを診断対象データとすると、生産設備の異常を検知することができる。【０００３】
学習データの中に診断対象データと類似している波形が存在するか否かは、学習データおよび診断対象データのそれぞれから抽出した部分列同士の相違度を用いて判断することができる。学習データから部分列を抽出する範囲を少しずつスライドして、全ての部分列と、診断対象データから抽出した部分列との相違度を計算して、最も低い相違度をその診断対象データから抽出した部分列の相違度とする。しかしながら、この方法では、診断対象データの部分列と、学習データの全ての部分列との全ての組み合わせについて相違度を計算する必要があるため、計算量が多く相違度の計算に時間がかかるという問題があった。【０００４】
上記の方法に対して、特許文献１に記載の方法では、学習データの部分列をクラスタリングして、部分列間の相違度が予め定められた標本誤差上限以内の複数のクラスタを生成し、クラスタごとに部分列を統合して標本部分列を生成する。そして標本部分列と診断対象データの部分列とを比較することで、計算量を減らして相違度の計算にかかる時間を短縮することができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】国際公開第２０１６／１１７０８６号
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１には、統合する部分列の間の相違度の上限である標本誤差上限を算出する方法の詳細については記載がない。標本誤差上限が大きすぎると、診断対象データの診断精度が低下してしまい、標本誤差上限が小さすぎると、計算量が多く処理時間がかかってしまう。診断精度と処理時間のバランスがとれた適切な標本部分列を生成することが困難であるという問題があった。【０００７】
本発明は、上記に鑑みてなされたものであって、適切な標本部分列を容易に生成することが可能な情報処理装置を得ることを目的とする。
【課題を解決するための手段】
【０００８】
上述した課題を解決し、目的を達成するために、本発明は、時系列データである入力データを取得するデータ取得部と、入力データから取出したデータを用いて標本誤差上限を算出する標本誤差上限算出部と、標本誤差上限を用いて、学習データから標本部分列を生成する標本部分列生成部とを備えることを特徴とする。標本誤差上限は、学習データから抽出した部分列である複数の学習部分列の中で類似する学習部分列を統合して標本部分列を生成する際に、統合される複数の学習部分列の間の相違度の上限である。
【発明の効果】
【０００９】
本発明にかかる情報処理装置は、適切な標本部分列を容易に生成することが可能であるという効果を奏する。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施の形態にかかる情報処理装置の構成を示す図
【図２】図１に示す情報処理装置が行う学習データを用いた診断対象データの診断の概要を示す図
【図３】図２に示す学習データの中に診断対象データと類似の波形があるか否かを判断するために用いる最近傍探索の概要を説明するための図
【図４】図１に示す情報処理装置が生成する標本部分列と標本誤差上限との関係を示す図
【図５】図１に示すデータ取得部の機能を説明するための図
【図６】図１に示す情報処理装置が診断を行う前に行う処理の概要を示す図
【図７】図１に示す標本誤差上限算出部が用いる計算式の妥当性を示す図
【図８】図１に示す標本部分列生成部が行う第１統合処理の概要を示す図
【図９】図１に示す標本部分列生成部が行う第２統合処理の概要を示す図
【図１０】図１に示す情報処理装置が実行する処理の全体の流れを示すフローチャート
【図１１】図１０に示すステップＳ１２の詳細な動作を示すフローチャート
【図１２】図１１に示すステップＳ１２１の詳細な動作を示すフローチャート
【図１３】図１０に示すステップＳ１３の詳細な動作を示すフローチャート
【図１４】図１３に示すステップＳ１３２の第１統合処理の詳細を示すフローチャート
【図１５】図１３に示すステップＳ１３３の第２統合処理の詳細を示すフローチャート
【図１６】図１０に示すステップＳ１４の詳細な動作を示すフローチャート
【図１７】図１６に示すステップＳ１４１の詳細な動作を示すフローチャート
【発明を実施するための形態】
【００１１】
以下に、本発明の実施の形態にかかる情報処理装置および情報処理方法を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１２】
実施の形態．
図１は、本発明の実施の形態にかかる情報処理装置１０の構成を示す図である。情報処理装置１０は、データ取得部１０１と、標本誤差上限算出部１０２と、標本部分列生成部１０３と、統計値算出部１０４と、記憶部１０５と、閾値算出部１０６と、診断部１０７とを有する。
【００１３】
情報処理装置１０は、診断対象データＤ１と類似している波形が、後述する学習データＤ２の中に存在するか否かに基づいて、診断対象データＤ１を診断する機能を有する。図２は、図１に示す情報処理装置１０が行う学習データＤ２を用いた診断対象データＤ１の診断の概要を示す図である。診断対象データＤ１は、診断の対象とするデータである。学習データＤ２は、上記の診断の基準として用いられるデータであって予め正常なデータであると定義されたデータであり、例えばセンサデータなどの時系列データである。診断対象データＤ１は、学習データＤ２と同じ種類の時系列データであり、学習データＤ２が温度データである場合、診断対象データＤ１も温度データである。学習データＤ２の中に、診断対象データＤ１と類似の波形がある場合、情報処理装置１０は、その診断対象データＤ１が正常であると判断する。学習データＤ２の中に、診断対象データＤ１と類似の波形がない場合、情報処理装置１０は、その診断対象データＤ１が異常であると判断する。
【００１４】
生産設備に異常が生じた場合には、生産設備が正常に稼働しているときに取得されたセンサデータと異なる波形を含むセンサデータが出力されることが多い。この場合、生産設備が正常に稼働しているときに取得されたセンサデータを学習データＤ２として、稼働中の生産設備のセンサデータを診断対象データＤ１とすると、生産設備の異常を検知することができる。情報処理装置１０が稼働中の生産設備のセンサデータを取得する処理と、取得したセンサデータを診断対象データＤ１とする診断処理とをシーケンシャルに繰り返して行うことで、リアルタイムに生産設備の異常を検知することができる。
【００１５】
図３は、図２に示す学習データＤ２の中に診断対象データＤ１と類似の波形があるか否かを判断するために用いる最近傍探索の概要を説明するための図である。学習データＤ２の中に診断対象データＤ１と類似の波形があるか否かは、部分列間の相違度を用いて判断される。部分列間の相違度は、部分列同士が相違している度合いを示す指標であり、相違度が低いほど部分列の波形の一致度が高い。部分列間の相違度は、例えば距離で表すことができ、部分列を距離空間における点で表した場合、点と点との間の距離である。最近傍探索は、距離空間における点の集合の中で特定の点に最も距離が近い点を探す方法であり、本実施の形態では、部分列を点と見なして、部分列の集合の中で特定の部分列に最も近い、すなわち最も相違度が低い部分列が探索される。学習データＤ２から抽出した部分列である学習部分列ＳＳ２は、予め定められた固定値の幅（以下、この幅の大きさをウインドウサイズと称する）を有する抽出範囲を少しずつスライドしながら抽出される。そして、診断対象データＤ１から学習部分列ＳＳ２の抽出範囲と同じウインドウサイズの抽出範囲で抽出した部分列である診断対象部分列ＳＳ１のそれぞれについて、最近傍探索が行われて学習データＤ２との相違度が算出される。
【００１６】
診断対象部分列ＳＳ１と学習データＤ２との間の相違度は、学習データＤ２から抽出される複数の学習部分列ＳＳ２の中で対象の診断対象部分列ＳＳ１と最も類似する波形の学習部分列ＳＳ２との相違度で示される。相違度を部分列の間の距離で示す場合、抽出された全ての学習部分列ＳＳ２と診断対象部分列ＳＳ１との間の距離のうち、最短距離が診断対象部分列ＳＳ１の相違度となる。例えば、３つの学習部分列ＳＳ２が抽出された場合について考える。診断対象部分列ＳＳ１＃０１と学習部分列ＳＳ２＃０１との間の距離が３０．１であり、診断対象部分列ＳＳ１＃０１と学習部分列ＳＳ２＃０２との間の距離が１．５であり、診断対象部分列ＳＳ１＃０１と学習部分列ＳＳ２＃０３との間の距離が１５．２である場合、診断対象部分列ＳＳ１＃０１の相違度は１．５である。診断対象部分列ＳＳ１の相違度が閾値以下である場合、学習データＤ２の中に診断対象部分列ＳＳ１と類似の波形が含まれると判断される。
【００１７】
ここで、全ての学習部分列ＳＳ２と全ての診断対象部分列ＳＳ１との組み合わせについて、相違度を算出する場合、計算量が増大して時間がかかってしまう。このため、本実施の形態では、類似した学習部分列ＳＳ２を統合して、後述する標本部分列ＳＳ３を生成し、標本部分列ＳＳ３を用いて最近傍探索を行う。これにより、相違度を算出するための計算量を減らすことができ、相違度の計算にかかる時間を短縮することができる。
【００１８】
図４は、図１に示す情報処理装置１０が生成する標本部分列ＳＳ３と標本誤差上限εとの関係を示す図である。情報処理装置１０は、複数の学習部分列ＳＳ２をクラスタＣＬに分類して、クラスタＣＬごとに、代表的な部分列である標本部分列ＳＳ３を生成する。標本部分列ＳＳ３は、類似する複数の学習部分列ＳＳ２を統合した部分列であると言うこともできる。統合する複数の学習部分列ＳＳ２の間の相違度である距離ｄの上限は、標本誤差上限εと呼ばれる。標本誤差上限εは、同一のクラスタＣＬに分類される学習部分列ＳＳ２の間の相違度の上限と言うこともでき、複数の学習部分列ＳＳ２を類似する部分列であるか否かを判断するための判断基準として設定される。標本誤差上限εの大きさによって、統合する学習部分列ＳＳ２の範囲が変化する。標本誤差上限εが大きすぎると、標本部分列ＳＳ３を生成するために統合する学習部分列ＳＳ２間の相違度が高くなるため、診断対象データＤ１の診断精度が低下してしまう。標本誤差上限εが小さすぎると、診断を行う際に用いる標本部分列ＳＳ３の数が多くなり、計算量が多く処理時間がかかってしまう。このため、診断精度と処理時間とのバランスがとれた適切な標本誤差上限εを容易に取得する方法が求められている。
【００１９】
図１の説明に戻る。情報処理装置１０は、予め正常であると定義した時系列データである正常データＤ３に基づいて、適切な標本誤差上限εを算出する機能を有する。例えば、生産設備が正常に稼働しているときに取得されたデータを正常なデータと定義することができる。データ取得部１０１は、正常データＤ３を取得して、正常データＤ３から学習データＤ２と、診断の試行用のデータである試行データＤ４とを取得する。
【００２０】
図５は、図１に示すデータ取得部１０１の機能を説明するための図である。データ取得部１０１は、正常データＤ３を取得すると、正常データＤ３をレコード数で２分の１ずつに分割して、一方を学習データＤ２とし、他方を試行データＤ４とする。データ取得部１０１は、取得した学習データＤ２を標本誤差上限算出部１０２と標本部分列生成部１０３とに入力し、取得した試行データＤ４を標本誤差上限算出部１０２、標本部分列生成部１０３および統計値算出部１０４に入力する。
【００２１】
図６は、図１に示す情報処理装置１０が診断を行う前に行う処理の概要を示す図である。データ取得部１０１が学習データＤ２および試行データＤ４を取得した後、情報処理装置１０の標本誤差上限算出部１０２は、学習データＤ２から抽出した全ての学習部分列ＳＳ２と、試行データＤ４とを用いて最近傍探索を行い、標本誤差上限εを算出する。標本誤差上限εを算出した後、標本部分列生成部１０３は、算出された標本誤差上限εを用いて、標本部分列ＳＳ３を生成する。そして統計値算出部１０４は、生成された標本部分列ＳＳ３と試行データＤ４とを用いて最近傍探索を行い、学習データＤ２と試行データＤ４との間の相違度と、相違度の統計値とを算出する。統計値は、相違度の平均値ｍおよび相違度の標準偏差σを含む。閾値算出部１０６は、標本誤差上限εを用いて算出された相違度の統計値を用いて、診断部１０７が用いる閾値を算出する。以下、これらの処理の詳細について説明する。
【００２２】
図１の説明に戻る。標本誤差上限算出部１０２は、入力データである学習データＤ２および試行データＤ４を用いて、標本誤差上限εを算出する。具体的には、標本誤差上限算出部１０２は、入力データから取出したデータである学習部分列ＳＳ２および試行部分列ＳＳ４を用いて、標本誤差上限εを算出する。標本誤差上限算出部１０２は、学習部分列ＳＳ２と試行部分列ＳＳ４との全ての組み合わせについて相違度を算出し、試行部分列ＳＳ４のそれぞれについて、最小の相違度をその試行部分列ＳＳ４の相違度とする。標本誤差上限算出部１０２は、それぞれの試行部分列ＳＳ４の相違度に基づいて、相違度の統計値を算出する。相違度の統計値は、具体的には相違度の平均値ｍ＿０および相違度の標準偏差σ＿０である。試行部分列ＳＳ４の数をｎ、ｉ番目の試行部分列ＳＳ４の相違度をａ＿ｉとした場合、全ての学習部分列ＳＳ２を用いて計算された相違度の平均値ｍ＿０は、下記の数式（１）で示され、相違度の標準偏差σ＿０は、下記の数式（２）で示される。
【００２３】
【数１】
0006362808.tif 000002
【００２４】
【数２】
0006362808.tif 000003
【００２５】
標本誤差上限算出部１０２は、これらの統計値と、予め定められた計算式とを用いて、標本誤差上限εを算出することができる。ｋを正の実数とした場合、予め定められた計算式は、下記の数式（３）である。
【００２６】
ε＝ｋ（ｍ＿０＋３σ＿０）  ・・・（３）
【００２７】
数式（３）は、相違度の平均値ｍ＿０に、相違度の標準偏差σ＿０の実数倍、例えば３倍を加算した値と、標本誤差上限εとの間に線形の相関があることを示している。図７は、図１に示す標本誤差上限算出部１０２が用いる計算式の妥当性を示す図である。図７の横軸は、「ｍ＿０＋３σ＿０」であり、縦軸は、最適な標本誤差上限εである。ここでは、最適な標本誤差上限εは、学習データＤ２から抽出された全ての学習部分列ＳＳ２を用いて算出した相違度と、標本部分列ＳＳ３を用いて算出した相違度との差が予め定められた割合以下となる値と定義している。学習データＤ２と試行データＤ４とを用いて、様々な条件で相違度を求めた結果、図７に示すように、「ｍ＿０＋３σ＿０」の値と、最適な標本誤差上限εの値との間には、線形の相関があることが確認できた。標本誤差上限算出部１０２は、算出した標本誤差上限εを標本部分列生成部１０３に入力し、記憶部１０５に記憶させる。
【００２８】
標本部分列生成部１０３は、入力された標本誤差上限εと、学習データＤ２と、試行データＤ４とを用いて、標本部分列ＳＳ３を生成する。標本部分列ＳＳ３は、類似する学習部分列ＳＳ２を統合した部分列である。学習データＤ２の中で時間が近い学習部分列ＳＳ２は類似した部分列となる可能性が高く、類似した部分列は、繰り返して出現する可能性が高い。このため、標本部分列生成部１０３は、まず、学習データＤ２から時間が近い学習部分列ＳＳ２のうち相違度が予め定められた値以内の学習部分列ＳＳ２を同じクラスタＣＬに分類する第１統合処理を行う。そして、標本部分列生成部１０３は、クラスタＣＬの相違度に基づいて、複数のクラスタＣＬを統合する第２統合処理を行う。
【００２９】
図８は、図１に示す標本部分列生成部１０３が行う第１統合処理の概要を示す図である。標本部分列生成部１０３は、時間が近い学習部分列ＳＳ２のうち相違度が予め定められた範囲内の学習部分列ＳＳ２を統合する。ここでは相違度は距離で示される。具体的には、標本部分列生成部１０３は、特定の学習部分列ＳＳ２、例えば学習部分列ＳＳ２＃１と、学習部分列ＳＳ２＃２との間の距離ｄを算出して、ｄ≦ε／２の関係が成り立つ場合、学習部分列ＳＳ２＃１と学習部分列ＳＳ２＃２とを同じクラスタＣＬ＃１に分類する。同様に、標本部分列生成部１０３は、学習部分列ＳＳ２＃１と学習部分列ＳＳ２＃３との間の距離ｄを算出して、ｄ≦ε／２の関係が成り立つ場合、学習部分列ＳＳ２＃３をクラスタＣＬ＃１に分類する。学習部分列ＳＳ２＃１と学習部分列ＳＳ２＃４との間の距離ｄがｄ＞ε／２となった場合、標本部分列生成部１０３は、学習部分列ＳＳ２＃４を新たなクラスタＣＬ＃２に分類する。分類するクラスタＣＬが変わると、標本部分列生成部１０３は、新たなクラスタＣＬ＃２に分類された学習部分列ＳＳ２＃４と、他の学習部分列ＳＳ２との間の距離ｄを、時間軸に沿って順に算出して、同様に学習部分列ＳＳ２をクラスタリングする。標本部分列生成部１０３は、第１統合処理の結果であるクラスタＣＬのリストを生成する。
【００３０】
図９は、図１に示す標本部分列生成部１０３が行う第２統合処理の概要を示す図である。標本部分列生成部１０３は、第１統合処理の結果であるクラスタＣＬのリストに基づいて、それぞれのクラスタＣＬに分類された複数の学習部分列ＳＳ２を用いて、各クラスタＣＬの標本部分列ＳＳ３−１を生成する。具体的には、標本部分列生成部１０３は、それぞれのクラスタＣＬに分類された複数の学習部分列ＳＳ２の中で学習部分列ＳＳ２に含まれる値に対するインデックスが同一の複数の値の平均値を求めて、平均値の系列から構成される部分列を、各クラスタＣＬの標本部分列ＳＳ３−１とする。
【００３１】
標本部分列生成部１０３は、標本部分列ＳＳ３−１のリストを標本部分列ＳＳ３−１に対する平均値でソートする。そして標本部分列生成部１０３は、並べ替えた標本部分列ＳＳ３−１のリストについて、第１統合処理と同様に部分列の間の距離ｄを求めて、標本部分列ＳＳ３−１の間の距離ｄがε／２以下のクラスタＣＬを統合する。標本部分列生成部１０３は、統合されたクラスタＣＬのそれぞれに分類された標本部分列ＳＳ３−１を用いて、標本部分列ＳＳ３を生成する。具体的には、標本部分列生成部１０３は、標本部分列ＳＳ３−１の中で標本部分列ＳＳ３−１に含まれる値に対するインデックスが同一の複数の値の平均値を求めて、平均値の系列から構成される部分列を標本部分列ＳＳ３とする。標本部分列生成部１０３は、標本部分列ＳＳ３−１を生成した各クラスタＣＬに含まれていた学習部分列ＳＳ２に含まれる値に対するインデックスが同一の値の平均値を求めて、平均値の系列から構成される部分列を標本部分列ＳＳ３としてもよい。標本部分列生成部１０３は、生成した標本部分列ＳＳ３を統計値算出部１０４に入力すると共に、記憶部１０５に記憶させる。また標本部分列生成部１０３は、各標本部分列ＳＳ３の平均値を求めて、生成した標本部分列ＳＳ３と共に記憶部１０５に記憶させてもよい。
【００３２】
図１の説明に戻る。統計値算出部１０４は、生成された標本部分列ＳＳ３と、試行データＤ４とを用いて、学習データＤ２と試行データＤ４との間の相違度の統計値を算出する。統計値算出部１０４は、標本部分列ＳＳ３を使用して試行データＤ４で最近傍探索を実行し、相違度を求める。統計値算出部１０４は、相違度の平均値ｍおよび標準偏差σを算出して、記憶部１０５に記憶させる。
【００３３】
閾値算出部１０６は、統計値算出部１０４が算出した、相違度の平均値ｍおよび標準偏差σを用いて、診断部１０７が学習データＤ２の中に診断対象データＤ１と類似の波形が存在するか否かを診断するための閾値Ｔｈを算出する。診断部１０７は、閾値算出部１０６が算出した閾値Ｔｈを用いて、学習データＤ２の中に診断対象データＤ１と類似の波形が存在するか否かを診断する。診断部１０７は、学習データＤ２の中に診断対象データＤ１と類似の波形が存在する場合、診断対象データＤ１は正常であると判断し、学習データＤ２の中に診断対象データＤ１と類似の波形が存在しない場合、診断対象データＤ１は異常であると判断する。
【００３４】
図１０は、図１に示す情報処理装置１０が実行する処理の全体の流れを示すフローチャートである。情報処理装置１０のデータ取得部１０１は、正常データＤ３から学習データＤ２と試行データＤ４とを取得する（ステップＳ１１）。標本誤差上限算出部１０２は、データ取得部１０１によって取得された学習データＤ２と試行データＤ４とを用いて、標本誤差上限εを算出する（ステップＳ１２）。標本誤差上限εの算出方法の詳細は、後述される。
【００３５】
標本部分列生成部１０３は、算出された標本誤差上限εと、学習データＤ２とを用いて、標本部分列ＳＳ３を生成する（ステップＳ１３）。標本部分列ＳＳ３の生成方法の詳細は、後述される。閾値算出部１０６は、生成された標本部分列ＳＳ３を用いて、診断対象データＤ１の診断のための閾値Ｔｈを算出する（ステップＳ１４）。閾値Ｔｈの算出方法の詳細は、後述される。診断部１０７は、診断対象データＤ１の診断を行う（ステップＳ１５）。
【００３６】
図１０に示した処理の流れは、必ずしも連続的に実行される必要はない。例えば、ステップＳ１１からステップＳ１３までの処理は、事前の準備作業として実行されてもよい。また、ステップＳ１４の閾値算出処理は、ステップＳ１５の診断処理を実行する前に行われればよい。以下、図１０に示した各ステップの詳細な動作について説明する。
【００３７】
図１１は、図１０に示すステップＳ１２の詳細な動作を示すフローチャートである。標本誤差上限算出部１０２は、学習データＤ２から抽出した全ての学習部分列ＳＳ２を用いて、試行データＤ４の最近傍探索処理を行って、相違度を算出する（ステップＳ１２１）。図１２は、図１１に示すステップＳ１２１の詳細な動作を示すフローチャートである。標本誤差上限算出部１０２は、試行データＤ４から試行部分列ＳＳ４を抽出する（ステップＳ２０１）。具体的には、標本誤差上限算出部１０２は、抽出領域を少しずつスライドさせながら、長さｐの試行データＤ４から予め定められたウインドウサイズｗの波形データを試行部分列ＳＳ４として抽出する。標本誤差上限算出部１０２は、距離の最小値min_iを初期値の無限大に設定する（ステップＳ２０２）。
【００３８】
標本誤差上限算出部１０２は、長さｑの学習データＤ２からウインドウサイズｗの波形データを学習部分列ＳＳ２として抽出する（ステップＳ２０３）。標本誤差上限算出部１０２は、試行部分列ＳＳ４と学習部分列ＳＳ２との間の距離d_ijを算出する（ステップＳ２０４）。距離d_ijは、試行部分列ＳＳ４の時系列データＳ［ｉ：ｉ＋ｗ−１］（ｉ＝１，２，３，．．．，ｐ−ｗ＋１）として、学習部分列ＳＳ２の時系列データＴ［ｊ：ｊ＋ｗ−１］（ｊ＝１，２，３，．．．，ｑ−ｗ＋１）とした場合、以下の数式（４）によって求めることができる。
【００３９】
【数３】
0006362808.tif 000004
【００４０】
標本誤差上限算出部１０２は、d_ij＜min_iの関係が成り立つ場合、最小値min_iの値を距離d_ijの値に更新する（ステップＳ２０５）。標本誤差上限算出部１０２は、ステップＳ２０３において、抽出する学習部分列ＳＳ２の範囲を少しずつスライドしながら、ステップＳ２０３からステップＳ２０５の処理を、全ての学習部分列ＳＳ２の評価が完了するまで繰り返す。
【００４１】
全ての学習部分列ＳＳ２を評価完了すると、標本誤差上限算出部１０２は、最小値min_iを、ここで対象としている試行部分列ＳＳ４の相違度とする（ステップＳ２０６）。標本誤差上限算出部１０２は、ステップＳ２０１で抽出する試行部分列ＳＳ４の範囲を少しずつスライドしながら、ステップＳ２０１からステップＳ２０６の処理を、全ての試行部分列ＳＳ４の評価が完了するまで繰り返す。ステップＳ１２１に示す処理により、標本誤差上限算出部１０２は、それぞれの試行部分列ＳＳ４の相違度を取得することができる。
【００４２】
図１１の説明に戻る。標本誤差上限算出部１０２は、それぞれの試行部分列ＳＳ４の相違度を取得すると、取得した相違度の統計値である相違度の平均値ｍ＿０および標準偏差σ＿０を算出する（ステップＳ１２２）。標本誤差上限算出部１０２は、相違度の統計値と予め定められた計算式とを用いて、標本誤差上限εを算出する（ステップＳ１２３）。
【００４３】
図１３は、図１０に示すステップＳ１３の詳細な動作を示すフローチャートである。標本部分列生成部１０３は、学習データＤ２から複数の学習部分列ＳＳ２を抽出する（ステップＳ１３１）。標本部分列生成部１０３は、学習部分列ＳＳ２を時間の順にクラスタリングして、複数のクラスタＣＬに分類する（ステップＳ１３２）。その後、標本部分列生成部１０３は、クラスタＣＬを統合して、クラスタＣＬごとの標本部分列ＳＳ３を生成する（ステップＳ１３３）。
【００４４】
図１４は、図１３に示すステップＳ１３２の第１統合処理の詳細を示すフローチャートである。まず標本部分列生成部１０３は、学習部分列ＳＳ２の順番を示す序数であるｉおよびｊをｉ＝１，ｊ＝ｉ＋１に設定する（ステップＳ３０１）。標本部分列生成部１０３は、ｉ番目の学習部分列ＳＳ２とｊ番目の学習部分列ＳＳ２との間の距離を算出する（ステップＳ３０２）。標本部分列生成部１０３は、算出した距離がε／２以下であるか否かを判断する（ステップＳ３０３）。距離がε／２以下である場合（ステップＳ３０３：Ｙｅｓ）、標本部分列生成部１０３は、ｊ番目の学習部分列ＳＳ２をｉ番目の学習部分列ＳＳ２と同じクラスタＣＬに分類して、ｊ＝ｊ＋１とする（ステップＳ３０４）。
【００４５】
距離がε／２を超える場合（ステップＳ３０３：Ｎｏ）、標本部分列生成部１０３は、クラスタＣＬを確定して、クラスタＣＬのリストに追加する。また標本部分列生成部１０３は、ｊ番目の学習部分列ＳＳ２を新たなクラスタＣＬに分類する（ステップＳ３０５）。標本部分列生成部１０３は、ｉ＝ｊ，ｊ＝ｊ＋１に設定する（ステップＳ３０６）。ステップＳ３０４の処理を行った後、またはステップＳ３０６の処理を行った後、標本部分列生成部１０３は、最後の学習部分列ＳＳ２であるか否かを判断する（ステップＳ３０７）。最後の学習部分列ＳＳ２でない場合（ステップＳ３０７：Ｎｏ）、標本部分列生成部１０３は、ステップＳ３０２から処理を繰り返す。最後の学習部分列ＳＳ２である場合（ステップＳ３０７：Ｙｅｓ）、標本部分列生成部１０３は、処理を終了する。図１４に示す処理が実行されると、図８に示したように、時間が近い学習部分列ＳＳ２のうち距離がε／２以下の学習部分列ＳＳ２がクラスタＣＬに分類される。
【００４６】
図１５は、図１３に示すステップＳ１３３の第２統合処理の詳細を示すフローチャートである。標本部分列生成部１０３は、ステップＳ１３２において生成された各クラスタＣＬ内の学習部分列ＳＳ２から、各クラスタＣＬの標本部分列ＳＳ３−１を生成する（ステップＳ３１１)。標本部分列生成部１０３は、標本部分列ＳＳ３−１のリストを、標本部分列ＳＳ３−１の平均値でソートする（ステップＳ３１２）。標本部分列生成部１０３は、標本部分列ＳＳ３−１の順序を示す序数ｌ＝１、ｍ＝ｌ＋１に設定する（ステップＳ３１３）。
【００４７】
標本部分列生成部１０３は、ｌ番目の標本部分列ＳＳ３−１と、ｍ番目の標本部分列ＳＳ３−１との間の距離ｄを算出する（ステップＳ３１４）。標本部分列生成部１０３は、算出した距離ｄがε／２以下であるか否かを判断する（ステップＳ３１５）。距離ｄがε／２以下である場合（ステップＳ３１５：Ｙｅｓ）、標本部分列生成部１０３は、クラスタＣＬを統合して、ｍ番目の標本部分列ＳＳ３−１をリストから削除する（ステップＳ３１６）。距離ｄがε／２を超える場合（ステップＳ３１５：Ｎｏ）、標本部分列生成部１０３は、クラスタＣＬを確定して、統合したクラスタＣＬの標本部分列ＳＳ３を生成する（ステップＳ３１７）。標本部分列生成部１０３は、ｌ番目の標本部分列ＳＳ３−１をリストから削除して、リスト中の最小インデックスをｌに設定する（ステップＳ３１８）。ステップＳ３１６の処理またはステップＳ３１８の処理が終わると、標本部分列生成部１０３は、ｍ＝ｍ＋１に設定する（ステップＳ３１９）。
【００４８】
標本部分列生成部１０３は、最後の標本部分列ＳＳ３−１であるか否かを判断する（ステップＳ３２０）。最後の標本部分列ＳＳ３−１でない場合（ステップＳ３２０：Ｎｏ）、標本部分列生成部１０３は、ステップＳ３１４から処理を繰り返す。最後の標本部分列ＳＳ３−１である場合（ステップＳ３２０：Ｙｅｓ）、標本部分列生成部１０３は、統合後の各クラスタＣＬの標本部分列ＳＳ３を生成する（ステップＳ３２１）。標本部分列生成部１０３は、標本部分列ＳＳ３の平均値を算出して、平均値でソートする（ステップＳ３２２）。上記の動作により、標本部分列ＳＳ３が生成される。
【００４９】
図１６は、図１０に示すステップＳ１４の詳細な動作を示すフローチャートである。統計値算出部１０４は、生成された標本部分列ＳＳ３を用いて、試行データＤ４の最近傍探索を行い、相違度を算出する（ステップＳ１４１）。統計値算出部１０４は、算出された相違度の統計値を算出する（ステップＳ１４２）。統計値は、平均値ｍおよび標準偏差σである。閾値算出部１０６は、算出された相違度の統計値に基づいて、閾値Ｔｈを算出する（ステップＳ１４３）。
【００５０】
図１７は、図１６に示すステップＳ１４１の詳細な動作を示すフローチャートである。ここでは、下界計算を用いて、最近傍探索処理を高速化している。
【００５１】
統計値算出部１０４は、試行データＤ４から試行部分列ＳＳ４を抽出する（ステップＳ４０１）。距離の最小値min_iを初期値の無限大に設定する（ステップＳ４０２）。統計値算出部１０４は、標本部分列ＳＳ３の中から未評価の標本部分列ＳＳ３を１つ選択する（ステップＳ４０３）。統計値算出部１０４は、抽出した試行部分列ＳＳ４と、選択した標本部分列ＳＳ３とを用いて、平均下界を求める（ステップＳ４０４）。平均下界は、ウインドウサイズをｗ、時系列データＴ，Ｓの平均値をそれぞれＴ，Ｓのそれぞれにバーを付したものとすると、以下の数式（５）で示すことができる。
【００５２】
【数４】
0006362808.tif 000005
【００５３】
統計値算出部１０４は、求めた平均下界が距離の最小値min_iよりも大きいか否かを判断する（ステップＳ４０５）。平均下界が距離の最小値min_iよりも大きい場合（ステップＳ４０５：Ｙｅｓ）、統計値算出部１０４は、以下の処理を省略して、距離の最小値min_iを相違度とする（ステップＳ４１０）。平均下界が距離の最小値min_i以下である場合（ステップＳ４０５：Ｎｏ）、統計値算出部１０４は、平均偏差下界を求める（ステップＳ４０６）。時系列データＴ，Ｓの標準偏差をそれぞれStd(T)，Std(S)とすると、平均偏差下界は、以下の数式（６）で示すことができる。
【００５４】
【数５】
0006362808.tif 000006
【００５５】
統計値算出部１０４は、求めた平均偏差下界が距離の最小値min_iよりも大きいか否かを判断する（ステップＳ４０７）。平均偏差下界が距離の最小値min_iよりも大きい場合（ステップＳ４０７：Ｙｅｓ）、統計値算出部１０４は、対象の標本部分列ＳＳ３の処理を終了し、全標本部分列ＳＳ３の評価を完了していない場合、ステップＳ４０３の処理に戻る。平均偏差下界が距離の最小値min_i以下である場合（ステップＳ４０７：Ｎｏ）、統計値算出部１０４は、試行部分列ＳＳ４と標本部分列ＳＳ３との間の距離d_ijを算出する（ステップＳ４０８）。
【００５６】
距離d_ijは、診断対象部分列をＳ，標本部分列をＴｊとした場合、以下の数式（７）で示すことができる。
【００５７】
【数６】
0006362808.tif 000007
【００５８】
算出した距離d_ijが距離の最小値min_iよりも小さい場合、統計値算出部１０４は、距離の最小値min_iを距離d_ijの値で更新する（ステップＳ４０９）。統計値算出部１０４は、全ての標本部分列ＳＳ３の評価が完了するまで、ステップＳ４０３からステップＳ４０９の処理を繰り返す。全ての標本部分列ＳＳ３の評価が完了すると、統計値算出部１０４は、距離の最小値min_iを相違度とする（ステップＳ４１０）。統計値算出部１０４は、全ての試行部分列ＳＳ４の評価が完了するまで、ステップＳ４０１からステップＳ４１０の処理を繰り返す。
【００５９】
平均下界および平均偏差下界を用いることで、部分列間の距離を算出するまでもなく、部分列間の距離が距離の最小値min_iよりも大きくなると判断することができる場合には、部分列間の距離を算出する処理を省略することができる。平均下界および平均偏差下界の算出処理は、部分列間の距離を算出する処理よりも計算量が少ないため、最近傍探索処理を高速化することができる。なお、ステップＳ１４１に示す最近傍探索処理は、図１７に示すような下界計算を用いるものに限らず、図１２に示すように、下界計算を用いないものであってもよい。この場合、学習部分列ＳＳ２を標本部分列ＳＳ３に置き換えて、学習データＤ２から学習部分列ＳＳ２を抽出する処理を、標本部分列ＳＳ３から１つを選択する処理に置き換えればよい。
【００６０】
なお、上記の情報処理装置１０によれば、正常であると判断されるべき診断対象データＤ１であっても、学習データＤ２に類似した波形が存在せず、異常であると判断されることがある。この場合、異常であると判断された診断対象データＤ１を学習データＤ２に追加することが望ましい。このためデータ取得部１０１は、診断部１０７が学習データＤ２の中に類似の波形が存在しないと判定した診断対象データＤ１である非類似データを学習データＤ２に追加する指示を受け付けると、非類似データを学習データＤ２に追加する。
【００６１】
正常であると判断されるべき診断対象データＤ１とは、診断対象データＤ１が生産設備の状態を検知するセンサデータである場合、生産設備に検出するべき異常が生じていないときに取得されたセンサデータである。この場合、非類似データを学習データＤ２に追加する指示は、診断部１０７が生産設備に異常が生じていると判断したにも関わらず、生産設備に異常が生じていないことを示すメッセージである。例えば、非類似データを学習データＤ２に追加する指示は、情報処理装置１０の使用者の入力操作によって情報処理装置１０に入力されてもよい。或いは非類似データを学習データＤ２に追加する指示は、生産設備の異常を診断する他のシステムで生成されて、情報処理装置１０に入力されてもよい。
【００６２】
非類似データが学習データＤ２に追加されると、標本誤差上限算出部１０２は、非類似データを追加後の学習データＤ２を用いて標本誤差上限εを算出することになる。また標本部分列生成部１０３は、非類似データを追加後の学習データＤ２と、非類似データを追加後の学習データＤ２を用いて算出された標本誤差上限εとを用いて標本部分列ＳＳ３を生成することになる。さらに統計値算出部１０４は、非類似データを追加後の学習データＤ２を用いて生成された標本部分列ＳＳ３と試行データＤ４とを用いて最近傍探索を行い、学習データＤ２と試行データＤ４との間の相違度と、相違度の統計値とを算出する。閾値算出部１０６は、非類似データを追加後の学習データＤ２を用いて生成された標本部分列ＳＳ３を用いて、閾値Ｔｈを算出することになる。診断部１０７は、非類似データを追加後の学習データＤ２を用いて診断処理を行うことになる。したがって、正常であると判断されるべき診断対象データＤ１が異常であると判断されても、次回の診断処理以降では、追加した非類似データは正常であると判断されるようになる。
【００６３】
以上説明したように、本発明の実施の形態によれば、学習データＤ２から抽出した部分列である複数の学習部分列ＳＳ２の中で類似する学習部分列を統合して標本部分列ＳＳ３を生成する際に、統合される複数の学習部分列ＳＳ２の間の相違度の上限である標本誤差上限εが、時系列データである入力データに基づいて算出される。そして算出された標本誤差上限εを用いて、学習データＤ２から標本部分列ＳＳ３が生成される。このため情報処理装置１０を使用する使用者は、試行錯誤しなくても時系列データを入力するだけで、診断精度と処理時間のバランスがとれた適切な標本誤差上限εを容易に設定することが可能になり、適切な標本部分列ＳＳ３を容易に生成することが可能になる。また、適切な標本部分列ＳＳ３が生成されることで、診断精度を保ちつつ高速な診断処理を行うことが可能である。
【００６４】
以上の実施の形態に示した構成は、本発明の内容の一例を示すものであり、別の公知の技術と組み合わせることも可能であるし、本発明の要旨を逸脱しない範囲で、構成の一部を省略、変更することも可能である。
【符号の説明】
【００６５】
１０  情報処理装置、１０１  データ取得部、１０２  標本誤差上限算出部、１０３  標本部分列生成部、１０４  統計値算出部、１０５  記憶部、１０６  閾値算出部、１０７  診断部、Ｄ１  診断対象データ、Ｄ２  学習データ、Ｄ３  正常データ、Ｄ４  試行データ、ＳＳ１  診断対象部分列、ＳＳ２  学習部分列、ＳＳ３，ＳＳ３−１  標本部分列、ＳＳ４  試行部分列、ＣＬ  クラスタ、ε  標本誤差上限、ｄ  距離、ｍ，ｍ＿０  平均値、σ，σ＿０  標準偏差。
【要約】
情報処理装置（１０）は、時系列データである入力データを取得するデータ取得部（１０１）と、時系列データである学習データから抽出した部分列である複数の学習部分列の中で類似する学習部分列を統合して標本部分列を生成する際に、統合される複数の学習部分列の間の相違度の上限である標本誤差上限を、入力データから取出したデータを用いて算出する標本誤差上限算出部（１０２）と、標本誤差上限を用いて、学習データから標本部分列を生成する標本部分列生成部（１０３）と、を備えることを特徴とする。【図１】
0006362808.tif 000008
【図２】
0006362808.tif 000009
【図３】
0006362808.tif 000010
【図４】
0006362808.tif 000011
【図５】
0006362808.tif 000012
【図６】
0006362808.tif 000013
【図７】
0006362808.tif 000014
【図８】
0006362808.tif 000015
【図９】
0006362808.tif 000016
【図１０】
0006362808.tif 000017
【図１１】
0006362808.tif 000018
【図１２】
0006362808.tif 000019
【図１３】
0006362808.tif 000020
【図１４】
0006362808.tif 000021
【図１５】
0006362808.tif 000022
【図１６】
0006362808.tif 000023
【図１７】
0006362808.tif 000024