IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 日本電気株式会社の特許一覧

特開2024-128434学習装置、データ拡張システム、推定装置、学習方法、およびプログラム
<>
  • 特開-学習装置、データ拡張システム、推定装置、学習方法、およびプログラム 図1
  • 特開-学習装置、データ拡張システム、推定装置、学習方法、およびプログラム 図2
  • 特開-学習装置、データ拡張システム、推定装置、学習方法、およびプログラム 図3
  • 特開-学習装置、データ拡張システム、推定装置、学習方法、およびプログラム 図4
  • 特開-学習装置、データ拡張システム、推定装置、学習方法、およびプログラム 図5
  • 特開-学習装置、データ拡張システム、推定装置、学習方法、およびプログラム 図6
  • 特開-学習装置、データ拡張システム、推定装置、学習方法、およびプログラム 図7
  • 特開-学習装置、データ拡張システム、推定装置、学習方法、およびプログラム 図8
  • 特開-学習装置、データ拡張システム、推定装置、学習方法、およびプログラム 図9
  • 特開-学習装置、データ拡張システム、推定装置、学習方法、およびプログラム 図10
  • 特開-学習装置、データ拡張システム、推定装置、学習方法、およびプログラム 図11
  • 特開-学習装置、データ拡張システム、推定装置、学習方法、およびプログラム 図12
  • 特開-学習装置、データ拡張システム、推定装置、学習方法、およびプログラム 図13
  • 特開-学習装置、データ拡張システム、推定装置、学習方法、およびプログラム 図14
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024128434
(43)【公開日】2024-09-24
(54)【発明の名称】学習装置、データ拡張システム、推定装置、学習方法、およびプログラム
(51)【国際特許分類】
   G06N 3/098 20230101AFI20240913BHJP
   G06N 3/0475 20230101ALI20240913BHJP
   G06N 3/094 20230101ALI20240913BHJP
