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

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

▶ 株式会社ソニー・コンピュータエンタテインメントの特許一覧

特許7046267状態制御装置、学習装置、状態制御方法、学習方法及びプログラム
<>
  • 特許-状態制御装置、学習装置、状態制御方法、学習方法及びプログラム 図1
  • 特許-状態制御装置、学習装置、状態制御方法、学習方法及びプログラム 図2
  • 特許-状態制御装置、学習装置、状態制御方法、学習方法及びプログラム 図3
  • 特許-状態制御装置、学習装置、状態制御方法、学習方法及びプログラム 図4
  • 特許-状態制御装置、学習装置、状態制御方法、学習方法及びプログラム 図5
  • 特許-状態制御装置、学習装置、状態制御方法、学習方法及びプログラム 図6
  • 特許-状態制御装置、学習装置、状態制御方法、学習方法及びプログラム 図7
  • 特許-状態制御装置、学習装置、状態制御方法、学習方法及びプログラム 図8
  • 特許-状態制御装置、学習装置、状態制御方法、学習方法及びプログラム 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-03-24
(45)【発行日】2022-04-01
(54)【発明の名称】状態制御装置、学習装置、状態制御方法、学習方法及びプログラム
(51)【国際特許分類】
   G06N 3/08 20060101AFI20220325BHJP
