(57)【特許請求の範囲】
【請求項１】
環境の状態を表すセンサデータと、エージェントを行動させるためのアクションデータとを含む時系列データを予測するためのRNNを用い、前記時系列データの入力に対して、前記時系列データの予測値を求める予測手段と、
前記時系列データの予測値に含まれるセンサデータの予測値を引数とする所定の関数を演算し、その演算結果である関数値を、前記センサデータの目標値として決定する決定手段と、
前記センサデータの予測値の、前記センサデータの目標値に対する誤差を計算する誤差計算手段と、
前記RNNのパラメータであるウエイトに代えて、前記RNNへの入力となる前記アクションデータを、BPTT法での調整の対象として、BPTT法を実行し、前記センサデータの予測値の、前記アクションデータに対する微分値に対応する値を、前記アクションデータを調整する調整成分として求め、その調整成分によって、前記アクションデータを調整することを、所定の回数だけ、又は、前記誤差が所定の閾値以下になるまで繰り返すことにより、前記センサデータの予測値の誤差を減少させるアクションデータを探索する探索手段と
を備えるデータ処理装置。
【請求項２】
前記アクションデータと、前記エージェントが、前記アクションデータに従って行動したときに観測されるセンサデータとを含む時系列データを用いて、前記RNNの学習である、前記RNNのパラメータの更新を、BPTT法により行う更新手段をさらに備える
請求項１に記載のデータ処理装置。
【請求項３】
時系列データを処理するデータ処理装置が、
環境の状態を表すセンサデータと、エージェントを行動させるためのアクションデータとを含む時系列データを予測するためのRNNを用い、前記時系列データの入力に対して、前記時系列データの予測値を求め、
前記時系列データの予測値に含まれるセンサデータの予測値を引数とする所定の関数を演算し、その演算結果である関数値を、前記センサデータの目標値として決定し、
前記センサデータの予測値の、前記センサデータの目標値に対する誤差を計算し、
前記RNNのパラメータであるウエイトに代えて、前記RNNへの入力となる前記アクションデータを、BPTT法での調整の対象として、BPTT法を実行し、前記センサデータの予測値の、前記アクションデータに対する微分値に対応する値を、前記アクションデータを調整する調整成分として求め、その調整成分によって、前記アクションデータを調整することを、所定の回数だけ、又は、前記誤差が所定の閾値以下になるまで繰り返すことにより、前記センサデータの予測値の誤差を減少させるアクションデータを探索する
ステップを含むデータ処理方法。
【請求項４】
環境の状態を表すセンサデータと、エージェントを行動させるためのアクションデータとを含む時系列データを予測するためのRNNを用い、前記時系列データの入力に対して、前記時系列データの予測値を求める予測手段と、
前記時系列データの予測値に含まれるセンサデータの予測値を引数とする所定の関数を演算し、その演算結果である関数値を、前記センサデータの目標値として決定する決定手段と、
前記センサデータの予測値の、前記センサデータの目標値に対する誤差を計算する誤差計算手段と、
前記RNNのパラメータであるウエイトに代えて、前記RNNへの入力となる前記アクションデータを、BPTT法での調整の対象として、BPTT法を実行し、前記センサデータの予測値の、前記アクションデータに対する微分値に対応する値を、前記アクションデータを調整する調整成分として求め、その調整成分によって、前記アクションデータを調整することを、所定の回数だけ、又は、前記誤差が所定の閾値以下になるまで繰り返すことにより、前記センサデータの予測値の誤差を減少させるアクションデータを探索する探索手段と
して、コンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理装置、データ処理方法、及びプログラムに関し、特に、例えば、ロボット等のエージェントが、汎化が可能な範囲で目標をたて、その目標を達成する行動を、迅速にとることができるようにするデータ処理装置、データ処理方法、及びプログラムに関する。
【背景技術】
【０００２】
例えば、ディスプレイに表示された仮想的なキャラクタや、実世界のロボット等の、行動することが可能なエージェントを環境に適応して行動させる方法としては、エージェントの設計者が、環境を想定してエージェントの行動をプログラミングする方法がある。
【０００３】
しかしながら、エージェントの行動をプログラミングする方法では、エージェントは、プログラミングされていない行動をとることができない。
【０００４】
そこで、エージェントの周囲の環境や、エージェントの行動を学習する学習装置を、エージェントに設け、その学習装置によって、環境に適応した行動を獲得する方法が提案されている（例えば、特許文献１を参照）。
【０００５】
学習装置に行動を獲得させる方法としては、例えば、オフラインで、行動を、明示的に、直接的に教示する方法がある。ここで、行動を、明示的に、直接的に教示するとは、例えば、エージェントとしてのロボットの前に、ボールをおき、ユーザが、ロボットの腕を直接動かして、ボールを左右に転がす行動を教示することを意味する。
【０００６】
しかしながら、行動を、明示的に、直接的に教示する方法では、時々刻々と変化する動的な環境等（知らない（学習していない）環境を含む）に適応することが困難である。
【０００７】
エージェントが、動的な環境等に適応した行動をとることができるようにするには、エージェント（が有する学習装置）が、行動を学習するための新規の学習データを適宜収集し、その学習データを用いて学習を行うことで、新規の行動を獲得する必要がある。
【０００８】
すなわち、エージェント自身が、自律的に新規の行動をとり、その行動の結果を学習することを繰り返すことによって、環境に適応した行動をとるためのモデルを獲得する必要がある。
【０００９】
エージェントが自律的に新規の行動を獲得する方法としては、物理量をセンシングするセンサによって環境をセンシングすることにより得られる、環境の状態を表すセンサデータが目標値となるように、行動を探索し、その行動の結果を学習する方法がある（例えば、非特許文献１を参照）。
【００１０】
非特許文献１に記載の方法では、センサデータの目標値が決定され、センサデータが目標値となる行動を、エージェントが探索することを繰り返す。これにより、エージェントは、自律的に、学習装置（が学習を行うモデル）を発達させ、目標値が得られる新規の行動を獲得する。
【００１１】
新規の行動（をとるためのモデル）を獲得するには、エージェント（が有する学習装置）が、新規の行動をとるための新たな学習データを学習する機能（いわゆる、追加学習を行う機能）が必要である。
【００１２】
さらに、新規の行動を獲得するには、その他、エージェントが、未知の目標を達成する行動、つまり、センサデータが目標値となる行動を探索する第１の機能と、エージェントが行動を拡げるのに必要な目標の決定、つまり、センサデータの目標値の決定を行う第２の機能とが必要である。
【００１３】
第１の機能を実現する代表的な方法としては、強化学習がある。強化学習では、一般には、行動の探索に ε-greedy法が用いられる。ε-greedy法では、行動の探索において、ある確率εで、ランダムな行動が選択され、確率1-εで、これまでで一番良い行動（例えば、目標値に最も近いセンサデータが得られた行動）が選択される。
【００１４】
したがって、ε-greedy法では、新たな行動の探索は、いわゆるランダム探索で行われる。
【００１５】
ここで、行動の探索では、エージェントを行動させるためのアクションデータが生成され、そのアクションデータに従って、エージェントが行動をとる。アクションデータとは、例えば、ロボットの腕や脚等の身体の部位を動かすアクチュエータを駆動するためのデータである。また、アクションデータには、その他、例えば、目に相当する光源を光らせるためのデータや、音声としての合成音を生成するためのデータ等の、エージェントに各種の行動をとらせるのに用いられるデータが含まれる。
【００１６】
単純な行動しかしないエージェントについては、そのエージェントを行動させるためのアクションデータは、少ない数の値をとる離散値となる。
【００１７】
すなわち、例えば、通路の分岐点において選択可能な２つの通路のうちの一方を選択しながら、目的地まで移動するエージェントが、分岐点で通路を選択する行動をためのアクションデータは、例えば、２つの通路を表す0と1の２値をとる離散値となる。
【００１８】
また、単純な行動しかしないエージェントを行動させるためのアクションデータは、その他、例えば、次元の数が少ないデータ（ベクトル）となり、さらに、データ長が短い時系列データとなる。
【００１９】
一方、複雑な行動をとり得るエージェントを行動させるためのアクションデータは、多くの数の値をとる離散値、あるいは、連続値となる。さらに、複雑な行動をとり得るエージェントを行動させるためのアクションデータは、次元の数が多いデータや、データ長が長い時系列データとなる。
【００２０】
アクションデータが、連続値（多くの数の値をとる離散値を含む）や、次元の数が多いデータ、データ長が長い時系列データである場合には、ε-greedy法で行われるランダム探索では、目標を達成する行動をとることができるようになるまでに、非常に多くの試行（行動の探索）が必要になる。
【００２１】
ところで、非特許文献１では、センサデータの目標値がランダムに決定され、A*と呼ばれる探索アルゴリズムで、目標値のセンサデータが得られる行動（アクションデータ）の探索が行われる。
【００２２】
すなわち、非特許文献１では、エージェントが行動を拡げるのに必要な目標の決定、つまり、センサデータの目標値の決定を行う第２の機能を実現する方法として、ランダムに目標をたてる方法が採用されている。
【００２３】
しかしながら、ランダムに目標をたてるのでは、エージェントが達成することができない目標がたてられることがあり、そのような達成できない目標を達成しようとして、いわば、無駄な探索（行動の探索）が行われることがあり得る。
【００２４】
すなわち、ランダムに目標を立てる場合には、エージェントが有するモデルによる汎化が可能な範囲を越えた目標がたてられることがある。
【００２５】
また、センサデータの予測値の誤差を予測し、その誤差の予測値を、行動を学習するモデルとしての関数近似器への入力の一部として用いて、誤差の予測値を、最大値である1.0にすることを目標として、新たな行動を探索する好奇動機を実現する方法が提案されている（例えば、非特許文献２を参照）。
【００２６】
しかしながら、誤差の予測値を、最大値である1.0にすることを目標する場合、つまり、目標値を、ある固定値とする場合には、目標値が、関数近似器の汎化の性能を越える値になることがある。
【００２７】
すなわち、例えば、２つのパターンの時系列データを、学習データとして用いて、関数近似器の学習を行った場合には、関数近似器では、その２つのパターンの記憶が干渉しあって、記憶の共通化が図られる。その結果、関数近似器では、学習したことがない、例えば、学習データとして用いられた２つのパターンの中間のパターンの時系列データを生成することができる。
【００２８】
このような、関数近似器の、複数のパターンの記憶の共通化の能力が汎化であり、汎化によれば、学習データとして用いられたパターンに類似するパターンの時系列データを生成することができる。
【００２９】
しかしながら、汎化の能力を有する関数近似器でも、その汎化の性能を越えるようなパターン、すなわち、例えば、学習データとして用いられたパターンとまったく異なるパターンの時系列データは生成することができない。
【００３０】
このため、目標値が、関数近似器の汎化の性能を越える値になっている場合には、関数近似器の汎化を利用した探索ができず、その結果、目標値に近づく行動の探索が困難になることがある。このことは、非特許文献１に記載のように、ランダムに目標をたてる場合も同様である。
【００３１】
なお、エージェントの行動範囲を拡げるために、過去の行動の記憶との誤差を大きくするように行動する一方で、未知の領域に行き過ぎてしまわないように、ホームポジションに戻る行動の記憶との誤差を小さくするように行動するエージェントが提案されている（例えば、特許文献２を参照）。
【００３２】
特許文献２に記載のエージェントは、行動計画データに従って行動したならば得られるであろうセンサデータやアクションデータを予測し、そのセンサデータやアクションデータに対する報酬(reward)を求める。そして、エージェントが事前に有している行動計画データの中から、行動をとるための行動計画データが選択され、その行動計画データに従って、エージェントが行動する。
【００３３】
したがって、特許文献２に記載のエージェントでは、事前に有している行動計画データに従った行動以外の行動をとることは困難である。
【００３４】
【特許文献１】特開2006-162898号公報
【特許文献２】特開2002-239952号公報
【非特許文献１】土井 利忠、藤田 雅博、下村 秀樹  編、「インテリジェンス・ダイナミクス２  身体を持つ知能  脳科学とロボティクスの共進化」、シュプリンガー・ジャパン、2006
【非特許文献２】J,Tani, "On the Dynamics of Robot Exploration Learning," Cognitive Systems Research, Vol.3, No.3, pp.459-470,(2002)
【発明の開示】
【発明が解決しようとする課題】
【００３５】
上述のように、エージェントが新規の行動を獲得する（新規の行動をとることができるようになる）には、エージェントが、未知の目標を達成する行動を探索する第１の機能と、エージェントが行動を拡げるのに必要な目標の決定を行う第２の機能とが必要である。
【００３６】
そして、第１の機能としての行動の探索を、ランダム探索で行うのでは、目標を達成する行動をとることができるようになるまでに、非常に多くの試行（行動の探索）が必要になる。
【００３７】
また、第２の機能としての目標の決定を、目標値をランダムに決定することや、目標値を、ある固定値に決定することによって行うのでは、目標値に近づく行動の探索が困難になることがある。
【００３８】
本発明は、このような状況に鑑みてなされたものであり、例えば、ロボット等のエージェントが、汎化が可能な範囲で目標をたて、その目標を達成する行動を、迅速にとることができるようにするものである。
【課題を解決するための手段】
【００３９】
本発明の一側面のデータ処理装置、又は、プログラムは、環境の状態を表すセンサデータと、エージェントを行動させるためのアクションデータとを含む時系列データを予測するためのRNNを用い、前記時系列データの入力に対して、前記時系列データの予測値を求める予測手段と、前記時系列データの予測値に含まれるセンサデータの予測値を引数とする所定の関数を演算し、その演算結果である関数値を、前記センサデータの目標値として決定する決定手段と、前記センサデータの予測値の、前記センサデータの目標値に対する誤差を計算する誤差計算手段と、前記RNNのパラメータであるウエイトに代えて、前記RNNへの入力となる前記アクションデータを、BPTT法での調整の対象として、BPTT法を実行し、前記センサデータの予測値の、前記アクションデータに対する微分値に対応する値を、前記アクションデータを調整する調整成分として求め、その調整成分によって、前記アクションデータを調整することを、所定の回数だけ、又は、前記誤差が所定の閾値以下になるまで繰り返すことにより、前記センサデータの予測値の誤差を減少させるアクションデータを探索する探索手段とを備えるデータ処理装置、又は、データ処理装置として、コンピュータを機能させるためのプログラムである。
【００４０】
本発明の一側面のデータ処理方法は、時系列データを処理するデータ処理装置が、環境の状態を表すセンサデータと、エージェントを行動させるためのアクションデータとを含む時系列データを予測するためのRNNを用い、前記時系列データの入力に対して、前記時系列データの予測値を求め、前記時系列データの予測値に含まれるセンサデータの予測値を引数とする所定の関数を演算し、その演算結果である関数値を、前記センサデータの目標値として決定し、前記センサデータの予測値の、前記センサデータの目標値に対する誤差を計算し、前記RNNのパラメータであるウエイトに代えて、前記RNNへの入力となる前記アクションデータを、BPTT法での調整の対象として、BPTT法を実行し、前記センサデータの予測値の、前記アクションデータに対する微分値に対応する値を、前記アクションデータを調整する調整成分として求め、その調整成分によって、前記アクションデータを調整することを、所定の回数だけ、又は、前記誤差が所定の閾値以下になるまで繰り返すことにより、前記センサデータの予測値の誤差を減少させるアクションデータを探索するステップを含むデータ処理方法である。
【００４１】
本発明の一側面においては、環境の状態を表すセンサデータと、エージェントを行動させるためのアクションデータとを含む時系列データを予測するためのRNNを用い、前記時系列データの入力に対して、前記時系列データの予測値が求められ、前記時系列データの予測値に含まれるセンサデータの予測値を引数とする所定の関数が演算され、その演算結果である関数値が、前記センサデータの目標値として決定される。そして、前記センサデータの予測値の、前記センサデータの目標値に対する誤差が計算され、前記RNNのパラメータであるウエイトに代えて、前記RNNへの入力となる前記アクションデータを、BPTT法での調整の対象として、BPTT法が実行され、前記センサデータの予測値の、前記アクションデータに対する微分値に対応する値が、前記アクションデータを調整する調整成分として求められ、その調整成分によって、前記アクションデータが調整されることが、所定の回数だけ、又は、前記誤差が所定の閾値以下になるまで繰り返されることにより、前記センサデータの予測値の誤差を減少させるアクションデータが探索される。
【００４２】
なお、プログラムは、伝送媒体を介して伝送することにより、又は、記録媒体に記録して、提供することができる。
【００４３】
また、データ処理装置は、独立した装置であっても良いし、１つの装置を構成している内部ブロックであっても良い。
【発明の効果】
【００４４】
本発明の一側面によれば、例えば、ロボット等のエージェントが、目標をたて、その目標を達成する行動をとることができる。特に、エージェントが、汎化が可能な範囲で目標をたて、その目標を達成する行動を、迅速にとることができる。
【発明を実施するための最良の形態】
【００４５】
図１は、本発明を適用したデータ処理装置の一実施の形態の構成例を示すブロック図である。
【００４６】
図１において、データ処理装置は、学習装置１０と生成装置２０とから構成され、例えば、実世界のロボット等のエージェントを制御する制御ブロックの一部を構成する。
【００４７】
なお、図１では、学習装置１０と生成装置２０が、データ処理装置を構成するが、例えば、データ処理装置は、生成装置２０だけで構成し、学習装置１０は、他のデータ処理装置として構成することができる。
【００４８】
学習装置１０は、モデル記憶部１１、及びモデル更新部１２から構成される。学習装置１０は、時系列データを用いて、予測モデルの学習である、予測モデルのパラメータの更新を行う。
【００４９】
すなわち、モデル記憶部１１は、エージェントが行動をとるためのモデルとして、時系列データを予測するための予測モデル（のパラメータであるモデルパラメータ）を記憶する。
【００５０】
ここで、予測モデルとしては、例えば、RNN(Recurrent Neural Network)等のNN(Neural Network)，SVR(Support Vector Regression)、その他の、関数を近似する関数近似器を採用することができる。
【００５１】
ここでは、予測モデルとして、例えば、RNNを採用することとする。予測モデルとして、RNNを採用する場合、RNNを構成する、ニューロンに相当するノードにおいて、他のノードからの入力に付されるウエイト（重み）が、RNNのモデルパラメータである。
【００５２】
なお、予測モデルとしてのRNNについては、例えば、エージェントが、ある基本的な行動（例えば、直線や、円、８の字等を描くように移動する行動等）をとるためにあらかじめ用意された学習データを用いての学習が、既に終了していることとする。
【００５３】
モデル更新部１２には、物理量をセンシングするセンサ（図示せず）によって環境をセンシングすることにより得られる、環境の状態を表すセンサデータと、エージェントを行動させるためのアクションデータとを含む時系列データが供給される。
【００５４】
すなわち、エージェントは、そのエージェント自身が存在する環境等の物理量をセンシングするセンサを有し、モデル更新部１２には、そのセンサが出力する、環境等の状態を表すセンサデータとしての時系列データが供給される。
【００５５】
ここで、センサとしては、例えば、画像を撮影するカメラや、音声（音）を集音するマイク（マイクロフォン）、距離を計測するセンサ、その他の、環境中の必要な物理量をセンシングするセンサを採用することができる。
【００５６】
また、センサとしては、エージェントの状態、すなわち、例えば、エージェントの各部位を駆動するアクチュエータ（図示せず）の回転角度や角速度等をセンシングするセンサも採用することができ、この場合、センサデータには、エージェントのアクチュエータの回転角度や角速度等が含まれる。
【００５７】
モデル更新部１２に供給される時系列データには、上述したように、センサデータの他、アクションデータも含まれる。
【００５８】
アクションデータは、後述するように、生成装置２０で生成され、エージェントを構成するアクチュエータ等に供給されるが、モデル更新部１２に供給される時系列データには、そのアクションデータが含まれる。
【００５９】
モデル更新部１２は、そこに供給される時系列データを、予測モデルの学習に用いる学習データとし、その学習データを用いて、モデル記憶部１１に記憶された予測モデルの学習である、予測モデルのモデルパラメータの更新を行う。
【００６０】
モデル更新部１２によって学習がされた、モデル記憶部１１に記憶された予測モデルは、生成装置２０を構成する、後述する時系列データ予測部２１、及び、時系列データ探索部２４によって参照される。
【００６１】
生成装置２０は、時系列データ予測部２１、目標決定部２２、誤差計算部２３、及び、時系列データ探索部２４から構成される。生成装置２０は、時系列データの予測値の誤差を減少させる、予測モデルへの時系列データの入力である誤差減少データを探索し、その誤差減少データを用いて、時系列データの予測値を求めて、エージェントのアクチュエータ、及び、学習装置１０のモデル更新部１２に供給する。
【００６２】
すなわち、時系列データ予測部２１には、モデル更新部１２に供給されるのと同様の、センサデータ、及びアクションデータを含む時系列データが供給（入力）される。
【００６３】
また、時系列データ予測部２１には、時系列データ探索部２４から、誤差減少データとしての時系列データが供給（入力）される。
【００６４】
時系列データ予測部２１は、モデル記憶部１１に記憶された予測モデルを用い、時系列データの入力に対して、その時系列データの予測値を求め（予測し）、目標決定部２２、及び、誤差計算部２３や、エージェントのアクチュエータ、及び、学習装置１０のモデル更新部１２に供給する。
【００６５】
目標決定部２２は、時系列データ予測部２１からの時系列データの予測値に基づき、時系列データの目標値を決定し、誤差計算部２３に供給する。
【００６６】
すなわち、目標決定部２２は、時系列データ予測部２１からの時系列データの予測値に含まれるセンサデータの予測値に基づき、そのセンサデータの目標値を決定し、誤差計算部２３に供給する。
【００６７】
ここで、センサデータの予測値に基づき、その目標値を決定する方法としては、例えば、センサデータの予測値を引数とする所定の関数を演算し、その演算結果である関数値を、目標値として決定する方法がある。
【００６８】
誤差計算部２３は、時系列データ予測部２１から供給される時系列データの予測値の、目標決定部２２から供給される時系列データの目標値に対する誤差を計算し、時系列データ探索部２４に供給する。
【００６９】
すなわち、誤差計算部２３は、時系列データに含まれるセンサデータの予測値の、そのセンサデータの目標値に対する誤差を計算し、時系列データ探索部２４に供給する。
【００７０】
時系列データ探索部２４は、誤差計算部２３からの予測値の誤差を減少させる、予測モデルへの時系列データの入力である誤差減少データを探索し、時系列データ予測部２１に供給する。
【００７１】
ここで、上述したように、時系列データ予測部２１は、モデル記憶部１１に記憶された予測モデルを用い、時系列データの入力に対して、その時系列データの予測値を求め、目標決定部２２、及び、誤差計算部２３や、エージェントのアクチュエータ、及び、モデル更新部１２に供給する。
【００７２】
したがって、時系列データ予測部２１において、時系列データ探索部２４からの誤差減少データの入力に対して、時系列データの予測値が求められる場合には、目標決定部２２、及び、誤差計算部２３や、エージェントのアクチュエータ、及び、モデル更新部１２には、誤差減少データを用いて予測される時系列データの予測値が供給される。
【００７３】
図２は、図１のモデル記憶部１１に記憶される予測モデルとしてのRNNの例を示している。
【００７４】
図２において、RNNは、入力層、隠れ層（中間層）、及び出力層の３層により構成されている。入力層、隠れ層、及び出力層は、それぞれ任意の数の、ニューロンに相当するノードにより構成されている。
【００７５】
ここで、RNNは、入力層に対する時系列データの入力に対して、出力層から時系列データを出力する。以下、RNNの入力層に対する外部からの入力としての時系列データを、入力データともいい、RNNの出力層から外部に出力される時系列データを、出力データともいう。また、入力データに対して、RNNが出力する出力データを、入力データに対する出力データともいう。
【００７６】
RNNでは、入力層の一部のノードである入力ノードに、入力データとしての時系列データ（の時刻tのサンプル）Xtが入力（供給）される。ここで、図２では、時系列データXtとしては、２次元のアクションデータA1及びA2、並びに、４次元のセンサデータS1,S2,S3、及びS4をコンポーネントとするベクトルが採用されている。
【００７７】
入力層の、入力データXtが入力される入力ノード以外のノードは、コンテキストノードになっており、そのコンテキストノードには、出力層の一部のノードの出力が、内部状態を表すコンテキストとしてフィードバックされる。
【００７８】
ここで、時刻tの入力データXtが入力層の入力ノードに入力されるときに入力層のコンテキストノードに入力される時刻tのコンテキストを、Ctと記載する。
【００７９】
隠れ層のノードは、入力層に入力される入力データXt、及び、コンテキストCtを対象として、所定のウエイト（重み）を用いた重み付け加算を行い、その重み付け加算の結果を引数とする非線形関数の演算を行って、その演算結果を、出力層のノードに出力する。
【００８０】
出力層の一部のノードからは、次の時刻t+1のコンテキストCt+1が出力され、入力層にフィードバックされる。また、出力層の残りのノードからは、入力データXtに対する出力データとして、例えば、その入力データXtの次の時刻t+1の入力データXt+1の予測値X*t+1が出力される。
【００８１】
なお、入力データである時系列データXtが、例えば、上述したように、２次元のアクションデータA1及びA2、並びに、４次元のセンサデータS1,S2,S3、及びS4をコンポーネントとするベクトル(A1,A2,S1,S2,S3,S4)である場合において、時系列データXtの予測値X*tとしてのベクトルを、ベクトル(A*1,A*2,S*1,S*2,S*3,S*4)と表す。
【００８２】
ここで、上述したように、RNNでは、ノードへの入力が重み付け加算されるが、この重み付け加算に用いられるウエイトが、RNNのモデルパラメータである
【００８３】
図２において、RNNのモデルパラメータとしてのウエイトには、入力ノードから隠れ層のノードへのウエイトや、隠れ層のノードから出力層のノードへのウエイト等の複数のウエイトがある。この複数のウエイトをコンポーネントとするマトリクスを、ウエイトマトリクスという。
【００８４】
モデル更新部１２（図１）は、図２のRNNの学習を、そこに供給される時系列データを学習データとして用い、例えば、BPTT(Back-Propagation Through Time)法により行う。
【００８５】
次に、図３を参照して、図１の目標決定部２２による、目標値の決定の方法について説明する。
【００８６】
目標決定部２２は、上述したように、時系列データ予測部２１からの時系列データの予測値に含まれるセンサデータの予測値に基づき、例えば、センサデータの予測値を引数とする所定の関数を演算し、その演算結果である関数値を、時系列データに含まれるセンサデータの目標値として決定する。
【００８７】
図３は、時系列データの予測値に含まれるセンサデータ及びアクションデータの予測値と、センサデータの予測値に基づいて決定された（センサデータ）の目標値の時間変化を示している。
【００８８】
なお、図３において、横軸は時刻を表し、縦軸は振幅を表す。
【００８９】
ここで、例えば、いま、時系列データXtとして、図２で説明したように、ベクトル(A1,A2,S1,S2,S3,S4)が採用されていることとすると、図３のセンサデータの予測値及び目標値は、時系列データXt=(A1,A2,S1,S2,S3,S4)における４次元のセンサデータS1,S2,S3、及びS4の中のある１次元のセンサデータの予測値及び目標値である。
【００９０】
同様に、図３のアクションデータの予測値は、時系列データXt=(A1,A2,S1,S2,S3,S4)における２次元のアクションデータA1及びA2の中のある１次元のアクションデータの予測値である。
【００９１】
図３では、センサデータの予測値を1.2倍にする関数を用い、センサデータの予測値を1.2倍にした値が、センサデータの目標値に決定されている。
【００９２】
目標決定部２２での目標値の決定に用いる関数（以下、目標決定用関数ともいう）としては、上述のように、予測値を1.2倍にする等の、予測値の大きさ（絶対値）を大にする関数を採用する他、予測値の大きさを小にする関数（例えば、0.8倍にする関数等）を採用することができる。
【００９３】
また、目標決定用関数としては、予測値と乗算する乗数が固定の関数の他、乗数が可変の関数を採用することができる。乗数が可変の関数を採用する場合においては、複数の乗数を用意し、その複数の乗数を順番に、予測値との乗算に用いる乗数として選択することができる。あるいは、予測値との乗算に用いる乗数は、例えば、乱数により決定することができる。
【００９４】
なお、図３では、時系列データXt=(A1,A2,S1,S2,S3,S4)における４次元のセンサデータS1,S2,S3、及びS4のうちの１次元のセンサデータについて、目標値を決定することとしたが、目標値は、２次元以上の次元のセンサデータについて決定することが可能である。
【００９５】
また、目標値は、アクションデータについて決定することや、センサデータとアクションデータの両方について決定することが可能である。
【００９６】
さらに、目標値を決定する方法は、関数を用いる方法に限定されるものではない。
【００９７】
すなわち、目標値は、予測モデルとしてのRNNが予測することができる予測値から、いわば、RNNが汎化可能な範囲にある値とすることが望ましい。
【００９８】
そこで、例えば、いま、D次元のセンサデータについて、目標値を決定することとすると、例えば、D次元のセンサデータの空間において、D次元のセンサデータとしてのベクトルが指す点から、そのベクトルの大きさに比例する距離（例えば、ベクトルの大きさより十分短い距離）の範囲内にある任意の点が表す値（ベクトル）を、目標値に決定することができる。
【００９９】
次に、図４を参照して、図１の生成装置２０による誤差減少データの探索について説明する。
【０１００】
図４は、時刻tの時系列データXtから、３時刻後の時刻t+3の時系列データXt+3までを、予測モデルとしてのRNNを用いて予測する場合の、RNNの入出力を示している。
【０１０１】
図４において、縦軸は時刻を表す。また、図４では、時刻に沿って（時刻ごとに）、RNNを図示してある。
【０１０２】
いま、生成装置２０の時系列データ予測部２１に対して、時刻tの時系列データXt=(A1,A2,S1,S2,S3,S4)が供給されたとする。
【０１０３】
ここで、時系列データ予測部２１に供給される時刻tの時系列データXt=(A1,A2,S1,S2,S3,S4)には、エージェントが有するセンサからの時刻tのセンサデータ(S1,S2,S3,S4)と、エージェントのアクチュエータ等を駆動する時刻tのアクションデータ(A1,A2)とが含まれる。
【０１０４】
時刻tの時系列データXtに含まれる時刻tのアクションデータ(A1,A2)は、時系列データ予測部２１において、時刻tより前の時刻（例えば、時刻t-1）の時系列データの入力に対して予測された時刻tの時系列データの予測値X*tに含まれるアクションデータの予測値に等しい。
【０１０５】
時系列データ予測部２１は、モデル記憶部１１に記憶されたRNNを用い、時刻tの時系列データXtの入力に対して、N時刻後の時刻t+Nまでの各時刻の時系列データXt+1ないしXt+Nの予測値X*t+1ないしX*t+Nを順次求める。
【０１０６】
ここで、Nは、例えば、２以上の値であり、以下、探索長ともいう。
【０１０７】
図４では、探索長Nを3として、時刻t+1ないしt+3の時系列データの予測値X*t+1ないしX*t+3が求められる。
【０１０８】
すなわち、時系列データ予測部２１は、RNNを用い、時刻tの時系列データXtを入力データとして、時刻t+1の時系列データの予測値X*t+1と、コンテキストCt+1とを求める。
【０１０９】
なお、時刻t+1の時系列データの予測値X*t+1を求めるときの時刻tのコンテキストCtとしては、例えば、ランダムな値等を採用することができる。
【０１１０】
その後、時系列データ予測部２１は、RNNに対して、時刻t+1の時系列データの予測値X*t+1と、コンテキストCt+1とを入力することにより、時刻t+2の時系列データの予測値X*t+2と、コンテキストCt+2とを求める。
【０１１１】
さらに、時系列データ予測部２１は、RNNに対して、時刻t+2の時系列データの予測値X*t+2と、コンテキストCt+2を入力することにより、時刻t+3の時系列データの予測値X*t+3と、コンテキストCt+3とを求める。
【０１１２】
時系列データ予測部２１は、探索長Nだけ後の時刻t+Nの時系列データの予測値Xt+Nを求めると、その時刻t+Nの時系列データの予測値Xt+Nを、目標決定部２２、及び、誤差計算部２３に供給する。
【０１１３】
図４では、探索長Nが3であるので、時系列データ予測部２１から、目標決定部２２、及び、誤差計算部２３には、時刻t+3の時系列データの予測値X*t+3が供給される。
【０１１４】
目標決定部２２は、時系列データXt=(A1,A2,S1,S2,S3,S4)のうちの、例えば、２次元のセンサデータ（S3,S4）について、目標値ST=(ST3,ST4)を決定し、誤差計算部２３に供給する。
【０１１５】
誤差計算部２３は、目標決定部２２からの目標値STに対する、時系列データ予測部２１からの予測値X*t+3に含まれる、２次元のセンサデータS3及びS4の予測値S*t+3=(S*3,S*4)の誤差Eを、式（１）に従って求め、時系列データ探索部２４に供給する。
【０１１６】
【数１】
0004803212.tif 000002
・・・（１）
【０１１７】
ここで、式（１）は、センサデータS3及びS4のそれぞれについて計算され、これにより、予測値S*3の誤差E3と、予測値S*4の誤差E4のそれぞれが求められる。
【０１１８】
時系列データ探索部２４は、誤差計算部２３からのセンサデータの予測値S*t+3の誤差Eを減少させる、RNNへの入力データである誤差減少データを探索し、時系列データ予測部２１に供給する。
【０１１９】
すなわち、時系列データ探索部２４は、誤差減少データの探索にあたり、例えば、モデル更新部１２がRNNの学習に用いるBPTT法を利用する。
【０１２０】
但し、RNNの学習では、予測値の誤差Eが減少するように、RNNのウエイトが調整（更新）されるのに対して、誤差減少データの検索では、予測値の誤差Eが減少するように、入力データが調整される。
【０１２１】
すなわち、時系列データ探索部２４は、誤差計算部２３からの誤差Eを用い、式（２）に従って、RNNへの入力データとなるアクションデータA=(A1,A2)を調整する調整成分△At+nを求める(n=0,1,・・・,N-1)。
【０１２２】
【数２】
0004803212.tif 000003
・・・（２）
【０１２３】
ここで、△At+nは、式（１）の誤差Eを求めるときに入力データとして用いられたアクションデータA=(A1,A2)を調整する調整成分を表す。
【０１２４】
また、εは学習係数を、kは慣性係数を、それぞれ表し、δE／δAt+nは、誤差Eを変数としてのアクションデータAt+nで偏微分した微分値を表す。
【０１２５】
さらに、NGは、ローカルミニマムに陥るのを防止するための白色雑音(Gaussian Noise)を表す。
【０１２６】
また、A*t+n-At+nのうちの、At+nは、現時点の誤差減少データとしての時刻t+nのアクションデータを表し、A*t+nは、いわゆる前向き計算（予測）によって得られるアクションデータAt+nの予測値を表す。
【０１２７】
時系列データ探索部２４は、式（２）に従い、現時点の誤差減少データとしての時刻t+nのアクションデータAt+n=(At+n,1,At+n,2)を調整する調整成分△At+n=(△At+n,1,△At+n,2)を求めると、現時点の誤差減少データAt+n=(At+n,1,At+n,2)を、調整成分△At+n=(△At+n,1,△At+n,2)によって調整することで、誤差Eを減少させるアクションデータat+n=(at+n,1,at+n,2)を求める。
【０１２８】
ここで、アクションデータat+nは、次に調整成分△At+nが求められるときの、現時点の誤差減少データとしての時刻t+nのアクションデータAt+nとなる。
【０１２９】
時系列データ探索部２４は、誤差減少データAt+nの調整を、例えば、所定の回数、又は、誤差Eが所定の閾値以下になるまで繰り返し、最終的に得られた誤差減少データat+n=(at+n,1,at+n,2)を、時系列データ予測部２１に供給する。
【０１３０】
図４では、探索長Nが3であり、時刻t,t+1,t+2(=t+N-1)のアクションデータ（の時系列）at,at+1,at+2が、誤差減少データとして、時系列データ探索部２４から時系列データ予測部２１に供給される。
【０１３１】
なお、例えば、Tani, et al. ,"Model-Based Learning for Mobile Robot Navigation fromthe Dynamical Systems Perspective," IEEE Trans. System, Man and Cybernetics Part B, 26(3),421-436,1996.（以下、文献Ａという）には、ナビゲーションロボットの行動をRNNにあらかじめオフラインで学習させておき、あるゴールを与えたときにそのゴールを達成する行動のシーケンスを探索する方法が記載されている。
【０１３２】
時系列データ探索部２４による誤差減少データの探索は、文献Ａの方法を利用している。但し、文献Ａでは、ナビゲーションロボットの行動を、0と1の２値で扱っているが、時系列データ探索部２４による誤差減少データの探索では、文献Ａの方法を拡張して、連続値のアクションデータ（誤差減少データ）を扱っている。
【０１３３】
時系列データ予測部２１は、時系列データ探索部２４から誤差減少データが供給されると、再度、モデル記憶部１１に記憶されたRNNを用い、時刻tの時系列データXtの入力に対して、N時刻後の時刻t+Nまでの各時刻の時系列データXt+1ないしXt+Nの予測値X*t+1ないしX*t+Nを順次求める。
【０１３４】
但し、時系列データ予測部２１は、時系列データ探索部２４から誤差減少データが供給された場合には、時系列データXt+1ないしXt+3の予測値X*t+1ないしX*t+3を、時系列データ探索部２４からの誤差減少データを用いて求める。
【０１３５】
すなわち、時系列データ予測部２１は、時系列データのうちのアクションデータA=(A1,A2)を、誤差減少データat+n=(at+n,1,at+n,2)に置き換え、その置き換え後の時系列データを、入力データとして用いて、予測値X*t+1ないしX*t+Nを求める。
【０１３６】
つまり、時系列データ予測部２１は、時刻tの時系列データXtのうちのアクションデータを、時刻tの誤差減少データatに置き換え、その置き換え後の時系列データを入力データとして用いて、時刻t+1の時系列データの予測値X*t+1を求める。
【０１３７】
さらに、時系列データ予測部２１は、直前に求めた時刻t+1の時系列データの予測値X*t+1のうちのアクションデータを、時刻t+1の誤差減少データat+1に置き換え、その置き換え後の時系列データを入力データとして用いて、時刻t+2の時系列データの予測値X*t+2を求める。
【０１３８】
そして、時系列データ予測部２１は、直前に求めた時刻t+2の時系列データの予測値X*t+2のうちのアクションデータを、時刻t+2の誤差減少データat+2に置き換え、その置き換え後の時系列データを入力データとして用いて、時刻t+3の時系列データの予測値X*t+3を求める。
【０１３９】
ここで、時系列データ予測部２１に、時刻tの時系列データXtが供給されるときには、エージェントでは、時系列データXtに含まれるアクションデータに従った時刻tの行動は既に行われているから、エージェントには、時刻tの誤差減少データatに従った行動をとらせることはできない。
【０１４０】
そこで、時系列データ予測部２１では、時刻tの時系列データXtについては、アクションデータを、時刻tの誤差減少データatに置き換えずに、そのまま（時刻tの時系列データXtに含まれるアクションデータのまま）用いて、時刻t+1の時系列データの予測値X*t+1を求めることができる。この処理は、時系列データ探索部２４において、時刻tの誤差減少データatとして、時刻tの時系列データXtに含まれるアクションデータを採用し、時系列データ予測部２１において、時刻tの時系列データXtのうちのアクションデータを、時刻tの誤差減少データatに置き換え、その置き換え後の時系列データを入力データとして用いて、時刻t+1の時系列データの予測値X*t+1を求めることで行うことができる。
【０１４１】
なお、時刻tの誤差減少データatとしては、時刻tの時系列データXtに含まれるアクションデータを採用する他、例えば、乱数を採用することも可能である。
【０１４２】
時系列データ予測部２１は、探索長Nだけ後の時刻t+Nである時刻t+3の時系列データの予測値X*t+3を求めると、その時刻t+3の時系列データの予測値X*t+3を、誤差計算部２３に供給する。
【０１４３】
誤差計算部２３は、時系列データ予測部２１からの予測値X*t+3に含まれるセンサデータの予測値S*t+3の誤差Eを、式（１）に従って求め、時系列データ探索部２４に供給する。
【０１４４】
以下、生成装置２０では、誤差Eが、例えば、所定の閾値以下等の、十分に小さな値になるまで、時系列データ探索部２４による誤差減少データの探索、時系列データ予測部２１による、誤差減少データを用いた予測値の算出（予測）、及び、誤差計算部２３による予測値の誤差の計算が繰り返される。
【０１４５】
そして、誤差Eが十分に小さな値になると、時系列データ予測部２１は、その、誤差Eが十分に小さくなったときの誤差減少データを、エージェントのアクチュエータ、及び、学習装置１０のモデル更新部１２に供給する。
【０１４６】
したがって、エージェントは、目標値に対する誤差Eを十分に小さくする誤差減少データであるアクションデータに従って行動する。すなわち、エージェントは、センサデータが目標値になるような行動をとる。
【０１４７】
なお、上述の場合には、目標決定部２２において、時系列データ予測部２１に供給される時刻tの時系列データXtから、探索長Nだけ後の時刻tの時系列データXt+Nの目標値を決定し、時系列データ探索部２４において、その目標値に対する予測値の誤差Eを減少させる時刻t,t+1,・・・,t+N-1のアクションデータ（誤差減少データ）at,at+1,・・・,at+N-1を求めることとしたが、目標決定部２２では、時刻t+1,t+2,・・・,t+Nのそれぞれについて、目標値を決定し、時系列データ探索部２４では、各時刻t'+1ごとに(t'=t,t+1,・・・,t+N-1)、その時刻t'+1の目標値に対する予測値の誤差を減少させる、１時刻前の時刻t'のアクションデータat'を求めるようにすることもできる。
【０１４８】
すなわち、誤差減少データとしての時刻t,t+1,・・・,t+N-1のアクションデータat,at+1,・・・,at+N-1は、時刻t+Nについて、目標値を決定し、その目標値に対する予測値の誤差を減少させることで求める他、時刻t+1,t+2,・・・,t+Nのうちの任意の１以上の時刻について、目標値を決定し、その１以上の時刻の目標値に対する予測値の誤差それぞれを減少させることで求めることができる。
【０１４９】
次に、図５は、図１のデータ処理装置が行う処理（データ処理）を説明するフローチャートである。
【０１５０】
いま、時刻tにおいて、時系列データ予測部２１が、時刻tの時系列データの予測値を出力し、その時刻tの時系列データの予測値に含まれる時刻tのアクションデータ（の予測値）が、エージェントのアクチュエータに供給されたとする。
【０１５１】
この場合、エージェントのアクチュエータは、時刻tのアクションデータに従って駆動し、これにより、エージェントは所定の行動をとる。さらに、エージェントのセンサは、エージェントの行動後の環境をセンシングし、時刻tのセンサデータを出力する。
【０１５２】
そして、時系列データ予測部２１には、時系列データ予測部２１が出力した時刻tのアクションデータと、エージェントのセンサが出力した時刻tのセンサデータとをコンポーネントとするベクトルが、時刻tの時系列データとして供給される。
【０１５３】
時系列データ予測部２１は、ステップＳ１１において、モデル記憶部１１に記憶されたRNNを用い、そこに供給された時刻tの時系列データを入力データとして、時刻t+1から探索長Nだけ後の時刻t+Nまでの時系列データの予測値を順次求める。
【０１５４】
時系列データ予測部２１は、時刻t+1ないしt+Nの時系列データの予測値を求めると、そのうちの時刻t+Nの時系列データの予測値を、目標決定部２２、及び、誤差計算部２３に供給して、処理は、ステップＳ１１からステップＳ１２に進む。
【０１５５】
ステップＳ１２では、目標決定部２２が、時系列データ予測部２１からの時刻t+Nの時系列データの予測値に基づき、時刻t+Nの（時系列データに含まれる）センサデータの目標値を決定し、誤差計算部２３に供給して、処理は、ステップＳ１３に進む。
【０１５６】
ステップＳ１３では、誤差計算部２３が、時系列データ予測部２１からの時刻t+Nの時系列データの予測値に含まれるセンサデータの予測値の、目標決定部２２からのセンサデータの目標値に対する誤差（以下、センサ予測誤差ともいう）を、例えば、式（１）に従って計算し、処理は、ステップＳ１４に進む。
【０１５７】
ステップＳ１４では、誤差計算部２３は、センサ予測誤差が十分に小さいかどうかを判定する。
【０１５８】
ステップＳ１４において、センサ予測誤差が十分に小さくないと判定された場合、誤差計算部２３は、センサ予測誤差を、時系列データ探索部２４に供給して、処理は、ステップＳ１５に進む。
【０１５９】
ステップＳ１５では、時系列データ探索部２４は、誤差計算部２３からのセンサ予測誤差Eを減少させる、RNNへの時刻tないしt+N-1の入力データに含まれるアクションデータを探索し、誤差減少データとして、時系列データ予測部２１に供給する。
【０１６０】
その後、処理は、ステップＳ１５からステップＳ１６に進み、時系列データ予測部２１は、モデル記憶部１１に記憶されたRNNを用い、時系列データ探索部２４からの時刻tないしt+N-1の誤差減少データを入力データ（の一部）として用いて、時刻t+1ないしt+Nの各時刻の時系列データの予測値を順次求める。
【０１６１】
すなわち、時系列データ予測部２１は、RNNによって求められた、時刻t'の時系列データの予測値に含まれるアクションデータを、時系列データ探索部２４からの時刻t'のアクションデータに置き換え、その置き換え後の時系列データを入力データとして用いて、１時刻だけ後の時刻t'+1の時系列データの予測値を、RNNによって求めることを、時刻tないしt+N-1の各時刻t'(=t,t+1,・・・,t+N-1)について行う。なお、時刻t'=tのときは、直前に行われたステップＳ１１で用いられた時刻tの時系列データが、入力データとして用いられる。
【０１６２】
そして、時系列データ予測部２１は、時刻t+N-1の時系列データの予測値に含まれるアクションデータを、時系列データ探索部２４からの時刻t+N-1のアクションデータに置き換え、その置き換え後の時系列データを入力データとして用いて、１時刻だけ後の時刻t+Nの時系列データの予測値を求めると、その時刻t+Nの時系列データの予測値を、誤差計算部２３に供給して、処理は、ステップＳ１６からステップＳ１３に戻る。
【０１６３】
ステップＳ１３では、誤差計算部２３が、時系列データ予測部２１からの時刻t+Nの時系列データの予測値に含まれるセンサデータの予測値の、目標決定部２２からのセンサデータの目標値に対する誤差（センサ予測誤差）を計算する。そして、処理は、ステップＳ１３からステップＳ１４に進み、以下、同様の処理が繰り返される。
【０１６４】
一方、ステップＳ１４において、センサ予測誤差が十分に小さいと判定された場合、すなわち、時刻tないしt+N-1において、エージェントが、時系列データ探索部２４からの時刻tないしt+N-1の誤差減少データであるアクションデータに従って行動することにより、時刻t+Nにおいて、エージェントのセンサが出力する時刻t+Nのセンサデータが、ステップＳ１２で決定された目標値に近い（又は一致する）値となる場合、処理は、ステップＳ１７に進み、時系列データ予測部２１は、センサ予測誤差が十分に小さいと判定されたときの時刻t+1ないしt+N-1の誤差減少データであるアクションデータを、エージェントのアクチュエータに供給する。
【０１６５】
なお、ステップＳ１５で誤差減少データが求められる前に、ステップＳ１４において、センサ予測誤差が十分に小さいと判定された場合には、ステップＳ１７では、時系列データ予測部２１は、ステップＳ１１で求めた時刻t+1ないしt+N-1の時系列データの予測値に含まれるアクションデータ（の予測値）を、誤差減少データとして、エージェントのアクチュエータに供給する。
【０１６６】
エージェントのアクチュエータは、時系列データ予測部２１からの時刻t+1ないしt+N-1の誤差減少データに従って駆動し、これにより、エージェントは、時刻t+1ないしt+N-1において、センサ予測誤差を十分に小さくする誤差減少データ（アクションデータ）に従って行動する。すなわち、エージェントは、センサデータが目標値になっていくような行動をとる。
【０１６７】
一方、エージェントのセンサは、エージェントが行動しているときの時刻t+1ないしt+N-1の各時刻の環境をセンシングし、センサデータを出力する。
【０１６８】
この場合、モデル更新部１２には、時系列データ予測部２１が出力した時刻t+1ないしt+N-1の各時刻のアクションデータと、エージェントのセンサが出力した時刻t+1ないしt+N-1の各時刻のセンサデータとをコンポーネントとするベクトルが、時刻t+1ないしt+N-1の各時刻の時系列データとして供給される。
【０１６９】
その後、処理は、ステップＳ１７からステップＳ１８に進み、モデル更新部１２は、そこに供給された時刻t+1ないしt+N-1の時系列データを学習データとして用い、モデル記憶部１１に記憶されたRNNのモデルパラメータを更新する学習処理を行う。
【０１７０】
そして、処理は、ステップＳ１８から、ステップＳ１１に戻り、以下、同様の処理が繰り返される。
【０１７１】
すなわち、モデル更新部１２に対して、時刻t+1ないしt+N-1の時系列データが供給されるとき、そのうちの最後（最新）の時刻t+N-1の時系列データが、時系列データ予測部２１に供給される。
【０１７２】
時系列データ予測部２１は、ステップＳ１１において、モデル記憶部１１に記憶されたRNNを用い、そこに供給された時刻t+N-1の時系列データを入力データとして、探索長Nだけ後の時刻までの時系列データの予測値を順次求め、そのうちの最新の時刻の時系列データの予測値を、目標決定部２２、及び、誤差計算部２３に供給して、処理は、ステップＳ１１からステップＳ１２に進む。
【０１７３】
ステップＳ１２では、目標決定部２２が、時系列データ予測部２１からの最新の時刻の時系列データの予測値に基づき、その最新の時刻の（時系列データに含まれる）センサデータの目標値を決定する。この場合、目標決定部２２では、前回のステップＳ１２の場合よりも、いわば、より高い目標が決定される。
【０１７４】
すなわち、モデル記憶部１１に記憶されたRNNについては、前回行われたステップＳ１８において、エージェントが、前回のステップＳ１２で決定された目標（値）を達成することができるような学習が、既に行われている。そして、今回のステップＳ１２では、そのようなRNNを用いて予測される予測値に基づき、目標（値）を決定するので、前回のステップＳ１２の場合よりも、より高い目標が決定される。
【０１７５】
目標決定部２２は、目標値を決定すると、その目標値を、誤差計算部２３に供給して、処理は、ステップＳ１２からステップＳ１３に進み、以下、同様の処理が繰り返される。
【０１７６】
以上のように、生成装置２０では、時系列データ予測部２１が、時系列データを予測するための予測モデルとしてのRNNを用い、時系列データの入力に対して、時系列データの予測値を求める。さらに、目標決定部２２が、時系列データの予測値に基づき、時系列データの目標値を決定し、誤差計算部２３が、予測値の、目標値に対する誤差を計算する。そして、時系列データ探索部２４が、予測値の誤差を減少させる、RNNへの時系列データの入力である誤差減少データを探索する。
【０１７７】
したがって、エージェントが、汎化が可能な範囲で目標をたて、その目標を達成する行動を、迅速にとることができる。
【０１７８】
すなわち、RNNを用いて求められる時系列データの予測値に基づいて、時系列データの目標値が決定されるので、外部から具体的な目標（目標値）を与えなくても、RNNによる汎化が可能な範囲で目標をたてることができる。
【０１７９】
さらに、目標値に対する予測値の誤差を減少させる時系列データである誤差減少データが探索されるので、つまり、誤差を減少させるという指向性をもって、時系列データ（誤差減少データ）が探索されるので、エージェントが、誤差減少データに従って行動することにより、エージェントは、目標を達成する行動を迅速にとることができる。
【０１８０】
なお、図５では、ステップＳ１７において、時系列データ予測部２１が、時刻t+1ないしt+N-1の誤差減少データを、エージェントのアクチュエータに供給するようにしたが、エージェントのアクチュエータに対しては、時刻t+1ないしt+N-1の誤差減少データのうちの、時刻t+1からの一部の時刻の誤差減少データを供給することができる。
【０１８１】
ステップＳ１７において、時系列データ予測部２１が、時刻t+1ないしt+N-1の、N-1時刻分の誤差減少データのうちの、時刻t+1ないしt+N'(≦N-1)の、N'時刻分の誤差減少データを、エージェントのアクチュエータに供給する場合には、次に行われるステップＳ１１では、時系列データ予測部２１は、最新の時刻t+N'の時系列データを入力データとして、時系列データの予測値が求められる。
【０１８２】
また、図５では、ステップＳ１７において、時系列データ予測部２１が、誤差減少データを、エージェントのアクチュエータに供給するごとに、ステップＳ１８において、モデル更新部１２が、モデル記憶部１１に記憶されたRNNの学習処理を行うこととしたが、RNNの学習処理は、必ずしも、時系列データ予測部２１が誤差減少データをエージェントのアクチュエータに供給するごとに行う必要はない。
【０１８３】
すなわち、RNNの学習処理は、時系列データ予測部２１が、N'時刻分の誤差減少データを、エージェントのアクチュエータに供給することを、複数回であるN''回行うごとに、それまでに、時系列データ予測部２１がアクチュエータに供給したN''×N時刻分の誤差減少データを、アクションデータとして含む、N''×N時刻分の時系列データを学習データとして用いて行うことができる。
【０１８４】
図６は、本発明を適用したデータ処理装置の他の一実施の形態の構成例を示すブロック図である。
【０１８５】
図６において、データ処理装置は、複数であるK個の学習モジュール１００1ないし１００Kと、モデルパラメータ共有部１２０とから構成され、例えば、図１の場合と同様に、エージェントを制御する制御ブロックの一部を構成する。
【０１８６】
学習モジュール１００i(i=1,2,・・・,K)は、記憶部１１１i、学習装置１１２i、及び生成装置１１３iから構成され、学習データを用いて、予測モデルの学習、つまり、予測モデルのモデルパラメータの更新を行う。
【０１８７】
すなわち、記憶部１１１iには、学習データである時系列データが供給される。記憶部１１１iは、そこに供給される学習データを記憶する。
【０１８８】
学習装置１１２iは、図１の学習装置１０と同様に構成され、したがって、予測モデルとしての、例えば、RNN（のモデルパラメータであるウエイト）を記憶している。学習装置１１２iは、記憶部１１１iに記憶された学習データを用いて、予測モデルとしてのRNNの学習、つまり、RNNのモデルパラメータの更新を行う。
【０１８９】
生成装置１１３iは、図１の生成装置２０と同様に構成され、誤差減少データとしてのアクションデータを探索して出力する。
【０１９０】
ここで、生成装置１１３iが出力した誤差減少データは、エージェントのアクチュエータ等に供給される。
【０１９１】
エージェントのアクチュエータは、生成装置１１３iからの誤差減少データに従って駆動し、これにより、エージェントは、誤差減少データに従って行動する。
【０１９２】
また、エージェントのセンサは、エージェントが行動しているときの環境をセンシングし、センサデータを出力する。
【０１９３】
この場合、学習モジュール１００j(j≠i)の記憶部１１１jには、生成装置１１３iが出力した誤差減少データとしてのアクションデータと、エージェントのセンサが出力したセンサデータとをコンポーネントとするベクトルの時系列が、学習データとして供給される。
【０１９４】
学習モジュール１００jの記憶部１１１jは、以上のようにして供給される学習データを記憶し、学習装置１１２jは、その学習データを用いて、RNNの学習を行う。
【０１９５】
モデルパラメータ共有部１２０は、K個の学習モジュール１００1ないし１００Kに、予測モデルのモデルパラメータを共有させる共有処理を行う。モデルパラメータ共有部１２０が共有処理を行うことにより、K個の学習モジュール１００1ないし１００Kは、モデルパラメータを共有する。
【０１９６】
次に、図６のデータ処理装置の処理について説明する。
【０１９７】
図６のデータ処理装置の学習モジュール１００1ないし１００Kそれぞれでは、図１のデータ処理装置と同様の処理、すなわち、図５のフローチャートで説明した処理が行われる。
【０１９８】
但し、図１のデータ処理装置では、上述したように、学習装置１０が、生成装置２０が出力する誤差減少データとしてのアクションデータに従ってエージェントが行動することにより得られる（観測される）時系列データを学習データとして用いて、RNNの学習処理を行う。
【０１９９】
これに対して、図６のデータ処理装置では、学習モジュール１００iの生成装置１１３iが出力した誤差減少データに従ってエージェントが行動することにより得られる時系列データが、他の学習モジュール１００jである、例えば、学習モジュール１００i+1の記憶部１１１i+1に、学習データとして記憶される。そして、学習モジュール１００i+1の学習装置１１２i+1が、その学習装置１１２i+1に記憶されているRNNのモデルパラメータとしてのウエイトの更新を、記憶部１１１i+1に記憶された学習データを用いて行う。
【０２００】
さらに、図６のデータ処理装置では、学習データを用いたウエイトの更新（学習）が行われたRNNを対象として、そのRNNのウエイトの共有が行われる。
【０２０１】
すなわち、図７は、図６のデータ処理装置において、図５のステップＳ１８で行われる学習処理を説明するフローチャートである。
【０２０２】
ここで、例えば、学習モジュール１００1では、記憶部１１１1において、エージェントが、ある基本的な行動をとることによって得られる時系列データが、学習データとして記憶されていることとする。さらに、学習装置１１２1に記憶されたRNNの学習は、記憶部１１１1に記憶された学習データを用いて、既に済んでいることとする。
【０２０３】
図６のデータ処理装置では、K個の学習モジュール１００1ないし１００Kのうちの、最新の学習データが記憶部１１１Lに記憶された学習モジュール１００L（1≦L＜K）において、図５のステップＳ１１ないしＳ１７の処理が行われる。
【０２０４】
そして、ステップＳ１７において、学習モジュール１００Lの生成装置１１３Lが出力した誤差減少データは、エージェントのアクチュエータ等に供給される。
【０２０５】
エージェントのアクチュエータは、生成装置１１３Lからの誤差減少データに従って駆動し、これにより、エージェントは、誤差減少データに従って行動する。
【０２０６】
また、エージェントのセンサは、エージェントが行動しているときの環境をセンシングし、センサデータを出力する。
【０２０７】
そして、生成装置１１３Lが出力した誤差減少データとしてのアクションデータと、エージェントのセンサが出力したセンサデータとをコンポーネントとするベクトルの時系列が、学習データとして、例えば、学習モジュール１００L+1に供給される。
【０２０８】
学習モジュール１００L+1に、学習データが供給されると、図６のデータ処理装置では、図５のステップＳ１８において、図７の学習処理が行われる。
【０２０９】
すなわち、ステップＳ２１において、学習モジュール１００L+1では、記憶部１１１L+1が、学習モジュール１００L+1に供給された学習データを記憶して、処理は、ステップＳ２２に進む。
【０２１０】
ステップＳ２２では、学習装置１１２L+1が、記憶部１１１L+1に記憶された学習データを用いて、RNNのモデルパラメータとしてのウエイトを更新する、RNNの学習を行う。
【０２１１】
ステップＳ２２では、さらに、学習装置１１２1ないし学習装置１１２Lも、学習装置１１２L+1と同様に、記憶部１１１1ないし１１１Lに記憶された学習データを用いて、RNNの学習を、それぞれ行う。
【０２１２】
なお、RNNの学習は、例えば、BPTT法によって行われる。
【０２１３】
また、学習装置１１２L+1では、RNNの学習は、例えば、ランダムな値を、ウエイトの初期値として行われる。
【０２１４】
一方、過去にRNNの学習が行われている学習装置１１２1ないし１１２Lでは、RNNの学習は、例えば、ランダムな値、又は、現在のウエイトを、ウエイトの初期値として行われる。
【０２１５】
ステップＳ２２の後、処理は、ステップＳ２３に進み、モデルパラメータ共有部１２０は、Ｌ＋１個の学習モジュール１００1ないし１００L+1のすべてに、ウエイトw1ないしwL+1のすべてを共有させる共有処理を行う。
【０２１６】
すなわち、いま、学習モジュール１００iの学習装置１１２iが記憶しているRNNのモデルパラメータとしてのウエイトを、wiと表すこととすると、モデルパラメータ共有部１２０は、ウエイトwiを、例えば、式（３）に従って補正することにより、ウエイトw1ないしwL+1のすべてを共有させる。
【０２１７】
【数３】
0004803212.tif 000004
・・・（３）
【０２１８】
ここで、学習モジュール１００iの学習装置１１２iが記憶しているRNNを、RNN#iと表すこととすると、βij'は、RNN#iのウエイトwiに、RNN#jのウエイトwjを影響させる度合いを表す係数である(i=1,2,・・・,L+1)(j=1,2,・・・,L+1)。
【０２１９】
したがって、式（３）の右辺の第２項におけるサメーションΣβij'wjは、係数βij'を重みとした、RNN#1ないしRNN#L+1のウエイトw1ないしwL+1の重み付け平均値を表し、αi'は、その重み付け平均値Σβij'wjを、ウエイトwiに影響させる度合いを表す係数である。
【０２２０】
係数αi'及びβij'としては、例えば、0.0より大で1.0より小の値を採用することができる。
【０２２１】
式（３）によれば、係数αi'が大であるほど、共有が弱くなり（ウエイトwiが受ける重み付け平均値Σβij'wjの影響が小さくなり）、係数αi'が小であるほど、共有が強まる。
【０２２２】
ステップＳ２３の後、処理は、ステップＳ２４に進み、図６のデータ処理装置は、学習の終了条件が満たされているかどうかを判定する。
【０２２３】
ここで、ステップＳ２４での学習の終了条件としては、例えば、学習の回数、つまり、ステップＳ２２及びＳ２３が繰り返された回数が、あらかじめ定められた所定の回数となったことや、学習データに対してRNN#1ないし#L+1が出力する予測値の予測誤差が所定値以下であること、等を採用することができる。
【０２２４】
ステップＳ２４において、学習の終了条件が満たされていないと判定された場合、処理は、ステップＳ２２に戻り、以下、同様の処理、すなわち、ウエイトw1ないしwL+1の更新と、共有処理とが交互に繰り返される。
【０２２５】
また、ステップＳ２４において、学習の終了条件が満たされていると判定された場合、学習処理は終了する。
【０２２６】
ここで、以上のように、モデルパラメータ共有部１２０が、RNN#1ないしRNN#L+1のウエイトw1ないしwL+1のそれぞれを、そのウエイトw1ないしwL+1すべてに基づいて補正することにより、ウエイトw1ないしwL+1のそれぞれは、そのウエイトw1ないしwL+1すべての影響を受ける。このように、モデルパラメータとしてのウエイトw1ないしwL+1のそれぞれが、そのウエイトw1ないしwL+1すべての影響を受けるように、ウエイトw1ないしwL+1のそれぞれを調整（補正）することが、モデルパラメータの共有である。
【０２２７】
図６のデータ処理装置では、１つの学習モジュール１００i+1において、学習モジュール１００iの生成装置１１３iが出力した誤差減少データに従ってエージェントが行動することにより得られる１つ（１シーケンス）の時系列データを、学習データとして、RNNの学習が行われる。したがって、１つの学習モジュール１００i+1では、学習装置１１２i+1のRNNに、学習データとしての１つの時系列データのパターンが記憶され、他の学習モジュールとの間での、RNNのパターンの記憶への干渉がないので、その記憶の安定性が高い。そして、図６のデータ処理装置は、学習モジュールを追加することにより、新たなパターンの記憶を、既にパターンを記憶した学習モジュール(RNN)の記憶を破壊せずにすることができるという規模拡張性に優れる。なお、図６のデータ処理装置を、コンピュータにプログラムを実行させることで等価的に実現するとすれば、学習モジュールの追加は、メモリに、学習モジュールとしての記憶領域を新たに確保すること（たとえば、オブジェクト指向プログラミングにおけるインスタンスの生成）によって行うことができる。
【０２２８】
さらに、上述のように、規模拡張性に優れる図６のデータ処理装置では、複数の学習モジュール１００1ないし１００L+1それぞれにおいて、モデルパラメータ（ここでは、RNNのウエイト）を共有しながら、その複数の学習モジュール１００1ないし１００L+1それぞれのモデルパラメータを更新する学習を行うことにより、パターンの記憶の汎化が、複数の学習モジュール１００1ないし１００L+1のRNNのそれぞれで行われる他、複数の学習モジュール１００1ないし１００L+1のRNNの全体でも行われる。そして、その結果、複数の学習モジュール１００1ないし１００L+1に記憶されているRNNの全体は、等価的に、規模拡張性があり、同時に、汎化の能力を有する予測モデルとなり、多くのパターンを獲得（記憶）することができ、かつ、複数のパターンの共通性を獲得することができる。
【０２２９】
次に、図１のデータ処理装置について行ったシミュレーション（以下、第１シミュレーションともいう）について説明する。
【０２３０】
第１シミュレーションでは、エージェントとして、振り子を採用した。
【０２３１】
図８は、エージェントとしての棒状の振り子を示している。
【０２３２】
エージェントとしての振り子の長さLは1[m]とし、質量mは1[g]とした。ここで、振り子の長さLとは、棒状の振り子の一端を回転中心として、その回転中心と、他端（以下、振り子の先端ともいう）との距離を意味する。
【０２３３】
また、振り子の行動（動き）は、式（４）の運動方程式に拘束される。
【０２３４】
【数４】
0004803212.tif 000005
・・・（４）
【０２３５】
ここで、式（４）において、θは、図８に示すように、重力の方向から反時計回りの振り子の回転角度[radian]を表す。また、式（４）において、gは、重力加速度を表し、μは、摩擦係数を表す。第１シミュレーションでは、重力加速度gとして、9.8[m/s2]を採用し、摩擦係数μとして、0.1を採用した。
【０２３６】
さらに、式（４）において、τは、エージェントとしての振り子に加えるトルクτを表す。また、式（４）において、θ'は、回転角度θの微分（角速度）を表し、θ''は、回転角度の微分の微分（角加速度）を表す。
【０２３７】
第１シミュレーションでは、振り子の回転角度θと、角速度θ'とをセンサデータとするとともに、連続値をとるトルクτをアクションデータとした。
【０２３８】
なお、回転角度θが0で、振り子が静止している状態（θ'=θ''=0）から、１時刻後に、振り子を頂点に振り上げること（回転角度|θ|がπ以上になること）ができないように、アクションデータとしてのトルクτは、-3から+3までの範囲に制限した。
【０２３９】
ここで、学習データを用いた予測モデルの学習処理を行って、予測モデルのモデルパラメータの更新を行ってから、次に、学習処理を行うまでを、試行（１回の試行）ということとする。
【０２４０】
第１シミュレーションでは、予測モデルの学習処理は、60ステップ（60時刻分）の時系列データを学習データとして用い、60ステップごとに行った。
【０２４１】
また、第１シミュレーションでは、プランニングを、10ステップごとに、20ステップ先まで行った。
【０２４２】
ここで、プランニングとは、目標をたてること、つまり、図５のステップＳ１２で目標値を決定することを意味する。
【０２４３】
したがって、プランニングを20ステップ先まで行うとは、現在時刻を、時刻tとすると、図５のステップＳ１１において、探索長Nを20として、時刻tの時系列データから、時刻t+1ないしt+20の、20ステップ分の時系列データの予測値を求め、ステップＳ１２において、時刻t+20の時系列データの目標値を決定することを意味する。
【０２４４】
この場合、図５のステップＳ１５では、時刻tないしt+20-1の20ステップ分の誤差減少データが求められる。
【０２４５】
また、プランニングを10ステップごとに行うとは、今回のプランニングを行った時刻を、時刻tとすると、次のプランニングを、10ステップ（時刻）後の時刻t+10に行うことを意味する。
【０２４６】
したがって、プランニングが、10ステップごとに、20ステップ先まで行われる場合には、今回のプランニングが、時刻tに行われたとすると、上述したように、時刻tないしt+20-1の20ステップ分の誤差減少データが求められる。
【０２４７】
そして、時刻tないしt+20-1の誤差減少データのうちの、時刻t+1からの10ステップ分である、時刻t+1ないしt+10の誤差減少データとしてのアクションデータが、エージェントのアクチュエータに出力され、エージェントは、そのアクションデータにしたがった行動をとる。
【０２４８】
また、エージェントが、上述のように、時刻t+1ないしt+10の誤差減少データとしてのアクションデータに従って行動することにより得られる時刻t+10の時系列データから、再度、20ステップ分の時系列データの予測値が求められる。さらに、20ステップ先の時系列データの目標値が決定され、以下、同様の処理が繰り返される。
【０２４９】
そして、第１シミュレーションでは、予測モデルの、前回の学習処理の後、60ステップの誤差減少データが、エージェントのアクチュエータに出力されると、つまり、10ステップの誤差減少データの出力が、６回だけ行われると、その６回分の60ステップの誤差減少データが学習データとされ、予測モデルの、今回の学習処理が行われる。
【０２５０】
また、第１シミュレーションでは、図５のステップＳ１２において、センサデータとしての回転角度θの予測値の1.5倍の値を、そのセンサデータとしての回転角度θの目標値に決定することとした。
【０２５１】
すなわち、エージェントとしての振り子が行動する、いわば動機を、振り子が、より高く振り上がることに設定した。なお、振り子が、最も高く振り上がった状態は、回転角度θが-π又は+πのときであるので、回転角度θの目標値は、-πから+πまでの範囲に制限した。つまり、回転角度θの予測値の1.5倍の値の絶対値がπより大の場合は、回転角度θの目標値を、絶対値がπになるように制限した。
【０２５２】
さらに、第１シミュレーションでは、予測モデルとして、RNNを用いた。
【０２５３】
また、第１シミュレーションでは、60ステップの時系列データである学習データについて、エージェントとしての振り子に目標を達成させることができる程度を表す評価値valを、式（５）に従って計算し、いままでに得られた学習データのうちの、評価値valが上位５位までの５シーケンスの学習データを、RNNの学習処理に用いた。
【０２５４】
【数５】
0004803212.tif 000006
・・・（５）
【０２５５】
ここで、式（５）において、θtは、60ステップの時系列データである学習データの、先頭からt+1ステップ目のセンサデータとしての回転角度θを表す(t=0,1,・・・,60-1)。
【０２５６】
式（５）の評価値valは、60ステップの時系列データである学習データのセンサデータとしての回転角度θだけ、振り子が回転した状態の、その振り子の先端の高さ（回転角度θが0であるときの先端の位置を基準とする高さ）の、60ステップ分の総和が大であるほど大になる。すなわち、評価値valは、振り子が振り上がる高さが高いほど、及び、振り子が高く振り上がる回数が多いほど、大になる。
【０２５７】
なお、５シーケンスの学習データが得られるまで、つまり、５回未満の回数の試行では、それまでに得られている５シーケンス未満の数の学習データすべてを、RNNの学習処理に用いた。
【０２５８】
また、RNNには、エージェントとしての振り子の、微小な回転角度θでの振り子運動の学習をさせておき、各試行でのRNNの学習処理では、ウエイトの初期値として、前回の試行でのRNNの学習処理で求められたウエイトを用いた。
【０２５９】
図９は、第１シミュレーションで得られた評価値valの変化を示している。
【０２６０】
ここで、図９において、横軸は、試行の回数（試行回数）を表し、縦軸は、評価値valを表す。
【０２６１】
図９によれば、評価値valは、試行回数の増加に伴って、ほぼ単調に増加していっている。したがって、振り子を、より高く振り上げるという指向性をもって、振り子を行動させるための誤差減少データ（アクションデータ）としてのトルクτ（の時系列）の探索が行われていることを確認することができる。
【０２６２】
図１０は、第１シミュレーションで得られた誤差減少データ（アクションデータ）としてのトルクτ（の時系列）を示している。
【０２６３】
すなわち、図１０は、試行回数が、40,50,60、及び70回目のそれぞれで得られた60ステップのトルクτを示している。
【０２６４】
図１０によれば、試行回数が増加していくほど、トルクτの振幅が大になっている。したがって、試行が進むにつれ、回転角度θの目標値が、振り子を、より高く振り上げる値（-π又は+π）になっていき、その結果、振り子を、より高く振り上げるような誤差減少データとしてのトルクτの探索が行われていることを確認することができる。
【０２６５】
図１１は、振り子を高く振り上げるトルクτの探索を、ランダム探索で行った場合の評価値valの変化を示している。
【０２６６】
ここで、図１１において、横軸は、試行回数を表し、縦軸は、評価値valを表す。
【０２６７】
また、図１１には、第１シミュレーションでトルクτの探索（以下、誤差減少探索ともいう）を行った場合の評価値valも、併せて図示してある。
【０２６８】
なお、誤差減少探索の場合の評価値valは、図９に図示した評価値valと同一である。
【０２６９】
図１１によれば、誤差減少探索では、ランダム探索に比較して、極めて少ない試行回数で、評価値valを向上させること、すなわち、振り子を高く振り上げるトルクτの探索を、迅速に行うことができることが分かる。
【０２７０】
次に、図６のデータ処理装置について行ったシミュレーション（以下、第２シミュレーションともいう）について説明する。
【０２７１】
第２シミュレーションでは、エージェントとして、２次元平面上を移動する移動ロボットを採用し、予測モデルとして、RNNを用いた。
【０２７２】
図１２は、第２シミュレーションで用いた移動ロボットと、その移動ロボットが移動する環境との概要を示している。
【０２７３】
すなわち、図１２Ａは、移動ロボットが移動する環境（以下、移動環境ともいう）を示している。
【０２７４】
移動環境としては、四方を壁で囲まれた長方形状の領域を用意し、その領域の中に、光を発する１個の光源を設置した。
【０２７５】
また、図６のデータ処理装置の１つ目の学習モジュール１００1の記憶部１１１1には、図１２Ａに示すように、移動環境内を、８の字を描くように移動する行動をとるための学習データを記憶させ、その学習データを用いて、RNN#1の学習をあらかじめ行った。
【０２７６】
なお、他のRNN#2ないし#Kについては、学習をしていない。
【０２７７】
図１２Ｂは、移動ロボットが有するセンサを説明する図である。
【０２７８】
移動ロボットは、光を検出し、その光を発している光源の、移動ロボットから見た相対的な位置である光源位置(x,y)を出力する光センサを有する。また、移動ロボットは、移動ロボットから見た、四方の壁それぞれまでの距離D1,D2,D3,D4を計測し、その距離D1ないしD4をコンポーネントとする距離ベクトル(D1,D2,D3,D4)を出力する距離センサを有する。
【０２７９】
第２シミュレーションでは、光センサが出力する光源位置(x,y)と、距離センサが出力する距離ベクトル(D1,D2,D3,D4)とから求められる、例えば、式（６）によって定義されるエネルギの変化△Eを、センサデータとするとともに、移動ロボットが、１時刻（１ステップ）で移動する移動量(△x,△y)を、アクションデータとした。
【０２８０】
【数６】
0004803212.tif 000007
・・・（６）
【０２８１】
ここで、式（６）において、dは、エージェントとしての移動ロボットと、光源との距離を表し、光源位置(x,y)から求められる。また、max(D)は、移動ロボットと、四方の壁それぞれとの距離D1,D2,D3,D4の中の最大値を表し、距離ベクトル(D1,D2,D3,D4)から求められる。
【０２８２】
なお、式（６）において、d及びmax(D)としては、いずれも、0から1までの範囲の値に正規化された値が使用される。
【０２８３】
さらに、第２シミュレーションでは、予測モデルの学習処理は、40ステップ（40時刻分）の時系列データを学習データとして用い、40ステップごとに行った。
【０２８４】
また、第２シミュレーションでは、プランニングを、3ステップごとに、10ステップ先まで行った。
【０２８５】
したがって、第２シミュレーションでは、現在時刻を、時刻tとすると、図５のステップＳ１１において、探索長Nを10として、時刻tの時系列データから、時刻t+1ないしt+10の、10ステップ分の時系列データの予測値が求められ、ステップＳ１２において、時刻t+10の時系列データの目標値が決定される。
【０２８６】
そして、図５のステップＳ１５において、時刻tないしt+10-1の10ステップ分の誤差減少データが求められ、そのうちの、時刻t+1からの3ステップ分である、時刻t+1ないしt+3の誤差減少データとしてのアクションデータが、エージェントのアクチュエータに出力される。
【０２８７】
エージェントは、アクションデータにしたがった行動をとり、これにより、時刻t+3の時系列データが得られる。そして、第２シミュレーションでは、エージェントが行動することにより得られる時刻t+3の時系列データから、10ステップ分の時系列データの予測値が求められる。さらに、10ステップ先の時系列データの目標値が決定され、以下、同様の処理が繰り返される。
【０２８８】
そして、第２シミュレーションでは、学習モジュール１００1ないし１００KのRNN#1ないしRNN#Kのうちの、あるRNN#iの学習の後、40ステップの誤差減少データが、エージェントのアクチュエータに出力されると、つまり、3ステップの誤差減少データの出力が、14回だけ行われると、その14回分の42（=14×3）ステップの誤差減少データのうちの最初の40ステップの誤差減少データが学習データとされ、RNN#i+1の学習が行われる。
【０２８９】
また、第２シミュレーションでは、図５のステップＳ１２において、センサデータとしてのエネルギの変化△Eの予測値の1.5倍の値を、そのセンサデータとしてのエネルギの変化△Eの目標値に決定することとした。
【０２９０】
すなわち、エージェントとしての移動ロボットが行動する動機を、四方の壁のすべてになるべく近づきつつ（遠ざかりつつ）、かつ、光源に近づくことに設定した。
【０２９１】
ここで、エネルギの変化△Eは、例えば、移動ロボットが光源に近く、かつ、四方の壁のいずれからも近い（遠い）場合に大となる。
【０２９２】
したがって、エネルギの変化△Eの予測値の1.5倍の値を、そのエネルギの変化△Eの目標値に決定することにより、その目標値は、移動ロボットを光源に近づけ、かつ、四方の壁のいずれにも近づける（いずれからも遠ざける）ような値となる。
【０２９３】
また、第２シミュレーションでは、エージェントとしての移動ロボットに目標を達成させることができる程度を表す評価値として、式（６）のエネルギの変化△Eの総和を採用した。
【０２９４】
図１３は、第２シミュレーションで得られた評価値の変化を示している。
【０２９５】
ここで、図１３において、横軸は、試行回数を表し、縦軸は、評価値を表す。
【０２９６】
図１３によれば、評価値は、試行回数の増加に伴って増加する傾向にあり、移動ロボットが、エネルギの変化△Eの総和を大にする行動をとっていることを確認することができる。
【０２９７】
図１４は、20回の試行それぞれで、移動ロボットが描いた移動軌跡を示している。
【０２９８】
図１４によれば、図１２で説明したように、８の字を描くように移動する行動の学習しかしていなかった移動ロボットが、光源に近づく行動をとるためのアクションデータ（誤差減少データ）を探索、学習し、光源に近づくように移動することができるようになっていくことを確認することができる。
【０２９９】
ここで、図１４に示したように、移動ロボットが光源に近づく行動をとることは、光源を、移動環境中の複数の位置のいずれに設置しても観測された。
【０３００】
第１シミュレーション及び第２シミュレーションによれば、エージェント（の予測モデル）は、目標を達成する行動を探索しながら学習していることが分かり、したがって、あらかじめ大量の学習を行っておく必要がない。
【０３０１】
なお、第１シミュレーションでは、センサデータとしての回転角度θの目標値は、-πから+πの範囲に制限したため、その回転角度θの最終的な目標値は、-π、又は+πとなる。
【０３０２】
一方、第２シミュレーションでは、センサデータとしてのエネルギの変化△Eの目標値は、特に制限していないため、そのエネルギの変化△Eの最終的な目標値は、未知の値である。
【０３０３】
このように、最終的な目標値が、既知の値、及び未知の値のいずれであっても、図１や図６のデータ処理装置では、エージェントが目標を達成する行動をとるためのアクションデータ（誤差減少データ）を探索することができる。
【０３０４】
次に、上述した一連の処理は、ハードウェアにより行うこともできるし、ソフトウェアにより行うこともできる。一連の処理をソフトウェアによって行う場合には、そのソフトウェアを構成するプログラムが、汎用のコンピュータ等にインストールされる。
【０３０５】
そこで、図１５は、上述した一連の処理を実行するプログラムがインストールされるコンピュータの一実施の形態の構成例を示している。
【０３０６】
プログラムは、コンピュータに内蔵されている記録媒体としてのハードディスク２０５や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)やスピーカ等で構成される出力部２０６から出力、あるいは、通信部２０８から送信、さらには、ハードディスク２０５に記録等させる。
【０３１０】
ここで、本明細書において、コンピュータに各種の処理を行わせるためのプログラムを記述する処理ステップは、必ずしもフローチャートとして記載された順序に沿って時系列に処理する必要はなく、並列的あるいは個別に実行される処理（例えば、並列処理あるいはオブジェクトによる処理）も含むものである。
【０３１１】
また、プログラムは、１のコンピュータにより処理されるものであっても良いし、複数のコンピュータによって分散処理されるものであっても良い。さらに、プログラムは、遠方のコンピュータに転送されて実行されるものであっても良い。
【０３１２】
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【図面の簡単な説明】
【０３１３】
【図１】本発明を適用したデータ処理装置の一実施の形態の構成例を示すブロック図である。
【図２】予測モデルとしてのRNNの例を示す図である。
【図３】センサデータ及びアクションデータの予測値と、センサデータの予測値に基づいて決定されたセンサデータの目標値の時間変化を示す図である。
【図４】誤差減少データとしてのアクションデータの探索を説明する図である。
【図５】データ処理装置の処理を説明するフローチャートである。
【図６】本発明を適用したデータ処理装置の他の一実施の形態の構成例を示すブロック図である。
【図７】データ処理装置による学習処理を説明するフローチャートである。
【図８】エージェントとしての棒状の振り子を示す図である。
【図９】第１シミュレーションで得られた評価値valの変化を示す図である。
【図１０】第１シミュレーションで得られた誤差減少データとしてのトルクτの時系列）を示す図である。
【図１１】振り子を高く振り上げるトルクτの探索を、ランダム探索で行った場合の評価値valの変化を示す図である。
【図１２】第２シミュレーションで用いた移動ロボットと、その移動ロボットが移動する環境との概要を示す図である。
【図１３】第２シミュレーションで得られた評価値の変化を示す図である。
【図１４】移動ロボットが描いた移動軌跡を示す図である。
【図１５】本発明を適用したコンピュータの一実施の形態の構成例を示すブロック図である。
【符号の説明】
【０３１４】
１０  学習装置，  １１  モデル記憶部，  １２  モデル更新部，  ２０  生成装置，  ２１  時系列データ予測部，  ２２  目標決定部，  ２３  誤差計算部，  ２４  時系列データ探索部，  １００1ないし１００K  学習モジュール，  １１１1ないし１１１K  記憶部，  １１２1ないし１１２K  学習装置，  １１３1ないし１１３K  生成装置，  １２０  モデルパラメータ共有部，  ２０１  バス，  ２０２  CPU，  ２０３  ROM，  ２０４  RAM，  ２０５  ハードディスク，  ２０６  出力部，  ２０７  入力部，  ２０８  通信部，  ２０９  ドライブ，  ２１０  入出力インタフェース，  ２１１  リムーバブル記録媒体
【図１】
0004803212.tif 000008
【図２】
0004803212.tif 000009
【図３】
0004803212.tif 000010
【図４】
0004803212.tif 000011
【図５】
0004803212.tif 000012
【図６】
0004803212.tif 000013
【図７】
0004803212.tif 000014
【図８】
0004803212.tif 000015
【図９】
0004803212.tif 000016
【図１０】
0004803212.tif 000017
【図１１】
0004803212.tif 000018
【図１２】
0004803212.tif 000019
【図１３】
0004803212.tif 000020
【図１４】
0004803212.tif 000021
【図１５】
0004803212.tif 000022