【FI】
G06N3/098
G06N3/0475
G06N3/094
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2023037407
(22)【出願日】2023-03-10
(71)【出願人】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100109313
【弁理士】
【氏名又は名称】机 昌彦
(74)【代理人】
【識別番号】100149618
【弁理士】
【氏名又は名称】北嶋 啓至
(72)【発明者】
【氏名】福司 謙一郎
(72)【発明者】
【氏名】野崎 善喬
(72)【発明者】
【氏名】西原 康介
(72)【発明者】
【氏名】中原 謙太郎
(57)【要約】
【課題】大規模な分散学習環境化において、GAN(Generative Adversarial Network)の少数ショット学習を高速化できる学習装置等を提供する。
【解決手段】複数の教師データを含むデータセットを取得するデータ取得部と、擬似データを出力する生成モデルを有する生成部と、教師データおよび擬似データのいずれかのデータの入力に応じて、入力されたデータが教師データおよび擬似データのいずれであるかを判別する判別モデルを有する判別部と、予め設定されたハイパーパラメータに基づいて、判別モデルの更新に用いられる第1ハイパーパラメータと、生成モデルの更新に用いられる第2ハイパーパラメータとを設定する管理部と、第1ハイパーパラメータを用いて判別モデルを更新し、第2ハイパーパラメータを用いて生成モデルを更新する学習処理部と、を備える学習装置とする。
【選択図】 図1
【特許請求の範囲】
【請求項1】
複数の教師データを含むデータセットを取得し、複数の前記教師データを複数のサブセットに分割するデータ取得手段と、
擬似データを出力する生成モデルを有する生成手段と、
前記教師データおよび前記擬似データのいずれかのデータの入力に応じて、入力された前記データが前記教師データおよび前記擬似データのいずれであるかを判別する判別モデルを有する判別手段と、
予め設定されたハイパーパラメータに基づいて、前記判別モデルの更新に用いられる第1ハイパーパラメータを設定し、分散処理に使われるサーバごとのGPU(Graphics Processing Unit)の数に応じて前記生成モデルの更新に用いられる第2ハイパーパラメータを設定する管理手段と、
前記第1ハイパーパラメータを用いて前記判別モデルを更新し、前記第2ハイパーパラメータを用いて前記生成モデルを更新する学習処理手段と、を備える学習装置。
【請求項2】
前記判別手段は、
前記判別モデルによる判別の間違いの度合を示す判別ロスを計算し、
前記生成モデルによって生成された前記擬似データが前記判別モデルによって前記擬似データであると見抜かれた度合を示す生成ロスを計算し、
前記学習処理手段は、
前記判別ロスおよび前記第1ハイパーパラメータに基づいて前記判別モデルのパラメータを更新し、
前記生成ロスおよび前記第2ハイパーパラメータに基づいて前記生成モデルのパラメータを更新する請求項1に記載の学習装置。
【請求項3】
前記管理手段は、
予め設定された前記ハイパーパラメータの値を前記第1ハイパーパラメータに設定し、
予め設定された前記ハイパーパラメータと前記GPUの数との積を前記第2ハイパーパラメータに設定する請求項2に記載の学習装置。
【請求項4】
前記管理手段は、
前記判別モデルに対して予め設定された前記ハイパーパラメータの値を前記第1ハイパーパラメータに設定し、
前記生成モデルに対して予め設定された前記ハイパーパラメータと前記GPUの数との積を前記第2ハイパーパラメータに設定する請求項2に記載の学習装置。
【請求項5】
前記管理手段は、
予め設定された前記ハイパーパラメータと、前記GPUの数の入力に応じて単調増加関数から出力された値との積を前記第2ハイパーパラメータに設定する請求項2に記載の学習装置。
【請求項6】
前記ハイパーパラメータは、学習率であり、
前記第2ハイパーパラメータに相当する第2学習率は、前記第1ハイパーパラメータに相当する第1学習率よりも大きい請求項1に記載の学習装置。
【請求項7】
請求項1乃至6のいずれか一項に記載の学習装置によって学習された生成モデルを用いて動作データを拡張するデータ拡張システムであって、
人物の動作に応じて測定された時系列骨格データを取得し、前記時系列骨格データから、前記人物の属性要素に関する体格データ、前記人物が行った動作の時間要素に関するタイミングデータ、および前記人物が行った動作中の姿勢の変化に関する動作データを分離する情報分離装置と、
前記生成モデルを用いて、前記体格データ、前記タイミングデータ、および前記動作データの各々を拡張し、拡張された前記体格データ、前記タイミングデータ、および前記動作データを統合することで前記時系列骨格データを拡張し、拡張された前記時系列骨格データを出力する拡張装置と、を備えるデータ拡張システム。
【請求項8】
請求項7に記載のデータ拡張システムによって拡張された時系列骨格データを用いて学習された推定モデルを用いて、人物の動作を推定する推定装置であって、
前記人物の動作に応じて測定された実データを取得する取得手段と、
前記実データの入力に応じて前記推定モデルから出力される推定データを、前記人物の動作として推定する推定手段と、
推定された前記推定データを出力する出力手段と、を備える推定装置。
【請求項9】
コンピュータが、
複数の教師データを含むデータセットを取得し、
複数の前記教師データを複数のサブセットに分割し、
擬似データを出力する生成モデルを用いて、前記擬似データを生成し、
前記教師データおよび前記擬似データのいずれかのデータの入力に応じて、入力された前記データが前記教師データおよび前記擬似データのいずれであるかを判別する判別モデルを用いて、入力された前記データが前記教師データおよび前記擬似データのいずれであるかを判別し、
予め設定されたハイパーパラメータに基づいて、前記判別モデルの更新に用いられる第1ハイパーパラメータを設定し、
分散処理に使われるサーバごとのGPU(Graphics Processing Unit)の数に応じて、予め設定された前記ハイパーパラメータに基づいて、前記生成モデルの更新に用いられる第2ハイパーパラメータを設定し、
前記第1ハイパーパラメータを用いて前記判別モデルを更新し、
前記第2ハイパーパラメータを用いて前記生成モデルを更新する学習方法。
【請求項10】
複数の教師データを含むデータセットを取得する処理と、
複数の前記教師データを複数のサブセットに分割する処理と、
擬似データを出力する生成モデルを用いて、前記擬似データを生成する処理と、
前記教師データおよび前記擬似データのいずれかのデータの入力に応じて、入力された前記データが前記教師データおよび前記擬似データのいずれであるかを判別する判別モデルを用いて、入力された前記データが前記教師データおよび前記擬似データのいずれであるかを判別する処理と、
予め設定されたハイパーパラメータに基づいて、前記判別モデルの更新に用いられる第1ハイパーパラメータを設定する処理と、
分散処理に使われるサーバごとのGPU(Graphics Processing Unit)の数に応じて、予め設定された前記ハイパーパラメータに基づいて、前記生成モデルの更新に用いられる第2ハイパーパラメータを設定する処理と、
前記第1ハイパーパラメータを用いて前記判別モデルを更新する処理と、
前記第2ハイパーパラメータを用いて前記生成モデルを更新する処理と、をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、分散学習に用いられる学習装置等に関する。
【背景技術】
【0002】
映像やモーションキャプチャ、ウェアラブルセンサを用いて人物の動きをセンシングし、センシングされた動きに応じて動作や行動を認識する技術へのニーズが高まっている。例えば、機械学習等の手法によって動作データを学習した認識モデルを用いれば、人物の動作や行動を認識できる。より実用的な精度で認識を行うためには、大量の動作データを用いて、認識モデルを訓練する必要がある。例えば、様々な人物の動作に関して、体格や年齢、個人ごとの動きの癖などに関するバリエーションが含まれる訓練データを用いて、認識モデルを訓練する必要がある。動作データの計測には多くの時間と手間が掛かる。そのため、実際に計測された動作データの擬似データ(擬似動作データ)を大量に生成するデータ拡張技術が求められる。
【0003】
GANを用いて高速にモデルを訓練する手法として、複数のGPUや計算ノードで大規模並列処理を行う分散学習がある。分散学習では、複数のGPU(Graphics Processing Unit)で計算処理を分割することによって、計算処理を短縮する。GPUの数がk倍になると、一度に処理できるデータ量(バッチサイズ)がk倍になる(kは自然数)。しかし、実際には、バッチサイズが増えただけでは学習を高速化できない。
【0004】
非特許文献1には、分散学習における学習を効率化する技術が開示されている。非特許文献1の手法では、分散学習の規模に応じて、学習率を調整する技術が開示されている。非特許文献1の手法では、バッチサイズに比例して学習率を大きくする。
【先行技術文献】
【非特許文献】
【0005】
【非特許文献1】P. Goyal. et al., “Accurate, Large Minibatch SGD: Training ImageNet in 1 Hour,” arXiv:1706.02677, 2018.
【発明の概要】
【発明が解決しようとする課題】
【0006】
非特許文献1の手法によれば、データセットサイズと比べてバッチサイズが十分に小さければ、モデルの訓練を効率化できる。大規模分散学習環境ではバッチサイズがデータセットサイズを上回るため、線形スケーリング則の前提条件が満たされない。そのため、非特許文献1の手法は、大規模分散学習環境には適用できなかった。すなわち、非特許文献1の手法では、GANの少数ショット学習(Few-shot学習)を、大規模並列処理に対応させることはできなかった。
【0007】
本開示の目的は、大規模な分散学習環境化において、GAN(Generative Adversarial Network)の少数ショット学習を高速化できる学習装置等を提供することである。
【課題を解決するための手段】
【0008】
本開示の一態様の学習装置は、複数の教師データを含むデータセットを取得し、複数の教師データを複数のサブセットに分割するデータ取得部と、擬似データを出力する生成モデルを有する生成部と、教師データおよび擬似データのいずれかのデータの入力に応じて、入力されたデータが教師データおよび擬似データのいずれであるかを判別する判別モデルを有する判別部と、予め設定されたハイパーパラメータに基づいて、判別モデルの更新に用いられる第1ハイパーパラメータを設定し、分散処理に使われるサーバごとのGPUの数に応じて生成モデルの更新に用いられる第2ハイパーパラメータを設定する管理部と、第1ハイパーパラメータを用いて判別モデルを更新し、第2ハイパーパラメータを用いて生成モデルを更新する学習処理部と、を備える。
【0009】
本開示の一態様の学習方法においては、複数の教師データを含むデータセットを取得し、複数の教師データを複数のサブセットに分割し、擬似データを出力する生成モデルを用いて、擬似データを生成し、教師データおよび擬似データのいずれかのデータの入力に応じて、入力されたデータが教師データおよび擬似データのいずれであるかを判別する判別モデルを用いて、入力されたデータが教師データおよび擬似データのいずれであるかを判別し、予め設定されたハイパーパラメータに基づいて、判別モデルの更新に用いられる第1ハイパーパラメータを設定し、分散処理に使われるサーバごとのGPUの数に応じて、予め設定されたハイパーパラメータに基づいて、生成モデルの更新に用いられる第2ハイパーパラメータを設定し、第1ハイパーパラメータを用いて判別モデルを更新し、第2ハイパーパラメータを用いて生成モデルを更新する学習方法。
【0010】
本開示の一態様のプログラムは、複数の教師データを含むデータセットを取得する処理と、複数の教師データを複数のサブセットに分割する処理と、擬似データを出力する生成モデルを用いて、擬似データを生成する処理と、教師データおよび擬似データのいずれかのデータの入力に応じて、入力されたデータが教師データおよび擬似データのいずれであるかを判別する判別モデルを用いて、入力されたデータが教師データおよび擬似データのいずれであるかを判別する処理と、予め設定されたハイパーパラメータに基づいて、判別モデルの更新に用いられる第1ハイパーパラメータを設定する処理と、分散処理に使われるサーバごとのGPUの数に応じて、予め設定されたハイパーパラメータに基づいて、生成モデルの更新に用いられる第2ハイパーパラメータを設定する処理と、第1ハイパーパラメータを用いて判別モデルを更新する処理と、第2ハイパーパラメータを用いて生成モデルを更新する処理と、をコンピュータに実行させる。
【発明の効果】
【0011】
本開示によれば、分散学習環境化において、GAN(Generative Adversarial Network)の少数ショット学習を高速化できる学習装置等を提供することが可能になる。
【図面の簡単な説明】
【0012】
図1】第1の実施形態に係る学習装置の構成の一例を示すブロック図である。
図2】第1の実施形態に係る学習装置による学習処理の一例について説明するためのフローチャートである。
図3】第1の実施形態に係る学習装置による第1更新処理の一例について説明するためのフローチャートである。
図4】第1の実施形態に係る学習装置による第2更新処理の一例について説明するためのフローチャートである。
図5】第2の実施形態に係るデータ拡張システムの構成の一例を示すブロック図である。
図6】第2の実施形態に係るデータ拡張システムによる拡張対象である時系列骨格データに関するターゲット動作について説明するための概念図である。
図7】第2の実施形態に係るデータ拡張システムによる拡張対象である時系列骨格データに含まれる骨格データについて説明するための概念図である。
図8】第3の実施形態に係るデータ拡張システムによるデータ拡張処理の一例について説明するためのフローチャートである。
図9】第3の実施形態に係るデータ拡張システムによる情報分離処理の一例について説明するためのフローチャートである。
図10】第3の実施形態に係るデータ拡張システムによる拡張処理の一例について説明するためのフローチャートである。
図11】第3の実施形態に係る推定装置の構成の一例を示すブロック図である。
図12】第3の実施形態に係る推定装置によって推定された動作データの表示例を示す概念図である。
図13】第4の実施形態に係る学習装置の構成の一例を示すブロック図である。
図14】各実施形態の処理を実行するハードウェア構成の一例を示すブロック図である。
【発明を実施するための形態】
【0013】
以下に、本発明を実施するための形態について図面を用いて説明する。ただし、以下に述べる実施形態には、本発明を実施するために技術的に好ましい限定がされているが、発明の範囲を以下に限定するものではない。なお、以下の実施形態の説明に用いる全図においては、特に理由がない限り、同様箇所には同一符号を付す。また、以下の実施形態において、同様の構成・動作に関しては繰り返しの説明を省略する場合がある。
【0014】
(第1の実施形態)
まず、第1の実施形態に係る学習装置について図面を参照しながら説明する。本実施形態の学習装置は、データ拡張に用いられるモデルの訓練に用いられる。例えば、本実施形態の学習装置は、実測された動作データを用いて拡張データを生成するモデル(生成モデル、推定モデル)を訓練する。動作データは、人物の動作に応じた姿勢の変化を示すデータである。動作データは、動画を構成する複数のフレームから抽出される。本実施形態の手法は、動作データのみならず、任意のデータの拡張に用いることができる。
【0015】
(構成)
図1は、本実施形態に係る学習装置10の構成の一例を示すブロック図である。学習装置10は、データ取得部11、生成部12、判別部13、および学習処理部17を備える。図1においては、構成要素間の接続を示す線を省略する。
【0016】
データ取得部11(データ取得手段)は、複数のデータ(教師データ)によって構成されたデータセット110を取得する。データセット110を構成する複数のデータについては、特に限定を加えない。例えば、データセット110は、実際に計測された複数の実データによって構成される。例えば、データセット110は、実際に計測された被験者の動作から抽出された動作データである。例えば、データセット110は、10名程度の少人数の被験者が行った特定の動作を、モーションキャプチャなどで実測することで得られた複数のデータによって構成される。データセット110を構成する複数のデータは、実測する必要がある。そのため、データセット110を構成する複数のデータを大量に準備することは難しい。
【0017】
データ取得部11は、データセット110を構成する複数のデータをミニバッチに分割する。ミニバッチは、データセット110含まれる複数のデータからなるサブセットである。ミニバッチに含まれるデータの数をバッチサイズと呼ぶ。例えば、バッチサイズは、2のn乗に設定される(nは自然数)。ミニバッチに分割された複数のデータは、判別部13の判別モデル130による判別に用いられる。データセット110を構成する複数のデータの分割は、管理部15や学習処理部17によって実行されてもよい。
【0018】
生成部12(生成手段)は、生成モデル120を含む。本実施形態において、生成モデル120は、学習装置10による学習の対象である。生成モデル120は、擬似データを生成するモデルである。例えば、生成モデル120は、乱数値に応じた擬似データを出力する。生成部12は、生成モデル120を用いて、擬似データを生成する。生成モデル120による擬似データの生成方法については、特に限定を加えない。例えば、生成モデル120は、正規分布に従ったノイズを用いて、擬似データを生成してもよい。
【0019】
判別部13(判別手段)は、判別モデル130を含む。本実施形態において、判別モデル130は、学習装置10による学習の対象ではないが、副次的に訓練される。判別モデル130は、入力されたデータが、教師データおよび擬似データのいずれであるかを判別するモデルである。判別部13は、生成部12によって生成された擬似データを取得する。判別部13は、判別モデル130を用いて、取得したデータが教師データおよび擬似データのいずれであるか判別する。判別部13は、判別モデル130による判別結果を管理部15に出力する。
【0020】
判別部13は、判別結果に応じて、判別ロスを計算する。判別ロスは、判別モデル130による判別の間違いの度合を示す。すなわち、判別ロスは、判別モデル130による教師データと擬似データの判別結果が間違っていた度合を示す。判別ロスは、判別モデル130によって判別された全ての教師データおよび擬似データに関して、教師データが擬似データと判別され、擬似データが教師データと判別された割合を示す。判別モデル130による判別が全て正解の場合、判別ロスは0である。それに対し、判別モデル130による判別が全て不正解の場合、判別ロスは1である。
【0021】
また、判別部13は、判別結果に応じて、生成ロスを計算する。生成ロスは、生成モデル120によって生成された擬似データが判別モデル130によって教師データであると見抜かれた度合を示す。すなわち、生成ロスは、生成モデル120によって生成された擬似データが、判別モデル130によって擬似データであると判別された度合を示す。生成ロスは、判別モデル130によって判別された全ての教師データおよび擬似データに関して、擬似データが擬似データであると判別された割合を示す。生成モデル120によって生成された擬似データが、判別モデル130によって全て教師データであると判別された場合、生成ロスは0である。それに対し、生成モデル120によって生成された擬似データが、判別モデル130によって全て擬似データであると判別された場合、生成ロスは1である。
【0022】
管理部15(管理手段)は、判別モデル130および生成モデル120に異なる学習率を設定する。学習率は、機械学習の最適化において、調整可能なパラメータの1つである重みを一度にどの程度変化させるかを表すハイパーパラメータである。なお、調整可能なパラメータとして、バイアスやスケーリング係数が用いられてもよい。機械学習では、反復的に重みを変更させる。学習率の値が大きいほど、一度に変更される重みの大きさが大きくなるので、学習のスピードが上がる。それに対し、学習率の値が小さいほど、一度に変更する重みパラメータの大きさが小さくなるので、学習のスピードが下がる。管理部15は、判別モデル130には、分散処理に使われるサーバごとのGPUの数によらず、元の学習率(第1学習率)を設定する。それに対し、管理部15は、生成モデル120には、分散処理に使われるサーバごとのGPUの数に応じた学習率(第2学習率)を設定する。すなわち、管理部15は、分散処理に使われるサーバごとのGPUの数に応じて、第2ハイパーパラメータ(第2学習率)を設定する。
【0023】
管理部15は、第1学習率η1を用いて、判別ロスに基づいて判別モデル130のパラメータを計算する。例えば、第1学習率η1は、下記の式1を用いて表される。
【0024】
【数1】
上記の式1において、ηは予め設定された学習率である。上記の式1の例において、管理部15は、予め設定されたハイパーパラメータ(学習率η)の値を第1ハイパーパラメータ(第1学習率η1)に設定する。
【0025】
管理部15は、第2学習率η2を用いて、生成ロスに基づいて生成モデル120のパラメータを計算する。例えば、第2学習率η2は、下記の式2を用いて表される。
【0026】
【数2】
上記の式2において、Mは、分散処理に使用されるサーバごとのGPUの数と、分散処理数の積である。分散処理数とは、分散処理に使用されるサーバの数を指す。判別モデル130または生成モデル120の調整可能なパラメータを1回更新するために用いるデータ数をバッチサイズと呼ぶ。バッチサイズは、Mに比例する。上記の式2の例において、管理部15は、予め設定されたハイパーパラメータ(学習率η)とM(GPUの数と分散処理数の積)との積を、第2ハイパーパラメータ(第2学習率η2)に設定する。
【0027】
上記のように、管理部15は、判別モデル130の第1学習率η1と、生成モデル120の第2学習率η2とを計算する。ハイパーパラメータは、学習率以外であってもよい。例えば、ハイパーパラメータは、モーメントや減衰率、バッチサイズであってもよい。例えば、ハイパーパラメータは、ニューラルネットワークの層数や、ニューラルネットワークを構成する各層のニューロンの数であってもよい。すなわち、管理部15は、判別モデル130のハイパーパラメータ(第1ハイパーパラメータ)と、生成モデル120のハイパーパラメータ(第2ハイパーパラメータ)とを計算する。
【0028】
判別モデル130および生成モデル120には、異なる学習率が設定されてもよい。例えば、管理部15は、下記の式3~4を用いて、第1学習率η1および第2学習率η2を計算する。
【0029】
【数3】
【数4】
上記の式3~4において、ηdは、判別モデル130に対して予め設定された第1学習率である。ηgは、生成モデル120に対して予め設定された第2学習率である。
【0030】
上記の式3の例において、管理部15は、判別モデル130に対して予め設定されたハイパーパラメータ(学習率ηd)の値を第1ハイパーパラメータ(第1学習率η1)に設定する。一方、上記の式4の例において、管理部15は、生成モデル120に対して予め設定されたハイパーパラメータ(学習率ηg)とGPUの数Mとの積を、第2ハイパーパラメータ(第2学習率η2)に設定する。
【0031】
例えば、動作データ生成においては、第2学習率η2が第1学習率η1の4倍程度に設定されるとよい。例えば、GPUの数が単独のGPU(M=1)を用いた場合、バッチサイズが32、ηdが0.0002、ηgが0.0008となる。同じ学習を8個のGPU(M=8)で実行する場合、バッチサイズが256、ηdが0.0002、ηgが0.0064となる。
【0032】
例えば、管理部15は、下記の式5を用いて、第2学習率η2を計算してもよい。
【0033】
【数5】
上記の式5を用いた例は、本実施形態の手法が、線形スケーリングだけではなく、非線形スケーリングにも適用できることを示す。
【0034】
上記の式5の例において、管理部15は、生成モデル120に対して予め設定されたハイパーパラメータ(学習率ηg)と、GPUの数Mの入力に応じて単調増加関数から出力された値との積を、第2ハイパーパラメータ(第2学習率η2)に設定する。
【0035】
より一般的に表現すると、第1学習率η1および第2学習率η2は、下記の式6~7を用いて表現される。
【0036】
【数6】
【数7】
上記の式6~7において、f(M)およびg(M)は、GPUの数Mに応じて変化する関数を示す。例えば、f(M)およびg(M)は、指数関数や対数関数、無理関数などの単調増加関数である。すなわち、f(M)およびg(M)は、GPUの数Mに応じて変化する単調増加関数である。
【0037】
学習処理部17(学習処理手段)は、管理部15によって算出されたハイパーパラメータを用いて、生成モデル120および判別モデル130を更新する。学習処理部17は、判別モデル130に関して算出された第1学習率η1を用いて、判別モデル130の重みやバイアスなどのパラメータを更新する。すなわち、学習処理部17は、第1ハイパーパラメータを用いて、判別モデル130のパラメータを更新する。また、学習処理部17は、生成モデル120に関して算出された第2学習率η2を用いて、生成モデル120の重みやバイアスなどのパラメータを更新する。すなわち、学習処理部17は、第2ハイパーパラメータを用いて、生成モデル120のパラメータを更新する。学習処理部17は、パラメータが更新された判別モデル130および生成モデル120を訓練する。学習処理部17によって訓練された生成モデル120は、データ拡張に用いられる。例えば、学習処理部17は、算出されたロスの値に応じて、ロスの導関数を計算する。学習処理部17は、算出された傾きに学習率をかけて、生成モデル120および判別モデル130を更新する。学習処理部17は、ロスが最適解に向かうように、生成モデル120および判別モデル130を訓練する。
【0038】
(動作)
次に、学習装置10の動作の一例について図面を参照しながら説明する。以下においては、学習装置10による学習処理と、学習処理に含まれる更新処理とに分けて説明する。更新処理については、判別モデル130のパラメータを更新する第1更新処理と、生成モデル120のパラメータを更新する第2パラメータ更新処置とに分けて説明する。
【0039】
〔学習処理〕
図2は、学習装置10による学習処理の一例について説明するためのフローチャートである。図2のフローチャートに沿った説明においては、学習装置10を動作主体として説明する。
【0040】
図2において、まず、学習装置10は、データセット110を取得する(ステップS11)。データセット110を構成する複数のデータは、被験者に関して実際に測定された教師データである。なお、データセット110は、別途生成された擬似データを含んでもよい。
【0041】
次に、学習装置10は、取得したデータセット110を構成する複数のデータをミニバッチに分割する(ステップS12)。
【0042】
次に、学習装置10は、ミニバッチを1つ選択する(ステップS13)。
【0043】
次に、学習装置10は、選択されたミニバッチに関して、第1更新処理を実行する(ステップS14)。第1更新処理は、第1学習率に基づいて、判別モデル130のパラメータを更新する処理である。第1更新処理の詳細については後述する(図3)。
【0044】
次に、学習装置10は、第2更新処理を実行する(ステップS15)。第2更新処理は、第2学習率に基づいて、生成モデル120のパラメータを更新する処理である。第2更新処理の詳細については後述する(図4)。
【0045】
生成モデル120および判別モデル130の更新を継続する場合(ステップS16でYes)、ステップS14にフローが戻る。更新の継続は、予め決められた基準で判定されてもよいし、管理者による意思決定による入力操作に応じて判定されてもよい。例えば、生成モデル120および判別モデル130の更新は、予め設定されたエポック数だけ繰り返される。例えば、エポック数は、10000回に設定される。生成モデル120および判別モデル130の更新を継続しない場合(ステップS16でNo)、処理対象のミニバッチがあれば(ステップS17でYes)、ステップS13にフローが戻る。処理対象のミニバッチがなければ(ステップS17でNo)、図2のフローチャートに沿った処理は終了である。
【0046】
〔第1更新処理〕
次に、第1更新処理(図2のフローチャートのステップS14)の詳細について図面を参照しながら説明する。図3は、第1更新処理について説明するためのフローチャートである。図3のフローチャートに沿った説明においては、学習装置10を動作主体として説明する。
【0047】
図3において、まず、学習装置10は、判別モデル130を用いて、ミニバッチに含まれる教師データに対して判別を実行する(ステップS141)。
【0048】
次に、学習装置10は、生成モデル120を用いて、擬似データを生成する(ステップS142)。ステップS141とステップS142は、順番が入れ替えられてもよいし、並行して実行されてもよい。
【0049】
次に、学習装置10は、判別モデル130を用いて、生成された擬似データに対して判別を実行する(ステップS143)。
【0050】
次に、学習装置10は、判別モデル130の実行結果に応じて、判別ロスを計算する(ステップS144)。
【0051】
次に、学習装置10は、算出された判別ロスおよびハイパーパラメータに基づいて、判別モデル130のパラメータを更新する(ステップS145)。例えば、学習装置10は、判別ロスおよび第1学習率に基づいて、判別モデルのパラメータを更新する。ステップS145の後は、第2更新処理(図2のフローチャートのステップS15)にフローが進む。第2更新処理の詳細については、後述する(図4)。
【0052】
〔第2更新処理〕
次に、第2更新処理(図2のフローチャートのステップS15)の詳細について図面を参照しながら説明する。図4は、第2更新処理について説明するためのフローチャートである。図4のフローチャートに沿った説明においては、学習装置10を動作主体として説明する。
【0053】
図4において、まず、学習装置10は、生成モデル120を用いて、擬似データを生成する(ステップS151)。
【0054】
次に、学習装置10は、判別モデル130を用いて、生成された擬似データに対して判別を実行する(ステップS152)。
【0055】
次に、学習装置10は、判別モデル130の実行結果に応じて、生成ロスを計算する(ステップS153)。
【0056】
次に、学習装置10は、算出された生成ロスおよびハイパーパラメータに基づいて、判別モデルのパラメータを更新する(ステップS145)。例えば、学習装置10は、判別ロスおよび第2学習率に基づいて、生成モデル120のパラメータを更新する。ステップS154の後は、図2のフローチャートのステップS16)にフローが進む。
【0057】
以上のように、本実施形態の学習装置は、データ取得部、生成部、判別部、管理部、および学習処理部を備える。データ取得部は、複数の教師データを含むデータセットを取得する。データ取得部は、複数の教師データを複数のサブセットに分割する。生成部は、生成モデルを有する。生成モデルは、擬似データを出力する。判別部は、判別モデルを有する。判別モデルは、教師データおよび擬似データのいずれかのデータの入力に応じて、入力されたデータが教師データおよび擬似データのいずれであるかを判別する。判別部は、判別モデルによる判別の間違いの度合を示す判別ロスを計算する。判別部は、生成モデルによって生成された擬似データが判別モデルによって擬似データであると見抜かれた度合を示す生成ロスを計算する。管理部は、予め設定されたハイパーパラメータに基づいて、判別モデルの更新に用いられる第1ハイパーパラメータを設定する。管理部は、分散処理に使われるサーバごとのGPUの数に応じて生成モデルの更新に用いられる第2ハイパーパラメータを設定する。学習処理部は、判別ロスおよび前記第1ハイパーパラメータに基づいて判別モデルのパラメータを更新する。学習処理部は、生成ロスおよび第2ハイパーパラメータに基づいて生成モデルのパラメータを更新する。
【0058】
本実施形態の学習装置は、判別モデルと生成モデルとを異なるハイパーパラメータを用いて更新する。本実施形態の学習装置は、GPUの数に応じて、第2ハイパーパラメータを設定する。本実施形態の学習装置は、第1ハイパーパラメータに関しては、GPUの数に応じて変更しない。すなわち、本実施形態の学習装置は、分散学習の規模に応じて、判別モデルの学習率は変更せずに、生成モデルの学習率を調整する。そのため、本実施形態によれば、バッチサイズがデータセットサイズを上回る場合であっても、生成モデル(推定モデル)を効率的に訓練できる。すなわち、本実施形態によれば、大規模な分散学習環境化において、GANの少数ショット学習を高速化できる。
【0059】
大規模な分散学習環境においては、バッチサイズの大きさに応じて学習率を大きくする線形スケーリング則が前提としている、バッチサイズがデータセット全体のサイズより十分に小さい、という前提条件が満たされない。そのため、大規模な分散学習環境においては、非特許文献1(P. Goyal. et al., “Accurate, Large Minibatch SGD: Training ImageNet in 1 Hour,” arXiv:1706.02677, 2018.)の手法を用いても、訓練を高速化することは難しい。それに対し、本実施形態の手法においては、バッチサイズの大きさに応じて、判別モデルの第1学習率を変更せずに、生成モデルの第2学習率を変更する。そのため、本実施形態によれば、分散学習のスケールメリットと、訓練の高速化とを両立できる。
【0060】
本実施形態の手法は、GANに限らず、その他の機械学習に適用できる。本実施形態によれば、分散学習の規模に応じてハイパーパラメータを調整することによって、効率的にモデルを訓練できる。特に、本実施形態においては、GPUの数に比例して学習率を変化させることによって、モデルの訓練を効率化する。
【0061】
本実施形態の一態様において、管理部は、予め設定されたハイパーパラメータの値を第1ハイパーパラメータに設定する。管理部は、予め設定されたハイパーパラメータとGPUの数との積を第2ハイパーパラメータに設定する。本態様によれば、予め設定されたハイパーパラメータとGPUの数との積を第2ハイパーパラメータに設定することによって、大規模な分散学習環境化においてもGANの少数ショット学習を高速化できる。
【0062】
本実施形態の一態様において、管理部は、判別モデルに対して予め設定されたハイパーパラメータの値を第1ハイパーパラメータに設定する。管理部は、生成モデルに対して予め設定されたハイパーパラメータとGPUの数との積を第2ハイパーパラメータに設定する。本態様では、予め設定されたハイパーパラメータと、GPUの数の入力に応じて単調増加関数から出力された値との積を第2ハイパーパラメータに設定する。すなわち、本態様によれば、非線形スケーリングによって第2ハイパーパラメータを調整することによって、大規模な分散学習環境化においてもGANの少数ショット学習を高速化できる。
【0063】
本実施形態の一態様において、ハイパーパラメータは、学習率である。第2ハイパーパラメータに相当する第2学習率は、第1ハイパーパラメータに相当する第1学習率よりも大きい。本態様によれば、学習率に基づいて、大規模な分散学習環境化においてもGANの少数ショット学習を高速化できる。
【0064】
(第2の実施形態)
次に、第2の実施形態に係るデータ拡張システムについて図面を参照しながら説明する。本実施形態のデータ拡張システムは、第1の実施形態の学習装置によって学習されたモデル(生成モデル)を用いて、実測されたターゲットデータを拡張する。本実施形態では、被験者のターゲット動作に応じて実測されたターゲットデータの時系列データ(時系列骨格データ)を拡張する例をあげる。例えば、ターゲット動作には、背伸びや跳躍、歩行、走行、ストレッチなどの特定の動作が含まれる。ターゲット動作の種類については、後述するソース動作データを用いて再構成できれば、特に限定を加えない。本実施形態のデータ拡張システムは、10名程度の少人数の被験者が行ったターゲット動作に応じて実測されたターゲットデータを拡張する。
【0065】
(構成)
図5は、本実施形態に係るデータ拡張システム20の構成の一例を示すブロック図である。データ拡張システム20は、骨格データ取得部21、体格データ分離部22、タイミングデータ分離部23、体格データ拡張部25、タイミングデータ拡張部26、動作データ拡張部27、統合部28、および出力部29を備える。体格データ分離部22およびタイミングデータ分離部23は、情報分離装置220を構成する。体格データ拡張部25、タイミングデータ拡張部26、動作データ拡張部27、および統合部28は、拡張装置250を構成する。
【0066】
骨格データ取得部21(骨格データ取得手段)は、拡張対象である時系列骨格データ200を取得する。時系列骨格データ200は、ターゲット動作を行う被験者(人物)に関して実測された動画データから抽出された骨格データの時系列データを含む。骨格データは、モーションキャプチャなどによって計測された被験者の関節の3次元的な位置を含む。時系列骨格データは、被験者の動作に応じた骨格データの時系列データを含む。また、時系列骨格データ200は、被験者の体格データを含む。体格データは、被験者の体格に関する情報である。体格データは、被験者の属性要素に関する。例えば、体格データは、被験者の腕や脚、胴体、肩幅などのパーツの長さに関する情報を含む。
【0067】
図6は、時系列骨格データ200に関するターゲット動作について説明するための概念図である。図6は、ターゲット動作を行う人物の動きを切り出した図である。図6には、動画を構成するフレームFn-1、フレームFn、およびフレームFn+-1から抽出されたターゲット動作を示す(nは自然数)。フレームFn-1、フレームFn、フレームFn+1は、連続したフレームである。各フレームにおいては、人物の代表的な部位の位置を示す円が、接続線で連結されている。例えば、肩や肘、手首、首、胸、腰、股、膝、足首などの関節が、人物の代表的な部位として選択される。例えば、頭や指先、足先などの末端が、人物の代表的な部位として選択される。関節や末端の間の部位が、人物の代表的な部位として選択されてもよい。以下においては、人物の代表的な部位の位置を関節と表現する。
【0068】
図7は、時系列骨格データ200に含まれる骨格データについて説明するための概念図である。本実施形態においては、関節Jmによって連結された2つの接続線の成す3次元的関節角度(オイラー角θm)を、ターゲットデータとして用いる。時系列骨格データ200は、複数の関節の各々に接続された2つの接続線の成す角が時系列でまとめられたデータセットである。ターゲット動作の推定に用いることができれば、時系列骨格データ200として用いられるデータの形式については、特に限定を加えない。
【0069】
体格データ分離部22(体格データ分離手段)は、時系列骨格データ200から、被験者の体格データを分離する。
【0070】
タイミングデータ分離部23(タイミングデータ分離手段)は、体格データが分離された残りの時系列骨格データから、タイミングデータを取得する。タイミングデータは、被験者が行った動作の時間に関する情報を含む。タイミングデータは、被験者が行う動作の時間要素に関する。例えば、タイミングデータは、被験者の歩行における歩行周期や、被験者がジャンプする際のためなどに関する情報を含む。
【0071】
タイミングデータが分離された時系列骨格データは、動作データに設定される。動作データは、被験者が行った動作中の姿勢の変化に関する。動作データに設定された時系列骨格データを構成する個々の骨格データは、姿勢データとも呼ばれる。姿勢データは、被験者が行った動作の空間的要素である。骨格データから抽出された3次元的関節角度(オイラー角)が、動作データに設定される。動作データは、3次元的関節角度(オイラー角)以外の動きを示すデータであってもよい。
【0072】
体格データ拡張部25(体格データ拡張手段)は、被験者の属性要素を変化させて、体格データを拡張する。例えば、体格データ拡張部25は、被験者の属性に応じて、腕や脚、胴体、肩幅などのパーツの長さに関するバリエーションを増やすことによって、体格データを拡張する。体格データ拡張部25は、拡張された体格データのデータセット(拡張体格データセット)を統合部28に出力する。
【0073】
例えば、被験者が男性の場合、体格データ拡張部25は、男性に関するパーツの長さの平均値や分布に合わせて、体格データを拡張する。例えば、体格データ拡張部25は、被験者の属性を変更して、パーツの長さのバリエーションを増やすことによって、体格データを拡張する。例えば、被験者が男性の場合、体格データ拡張部25は、女性に関するパーツの長さの平均値や分布に合わせて、体格データを拡張する。例えば、被験者が成人の場合、体格データ拡張部25は、子供に関するパーツの長さの平均値や分布に合わせて、体格データを拡張する。
【0074】
例えば、体格データ拡張部25は、被験者の国籍を変更して、パーツの長さのバリエーションを増やすことによって、体格データを拡張してもよい。例えば、被験者の国籍が日本の場合、体格データ拡張部25は、国籍がアメリカの人に関するパーツの長さの平均値や分布に合わせて、体格データを拡張する。
【0075】
タイミングデータ拡張部26(タイミングデータ拡張手段)は、被験者が行った動作の時間要素を変化させて、タイミングデータを拡張する。例えば、タイミングデータ拡張部26は、被験者が行った動作の時間要素に関するバリエーションを増やすことによって、タイミングデータを拡張する。タイミングデータ拡張部26は、拡張されたタイミングデータのデータセット(拡張タイミングデータセット)を統合部28に出力する。
【0076】
例えば、タイミングデータ拡張部26は、被験者の歩行から検出される歩行周期における遊脚相や立脚相の割合を変動させて、タイミングデータを拡張する。例えば、タイミングデータ拡張部26は、被験者の歩行から検出される踵接地や踵持ち上がり、爪先離地、足交差、脛骨垂直などの歩行イベントの間隔を変動させて、タイミングデータを拡張する。例えば、タイミングデータ拡張部26は、被験者と同じ属性の人の平均値や分散に合わせて、タイミングデータを拡張する。例えば、タイミングデータ拡張部26は、被験者とは異なる属性の人の平均値や分散に合わせて、タイミングデータを拡張する。
【0077】
動作データ拡張部27(動作データ拡張手段)は、動作データを拡張する。動作データ拡張部27は、動作データを構成する複数の姿勢データのバリエーションを増やすことによって、動作データを拡張する。動作データ拡張部27は、拡張された動作データのデータセット(拡張動作データセット)を統合部28に出力する。
【0078】
例えば、動作データ拡張部27は、第1の実施形態に係る学習装置によって学習されたモデル(生成モデル)を用いて、動作データを拡張する。その場合、動作データは、3次元的関節角度(オイラー角)に関する動作データを拡張する。動作データ拡張部27は、生成モデルではないモデルを用いて、動作データを拡張してもよい。
【0079】
統合部28(統合手段)は、拡張体格データセット、拡張タイミングデータセット、および拡張動作データセットを取得する。統合部28は、取得した拡張体格データセット、拡張タイミングデータセット、および拡張動作データセットの各々に含まれるデータを統合して、時系列骨格データを拡張する。統合部28は、拡張体格データ、拡張タイミングデータ、および拡張動作データを組み合わせて、骨格データを拡張する。
【0080】
出力部29(出力手段)は、拡張された時系列骨格データ290を出力する。例えば、拡張された時系列骨格データ290は、被験者の動作を予測するモデルの学習に用いられる。拡張された時系列骨格データ290の用途に関しては、特に限定を加えない。
【0081】
(動作)
次に、本実施形態に係るデータ拡張システム20の動作の一例について図面を参照しながら説明する。以下においては、データ拡張システム20によるデータ拡張処理、データ拡張処理に含まれる情報分離処理および拡張処理について説明する。
【0082】
図8は、データ拡張システム20の動作(データ拡張処理)の一例について説明するためのフローチャートである。図8のフローチャートに沿った説明においては、データ拡張システム20を動作主体として説明する。
【0083】
図8において、まず、データ拡張システム20は、ターゲット動作を行った被験者に関して測定された時系列骨格データを取得する(ステップS21)。
【0084】
次に、データ拡張システム20は、情報分離処理を実行して、時系列骨格データを、体格データ、タイミングデータ、および動作データに分離する(ステップS22)。
【0085】
次に、データ拡張システム20は、拡張処理を実行して、体格データ、タイミングデータ、および動作データの各々を拡張する(ステップS23)。
【0086】
次に、データ拡張システム20は、拡張された時系列骨格データを出力する(ステップS24)。拡張された時系列骨格データは、種々の用途に用いられる。例えば、拡張された時系列骨格データは、被験者の動作を予測するモデルの学習に用いられる。
【0087】
〔情報分離処理〕
図9は、データ拡張システム20によるデータ拡張処理に含まれる情報分離処理(図8のステップS22)の一例について説明するためのフローチャートである。図9のフローチャートに沿った説明においては、データ拡張システム20に含まれる情報分離装置220を動作主体として説明する。
【0088】
図9において、まず、情報分離装置220は、取得した時系列骨格データから体格データを分離する(ステップS221)。分離された体格データは、データ拡張システム20に含まれる拡張装置250によるデータ拡張に用いられる。
【0089】
次に、情報分離装置220は、体格データが分離された時系列骨格データからタイミングデータを分離する(ステップS222)。分離されたタイミングデータは、データ拡張システム20に含まれる拡張装置250によるデータ拡張に用いられる。
【0090】
次に、情報分離装置220は、タイミングデータが分離された時系列骨格データを、動作データに設定する(ステップS223)。ステップS223の次は、図8のステップS23の拡張処理に進む。設定された動作データは、データ拡張システム20に含まれる拡張装置250によるデータ拡張に用いられる。
【0091】
〔データ拡張処理〕
図10は、データ拡張システム20によるデータ拡張処理に含まれる拡張処理(図8のステップS23)の一例について説明するためのフローチャートである。図10のフローチャートに沿った説明においては、データ拡張システム20に含まれる拡張装置250を動作主体として説明する。
【0092】
図10において、まず、拡張装置250は、体格データを拡張する(ステップS231)。拡張された体格データは、拡張体格データセットを構成する。
【0093】
次に、拡張装置250は、タイミングデータを拡張する(ステップS232)。拡張されたタイミングデータは、拡張タイミングデータセットを構成する。
【0094】
次に、拡張装置250は、動作データを拡張する(ステップS233)。拡張された動作データは、拡張動作データセットを構成する。
【0095】
次に、拡張装置250は、拡張体格データセット、拡張タイミングデータセット、および、動作データの各々に含まれるデータを統合して、時系列骨格データを拡張する(ステップS234)。ステップS234の次は、図8のステップS24に進む。
【0096】
以上のように、本実施形態のデータ拡張システムは、第1の学習装置によって学習された生成モデルを用いて、動作データ(時系列骨格データ)を拡張する。本実施形態のデータ拡張システムは、情報分離装置および拡張装置を備える。情報分離装置は、人物の動作に応じて測定された時系列骨格データを取得する。情報分離装置は、時系列骨格データから、体格データ、タイミングデータ、および動作データを分離する。体格データは、人物の属性要素に関するデータである。タイミングデータは、人物が行った動作の時間要素に関するデータである。動作データは、人物が行った動作中の姿勢の変化に関するデータである。拡張装置は、体格データ、タイミングデータ、および動作データの各々を拡張する。拡張装置は、拡張された体格データ、タイミングデータ、および動作データを統合することで時系列骨格データを拡張する。拡張装置は、生成モデルを用いて、動作データを拡張する。データ拡張システム。拡張装置は、拡張された時系列骨格データを出力する。
【0097】
本実施形態のデータ拡張システムは、体格データ、タイミングデータ、および動作データの各々を個別に拡張する。本実施形態のデータ拡張システムは、個別に拡張された体格データ、タイミングデータ、および動作データを組み合わせて統合することによって、時系列骨格データを拡張する。本実施形態のデータ拡張システムは、人物の属性や、人物が行った動作の時間要素、および人物が行った動作中の姿勢の変化に関して、バリエーションに富んだ時系列骨格データを提供できる。そのため、本実施形態によれば、少量の動作データを用いて、多様な人物の動作の学習に適用可能な時系列骨格データを拡張できる。
【0098】
本実施形態の一態様において、情報分離装置は、体格データ分離部およびタイミングデータ分離部を有する。体格データ分離部は、時系列骨格データから体格データを分離する。タイミングデータ分離部は、体格データが分離された時系列骨格データからタイミングデータを分離する。体格データおよびタイミングデータが分離された時系列骨格データが、動作データである。拡張装置は、体格データ拡張部、タイミングデータ拡張部、動作データ拡張部、および統合部を有する。体格データ拡張部は、属性要素を変化させて、体格データを拡張する。タイミングデータ拡張部は、時間要素を変化させて、タイミングデータを拡張する。動作データ拡張部は、動作データの入力に応じて推定モデルから出力される擬似動作データを生成することによって、動作データを拡張する。統合部は、拡張された体格データ、タイミングデータ、および動作データを統合して、時系列骨格データを拡張する。本態様では、属性要素を変化させて体格データのバリエーションを増やし、時間要素を変化させてタイミングデータを増やす。また、本態様では、少量の動作データで訓練された推定モデルを用いて、擬似動作データを生成する。本態様によれば、少量の動作データを用いて、多様な人物の動作の学習に適用可能な時系列骨格データを拡張できる。
【0099】
(第3の実施形態)
次に、第3の実施形態に係る推定装置について図面を参照しながら説明する。本実施形態の推定装置は、第2の実施形態のデータ拡張システムによって拡張された時系列骨格データを用いて学習された推定モデルを用いる。実施形態の推定装置は、推定モデルを用いて、実際に計測された動作データに基づいて動作データ(推定データ)を生成する。本実施形態の推定装置は、第2の実施形態のデータ拡張システムによって拡張された動作データを用いて学習された推定モデルを用いるように構成されてもよい。本実施形態では、実際に被験者のターゲット動作に応じて計測された時系列骨格データ(実データ)を用いて、その被験者の動作に関する時系列骨格データ(推定データ)を推定する例をあげる。
【0100】
(構成)
図11は、推定装置30の構成の一例を示すブロック図である。推定装置30は、取得部31、推定部33、および出力部35を備える。
【0101】
取得部31(取得手段)は、時系列骨格データ310を取得する。時系列骨格データ310は、拡張対象データである。例えば、時系列骨格データ310は、被験者の動作に関して測定された実データに基づく時系列の骨格データである。骨格データは、モーションキャプチャなどによって計測された被験者の関節の3次元的な位置を含む。
【0102】
推定部33(推定手段)は、推定モデル330を含む。推定モデル330は、第2の実施形態のデータ拡張システムによって拡張された時系列骨格データを用いて学習されたモデルである。推定モデル330は、時系列骨格データ310(拡張対象データ)の入力に応じて、時系列骨格データ350(拡張データ)を出力する。推定部33は、推定モデル330に時系列骨格データ310を入力し、その推定モデル330から出力される時系列骨格データ350に応じて、被験者の動作を推定する。
【0103】
出力部35(出力手段)は、推定モデル330を用いて推定された時系列骨格データ350を出力する。時系列骨格データ350の出力先や用途は、特に限定されない。例えば、時系列骨格データ350は、被験者が視認できる画面に表示される。例えば、時系列骨格データ350は、被験者の運動状態を管理するトレーナーや、被験者の健康状態を管理するケアマネージャなどが利用する端末装置に出力される。
【0104】
図12は、推定装置30によって推定された時系列骨格データ350が、端末装置の画面300に表示された例である。画面300には、被験者の歩行に関して測定された時系列骨格データ310に続けて、時系列骨格データ350が表示される。図12の例では、骨格の一部に肉付けされた画像が表示される。例えば、ソフトウェアを用いて、骨格に肉付けを施したり、服や履物を装着させたりしてもよい。本実施形態によれば、被験者が実際に歩行を継続しなくても、被験者に関して実測された歩行状態に応じて、その被験者の将来の歩行状態を推定できる。
【0105】
以上のように、本実施形態の推定装置は、第2の実施形態のデータ拡張システムによって拡張された時系列骨格データを用いて学習された推定モデルを用いて、人物の動作を推定する。本実施形態の推定装置は、取得部、推定部、および出力部を備える。取得部は、人物の動作に応じて測定された実データ(時系列骨格データ)を取得する。推定部は、実データの入力に応じて推定モデルから出力される推定データ(時系列骨格データ)を用いて、人物の動作を推定する。出力部は、推定された推定データ(時系列骨格データ)を出力する。
【0106】
本実施形態の推定装置は、第2の実施形態のデータ拡張システムによって拡張された時系列骨格データを用いて学習された推定モデルを用いる。推定モデルは、少量の時系列骨格データを用いて、多様な人物の動作を推定できるように訓練されたモデルである。そのため、本実施形態の推定装置は、多様な人物に関して、動作をシミュレートできる。
【0107】
本実施形態では、被験者のターゲット動作に応じて実際に計測された時系列骨格データ(実データ)を用いて、その被験者の時系列骨格データ(推定データ)を推定する例をあげた。本実施形態の推定装置が推定する情報は、時系列骨格データに限定されない。一例として、被験者がどのような動作をしているのかを認識する動作認識がある。例えば、第3の実施形態のデータ拡張システムによって拡張された時系列骨格データを用いれば、物をつかむ、運ぶ、置くという3動作に関する少量の時系列骨格データを用いて、推定モデルを学習できる。本実施形態の推定装置は、その推定モデルを使うことによって、物をつかむ、運ぶ、置くという動作を認識できる。例えば、認識結果は、物流における業務可視化などに活用できる。
【0108】
(第4の実施形態)
次に、第4の実施形態に係る学習装置について図面を参照しながら説明する。本実施形態の学習装置は、第1の実施形態の学習装置を簡略化した構成である。
【0109】
図13は、本実施形態に係る学習装置40の構成の一例を示すブロック図である。学習装置40は、データ取得部41、生成部42、判別部43、管理部45、および学習処理部47を備える。
【0110】
データ取得部41は、複数の教師データを含むデータセット410を取得する。データ取得部41は、複数の教師データを複数のサブセットに分割する。生成部42は、生成モデル420を有する。生成モデル420は、擬似データを出力する。判別部43は、判別モデル430を有する。判別モデル430は、教師データおよび擬似データのいずれかのデータの入力に応じて、入力されたデータが教師データおよび擬似データのいずれであるかを判別する。管理部45は、予め設定されたハイパーパラメータに基づいて、判別モデルの更新に用いられる第1ハイパーパラメータを設定する。管理部45は、分散処理に使われるサーバごとのGPUの数に応じて、生成モデル420の更新に用いられる第2ハイパーパラメータを設定する。学習処理部47は、第1ハイパーパラメータを用いて判別モデルを更新し、第2ハイパーパラメータを用いて生成モデル420を更新する。
【0111】
本実施形態の学習装置は、判別モデルと生成モデルとを異なるハイパーパラメータを用いて更新する。本実施形態の学習装置は、分散処理に使われるサーバごとのGPUの数に応じて、第2ハイパーパラメータを設定する。本実施形態の学習装置は、第1ハイパーパラメータに関しては、GPUの数に応じて変更しない。すなわち、本実施形態の学習装置は、分散学習の規模に応じて、判別モデルの学習率は変更せずに、生成モデルの学習率を調整する。そのため、本実施形態によれば、バッチサイズがデータセットサイズを上回る場合であっても、生成モデル(推定モデル)を効率的に訓練できる。すなわち、本実施形態によれば、大規模な分散学習環境化において、GANの少数ショット学習を高速化できる。
【0112】
(ハードウェア)
次に、本開示の各実施形態に係る制御や処理を実行するハードウェア構成について、図面を参照しながら説明する。ここでは、そのようなハードウェア構成の一例として、図14の情報処理装置90(コンピュータ)をあげる。図14の情報処理装置90は、各実施形態の制御や処理を実行するための構成例であって、本開示の範囲を限定するものではない。
【0113】
図14のように、情報処理装置90は、プロセッサ91、主記憶装置92、補助記憶装置93、入出力インターフェース95、および通信インターフェース96を備える。図14においては、インターフェースをI/F(Interface)と略記する。プロセッサ91、主記憶装置92、補助記憶装置93、入出力インターフェース95、および通信インターフェース96は、バス98を介して、互いにデータ通信可能に接続される。また、プロセッサ91、主記憶装置92、補助記憶装置93、および入出力インターフェース95は、通信インターフェース96を介して、インターネットやイントラネットなどのネットワークに接続される。
【0114】
プロセッサ91は、補助記憶装置93等に格納されたプログラム(命令)を、主記憶装置92に展開する。例えば、プログラムは、各実施形態の制御や処理を実行するためのソフトウェアプログラムである。プロセッサ91は、主記憶装置92に展開されたプログラムを実行する。プロセッサ91は、プログラムを実行することによって、各実施形態に係る制御や処理を実行する。
【0115】
主記憶装置92は、プログラムが展開される領域を有する。主記憶装置92には、プロセッサ91によって、補助記憶装置93等に格納されたプログラムが展開される。主記憶装置92は、例えばDRAM(Dynamic Random Access Memory)などの揮発性メモリによって実現される。また、主記憶装置92として、MRAM(Magneto resistive Random Access Memory)などの不揮発性メモリが構成/追加されてもよい。
【0116】
補助記憶装置93は、プログラムなどの種々のデータを記憶する。補助記憶装置93は、ハードディスクやフラッシュメモリなどのローカルディスクによって実現される。なお、種々のデータを主記憶装置92に記憶させる構成とし、補助記憶装置93を省略することも可能である。
【0117】
入出力インターフェース95は、規格や仕様に基づいて、情報処理装置90と周辺機器とを接続するためのインターフェースである。通信インターフェース96は、規格や仕様に基づいて、インターネットやイントラネットなどのネットワークを通じて、外部のシステムや装置に接続するためのインターフェースである。外部機器と接続されるインターフェースとして、入出力インターフェース95と通信インターフェース96とが共通化されてもよい。
【0118】
情報処理装置90には、必要に応じて、キーボードやマウス、タッチパネルなどの入力機器が接続されてもよい。それらの入力機器は、情報や設定の入力に使用される。入力機器としてタッチパネルが用いられる場合、タッチパネルの機能を有する画面がインターフェースになる。プロセッサ91と入力機器とは、入出力インターフェース95を介して接続される。
【0119】
情報処理装置90には、情報を表示するための表示機器が備え付けられてもよい。表示機器が備え付けられる場合、情報処理装置90には、表示機器の表示を制御するための表示制御装置(図示しない)が備えられる。情報処理装置90と表示機器は、入出力インターフェース95を介して接続される。
【0120】
情報処理装置90には、ドライブ装置が備え付けられてもよい。ドライブ装置は、プロセッサ91と記録媒体(プログラム記録媒体)との間で、記録媒体に格納されたデータやプログラムの読み込みや、情報処理装置90の処理結果の記録媒体への書き込みを仲介する。情報処理装置90とドライブ装置は、入出力インターフェース95を介して接続される。
【0121】
以上が、本開示の各実施形態に係る制御や処理を可能とするためのハードウェア構成の一例である。図14のハードウェア構成は、各実施形態に係る制御や処理を実行するためのハードウェア構成の一例であって、本開示の範囲を限定するものではない。各実施形態に係る制御や処理をコンピュータに実行させるプログラムも、本開示の範囲に含まれる。
【0122】
各実施形態に係るプログラムを記録したプログラム記録媒体も、本開示の範囲に含まれる。記録媒体は、例えば、CD(Compact Disc)やDVD(Digital Versatile Disc)などの光学記録媒体で実現できる。記録媒体は、USB(Universal Serial Bus)メモリやSD(Secure Digital)カードなどの半導体記録媒体によって実現されてもよい。また、記録媒体は、フレキシブルディスクなどの磁気記録媒体、その他の記録媒体によって実現されてもよい。プロセッサが実行するプログラムが記録媒体に記録されている場合、その記録媒体はプログラム記録媒体に相当する。
【0123】
各実施形態の構成要素は、任意に組み合わせられてもよい。各実施形態の構成要素は、ソフトウェアによって実現されてもよい。各実施形態の構成要素は、回路によって実現されてもよい。
【0124】
以上、実施形態を参照して本発明を説明してきたが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【符号の説明】
【0125】
10 学習装置
11 データ取得部
12 生成部
13 判別部
15 管理部
17 学習処理部
20 データ拡張システム
21 骨格データ取得部
22 体格データ分離部
23 タイミングデータ分離部
25 体格データ拡張部
26 タイミングデータ拡張部
27 動作データ拡張部
28 統合部
29 出力部
220 情報分離装置
250 拡張装置
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14