(57)【要約】【課題】短い時間で学習ができるようにする。【解決手段】時系列データ変換部１２は、学習された特性に基づいて、入力時系列データを変換時系列データに変換する。関数近似部１３は、学習された入出力変数間の関数関係に基づいて、変換時系列データから出力時系列データを生成する。時系列データ変換部１２と関数近似部１３は、それぞれが有するパラメータを自律的に更新する。記時系列データ変換部１２は、入力データを１度に１個だけ受け付け、その１個の入力データに対応する出力データを１個だけ出力する１個以上のモデルにより、現時点の入力時系列データとモデルのパラメータの積と、モデルのパラメータを含む減衰項とモデルの直前の出力データとの積の和を演算することによって変換時系列データを演算する。【選択図】図１
2009116770.tif 000002
【特許請求の範囲】
【請求項１】
学習された特性に基づいて、入力時系列データを変換時系列データに変換する時系列データ変換手段と、
学習された入出力変数間の関数関係に基づいて、前記変換時系列データから出力時系列データを生成する関数近似手段とを備え、
前記時系列データ変換手段と前記関数近似手段は、それぞれが有するパラメータを自律的に更新し、
前記時系列データ変換手段は、入力データを１度に１個だけ受け付け、その１個の入力データに対応する出力データを１個だけ出力するモデルであって、現時点の前記入力時系列データと前記モデルのパラメータの積と、前記モデルのパラメータを含む減衰項と前記モデルの直前の出力データとの積の和を演算することによって前記変換時系列データを演算する１個以上の前記モデルを有する
データ処理装置。
【請求項２】
前記時系列データ変換手段は、前記入力時系列データを入力する複数個の前記モデルが並列に組み合わされた構成を有する
請求項１に記載のデータ処理装置。
【請求項３】
前記時系列データ変換手段は、前記入力時系列データを入力する第１のモデルと、前記第１のモデルに対して直列に接続され、前記第１のモデルの出力を入力とする第２のモデルとを有する１個以上の組を、任意の数だけ並列に組み合わされた構成を有する
請求項２に記載のデータ処理装置。
【請求項４】
前記時系列データ変換手段は、前記入力時系列データを恒等変換する恒等変換手段をさらに有する
請求項２に記載のデータ処理装置。
【請求項５】
前記時系列データ変換手段のパラメータは重み係数そのものではなく、重み係数を単調関数で写像したものである
請求項１に記載のデータ処理装置。
【請求項６】
前記時系列データ変換手段と前記関数近似手段は、コスト関数を最小化もしくは極小化するように前記パラメータを更新する
請求項１に記載のデータ処理装置。
【請求項７】
前記コスト関数は、前記出力時系列データとその教師データとの誤差の二乗和である
請求項６に記載のデータ処理装置。
【請求項８】
データ処理装置のデータ処理方法において、
前記データ処理装置は、
学習された特性に基づいて、入力時系列データを変換時系列データに変換する時系列データ変換手段と、
学習された入出力変数間の関数関係に基づいて、前記変換時系列データから出力時系列データを生成する関数近似手段と
を備え、
前記時系列データ変換手段と前記関数近似手段は、それぞれが有するパラメータを自律的に更新し、
前記時系列データ変換手段は、入力データを１度に１個だけ受け付け、その１個の入力データに対応する出力データを１個だけ出力する１個以上のモデルにより、現時点の前記入力時系列データと前記モデルのパラメータの積と、前記モデルのパラメータを含む減衰項と前記モデルの直前の出力データとの積の和を演算することによって前記変換時系列データを演算する
データ処理方法。
【請求項９】
入力データを１度に１個だけ受け付け、その１個の入力データに対応する出力データを１個だけ出力する１個以上のモデルにより、現時点の前記入力時系列データと前記モデルのパラメータの積と、前記モデルのパラメータを含む減衰項と前記モデルの直前の出力データとの積の和を演算して前記変換時系列データを演算することにより、学習された特性に基づいて前記入力時系列データを前記変換時系列データに変換する時系列データ変換ステップと、
学習された入出力変数間の関数関係に基づいて、前記変換時系列データから出力時系列データを生成する関数近似ステップと、
前記時系列データ変換ステップと前記関数近似ステップの処理のパラメータを、それぞれ自律的に更新する更新ステップと
を含む処理をコンピュータに実行させるプログラム。
【請求項１０】
請求項９に記載のプログラムが記録されている記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ処理装置および方法、プログラム、並びに記録媒体に関し、特に、短い時間で学習ができるようにしたデータ処理装置および方法、プログラム、並びに記録媒体に関する。
【背景技術】
【０００２】
これまでも、観測し、もしくは教示される任意の時系列データそれ自体、あるいはそれらの相互関係を学習する学習手法は数多く提案されてきた。一番簡単なのは、現在の入力変数と出力すべき値との関係を関数近似器として学習するものである。しかし、入出力変数間に１対１の関数関係が存在せず、同じ入力値に対しても状況によって異なる複数の出力値が期待されるような場合は、原理的に学習が不可能である。
【０００３】
入出力変数間に１対１の関数関係が存在しない問題を直接的に取り扱う手法としてリカレントニューラルネットワーク(ＲＮＮ)という技術がある。これは「コンテキスト」とも呼ばれる隠れ変数をモデルの中に持ち、また自己回帰ループをもつことによって、同じ入力値に対しても状況に応じた異なる出力を可能とするものである。リカレントニューラルネットワークは、学習結果に基づき、過去の入力時系列データから将来の入力を予測したり、入力時系列データから所定の時系列データを生成して出力したりすることができ、さまざまな分野で応用が検討されている（例えば、特許文献１）。
【０００４】
【特許文献１】特開２００６−２９３４４２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ＲＮＮには様々なタイプがあり、それぞれに適した学習手法が提案されている。例えば実時間リカレント学習法(ＲＴＲＬ)や通時的逆伝播法(ＢＰＴＴ)などである。この種の手法の潜在性能は高く、理論的には任意の時系列信号の学習が可能であるとも言われている。
【０００６】
しかしながら、一般にはパラメータの多さ、そしてその結果としての、学習時間の長さや学習の不安定性などの点で不利である。問題に応じた適切なネットワーク構造やその規模を決定する方法も自明ではない。これらの点で、実時間でのオンライン学習に用いるにはまだまだ解決すべき事項が多いと言える。
【０００７】
本発明は、このような状況に鑑みてなされたものであり、短い時間で学習することができるようにするものである。
【課題を解決するための手段】
【０００８】
本発明の側面は、学習された特性に基づいて、入力時系列データを変換時系列データに変換する時系列データ変換手段と、学習された入出力変数間の関数関係に基づいて、前記変換時系列データから出力時系列データを生成する関数近似手段とを備え、前記時系列データ変換手段と前記関数近似手段は、それぞれが有するパラメータを自律的に更新し、前記時系列データ変換手段は、入力データを１度に１個だけ受け付け、その１個の入力データに対応する出力データを１個だけ出力するモデルであって、現時点の前記入力時系列データと前記モデルのパラメータの積と、前記モデルのパラメータを含む減衰項と前記モデルの直前の出力データとの積の和を演算することによって前記変換時系列データを演算する１個以上の前記モデルを有するデータ処理装置である。
【０００９】
前記時系列データ変換手段は、前記入力時系列データを入力する複数個の前記モデルが並列に組み合わされた構成を有することができる。
【００１０】
前記時系列データ変換手段は、前記入力時系列データを入力する第１のモデルと、前記第１のモデルに対して直列に接続され、前記第１のモデルの出力を入力とする第２のモデルとを有する１個以上の組を、任意の数だけ並列に組み合わされた構成を有することができる。
【００１１】
前記時系列データ変換手段は、前記入力時系列データを恒等変換する恒等変換手段をさらに有することができる。
【００１２】
前記時系列データ変換手段のパラメータは重み係数そのものではなく、重み係数を単調関数で写像したものであることができる。
【００１３】
前記時系列データ変換手段と前記関数近似手段は、コスト関数を最小化もしくは極小化するように前記パラメータを更新することができる。
【００１４】
前記コスト関数は、前記出力時系列データとその教師データとの誤差の二乗和であることができる。
【００１５】
本発明の側面はまた、データ処理装置のデータ処理方法において、前記データ処理装置は、学習された特性に基づいて、入力時系列データを変換時系列データに変換する時系列データ変換手段と、学習された入出力変数間の関数関係に基づいて、前記変換時系列データから出力時系列データを生成する関数近似手段とを備え、前記時系列データ変換手段と前記関数近似手段は、それぞれが有するパラメータを自律的に更新し、前記時系列データ変換手段は、入力データを１度に１個だけ受け付け、その１個の入力データに対応する出力データを１個だけ出力する１個以上のモデルにより、現時点の前記入力時系列データと前記モデルのパラメータの積と、前記モデルのパラメータを含む減衰項と前記モデルの直前の出力データとの積の和を演算することによって前記変換時系列データを演算するデータ処理方法である。
【００１６】
さらに本発明の側面は、入力データを１度に１個だけ受け付け、その１個の入力データに対応する出力データを１個だけ出力する１個以上のモデルにより、現時点の前記入力時系列データと前記モデルのパラメータの積と、前記モデルのパラメータを含む減衰項と前記モデルの直前の出力データとの積の和を演算して前記変換時系列データを演算することにより、学習された特性に基づいて前記入力時系列データを前記変換時系列データに変換する時系列データ変換ステップと、学習された入出力変数間の関数関係に基づいて、前記変換時系列データから出力時系列データを生成する関数近似ステップと、前記時系列データ変換ステップと前記関数近似ステップの処理のパラメータを、それぞれ自律的に更新する更新ステップとを含む処理をコンピュータに実行させるプログラムである。
【００１７】
このプログラムは記録媒体に記録することができる。
【００１８】
本発明の側面においては、入力データを１個だけ受け付け、その１個の入力データに対応する出力データを１度に１個だけ出力する１個以上のモデルにより、現時点の入力時系列データとモデルのパラメータの積と、モデルのパラメータを含む減衰項とモデルの直前の出力データとの積の和を演算することによって変換時系列データが演算される。
【発明の効果】
【００１９】
以上のように、本発明の側面によれば、短い時間で学習ができる。特に、出力に影響を与える非観測の変数が存在するために、入出力変数間に１対１の関数関係が成立しないような時系列シーケンスにおいて、短い時間で学習を行うことができる。
【発明を実施するための最良の形態】
【００２０】
以下に本発明の実施の形態を説明するが、本発明の構成要件と、明細書または図面に記載の実施の形態との対応関係を例示すると、次のようになる。この記載は、本発明をサポートする実施の形態が、明細書または図面に記載されていることを確認するためのものである。従って、明細書または図面中には記載されているが、本発明の構成要件に対応する実施の形態として、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その構成要件に対応するものではないことを意味するものではない。逆に、実施の形態が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
【００２１】
本発明の側面は、学習された特性に基づいて、入力時系列データを変換時系列データに変換する時系列データ変換手段（例えば、図１の時系列データ変換部１２）と、学習された入出力変数間の関数関係に基づいて、前記変換時系列データから出力時系列データを生成する関数近似手段（例えば、図１の関数近似部１３）とを備え、前記時系列データ変換手段と前記関数近似手段は、それぞれが有するパラメータを自律的に更新し、前記時系列データ変換手段は、入力データを１度に１個だけ受け付け、その１個の入力データに対応する出力データを１個だけ出力するモデル（例えば、図３の減衰緩衝変換部５１）であって、現時点の前記入力時系列データと前記モデルのパラメータの積と、前記モデルのパラメータを含む減衰項と前記モデルの直前の出力データとの積の和を演算することによって前記変換時系列データを演算する１個以上の前記モデルを有するデータ処理装置（例えば、図１のデータ処理装置１）である。
【００２２】
前記時系列データ変換手段は、前記入力時系列データを恒等変換する恒等変換手段（例えば、図５の恒等変換部７１）をさらに有することができる。
【００２３】
本発明の側面はまた、データ処理装置（例えば、図１のデータ処理装置１）のデータ処理方法（例えば、図２の学習処理方法）において、前記データ処理装置は、学習された特性に基づいて、入力時系列データを変換時系列データに変換する時系列データ変換手段（例えば、図１の時系列データ変換部１２）と、学習された入出力変数間の関数関係に基づいて、前記変換時系列データから出力時系列データを生成する関数近似手段（例えば、図１の関数近似部１３）とを備え、前記時系列データ変換手段と前記関数近似手段は、それぞれが有するパラメータを自律的に更新し、前記時系列データ変換手段は、入力データを１度に１個だけ受け付け、その１個の入力データに対応する出力データを１個だけ出力する１個以上のモデル（例えば、図３の減衰緩衝変換部５１）により、現時点の前記入力時系列データと前記モデルのパラメータの積と、前記モデルのパラメータを含む減衰項と前記モデルの直前の出力データとの積の和を演算することによって前記変換時系列データを演算するデータ処理方法である。
【００２４】
さらに本発明の側面は、入力データを１度に１個だけ受け付け、その１個の入力データに対応する出力データを１個だけ出力する１個以上のモデル（例えば、図３の減衰緩衝変換部５１）により、現時点の前記入力時系列データと前記モデルのパラメータの積と、前記モデルのパラメータを含む減衰項と前記モデルの直前の出力データとの積の和を演算して前記変換時系列データを演算することにより、学習された特性に基づいて前記入力時系列データを前記変換時系列データに変換する時系列データ変換ステップ（例えば、図２のステップＳ３）と、  学習された入出力変数間の関数関係に基づいて、前記変換時系列データから出力時系列データを生成する関数近似ステップ（例えば、図２のステップＳ４）と、前記時系列データ変換ステップと前記関数近似ステップの処理のパラメータを、それぞれ自律的に更新する更新ステップ（例えば、図２のステップＳ７）とを含む処理をコンピュータに実行させるプログラムである。
【００２５】
以下、図を参照して本発明の実施の形態について説明する。
【００２６】
図１は、本発明のデータ処理装置の一実施の形態の構成を示すブロック図である。このデータ処理装置１は、信号入力部１１、時系列データ変換部１２、関数近似部１３、および出力修正量演算部１４により構成されている。
【００２７】
信号入力部１１は観測信号を入力する。観測信号は、例えば音や画像の信号、ＬＥＤ（Light Emitting Diode）の明るさ、モータの回転角度や回転角速度などに関する信号であり、システムに入力される信号およびシステムが出力する信号のどちらも対象となる。
【００２８】
信号入力部１１は、例えば、観測信号が音の信号の場合はマイクに対応し、画像信号の場合はカメラに対応する。また、モータの回転角度や回転速度の計測装置なども、信号入力部１１に対応する。信号入力部１１は、観測信号をデジタル化、すなわち量子化・標本化し、入力時系列データとして出力する。
【００２９】
時系列データ変換部１２は、学習されたヒステリシス特性の下に、入力時系列データを変換時系列データに変換して出力する。ここで出力される変換時系列データは入力時系列データに対してヒステリシス特性を有し、入力時系列データのコンテキスト情報をエンコードしたしたものとなっている。
【００３０】
なお、変換時系列データは入力時系列データと同次元とは限らず、むしろ次元数は増大することが多い。ここで次元数を増やすことにより、後段の関数近似部１３での入出力データ間に１対１の関数関係を成立させるからである。
【００３１】
関数近似部１３は、学習された入出力変数間の関数関係に基づいて、時系列データ変換部１２より出力された変換時系列データから出力時系列データを生成するとともに、時系列データ変換部１２で変換された変換時系列データを入力として所望の出力を生成できるように入力と出力の関数関係を学習する。関数近似部１３で生成された出力時系列データは、利用可能であれば、所望のデータを定義する教師データとともに、ある評価関数の下で評価され、その評価結果に基づく出力修正量が出力修正量演算部１４で演算され、関数近似部１３にフィードバックされる。その出力修正量はさらに、関数近似部１３を経て時系列データ変換部１２へと逆伝播（フィードバック）される。
【００３２】
時系列データ変換部１２は、信号入力部１１から入力される入力時系列データ、自らの出力である変換時系列データ、および関数近似部１３からフィードバックされる出力修正量に基づいて学習を行い、コスト関数を最小化もしくは極小化するように、パラメータを自律的に更新する。
【００３３】
同様に、関数近似部１３は、時系列データ変換部１２から入力される変換時系列データ、自らの出力である出力時系列データ、および出力修正量演算部１４から供給される出力修正量に基づき、コスト関数を最小化もしくは極小化するように、パラメータを自律的に更新するとともに、入力された変換時系列データに対する修正量を計算する。
【００３４】
以下では、単純なロボットシステムにおけるセンサーモータ信号を観測信号の例として説明する。例えば、周囲環境の様子を知るための撮像装置および障害物までの距離を測定する距離センサを備えた車輪型移動ロボットを考える。
【００３５】
まず、撮像素子の輝度や距離情報をデジタル化した入力時系列データが信号入力部１１より時系列データ変換部１２へ入力される。ロボットの直前の車輪駆動指令値も同様に時系列データ変換部１２へ入力される。時系列データ変換部１２は、学習されたヒステリシス特性により、それぞれの入力を、異なる修飾をして、次元数を増やしながら出力する。この出力の中には、「距離が近くなってからまた遠くなった」、「一度止まってから前進した」、「輝度が定期的に増減する(点滅する)」などの各センサにおける時間的な情報がエンコードされている。
【００３６】
関数近似部１３は、これらの情報を元にロボットの次のアクション、具体的には左右車輪の駆動指令値を生成する。
【００３７】
これらの構成によれば、現在のセンサ値によって一意に決定される行動を単純に実行するだけの虫のようなロボットではなく、過去の観測行動履歴、さらには非観測事象に関する推定までも考慮にいれた適切な振る舞いを見せるロボットが実現できる。
【００３８】
勿論、この発明の応用範囲はロボットのみにとどまるものではない。
【００３９】
以上が、全体構成の概要に関する説明である。以下、構成要素について詳細に説明する。
【００４０】
時系列データ変換部１２の働きによって、入出力変数間に１対１の関数関係が存在しない、すなわち入力変数が同一であっても非観測の要因によって出力が左右され異なった結果を生むような問題を、関数関係の成立しうる通常の関数近似問題に変換することができる。重要なのは、ここで行われる変換が予め設計されている静的なものではなく、入力時系列データと出力時系列データとに基づき、自律的な適応によって変換のされ方が定まってくるという点である。
【００４１】
一般には、入力時系列データＸを変換して生成された出力時系列データに対して定義されるコスト関数を最小化または極小化するように時系列データ変換部１２と関数近似部１３の内部のパラメータを、次式で表すように更新することで上記適応は実現できる。
Update p to minimize Cost ( Output ( ConverterP ( Xinput )))  （１）
【００４２】
このパラメータの更新、すなわち学習処理について図２のフローチャートを参照してさらに説明する。
【００４３】
ステップＳ１において、時系列データ変換部１２と関数近似部１３は、それぞれの処理において使用するパラメータを初期化する。ステップＳ２において、信号入力部１１は時系列データを入力する。ステップＳ３において、時系列データ変換部１２は、信号入力部１１より供給された入力時系列データを変換する。その詳細は後述するが、例えば式（８）と式（９）に基づいて、入力時系列データが対応する変換時系列データに変換される。
【００４４】
ステップＳ４において、関数近似部１３は出力時系列データを計算する。すなわち、関数近似部１３は時系列データ変換部１２より供給された変換時系列データを、学習された関数関係に基づいて、出力時系列データに変換する。関数近似部１３が例えば３層フィードフォーワード型ニューラルネットワークにより構成される場合、変換時系列データと出力時系列データの関数関係が重み係数などのパラメータの値という形で保持されており、そのパラメータに応じて、変換時系列データが出力時系列データに変換される。
【００４５】
ステップＳ５において、出力修正量演算部１４は出力修正量を演算する。出力修正量は、コスト関数を所定の最適化法で最適化することで演算することができる。
【００４６】
例えば、出力時系列データの教師データが得られる場合、コスト関数として、次式で表されるように、出力時系列データと教師データとの誤差の二乗和を用いることができる。次の式において、y*_tは、時刻ｔの出力時系列データy_t の教師データを表す。
Cost(y_t)＝(1/2)×(y_t  y*_t)2       （２）
【００４７】
そして最適化法として最急降下法を用いる場合、出力修正量は次式で表されるように、コスト関数Cost(y_t)の微分値Cost’(y_t)の符号を反転して、学習率ρを乗算して演算することができる。
出力修正量＝−ρ×Cost’(y_t)      （３）
【００４８】
式（２）のコスト関数を微分すると次式が得られる。
Cost’(y_t) ＝ y_t  y*_t          （４）
式（４）を式（３）に適用すると、出力修正量は次式で表すことができる。
出力修正量＝−ρ×Cost’(y_t) ＝−ρ× (y_t  y*_t) 
＝ρ×(y*_t −y_t)          （５）
【００４９】
この出力修正量は関数近似部１３に供給され、関数近似部１３では、それを反映するように内部パラメータを更新する。その際、入力された時系列データ、すなわち、時系列データ変換部１２の出力に対する出力修正量の計算も同時に行なうことができる。
【００５０】
たとえば、関数近似部１３で表現される関数を f(p,x) として、内部パラメータ p をΔp = ∂f/∂p・Δf で更新すると共に、入力 x に対する修正量Δx = ∂f/∂x・Δf を計算する。ただし、Δf は関数近似部１３の出力に対して計算された式（３）の出力修正量である。
【００５１】
次に時系列データ変換部１２は、関数近似部１３からフィードバックされた出力修正量Δx を反映するように、その内部パラメータを更新する。
【００５２】
ステップＳ６において、時系列データ変換部１２は内部で演算に使用しているパラメータが最適かどうかを判定する。パラメータが最適か否かは、出力修正量をこれ以上減らすことができるかどうかで判定される。パラメータが最適ではない場合（出力修正量の期待値が依然として大きい場合）、ステップＳ７において、時系列データ変換部１２は最適になるようにパラメータを更新する。すなわち、出力時系列データに対して定義されるコスト関数を最小化もしくは極小化するようにパラメータが更新される。パラメータが最適である場合（経験的に期待される出力修正量がほとんど０となった場合）、ステップＳ７の処理はスキップされる。
【００５３】
ステップＳ６において、パラメータが最適であると判定された場合、およびステップＳ７の処理の後、処理はステップＳ２に戻り、それ以降の処理が繰り返される。
【００５４】
ステップＳ６とステップＳ７の処理は、関数近似部１３においても同様に行われ、そのパラメータが更新される。
【００５５】
なお、以上においては、教師データがある場合について説明したが、教師データがない場合には、コスト関数を所定の最適化法で最適化することで出力修正量を演算することができる。
【００５６】
まず、コスト関数の全貌が明らかで、その最小値(または極小値)を与えるような出力時系列データが最適化計算によって求められる場合は教師データが与えられた場合と事実上同じである。任意の最適化手法を用いて、最適な出力時系列データを計算し、それを仮想的な教師データとして扱えばよい。
【００５７】
それに対し、コスト関数それ自体も学習しなくてはならない場合は、逐次最適化によって出力時系列データを少しずつ修正していくより他にない。たとえば最急降下法であれば、現出力時系列データ近傍でのコスト関数の傾きを用いて式（３）の通り、出力修正量を計算する。
【００５８】
この修正は局所的・逐次的なものであるため、解が収束するまで十分多くの反復を必要とする。コスト関数の傾き計算には、傾きに関する関数の直接計算、あるいは現出力時系列データ近傍でのコスト関数出力値を用いた数値計算などの方法が考えられる。
【００５９】
以上説明したように、入力時系列データとしての入力変数Ｘは、パラメータ p によって制御されるヒステリシス特性を持つ時系列データ変換部１２によって変換時系列データに変換され、さらに関数近似部１３の関数関係に基づいて出力時系列データに変換される。そして、その出力時系列データから計算できるコストを最適化するようにパラメータ p が自律的に更新される。
【００６０】
パラメータ更新の方法としては、最急降下法の他、可変計量法、自然勾配法、共役勾配法、滑降シンプレックス法、遺伝的アルゴリズム、その他、任意の最適化手法が利用できる。
【００６１】
なお、以上においては、関数近似部１３のパラメータと時系列データ変換部１２のパラメータを逐次個別に最適化するようにしたが、両者全体を１つの系と見て、全パラメータを同時に最適化してもよい。
【００６２】
また、関数近似部１３からの出力時系列データが入力時系列データの予測値となるように系を構成することもでき、その場合、図２の学習処理を行う学習装置としてのデータ処理装置１は、学習されたパラメータに基づき所定の予測を行う予測装置でもある。
【００６３】
ここで、例えば、次式で示される入力時系列データから、n ステップ先のデータ x(t+n) を予測する時系列データの予測問題を考える。
｛ｘ（ｔ），ｘ（ｔ−１），ｘ（ｔ−２），・・・｝    （６）
【００６４】
この場合は正しい出力、すなわち教師データが定義できるので、コスト評価を単純に二乗誤差の期待値だとすればよく、次式で示される目的関数を最小化するように時系列データ変換部１２の内部のパラメータ p を学習することになる。
【００６５】
【数１】
2009116770.tif 000003
【００６６】
上記式（７）において、^ は予測値を示す修飾子を表し、Ｎは学習サンプル数を表す。なお、ここでは予測問題を例にとって説明しているが、本発明の適用範囲は単なる時系列予測にとどまるものではない。
【００６７】
本発明の実施の形態においては、上述したように、時系列データ変換部１２を学習可能な内部のパラメータでモデル化し、それをコスト関数の最小化または極小化の観点で最適化するのであるが、このため、時系列データ変換部１２には以下に説明する減衰緩衝変換部が設けられる。
【００６８】
図３に示すように、モデルとしての減衰緩衝変換部５１は、入力を x、出力を y として、あるパラメータγ(0≦γ≦1)のもとで、式（８）の更新則により、式（９）に従って、１入力を１出力に変換する。
Δｙt＝γ（ｘt−ｙt-1）      （８）
ｙt＝ｙt-1 ＋Δｙt            （９）
出力ｙtは、γ= 0 の極限では定数（直前の出力ｙt-1）に、またγ= 1 の極限では入力 ｘt に一致する。
【００６９】
減衰緩衝変換部５１は、入力データを１度に１つだけ受け付け、１度に複数の入力データは受け付けない。出力データも１つだけである。勿論、１つの同じ出力データを後段の複数の処理部がそれぞれ利用することができるが、それは出力データが複数個であることを意味するものではない。
【００７０】
式（８）を式（９）に代入し、γをパラメータｐの関数であることを表すγ（ｐ）と表現すると、次の式（１０）が得られる。またｓは、内部状態の変数であることを表している。
ｙt＝ｘtγ（ｐ）＋ｓt（１−γ（ｐ））    （１０）
ｓt+1＝ｙt                              （１１）
【００７１】
式（１０）と式（１１）より明らかなように、出力ｙtは過去の直前の出力ｙt-1（＝ｓt）に基づき決定されることになるので、減衰緩衝変換部５１の変換特性は、ヒステリシス特性を有する。
【００７２】
現時点の入力時系列データの値と、直前の変換時系列データの値の、モデルのパラメータによる重み付き線形和によって変換時系列データを演算することで、より具体的には、現時点の入力時系列データとモデルのパラメータの積と、モデルのパラメータを含む減衰項とモデルの直前の出力データとの積の和を演算することで、パラメータの数を減らすことができる。従って、迅速かつ安定な学習が可能となり、実時間でのオンライン学習も可能となる。
【００７３】
なお、式（１０）において、γ（ｐ）は単調関数とされる。非単調関数にすると学習が困難になるからである。減衰項（１−γ（ｐ））は、系を減衰させる機能を有し、一般的にはｇ（γ（ｐ））と表すことができる。ｇ（γ（ｐ））が０より小さいと、系が振動系になり、不安定になるか、出力０に向かって収束する。従って非実用的である。ｇ（γ（ｐ））が０である場合、図５を参照して後述する恒等変換部７１として機能する。
【００７４】
ｇ（γ（ｐ））が１より大きくなると、時間の経過に伴って出力が無限大に発散し、非実用的となる。ｇ（γ（ｐ））が１である場合にも、γ（ｐ）＝０以外で出力が発散する。
【００７５】
従って、内部状態ｓtを減衰する減衰項であるｇ（γ（ｐ））は、０以上、かつ１より小さい値とする。
【００７６】
減衰緩衝変換部５１が行う減衰緩衝処理を詳細に説明すると、図４に示されるようになる。
【００７７】
ステップＳ２１において、減衰緩衝変換部５１は現時点の入力時系列データｘtと減衰緩衝変換部５１のパラメータγとの積γｘtを演算する。ステップＳ２２において、減衰緩衝変換部５１は減衰項と直前の出力との積を演算する。すなわち、１からパラメータγを減算した減衰項（１−γ）と、直前の出力時系列データｙt-1との積（１−γ）ｙt-1が演算される。
【００７８】
ステップＳ２３において、減衰緩衝変換部５１は２つの積の和を演算する。これにより、式（１０）が演算される。ステップＳ２４において、減衰緩衝変換部５１は、ステップＳ２３において演算した２つの積の和を記憶する。この記憶された値ｙt（＝γｘt＋（１−γ）ｙt-1）が、次回のステップＳ２２における処理で、直前の出力の値として用いられる。
【００７９】
なお、パラメータγの範囲 [0, 1] は正規化の都合上設けたもので、出力 y をさらに定数倍する自由度を考慮すれば、パラメータγの取りうる値に本質的な制約は何もないと考えてよい。
【００８０】
減衰緩衝変換部５１は図２に示した学習基本アルゴリズムに沿って学習を行う。
【００８１】
まず、パラメータγの学習について説明する。パラメータγは直接学習しても良いが、なんらかの非線型単調関数を通じてγと相互に写像関係をもつ（１対１対応の）パラメータ p を学習することもできる。すなわち、パラメータを、重み係数そのものではなく、重み係数をある単調関数で写像したものとすることができる。この場合、変換に用いる単調関数を恒等写像、すなわち γ= p とすれば、これはパラメータγの直接学習と等価であるため、この枠組みの方がより広い一般性を持つことは明らかである。
【００８２】
直前の出力値ｙt-1を内部状態 ｓ（ｔ） として取り扱う場合、減衰緩衝変換部５１の図２のステップＳ３において行う式（１０）の演算は、入力 x、出力 y、内部状態 s、パラメータ p を用いて次式のように定式化できる。ただし、０≦γ（ｐ）≦１である。
ｙt＝ｓt＋（ｘt−ｓt）γ（ｐ）    （１２）
ｓt+1＝ｙt                        （１３）
【００８３】
このとき、ある入力シーケンスのもとで減衰緩衝変換部５１に期待される出力 y* が与えられるとすれば、たとえば最急降下法に基づく学習をおこなう場合、出力誤差ε= y  y* を用いてパラメータ p の出力修正量としての更新量Δｐは次式で計算できる。ここでρは学習率である。
【００８４】
【数２】
2009116770.tif 000004
【００８５】
単調関数γ(p) のバリエーションとそのときの更新量Δｐをいくつか挙げると次のようになる。
【００８６】
【数３】
2009116770.tif 000005
【００８７】
それぞれ一長一短があるが、多くのケースでは式（１９）のSigmoid 型のパラメータ表現が適切だと考えられる。
【００８８】
以上、減衰緩衝変換部５１の出力誤差εからパラメータ p の更新量を決定するアルゴリズムを説明した。
【００８９】
次に内部状態 s の更新について説明する。便宜的に別のアルファベットｓを用いて表記したが、概念的にはこのｓも減衰緩衝変換部５１の内部パラメータであり、従って学習可能である（ただし、ｓを直前の出力値ｙt-1をもって代用し、必ずしも学習しなくとも良い）。学習する場合、その学習則は次式のようになる。
【００９０】
【数４】
2009116770.tif 000006
【００９１】
単調関数γ(p) のバリエーションについては、式（１５）乃至式（１９）に示した場合と同様である。
【００９２】
なお、ここでは最急降下法に基づくパラメータの個別最適化を例示したが、もちろんその他の最適化手法を用いることができる。その他の手法の多くでは、上に示したような個々のパラメータの個別更新ではなく、複数のパラメータの同時更新となるが、その更新式は先に示した減衰緩衝変換部５１の定式化から直接導くことができるので、その説明は省略する。また、ここでの説明は１サンプルごとにパラメータを逐次更新する場合の挙動を述べたものであるが、もちろん多数のサンプルセットをまとめて評価し、それら全体に対して最適となるようにパラメータを更新するバッチ型の学習であっても本質的な部分はまったく同様である。
【００９３】
上述した減衰緩衝変換部５１を１つだけ用いると、図５に示されるように、時系列データ変換部１２を最も単純に構成することができる。この時系列データ変換部１２は、恒等変換部７１と減衰緩衝変換部５１とにより構成され、１次元入力 x から、次のようにして、２次元の出力 yが生成される。
ｙ0＝ｘ                        （２１）
ｙ1＝γｘ＋（１−γ）ｓ        （２２）
【００９４】
恒等変換部７１は式（２１）の恒等演算を行う。すなわち、恒等変換部７１は入力ｘをそのまま出力ｙ0に恒等変換する。実質的には入力がスルーされるだけなので、恒等変換部７１は1本の信号供給線だけで構成することができる。
【００９５】
この図５の時系列データ変換部１２の時系列データ変換処理は図６に示されるようになる。
【００９６】
ステップＳ３１において、恒等変換部７１は入力を恒等的に変換する。すなわち、入力ｘがそのまま出力ｙ0として出力される。ステップＳ３２において、減衰緩衝変換部５１により減衰緩衝演算処理が行われる。減衰緩衝演算処理の詳細は、図４を参照して説明した通りである。なお、実際には、ステップＳ３１とステップＳ３２の処理は、並行して実行される。
【００９７】
図７に示されるように、複数の減衰緩衝変換部５１を並列配置して時系列データ変換部１２を構成することもできる。この実施の形態においては、減衰緩衝変換部５１が、１個の恒等変換部７１とｎ個の減衰緩衝変換部５１−１乃至５１−ｎにより構成されている。これにより、次式に示されるように、１次元入力 x から n+1 次元の出力 y が生成される。
ｙ0＝ｘ                            
ｙ1＝γ1ｘ＋（１−γ1）ｓ1 
ｙ2＝γ2ｘ＋（１−γ2）ｓ2 
・
・
ｙn＝γnｘ＋（１−γn）ｓn 
（２３）
【００９８】
この減衰緩衝変換部５１の時系列データ変換処理は図８のフローチャートに示されるようになる。
【００９９】
ステップＳ５１において、恒等変換部７１は入力を恒等的に変換する。すなわち、入力ｘがそのまま出力ｙ0として出力される。ステップＳ５２において、減衰緩衝変換部５１−１により減衰緩衝演算処理が行われ、出力ｙ1（＝γ1ｘ＋（１−γ1）ｓ1）が出力される。減衰緩衝演算処理の詳細は、図４を参照して説明した通りである。ステップＳ５３において、減衰緩衝変換部５１−２により減衰緩衝演算処理が行われ、出力ｙ2（＝γ2ｘ＋（１−γ2）ｓ2）が出力される。
【０１００】
以下同様に、減衰緩衝変換部５１−３乃至減衰緩衝変換部５１−ｎにより減衰緩衝演算処理が行われる。
【０１０１】
なお、実際には、ステップＳ５２以降の処理は、ステップＳ５１の処理と並行して実行される。
【０１０２】
このような構成では、学習の結果、それぞれの減衰緩衝変換部５１乃至減衰緩衝変換部５１−ｎが異なる内部パラメータ、そして異なる内部状態を持つことによって、より複雑な時系列コンテキストを表現できるようになる。
【０１０３】
なお、恒等変換部７１は省略することができる。この場合、減衰緩衝変換部５１−１乃至減衰緩衝変換部５１−ｎのうちの１つあるいはいくつかが、実質的に恒等変換部７１と同様の機能を果たすように学習されることになる。もし、このような恒等変換部の必要性が予め分かっているのであれば、恒等変換部７１を設けた方が構成を簡略化することができることは確かである。一方、恒等変換部７１を省略した場合、各処理経路を同じ構成とすることができるし、そもそも恒等変換自体が必要でないケースでは、その処理を行わなくても済むという利点がある。
【０１０４】
減衰緩衝変換部の学習において、問題の複雑度がそれほど大きくない場合は、複数のパラメータがほぼ同じ値に収束し、系全体の自由度を下げることは良くある。本発明におけるこのような学習の安定性は非常に大きな魅力である。
【０１０５】
一方、図９に示されるように、減衰緩衝変換部５１を直列に配置することもできる。この図では２つの減衰緩衝変換部５１ｆと減衰緩衝変換部５１ｂが直列に接続されている。1段目の減衰緩衝変換部５１ｆの出力ｕは次式で示される。γ1，ｓ1は減衰緩衝変換部５１ｆのパラメータである。
ｕ＝γ1ｘ＋（１−γ1）ｓ1        （２４）
２段目の減衰緩衝変換部５１ｂの出力ｙは次式で示される。γ2，ｓ2は減衰緩衝変換部５１ｂのパラメータである。
ｙ＝γ2ｕ＋（１−γ2）ｓ2        （２５）
【０１０６】
この構成による減衰緩衝演算処理は図１０のフローチャートに示されるようになる。
【０１０７】
最初に減衰緩衝変換部５１ｆは、ステップＳ８１乃至ステップＳ８４の第1の減衰緩衝演算処理を実行する。すなわち、ステップＳ８１において、減衰緩衝変換部５１ｆは入力ｘとパラメータγ1との積を演算する。ステップＳ８２において、減衰緩衝変換部５１ｆは減衰項と直前の出力との積を演算する。すなわち、減衰項（１−γ1）と、直前の出力ｓ1との積が演算される。
【０１０８】
ステップＳ８３において、減衰緩衝変換部５１ｆは２つの積の和を演算する。これにより、式（２４）が演算される。ステップＳ８４において、減衰緩衝変換部５１ｆは、ステップＳ８３において演算した２つの積の和を記憶する。この記憶された値が、次回のステップＳ８２における処理で直前の出力として用いられる。
【０１０９】
次に減衰緩衝変換部５１ｂは、ステップＳ８５乃至ステップＳ８８の第２の減衰緩衝演算処理を実行する。すなわち、ステップＳ８５において、減衰緩衝変換部５１ｂは前段の減衰緩衝変換部５１ｆからの入力ｕとパラメータγ2との積を演算する。ステップＳ８６において、減衰緩衝変換部５１ｂは減衰項と直前の出力との積を演算する。すなわち、減衰項（１−γ2）と、直前の出力ｓ2との積が演算される。
【０１１０】
ステップＳ８７において、減衰緩衝変換部５１ｂは２つの積の和を演算する。これにより、式（２５）が演算される。ステップＳ８８において、減衰緩衝変換部５１ｂは、ステップＳ８７において演算した２つの積の和を記憶する。この記憶された値が、次回のステップＳ８６における処理で直前の出力として用いられる。
【０１１１】
このような構成をとることで、内部パラメータの組み合わせによっては、入力履歴に対して非単調な重み付けで応答する成分を生成することができる。このような性質は１つの減衰緩衝変換部５１だけでは作りえないため、非常に効果的である。なお、３つ以上の減衰緩衝変換部５１を直列接続しても応答の複雑さはさほど変わらないため、パラメータ数の増加に見合うほどの効果は得られないことが多い。しかし、このことは、必ずしも３つ以上の直列接続を妨げるものではない。
【０１１２】
さらに、図１１に示されるように、減衰緩衝変換部５１を直列かつ並列に複数組み合わせることで、多様な特性を持つ新しい時系列データ変換部を構成することが可能である。
【０１１３】
この実施の形態の場合、時系列データ変換部１２は、恒等変換部７１、並びにそれに対して並列に接続された、ｎ組の減衰緩衝変換部５１ｆ−１と減衰緩衝変換部５１ｂ−１乃至減衰緩衝変換部５１ｆ−ｎと減衰緩衝変換部５１ｂ−ｎにより構成されている。
【０１１４】
この実施の形態の時系列データ変換処理は図１２のフローチャートに示されるようになる。
【０１１５】
ステップＳ１０１において、恒等変換部７１は入力を恒等的に変換する。すなわち、入力ｘがそのまま出力ｙ0として出力される。ステップＳ１０２において、減衰緩衝変換部５１ｆ−１により第1の減衰緩衝演算処理（すなわち、図１０のステップＳ８１乃至ステップＳ８４の処理）が行われ、式（２４）の出力ｕが演算される。ステップＳ１０３において、減衰緩衝変換部５１ｂ−１により第２の減衰緩衝演算処理（すなわち、図１０のステップＳ８５乃至ステップＳ８８の処理）が行われ、式（２５）の出力ｙが演算される。
【０１１６】
ステップＳ１０４において、減衰緩衝変換部５１ｆ−２により第1の減衰緩衝演算処理が行われ、式（２４）の出力ｕが演算される。ステップＳ１０５において、減衰緩衝変換部５１ｂ−２により第２の減衰緩衝演算処理が行われ、式（２５）の出力ｙが演算される。
【０１１７】
以下、同様の処理が減衰緩衝変換部５１ｆと減衰緩衝変換部５１ｂの各対により実行される。
【０１１８】
このように、減衰緩衝変換部５１を直列に２つ接続し、それらをさらに並列に任意数配置することで、実用上広い範囲の問題に適合することが可能となる。
【０１１９】
なお、この実施の形態においても、恒等変換部７１を省略することができる。また、適宜、第３、第４・・・の直列接続される減衰緩衝処理を設けても良い。
【０１２０】
本発明が解こうとしている問題は、本質的には、隠れ変数を持つ関数近似問題である。たとえば、多変数関数
ｙ＝ｆ（ｘ1，ｘ2，ｘ3，・・・，ｘn）        （２６）
において、y と x1のみが観測できるとした場合に、x1 のみから y を決定する関係式
ｙ＝ｇ（ｘ1）                                （２７）
を学習によって獲得するという問題である。一見して分かるように、このような問題は何の仮定もなく解くことはできない。
【０１２１】
そこで、観測変数ｘ1はいつでも自由に任意の値を取れる変数ではなく、何らかの時空間的構造に束縛されているものと仮定する。言い換えれば、変数ｘ1 の時系列的な変化には常に何らかの意味があり、背後の隠れ変数群ｘ2，ｘ3，・・・の挙動に関する手がかりを与えるものと考える。より具体的に言えば、観測時系列 {ｘ1, y } の振る舞いは背後に隠れている変数ｘ2，ｘ3，・・・の時系列変化の影響を受けているが、逆にまた、ｘ2，ｘ3，・・・の時間的な振る舞いも、それら自身の時系列変化ばかりでなく、{ｘ1, y } の時系列変化の影響下にあると考える。現実世界ではこのような関係はごく自然なものである。
【０１２２】
この結果、{ｘ1, y } の時系列変化を長期間観測することで、隠れ変数ｘ2，ｘ3，・・・の変化に関する仮説を形成し、さらにそれを用いて {ｘ1, y } の時系列変化について推測する、といったようなことが可能になる。
【０１２３】
数学的には以下のように解釈できる。すなわち、次式の力学系方程式に支配される変数 z を考える。なお、次式の左辺は、ｚの時間微分を意味する。
【０１２４】
【数５】
2009116770.tif 000007
【０１２５】
このとき変数 z は次式で表される位相空間内で決して交わらない軌跡を描く。
【０１２６】
【数６】
2009116770.tif 000008
【０１２７】
このときこの軌跡を表現する（この軌跡と等価な）次の関数を考えることができる。
ｙ＝ｆ（ｘ）＝ｆ（ｘ1，ｘ2，ｘ3，・・・，ｘn）        （３０）
【０１２８】
変数 x はこの軌跡上に束縛されているため、位相空間内での遷移は厳しく制約されており、その自由度は１しかない。
【０１２９】
ここで、n 次元位相空間中の１軸、x1 のみの観測から x 全体の描く軌跡(アトラクタ)の性質を分析することを考える。このような問題を一般にアトラクタの再構成問題と呼ぶが、これまでの考察を踏まえると、実はこれは隠れ変数を持つ関数近似問題と非常に深い関係にあると考えられる。
【０１３０】
アトラクタの再構成問題においては Takens の埋め込み定理というものが知られている。これは、d 次元位相空間内でアトラクタを構成する軌跡に関して、ある次元 x1 の時系列信号のみが観測できるとき、次式で表される時間遅れ τを用いた 2d+1 次元座標を用いれば、もとのアトラクタと微分同相のアトラクタを再構成することができる、というものである。
【０１３１】
【数７】
2009116770.tif 000009
【０１３２】
さらにこの定理を拡張すると、Ｘを線形変換して得られる次式を用いてもアトラクタの再構成が可能であることが分かる。
Y=AX          （３２）
ただし、Ａの階数は 2d+1 以上であるものとする。従って、次式の変換において適切な係数Ck を選び、式（３２）のＡ が階数 2d+1 以上となるように十分多様なバリエーションの y を準備すれば、それらを用いてアトラクタの再構成ができることになる。
【０１３３】
【数８】
2009116770.tif 000010
【０１３４】
ここで、係数Ck を次式で表すようにして 2d+1 次元ベクトル Y を生成すれば、これは Takens の埋め込み定理そのものである。
【０１３５】
【数９】
2009116770.tif 000011
【０１３６】
一方、係数Ckを次式で表すようにすれば、今度は減衰緩衝変換部５１の出力と一致することが分かる。
【０１３７】
【数１０】
2009116770.tif 000012
【０１３８】
図１３と図１４は、これらの係数の具体例を示す。図１３において、横軸は式（３４）（従って、式（３３））のｋを表し、縦軸は式（３４）の係数Ckを表す。図１３Ａ乃至図１３Ｄは、式（３４）のτの値が４で、i = 0, 1, 2, 3 の場合をそれぞれ例示している。
【０１３９】
図１４において、横軸は式（３５）（従って、式（３３））のｋを表し、縦軸は式（３５）の係数Ckを表す。図１４Ａ乃至図１４Ｄは、式（３５）のγの値が、それぞれ０．７，０．５，０．３または０．１である場合を表している。
【０１４０】
まとめると、十分な次元数を持つ時間遅れ座標系（図１３）によってアトラクタを再構成できるのと同じように、減衰緩衝変換部５１の組み合わせ（図１４）によってもアトラクタの再構成が可能である。
【０１４１】
次に、減衰緩衝変換部５１を直列に接続した場合の結果について説明する。減衰パラメータγ1の減衰緩衝変換部５１ｆと、減衰パラメータγ2の減衰緩衝変換部５１ｂを直列に接続すると、係数Ckは次式のように計算できる。
【０１４２】
【数１１】
2009116770.tif 000013
【０１４３】
このときの係数の具体例は図１５に示したとおりである。図１５において、横軸は式（３６）（従って、式（３３））のｋを表し、縦軸は式（３６）の係数Ckを表す。図１５Ａ乃至図１５Ｄは、（γ1，γ2）が、それぞれ（０．０７，０．１５），（０．２，０．２），（０．４，０．５）、または（０．７，０．７）である場合を表している。
【０１４４】
３段以上の減衰緩衝変換部５１を直列に接続した場合の効果についても同様に計算できるが、係数列の形状はそれほど大きく変化しない。たとえば、３つの減衰緩衝変換部５１を直列接続した場合の係数は次式のように表すことができるが、この性質は前記２段接続の場合とそれほど変わらない。
【０１４５】
【数１２】
2009116770.tif 000014
【０１４６】
よって、パラメータ数の無意味な増加を防ぐ観点からも、減衰緩衝変換部５１の直列接続は２段とするのが好ましい。ただし、３段以上の接続を妨げるものではない。なお、１つの減衰緩衝変換部５１で十分なところに２つの減衰緩衝変換部５１を直列に接続して用いた場合、片方のパラメータが１に収束し、結果的に１つの減衰緩衝変換部５１と全く同じ挙動を示すようになって安定することが、実験的に分かっている。このことからも２段の直列接続が一般的に好ましいと考えられる。
【０１４７】
以上をまとめ、より一般的な見方をすると、隠れ変数を持つ関数近似問題を解くには、結局のところ、観測時系列 X から式（３３）によってアトラクタ再構成空間 Y を構成するための係数列 { Ck } を何らかの方法で最適に決定できれば良いということになる。実用上は、係数Ck を直接学習するのではなく、係数列 { Ck } を何らかの方法でパラメタライズしておくことで学習空間を制約し、学習可能な設定に変換するはずであるが、本発明の実施の形態では、減衰緩衝変換部５１を直列と並列に組み合わせる構成により、少ないパラメータと柔軟な表現を両立させ、そのすぐれたバランスによって実時間での安定的な適応と高いパフォーマンスを実現したということになる。
【０１４８】
以上に説明した減衰緩衝変換部５１は、基本的に１入力に対して定義されているものであるが、これを、次式で表されるように、多入力に拡張することも可能である。
【０１４９】
【数１３】
2009116770.tif 000015
【０１５０】
ところが、これは次式で表されるように、個別の入力に対する仮想的な１入力減衰緩衝変換部５１の出力の線形和で表すことができるので、両者に本質的な違いはない。
【０１５１】
【数１４】
2009116770.tif 000016
【０１５２】
つまり、各入力に対して１入力の時系列データ変換部１２を割り当て、後段の関数近似部１３で統合処理を行う構成は非常に一般的な適用範囲を持つものであることが分かる。
【０１５３】
関数近似部１３は、変換された信号を入力として所望の出力を生成できるように入出力間の関数関係を、図２を参照して説明したように学習する。関数近似部１３としては、任意の手法を用いてよく、その学習アルゴリズムについても同様である。たとえば、３層フィードフォーワード型ニューラルネットワーク、サポートベクトルリグレッション(ＳＶＲ)、ＲＢＦ（Radial Basis Function）ネットワークなどを使用することができる。
【０１５４】
ただし、入力、すなわち、前段の時系列データ変換部１２に対して入力誤差をフィードバックすることだけが必要である。これは減衰緩衝変換部５１の学習のために必須である。
【０１５５】
関数近似部１３の関数関係の式を次式のようにおく。
ｙ＝ｆ（ｘ）＝ｆ（ｘ1，ｘ2，ｘ3，・・・）        （４０）
教師データに基づく出力誤差をεとすれば、i番目の入力に対する誤差の伝播は、次式で計算できる。
【０１５６】
【数１５】
2009116770.tif 000017
【０１５７】
この誤差は該当する時系列データ変換部１２(減衰緩衝変換部５１)へ伝播され、そこで時系列データ変換部１２の学習プロセスが実行されることになる。
【０１５８】
関数近似部１３の学習と時系列データ変換部１２の学習の関係にはいろいろなパターンが考えられる。関数近似部１３だけで独立してパラメータ更新を行い、入力誤差を計算して時系列データ変換部１２にフィードバックするのが一番簡単であり、実際この方法で十分うまく動作する。しかし、関数近似部１３と時系列データ変換部１２を結合して、１つの系（図１のパラメータ演算部２１）であると考え、全てのパラメータを同時に最適化する方法もあり、この方が収束は早いが、計算量や問題の複雑さに応じたトレードオフとなる。複数のパラメータを同時に最適化する場合は自然勾配法や可変計量法およびその亜種を用いることができる。
【０１５９】
図１６にローレンツアトラクタを示す。ローレンツアトラクタは有名なストレンジアトラクタの１つであり、３変数 (x, y, z) がパラメータ（ρ,ｒ,ｂ）の下で次の関係式に従って変化するとき、その軌跡は図１６に示されるように変化する。図１７はその場合における座標値の一例を表す。図１７A乃至図１７Cの縦軸は、ｘ、ｙ、ｚの座標値をそれぞれ表し、横軸は時間を表す。
【０１６０】
【数１６】
2009116770.tif 000018
【０１６１】
図１８に示される構成の時系列データ変換部１２および関数近似部１３により、ローレンツアトラクタの変数 x のみを観測し、x, y、 あるいは z を予測する問題を解かせたところ、十分な時間の学習の後、精度良く予測をおこなうことができるようになった。この実施の形態においては、時系列データ変換部１２として、減衰緩衝変換部５１−１１ｆと減衰緩衝変換部５１−１１ｂを直列接続した組と、減衰緩衝変換部５１−１２ｆと減衰緩衝変換部５１−１２ｂを直列接続した組を、並列に接続したものを用い、関数近似部１３として、中間層がノード７１−１乃至７１−５の５個のノードで、出力層がノード７１−６，７１−７の2個のノードのSigmoid 関数による３層フィードフォーワード型ニューラルネットワークを用いた。
【０１６２】
入力ｘは、減衰緩衝変換部５１−１１ｆ、減衰緩衝変換部５１−１２ｆ、並びにノード７１−１乃至７１−５に供給されている。減衰緩衝変換部５１−１１ｆの出力は減衰緩衝変換部５１−１１ｂに供給され、減衰緩衝変換部５１−１１ｂの出力は、ノード７１−１乃至７１−５に供給されている。減衰緩衝変換部５１−１２ｆの出力は減衰緩衝変換部５１−１２ｂに供給され、減衰緩衝変換部５１−１２ｂの出力は、ノード７１−１乃至７１−５に供給されている。
【０１６３】
ノード７１−１乃至７１−５の出力は、それぞれノード７１−６とノード７１−７に供給されている。この例ではノード７１−６から出力ｙが、ノード７１−７から出力ｚが、出力されている。
【０１６４】
予測期間として１ステップ先、３ステップ先、１０ステップ先などいくつかのパターンを試したところ、数ステップ先まではどれも高い性能を示した。一方、あるステップ(サンプリング間隔に依存する)から先は急速に性能が悪化し、ほとんど予測は不能であった。しかし、これはカオスが本質的に持つ予測不能性によるものである。
【０１６５】
図１９に示される構成の時系列データ変換部１２と関数近似部１３を有するデータ処理装置１を、図２０に示される先端に錘９２が結合されている剛体振子９１の振り上げ問題に適用した。これは、剛体振子に対して小さなトルクのみを印加しつつ、次第にその振幅を増やし、最終的には振子９１の棒状部分の錘９２と反対側の端部を支点としてこれを倒立させて頂上で静止させる問題である。以下、θ[rad] は振り子の位置を表す角度で、θ=0 で真下の位置を表し、その加速度はω[rad/sec]、τ[Nm] は振り子に印加されるトルクを表すものとする。
【０１６６】
図１９の実施の形態においては、時系列データ変換部１２として、減衰緩衝変換部５１−２１ｆと減衰緩衝変換部５１−２１ｂを直列接続した組と、減衰緩衝変換部５１−２２ｆと減衰緩衝変換部５１−２２ｂを直列接続した組を、並列に接続したものを用い、関数近似部１３として、中間層がノード７１−２１乃至７１−２５の５個のノードで、出力層がノード７１−２６，７１−２７の2個のノードのSigmoid 関数による３層フィードフォーワード型ニューラルネットワークを用いた。
【０１６７】
入力θは、減衰緩衝変換部５１−２１ｆ、並びにノード７１−２１乃至７１−２５に供給されている。減衰緩衝変換部５１−２１ｆの出力は減衰緩衝変換部５１−２１ｂに供給され、減衰緩衝変換部５１−２１ｂの出力は、ノード７１−２１乃至７１−２５に供給されている。
【０１６８】
入力τは、減衰緩衝変換部５１−２２ｆ、並びにノード７１−２１乃至７１−２５に供給されている。減衰緩衝変換部５１−２２ｆの出力は減衰緩衝変換部５１−２２ｂに供給され、減衰緩衝変換部５１−２２ｂの出力は、ノード７１−２１乃至７１−２５に供給されている。
【０１６９】
ノード７１−２１乃至７１−２５の出力は、それぞれノード７１−２６とノード７１−２７に供給されている。ノード７１−２６から出力θが、ノード７１−２７から出力τが、出力されている。
【０１７０】
このタスクで特徴的なのは、振子９１の角速度ωは観測できず、ただ、位置θのみが与えられるとしている点である。本来、振子９１の振り上げ制御には位置θのみならず角速度ωの情報が必須であるが、学習時と制御時の、どの時点においても、振子９１を駆動するコントローラに対してこの情報が与えられることはない。
【０１７１】
この振子９１を振り上げるためのシーケンスは、例えば図２１と図２２に示すようなものである。これらの図は、印加するトルクτ、振子の位置θ、および角速度ωの関係を表している。図２１Aの縦軸はトルクτ、右下がりの軸は位置θ、右上がりの軸は角速度ωを表している。図２１Bの縦軸はトルクτ、水平の軸は角速度ω、右上がりの軸は位置θを表している。
【０１７２】
図２２Aにおいて、縦軸はトルクτ、横軸は位置θを表し、図２２Bにおいて、縦軸は角速度ω、横軸は位置θを表し、図２２Cにおいて、縦軸はトルクτ、横軸は角速度ωを表している。
【０１７３】
ここでは、実際には角速度ωは非観測の変数であるため、トルクτを位置θのみの関数で表現することが求められている。これらの図より明らかなように、位置θとトルクτの間には、１対１の関数関係は全く成立しない。
【０１７４】
なお、教師として与えるコントロールシーケンスは、次式を満たすようなトルクτの時系列シーケンスである。
【０１７５】
【数１７】
2009116770.tif 000019
【０１７６】
上記式におけるＥ，ｄＥ／ｄｔは、それぞれ次式で表される。ｍは振子９１の質量（棒状部分の質量はないものとしているので、錘９２の質量）、ｌは振子９１の長さ（より正確には、支点と重心間の距離）、ｇは重力加速度、Dは空気抵抗、支点部での摩擦などをまとめた抵抗係数を表している。
【０１７７】
【数１８】
2009116770.tif 000020
【０１７８】
図２３のフローチャートを参照して、振子問題の学習処理を説明する。まず、ステップＳ１５１において、時系列データ変換部１２と関数近似部１３よりなるパラメータ演算部２１は、観測値である位置θおよび１ステップ前の出力であるトルクτを入力する。次にステップＳ１５２において、パラメータ演算部２１は、制御出力であるトルクτを決定し、次の観測位置θを予測する。すなわち、図２４に示されるように、フォワード計算により、次に観測されるθが予測され、同時に制御量であるトルクτが計算される。
【０１７９】
ステップＳ１５３で、パラメータ演算部２１は、制御出力τの教師データがあるかを判定する。教師データが存在する場合、ステップＳ１５４において、出力修正量演算部１４は、位置θを観測し、位置θの予測値との予測誤差、および教師データとの誤差である制御誤差を演算する。ステップＳ１５５において、パラメータ演算部２１は、予測誤差と制御誤差を入力方向に逆伝播する。すなわち、トルクτの教師が与えられた場合は、図２５Aに示されるように、予測誤差および教師データに対する誤差をバックプロパゲーションして関数近似部１３および時系列データ変換部１２（減衰緩衝変換部５１）の学習が行われる。
【０１８０】
ステップＳ１５３において、トルクτの教師データが存在しないと判定された場合、ステップＳ１５６において、出力修正量演算部１４は位置θを観測し、予測値との予測誤差を演算する。ステップＳ１５７において、パラメータ演算部２１は、予測誤差を入力方向に逆伝播する。すなわち、トルクτの教師データが存在しない場合には、図２５Bに示されるように、予測誤差のみがバックプロパゲーションされ、関数近似部１３および時系列データ変換部１２（減衰緩衝変換部５１）の学習が行われる。
【０１８１】
ステップＳ１５５、Ｓ１５７の処理の後、処理はステップＳ１５１に戻り、それ以降の処理が繰り返される。
【０１８２】
なお、以上の処理では、学習をオンライン追加学習によって行ったが、バッチ形式の学習を行うようにしてもよい。
【０１８３】
十分学習をおこなうと、位置θのみの入力で（角速度ωを観測せずとも）適正なトルクτを出力し、振子９１を振り上げて静止できるようになった。
【０１８４】
これまで詳細に述べてきた通り、本実施の形態は、出力に影響を与える非観測の変数が存在するために入出力変数間に１対１の関数関係が成立しないような時系列シーケンスにおいて、特に、隠れ変数を持つ関数近似問題において、短い時間で安定な学習、予測、そして生成ができるようになる。
【０１８５】
また、本実施の形態は既存の技術と比較した場合、そのシンプルさ、そして対比的に十分広い実用範囲に特徴があり、その結果、少ない学習サンプルから、またノイズによって汚染されたデータからであっても、実時間で高速かつ安定的なパラメータ学習が可能になる。ここには初期値依存の学習不安定性はほとんど存在しない。
【０１８６】
本実施の形態を用いることで、観測し、もしくは教示される任意の時系列データそれ自体、あるいはそれらの相互関係を学習することができ、さらに、その学習結果に基づき、これまでの入力時系列データから将来の入力を予測することや、入力時系列データから所望の時系列データを生成して出力することができるようになる。特に、ある時刻における入力変数と出力変数ないし予測値との間に１対１の関数関係が成立しない場合でも、適切な学習を行い、所望の出力あるいは予測を実現することができるようになる。
【０１８７】
従って、観測し、もしくは教示される任意の時系列データそれ自体、あるいはそれらの相互関係を学習するデータ処理装置を提供することができる。さらに、その学習結果に基づき、これまでの入力時系列データから将来の入力を予測することができる予測装置、また、入力時系列データから所望の時系列データを生成して出力することができる生成装置を提供することができる。
【０１８８】
特に、ある時刻における入力変数と出力変数ないし予測値との間に１対１の関数関係が成立しない、言い換えると、出力あるいは予測に影響を与える非観測の変数が存在するような場合にも適切な学習を行い、所望の出力あるいは予測を実現することのできるデータ処理装置を提供することができる。
【０１８９】
本発明は、音声や画像信号などのセンサから入力される時系列データの認識、予測および記憶・生成などに利用される。また、ロボットなどの制御信号の認識、生成にも利用される。特に、自律システムや自律型ロボットなどにおいて、センサおよびモータの入出力信号の学習、認識、予測、生成に利用される。
【０１９０】
図２６は、上述した一連の処理をプログラムにより実行するパーソナルコンピュータの構成の例を示すブロック図である。ＣＰＵ（Central Processing Unit）２２１は、ROM（Read Only Memory）２２２、または記憶部２２８に記憶されているプログラムに従って各種の処理を実行する。RAM（Random Access Memory）２２３には、ＣＰＵ２２１が実行するプログラムやデータなどが適宜記憶される。これらのＣＰＵ２２１、ROM２２２、およびRAM２２３は、バス２２４により相互に接続されている。
【０１９１】
ＣＰＵ２２１にはまた、バス２２４を介して入出力インターフェース２２５が接続されている。入出力インターフェース２２５には、キーボード、マウス、マイクロホンなどよりなる入力部２２６、ディスプレイ、スピーカなどよりなる出力部２２７が接続されている。ＣＰＵ２２１は、入力部２２６から入力される指令に対応して各種の処理を実行する。そして、ＣＰＵ２２１は、処理の結果を出力部２２７に出力する。
【０１９２】
入出力インターフェース２２５に接続されている記憶部２２８は、例えばハードディスクからなり、ＣＰＵ２２１が実行するプログラムや各種のデータを記憶する。通信部２２９は、インターネットやローカルエリアネットワークなどのネットワークを介して外部の装置と通信する。また、通信部２２９を介してプログラムを取得し、記憶部２２８に記憶してもよい。
【０１９３】
入出力インターフェース２２５に接続されているドライブ２３０は、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア２３１が装着されたとき、それらを駆動し、そこに記録されているプログラムやデータなどを取得する。取得されたプログラムやデータは、必要に応じて記憶部２２８に転送され、記憶される。
【０１９４】
上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウエアにより実行させることもできる。一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、専用のハードウエアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、プログラム記録媒体からインストールされる。
【０１９５】
コンピュータにインストールされ、コンピュータによって実行可能な状態とされるプログラムを格納するプログラム記録媒体は、図２６に示すように、磁気ディスク（フレキシブルディスクを含む）、光ディスク（CD-ROM(Compact Disc-Read Only Memory),DVD(Digital Versatile Disc)を含む）、光磁気ディスクを含む）、もしくは半導体メモリなどよりなるパッケージメディアであるリムーバブルメディア２３１、または、プログラムが一時的もしくは永続的に格納されるROM２２２や、記憶部２２８を構成するハードディスクなどにより構成される。プログラム記録媒体へのプログラムの格納は、必要に応じてルータ、モデムなどのインターフェースである通信部２２９を介して、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の通信媒体を利用して行われる。
【０１９６】
なお、本明細書において、プログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【０１９７】
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
【０１９８】
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【図面の簡単な説明】
【０１９９】
【図１】本発明のデータ処理装置の一実施の形態の構成を示すブロック図である。
【図２】学習処理を説明するフローチャートである。
【図３】減衰緩衝変換部の構成を示す図である。
【図４】減衰緩衝演算処理を説明するフローチャートである。
【図５】時系列データ変換部の一実施の形態の構成を示すブロック図である。
【図６】時系列データ変換処理を説明するフローチャートである。
【図７】時系列データ変換部の他の実施の形態の構成を示すブロック図である。
【図８】時系列データ変換処理を説明するフローチャートである。
【図９】減衰緩衝変換部の組の構成を示す図である。
【図１０】減衰緩衝演算処理を説明するフローチャートである。
【図１１】時系列データ変換部のさらに他の実施の形態の構成を示すブロック図である。
【図１２】時系列データ変換処理を説明するフローチャートである。
【図１３】時間遅延に基づく係数Ckの変化を表す図である。
【図１４】パラメータγに基づく係数Ckの変化を表す図である。
【図１５】パラメータγに基づく係数Ckの変化を表す図である。
【図１６】ローレンツアトラクタの軌跡を示す図である。
【図１７】ローレンツアトラクタの軌跡の各成分の時系列変化を示す図である。
【図１８】パラメータ演算部の一実施の形態の構成を示すブロック図である。
【図１９】パラメータ演算部の他の実施の形態の構成を示すブロック図である。
【図２０】振子の問題を説明する図である。
【図２１】振子を振り上げるためのトルクシーケンスを示す図である。
【図２２】振子を振り上げるためのトルクシーケンスを示す図である。
【図２３】学習処理を説明するフローチャートである。
【図２４】パラメータ演算部のフォワード計算を説明する図である。
【図２５】パラメータ演算部のバックプロパゲーションを説明する図である。
【図２６】パーソナルコンピュータの構成を示すブロック図である。
【符号の説明】
【０２００】
１  データ処理装置，１１  信号入力部，  １２  時系列データ変換部，  １３  関数近似部，  １４  出力修正量演算部，  ２１  パラメータ演算部，  ５１  減衰緩衝変換部，  ７１  恒等変換部，  ９１  振子
【図１】
2009116770.tif 000021
【図２】
2009116770.tif 000022
【図３】
2009116770.tif 000023
【図４】
2009116770.tif 000024
【図５】
2009116770.tif 000025
【図６】
2009116770.tif 000026
【図７】
2009116770.tif 000027
【図８】
2009116770.tif 000028
【図９】
2009116770.tif 000029
【図１０】
2009116770.tif 000030
【図１１】
2009116770.tif 000031
【図１２】
2009116770.tif 000032
【図１３】
2009116770.tif 000033
【図１４】
2009116770.tif 000034
【図１５】
2009116770.tif 000035
【図１６】
2009116770.tif 000036
【図１７】
2009116770.tif 000037
【図１８】
2009116770.tif 000038
【図１９】
2009116770.tif 000039
【図２０】
2009116770.tif 000040
【図２１】
2009116770.tif 000041
【図２２】
2009116770.tif 000042
【図２３】
2009116770.tif 000043
【図２４】
2009116770.tif 000044
【図２５】
2009116770.tif 000045
【図２６】
2009116770.tif 000046