(57)【要約】【課題】RNNにおいて、長いシーケンスの学習または生成を可能とする。【解決手段】RNN（リカレント型ニューラルネットワーク）４１において、入力ノード６１−ｉへの次の入力を、その１つ前の入力ノード６１−ｉへの入力に、出力ノード６４−ｉの出力を所定の割合で足しこむことによって生成し、コンテキスト入力ノード６２−ｋへの次の入力を、その１つ前のコンテキスト入力ノード６２−ｋへの入力に、コンテキスト出力ノード６５−ｋの出力を所定の割合で足しこむことによって生成する。本発明は、例えば、リカレント型ニューラルネットワークを用いた情報処理装置に適用できる。【選択図】図２
2007265345.tif 000002
【特許請求の範囲】
【請求項１】
データを入力する入力ノード、前記入力ノードから入力された前記データに基づいてデータを出力する出力ノード、およびネットワークの内部状態を表す値をコンテキスト出力ノードからコンテキスト入力ノードへ回帰するコンテキストループと、所定の時刻の前記ネットワークからの出力を、前記ネットワークへの次の入力とする回帰ループとを持つリカレント型ニューラルネットワークを用いた処理を行う情報処理装置において、
前記ネットワークへの次の入力を、その１つ前の前記ネットワークへの入力に、前記出力ノードの出力を所定の割合で足しこむことによって生成し、前記コンテキスト入力ノードへの次の入力を、その１つ前の前記コンテキスト入力ノードへの入力に、前記コンテキスト出力ノードの出力を所定の割合で足しこむことによって生成する生成手段を備える
情報処理装置。
【請求項２】
前記生成手段は、現在の時刻より１つ先の時刻の入力ノードの内部状態を、前記現在の時刻の入力ノードの内部状態に、前記出力ノードの出力を所定の割合で足しこむことによって生成し、現在の時刻より１つ先の時刻のコンテキスト入力ノードの内部状態を、前記現在の時刻のコンテキスト入力ノードの内部状態に、前記コンテキスト出力ノードの出力を所定の割合で足しこむことによって生成する
請求項１に記載の情報処理装置。
【請求項３】
前記コンテキスト入力ノードに与える初期値は学習によって求められ、前記学習においては、所定の時刻における前記コンテキスト入力ノードの内部状態の誤差が、その前の時刻の前記コンテキスト出力ノードの内部状態の誤差に与える影響が調整される
請求項２に記載の情報処理装置。
【請求項４】
データを入力する入力ノード、前記入力ノードから入力された前記データに基づいてデータを出力する出力ノード、およびネットワークの内部状態を表す値をコンテキスト出力ノードからコンテキスト入力ノードへ回帰するコンテキストループと、所定の時刻の前記ネットワークからの出力を、前記ネットワークへの次の入力とする回帰ループとを持つリカレント型ニューラルネットワークを用いた処理を行う情報処理方法において、
前記ネットワークへの次の入力を、その１つ前の前記ネットワークへの入力に、前記出力ノードの出力を所定の割合で足しこむことによって生成し、前記コンテキスト入力ノードへの次の入力を、その１つ前の前記コンテキスト入力ノードへの入力に、前記コンテキスト出力ノードの出力を所定の割合で足しこむことによって生成するステップを含む
情報処理方法。
【請求項５】
データを入力する入力ノード、前記入力ノードから入力された前記データに基づいてデータを出力する出力ノード、およびネットワークの内部状態を表す値をコンテキスト出力ノードからコンテキスト入力ノードへ回帰するコンテキストループと、所定の時刻の前記ネットワークからの出力を、前記ネットワークへの次の入力とする回帰ループとを持つリカレント型ニューラルネットワークを用いた処理を、コンピュータに実行させるプログラムにおいて、
前記ネットワークへの次の入力を、その１つ前の前記ネットワークへの入力に、前記出力ノードの出力を所定の割合で足しこむことによって生成し、前記コンテキスト入力ノードへの次の入力を、その１つ前の前記コンテキスト入力ノードへの入力に、前記コンテキスト出力ノードの出力を所定の割合で足しこむことによって生成するステップを含む
プログラム。
【請求項６】
データを入力する入力ノード、前記入力ノードから入力された前記データに基づいてデータを出力する出力ノード、およびネットワークの内部状態を表す値をコンテキスト出力ノードからコンテキスト入力ノードへ回帰するコンテキストループと、所定の時刻の前記ネットワークからの出力を、前記ネットワークへの次の入力とする回帰ループとを持つリカレント型ニューラルネットワークを用いた処理を行う情報処理装置の、前記コンテキスト入力ノードに与える初期値を学習する学習装置において、
所定の時刻における前記コンテキスト入力ノードの内部状態の誤差が、その前の時刻の前記コンテキスト出力ノードの内部状態の誤差に与える影響を調整する調整手段を備える
学習装置。
【請求項７】
前記調整手段は、所定の時刻における前記コンテキスト入力ノードの内部状態の誤差を正の係数で除算した値を、その前の時刻の前記コンテキスト出力ノードの内部状態の誤差とすることによって、所定の時刻における前記コンテキスト入力ノードの内部状態の誤差が、その前の時刻の前記コンテキスト出力ノードの内部状態の誤差に与える影響を調整する
請求項６に記載の学習装置。
【請求項８】
データを入力する入力ノード、前記入力ノードから入力された前記データに基づいてデータを出力する出力ノード、およびネットワークの内部状態を表す値をコンテキスト出力ノードからコンテキスト入力ノードへ回帰するコンテキストループと、所定の時刻の前記ネットワークからの出力を、前記ネットワークへの次の入力とする回帰ループとを持つリカレント型ニューラルネットワークを用いた処理を行う情報処理装置の、前記コンテキスト入力ノードに与える初期値を学習する学習方法において、
所定の時刻における前記コンテキスト入力ノードの内部状態の誤差が、その前の時刻の前記コンテキスト出力ノードの内部状態の誤差に与える影響を調整するステップを含む
学習方法。
【請求項９】
データを入力する入力ノード、前記入力ノードから入力された前記データに基づいてデータを出力する出力ノード、およびネットワークの内部状態を表す値をコンテキスト出力ノードからコンテキスト入力ノードへ回帰するコンテキストループと、所定の時刻の前記ネットワークからの出力を、前記ネットワークへの次の入力とする回帰ループとを持つリカレント型ニューラルネットワークを用いた処理を行う情報処理装置の、前記コンテキスト入力ノードに与える初期値を学習する処理を、コンピュータに実行させるプログラムにおいて、
所定の時刻における前記コンテキスト入力ノードの内部状態の誤差が、その前の時刻の前記コンテキスト出力ノードの内部状態の誤差に与える影響を調整するステップを含む
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置および方法、学習装置および方法、並びにプログラムに関し、特に、RNNにおいて、長いシーケンスの学習または生成を可能とする情報処理装置および方法、学習装置および方法、並びにプログラムに関する。
【背景技術】
【０００２】
人工ニューラルネットワークの１つであるフィードフォワードネットワーク（Feed forward Networks）は、パターン認識や未知関数の学習などに幅広く応用されている。しかし、その出力は現在の入力のみから決定され、過去の履歴が考慮されないため、時系列情報を学習し、適切に処理することができないという問題がある。
【０００３】
この問題に対して、時系列パターンを空間パターンに変換することにより、時系列情報を扱うことのできるフィードフォワードネットワークのモデルも提案されているが、それらのモデルでは、考慮する履歴の大きさが固定されてしまうという問題がある。
【０００４】
一方、フィードフォワードネットワークのモデルとは別に、リカレント型ニューラルネットワーク（Recurrent Neural Network;以下、RNNと称する）というモデルが提案されている。RNNは、ネットワークにコンテキストループと呼ばれる回帰ループを持たせ、そこに保持される内部状態に基づいて処理を行うことで時系列情報を扱うことを可能にしたものであり、履歴の大きさが固定されるという問題がない。
【０００５】
非特許文献１では、ロボットの行動シーケンス（時系列パターン）の学習および生成にRNNを利用し、RNNの内部状態の初期値を変えることによって、ロボットの行動シーケンスを変える技術が提案されている。
【非特許文献１】Ryu Nisimoto,Jun Tani, Learning to generate combinatorial action sequences utilizing the initial sensitivity of deterministic dynamical systems, Neural Networks17,2004,p.925-933
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、非特許文献１で提案されている技術では、RNNのタイムステップ数が少ない行動シーケンスについては良いが、ステップ数の多い、長いシーケンスの学習および生成が困難であるという問題があった。
【０００７】
本発明は、このような状況に鑑みてなされたものであり、RNNにおいて、長いシーケンスの学習または生成を可能とするものである。
【課題を解決するための手段】
【０００８】
本発明の第１の側面の情報処理装置は、データを入力する入力ノード、前記入力ノードから入力された前記データに基づいてデータを出力する出力ノード、およびネットワークの内部状態を表す値をコンテキスト出力ノードからコンテキスト入力ノードへ回帰するコンテキストループと、所定の時刻の前記ネットワークからの出力を、前記ネットワークへの次の入力とする回帰ループとを持つリカレント型ニューラルネットワークを用いた処理を行う情報処理装置において、前記ネットワークへの次の入力を、その１つ前の前記ネットワークへの入力に、前記出力ノードの出力を所定の割合で足しこむことによって生成し、前記コンテキスト入力ノードへの次の入力を、その１つ前の前記コンテキスト入力ノードへの入力に、前記コンテキスト出力ノードの出力を所定の割合で足しこむことによって生成する生成手段を備える。
【０００９】
前記生成手段には、現在の時刻より１つ先の時刻の入力ノードの内部状態を、前記現在の時刻の入力ノードの内部状態に、前記出力ノードの出力を所定の割合で足しこむことによって生成させ、現在の時刻より１つ先の時刻のコンテキスト入力ノードの内部状態を、前記現在の時刻のコンテキスト入力ノードの内部状態に、前記コンテキスト出力ノードの出力を所定の割合で足しこむことによって生成させることができる。
【００１０】
前記コンテキスト入力ノードに与える初期値は学習によって求められ、前記学習においては、所定の時刻における前記コンテキスト入力ノードの内部状態の誤差が、その前の時刻の前記コンテキスト出力ノードの内部状態の誤差に与える影響を調整させることができる。
【００１１】
本発明の第１の側面の情報処理方法は、データを入力する入力ノード、前記入力ノードから入力された前記データに基づいてデータを出力する出力ノード、およびネットワークの内部状態を表す値をコンテキスト出力ノードからコンテキスト入力ノードへ回帰するコンテキストループと、所定の時刻の前記ネットワークからの出力を、前記ネットワークへの次の入力とする回帰ループとを持つリカレント型ニューラルネットワークを用いた処理を行う情報処理方法において、前記ネットワークへの次の入力を、その１つ前の前記ネットワークへの入力に、前記出力ノードの出力を所定の割合で足しこむことによって生成し、前記コンテキスト入力ノードへの次の入力を、その１つ前の前記コンテキスト入力ノードへの入力に、前記コンテキスト出力ノードの出力を所定の割合で足しこむことによって生成するステップを含む。
【００１２】
本発明の第１の側面のプログラムは、データを入力する入力ノード、前記入力ノードから入力された前記データに基づいてデータを出力する出力ノード、およびネットワークの内部状態を表す値をコンテキスト出力ノードからコンテキスト入力ノードへ回帰するコンテキストループと、所定の時刻の前記ネットワークからの出力を、前記ネットワークへの次の入力とする回帰ループとを持つリカレント型ニューラルネットワークを用いた処理を、コンピュータに実行させるプログラムにおいて、前記ネットワークへの次の入力を、その１つ前の前記ネットワークへの入力に、前記出力ノードの出力を所定の割合で足しこむことによって生成し、前記コンテキスト入力ノードへの次の入力を、その１つ前の前記コンテキスト入力ノードへの入力に、前記コンテキスト出力ノードの出力を所定の割合で足しこむことによって生成するステップを含む。
【００１３】
本発明の第１の側面においては、ネットワークへの次の入力が、その１つ前のネットワークへの入力に、出力ノードの出力を所定の割合で足しこむことによって生成され、コンテキスト入力ノードへの次の入力が、その１つ前のコンテキスト入力ノードへの入力に、コンテキスト出力ノードの出力を所定の割合で足しこむことによって生成される。
【００１４】
本発明の第２の側面の学習装置は、データを入力する入力ノード、前記入力ノードから入力された前記データに基づいてデータを出力する出力ノード、およびネットワークの内部状態を表す値をコンテキスト出力ノードからコンテキスト入力ノードへ回帰するコンテキストループと、所定の時刻の前記ネットワークからの出力を、前記ネットワークへの次の入力とする回帰ループとを持つリカレント型ニューラルネットワークを用いた処理を行う情報処理装置の、前記コンテキスト入力ノードに与える初期値を学習する学習装置において、所定の時刻における前記コンテキスト入力ノードの内部状態の誤差が、その前の時刻の前記コンテキスト出力ノードの内部状態の誤差に与える影響を調整する調整手段を備える。
【００１５】
前記調整手段には、所定の時刻における前記コンテキスト入力ノードの内部状態の誤差を正の係数で除算した値を、その前の時刻の前記コンテキスト出力ノードの内部状態の誤差とすることによって、所定の時刻における前記コンテキスト入力ノードの内部状態の誤差が、その前の時刻の前記コンテキスト出力ノードの内部状態の誤差に与える影響を調整させることができる。
【００１６】
本発明の第２の側面の学習方法は、データを入力する入力ノード、前記入力ノードから入力された前記データに基づいてデータを出力する出力ノード、およびネットワークの内部状態を表す値をコンテキスト出力ノードからコンテキスト入力ノードへ回帰するコンテキストループと、所定の時刻の前記ネットワークからの出力を、前記ネットワークへの次の入力とする回帰ループとを持つリカレント型ニューラルネットワークを用いた処理を行う情報処理装置の、前記コンテキスト入力ノードに与える初期値を学習する学習方法において、所定の時刻における前記コンテキスト入力ノードの内部状態の誤差が、その前の時刻の前記コンテキスト出力ノードの内部状態の誤差に与える影響を調整するステップを含む。
【００１７】
本発明の第２の側面のプログラムは、データを入力する入力ノード、前記入力ノードから入力された前記データに基づいてデータを出力する出力ノード、およびネットワークの内部状態を表す値をコンテキスト出力ノードからコンテキスト入力ノードへ回帰するコンテキストループと、所定の時刻の前記ネットワークからの出力を、前記ネットワークへの次の入力とする回帰ループとを持つリカレント型ニューラルネットワークを用いた処理を行う情報処理装置の、前記コンテキスト入力ノードに与える初期値を学習する処理を、コンピュータに実行させるプログラムにおいて、所定の時刻における前記コンテキスト入力ノードの内部状態の誤差が、その前の時刻の前記コンテキスト出力ノードの内部状態の誤差に与える影響を調整するステップを含む。
【００１８】
本発明の第２の側面においては、所定の時刻におけるコンテキスト入力ノードの内部状態の誤差が、その前の時刻のコンテキスト出力ノードの内部状態の誤差に与える影響が調整される。
【発明の効果】
【００１９】
本発明によれば、RNNにおいて、長いシーケンスの学習または生成を可能とさせることができる。
【発明を実施するための最良の形態】
【００２０】
以下に本発明の実施の形態を説明するが、本発明の構成要件と、明細書又は図面に記載の実施の形態との対応関係を例示すると、次のようになる。この記載は、本発明をサポートする実施の形態が、明細書又は図面に記載されていることを確認するためのものである。従って、明細書又は図面中には記載されているが、本発明の構成要件に対応する実施の形態として、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その構成要件に対応するものではないことを意味するものではない。逆に、実施の形態が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
【００２１】
本発明の第１の側面の情報処理装置は、データを入力する入力ノード、前記入力ノードから入力された前記データに基づいてデータを出力する出力ノード、およびネットワークの内部状態を表す値をコンテキスト出力ノードからコンテキスト入力ノードへ回帰するコンテキストループと、所定の時刻の前記ネットワークからの出力を、前記ネットワークへの次の入力とする回帰ループとを持つリカレント型ニューラルネットワークを用いた処理を行う情報処理装置（例えば、図１の情報処理装置１）において、前記ネットワークへの次の入力を、その１つ前の前記ネットワークへの入力に、前記出力ノードの出力を所定の割合で足しこむことによって生成し、前記コンテキスト入力ノードへの次の入力を、その１つ前の前記コンテキスト入力ノードへの入力に、前記コンテキスト出力ノードの出力を所定の割合で足しこむことによって生成する生成手段（例えば、図１のRNN部１２）を備える。
【００２２】
本発明の第１の側面の情報処理方法は、データを入力する入力ノード、前記入力ノードから入力された前記データに基づいてデータを出力する出力ノード、およびネットワークの内部状態を表す値をコンテキスト出力ノードからコンテキスト入力ノードへ回帰するコンテキストループと、所定の時刻の前記ネットワークからの出力を、前記ネットワークへの次の入力とする回帰ループとを持つリカレント型ニューラルネットワークを用いた処理を行う情報処理方法において、前記ネットワークへの次の入力を、その１つ前の前記ネットワークへの入力に、前記出力ノードの出力を所定の割合で足しこむことによって生成し（例えば、図３のステップＳ１６）、前記コンテキスト入力ノードへの次の入力を、その１つ前の前記コンテキスト入力ノードへの入力に、前記コンテキスト出力ノードの出力を所定の割合で足しこむことによって生成する（例えば、図３のステップＳ１７）ステップを含む。
【００２３】
本発明の第１の側面のプログラムは、データを入力する入力ノード、前記入力ノードから入力された前記データに基づいてデータを出力する出力ノード、およびネットワークの内部状態を表す値をコンテキスト出力ノードからコンテキスト入力ノードへ回帰するコンテキストループと、所定の時刻の前記ネットワークからの出力を、前記ネットワークへの次の入力とする回帰ループとを持つリカレント型ニューラルネットワークを用いた処理を、コンピュータに実行させるプログラムにおいて、前記ネットワークへの次の入力を、その１つ前の前記ネットワークへの入力に、前記出力ノードの出力を所定の割合で足しこむことによって生成し（例えば、図３のステップＳ１６）、前記コンテキスト入力ノードへの次の入力を、その１つ前の前記コンテキスト入力ノードへの入力に、前記コンテキスト出力ノードの出力を所定の割合で足しこむことによって生成する（例えば、図３のステップＳ１７）ステップを含むプログラム。
【００２４】
本発明の第２の側面の学習装置は、データを入力する入力ノード、前記入力ノードから入力された前記データに基づいてデータを出力する出力ノード、およびネットワークの内部状態を表す値をコンテキスト出力ノードからコンテキスト入力ノードへ回帰するコンテキストループと、所定の時刻の前記ネットワークからの出力を、前記ネットワークへの次の入力とする回帰ループとを持つリカレント型ニューラルネットワークを用いた処理を行う情報処理装置の、前記コンテキスト入力ノードに与える初期値を学習する学習装置（例えば、図１の情報処理装置１）において、所定の時刻における前記コンテキスト入力ノードの内部状態の誤差が、その前の時刻の前記コンテキスト出力ノードの内部状態の誤差に与える影響を調整する調整手段（例えば、図１のRNN部１２）を備える。
【００２５】
本発明の第２の側面の学習方法は、データを入力する入力ノード、前記入力ノードから入力された前記データに基づいてデータを出力する出力ノード、およびネットワークの内部状態を表す値をコンテキスト出力ノードからコンテキスト入力ノードへ回帰するコンテキストループと、所定の時刻の前記ネットワークからの出力を、前記ネットワークへの次の入力とする回帰ループとを持つリカレント型ニューラルネットワークを用いた処理を行う情報処理装置の、前記コンテキスト入力ノードに与える初期値を学習する学習方法において、所定の時刻における前記コンテキスト入力ノードの内部状態の誤差が、その前の時刻の前記コンテキスト出力ノードの内部状態の誤差に与える影響を調整する（例えば、図４のステップＳ３３）ステップを含む。
【００２６】
本発明の第２の側面のプログラムは、データを入力する入力ノード、前記入力ノードから入力された前記データに基づいてデータを出力する出力ノード、およびネットワークの内部状態を表す値をコンテキスト出力ノードからコンテキスト入力ノードへ回帰するコンテキストループと、所定の時刻の前記ネットワークからの出力を、前記ネットワークへの次の入力とする回帰ループとを持つリカレント型ニューラルネットワークを用いた処理を行う情報処理装置の、前記コンテキスト入力ノードに与える初期値を学習する処理を、コンピュータに実行させるプログラムにおいて、所定の時刻における前記コンテキスト入力ノードの内部状態の誤差が、その前の時刻の前記コンテキスト出力ノードの内部状態の誤差に与える影響を調整する（例えば、図４のステップＳ３３）ステップを含む。
【００２７】
以下、図を参照して、本発明の実施の形態について説明する。
【００２８】
図１は、本発明を適用した情報処理装置の一実施の形態の構成例を示すブロック図である。
【００２９】
図１の情報処理装置１は、学習指令部１１、RNN部１２、および生成指令部１３から構成され、時系列データ（時系列パターン）を学習する処理を行う。
【００３０】
学習指令部１１は、学習の教師となる時系列データを教師データとしてRNN部１２に供給することにより、RNN部１２に時系列データの学習をさせる。
【００３１】
記憶部２１と演算部２２を有するRNN部１２では、入力層と出力層との間に中間層をもつ三層型のリカレント型ニューラルネットワーク（Recurrent Neural Network;以下、RNNと称する）が構築されている。
【００３２】
図２は、RNN部１２で構築されるRNNの構成を模式的に表した図である。
【００３３】
図２のRNN４１では、そこに入力される時刻ｔの状態ベクトルｘu（ｔ）に対して、時刻ｔ＋１の状態ベクトルｘu（ｔ＋１）を予測して、出力することが学習される。RNN４１は、ネットワークの内部状態を表すコンテキストループと呼ばれる回帰ループをもち、その内部状態に基づく処理が行われることで対象となる時系列データの時間発展法則を学習することができる。RNN４１の入力層５１に位置するコンテキストループのノードをコンテキスト入力ノード６２−ｋ（ｋ＝１，・・・，Ｋ）といい、RNN４１の出力層５３に位置するコンテキストループのノードをコンテキスト出力ノード６５−ｋという。また、コンテキスト入力ノード以外の入力層５１のノードを入力ノード６１−ｉ（ｉ＝１，・・・，Ｉ）、中間層５２のノードを隠れノード６３−ｊ（ｊ＝１，・・・，Ｊ）、コンテキスト出力ノード以外の出力層５３のノードを出力ノード６４−ｉとそれぞれいう。入力ノード６１−ｉには、例えば、センサの信号やモータの信号が入力される。
【００３４】
なお、入力ノード６１−ｉ、コンテキスト入力ノード６２−ｋ、隠れノード６３−ｊ、出力ノード６４−ｉ、およびコンテキスト出力ノード６５−ｋの各ノードを区別する必要がない場合には、単に、入力ノード６１、コンテキスト入力ノード６２、隠れノード６３、出力ノード６４、およびコンテキスト出力ノード６５という。
【００３５】
図１に戻り、演算部２２は、学習指令部１１から供給される教師データに基づいて、入力層５１と中間層５２の各ノード間の重み係数（後述する重み係数ｗhijおよびｗhjk）、中間層５２と出力層５３の各ノード間の重み係数（後述する重み係数ｗyijおよびｗojk）、および、コンテキスト入力ノード６２−ｋに与える初期値が、それぞれ、最適な値となるように、入力ノード６１、コンテキスト入力ノード６２、隠れノード６３、出力ノード６４、コンテキスト出力ノード６５、入力層５１と中間層５２の各ノード間の重み係数、中間層５２と出力層５３の各ノード間の重み係数を変数として演算を行う。この最適な重み係数およびコンテキスト入力ノード６２−ｋの初期値を求めることが時系列データの学習であり、求められた最適な重み係数およびコンテキストノード６２−ｋの初期値は、記憶部２１に記憶される。従って、学習指令部１１から教師データが供給された場合、RNN部１２は、教師データに対する最適な重み係数およびコンテキスト入力ノード６２−ｋの初期値を学習する学習装置として機能する。
【００３６】
また、演算部２２は、生成指令部１３から、入力層５１の各ノード、即ち、入力ノード６１−ｉとコンテキスト入力ノード６２−ｋに対して初期値が供給されると、その初期値に基づいて、時系列データを生成し、その生成された時系列データを、生成データとして生成指令部１３に出力する。この時系列データの生成には、上述した学習機能により学習された重み係数およびコンテキストノード６２の初期値が使用される。従って、生成指令部１３から、入力層５１の各ノードに対して初期値が供給された場合、RNN部１２は、供給された初期値に基づいて、時系列データを生成する生成装置として機能する。
【００３７】
生成指令部１３は、RNN４１の入力層５１の各ノードに対する初期値をRNN部１２に供給することにより、RNN部１２に所定のタイムステップ（サンプル）（時刻）数の時系列データを生成させる。
【００３８】
図２を参照して、RNN４１についてさらに説明する。
【００３９】
RNN４１は、入力層５１、中間層（隠れ層）５２、出力層５３、並びに演算部５４および５５により構成されている。
【００４０】
上述したように、入力層５１は、入力ノード６１−ｉ（ｉ＝１，・・・，Ｉ）と、コンテキスト入力ノード６２−ｋ（ｋ＝１，・・・，Ｋ）を有しており、中間層５２は、隠れノード６３−ｊ（ｊ＝１，・・・，Ｊ）を有している。また、出力層５３は、出力ノード６４−ｉと、コンテキスト出力ノード６５−ｋを有している。
【００４１】
入力ノード６１−ｉには、時刻ｔの状態ベクトルｘu（ｔ）を構成するｉ番目の要素であるデータｘui（ｔ）が入力される。また、コンテキスト入力ノード６２−ｋには、時刻ｔのRNN４１の内部状態ベクトルｃu（ｔ）を構成するｋ番目の要素であるデータｃuk（ｔ）が入力される。
【００４２】
入力ノード６１−ｉおよびコンテキスト入力ノード６２−ｋのそれぞれにデータｘui（ｔ）およびｃuk（ｔ）が入力された場合に、入力ノード６１−ｉおよびコンテキスト入力ノード６２−ｋが出力するデータｘi（ｔ）およびｃk（ｔ）は、次の式（１）および式（２）によって表される。
【００４３】
【数１】
2007265345.tif 000003
【００４４】
【数２】
2007265345.tif 000004
【００４５】
式（１）および式（２）における関数ｆは、シグモイド関数などの微分可能な連続関数であり、式（１）および式（２）は、入力ノード６１−ｉおよびコンテキスト入力ノード６２−ｋのそれぞれに入力されたデータｘui（ｔ）およびデータｃuk（ｔ）が、関数ｆにより活性化され、データｘi（ｔ）およびデータｃk（ｔ）として入力ノード６１−ｉおよびコンテキスト入力ノード６２−ｋから出力されることを表している。なお、データｘui（ｔ）およびｃuk（ｔ）の上付きのｕは、活性化される前のノードの内部状態を表す（他のノードについても同様）。
【００４６】
隠れノード６３−ｊに入力されるデータｈuj（ｔ）は、入力ノード６１−ｉと隠れノード６３−ｊの結合の重みを表す重み係数ｗhijと、コンテキスト入力ノード６２−ｋと隠れノード６３−ｊの結合の重みを表す重み係数ｗhjkとを用いて、式（３）で表すことができ、隠れノード６３−ｊが出力するデータｈj（ｔ）は、式（４）で表すことができる。
【００４７】
【数３】
2007265345.tif 000005
【００４８】
【数４】
2007265345.tif 000006
【００４９】
なお、式（３）の右辺の第１項のΣは、ｉ＝１乃至Ｉの全てについて加算することを表し、第２項のΣは、ｋ＝１乃至Ｋの全てについて加算することを表す。
【００５０】
同様にして、出力ノード６４−ｉに入力されるデータｙui（ｔ）と、出力ノード６４−ｉが出力するデータｙi（ｔ）、および、コンテキスト出力ノード６５−ｋに入力されるデータｏuk（ｔ）と、コンテキスト出力ノード６５−ｋが出力するデータｏk（ｔ）は、次式で表すことができる。
【００５１】
【数５】
2007265345.tif 000007
【００５２】
【数６】
2007265345.tif 000008
【００５３】
【数７】
2007265345.tif 000009
【００５４】
【数８】
2007265345.tif 000010
【００５５】
式（５）のｗyijは、隠れノード６３−ｊと出力ノード６４−ｉの結合の重みを表す重み係数であり、Σは、ｊ＝１乃至Jの全てについて加算することを表す。また、式（７）のｗojkは、隠れノード６３−ｊとコンテキスト出力ノード６５−ｋの結合の重みを表す重み係数であり、Σは、ｊ＝１乃至Jの全てについて加算することを表す。
【００５６】
演算部５４は、出力ノード６４−ｉが出力するデータｙi（ｔ）から、時刻ｔのデータｘui（ｔ）と時刻ｔ＋１のデータｘui（ｔ＋１）との差分△ｘui（ｔ＋１）を式（９）により求め、さらに、式（１０）により、時刻ｔ＋１のデータｘui（ｔ＋１）を計算して、出力する。
【００５７】
【数９】
2007265345.tif 000011
【００５８】
【数１０】
2007265345.tif 000012
【００５９】
ここで、αおよびτは、任意の係数を表す。
【００６０】
したがって、図２のRNN４１に時刻ｔのデータｘui（ｔ）が入力されると、時刻ｔ＋１のデータｘui（ｔ＋１）がＲＮＮ４１の演算部５４から出力される。また、演算部５４から出力された時刻ｔ＋１のデータｘui（ｔ＋１）は、入力ノード６１−ｉにも供給される（フィードバックされる）。
【００６１】
演算部５５は、コンテキスト出力ノード６５−ｋが出力するデータｏk（ｔ）から、時刻ｔのデータｃuk（ｔ）と、時刻ｔ＋１のデータｃuk（ｔ＋１）との差分△ｃuk（ｔ＋１）を式（１１）により求め、さらに、式（１２）により、時刻ｔ＋１のデータｃuk（ｔ＋１）を計算して、出力する。
【００６２】
【数１１】
2007265345.tif 000013
【００６３】
【数１２】
2007265345.tif 000014
【００６４】
演算部５５から出力された時刻ｔ＋１のデータｃuk（ｔ＋１）は、コンテキスト入力ノード６２−ｋにフィードバックされる。
【００６５】
式（１２）は、ネットワークの現在の内部状態を表す内部状態ベクトルｃu（ｔ）に、コンテキスト出力ノード６５−ｋの出力であるデータｏk（ｔ）を係数αで重み付けて加算する（所定の割合で足しこむ）ことによって次の時刻のネットワークの内部状態ベクトルｃu（ｔ＋１）とすることを意味しており、その意味で、図１２のRNN４１は、連続型のRNNであると言うことができる。
【００６６】
以上のように、図２のRNN４１では、時刻ｔのデータｘu（ｔ）およびデータｃu（ｔ）が入力されると、時刻ｔ＋１のデータｘu（ｔ＋１）およびデータｃu（ｔ＋１）を生成して出力する処理を逐次的に行うので、重み係数ｗhij，ｗhjk，ｗyij、およびｗojkが、学習により求められているとすると、入力ノード６１に入力する入力データｘu（ｔ）の初期値ｘu（ｔ0）＝Ｘ０とコンテキスト入力ノード６２に入力するコンテキスト入力データｃu（ｔ）の初期値ｃu（ｔ0）＝Ｃ０を与えることにより、所定のタイムステップの時系列データを生成することができる。
【００６７】
次に、図３のフローチャートを参照して、時系列データを生成する情報処理装置１の生成処理について説明する。なお、図３において、重み係数ｗhij，ｗhjk，ｗyij、およびｗojkは、後述する学習処理により求められているものとする。
【００６８】
初めに、ステップＳ１１において、生成部１３は、入力データの初期値Ｘ０とコンテキスト入力データの初期値Ｃ０をRNN部１２に供給する。
【００６９】
ステップＳ１２において、入力ノード６１−ｉは、データｘi（ｔ）を式（１）により計算して出力し、コンテキスト入力ノード６２−ｋは、データｃk（ｔ）を式（２）により計算して出力する。
【００７０】
ステップＳ１３において、隠れノード６３−ｊは、式（３）を計算することによりデータｈuj（ｔ）を得て、データｈj（ｔ）を式（４）により計算して出力する。
【００７１】
ステップＳ１４において、出力ノード６４−ｉは、式（５）を計算することによりデータｙui（ｔ）を得て、データｙi（ｔ）を式（６）により計算して出力する。
【００７２】
ステップＳ１５において、コンテキスト出力ノード６５−ｋは、式（７）を計算することによりデータｏuk（ｔ）を得て、データｏk（ｔ）を式（８）により計算して出力する。
【００７３】
ステップＳ１６において、演算部５４は、差分△ｘui（ｔ＋１）を式（９）により求め、時刻ｔ＋１のデータｘui（ｔ＋１）を式（１０）により計算し、生成指令部１３に出力する。
【００７４】
ステップＳ１７において、演算部５５は、差分△ｃuk（ｔ＋１）を式（１１）により求め、時刻ｔ＋１のデータｃuk（ｔ＋１）を式（１２）により計算する。また、演算部５５は、式（１２）による計算の結果得られた時刻ｔ＋１のデータｃuk（ｔ＋１）を、コンテキスト入力ノード６２−ｋにフィードバックする（入力する）。
【００７５】
ステップＳ１８において、RNN部１２は、時系列データの生成を終了するか否かを判定する。ステップＳ１８で、時系列データの生成を終了しないと判定された場合、ステップＳ１９において、演算部５４は、式（１０）による計算の結果得られた時刻ｔ＋１のデータｘui（ｔ＋１）を、入力ノード６１−ｉにフィードバックして、ステップＳ１２に戻る。
【００７６】
一方、ステップＳ１８で、例えば、所定のタイムステップ数に到達するなどして、時系列データの生成を終了すると判定された場合、RNN部１２は、生成処理を終了する。
【００７７】
次に、RNN部１２における時系列データの学習について説明する。
【００７８】
例えば、情報処理装置１を搭載したヒューマノイドタイプのロボットに、複数の行動シーケンス（動作）を学習させる場合、学習の結果得られた入力層５１と中間層５２の各ノード間の重み係数ｗhijおよびｗhjkと、中間層５２と出力層５３の各ノード間の重み係数ｗyijおよびｗojkが、すべての行動シーケンスに対応可能な値である必要がある。
【００７９】
そこで、学習処理では、複数の行動シーケンスに対応する時系列データの学習が同時に実行される。即ち、学習処理では、行動シーケンスの数と同数のRNN４１が用意され、各行動シーケンスごとに重み係数ｗhij，ｗhjk，ｗyij、およびｗojkをそれぞれ求め、それらの平均値を最終的な１つのRNN４１の重み係数ｗhij，ｗhjk，ｗyij、およびｗojkとする処理を繰り返し実行することによって、生成処理で利用されるRNN４１の重み係数ｗhij，ｗhjk，ｗyij、およびｗojkが求められる。また、学習処理では、行動シーケンスごとのコンテキスト入力データの初期値ｃu（ｔ0）＝Ｃ０も同時に求められる。
【００８０】
図４は、Ｎ種類の行動シーケンスに対応するＮ個の時系列データを学習する情報処理装置１の学習処理のフローチャートである。
【００８１】
初めに、ステップＳ３１において、生成指令部１３は、教師データとしてのＮ個の時系列データをRNN部１２に供給する。また、生成指令部１３は、Ｎ個のRNN４１のコンテキスト入力データの初期値ｃuk（ｔ0）＝Ｃ０kとしての所定の値をRNN部１２に供給する。
【００８２】
ステップＳ３２において、RNN部１２の演算部２２は、学習回数を表す変数ｓに１を代入する。
【００８３】
ステップＳ３３において、演算部２２は、Ｎ個の時系列データにそれぞれ対応するRNN４１において、BPTT（Back Propagation Through Time）法を用いて、入力層５１と中間層５２の各ノード間の重み係数ｗhij（ｓ）およびｗhjk（ｓ）の誤差量δｗhijおよびδｗhjkと、中間層５２と出力層５３の各ノード間の重み係数ｗyij（ｓ）およびｗojk（ｓ）の誤差量δｗyijおよびδｗojk、並びに、コンテキスト入力データの初期値Ｃ０kの誤差量δＣ０kを計算する。ここで、ｎ（＝１，・・・，Ｎ）番目の時系列データが入力されたRNN４１において、BPTT法を用いて得られた誤差量δｗhij，δｗhjk，δｗyij，δｗojk、およびδＣ０kを、それぞれ、誤差量δｗhij,n，δｗhjk,n，δｗyij,n，δｗojk,n、およびδＣ０k,nと表す。
【００８４】
BPTT法は、コンテキストループを持つRNN４１の学習アルゴリズムであり、時間的な信号伝播の様子を空間的に展開することで、通常の階層型ニューラルネットワークにおけるバックプロパゲーション（BP）法を適用する手法であり、時刻ｔのデータｘu（ｔ）から生成される時刻ｔ＋１のデータｘu（ｔ＋１）と、時刻ｔ＋１の教師データｘu（ｔ＋１）*との誤差が小さくなるように重み係数ｗhij（ｓ），ｗhjk（ｓ），ｗyij（ｓ）、およびｗojk（ｓ）を求める手法である。
【００８５】
なお、演算部２２は、ステップＳ３３のBPTT法を用いた計算において、時刻ｔ＋１のコンテキスト入力ノード６２−ｋのデータｃuk（ｔ＋１）の誤差量δｃuk（ｔ＋１）を、時刻ｔのコンテキスト出力ノード６５−ｋのデータｏk（ｔ）の誤差量δｏk（ｔ）に逆伝播する際、任意の正の係数ｍで割ることにより、コンテキストデータの時定数の調整を行う。
【００８６】
即ち、演算部２２は、時刻ｔのコンテキスト出力ノード６５−ｋのデータｏk（ｔ）の誤差量δｏk（ｔ）を、時刻ｔ＋１のコンテキスト入力ノード６２−ｋのデータｃuk（ｔ＋１）の誤差量δｃuk（ｔ＋１）を用いた式（１３）によって求める。
【００８７】
【数１３】
2007265345.tif 000015
【００８８】
BPTT法において式（１３）を採用することにより、ネットワークの内部状態を表すコンテキストデータの１タイムステップ先の影響度を調整することができる。
【００８９】
ステップＳ３４において、演算部２２は、入力層５１と中間層５２の各ノード間の重み係数ｗhijおよびｗhjkと、中間層５２と出力層５３の各ノード間の重み係数ｗyijおよびｗojkのそれぞれを、Ｎ個の時系列データで平均化して、更新する。
【００９０】
即ち、演算部２２は、式（１４）乃至式（２１）により、入力層５１と中間層５２の各ノード間の重み係数ｗhij（ｓ＋１）およびｗhjk（ｓ＋１）と、中間層５２と出力層５３の各ノード間の重み係数ｗyij（ｓ＋１）およびｗojk（ｓ＋１）を求める。
【００９１】
【数１４】
2007265345.tif 000016
【００９２】
【数１５】
2007265345.tif 000017
【００９３】
【数１６】
2007265345.tif 000018
【００９４】
【数１７】
2007265345.tif 000019
【００９５】
【数１８】
2007265345.tif 000020
【００９６】
【数１９】
2007265345.tif 000021
【００９７】
【数２０】
2007265345.tif 000022
【００９８】
【数２１】
2007265345.tif 000023
【００９９】
ここで、ηは学習係数を表し、αは慣性係数を表す。なお、式（１４）、式（１６）、式（１８）、および式（２０）において、ｓ＝１の場合の△ｗhij（ｓ），△ｗhjk（ｓ），△ｗyij（ｓ）、および△ｗojk（ｓ）は、０とする。
【０１００】
ステップＳ３５において、演算部２２は、コンテキスト入力データの初期値Ｃ０k,nを更新する。即ち、演算部２２は、式（２２）および式（２３）により、コンテキスト入力データの初期値Ｃ０k,n（ｓ＋１）を求める。
【０１０１】
【数２２】
2007265345.tif 000024
【０１０２】
【数２３】
2007265345.tif 000025
【０１０３】
ステップＳ３６において、演算部２２は、変数ｓが所定の学習回数以下であるか否かを判定する。ここで設定される所定の学習回数は、学習誤差が十分に小さくなると認められる学習の回数である。
【０１０４】
ステップＳ３６で、変数ｓが所定の学習回数以下であると判定された場合、即ち、学習誤差が十分に小さくなると認められるだけの回数の学習をまだ行っていない場合、ステップＳ３７において、演算部２２は、変数ｓを１だけインクリメントして、ステップＳ３３に処理を進める。その後、ステップＳ３３乃至Ｓ３７の処理が繰り返される。一方、変数ｓが所定の学習回数より大きいと判定された場合、学習処理は終了する。
【０１０５】
なお、ステップＳ３６では、学習回数によって処理の終了を判定する以外に、学習誤差が所定の基準値以内となったか否かにより、処理の終了を判定してもよい。
【０１０６】
以上のように、学習処理では、行動シーケンスごとに重み係数ｗhij，ｗhjk，ｗyij、およびｗojkをそれぞれ求め、それらの平均値を最終的な１つのRNN４１の重み係数ｗhij，ｗhjk，ｗyij、およびｗojkとする処理を繰り返し実行することによって、生成処理で利用されるRNN４１の重み係数ｗhij，ｗhjk，ｗyij、およびｗojkが求められる。
【０１０７】
この処理は、換言すれば、複数の行動シーケンスに共通な動作の部分を、入力層５１と中間層５２の各ノード間の重み係数ｗhijおよびｗhjkと中間層５２と出力層５３の各ノード間の重み係数ｗyijおよびｗojkとに分担させ、複数の行動シーケンスで異なる動作の部分を、コンテキストノードの初期値Ｃ０k,nに分担させる処理であると言うことができる。従って、学習処理によって求められたコンテキストノードの初期値Ｃ０k,nは、行動シーケンスごとに固有な値をとり、その結果、生成処理において、与えるコンテキストノードの初期値Ｃ０k,nによって再現させる行動シーケンスを変えることができる。
【０１０８】
なお、上述した学習処理では、各行動シーケンスの重み係数ｗhij，ｗhjk，ｗyij、およびｗojkの平均値を求める処理を毎回実行するようにしたが、その処理は、所定回数ごとに実行するようにしてもよい。例えば、学習処理を終了する所定の学習回数が１００００回である場合に、１０回の学習回数ごとに各行動シーケンスの重み係数ｗhij，ｗhjk，ｗyij、およびｗojkの平均値を求める処理を実行するようにしてもよい。
【０１０９】
次に、図５乃至図８を参照して、上述した情報処理装置１の時系列データの学習処理と生成処理を、ヒューマノイドタイプのロボットの動作で実験した実験結果について説明する。
【０１１０】
具体的には、図５に示すように、ロボットの初期状態（ａ）から中間状態（ｂ）までの動作が同一で、中間状態（ｂ）から最終状態（ｃ）までの動作が、左手を上げる動作（ｃ１），右手を上げる動作（ｃ２）、または両手を上げる動作（ｃ３）とそれぞれ異なる３種類の行動シーケンスＤ１乃至Ｄ３をロボットに学習させる実験を行った。なお、行動シーケンスＤ１乃至Ｄ３は、RNN４１のタイムステップで６９乃至７９のステップ数となっている。
【０１１１】
教師データとしてRNN部１２に与えられる時系列データは、ロボットの関節角のモータ信号であり、本実験では、RNN４１の入力ノード６１のノード数を８（Ｉ＝８）、隠れノードのノード数を２０（Ｊ＝２０）、コンテキスト入力ノード６２のノード数を１０（Ｋ＝１０）、出力ノード６４のノード数を８（Ｉ＝８）とし、学習回数を５００，０００回として学習処理を行った。従って、ロボットは、８軸のモータ制御を行うことにより、行動シーケンスＤ１乃至Ｄ３を実行する。
【０１１２】
本実験では、行動シーケンスＤ１乃至Ｄ３の時系列データそれぞれに対して、僅かに異なる５種類のノイズを加えて得られた、合計１５個の行動シーケンスの時系列データを教師データとして学習させ、１５個の行動シーケンスに共通なRNN４１の重み係数と、１５個の行動シーケンスそれぞれのコンテキスト入力データの初期値Ｃ０が求められた。
【０１１３】
図６は、ある１つの行動シーケンスの学習処理において、ロボットの８軸の時系列データを５００，０００回学習させたときの学習誤差の推移を表している。図６の横軸は、学習回数を表し、縦軸は、８軸の時系列データの学習誤差の平均値を表している。
【０１１４】
学習誤差は、多少の振動は見られるものの、５００，０００回の学習回数で十分に収束していることが見てとれる。
【０１１５】
図７は、学習処理で使用した教師データと、生成処理で生成された生成データとを比較した比較結果を表している。
【０１１６】
図７Ａは、５個の行動シーケンスＤ１のうちのある１つの行動シーケンスについての比較結果を示し、図７Ｂは、５個の行動シーケンスＤ２のうちのある１つの行動シーケンスについての比較結果を示し、図７Ｃは、５個の行動シーケンスＤ３のうちのある１つの行動シーケンスについての比較結果を示している。
【０１１７】
図７Ａ、図７Ｂ、および図７Ｃのそれぞれには、上下方向に３つのグラフが示されているが、それぞれの上側のグラフは、学習処理でRNN部１２に供給された教師データ（モータ信号の時系列データ）を表し、真ん中のグラフは、生成処理でRNN部１２で生成された生成データ（モータ信号の時系列データ）を表し、下側のグラフは、教師データと生成データの誤差を表している。図７Ａ、図７Ｂ、および図７Ｃの横軸は、RNN４１におけるタイムステップ数を表している。
【０１１８】
図７Ａ、図７Ｂ、および図７Ｃに示されるいずれのグラフを見ても、真ん中の生成データは、上側の教師データとほとんど変わらず、教師データの特徴をよく表していることが分かる。即ち、ロボットの動作が忠実に再現されており、６９乃至７９もの長いシーケンスの学習および生成が可能であると言うことができる。
【０１１９】
次に、学習処理によって求められたコンテキスト入力データの初期値Ｃ０について考察する。
【０１２０】
図８は、上述した計１５個の行動シーケンスの学習処理によって求められたコンテキスト入力データの初期値Ｃ０を主成分分析により２次元に射影した図を表している。図８の横軸は第１主成分を表し、縦軸は第２主成分を表す。
【０１２１】
図８では、５個の行動シーケンスＤ１のコンテキスト入力データの初期値Ｃ０は、四角印（□）でプロットされ、５個の行動シーケンスＤ２のコンテキスト入力データの初期値Ｃ０は、バツ印（×）でプロットされ、５個の行動シーケンスＤ３のコンテキスト入力データの初期値Ｃ０は、三角印（△）でプロットされている。なお、図８において、５個プロットされるはずの行動シーケンスＤ２またはＤ３のコンテキスト入力データの初期値Ｃ０が、３個または４個に見えるのは、プロットされている位置が重なっているためである。
【０１２２】
図８から、行動シーケンスＤ１乃至Ｄ３のコンテキスト入力データの初期値Ｃ０は、互いに十分離れており、行動シーケンスＤ１乃至Ｄ３のコンテキスト入力データの初期値Ｃ０は、それぞれクラスタ化されていることが分かる。
【０１２３】
従って、初期状態（ａ）が同一であるために、RNN４１の入力ノード６１に与える入力データの初期値Ｘ０が同一である場合であっても、RNN４１に与えるコンテキスト入力データの初期値Ｃ０によって、行動シーケンスＤ１乃至Ｄ３を十分に切り分けることができると言うことができる。即ち、行動シーケンスＤ１乃至Ｄ３を切替えるコンテキスト入力データの初期値Ｃ０が、学習処理により自己組織化されている。
【０１２４】
以上のように、RNN部１２に構築される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１０２や、記憶部１０８を構成するハードディスクなどにより構成される。プログラム記録媒体へのプログラムの格納は、必要に応じてルータ、モデムなどのインタフェースである通信部１０９を介して、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の通信媒体を利用して行われる。
【０１３１】
本明細書において、フローチャートに記述されたステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【０１３２】
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【図面の簡単な説明】
【０１３３】
【図１】本発明を適用した情報処理装置の一実施の形態の構成例を示すブロック図である。
【図２】RNNの構成を模式的に表した図である。
【図３】情報処理装置の生成処理について説明するフローチャートである。
【図４】情報処理装置の学習処理について説明するフローチャートである。
【図５】実験に使用したヒューマノイドタイプのロボットの動作について説明する図である。
【図６】ロボットの実験における学習誤差の推移を示す図である。
【図７】ロボットの実験における教師データと生成データとの比較結果を示す図である。
【図８】ロボットの実験におけるコンテキスト入力データの初期値を主成分分析した結果を示す図である。
【図９】本発明を適用したコンピュータの一実施の形態の構成例を示すブロック図である。
【符号の説明】
【０１３４】
１  情報処理装置，  １２  RNN部，  ２１  記憶部，  ２２  演算部
【図１】
2007265345.tif 000026
【図２】
2007265345.tif 000027
【図３】
2007265345.tif 000028
【図４】
2007265345.tif 000029
【図５】
2007265345.tif 000030
【図６】
2007265345.tif 000031
【図７】
2007265345.tif 000032
【図８】
2007265345.tif 000033
【図９】
2007265345.tif 000034