(57)【特許請求の範囲】
【請求項１】
所定の対象をセンシングすることにより取得されたセンサ信号であるデータを、グループ毎に、１峰性の確率分布のより高次元のデータにトポロジープリザービングマップにより変換する高次元変換部と、
高次元の前記データから重み付け係数に基づいて、ソフトマックス関数を用いて前記グループ毎に合計が１になるように予測値を演算するリカレントニューラルネットワークと、
前記センサ信号に対応して取得された教示用データを、グループ毎に、１峰性の確率分布のより高次元の教示用データに変換する他の高次元変換部と
を備え、
前記リカレントニューラルネットワークは、高次元の前記教示用データの値が大きいほど誤差の値が大きくなるように前記誤差を演算し、その演算結果に基づき、時系列のパターンの学習処理を行う
情報処理装置。
【請求項２】
前記リカレントニューラルネットワークは、KL-divergenceに基づいて前記誤差を演算する
請求項１に記載の情報処理装置。
【請求項３】
前記リカレントニューラルネットワークは、連続時間型のリカレントニューラルネットワークであり、コンテキストを演算するニューロンは、その値が大きいほど、過去の内部状態の影響を大きくする時定数として、複数の値を有する
請求項２に記載の情報処理装置。
【請求項４】
複数の前記時定数のうちの大きい時定数は、小さい時定数の５倍以上の大きさである
請求項３に記載の情報処理装置。
【請求項５】
前記予測値を、所定の対象をセンシングすることにより取得されたセンサ信号である前記データと同じ次元に変換する低次元変換部をさらに備える
請求項１に記載の情報処理装置。
【請求項６】
高次元変換部と、リカレントニューラルネットワークと、他の高次元変換部とを備える情報処理装置の情報処理方法において、
前記高次元変換部が、所定の対象をセンシングすることにより取得されたセンサ信号であるデータを、グループ毎に、１峰性の確率分布のより高次元のデータにトポロジープリザービングマップにより変換し、
前記リカレントニューラルネットワークが、高次元の前記データから重み付け係数に基づいて、ソフトマックス関数を用いて前記グループ毎に合計が１になるように予測値を演算し、
前記他の高次元変換部が、前記センサ信号に対応して取得された教示用データを、グループ毎に、１峰性の確率分布のより高次元の教示用データに変換し、
前記リカレントニューラルネットワークが、高次元の前記教示用データの値が大きいほど誤差の値が大きくなるように前記誤差を演算し、その演算結果に基づき、時系列のパターンの学習処理を行う
ステップを含む情報処理方法。
【請求項７】
所定の対象をセンシングすることにより取得されたセンサ信号であるデータを、グループ毎に、１峰性の確率分布のより高次元のデータにトポロジープリザービングマップにより変換し、
高次元の前記データから重み付け係数に基づいて、ソフトマックス関数を用いて前記グループ毎に合計が１になるように予測値を演算し、
前記センサ信号に対応して取得された教示用データを、グループ毎に、１峰性の確率分布のより高次元の教示用データに変換し、
高次元の前記教示用データの値が大きいほど誤差の値が大きくなるように前記誤差を演算し、その演算結果に基づき、時系列のパターンの学習処理を行う
処理をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は情報処理装置、情報処理方法、およびプログラムに関し、特に、より多くの時系列パターンを学習、予測できるようにした情報処理装置、情報処理方法、およびプログラムに関する。
【背景技術】
【０００２】
従来よりリカレントニューラルネットワークによりロボットその他の対象を制御することが研究されている（例えば、非特許文献１）。
【０００３】
従来のリカレントニューラルネットワークにおいては、例えば１０次元の時系列データを学習し、予測値を演算する場合、１０個の出力ニューロンが用意され、それぞれのニューロンが対応する次元の値を表現するというような情報記述方法が採用されていた。
【０００４】
しかしながら、このような記述方法では、学習する時系列データ間に重なり合った部分や似通った部分が生じ易く、結果的にリカレントニューラルネットワーク内での表現に混乱や矛盾が生じ、結局破綻してしまうことが多かった。
【０００５】
そこで、同時に複数の時系列データを学習できるように、複数のモジュールを用いたり、リカレントニューラルネットワークの外部にパターンを切り替える装置を設け、その外部装置を切り替えて学習させることにより、同時に複数の時系列データを学習できるようにする試みがなされていた。
【０００６】
【非特許文献１】社団法人電子情報通信学会  信学技報PRMU2002-218(2003-02)「リカレントニューラルネットワークを用いた車両検出」p.43-48
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、外部装置により切り替えるようにした場合においても、実際には３種類程度の時系列パターンしか学習することができなかった。
【０００８】
本発明は、このような状況に鑑みてなされたものであり、より多くの時系列パターンを学習し、予測できるようにするものである。
【課題を解決するための手段】
【０００９】
本発明の一側面は、所定の対象をセンシングすることにより取得されたセンサ信号であるデータを、グループ毎に、１峰性の確率分布のより高次元のデータにトポロジープリザービングマップにより変換する高次元変換部と、高次元のデータから重み付け係数に基づいて、ソフトマックス関数を用いてグループ毎に合計が１になるように予測値を演算するリカレントニューラルネットワークと、前記センサ信号に対応して取得された教示用データを、グループ毎に、１峰性の確率分布のより高次元の教示用データに変換する他の高次元変換部とを備え、前記リカレントニューラルネットワークは、高次元の前記教示用データの値が大きいほど誤差の値が大きくなるように前記誤差を演算し、その演算結果に基づき、時系列のパターンの学習処理を行う情報処理装置である。
【００１０】
本発明の一側面においては、高次元変換部が、所定の対象をセンシングすることにより取得されたセンサ信号であるデータを、グループ毎に、１峰性の確率分布のより高次元のデータにトポロジープリザービングマップにより変換し、リカレントニューラルネットワークが、高次元のデータから重み付け係数に基づいて、ソフトマックス関数を用いてグループ毎に合計が１になるように予測値を演算し、他の高次元変換部が、センサ信号に対応して取得された教示用データを、グループ毎に、１峰性の確率分布のより高次元の教示用データに変換し、リカレントニューラルネットワークが、高次元の教示用データの値が大きいほど誤差の値が大きくなるように誤差を演算し、その演算結果に基づき、時系列のパターンの学習処理を行う。
【発明の効果】
【００１１】
以上のように、本発明の一側面によれば、より多くの時系列パターンを学習、予測することができる。
【発明を実施するための最良の形態】
【００１２】
以下、図を参照して本発明の実施の形態について説明する。
【００１３】
図１は本発明を適用した情報処理装置の一実施の形態の構成を示す。この情報処理装置１は、予測処理のため、リカレントニューラルネットワーク（以下、ＲＮＮとも記述する）１１および変換部１２，１３を有する他、ＲＮＮ１１の学習のため、教示用データ取得部２１、変換部２２、および演算部２３を有している。
【００１４】
この実施の形態においては、情報処理装置１がロボット２を制御する。このロボット２はモーター８１と視覚センサー８２を有している。モーター８１は、ロボット２の所定の部位を駆動することで、ロボット２に対して所定の動作を実行させる。モーター８１はセンサリーモーターであり、駆動の結果に対応する信号をセンサリフィードバックとして外部に出力する。視覚センサー８２は所定のオブジェクトを観察し、その観察結果に対応する信号をセンサリフィードバックとして出力する。
【００１５】
この実施の形態の場合、モーター８１の駆動の結果に対応する信号として８次元のデータｍtが出力され、視覚センサー８２のオブジェクトの観察結果に対応する信号として２次元のデータＳtが出力される。従って、ロボット２から合計１０次元のデータが、センサリフィードバックとして変換部１２に出力される。
【００１６】
取得されたデータを、グループ毎に、１峰性の確率分布のより高次元のデータに変換する高次元変換部としての変換部１２は、トポロジープリザービングマップ（topology preserving map）（以下、ＴＰＭと記述する）６１，６２を有する。ＴＰＭ６１は、ロボット２から入力されたモーター８１に関する８次元のデータｍtを、１峰性の確率分布の６４次元のデータＸi（ｔ）に変換する。ＴＰＭ６２は、ロボット２から入力された視覚センサー８２に関する２次元のデータＳtを、１峰性の確率分布の３６次元のデータＸi（ｔ）に変換する。結局変換部１２は、ロボット２から入力された１０次元のデータを、１００次元のデータＸi（ｔ）に変換する。
【００１７】
高次元のデータから重み付け係数に基づいて、グループ毎に合計が１になるように予測値を演算するＲＮＮ１１は、中間層を有しておらず、入力層３１と出力層３２の２層構造とされている。
【００１８】
入力層３１は、ニューロン４１とニューロン４２により構成されている。ニューロン４１は、変換部１２のＴＰＭ６１からの６４次元のデータＸi（ｔ）を入力する６４個のニューロンと、変換部１２のＴＰＭ６２からの３６次元のデータＸi（ｔ）を入力する３６個のニューロンの合計１００個のニューロンで構成される。ニューロン４２は、出力層３２からコンテキストループ５６を介して供給される８０次元のコンテキストが入力される８０個のニューロンで構成される。
【００１９】
ニューロン４１は、変換部１２のＴＰＭ６１から供給される６４次元のデータと、ＴＰＭ６２からから供給される３６次元のデータの合計１００次元のデータＸi（ｔ）を、出力層３２のニューロン５１，５２に供給する。またニューロン４２は、出力層３２からフィードバックされた８０次元のコンテキストＣi（ｔ−１）を、出力層３２のニューロン５１，５２に供給する。
【００２０】
出力層３２のニューロン５１は、１００個のニューロンから構成され、自身の内部状態をフィードバックするセルフフィードバックループ５１Ａを有している。すなわち、ニューロン５１の内部状態（internal state）は、入力層３１のニューロン４１，４２からのデータを重み付け係数に基づき重み付けした値と、自身の過去の内部状態の履歴に基づき決定される。１００次元のデータＸi（ｔ）に対する重み付け係数はωbxijとされ、８０次元のコンテキストに対する重み付け係数はωbcijとされる。これらの重み付け係数により重み付けされ、出力された１００次元のデータＸui（ｔ）は、演算部５３，５４に６４次元と３６次元に分配して供給される。
【００２１】
出力層３２のニューロン５２は、８０個のニューロンから構成され、自身の内部状態をフィードバックするセルフフィードバックループ５２Ａを有している。すなわち、ニューロン５２の内部状態（internal state）は、入力層３１のニューロン４１，４２からのデータを重み付け係数に基づき重み付けした値と、自身の過去の内部状態の履歴に基づき決定される。１００次元のデータＸi（ｔ）に対する重み付け係数はωuxijとされ、８０次元のコンテキストに対する重み付け係数はωucijとされている。これらの重み付け係数により重み付けされた８０次元のデータＣui（ｔ）は、演算部５５に供給される。
【００２２】
このように、この実施の形態の場合、時間特性が異なる２つの時系列パターンを表現することができるようにするために、ＲＮＮ１１はセルフフィードバックループを有する時間連続型のＲＮＮ（continuous time RNN）（以下、ＣＴＲＮＮとも記述する）とされる。
【００２３】
出力層３２の演算部５３は、ニューロン５１により重み付けされた１００次元のデータＸui（ｔ）のうちの、６４次元のデータの予測値としてのアクティベーションをソフトマックス関数により演算する。演算された６４次元の予測値Ｙi（ｔ）は演算部２３と、変換部１３のＴＰＭ７１に供給される。
【００２４】
演算部５４は、ニューロン５１により重み付けされた１００次元のデータＸui（ｔ）のうちの、残りの３６次元のデータの予測値としてのアクティベーションをソフトマックス関数により演算する。演算された３６次元の予測値Ｙi（ｔ）は演算部２３と、変換部１３のＴＰＭ７２に供給される。
【００２５】
演算部５５は、ニューロン５２により重み付けされた８０次元のコンテキストの内部状態Ｃui（ｔ）からコンテキストアクティベーションＣi（ｔ）を演算する。演算されたＣi（ｔ）は、コンテキストとしてコンテキストループ５６を介して入力層３１のニューロン４２にフィードバックされる。
【００２６】
教示用データ取得部２１は図示せぬ装置あるいは記憶部から、モーター８１のセンサリフィードバックとしての出力データｍtに対応する８次元の教示用データｍ*（ｔ＋１）と、視覚センサー８２のセンサリフィードバックとしての出力データＳtに対応する２次元の教示用データＳ*（ｔ＋１）を取得する。取得された教示用データを、グループ毎に、１峰性の確率分布のより高次元のデータに変換する他の高次元変換部としての変換部２２は、変換部１２と同様の構成とされ、ＴＰＭ１０１とＴＰＭ１０２を有している。ＴＰＭ１０１は入力されたモーター８１に関する８次元の教示用データｍ*（ｔ＋１）を６４次元の教示用データＹ*i（ｔ）に変換する。ＴＰＭ１０２は入力された視覚センサー８２に関する２次元の教示用データＳ*（ｔ＋１）を３６次元の教示用データＹ*i（ｔ）に変換する。
【００２７】
演算部２３は、出力層３２の演算部５３から供給された６４次元の予測値Ｙi（ｔ）および演算部５４から供給された３６次元の予測値Ｙi（ｔ）の合計１００次元の予測値Ｙi（ｔ）と、変換部２２のＴＰＭ１０１から供給された６４次元の教示用データＹ*i（ｔ）およびＴＰＭ１０２から供給された３６次元の教示用データＹ*i（ｔ）の合計１００次元の教示用データＹ*i（ｔ）との誤差を演算する。演算部２３は、演算した誤差に基づいて、出力層３２の重み付け係数を修正する。
【００２８】
予測値を、変換部１２により取得されたデータｍt，Ｓｔと同じ次元に変換する低次元変換部としての変換部１３はＴＰＭ７１，７２を有し、変換部１２における場合と逆の次元の変換を行う。すなわち、ＴＰＭ７１は出力層３２の演算部５３から供給された６４次元の予測値Ｙi（ｔ）を８次元のデータに変換し、アクションとしてロボット２に出力する。ＴＰＭ７２は出力層３２の演算部５４から供給された３６次元の予測値Ｙi（ｔ）を２次元のデータに変換し、アクションとしてロボット２に出力する。
【００２９】
ロボット２は、ＴＰＭ７１からの８次元のデータに基づき、モーター８１の動作を制御するとともに、ＴＰＭ７２からの２次元のデータに基づき、視覚センサー８２の動作を制御する。
【００３０】
次に図２のフローチャートを参照して、ＲＮＮ１１の学習処理について説明する。
【００３１】
ステップＳ１において演算部２３は、処理回数を表す変数ｔを０に設定する。ステップＳ２において変換部１２は、データを取得し、次元を変換する。学習処理の場合、ロボット２は実際には使用されず、メンタルシミュレーションが行われ、アクションがそのままセンサリフィードバックとして使用される。ｔ＝０ではない場合、後述するステップＳ８の処理で生成されたデータｍ（ｔ），Ｓ（ｔ）を変換部１２により次元変換してＸ（ｔ）が生成される。また前の時刻の演算部５５の演算結果Ｃ（ｔ−１）が取得される。
【００３２】
これに対してｔ＝０である場合、初期値Ｘu（ｉｎｉｔ），Ｃu（ｉｎｉｔ）が取得され、それぞれが演算部５３，５４によりソフトマックス関数またはシグモイド関数で演算される。演算された６４次元と３６次元の結果が、変換部１３により、８次元のデータと２次元のデータに変換され、センサリフィードバックとされる。
【００３３】
変換部１２のＴＰＭ６１は、センサリフィードバック（初期値）としての８次元のデータｍtを取得し、これを次のソフトマックス関数の式（１）に従って、１峰性の確率分布のより高次元（この実施の形態の場合６４次元）のデータＸi（ｔ）に変換する。すなわち、６４次元の出力の合計が１になるように変換される。これにより、近似したものをより近くにマップし、違うものをより遠くにマップするという、ウィナーテークオール的な変換が行われる。その結果、出力の最大値が１．０に近づけられ、その他の出力が０．０に近づけられて、データ間の重なり合いが減少し、無理なく自己組織化が可能となる。
【００３４】
【数１】
0005246751.tif 000002
【００３５】
上記式（１）において、δは定数である。ｍtは、取得されたモーター８１に関する８次元のデータであり、次の式（２）で表される。
【００３６】
【数２】
0005246751.tif 000003
【００３７】
ｋj（ｊ＝１，２，・・・，６４）は、次の式（３）で表されるように、参照ベクトルＫの要素である。
【００３８】
【数３】
0005246751.tif 000004
【００３９】
参照ベクトルＫの要素ｋiは、図３に示されるように、８×８個のマトリックス状の各ノードの位置に対応して配置されており、次の式（４）で表されるように、８個の要素μij（j＝１，２，・・・，８）により構成される。
【００４０】
【数４】
0005246751.tif 000005
【００４１】
ＴＰＭ６２においては、参照ベクトルＫの要素ｋiは、図４に示されるように、６×６個のマトリックス状の各ノードの位置に対応して配置されている。そして同様に、ＴＰＭ６２は視覚センサー８２のセンサリフィードバック（初期値）としての２次元のデータをより高次元(この実施の形態の場合３６次元)のデータに変換する。すなわち、３６次元の出力の合計が１になるように変換される。その処理は、上述したＴＰＭ６１の場合と同様であるのでその説明は省略する。
【００４２】
ＴＰＭ６２においてもＴＰＭ６１と同様に、式（１）乃至式（４）が用いられる。ただし、式（１）においては、モーター８１の８次元のデータに対応するデータｍtに代えて、視覚センサー８２の２次元のデータに対応するデータＳtが用いられ、式（２）においては、視覚センサー８２のデータに対応するデータＳtの要素は２次元とされ、式（３）においては、参照ベクトルＫの要素ｋiの数は３６個とされ、式（４）においては、参照ベクトルＫの要素ｋiの要素μiの数は２個とされる。
【００４３】
すなわち、データはモーター８１に関するグループ、あるいは視覚センサー８２に関するグループといったグループ毎に、その出力の合計が１になるように調整される。
【００４４】
なお、ＴＰＭ６１，６２は学習処理を行うことで実現される。その学習処理については、図５のフローチャートを参照して後述する。
【００４５】
データＸi（ｔ），Ｃj（ｔ−１）は入力層３１により取得される。すなわち、入力層３１のニューロン４１がＴＰＭ６１からの６４次元のデータＸi（ｔ）と、ＴＰＭ６２からの３６次元のデータＸi（ｔ）の、合計１００次元のデータＸi（ｔ）を取得する。またニューロン４２が、コンテキストループ５６によりフィードバックされる８０次元のコンテキストＣj（ｔ−１）を取得する。
【００４６】
ステップＳ３において出力層の内部状態を更新する処理が行われる。すなわち、出力層３２のニューロン５１は次の式（５）に基づいて内部状態Ｘui（ｔ）を更新する。式（５）の右辺の第１項は、セルフフィードバックループ５１Ａにより、現在の内部状態Ｘui（ｔ）が、過去の内部状態Ｘui（ｔ−１）により決定されることを表す。第２項は、現在の内部状態Ｘui（ｔ）が、入力層３１のニューロン４１からの１００次元のデータＸj（ｔ）に重み付け係数ωbxijにより重み付けした値と、８０次元のコンテキストＣj（ｔ−１）に重み付け係数ωbcijにより重み付けした値との積和により決定されることを表す。
【００４７】
【数５】
0005246751.tif 000006
【００４８】
すなわちこの演算においては、ニューロン５１の1個のニューロンiの時刻tにおける内部状態Ｘui（ｔ）を得るために、時刻（ｔ−１）におけるニューロンiの内部状態に時間係数を乗じたもの（１−１／τi）Ｘui（ｔ−１）が演算される。さらに、入力層３１のニューロン４１のすべてのニューロンjの出力Ｘj（ｔ）に、ニューロン４１のニューロンjからニューロン５１のニューロンiへの重み付け係数ωbxijに従って重み付けされた出力と、入力層３１のニューロン４２のすべてのニューロンjの出力Ｃj（ｔ−１）に、ニューロン４２のニューロンjからニューロン５１のニューロンiへの重み付け係数ωbcijに従って重み付けされた出力の合計に、時間係数１／τiを乗じたものの合計が演算される。そしてそれらの演算値がさらに加算される。
【００４９】
出力層３２のニューロン５２は次の式（６）に基づいて内部状態Ｃui（ｔ）を更新する。式（６）の右辺の第１項は、セルフフィードバックループ５２Ａにより、現在の内部状態Ｃui（ｔ）が、過去の内部状態Ｃuj（ｔ−１）により決定されることを表す。第２項は、現在の内部状態Ｃui（ｔ）が、入力層３１のニューロン４１からの１００次元のデータＸj（ｔ）に重み付け係数ωuxijにより重み付けした値と、８０次元のコンテキストＣj（ｔ−１）に重み付け係数ωucijにより重み付けした値との積和により決定されることを表す。
【００５０】
【数６】
0005246751.tif 000007
【００５１】
すなわちこの演算においては、ニューロン５２の1個のニューロンiの時刻tにおける内部状態Ｃui（ｔ）を得るために、時刻（ｔ−１）におけるニューロンiの内部状態に時間係数を乗じたもの（１−１／τi）Ｃui（ｔ−１）が演算される。さらに、入力層３１のニューロン４１のすべてのニューロンjの出力Ｘj（ｔ）に、ニューロン４１のニューロンjからニューロン５２のニューロンiへの重み付け係数ωuxijに従って重み付けされた出力と、入力層３１のニューロン４２のすべてのニューロンjの出力Ｃj（ｔ−１）に、ニューロン４２のニューロンjからニューロン５２のニューロンiへの重み付け係数ωucijに従って重み付けされた出力の合計に、時間係数１／τiを乗じたものの合計が演算される。そしてそれらの演算値がさらに加算される。
【００５２】
式（５），式（６）から明らかなように内部状態Ｘui（ｔ），Ｃui（ｔ）は、時定数τiの値が大きいほど、（１−１／τi）の値が大きくなるので、過去の内部状態から大きな影響を受ける。
【００５３】
連続時間型のリカレントニューラルネットワークであるＲＮＮ１１は、時定数τiで表される時間特性を有するが、この実施の形態の場合、式（５）で表されるニューロン５１の内部状態Ｘui（ｔ）を決定する時定数τiとして、１つの値（例えばτi＝２）が設定される。これに対して、式（６）で表されるニューロン５２の内部状態Ｃui（ｔ）を決定する時定数τiとして、２つの異なる値が設定される。例えば、８０個（次元）のニューロンのうち、次元がｉ＝１乃至６０の６０個のニューロンについては、時定数がτi＝５（ファーストコンテキスト）とされ、次元がｉ＝６１乃至８０の２０個のニューロンについては、時定数がτi＝７０（スローコンテキスト）とさる。
【００５４】
標的とされる時系列データは、短い時間スケールで変化する運動と、長い時間スケールで変化する運動の両方を含む複雑さを有していることが多い。時定数を１つに設定すると、２つの時間スケールの一方にしか対応できない。これに対して、２つの異なる時定数を設定して、時間特性の異なるニューロングループを用意することで、時間スケールの違いに応じた役割分担がＲＮＮ１１自体に自己組織的に構成される。
【００５５】
その結果、短い時間スケールで変化するニューロングループにより、複数の時系列パターンに出現するｃｈｕｎｋに相当する部分が表現され、長い時間スケールで変化するニューロングループにより、より抽象化されたレベルでのシーケンス、例えばｃｈｕｎｋの組み合わせの順序や切り替えが表現される。すなわち、時間特性が異なる２つの時系列パターンを表現することが可能になる。
【００５６】
なお、実験の結果、時間特性が異なる２つの時系列パターンを表現可能にするには、大きい時定数としてのスローの時定数τが、小さい時定数としてのファーストの時定数τの５倍以上大きければよいことが判った。
【００５７】
ステップＳ４において出力層のアクティベーションを演算する処理が行われる。すなわち、演算部５３はニューロン５１により更新された１００次元の内部状態Ｘui（ｔ）のうちのｉ＝１乃至６４のモーター８１に関する６４次元の部分から、次のソフトマックス関数の式（７）に基づいてアクティベーションを演算する。これにより出力される６４次元の予測値Ｙi（ｔ）の合計は１になるように調整される。
【００５８】
【数７】
0005246751.tif 000008
【００５９】
同様に、演算部５４はニューロン５１により更新された１００次元の内部状態Ｘui（ｔ）のうちのｉ＝６５乃至１００の視覚センサー８２に関する３６次元の部分から、ソフトマックス関数の式（７）に基づいてアクティベーションを演算する。これにより出力される３６次元の予測値Yi（ｔ）の合計は１になるように調整される。
【００６０】
すなわち、出力される予測データは、モーター８１に関するデータのグループ、あるいは視覚センサー８２に関するデータのグループといった各グループ毎に、その予測値の合計が１になるように調整される。
【００６１】
なお、出力の合計が１になるようにするには、ソフトマックス関数を用いるのに代えて、出力をその総和で除算するようにしてもよい。
【００６２】
一方、演算部５５はニューロン５２により更新された内部状態Ｃui（ｔ）から、次のシグモイド関数の式（８）に基づいてアクティベーションを演算する。すなわち式（８）の予測値Ｃi（ｔ）が演算される。
【００６３】
【数８】
0005246751.tif 000009
【００６４】
ステップＳ５において教示用データ取得部２１は、あらかじめ用意されている教示用データを取得する。この教示用データは、モーター８１に関する８次元のデータｍ*i（ｔ＋１）と、視覚センサー８２に関する２次元のデータＳ*i（ｔ＋１）の、合計１０次元のデータにより構成されている。
【００６５】
ステップＳ６において変換部２２は教示用データの次元を変換する。すなわち、変換部２２のＴＰＭ１０１は、モーター８１に関する８次元の教示用データｍ*i（ｔ＋１）を６４次元のデータＹ*i（ｔ）に変換する。同様に、ＴＰＭ１０２は、視覚センサー８２に関する２次元の教示用データＳ*i（ｔ＋１）を３６次元のデータＹ*i（ｔ）に変換する。この変換処理は、ステップＳ２における変換部１２による変換処理と同様の処理である。
【００６６】
ステップＳ７において演算部２３は、ステップＳ４で出力層３２より出力された１００次元の予測データＹi（ｔ）と、ステップＳ６で次元変換された１００次元の教示用データＹ*i（ｔ）の誤差を演算し、記憶する。この実施の形態においては、誤差Ｅは，出力層３２より出力された予測データＹi（ｔ）と教示用データＹ*i（ｔ）の差分ではなく、次のＫＬ−ｄｉｖｅｒｇｅｎｃｅの式（９）により演算される。
【００６７】
【数９】
0005246751.tif 000010
【００６８】
誤差Eを式（９）で定義すると、教示用データＹ*i（ｔ）が小さければ、Ｙ*i（ｔ）／Ｙi（ｔ）の値が大きくても誤差Ｅの全体に与える影響は小さくなる。すなわち、教示用データＹ*i（ｔ）が大きいほど、Ｙ*i（ｔ）／Ｙi（ｔ）の値が誤差Ｅに大きく影響する。
【００６９】
このように、誤差Eを確率分布の距離尺度である式（９）で定義することで、誤差Eを従来のように差分で表現する場合に較べて、よりもっともらしさの高い解、すなわち最適な重み付け係数を得ることができる。また、誤差Eを確率分布の式で定義することにより、ステップＳ２のソフトマックス関数に従って、グループ毎に、その出力の合計が１になるように次元を増加させる処理、およびステップＳ４の各グループ毎に合計が１になるように予測値を演算する処理とあいまって、より多くの時系列パターンを学習、予測することが可能になる。
【００７０】
ステップＳ８において出力層のアクティベーションの次元を変換する処理が行われる。すなわち、変換部１３のＴＰＭ７１は、演算部５３により演算された６４次元の予測値Ｙi（ｔ）を、式（１０）に基づいて８次元のデータｍtに変換する。
【００７１】
【数１０】
0005246751.tif 000011
【００７２】
この変換は、変換部１２における変換と逆の変換となる。なお、式（１０）において、ｉは１乃至６４の値をとり、ｌは、モーター８１に関するデータの次元に対応し、１乃至８の値をとる。
【００７３】
同様に、ＴＰＭ７２も、演算部５４より供給される視覚センサー８２に関する３６次元のデータＹi（ｔ）を、２次元のデータに変換する。この場合、式（１０）において、ｉは１乃至３６の値をとり、ｌは、視覚センサー８２に関するデータの次元に対応し、１，２の値をとる。
【００７４】
このようにして生成されたデータが次のタイミングで行われるステップＳ２の処理で使用される。
【００７５】
ステップＳ９において演算部２３は、変数ｔが予め設定されている値Ｔと等しいかを判定する。変数ｔが値Ｔと等しくない場合、すなわち処理回数がまだＴ回に達していない場合、ステップＳ１０において演算部２３は、変数ｔを１だけインクリメントする。その後処理はステップＳ２に戻り、それ以降の処理が繰り返される。この繰り返しの処理では、上述したようにステップＳ２においては、ｔ＝０ではない場合の処理が実行される。
【００７６】
ステップＳ９において変数ｔが値Ｔと等しいと判定された場合、すなわち処理回数がＴ回に達した場合、ステップＳ１１において演算部２３は、バックプロパゲーションスルータイム法で重み付け係数を更新する。この更新は、次の式（１１）に従って行われる。式（１１）においてαは所定の係数である。
【００７７】
【数１１】
0005246751.tif 000012
【００７８】
学習の目的は誤差Ｅを最小化する重み付け係数ωijを見つけることである。このため、重み付け係数ωijを変化させたときの誤差Ｅの増加量∂Ｅ／∂ωijに従って、−∂Ｅ／∂ωijの方向に重み付け係数ωijを変化させていく処理が行われる。式（１４）乃至式（１７）に示す増加量∂Ｅ／∂ωij（∂Ｅ／∂ωbxij，∂Ｅ／∂ωbcij，∂Ｅ／∂ωuxij，∂Ｅ／∂ωucij，）は、次の式（１２）と式（１３）を、時間Tから反復して計算することで求めることができる。
【００７９】
【数１２】
0005246751.tif 000013
【００８０】
すなわち、時系列シーケンスの始まりの時刻ｔを０、終わりの時刻ｔをTとする。式（９）から明らかなように、誤差Eは時刻ｔ＝０から時刻ｔ＝TまでのＥ（ｔ）の総和である。式（１４）乃至式（１７）に示されているように、増加量∂Ｅ／∂ωijは、∂Ｅ／∂Ｘ（ｔ），∂Ｅ／∂Ｃ（ｔ）の時間についての総和から求められるが、式（１２）と式（１３）に示されているように、∂Ｅ／∂Ｘ（ｔ），∂Ｅ／∂Ｃ（ｔ）は、時刻（ｔ＋１）における∂Ｅ／∂Ｘ（ｔ＋１），∂Ｅ／∂Ｃ（ｔ＋１）から求められる漸化式の形で与えられる。
【００８１】
そこで、式（１２）と式（１３）に従って、最後の時刻Ｔにおける∂Ｅ／∂Ｘ（Ｔ），∂Ｅ／∂Ｃ（Ｔ）として初期値を与えることで∂Ｅ／∂Ｘ（Ｔ−１），∂Ｅ／∂Ｃ（Ｔ−１）が演算され、以下同様に、式（１２）と式（１３）の演算を繰り返すことで、∂Ｅ／∂Ｘ（Ｔ−２），∂Ｅ／∂Ｃ（Ｔ−２），∂Ｅ／∂Ｘ（Ｔ−３），∂Ｅ／∂Ｃ（Ｔ−３），・・・と時刻ｔ＝０までの値が演算される。そして、式（１４）乃至式（１７）に従って、それらの演算値を積和することで∂Ｅ／∂ωijが求められる。
【００８２】
式（１３）のｆ（ｘ）は、コンテキストＣi（ｔ）のアクティベーションの演算に用いられるシグモイド関数であり、δikはＫｒｏｎｅｃｋｅｒ  ｄｅｌｔａであり、ｉ＝ｋのとき１、それ以外のとき０となる。
【００８３】
なお、バックプロパゲーションスルータイム法による重み付け係数を更新する処理は、１００次元まとめて行われる。
【００８４】
ステップＳ１２において演算部２３は、学習の回数があらかじめ設定されている所定の回数に達したかを判定する。まだ所定の回数に達していない場合、処理はステップＳ１に戻り、それ以降の処理が繰り返される。学習処理の回数が所定の回数に達した場合、学習処理は終了する。
【００８５】
なお、誤差が十分小さくなったとき、学習処理を終了させるようにすることもできる。
【００８６】
次に図５のフローチャートを参照して、ＴＰＭ６１の学習処理について説明する。
【００８７】
ステップＳ４１において、変換部１２は、次の式（１８）で表されるロボット２のモーター８１のデータに対応する８個のサンプルのデータｍtを取得する。
【００８８】
【数１３】
0005246751.tif 000014
【００８９】
ステップＳ４２において変換部１２は、次の式（１９）で表されるように、サンプルのデータｍtとノードｉ（図３の８×８個のノードのうちのｉ番目のノード）の参照ベクトルｋi（式（４））の差が最小となる勝者ノードのｋｃを求める。
【００９０】
【数１４】
0005246751.tif 000015
【００９１】
ステップＳ４３において変換部１２は、勝者ノードであるｃ番目のノードを中心に、近傍の参照ベクトルｋiを更新式に従って更新する。更新式は式（２０）と式（２１）に示されている。近傍関数である式（２１）において、αは学習レート、δはパラメータ定数を表す。また式（２１）の右辺の分子の||ｒi−ｒc||は、勝者ノードであるノードｃからノードｉまでの距離を表す。上記式に基づく更新により、勝者ノードに近いノードほど強く学習が行われる。
【００９２】
【数１５】
0005246751.tif 000016
【００９３】
ステップＳ４４において変換部１２は、学習の回数が所定の回数に達したかを判定する。学習の回数がまだ所定の回数に達していない場合、処理はステップＳ４１に戻り、それ以降の処理が繰り返される。学習の回数が所定の回数に達した場合、学習処理は終了される。
【００９４】
以上のようにしてＴＰＭ６１の学習処理が行われる。
【００９５】
ＴＰＭ６２においても式（１８）乃至式（２１）を用いて同様の学習処理が行われる。ただし、式（１８）においては、モーター８１に対応するサンプルの８次元のデータｍtではなく、視覚センサー８２に対応するサンプルの２次元のデータＳtとされ、式（１９）と式（２０）においては、モーター８１に対応するサンプルの８次元のデータｍtに代えて、視覚センサー８２に対応するサンプルの２次元のデータＳtが用いられる。
【００９６】
ＴＰＭ１０１，１０２，７１，７２においても同様の学習処理が行われる。
【００９７】
次に図６のフローチャートを参照して、情報処理装置１によるロボット２の駆動処理について説明する。
【００９８】
ステップＳ７１において変換部１２は、データを取得し、次元を変換する。すなわち、ＴＰＭ６１は、ロボット２のモーター８１に関する８次元のデータｍtを取得し、これを式（１）に従って、６４次元のデータＸi（ｔ）に変換する。同様に、ＴＰＭ６２も視覚センサー８２に関する２次元のデータＳtを取得し、これを式（１）に従って、３６次元のデータＸi（ｔ）に変換する。
【００９９】
ステップＳ７２において入力層がＸi（ｔ），Ｃj（ｔ−１）を取得する。すなわち、ニューロン４１が、ＴＰＭ６１で変換されたモーター８１に関する６４次元のデータＸi（ｔ）と、ＴＰＭ６２で変換された視覚センサー８２に関する３６次元のデータＸi（ｔ）の、合計１００次元のデータＸi（ｔ）を取得する。またニューロン４２がコンテキストループ５６によりフィードバックされるコンテキストＣj（ｔ−１）を取得する。
【０１００】
ステップＳ７３において出力層の内部状態を更新する処理が行われる。すなわち、ニューロン５１が式（５）に従って、内部状態Ｘui（ｔ）を更新する。またニューロン５２が式（６）に従って、内部状態Ｃui（ｔ）を更新する。
【０１０１】
ステップＳ７４において出力層のアクティベーションを演算する処理が行われる。すなわち、演算部５３は、式（７）に従って、１００次元の内部状態Ｘui（ｔ）のうちのｉ＝１乃至６４のモーター８１に関する６４次元の部分から、ソフトマックス関数の式（７）に基づいてアクティベーションを演算する。演算部５４は、式（７）に従って、１００次元の内部状態Ｘui（ｔ）のうちのｉ＝６５乃至１００の視覚センサー８２に関する３６次元の部分から、ソフトマックス関数の式（７）に基づいてアクティベーションを演算する。
【０１０２】
演算部５５は、シグモイド関数の式（８）に従って、アクティベーションを演算する。このアクティベーションとしての予測値Ｃi（ｔ）は、コンテキストループ５６により入力層３１のニューロン４１にフィードバックされる。
【０１０３】
ステップＳ７５において変換部１３は次元を変換する。この変換は、変換部１２における変換と逆の変換となる。すなわち、ＴＰＭ７１は、式（１０）に従って、演算部５３より供給されるモーター８１に関する６４次元のデータＹi（ｔ）を、８次元のデータに変換する。なお、式（１０）において、ｉは１乃至６４の値をとり、ｌは、モーター８１に関するデータの次元に対応し、１乃至８の値をとる。
【０１０４】
同様に、ＴＰＭ７２も、演算部５４より供給される視覚センサー８２に関する３６次元のデータＹi（ｔ）を、２次元のデータに変換する。この場合、式（１０）において、ｉは１乃至３６の値をとり、ｌは、視覚センサー８２に関するデータの次元に対応し、１，２の値をとる。
【０１０５】
変換されたデータはアクションとしてロボット２に供給される。
【０１０６】
ステップＳ７６においてロボットを駆動する処理が実行される。すなわち、モーター８１は、ＴＰＭ７１より供給される８次元のデータに基づいて駆動され、視覚センサー８２は、ＴＰＭ７２より供給される２次元のデータに基づいて駆動される。
【０１０７】
ステップＳ７７において変換部１２は、終了が指示されたかを判定する。まだ終了が指示されてない場合には、処理はステップＳ７１に戻り、それ以降の処理が繰り返される。終了が指示された場合、処理は終了される。
【０１０８】
ＲＮＮ１１の重み付け係数は適正に学習されている。従って、ロボット２の行動は適正に制御される。
【０１０９】
以上のように、この実施の形態においては、取得されたデータを、グループ毎に、１峰性の確率分布のより高次元のデータに変換し、高次元のデータから重み付け係数に基づいて、データのグループ毎に合計が１になるように予測値を演算するようにしたので、より多くの時系列パターンを学習、予測することができる。
【０１１０】
このように、より多くの時系列パターンを学習、予測することができるのは、次元数を増加することで、情報の直交性が増大するからと考えられる。すなわち、一般的に得られる教示用データの値のほとんどは、上下限ぎりぎりの値ではなく、所定の範囲のダイナミックレンジのうちの狭い一部の範囲に集中していることが多い。このことはダイナミックレンジが効率的に十分利用されていないことを意味する。
【０１１１】
そこで近いデータは近くに、遠いデータは遠い位置にマッピングするように次元を増加することで、すなわち１峰性の特性で演算により次元を増加することで、トポロジーを保持したまま次元を増加するようにすれば、少ない次元の空間で近接配置されていたデータ（ベクトル）を、多次元空間に分散して位置づけることができ、ベクトル相互の直交性が増加する（それまで近接していて識別が困難であったベクトルを識別することが可能になる）と考えられる。
【０１１２】
また、次元を増加するのにＴＰＭを用いると、１峰性の特性を無理なく自己組織的に実現することが可能となる。
【０１１３】
例えば、図７に示されるように、ベクトルＡとＢを、２次元のｘｙ座標上で比較すると、両者は近接しているため、その差異はわずかであり、両者の識別は困難である。しかし、ｚ座標を増加し、ベクトルＡをベクトルＡ’として３次元のｘｙｚ座標でベクトルＢと比較すると、ベクトルＡ’とベクトルＢとの差異は大きく表現することができ、ベクトルＡ’とベクトルＢを識別することが容易になるのである。
【０１１４】
もちろんロボット２からの出力自体の次元を増加すればより適正な学習、予測が可能になる。しかしそのようにするには、センサーの数を多くする必要があり、構成が複雑となり、コスト高となる。また、配置することができるセンサーの数はハードウェアに依存し、必ずしも多くのセンサーを配置することができるとは限らない。さらに、例えば近傍に多くのセンサーを配置したとしても、ほとんど同じセンサー出力しか得られなければ、センサーの数を増加したことに対応する十分な効果は必ずしも得られない。また相互の関係が希薄なセンサーが多くなれば、その出力に基づき学習し、予測することが困難になる。
【０１１５】
これに対して、この実施の形態のように、少ないセンサー出力の次元を、グループ毎に、１峰性の特性で演算により増加するようにすれば、トポロジーを保持したまま次元を増加することができるので、構成を複雑にしたり、コスト高とすることなく、学習、予測が容易となる。
【０１１６】
図８と図９は、本発明を適用した実験の結果を表している。この実験においては、ロボット２に、ホームポジションからオブジェクトを上下に３回動かしてホームポジションに戻る動作を実行させている。
【０１１７】
図８は教示用データを、図９は予測値を、それぞれ表している。
【０１１８】
図８Ａは、モーター８１に関する低次元の（高次元変換する前の）教示用データｍ*（ｔ）を表し、図９Ａは、対応する（ＴＰＭ７１により低次元に変換された）予測値ｍ（ｔ）を表している。これらはロボット２の各部の関節角度を０乃至１の値で表している。実線は左腕回内回外、破線は左肘屈曲伸展、一点鎖線は右肩屈曲伸展、点線は右腕回内回外を、それぞれ表している。すなわち、８次元の内の４次元が示されている。
【０１１９】
図８Ｂは、視覚センサー８２に関する低次元の（高次元変換する前の）教示用データＳ*（ｔ）を表し、図９Ｂは対応する（ＴＰＭ７２により低次元変換された）予測値Ｓ（ｔ）を表している。これらはロボット２が上下に動かすオブジェクトの位置を０乃至１の値で表している。実線と破線はオブジェクトのＸ，Ｙ座標をそれぞれ表している。
【０１２０】
図８Ｃは、ＴＰＭ１０１により高次元変換された、モーター８１に関する６４次元の教示用データＹ*i（ｔ）（ｉ＝１乃至６４）と、ＴＰＭ１０２により高次元変換された、視覚センサー８２に関する３６次元の教示用データＹ*i（ｔ）（ｉ＝６５乃至１００）を表している。図９Ｃは、図８Ｃに対応する、演算部５３により演算された、モーター８１に関する６４次元の予測値Ｙi（ｔ）（ｉ＝１乃至６４）と、演算部５４により演算された、視覚センサー８２に関する３６次元の予測値Ｙi（ｔ）（ｉ＝６５乃至１００）を表している。いずれも、８×８個または６×６個のノードを縦方向に分割し、それを縦方向に配置した状態で表されている。各ノードの０乃至１のアクティビティの値がグレースケールで表されている。
【０１２１】
図９Ｄは、コンテキストアクティベーションＣi（ｔ）を表している。ｉ＝１乃至６０は、式（６）のτi＝５のファーストコンテキストの場合であり、ｉ＝６１乃至８０は、式（６）のτi＝７０のスローコンテキストの場合である。この場合も、各ノードの０乃至１のアクティビティの値がグレースケールで表されている。ファーストコンテキストの場合（ｉ＝１乃至６０の場合）、短い時間で激しく変化し、スローコンテキストの場合（ｉ＝６１乃至８０の場合）、変化がゆっくりであることがわかる。
【０１２２】
この実験により、１０次元のデータの学習と予測が適正に行われていることを確認することができた。
【０１２３】
なお、上記実施の形態における次元数、ニューロン数などは、例に過ぎず、本発明はそれらに限定されるものではない。
【０１２４】
上述した一連の処理は、ハードウェアにより実行させることもできるし、ソフトウエアにより実行させることもできる。一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、プログラム記録媒体からインストールされる。
【０１２５】
コンピュータにインストールされ、コンピュータによって実行可能な状態とされるプログラムを格納するプログラム記録媒体は、磁気ディスク（フレキシブルディスクを含む）、光ディスク（CD-ROM(Compact Disc-Read Only Memory),DVD(Digital Versatile Disc)を含む）、光磁気ディスクを含む）、もしくは半導体メモリなどよりなるパッケージメディアであるリムーバブルメディア、または、プログラムが一時的もしくは永続的に格納されるROMやハードディスクなどにより構成される。プログラム記録媒体へのプログラムの格納は、必要に応じてルータ、モデムなどのインタフェースである通信部を介して、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の通信媒体を利用して行われる。
【０１２６】
なお、本明細書において、プログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【０１２７】
また、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【図面の簡単な説明】
【０１２８】
【図１】本発明の情報処理装置の一実施の形態の構成を示すブロック図である。
【図２】リカレントニューラルネットワークの学習処理を説明するフローチャートである。
【図３】トポロジープリザービングマップを説明する図である。
【図４】他のトポロジープリザービングマップを説明する図である。
【図５】トポロジープリザービングマップの学習処理を説明するフローチャートである。
【図６】ロボットの駆動処理を説明するフローチャートである。
【図７】ベクトルの多次元化を説明する図である。
【図８】実験に用いた教示用データを示す図である。
【図９】実験により得られた予測値を示す図である。
【符号の説明】
【０１２９】
１  情報処理装置，  ２  ロボット，  １１  リカレントニューラルネットワーク，  １２，１３  変換部，  ２１  教示用データ取得部，  ２２  変換部，  ２３  演算部，  ３１  入力層，  ３２  出力層，  ４１，４２，５１  ニューロン，  ５１Ａ  セルフィフィードバックループ，  ５２  ニューロン，  ５２Ａ  セルフィフィードバックループ，  ５３乃至５５  演算部，  ５６  コンテキストループ，  ６１，６２，７１，７２  トポロジープリザービングマップ，  ８１  モーター，  ８２  視覚センサー，  １０１，１０２  トポロジープリザービングマップ
【図１】
0005246751.tif 000017
【図２】
0005246751.tif 000018
【図３】
0005246751.tif 000019
【図４】
0005246751.tif 000020
【図５】
0005246751.tif 000021
【図６】
0005246751.tif 000022
【図７】
0005246751.tif 000023
【図８】
0005246751.tif 000024
【図９】
0005246751.tif 000025