(57)【要約】  正常と判定されている製品である正常製品の中から、正常パターンからずれている正常製品を検出することができる製品検出装置を提供する。学習手段７３は、ウィンドウデータが順次、選択され、複数の正常製品それぞれの時系列データから得られた前半データと後半データとの組の集合を教師データとして、前半データから後半データを復元するためのモデルを学習する。差分計算手段７５は、後半データと復元データとの差分を、正常製品毎に計算する。ウィンドウデータ決定手段７６は、正常製品毎に計算された差分に基づいて、所定の条件を満たすウィンドウデータを決定する。製品検出手段７７は、決定されたウィンドウデータに基づいて得られた正常製品毎の差分に基づいて、複数の正常製品の中から、所定の正常製品を検出する。
2019187433.tif 000002
【特許請求の範囲】
【請求項１】
正常製品の時系列データから、データを抽出するための第１のウィンドウのサイズと、前記第１のウィンドウを用いて抽出されたデータを前半データと後半データと分割するための第２のウィンドウおよび第３のウィンドウそれぞれのサイズと、第１のウィンドウをスライドさせるときのスライドサイズとの組合せであるウィンドウデータを複数個、記憶するウィンドウデータ記憶手段と、
ウィンドウデータが順次、選択され、複数の正常製品それぞれの時系列データから、前記第１のウィンドウ、前記第２のウィンドウおよび前記第３のウィンドウを用いて得られた前半データと後半データとの組の集合を教師データとして、前半データから後半データを復元するためのモデルを学習する学習手段と、
選択されたウィンドウデータに基づいて得られた前半データと後半データとの組毎に、前記モデルに前半データを適用することによって、後半データの復元データを生成する復元データ生成手段と、
選択されたウィンドウデータに基づいて得られた後半データと復元データとの差分を、正常製品毎に計算する差分計算手段と、
正常製品毎に計算された差分に基づいて、所定の条件を満たすウィンドウデータを決定するウィンドウデータ決定手段と、
ウィンドウデータ決定手段によって決定されたウィンドウデータに基づいて得られた正常製品毎の差分に基づいて、複数の正常製品の中から、所定の正常製品を検出する検出手段とを備える
ことを特徴とする製品検出装置。
【請求項２】
差分計算手段は、
１つのウィンドウデータが選択されているときに、正常製品毎に、後半データと復元データとの差分を複数個、計算し、複数個の差分に基づいて正常製品に対応する１つの差分である製品差分を導出し、
ウィンドウデータ決定手段は、
ウィンドウデータ毎に、
正常製品毎に１つずつ導出された製品差分の中から、正常製品の数に対する所定の割合の個数に該当する製品差分を、製品差分の大きい順に選択し、選択した製品差分が属する第１のグループと、選択した製品差分以外の製品差分が属する第２のグループとを定め、
第１のグループに属する製品差分の分散と、第２のグループに属する製品差分の分散とを算出し、
第１のグループに属する製品差分の分散と、第２のグループに属する製品差分の分散とに基づいて、ウィンドウデータを決定する
請求項１に記載の製品検出装置。
【請求項３】
ウィンドウデータ決定手段は、
ウィンドウデータ毎の第１のグループに属する製品差分の分散のうちの最大値を、第１のグループに属する製品差分の分散の理想値とし、
０を第２のグループに属する製品差分の分散の理想値とし、
第１のグループに属する製品差分の分散と当該分散の理想値との差、および、第２のグループに属する製品差分の分散と当該分散の理想値との差に基づいて、ウィンドウデータを決定する
請求項２に記載の製品検出装置。
【請求項４】
ウィンドウデータ決定手段は、
ウィンドウデータ毎の第１のグループに属する製品差分の分散のうちの最大値をＹとし、１つのウィンドウデータに対応する第１のグループに属する製品差分の分散をｙとし、前記ウィンドウデータに対応する第２のグループに属する製品差分の分散をｘとしたときに、ウィンドウデータ毎に座標（０，Ｙ）と座標（ｘ，ｙ）との距離を計算し、前記距離が最小であるという条件を満たすウィンドウデータを決定する
請求項２または請求項３に記載の製品検出装置。
【請求項５】
検出手段は、
ウィンドウデータ決定手段によって決定されたウィンドウデータに基づいて得られた正常製品毎の製品差分の中から、正常製品の数に対する所定の割合の個数に該当する製品差分を、製品差分の大きい順に選択し、選択した製品差分に対応する正常製品を検出する
請求項２から請求項４のうちのいずれか１項に記載の製品検出装置。
【請求項６】
ウィンドウデータ毎に、製品差分の度数分布を表示する表示制御手段を備える
請求項２から請求項５のうちのいずれか１項に記載の製品検出装置。
【請求項７】
正常製品の時系列データから、データを抽出するための第１のウィンドウのサイズと、前記第１のウィンドウを用いて抽出されたデータを前半データと後半データと分割するための第２のウィンドウおよび第３のウィンドウそれぞれのサイズと、第１のウィンドウをスライドさせるときのスライドサイズとの組合せであるウィンドウデータを複数個、記憶するウィンドウデータ記憶手段を備えたコンピュータが、
ウィンドウデータが順次、選択され、複数の正常製品それぞれの時系列データから、前記第１のウィンドウ、前記第２のウィンドウおよび前記第３のウィンドウを用いて得られた前半データと後半データとの組の集合を教師データとして、前半データから後半データを復元するためのモデルを学習し、
選択したウィンドウデータに基づいて得た前半データと後半データとの組毎に、前記モデルに前半データを適用することによって、後半データの復元データを生成し、
選択したウィンドウデータに基づいて得た後半データと復元データとの差分を、正常製品毎に計算し、
正常製品毎に計算した差分に基づいて、所定の条件を満たすウィンドウデータを決定し、
決定したウィンドウデータに基づいて得た正常製品毎の差分に基づいて、複数の正常製品の中から、所定の正常製品を検出する
ことを特徴とする製品検出方法。
【請求項８】
コンピュータが、
１つのウィンドウデータが選択されているときに、正常製品毎に、後半データと復元データとの差分を複数個、計算し、複数個の差分に基づいて正常製品に対応する１つの差分である製品差分を導出し、
ウィンドウデータ毎に、
正常製品毎に１つずつ導出した製品差分の中から、正常製品の数に対する所定の割合の個数に該当する製品差分を、製品差分の大きい順に選択し、選択した製品差分が属する第１のグループと、選択した製品差分以外の製品差分が属する第２のグループとを定め、
第１のグループに属する製品差分の分散と、第２のグループに属する製品差分の分散とを算出し、
第１のグループに属する製品差分の分散と、第２のグループに属する製品差分の分散とに基づいて、ウィンドウデータを決定する
請求項７に記載の製品検出方法。
【請求項９】
正常製品の時系列データから、データを抽出するための第１のウィンドウのサイズと、前記第１のウィンドウを用いて抽出されたデータを前半データと後半データと分割するための第２のウィンドウおよび第３のウィンドウそれぞれのサイズと、第１のウィンドウをスライドさせるときのスライドサイズとの組合せであるウィンドウデータを複数個、記憶するウィンドウデータ記憶手段を備えたコンピュータに搭載される製品検出プログラムであって、
前記コンピュータに、
ウィンドウデータが順次、選択され、複数の正常製品それぞれの時系列データから、前記第１のウィンドウ、前記第２のウィンドウおよび前記第３のウィンドウを用いて得られた前半データと後半データとの組の集合を教師データとして、前半データから後半データを復元するためのモデルを学習する学習処理、
選択されたウィンドウデータに基づいて得られた前半データと後半データとの組毎に、前記モデルに前半データを適用することによって、後半データの復元データを生成する復元データ生成処理、
選択されたウィンドウデータに基づいて得られた後半データと復元データとの差分を、正常製品毎に計算する差分計算処理、
正常製品毎に計算された差分に基づいて、所定の条件を満たすウィンドウデータを決定するウィンドウデータ決定処理、および、
ウィンドウデータ決定処理で決定されたウィンドウデータに基づいて得られた正常製品毎の差分に基づいて、複数の正常製品の中から、所定の正常製品を検出する検出処理
を実行させるための製品検出プログラム。
【請求項１０】
コンピュータに、
差分計算処理で、
１つのウィンドウデータが選択されているときに、正常製品毎に、後半データと復元データとの差分を複数個、計算させ、複数個の差分に基づいて正常製品に対応する１つの差分である製品差分を導出させ、
ウィンドウデータ決定処理で、
ウィンドウデータ毎に、
正常製品毎に１つずつ導出された製品差分の中から、正常製品の数に対する所定の割合の個数に該当する製品差分を、製品差分の大きい順に選択させ、選択した製品差分が属する第１のグループと、選択した製品差分以外の製品差分が属する第２のグループとを定めさせ、
第１のグループに属する製品差分の分散と、第２のグループに属する製品差分の分散とを算出させ、
第１のグループに属する製品差分の分散と、第２のグループに属する製品差分の分散とに基づいて、ウィンドウデータを決定させる
請求項９に記載の製品検出プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、正常と判定されている製品の中から、正常パターンからずれている製品を検出する製品検出装置、製品検出方法および製品検出プログラムに関する。
【背景技術】
【０００２】
センサから取得した時系列データから、機器の異常を自動検出する技術がある。例えば、特許文献１には、過去に蓄積したセンサのデータを用いて、監視対象に対する異常判定を行うシステムが記載されている。また、特許文献１には、時系列データを分割してセグメントデータを切り出すことが記載されている。【０００３】
また、機械学習を用いて、時系列データから異常を自動検知する技術として、再帰型ニューラルネットワークがある。再帰型ニューラルネットワークによって異常を検知する場合、異常データおよび正常データの両方のデータを使った学習が必要である。【０００４】
また、特許文献２には、入力データから潜在変数を推論し、予め学習されたモデルに基づいて、その潜在変数から復元データを生成し、入力データと復元データのずれに基づいて、その入力データが正常であるか否かを判定する異常検出方法が記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】国際公開第ＷＯ２０１１／０３６８０９号
【特許文献２】国際公開第ＷＯ２０１７／０９４２６７号
【発明の概要】
【発明が解決しようとする課題】
【０００６】
何らかの検査によって正常であると判定された製品であっても、品質にはばらつきが生じる。そのため、正常と判定された製品の中から、正常パターンからずれた製品を見分けたいというニーズがある。正常と判定された製品であっても、正常パターンからずれた製品は、将来、故障する可能性があり、そのような故障の可能性のある製品を予測することが望まれているためである。【０００７】
しかし、再帰型ニューラルネットワークによって正常と判定された製品の中から、正常パターンからずれた製品を判定することは困難であった。これは、正常パターンからずれた製品を検出しようとする製品の集合は、全て、正常と判定された製品であり、何に着目すれば品質のばらつきを把握できるのかが不明であることが多かったためである。また、そのため、品質のばらつきを示す値を明確に定義することができなかった。その結果、正常と判定された製品の中から、正常パターンからずれた製品を判定することは困難であった。【０００８】
そこで、本発明は、正常と判定されている製品である正常製品の中から、正常パターンからずれている正常製品を検出することができる製品検出装置、製品検出方法および製品検出プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明による製品検出装置は、正常製品の時系列データから、データを抽出するための第１のウィンドウのサイズと、第１のウィンドウを用いて抽出されたデータを前半データと後半データと分割するための第２のウィンドウおよび第３のウィンドウそれぞれのサイズと、第１のウィンドウをスライドさせるときのスライドサイズとの組合せであるウィンドウデータを複数個、記憶するウィンドウデータ記憶手段と、ウィンドウデータが順次、選択され、複数の正常製品それぞれの時系列データから、第１のウィンドウ、第２のウィンドウおよび第３のウィンドウを用いて得られた前半データと後半データとの組の集合を教師データとして、前半データから後半データを復元するためのモデルを学習する学習手段と、選択されたウィンドウデータに基づいて得られた前半データと後半データとの組毎に、モデルに前半データを適用することによって、後半データの復元データを生成する復元データ生成手段と、選択されたウィンドウデータに基づいて得られた後半データと復元データとの差分を、正常製品毎に計算する差分計算手段と、正常製品毎に計算された差分に基づいて、所定の条件を満たすウィンドウデータを決定するウィンドウデータ決定手段と、ウィンドウデータ決定手段によって決定されたウィンドウデータに基づいて得られた正常製品毎の差分に基づいて、複数の正常製品の中から、所定の正常製品を検出する検出手段とを備えることを特徴とする。【００１０】
また、本発明による製品検出方法は、正常製品の時系列データから、データを抽出するための第１のウィンドウのサイズと、第１のウィンドウを用いて抽出されたデータを前半データと後半データと分割するための第２のウィンドウおよび第３のウィンドウそれぞれのサイズと、第１のウィンドウをスライドさせるときのスライドサイズとの組合せであるウィンドウデータを複数個、記憶するウィンドウデータ記憶手段を備えたコンピュータが、ウィンドウデータが順次、選択され、複数の正常製品それぞれの時系列データから、第１のウィンドウ、第２のウィンドウおよび第３のウィンドウを用いて得られた前半データと後半データとの組の集合を教師データとして、前半データから後半データを復元するためのモデルを学習し、選択したウィンドウデータに基づいて得た前半データと後半データとの組毎に、モデルに前半データを適用することによって、後半データの復元データを生成し、選択したウィンドウデータに基づいて得た後半データと復元データとの差分を、正常製品毎に計算し、正常製品毎に計算した差分に基づいて、所定の条件を満たすウィンドウデータを決定し、決定したウィンドウデータに基づいて得た正常製品毎の差分に基づいて、複数の正常製品の中から、所定の正常製品を検出することを特徴とする。【００１１】
また、本発明による製品検出プログラムは、正常製品の時系列データから、データを抽出するための第１のウィンドウのサイズと、第１のウィンドウを用いて抽出されたデータを前半データと後半データと分割するための第２のウィンドウおよび第３のウィンドウそれぞれのサイズと、第１のウィンドウをスライドさせるときのスライドサイズとの組合せであるウィンドウデータを複数個、記憶するウィンドウデータ記憶手段を備えたコンピュータに搭載される製品検出プログラムであって、コンピュータに、ウィンドウデータが順次、選択され、複数の正常製品それぞれの時系列データから、第１のウィンドウ、第２のウィンドウおよび第３のウィンドウを用いて得られた前半データと後半データとの組の集合を教師データとして、前半データから後半データを復元するためのモデルを学習する学習処理、選択されたウィンドウデータに基づいて得られた前半データと後半データとの組毎に、モデルに前半データを適用することによって、後半データの復元データを生成する復元データ生成処理、選択されたウィンドウデータに基づいて得られた後半データと復元データとの差分を、正常製品毎に計算する差分計算処理、正常製品毎に計算された差分に基づいて、所定の条件を満たすウィンドウデータを決定するウィンドウデータ決定処理、および、ウィンドウデータ決定処理で決定されたウィンドウデータに基づいて得られた正常製品毎の差分に基づいて、複数の正常製品の中から、所定の正常製品を検出する検出処理を実行させることを特徴とする。
【発明の効果】
【００１２】
本発明によれば、正常と判定されている製品である正常製品の中から、正常パターンからずれている正常製品を検出することができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の第１の実施形態の製品検出装置の例を示すブロック図である。
【図２】データ切り出し部が第１のウィンドウを用いて時系列データからデータを切り出す処理を示す模式図である。
【図３】データ切り出し部が切り出しデータを前半データと後半データとに分割する処理を示す模式図である。
【図４】第１のウィンドウのスライドを示す模式図である。
【図５】本発明の製品検出装置の処理経過の例を示すフローチャートである。
【図６】ステップＳ１０２の処理経過の例を示すフローチャートである。
【図７】ステップＳ１０３の処理経過の例を示すフローチャートである。
【図８】後半データを復元するためのモデルの学習を示す模式図である。
【図９】ステップＳ１０４の処理経過の例を示すフローチャートである。
【図１０】復元データの生成を示す模式図である。
【図１１】ステップＳ１０５の処理経過の例を示すフローチャートである。
【図１２】後半データと復元データとの差分が小さい場合および大きい場合を示す模式図である。
【図１３】ステップＳ１０７の処理経過の例を示すフローチャートである。
【図１４】製品差分の度数分布の一例を示す模式図である。
【図１５】２つのウィンドウデータに対応する製品差分の度数分布の違いを示す模式図である。
【図１６】座標（０，Ｙ）および各ウィンドウデータに対応する座標（ｘ，ｙ）の例を示す模式図である。
【図１７】ステップＳ１０８の処理経過の例を示すフローチャートである。
【図１８】本発明の第２の実施形態の製品検出装置の例を示すブロック図である。
【図１９】本発明の各実施形態に係るコンピュータの構成例を示す概略ブロック図である。
【図２０】本発明の製品検出装置の概要を示すブロック図である。
【発明を実施するための形態】
【００１４】
以下、本発明の実施形態を図面を参照して説明する。以下の説明では、正常と判定されている製品を正常製品と記す。正常製品であるか否かの判定は、予め行われているものとする。また、正常製品であるか否かの判定方法は、特に限定されない。本発明は、複数の正常製品の中から、正常パターンからずれている正常製品を検出する。
【００１５】
実施形態１．
図１は、本発明の第１の実施形態の製品検出装置の例を示すブロック図である。本発明の第１の実施形態の製品検出装置１００は、時系列データ記憶部１と、データ切り出し部２と、分割済みデータ記憶部３と、学習部４と、モデル記憶部５と、復元データ生成部６と、復元データ記憶部７と、差分計算部８と、製品差分記憶部９と、ウィンドウデータ記憶部１０と、ウィンドウデータ決定部１１と、決定ウィンドウデータ記憶部１２と、製品検出部１３とを備える。
【００１６】
時系列データ記憶部１は、複数の正常製品の時系列データを記憶する記憶装置である。時系列データは、時間経過に伴う数値の変化を表すデータであり、例えば、時間経過順に並べられた時刻に数値を対応付けたデータである。この数値が何を表す数値であるのかは、特に限定されない。正常製品の種類に応じた数値を含む時系列データを、時系列データ記憶部１に予め記憶させておけばよい。また、時系列データは、正常製品から直接得られたデータであってもよく、あるいは、正常製品をモニタするセンサから得られたデータであってもよい。
【００１７】
なお、予め、個々の正常製品には識別情報が割り当てられ、時系列データには正常製品の識別情報が対応付けられているものとする。
【００１８】
ウィンドウデータ記憶部１０は、ウィンドウデータを複数個記憶する記憶装置である。１つのウィンドウデータは、第１のウィンドウのサイズと、第２のウィンドウのサイズと、第３のウィンドウのサイズと、第１のウィンドウをスライドさせるときのスライドサイズ（スライド量）との組合せである。
【００１９】
第１のウィンドウは、時系列データからデータを切り出すためのウィンドウである。第２のウィンドウおよび第３のウィンドウはそれぞれ、第１のウィンドウを用いて切り出されたデータを、前半データと後半データとに分割するためのウィンドウである。第２のウィンドウは前半データに対応し、第３のウィンドウは後半データに対応する。第１のウィンドウのサイズは、第２のウィンドウのサイズと、第３のウィンドウのサイズを合わせたサイズになっている。
【００２０】
なお、「データを切り出す。」という表現は、「データを抽出する。」という表現で表すこともできる。
【００２１】
データ切り出し部２は、ウィンドウデータ記憶部１０に記憶されている複数のウィンドウデータを、順次、１つずつ選択する。そして、データ切り出し部２は、複数の正常製品それぞれの時系列データから、選択したウィンドウデータに応じた第１のウィンドウを用いてデータを切り出す。さらに、データ切り出し部２は、切り出したデータを、ウィンドウデータに応じた第２のウィンドウおよび第３のウィンドウを用いて、前半データと後半データとに分割する。データ切り出し部２は、第２のウィンドウの右端と第３のウィンドウの左端を重ねて、第１のウィンドウを用いて切り出したデータから、第２のウィンドウおよび第３のウィンドウを用いてデータを切り出すことで、第１のウィンドウを用いて切り出したデータを、前半データと後半データとに分割する。以下、第１のウィンドウを用いて切り出したデータを、切り出しデータと称する場合がある。
【００２２】
なお、予め、個々のウィンドウデータには識別情報が割り当てられ、各ウィンドウデータは、ウィンドウデータの識別情報とともに、ウィンドウデータ記憶部１０に記憶されているものとする。
【００２３】
データ切り出し部２は、１つの正常製品の時系列データから、第１のウィンドウを用いてデータを切り出し、切り出しデータを前半データと後半データとに分割する動作を、第１のウィンドウをスライドサイズに従ってスライドさせながら繰り返す。そして、データ切り出し部２は、第１のウィンドウをスライドできなくなったならば、その時系列データからのデータの切り出しを終了する。
【００２４】
図２は、データ切り出し部２が第１のウィンドウを用いて時系列データからデータを切り出す処理を示す模式図である。なお、図２に示す例において、時系列データ４０は、時間経過順に並べられた時刻に、センサが正常製品をモニタすることによって得た数値（センサ値）を対応付けたデータである。この点は、後述の図３および図４においても同様である。データ切り出し部２は、第１のウィンドウ３１のサイズで時系列データ４０からデータを切り出す。この結果、切り出しデータ４１が得られる。
【００２５】
図３は、データ切り出し部２が切り出しデータ４１を前半データと後半データとに分割する処理を示す模式図である。データ切り出し部２は、第２のウィンドウ３２の右端と第３のウィンドウ３３の左端を重ねて、第２のウィンドウ３２のサイズおよび第３のウィンドウ３３のサイズで切り出しデータ４１からデータを切り出すことによって、切り出しデータ４１を、前半データ４２と、後半データ４３とに分割する。なお、図面において、第２のウィンドウ３２を一点鎖線で示し、第３のウィンドウ３３を破線で示す。
【００２６】
図４は、第１のウィンドウのスライドを示す模式図である。データ切り出し部２は、第１のウィンドウ３１を、選択したウィンドウデータに応じたスライドサイズに従って時刻軸方向にスライドさせ、時系列データ４０から切り出しデータ４１を切り出し、切り出しデータ４１を、前半データ４２と後半データ４３とに分割する。データ切り出し部２は、この処理を、時系列データ４０において第１のウィンドウをスライドできなくなるまで繰り返す。
【００２７】
データ切り出し部２は、この処理を、複数の正常製品の時系列データに対して、それぞれ実行する。
【００２８】
また、データ切り出し部２は、前半データ４２と後半データ４３との組を得ると、その組を、選択しているウィンドウデータの識別情報、および、処理対象とした時系列データに対応する正常製品の識別情報と対応づけて、分割済みデータ記憶部３に記憶させる。
【００２９】
分割済みデータ記憶部３は、前半データ４２と後半データ４３との組の集合を記憶する記憶装置である。
【００３０】
学習部４は、データ切り出し部２が直近に選択したウィンドウデータに基づいて得られた前半データ４２と後半データ４３との組の集合（すなわち、直近に選択されたウィンドウデータの識別情報に対応付けられている前半データ４２と後半データ４３との組の集合）を教師データとし、前半データから後半データを復元するためのモデルを、機械学習によって学習（生成）する。学習部４は、生成したモデルを、直近に選択されたウィンドウデータの識別情報と対応付けてモデル記憶部５に記憶させる。
【００３１】
モデル記憶部５は、学習部４が生成したモデルを記憶する記憶装置である。
【００３２】
復元データ生成部６は、直近に選択されたウィンドウデータの識別情報に対応付けられているモデルをモデル記憶部５から読み込み、また、そのウィンドウデータの識別情報に対応付けられている前半データと後半データとの組を全て、分割済みデータ記憶部３から読み込む。そして、復元データ生成部６は、前半データと後半データとの組毎に、モデルに前半データを適用することによって、後半データを復元する。復元された後半データを、復元データと記す。すなわち、復元データ生成部６は、前半データと後半データとの組毎に、モデルに前半データを適用することによって、後半データの復元データを生成する。復元データ生成部６は、この処理を、正常製品毎（換言すれば、正常製品の識別情報毎）に実行する。復元データ生成部６は、生成した復元データを、直近に選択されたウィンドウデータの識別情報、および、正常製品の識別情報と対応付けて、復元データ記憶部７に記憶させる。
【００３３】
復元データ記憶部７は、復元データ生成部６が生成した復元データを記憶する記憶装置である。
【００３４】
差分計算部８は、直近に選択されたウィンドウデータの識別情報に対応付けられている各後半データを分割済みデータ記憶部３から読み込み、その各後半データに対応する各復元データを復元データ記憶部７から読み込む。後半データに対応する復元データとは、その後半データと組をなす前半データに基づいて生成された復元データである。
【００３５】
そして、差分計算部８は、正常製品毎（換言すれば、正常製品の識別情報毎）に、後半データと復元データとの差分を計算する。既に説明したように、データ切り出し部２は、第１のウィンドウをスライドさせながら、前半データと後半データとの組を生成していく。従って、１つの正常製品について、後半データは複数存在し、その複数の後半データそれぞれに対して復元データが存在する。すなわち、１つの正常製品について、後半データと復元データとの組は複数存在する。従って、差分計算部８は、１つの正常製品について、まず、後半データと復元データとの差分を、複数個、計算する。このとき、差分計算部８は、差分を数値として計算する。例えば、差分計算部８は、一組の後半データと復元データから差分を求める場合、同一時刻同士の数値の差の二乗の平均値を、その後半データと復元データとの差分として計算してもよい。ただし、差分を数値として計算する方法は、この方法に限定されず、他の方法で差分を計算してもよい。
【００３６】
差分計算部８は、１つの正常製品について、後半データと復元データとの差分を、複数個、計算した後、その複数個の差分に基づいて、その正常製品に対応する１つの差分を導出する。例えば、差分計算部８は、その複数個の差分の平均値を計算し、その平均値を、その正常製品に対応する１つの差分として定めてもよい。また、例えば、差分計算部８は、その複数個の差分の最大値を特定し、その最大値を、その正常製品に対応する１つの差分として定めてもよい。以下、複数個の差分に基づいて導出した、１つ正常製品に対応する１つの差分を製品差分と記す。
【００３７】
差分計算部８は、上記のように、正常製品毎に、後半データと復元データとの差分を複数個、計算し、その複数個の差分に基づいて製品差分を導出する。差分計算部８は、製品差分を、直近に選択されたウィンドウデータの識別情報、および、正常製品の識別情報と対応付けて、製品差分記憶部９に記憶させる。
【００３８】
製品差分記憶部９は、差分計算部８が導出した製品差分を記憶する記憶装置である。
【００３９】
ウィンドウデータ決定部１１は、正常製品毎に導出された製品差分に基づいて、ウィンドウデータ記憶部１０に記憶されている複数のウィンドウデータの中から、所定の条件を満たすウィンドウデータを１つ決定する。ウィンドウデータ決定部１１がウィンドウデータを決定する処理の詳細については、後述する。ウィンドウデータ決定部１１は、決定したウィンドウデータを、決定ウィンドウデータ記憶部１２に記憶させる
【００４０】
決定ウィンドウデータ記憶部１２は、ウィンドウデータ決定部１１によって決定されたウィンドウデータを記憶する記憶装置である。
【００４１】
製品検出部１３は、ウィンドウデータ決定部１１によって決定されたウィンドウデータを、決定ウィンドウデータ記憶部１２から読み込む。そして、製品検出部１３は、そのウィンドウデータに基づいて得られた正常製品毎の製品差分に基づいて、複数の正常製品の中から、所定の正常製品を検出する。より具体的には、製品検出部１３は、そのウィンドウデータに基づいて得られた正常製品毎の製品差分の中から、正常製品の数に対する所定の割合（例えば、５％）の個数に該当する製品差分を、製品差分の大きい順に選択し、選択した製品差分に対応する正常製品を検出する。
【００４２】
製品検出部１３は、製品差分の大きい正常製品を検出していると言える。従って、製品検出部１３によって検出された正常製品は、正常パターンからずれた正常製品であると言える。
【００４３】
データ切り出し部２、学習部４、復元データ生成部６、差分計算部８、ウィンドウデータ決定部１１、および、製品検出部１３は、例えば、製品検出プログラムに従って動作するコンピュータのＣＰＵ（Central Processing Unit ）によって実現される。この場合、ＣＰＵが、コンピュータのプログラム記憶装置等のプログラム記録媒体から製品検出プログラムを読み込み、そのプログラムに従って、データ切り出し部２、学習部４、復元データ生成部６、差分計算部８、ウィンドウデータ決定部１１、および、製品検出部１３として動作すればよい。
【００４４】
次に、本発明の処理経過について説明する。図５は、本発明の製品検出装置１００の処理経過の例を示すフローチャートである。以下の説明では、既に説明した事項については、適宜、説明を省略する。
【００４５】
まず、データ切り出し部２は、ウィンドウデータ記憶部１０に記憶されている複数のウィンドウデータの中から、未だ選択されていないウィンドウデータを１つ選択し、そのウィンドウデータを読み込む（ステップＳ１０１）。
【００４６】
次に、データ切り出し部２は、各時系列データから、前半データと後半データとの組を得る（ステップＳ１０２）。
【００４７】
図６は、ステップＳ１０２の処理経過の例を示すフローチャートである。ステップＳ１０２において、データ切り出し部２は、複数の正常製品の時系列データをそれぞれ、時系列データ記憶部１から読み込む（ステップＳ２０１）。
【００４８】
そして、データ切り出し部２は、各時系列データから、第１のウィンドウを用いてデータを切り出し、切り出しデータを前半データと後半データとに分割する（ステップＳ２０２）。具体的には、ステップＳ２０２では、データ切り出し部２は、時系列データ毎に、以下の処理を行う。データ切り出し部２は、選択したウィンドウデータに応じた第１のウィンドウのサイズで時系列データからデータを切り出す。そして、データ切り出し部２は、第２のウィンドウの右端と第３のウィンドウの左端を重ねて、第２のウィンドウのサイズおよび第３のウィンドウのサイズでそのデータ（切り出しデータ）からデータを切り出すことによって、切り出しデータを前半データと後半データとに分割する。さらに、データ切り出し部２は、第１のウィンドウを、選択したウィンドウデータに応じたスライドサイズに従ってスライドさせ、同様の処理を繰り返す。時系列データにおいて、第１のウィンドウをスライドできなくなったら、処理を終了する。
【００４９】
データ切り出し部２は、ステップＳ２０２で得られた前半データと後半データとの組をそれぞれ、分割済みデータ記憶部３に記憶させる（ステップＳ２０３）。このとき、データ切り出し部２は、前半データと後半データとの組を、選択しているウィンドウデータの識別情報、および、処理対象とした時系列データに対応する正常製品の識別情報と対応づけて、分割済みデータ記憶部３に記憶させる。
【００５０】
ステップＳ２０３で、ステップＳ１０２が終了する。
【００５１】
ステップＳ１０２に続いて、学習部４は、前半データから後半データを復元するためのモデルを学習する（ステップＳ１０３）。
【００５２】
図７は、ステップＳ１０３の処理経過の例を示すフローチャートである。ステップＳ１０３において、学習部４は、直近のステップＳ１０１（図５参照）で選択されたウィンドウデータの識別情報に対応付けられている前半データと後半データとの組の集合を、分割済みデータ記憶部３から読み込む（ステップＳ３０１）。
【００５３】
次に、学習部４は、前半データと後半データとの組の集合を教師データとして、前半データから後半データを復元するためのモデルを、機械学習によって学習する（ステップＳ３０２）。図８は、後半データを復元するためのモデルの学習を示す模式図である。
【００５４】
ステップＳ３０２において、学習部４は、機械学習の手法として、オートエンコーダのように入力を再現することができる手法を用いてもよい。この手法の一例として、ディープラーニングがある。学習部４は、前半データから後半データを復元するためのモデルを、ディープラーニングによって生成してもよい。
【００５５】
次に、学習部４は、ステップＳ３０２で生成したモデルを、直近のステップＳ１０１（図５参照）で選択されたウィンドウデータの識別情報と対応付けてモデル記憶部５に記憶させる（ステップＳ３０３）。
【００５６】
ステップＳ３０３で、ステップＳ１０３が終了する。
【００５７】
ステップＳ１０３に続いて、復元データ生成部６は、復元データを生成する（ステップＳ１０４）。
【００５８】
図９は、ステップＳ１０４の処理経過の例を示すフローチャートである。ステップＳ１０４において、復元データ生成部６は、直近のステップＳ１０１（図５参照）で選択されたウィンドウデータの識別情報と対応付けられている前半データと後半データとの組を全て、分割済みデータ記憶部３から読み込む（ステップＳ４０１）。
【００５９】
次に、復元データ生成部６は、そのウィンドウデータの識別情報と対応付けられているモデルを、モデル記憶部５から読み込む（ステップＳ４０２）。このモデルは、直近のステップＳ３０２で学習されたモデルである。
【００６０】
次に、復元データ生成部６は、ステップＳ４０１で読み込んだ前半データと後半データとの組毎に、モデルに前半データを適用することによって、後半データの復元データを生成する（ステップＳ４０３）。図１０は、復元データの生成を示す模式図である。復元データ生成部６は、正常製品毎（換言すれば、正常製品の識別情報毎）に、復元データの生成を実行する。
【００６１】
次に、復元データ生成部６は、生成した復元データを、直近のステップＳ１０１（図５参照）で選択されたウィンドウデータの識別情報、および、正常製品の識別情報と対応付けて、復元データ記憶部７に記憶させる（ステップＳ４０４）。
【００６２】
ステップＳ４０４で、ステップＳ１０４が終了する。
【００６３】
ステップＳ１０４に続いて、差分計算部８は、正常製品毎に製品差分を導出する（ステップＳ１０５）。
【００６４】
図１１は、ステップＳ１０５の処理経過の例を示すフローチャートである。ステップＳ１０５において、差分計算部８は、直近のステップＳ１０１（図５参照）で選択されたウィンドウデータの識別情報に対応付けられている各後半データを分割済みデータ記憶部３から読み込み、その各後半データに対応する各復元データを復元データ記憶部７から読み込む（ステップＳ５０１）。
【００６５】
次に、差分計算部８は、正常製品毎（換言すれば、正常製品の識別情報毎）に、後半データと復元データとの差分を、複数個、計算する。一組の後半データと復元データから差分を求める場合、差分計算部８は、例えば、同一時刻同士の数値の差の二乗の平均値を、その後半データと復元データとの差分として計算する。図１２は、後半データと復元データとの差分が小さい場合および大きい場合を示す模式図である。図１２（ａ）は、後半データと復元データとの差分が小さい場合を示している。後半データがモデルによって予期し得る場合、差分は小さくなる。図１２（ｂ）は、後半データと復元データとの差分が大きい場合を示している。後半データがモデルによって予期し得ない場合、差分は大きくなる。
【００６６】
差分計算部８は、さらに、正常製品毎に、複数個の差分に基づいて製品差分を導出する（ステップＳ５０２）。１つの正常製品について、複数個の差分に基づいて製品差分を導出する場合、差分計算部８は、例えば、その複数個の差分の平均値を計算し、その平均値を、その正常製品の製品差分として定めてもよい。また、例えば、差分計算部８は、その複数個の差分の最大値を特定し、その最大値を、その正常製品の製品差分として定めてもよい。
【００６７】
差分計算部８は、正常製品毎に導出した製品差分を製品差分記憶部９に記憶させる（ステップＳ５０３）。このとき、差分計算部８は、各製品差分を、直近のステップＳ１０１（図５参照）で選択されたウィンドウデータの識別情報、および、正常製品の識別情報と対応付けて、製品差分記憶部９に記憶させる。
【００６８】
ステップＳ５０３で，ステップＳ１０５が終了する。
【００６９】
ステップＳ１０５に続いて、ウィンドウデータ記憶部１０に記憶されている複数のウィンドウデータの中に、まだ、ステップＳ１０１で選択されていないウィンドウデータがあるか否かを判定する（ステップＳ１０６）。
【００７０】
未選択のウィンドウデータがある場合（ステップＳ１０６のＹｅｓ）、製品検出装置１００は、ステップＳ１０１以降の処理を繰り返す。
【００７１】
未選択のウィンドウデータがない場合（ステップＳ１０６のＮｏ）、ウィンドウデータ決定部１１は、正常製品毎に導出された製品差分に基づいて、所定の条件を満たすウィンドウデータを１つ決定する（ステップＳ１０７）。ステップＳ１０７では、ウィンドウデータ決定部１１は、正常パターンからずれた正常製品と正常パターンからずれていない正常製品とを区別するのに適したウィンドウデータを１つ選択する。
【００７２】
ステップＳ１０１〜Ｓ１０６の繰り返し処理によって、各正常製品の製品差分は、ウィンドウデータ毎に導出され、製品差分記憶部９に記憶されている。
【００７３】
図１３は、ステップＳ１０７の処理経過の例を示すフローチャートである。ステップＳ１０７において、ウィンドウデータ決定部１１は、まず、ウィンドウデータ毎に（換言すれば、ウィンドウデータの識別情報毎に）、各正常製品の製品差分を製品差分記憶部９から読み込む（ステップＳ６０１）。
【００７４】
次に、ウィンドウデータ決定部１１は、ウィンドウデータ毎に、各製品差分を、製品差分が大きい方のグループと製品差分が小さい方のグループの２つのグループに分ける（ステップＳ６０２）。製品差分が大きい方のグループを第１のグループと記し、製品差分が小さい方のグループを第２のグループと記す。
【００７５】
ステップＳ６０２において、ウィンドウデータ決定部１１は、正常製品毎に１つずつ導出された製品差分の中から、正常製品の数に対する所定の割合（例えば、５％）の個数に該当する製品差分を、製品差分の大きい順に選択し、選択した製品差分が第１のグループに属すると定める。また、ウィンドウデータ決定部１１は、選択した製品差分以外の製品差分が第２のグループに属すると定める。以下、上記の所定の割合が５％である場合を例にして説明するが、上記の所定の割合は５％に限定されない。本例では、製品差分の総数のうち、５％が第１のグループに属し、９５％が第２のグループに属する。
【００７６】
このように、各製品差分を第１のグループおよび第２のグループに分けた場合における製品差分の度数分布の一例を図１４に示す。図１４では、製品差分が正規分布に従う場合における製品差分の度数分布を例示している。
【００７７】
ステップＳ１０１で選択されるウィンドウデータが異なれば、導出される製品差分も異なる。従って、ウィンドウデータが異なれば、製品差分の度数分布も異なる。図１５は、２つのウィンドウデータに対応する製品差分の度数分布の違いを示す模式図である。正常製品は全て、予め正常であると判定されている。従って、大部分の正常製品の製品差分は０に近い値であると予想される。図１５に示す例では、ウィンドウデータｂに対応する製品差分の度数分布では、０から離れた値となっている製品差分の度数が多い。従って、図１５に例示するウィンドウデータｂは、正常パターンからずれた正常製品を検出する上で適切ではない。
【００７８】
また、全ての製品差分が０に近い値になるようなウィンドウデータも、正常パターンからずれた製品を検出する上で、適切ではない。全ての製品差分が０に近い値であると、正常パターンからずれた正常製品の製品差分と、正常パターンからずれていない正常製品の製品差分とを区別できないためである。
【００７９】
以上のことから、０に近い値の製品差分の数が多く、また、０から離れた値となっている製品差分も存在するような度数分布が、正常パターンからずれた正常製品を検出する上で好ましい。例えば、図１５に例示するウィンドウデータａに対応する度数分布（製品差分の度数分布）が得られることが好ましい。
【００８０】
ウィンドウデータ決定部１１は、そのような好ましい度数分布が得られるウィンドウデータを、以下に説明する処理で決定する。
【００８１】
ステップＳ６０２の次に、ウィンドウデータ決定部１１は、ウィンドウデータ毎に（換言すれば、ウィンドウデータの識別情報毎に）、第１のグループに属する製品差分の分散と、第２のグループに属する製品差分の分散とを計算する（ステップＳ６０３）。
【００８２】
さらに、ウィンドウデータ決定部１１は、各ウィンドウデータにおける第１のグループに属する製品差分の分散と、第２のグループに属する製品差分の分散とに基づいて、１つのウィンドウデータを決定する（ステップＳ６０４）。
【００８３】
ステップＳ６０４において、ウィンドウデータ決定部１１は、ウィンドウデータ毎の第１のグループに属する製品差分の分散のうちの最大値（Ｙとする）を、第１のグループに属する製品差分の分散の理想値とする。また、ウィンドウデータ決定部１１は、０を、第２のグループに属する製品差分の分散の理想値とする。そして、ウィンドウデータ決定部１１は、第１のグループに属する製品差分の分散とその分散の理想値Ｙとの差、および、第２のグループに属する製品差分の分散とその分散の理想値（０）との差に基づいて、ウィンドウデータを決定する。ここで、ウィンドウデータ決定部１１は、第１のグループに属する製品差分の分散、および、第２のグループに属する製品差分の分散がそれぞれ理想値に近くなるようなウィンドウデータを１つ特定する。
【００８４】
上記の動作をより具体的に説明する。ウィンドウデータ毎の第１のグループに属する製品差分の分散のうちの最大値をＹとする。また、１つのウィンドウデータに対応する第１のグループに属する製品差分の分散をｙとし、そのウィンドウデータに対応する第２のグループに属する製品差分の分散をｘとする。ウィンドウデータ決定部１１は、ウィンドウデータ毎に、座標（０，Ｙ）と座標（ｘ，ｙ）との距離（例えば、ユークリッド距離）を計算し、その距離が最小であるという条件を満たすウィンドウデータを決定する。
【００８５】
例えば、３つのウィンドウデータＡ，Ｂ，Ｃがあるとする。ウィンドウデータＡに対応する第１のグループに属する製品差分の分散が“１０”であり、第２のグループに属する製品差分の分散が“３”であるとする。また、ウィンドウデータＢに対応する第１のグループに属する製品差分の分散が“１１”であり、第２のグループに属する製品差分の分散が“２”であるとする。また、ウィンドウデータＣに対応する第１のグループに属する製品差分の分散が“１２”であり、第２のグループに属する製品差分の分散が“４”であるとする。
【００８６】
本例では、第１のグループに属する製品差分の分散のうちの最大値Ｙは、“１２”である。従って、第１のグループに属する製品差分の分散の理想値は“１２”である。また、第２のグループに属する製品差分の分散の理想値は“０”である。従って、上記の座標（０，Ｙ）は、（０，１２）である。また、ウィンドウデータＡに対応する上記の座標（ｘ，ｙ）は、（３，１０）である。ウィンドウデータＢに対応する上記の座標（ｘ，ｙ）は、（２，１１）である。ウィンドウデータＣに対応する上記の座標の座標（ｘ，ｙ）は、（４，１２）である。図１６は、座標（０，Ｙ）および各ウィンドウデータに対応する座標（ｘ，ｙ）の例を示す模式図である。
【００８７】
ウィンドウデータ決定部１１は、ウィンドウデータ毎に、座標（０，１２）と座標（ｘ，ｙ）との距離を計算し、その距離が最小であるという条件をみたすウィンドウデータを決定する。座標（０，１２）との距離が最小となる座標は（２，１１）であるので、本例では、ウィンドウデータ決定部１１は、（０，１２）との距離が最小となるという条件を満たすウィンドウデータとして、“ウィンドウデータＢ”を決定する。
【００８８】
ステップＳ６０４の次に、ウィンドウデータ決定部１１は、ステップＳ６０４で決定したウィンドウデータを、その識別情報とともに、決定ウィンドウデータ記憶部１２に記憶させる（ステップＳ６０５）。
【００８９】
ステップＳ６０５で、ステップＳ１０７が終了する。
【００９０】
ステップＳ１０７に続いて、製品検出部１３は、ステップＳ１０７で決定されたウィンドウデータに基づいて得られた各製品差分に基づいて、複数の正常製品の中から、正常パターンからずれた正常製品を検出する（ステップＳ１０８）。
【００９１】
図１７は、ステップＳ１０８の処理経過の例を示すフローチャートである。ステップＳ１０８において、製品検出部１３は、ステップＳ１０７で決定されたウィンドウデータを決定ウィンドウデータ記憶部１２から読み込む（ステップＳ７０１）。
【００９２】
次に、製品検出部１３は、そのウィンドウデータに対応する各製品差分を、製品差分記憶部９から読み込む（ステップＳ７０２）。
【００９３】
製品検出部１３は、ステップＳ７０２で読み込んだ各製品差分に基づいて、パターンからずれた正常製品を特定する（ステップＳ７０３）。ステップＳ７０３において、製品検出部１３は、ステップＳ７０２で読み込んだ各製品差分の中から、正常製品の数に対する所定の割合（例えば、５％）の個数に該当する製品差分を、製品差分の大きい順に選択し、選択した製品差分に対応する正常製品を特定する。
【００９４】
ステップＳ７０３で特定した正常製品が、正常パターンからずれた正常製品であると言える。
【００９５】
本実施形態によれば、ウィンドウデータが複数定められていて、製品検出装置１００は、ウィンドウデータ毎に、各正常製品の製品差分を導出する。そして、製品検出装置１００は、正常パターンからずれた正常製品を検出するのに適したウィンドウデータを決定する。具体的には、製品検出装置１００は、製品差分の度数分布として、０に近い値の製品差分の数が多く、また、０から離れた値となっている製品差分も存在するような度数分布が得られるウィンドウデータを、複数のウィンドウデータの中から決定する。決定されたウィンドウデータに対応する各製品差分では、０に近い値の製品差分の数が多く、また、０から離れた値となっている製品差分も存在している。０から離れた値となっている製品差分は、正常パターンからずれていると言える。そして、製品検出部１３は、そのように０から離れた値となっている製品差分を特定する。従って、本実施形態によれば、何らかの検査により正常と判定されている正常製品の中から、正常パターンからずれている正常製品を検出することができる。
【００９６】
実施形態２．
図１８は、本発明の第２の実施形態の製品検出装置の例を示すブロック図である。図１に示す要素と同様の要素については、図１と同一の符号を付し、説明を省略する。本発明の第２の実施形態の製品検出装置１００は、第１の実施形態の製品検出装置１００（図１参照）が備える各要素に加えて、さらに、表示制御部１４を備える。
【００９７】
表示制御部１４は、ウィンドウデータ毎に製品差分の度数分布を、ディスプレイ装置（図１８において図示略）に表示させる。例えば、表示制御部１４は、１つのウィンドウデータに関して、図１４に例示する製品差分の度数分布をディスプレイ装置上に表示する。表示制御部１４は、他のウィンドウデータに関しても、それぞれ同様に、製品差分の度数分布をディスプレイ装置上に表示する。
【００９８】
表示制御部１４がウィンドウデータ毎に製品差分の度数分布をディスプレイ装置上に表示することによって、ユーザは、ウィンドウデータ毎の製品差分の分布を視覚的に確認することができる。
【００９９】
また、表示制御部１４は、決定ウィンドウデータ記憶部１２に記憶されたウィンドウデータをディスプレイ装置に表示させてもよい。この場合、ユーザは、ウィンドウデータ決定部１１によって決定されたウィンドウデータを視覚的に確認することができる。
【０１００】
また、表示制御部１４は、製品検出部１３が検出した正常製品（製品検出部１３がステップＳ７０３で特定した正常製品）の識別情報をディスプレイ装置に表示させてもよい。この場合、ユーザは、正常パターンからずれたと判断された正常製品を視覚的に確認することができる。
【０１０１】
表示制御部１４は、例えば、製品検出プログラムに従って動作するコンピュータのＣＰＵによって実現される。この場合、ＣＰＵが、コンピュータのプログラム記憶装置等のプログラム記録媒体から製品検出プログラムを読み込み、そのプログラムに従って、データ切り出し部２、学習部４、復元データ生成部６、差分計算部８、ウィンドウデータ決定部１１、製品検出部１３、および、表示制御部１４として動作すればよい。
【０１０２】
図１９は、本発明の各実施形態に係るコンピュータの構成例を示す概略ブロック図である。コンピュータ１０００は、ＣＰＵ１００１と、主記憶装置１００２と、補助記憶装置１００３と、インタフェース１００４と、ディスプレイ装置１００５とを備える。
【０１０３】
本発明の各実施形態の製品検出装置１００は、コンピュータ１０００に実装される。製品検出装置１００の動作は、製品検出プログラムの形式で補助記憶装置１００３に記憶されている。ＣＰＵ１００１は、その製品検出プログラムを補助記憶装置１００３から読み出して主記憶装置１００２に展開し、その製品検出プログラムに従って、上記の各実施形態で説明した処理を実行する。
【０１０４】
補助記憶装置１００３は、一時的でない有形の媒体の例である。一時的でない有形の媒体の他の例として、インタフェース１００４を介して接続される磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭ（Compact Disk Read Only Memory ）、ＤＶＤ−ＲＯＭ（Digital Versatile Disk Read Only Memory ）、半導体メモリ等が挙げられる。また、プログラムが通信回線によってコンピュータ１０００に配信される場合、配信を受けたコンピュータ１０００がそのプログラムを主記憶装置１００２に展開し、上記の処理を実行してもよい。
【０１０５】
次に、本発明の概要について説明する。図２０は、本発明の製品検出装置の概要を示すブロック図である。本発明の製品検出装置は、ウィンドウデータ記憶手段７１と、学習手段７３と、復元データ生成手段７４と、差分計算手段７５と、ウィンドウデータ決定手段７６と、製品検出手段７７とを備える。
【０１０６】
ウィンドウデータ記憶手段７１（例えば、ウィンドウデータ記憶部１０）は、正常製品の時系列データから、データを抽出するための第１のウィンドウのサイズと、第１のウィンドウを用いて抽出されたデータを前半データと後半データと分割するための第２のウィンドウおよび第３のウィンドウそれぞれのサイズと、第１のウィンドウをスライドさせるときのスライドサイズとの組合せであるウィンドウデータを複数個、記憶する。
【０１０７】
学習手段７３（例えば、学習部４）は、ウィンドウデータが順次、選択され、複数の正常製品それぞれの時系列データから、第１のウィンドウ、第２のウィンドウおよび第３のウィンドウを用いて得られた前半データと後半データとの組の集合を教師データとして、前半データから後半データを復元するためのモデルを学習する。
【０１０８】
復元データ生成手段７４（例えば、復元データ生成部６）は、選択されたウィンドウデータに基づいて得られた前半データと後半データとの組毎に、モデルに前半データを適用することによって、後半データの復元データを生成する。
【０１０９】
差分計算手段７５（例えば、差分計算部８）は、選択されたウィンドウデータに基づいて得られた後半データと復元データとの差分を、正常製品毎に計算する。
【０１１０】
ウィンドウデータ決定手段７６（例えば、ウィンドウデータ決定部１１）は、正常製品毎に計算された差分に基づいて、所定の条件を満たすウィンドウデータを決定する。
【０１１１】
検出手段７７（例えば、製品検出部１３）は、ウィンドウデータ決定手段７６によって決定されたウィンドウデータに基づいて得られた正常製品毎の差分に基づいて、複数の正常製品の中から、所定の正常製品を検出する。
【０１１２】
そのような構成によって、正常と判定されている製品である正常製品の中から、正常パターンからずれている正常製品を検出することができる。
【０１１３】
また、差分計算手段７５が、１つのウィンドウデータが選択されているときに、正常製品毎に、後半データと復元データとの差分を複数個、計算し、複数個の差分に基づいて正常製品に対応する１つの差分である製品差分を導出し、ウィンドウデータ決定手段７６が、ウィンドウデータ毎に、正常製品毎に１つずつ導出された製品差分の中から、正常製品の数に対する所定の割合の個数に該当する製品差分を、製品差分の大きい順に選択し、選択した製品差分が属する第１のグループと、選択した製品差分以外の製品差分が属する第２のグループとを定め、第１のグループに属する製品差分の分散と、第２のグループに属する製品差分の分散とを算出し、第１のグループに属する製品差分の分散と、第２のグループに属する製品差分の分散とに基づいて、ウィンドウデータを決定する構成であってもよい。
【０１１４】
ウィンドウデータ決定手段７６が、ウィンドウデータ毎の第１のグループに属する製品差分の分散のうちの最大値を、第１のグループに属する製品差分の分散の理想値とし、０を第２のグループに属する製品差分の分散の理想値とし、第１のグループに属する製品差分の分散と当該分散の理想値との差、および、第２のグループに属する製品差分の分散と当該分散の理想値との差に基づいて、ウィンドウデータを決定する構成であってもよい。
【０１１５】
ウィンドウデータ決定手段７６が、ウィンドウデータ毎の第１のグループに属する製品差分の分散のうちの最大値をＹとし、１つのウィンドウデータに対応する第１のグループに属する製品差分の分散をｙとし、そのウィンドウデータに対応する第２のグループに属する製品差分の分散をｘとしたときに、ウィンドウデータ毎に座標（０，Ｙ）と座標（ｘ，ｙ）との距離を計算し、その距離が最小であるという条件を満たすウィンドウデータを決定する構成であってもよい。
【０１１６】
検出手段７７が、ウィンドウデータ決定手段７６によって決定されたウィンドウデータに基づいて得られた正常製品毎の製品差分の中から、正常製品の数に対する所定の割合の個数に該当する製品差分を、製品差分の大きい順に選択し、選択した製品差分に対応する正常製品を検出する構成であってもよい。
【０１１７】
ウィンドウデータ毎に、製品差分の度数分布を表示する表示制御手段（例えば、表示制御部１４）を備える構成であってもよい。
【０１１８】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記の実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【０１１９】
この出願は、２０１８年３月２７日に出願された日本特許出願２０１８−０５９４８５を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【産業上の利用の可能性】
【０１２０】
本発明は、正常と判定されている製品の中から、正常パターンからずれている製品を検出する製品検出装置に好適に適用される。
【符号の説明】
【０１２１】
１  時系列データ記憶部
２  データ切り出し部
３  分割済みデータ記憶部
４  学習部
５  モデル記憶部
６  復元データ生成部
７  復元データ記憶部
８  差分計算部
９  製品差分記憶部
１０  ウィンドウデータ記憶部
１１  ウィンドウデータ決定部
１２  決定ウィンドウデータ記憶部
１３  製品検出部
１４  表示制御部
１００  製品検出装置
【図１】
2019187433.tif 000003
【図２】
2019187433.tif 000004
【図３】
2019187433.tif 000005
【図４】
2019187433.tif 000006
【図５】
2019187433.tif 000007
【図６】
2019187433.tif 000008
【図７】
2019187433.tif 000009
【図８】
2019187433.tif 000010
【図９】
2019187433.tif 000011
【図１０】
2019187433.tif 000012
【図１１】
2019187433.tif 000013
【図１２】
2019187433.tif 000014
【図１３】
2019187433.tif 000015
【図１４】
2019187433.tif 000016
【図１５】
2019187433.tif 000017
【図１６】
2019187433.tif 000018
【図１７】
2019187433.tif 000019
【図１８】
2019187433.tif 000020
【図１９】
2019187433.tif 000021
【図２０】
2019187433.tif 000022
【国際調査報告】
2019187433.tif 000023
2019187433.tif 000024