【FI】
G06N3/08
【請求項の数】 14
(21)【出願番号】P 2021511689
(86)(22)【出願日】2019-03-29
(86)【国際出願番号】 JP2019014153
(87)【国際公開番号】W WO2020202308
(87)【国際公開日】2020-10-08
【審査請求日】2021-03-08
(73)【特許権者】
【識別番号】310021766
【氏名又は名称】株式会社ソニー・インタラクティブエンタテインメント
(74)【代理人】
【識別番号】110000154
【氏名又は名称】特許業務法人はるか国際特許事務所
(72)【発明者】
【氏名】大橋 良徳
【審査官】石川 亮
(56)【参考文献】
【文献】特開2018-181273(JP,A)
【文献】LYU, Qi et al.,Revisit Long Short-Term Memory: An Optimization Perspective,NIPS 2014 Workshop on Deep Learning and Representation Learning [オンライン],2014年,pp.1-9,[2019年6月17日検索], インターネット<URL : http://www.dlworkshop.org/24.pdf>
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/08
(57)【特許請求の範囲】
【請求項1】
入力データを取得する入力データ取得部と、
前記入力データが入力される、状態の関連付けが可能な所与の学習済のニューラルネットワークの出力である出力データを用いた処理を実行する処理実行部と、を含み、
前記入力データ取得部による前記入力データの取得、及び、前記処理実行部による処理の実行を含むループ処理は、繰り返し実行され、
前記入力データ及び前記出力データの少なくとも一方に基づいて、前記ニューラルネットワークに関連付けられている前記状態の更新を制限するか否かを制御する状態制御部、をさらに含む、
ことを特徴とする状態制御装置。
【請求項2】
前記状態制御部は、前記ニューラルネットワークに前記入力データを入力するか否かを制御する、
ことを特徴とする請求項1に記載の状態制御装置。
【請求項3】
前記処理実行部は、前記ニューラルネットワークに前記入力データを入力するよう制御される場合は、当該入力データを前記ニューラルネットワークに入力した際の出力である前記出力データを用いた処理を実行し、
前記処理実行部は、前記ニューラルネットワークに前記入力データを入力しないよう制御される場合は、前記ニューラルネットワークの直近の出力である前記出力データを用いた処理を実行する、
ことを特徴とする請求項2に記載の状態制御装置。
【請求項4】
前記状態制御部は、前記ニューラルネットワークへの前記入力データの入力に応じて更新された前記状態を、更新前の状態に戻すか否かを制御する、
ことを特徴とする請求項1に記載の状態制御装置。
【請求項5】
前記ニューラルネットワークへの入力を示す学習入力データと、当該入力に応じた前記ニューラルネットワークの出力と当該入力の直前の入力に応じた前記ニューラルネットワークの出力との差を示す教師データと、を含む学習データを用いた学習が実行された学習済の機械学習モデルである入力判定モデルをさらに含み、
前記状態制御部は、前記入力データ取得部により取得される前記入力データを前記入力判定モデルに入力した際の出力に基づいて、前記ニューラルネットワークに関連付けられている前記状態の更新を制限するか否かを制御する、
ことを特徴とする請求項1から4のいずれか一項に記載の状態制御装置。
【請求項6】
前記状態制御部は、前記入力データの一部又は全部についての、当該入力データの直前に取得された前記入力データからの変化に基づいて、前記ニューラルネットワークに関連付けられている前記状態の更新を制限するか否かを制御する、
ことを特徴とする請求項1から4のいずれか一項に記載の状態制御装置。
【請求項7】
前記状態制御部は、前記入力データに含まれる要素間の相対的な関係についての、当該入力データの直前に取得された前記入力データからの変化に基づいて、前記ニューラルネットワークに関連付けられている前記状態の更新を制限するか否かを制御する、
ことを特徴とする請求項1から4のいずれか一項に記載の状態制御装置。
【請求項8】
前記状態制御部は、前記入力データの入力に応じた前記ニューラルネットワークの出力と当該入力データの次に取得される前記入力データとの比較結果に基づいて、前記ニューラルネットワークに関連付けられている前記状態の更新を制限するか否かを制御する、
ことを特徴とする請求項1から4のいずれか一項に記載の状態制御装置。
【請求項9】
前記ニューラルネットワークは、ロングショートタームメモリ(LSTM)モデルである、
ことを特徴とする請求項1から8のいずれか一項に記載の状態制御装置。
【請求項10】
状態の関連付けが可能な所与の学習済のニューラルネットワークへの入力を示す学習入力データと、当該入力に応じた前記ニューラルネットワークの出力と当該入力の直前の入力に応じた前記ニューラルネットワークの出力との差を示す教師データと、を含む学習データを取得する学習データ取得部と、
前記ニューラルネットワークに関連付けられている前記状態の更新を制限するか否かの制御に用いられる機械学習モデルである入力判定モデルに前記学習データに含まれる前記学習入力データを入力した際の出力、及び、当該学習データに含まれる前記教師データを用いて、当該入力判定モデルの学習を実行する学習部と、
を含むことを特徴とする学習装置。
【請求項11】
入力データを取得するステップと、
前記入力データが入力される、状態の関連付けが可能な所与の学習済のニューラルネットワークの出力である出力データを用いた処理を実行するステップと、を含み、
前記入力データの取得、及び、前記処理の実行を含むループ処理は、繰り返し実行され、
前記入力データ及び前記出力データの少なくとも一方に基づいて、前記ニューラルネットワークに関連付けられている前記状態の更新を制限するか否かを制御するステップ、をさらに含む、
ことを特徴とする状態制御方法。
【請求項12】
状態の関連付けが可能な所与の学習済のニューラルネットワークへの入力を示す学習入力データと、当該入力に応じた前記ニューラルネットワークの出力と当該入力の直前の入力に応じた前記ニューラルネットワークの出力との差を示す教師データと、を含む学習データを取得するステップと、
前記ニューラルネットワークに関連付けられている前記状態の更新を制限するか否かの制御に用いられる機械学習モデルである入力判定モデルに前記学習データに含まれる前記学習入力データを入力した際の出力、及び、当該学習データに含まれる前記教師データを用いて、当該入力判定モデルの学習を実行するステップと、
を含むことを特徴とする学習方法。
【請求項13】
入力データを取得する手順、
前記入力データが入力される、状態の関連付けが可能な所与の学習済のニューラルネットワークの出力である出力データを用いた処理を実行する手順、をコンピュータに実行させ、
前記入力データの取得、及び、前記処理の実行を含むループ処理は、繰り返し実行され、
前記入力データ及び前記出力データの少なくとも一方に基づいて、前記ニューラルネットワークに関連付けられている前記状態の更新を制限するか否かを制御する手順、をさらに前記コンピュータに実行させる、
ことを特徴とするプログラム。
【請求項14】
状態の関連付けが可能な所与の学習済のニューラルネットワークへの入力を示す学習入力データと、当該入力に応じた前記ニューラルネットワークの出力と当該入力の直前の入力に応じた前記ニューラルネットワークの出力との差を示す教師データと、を含む学習データを取得する手順、
前記ニューラルネットワークに関連付けられている前記状態の更新を制限するか否かの制御に用いられる機械学習モデルである入力判定モデルに前記学習データに含まれる前記学習入力データを入力した際の出力、及び、当該学習データに含まれる前記教師データを用いて、当該入力判定モデルの学習を実行する手順、
をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、状態制御装置、学習装置、状態制御方法、学習方法及びプログラムに関する。
【背景技術】
【0002】
時系列のデータ等の一連のデータを処理するための機械学習モデルである再帰型ニューラルネットワーク(RNN)モデルの中間層のユニットをロングショートタームメモリ(LSTM)ブロックに置き換えたLSTMモデルが知られている。LSTMモデルでは、長期的な状態を状態変数の値として保存することが可能である。
【発明の概要】
【発明が解決しようとする課題】
【0003】
しかし、LSTMモデル等の、状態の関連付けが可能なニューラルネットワークであっても、当該状態が無限に保存されるわけではない。そのため、高頻度な入力が行われる場合は充分な期間にわたって状態が保存されないことがある。例えば、1秒あたり120回の入力が行われるLSTMモデルでは、状態変数の値が意図せず数秒程度でリセットされてしまうことがある。
【0004】
本発明は上記課題に鑑みてなされたものであって、その目的の1つは、ニューラルネットワークに関連付けられている状態が保存される期間を長期化できる状態制御装置、学習装置、状態制御方法、学習方法及びプログラムを提供することにある。
【課題を解決するための手段】
【0005】
上記課題を解決するために、本発明に係る状態制御装置は、入力データを取得する入力データ取得部と、前記入力データが入力される、状態の関連付けが可能な所与の学習済のニューラルネットワークの出力である出力データを用いた処理を実行する処理実行部と、を含み、前記入力データ取得部による前記入力データの取得、及び、前記処理実行部による処理の実行を含むループ処理は、繰り返し実行され、前記入力データ及び前記出力データの少なくとも一方に基づいて、前記ニューラルネットワークに関連付けられている前記状態の更新を制限するか否かを制御する状態制御部、をさらに含む。
【0006】
本発明の一態様では、前記状態制御部は、前記ニューラルネットワークに前記入力データを入力するか否かを制御する。
【0007】
この態様では、前記処理実行部は、前記ニューラルネットワークに前記入力データを入力するよう制御される場合は、当該入力データを前記ニューラルネットワークに入力した際の出力である前記出力データを用いた処理を実行し、前記処理実行部は、前記ニューラルネットワークに前記入力データを入力しないよう制御される場合は、前記ニューラルネットワークの直近の出力である前記出力データを用いた処理を実行してもよい。
【0008】
また、本発明の一態様では、前記状態制御部は、前記ニューラルネットワークへの前記入力データの入力に応じて更新された前記状態を、更新前の状態に戻すか否かを制御する。
【0009】
また、本発明の一態様では、前記ニューラルネットワークへの入力を示す学習入力データと、当該入力に応じた前記ニューラルネットワークの出力と当該入力の直前の入力に応じた前記ニューラルネットワークの出力との差を示す教師データと、を含む学習データを用いた学習が実行された学習済の機械学習モデルである入力判定モデルをさらに含み、前記状態制御部は、前記入力データ取得部により取得される前記入力データを前記入力判定モデルに入力した際の出力に基づいて、前記ニューラルネットワークに関連付けられている前記状態の更新を制限するか否かを制御する。
【0010】
あるいは、前記状態制御部は、前記入力データの一部又は全部についての、当該入力データの直前に取得された前記入力データからの変化に基づいて、前記ニューラルネットワークに関連付けられている前記状態の更新を制限するか否かを制御する。
【0011】
あるいは、前記状態制御部は、前記入力データに含まれる要素間の相対的な関係についての、当該入力データの直前に取得された前記入力データからの変化に基づいて、前記ニューラルネットワークに関連付けられている前記状態の更新を制限するか否かを制御する。
【0012】
あるいは、前記状態制御部は、前記入力データの入力に応じた前記ニューラルネットワークの出力と当該入力データの次に取得される前記入力データとの比較結果に基づいて、前記ニューラルネットワークに関連付けられている前記状態の更新を制限するか否かを制御する。
【0013】
また、本発明の一態様では、前記ニューラルネットワークは、ロングショートタームメモリ(LSTM)モデルである。
【0014】
また、本発明に係る学習装置は、状態の関連付けが可能な所与の学習済のニューラルネットワークへの入力を示す学習入力データと、当該入力に応じた前記ニューラルネットワークの出力と当該入力の直前の入力に応じた前記ニューラルネットワークの出力との差を示す教師データと、を含む学習データを取得する学習データ取得部と、前記ニューラルネットワークに関連付けられている前記状態の更新を制限するか否かの制御に用いられる機械学習モデルである入力判定モデルに前記学習データに含まれる前記学習入力データを入力した際の出力、及び、当該学習データに含まれる前記教師データを用いて、当該入力判定モデルの学習を実行する学習部と、を含む。
【0015】
また、本発明に係る状態制御方法は、入力データを取得するステップと、前記入力データが入力される、状態の関連付けが可能な所与の学習済のニューラルネットワークの出力である出力データを用いた処理を実行するステップと、を含み、前記入力データの取得、及び、前記処理の実行を含むループ処理は、繰り返し実行され、前記入力データ及び前記出力データの少なくとも一方に基づいて、前記ニューラルネットワークに関連付けられている前記状態の更新を制限するか否かを制御するステップ、をさらに含む。
【0016】
また、本発明に係る学習方法は、状態の関連付けが可能な所与の学習済のニューラルネットワークへの入力を示す学習入力データと、当該入力に応じた前記ニューラルネットワークの出力と当該入力の直前の入力に応じた前記ニューラルネットワークの出力との差を示す教師データと、を含む学習データを取得するステップと、前記ニューラルネットワークに関連付けられている前記状態の更新を制限するか否かの制御に用いられる機械学習モデルである入力判定モデルに前記学習データに含まれる前記学習入力データを入力した際の出力、及び、当該学習データに含まれる前記教師データを用いて、当該入力判定モデルの学習を実行するステップと、を含む。
【0017】
また、本発明に係るプログラムは、入力データを取得する手順、前記入力データが入力される、状態の関連付けが可能な所与の学習済のニューラルネットワークの出力である出力データを用いた処理を実行する手順、をコンピュータに実行させ、前記入力データの取得、及び、前記処理の実行を含むループ処理は、繰り返し実行され、前記入力データ及び前記出力データの少なくとも一方に基づいて、前記ニューラルネットワークに関連付けられている前記状態の更新を制限するか否かを制御する手順、をさらに前記コンピュータに実行させる。
【0018】
また、本発明に係る別のプログラムは、状態の関連付けが可能な所与の学習済のニューラルネットワークへの入力を示す学習入力データと、当該入力に応じた前記ニューラルネットワークの出力と当該入力の直前の入力に応じた前記ニューラルネットワークの出力との差を示す教師データと、を含む学習データを取得する手順、前記ニューラルネットワークに関連付けられている前記状態の更新を制限するか否かの制御に用いられる機械学習モデルである入力判定モデルに前記学習データに含まれる前記学習入力データを入力した際の出力、及び、当該学習データに含まれる前記教師データを用いて、当該入力判定モデルの学習を実行する手順、をコンピュータに実行させる。
【図面の簡単な説明】
【0019】
図1】本発明の一実施形態に係る情報処理装置の一例を示す構成図である。
図2】LSTMモデルの一例を示す図である。
図3】本発明の一実施形態に係る情報処理装置で実装される機能の一例を示す機能ブロック図である。
図4】本発明の一実施形態に係る情報処理装置で行われる処理の流れの一例を示すフロー図である。
図5】本発明の一実施形態に係る情報処理装置で実装される機能の一例を示す機能ブロック図である。
図6】入力判定モデルの学習の一例を模式的に示す図である。
図7】学習データセットの一例を示す図である。
図8】本発明の一実施形態に係る情報処理装置で実装される機能の一例を示す機能ブロック図である。
図9】本発明の一実施形態に係る情報処理装置で行われる処理の流れの一例を示すフロー図である。
【発明を実施するための形態】
【0020】
以下、本発明の一実施形態について図面に基づき詳細に説明する。
【0021】
図1は、本発明の一実施形態に係る情報処理装置10の構成図である。本実施形態に係る情報処理装置10は、例えば、ゲームコンソールやパーソナルコンピュータなどのコンピュータである。図1に示すように、本実施形態に係る情報処理装置10は、例えば、プロセッサ12、記憶部14、操作部16、表示部18を含んでいる。
【0022】
プロセッサ12は、例えば情報処理装置10にインストールされるプログラムに従って動作するCPU等のプログラム制御デバイスである。
【0023】
記憶部14は、ROMやRAM等の記憶素子やハードディスクドライブなどである。記憶部14には、プロセッサ12によって実行されるプログラムなどが記憶される。
【0024】
操作部16は、キーボード、マウス、ゲームコンソールのコントローラ等のユーザインタフェースであって、ユーザの操作入力を受け付けて、その内容を示す信号をプロセッサ12に出力する。
【0025】
表示部18は、液晶ディスプレイ等の表示デバイスであって、プロセッサ12の指示に従って各種の画像を表示する。
【0026】
なお、情報処理装置10は、ネットワークボードなどの通信インタフェース、DVD-ROMやBlu-ray(登録商標)ディスクなどの光ディスクを読み取る光ディスクドライブ、USB(Universal Serial Bus)ポートなどを含んでいてもよい。
【0027】
本実施形態に係る情報処理装置10には、状態の関連付けが可能な所与の学習済のニューラルネットワークが実装されている。以下の説明では、情報処理装置10に、状態の関連付けが可能な所与の学習済のニューラルネットワークの一例として、図2に例示する、所与の学習済のロングショートタームメモリ(LSTM)モデル20が実装されていることとする。LSTMモデル20は、時系列のデータ等の一連のデータを処理するための機械学習モデルである。
【0028】
図2に示すLSTMモデル20には、入力層22と、ロングショートターム(LSTM)ブロック24と、出力ブロック26と、が含まれる。
【0029】
入力層22は、LSTMモデル20に対する入力を受け付ける。以後、学習済のLSTMモデル20に入力されるデータをターゲット入力データと呼ぶこととする。本実施形態では、それぞれが順序に対応付けられている一連のターゲット入力データが、対応付けられている順序に従って順番に、入力層22に入力される。
【0030】
ターゲット入力データが入力層22に入力されると、当該ターゲット入力データが直前の入力に応じたLSTMブロック24の出力と結合されたデータ(以後、結合入力データと呼ぶ。)が、LSTMブロック24に入力される。
【0031】
LSTMブロック24は、ターゲット入力データの時系列推移などといったターゲット入力データの推移の特徴を示す、LSTMの状態変数を出力する。
【0032】
そして、LSTMブロック24からの出力である状態変数が出力ブロック26に入力される。そして、出力ブロック26は、当該入力に応じた出力データを出力する。
【0033】
出力ブロック26には、例えば、2つの中間層と出力層とが含まれる。2つの中間層は、それぞれ例えば正規化線形関数(ReLU)を活性化関数とする全結合層である。出力層は、例えば線形関数を活性化関数とする層である。
【0034】
本実施形態では、LSTMブロック24からの出力である状態変数が1つ目の中間層に入力される。そして、1つ目の中間層の出力が2つ目の中間層に入力され、2つ目の中間層の出力が出力層に入力される。そして、出力層が、当該入力に応じた出力データを出力する。
【0035】
LSTMモデル20では、長期的な状態を状態変数の値として保存することが可能である。しかし、LSTMモデル20等の状態の関連付けが可能な所与の学習済のニューラルネットワークであっても状態が無限に保存されるわけではない。そのため、高頻度な入力が行われる場合は充分な期間にわたって状態が保存されないことがある。例えば、1秒あたり120回の入力が行われるLSTMモデル20では、状態変数の値が意図せず数秒程度でリセットされてしまうことがある。
【0036】
そこで本実施形態では以下のようにして、状態の関連付けが可能なニューラルネットワークにおいて状態が保存される期間が長期化できるようにした。
【0037】
以下、LSTMモデル20における状態の保存期間の長期化を中心に、本実施形態に係る情報処理装置10の機能、及び、情報処理装置10で実行される処理についてさらに説明する。
【0038】
図3は、本実施形態に係る情報処理装置10で実装される機能の一例を示す機能ブロック図である。なお、本実施形態に係る情報処理装置10で、図3に示す機能のすべてが実装される必要はなく、また、図3に示す機能以外の機能が実装されていても構わない。
【0039】
図3に示すように、本実施形態に係る情報処理装置10には、機能的には例えば、LSTMモデル20、ターゲット入力データ取得部30、状態制御部32、入力部34、出力データ取得部36、出力データ記憶部38、処理実行部40、が含まれる。LSTMモデル20は、プロセッサ12、及び、記憶部14を主として実装される。ターゲット入力データ取得部30、状態制御部32、入力部34、出力データ取得部36、処理実行部40は、プロセッサ12を主として実装される。出力データ記憶部38は、記憶部14を主として実装される。
【0040】
以上の機能は、コンピュータである情報処理装置10にインストールされた、以上の機能に対応する指令を含むプログラムをプロセッサ12で実行することにより実装されてもよい。このプログラムは、例えば、光ディスク、磁気ディスク、磁気テープ、光磁気ディスク、フラッシュメモリ等のコンピュータ読み取り可能な情報記憶媒体を介して、あるいは、インターネットなどを介してプロセッサ12に供給されてもよい。
【0041】
ターゲット入力データ取得部30は、本実施形態では例えば、上述のターゲット入力データを取得する。
【0042】
状態制御部32は、本実施形態では例えば、ターゲット入力データ及び出力データの少なくとも一方に基づいて、所与の学習済のニューラルネットワークに関連付けられている状態の更新を制限するか否かを制御する。ここで状態制御部32が、ターゲット入力データ取得部30により取得されるターゲット入力データが所定の条件を満足するか否かに基づいて、所与の学習済のLSTMモデル20に当該ターゲット入力データを入力するか否かを制御してもよい。
【0043】
入力部34は、本実施形態では例えば、状態制御部32により学習済のLSTMモデル20等のニューラルネットワークにターゲット入力データを入力するよう制御される場合に、当該ターゲット入力データをLSTMモデル20の入力層22に入力する。
【0044】
LSTMモデル20は、上述したように、本実施形態では例えば、状態の関連付けが可能な所与の学習済のニューラルネットワークの一例である、所与の学習済のLSTMモデル20である。LSTMモデル20は、上述のように状態変数を保持している。そして、LSTMモデル20は、入力層22に入力されるターゲット入力データと保持している状態変数とが結合された結合入力データを生成する。そして、LSTMモデル20は、生成される結合入力データをLSTMブロック24に入力する。そして、LSTMモデル20は、当該入力に応じてLSTMブロック24から出力される状態変数を出力ブロック26に入力する。そしてLSTMモデル20の出力ブロック26は、入力された状態変数に応じた出力データを出力する。
【0045】
また、LSTMモデル20は、保持している状態変数を、LSTMブロック24から出力された状態変数に更新する。このように本実施形態ではLSTMモデル20が保持している状態変数の値は、入力層22への入力に応じて更新される。
【0046】
出力データ取得部36は、本実施形態では例えば、LSTMモデル20の出力である出力データを取得する。
【0047】
ここで、状態制御部32によりLSTMモデル20にターゲット入力データを入力するよう制御される場合は、出力データ取得部36は、当該ターゲット入力データをLSTMモデル20に入力した際の出力である出力データを取得する。この場合、出力データ取得部36は、出力データ記憶部38に記憶されている出力データを、取得される出力データに更新する。
【0048】
一方で、状態制御部32によりLSTMモデル20にターゲット入力データを入力しないよう制御される場合は、出力データ取得部36は、LSTMモデル20の直近の出力である出力データを取得する。ここで、出力データ取得部36は、例えば、出力データ記憶部38に記憶されている出力データを取得してもよい。
【0049】
出力データ記憶部38は、出力データ取得部36により取得される出力データを記憶する。ここで出力データ記憶部38は、出力データ取得部36により直近に取得された出力データを記憶してもよい。
【0050】
処理実行部40は、本実施形態では例えば、LSTMモデル20の出力である出力データを用いた処理を実行する。
【0051】
処理実行部40は、出力データ取得部36により取得される出力データを用いた処理を実行してもよい。例えば、処理実行部40は、状態制御部32によりLSTMモデル20にターゲット入力データを入力するよう制御される場合は、当該ターゲット入力データをLSTMモデル20に入力した際の出力である出力データを用いた処理を実行してもよい。そして、処理実行部40は、状態制御部32によりLSTMモデル20にターゲット入力データを入力しないよう制御される場合は、LSTMモデル20の直近の出力である出力データを用いた処理を実行してもよい。ここで例えば、出力データ記憶部38に記憶されている出力データを用いた処理が実行されてもよい。
【0052】
本実施形態では、ターゲット入力データ取得部30によるターゲット入力データの取得、状態制御部32による制御、及び、処理実行部40による処理の実行を含むループ処理は、繰り返し実行される。
【0053】
ここで、本実施形態に係る情報処理装置10で行われる、LSTMモデル20の状態制御に関する処理の流れの一例を、図4に例示するフロー図を参照しながら説明する。
【0054】
図4に示すS101~S107に示す処理は、所定の時間間隔で(例えば1/120秒間隔で)繰り返し実行される。また、図4に示すS101~S107に示す処理は、それぞれが順序に対応付けられている一連のターゲット入力データのそれぞれを対象として、対応付けられている順序に従って順番に実行される。
【0055】
まず、ターゲット入力データ取得部30が、本ループにおける処理対象であるターゲット入力データを取得する(S101)。ここでは、対応付けられている順序が直前のループにおいてS101~S107に示す処理が実行されたターゲット入力データの次の順序であるターゲット入力データが取得される。
【0056】
そして、状態制御部32が、S101に示す処理で取得されたターゲット入力データが所定の入力抑制条件を満足するか否かを判定する(S102)。
【0057】
S102に示す処理で入力抑制条件を満足すると判定された場合は(S102:Y)、出力データ取得部36が、出力データ記憶部38に記憶されている出力データを取得する(S103)。
【0058】
S102に示す処理で入力抑制条件を満足しないと判定された場合は(S102:N)、入力部34が、S101に示す処理で取得されたターゲット入力データをLSTMモデル20に入力する(S104)。この場合、上述のように当該ターゲット入力データとLSTMモデル20が保持しているLSTMの状態変数とを結合した結合入力データがLSTMブロック24に入力される。また、LSTMモデル20は、保持している状態変数を当該入力に応じてLSTMブロック24が出力する状態変数に更新する。
【0059】
そして、出力データ取得部36が、S104に示す処理での入力に応じてLSTMモデル20が出力する出力データを取得する(S105)。
【0060】
そして、出力データ取得部36が、出力データ記憶部38に記憶されている出力データを、S105に示す処理で取得された出力データに更新する(S106)。
【0061】
そして、処理実行部40が、S103又はS105に示す処理で出力データ取得部36により取得された出力データを用いた処理を実行して(S107)、S101に示す処理に戻る。
【0062】
本実施形態では上述のように、ターゲット入力データ及び出力データの少なくとも一方に基づいて、ニューラルネットワークに関連付けられている状態の更新を制限するか否かが制御される。例えば、ターゲット入力データに基づいて、LSTMモデル20に当該ターゲット入力データを入力するか否かが制御される。そして、LSTMモデル20にターゲット入力データが入力されない場合は、LSTMの状態変数は更新されない。このようにして本実施形態によれば、LSTMモデル20等の状態の関連付けが可能な所与の学習済のニューラルネットワークにおいて状態が保存される期間が長期化できることとなる。
【0063】
また、本実施形態では、LSTMモデル20にターゲット入力データが入力されない状況でも、LSTMモデル20の直近の出力である出力データを用いた処理が実行される。そのため、LSTMモデル20等のニューラルネットワークにターゲット入力データが入力されない状況を考慮した、出力データを用いた後続の処理の実装の改変の手間があまりかからない。
【0064】
また本実施形態において、図5に示すように、本実施形態に係る情報処理装置10に、図3に示す要素に加え、入力判定モデル50が含まれるようにしてもよい。図5に示されている入力判定モデル50以外の要素は、図3に示すものと同様であるので説明を省略する。
【0065】
入力判定モデル50は、LSTMモデル20に関連付けられている状態の更新を制限するか否かの制御に用いられる、LSTMモデル20とは異なる、学習済の機械学習モデルである。ここでは、入力判定モデル50は、LSTMモデル20にターゲット入力データを入力するか否かの制御に用いられる、LSTMモデル20とは異なる、学習済の機械学習モデルである。状態制御部32は、ターゲット入力データ取得部30により取得されるターゲット入力データを入力判定モデル50に入力した際の出力に基づいて、LSTMモデル20に当該ターゲット入力データを入力するか否かを制御してもよい。
【0066】
入力判定モデル50は、ターゲット入力データの入力に応じて判定結果データDstopを出力する。ここで例えば、判定結果データDstopは、「0」又は「1」のいずれかの値をとるデータであってもよい。
【0067】
本実施形態では例えば、ターゲット入力データの入力に応じて値が「1」である判定結果データDstopが入力判定モデル50から出力された場合は、当該ターゲットデータはLSTMモデル20に入力されないよう制御されることとする。また、ターゲット入力データの入力に応じて値が「0」である判定結果データDstopが入力判定モデル50から出力された場合は、当該ターゲットデータはLSTMモデル20に入力されるよう制御されることとする。
【0068】
図6は、入力判定モデル50の学習の一例を模式的に示す図である。入力判定モデル50では、例えば複数の学習データセットを用いた学習が実行される。
【0069】
図7は、学習データセットの一例を示す図である。学習データセットには、複数の学習データが含まれる。学習データには、例えば、入力判定モデル50に入力される学習入力データDinと、当該入力に応じた入力判定モデル50の出力と比較される教師データである判定結果教師データTstopと、が含まれる。学習データセットに含まれる複数の学習入力データは、時系列のデータなどといった順序に対応付けられている一連のデータ(Din(1)~Din(n))である。そして、Din(1)~Din(n)は、判定結果教師データTstop(1)~Tstop(n)にそれぞれ対応付けられる。そのため判定結果教師データTstopも順序に対応付けられることとなる。
【0070】
判定結果教師データTstopは、本実施形態では例えば、所与の学習済の機械学習モデルであるLSTMモデル20を用いて生成される教師データである。例えば、学習入力データDin(1)~Din(n)のそれぞれが対応付けられている順序に従ってLSTMモデル20に順番に入力された際の、それぞれの入力に対応する出力Dout(1)~Dout(n)が特定される。例えば、Din(1)の入力に応じたLSTMモデル20の出力Dout(1)、Din(2)の入力に応じたLSTMモデル20の出力Dout(2)、・・・、Din(n)の入力に応じたLSTMモデル20の出力Dout(n)が特定される。
【0071】
そしてLSTMモデル20の出力Doutと当該出力Doutの直前の出力との差の絶対値が所定の閾値よりも小さい場合は、当該出力Doutに対応するTstopの値が「1」と決定される。LSTMモデル20の出力Doutと当該出力Doutの直前の出力との差の絶対値が所定の閾値よりも小さくない場合は、当該出力Doutに対応するTstopの値が「0」と決定される。
【0072】
例えば、Dout(2)-Dout(1)の絶対値が所定の閾値よりも小さい場合はTstop(2)の値が「1」と決定され、閾値よりも小さくない場合はTstop(2)の値が「0」と決定される。Dout(n)-Dout(n-1)の絶対値が所定の閾値よりも小さい場合はTstop(n)の値が「1」と決定され、閾値よりも小さくない場合はTstop(n)の値が「0」と決定される。なお、Tstop(1)の値は所定値(例えば、「0」)と決定されてもよい。
【0073】
例えば以上のようにして判定結果教師データTstop(1)~Tstop(n)の値は決定される。
【0074】
そして、学習入力データDin(1)~Din(n)と、判定結果教師データTstop(1)~Tstop(n)とを含む、学習データセットが生成される。
【0075】
そしてこのようにして生成される学習データセットを用いて入力判定モデル50の学習が実行される。例えば、学習入力データDin(1)の入力に応じて入力判定モデル50が出力する判定結果データDstop(1)の値が特定されてもよい。そして、判定結果データDstop(1)の値と判定結果教師データTstop(1)の値との差に基づいて、誤差逆伝搬法(バックプロパゲーション)により入力判定モデル50のパラメータが更新されてもよい。次に、Din(2)の入力に応じて入力判定モデル50が出力するDstop(2)の値とTstop(2)の値との差に基づいて、入力判定モデル50のパラメータが更新されてもよい。以後、同様な処理が実行され、最後に、Din(n)の入力に応じた出力であるDstop(n)の値とTstop(n)の値との差に基づいて、入力判定モデル50のパラメータが更新されてもよい。
【0076】
そして本実施形態では例えば、複数の学習データセットのそれぞれについて、上述の学習が実行されることで入力判定モデル50の学習が実行されてもよい。なお入力判定モデル50の学習に用いられる学習データセットに含まれる学習データの数は同じであってもよいし同じでなくてもよい。
【0077】
なお以上の例では、教師あり学習により入力判定モデル50の学習が実行されたが、教師なし学習あるいは強化学習などの他の手法により入力判定モデル50の学習が実行されてもよい。
【0078】
図8は、情報処理装置10で実装される入力判定モデル50の学習に関係する機能の一例を示す機能ブロック図である。ここでは情報処理装置10において入力判定モデル50の学習が実行されることとするが、情報処理装置10とは異なる装置で入力判定モデル50の学習が実行されてもよい。また、本実施形態に係る情報処理装置10で、図8に示す機能のすべてが実装される必要はなく、また、図8に示す機能以外の機能が実装されていても構わない。
【0079】
図8に示すように、本実施形態に係る情報処理装置10には、機能的には例えば、入力判定モデル50、学習データ記憶部60、学習データ取得部62、学習入力部64、判定結果データ取得部66、学習部68、が含まれる。入力判定モデル50は、プロセッサ12及び記憶部14を主として実装される。学習データ記憶部60は、記憶部14を主として実装される。学習データ取得部62、学習入力部64、判定結果データ取得部66、学習部68は、プロセッサ12を主として実装される。
【0080】
以上の機能は、コンピュータである情報処理装置10にインストールされた、以上の機能に対応する指令を含むプログラムをプロセッサ12で実行することにより実装されてもよい。このプログラムは、例えば、光ディスク、磁気ディスク、磁気テープ、光磁気ディスク、フラッシュメモリ等のコンピュータ読み取り可能な情報記憶媒体を介して、あるいは、インターネットなどを介してプロセッサ12に供給されてもよい。
【0081】
学習データ記憶部60は、本実施形態では例えば、複数の学習データセットを記憶する。学習データセットには、複数の学習データが含まれている。学習データには、例えば、学習入力データDinと、判定結果教師データTstopと、が含まれる。ここで上述のようにしてLSTMモデル20を用いて予め生成された学習データセットが学習データ記憶部60に記憶されていてもよい。
【0082】
学習データ取得部62は、本実施形態では例えば、学習データ記憶部60に記憶されている学習データを取得する。
【0083】
学習入力部64は、本実施形態では例えば、学習データ取得部62により取得される学習データに含まれる学習入力データDinを、入力判定モデル50に入力する。
【0084】
入力判定モデル50は、本実施形態では例えば、学習入力データDinの入力に応じて判定結果データDstopを出力する機械学習モデルである。
【0085】
判定結果データ取得部66は、本実施形態では例えば、入力判定モデル50が出力する判定結果データDstopを取得する。
【0086】
学習部68は、本実施形態では例えば、学習入力データDinを入力判定モデル50に入力した際の出力を用いて、入力判定モデル50の学習を実行する。ここでは例えば、学習データに含まれる学習入力データDinを入力判定モデル50に入力した際の出力である判定結果データDstopの値と、当該学習データに含まれる判定結果教師データTstopの値と、の差が特定されてもよい。そして特定される差に基づいて入力判定モデル50のパラメータの値が更新される教師あり学習が実行されてもよい。
【0087】
ここで、本実施形態に係る情報処理装置10で行われる、入力判定モデル50の学習に関する処理の流れの一例を、図9に例示するフロー図を参照しながら説明する。
【0088】
まず、学習データ取得部62が、学習データ記憶部60に記憶されている複数の学習データセットのうちから、S202~S205に示す処理が未実行であるものを1つ取得する(S201)。
【0089】
そして、学習データ取得部62が、S201に示す処理で取得された学習データセットに含まれる学習データであって、S203~S205に示す処理が未実行であるもののうち、対応付けられている順序が最も小さなものを取得する(S202)。
【0090】
そして、学習入力部64が、S202に示す処理で取得された学習データに含まれる学習入力データDinを入力判定モデル50に入力する(S203)。
【0091】
そして、判定結果データ取得部66が、S203に示す処理での入力に応じて入力判定モデル50が出力する判定結果データDstopを取得する(S204)。
【0092】
そして、学習部68が、S204に示す処理で取得された判定結果データDstopと、S202に示す処理で取得された学習データに含まれる判定結果教師データTstopと、を用いた、入力判定モデル50の学習を実行する(S205)。ここで例えば、当該判定結果データDstopの値と、当該判定結果教師データTstopの値と、の差に基づいて、入力判定モデル50のパラメータの値が更新されてもよい。
【0093】
そして、学習部68が、S201に示す処理で取得された学習データセットに含まれるすべての学習データについて、S203~S205に示す処理が実行されたか否かを確認する(S206)。
【0094】
S201に示す処理で取得された学習データセットに含まれるすべての学習データについて、S203~S205に示す処理が実行されていない場合は(S206:N)、S202に示す処理に戻る。
【0095】
一方、S201に示す処理で取得された学習データセットに含まれるすべての学習データについて、S203~S205に示す処理が実行されたとする(S206:Y)。この場合は、学習部68が、学習データ記憶部60に記憶されているすべての学習データセットについて、S202~S205に示す処理が実行されたか否かを確認する(S207)。
【0096】
学習データ記憶部60に記憶されているすべての学習データセットについて、S202~S205に示す処理が実行されていない場合は(S207:N)、S201に示す処理に戻る。
【0097】
学習データ記憶部60に記憶されているすべての学習データセットについて、S202~S205に示す処理が実行された場合は(S207:Y)、本処理例に示す処理は終了される。
【0098】
そして、以上のようにして生成された学習済の入力判定モデル50を用いて、所与の学習済のニューラルネットワークに関連付けられている状態の更新を制限するか否かが制御されてもよい。例えば、生成された学習済の入力判定モデル50を用いて、学習済のLSTMモデル20にターゲット入力データを入力するか否かが制御されてもよい。この場合、例えば、状態制御部32が、ターゲット入力データを入力判定モデル50に入力した際の出力に基づいて、所与の学習済のニューラルネットワークに関連付けられている状態の更新を制限するか否かが制御されてもよい。例えば、状態制御部32が、ターゲット入力データを入力判定モデル50に入力した際の出力に基づいて、LSTMモデル20に当該ターゲット入力データを入力するか否かを制御してもよい。
【0099】
例えば上述のS102に示す処理において、状態制御部32が、S101に示す処理で取得されたターゲット入力データを学習済の入力判定モデル50に入力してもよい。そして、状態制御部32が、当該入力に応じて入力判定モデル50が出力する判定結果データDstopを取得してもよい。
【0100】
そして、判定結果データDstopの値が「1」である場合は、状態制御部32は、入力抑制条件を満足すると判定してもよい。この場合は、S103に示す処理で、出力データ取得部36が、出力データ記憶部38に記憶されている出力データを取得する。
【0101】
また、判定結果データDstopの値が「0」である場合は、状態制御部32は、入力抑制条件を満足しないと判定してもよい。この場合は、S104に示す処理で、入力部34が、S101に示す処理で取得されたターゲット入力データをLSTMモデル20に入力する。
【0102】
本実施形態の応用範囲は、特定の技術分野には限定されない。
【0103】
例えば、本実施形態をボディトラッキングに応用することができる。ここで例えば、LSTMモデル20が、ユーザの体の末端に装着されたトラッカーが備えるセンサによる計測結果であるセンシングデータの時系列が入力される学習済の機械学習モデルであるとする。そしてLSTMモデル20が、当該入力に応じて、当該末端よりも体の中心に近い体の部位の姿勢の推定結果を示す出力データを出力することとする。ここでは例えば、LSTMモデル20は、ユーザの手の姿勢を示すセンシングデータの入力に応じて、手首の姿勢を示す出力データを出力することとする。そして、当該出力データを用いて、当該ユーザの体に含まれる複数の部位の姿勢を決定する処理を含むボディトラッキング処理が実行されることとする。
【0104】
このような場面で、本実施形態によって、当該センシングデータをLSTMモデル20に入力するか否かが制御されるようにしてもよい。例えば、手の姿勢の変化を示す値の絶対値が所定の閾値より小さい場合に当該センシングデータがLSTMモデル20に入力されないようにしてもよい。
【0105】
また例えば、本実施形態を、映像解析に応用することができる。ここで例えば、CNNモデルとLSTMモデル20とが結合された学習済の機械学習モデルに、映像データに含まれる複数のフレーム画像がフレーム番号に従って順番に入力されることとする。そして当該機械学習モデルが、当該入力に応じて、入力されたフレーム画像の特徴量を示す出力データを出力することとする。そして、当該出力データを用いて、当該フレーム画像に表れている物体の像の特定などといった映像解析処理が実行されてもよい。
【0106】
このような場面で、本実施形態によって、LSTMモデル20を含む当該機械学習モデルに当該フレーム画像を入力するか否かが制御されるようにしてもよい。例えば、当該フレーム画像の直前のフレーム画像からの変化を示す値の絶対値が所定の閾値より小さい場合に当該フレーム画像がLSTMモデル20に入力されないようにしてもよい。
【0107】
また、本実施形態における、ニューラルネットワークに関連付けられている状態の更新を制限するか否かの制御は、上述の例には限定されない。
【0108】
例えば、状態制御部32は、ターゲット入力データの一部又は全部についての、直前に取得されたターゲット入力データからの変化に基づいて、学習済のLSTMモデル20に関連付けられている状態の更新を制限するか否かを制御してもよい。例えば、ターゲット入力データの一部又は全部における変化が小さい場合は、状態制御部32は、学習済のLSTMモデル20に当該ターゲット入力データを入力しないよう制御してもよい。また、ターゲット入力データの一部又は全部における変化が大きい場合は、状態制御部32は、学習済のLSTMモデル20に当該ターゲット入力データを入力するよう制御してもよい。
【0109】
また例えば、状態制御部32は、当該ターゲット入力データの値と当該ターゲット入力データの直前に取得されたターゲット入力データの値との差を特定してもよい。そして、状態制御部32は、特定される差に基づいて、学習済のLSTMモデル20に関連付けられている状態の更新を制限するか否かを制御してもよい。ここで例えば、状態制御部32は、特定される差の絶対値の大きさに基づいて、学習済のLSTMモデル20に当該ターゲット入力データを入力するか否かを制御してもよい。
【0110】
例えば、特定される差の絶対値が所定の閾値よりも小さい場合は、状態制御部32は、学習済のLSTMモデル20に当該ターゲット入力データを入力しないよう制御してもよい。逆に、特定される差の絶対値が所定の閾値よりも小さくない場合は、状態制御部32は、学習済のLSTMモデル20に当該ターゲット入力データを入力するよう制御してもよい。
【0111】
また例えば、状態制御部32は、ターゲット入力データに含まれる要素間の相対的な関係についての、直前に取得されたターゲット入力データからの変化に基づいて、学習済のLSTMモデル20に関連付けられている状態の更新を制限するか否かを制御してもよい。例えば、ターゲット入力データに含まれる要素間の相対的な関係における変化が小さい場合は、状態制御部32は、学習済のLSTMモデル20に当該ターゲット入力データを入力しないよう制御してもよい。また、ターゲット入力データに含まれる要素間の相対的な関係における変化が大きい場合は、状態制御部32は、学習済のLSTMモデル20に当該ターゲット入力データを入力するよう制御してもよい。
【0112】
また、状態制御部32は、LSTMモデル20等のニューラルネットワークへのターゲット入力データの入力に応じて更新された状態を、更新前の状態に戻すか否かを制御してもよい。例えば、出力データの一部又は全部についての、当該出力データの直前に出力された出力データからの変化に基づいて、LSTMモデル20に関連付けられている状態を更新前の状態に戻すか否かが制御されてもよい。例えば、出力データの一部又は全部における変化が小さい場合は、状態制御部32は、LSTMモデル20へのターゲット入力データの入力に応じて更新された状態が、直前の状態に戻るよう制御してもよい。また、出力データの一部又は全部における変化が大きい場合は、LSTMモデル20へのターゲット入力データの入力に応じて更新された状態が維持されてもよい。
【0113】
また例えば、状態制御部32は、ターゲット入力データの入力に応じたLSTMモデル20の出力と当該ターゲット入力データの次に取得されるターゲット入力データとを比較してもよい。そして状態制御部32は、当該比較の結果に基づいて、LSTMモデル20に関連付けられている状態の更新を制限するか否かを制御してもよい。この場合も、上述のように、LSTMモデル20へのターゲット入力データの入力に応じて更新された状態を、更新前の状態に戻すか否かが制御されてもよい。
【0114】
例えば上述のボディトラッキングにおいて、LSTMモデル20がセンサによる計測結果である頭の姿勢と手の姿勢を示すデータの入力に応じて未来の頭の姿勢を示すデータを出力するものであることとする。この場合、LSTMモデル20の出力であるデータと、次のループ処理における計測結果である頭の姿勢を示すデータとの差の絶対値が、所定の閾値よりも小さい場合は、LSTMモデル20に関連付けられている状態の更新が制限されるようにしてもよい。
【0115】
また本実施形態において、出力データが変化しない条件が自明である場合は、当該条件に基づいて、学習済のLSTMモデル20にターゲット入力データを入力するか否かが制御されてもよい。また、適用するユースケースとの関係で出力データが変化しない条件が経験則から予め判明している場合は、当該条件に基づいて、学習済のLSTMモデル20にターゲット入力データを入力するか否かが制御されてもよい。
【0116】
なお、本発明は上述の実施形態に限定されるものではない。
【0117】
例えばLSTMモデル20以外の、何らかの形で状態の関連付けが可能な所与の学習済のニューラルネットワークについても本発明は適用可能である。例えば、LSTMモデル20に含まれる各要素(CEC、Input Gate、Output Gate、Forget Gate)についてばらばらに本発明を適用してもよい。また、LSTM20モデルではない、状態の関連付けが可能な再帰型ニューラルネットワーク(RNN)モデルにも本発明は適用可能である。また、特定の層(例えば全結合層)の現在の値を取り出して、当該値を次の入力に用いるようなニューラルネットワークにも本発明は適用可能である。この場合は、上記特定の層の値が状態変数の値に相当することとなる。
【0118】
本発明における「ニューラルネットワークに関連付けられている状態」は、次のループに引き継がれるニューラルネットワークのある層の状態(内部状態)には限定されない。当該「状態」は、次のループにおけるある層の状態としては用いられないが、ニューラルネットワークに関連付けて記憶され、次のループにおける入出力に用いられるものも包含される。例えば本発明は、ニューラルネットワークのある層の状態が出力でき、当該出力が、次のループの入力として与えられ、当該ループにおける当該層の状態の初期値として設定できるものに適用可能である。また本発明は、ニューラルネットワークのある層の状態が出力でき、当該出力が、次のループの入力として与えられるが、当該ループにおける当該層の状態の初期値としては利用されないものにも適用可能である。また本発明は、ニューラルネットワークのある層の状態が、直前の入出力から引き継がれ、次のループの入出力における初期値として利用されるものにも適用可能である。
【0119】
また、上記の具体的な文字列や数値及び図面中の具体的な文字列や数値は例示であり、これらの文字列や数値には限定されない。
図1
図2
図3
図4
図5
図6
図7
図8
図9