(57)【要約】【課題】エージェントがアクションを行う環境中の物体等の学習を、容易に行う。【解決手段】見え／位置認識ネットワークは、画像の前景の位置に対応するニューロンである位置ノードからなる前景層と、画像の背景に対応するニューロンである背景ノードからなる背景層と、背景に前記前景が重畳されている画像の画素に対応するニューロンである画素ノードからなる画像層とを有するニューラルネットワークであり、位置ノード、背景ノード、及び、画素ノードは、相互に接続されている。見え／位置認識ネットワークの学習は、位置ノードと画素ノードとの間の重み、位置ノードと背景ノードとの間の重み、及び、背景ノードと画素ノードとの間の重みを拘束して行われる。本技術は、例えば、画像中の前景の位置を認識する場合等に適用できる。【選択図】図４
2013120465.tif 000002
【特許請求の範囲】
【請求項１】
画像の前景の位置に対応するニューロンである位置ノードからなる前景層と、
画像の背景に対応するニューロンである背景ノードからなる背景層と、
前記背景に前記前景が重畳されている画像の画素に対応するニューロンである画素ノードからなる画像層と
を有し、
前記位置ノード、前記背景ノード、及び、前記画素ノードが、相互に接続されている
ニューラルネットワークである見え／位置認識ネットワークの学習を、前記位置ノードと画素ノードとの間の結合加重である第１の重み、前記位置ノードと背景ノードとの間の結合加重である第２の重み、及び、前記背景ノードと画素ノードとの間の結合加重である第３の重みを拘束し、学習用の画像を用いて行うネットワーク学習部を備え、
前記位置ノードは、入力値として入力される、前記前景の位置を表す位置情報に対応する値を出力し、
前記背景ノードは、前記位置ノードの出力の重み付け加算を含む演算によって得られる値を出力し、
前記画素ノードは、前記位置ノードの出力の重み付け加算、及び、前記背景ノードの出力の重み付け加算を含む演算によって得られる値を出力する
情報処理装置。
【請求項２】
前記ネットワーク学習部は、
任意の２つの位置ノードについて、前記２つの位置ノードのうちの一方の位置ノードに対応する位置から所定の位置関係の位置にある画素に対応する画素ノードと前記一方の位置ノードとの間の第１の重みと、前記２つの位置ノードのうちの他方の位置ノードに対応する位置から前記所定の位置関係の位置にある画素に対応する画素ノードと前記他方の位置ノードとの間の第１の重みとが、同一の値になるように、前記第１の重みを拘束し、
各位置ノードについて、前記位置ノードに対応する位置を基準とする所定の範囲内の背景に対応する背景ノードと前記位置ノードとの間の第２の重みを、前記背景ノードの発火を抑制する固定値に拘束して、
前記見え／位置認識ネットワークの学習を行う
請求項１に記載の情報処理装置。
【請求項３】
前記ネットワーク学習部は、さらに、各背景ノードについて、前記背景ノードに対応する背景の画素以外の画素に対応する画素ノードとの間の第３の重みを0に拘束して、前記見え／位置認識ネットワークの学習を行う
請求項２に記載の情報処理装置。
【請求項４】
前記ネットワーク学習部は、前記見え／位置認識ネットワークの前記画素ノードから出力される値を画素値とする画像である予測画像の、前記学習用の画像に対する誤差を小さくするように、前記見え／位置認識ネットワークの学習を行う
請求項３に記載の情報処理装置。
【請求項５】
物体を動かす運動指令に従って動く物体を前景として含む画像の系列に対する前記予測画像の誤差を小さくする、前記見え／位置認識ネットワークの前記位置ノードの入力値となる前記位置情報の系列と、前記運動指令の系列とを用いて、MTRNN(Multiple Timescale Recurrent Neural Network)の学習を行うMTRNN学習部と、
前記運動指令の系列と前記画像の系列とを含む、前記運動指令に従って動く物体の識別に用いる識別用データに含まれる前記運動指令の系列の入力に対して、前記MTRNNから出力される位置情報の予測値の系列の誤差に基づいて、前記識別用データに含まれる前記画像の中の前景が、前記識別用データに含まれる運動指令に従って動く物体であるかどうかを識別する識別部と
をさらに備える
請求項４に記載の情報処理装置。
【請求項６】
前記MTRNN学習部は、前記位置ノードの入力値のうちの最大の入力値の位置ノードの周辺の位置ノードの入力値と、前記最大の入力値とが所定の関係になるように前記入力値を補正した、補正後の位置ノードの入力値を、前記位置情報として用いて、前記MTRNNの学習を行う
請求項５に記載の情報処理装置。
【請求項７】
前記MTRNNは、
前記位置情報が入出力されるニューロンからなる位置入出力層と、
前記運動指令が入出力されるニューロンからなる運動指令入出力層と、
前記位置入出力層、及び、前記運動指令入出力層のそれぞれと接続される、所定の時定数で記憶値が更新されるニューロンからなる第１のコンテキスト層と、
前記第１のコンテキスト層と接続される、前記所定の時定数よりも大の時定数で記憶値が更新されるニューロンからなる第２のコンテキスト層と
を有する
請求項５に記載の情報処理装置。
【請求項８】
前記見え／位置認識ネットワークは、前記背景ノード、及び、前記画素ノードのそれぞれと接続される複数の前景層を有する
請求項５に記載の情報処理装置。
【請求項９】
画像の前景の位置に対応するニューロンである位置ノードからなる前景層と、
画像の背景に対応するニューロンである背景ノードからなる背景層と、
前記背景に前記前景が重畳されている画像の画素に対応するニューロンである画素ノードからなる画像層と
を有し、
前記位置ノード、前記背景ノード、及び、前記画素ノードが、相互に接続されている
ニューラルネットワークである見え／位置認識ネットワークの学習を、前記位置ノードと画素ノードとの間の結合加重である第１の重み、前記位置ノードと背景ノードとの間の結合加重である第２の重み、及び、前記背景ノードと画素ノードとの間の結合加重である第３の重みを拘束し、学習用の画像を用いて行う
ステップを含み、
前記位置ノードは、入力値として入力される、前記前景の位置を表す位置情報に対応する値を出力し、
前記背景ノードは、前記位置ノードの出力の重み付け加算を含む演算によって得られる値を出力し、
前記画素ノードは、前記位置ノードの出力の重み付け加算、及び、前記背景ノードの出力の重み付け加算を含む演算によって得られる値を出力する
情報処理方法。
【請求項１０】
画像の前景の位置に対応するニューロンである位置ノードからなる前景層と、
画像の背景に対応するニューロンである背景ノードからなる背景層と、
前記背景に前記前景が重畳されている画像の画素に対応するニューロンである画素ノードからなる画像層と
を有し、
前記位置ノード、前記背景ノード、及び、前記画素ノードが、相互に接続されている
ニューラルネットワークである見え／位置認識ネットワークの学習を、前記位置ノードと画素ノードとの間の結合加重である第１の重み、前記位置ノードと背景ノードとの間の結合加重である第２の重み、及び、前記背景ノードと画素ノードとの間の結合加重である第３の重みを拘束し、学習用の画像を用いて行うネットワーク学習部
として、コンピュータを機能させるためのプログラムであり、
前記位置ノードは、入力値として入力される、前記前景の位置を表す位置情報に対応する値を出力し、
前記背景ノードは、前記位置ノードの出力の重み付け加算を含む演算によって得られる値を出力し、
前記画素ノードは、前記位置ノードの出力の重み付け加算、及び、前記背景ノードの出力の重み付け加算を含む演算によって得られる値を出力する
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、情報処理装置、情報処理方法、及び、プログラムに関し、特に、例えば、ロボット等の、各種のアクションを行うことが可能なエージェントがアクションを行う環境中の物体等の学習を、容易に行うことができるようにする情報処理装置、情報処理方法、及び、プログラムに関する。
【背景技術】
【０００２】
例えば、アクション可能なエージェントが、エージェント自身が動かすことができる、エージェントのハンド等の物体である身体を動かして、エージェントの身体以外の物体である非身体を動かす物体移動タスク等を、エージェントがおかれた環境を撮影した画像を用いて、事前知識なしに行う場合には、エージェントは、幼児が行うハンドリガード等のようにして、画像中のハンドを識別する必要がある。
【０００３】
例えば、非特許文献１では、身体図式を獲得する内部モデルとして、MTRNN(Multiple Timescale Recurrent Neural Network)を採用し、そのMTRNNを用いて、エージェントが、そのエージェントの身体を含む複数の物体の中から、エージェントの身体を識別する方法が提案されている。
【０００４】
非特許文献１では、MTRNNに、エージェントが身体を動かすのに発する運動指令と、その運動指令に従って動くエージェントの身体である１つの物体、及び、非身体である２つの物体の、合計で３つの物体の、環境中の位置情報とが与えられ、MTRNNの学習が行われる。
【０００５】
さらに、非特許文献１では、学習後のMTRNNに、運動指令だけが与えられ、その運動指令の認識が行われる。その後、非特許文献１では、運動指令の認識結果を用いて、MTRNNから、３つの物体の位置情報の予測値が求められ（生成され）、その予測値の予測誤差に基づいて、３つの物体の位置情報から、エージェントの身体の位置情報（及び非身体の位置情報）が特定される。そして、そのような位置情報が表す位置に沿って移動する物体が、エージェントの身体に識別される。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】信田春満、西出俊、尾形哲也、奥乃博、「神経力学モデルによる身体図式に基づく空間地図の獲得」、第２９回日本ロボット学会学術講演会
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ところで、エージェントにおいて、エージェントが観察することができる画像、すなわち、カメラで撮影された画像から、物体の位置情報を得るには、画像の中の、位置情報を得ようとする物体を認識する必要があり、そのためには、その物体の学習を行う必要がある。
【０００８】
画像の中の物体を学習するには、画像の中から、その物体が映っている部分である前景を抽出する必要がある。
【０００９】
画像の中から、ある物体が映っている前景を抽出する方法としては、物体に、その物体を特定するためのマーキングを行っておき、マーキングを含む閉領域を、前景として抽出する方法や、物体が動くことを前提として、フレーム間差分に基づき、画像の中の動いている閉領域を、前景として抽出する方法がある。
【００１０】
しかしながら、物体にマーキングを行うことや、画像から閉領域を抽出することは面倒である。なお、前景の抽出するその他の方法としては、事前に、何らかの方法で背景を取得しておき、画像から、背景との差分が大きい領域を前景として抽出する方法や、人の顔や既知の物体等の特定の前景の認識専用に学習を行った認識器を用いて、画像中の前景を認識する方法があるが、事前に背景を取得しておくことや、認識器の学習を行うことは、やはり、面倒である。
【００１１】
本技術は、このような状況に鑑みてなされたものであり、ロボット等の、アクションを行うことが可能なエージェントがアクションを行う環境中の物体等の学習を、容易に行うことができるようにするものである。
【課題を解決するための手段】
【００１２】
本技術の一側面の情報処理装置、又は、プログラムは、画像の前景の位置に対応するニューロンである位置ノードからなる前景層と、画像の背景に対応するニューロンである背景ノードからなる背景層と、前記背景に前記前景が重畳されている画像の画素に対応するニューロンである画素ノードからなる画像層とを有し、前記位置ノード、前記背景ノード、及び、前記画素ノードが、相互に接続されているニューラルネットワークである見え／位置認識ネットワークの学習を、前記位置ノードと画素ノードとの間の結合加重である第１の重み、前記位置ノードと背景ノードとの間の結合加重である第２の重み、及び、前記背景ノードと画素ノードとの間の結合加重である第３の重みを拘束し、学習用の画像を用いて行うネットワーク学習部を備え、前記位置ノードは、入力値として入力される、前記前景の位置を表す位置情報に対応する値を出力し、前記背景ノードは、前記位置ノードの出力の重み付け加算を含む演算によって得られる値を出力し、前記画素ノードは、前記位置ノードの出力の重み付け加算、及び、前記背景ノードの出力の重み付け加算を含む演算によって得られる値を出力する情報処理装置、又は、情報処理装置として、コンピュータを機能させるためのプログラムである。
【００１３】
本技術の一側面の情報処理方法は、画像の前景の位置に対応するニューロンである位置ノードからなる前景層と、画像の背景に対応するニューロンである背景ノードからなる背景層と、前記背景に前記前景が重畳されている画像の画素に対応するニューロンである画素ノードからなる画像層とを有し、前記位置ノード、前記背景ノード、及び、前記画素ノードが、相互に接続されているニューラルネットワークである見え／位置認識ネットワークの学習を、前記位置ノードと画素ノードとの間の結合加重である第１の重み、前記位置ノードと背景ノードとの間の結合加重である第２の重み、及び、前記背景ノードと画素ノードとの間の結合加重である第３の重みを拘束し、学習用の画像を用いて行うステップを含み、前記位置ノードは、入力値として入力される、前記前景の位置を表す位置情報に対応する値を出力し、前記背景ノードは、前記位置ノードの出力の重み付け加算を含む演算によって得られる値を出力し、前記画素ノードは、前記位置ノードの出力の重み付け加算、及び、前記背景ノードの出力の重み付け加算を含む演算によって得られる値を出力する情報処理方法である。
【００１４】
以上のような一側面においては、画像の前景の位置に対応するニューロンである位置ノードからなる前景層と、画像の背景に対応するニューロンである背景ノードからなる背景層と、前記背景に前記前景が重畳されている画像の画素に対応するニューロンである画素ノードからなる画像層とを有し、前記位置ノード、前記背景ノード、及び、前記画素ノードが、相互に接続されているニューラルネットワークである見え／位置認識ネットワークの学習が、学習用の画像を用いて行われる。見え／位置認識ネットワークの学習では、前記位置ノードと画素ノードとの間の結合加重である第１の重み、前記位置ノードと背景ノードとの間の結合加重である第２の重み、及び、前記背景ノードと画素ノードとの間の結合加重である第３の重みが拘束される。見え／位置認識ネットワークにおいて、前記位置ノードは、入力値として入力される、前記前景の位置を表す位置情報に対応する値を出力し、前記背景ノードは、前記位置ノードの出力の重み付け加算を含む演算によって得られる値を出力し、前記画素ノードは、前記位置ノードの出力の重み付け加算、及び、前記背景ノードの出力の重み付け加算を含む演算によって得られる値を出力する。
【００１５】
なお、情報処理装置は、独立した装置であっても良いし、１つの装置を構成している内部ブロックであっても良い。
【００１６】
また、プログラムは、伝送媒体を介して伝送することにより、又は、記録媒体に記録して、提供することができる。
【発明の効果】
【００１７】
本技術の一側面によれば、エージェントがアクションを行う環境中の物体等の学習を、容易に行うことができる。
【図面の簡単な説明】
【００１８】
【図１】本技術を適用したエージェントの一実施の形態の概要を説明する図である。
【図２】本技術を適用したエージェントの一実施の形態の構成例を示すブロック図である。
【図３】見え／位置認識ネットワークの学習に用いられる画像の背景及び前景の例を示す図である。
【図４】見え／位置認識ネットワークの例を示す図である。
【図５】x方向だけに注目した見え／位置認識ネットワークを示す図である。
【図６】見え／位置認識ネットワークの情報伝達を説明する図である。
【図７】背景に、２つの前景が重畳されている画像に対処する見え／位置認識ネットワークの例を示す図である。
【図８】見え／位置認識ネットワークのシミュレーションで採用した運動指令を説明する図である。
【図９】シミュレーションで用いる学習用画像の例を示す図である。
【図１０】シミュレーションで用いる学習用画像の構成要素の例を示す図である。
【図１１】見え／位置認識ネットワークのシミュレーションの結果を示す図である。
【図１２】識別ネットワークとしてのMTRNNの構成例を示す図である。
【図１３】MTRNNのより詳細な構成例を示す図である。
【図１４】MTRNNの学習、及び、MTRNNを用いた認識と生成の処理を説明する図である。
【図１５】MTRNNについて行ったシミュレーションの結果を示す図である。
【図１６】背景に、２つの前景#1及び#2が重畳されている画像に対処するMTRNNの例を示す図である。
【図１７】学習処理を説明するフローチャートである。
【図１８】識別処理を説明するフローチャートである。
【図１９】学習処理、及び、識別処理のシミュレーションの結果を示す図である。
【図２０】本技術を適用したコンピュータの一実施の形態の構成例を示すブロック図である。
【発明を実施するための形態】
【００１９】
［本技術を適用したエージェントの一実施の形態］
【００２０】
図１は、本技術を適用したエージェントの一実施の形態の概要を説明する図である。
【００２１】
図１において、エージェントは、そのエージェントの身体を動かす運動指令を発し、エージェントの身体は、そのエージェントが発する運動指令に従って動く。
【００２２】
例えば、エージェントの身体であるハンドは、そのエージェントが発する運動指令に従って動く。
【００２３】
エージェントは、そのエージェント（の身体であるハンド）がおかれている環境を、視覚を通じて知覚し、すなわち、カメラで撮影し、その結果得られる画像を用いて、エージェントがおかれている環境を学習する。
【００２４】
図１では、他の物体と接触することによって動く非身体の物体（エージェントの身体ではない物体）が存在するテーブルに、エージェント（のハンド）がおかれている。
【００２５】
エージェントは、運動指令を発することにより、そのハンドを動かしながら、エージェントがおかれている環境を、カメラで撮影し、エージェントがおかれている環境の画像を獲得する。
【００２６】
図１において、エージェントが獲得する画像には、背景としてのテーブルの他、前景としての物体であるハンド及び非身体が映るが、エージェントは、環境中のテーブル、ハンド、及び、非身体について、事前知識を有していない。
【００２７】
また、エージェントがハンドを動かしたときに、ハンドが、テーブル上の非身体と接触すると、非身体は、ハンドの動きに応じて動くことがある。
【００２８】
エージェントは、運動指令に従って動くハンド、及び、そのハンドが接触したときに動くことがある非身体、並びに、それらのハンドと非身体がおかれたテーブルが映る画像を用いて、その画像の前景である物体（ハンド及び非身体）、並びに、背景であるテーブルの学習を行い、前景及び背景それぞれの見えを獲得する。
【００２９】
さらに、エージェントは、運動指令の系列と、その運動指令に従って動くハンドが映る画像とを用いて、画像に映る（各）物体が、運動指令に従って動くハンドであるかどうかを識別する。
【００３０】
なお、非身体の物体としては、運動指令に従って動くハンドが接触しない限り動かない物体を採用することもできるし、ハンドが接触していなくても、エージェントの運動指令に関係なく動く物体（例えば、他のエージェントのハンド等）を採用することができる。また、非身体の物体として、エージェントの運動指令に関係なく動く物体を採用する場合、その非身体の物体が、運動指令に従って動くハンドと接触したときに、その接触によって、非身体の物体が動くという設定を採用することもできるし、ハンドと接触しても、その接触によっては、非身体の物体は動かないという設定を採用することもできる。
【００３１】
図２は、本技術を適用したエージェントの一実施の形態の構成例を示すブロック図である。
【００３２】
図２において、エージェントは、カメラ１１、アクション制御部１２、駆動部１３、データ記憶部１４、ネットワーク記憶部１５、学習部１６、認識生成部１９、及び、識別部２０を有する。
【００３３】
カメラ１１は、エージェントの視覚としての役割を有し、エージェントがおかれた環境を所定のフレームレートで撮影し、その結果得られる画像（エージェントが観測する（ことができる）観測値）を、データ記憶部１４に供給する。
【００３４】
アクション制御部１２は、エージェントのハンド等の身体を動かす制御信号としての運動指令を発し、駆動部１３、及び、データ記憶部１４に供給する。
【００３５】
駆動部１３は、エージェントのハンド等の身体を駆動するアクチュエータであり、アクション制御部１２からの運動指令に従って駆動する。駆動部１３が運動指令に従って駆動することにより、エージェントのハンド等の身体が動く。
【００３６】
なお、以下では、アクション制御部１２は、例えば、エージェントのハンドを動かす運動指令を発することとする。
【００３７】
データ記憶部１４は、カメラ１１から供給される画像、及び、アクション制御部１２から供給される運動指令を、時系列に記憶する。
【００３８】
なお、データ記憶部１４では、カメラ１１から供給される画像と、アクション制御部１２から供給される運動指令とが対応付けて記憶される。
【００３９】
すなわち、データ記憶部１４では、例えば、アクション制御部１２から供給される運動指令と、その運動指令に従って動いた直後のハンドを含む環境が撮影された画像とが対応付けて記憶される。
【００４０】
ネットワーク記憶部１５は、人の脳（の一部）を模した内部モデルとして、ニューロン（を模したモデル）が接続されたネットワークを記憶する。
【００４１】
ここで、本実施の形態において、ネットワーク記憶部１５に記憶されたネットワークは、エージェントが、そのエージェントの身体であるハンドを識別するためのネットワークであり、以下、識別ネットワークともいう。
【００４２】
ネットワーク記憶部１５には、見え／位置認識ネットワークと、MTRNNとが、識別ネットワークとして記憶される。
【００４３】
識別ネットワークとしての見え／位置認識ネットワークは、画像（のみ）を用いた学習により、その画像の前景及び背景のそれぞれの見えを獲得する。
【００４４】
学習済みの見え／位置認識ネットワークによれば、画像から、その画像の前景の位置を認識することができ、また、前景の位置を与えることにより、その位置に前景がある画像（の予測値）を生成することができる。
【００４５】
識別ネットワークとしてのMTRNNは、運動指令と、その運動指令に従って動く物体としての、例えば、エージェントのハンドが少なくとも映った画像上の、そのハンドの位置を表す位置情報とを用いた学習により、運動指令とハンドの位置（ハンドの位置の軌跡（動き））との関係を獲得する。
【００４６】
学習済みのMTRNNによれば、運動指令の系列から、その運動指令の系列に従って動く物体としてのハンドの位置情報（の予測値）の系列を生成することや、ハンドの位置情報の系列から、そのような位置情報の系列を描くようにハンドを動かす運動指令（の予測値）の系列を生成すること等ができる。
【００４７】
学習部１６は、データ記憶部１４に記憶された画像や運動指令を、識別ネットワークの学習用のデータ（学習用データ）として用いて、ネットワーク記憶部１５に記憶された識別ネットワークの学習を行う。
【００４８】
すなわち、学習部１６は、ネットワーク学習部１７とMTRNN学習部１８とを有する。
【００４９】
ネットワーク学習部１７は、データ記憶部１４に記憶された画像を用いて、ネットワーク記憶部１５に記憶された見え／位置認識ネットワークの学習を行う。
【００５０】
MTRNN学習部１８は、データ記憶部１４に記憶された画像から認識される、その画像の前景の位置情報、及び、運動指令を用いて、ネットワーク記憶部１５に記憶されたMTRNNの学習を行う。
【００５１】
ここで、MTRNN学習部１８でのMTRNNの学習に用いられる画像の前景の位置情報は、その画像を、見え／位置認識ネットワークに与えて認識される。
【００５２】
認識生成部１９は、ネットワーク記憶部１５に記憶された識別ネットワークとしてのMTRNNを用いて、データ記憶部１４に記憶された運動指令を認識する認識処理や、データ記憶部１４に記憶された運動指令から、その運動指令に従って動く物体の位置情報の予測値を生成する生成処理を行う。
【００５３】
また、認識生成部１９は、ネットワーク記憶部１５に記憶された識別ネットワークとしての見え／位置認識ネットワークを用いて、データ記憶部１４に記憶された画像から、その画像の前景の位置（情報）を認識する認識処理（以下、前景位置認識処理ともいう）を行う。
【００５４】
認識生成部１９は、MTRNNを用いた生成処理により得られる前景としての物体の位置情報の予測値、及び、見え／位置認識ネットワークを用いた前景位置認識処理により得られる前景の位置情報を、識別部２０に供給する。
【００５５】
識別部２０は、見え／位置認識ネットワークを用いた前景位置認識処理により得られる前景の位置情報を真値として、MTRNNを用いた生成処理により得られる前景としての物体の位置情報の予測値の予測誤差を求め、その予測誤差に基づいて、カメラ１１で撮影された画像の（各）前景が、運動指令に従って動く物体であるかどうかを識別する。
【００５６】
なお、アクション制御部１２は、ネットワーク記憶部１５に記憶された識別ネットワークの学習が行われ、識別部２０において、カメラ１１で撮影された画像中の前景が認識されるまでは、例えば、あらかじめ決められた生得的なルールに従って、運動指令を発することができる。また、カメラ１１で撮影された画像中の前景が認識された後、その前景が運動指令に従って動く物体であるかどうか、すなわち、ここでは、エージェントのハンドであるかどうかの識別が行われるまでは、例えば、とりあえず、前景が、エージェントのハンドであると仮定して、運動指令を発することができる。
【００５７】
識別ネットワークの学習が行われ、識別部２０において、カメラ１１で撮影された画像の前景がハンドであるかどうかの識別が行われると、人が自分の手を見て、自分の手であることを知覚するのと同様に、エージェントでは、カメラ１１で撮影された画像に映るハンド（の状態）を認識することができるので、アクション制御部１２では、ハンドを、現在の状態から所望の状態にする動きの運動指令を発することが可能となる。
【００５８】
［見え／位置認識ネットワーク］
【００５９】
以下、ネットワーク記憶部１５に記憶された識別ネットワークとしての見え／位置認識ネットワークについて説明する。
【００６０】
図２で説明したように、見え／位置認識ネットワークは、画像を用いた学習により、その画像の前景及び背景のそれぞれの見えを獲得する。
【００６１】
図３は、見え／位置認識ネットワークの学習に用いられる画像、すなわち、図２のカメラ１１で撮影される画像の背景及び前景の例を示す図である。
【００６２】
図３Ａは、背景の例を示す図である。
【００６３】
図３Ａにおいて、背景は、横×縦が10×10画素で構成される。
【００６４】
図３Ｂは、前景の例を示す図である。
【００６５】
図３Ｂにおいて、前景は、横×縦が3×3画素で構成される。
【００６６】
以下では、説明を簡単にするため、カメラ１１で撮影される画像は、図３Ａに示したような10×10画素の背景に、図３Ｂに示したような3×3画素の前景が重畳された、グレースケールの10×10画素の画像であることとする。
【００６７】
なお、図３Ｂには、２つの前景を示してあるが、カメラ１１で撮影される画像には、図３Ｂに示したような前景が、１又は２以上存在していることとする。
【００６８】
また、前景は、その全体が見えるように、背景に重畳されていることとする。
【００６９】
したがって、10×10画素の画像上において、3×3画素の前景が取り得る位置は、8×8＝64通りとなる。
【００７０】
さらに、画像に、複数の前景が存在する場合には、前景は、その全体が見えなければならないので、他の前景と重なっていることはない。
【００７１】
図４は、見え／位置認識ネットワークの例を示す図である。
【００７２】
すなわち、図４は、カメラ１１（図２）において、図３で説明したような10×10画素の背景に、3×3画素の１つの前景が重畳された画像が撮影される場合の見え／位置認識ネットワークの例を示している。
【００７３】
見え／位置認識ネットワークは、前景層、背景層、及び、画像層から構成され、その前景層、背景層、及び、画像層（のニューロン）が相互に接続されているニューラルネットワークである。
【００７４】
前景層は、画像の前景の位置に対応するニューロンである位置ノードからなる。
【００７５】
10×10画素の画像において、3×3画素の前景は、x方向（水平（横）方向）、及び、y方向（垂直（縦）方向）のそれぞれに、8箇所の位置に配置し得る。
【００７６】
そのため、前景層は、x方向、及び、y方向のそれぞれに、8箇所ずつの、合計で、64箇所の位置に対応する64＝8×8個の位置ノードを有する。
【００７７】
背景層は、画像の背景に対応するニューロンである背景ノードからなる。
【００７８】
10×10画素の画像の背景は、10×10画素で構成されるので、背景層は、x方向、及び、y方向のそれぞれに、10画素ずつの、合計で、100画素に対応する100＝10×10個の背景ノードを有する。
【００７９】
画像層は、10×10画素の背景に3×3画素の前景が重畳されている10×10画素の画像の画素に対応するニューロンである画素ノードからなる。
【００８０】
そして、画像層は、背景層と同様に、x方向、及び、y方向のそれぞれに、10画素ずつの、合計で、100画素に対応する100＝10×10個の画素ノードを有する。
【００８１】
見え／位置認識ネットワークにおいて、前景層の位置ノード、背景層の背景ノード、及び、画像層の画素ノードは、相互に接続されている。
【００８２】
ここで、以下、適宜、位置ノード、背景ノード、及び、画素ノードを、特に区別することなく、単に、ノードともいう。
【００８３】
また、図４では（後述する図でも同様）、図が煩雑になるのを避けるため、ノードどうしの接続については、一部のノードどうしの接続のみを、矢印で図示してある。
【００８４】
以下では、位置ノードと画素ノードとの間の結合加重である重み（第１の重み）をw1と、位置ノードと背景ノードとの間の結合加重である重み（第２の重み）をw2と、背景ノードと画素ノードとの間の結合加重である重み（第３の重み）をw3と、それぞれ表すこととする。
【００８５】
前景層において、左上から水平方向（右方向）に、x番目で、垂直方向（下方向）に、y番目の位置にある位置ノード(x,y)は、画像において、左上から水平方向に、x+1番目で、垂直方向にy+1番目の画素を中心とする3×3画素の範囲に重畳されている前景の位置に対応する。
【００８６】
したがって、図４において、前景層の、左上から水平方向に2番目で、垂直方向に2番目の位置にある位置ノード(2,2)（図中、斜線を付してある位置ノード）は、左上から水平方向に3（＝2+1）番目で、垂直方向に3（＝2+1）番目の画素を中心とする3×3画素（図中、影を付してある画素ノードに対応する画素）の範囲に前景が存在する場合の、その前景の位置を表す。
【００８７】
ここで、以下では、前景の中心（重心）の位置を、前景の位置とすることとする。この場合、位置ノード(x,y)は、画像上の位置(x+1,y+1)に対応する（位置(x+1,y+1)を表す）。
【００８８】
以下、説明を簡単にするため、x及びy方向のうちの一方向である、例えば、x方向だけに注目して、見え／位置認識ネットワークの説明を行う。
【００８９】
図５は、x方向だけに注目した図４の見え／位置認識ネットワークを示す図である。
【００９０】
図５において、piは、左からi番目の位置ノードを、bkは、左からk番目の背景ノードを、vkは、左からk番目の画素ノードを、それぞれ表す。また、w1i,kは、位置ノードpiと画素ノードvkとの間の重みを、w2i,kは、位置ノードpiと背景ノードbkとの間の重みを、w3k,kは、背景ノードbkと画素ノードvkとの間の重みを、それぞれ表す。
【００９１】
図５では（後述する図６でも同様）、図４の見え／位置認識ネットワークのx方向だけに注目しているので、前景層は、x方向の8個の位置ノードp1ないしp8で、背景層は、x方向の10個の背景ノードb1ないしb10で、画像層は、x方向の10個の画素ノードv1ないしvb10で、それぞれ構成される。
【００９２】
位置ノードpi、背景ノードbk、及び、画素ノードvkの各ノードは、そのノードへの入力に、対応する結合加重である重み（入力が与えられるノードと、その入力を出力するノードとの間の重み）を乗算して加算する重み付け加算を含む演算を行い、その演算によって得られる値を、ノードの出力値として出力する。
【００９３】
重み付け加算を含む演算としては、重み付け加算の結果得られる重み付け加算値を引数とする所定の関数の演算等を採用することができる。
【００９４】
重み付け加算値を引数とする所定の関数としては、例えば、シグモイド関数やハイパブリックタンジェントtanh(hyperbolic tangent)、その他、f(x)=x等の微分可能な関数f()を採用することができる。
【００９５】
なお、見え／位置認識ネットワークのノードは、RNN(Recurrent Neural Network)のように、出力値をコンテキストとして記憶するノード（ニューロン）でなくてもよい。
【００９６】
見え／位置認識ネットワークにおいて、位置ノードpiには、外部（ネットワーク学習部１７）から前景の位置を表す位置情報が入力値として入力され、重み付け加算が行われる。
【００９７】
ここで、位置ノードpiには、１つの位置情報（位置ノードpiに対応する位置に前景が存在する可能性を表す情報）のみが入力され、その位置情報の入力に対する重みは存在しない（重みは1とされる）。
【００９８】
したがって、位置ノードpiで求められる重み付け加算値は、その位置ノードpiに入力される位置情報としての値そのものとなる。
【００９９】
位置ノードpiは、重み付け加算値、すなわち、ここでは、位置ノードpiに入力される入力値そのものを引数とする所定の関数を演算し、その結果得られる演算値（入力値としての位置情報に対応する値）を、位置ノードpiの出力値として出力する。
【０１００】
背景ノードbkは、位置ノードpiの出力値と重みw2とを乗算して加算する重み付け加算を行う。さらに、背景ノードbkは、重み付け加算の結果得られる重み付け加算値を引数とする所定の関数を演算し、その結果得られる演算値を、背景ノードbkの出力値として出力する。
【０１０１】
画素ノードvkは、位置ノードpiの出力値と重みw1 とを乗算して加算する重み付け加算、及び、背景ノードbkの出力値と重みw3とを乗算して加算する重み付け加算を行う。さらに、画素ノードvkは、重み付け加算の結果得られる重み付け加算値を引数とする所定の関数を演算し、その結果得られる演算値を、画素ノードvkの出力値として出力する。
【０１０２】
見え／位置認識ネットワークにおいて、重みw1，w2，及び、w3は、所定値、又は、所定の条件に従って拘束される。
【０１０３】
すなわち、重みw1の拘束としては、任意の２つの位置ノードpiとpi'について、一方の位置ノードpiに対応する位置から所定の位置関係Cの位置にある画像内の画素に対応する画素ノードvkと一方の位置ノードpiの間の重みw1i,kと、他方の位置ノードpi'に対応する位置から同一の位置関係Cにある画像内の画素に対応する画素ノードvk'と他方の位置ノードpi'の間の重みw1i',k'とは、同一の値に拘束され、したがって、重みw1i,kとw1i',k'とは、等しくなる。
【０１０４】
例えば、図５では、任意の２つの位置ノードpiとpi'について、重みw1i,iとw1i',i'は同一の値に拘束され、重みw1i,i+1とw1i',i'+1も同一の値に拘束され、重みw1i,i+2とw1i',i'+2も同一の値に拘束される。
【０１０５】
具体的には、例えば、図５において、位置ノードp1と、その位置ノードp1に対応する位置（画素ノードv2に対応する画素の位置）から所定の位置関係Cとしての、例えば、1画素だけ左の位置にある画像内の画素に対応する画素ノードv1との間の重みw11,1と、位置ノードp2と、その位置ノードp2に対応する位置（画素ノードv3に対応する画素の位置）から同一の位置関係Cとしての1画素だけ左の位置にある画像内の画素に対応する画素ノードv2との間の重みw12,2とは、同一の値に拘束される。
【０１０６】
なお、位置ノードpiは、すべての画素ノードv1，v2，・・・，v10との間に重みw1を有するが、ここでは、説明を簡単にするため、位置ノードpiに対応する位置に、前景が存在する場合に、その前景を構成する画素に対応する画素ノード以外の画素ノードと、位置ノードpiとの間の重みw1は、0である（0に拘束される）こととする。
【０１０７】
すなわち、例えば、位置ノードp2については、位置ノードp2に対応する位置に、3×3画素の前景が存在する場合には、その前景を構成する画素に対応する画素ノードは、画素ノードv2，v3、及び、v4であるから、画素ノードv2，v3、及び、v4以外の画素ノードであるv1，v5ないしv10それぞれと、位置ノードp2との間の重みw12,1，w12,5ないしw12,10は、0であることとする。
【０１０８】
ここで、図５では（後述する図でも同様）、重みが0のノードどうしの接続を表す線の図示を、適宜省略してある。
【０１０９】
重みw2の拘束としては、各位置ノードpiについて、位置ノードpiに対応する位置を基準とする所定の範囲R内の背景に対応する背景ノードbkと位置ノードpiとの間の重みw2i,kは、背景ノードbkの発火を抑制する固定値としての、例えば、-1に拘束される。背景ノードbkの発火を抑制する固定値は、背景ノードbkにおいて、その背景ノードbkへの入力を用いて行われる後述する演算によって異なる（設定される）。
【０１１０】
所定の範囲Rとしては、例えば、前景のサイズ（以上）が採用される。
【０１１１】
したがって、例えば、位置ノードp8については、その位置ノードp8に対応する位置を基準（中心）とする所定の範囲Rとしての3画素の範囲内の背景ノードb8,b9,b10との間の重みw28,8，w28,9，w28,10は、-1に固定される。
【０１１２】
また、重みw2の拘束としては、各位置ノードpiについて、位置ノードpiに対応する位置を基準とする所定の範囲R外の背景に対応する背景ノードbkとの間の重みw2i,kは、0に固定される。
【０１１３】
したがって、例えば、位置ノードp8については、その位置ノードp8に対応する位置を基準とする所定の範囲Rとしての3画素の範囲外の背景ノードb1ないしb7それぞれとの間の重みw28,1ないしw28,7は、0に固定される。
【０１１４】
重みw3の拘束としては、各背景ノードbkについて、背景ノードbkに対応する背景の画素（背景が映る画素）以外の画素に対応する画素ノードvk'（k≠k'）との間の重みw3k,k'は、0に固定される。
【０１１５】
なお、重みw3については、その他、例えば、背景ノードbkと、その背景ノードbkに対応する背景の画素、及び、その背景の画素の周辺の画素を含む複数の画素以外の画素に対応する画素ノードvk'との間の重みw3を、0に固定することができる。
【０１１６】
また、重みw3については、拘束なしとすることができる。
【０１１７】
ネットワーク学習部１７（図２）は、以上のように、重みw1，w2、及び、w3を拘束し、データ記憶部１４に記憶された画像を、学習用データとして用いて、見え／位置認識ネットワークの学習を、例えば、BP(Back Propagation)法に従って行う。
【０１１８】
図６は、見え／位置認識ネットワークの情報伝達を説明する図である。
【０１１９】
見え／位置認識ネットワークでは、図５及び図６において、上から下方向への情報伝達、すなわち、位置ノードから、背景ノード及び画素ノードへの情報伝達と、背景ノードから画素ノードへの情報伝達とが行われる。
【０１２０】
見え／位置認識ネットワークの学習においては、ネットワーク学習部１７は、学習用データとしての画像を、画像層に与えるとともに、前景層に、8×8個の位置情報の初期値を与える。
【０１２１】
ここで、位置情報の初期値としては、例えば、ランダムな値や、任意の固定値等を採用することができる。
【０１２２】
前景層では、8×8個の各位置情報が、その位置情報に対応する位置ノードpiに入力値として入力される。
【０１２３】
位置ノードpiは、その位置ノードpiへの入力値の重み付け加算を行い、その重み付け加算の結果得られる重み付け加算値を引数とする所定の関数の演算を行う。そして、位置ノードpiは、所定の関数の演算を、位置ノードpiの出力値として出力する。
【０１２４】
図５で説明したように、位置ノードpiで求められる重み付け加算値は、その位置ノードpi（へ）の入力値である位置情報そのものとなる。
【０１２５】
位置ノードpiは、所定の関数f(yi)として、例えば、f(yi)=exp(yi)／Σexp(yj)を採用し、重み付け加算値yiを引数とする関数f(yi)を演算して、その結果得られる演算値f(yi)を、出力値として出力する。
【０１２６】
なお、式f(yi)=exp(yi)／Σexp(yj)において、exp()は、ネイピア数を底とする指数関数を表す。また、Σは、yjのインデクスjを、1から、位置ノードpiの数（本実施の形態では、8×8個）までの整数に代えてのサメーションを表す。したがって、関数f(yi)は、exp(yi)を正規化する関数である。
【０１２７】
ここで、位置ノードpiの出力値を、以下、適宜、piとも記載する。
【０１２８】
位置ノードpiの入力値である位置情報、さらには、その位置情報に対応する、位置ノードpiの出力値、つまり、位置ノードpiの発火の程度は、その位置ノードpiに対応する位置に、前景が存在することの可能性（程度）を表す。本実施の形態では、位置情報は、例えば、0ないし1の範囲の値で、値が大であるほど、前景が存在することの可能性が高いことを表すこととする。
【０１２９】
位置ノードpiの出力値は、各背景ノード及び各画素ノードに入力される。
【０１３０】
背景ノードbkについては、図５で説明したように、背景ノードと位置ノードとの間の重みw2が拘束されているため、実質的に、位置ノードpk-2，pk-1、及び、pkの出力値だけが入力される。
【０１３１】
背景ノードbkは、その背景ノードbkへの入力の重み付け加算を行い、その重み付け加算の結果得られる重み付け加算値を引数とする所定の関数の演算を行う。そして、背景ノードbkは、所定の関数の演算を、背景ノードbkの出力値として出力する。
【０１３２】
ここで、上述したように、背景ノードpiには、位置ノードpk-2，pk-1、及び、pkそれぞれの出力値だけが入力される。
【０１３３】
したがって、背景ノードbkで得られる重み付け加算値は、位置ノードpk-2，pk-1、及び、pkの出力値それぞれに、対応する重みw2k-2,k，w2k-1,k、及び、w2k,kそれぞれを乗算した乗算値の総和w2k-2,kpk-2＋w2k-1,kpk-1＋w2k,kpkとなる。
【０１３４】
なお、図５で説明したように、重みw2i,i，w2i,i+1、及び、w2i,i+2は、-1に固定（拘束）される。したがって、重みw2k-2,k，w2k-1,k、及び、w2k,kも、-1に固定されるため、背景ノードbkで得られる重み付け加算値は、w2k-2,kpk-2＋w2k-1,kpk-1＋w2k,kpk＝−(pk-2＋pk-1＋pk)となる。
【０１３５】
例えば、背景ノードb3の重み付け加算値は、−(p1＋p2＋p3）となり、背景ノードb4の重み付け加算値は、−(p2＋p3＋p4）となる。
【０１３６】
背景ノードbkは、所定の関数f(x)として、例えば、f(x)=1+xを採用し、重み付け加算値−(pk-2＋pk-1＋pk)を引数xとする関数f(x)を演算して、その結果得られる演算値1−(pk-2＋pk-1＋pk)を、出力値として出力する。
【０１３７】
ここで、位置ノードpiは、画像中の前景の位置に対応するので、図６において、(x方向の)8個の位置ノードp1ないしp8のうちの、画像層に与えられる画像に存在する前景（ここでは、１つの前景）の位置を表す位置ノードpiの入力値だけが、例えば、1になり（位置ノードpiが最も発火し）、他の位置ノードの入力値は、例えば、0になるのが、理想的である。
【０１３８】
そこで、ここでは、8個の位置ノードp1ないしp8のうちの、画像層に与えられる画像に存在する前景の位置を表す位置ノードpiの入力値だけが1になり、他の位置ノードの入力値が0になっていると仮定する。
【０１３９】
さらに、以下では、説明を簡単にするため、位置ノードpiの入力値と出力値とが等しい、すなわち、位置ノードpiが入力値をそのまま出力値として出力することとする。
【０１４０】
この場合、背景ノードbkの出力値1−(pk-2＋pk-1＋pk)を求めるのに用いられる位置ノードの３つの出力値pk-2，pk-1、及び、pkについては、その３つの出力値pk-2，pk-1、及び、pkのすべてが0であるケースと、３つの出力値pk-2，pk-1、及び、pkのうちの１つだけが1で、他の２つが0であるケースとがある。
【０１４１】
３つの出力値pk-2，pk-1、及び、pkのすべてが0である場合、背景ノードbkの出力値1−(pk-2＋pk-1＋pk)は、1になり、３つの出力値pk-2，pk-1、及び、pkのうちの１つだけが1である場合（他の２つが0である場合）、背景ノードbkの出力値1−(pk-2＋pk-1＋pk)は、0になる。
【０１４２】
背景ノードbkの出力値は、各画素ノードに入力される。
【０１４３】
画素ノードvkについては、図５で説明したように、画素ノードと位置ノードとの間の重みw1、及び、画素ノードと背景ノードとの重みw3が拘束されているため、実質的に、位置ノードpk-2，pk-1、及び、pkそれぞれの出力値、並びに、背景ノードbkの出力値だけが入力される。
【０１４４】
画素ノードvkは、その画素ノードvkへの入力の重み付け加算を行い、その重み付け加算の結果得られる重み付け加算値を引数とする所定の関数の演算を行う。そして、画素ノードvkは、所定の関数の演算を、画素ノードvkの出力値として出力する。
【０１４５】
ここで、上述したように、画素ノードvkには、位置ノードpk-2，pk-1、及び、pkそれぞれの出力値、並びに、背景ノードbkの出力値だけが入力される。
【０１４６】
したがって、画素ノードvkで得られる重み付け加算値は、w1k-2,kpk-2＋w1k-1,kpk-1＋w1k,kpk＋w3k,kbkとなる。
【０１４７】
画素ノードvkは、重み付け加算値を引数とする所定の関数としての、例えば、ハイパブリックタンジェントtanhを演算し、その結果得られる演算値を、出力値として出力する。
【０１４８】
画素ノードvkの出力値を画素値とする画像は、見え／位置認識ネットワークにおいて、前景層に入力値として与えられた位置情報から予測された、その位置情報が表す位置に前景が存在する画像であり、以下、予測画像ともいう。
【０１４９】
ネットワーク学習部１７（図２）では、予測画像の、学習用データとしての画像（以下、学習用画像ともいう）に対する誤差を小さくする重みw1i,k，w3k,k、及び、前景層に与える入力値（位置ノードpiの入力値）としての位置情報が、BP法により求められる。なお、重みw2i,kは、図５で説明したように、-1又は0に固定されているので、求める必要はない（既に求められている）。
【０１５０】
BP法によれば、予測画像の画素値としての画素ノードvkの出力値の、学習用画像の、対応する画素値に対する誤差が求められ、その誤差を逆伝播して、誤差を小さくする重みw1i,k，w3k,k、及び、位置ノードpiの入力値としての位置情報が求められる。
【０１５１】
なお、通常のニューラルネットワークを学習するときのBP法では、誤差を逆伝播して、誤差を小さくするように、重みが更新されるが、見え／位置認識ネットワークの学習では、重みw1i,k及びw3k,kの他、位置ノードpiの入力値としての位置情報も、誤差を小さくするように更新される。位置ノードpiの入力値としての位置情報の更新は、重みw1i,k及びw3k,kの更新と同様にして行われる（位置情報の更新量は、BP法での重みw1i,k及びw3k,kの更新の方法と同様に決定される）。
【０１５２】
ここで、上述したように、位置ノードの３つの出力値pk-2，pk-1、及び、pkについては、その３つの出力値pk-2，pk-1、及び、pkのすべてが0であるケースと、３つの出力値pk-2，pk-1、及び、pkのうちの１つだけが1で、他の２つが0であるケースとがある。
【０１５３】
いま、説明を簡単にするため、画素ノードvkが、その画素ノードvkへの入力の重み付け加算値を、そのまま、画素ノードvkの出力値として出力することとすると、３つの出力値pk-2，pk-1、及び、pkのうちの１つとしての、例えば、出力値pkだけが1で、他の２つの出力値pk-2及びpk-1が0である場合、画素ノードvkの出力値は、w1k-2,kpk-2＋w1k-1,kpk-1＋w1k,kpk＋w3k,kbk＝w1k,k＋w3k,kbkとなる。
【０１５４】
なお、３つの出力値pk-2，pk-1、及び、pkのうちの１つだけが1である場合（他の２つが0である場合）、上述したように、背景ノードbkの出力値（1−(pk-2＋pk-1＋pk)）は、0になる。したがって、結局、画素ノードvkの出力値w1k,k＋w3k,kbkは、w1k,kになる。
【０１５５】
ここでは、３つの出力値pk-2，pk-1、及び、pkのうちの、出力値pkだけが1で、他の２つの出力値pk-2及びpk-1が0であることとしたが、出力値pk-1だけが1である場合には、画素ノードvkの出力値は、w1k-1,kになり、出力値pk-2だけが1である場合には、画素ノードvkの出力値は、w1k-2,kになる。
【０１５６】
一方、３つの出力値pk-2，pk-1、及び、pkのすべてが0である場合、画素ノードv3の出力値は、w1k-2,kpk-2＋w1k-1,kpk-1＋w1k,kpk＋w3k,kbk＝w3k,kbkとなる。
【０１５７】
なお、３つの出力値pk-2，pk-1、及び、pkのすべてが0である場合、上述したように、背景ノードbkの出力値（1−(pk-2＋pk-1＋pk)）は、1になる。したがって、結局、画素ノードvkの出力値w3k,kbkは、w3k,kになる。
【０１５８】
上述したように、見え／位置認識ネットワークの学習では、予測画像の、学習用画像に対する誤差を小さくする重みw1i,k，w3k,k、及び、位置ノードpiの入力値としての位置情報が、BP法により求められるが、予測画像の、学習用画像に対する誤差を小さくする重みw1i,k及びw3k,kとしては、それぞれ、学習用画像の前景及び背景の見えが反映された重みw1i,k及びw3k,kが求められる。また、予測画像の、学習用画像に対する誤差を小さくする位置情報（以下、誤差最小化位置情報ともいう）としては、学習用画像の前景の位置を表す位置情報が求められる。
【０１５９】
いま、例えば、学習用画像の、画素ノードv3,v4,v5に対応する画素に、物体（前景）が映っており、そのような学習用画像の前景の位置を表す位置情報が、前景層に与えられたとする。すなわち、画素ノードv3,v4,v5に対応する画素に、物体（前景）が映っている学習用画像について、理想的に、画素ノードv3,v4,v5に対応する画素でなる範囲R'の中心の位置に対応する位置ノードp3に、値が1の位置情報が入力値として入力され、他の位置ノードp1,p2、及び、p4ないしp8に、値が0の位置情報が入力値として入力されたとする。
【０１６０】
この場合、画素ノードv3,v4,v5に対応する画素でなる範囲R'の中心の位置に対応する位置ノードp3の出力値が1になり、他の位置ノードp1,p2、及び、p4ないしp8の出力値が0になる。
【０１６１】
その結果、背景ノードb3,b4,b5の出力値は、0になり、他の背景ノードb1,b2,b6ないしb10の出力値は、1になる。
【０１６２】
出力値が1の背景ノードb1,b2,b6,b7,b8,b9,b10に対応する画素ノードv1,v2,v6,v7,v8,v9,v10の出力値それぞれは、上述したようにして、重みであるw31,1，w32,2，w36,6，w37,7，w38,8，w39,9，w310,10になる。
【０１６３】
また、出力値が0の背景ノードb3,b4,b5に対応する画素ノードv3,v4,v5の出力値それぞれは、上述したようにして、重みであるw13,3，w13,4，w13,5になる。
【０１６４】
いまの場合、学習用画像において、画素ノードv3,v4,v5に対応する画素には、前景が映っており、他の画素ノードv1,v2,v6,v7,v8,v9,v10に対応する画素には、背景が映っている。
【０１６５】
ネットワーク学習部１７（図２）では、画素ノードvkの出力値を画素値とする予測画像の、学習用画像に対する誤差を小さくする重みw1i,k，w3k,kが、BP法により求められるので、重みw13,3，w13,4，w13,5には、前景（物体）が反映され、重みw31,1，w32,2，w36,6，w37,7，w38,8，w39,9，w310,10には、背景が反映される。
【０１６６】
すなわち、見え／位置認識ネットワークの学習では、重みw13,3，w13,4，w13,5において、前景が映る、画素ノードv3,v4,v5に対応する画素の画素値が、それぞれ獲得され、重みw31,1，w32,2，w36,6，w37,7，w38,8，w39,9，w310,10において、背景が映る、画素ノードv1,v2,v6,v7,v8,v9,v10に対応する画素の画素値が、それぞれ獲得される。
【０１６７】
また、以上のように、学習用画像の前景の位置を表す位置情報が、前景層に与えられること、すなわち、画素ノードv3,v4,v5に対応する画素に、物体（前景）が映っている学習用画像について、理想的に、画素ノードv3,v4,v5に対応する画素でなる範囲R'の中心の位置に対応する位置ノードp3に、値が1の位置情報が入力され、他の位置ノードp1,p2、及び、p4ないしp8に、値が0の位置情報が入力されることを前提として、予測画像の、学習用画像に対する誤差を小さくすることにより、重みw13,3，w13,4，w13,5には、前景（物体）が反映され、重みw31,1，w32,2，w36,6，w37,7，w38,8，w39,9，w310,10には、背景が反映される。
【０１６８】
したがって、予測画像の、学習用画像に対する誤差を小さくすることにより、前景が反映された重みw13,3，w13,4，w13,5、及び、背景が反映された重みw31,1，w32,2，w36,6，w37,7，w38,8，w39,9，w310,10が求められるには、前景層に与えられる位置情報が、学習用画像の前景の位置を表す位置情報になっていること、すなわち、いまの場合、学習用画像の前景の位置に対応する位置ノードp3に入力される入力値としての位置情報が1で、他の位置ノードp1,p2、及び、p4ないしp8に入力される入力値としての位置情報が0になっていることが必要である。
【０１６９】
以上から、BP法によって、予測画像の、学習用画像に対する誤差を小さくするように、重みw1i,k及びw3k,k、及び、位置ノードpiの入力値としての位置情報を更新していくことにより、重みw1i,k及びw3k,kは、学習用画像の前景及び背景を反映した値になり、位置情報は、学習用画像の前景の位置を表す値になる。
【０１７０】
重みw1ないしw3は、図５で説明したように拘束されるため、様々な位置に前景が映っている画像（前景及び背景の見えが同一の画像）を、学習用画像として用いて、見え／位置認識ネットワークの学習を行うことにより、重みw1i,kにおいて、前景の見えが獲得され、重みw3k,kにおいて、背景の見えが獲得される。
【０１７１】
なお、重みw1については、図５で説明したように、ある位置ノードpiに対応する位置から所定の位置関係Cの位置にある画像内の画素に対応する画素ノードvi+cと位置ノードpiの間の重みw1i,i+Cと、他の位置ノードpi'に対応する位置から同一の位置関係Cにある画像内の画素に対応する画素ノードvi'+Cと位置ノードpi'の間の重みw1i',i'+Cとは、同一の値に拘束されるため、前景層の位置ノードそれぞれと画素ノードの間の重みw1では、同一の前景の見えが獲得される（任意の位置ノードpiと画素ノードの間の重みw1と、他の任意の位置ノードpi'と画素ノードの間の重みw1とで、同一の前景の見えが獲得される）。
【０１７２】
以上のように、重みw1i,kにおいて、前景の見えが獲得され、重みw3k,kにおいて、背景の見えが獲得された（学習済みの）見え／位置認識ネットワークにおいて、位置ノードp1ないしp8のうちの１つである、例えば、位置ノードp3だけを発火させると、すなわち、
位置ノードp3に入力される位置情報のみを1とし、他の位置ノードp1,p2、及び、p4ないしp8に入力される位置情報を0とすると（位置ノードp3のみの出力値が1になると）、発火した位置ノードp3に対応する位置を中心とする前景の範囲R'内の画素に対応する画素ノードv3,v4,v5には、発火した位置ノードp3から、前景の見えを獲得した重みw13,3，w13,4，w13,5が伝達される。
【０１７３】
一方、背景層では、発火した位置ノードp3に対応する位置を中心とする前景の範囲R'内の画素（背景）に対応する背景ノードb3,b4,b5の発火が抑制される。すなわち、背景ノードb3,b4,b5の出力値は0になる。
【０１７４】
背景ノードb3,b4,b5の出力値が0である場合、背景ノードb3,b4,b5からは、それぞれ、対応する画素ノードv3,v4,v5に対して、背景の見えを獲得した重みw33,3，w34,4，w35,5が伝達されない。
【０１７５】
以上から、前景の範囲R'内の画素に対応する画素ノードv3,v4,v5には、重みw13,3，w13,4，w13,5において見えが獲得された前景が現れる。
【０１７６】
また、位置ノードp3（のみ）が発火した場合、前景層から、発火した位置ノードp3に対応する位置を中心とする前景の範囲R'内の画素以外の画素に対応する画素ノードv1,v2、及び、v6ないしv10への情報伝達は、抑制される。
【０１７７】
一方、背景層では、発火した位置ノードp3に対応する位置を中心とする前景の範囲R'内の画素（背景）に対応する背景ノードb3,b4,b5の発火は抑制されるが、その他の背景ノードb1,b2、及び、b6ないしb10は発火する。すなわち、背景ノードb1,b2、及び、b6ないしb10の出力値は1になる。
【０１７８】
背景ノードb1,b2、及び、b6ないしb10の出力値が1である場合、背景ノードb1,b2、及び、b6ないしb10からは、それぞれ、対応する画素ノードv1,v2、及び、v6ないしv10に対して、背景の見えを獲得した重みw31,1，w32,2、及び、w36,6ないしw310,10が伝達される。
【０１７９】
以上から、前景の範囲R'外の画素に対応する画素ノードv1,v2、及び、v6ないしv10には、重みw31,1，w32,2、及び、w36,6ないしw310,10において見えが獲得された背景が現れる。
【０１８０】
したがって、（学習済みの）見え／位置認識ネットワークでは、前景層に、前景の位置情報を与えると、画像層から、重みw1で見えが獲得された前景を、重みw3で見えが獲得された背景の、前景層に与えた位置情報が表す位置に重畳した画像、すなわち、前景層に与えられた位置情報が表す位置に前景が存在する画像を予測した予測画像を得ることができる。
【０１８１】
また、（学習済みの）見え／位置認識ネットワークによれば、重みw1ないしw3を、学習で得られた値に固定して、前景層に位置情報を与えることにより画像層から得られる予測画像の、見え／位置認識ネットワークに入力される画像（入力画像）に対する誤差を小さくする位置情報(誤差最小化位置情報）を、BP法によって求めることにより、入力画像上の前景の位置を表す位置情報を得ることができる（前景の位置を認識することができる）。
【０１８２】
ここで、前景層に与える位置情報については、前景の位置に対応する位置ノードに入力値として入力される位置情報だけが1となり、他の位置ノードに入力値として入力される位置情報が0となるのが理想的であるが、すなわち、前景層を構成する位置ノードについては、１つの位置ノードの出力値だけが1になり（最も発火し）、他の位置ノードの出力値が0になるのが理想的であるが、BP法において、必ずしもそのような理想的な位置ノードの入力値（位置情報）が求められるとは限らない。
【０１８３】
そのため、見え／位置認識ネットワークを用いた前景の位置の認識では、例えば、前景層を構成する位置ノードの中で、BP法によって求められる、入力値としての位置情報（誤差最小化位置情報）が最大の位置ノードに対応する位置を、前景の位置の最終的な認識結果とすることができる。
【０１８４】
なお、見え／位置認識ネットワークに対する入力画像については、前景の位置の認識で求められる位置情報である入力値が最大の位置ノードの、その入力値が1に近く、かつ、他の位置ノードの入力値が0に近いほど、入力画像の前景と背景が、それぞれ、重みw1で見えが獲得された前景と、重みw3で見えが獲得された背景であり、かつ、前景が、入力値が最大の位置ノードに対応する位置にある可能性が高い。
【０１８５】
一方、入力値が最大の位置ノードの入力値が1に近くない場合、又は、入力値が最大ではない位置ノードの入力値が0に近くない場合には、入力画像の前景又は背景が、重みw1で見えが獲得された前景、又は、重みw3で見えが獲得された背景ではない可能性が高い。
【０１８６】
したがって、見え／位置認識ネットワークによれば、入力画像の前景の位置を認識することができる他、入力画像の前景と背景が、それぞれ、重みw1で見えが獲得された前景と、重みw3で見えが獲得された背景であるかどうかを認識することができる。
【０１８７】
以上のように、前景層の位置ノード、背景層の背景ノード、及び、画像層の画素ノードが相互に接続されている見え／位置認識ネットワークの学習を、位置ノードと画素ノードとの間の重みw1、位置ノードと背景ノードとの間の重みw2、及び、背景ノードと画素ノードとの間の重みw3を拘束して行うことにより、エージェントがアクションを行う環境中の物体等の学習を、容易に行うことができる。
【０１８８】
すなわち、物体へのマーキングや、画像からの閉領域の抽出を行うことなく、見え／位置認識ネットワークにおいて、画像のみから、その画像中の背景、及び、前景（物体）の見えを獲得することができる。
【０１８９】
さらに、学習済みの見え／位置認識ネットワークによれば、その見え／位置認識ネットワークが見えを獲得した背景、及び、前景から構成される画像について、その画像のみから、前景の位置を認識する（前景の位置情報を得る）ことができる。
【０１９０】
なお、以上においては、画像に、前景が１つだけ含まれることを前提としたが、画像に含まれる前景の数は、１つではなく、複数であってもよい。
【０１９１】
図７は、背景に、２つ（以下）の前景が重畳されている画像に対処する見え／位置認識ネットワークの例を示す図である。
【０１９２】
なお、図７では、図４の場合と同様に、画像は、10×10画素で構成され、前景は、（最大で）3×3画素で構成されることとする。
【０１９３】
図７の見え／位置認識ネットワークでは、図４の１つの前景層に代えて、２つの前景層#1及び#2が設けられている。
【０１９４】
前景層#1及び#2は、図４の前景層と同様に、64＝8×8個の位置ノードを有し、前景層#1及び#2の位置ノードは、やはり、図４の前景層の位置ノードと同様に、背景層の背景ノード、及び、画像層の画素ノードと接続されている。
【０１９５】
但し、前景層#1と#2との間では、位置ノードどうしは、接続されていない。
【０１９６】
以上のように、２つの前景層#1及び#2を有する見え／位置認識ネットワークでは、２つの前景を含む学習用画像を用いた学習を行うことにより、前景層#1の位置ノードと画像層の画素ノードとの間の重みw1で、学習用画像の２つの前景のうちの一方の前景の見えが獲得されるとともに、前景層#2の位置ノードと画像層の画素ノードとの間の重みw1'で、学習用画像の２つの前景のうちの他方の前景の見えが獲得され、背景層の背景ノードと画像層の画素ノードとの間の重みw3で、学習用画像の背景の見えが獲得される。
【０１９７】
なお、２つの前景層#1及び#2を有する見え／位置認識ネットワークの学習では、前景層#1の位置ノードと画像層の画素ノードとの間の重みw1、前景層#2の位置ノードと画像層の画素ノードとの間の重みw1'、前景層#1の位置ノードと背景層の背景ノードとの間の重みw2、前景層#2の位置ノードと背景層の背景ノードとの間の重みw2'、背景層の背景ノードと画像層の画素ノードとの間の重みw3は、図５で説明したように拘束されるが、重みw1とw1'との間、及び、重みw2とw2'との間は、特に拘束されない。
【０１９８】
以下、本件発明者が行った、見え／位置認識ネットワークのシミュレーションについて説明する。
【０１９９】
図８は、見え／位置認識ネットワークのシミュレーションで採用した運動指令を説明する図である。
【０２００】
シミュレーションでは、運動指令として、ハンドの移動速度を指示する速度ベクトル(Vx,Vy)を採用した。
【０２０１】
図９は、シミュレーションで用いる学習用画像の例を示す図である。
【０２０２】
図９の学習用画像は、図３で説明したように、3×3画素の前景が、10×10画素の背景に重畳されたグレースケールの画像であり、前景として、２つの物体であるハンドと非身体とが映っている。
【０２０３】
図１０は、シミュレーションで用いる学習用画像の構成要素の例を示す図である。
【０２０４】
学習用画像は、背景と、２つの前景#1及び#2とから構成される。
【０２０５】
シミュレーションでは、背景上の様々な位置に、２つの前景#1及び#2が、重ならないように配置された80枚の画像を、学習用画像として用いて、図７に示した２つの前景層#1及び#2が設けられている見え／位置認識ネットワークの学習を行った。
【０２０６】
ここで、学習用画像において、前景#1及び#2のうちの一方はハンドで、他方は非身体である。ハンドは、図８に示した運動指令としての速度ベクトルに従って動き、非身体は、ハンドと接触することによって動くことがある。
【０２０７】
図１１は、見え／位置認識ネットワークのシミュレーションの結果を示す図である。
【０２０８】
すなわち、図１１は、学習用画像を構成する背景と２つの前景、及び、図７の見え／位置認識ネットワークの学習結果としての、見え／位置認識ネットワークが学習用画像を用いた学習により獲得した背景と２つの前景（の見え）を示している。
【０２０９】
図７の見え／位置認識ネットワークの学習結果では、各背景ノードと、その背景ノードに対応する背景の画素に対応する画素ノードとの間の重みw3において、学習用画像の背景の見えが獲得されている。
【０２１０】
また、図７の見え／位置認識ネットワークの学習結果では、前景層#1又は#2の任意の１つの位置ノードと、その位置ノードに対応する位置を中心とする3×3の9箇所の位置にある画素に対応する9つの画素ノードとの間の重みw1又はw1'において、学習用画像の前景#1又は#2の見えが、それぞれ獲得されている。
【０２１１】
以上のように、見え／位置認識ネットワークによれば、学習用画像から、背景と、１以上の前景それぞれとを分離して獲得することができる。そして、見え／位置認識ネットワークによれば、学習用画像と同一の見えの背景及び前景を有する画像上の前景の位置を認識することができる。
【０２１２】
［MTRNN］
【０２１３】
次に、ネットワーク記憶部１５に記憶された識別ネットワークとしてのMTRNNについて説明する。
【０２１４】
MTRNNは、内部状態としてのコンテキストを記憶するノード群として、コンテキストの更新が異なる時定数で行われるノード群を有するRNNであり、MTRNNそれ自体については、例えば、Y. Yamashita and J. Tani, “Emergence of Functional Hierarchy in a Multiple Timescale Neural Network Model: a Humanoid Robot Experiment,” PLoS Comput. Biol., vol.4, 2008.に記載されている。
【０２１５】
図１２は、識別ネットワークとしてのMTRNNの構成例を示す図である。
【０２１６】
図１２において、MTRNNは、運動指令Vx入出力層、運動指令Vy入出力層、物体位置入出力層、Cf(fast Context)層（第１のコンテキスト層）、及び、Cs(slow context)層（第２のコンテキスト層）を有する。
【０２１７】
図１２において、運動指令Vx入出力層、運動指令Vy入出力層、及び、物体位置入出力層は、いずれも、Cf層と双方向に接続されている。Cf層は、運動指令Vx入出力層、運動指令Vy入出力層、及び、物体位置入出力層の他、Cs層とも双方向に接続されている。
【０２１８】
図１３は、図１２のMTRNNのより詳細な構成例を示す図である。
【０２１９】
なお、運動指令Vx入出力層、及び、運動指令Vy入出力層には、それぞれ、運動指令としての速度ベクトル(Vx,Vy)のx成分Vx、及び、y成分Vyが入出力されるが、以下、適宜、運動指令Vx入出力層、及び、運動指令Vy入出力層をまとめて、運動指令入出力層ともいう。
【０２２０】
図１３において、MTRNNの運動指令入出力層、物体位置入出力層、Cf層、及び、Cs層は、いずれも、1個以上のノードからなる。
【０２２１】
運動指令入出力層、及び、物体位置入出力層のそれぞれのノードは、Cf層のノードと双方向に接続されており、Cf層のノードは、さらに、Cs層のノードと双方向に接続されている。
【０２２２】
また、Cf層、及び、Cs層のそれぞれのノードは、同一の層のノードとも接続されている。
【０２２３】
MTRNNの運動指令入出力層、物体位置入出力層、Cf層、及び、Cs層を構成するノードは、コンテキストループを有し、コンテキストを記憶（内部状態を更新）するニューロンである。
【０２２４】
すなわち、時刻tのノードの記憶値を、y(t)と、時刻tのノードへの入力を、x(t)と、時定数を、Tと、それぞれ表すこととすると、MTRNNの運動指令入出力層、物体位置入出力層、Cf層、及び、Cs層それぞれを構成するノードは、時刻tにおいて更新されたノードの内部状態を記憶値y(t)として記憶する。そして、ノードは、記憶値y(t)を、必要な他のノードに出力するとともに、コンテキストループを介して、ノード自身（自己）にフィードバックし、時刻t+1において、ノードの記憶値y(t+1)を、式y(t+1)＝(1-1/T)y(t)＋1/Tf(Σwixi(t))に従って更新する。
【０２２５】
ここで、式y(t+1)＝(1-1/T)y(t)＋1/Tf(Σwixi(t))において、f()は、例えば、シグモイド関数やハイパブリックタンジェントtanh等の微分可能な所定の関数である。
【０２２６】
また、式y(t+1)＝(1-1/T)y(t)＋1/Tf(Σwixi(t))において、xi(t)は、時刻tにおけるノードへの入力（記憶値y(t)がノードにフィードバックされるときの、そのノードへの入力）のうちのi番目の入力を表し、wiは、入力xi(t)を出力したノードとの間の重み（結合加重）を表す。さらに、Σは、インデクスiを、1から、ノードへの入力の総数Nまでの範囲の整数に変えてのサメーションを表す。
【０２２７】
運動指令入出力層のノードについては、外部から与えられる運動指令や、Cf層のノードの出力（式y(t+1)＝(1-1/T)y(t)＋1/Tf(Σwixi(t))に従って更新された記憶値）が、ノードへの入力xi(t)となる。
【０２２８】
物体位置入出力層のノードについては、外部から与えられる位置情報や、Cf層のノードの出力（記憶値）が、ノードへの入力xi(t)となる。
【０２２９】
Cf層のノードについては、Cf層の他のノードの出力や、運動指令入出力層のノードの出力、物体位置入出力層のノードの出力、Cs層のノードの出力が、ノードへの入力xi(t)となる。
【０２３０】
Cs層のノードについては、Cs層の他のノードの出力や、Cf層のノードの出力が、ノードへの入力xi(t)となる。
【０２３１】
式y(t+1)＝(1-1/T)y(t)＋1/Tf(Σwixi(t))によれば、時定数Tによって、ノードの記憶値y(t+1)に対して、過去の記憶値y(t)を影響させる程度を調整することができる。
【０２３２】
すなわち、時定数Tとしては、1以上の値を設定することができる。
【０２３３】
時定数Tが大であれば、過去の記憶値y(t)が、ノードの記憶値y(t+1)に大きく影響し、その結果、ノードの記憶値y(t+1)は、過去の記憶値y(t)を、長期間、いわば引きずっているかのように、緩やかに変化する。
【０２３４】
一方、時定数Tが小であるほど、ノードの記憶値y(t+1)が過去の記憶値y(t)から受ける影響は小さくなり、ノードへの入力xi(t)に影響され易くなる。
【０２３５】
なお、時定数Tが1である場合、ノードでは、コンテキストループがないNN(Neural Network)と同様に、ノードへの入力xi(t)を用いて、過去の記憶値y(t)の影響のない記憶値y(t+1)が求められる。
【０２３６】
運動指令入出力層は、例えば、2個のノードを有し、時定数Tとして、例えば、2が設定されている。MTRNNの内部では、運動指令入出力層のノードは、Cf層のノードとの間で、情報伝達を行う。MTRNNの外部との間では、運動指令入出力層のノードには、運動指令としての速度ベクトル(Vx,Vy)のx成分Vx、及び、y成分Vyが入出力される。
【０２３７】
物体位置入出力層は、見え／位置認識ネットワーク（図４）の前景層を構成する位置ノードの数と同一の8×8＝64個のノードを有し、時定数Tとして、例えば、1が設定されている。MTRNNの内部では、物体位置入出力層のノードは、Cf層のノードとの間で、情報伝達を行う。MTRNNの外部との間では、物体位置入出力層のノードには、見え／位置認識ネットワークの前景層の8×8個の位置ノードに入出力されるのと同様の8×8個の位置情報が入出力される。
【０２３８】
Cf層は、例えば、10ないし80程度の範囲内の値である10個程度のノードを有し、時定数Tとして、例えば、4が設定されている。Cf層のノードは、運動指令入出力層、物体位置入出力層、及び、Cs層のそれぞれのノード、並びに、Cf層の他のノードとの間で、情報伝達を行う。
【０２３９】
Cs層は、例えば、4ないし32程度の範囲内の値である16個程度のノードを有し、時定数Tとして、Cf層の時定数より大の、例えば、70が設定されている。Cs層のノードは、Cf層のノード、及び、Cs層の他のノードとの間で、情報伝達を行う。
【０２４０】
ここで、Cf層の時定数Tは、4であり、したがって、Cf層のノードの記憶値y(t+1)は、過去の記憶値y(t)の影響を受けて、ある程度ゆっくり変化する。
【０２４１】
また、時定数Tが、Cf層よりも大きい70であるCs層のノードの記憶値y(t+1)は、過去の記憶値y(t)の影響を大きく受けて、極めてゆっくり変化する。
【０２４２】
MTRNNは、Cf層及びCs層それぞれのノードのような、記憶値y(t+1)の変化の速さ（時間軸）が異なるノード（群）を有している。
【０２４３】
ここで、MTRNNでは、図１３において、下から上方向への情報伝達（運動指令入出力層や物体位置入出力層から、Cf層、さらには、Cs層への情報伝達）と、上から下方向への情報伝達（Cs層から、Cf層、さらには、運動指令入出力層や物体位置入出力層への情報伝達）とを行うことができる。
【０２４４】
MTRNNの情報伝達のうちの、下から上方向への情報伝達を、上り伝達ともいい、上から下方向への情報伝達を、下り伝達ともいう。
【０２４５】
図１４は、MTRNNの学習、及び、MTRNNを用いた認識と生成の処理を説明する図である。
【０２４６】
すなわち、図１４Ａは、MTRNNの学習を、図１４Ｂは、MTRNNを用いた認識を、図１４Ｃは、MTRNNを用いた生成を、それぞれ説明する図である。
【０２４７】
まず、図１４Ａを参照して、MTRNNの学習を説明する。
【０２４８】
MTRNNの学習では、MTRNNのノードの記憶値y(t+1)を更新する式y(t+1)＝(1-1/T)y(t)＋1/Tf(Σwixi(t))における重みwi、つまり、MTRNNの、接続されているノードどうしの間の重みと、Cs層のノードの記憶値（コンテキスト）の初期値が求められる。
【０２４９】
MTRNN学習部１８（図２）は、データ記憶部１４に対応付けられて記憶された運動指令と画像とのセットの系列を、MTRNNの学習用データとして用いて、MTRNNの学習を行う。
【０２５０】
なお、MTRNNの学習用データとしての画像は、見え／位置認識ネットワーク（図４）の学習に用いられる学習用画像と同一の背景と前景を有する画像であることとする。
【０２５１】
MTRNN学習部１８は、学習用画像データとしての（運動指令と画像とのセットの系列のうちの）画像の系列を、見え／位置認識ネットワークに入力し、見え／位置認識ネットワークにおいて、そこに入力された画像の系列の各画像（入力画像）について、前景の位置の認識結果として得られる、前景層を構成する8×8個の位置ノードの入力値（位置ノードに位置情報を入力することにより画素ノードから出力される出力値を画素値とする予測画像の、入力画像に対する誤差を小さくする位置情報）を求める。
【０２５２】
ここで、以上のようにして見え／位置認識ネットワークで得られる位置情報は、エージェントにおいて、運動指令が発せられたとき（直後）の、画像に映る物体の位置を表す。
【０２５３】
MTRNN学習部１８は、MTRNNの学習用データとしての運動指令の系列の各運動指令について、その運動指令と、その運動指令に対応付けられた画像から得られた前景の位置の認識結果としての位置情報とを対応付け、MTRNNの学習用データに含める。そして、MTRNN学習部１８は、MTRNNの学習用データを用いて、MTRNNの学習を、例えば、RNNの学習アルゴリズムの１つであるBPTT(Back Propagation Through Time)法に従って行う。
【０２５４】
すなわち、MTRNN学習部１８は、MTRNNの学習用データとしての各時刻tの運動指令を、運動指令入出力層のノードに与える（入力する）とともに、その運動指令に対応付けられた位置情報を、物体位置入出力層のノードに与える。MTRNNでは、上り伝達が行われ、その後、下り伝達が行われ、その結果、運動指令入出力層のノードには、次の時刻t+1の運動指令の予測値が記憶され、位置情報入出力層のノードには、次の時刻t+1の位置情報の予測値が記憶される。
【０２５５】
そして、MTRNN学習部１８では、時刻t+1の運動指令の予測値の予測誤差、及び、時刻t+1の位置情報の予測値の予測誤差を、例えば、所定の閾値以下等の小さい値にする重みwiと、Cs層のノードの記憶値（コンテキスト）の初期値が求められる。
【０２５６】
なお、Cs層のノードの記憶値（コンテキスト）の初期値としては、例えば、0が用いられる。
【０２５７】
また、MTRNNの学習開始直後においては、MTRNNのノードの記憶値が、適切な値になっていないため、MTRNN学習部１８では、MTRNNの学習開始直後の、例えば、4時刻等の数時刻で得られる運動指令及び位置情報の予測値は、重みwiと、Cs層のノードの記憶値の初期値を求めるのに用いられない（無視される）。
【０２５８】
図１４Ｂを参照して、（学習済みの）MTRNNを用いた認識を説明する。
【０２５９】
MTRNNを用いた認識では、例えば、運動指令が認識される。
【０２６０】
認識生成部１９（図２）は、データ記憶部１４に対応付けられて記憶された運動指令と画像とのセットの系列から、運動指令の系列を取り出し、その運動指令の系列を、認識対象として、認識対象の運動指令（以下、対象運動指令ともいう）の系列の認識を、例えば、BPTT法を利用して行う。
【０２６１】
すなわち、認識生成部１９は、各時刻tの対象運動指令を、運動指令入出力層のノードに与える。MTRNNでは、上り伝達が行われ、その後、下り伝達が行われ、その結果、運動指令入出力層のノードには、次の時刻t+1の対象運動指令の予測値が記憶される。
【０２６２】
そして、認識生成部１９では、学習により得られたMTRNNの重みwiを固定した状態で、時刻t+1の対象運動指令の予測値の予測誤差を、例えば、所定の閾値以下等の小さい値にするCs層のノードの記憶値（コンテキスト）の初期値が求められる。
【０２６３】
対象運動指令の予測値の予測誤差を小さくする、Cs層のノードの記憶値（コンテキスト）の初期値が、対象運動指令（の系列）の認識結果であり、以下、固有初期値ともいう。
【０２６４】
図１４Ｃを参照して、（学習済みの）MTRNNを用いた生成を説明する。
【０２６５】
MTRNNを用いた生成では、例えば、ある運動指令が発せられたときの、その運動指令に従って動く物体（ここでは、エージェントのハンド）の位置を表す位置情報の予測値が生成される。
【０２６６】
認識生成部１９（図２）は、対象運動指令の認識の結果得られた固有初期値を、MTRNNのCs層のノードの初期値（以下、Cs初期値ともいう）として与える（ノードの記憶値とする）。MTRNNでは、下り伝達が行われ、その結果、物体位置入出力層のノードでは、対象運動指令が発せられたときの、その対象運動指令に従って動く物体の位置情報の予測値が記憶されて出力される。
【０２６７】
図１５は、本件発明者が行った、図１４のMTRNNについて行ったシミュレーションの結果を示す図である。
【０２６８】
MTRNNのシミュレーションでは、180パターンのMTRNNの学習用データとして、180パターンの運動指令の系列と、各運動指令に従って動いた物体の位置情報の系列とを用意し、MTRNNの学習を行った。
【０２６９】
学習用データとしての位置情報は、MTRNNの物体位置入出力層の8×8＝64個のノード（及び見え／位置認識ネットワークの前景層の8×8＝64個の位置ノード）の記憶値に相当する8×8個の値であり、例えば、位置情報としての64＝8×8個の値のうちの、物体が存在する位置に対応する値だけが1になっており、残りの63個の値は0になっている。
【０２７０】
シミュレーションでは、以上のようなMTRNNの学習用データの他、その学習用データの位置情報を補正した補正位置情報を、補正前の位置情報に代えて含む学習用データ（以下、補正学習用データともいう）を用意し、学習用データと、補正学習用データとのそれぞれを用いて、同一構成の別個のMTRNNの学習を行った。
【０２７１】
以下、（補正がされていない）学習用データを用いて学習が行われたMTRNNを、補正なしMTRNNともいい、補正学習用データを用いて学習が行われたMTRNNを、補正ありMTRNNともいう。
【０２７２】
位置情報の補正は、
(R1)8×8個の値のうちの、最大値が、その最大値の位置に隣接する位置の値である隣接値の20倍の値になるように、最大値と隣接値を調整する。
(R2)8×8個の値のうちの、最大値に隣接しない値は0とする。
(R3)8×8個の値の総和を、1.0にする。
という３つのルールR1，R2、及び、R3に従って行った。
【０２７３】
なお、隣接値としては、最も多い場合で、最大値の上、下、左、右、左上、左下、右上、及び、右下に隣接する位置の8個の値が存在し、最も少ない場合で、8×8個の位置の四隅のいずれかの位置の値が最大値であるときで、3個の値が存在する。
【０２７４】
例えば、隣接値として、最大値の上、下、左、右、左上、左下、右上、及び、右下に隣接する位置の8個の値が存在する場合、最大値の補正後の値をxとすると、ルールR1，R2、及び、R3によれば、式x8＋20x＝1.0を解くことにより、位置情報としての8×8個の値のうちの、最大値は、x＝0.714に、8個の隣接値は、x/20＝0.036に、残りの値は、0に、それぞれ補正される。
【０２７５】
ここで、上述の場合には、ルールR1において、（補正後の）最大値と隣接値との関係が、最大値が隣接値の20倍の値となる関係になるように、最大値と隣接値を調整する補正を行うこととしたが、補正後の最大値と隣接値との関係は、そのような関係に限定されるものではない。
【０２７６】
図６で説明したように、位置情報としての8×8個の値については、物体が存在する位置の値だけが1になり（最も発火し）、他の位置の値が0になるのが理想的であるが、位置情報の補正としては、そのような理想的な位置情報としての8×8個の値が得られた場合であっても、発火している位置に隣接する位置等の、発火している位置の周辺の位置を、いわば僅かに発火させる補正（以下、なまし補正ともいう）を採用することができる。
【０２７７】
シミュレーションでは、MTRNNの学習後、その学習によって得られた補正なしMTRNN、及び、補正ありMTRNNそれぞれに、学習用データとは異なる20パターンの運動指令の系列を与えて、運動指令の系列の認識（図１４Ｂ）を行い、その後、認識によって得られる固有初期値を、補正なしMTRNN、及び、補正ありMTRNNそれぞれのCs初期値として用いて、認識の対象となった運動指令（対象運動指令）の系列に対して、その対象運動指令の系列に従って動く物体の位置情報の予測値を生成した。
【０２７８】
さらに、シミュレーションでは、20パターンの対象運動指令の系列に対して得られた位置情報の予測値の予測誤差を求めた。
【０２７９】
シミュレーションで求めた位置情報の予測値の予測誤差は、位置情報の予測値としての8×8個の値のうちの最大値の位置（最も発火している位置）と、対象運動指令に従って動く物体の実際の位置（真値）との距離である。
【０２８０】
図１５は、シミュレーションにおいて、補正なしMTRNN、及び、補正ありMTRNNのそれぞれを用いて得られた位置情報の予測値の予測誤差の平均値（平均距離）と、標準偏差とを示している。
【０２８１】
図１５によれば、学習用データとしての位置情報のなまし補正を行って、MTRNNの学習に用いた方が、位置情報のなまし補正を行わない場合に比較して、予測誤差を低減することができることを確認することができる。
【０２８２】
以上においては、画像に、前景が１つだけ含まれることを前提としたが、画像に含まれる前景の数は、１つではなく、複数であってもよい。さらに、画像に複数の前景となる物体が含まれる場合には、その複数の物体としては、運動指令に従って動く物体と、運動指令に従って動く物体ではない物体とが混在していてもよい。
【０２８３】
図１６は、背景に、２つの前景#1及び#2が重畳されている画像に対処するMTRNNの例を示す図である。
【０２８４】
図１６において、MTRNNは、運動指令入出力層、第１物体位置入出力層、第２物体位置入出力層、Cf1層、Cf2層、及び、Cs層を有する。
【０２８５】
図１６において、運動指令入出力層、及び、第１物体位置入出力層は、いずれも、Cf1層と双方向に接続されている。さらに、運動指令入出力層、及び、第２物体位置入出力層は、いずれも、Cf2層と双方向に接続されている。
【０２８６】
Cf1層は、運動指令入出力層、及び、第１の物体位置入出力層の他、Cs層とも双方向に接続されており、Cf2層は、運動指令入出力層、及び、第２の物体位置入出力層の他、Cs層とも双方向に接続されている。
【０２８７】
図１６において、MTRNNの運動指令入出力層、第１物体位置入出力層、第２物体位置入出力層、Cf1層、Cf2層、及び、Cs層は、いずれも、1個以上のノードからなる。
【０２８８】
運動指令入出力層、及び、第１物体位置入出力層のそれぞれのノードは、Cf1層のノードと双方向に接続されており、Cf1層のノードは、さらに、Cs層のノードと双方向に接続されている。
【０２８９】
また、運動指令入出力層、及び、第２物体位置入出力層のそれぞれのノードは、Cf2層のノードと双方向に接続されており、Cf2層のノードは、さらに、Cs層のノードと双方向に接続されている。
【０２９０】
Cf1層、Cf2層、及び、Cs層のそれぞれのノードは、同一の層のノードとも接続されている。
【０２９１】
なお、運動指令入出力層、第１物体位置入出力層、第２物体位置入出力層、Cf1層、Cf2層、及び、Cs層を構成するノードは、図１３で説明した場合と同様に、コンテキストループを有し、コンテキストを記憶（内部状態を更新）するニューロンであり、記憶値y(t+1)を、式y(t+1)＝(1-1/T)y(t)＋1/Tf(Σwixi(t))に従って更新する。
【０２９２】
図１６では、運動指令入出力層のノードについては、外部から与えられる運動指令や、Cf1層のノードの出力（式y(t+1)＝(1-1/T)y(t)＋1/Tf(Σwixi(t))に従って更新された記憶値）、Cf1層のノードの出力が、ノードへの入力xi(t)となる。
【０２９３】
第１物体位置入出力層のノードについては、外部から与えられる前景#1及び#2のうちの一方の位置情報や、Cf1層のノードの出力（記憶値）が、ノードへの入力xi(t)となる。
【０２９４】
第２物体位置入出力層のノードについては、外部から与えられる前景#1及び#2のうちの他方の位置情報や、Cf2層のノードの出力（記憶値）が、ノードへの入力xi(t)となる。
【０２９５】
Cf1層のノードについては、Cf1層の他のノードの出力や、運動指令入出力層のノードの出力、第１物体位置入出力層のノードの出力が、ノードへの入力xi(t)となる。
【０２９６】
Cf2層のノードについては、Cf2層の他のノードの出力や、運動指令入出力層のノードの出力、第２物体位置入出力層のノードの出力が、ノードへの入力xi(t)となる。
【０２９７】
Cs層のノードについては、Cs層の他のノードの出力や、Cf1層のノードの出力、Cf2層のノードの出力が、ノードへの入力xi(t)となる。
【０２９８】
運動指令入出力層は、図１３の場合と同様に、2個のノードを有し、時定数Tとして、例えば、2が設定されている。MTRNNの内部では、運動指令入出力層のノードは、Cf1層、及び、Cf2層のそれぞれのノードとの間で、情報伝達を行う。MTRNNの外部との間では、運動指令入出力層のノードには、運動指令としての速度ベクトル(Vx,Vy)のx成分Vx、及び、y成分Vyが入出力される。
【０２９９】
第１物体位置入出力層、及び、第２物体位置入出力層は、見え／位置認識ネットワーク（図４、図７）の前景層を構成する位置ノードの数と同一の8×8＝64個のノードを有し、時定数Tとして、例えば、1が設定されている。
【０３００】
MTRNNの内部では、第１物体位置入出力層のノードは、Cf1層のノードとの間で、情報伝達を行い、第２物体位置入出力層のノードは、Cf2層のノードとの間で、情報伝達を行う。MTRNNの外部との間では、第１物体位置入出力層のノードには、前景#1及び#2のうちの一方の位置情報としての8×8個の値が入出力され、第２物体位置入出力層のノードには、前景#1及び#2のうちの他方の位置情報としての8×8個の値が入出力される。
【０３０１】
Cf1層及びCf2層は、図１３のCf層と同様に、10ないし80程度の範囲内の値である10個程度のノードを有し、時定数Tとして、例えば、4が設定されている。Cf1層のノードは、運動指令入出力層、第１物体位置入出力層、及び、Cs層のそれぞれのノード、並びに、Cf1層の他のノードとの間で、情報伝達を行い、Cf2層のノードは、運動指令入出力層、第２物体位置入出力層、及び、Cs層のそれぞれのノード、並びに、Cf2層の他のノードとの間で、情報伝達を行う。
【０３０２】
Cs層は、図１３の場合と同様に、4ないし32程度の範囲内の値である16個程度のノードを有し、時定数Tとして、Cf1層及びCf2層の時定数より大の、例えば、70が設定されている。MTRNNの内部では、Cs層のノードは、Cf層のノード、及び、Cs層の他のノードとの間で、情報伝達を行う。
【０３０３】
図１６のMTRNNによれば、運動指令の系列と、その運動指令に従って動く物体としての前景、及び、運動指令に従って動く物体以外の物体としての前景との２つの前景#1及び#2それぞれの位置情報の系列とが与えられた場合に、運動指令の系列に従って動く物体の位置情報の系列、ひいては、前景#1及び#2のうちのいずれが、運動指令の系列に従って動く物体であるかを識別する識別処理を行うことができる。
【０３０４】
すなわち、例えば、運動指令の系列と、その運動指令に従って動く物体としての前景、及び、運動指令に従って動く物体以外の物体としての前景との２つの前景#1及び#2を含む画像から得られる、前景#1及び#2それぞれの位置情報の系列とを、学習用データとして用意し、その学習用データを用いて、図１６のMTRNNの学習（図１４Ａ）を行う。
【０３０５】
さらに、運動指令の系列と、その運動指令に従って動く物体としての前景、及び、運動指令に従って動く物体以外の物体としての前景との２つの前景#1及び#2を含む画像から得られる、前景#1及び#2それぞれの位置情報の系列とを、前景#1及び#2のうちのいずれが、運動指令の系列に従って動く物体であるかを識別するための識別用データとして用意し、識別用データとしての運動指令の系列を、図１６のMTRNNに与えて、認識（図１４Ｂ）、及び、生成（図１４Ｃ）を行う。
【０３０６】
識別用データとしての運動指令の系列をMTRNNに与えて行われる認識、及び、生成の処理によれば、第１物体位置入出力層のノードから、前景#1の位置情報の予測値（第１物体位置入出力層のノードの記憶値）が得られるとともに、第２物体位置入出力層のノードから、前景#2の位置情報の予測値（第２物体位置入出力層のノードの記憶値）が得られる。
【０３０７】
前景#1及び#2それぞれの位置情報の予測値が得られた後は、その前景#1の位置情報の予測値の、識別用データとしての前景#1の位置情報に対する予測誤差、及び、前景#2の位置情報の予測値の、識別用データとしての前景#2の位置情報に対する予測誤差を求めることにより、それらの予測誤差に基づいて、前景#1及び#2のうちのいずれが、運動指令の系列に従って動く物体であるかを識別することができる。
【０３０８】
すなわち、前景#1及び#2のうちの、位置情報の予測値の予測誤差が小さい方を、運動指令の系列に従って動く物体であると識別することができる。
【０３０９】
以下、ネットワーク記憶部１５に、背景に２つの前景#1及び#2が重畳されている画像に対処可能な図７の見え／位置認識ネットワークと、図１６のMTRNNとが、識別ネットワークとして記憶されていることとして、図２のエージェントが行う処理を説明する。
【０３１０】
［学習処理］
【０３１１】
図１７は、ネットワーク記憶部１５に記憶された識別ネットワークの学習を行う学習処理を説明するフローチャートである。
【０３１２】
ここで、図１で説明したように、エージェントのハンドは、非身体（エージェントの身体ではない物体）が置いてあるテーブル上に置かれており、エージェントは、アクション制御部１２（図２）が発する運動指令に従って、ハンドを動かしながら、テーブルを背景とし、かつ、非身体及びハンドを前景とする画像を、カメラ１１で撮影する。
【０３１３】
エージェントにおいて、カメラ１１で撮影された画像と、アクション制御部１２が発する運動指令とは、対応付けられて、データ記憶部１４に記憶される。
【０３１４】
ステップＳ１１では、学習部１６が、データ記憶部１４に対応付けて記憶された運動指令と画像とのセットの系列を読み出すことにより、その運動指令と画像とのセットの系列を、学習用データとして取得して、処理は、ステップＳ１２に進む。
【０３１５】
ステップＳ１２では、ネットワーク学習部１７は、ネットワーク記憶部１５に記憶された識別ネットワークとしての見え／位置認識ネットワークの重みを、図５で説明したように拘束し、学習用データとしての画像を、見え／位置認識ネットワークに与えて、見え／位置認識ネットワークの学習を、BP法に従って行う。
【０３１６】
ネットワーク学習部１７は、見え／位置認識ネットワークの学習によって、見え／位置認識ネットワークの重みを求め、見え／位置認識ネットワークの学習結果として、ネットワーク記憶部１６に記憶させて、処理は、ステップＳ１２からステップＳ１３に進む。
【０３１７】
なお、ここでは、見え／位置認識ネットワークは、２つの前景層#1及び#2を有しているので、ステップＳ１２の見え／位置認識ネットワークの学習では、図７に示したように、前景層#1の位置ノードと画像層の画素ノードとの間の重みw1、前景層#2の位置ノードと画像層の画素ノードとの間の重みw1'、前景層#1の位置ノードと背景層の背景ノードとの間の重みw2、前景層#2の位置ノードと背景層の背景ノードとの間の重みw2'、及び、背景層の背景ノードと画像層の画素ノードとの間の重みw3が求められる。
【０３１８】
但し、前景層#1の位置ノードと背景層の背景ノードとの間の重みw2については、図５で説明したように、値が、0又は-1の固定値に拘束されるので、学習結果としての重みw2としては、その固定値がそのまま採用される。前景層#2の位置ノードと背景層の背景ノードとの間の重みw2'についても、同様である。
【０３１９】
ステップＳ１３では、MTRNN学習部１８は、学習用データとしての画像の系列を、ネットワーク記憶部１５に記憶された（学習済みの）見え／位置認識ネットワークに入力し、これにより、学習用データとしての画像に映る２つの前景#1及び#2となっている物体の位置情報の系列を求めて、処理は、ステップＳ１４に進む。
【０３２０】
すなわち、MTRNN学習部１８は、見え／位置認識ネットワークの前景層#1に位置情報#1を与えるとともに、前景層#2に、位置情報#2を与え、その位置情報#1及び#2に対して、画像層から出力される予測画像の、学習用データとしての画像に対する誤差を求める。そして、MTRNN学習部１８は、見え／位置認識ネットワークの重みw1ないしw3を固定したまま、予測画像の誤差を小さくする位置情報#1及び#2を、BP法により求める。
【０３２１】
なお、ここでは、説明を簡単にするため、例えば、位置情報#1が、前景#1の位置情報であり、位置情報#2が、前景#2の位置情報であることとする。
【０３２２】
以上のようにして、学習用データとしての画像について、見え／位置認識ネットワークで得られる位置情報#1及び#2は、その位置情報#1及び#2が得られた画像、及び、その画像とセットになっている運動指令とセットにされ、学習用データに含められる。
【０３２３】
ステップＳ１４では、MTRNN学習部１８は、ステップＳ１３で求められた学習用データとしての位置情報#1及び#2のそれぞれを、図１５で説明したルールR1ないしR3に従って補正するなまし補正を行って、処理は、ステップＳ１５に進む。
【０３２４】
ステップＳ１５では、MTRNN学習部１８は、ネットワーク記憶部１５に記憶された識別ネットワークとしてのMTRNNに、学習用データとしての運動指令と、なまし補正後の位置情報#1及び#2とのセットの系列を与えて、MTRNNの学習を、BPTT法に従って行う。
【０３２５】
MTRNN学習部１８は、MTRNNの学習によって、MTRNNの重みwi、及び、Cs層のノードの記憶値（コンテキスト）の初期値を求め、MTRNNの学習結果として、ネットワーク記憶部１６に記憶させて、処理は終了する。
【０３２６】
なお、図１７の識別ネットワークの学習処理では、見え／位置認識ネットワークの学習を終了してから、MTRNNの学習を行うこととしたが、見え／位置認識ネットワークの学習と、MTRNNの学習とは、並行して行うことができる。
【０３２７】
識別ネットワークの学習処理において、見え／位置認識ネットワークの学習と、MTRNNの学習とを並行して行う場合には、ネットワーク学習部１７は、学習用データとしての時刻tの画像を、見え／位置認識ネットワークに入力し、時刻tの画像の前景の位置情報を求める（前景の位置を認識する）。
【０３２８】
その後、MTRNN学習部１８は、MTRNNに、学習用データとしての時刻tの運動指令と、見え／位置認識ネットワークで得られた時刻tの位置情報とを与え、次の時刻t+1の運動指令の予測値の予測誤差を小さくするMTRNNの重みとCs層のノードの記憶値（コンテキスト）の初期値とを、BPTT法に従って求める。
【０３２９】
さらに、MTRNN学習部１８は、MTRNNの重みとCs層のノードの記憶値の初期値を、BPTT法に従って求めた値に固定し、MTRNNに、学習用データとしての時刻tの運動指令と、見え／位置認識ネットワークで得られた時刻tの位置情報とを与えて、時刻t+1の位置情報の予測値を求める。
【０３３０】
ネットワーク学習部１７は、時刻t+1の位置情報の予測値を、見え／位置認識ネットワークの位置ノードに入力値として与えて、時刻t+1の画像の予測値（予測画像）を生成し、その時刻t+1の画像の予測値の予測誤差を小さくする見え／位置認識ネットワークの重み（値が固定値に拘束されている重み以外の重み）を、BP法により求める。
【０３３１】
ネットワーク学習部１７、及び、MTRNN学習部１８では、例えば、ネットワーク学習部１７で求められる時刻t+1の画像の予測値の予測誤差、及び、MTRNN学習部１８で求められる時刻t+1の運動指令の予測値の予測誤差が収束等するまで、同様の処理が繰り返され、これにより、見え／位置認識ネットワークの学習と、MTRNNの学習とが並行して行われる。
【０３３２】
［識別処理］
図１８は、エージェント（図２）において、ネットワーク記憶部１５に記憶された識別ネットワークを用いて、画像に含まれる２つの前景#1及び#2のうちのいずれが、運動指令の系列に従って動く物体であるかを識別する識別処理を説明するフローチャートである。
【０３３３】
ここで、図１７で説明したように、エージェント（図２）では、アクション制御部１２が発する運動指令に従って、ハンドを動かしながら、テーブルを背景とし、かつ、非身体及びハンドを前景とする画像が、カメラ１１で撮影されている。そして、カメラ１１で撮影された画像と、アクション制御部１２が発する運動指令とは、対応付けられて、データ記憶部１４に記憶されている。
【０３３４】
ステップＳ２１では、認識生成部１９が、データ記憶部１４に対応付けて記憶された運動指令と画像とのセットの系列を読み出すことにより、その運動指令と画像とのセットの系列を、運動指令に従って動く物体である身体（ここでは、ハンド）を識別する対象の識別用データとして取得して、処理は、ステップＳ２２に進む。
【０３３５】
ここで、識別用データとして取得する運動指令と画像とのセットの系列は、学習用データとしての運動指令と画像とのセットの系列と全部、又は、一部が一致する系列であっても良いし、学習用データとしての運動指令と画像とのセットの系列とは別の系列であってもよい。
【０３３６】
ステップＳ２２では、認識生成部１９は、ネットワーク記憶部１５に記憶された識別ネットワークとしての見え／位置認識ネットワークに、識別用データとしての画像の系列を入力し、図１７のステップＳ１３と同様にして、識別用データとしての画像に映る２つの前景#1及び#2となっている物体それぞれの位置情報#1及び#2の系列を求める。
【０３３７】
さらに、認識生成部１９は、8×8個の値の位置情報#1のうちの最大値の位置を、前景#1の位置の真値として求めるとともに、8×8個の値の位置情報#2のうちの最大値の位置を、前景#2の位置の真値として求め、識別部２０に供給して、処理は、ステップＳ２２からステップＳ２３に進む。
【０３３８】
ステップＳ２３では、MTRNNを用いた認識（図１４Ｂ）が行われる。
【０３３９】
すなわち、ステップＳ２３では、認識生成部１９は、識別用データとしての運動指令の系列を、認識対象として、その認識対象の運動指令（対象運動指令）の系列を、ネットワーク記憶部１５に記憶された識別ネットワークとしてのMTRNNに与えることにより、対象運動指令の系列の認識を、例えば、BPTT法を利用して行って、処理は、ステップＳ２４に進む。
【０３４０】
具体的には、認識生成部１９は、各時刻tの対象運動指令を、MTRNNに与えることにより、次の時刻t+1の対象運動指令の予測値を求め、MTRNNの重みwiを固定した状態で、時刻t+1の対象運動指令の予測値の予測誤差を小さくするCs層のノードの記憶値（コンテキスト）の初期値である固有初期値を、対象運動指令（の系列）の認識結果として求める。
【０３４１】
ステップＳ２４では、認識生成部１９は、対象運動指令の認識の結果得られた固有初期値を、MTRNNのCs初期値として与えて、MTRNNを用いた生成（図１４Ｃ）を行うことにより、MTRNNの第１物体位置入出力層のノードの出力値を、前景#1及び#2のうちの一方の位置情報の予測値として求めるとともに、MTRNNの第２物体位置入出力層のノードの出力値を、前景#1及び#2のうちの他方の位置情報の予測値として求め、識別部２０に供給して、処理は、ステップＳ２５に進む。
【０３４２】
なお、ここでは、説明を簡単にするため、例えば、第１物体位置入出力層のノードの出力値が、前景#1及び#2のうちの前景#1の位置情報#1の予測値とされ、MTRNNの第２物体位置入出力層のノードの出力値が、前景#1及び#2のうちの前景#2の位置情報#2の予測値とされることとする。
【０３４３】
ステップＳ２５では、識別部２０は、認識生成部１９からステップＳ２４で供給される前景#1の位置情報#1の予測値、及び、前景#2の位置情報#1の予測値、並びに、認識生成部１９からステップＳ２２で供給される前景#1の位置の真値、及び、前景#2の位置の真値を用いて、前景#1の位置情報#1の予測値の予測誤差、及び、前景#2の位置情報#1の予測値の予測誤差を求めて、処理は、ステップＳ２６に進む。
【０３４４】
すなわち、識別部２０は、前景#1の位置情報#1の予測値である8×8の値のうちの最大値の位置と、前景#1の位置の真値との間の距離を、前景#1の位置情報#1の予測値の予測誤差として求める。前景#2の位置情報#2の予測値の予測誤差も、同様にして求められる。
【０３４５】
ステップＳ２６では、識別部２０は、前景#1の位置情報#1の予測値の予測誤差、及び、前景#2の位置情報#1の予測値の予測誤差に基づき、識別用データとしての画像に映る２つの前景#1及び#2のうちのいずれが、識別用データとしての運動指令の系列に従って動く物体であるかを識別し、処理を終了する。
【０３４６】
ここで、識別ネットワークとしてのMTRNNは、学習用データを用いた学習によって、その学習用データとしての運動指令と、その運動指令に従って動く物体である、例えば、ハンドの位置（（ハンドの位置の軌跡（動き））との関係を獲得する。
【０３４７】
したがって、前景#1及び#2のうちの一方が、運動指令に従って動く身体であるハンドであり、他方が、非身体である場合には、MTRNNを用いて得られる前景#1の位置情報#1の予測値、及び、前景#2の位置情報#2の予測値については、運動指令に従って動くハンドの位置情報の予測値の方が、非身体の位置情報の予測値よりも、予測誤差が小さくなる（正解である可能性が高い）。
【０３４８】
そこで、識別部２０は、識別用データとしての画像に映る２つの前景#1及び#2のうちの、位置情報の予測誤差が小さい方を、識別用データとしての運動指令の系列に従って動く物体であると識別する。
【０３４９】
図１９は、本件発明者が行った、図１７の学習処理、及び、図１８の識別処理のシミュレーションの結果を示す図である。
【０３５０】
シミュレーションでは、380パターンの学習用データとして、380パターンの運動指令の系列と、各運動指令に従って動く身体としてのハンドと非身体を前景とする画像の系列とを用意し、図１７の学習処理を行った。
【０３５１】
さらに、シミュレーションでは、図１７の学習処理の終了後、その学習処理によって得られた識別ネットワークとしての見え／位置認識ネットワーク及びMTRNNに、学習用データとは異なる20パターンの運動指令の系列と、各運動指令に従って動く身体としてのハンドと非身体を前景とする画像の系列とを、識別用データとして与えて、図１８の識別処理を行った。
【０３５２】
図１９は、識別処理において得られた、ハンド及び非身体それぞれの位置情報の予測値の予測誤差の平均値（平均距離）と、標準偏差とを示している。
【０３５３】
図１９では、ハンドの位置情報の予測値の予測誤差の平均値は、1.14で、非身体の位置情報の予測値の予測誤差の平均値は、2.41であるから、予測精度を、例えば、予測誤差の平均値の逆数で表すこととすると、識別ネットワークによれば、運動指令に従って動く身体としてのハンドについては、非身体よりも、約2.11（＝2.41／1.14）倍だけ高い予測精度で、位置情報を予測することができる。
【０３５４】
したがって、識別ネットワークを用いて得られる、２つの前景のうちの、位置情報の予測値の予測誤差が小さい方の前景を、運動指令に従って動く身体であると識別することができる。
【０３５５】
なお、画像に含まれる前景の数が、１つだけである場合には、識別ネットワークによれば、例えば、位置情報の予測値の予測誤差が、所定の閾値より大であるときに、前景が身体でない（非身体である）と識別することができ、所定の閾値より大でないときに、前景が身体であると識別することができる。
【０３５６】
また、画像に含まれる前景の数が、複数である場合には、識別ネットワークによれば、例えば、位置情報の予測値の予測誤差が、単に最小の前景を、身体であると識別することもできるし、位置情報の予測値の予測誤差が、最小であり、かつ、閾値以下である前景を、身体であると識別することもできる。
【０３５７】
位置情報の予測値の予測誤差が、最小であり、かつ、閾値以下である前景を、身体であると識別する場合において、位置情報の予測値の予測誤差が、閾値以下になっている前景が存在しないときには、すべての前景が非身体であると識別される。
【０３５８】
［本技術を適用したコンピュータの説明］
【０３５９】
次に、上述した一連の処理は、ハードウェアにより行うこともできるし、ソフトウェアにより行うこともできる。一連の処理をソフトウェアによって行う場合には、そのソフトウェアを構成するプログラムが、汎用のコンピュータ等にインストールされる。
【０３６０】
そこで、図２０は、上述した一連の処理を実行するプログラムがインストールされるコンピュータの一実施の形態の構成例を示している。
【０３６１】
プログラムは、コンピュータに内蔵されている記録媒体としてのハードディスク１０５やROM１０３に予め記録しておくことができる。
【０３６２】
あるいはまた、プログラムは、リムーバブル記録媒体１１１に格納（記録）しておくことができる。このようなリムーバブル記録媒体１１１は、いわゆるパッケージソフトウエアとして提供することができる。ここで、リムーバブル記録媒体１１１としては、例えば、フレキシブルディスク、CD-ROM(Compact Disc Read Only Memory)，MO(Magneto Optical)ディスク，DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリ等がある。
【０３６３】
なお、プログラムは、上述したようなリムーバブル記録媒体１１１からコンピュータにインストールする他、通信網や放送網を介して、コンピュータにダウンロードし、内蔵するハードディスク１０５にインストールすることができる。すなわち、プログラムは、例えば、ダウンロードサイトから、ディジタル衛星放送用の人工衛星を介して、コンピュータに無線で転送したり、LAN(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送することができる。
【０３６４】
コンピュータは、CPU(Central Processing Unit)１０２を内蔵しており、CPU１０２には、バス１０１を介して、入出力インタフェース１１０が接続されている。
【０３６５】
CPU１０２は、入出力インタフェース１１０を介して、ユーザによって、入力部１０７が操作等されることにより指令が入力されると、それに従って、ROM(Read Only Memory)１０３に格納されているプログラムを実行する。あるいは、CPU１０２は、ハードディスク１０５に格納されたプログラムを、RAM(Random Access Memory)１０４にロードして実行する。
【０３６６】
これにより、CPU１０２は、上述したフローチャートにしたがった処理、あるいは上述したブロック図の構成により行われる処理を行う。そして、CPU１０２は、その処理結果を、必要に応じて、例えば、入出力インタフェース１１０を介して、出力部１０６から出力、あるいは、通信部１０８から送信、さらには、ハードディスク１０５に記録等させる。
【０３６７】
なお、入力部１０７は、キーボードや、マウス、マイク等で構成される。また、出力部１０６は、LCD(Liquid Crystal Display)やスピーカ等で構成される。
【０３６８】
ここで、本明細書において、コンピュータがプログラムに従って行う処理は、必ずしもフローチャートとして記載された順序に沿って時系列に行われる必要はない。すなわち、コンピュータがプログラムに従って行う処理は、並列的あるいは個別に実行される処理（例えば、並列処理あるいはオブジェクトによる処理）も含む。
【０３６９】
また、プログラムは、１のコンピュータ（プロセッサ）により処理されるものであっても良いし、複数のコンピュータによって分散処理されるものであっても良い。さらに、プログラムは、遠方のコンピュータに転送されて実行されるものであっても良い。
【０３７０】
さらに、本明細書において、システムとは、複数の構成要素（装置、モジュール（部品）等）の集合を意味し、すべての構成要素が同一筐体中にあるか否かは問わない。したがって、別個の筐体に収納され、ネットワークを介して接続されている複数の装置、及び、１つの筐体の中に複数のモジュールが収納されている１つの装置は、いずれも、システムである。
【０３７１】
なお、本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
【０３７２】
例えば、本技術は、１つの機能をネットワークを介して複数の装置で分担、共同して処理するクラウドコンピューティングの構成をとることができる。
【０３７３】
また、上述のフローチャートで説明した各ステップは、１つの装置で実行する他、複数の装置で分担して実行することができる。
【０３７４】
さらに、１つのステップに複数の処理が含まれる場合には、その１つのステップに含まれる複数の処理は、１つの装置で実行する他、複数の装置で分担して実行することができる。
【０３７５】
なお、本技術は、以下のような構成をとることができる。
【０３７６】
［１］
画像の前景の位置に対応するニューロンである位置ノードからなる前景層と、
画像の背景に対応するニューロンである背景ノードからなる背景層と、
前記背景に前記前景が重畳されている画像の画素に対応するニューロンである画素ノードからなる画像層と
を有し、
前記位置ノード、前記背景ノード、及び、前記画素ノードが、相互に接続されている
ニューラルネットワークである見え／位置認識ネットワークの学習を、前記位置ノードと画素ノードとの間の結合加重である第１の重み、前記位置ノードと背景ノードとの間の結合加重である第２の重み、及び、前記背景ノードと画素ノードとの間の結合加重である第３の重みを拘束し、学習用の画像を用いて行うネットワーク学習部を備え、
前記位置ノードは、入力値として入力される、前記前景の位置を表す位置情報に対応する値を出力し、
前記背景ノードは、前記位置ノードの出力の重み付け加算を含む演算によって得られる値を出力し、
前記画素ノードは、前記位置ノードの出力の重み付け加算、及び、前記背景ノードの出力の重み付け加算を含む演算によって得られる値を出力する
情報処理装置。
［２］
前記ネットワーク学習部は、
任意の２つの位置ノードについて、前記２つの位置ノードのうちの一方の位置ノードに対応する位置から所定の位置関係の位置にある画素に対応する画素ノードと前記一方の位置ノードとの間の第１の重みと、前記２つの位置ノードのうちの他方の位置ノードに対応する位置から前記所定の位置関係の位置にある画素に対応する画素ノードと前記他方の位置ノードとの間の第１の重みとが、同一の値になるように、前記第１の重みを拘束し、
各位置ノードについて、前記位置ノードに対応する位置を基準とする所定の範囲内の背景に対応する背景ノードと前記位置ノードとの間の第２の重みを、前記背景ノードの発火を抑制する固定値に拘束して、
前記見え／位置認識ネットワークの学習を行う
［１］に記載の情報処理装置。
［３］
前記ネットワーク学習部は、さらに、各背景ノードについて、前記背景ノードに対応する背景の画素以外の画素に対応する画素ノードとの間の第３の重みを0に拘束して、前記見え／位置認識ネットワークの学習を行う
［２］に記載の情報処理装置。
［４］
前記ネットワーク学習部は、前記見え／位置認識ネットワークの前記画素ノードから出力される値を画素値とする画像である予測画像の、前記学習用の画像に対する誤差を小さくするように、前記見え／位置認識ネットワークの学習を行う
［１］ないし［３］のいずれかに記載の情報処理装置。
［５］
物体を動かす運動指令に従って動く物体を前景として含む画像の系列に対する前記予測画像の誤差を小さくする、前記見え／位置認識ネットワークの前記位置ノードの入力値となる前記位置情報の系列と、前記運動指令の系列とを用いて、MTRNN(Multiple Timescale Recurrent Neural Network)の学習を行うMTRNN学習部と、
前記運動指令の系列と前記画像の系列とを含む、前記運動指令に従って動く物体の識別に用いる識別用データに含まれる前記運動指令の系列の入力に対して、前記MTRNNから出力される位置情報の予測値の系列の誤差に基づいて、前記識別用データに含まれる前記画像の中の前景が、前記識別用データに含まれる運動指令に従って動く物体であるかどうかを識別する識別部と
をさらに備える
［４］に記載の情報処理装置。
［６］
前記MTRNN学習部は、前記位置ノードの入力値のうちの最大の入力値の位置ノードの周辺の位置ノードの入力値と、前記最大の入力値とが所定の関係になるように前記入力値を補正した、補正後の位置ノードの入力値を、前記位置情報として用いて、前記MTRNNの学習を行う
［５］に記載の情報処理装置。
［７］
前記MTRNNは、
前記位置情報が入出力されるニューロンからなる位置入出力層と、
前記運動指令が入出力されるニューロンからなる運動指令入出力層と、
前記位置入出力層、及び、前記運動指令入出力層のそれぞれと接続される、所定の時定数で記憶値が更新されるニューロンからなる第１のコンテキスト層と、
前記第１のコンテキスト層と接続される、前記所定の時定数よりも大の時定数で記憶値が更新されるニューロンからなる第２のコンテキスト層と
を有する
［５］又は［６］に記載の情報処理装置。
［８］
前記見え／位置認識ネットワークは、前記背景ノード、及び、前記画素ノードのそれぞれと接続される複数の前景層を有する
［１］ないし［７］のいずれかに記載の情報処理装置。
［９］
画像の前景の位置に対応するニューロンである位置ノードからなる前景層と、
画像の背景に対応するニューロンである背景ノードからなる背景層と、
前記背景に前記前景が重畳されている画像の画素に対応するニューロンである画素ノードからなる画像層と
を有し、
前記位置ノード、前記背景ノード、及び、前記画素ノードが、相互に接続されている
ニューラルネットワークである見え／位置認識ネットワークの学習を、前記位置ノードと画素ノードとの間の結合加重である第１の重み、前記位置ノードと背景ノードとの間の結合加重である第２の重み、及び、前記背景ノードと画素ノードとの間の結合加重である第３の重みを拘束し、学習用の画像を用いて行う
ステップを含み、
前記位置ノードは、入力値として入力される、前記前景の位置を表す位置情報に対応する値を出力し、
前記背景ノードは、前記位置ノードの出力の重み付け加算を含む演算によって得られる値を出力し、
前記画素ノードは、前記位置ノードの出力の重み付け加算、及び、前記背景ノードの出力の重み付け加算を含む演算によって得られる値を出力する
情報処理方法。
［１０］
画像の前景の位置に対応するニューロンである位置ノードからなる前景層と、
画像の背景に対応するニューロンである背景ノードからなる背景層と、
前記背景に前記前景が重畳されている画像の画素に対応するニューロンである画素ノードからなる画像層と
を有し、
前記位置ノード、前記背景ノード、及び、前記画素ノードが、相互に接続されている
ニューラルネットワークである見え／位置認識ネットワークの学習を、前記位置ノードと画素ノードとの間の結合加重である第１の重み、前記位置ノードと背景ノードとの間の結合加重である第２の重み、及び、前記背景ノードと画素ノードとの間の結合加重である第３の重みを拘束し、学習用の画像を用いて行うネットワーク学習部
として、コンピュータを機能させるためのプログラムであり、
前記位置ノードは、入力値として入力される、前記前景の位置を表す位置情報に対応する値を出力し、
前記背景ノードは、前記位置ノードの出力の重み付け加算を含む演算によって得られる値を出力し、
前記画素ノードは、前記位置ノードの出力の重み付け加算、及び、前記背景ノードの出力の重み付け加算を含む演算によって得られる値を出力する
プログラム。
【符号の説明】
【０３７７】
１１  カメラ，  １２  アクション制御部，  １３  駆動部，  １４  データ記憶部，  １５  ネットワーク記憶部，  １６  学習部，  １７  ネットワーク学習部，  １８  MTRNN学習部，  １９  認識生成部，  ２０  識別部，  １０１  バス，  １０２  CPU，  １０３  ROM，  １０４  RAM，  １０５  ハードディスク，  １０６  出力部，  １０７  入力部，  １０８  通信部，  １０９  ドライブ，  １１０  入出力インタフェース，  １１１  リムーバブル記録媒体
【図１】
2013120465.tif 000003
【図２】
2013120465.tif 000004
【図３】
2013120465.tif 000005
【図４】
2013120465.tif 000006
【図５】
2013120465.tif 000007
【図６】
2013120465.tif 000008
【図７】
2013120465.tif 000009
【図８】
2013120465.tif 000010
【図９】
2013120465.tif 000011
【図１０】
2013120465.tif 000012
【図１１】
2013120465.tif 000013
【図１２】
2013120465.tif 000014
【図１３】
2013120465.tif 000015
【図１４】
2013120465.tif 000016
【図１５】
2013120465.tif 000017
【図１６】
2013120465.tif 000018
【図１７】
2013120465.tif 000019
【図１８】
2013120465.tif 000020
【図１９】
2013120465.tif 000021
【図２０】
2013120465.tif 000022