(57)【要約】【課題】予測モデルを適切にトレーニングする。【解決手段】  対象に取り付けられたセンサによって測定された測定値であって対象の動きに関連するパラメータの測定値と、対象の状態の分類と、の経時変化を示す時系列データを取得する。測定値の経時変化の周波数スペクトルを、状態の分類毎に算出する。状態の分類毎に最大のピークの周波数であるピーク周波数を特定する。状態の全ての分類のピーク周波数のうち最も低いピーク周波数を特定する。最も低いピーク周波数を用いることによって、最も低いピーク周波数が低いほど広い時間幅を決定する。時間幅の期間内の測定値の経時変化を示すグラフの画像データであって状態の分類に対応付けられた画像データを含む学習データを生成する。【選択図】  図４
2020166315.tif 000002
【特許請求の範囲】
【請求項１】
予測モデルのトレーニングのための学習データの生成方法であって、
対象に取り付けられたセンサによって測定された測定値であって前記対象の動きに関連するパラメータの前記測定値と、前記対象の状態の分類と、の経時変化を示す時系列データを取得し、
前記測定値の前記経時変化の周波数スペクトルを、前記状態の前記分類毎に算出し、
前記状態の前記分類毎に最大のピークの周波数であるピーク周波数を特定し、
前記状態の全ての前記分類の前記ピーク周波数のうち最も低いピーク周波数を特定し、
前記最も低いピーク周波数を用いることによって、前記最も低いピーク周波数が低いほど広い時間幅を決定し、
前記時間幅の期間内の前記測定値の前記経時変化を示すグラフの画像データであって前記状態の前記分類に対応付けられた前記画像データを含む学習データを生成する、
学習データの生成方法。
【請求項２】
請求項１に記載の学習データの生成方法であって、
前記学習データの生成は、前記時間幅を有する複数の期間であって、互いに異なるとともに、隣合う２つの期間の時間差が前記時間幅よりも小さい、前記複数の期間のそれぞれに対応する前記学習データを生成することを含む、
学習データの生成方法。
【請求項３】
請求項１または２に記載の学習データの生成方法であって、
前記時間幅は、前記最も低いピーク周波数の１周期の時間の１／２以上、かつ、１０倍以下である、
学習データの生成方法。
【請求項４】
予測モデルのトレーニング方法であって、
請求項１から３のいずれかに記載の生成方法に従って学習データを生成し、
前記学習データを用いて予測モデルをトレーニングする、
トレーニング方法。
【請求項５】
請求項４に記載のトレーニング方法であって、
前記予測モデルは、１つ以上の畳込層を含むニューラルネットワークのモデルである、
トレーニング方法。
【請求項６】
予測モデルであって、
請求項４または５に記載のトレーニング方法によってトレーニングされた学習済の予測モデル。
【請求項７】
予測モデルのトレーニングのための学習データを生成するコンピュータのためのコンピュータプログラムであって、
対象に取り付けられたセンサによって測定された測定値であって前記対象の動きに関連するパラメータの前記測定値と、前記対象の状態の分類と、の経時変化を示す時系列データを取得する機能と、
前記測定値の前記経時変化の周波数スペクトルを、前記状態の前記分類毎に算出する機能と、
前記状態の前記分類毎に最大のピークの周波数であるピーク周波数を特定する機能と、
前記状態の全ての前記分類の前記ピーク周波数のうち最も低いピーク周波数を特定する機能と、
前記最も低いピーク周波数を用いることによって、前記最も低いピーク周波数が低いほど広い時間幅を決定する機能と、
前記時間幅の期間内の前記測定値の前記経時変化を示すグラフの画像データであって前記状態の前記分類に対応付けられた前記画像データを含む学習データを生成する機能と、
をコンピュータに実現させる、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書は、予測モデルをトレーニングする技術に関する。
【背景技術】
【０００２】
加速度センサや角速度センサなどのセンサによって取得されたデータを用いて、対象の状態を推定する技術が提案されている。例えば、特許文献１では、以下の技術が提案されている。すなわち、正規化済センサデータが期間単位ごとに画像に変換され、生成された画像群を用いてＣＮＮ（畳み込みニューラルネットワーク）による学習処理が実行される。そして、所定期間を単位として時系列データが画像に変換され、学習モデルに基づいて画像を判定した判定結果に基づいて対象の状態が推定される。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１８−１２４６３９号公報
【特許文献２】特開２０１７−１５７２１３号公報
【特許文献３】特開２０１２−１７０７４０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところが、データの変化の速度は、対象の状態などの種々の原因によって、異なり得る。この結果、画像を用いる学習処理が適切にできない場合があった。
【０００５】
本明細書は、予測モデルを適切にトレーニングする技術を開示する。
【課題を解決するための手段】
【０００６】
本明細書に開示された技術は、以下の適用例として実現することが可能である。
【０００７】
［適用例１］予測モデルのトレーニングのための学習データの生成方法であって、対象に取り付けられたセンサによって測定された測定値であって前記対象の動きに関連するパラメータの前記測定値と、前記対象の状態の分類と、の経時変化を示す時系列データを取得し、前記測定値の前記経時変化の周波数スペクトルを、前記状態の前記分類毎に算出し、前記状態の前記分類毎に最大のピークの周波数であるピーク周波数を特定し、前記状態の全ての前記分類の前記ピーク周波数のうち最も低いピーク周波数を特定し、前記最も低いピーク周波数を用いることによって、前記最も低いピーク周波数が低いほど広い時間幅を決定し、前記時間幅の期間内の前記測定値の前記経時変化を示すグラフの画像データであって前記状態の前記分類に対応付けられた前記画像データを含む学習データを生成する、学習データの生成方法。
【０００８】
この構成によれば、学習データのグラフの時間幅が、最も低いピーク周波数が低いほど広くなるように決定されるので、測定値の経時変化と対象の状態の分類との対応関係を適切に示す学習データを生成できる。このような学習データは、トレーニングに適している。
【０００９】
［適用例２］適用例１に記載の学習データの生成方法であって、前記学習データの生成は、前記時間幅を有する複数の期間であって、互いに異なるとともに、隣合う２つの期間の時間差が前記時間幅よりも小さい、前記複数の期間のそれぞれに対応する前記学習データを生成することを含む、学習データの生成方法。
【００１０】
この構成によれば、多数の学習データを容易に生成できる。
【００１１】
［適用例３］適用例１または２に記載の学習データの生成方法であって、前記時間幅は、前記最も低いピーク周波数の１周期の時間の１／２以上、かつ、１０倍以下である、学習データの生成方法。
【００１２】
この構成によれば、測定値の経時変化と対象の状態の分類との対応関係を適切に示す学習データを生成できる。
【００１３】
［適用例４］予測モデルのトレーニング方法であって、適用例１から３のいずれかに記載の生成方法に従って学習データを生成し、前記学習データを用いて予測モデルをトレーニングする、トレーニング方法。
【００１４】
この構成によれば、予測モデルのトレーニングに、測定値の経時変化と状態の分類との対応関係を適切に示す学習データが用いられるので、適切なトレーニングが可能である。
【００１５】
［適用例５］適用例４に記載のトレーニング方法であって、前記予測モデルは、１つ以上の畳込層を含むニューラルネットワークのモデルである、トレーニング方法。
【００１６】
この構成によれば、予測モデルが画像データに適した１つ以上の畳込層を含むので、画像データを含む学習データを用いることによって、適切なトレーニングが可能である。
【００１７】
［適用例６］予測モデルであって、適用例４または５に記載のトレーニング方法によってトレーニングされた学習済の予測モデル。
【００１８】
［適用例７］予測モデルのトレーニングのための学習データを生成するコンピュータのためのコンピュータプログラムであって、対象に取り付けられたセンサによって測定された測定値であって前記対象の動きに関連するパラメータの前記測定値と、前記対象の状態の分類と、の経時変化を示す時系列データを取得する機能と、前記測定値の前記経時変化の周波数スペクトルを、前記状態の前記分類毎に算出する機能と、前記状態の前記分類毎に最大のピークの周波数であるピーク周波数を特定する機能と、前記状態の全ての前記分類の前記ピーク周波数のうち最も低いピーク周波数を特定する機能と、前記最も低いピーク周波数を用いることによって、前記最も低いピーク周波数が低いほど広い時間幅を決定する機能と、前記時間幅の期間内の前記測定値の前記経時変化を示すグラフの画像データであって前記状態の前記分類に対応付けられた前記画像データを含む学習データを生成する機能と、をコンピュータに実現させる、コンピュータプログラム。
【００１９】
なお、本明細書に開示の技術は、種々の態様で実現することが可能であり、例えば、学習データの生成方法および生成装置、予測モデルのトレーニング方法およびトレーニング装置、それらの方法または装置の機能を実現するためのコンピュータプログラム、そのコンピュータプログラムを記録した記録媒体（例えば、一時的ではない記録媒体）、等の形態で実現することができる。
【図面の簡単な説明】
【００２０】
【図１】実施例のシステムを示す説明図である。
【図２】人工ニューラルネットワークＮＮの例の説明図である。
【図３】トレーニングの処理の例を示すフローチャートである。
【図４】学習データの生成処理の例を示すフローチャートである。
【図５】（Ａ）−（Ｅ）は、作業者の状態の例を示す説明図である。
【図６】センサデータを用いる処理の概要図である。
【図７】（Ａ）は、最も低いピーク周波数と抽出時間幅との対応関係の例を示すグラフである。（Ｂ）は、最大周期と抽出時間幅との対応関係の例を示すグラフである。
【図８】画像データの例を示す概略図である。
【図９】状態を推定する処理の例を示すフローチャートである。
【発明を実施するための形態】
【００２１】
Ａ．第１実施例：
Ａ１．装置構成：
図１は、実施例のシステムを示す説明図である。システム１０００は、対象の状態を推定するためのシステムである。対象は、機械（例えば、工作機械、ロボット、無人飛行機（ドローンとも呼ばれる））、生物（例えば、犬などの動物、人）など、状態に応じて動きが変化する任意の対象であってよく、予め決められている。本実施例では、対象は、工場で作業を行う作業者である。
【００２２】
システム１０００は、データ処理装置２００と、データ処理装置２００に接続されたセンサ３００と、を備えている。データ処理装置２００は、例えば、パーソナルコンピュータである。データ処理装置２００は、プロセッサ２１０と、記憶装置２１５と、画像を表示する表示部２４０と、ユーザによる操作を受け入れる操作部２５０と、通信インタフェース２７０と、を有している。これらの要素は、バスを介して互いに接続されている。記憶装置２１５は、揮発性記憶装置２２０と、不揮発性記憶装置２３０と、を含んでいる。
【００２３】
プロセッサ２１０は、データ処理を行う装置であり、例えば、ＣＰＵである。揮発性記憶装置２２０は、例えば、ＤＲＡＭであり、不揮発性記憶装置２３０は、例えば、フラッシュメモリである。
【００２４】
不揮発性記憶装置２３０は、第１プログラム２３１、第２プログラム２３２と、学習済モデル２３４と、を格納している。学習済モデル２３４は、対象の例である作業者に取り付けられたセンサ３００からの情報を用いて作業者の状態を推定するようにトレーニングされた予測モデルである（詳細は、後述）。本実施例では、学習済モデル２３４は、プログラムモジュールである。
【００２５】
プロセッサ２１０は、第１プログラム２３１及び第２プログラム２３２と学習済モデル２３４との実行に利用される種々の中間データを、記憶装置２１５（例えば、揮発性記憶装置２２０、不揮発性記憶装置２３０のいずれか）に、一時的に格納する。
【００２６】
表示部２４０は、液晶ディスプレイ、有機ＥＬディスプレイなどの、画像を表示する装置である。操作部２５０は、表示部２４０上に重ねて配置されたタッチパネル、ボタン、レバーなどの、ユーザによる操作を受け取る装置である。ユーザは、操作部２５０を操作することによって、種々の指示をデータ処理装置２００に入力可能である。通信インタフェース２７０は、他の装置と通信するためのインタフェースである（例えば、ＵＳＢインタフェース、有線ＬＡＮインタフェースなどの有線インタフェース、または、IEEE802.11やＢｌｕｅｔｏｏｔｈ（登録商標）などの無線インタフェース）。本実施例では、通信インタフェース２７０は、無線インタフェースである。データ処理装置２００は、通信インタフェース２７０を介して、センサ３００と通信可能である。
【００２７】
センサ３００は、対象の動きに関連するパラメータを測定するセンサである。本実施例では、センサ３００は、３軸の加速度センサと、３軸のジャイロセンサと、を備える動き検知センサである。センサ３００は、互いに直交する３個の軸のそれぞれの方向の加速度と、互いに直交する３個の軸のそれぞれを中心とする角速度と、で構成される６個のパラメータを測定する。センサ３００は、作業者の腕に取り付けられ、作業者の動きを検知する。センサ３００は、予め決められた一定のデータレート（例えば、数ヘルツ）で、６個のパラメータの６個の測定値を示すデータを、出力する。以下、センサ３００から出力されるデータを、センサデータとも呼ぶ。データ処理装置２００は、センサ３００からのセンサデータを記憶装置２１５に蓄積することによって、各測定値の時系列データを取得できる。
【００２８】
図２は、人工ニューラルネットワークＮＮの例の説明図である（以下、単に、ニューラルネットワークＮＮとも呼ぶ）。ニューラルネットワークＮＮは、学習済モデル２３４（図１）の生成に利用されるニューラルネットワークである。本実施例では、ニューラルネットワークＮＮは、いわゆる畳み込みニューラルネットワーク（Convolutional Neural Network）である。畳み込みニューラルネットワークは、畳込層を含む複数の層を有している。ニューラルネットワークＮＮの詳細のついては、後述する。
【００２９】
Ａ２．ニューラルネットワークＮＮのトレーニング：
図３は、ニューラルネットワークＮＮのトレーニングの処理の例を示すフローチャートである。以下、データ処理装置２００（図１）のプロセッサ２１０は、トレーニング実行者からの指示に応じて、図３の処理を開始することとする。プロセッサ２１０は、トレーニングのための第１プログラム２３１に従って、図３の処理を実行する。
【００３０】
Ｓ１１０では、プロセッサ２１０は、学習データを生成する。図４は、学習データの生成処理の例を示すフローチャートである。Ｓ２１０では、プロセッサ２１０は、センサ３００からのセンサデータと、作業者の状態を示すデータと、を取得する。
【００３１】
図５（Ａ）−図５（Ｅ）は、作業者の状態の例を示す説明図である。本実施例では、作業者９００の状態は、第１状態ＳＡから第５状態ＳＥの５個の状態のいずれかに分類される。第１状態ＳＡ（図５（Ａ））は、作業者９００が、荷物を持たずに歩いている状態である。第２状態ＳＢ（図５（Ｂ））は、作業者９００が、荷物９２０を台車９１０に積んでいる状態である。第３状態ＳＣ（図５（Ｃ））は、作業者９００が、台車９１０を押しながら歩いている状態である。第３状態ＳＣでは、台車９１０は、荷物９２０を載せていてもよく、荷物を載せていなくてもよい。第４状態ＳＤ（図５（Ｄ））は、作業者９００が、台車９１０から荷物９２０を下ろしている状態である。第５状態ＳＥ（図５（Ｅ））は、作業者９００が、荷物９２０を持って歩いている状態である。
【００３２】
図６は、センサデータを用いる処理の概要図である。図中の上部には、グラフＧａが示されている。このグラフＧａは、センサ３００によって測定される３種類の加速度ＡＣｘ、ＡＣｙ、ＡＣｚと、３種類の角速度ＡＶｘ、ＡＶｙ、ＡＶｚと、の経時変化を示している。横軸は、時間Ｔを示し、縦軸は、パラメータＡＣｘ、ＡＣｙ、ＡＣｚ、ＡＶｘ、ＡＶｙ、ＡＶｚの測定値を示している。グラフＧａには、さらに、時間Ｔと作業者９００の状態との対応関係も、示されている。図６の例では、作業者９００の状態は、ＳＡ、ＳＣ、ＳＢ、ＳＣ、ＳＤ、ＳＥの順に変化している。図５（Ａ）−図５（Ｅ）で説明したように、複数の状態ＳＡ、ＳＢ、ＳＣ、ＳＤ、ＳＥの間で、作業者９００の動きは互いに異なっている。パラメータＡＣｘ、ＡＣｙ、ＡＣｚ、ＡＶｘ、ＡＶｙ、ＡＶｚの経時変化のパターン（すなわち、グラフの形状）の全体を、状態ＳＡ、ＳＢ、ＳＣ、ＳＤ、ＳＥの間で比較する場合、少なくとも一部が互いに異なり得る。
【００３３】
Ｓ２１０（図４）では、プロセッサ２１０は、センサ３００からの６個のパラメータの６個の測定値と、作業者９００の状態の分類と、の経時変化を示す時系列データセットを、取得する。このような時系列データセットは、種々の方法によって、取得可能である。本実施例では、以下の手順に従って、時系列データセットが取得される。作業者９００（図５（Ａ）−図５（Ｅ））は、センサ３００を腕に取り付けた状態で、荷物９２０を運ぶ作業を行う。データ処理装置２００は、センサ３００からのセンサデータを取得する。データ処理装置２００のプロセッサ２１０は、センサデータと、センサデータを取得した時点での時間と、の対応関係を示すデータを、記憶装置２１５（例えば、不揮発性記憶装置２３０）に格納する。センサ３００は、一定のデータレートで、センサデータを送信する。従って、プロセッサ２１０は、そのデータレートで、センサデータと時間とを記憶装置２１５に記録する。また、トレーニング実行者は、作業者９００を図示しないビデオカメラで撮影する。作業者９００による作業の終了後、トレーニング実行者は、ビデオカメラで撮影された映像を観察することによって、時間と作業者９００の状態との対応関係を特定する。そして、トレーニング実行者は、時間と状態との対応関係を、操作部２５０を操作することによって、データ処理装置２００に入力する。例えば、トレーニング実行者は、作業の開始時間ＴＳ（図６）から作業の終了時間ＴＥまでの時間範囲おいて、状態が変化した時間である変化時間を示すデータを、データ処理装置２００に入力する。図６の例では、５個の変化時間Ｔ１−Ｔ５が、入力される。そして、トレーニング実行者は、変化時間で区切られた各期間の状態を示すデータを、データ処理装置２００に入力する。図６の例では、６個の期間Ｐ１−Ｐ６のそれぞれの状態ＳＡ、ＳＣ、ＳＢ、ＳＣ、ＳＤ、ＳＥを示すデータが、入力される。プロセッサ２１０は、入力されたデータを用いる事によって、６個のパラメータの６個の測定値と、作業者９００の状態の分類と、の経時変化を示す時系列データセットを取得する。以下、１つの状態が継続する連続な期間Ｐ１−Ｐ６を、状態期間Ｐ１−Ｐ６とも呼ぶ。
【００３４】
Ｓ２２０（図４）では、プロセッサ２１０は、状態の分類毎に、時系列データセットを生成する。具体的には、プロセッサ２１０は、同じ状態が連続する１つの注目期間に含まれるパラメータＡＣｘ、ＡＣｙ、ＡＣｚ、ＡＶｘ、ＡＶｙ、ＡＶｚのそれぞれのデータを、注目期間に対応する状態の時系列データセットとして取得する。図６の例では、プロセッサ２１０は、６個の状態期間Ｐ１−Ｐ６に対応する６個の時系列データセット８１１−８１６を取得する。なお、第２状態期間Ｐ２に対応する第２時系列データセット８１２と、第４状態期間Ｐ４に対応する第２時系列データセット８１４とは、同じ第３状態ＳＣに対応している。ただし、第２状態期間Ｐ２と第４状態期間Ｐ４とは連続していないので、これらの時系列データセット８１２、８１４は、互いに異なる時系列データセットとして、生成される。
【００３５】
Ｓ２３０（図４）では、プロセッサ２１０は、各分類の各パラメータに対してフーリエ変換を行うことによって、各パラメータの周波数スペクトルを取得する。図６の下部には、時系列データセット８１１から得られる周波数スペクトルセット８２１の概要が示されている。本実施例では、プロセッサ２１０は、時系列データセット８１１に含まれる６個のパラメータＡＣｘ、ＡＣｙ、ＡＣｚ、ＡＶｘ、ＡＶｙ、ＡＶｚのそれぞれの高速フーリエ変換を実行する。これにより、６個のパラメータＡＣｘ、ＡＣｙ、ＡＣｚ、ＡＶｘ、ＡＶｙ、ＡＶｚの６個の周波数スペクトルＦＣｘ、ＦＣｙ、ＦＣｚ、ＦＶｘ、ＦＶｙ、ＦＶｚが、それぞれ算出される。図６の下部には、周波数スペクトルＦＣｘ、ＦＣｙ、ＦＣｚ、ＦＶｘ、ＦＶｙ、ＦＶｚのグラフの概要が示されている。横軸は、周波数Ｆを示し、縦軸は、強度Ｍを示している。
【００３６】
プロセッサ２１０は、Ｓ２２０で生成された各時系列データセットの各パラメータに対して、周波数スペクトルを算出する。図６の例では、６個の時系列データセット８１１−８１６に対応する６個の周波数スペクトルセット８２１−８２６が、算出される。
【００３７】
Ｓ２４０（図４）では、プロセッサ２１０は、各周波数スペクトルの最大ピークの周波数であるピーク周波数を特定する。ピーク周波数は、最大の強度を有するピークの周波数である。図６の周波数スペクトルセット８２１の周波数スペクトルＦＣｘ−ＦＣｚ、ＦＶｘ−ＦＶｚからは、ピーク周波数ＦＰ１−ＦＰ６が、それぞれ特定される。
【００３８】
Ｓ２５０（図４）では、プロセッサ２１０は、各分類の各パラメータのピーク周波数から、最も低いピーク周波数を特定する。最も低いピーク周波数は、Ｓ２４０で特定された複数のピーク周波数のうちの最低の周波数である。図６の例では、最も低いピーク周波数は、６個の周波数スペクトルセット８２１−８２６から特定される３６個のピーク周波数のうちの最低のピーク周波数である。
【００３９】
Ｓ２６０（図４）では、プロセッサ２１０は、最も低いピーク周波数を用いて、時間幅を決定する。後述するように、学習データを生成するために、時系列データから、同じ時間幅の互いに異なる複数の期間のデータが、抽出される。Ｓ２６０では、この期間の時間幅が、決定される。以下、Ｓ２６０で決定される時間幅を、抽出時間幅と呼ぶ。
【００４０】
図７（Ａ）は、最も低いピーク周波数と抽出時間幅との対応関係の例を示すグラフである。横軸は、最も低いピーク周波数Ｆｍを示し、縦軸は、抽出時間幅Ｔｗを示している。図７（Ｂ）は、最大周期と抽出時間幅との対応関係の例を示すグラフである。横軸は、最大周期Ｔｍを示し、縦軸は、抽出時間幅Ｔｗを示している。最大周期Ｔｍは、最も低いピーク周波数Ｆｍの１周期の時間である。図７（Ａ）に示すように、本実施例では、プロセッサ２１０は、最も低いピーク周波数Ｆｍが高いほど、抽出時間幅Ｔｗが狭くなるように、抽出時間幅Ｔｗを決定する。図７（Ｂ）に示すように、抽出時間幅Ｔｗは、最大周期Ｔｍに比例する。抽出時間幅Ｔｗと最も低いピーク周波数Ｆｍとの対応関係（すなわち、抽出時間幅Ｔｗと最大周期Ｔｍとの対応関係）は、予め決められている。本実施例では、抽出時間幅Ｔｗは、最大周期Ｔｍと同じである。
【００４１】
Ｓ２７０（図４）では、プロセッサ２１０は、状態の分類毎に、複数の期間のそれぞれのグラフの画像データを生成する。図８は、画像データの例を示す概略図である。図中の上部には、図６のグラフＧａと同じグラフＧａが示されている。グラフＧａの下には、互いに異なる複数の期間７００が示されている（以下、期間７００を、抽出期間７００とも呼ぶ）。複数の抽出期間７００のそれぞれの時間幅は、Ｓ２６０（図４）で決定された抽出時間幅Ｔｗと同じである。本実施例では、プロセッサ２１０は、状態期間Ｐ１−Ｐ６のそれぞれにおいて、均等に、複数の抽出期間７００を配置する。隣合う２個の抽出期間７００の間の時間差は、予め決められた時間差Ｔｄに、設定される。本実施例では、時間差Ｔｄは、抽出時間幅Ｔｗよりも小さい（ただし、時間差Ｔｄは、抽出時間幅Ｔｗ以上であってもよい）。複数の状態期間に重なる抽出期間７００は、採用されない。この理由は、学習効果を高くするためである。例えば、第１状態期間Ｐ１と第２状態期間Ｐ２とに重なる抽出期間７００は、採用されない。
【００４２】
プロセッサ２１０は、時系列データセットから、抽出期間７００内のデータを抽出する。そして、プロセッサ２１０は、抽出されたデータによって示される６個のパラメータＡＣｘ、ＡＣｙ、ＡＣｚ、ＡＶｘ、ＡＶｙ、ＡＶｚの経時変化を示すグラフの画像データであるグラフ画像データを生成する。以下、グラフ画像データによって表される画像を、グラフ画像とも呼ぶ。図８には、抽出期間７００ｔに対応するグラフ画像８３０ｔが、示されている。グラフ画像データは、第１方向Ｄｘと、第１方向Ｄｘに垂直な第２方向Ｄｙと、に沿ってマトリクス状に並ぶ複数の画素のそれぞれの色値を示している。プロセッサ２１０は、複数の抽出期間７００のそれぞれについて、グラフ画像データを生成する。そして、プロセッサ２１０は、グラフ画像データと、状態を示す教師データと、を含む学習データを生成する。教師データは、グラフ画像データに対応する状態、すなわち、抽出期間７００を含む状態期間に対応する状態を示すデータである。例えば、図８のグラフ画像８３０ｔの抽出期間７００ｔは、第１状態期間Ｐ１に含まれており、第１状態期間Ｐ１の状態は第１状態ＳＡである。従って、グラフ画像８３０ｔに対応する教師データは、第１状態ＳＡを示している。
【００４３】
本実施例では、図８のグラフ画像８３０ｔに示すように、グラフ画像は、線グラフである。横軸は時間Ｔを示し、縦軸はパラメータＡＣｘ、ＡＣｙ、ＡＣｚ、ＡＶｘ、ＡＶｙ、ＡＶｚを示している。目盛りは省略される。グラフの枠（縦軸と横軸を含む）は、省略されている。ただし、グラフ画像は、グラフの枠を含んでもよい。なお、グラフの構成は、複数のグラフ画像の間で共通である。例えば、横軸のスケールと、各パラメータＡＣｘ、ＡＣｙ、ＡＣｚ、ＡＶｘ、ＡＶｙ、ＡＶｚの描画領域の位置と大きさと縦軸のスケールとは、複数のグラフ画像の間で共通であり、予め決められている。なお、グラフの種類は、経時変化を示す任意の種類であってよい。例えば、グラフは、いわゆる散布図であってよい。散布図の複数のデータ点は、時間と測定値との組み合わせを示している。また、グラフ画像データのデータ形式は、本実施例では、白黒の二値のビットマップデータである。なお、グラフ画像データのデータ形式は、他の任意のデータ形式であってよい（例えば、ＲＧＢ等の１以上の色成分のビットマップ）。プロセッサ２１０は、生成した各抽出期間７００の学習データを、記憶装置２１５（例えば、不揮発性記憶装置２３０）に、格納する。そして、図４の処理、ひいては、図３のＳ１１０の処理が、終了する。
【００４４】
Ｓ１２０（図３）では、プロセッサ２１０（図１）は、複数の学習データを用いて、ニューラルネットワークＮＮ（図２）をトレーニングする。
【００４５】
ニューラルネットワークＮＮは、入力層５０５と、第１畳込層５１０と、第１プーリング層５２０と、第２畳込層５３０と、第２プーリング層５４０と、第１全結合層５５０と、第２全結合層５６０と、第３全結合層５７０と、を有している。これらの層５０５−５７０は、この順番に、接続されている。本実施例では、ニューラルネットワークＮＮは、プログラムモジュールであり、第１プログラム２３１（図１）に含まれている。プロセッサ２１０は、ニューラルネットワークＮＮであるプログラムモジュールに従って処理を進行することによって、各層５０５−５７０の機能を実現する。以下、これらの層５０５−５７０について、順に説明する。
【００４６】
入力層５０５は、ニューラルネットワークＮＮの外部からのデータを取得する層である。本実施例では、学習データに含まれるグラフ画像データ８３０が、入力層５０５に入力される。入力層５０５に入力された画像データは、第１畳込層５１０によって、入力情報として利用される。
【００４７】
第１畳込層５１０は、画像の畳み込みの処理を行う層である。畳み込みの処理は、入力された画像である入力画像とフィルタとの相関を示す値（特徴値とも呼ばれる）を、フィルタをスライドさせながら、算出する処理である。画像の畳み込みの処理で用いられるフィルタは、重みフィルタとも呼ばれる。１個の重みフィルタのサイズは、例えば、Ｐ×Ｐ画素である（Ｐは２以上の整数。例えば、Ｐ＝５）。ストライド（すなわち、フィルタの１回の移動量）は、例えば、１である。本実施例では、フィルタは、入力画像の全ての画素位置において特徴値を算出するように、入力画像の全体に亘ってスライドされる。この場合、入力画像の周囲では、ゼロパディングによって、画素が補われる。これに代えて、フィルタは、入力画像の縁部分を除いた残りの画素位置において特徴値を算出するように、スライドされてよい。このように、フィルタは、入力画像と同じサイズの画像（または、入力画像よりも小さい画像）のビットマップデータを生成する（特徴マップとも呼ばれる）。具体的には、入力された画像データのうちフィルタの位置に対応する部分のＰ×Ｐ個の画素の色値のリストが取得される。取得されたリストと、フィルタのＰ×Ｐ個の重みのリストと、の内積が算出される。「内積＋バイアス」が、活性化関数に入力される。そして、活性化関数の計算結果が、特徴マップの１つの要素の値として用いられる。本実施例では、活性化関数としては、いわゆるReLU（Rectified Linear Unit）が用いられる。また、本実施例では、Ｑ個の重みフィルタが用いられる（Ｑは１以上の整数）。従って、第１畳込層５１０として機能するプロセッサ２１０は、Ｑ枚の特徴マップを生成する。なお、バイアスは、フィルタ毎に準備される。そして、Ｑ個のフィルタのそれぞれの要素とＱ個のバイアスとは、トレーニングによって、更新される。
【００４８】
入力画像の各画素の色値は、一般的に、Ｕ個の色成分（Ｕは１以上の整数。例えば、ＲＧＢの３色成分）で表されてよい。この場合、１個のフィルタは、Ｐ×Ｐ×Ｕ個の重みを有している。そして、入力画像上のフィルタの位置に対応する部分のＰ画素×Ｐ画素×Ｕ色成分の色値のリストと、フィルタのＰ×Ｐ×Ｕ個の重みのリストと、の内積が算出される。
【００４９】
第１畳込層５１０からの特徴マップは、第１プーリング層５２０によって、入力情報として利用される。プーリングは、画像（ここでは、特徴マップ）を縮小する処理である。第１プーリング層５２０は、いわゆるマックスプーリング（MaxPooling）を行う。マックスプーリングは、いわゆるダウンサンプリングによって特徴マップを縮小する処理であり、ウィンドウをスライドさせつつ、ウィンドウ内の最大値を選択することによってマップを縮小する。本実施例では、第１プーリング層５２０におけるウィンドウのサイズは、Ｔ×Ｔ画素であり、ストライドは、Ｔである（Ｔは２以上の整数。例えば、Ｔ＝２）。これにより、元のマップの１／Ｔの高さと１／Ｔの幅を有するマップが生成される。第１プーリング層５２０として機能するプロセッサ２１０は、Ｑ枚の特徴マップから、Ｑ枚の縮小された特徴マップを生成する。
【００５０】
第１プーリング層５２０からの特徴マップは、第２畳込層５３０によって、入力情報として利用される。第２畳込層５３０は、第１畳込層５１０による処理と同様の手順に従って、画像の畳み込みの処理を行う。例えば、１つのフィルタは、Ｑ枚の特徴マップに対応するＱ個のマトリクスを備えている。そして、１つのフィルタは、Ｑ枚の特徴マップから、１枚の特徴マップを生成する。活性化関数としては、いわゆるReLUが用いられる。なお、１つのフィルタの１個のマトリクスのサイズ（すなわち、第１方向Ｄｘの要素数と第２方向Ｄｙの要素数）と、フィルタの総数とは、種々の値であってよい。また、特徴マップの周囲のゼロパディングは、行われてよく、これに代えて、省略されてよい。ストライドは、種々の値であってよい。各フィルタのそれぞれの要素と、各バイアスとは、トレーニングによって、更新される。
【００５１】
第２畳込層５３０からの特徴マップは、第２プーリング層５４０によって、入力情報として利用される。第２プーリング層５４０は、第１プーリング層５２０による処理と同様の手順に従って、マックスプーリングを行う。これにより、第２プーリング層５４０は、縮小された特徴マップを生成する。ウィンドウのサイズとストライドとは、種々の値であってよい。
【００５２】
第２プーリング層５４０からの特徴マップは、第１全結合層５５０によって、入力情報として利用される。第１全結合層５５０は、一般的なニューラルネットワークで用いられる全結合層と同様の層である。第１全結合層５５０では、入力された特徴マップを用いて、複数の要素で構成されるリスト（第１中間ベクトルとも呼ぶ）が、生成される。第１中間ベクトルの要素の数は、予め決められており、種々の値であってよい。第１全結合層５５０では、第１全結合層５５０に入力される特徴マップの全ての要素のリストと、特徴マップの要素数と同じ数の重みのリストと、の内積が算出される。「内積＋バイアス」が、活性化関数に入力される。そして、活性化関数の計算結果が、第１中間ベクトルの１つの要素として用いられる。本実施例では、活性化関数としては、いわゆるReLUが用いられる。また、重みのリストとバイアスとは、第１中間ベクトルの複数の要素のそれぞれに対して、別個に準備される。第１全結合層５５０として機能するプロセッサ２１０は、上記の計算を実行することによって、第１中間ベクトルを生成する。なお、重みのリストとバイアスとは、トレーニングによって、更新される。
【００５３】
第１全結合層５５０からの第１中間ベクトルは、第２全結合層５６０によって、入力情報として利用される。第２全結合層５６０は、第１全結合層５５０による処理と同様の手順に従って、入力された第１中間ベクトルを用いて、複数の要素で構成される第２中間ベクトルを生成する。第２中間ベクトルの要素の数は、予め決められており、種々の値であってよい。第２全結合層５６０では、第１中間ベクトルと、第１中間ベクトルの要素数と同じ数の重みのリストと、の内積が算出される。「内積＋バイアス」が、活性化関数に入力される。そして、活性化関数の計算結果が、第２中間ベクトルの１つの要素として用いられる。本実施例では、活性化関数としては、いわゆるReLUが用いられる。重みのリストとバイアスとは、第２中間ベクトルの複数の要素のそれぞれに対して、別個に準備される。第２全結合層５６０として機能するプロセッサ２１０は、上記の計算を実行することによって、第２中間ベクトルを生成する。なお、重みのリストとバイアスとは、トレーニングによって、更新される。
【００５４】
第２全結合層５６０からの第２中間ベクトルは、第３全結合層５７０によって、入力情報として利用される。第３全結合層５７０は、全結合層５５０、５６０による処理と同様の手順に従って、入力された第２中間ベクトルを用いて、複数の要素で構成される出力ベクトルを生成する。本実施例では、出力ベクトルの要素の数は、ニューラルネットワークＮＮによって分類されるクラスの総数と同じ「５」である。第３全結合層５７０では、第２中間ベクトルと、第２中間ベクトルの要素数と同じ数の重みのリストと、の内積が算出される。「内積＋バイアス」が、活性化関数に入力される。そして、活性化関数の計算結果が、出力ベクトルの１つの要素として用いられる。本実施例では、活性化関数としては、いわゆるソフトマックス関数（SoftMax）が用いられる。公知の通り、ソフトマックス関数は、ゼロ以上１以下の確率を意味する値を算出する。出力ベクトルの５個の成分値ＰＡ、ＰＢ、ＰＣ、ＰＤ、ＰＥは、作業者９００の状態が状態ＳＡ、ＳＢ、ＳＣ、ＳＤ、ＳＥである確率を、それぞれ示している。例えば、第１成分値ＰＡは、状態が第１状態ＳＡである確率を示している。このような確率を示す出力ベクトルは、確信度データとも呼ばれる。なお、重みのリストとバイアスとは、出力ベクトルの複数の要素のそれぞれに対して、別個に準備される。第３全結合層５７０として機能するプロセッサ２１０は、上記の計算を実行することによって、出力ベクトルを生成する。第３全結合層５７０は、出力ベクトルを、ニューラルネットワークＮＮの外部に出力する。このような第３全結合層５７０は、出力層の例である。入力層５０５と出力層（ここでは、第３全結合層５７０）との間の層５１０〜５６０は、中間層とも呼ばれる。なお、重みのベクトルとバイアスとは、トレーニングによって、更新される。
【００５５】
図３のＳ１２０では、ニューラルネットワークＮＮ（図２）が、上述した複数の学習データを用いて、トレーニングされる。図８の例では、５個の状態ＳＡ−ＳＥのそれぞれの学習データを用いて、教師あり学習が、行われる。具体的には、プロセッサ２１０は、学習データのグラフ画像データ８３０を入力層５０５に入力する。プロセッサ２１０は、ニューラルネットワークＮＮの複数の層５０５〜５７０の計算を実行し、第３全結合層５７０からの出力ベクトルを算出する。プロセッサ２１０は、この出力ベクトルと、学習データの教師データ８４０とを、比較することによって、評価値８５０を算出する。評価値８５０は、ニューラルネットワークＮＮによる状態の推定結果と教師データとの間の差違、すなわち、誤差を示している。評価値８５０は、例えば、損失関数を用いて算出される。損失関数は、学習データから得られる誤差（すなわち、グラフ画像データから得られる出力データと教師データとの間の誤差）を算出する関数である。評価値８５０は、例えば、複数個の学習データのそれぞれの誤差の合計である。プロセッサ２１０は、評価値８５０が小さくなるように、ニューラルネットワークＮＮの上述した種々のパラメータ（フィルタ、重みのベクトル等）を更新する。損失関数としては、種々の関数を採用可能である。例えば、２乗和誤差、交差エントロピー、contrastive損失関数などの公知の関数が用いられてよい。トレーニングの方法としては、種々の方法を採用可能である。例えば、勾配降下法と誤差逆伝播法とを用いる方法が採用されてよい。
【００５６】
このように、ニューラルネットワークＮＮは、状態を５個の状態ＳＡ−ＳＥのいずれかに分類するように、トレーニングされる。
【００５７】
Ｓ１３０（図３）では、トレーニング済のニューラルネットワークＮＮ（図２）が、学習済モデル２３４として、記憶装置に格納される。学習済モデル２３４は、上記のトレーニングによって決定されたパラメータを用いて処理を進行するように、構成されている。本実施例では、プロセッサ２１０は、学習済モデル２３４を、データ処理装置２００の不揮発性記憶装置２３０に格納する。格納の完了によって、図３の処理が終了する。
【００５８】
Ａ３．状態の推定：
図９は、状態を推定する処理の例を示すフローチャートである。以下、データ処理装置２００（図１）のプロセッサ２１０は、ユーザからの指示に応じて、図９の処理を開始することとする。プロセッサ２１０は、状態の推定のための第２プログラム２３２に従って、図９の処理を実行する。
【００５９】
Ｓ３１０では、プロセッサ２１０（図１）は、センサ３００からの６個のパラメータの６個の測定値の経時変化を示す時系列データセットを、取得する。このような時系列データセットは、図４のＳ２１０の方法と同様の方法で、取得される。ただし、図９のＳ３１０では、作業者９００の状態は未知である。
【００６０】
Ｓ３２０では、プロセッサ２１０は、Ｓ３１０で取得された時系列データセットから抽出時間幅の期間内のデータを抽出する。抽出時間幅は、図４のＳ２６０で決定された抽出時間幅と同じである。そして、プロセッサ２１０は、抽出されたデータを用いて、グラフ画像データを生成する。グラフ画像データは、６個のパラメータＡＣｘ、ＡＣｙ、ＡＣｚ、ＡＶｘ、ＡＶｙ、ＡＶｚの経時変化を示すグラフの画像データである。生成されるグラフ画像データは、図８のグラフ画像８３０ｔと同じ形式のグラフ画像を表している。グラフ画像データは、図４のＳ２７０の方法と同様の方法で、生成される。
【００６１】
Ｓ３３０では、プロセッサ２１０（図１）は、Ｓ３２０で生成されたグラフ画像データを、学習済モデル２３４（図２）に入力する。Ｓ３４０では、プロセッサ２１０は、学習済モデル２３４の複数の層５０５−５７０の計算を実行する。Ｓ３５０では、プロセッサ２１０は、第３全結合層５７０から、確信度データを取得する。上述したように、確信度データの５個の成分値ＰＡ−ＰＥは、作業者９００の状態が状態ＳＡ、ＳＢ、ＳＣ、ＳＤ、ＳＥである確率を、それぞれ示している。確信度データは、状態の推定結果を示すデータの例である。
【００６２】
Ｓ３６０では、プロセッサ２１０は、判定部５８０（図２）としての処理を実行する。判定部５８０は、確信度データを用いて、作業者９００の状態を分類する処理部である。例えば、判定部５８０として機能するプロセッサ２１０は、確信度データの５個の成分値ＰＡ−ＰＥのうちの最も大きい成分値を特定する。そして、プロセッサ２１０は、状態は、最も大きい成分値に対応付けられた状態であると判定する。
【００６３】
Ｓ３７０（図９）では、プロセッサ２１０（図１）は、Ｓ３６０で特定された状態（すなわち、状態の推定結果）を示す推定データの出力処理を実行する。本実施例では、プロセッサ２１０は、データ処理装置２００の表示部２４０に、推定された状態を示す画像を表示させる。ユーザは、表示された画像を参照することによって、作業者９００の状態を特定できる。
【００６４】
以上により、図９の処理が終了する。なお、Ｓ３１０では、図６のグラフＧａのように、長時間の時系列データが、取得されてよい。そして、Ｓ３２０−Ｓ３７０では、図８の複数の抽出期間７００のように、複数の期間のそれぞれの状態が推定されてよい。ユーザは、このような推定結果を参照することによって、作業者９００の状態の経時変化を特定できる。ユーザは、状態の経時変化を、種々の目的に利用できる。例えば、ユーザは、状態の経時変化に基づいて、作業者９００が荷物を持たずに歩く第１状態ＳＡが継続する時間を特定する。そして、ユーザは、この時間が短くなるように、工場での作業者９００の作業手順を変更してよい。
【００６５】
以上のように、本実施例では、図４の手順に従って、学習データが生成される。具体的には、Ｓ２１０で、プロセッサ２１０は、作業者９００に取り付けられたセンサ３００によって測定された測定値であって作業者９００の動きに関連するパラメータＡＣｘ、ＡＣｙ、ＡＣｚ、ＡＶｘ、ＡＶｙ、ＡＶｚの測定値と、作業者９００の状態の分類と、の経時変化を示す時系列データを取得する。Ｓ２２０、Ｓ２３０では、プロセッサ２１０は、各パラメータの測定値の経時変化の周波数スペクトルを、状態の分類毎に算出する。Ｓ２４０では、プロセッサ２１０は、状態の分類毎に最大のピークの周波数であるピーク周波数を特定する。Ｓ２５０では、プロセッサ２１０は、状態の全ての分類のピーク周波数のうち最も低いピーク周波数を特定する。Ｓ２６０では、プロセッサ２１０は、最も低いピーク周波数を用いることによって、最も低いピーク周波数が低いほど広い抽出時間幅Ｔｗを決定する。Ｓ２７０では、プロセッサ２１０は、抽出時間幅Ｔｗの抽出期間７００内の測定値の経時変化を示すグラフの画像データであって状態の分類に対応付けられた画像データを含む学習データを生成する。パラメータの測定値の経時変化のパターンは、状態の分類に応じて、異なり得る。経時変化の周波数スペクトルのピーク周波数が低い場合には、ピーク周波数が高い場合と比べて、状態の特徴は、長い時間幅の経時変化によって、示される。本実施例では、上記のように、学習データのグラフの時間幅Ｔｗが、最も低いピーク周波数が低いほど広くなるように決定されるので、プロセッサ２１０は、測定値の経時変化と作業者９００の状態の分類との対応関係を適切に示す学習データを生成できる。プロセッサ２１０は、このような学習データを用いることによって、ニューラルネットワークＮＮを適切にトレーニングできる。
【００６６】
また、Ｓ２７０（図４）、図８で説明したように、プロセッサ２１０は、抽出時間幅Ｔｗを有する複数の抽出期間７００であって、互いに異なる複数の抽出期間７００のそれぞれに対応する学習データを、生成する。ここで、同じ状態に対応する連続な状態期間（例えば、第１状態期間Ｐ１）に含まれる隣合う２つの抽出期間７００の時間差Ｔｄは、抽出時間幅Ｔｗよりも小さい。従って、時間差Ｔｄが抽出時間幅Ｔｗ以上である場合と比べて、プロセッサ２１０は、同じ時系列データから、多数の学習データを取得できる。プロセッサ２１０は、多数の学習データを用いることによって、適切に、ニューラルネットワークＮＮをトレーニングできる。
【００６７】
また、図７（Ａ）、図７（Ｂ）で説明したように、本実施例では、抽出時間幅Ｔｗは、最大周期Ｔｍと同じである。従って、プロセッサ２１０は、測定値の経時変化と作業者９００の状態の分類との対応関係を適切に示す学習データを生成できる。
【００６８】
また、本実施例では、図３の手順に従って、ニューラルネットワークＮＮがトレーニングされる。具体的には、Ｓ１１０では、プロセッサ２１０は、図４の手順に従って学習データを生成する。Ｓ１２０では、プロセッサ２１０は、学習データを用いてニューラルネットワークＮＮをトレーニングする。このように、ニューラルネットワークＮＮのトレーニングに、測定値の経時変化と状態の分類との対応関係を適切に示す学習データが用いられるので、適切なトレーニングが可能である。
【００６９】
また、図２に示すように、ニューラルネットワークＮＮは、畳込層５１０、５３０を含んでいる。畳込層は、画像データの処理に適している。ニューラルネットワークＮＮが画像データに適した１つ以上の畳込層を含むので、グラフ画像データを含む学習データによる適切なトレーニングが可能である。
【００７０】
また、図３で説明したように、学習済モデル２３４は、上記のトレーニング方法によってトレーニングされた学習済の予測モデルである。プロセッサ２１０は、このような学習済モデル２３４を用いることによって、対象（本実施例では、作業者９００）の状態を適切に推定できる。
【００７１】
Ｂ．変形例：
（１）抽出時間幅Ｔｗ（図４：Ｓ２６０、図８）と最も低いピーク周波数Ｆｍとの対応関係は、図７（Ａ）、図７（Ｂ）で説明した対応関係に代えて、他の種々の対応関係であってよい。例えば、抽出時間幅Ｔｗは、最大周期Ｔｍと異なっていてもよい。抽出時間幅Ｔｗは、最も低いピーク周波数Ｆｍの変化に対して、階段状に変化してもよい。いずれの場合も、抽出時間幅Ｔｗは、最も低いピーク周波数Ｆｍが低いほど広い値に決定されることが、好ましい。グラフ画像が対象の状態の特徴を表すためには、抽出時間幅Ｔｗが広いことが好ましい。例えば、抽出時間幅Ｔｗは、最大周期Ｔｍの１／２以上であることが好ましく、最大周期Ｔｍの２／３以上であることが更に好ましく、最大周期Ｔｍの３／４以上であることが特に好ましく、最大周期Ｔｍ以上であることが最も好ましい。また、同じ時系列データから多くの学習データを取得するためには、抽出時間幅Ｔｗが狭いことが好ましい。例えば、抽出時間幅Ｔｗは、最大周期Ｔｍの１０倍以下であることが好ましく、最大周期Ｔｍの８倍以下であることが更に好ましく、最大周期Ｔｍの６倍以下であることが特に好ましく、最大周期Ｔｍの４倍以下であることが最も好ましい。また、抽出時間幅Ｔｗが狭い場合には、抽出時間幅Ｔｗが広い場合と比べて、プロセッサ２１０は、同じ時系列データの早く小さい部分を用いて、学習データを生成できる。例えば、抽出時間幅Ｔｗが６０分である場合、最初の学習データの生成には、時系列データの最初の６０分のデータが必要である。抽出時間幅Ｔｗが１分である場合、最初の学習データの生成は、時系列データの最初の１分のデータで可能である。また、時系列データにおいて、同じ状態が継続する時間が短い場合がある。ここで、抽出時間幅Ｔｗが狭い場合には、抽出時間幅Ｔｗが広い場合と比べて、プロセッサ２１０は、多数の学習データを生成できる。また、隣合う２つの抽出期間７００の時間差Ｔｄは、抽出時間幅Ｔｗ以上であってもよい。
【００７２】
（２）対象の状態の推定に利用されるパラメータは、対象の動きに関連する任意のパラメータであってよい。すなわち、パラメータは、対象の動きによって変化する任意のパラメータであってよい。例えば、パラメータは、速度、角速度、角加速度、地磁気方向、気圧、温度を含む複数のパラメータから任意に選択された１以上のパラメータを含んでよい。地磁気方向と気圧と温度とは、対象の移動に応じて変化し得る。速度、角速度、角加速度との測定値は、いずれも、互いに異なるＫ個の軸（Ｋは１以上３以下）の成分を含んでよい。
【００７３】
（３）分類される状態は、図５（Ａ）−図５（Ｅ）の５個の状態ＳＡ-ＳＥに限らず、対象の動きが互いに異なる任意の複数の状態であってよい。例えば、「対象が走っている状態」、「対象が停止している状態」などの他の状態を含む複数の状態から、対象の状態が推定されてよい。いずれの場合も、対象の状態は、予め決められた複数の状態から推定されてよい。
【００７４】
（４）対象の状態の推定に利用される予測モデルは、図２のニューラルネットワークＮＮに代えて、他の種々の予測モデルであってよい。予測モデルは、１以上の畳込層を備えてよい。また、予測モデルは、畳込層と畳込層の後ろに接続されたプーリング層との１以上のセットを備えてよい。また、予測モデルは、畳込層を含まずに、複数の全結合層で構成されてもよい。予測モデルは、種々の人工ニューラルネットワークを含んでよい。また、予測モデルは、人工ニューラルネットワークに限らず、他の種々のモデルを含んでよい。予測モデルは、例えば、人工ニューラルネットワークと、隠れマルコフモデルと、推論エンジンと、のグループから任意に選択された１以上のモデルを含んでよい。一般的には、予測モデルは、グラフ画像データを用いて、対象の状態の推定結果を示すデータを出力する種々のモデルであってよい。
【００７５】
（５）Ｓ３７０（図９）の出力処理は、画像の出力（具体的には、表示）に代えて、状態の推定結果を示す情報を出力する任意の処理であってよい。例えば、プロセッサ２１０は、推定された状態を示す音（例えば、音声やチャイム）を、スピーカーから出力する処理を実行してよい。また、プロセッサ２１０は、推定結果を示すデータを、データ処理装置２００に接続された外部記憶装置に出力（すなわち、格納）する処理を実行してよい。
【００７６】
いずれの場合も、状態の推定結果は、種々の処理で利用されてよく、例えば、対象の行動パターンの推定に利用されてよい。そして、対象の行動パターンの推定結果は、行動パターンの改善に利用されてよい。例えば、対象は、工場で作業を行うロボットであってよい。そして、ロボットの行動パターンの推定結果に基づいて、ロボットの作業の手順が改善されてよい。また、対象は、複合機を操作する作業者であってよい。そして、作業者の行動パターンの推定結果に基づいて、複合機の構成（例えば、用紙カセットの位置、操作パネルの位置など）が変更されてよい。
【００７７】
（６）図１、図３、図４の実施例では、同じデータ処理装置２００が、学習データを生成する生成装置の例であり、また、予測モデルをトレーニングするトレーニング装置の例である。これに代えて、学習データの生成処理は、予測モデルをトレーニングする装置とは異なる装置によって、実行されてよい。また、図１、図３、図９の実施例では、同じデータ処理装置２００が、予測モデルを用いて対象の状態を推定する推定装置の例である。なお、対象の状態を推定する処理は、学習データを生成する生成装置とは異なる装置によって、実行されてよい。また、対象の状態を推定する処理は、予測モデルをトレーニングする装置とは異なる装置によって、実行されてよい。
【００７８】
（７）学習データを生成する生成装置は、パーソナルコンピュータとは異なる種類の装置（例えば、複合機、プリンタ、スキャナ、デジタルカメラ、スマートフォン、ネットワークに接続されたサーバ装置）であってもよい。また、ネットワークを介して互いに通信可能な複数の装置（例えば、コンピュータ）が、学習データを生成する処理の機能を一部ずつ分担して、全体として、学習データを生成する機能を提供してもよい（これらの装置を備えるシステムが、学習データの生成装置に対応する）。学習データを用いて予測モデルをトレーニングするトレーニング装置と、学習済モデルにグラフ画像データを入力することによって対象の状態を推定する推定装置とについても、同様である。
【００７９】
上記各実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部あるいは全部をハードウェアに置き換えるようにしてもよい。例えば、図１の学習済モデル２３４は、プログラムモジュールに代えて、ASIC（Application Specific Integrated Circuit）等のハードウェア回路によって実現されてよい。
【００８０】
また、本発明の機能の一部または全部がコンピュータプログラムで実現される場合には、そのプログラムは、コンピュータ読み取り可能な記録媒体（例えば、一時的ではない記録媒体）に格納された形で提供することができる。プログラムは、提供時と同一または異なる記録媒体（コンピュータ読み取り可能な記録媒体）に格納された状態で、使用され得る。「コンピュータ読み取り可能な記録媒体」は、メモリーカードやＣＤ−ＲＯＭのような携帯型の記録媒体に限らず、各種ＲＯＭ等のコンピュータ内の内部記憶装置や、ハードディスクドライブ等のコンピュータに接続されている外部記憶装置も含み得る。
【００８１】
以上、実施例、変形例に基づき本発明について説明してきたが、上記した発明の実施の形態は、本発明の理解を容易にするためのものであり、本発明を限定するものではない。本発明は、その趣旨を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物が含まれる。
【符号の説明】
【００８２】
２００…データ処理装置、２１０…プロセッサ、２１５…記憶装置、２２０…揮発性記憶装置、２３０…不揮発性記憶装置、２３１…第１プログラム、２３２…第２プログラム、２３４…学習済モデル、２４０…表示部、２５０…操作部、２７０…通信インタフェース、３００…センサ、５０５…入力層、５１０…第１畳込層、５２０…第１プーリング層、５３０…第２畳込層、５４０…第２プーリング層、５５０…第１全結合層、５６０…第２全結合層、５７０…第３全結合層、５８０…判定部、７００…抽出期間、７００ｔ…抽出期間、８１１−８１６…時系列データセット、８２１−８２６…周波数スペクトルセット、８３０…グラフ画像データ、８３０ｔ…グラフ画像、８４０…教師データ、８５０…評価値、９００…作業者、９１０…台車、９２０…荷物、１０００…システム、Ｔ…時間、ＴＳ…開始時間、Ｔ１−Ｔ５…変化時間、ＴＥ…終了時間、Ｐ１−Ｐ６…状態期間、Ｆ…周波数、Ｍ…強度、ＦＰ１−ＦＰ６…ピーク周波数、ＦＣｘ−ＦＣｚ、ＦＶｘ−ＦＶｚ…周波数スペクトル、ＳＡ−ＳＥ…状態、ＰＡ−ＰＥ…成分値、ＮＮ…人工ニューラルネットワーク、Ｇａ…グラフ、Ｔｄ…時間差、Ｆｍ…最も低いピーク周波数、Ｔｍ…最大周期、Ｔｗ…抽出時間幅、Ｄｘ…第１方向、Ｄｙ…第２方向、ＡＣｘ、ＡＣｙ、ＡＣｚ、ＡＶｘ、ＡＶｙ、ＡＶｚ…パラメータ
【図１】
2020166315.tif 000003
【図２】
2020166315.tif 000004
【図３】
2020166315.tif 000005
【図４】
2020166315.tif 000006
【図５】
2020166315.tif 000007
【図６】
2020166315.tif 000008
【図７】
2020166315.tif 000009
【図８】
2020166315.tif 000010
【図９】
2020166315.tif 000011