(57)【要約】【課題】学習済みのRNNの重み係数を変更しにくくすることにより、追加される時系列データを効率的に学習することができるようにする。【解決手段】情報処理装置５１において、RNN７１−１乃至７１−Ｎで実行される時系列データとしてのセンサモータ信号の追加学習処理では、これまでの学習で利用頻度FREQnが大きいRNN７１−ｎについて、その重み係数を変更しにくくするような学習重みμnを与えて、RNN７１−ｎの重み係数を学習する。本発明は、例えば、ロボットなどに組み込まれる情報処理装置に適用できる。【選択図】図３
2007305072.tif 000002
【特許請求の範囲】
【請求項１】
複数のリカレント型ニューラルネットワークに対して所定の時系列データを学習させた後、前記複数のリカレント型ニューラルネットワークに対して、新たな時系列データを追加して学習させる場合に、前記所定の時系列データを以前に学習したときの前記複数のリカレント型ニューラルネットワークそれぞれの利用頻度に負の相関を有する学習の重みを決定する学習重み決定手段を備え、
前記複数のリカレント型ニューラルネットワークそれぞれは、前記学習重み決定手段によって決定された前記学習の重みに応じて、前記新たな時系列データを学習する
情報処理装置。
【請求項２】
複数のリカレント型ニューラルネットワークに対して所定の時系列データを学習させた後、前記複数のリカレント型ニューラルネットワークに対して、新たな時系列データを追加して学習させる場合に、前記所定の時系列データを以前に学習したときの前記複数のリカレント型ニューラルネットワークそれぞれの利用頻度に負の相関を有する学習の重みを決定し、
決定された前記学習の重みに応じて、前記新たな時系列データを学習する
ステップを含む情報処理方法。
【請求項３】
複数のリカレント型ニューラルネットワークに対して所定の時系列データを学習させた後、前記複数のリカレント型ニューラルネットワークに対して、新たな時系列データを追加して学習させる場合に、前記所定の時系列データを以前に学習したときの前記複数のリカレント型ニューラルネットワークそれぞれの利用頻度に負の相関を有する学習の重みを決定し、
決定された前記学習の重みに応じて、前記新たな時系列データを学習する
ステップを含む処理をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法、およびプログラムに関し、特に、学習済みのRNNの重み係数を変更しにくくすることにより、追加される時系列データを効率的に学習することができるようにする情報処理装置、情報処理方法、およびプログラムに関する。
【背景技術】
【０００２】
本出願人は、リカレント型ニューラルネットワークを用いて、時系列データを、学習した結果に応じて発生させることを先に提案した（例えば、特許文献１参照）。
【０００３】
この提案においては、図１に示されるように、情報処理装置が、基本的に、リカレント型ニューラルネットワーク（以下、RNNという）１−１乃至１−ｖを有する下位の階層のネットワークと、RNN１１−１乃至１１−ｖを有する上位の階層のネットワークとで構成される。
【０００４】
下位の階層のネットワークにおいては、RNN１−１乃至１−ｖの出力が、それぞれ対応するゲート２−１乃至２−ｖを介して、合成回路３に供給され、合成される。
【０００５】
上位の階層のネットワークにおいても、RNN１１−１乃至１１−ｖの出力が、対応するゲート１２−１乃至１２−ｖを介して合成回路１３に供給され、合成される。そして、上位の階層の合成回路１３の出力に基づいて、下位の階層のゲート２−１乃至２−ｖのオン、オフが制御される。
【０００６】
図１に示す構成を有する情報処理装置では、下位の階層のRNN１−１乃至１−ｖに、それぞれ時系列データＰ１乃至Ｐｖを発生させ、上位の階層の合成回路１３の出力に基づいて、下位の階層のゲート２−１乃至２−ｖのうちの所定のものをオンまたはオフさせるようにすることで、合成回路３からRNN１−１乃至１−ｖのうちの所定のものが発生した時系列データＰ１乃至Ｐｖのいずれかを選択的に出力させることができる。
【０００７】
これにより、例えば、図２に示されるように、所定の時間、時系列データＰ１を生成させた後、次の所定の時間、時系列データＰ２を生成させ、さらに、その次の所定の時間、再び時系列データＰ１を生成させるなどして、時系列データを生成させることができる。
【特許文献１】特開平１１−１２６１９８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、図１の情報処理装置のように複数のRNNに時系列データを学習させる場合であって、所定の時系列データを学習させた後、新たな時系列データを追加して学習させる場合、新たな時系列データが、学習済みの時系列データと特徴が似ていると、本来異なる時系列データであるのに、その特徴が似ている学習済みの時系列データを学習したRNNの重み係数が変更されてしまうという問題があった。
【０００９】
本発明は、このような状況に鑑みてなされたものであり、学習済みのRNNの重み係数を変更しにくくすることにより、追加される時系列データを効率的に学習することができるようにするものである。
【課題を解決するための手段】
【００１０】
本発明の一側面の情報処理装置は、複数のリカレント型ニューラルネットワークに対して所定の時系列データを学習させた後、前記複数のリカレント型ニューラルネットワークに対して、新たな時系列データを追加して学習させる場合に、前記所定の時系列データを以前に学習したときの前記複数のリカレント型ニューラルネットワークそれぞれの利用頻度に負の相関を有する学習の重みを決定する学習重み決定手段を備え、前記複数のリカレント型ニューラルネットワークそれぞれは、前記学習重み決定手段によって決定された前記学習の重みに応じて、前記新たな時系列データを学習する。
【００１１】
本発明の一側面の情報処理方法は、複数のリカレント型ニューラルネットワークに対して所定の時系列データを学習させた後、前記複数のリカレント型ニューラルネットワークに対して、新たな時系列データを追加して学習させる場合に、前記所定の時系列データを以前に学習したときの前記複数のリカレント型ニューラルネットワークそれぞれの利用頻度に負の相関を有する学習の重みを決定し、決定された前記学習の重みに応じて、前記新たな時系列データを学習するステップを含む。
【００１２】
本発明の一側面のプログラムは、複数のリカレント型ニューラルネットワークに対して所定の時系列データを学習させた後、前記複数のリカレント型ニューラルネットワークに対して、新たな時系列データを追加して学習させる場合に、前記所定の時系列データを以前に学習したときの前記複数のリカレント型ニューラルネットワークそれぞれの利用頻度に負の相関を有する学習の重みを決定し、決定された前記学習の重みに応じて、前記新たな時系列データを学習するステップを含む処理をコンピュータに実行させる。
【００１３】
本発明の一側面においては、複数のリカレント型ニューラルネットワークに対して所定の時系列データを学習させた後、複数のリカレント型ニューラルネットワークに対して、新たな時系列データを追加して学習させる場合に、所定の時系列データを以前に学習したときの複数のリカレント型ニューラルネットワークそれぞれの利用頻度に負の相関を有する学習の重みが決定され、決定された学習の重みに応じて、新たな時系列データが学習される。
【発明の効果】
【００１４】
本発明の一側面によれば、学習済みのRNNの重み係数を変更しにくくすることにより、追加される時系列データを効率的に学習することができる。
【発明を実施するための最良の形態】
【００１５】
以下に本発明の実施の形態を説明するが、本発明の構成要件と、明細書又は図面に記載の実施の形態との対応関係を例示すると、次のようになる。この記載は、本発明をサポートする実施の形態が、明細書又は図面に記載されていることを確認するためのものである。従って、明細書又は図面中には記載されているが、本発明の構成要件に対応する実施の形態として、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その構成要件に対応するものではないことを意味するものではない。逆に、実施の形態が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
【００１６】
本発明の一側面の情報処理装置（例えば、図３の情報処理装置５１）は、複数のリカレント型ニューラルネットワークに対して所定の時系列データを学習させた後、前記複数のリカレント型ニューラルネットワークに対して、新たな時系列データを追加して学習させる場合に、前記所定の時系列データを以前に学習したときの前記複数のリカレント型ニューラルネットワークそれぞれの利用頻度に負の相関を有する学習の重みを決定する学習重み決定手段（例えば、図３の制御回路７６）を備え、前記複数のリカレント型ニューラルネットワークそれぞれは、前記学習重み決定手段によって決定された前記学習の重みに応じて、前記新たな時系列データを学習する。
【００１７】
本発明の一側面の情報処理方法またはプログラム（例えば、図１１の追加学習処理方法）は、複数のリカレント型ニューラルネットワークに対して所定の時系列データを学習させた後、前記複数のリカレント型ニューラルネットワークに対して、新たな時系列データを追加して学習させる場合に、前記所定の時系列データを以前に学習したときの前記複数のリカレント型ニューラルネットワークそれぞれの利用頻度に負の相関を有する学習の重みを決定し（例えば、図１１のステップＳ１０２）、決定された前記学習の重みに応じて、前記新たな時系列データを学習する（例えば、図１１のステップＳ１０３）ステップを含む。
【００１８】
以下、図を参照して、本発明の実施の形態について説明する。
【００１９】
図３は、本発明を適用した情報処理装置の構成例を示している。
【００２０】
図３の情報処理装置５１は、例えば、ロボットなどに組み込まれるものである。情報処理装置５１が組み込まれるロボットには、視認の対象となる対象物を検出するセンサと、ロボットを移動させるために駆動されるモータ（いずれも図示せず）が少なくとも具備されており、センサおよびモータからの信号であるセンサモータ信号が情報処理装置５１に供給される。
【００２１】
情報処理装置５１は、下位時系列予測生成器６１、上位時系列予測生成器６２、およびゲート信号変換部６３により構成され、教師データとして与えられる時系列データを学習する学習処理と、その学習した結果に応じて、入力に対する時系列データを生成（再現）する生成処理を実行する。
【００２２】
本実施の形態では、情報処理装置５１が、ヒューマノイドロボットが行う一連の動作である行動シーケンスを学習および生成する例について説明する。
【００２３】
以下の例では、情報処理装置５１が３つの行動シーケンスA，B、およびCを学習する。
【００２４】
行動シーケンスAとしてのヒューマノイドロボットの動作は、初期状態としての両腕を左右に広げた状態のロボットが、目の前のテーブルに置かれた四角い物体を視認し、物体を両手で掴んで所定の高さだけ持ち上げ、再びテーブルに置く動作を複数回行い、その後、初期状態の位置（以下、ホームポジションともいう）に両腕を戻す動作である。
【００２５】
行動シーケンスBとしてのヒューマノイドロボットの動作は、初期状態から、目の前のテーブルに置かれた四角い物体を視認し、右手で物体に触る、ホームポジションに戻す、左手で物体に触る、ホームポジションに戻るという動作、即ち、物体を片手で交互に触る動作を複数回行う動作である。
【００２６】
行動シーケンスCとしてのヒューマノイドロボットの動作は、初期状態から、目の前のテーブルに置かれた四角い物体を視認し、両手で同時に物体を１回触って、ホームポジションに戻る動作である。
【００２７】
以上のような行動シーケンスA乃至Cそれぞれを実行するときのセンサ（例えば、視覚センサなど）やモータの信号を、情報処理装置５１は学習および生成する。
【００２８】
下位時系列予測生成器６１は、N個のリカレント型ニューラルネットワーク（Recurrent Neural Network;以下、RNNという）７１−１乃至７１−Ｎ、そのRNN７１−１乃至７１−Ｎの後段に配置されるゲート７２−１乃至７２−Ｎ、合成回路７３、演算回路７４、メモリ７５、および制御回路７６により構成される。なお、RNN７１−１乃至７１−Ｎを特に区別する必要がない場合には、単にRNN７１と称する。その他のゲート７２などについても同様である。
【００２９】
下位時系列予測生成器６１には、ヒューマノイドロボットに具備されたセンタおよびモータからのセンサモータ信号が入力される。ここで、時刻ｔに、下位時系列予測生成器６１に入力されるセンサモータ信号をｓｍ（ｔ）と表す。
【００３０】
下位時系列予測生成器６１は、そこに入力される時刻ｔのセンサモータ信号ｓｍ（ｔ）に対して、時刻ｔ＋１のセンサモータ信号ｓｍ（ｔ＋１）を、予め学習した結果に応じて予測して、出力する。
【００３１】
具体的には、RNN７１−ｎ（ｎ＝１，２，・・・，Ｎ）は、入力された時刻ｔのセンサモータ信号ｓｍ（ｔ）に対して、予め学習した結果に応じて時刻ｔ＋１のセンサモータ信号ｓｍ（ｔ＋１）を生成し、ゲート７２−ｎに出力する。
【００３２】
ところで、行動シーケンスは、さまざまな複数の行動部品（運動プリミティブ（primitive））の集まり（連続）で構成されると考えることができる。例えば、上述した行動シーケンスAは、物体を視認する、両腕を物体に（掴むまで）近づける、物体を持ち上げる、持ち上げた物体を下げる、ホームポジションに戻る、等の行動部品の集まりであると考えることができる。RNN７１−１乃至７１−Ｎのそれぞれは、１つの行動部品に対応するセンサモータ信号の時系列データを排他的に学習する。
【００３３】
従って、RNN７１−１乃至７１−Ｎそれぞれに学習されている行動部品が異なるために、RNN７１−１乃至７１−Ｎのそれぞれには、同一のセンサモータ信号ｓｍ（ｔ）が入力されるが、RNN７１−１乃至７１−Ｎのそれぞれが出力するセンサモータ信号ｓｍ（ｔ＋１）は異なるものとなる。ここで、RNN７１−ｎが出力するセンサモータ信号ｓｍ（ｔ＋１）をセンサモータ信号ｓｍn（ｔ＋１）と表す。
【００３４】
RNN７１−ｎの後段に配置されるゲート７２−ｎには、RNN７１−ｎからの時刻ｔ＋１のセンサモータ信号ｓｍn（ｔ＋１）の他に、ゲート信号変換部６３から、ゲート７２−１乃至７２−Ｎの開閉状態の制御信号であるゲート信号gate［Ｎ］＝｛ｇ1，ｇ2，・・・，ｇN｝が供給される。なお、後述するように、ゲート信号gate［Ｎ］を構成するゲート信号ｇnの総和は１（Σｇn＝１）となっている。
【００３５】
ゲート７２−ｎは、ゲート信号ｇnに応じて、RNN７１−ｎからのセンサモータ信号ｓｍn（ｔ＋１）の出力を開閉する。即ち、ゲート７２−ｎは、時刻ｔ＋１において、ｇn×ｓｍn（ｔ＋１）を合成回路７３に出力する。
【００３６】
合成回路７３は、ゲート７２−１乃至７２−Ｎそれぞれからの出力を合成し、その合成の結果を、時刻ｔ＋１のセンサモータ信号ｓｍ（ｔ＋１）として出力する。即ち、合成回路７３は、次式（１）で表されるセンサモータ信号ｓｍ（ｔ＋１）を出力する。
【００３７】
【数１】
2007305072.tif 000003
【００３８】
演算回路７４は、センサモータ信号の時系列データの学習時、時刻ｔのセンサモータ信号ｓｍ（ｔ）に対してRNN７１−１乃至７１−Ｎそれぞれが出力した時刻ｔ＋１のセンサモータ信号ｓｍ1（ｔ＋１）乃至ｓｍN（ｔ＋１）と、教師データとして下位時系列予測生成器６１に与えられる時刻ｔ＋１の教師センサモータ信号ｓｍ*（ｔ＋１）との予測誤差errorLt+1［Ｎ］＝｛errorLt+11，errorLt+12，・・・，errorLt+1N｝を計算する。なお、予測誤差errorLt+1［Ｎ］は、後述する式（１６）で表されるように、時刻ｔ＋１における誤差だけではなく、時刻ｔ＋１から過去Ｌステップ分を考慮した誤差として計算される。
【００３９】
演算回路７４により計算された時刻ｔ＋１におけるRNN７１−ｎの予測誤差errorLt+1nは、メモリ７５に供給され、記憶される。
【００４０】
演算回路７４において、予測誤差errorLt+1［Ｎ］の計算が時系列に繰り返され、メモリ７５に記憶されることにより、メモリ７５には、教師データに対する予測誤差の時系列データerrorL［Ｎ］が記憶される。この予測誤差の時系列データerrorL［Ｎ］は、上位時系列予測生成器６２に供給される。なお、演算回路７４は、教師データに対する予測誤差の時系列データerrorL［Ｎ］を、０から１の範囲の値に正規化してから出力する。
【００４１】
メモリ７５は、上述したように、教師データに対する予測誤差の時系列データerrorL［Ｎ］を記憶する。また、メモリ７５は、RNN７１−１乃至７１−Ｎの利用頻度FREQ1乃至FREQNも記憶する。RNN７１−１乃至７１−Ｎの利用頻度FREQ1乃至FREQNについては図６を参照して後述する。
【００４２】
制御回路７６は、RNN７１−１乃至７１−Ｎ、演算回路７４、メモリ７５など、下位時系列予測生成器６１の各部を制御する。
【００４３】
一方、上位時系列予測生成器６２は、１個の連続時間型のRNN（Continuous Time RNN：以下、CTRNNという）８１により構成される。
【００４４】
上位時系列予測生成器６２のCTRNN８１は、下位時系列生成器６１のRNN７１−１乃至７１−Ｎが、生成時にどれくらいの予測誤差を発生させるかを推定（予測）して出力する。
【００４５】
即ち、CTRNN８１は、RNN７１−１乃至７１−Ｎの予測誤差の時系列データerrorL［Ｎ］を教師データとして用いて学習し、その学習した結果に基づいて、RNN７１−１乃至７１−Ｎの推定予測誤差errorPredH［Ｎ］＝｛errorPredH1，errorPredH2，・・・，errorPredHN｝を生成し、出力する。ここで、時刻ｔにおける推定予測誤差errorPredH［Ｎ］を、errorPredHt［Ｎ］＝｛errorPredHt1，errorPredHt2，・・・，errorPredHtN｝とする。
【００４６】
また、CTRNN８１には、行動シーケンスA乃至Bのいずれの推定予測誤差errorPredH［Ｎ］を出力するかを切替えるタスク切替信号としてのタスクIDが与えられる。
【００４７】
ゲート信号変換部６３は、ソフトマックス（softmax）関数を用いて、時刻ｔにおける推定予測誤差errorPredHt［Ｎ］を、ゲート信号gatet［Ｎ］＝｛ｇt1，ｇt2，・・・，ｇtN｝に変換し、変換した結果をゲート７２−１乃至７２−Ｎに出力する。
【００４８】
時刻ｔにおけるゲート７２−ｎに対するゲート信号ｇtnは、次式（２）で表される。
【００４９】
【数２】
2007305072.tif 000004
【００５０】
式（２）によれば、予測誤差の小さいものは大きい値に、予測誤差の大きいものは小さい値となるような非線形の変換が施される。その結果、予測誤差の小さいものほどゲートがより大きく開き、予測誤差の大きいものほどゲートがより小さく開くような制御が、下位時系列生成器６１のゲート７２−１乃至７２−Ｎにおいて行われることになる。
【００５１】
以上のように構成される情報処理装置５１では、上位時系列予測生成器６２が、下位時系列生成器６１のRNN７１−１乃至７１−Ｎが生成時に発生させる予測誤差の推定値である推定予測誤差errorPredH［Ｎ］を出力し、この推定予測誤差errorPredH［Ｎ］が、ゲート７２−１乃至７２−Ｎの開閉状態を制御するゲート信号gate［Ｎ］に変換される。そして、上述の（１）式で表される、開閉状態が制御されたゲート７２−１乃至７２−Ｎから出力されるRNN７１−１乃至７１−Ｎの出力信号ｓｍ1（ｔ＋１）乃至ｓｍN（ｔ＋１）の総和が、時刻ｔ＋１のセンサモータ信号ｓｍ（ｔ＋１）として、ヒューマノイドロボットのセンサおよびモータに供給される。
【００５２】
なお、上位時系列予測生成器６２は、上位時系列予測生成器６２の出力である推定予測誤差errorPredH［Ｎ］が、後段のゲート信号変換部６３においてゲート信号gate［Ｎ］に変換されるから、時刻ｔにおいて、どのゲート７２−１乃至７２−Ｎを（大きく）開放するかを予測しているとも言える。
【００５３】
図４は、RNN７１−ｎの詳細な構成例を示している。
【００５４】
RNN７１−ｎは、図４に示されるように、入力層１０１、中間層（隠れ層）１０２、および出力層１０３により構成されており、入力層１０１は所定数のノード１１１を有し、中間層（隠れ層）１０２は、所定数のノード１１２を有し、出力層１０３は、所定数のノード１１３を有している。
【００５５】
入力層１０１のノード１１１には、時刻ｔにおけるセンサモータ信号ｓｍ（ｔ）と、時刻ｔの１つ前の時刻ｔ−１に出力層１０３の一部のノード１１３から出力され、RNN７１−ｎの内部状態を表すコンテキストｃ（ｔ）としてフィードバックされたデータが、入力される。
【００５６】
中間層１０２のノード１１２は、入力層１０１のノード１１１から入力されたデータと、予め学習によって求められたノード１１１との間の重み係数とを積和する重み付け加算処理を行い、その演算結果を出力層１０３のノード１１３に出力する。
【００５７】
出力層１０３を構成するノード１１３は、中間層１０２のノード１１２から入力されたデータと、予め学習によって求められたノード１１２との間の重み係数とを積和する重み付け加算処理の演算を行う。出力層１０３を構成する一部のノード１１３は、演算結果を、時刻ｔ＋１のセンサモータ信号ｓｍn（ｔ＋１）として出力する。また、出力層１０３を構成するその他の一部のノード１１３は、演算結果を、時刻ｔ＋１のコンテキストｃ（ｔ＋１）として、入力層１０１のノード１１１にフィードバックする。
【００５８】
以上のように、RNN７１−ｎは、予め学習によって求められたノード間の重み係数を用いた重み付け加算処理により、入力された時刻ｔのセンサモータ信号ｓｍ（ｔ）に対して、時刻ｔ＋１のセンサモータ信号ｓｍn（ｔ＋１）を予測して出力する。
【００５９】
なお、ノード間の重み係数を求める学習では、BPTT（Back Propagation Through Time）法が採用される。BPTT法は、コンテキストループを持つRNNの学習アルゴリズムであり、時間的な信号伝播の様子を空間的に展開することで、通常の階層型ニューラルネットワークにおけるバックプロパゲーション（BP）法を適用する手法である。次に後述するCTRNN８１において重み係数を求める場合も同様である。
【００６０】
図５は、CTRNN８１として採用されるCTRNNの詳細な構成例を示している。
【００６１】
図５のCTRNN１４１は、入力層１５１、中間層（隠れ層）１５２、出力層１５３、並びに演算部１５４および１５５により構成されている。
【００６２】
入力層１５１は、入力ノード１６０−ｉ（ｉ＝１，・・・，Ｉ）、パラメータノード１６１−ｒ（ｒ＝１，・・・，Ｒ）、およびコンテキスト入力ノード１６２−ｋ（ｋ＝１，・・・，Ｋ）を有しており、中間層１５２は、隠れノード１６３−ｊ（ｊ＝１，・・・，Ｊ）を有している。また、出力層１５３は、出力ノード１６４−ｉ（ｉ＝１，・・・，Ｉ）と、コンテキスト出力ノード１６５−ｋ（ｋ＝１，・・・，Ｋ）を有している。
【００６３】
なお、入力ノード１６０−ｉ、パラメータノード１６１−ｒ、コンテキスト入力ノード１６２−ｋ、隠れノード１６３−ｊ、出力ノード１６４−ｉ、およびコンテキスト出力ノード１６５−ｋの各ノードを区別する必要がない場合には、単に、入力ノード１６０、パラメータノード１６１、コンテキスト入力ノード１６２、隠れノード１６３、出力ノード１６４、およびコンテキスト出力ノード１６５という。
【００６４】
CTRNN１４１では、そこに入力される時刻ｔの状態ベクトルｘu（ｔ）に対して、時刻ｔ＋１の状態ベクトルｘu（ｔ＋１）を予測して、出力することが学習される。CTRNN１４１は、ネットワークの内部状態を表すコンテキストループと呼ばれる回帰ループをもち、その内部状態に基づく処理が行われることで対象となる時系列データの時間発展法則を学習することができる。
【００６５】
CTRNN１４１に供給される時刻ｔの状態ベクトルｘu（ｔ）は、入力ノード１６０に入力される。パラメータノード１６１には、パラメータtsdatauが入力される。パラメータtsdatauは、CTRNN１４１に供給される状態ベクトルｘu（ｔ）の種類（時系列データのパターン）を識別するデータであり、CTRNN８１では、行動シーケンスを識別するデータとなる。パタメータtsdatauは固定値であるが、継続的に同一の値が入力されていると考えることができるので、時刻ｔにおいてパラメータノード１６１に入力されるデータ（ベクトル）をパラメータtsdatau（ｔ）とする。
【００６６】
入力ノード１６０−ｉには、時刻ｔの状態ベクトルｘu（ｔ）を構成するｉ番目の要素であるデータｘui（ｔ）が入力される。また、パラメータノード１６１−ｒには、時刻ｔのパラメータtsdatau（ｔ）を構成するｒ番目の要素であるデータtsdataur（ｔ）が入力される。さらに、コンテキスト入力ノード１６２−ｋには、時刻ｔのCTRNN１４１の内部状態ベクトルｃu（ｔ）を構成するｋ番目の要素であるデータｃuk（ｔ）が入力される。
【００６７】
入力ノード１６０−ｉ、パラメータノード１６１−ｒ、およびコンテキスト入力ノード１６２−ｋのそれぞれにデータｘui（ｔ）、tsdataur（ｔ）、およびｃuk（ｔ）が入力された場合に、入力ノード１６０−ｉ、パラメータノード１６１−ｒ、およびコンテキスト入力ノード１６２−ｋが出力するデータｘi（ｔ）、tsdatar（ｔ）、およびｃk（ｔ）は、それぞれ、次の式（３）、式（４）、および式（５）によって表される。
【００６８】
【数３】
2007305072.tif 000005
【数４】
2007305072.tif 000006
【数５】
2007305072.tif 000007
【００６９】
式（３）乃至式（５）における関数ｆは、シグモイド関数などの微分可能な連続関数であり、式（３）乃至式（５）は、入力ノード１６０−ｉ、パラメータノード１６１−ｒ、およびコンテキスト入力ノード１６２−ｋのそれぞれに入力されたデータｘui（ｔ）、tsdataur（ｔ）、およびデータｃuk（ｔ）が、関数ｆにより活性化され、データｘi（ｔ）、tsdatar（ｔ）、およびデータｃk（ｔ）として入力ノード１６０−ｉ、パラメータノード１６１−ｒ、およびコンテキスト入力ノード１６２−ｋから出力されることを表している。なお、データｘui（ｔ）、tsdataur（ｔ）、およびｃuk（ｔ）の上付きのｕは、活性化される前のノードの内部状態を表す（他のノードについても同様）。
【００７０】
隠れノード１６３−ｊに入力されるデータｈuj（ｔ）は、入力ノード１６０−ｉと隠れノード１６３−ｊの結合の重みを表す重み係数ｗhij、パラメータノード１６１−ｒと隠れノード１６３−ｊの結合の重みを表す重み係数ｗhjr、およびコンテキスト入力ノード１６２−ｋと隠れノード１６３−ｊの結合の重みを表す重み係数ｗhjkとを用いて、式（６）で表すことができ、隠れノード１６３−ｊが出力するデータｈj（ｔ）は、式（７）で表すことができる。
【００７１】
【数６】
2007305072.tif 000008
【数７】
2007305072.tif 000009
【００７２】
なお、式（６）の右辺の第１項のΣは、ｉ＝１乃至Ｉの全てについて加算することを表し、第２項のΣは、ｒ＝１乃至Ｒの全てについて加算することを表し、第３項のΣは、ｋ＝１乃至Ｋの全てについて加算することを表す。
【００７３】
同様にして、出力ノード１６４−ｉに入力されるデータｙui（ｔ）と、出力ノード１６４−ｉが出力するデータｙi（ｔ）、および、コンテキスト出力ノード１６５−ｋに入力されるデータｏuk（ｔ）と、コンテキスト出力ノード１６５−ｋが出力するデータｏk（ｔ）は、次式で表すことができる。
【００７４】
【数８】
2007305072.tif 000010
【数９】
2007305072.tif 000011
【数１０】
2007305072.tif 000012
【数１１】
2007305072.tif 000013
【００７５】
式（８）のｗyijは、隠れノード１６３−ｊと出力ノード１６４−ｉの結合の重みを表す重み係数であり、Σは、ｊ＝１乃至Jの全てについて加算することを表す。また、式（１０）のｗojkは、隠れノード１６３−ｊとコンテキスト出力ノード１６５−ｋの結合の重みを表す重み係数であり、Σは、ｊ＝１乃至Jの全てについて加算することを表す。
【００７６】
演算部１５４は、出力ノード１６４−ｉが出力するデータｙi（ｔ）から、時刻ｔのデータｘui（ｔ）と時刻ｔ＋１のデータｘui（ｔ＋１）との差分△ｘui（ｔ＋１）を式（１２）により求め、さらに、式（１３）により、時刻ｔ＋１のデータｘui（ｔ＋１）を計算して、出力する。
【００７７】
【数１２】
2007305072.tif 000014
【数１３】
2007305072.tif 000015
【００７８】
ここで、αおよびτは、任意の係数を表す。
【００７９】
したがって、CTRNN１４１に時刻ｔのデータｘui（ｔ）が入力されると、時刻ｔ＋１のデータｘui（ｔ＋１）がCTRNN１４１の演算部１５４から出力される。また、演算部１５４から出力された時刻ｔ＋１のデータｘui（ｔ＋１）は、入力ノード１６０−ｉにも供給される（フィードバックされる）。
【００８０】
演算部１５５は、コンテキスト出力ノード１６５−ｋが出力するデータｏk（ｔ）から、時刻ｔのデータｃuk（ｔ）と、時刻ｔ＋１のデータｃuk（ｔ＋１）との差分△ｃuk（ｔ＋１）を式（１４）により求め、さらに、式（１５）により、時刻ｔ＋１のデータｃuk（ｔ＋１）を計算して、出力する。
【００８１】
【数１４】
2007305072.tif 000016
【数１５】
2007305072.tif 000017
【００８２】
演算部１５５から出力された時刻ｔ＋１のデータｃuk（ｔ＋１）は、コンテキスト入力ノード１６２−ｋにフィードバックされる。
【００８３】
式（１５）は、ネットワークの現在の内部状態を表す内部状態ベクトルｃu（ｔ）に、コンテキスト出力ノード１６５−ｋの出力であるデータｏk（ｔ）を係数αで重み付けて加算する（所定の割合で足しこむ）ことによって次の時刻ｔ＋１のネットワークの内部状態ベクトルｃu（ｔ＋１）とすることを意味しており、その意味で、図５のCTRNN１４１は、連続時間型のRNNであると言うことができる。
【００８４】
以上のように、CTRNN１４１では、時刻ｔのデータｘu（ｔ）およびデータｃu（ｔ）が入力されると、時刻ｔ＋１のデータｘu（ｔ＋１）およびデータｃu（ｔ＋１）を生成して出力する処理を逐次的に行うので、重み係数ｗhij，ｗhir，ｗhjk，ｗyij、およびｗojkが学習により求められているとすると、入力ノード１６０に入力する入力データｘu（ｔ）の初期値ｘu（ｔ0）＝Ｘ０、パラメータノード１６１に入力するパラメータtsdatau、コンテキスト入力ノード１６２に入力するコンテキスト入力データｃu（ｔ）の初期値ｃu（ｔ0）＝Ｃ０を与えることにより、時系列データを生成することができる。
【００８５】
図５に示したCRTNN１４１を、図３のCRTNN８１として採用し、CRTNN１４１の入力ノード１６０に対してerrorL[Ｎ]が与えられ、パラメータノード１６１に対してタスクIDが与えられる。従って、図５の入力ノード１６０の個数Iは、下位時系列予測生成器６１のRNN７１の個数Ｎと一致する。なお、コンテキスト入力ノード１６２に入力するコンテキスト入力データｃu（ｔ）の初期値ｃu（ｔ0）＝Ｃ０には、例えば、ランダムな所定の値が与えられる。
【００８６】
次に、図６のフローチャートを参照して、下位時系列予測生成器６１における、行動シーケンスに対応するセンサモータ信号の時系列データの学習処理について説明する。
【００８７】
初めに、ステップＳ１において、下位時系列予測生成器６１の制御回路７６は、教師データとして供給された所定の時刻の入力データを読み込む。ここでの入力データは、上述したようにセンサモータ信号であり、例えば、時刻ｔのセンサモータ信号ｓｍ（ｔ）が読み込まれたものとする。読み込まれた時刻ｔのセンサモータ信号ｓｍ（ｔ）は、制御回路７６により、下位時系列予測生成器６１を構成するＮ個のRNN７１−１乃至７１−Ｎそれぞれに供給される。
【００８８】
ステップＳ２において、下位時系列予測生成器６１のRNN７１−ｎ（ｎ＝１，２，・・・，Ｎ）は、時刻ｔのセンサモータ信号ｓｍ（ｔ）に対して、時刻ｔ＋１のセンサモータ信号ｓｍn（ｔ＋１）を算出する。
【００８９】
また、ステップＳ２において、演算回路７４は、RNN７１−ｎの予測誤差errorLt+1nを算出する。具体的には、演算回路７４は、予測誤差errorLt+1nとして、式（１６）によって表される、時刻ｔ＋１から過去Ｌ時間ステップ分のセンサモータ信号に対する予測誤差を算出する。
【００９０】
【数１６】
2007305072.tif 000018
【００９１】
式（１６）において、ｓｍn,i'（Ｔ）は、時刻Ｔのセンサモータ信号ｓｍ（Ｔ）を出力するRNN７１−ｎの出力層１０３のノード１１３（図４）がＩ’個あるうちのｉ’番目のノード１１３が出力するセンサモータ信号を表し、ｓｍ*n,i'（Ｔ）は、それに対する教師データとしてのセンサモータ信号を表す。
【００９２】
式（１６）によれば、時刻Ｔ＝ｔ＋１−Ｌからｔ＋１までの、RNN７１−ｎの出力層１０３のｉ’番目のノード１１３のセンサモータ信号ｓｍn,i'（Ｔ）と教師データｓｍ*n,i'（Ｔ）との誤差の総和が、時刻ｔ＋１におけるRNN７１−ｎの予測誤差errorLt+1nとされる。なお、過去のセンサモータ信号がＬ時間ステップ分ない場合には、存在する時間ステップ分のデータのみで予測誤差errorLt+1nが求められる。
【００９３】
ステップＳ３において、演算回路７４は、時刻ｔ＋１におけるRNN７１−ｎの予測誤差errorLt+1nをメモリ７５に供給する。これにより、メモリ７５には、RNN７１−１乃至７１−Ｎのｎ個の予測誤差errorLt+11乃至errorLt+1Nが供給され、メモリ７５は、予測誤差errorLt+1［Ｎ］＝｛errorLt+11，errorLt+12，・・・，errorLt+1N｝を記憶する。また、後述するステップＳ７の処理ＮＯと判定された場合、ステップＳ３の処理が所定時間ステップだけ繰り返されるので、メモリ７５には、教師データに対する予測誤差の時系列データerrorL［Ｎ］が記憶される。
【００９４】
ステップＳ４において、制御回路７６は、予測誤差errorLt+1nに応じたRNN７１−ｎの学習重みγnを算出する。具体的には、制御回路７６は、ソフトマックス関数（softmax関数）を用いた式（１７）により、学習重みγnを算出する。
【００９５】
【数１７】
2007305072.tif 000019
【００９６】
ステップＳ５において、制御回路７６は、BPTT（Back Propagation Through Time）法によりRNN７１−ｎの重み係数ｗab,nを更新する。ここで、重み係数ｗab,nは、RNN７１−ｎの入力層１０１のノード１１１と中間層１０２のノード１１２との重み係数、または、RNN７１−ｎの中間層１０２のノード１１２と出力層１０２のノード１１３との重み係数を表す。
【００９７】
RNN７１−ｎの重み係数ｗab,nの更新では、ステップＳ４で算出された学習重みγnに応じてRNN７１−ｎの重み係数ｗab,nが算出される。具体的には、次式（１８）および（１９）により、BPTT法の繰り返し計算におけるｓ回目の重み係数ｗab,n（ｓ）から、ｓ＋１回目の重み係数ｗab,n（ｓ＋１）を求めることができる。
【００９８】
【数１８】
2007305072.tif 000020
【数１９】
2007305072.tif 000021
【００９９】
式（１８）において、η1は学習係数を表し、α1は慣性係数を表す。なお、式（１８）において、ｓ＝１の場合の△ｗab,n（ｓ）は、０とする。
【０１００】
ステップＳ６において、制御回路７６は、RNN７１−１乃至７１−Ｎの利用頻度FREQ1乃至FREQNをメモリ７５に供給する。メモリ７５は、供給されたRNN７１−１乃至７１−Ｎの利用頻度FREQ1乃至FREQNを記憶する。上述したステップＳ５において学習重みγnが大きいほど、そのRNN７１−ｎの重み係数ｗab,nが更新され、RNN７１−ｎが利用されたことになる。従って、制御回路７６は、例えば、学習重みγnが所定の値以上であるRNN７１−ｎの利用頻度FREQnをカウントアップさせる。この利用頻度FREQ1乃至FREQNは、図１０を参照して後述する追加学習で使用される。
【０１０１】
ステップＳ７において、下位時系列予測生成器６１の制御回路７６は、入力データの供給が終了したかを判定する。
【０１０２】
ステップＳ７で、入力データの供給が終了していないと判定された場合、即ち、ステップＳ１で供給された入力データの次の時刻の入力データが供給された場合、ステップＳ１に戻り、それ以降の処理が繰り返される。
【０１０３】
一方、ステップＳ７で、入力データの供給が終了したと判定された場合、学習処理は終了する。
【０１０４】
次に、上位時系列予測生成器６２のCRTNN８１における予測誤差の時系列データの学習について説明する。
【０１０５】
情報処理装置５１を搭載したヒューマノイドロボットに、複数の行動シーケンスを学習させる場合、学習の結果得られた入力層１５１と中間層１５２の各ノード間の重み係数ｗhij，ｗhjr、およびｗhjkと、中間層１５２と出力層１５３の各ノード間の重み係数ｗyijおよびｗojkが、すべての行動シーケンスに対応可能な値である必要がある。
【０１０６】
そこで、学習処理では、複数の行動シーケンスに対応する時系列データの学習が同時に実行される。即ち、学習処理では、学習させる行動シーケンスの数と同数のCTRNN１４１（図５）が用意され、行動シーケンスごとに重み係数ｗhij，ｗhjr，ｗhjk，ｗyij、およびｗojkをそれぞれ求め、それらの平均値を１つの重み係数ｗhij，ｗhjr，ｗhjk，ｗyij、およびｗojkとする処理を繰り返し実行することによって、生成処理で利用されるCTRNN８１の重み係数ｗhij，ｗhjr，ｗhjk，ｗyij、およびｗojkが求められる。
【０１０７】
図７は、Ｑ個の行動シーケンスに対応するＱ個の予測誤差の時系列データを学習する、上位時系列予測生成器６２の学習処理のフローチャートである。なお、本実施の形態では、学習する行動シーケンスは、行動シーケンスA，B、およびCの３つであるので、Ｑ＝３となる。
【０１０８】
初めに、ステップＳ３１において、上位時系列予測生成器６２は、教師データとしての、Ｑ個の予測誤差の時系列データerrorL[Ｎ]を下位時系列予測生成器６１のメモリ７５から読み込む。そして、上位時系列予測生成器６２は、読み込んだＱ個の時系列データerrorL[Ｎ]を、Ｑ個のCRTNN１４１にそれぞれ供給する。
【０１０９】
ステップＳ３２において、上位時系列予測生成器６２は、Ｑ個の行動シーケンスそれぞれを識別するタスクIDを読み込む。本実施の形態では、３つの行動シーケンスA，B、およびCそれぞれを識別するタスクIDを読み込む。そして、上位時系列予測生成器６２は、行動シーケンスAの教師データを供給したCRT１４１には、行動シーケンスAを識別するタスクIDを供給し、行動シーケンスBの教師データを供給したCRT１４１には、行動シーケンスBを識別するタスクIDを供給し、行動シーケンスCの教師データを供給したCRT１４１には、行動シーケンスCを識別するタスクIDを供給する。
【０１１０】
ステップＳ３３において、上位時系列予測生成器６２は、学習回数を表す変数ｓに１を代入する。
【０１１１】
ステップＳ３４において、上位時系列予測生成器６２は、Ｑ個の時系列データにそれぞれ対応するCTRNN１４１において、BPTT法を用いて、入力層１５１と中間層１５２の各ノード間の重み係数ｗhij（ｓ）、ｗhjr（ｓ）、およびｗhjk（ｓ）の誤差量δｗhij、δｗhjr、およびδｗhjkと、中間層１５２と出力層１５３の各ノード間の重み係数ｗyij（ｓ）およびｗojk（ｓ）の誤差量δｗyijおよびδｗojkを計算する。ここで、ｑ（＝１，・・・，Ｑ）番目の時系列データが入力されたCTRNN１４１において、BPTT法を用いて得られた誤差量δｗhij，δｗhjr，δｗhjk，δｗyij、およびδｗojkを、それぞれ、誤差量δｗhij,q，δｗhjr,q，δｗhjk,q，δｗyij,q、およびδｗojk,qと表す。
【０１１２】
なお、上位時系列予測生成器６２は、ステップＳ３４のBPTT法を用いた計算において、時刻ｔ＋１のコンテキスト入力ノード１６２−ｋのデータｃuk（ｔ＋１）の誤差量δｃuk（ｔ＋１）を、時刻ｔのコンテキスト出力ノード１６５−ｋのデータｏk（ｔ）の誤差量δｏk（ｔ）に逆伝播する際、任意の正の係数ｍで割ることにより、コンテキストデータの時定数の調整を行う。
【０１１３】
即ち、上位時系列予測生成器６２は、時刻ｔのコンテキスト出力ノード１６５−ｋのデータｏk（ｔ）の誤差量δｏk（ｔ）を、時刻ｔ＋１のコンテキスト入力ノード１６２−ｋのデータｃuk（ｔ＋１）の誤差量δｃuk（ｔ＋１）を用いた式（２０）によって求める。
【０１１４】
【数２０】
2007305072.tif 000022
【０１１５】
BPTT法において式（２０）を採用することにより、CTRNN１４１の内部状態を表すコンテキストデータの１時間ステップ先の影響度を調整することができる。
【０１１６】
ステップＳ３５において、上位時系列予測生成器６２は、入力層１５１と中間層１５２の各ノード間の重み係数ｗhij、ｗhjr、およびｗhjkと、中間層１５２と出力層１５３の各ノード間の重み係数ｗyijおよびｗojkのそれぞれを、Ｑ個の時系列データで平均化して、更新する。
【０１１７】
即ち、上位時系列予測生成器６２は、式（２１）乃至式（３０）により、入力層１５１と中間層１５２の各ノード間の重み係数ｗhij（ｓ＋１）、ｗhjr（ｓ＋１）、およびｗhjk（ｓ＋１）と、中間層１５２と出力層１５３の各ノード間の重み係数ｗyij（ｓ＋１）およびｗojk（ｓ＋１）を求める。
【０１１８】
【数２１】
2007305072.tif 000023
【数２２】
2007305072.tif 000024
【数２３】
2007305072.tif 000025
【数２４】
2007305072.tif 000026
【数２５】
2007305072.tif 000027
【数２６】
2007305072.tif 000028
【数２７】
2007305072.tif 000029
【数２８】
2007305072.tif 000030
【数２９】
2007305072.tif 000031
【数３０】
2007305072.tif 000032
【０１１９】
ここで、η2は学習係数を表し、α2は慣性係数を表す。なお、式（２１）、式（２３）、式（２５）、式（２７）、および式（２９）において、ｓ＝１の場合の△ｗhij（ｓ），△ｗhjr（ｓ），△ｗhjk（ｓ），△ｗyij（ｓ）、および△ｗojk（ｓ）は、０とする。
【０１２０】
ステップＳ３６において、上位時系列予測生成器６２は、変数ｓが所定の学習回数以下であるか否かを判定する。ここで設定される所定の学習回数は、学習誤差が十分に小さくなると認められる学習の回数である。
【０１２１】
ステップＳ３６で、変数ｓが所定の学習回数以下であると判定された場合、即ち、学習誤差が十分に小さくなると認められるだけの回数の学習をまだ行っていない場合、ステップＳ３７において、上位時系列予測生成器６２は、変数ｓを１だけインクリメントして、ステップＳ３４に処理を戻す。これにより、ステップＳ３４乃至Ｓ３６の処理が繰り返される。一方、ステップＳ３６で、変数ｓが所定の学習回数より大きいと判定された場合、学習処理は終了する。
【０１２２】
なお、ステップＳ３６では、学習回数によって処理の終了を判定する以外に、学習誤差が所定の基準値以内となったか否かにより、処理の終了を判定してもよい。
【０１２３】
以上のように、上位時系列予測生成器６２の学習処理では、行動シーケンスごとに重み係数ｗhij，ｗhjr，ｗhjk，ｗyij、およびｗojkをそれぞれ求め、それらの平均値を求める処理を繰り返し実行することによって、生成処理で利用されるCTRNN８１の重み係数ｗhij，ｗhjr，ｗhjk，ｗyij、およびｗojkが求められる。
【０１２４】
なお、上述した学習処理では、各行動シーケンスの重み係数ｗhij，ｗhjr，ｗhjk，ｗyij、およびｗojkの平均値を求める処理を毎回実行するようにしたが、その処理は、所定回数ごとに実行するようにしてもよい。例えば、学習処理を終了する所定の学習回数が１００００回である場合に、１０回の学習回数ごとに各行動シーケンスの重み係数ｗhij，ｗhjr，ｗhjk，ｗyij、およびｗojkの平均値を求める処理を実行するようにしてもよい。
【０１２５】
次に、図８のフローチャートを参照して、図６および図７を参照して説明した学習処理によって求められた重み係数が設定されたRNN７１−１乃至７１−ＮおよびCTRNN８１を含む図３の情報処理装置５１による、時系列データを生成する生成処理について説明する。
【０１２６】
初めに、ステップＳ５１において、上位時系列予測生成器６２のCTRNN８１は、入力データの初期値を読み込む。ここでの入力データの初期値とは、入力ノード１６０とコンテキスト入力ノード１６２に供給する初期値であり、そこには、例えば、ランダムな所定の値が供給される。
【０１２７】
ステップＳ５２において、上位時系列予測生成器６２のCTRNN８１は、行動シーケンスを識別するタスクIDを読み込む。読み込まれたタスクIDは、パラメータノード１６１に供給される。
【０１２８】
ステップＳ５３において、上位時系列予測生成器６２のCTRNN８１は、所定の時刻におけるRNN７１−１乃至７１−Ｎの推定予測誤差errorPredH［Ｎ］の生成処理を実行する。この生成処理の詳細は、図９を参照して後述するが、CTRNN８１は、例えば、時刻ｔ＋１における推定予測誤差errorPredHt+1［Ｎ］を生成し、ゲート信号変換部６３に出力する。
【０１２９】
ステップＳ５４において、ゲート信号変換部６３は、上述した式（２）により、供給された推定予測誤差errorPredHt+1［Ｎ］をゲート信号gatet+1［Ｎ］に変換し、変換した結果をゲート７２−１乃至７２−Ｎに出力する。
【０１３０】
ステップＳ５５において、時刻ｔのセンサモータ信号ｓｍ（ｔ）が下位時系列予測生成器６１のRNN７１−ｎに入力され、RNN７１−ｎは、入力された時刻ｔのセンサモータ信号ｓｍ（ｔ）に対して、時刻ｔ＋１のセンサモータ信号ｓｍn（ｔ＋１）を生成し、ゲート７２−ｎに出力する。
【０１３１】
ステップＳ５６において、ゲート７２−ｎは、ゲート信号変換部６３から供給されたゲート信号gatet+1［Ｎ］のうちのゲート信号ｇt+1nに応じたセンサモータ信号ｓｍn（ｔ＋１）の出力を行う。即ち、ゲート７２−ｎにおいては、ゲート信号ｇt+1nが大きいときにはゲートが大きく開かれ、ゲート信号ｇt+1nが小さいときにはゲートを小さく開かれる。合成回路７３には、ゲート７２−ｎのゲートの開き具合に応じたセンサモータｓｍn（ｔ＋１）が供給される。
【０１３２】
ステップＳ５７において、合成回路７３は、式（１）によりゲート７２−１乃至７２−Ｎそれぞれからの出力を合成し、その合成の結果を、時刻ｔ＋１のセンサモータ信号ｓｍ（ｔ＋１）として出力する。
【０１３３】
ステップＳ５８において、情報処理装置５１は、時系列データの生成を終了するかを判定する。ステップＳ５８で、時系列データの生成を終了しないと判定された場合、処理はステップＳ５３に戻り、それ以降の処理が繰り返される。その結果、上位時系列予測生成器６２では、前回のステップＳ５３で処理した時刻ｔ＋１の次の時刻ｔ＋２おける推定予測誤差errorPredHt+2［Ｎ］が生成され、下位時系列予測生成器６１では、時刻ｔ＋１のセンサモータ信号ｓｍ（ｔ＋１）に対するセンサモータｓｍ（ｔ＋２）が生成される。
【０１３４】
一方、ステップＳ５８で、例えば、所定の時間ステップ数に到達するなどして、時系列データの生成を終了すると判定された場合、生成処理は終了する。
【０１３５】
次に、図９のフローチャートを参照して、図８のステップＳ５３における、推定予測誤差errorPredH［Ｎ］の生成処理について説明する。図９では、時刻ｔ＋１における推定予測誤差errorPredHt+1［Ｎ］を生成する例について説明する。
【０１３６】
初めに、ステップＳ７１において、入力ノード１６１−ｉは、データｘi（ｔ）を式（３）により計算し、パラメータノード１６１−ｒは、データtsdatar（ｔ）を式（４）により計算し、コンテキスト入力ノード１６２−ｋは、データｃk（ｔ）を式（５）により計算して、それぞれ出力する。
【０１３７】
ステップＳ７２において、隠れノード１６３−ｊは、式（６）を計算することによりデータｈuj（ｔ）を得て、データｈj（ｔ）を式（７）により計算して出力する。
【０１３８】
ステップＳ７３において、出力ノード１６４−ｉは、式（８）を計算することによりデータｙui（ｔ）を得て、データｙi（ｔ）を式（９）により計算して出力する。
【０１３９】
ステップＳ７４において、コンテキスト出力ノード１６５−ｋは、式（１０）を計算することによりデータｏuk（ｔ）を得て、データｏk（ｔ）を式（１１）により計算して出力する。
【０１４０】
ステップＳ７５において、演算部１５４は、差分△ｘui（ｔ＋１）を式（１２）により求め、時刻ｔ＋１のデータｘui（ｔ＋１）を式（１３）により計算し、ゲート信号変換部６３に出力する。
【０１４１】
ステップＳ７６において、演算部１５５は、差分△ｃuk（ｔ＋１）を式（１４）により求め、時刻ｔ＋１のデータｃuk（ｔ＋１）を式（１５）により計算する。また、演算部１５５は、式（１５）による計算の結果得られた時刻ｔ＋１のデータｃuk（ｔ＋１）を、コンテキスト入力ノード１６２−ｋにフィードバックする。
【０１４２】
ステップＳ７７において、演算部１５４は、式（１３）による計算の結果得られた時刻ｔ＋１のデータｘui（ｔ＋１）を、入力ノード１６１−ｉにフィードバックする。そして、処理は図８のステップＳ５３に戻り、ステップＳ５４に進む。
【０１４３】
以上のように、図８の生成処理によれば、上位時系列予測生成器６２が、下位時系列生成器６１のRNN７１−１乃至７１−Ｎが生成時に発生させる予測誤差の推定値である推定予測誤差errorPredH［Ｎ］を出力し、この推定予測誤差errorPredH［Ｎ］が、ゲート７２−１乃至７２−Ｎの開閉状態を制御するゲート信号gate［Ｎ］に変換される。そして、上述の（１）式で表される、開閉状態が制御されたゲート７２−１乃至７２−Ｎから出力されたRNN７１−１乃至７１−Ｎの出力信号ｓｍ1（ｔ＋１）乃至ｓｍN（ｔ＋１）の総和が、時刻ｔ＋１のセンサモータ信号ｓｍ（ｔ＋１）として、ヒューマノイドロボットのセンサおよびモータに供給され、タスクIDで指定された行動シーケンスが実行される。
【０１４４】
次に、情報処理装置５１に、これまで学習させた行動シーケンスA，B、およびC以外の行動シーケンスを追加して学習させる追加学習について説明する。以下では、ホームポジションにいるロボットが、物体を両手で掴んで所定の高さだけ持ち上げ、物体が元々置かれていたテーブルより一段高い前方のテーブルに置いて、ホームポジションに戻る動作となる行動シーケンスDを追加学習させる。
【０１４５】
下位時系列予測生成器６１のRNN７１−１乃至７１−Ｎには、上述したように、それぞれ異なる行動部品が学習されている。また、一般的には、RNN７１の個数であるＮ個は行動部品の数よりも十分大きく用意されるため、RNN７１−１乃至７１−Ｎの中には、行動部品が学習されていないRNN７１（以下、適宜、未使用のRNN７１とも称する）も存在する。
【０１４６】
これまで学習させた行動シーケンスA，B、およびCに追加して、新たな行動シーケンスDを学習させる場合、既に行動部品が学習されているRNN７１は、そのままにして、未使用のRNN７１に、追加の行動シーケンスDに含まれる新たな行動部品を学習させるのが効率が良い。この場合、追加の行動シーケンスDの学習によってこれまで学習させたRNN７１を壊す（RNN７１の重み係数を変更する）ことがなく、新たな行動シーケンスDに、これまで学習させた行動部品が含まれていた場合、その行動部品を共通に利用することもできる。
【０１４７】
そこで、下位時系列予測生成器６１は、行動シーケンスDを追加学習する際、既に行動部品が学習されているRNN７１には、その重み係数を変更しにくくするような抵抗を与える。
【０１４８】
既に行動部品が学習されているRNN７１とは、即ち、図６のステップＳ６の処理により、メモリ７５に記憶されている利用頻度FREQnが大きいRNN７１−ｎである。
【０１４９】
従って、下位時系列予測生成器６１の制御回路７６は、図１０に示すような、利用頻度FREQnが少ないRNN７１−ｎほど重み係数を更新し易く、利用頻度FREQnが大きいRNN７１−ｎは、重み係数を更新しにくい、換言すれば、利用頻度FREQnに負の相関を有する関数ｈ1によって学習重みμnを決定する。図１０に示す関数ｈ1が表す曲線は、利用頻度FREQnが小さいほど傾きが大きく、利用頻度FREQnが大きいほど傾きが小さくなる曲線である。なお、図１０では、関数ｈ1が非線形な曲線として示されているが、負の相関を有する関数であれば、線形な直線であっても勿論よい。
【０１５０】
図１１のフローチャートを参照して、情報処理装置５１の追加学習処理について説明する。
【０１５１】
初めに、ステップＳ１０１において、下位時系列予測生成器６１の制御回路７６は、メモリ７５に記憶されているRNN７１−１乃至７１−Ｎの利用頻度FREQ1乃至FREQNを読み出す。
【０１５２】
ステップＳ１０２において、下位時系列予測生成器６１の制御回路７６は、図１０に示した関数ｈ1を用いて、RNN７１−ｎの利用頻度FREQnに応じた学習重みμnを決定する。決定された学習重みμnは、RNN７１−ｎに供給される。
【０１５３】
ステップＳ１０３において、情報処理装置５１は、行動シーケンスDに対応するセンサモータ信号の時系列データを学習する、図６の下位時系列予測生成器６１の学習処理、即ち、ステップＳ１乃至Ｓ７の処理を実行する。但し、ステップＳ１０３の処理での図６のステップＳ５においては、式（１８）に代えて、学習重みμnが含まれる次式（３１）を採用する。
【０１５４】
【数３１】
2007305072.tif 000033
【０１５５】
ステップＳ１０３の処理後、行動シーケンスDの予測誤差の時系列データerrorL[Ｎ]がメモリ７５に記憶される。
【０１５６】
ステップＳ１０４において、情報処理装置５１は、行動シーケンスA，B、およびCに、追加された行動シーケンスDの予測誤差の時系列データerrorL[Ｎ]をメモリ７５から読み出し、その４個の予測誤差の時系列データについて、図７の上位時系列予測生成器６２の学習処理、即ち、ステップＳ３１乃至Ｓ３７の処理を実行する。そして、追加学習処理は終了する。
【０１５７】
以上のように、情報処理装置５１の追加学習処理では、これまでの学習で利用頻度FREQnが大きいRNN７１−ｎについて、その重み係数を変更しにくくするような学習重みμnを与えて、RNN７１−ｎの重み係数を学習する。これにより、追加の行動シーケンスDの学習によってこれまで学習させたRNN７１の重み係数をできるだけ変更せずに、追加される行動シーケンスを効率的に学習することができる。
【０１５８】
次に、本発明を適用した情報処理装置のその他の構成例について説明する。
【０１５９】
図１２は、情報処理装置５１のその他の構成例を示している。図１２において、図３の情報処理装置５１と対応する部分については同一の符号を付してあり、その説明は省略する。
【０１６０】
図１２の情報処理装置５１は、時間フィルタ部２０１と非線形フィルタ部２０２が新たに設けられている点を除いては、図３の情報処理装置５１と同様に構成されている。
【０１６１】
時間フィルタ部２０１には、下位時系列予測生成器６１が出力する予測誤差の時系列データerrorL［Ｎ］が入力される。時間フィルタ部２０１と非線形フィルタ部２０２は、そこに入力される時系列データに所定のフィルタ処理を施し、処理後の時系列データを後段に出力する。非線形フィルタ部２０２は、処理後の時系列データを、予測誤差の時系列データerrorL’［Ｎ］として、上位時系列予測生成器６２に供給する。
【０１６２】
上位時系列予測生成器６２は、予測誤差の時系列データを学習するが、ある程度長い時間ステップでのRNN７１−１乃至７１−Ｎの予測誤差の大まかな変動が分かればよく、短時間での微小な変動はあまり関係しない。
【０１６３】
時間フィルタ部２０１は、下位時系列予測生成器６１が出力する予測誤差の時系列データerrorL［Ｎ］に対して、時間フィルタ処理を施す。即ち、時間フィルタ部２０１は、下位時系列予測生成器６１が出力する予測誤差の時系列データerrorL［Ｎ］に、いわゆるローパスフィルタ処理を施し、処理後の時系列データを非線形フィルタ部２０２に供給する。例えば、ローパスフィルタ処理としては、所定の時間ステップ数の移動平均などを用いることができる。これにより、短時間での微小な変動が抑制された、RNN７１−１乃至７１−Ｎの予測誤差の時系列データを上位時系列予測生成器６２に供給することができる。
【０１６４】
なお、ある程度長い時間ステップでのRNN７１−１乃至７１−Ｎの予測誤差の大まかな変動を上位時系列予測生成器６２が学習するためには、上位時系列予測生成器６２のCTRNN８１が時系列データをサンプリングするときのサンプリングレートを、下位時系列予測生成器６１のRNN７１のサンプリングレートよりも大きくすることによっても実現可能である。例えば、上位時系列予測生成器６２は、下位時系列予測生成器６１のRNN７１の時系列データを所定の時間間隔で間引いた時系列データを学習することで、RNN７１−１乃至７１−Ｎの予測誤差の大まかな変動を学習することができる。また、式（１３）および式（１５）の係数τを調整することにより、時間サンプリングを調整することができる。この場合、係数τが大きいほど、RNN７１−１乃至７１−Ｎの予測誤差の大まかな変動を学習することができる。
【０１６５】
非線形フィルタ部２０２は、図１３に示すような、入力される予測誤差errorLnが小さい範囲では傾きが大きく、入力される予測誤差errorLnが大きくなるほど傾きが小さくなる非線形の曲線で表される関数ｈ2によって、入力される予測誤差errorLnを変換する。非線形フィルタ部２０２は、変換処理後の予測誤差errorL’[Ｎ]を上位時系列予測生成器６２に供給する。
【０１６６】
情報処理装置５１の生成処理では、図８を参照して説明したように、予測誤差errorL［Ｎ］の学習によって得られる推定予測誤差errorPredHnがより小さいRNN７２−ｎほどゲートが大きく開くように制御される。反対に、推定予測誤差errorPredHnが大きいRNN７２−ｎが出力するセンサモータ信号ｓｍn（ｔ＋１）は、ほとんど利用されない。
【０１６７】
従って、推定予測誤差errorPredHnがより小さいRNN７２−ｎほど、下位時系列予測生成器６１が出力するセンサモータ信号ｓｍ（ｔ＋１）への寄与率は高く、重要であると言うことができる。
【０１６８】
例えば、RNN７２−１の予測誤差errorL1とRNN７２−ｎの予測誤差errorLnが、０乃至１の間の小さい値（例えば、０．３など）で拮抗していた場合と、０乃至１の間の大きい値（例えば、０．９など）で拮抗していた場合とを考えると、RNN７２−１の予測誤差errorL1とRNN７２−ｎの予測誤差errorLnが０乃至１の間の小さい値で拮抗していた場合、生成時に、RNN７２−１またはRNN７２−ｎが出力するセンサモータ信号ｓｍ1（ｔ＋１）またはｓｍn（ｔ＋１）の、下位時系列予測生成器６１が出力するセンサモータ信号ｓｍ（ｔ＋１）への寄与率は高いので、RNN７２−１とRNN７２−ｎのセンサモータ信号のどちらが優位であるかは重要になってくる。
【０１６９】
一方、RNN７２−１の予測誤差errorL1とRNN７２−ｎの予測誤差errorLnが０乃至１の間の大きい値で拮抗していた場合、RNN７２−１とRNN７２−ｎ以外に、より小さい予測誤差を有するRNN７２がいると考えられ、生成時に、RNN７２−１またはRNN７２−ｎが出力するセンサモータ信号ｓｍ1（ｔ＋１）またはｓｍn（ｔ＋１）が、下位時系列予測生成器６１が出力するセンサモータ信号ｓｍ（ｔ＋１）に含まれる率は少ないので、RNN７２−１とRNN７２−ｎのセンサモータ信号のどちらが優位であるかは、さほど重要ではない。
【０１７０】
非線形フィルタ部２０２は、関数ｈ2によって、センサモータ信号ｓｍ（ｔ＋１）の生成に重要な予測誤差errorLの小さいRNN７２どうしの優位差を大きくし、センサモータ信号ｓｍ（ｔ＋１）の生成に重要ではない予測誤差errorLの大きいRNN７２どうしの優位差を小さくする処理を行う。これにより、上位時系列予測生成器６２において、学習に重要なRNN７１が出力した予測誤差errorLを効率的に学習することができる。
【０１７１】
時間フィルタ部２０１と非線形フィルタ部２０２の動作は、図７を参照して説明したフローチャートのステップＳ３１の、上位時系列予測生成器６２が、教師データとしての、Ｑ個の予測誤差の時系列データerrorL[Ｎ]を下位時系列予測生成器６１のメモリ７５から読み込む場合において、時間フィルタ部２０１と非線形フィルタ部２０２によって処理された後のＱ個の予測誤差の時系列データerrorL’[Ｎ]を読み込む動作となる。
【０１７２】
なお、時間フィルタ部２０１および非線形フィルタブ２０２は、必ずしも両方が同時に設けられる必要はなく、いずれか一方のみでもよい。
【０１７３】
ところで、図３および図１２に示した情報処理装置５１では、複数のRNN７１−１乃至７１−ｎを有する下位時系列生成器６１の構成として、複数のRNNの出力をゲート機構により統合して最終的な出力を決定するMixture of RNN Expertというモデルを採用したが、Mixture of RNN Expert以外の構成を採用することもできる。
【０１７４】
Mixture of RNN Expert以外の構成としては、例えば、ベクトルパターンのカテゴリ学習に用いられる自己組織化マップ（self-organization map）（以下、ＳＯＭという）を導入し、SOMの各ノードにRNNを採用し、自己組織的に外部入力に対し適切なRNNを選択し、RNNのパラメータ学習を行うRNN-SOMなどを採用することができる。なお、SOMについては、例えば、「T.コホネン、「自己組織化マップ」、シュプリンガー・フェアラーク東京」などにその詳細が記載されている。
【０１７５】
図３および図１２に示したMixture of RNN Expertのモデルでは、ある新しい学習サンプル（即ち、時系列データ）に対して、全てのRNNが学習エラー（予測誤差）を算出し、その学習エラーの度合いに応じて各RNNが学習サンプルを学習する。
【０１７６】
これに対して、RNN-SOMでは、ある新しい学習サンプル（即ち、時系列データ）に対して、全てのRNNが学習エラー（予測誤差）を算出し、その中で、最も学習エラーの小さいRNNが勝者に決定される。勝者のRNNが決定された後は、各RNNの学習エラーは関係なく、勝者のRNNと距離が近いRNNが、勝者との近傍度合いに応じて学習サンプルを学習するという、各RNNに対して自分以外のRNNとの距離空間の概念が導入されたものである。
【０１７７】
図１４は、下位時系列生成器６１の構成としてRNN-SOMを採用した場合の、行動シーケンスに対応するセンサモータ信号の時系列データの学習処理のフローチャートである。
【０１７８】
図１４に示される処理は、ステップＳ１２４の処理が、図６のステップＳ４の処理と異なる以外は、図６に示した学習処理と同様である。
【０１７９】
即ち、図１４のステップＳ１２１乃至Ｓ１２３およびＳ１２５乃至Ｓ１２７は、図６のステップＳ１乃至Ｓ３およびＳ５乃至Ｓ７と、それぞれ同様である。
【０１８０】
ステップＳ１２４では、下位時系列予測生成器６１は、予測誤差errorLt+1が最小のRNN７１を勝者とし、図１５に示す近傍関数ｈ3に基づいて、勝者からの距離（DISTANCEn）に応じた学習重みγnを算出する。
【０１８１】
近傍関数ｈ3は、図１５に示されるように、勝者からの距離（DISTANCEn）が近いRNN７１−ｎほど大きい学習重みγnが割り当てられる。
【０１８２】
次に、図１６乃至図１９を参照して、上述した情報処理装置５１に、ヒューマノイドロボットが行う行動シーケンスを学習および生成させた実験結果について説明する。
【０１８３】
なお、この実験では、下位時系列予測生成器６１が出力する予測誤差の時系列データerrorL［Ｎ］に対して時間フィルタと非線形フィルタを施した、図１２の情報処理装置５１による例を示している。また、下位時系列生成器６１のRNN７１の個数Ｎは、１６（Ｎ＝１６）となっている。
【０１８４】
図１６は、行動シーケンスA，B、およびCを学習後、情報処理装置５１が行動シーケンスAを生成した結果を示している。
【０１８５】
図１６Ａは、生成処理時の、上位時系列予測生成器６２のCTRNN８１としてのCTRNN１４１のコンテキスト出力ノード１６５の出力データを示している。
【０１８６】
図１６Ｂは、上位時系列予測生成器６２のCTRNN８１が出力する推定予測誤差errorPredH［Ｎ］を示している。
【０１８７】
図１６Ｃは、図１６Ｂに示される推定予測誤差errorPredH［Ｎ］がゲート信号変換部６３によって変換されたゲート信号gate［Ｎ］を示している。
【０１８８】
図１６Ｄは、下位時系列予測生成器６１の合成回路７３から出力されたセンサモータ信号ｓｍ（ｔ）のうちのモータ信号を、図１６Ｅは、下位時系列予測生成器６１の合成回路７３から出力されたセンサモータ信号ｓｍ（ｔ）のうちのセンサ信号を、それぞれ示している。なお、図１６Ｄおよび図１６Ｅでは、４つのモータ信号と２つのセンサ信号のデータが図示されているが、図を見やすくするため、実際のモータ信号およびセンサ信号よりも少ない数のデータを図示している。
【０１８９】
図１６Ａ乃至図１６Ｅの横軸は、時間ステップ（step）を表す。また、図１６Ａ，図１６Ｄ，および図１６Ｅの縦軸は、コンテキスト出力ノード１６５、モータ信号、およびセンサ信号それぞれの出力値を表し、０乃至１の範囲の値である。図１６Ｂおよび図１６Ｃは、下位時系列予測生成器６１のRNN７１の番号（１乃至１６）を表している。
【０１９０】
図１６ＢおよびＣにおいては、RNN７１−ｎに対応するerrorPredHnまたはゲート信号ｇtnの値とグレイレベルとが対応しており、図１６Ｂでは、errorPredHnの値が小さい（即ち、０に近い）ほど黒く（濃く）表されており、図１６Ｃでは、ゲート信号ｇtnの値が大きい（即ち、１に近い）ほど黒く（濃く）表されている。
【０１９１】
図１７は、行動シーケンスA，B、およびCを学習後、情報処理装置５１が行動シーケンスBを生成した結果を、図１８は、行動シーケンスCを生成した結果を、それぞれ示している。
【０１９２】
また、図１９は、行動シーケンスA，B、およびCを学習後に行動シーケンスDを追加学習させた後、情報処理装置５１が行動シーケンスDを生成した結果を示している。
【０１９３】
図１７乃至図１９において、図示されたデータが、行動シーケンスB乃至Dに関するものである以外は、同様である。
【０１９４】
行動シーケンスAに対応する時系列データの生成では、図１６Ｃを見て分かるように、シーケンスの前半では、ゲート７２−１４が開かれることによりRNN７１−１４が有効となり、その後、シーケンスの後半部分では、ゲート７２−４が開かれることによりRNN７１−４が有効となっている。
【０１９５】
但し、図１６Ｂに示すデータから図１６Ｃに示すデータへの変換、即ち、推定予測誤差errorPredH［Ｎ］からゲート信号gate［Ｎ］への変換は、errorPredH1乃至errorPredH16のうちの最も値の小さいものが唯一の勝者となるウィナーテイクオール（Winner-take-all）の原理ではなく、上述した式（２）のソフトマックス関数を用いて行われるため、所定の時刻（時間ステップ）から、離散的にRNN７１−１４からRNN７１−４に有効なRNN７１が切替わるのではなく、RNN７１−１４からRNN７１−４への切替が時間の経過とともに緩やかに行われている。
【０１９６】
従って、errorPredH1乃至errorPredH16のうちの複数の値が拮抗しているような場合であっても、勝者が頻繁に交替することはなく、拮抗している状態では、そのまま拮抗している状態として出力を行うことができ、これにより、学習された時系列データを正しく生成することができる。
【０１９７】
行動シーケンスBの生成では、図１７Ｃを見て分かるように、RNN７１−１４、RNN７１−２、RNN７１−１３、RNN７１−１、RNN７１−１１が、その順で有効となっている。
【０１９８】
行動シーケンスCの生成では、図１８Ｃを見て分かるように、RNN７１−２、RNN７１−１２、RNN７１−３が、その順で有効となっている。
【０１９９】
行動シーケンスDの生成では、図１９Ｃを見て分かるように、RNN７１−５、RNN７１−１５、RNN７１−３、RNN７１−１６が、その順で有効となっている。
【０２００】
行動シーケンスB乃至Dのゲート７２の切替においても、図１６の行動シーケンスAにおける場合と同様のことが言える。
【０２０１】
即ち、所定の時刻に推定予測誤差errorPredHnが最も大きいRNN７１−ｎから、所定時間後に次に推定予測誤差errorPredHn'が最も大きいRNN７１−ｎ’ （ｎ≠ｎ’）へゲート信号gate［Ｎ］が切替わる場合、ゲート信号ｇnは徐々に小さくなると同時に、ゲート信号ｇn'は徐々に大きくなる。即ち、ゲート７２−ｎでは、センサモータ信号ｓｍn（ｔ＋１）の出力が徐々に抑えられ、ゲート７２−ｎ’では、センサモータ信号ｓｍn'（ｔ＋１）の出力が徐々に開放される。
【０２０２】
従って、errorPredH1乃至errorPredH16のうちの複数の値が拮抗しているような場合であっても、勝者が頻繁に交替することはなく、拮抗している状態では、そのまま拮抗している状態として出力を行うことができ、これにより、学習された時系列データを正しく生成することができる。
【０２０３】
また、図１９に示される追加学習によって学習された行動シーケンスDの生成結果では、行動シーケンスA乃至Cでは有効となっていないRNN７１−５、RNN７１−１５、RNN７１−１６が有効となっており、これまでに学習した行動シーケンスA乃至Cにない行動部品については新しいRNN７１が学習していることが分かる。
【０２０４】
上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウエアにより実行させることもできる。一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、専用のハードウエアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、プログラム記録媒体からインストールされる。
【０２０５】
図２０は、上述した一連の処理をプログラムにより実行するパーソナルコンピュータの構成の例を示すブロック図である。CPU（Central Processing Unit）３０１は、ROM（Read Only Memory）３０２、または記憶部３０８に記憶されているプログラムに従って各種の処理を実行する。RAM（Random Access Memory）３０３には、CPU３０１が実行するプログラムやデータなどが適宜記憶される。これらのCPU３０１、ROM３０２、およびRAM３０３は、バス３０４により相互に接続されている。
【０２０６】
CPU３０１にはまた、バス３０４を介して入出力インタフェース３０５が接続されている。入出力インタフェース３０５には、キーボード、マウス、マイクロホンなどよりなる入力部３０６、CRT(Cathode Ray Tube)、LCD(Liquid Crystal display)などよりなるディスプレイ、スピーカなどよりなる出力部３０７が接続されている。CPU３０１は、入力部３０６から入力される指令に対応して各種の処理を実行する。そして、CPU３０１は、処理の結果を出力部３０７に出力する。
【０２０７】
入出力インタフェース３０５に接続されている記憶部３０８は、例えばハードディスクからなり、CPU３０１が実行するプログラムや各種のデータを記憶する。通信部３０９は、インターネットやローカルエリアネットワークなどのネットワークを介して、または直接に接続された外部の装置と通信する。
【０２０８】
入出力インタフェース３０５に接続されているドライブ３１０は、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア３２１が装着されたとき、それらを駆動し、そこに記録されているプログラムやデータなどを取得する。取得されたプログラムやデータは、必要に応じて記憶部３０８に転送され、記憶される。また、プログラムやデータは、通信部３０９を介して取得され、記憶部３０８に記憶されてもよい。
【０２０９】
コンピュータにインストールされ、コンピュータによって実行可能な状態とされるプログラムを格納するプログラム記録媒体は、図２０に示すように、磁気ディスク（フレキシブルディスクを含む）、光ディスク（CD-ROM(Compact Disc-Read Only Memory),DVD(Digital Versatile Disc)を含む）、光磁気ディスクを含む）、もしくは半導体メモリなどよりなるパッケージメディアであるリムーバブルメディア３２１、または、プログラムが一時的もしくは永続的に格納されるROM３０２や、記憶部３０８を構成するハードディスクなどにより構成される。プログラム記録媒体へのプログラムの格納は、必要に応じてルータ、モデムなどのインタフェースである通信部３０９を介して、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の通信媒体を利用して行われる。
【０２１０】
上述した例では、生成時の行動シーケンスA乃至Cの切替を、CTRNN８１のタスクIDを変更することによって行うようにしたが、CTRNN８１には、タスクIDの入力を持たせずに、コンテキスト入力ノード１６２に与える初期値を変更することによって、生成時の行動シーケンスA乃至Cの切替を行うようにしてもよい。
【０２１１】
本明細書において、フローチャートに記述されたステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【０２１２】
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【図面の簡単な説明】
【０２１３】
【図１】従来の情報処理装置の一例を示す図である。
【図２】図１の情報処理装置で生成される時系列データの例を示す図である。
【図３】本発明を適用した情報処理装置の一実施の形態の構成例を示す図である。
【図４】下位時系列予測生成器に使用されるRNNの詳細な構成例を示す図である。
【図５】上位時系列予測生成器に使用されるRNNの詳細な構成例を示す図である。
【図６】下位時系列予測生成器の学習処理について説明するフローチャートである。
【図７】上位時系列予測生成器の学習処理について説明するフローチャートである。
【図８】図３の情報処理装置の生成処理について説明するフローチャートである。
【図９】図８のステップＳ５３における生成処理について説明するフローチャートである。
【図１０】利用頻度FREQnに応じて学習重みμnを決定する関数ｈ1を説明する図である。
【図１１】図３の情報処理装置の追加学習処理について説明するフローチャートである。
【図１２】本発明を適用した情報処理装置のその他の構成例を示す図である。
【図１３】予測誤差errorLnの大きさに応じて非線形の変換を行う関数ｈ2を説明する図である。
【図１４】下位時系列予測生成器のその他の学習処理について説明するフローチャートである。
【図１５】図１４の学習処理で使用される近傍関数ｈ3を説明する図である。
【図１６】情報処理装置５１の実験結果を示す図である。
【図１７】情報処理装置５１の実験結果を示す図である。
【図１８】情報処理装置５１の実験結果を示す図である。
【図１９】情報処理装置５１の実験結果を示す図である。
【図２０】本発明を適用したコンピュータの一実施の形態の構成例を示すブロック図である。
【符号の説明】
【０２１４】
５１  情報処理装置，  ６１  下位時系列予測生成器，  ６２  上位時系列予測生成器，  ６３  ゲート信号変換部，  ７１−１乃至７１−Ｎ  RNN，  ７２−１乃至７２−Ｎ  ゲート，  ７３  合成回路，  ７４  演算回路，  ７５  メモリ，  ７６  制御回路，  ８１  CTRNN，  ２０１  時間フィルタ部，  ２０２  非線形フィルタ部，  ３０１  CPU，  ３０２  ROM，  ３０３  RAM，  ３０８  記憶部
【図１】
2007305072.tif 000034
【図２】
2007305072.tif 000035
【図３】
2007305072.tif 000036
【図４】
2007305072.tif 000037
【図５】
2007305072.tif 000038
【図６】
2007305072.tif 000039
【図７】
2007305072.tif 000040
【図８】
2007305072.tif 000041
【図９】
2007305072.tif 000042
【図１０】
2007305072.tif 000043
【図１１】
2007305072.tif 000044
【図１２】
2007305072.tif 000045
【図１３】
2007305072.tif 000046
【図１４】
2007305072.tif 000047
【図１５】
2007305072.tif 000048
【図１６】
2007305072.tif 000049
【図１７】
2007305072.tif 000050
【図１８】
2007305072.tif 000051
【図１９】
2007305072.tif 000052
【図２０】
2007305072.tif 000053