JP2009116770A - データ処理装置および方法、プログラム、並びに記録媒体 - Google Patents
データ処理装置および方法、プログラム、並びに記録媒体 Download PDFInfo
- Publication number
- JP2009116770A JP2009116770A JP2007291576A JP2007291576A JP2009116770A JP 2009116770 A JP2009116770 A JP 2009116770A JP 2007291576 A JP2007291576 A JP 2007291576A JP 2007291576 A JP2007291576 A JP 2007291576A JP 2009116770 A JP2009116770 A JP 2009116770A
- Authority
- JP
- Japan
- Prior art keywords
- series data
- data
- time
- output
- input
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Abstract
【課題】短い時間で学習ができるようにする。
【解決手段】時系列データ変換部12は、学習された特性に基づいて、入力時系列データを変換時系列データに変換する。関数近似部13は、学習された入出力変数間の関数関係に基づいて、変換時系列データから出力時系列データを生成する。時系列データ変換部12と関数近似部13は、それぞれが有するパラメータを自律的に更新する。記時系列データ変換部12は、入力データを1度に1個だけ受け付け、その1個の入力データに対応する出力データを1個だけ出力する1個以上のモデルにより、現時点の入力時系列データとモデルのパラメータの積と、モデルのパラメータを含む減衰項とモデルの直前の出力データとの積の和を演算することによって変換時系列データを演算する。
【選択図】図1
【解決手段】時系列データ変換部12は、学習された特性に基づいて、入力時系列データを変換時系列データに変換する。関数近似部13は、学習された入出力変数間の関数関係に基づいて、変換時系列データから出力時系列データを生成する。時系列データ変換部12と関数近似部13は、それぞれが有するパラメータを自律的に更新する。記時系列データ変換部12は、入力データを1度に1個だけ受け付け、その1個の入力データに対応する出力データを1個だけ出力する1個以上のモデルにより、現時点の入力時系列データとモデルのパラメータの積と、モデルのパラメータを含む減衰項とモデルの直前の出力データとの積の和を演算することによって変換時系列データを演算する。
【選択図】図1
Description
本発明はデータ処理装置および方法、プログラム、並びに記録媒体に関し、特に、短い時間で学習ができるようにしたデータ処理装置および方法、プログラム、並びに記録媒体に関する。
これまでも、観測し、もしくは教示される任意の時系列データそれ自体、あるいはそれらの相互関係を学習する学習手法は数多く提案されてきた。一番簡単なのは、現在の入力変数と出力すべき値との関係を関数近似器として学習するものである。しかし、入出力変数間に1対1の関数関係が存在せず、同じ入力値に対しても状況によって異なる複数の出力値が期待されるような場合は、原理的に学習が不可能である。
入出力変数間に1対1の関数関係が存在しない問題を直接的に取り扱う手法としてリカレントニューラルネットワーク(RNN)という技術がある。これは「コンテキスト」とも呼ばれる隠れ変数をモデルの中に持ち、また自己回帰ループをもつことによって、同じ入力値に対しても状況に応じた異なる出力を可能とするものである。リカレントニューラルネットワークは、学習結果に基づき、過去の入力時系列データから将来の入力を予測したり、入力時系列データから所定の時系列データを生成して出力したりすることができ、さまざまな分野で応用が検討されている(例えば、特許文献1)。
RNNには様々なタイプがあり、それぞれに適した学習手法が提案されている。例えば実時間リカレント学習法(RTRL)や通時的逆伝播法(BPTT)などである。この種の手法の潜在性能は高く、理論的には任意の時系列信号の学習が可能であるとも言われている。
しかしながら、一般にはパラメータの多さ、そしてその結果としての、学習時間の長さや学習の不安定性などの点で不利である。問題に応じた適切なネットワーク構造やその規模を決定する方法も自明ではない。これらの点で、実時間でのオンライン学習に用いるにはまだまだ解決すべき事項が多いと言える。
本発明は、このような状況に鑑みてなされたものであり、短い時間で学習することができるようにするものである。
本発明の側面は、学習された特性に基づいて、入力時系列データを変換時系列データに変換する時系列データ変換手段と、学習された入出力変数間の関数関係に基づいて、前記変換時系列データから出力時系列データを生成する関数近似手段とを備え、前記時系列データ変換手段と前記関数近似手段は、それぞれが有するパラメータを自律的に更新し、前記時系列データ変換手段は、入力データを1度に1個だけ受け付け、その1個の入力データに対応する出力データを1個だけ出力するモデルであって、現時点の前記入力時系列データと前記モデルのパラメータの積と、前記モデルのパラメータを含む減衰項と前記モデルの直前の出力データとの積の和を演算することによって前記変換時系列データを演算する1個以上の前記モデルを有するデータ処理装置である。
前記時系列データ変換手段は、前記入力時系列データを入力する複数個の前記モデルが並列に組み合わされた構成を有することができる。
前記時系列データ変換手段は、前記入力時系列データを入力する第1のモデルと、前記第1のモデルに対して直列に接続され、前記第1のモデルの出力を入力とする第2のモデルとを有する1個以上の組を、任意の数だけ並列に組み合わされた構成を有することができる。
前記時系列データ変換手段は、前記入力時系列データを恒等変換する恒等変換手段をさらに有することができる。
前記時系列データ変換手段のパラメータは重み係数そのものではなく、重み係数を単調関数で写像したものであることができる。
前記時系列データ変換手段と前記関数近似手段は、コスト関数を最小化もしくは極小化するように前記パラメータを更新することができる。
前記コスト関数は、前記出力時系列データとその教師データとの誤差の二乗和であることができる。
本発明の側面はまた、データ処理装置のデータ処理方法において、前記データ処理装置は、学習された特性に基づいて、入力時系列データを変換時系列データに変換する時系列データ変換手段と、学習された入出力変数間の関数関係に基づいて、前記変換時系列データから出力時系列データを生成する関数近似手段とを備え、前記時系列データ変換手段と前記関数近似手段は、それぞれが有するパラメータを自律的に更新し、前記時系列データ変換手段は、入力データを1度に1個だけ受け付け、その1個の入力データに対応する出力データを1個だけ出力する1個以上のモデルにより、現時点の前記入力時系列データと前記モデルのパラメータの積と、前記モデルのパラメータを含む減衰項と前記モデルの直前の出力データとの積の和を演算することによって前記変換時系列データを演算するデータ処理方法である。
さらに本発明の側面は、入力データを1度に1個だけ受け付け、その1個の入力データに対応する出力データを1個だけ出力する1個以上のモデルにより、現時点の前記入力時系列データと前記モデルのパラメータの積と、前記モデルのパラメータを含む減衰項と前記モデルの直前の出力データとの積の和を演算して前記変換時系列データを演算することにより、学習された特性に基づいて前記入力時系列データを前記変換時系列データに変換する時系列データ変換ステップと、学習された入出力変数間の関数関係に基づいて、前記変換時系列データから出力時系列データを生成する関数近似ステップと、前記時系列データ変換ステップと前記関数近似ステップの処理のパラメータを、それぞれ自律的に更新する更新ステップとを含む処理をコンピュータに実行させるプログラムである。
このプログラムは記録媒体に記録することができる。
本発明の側面においては、入力データを1個だけ受け付け、その1個の入力データに対応する出力データを1度に1個だけ出力する1個以上のモデルにより、現時点の入力時系列データとモデルのパラメータの積と、モデルのパラメータを含む減衰項とモデルの直前の出力データとの積の和を演算することによって変換時系列データが演算される。
以上のように、本発明の側面によれば、短い時間で学習ができる。特に、出力に影響を与える非観測の変数が存在するために、入出力変数間に1対1の関数関係が成立しないような時系列シーケンスにおいて、短い時間で学習を行うことができる。
以下に本発明の実施の形態を説明するが、本発明の構成要件と、明細書または図面に記載の実施の形態との対応関係を例示すると、次のようになる。この記載は、本発明をサポートする実施の形態が、明細書または図面に記載されていることを確認するためのものである。従って、明細書または図面中には記載されているが、本発明の構成要件に対応する実施の形態として、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その構成要件に対応するものではないことを意味するものではない。逆に、実施の形態が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
本発明の側面は、学習された特性に基づいて、入力時系列データを変換時系列データに変換する時系列データ変換手段(例えば、図1の時系列データ変換部12)と、学習された入出力変数間の関数関係に基づいて、前記変換時系列データから出力時系列データを生成する関数近似手段(例えば、図1の関数近似部13)とを備え、前記時系列データ変換手段と前記関数近似手段は、それぞれが有するパラメータを自律的に更新し、前記時系列データ変換手段は、入力データを1度に1個だけ受け付け、その1個の入力データに対応する出力データを1個だけ出力するモデル(例えば、図3の減衰緩衝変換部51)であって、現時点の前記入力時系列データと前記モデルのパラメータの積と、前記モデルのパラメータを含む減衰項と前記モデルの直前の出力データとの積の和を演算することによって前記変換時系列データを演算する1個以上の前記モデルを有するデータ処理装置(例えば、図1のデータ処理装置1)である。
前記時系列データ変換手段は、前記入力時系列データを恒等変換する恒等変換手段(例えば、図5の恒等変換部71)をさらに有することができる。
本発明の側面はまた、データ処理装置(例えば、図1のデータ処理装置1)のデータ処理方法(例えば、図2の学習処理方法)において、前記データ処理装置は、学習された特性に基づいて、入力時系列データを変換時系列データに変換する時系列データ変換手段(例えば、図1の時系列データ変換部12)と、学習された入出力変数間の関数関係に基づいて、前記変換時系列データから出力時系列データを生成する関数近似手段(例えば、図1の関数近似部13)とを備え、前記時系列データ変換手段と前記関数近似手段は、それぞれが有するパラメータを自律的に更新し、前記時系列データ変換手段は、入力データを1度に1個だけ受け付け、その1個の入力データに対応する出力データを1個だけ出力する1個以上のモデル(例えば、図3の減衰緩衝変換部51)により、現時点の前記入力時系列データと前記モデルのパラメータの積と、前記モデルのパラメータを含む減衰項と前記モデルの直前の出力データとの積の和を演算することによって前記変換時系列データを演算するデータ処理方法である。
さらに本発明の側面は、入力データを1度に1個だけ受け付け、その1個の入力データに対応する出力データを1個だけ出力する1個以上のモデル(例えば、図3の減衰緩衝変換部51)により、現時点の前記入力時系列データと前記モデルのパラメータの積と、前記モデルのパラメータを含む減衰項と前記モデルの直前の出力データとの積の和を演算して前記変換時系列データを演算することにより、学習された特性に基づいて前記入力時系列データを前記変換時系列データに変換する時系列データ変換ステップ(例えば、図2のステップS3)と、 学習された入出力変数間の関数関係に基づいて、前記変換時系列データから出力時系列データを生成する関数近似ステップ(例えば、図2のステップS4)と、前記時系列データ変換ステップと前記関数近似ステップの処理のパラメータを、それぞれ自律的に更新する更新ステップ(例えば、図2のステップS7)とを含む処理をコンピュータに実行させるプログラムである。
以下、図を参照して本発明の実施の形態について説明する。
図1は、本発明のデータ処理装置の一実施の形態の構成を示すブロック図である。このデータ処理装置1は、信号入力部11、時系列データ変換部12、関数近似部13、および出力修正量演算部14により構成されている。
信号入力部11は観測信号を入力する。観測信号は、例えば音や画像の信号、LED(Light Emitting Diode)の明るさ、モータの回転角度や回転角速度などに関する信号であり、システムに入力される信号およびシステムが出力する信号のどちらも対象となる。
信号入力部11は、例えば、観測信号が音の信号の場合はマイクに対応し、画像信号の場合はカメラに対応する。また、モータの回転角度や回転速度の計測装置なども、信号入力部11に対応する。信号入力部11は、観測信号をデジタル化、すなわち量子化・標本化し、入力時系列データとして出力する。
時系列データ変換部12は、学習されたヒステリシス特性の下に、入力時系列データを変換時系列データに変換して出力する。ここで出力される変換時系列データは入力時系列データに対してヒステリシス特性を有し、入力時系列データのコンテキスト情報をエンコードしたしたものとなっている。
なお、変換時系列データは入力時系列データと同次元とは限らず、むしろ次元数は増大することが多い。ここで次元数を増やすことにより、後段の関数近似部13での入出力データ間に1対1の関数関係を成立させるからである。
関数近似部13は、学習された入出力変数間の関数関係に基づいて、時系列データ変換部12より出力された変換時系列データから出力時系列データを生成するとともに、時系列データ変換部12で変換された変換時系列データを入力として所望の出力を生成できるように入力と出力の関数関係を学習する。関数近似部13で生成された出力時系列データは、利用可能であれば、所望のデータを定義する教師データとともに、ある評価関数の下で評価され、その評価結果に基づく出力修正量が出力修正量演算部14で演算され、関数近似部13にフィードバックされる。その出力修正量はさらに、関数近似部13を経て時系列データ変換部12へと逆伝播(フィードバック)される。
時系列データ変換部12は、信号入力部11から入力される入力時系列データ、自らの出力である変換時系列データ、および関数近似部13からフィードバックされる出力修正量に基づいて学習を行い、コスト関数を最小化もしくは極小化するように、パラメータを自律的に更新する。
同様に、関数近似部13は、時系列データ変換部12から入力される変換時系列データ、自らの出力である出力時系列データ、および出力修正量演算部14から供給される出力修正量に基づき、コスト関数を最小化もしくは極小化するように、パラメータを自律的に更新するとともに、入力された変換時系列データに対する修正量を計算する。
以下では、単純なロボットシステムにおけるセンサーモータ信号を観測信号の例として説明する。例えば、周囲環境の様子を知るための撮像装置および障害物までの距離を測定する距離センサを備えた車輪型移動ロボットを考える。
まず、撮像素子の輝度や距離情報をデジタル化した入力時系列データが信号入力部11より時系列データ変換部12へ入力される。ロボットの直前の車輪駆動指令値も同様に時系列データ変換部12へ入力される。時系列データ変換部12は、学習されたヒステリシス特性により、それぞれの入力を、異なる修飾をして、次元数を増やしながら出力する。この出力の中には、「距離が近くなってからまた遠くなった」、「一度止まってから前進した」、「輝度が定期的に増減する(点滅する)」などの各センサにおける時間的な情報がエンコードされている。
関数近似部13は、これらの情報を元にロボットの次のアクション、具体的には左右車輪の駆動指令値を生成する。
これらの構成によれば、現在のセンサ値によって一意に決定される行動を単純に実行するだけの虫のようなロボットではなく、過去の観測行動履歴、さらには非観測事象に関する推定までも考慮にいれた適切な振る舞いを見せるロボットが実現できる。
勿論、この発明の応用範囲はロボットのみにとどまるものではない。
以上が、全体構成の概要に関する説明である。以下、構成要素について詳細に説明する。
時系列データ変換部12の働きによって、入出力変数間に1対1の関数関係が存在しない、すなわち入力変数が同一であっても非観測の要因によって出力が左右され異なった結果を生むような問題を、関数関係の成立しうる通常の関数近似問題に変換することができる。重要なのは、ここで行われる変換が予め設計されている静的なものではなく、入力時系列データと出力時系列データとに基づき、自律的な適応によって変換のされ方が定まってくるという点である。
一般には、入力時系列データXを変換して生成された出力時系列データに対して定義されるコスト関数を最小化または極小化するように時系列データ変換部12と関数近似部13の内部のパラメータを、次式で表すように更新することで上記適応は実現できる。
Update p to minimize Cost ( Output ( ConverterP ( Xinput ))) (1)
Update p to minimize Cost ( Output ( ConverterP ( Xinput ))) (1)
このパラメータの更新、すなわち学習処理について図2のフローチャートを参照してさらに説明する。
ステップS1において、時系列データ変換部12と関数近似部13は、それぞれの処理において使用するパラメータを初期化する。ステップS2において、信号入力部11は時系列データを入力する。ステップS3において、時系列データ変換部12は、信号入力部11より供給された入力時系列データを変換する。その詳細は後述するが、例えば式(8)と式(9)に基づいて、入力時系列データが対応する変換時系列データに変換される。
ステップS4において、関数近似部13は出力時系列データを計算する。すなわち、関数近似部13は時系列データ変換部12より供給された変換時系列データを、学習された関数関係に基づいて、出力時系列データに変換する。関数近似部13が例えば3層フィードフォーワード型ニューラルネットワークにより構成される場合、変換時系列データと出力時系列データの関数関係が重み係数などのパラメータの値という形で保持されており、そのパラメータに応じて、変換時系列データが出力時系列データに変換される。
ステップS5において、出力修正量演算部14は出力修正量を演算する。出力修正量は、コスト関数を所定の最適化法で最適化することで演算することができる。
例えば、出力時系列データの教師データが得られる場合、コスト関数として、次式で表されるように、出力時系列データと教師データとの誤差の二乗和を用いることができる。次の式において、y*_tは、時刻tの出力時系列データy_t の教師データを表す。
Cost(y_t)=(1/2)×(y_t y*_t)2 (2)
Cost(y_t)=(1/2)×(y_t y*_t)2 (2)
そして最適化法として最急降下法を用いる場合、出力修正量は次式で表されるように、コスト関数Cost(y_t)の微分値Cost’(y_t)の符号を反転して、学習率ρを乗算して演算することができる。
出力修正量=−ρ×Cost’(y_t) (3)
出力修正量=−ρ×Cost’(y_t) (3)
式(2)のコスト関数を微分すると次式が得られる。
Cost’(y_t) = y_t y*_t (4)
式(4)を式(3)に適用すると、出力修正量は次式で表すことができる。
出力修正量=−ρ×Cost’(y_t) =−ρ× (y_t y*_t)
=ρ×(y*_t −y_t) (5)
Cost’(y_t) = y_t y*_t (4)
式(4)を式(3)に適用すると、出力修正量は次式で表すことができる。
出力修正量=−ρ×Cost’(y_t) =−ρ× (y_t y*_t)
=ρ×(y*_t −y_t) (5)
この出力修正量は関数近似部13に供給され、関数近似部13では、それを反映するように内部パラメータを更新する。その際、入力された時系列データ、すなわち、時系列データ変換部12の出力に対する出力修正量の計算も同時に行なうことができる。
たとえば、関数近似部13で表現される関数を f(p,x) として、内部パラメータ p をΔp = ∂f/∂p・Δf で更新すると共に、入力 x に対する修正量Δx = ∂f/∂x・Δf を計算する。ただし、Δf は関数近似部13の出力に対して計算された式(3)の出力修正量である。
次に時系列データ変換部12は、関数近似部13からフィードバックされた出力修正量Δx を反映するように、その内部パラメータを更新する。
ステップS6において、時系列データ変換部12は内部で演算に使用しているパラメータが最適かどうかを判定する。パラメータが最適か否かは、出力修正量をこれ以上減らすことができるかどうかで判定される。パラメータが最適ではない場合(出力修正量の期待値が依然として大きい場合)、ステップS7において、時系列データ変換部12は最適になるようにパラメータを更新する。すなわち、出力時系列データに対して定義されるコスト関数を最小化もしくは極小化するようにパラメータが更新される。パラメータが最適である場合(経験的に期待される出力修正量がほとんど0となった場合)、ステップS7の処理はスキップされる。
ステップS6において、パラメータが最適であると判定された場合、およびステップS7の処理の後、処理はステップS2に戻り、それ以降の処理が繰り返される。
ステップS6とステップS7の処理は、関数近似部13においても同様に行われ、そのパラメータが更新される。
なお、以上においては、教師データがある場合について説明したが、教師データがない場合には、コスト関数を所定の最適化法で最適化することで出力修正量を演算することができる。
まず、コスト関数の全貌が明らかで、その最小値(または極小値)を与えるような出力時系列データが最適化計算によって求められる場合は教師データが与えられた場合と事実上同じである。任意の最適化手法を用いて、最適な出力時系列データを計算し、それを仮想的な教師データとして扱えばよい。
それに対し、コスト関数それ自体も学習しなくてはならない場合は、逐次最適化によって出力時系列データを少しずつ修正していくより他にない。たとえば最急降下法であれば、現出力時系列データ近傍でのコスト関数の傾きを用いて式(3)の通り、出力修正量を計算する。
この修正は局所的・逐次的なものであるため、解が収束するまで十分多くの反復を必要とする。コスト関数の傾き計算には、傾きに関する関数の直接計算、あるいは現出力時系列データ近傍でのコスト関数出力値を用いた数値計算などの方法が考えられる。
以上説明したように、入力時系列データとしての入力変数Xは、パラメータ p によって制御されるヒステリシス特性を持つ時系列データ変換部12によって変換時系列データに変換され、さらに関数近似部13の関数関係に基づいて出力時系列データに変換される。そして、その出力時系列データから計算できるコストを最適化するようにパラメータ p が自律的に更新される。
パラメータ更新の方法としては、最急降下法の他、可変計量法、自然勾配法、共役勾配法、滑降シンプレックス法、遺伝的アルゴリズム、その他、任意の最適化手法が利用できる。
なお、以上においては、関数近似部13のパラメータと時系列データ変換部12のパラメータを逐次個別に最適化するようにしたが、両者全体を1つの系と見て、全パラメータを同時に最適化してもよい。
また、関数近似部13からの出力時系列データが入力時系列データの予測値となるように系を構成することもでき、その場合、図2の学習処理を行う学習装置としてのデータ処理装置1は、学習されたパラメータに基づき所定の予測を行う予測装置でもある。
ここで、例えば、次式で示される入力時系列データから、n ステップ先のデータ x(t+n) を予測する時系列データの予測問題を考える。
{x(t),x(t−1),x(t−2),・・・} (6)
{x(t),x(t−1),x(t−2),・・・} (6)
この場合は正しい出力、すなわち教師データが定義できるので、コスト評価を単純に二乗誤差の期待値だとすればよく、次式で示される目的関数を最小化するように時系列データ変換部12の内部のパラメータ p を学習することになる。
上記式(7)において、^ は予測値を示す修飾子を表し、Nは学習サンプル数を表す。なお、ここでは予測問題を例にとって説明しているが、本発明の適用範囲は単なる時系列予測にとどまるものではない。
本発明の実施の形態においては、上述したように、時系列データ変換部12を学習可能な内部のパラメータでモデル化し、それをコスト関数の最小化または極小化の観点で最適化するのであるが、このため、時系列データ変換部12には以下に説明する減衰緩衝変換部が設けられる。
図3に示すように、モデルとしての減衰緩衝変換部51は、入力を x、出力を y として、あるパラメータγ(0≦γ≦1)のもとで、式(8)の更新則により、式(9)に従って、1入力を1出力に変換する。
Δyt=γ(xt−yt-1) (8)
yt=yt-1 +Δyt (9)
出力ytは、γ= 0 の極限では定数(直前の出力yt-1)に、またγ= 1 の極限では入力 xt に一致する。
Δyt=γ(xt−yt-1) (8)
yt=yt-1 +Δyt (9)
出力ytは、γ= 0 の極限では定数(直前の出力yt-1)に、またγ= 1 の極限では入力 xt に一致する。
減衰緩衝変換部51は、入力データを1度に1つだけ受け付け、1度に複数の入力データは受け付けない。出力データも1つだけである。勿論、1つの同じ出力データを後段の複数の処理部がそれぞれ利用することができるが、それは出力データが複数個であることを意味するものではない。
式(8)を式(9)に代入し、γをパラメータpの関数であることを表すγ(p)と表現すると、次の式(10)が得られる。またsは、内部状態の変数であることを表している。
yt=xtγ(p)+st(1−γ(p)) (10)
st+1=yt (11)
yt=xtγ(p)+st(1−γ(p)) (10)
st+1=yt (11)
式(10)と式(11)より明らかなように、出力ytは過去の直前の出力yt-1(=st)に基づき決定されることになるので、減衰緩衝変換部51の変換特性は、ヒステリシス特性を有する。
現時点の入力時系列データの値と、直前の変換時系列データの値の、モデルのパラメータによる重み付き線形和によって変換時系列データを演算することで、より具体的には、現時点の入力時系列データとモデルのパラメータの積と、モデルのパラメータを含む減衰項とモデルの直前の出力データとの積の和を演算することで、パラメータの数を減らすことができる。従って、迅速かつ安定な学習が可能となり、実時間でのオンライン学習も可能となる。
なお、式(10)において、γ(p)は単調関数とされる。非単調関数にすると学習が困難になるからである。減衰項(1−γ(p))は、系を減衰させる機能を有し、一般的にはg(γ(p))と表すことができる。g(γ(p))が0より小さいと、系が振動系になり、不安定になるか、出力0に向かって収束する。従って非実用的である。g(γ(p))が0である場合、図5を参照して後述する恒等変換部71として機能する。
g(γ(p))が1より大きくなると、時間の経過に伴って出力が無限大に発散し、非実用的となる。g(γ(p))が1である場合にも、γ(p)=0以外で出力が発散する。
従って、内部状態stを減衰する減衰項であるg(γ(p))は、0以上、かつ1より小さい値とする。
減衰緩衝変換部51が行う減衰緩衝処理を詳細に説明すると、図4に示されるようになる。
ステップS21において、減衰緩衝変換部51は現時点の入力時系列データxtと減衰緩衝変換部51のパラメータγとの積γxtを演算する。ステップS22において、減衰緩衝変換部51は減衰項と直前の出力との積を演算する。すなわち、1からパラメータγを減算した減衰項(1−γ)と、直前の出力時系列データyt-1との積(1−γ)yt-1が演算される。
ステップS23において、減衰緩衝変換部51は2つの積の和を演算する。これにより、式(10)が演算される。ステップS24において、減衰緩衝変換部51は、ステップS23において演算した2つの積の和を記憶する。この記憶された値yt(=γxt+(1−γ)yt-1)が、次回のステップS22における処理で、直前の出力の値として用いられる。
なお、パラメータγの範囲 [0, 1] は正規化の都合上設けたもので、出力 y をさらに定数倍する自由度を考慮すれば、パラメータγの取りうる値に本質的な制約は何もないと考えてよい。
減衰緩衝変換部51は図2に示した学習基本アルゴリズムに沿って学習を行う。
まず、パラメータγの学習について説明する。パラメータγは直接学習しても良いが、なんらかの非線型単調関数を通じてγと相互に写像関係をもつ(1対1対応の)パラメータ p を学習することもできる。すなわち、パラメータを、重み係数そのものではなく、重み係数をある単調関数で写像したものとすることができる。この場合、変換に用いる単調関数を恒等写像、すなわち γ= p とすれば、これはパラメータγの直接学習と等価であるため、この枠組みの方がより広い一般性を持つことは明らかである。
直前の出力値yt-1を内部状態 s(t) として取り扱う場合、減衰緩衝変換部51の図2のステップS3において行う式(10)の演算は、入力 x、出力 y、内部状態 s、パラメータ p を用いて次式のように定式化できる。ただし、0≦γ(p)≦1である。
yt=st+(xt−st)γ(p) (12)
st+1=yt (13)
yt=st+(xt−st)γ(p) (12)
st+1=yt (13)
このとき、ある入力シーケンスのもとで減衰緩衝変換部51に期待される出力 y* が与えられるとすれば、たとえば最急降下法に基づく学習をおこなう場合、出力誤差ε= y y* を用いてパラメータ p の出力修正量としての更新量Δpは次式で計算できる。ここでρは学習率である。
単調関数γ(p) のバリエーションとそのときの更新量Δpをいくつか挙げると次のようになる。
それぞれ一長一短があるが、多くのケースでは式(19)のSigmoid 型のパラメータ表現が適切だと考えられる。
以上、減衰緩衝変換部51の出力誤差εからパラメータ p の更新量を決定するアルゴリズムを説明した。
次に内部状態 s の更新について説明する。便宜的に別のアルファベットsを用いて表記したが、概念的にはこのsも減衰緩衝変換部51の内部パラメータであり、従って学習可能である(ただし、sを直前の出力値yt-1をもって代用し、必ずしも学習しなくとも良い)。学習する場合、その学習則は次式のようになる。
単調関数γ(p) のバリエーションについては、式(15)乃至式(19)に示した場合と同様である。
なお、ここでは最急降下法に基づくパラメータの個別最適化を例示したが、もちろんその他の最適化手法を用いることができる。その他の手法の多くでは、上に示したような個々のパラメータの個別更新ではなく、複数のパラメータの同時更新となるが、その更新式は先に示した減衰緩衝変換部51の定式化から直接導くことができるので、その説明は省略する。また、ここでの説明は1サンプルごとにパラメータを逐次更新する場合の挙動を述べたものであるが、もちろん多数のサンプルセットをまとめて評価し、それら全体に対して最適となるようにパラメータを更新するバッチ型の学習であっても本質的な部分はまったく同様である。
上述した減衰緩衝変換部51を1つだけ用いると、図5に示されるように、時系列データ変換部12を最も単純に構成することができる。この時系列データ変換部12は、恒等変換部71と減衰緩衝変換部51とにより構成され、1次元入力 x から、次のようにして、2次元の出力 yが生成される。
y0=x (21)
y1=γx+(1−γ)s (22)
y0=x (21)
y1=γx+(1−γ)s (22)
恒等変換部71は式(21)の恒等演算を行う。すなわち、恒等変換部71は入力xをそのまま出力y0に恒等変換する。実質的には入力がスルーされるだけなので、恒等変換部71は1本の信号供給線だけで構成することができる。
この図5の時系列データ変換部12の時系列データ変換処理は図6に示されるようになる。
ステップS31において、恒等変換部71は入力を恒等的に変換する。すなわち、入力xがそのまま出力y0として出力される。ステップS32において、減衰緩衝変換部51により減衰緩衝演算処理が行われる。減衰緩衝演算処理の詳細は、図4を参照して説明した通りである。なお、実際には、ステップS31とステップS32の処理は、並行して実行される。
図7に示されるように、複数の減衰緩衝変換部51を並列配置して時系列データ変換部12を構成することもできる。この実施の形態においては、減衰緩衝変換部51が、1個の恒等変換部71とn個の減衰緩衝変換部51−1乃至51−nにより構成されている。これにより、次式に示されるように、1次元入力 x から n+1 次元の出力 y が生成される。
y0=x
y1=γ1x+(1−γ1)s1
y2=γ2x+(1−γ2)s2
・
・
yn=γnx+(1−γn)sn
(23)
y0=x
y1=γ1x+(1−γ1)s1
y2=γ2x+(1−γ2)s2
・
・
yn=γnx+(1−γn)sn
(23)
この減衰緩衝変換部51の時系列データ変換処理は図8のフローチャートに示されるようになる。
ステップS51において、恒等変換部71は入力を恒等的に変換する。すなわち、入力xがそのまま出力y0として出力される。ステップS52において、減衰緩衝変換部51−1により減衰緩衝演算処理が行われ、出力y1(=γ1x+(1−γ1)s1)が出力される。減衰緩衝演算処理の詳細は、図4を参照して説明した通りである。ステップS53において、減衰緩衝変換部51−2により減衰緩衝演算処理が行われ、出力y2(=γ2x+(1−γ2)s2)が出力される。
以下同様に、減衰緩衝変換部51−3乃至減衰緩衝変換部51−nにより減衰緩衝演算処理が行われる。
なお、実際には、ステップS52以降の処理は、ステップS51の処理と並行して実行される。
このような構成では、学習の結果、それぞれの減衰緩衝変換部51乃至減衰緩衝変換部51−nが異なる内部パラメータ、そして異なる内部状態を持つことによって、より複雑な時系列コンテキストを表現できるようになる。
なお、恒等変換部71は省略することができる。この場合、減衰緩衝変換部51−1乃至減衰緩衝変換部51−nのうちの1つあるいはいくつかが、実質的に恒等変換部71と同様の機能を果たすように学習されることになる。もし、このような恒等変換部の必要性が予め分かっているのであれば、恒等変換部71を設けた方が構成を簡略化することができることは確かである。一方、恒等変換部71を省略した場合、各処理経路を同じ構成とすることができるし、そもそも恒等変換自体が必要でないケースでは、その処理を行わなくても済むという利点がある。
減衰緩衝変換部の学習において、問題の複雑度がそれほど大きくない場合は、複数のパラメータがほぼ同じ値に収束し、系全体の自由度を下げることは良くある。本発明におけるこのような学習の安定性は非常に大きな魅力である。
一方、図9に示されるように、減衰緩衝変換部51を直列に配置することもできる。この図では2つの減衰緩衝変換部51fと減衰緩衝変換部51bが直列に接続されている。1段目の減衰緩衝変換部51fの出力uは次式で示される。γ1,s1は減衰緩衝変換部51fのパラメータである。
u=γ1x+(1−γ1)s1 (24)
2段目の減衰緩衝変換部51bの出力yは次式で示される。γ2,s2は減衰緩衝変換部51bのパラメータである。
y=γ2u+(1−γ2)s2 (25)
u=γ1x+(1−γ1)s1 (24)
2段目の減衰緩衝変換部51bの出力yは次式で示される。γ2,s2は減衰緩衝変換部51bのパラメータである。
y=γ2u+(1−γ2)s2 (25)
この構成による減衰緩衝演算処理は図10のフローチャートに示されるようになる。
最初に減衰緩衝変換部51fは、ステップS81乃至ステップS84の第1の減衰緩衝演算処理を実行する。すなわち、ステップS81において、減衰緩衝変換部51fは入力xとパラメータγ1との積を演算する。ステップS82において、減衰緩衝変換部51fは減衰項と直前の出力との積を演算する。すなわち、減衰項(1−γ1)と、直前の出力s1との積が演算される。
ステップS83において、減衰緩衝変換部51fは2つの積の和を演算する。これにより、式(24)が演算される。ステップS84において、減衰緩衝変換部51fは、ステップS83において演算した2つの積の和を記憶する。この記憶された値が、次回のステップS82における処理で直前の出力として用いられる。
次に減衰緩衝変換部51bは、ステップS85乃至ステップS88の第2の減衰緩衝演算処理を実行する。すなわち、ステップS85において、減衰緩衝変換部51bは前段の減衰緩衝変換部51fからの入力uとパラメータγ2との積を演算する。ステップS86において、減衰緩衝変換部51bは減衰項と直前の出力との積を演算する。すなわち、減衰項(1−γ2)と、直前の出力s2との積が演算される。
ステップS87において、減衰緩衝変換部51bは2つの積の和を演算する。これにより、式(25)が演算される。ステップS88において、減衰緩衝変換部51bは、ステップS87において演算した2つの積の和を記憶する。この記憶された値が、次回のステップS86における処理で直前の出力として用いられる。
このような構成をとることで、内部パラメータの組み合わせによっては、入力履歴に対して非単調な重み付けで応答する成分を生成することができる。このような性質は1つの減衰緩衝変換部51だけでは作りえないため、非常に効果的である。なお、3つ以上の減衰緩衝変換部51を直列接続しても応答の複雑さはさほど変わらないため、パラメータ数の増加に見合うほどの効果は得られないことが多い。しかし、このことは、必ずしも3つ以上の直列接続を妨げるものではない。
さらに、図11に示されるように、減衰緩衝変換部51を直列かつ並列に複数組み合わせることで、多様な特性を持つ新しい時系列データ変換部を構成することが可能である。
この実施の形態の場合、時系列データ変換部12は、恒等変換部71、並びにそれに対して並列に接続された、n組の減衰緩衝変換部51f−1と減衰緩衝変換部51b−1乃至減衰緩衝変換部51f−nと減衰緩衝変換部51b−nにより構成されている。
この実施の形態の時系列データ変換処理は図12のフローチャートに示されるようになる。
ステップS101において、恒等変換部71は入力を恒等的に変換する。すなわち、入力xがそのまま出力y0として出力される。ステップS102において、減衰緩衝変換部51f−1により第1の減衰緩衝演算処理(すなわち、図10のステップS81乃至ステップS84の処理)が行われ、式(24)の出力uが演算される。ステップS103において、減衰緩衝変換部51b−1により第2の減衰緩衝演算処理(すなわち、図10のステップS85乃至ステップS88の処理)が行われ、式(25)の出力yが演算される。
ステップS104において、減衰緩衝変換部51f−2により第1の減衰緩衝演算処理が行われ、式(24)の出力uが演算される。ステップS105において、減衰緩衝変換部51b−2により第2の減衰緩衝演算処理が行われ、式(25)の出力yが演算される。
以下、同様の処理が減衰緩衝変換部51fと減衰緩衝変換部51bの各対により実行される。
このように、減衰緩衝変換部51を直列に2つ接続し、それらをさらに並列に任意数配置することで、実用上広い範囲の問題に適合することが可能となる。
なお、この実施の形態においても、恒等変換部71を省略することができる。また、適宜、第3、第4・・・の直列接続される減衰緩衝処理を設けても良い。
本発明が解こうとしている問題は、本質的には、隠れ変数を持つ関数近似問題である。たとえば、多変数関数
y=f(x1,x2,x3,・・・,xn) (26)
において、y と x1のみが観測できるとした場合に、x1 のみから y を決定する関係式
y=g(x1) (27)
を学習によって獲得するという問題である。一見して分かるように、このような問題は何の仮定もなく解くことはできない。
y=f(x1,x2,x3,・・・,xn) (26)
において、y と x1のみが観測できるとした場合に、x1 のみから y を決定する関係式
y=g(x1) (27)
を学習によって獲得するという問題である。一見して分かるように、このような問題は何の仮定もなく解くことはできない。
そこで、観測変数x1はいつでも自由に任意の値を取れる変数ではなく、何らかの時空間的構造に束縛されているものと仮定する。言い換えれば、変数x1 の時系列的な変化には常に何らかの意味があり、背後の隠れ変数群x2,x3,・・・の挙動に関する手がかりを与えるものと考える。より具体的に言えば、観測時系列 {x1, y } の振る舞いは背後に隠れている変数x2,x3,・・・の時系列変化の影響を受けているが、逆にまた、x2,x3,・・・の時間的な振る舞いも、それら自身の時系列変化ばかりでなく、{x1, y } の時系列変化の影響下にあると考える。現実世界ではこのような関係はごく自然なものである。
この結果、{x1, y } の時系列変化を長期間観測することで、隠れ変数x2,x3,・・・の変化に関する仮説を形成し、さらにそれを用いて {x1, y } の時系列変化について推測する、といったようなことが可能になる。
数学的には以下のように解釈できる。すなわち、次式の力学系方程式に支配される変数 z を考える。なお、次式の左辺は、zの時間微分を意味する。
このとき変数 z は次式で表される位相空間内で決して交わらない軌跡を描く。
このときこの軌跡を表現する(この軌跡と等価な)次の関数を考えることができる。
y=f(x)=f(x1,x2,x3,・・・,xn) (30)
y=f(x)=f(x1,x2,x3,・・・,xn) (30)
変数 x はこの軌跡上に束縛されているため、位相空間内での遷移は厳しく制約されており、その自由度は1しかない。
ここで、n 次元位相空間中の1軸、x1 のみの観測から x 全体の描く軌跡(アトラクタ)の性質を分析することを考える。このような問題を一般にアトラクタの再構成問題と呼ぶが、これまでの考察を踏まえると、実はこれは隠れ変数を持つ関数近似問題と非常に深い関係にあると考えられる。
アトラクタの再構成問題においては Takens の埋め込み定理というものが知られている。これは、d 次元位相空間内でアトラクタを構成する軌跡に関して、ある次元 x1 の時系列信号のみが観測できるとき、次式で表される時間遅れ τを用いた 2d+1 次元座標を用いれば、もとのアトラクタと微分同相のアトラクタを再構成することができる、というものである。
さらにこの定理を拡張すると、Xを線形変換して得られる次式を用いてもアトラクタの再構成が可能であることが分かる。
Y=AX (32)
ただし、Aの階数は 2d+1 以上であるものとする。従って、次式の変換において適切な係数Ck を選び、式(32)のA が階数 2d+1 以上となるように十分多様なバリエーションの y を準備すれば、それらを用いてアトラクタの再構成ができることになる。
Y=AX (32)
ただし、Aの階数は 2d+1 以上であるものとする。従って、次式の変換において適切な係数Ck を選び、式(32)のA が階数 2d+1 以上となるように十分多様なバリエーションの y を準備すれば、それらを用いてアトラクタの再構成ができることになる。
ここで、係数Ck を次式で表すようにして 2d+1 次元ベクトル Y を生成すれば、これは Takens の埋め込み定理そのものである。
一方、係数Ckを次式で表すようにすれば、今度は減衰緩衝変換部51の出力と一致することが分かる。
図13と図14は、これらの係数の具体例を示す。図13において、横軸は式(34)(従って、式(33))のkを表し、縦軸は式(34)の係数Ckを表す。図13A乃至図13Dは、式(34)のτの値が4で、i = 0, 1, 2, 3 の場合をそれぞれ例示している。
図14において、横軸は式(35)(従って、式(33))のkを表し、縦軸は式(35)の係数Ckを表す。図14A乃至図14Dは、式(35)のγの値が、それぞれ0.7,0.5,0.3または0.1である場合を表している。
まとめると、十分な次元数を持つ時間遅れ座標系(図13)によってアトラクタを再構成できるのと同じように、減衰緩衝変換部51の組み合わせ(図14)によってもアトラクタの再構成が可能である。
次に、減衰緩衝変換部51を直列に接続した場合の結果について説明する。減衰パラメータγ1の減衰緩衝変換部51fと、減衰パラメータγ2の減衰緩衝変換部51bを直列に接続すると、係数Ckは次式のように計算できる。
このときの係数の具体例は図15に示したとおりである。図15において、横軸は式(36)(従って、式(33))のkを表し、縦軸は式(36)の係数Ckを表す。図15A乃至図15Dは、(γ1,γ2)が、それぞれ(0.07,0.15),(0.2,0.2),(0.4,0.5)、または(0.7,0.7)である場合を表している。
3段以上の減衰緩衝変換部51を直列に接続した場合の効果についても同様に計算できるが、係数列の形状はそれほど大きく変化しない。たとえば、3つの減衰緩衝変換部51を直列接続した場合の係数は次式のように表すことができるが、この性質は前記2段接続の場合とそれほど変わらない。
よって、パラメータ数の無意味な増加を防ぐ観点からも、減衰緩衝変換部51の直列接続は2段とするのが好ましい。ただし、3段以上の接続を妨げるものではない。なお、1つの減衰緩衝変換部51で十分なところに2つの減衰緩衝変換部51を直列に接続して用いた場合、片方のパラメータが1に収束し、結果的に1つの減衰緩衝変換部51と全く同じ挙動を示すようになって安定することが、実験的に分かっている。このことからも2段の直列接続が一般的に好ましいと考えられる。
以上をまとめ、より一般的な見方をすると、隠れ変数を持つ関数近似問題を解くには、結局のところ、観測時系列 X から式(33)によってアトラクタ再構成空間 Y を構成するための係数列 { Ck } を何らかの方法で最適に決定できれば良いということになる。実用上は、係数Ck を直接学習するのではなく、係数列 { Ck } を何らかの方法でパラメタライズしておくことで学習空間を制約し、学習可能な設定に変換するはずであるが、本発明の実施の形態では、減衰緩衝変換部51を直列と並列に組み合わせる構成により、少ないパラメータと柔軟な表現を両立させ、そのすぐれたバランスによって実時間での安定的な適応と高いパフォーマンスを実現したということになる。
以上に説明した減衰緩衝変換部51は、基本的に1入力に対して定義されているものであるが、これを、次式で表されるように、多入力に拡張することも可能である。
ところが、これは次式で表されるように、個別の入力に対する仮想的な1入力減衰緩衝変換部51の出力の線形和で表すことができるので、両者に本質的な違いはない。
つまり、各入力に対して1入力の時系列データ変換部12を割り当て、後段の関数近似部13で統合処理を行う構成は非常に一般的な適用範囲を持つものであることが分かる。
関数近似部13は、変換された信号を入力として所望の出力を生成できるように入出力間の関数関係を、図2を参照して説明したように学習する。関数近似部13としては、任意の手法を用いてよく、その学習アルゴリズムについても同様である。たとえば、3層フィードフォーワード型ニューラルネットワーク、サポートベクトルリグレッション(SVR)、RBF(Radial Basis Function)ネットワークなどを使用することができる。
ただし、入力、すなわち、前段の時系列データ変換部12に対して入力誤差をフィードバックすることだけが必要である。これは減衰緩衝変換部51の学習のために必須である。
関数近似部13の関数関係の式を次式のようにおく。
y=f(x)=f(x1,x2,x3,・・・) (40)
教師データに基づく出力誤差をεとすれば、i番目の入力に対する誤差の伝播は、次式で計算できる。
y=f(x)=f(x1,x2,x3,・・・) (40)
教師データに基づく出力誤差をεとすれば、i番目の入力に対する誤差の伝播は、次式で計算できる。
この誤差は該当する時系列データ変換部12(減衰緩衝変換部51)へ伝播され、そこで時系列データ変換部12の学習プロセスが実行されることになる。
関数近似部13の学習と時系列データ変換部12の学習の関係にはいろいろなパターンが考えられる。関数近似部13だけで独立してパラメータ更新を行い、入力誤差を計算して時系列データ変換部12にフィードバックするのが一番簡単であり、実際この方法で十分うまく動作する。しかし、関数近似部13と時系列データ変換部12を結合して、1つの系(図1のパラメータ演算部21)であると考え、全てのパラメータを同時に最適化する方法もあり、この方が収束は早いが、計算量や問題の複雑さに応じたトレードオフとなる。複数のパラメータを同時に最適化する場合は自然勾配法や可変計量法およびその亜種を用いることができる。
図16にローレンツアトラクタを示す。ローレンツアトラクタは有名なストレンジアトラクタの1つであり、3変数 (x, y, z) がパラメータ(ρ,r,b)の下で次の関係式に従って変化するとき、その軌跡は図16に示されるように変化する。図17はその場合における座標値の一例を表す。図17A乃至図17Cの縦軸は、x、y、zの座標値をそれぞれ表し、横軸は時間を表す。
図18に示される構成の時系列データ変換部12および関数近似部13により、ローレンツアトラクタの変数 x のみを観測し、x, y、 あるいは z を予測する問題を解かせたところ、十分な時間の学習の後、精度良く予測をおこなうことができるようになった。この実施の形態においては、時系列データ変換部12として、減衰緩衝変換部51−11fと減衰緩衝変換部51−11bを直列接続した組と、減衰緩衝変換部51−12fと減衰緩衝変換部51−12bを直列接続した組を、並列に接続したものを用い、関数近似部13として、中間層がノード71−1乃至71−5の5個のノードで、出力層がノード71−6,71−7の2個のノードのSigmoid 関数による3層フィードフォーワード型ニューラルネットワークを用いた。
入力xは、減衰緩衝変換部51−11f、減衰緩衝変換部51−12f、並びにノード71−1乃至71−5に供給されている。減衰緩衝変換部51−11fの出力は減衰緩衝変換部51−11bに供給され、減衰緩衝変換部51−11bの出力は、ノード71−1乃至71−5に供給されている。減衰緩衝変換部51−12fの出力は減衰緩衝変換部51−12bに供給され、減衰緩衝変換部51−12bの出力は、ノード71−1乃至71−5に供給されている。
ノード71−1乃至71−5の出力は、それぞれノード71−6とノード71−7に供給されている。この例ではノード71−6から出力yが、ノード71−7から出力zが、出力されている。
予測期間として1ステップ先、3ステップ先、10ステップ先などいくつかのパターンを試したところ、数ステップ先まではどれも高い性能を示した。一方、あるステップ(サンプリング間隔に依存する)から先は急速に性能が悪化し、ほとんど予測は不能であった。しかし、これはカオスが本質的に持つ予測不能性によるものである。
図19に示される構成の時系列データ変換部12と関数近似部13を有するデータ処理装置1を、図20に示される先端に錘92が結合されている剛体振子91の振り上げ問題に適用した。これは、剛体振子に対して小さなトルクのみを印加しつつ、次第にその振幅を増やし、最終的には振子91の棒状部分の錘92と反対側の端部を支点としてこれを倒立させて頂上で静止させる問題である。以下、θ[rad] は振り子の位置を表す角度で、θ=0 で真下の位置を表し、その加速度はω[rad/sec]、τ[Nm] は振り子に印加されるトルクを表すものとする。
図19の実施の形態においては、時系列データ変換部12として、減衰緩衝変換部51−21fと減衰緩衝変換部51−21bを直列接続した組と、減衰緩衝変換部51−22fと減衰緩衝変換部51−22bを直列接続した組を、並列に接続したものを用い、関数近似部13として、中間層がノード71−21乃至71−25の5個のノードで、出力層がノード71−26,71−27の2個のノードのSigmoid 関数による3層フィードフォーワード型ニューラルネットワークを用いた。
入力θは、減衰緩衝変換部51−21f、並びにノード71−21乃至71−25に供給されている。減衰緩衝変換部51−21fの出力は減衰緩衝変換部51−21bに供給され、減衰緩衝変換部51−21bの出力は、ノード71−21乃至71−25に供給されている。
入力τは、減衰緩衝変換部51−22f、並びにノード71−21乃至71−25に供給されている。減衰緩衝変換部51−22fの出力は減衰緩衝変換部51−22bに供給され、減衰緩衝変換部51−22bの出力は、ノード71−21乃至71−25に供給されている。
ノード71−21乃至71−25の出力は、それぞれノード71−26とノード71−27に供給されている。ノード71−26から出力θが、ノード71−27から出力τが、出力されている。
このタスクで特徴的なのは、振子91の角速度ωは観測できず、ただ、位置θのみが与えられるとしている点である。本来、振子91の振り上げ制御には位置θのみならず角速度ωの情報が必須であるが、学習時と制御時の、どの時点においても、振子91を駆動するコントローラに対してこの情報が与えられることはない。
この振子91を振り上げるためのシーケンスは、例えば図21と図22に示すようなものである。これらの図は、印加するトルクτ、振子の位置θ、および角速度ωの関係を表している。図21Aの縦軸はトルクτ、右下がりの軸は位置θ、右上がりの軸は角速度ωを表している。図21Bの縦軸はトルクτ、水平の軸は角速度ω、右上がりの軸は位置θを表している。
図22Aにおいて、縦軸はトルクτ、横軸は位置θを表し、図22Bにおいて、縦軸は角速度ω、横軸は位置θを表し、図22Cにおいて、縦軸はトルクτ、横軸は角速度ωを表している。
ここでは、実際には角速度ωは非観測の変数であるため、トルクτを位置θのみの関数で表現することが求められている。これらの図より明らかなように、位置θとトルクτの間には、1対1の関数関係は全く成立しない。
なお、教師として与えるコントロールシーケンスは、次式を満たすようなトルクτの時系列シーケンスである。
上記式におけるE,dE/dtは、それぞれ次式で表される。mは振子91の質量(棒状部分の質量はないものとしているので、錘92の質量)、lは振子91の長さ(より正確には、支点と重心間の距離)、gは重力加速度、Dは空気抵抗、支点部での摩擦などをまとめた抵抗係数を表している。
図23のフローチャートを参照して、振子問題の学習処理を説明する。まず、ステップS151において、時系列データ変換部12と関数近似部13よりなるパラメータ演算部21は、観測値である位置θおよび1ステップ前の出力であるトルクτを入力する。次にステップS152において、パラメータ演算部21は、制御出力であるトルクτを決定し、次の観測位置θを予測する。すなわち、図24に示されるように、フォワード計算により、次に観測されるθが予測され、同時に制御量であるトルクτが計算される。
ステップS153で、パラメータ演算部21は、制御出力τの教師データがあるかを判定する。教師データが存在する場合、ステップS154において、出力修正量演算部14は、位置θを観測し、位置θの予測値との予測誤差、および教師データとの誤差である制御誤差を演算する。ステップS155において、パラメータ演算部21は、予測誤差と制御誤差を入力方向に逆伝播する。すなわち、トルクτの教師が与えられた場合は、図25Aに示されるように、予測誤差および教師データに対する誤差をバックプロパゲーションして関数近似部13および時系列データ変換部12(減衰緩衝変換部51)の学習が行われる。
ステップS153において、トルクτの教師データが存在しないと判定された場合、ステップS156において、出力修正量演算部14は位置θを観測し、予測値との予測誤差を演算する。ステップS157において、パラメータ演算部21は、予測誤差を入力方向に逆伝播する。すなわち、トルクτの教師データが存在しない場合には、図25Bに示されるように、予測誤差のみがバックプロパゲーションされ、関数近似部13および時系列データ変換部12(減衰緩衝変換部51)の学習が行われる。
ステップS155、S157の処理の後、処理はステップS151に戻り、それ以降の処理が繰り返される。
なお、以上の処理では、学習をオンライン追加学習によって行ったが、バッチ形式の学習を行うようにしてもよい。
十分学習をおこなうと、位置θのみの入力で(角速度ωを観測せずとも)適正なトルクτを出力し、振子91を振り上げて静止できるようになった。
これまで詳細に述べてきた通り、本実施の形態は、出力に影響を与える非観測の変数が存在するために入出力変数間に1対1の関数関係が成立しないような時系列シーケンスにおいて、特に、隠れ変数を持つ関数近似問題において、短い時間で安定な学習、予測、そして生成ができるようになる。
また、本実施の形態は既存の技術と比較した場合、そのシンプルさ、そして対比的に十分広い実用範囲に特徴があり、その結果、少ない学習サンプルから、またノイズによって汚染されたデータからであっても、実時間で高速かつ安定的なパラメータ学習が可能になる。ここには初期値依存の学習不安定性はほとんど存在しない。
本実施の形態を用いることで、観測し、もしくは教示される任意の時系列データそれ自体、あるいはそれらの相互関係を学習することができ、さらに、その学習結果に基づき、これまでの入力時系列データから将来の入力を予測することや、入力時系列データから所望の時系列データを生成して出力することができるようになる。特に、ある時刻における入力変数と出力変数ないし予測値との間に1対1の関数関係が成立しない場合でも、適切な学習を行い、所望の出力あるいは予測を実現することができるようになる。
従って、観測し、もしくは教示される任意の時系列データそれ自体、あるいはそれらの相互関係を学習するデータ処理装置を提供することができる。さらに、その学習結果に基づき、これまでの入力時系列データから将来の入力を予測することができる予測装置、また、入力時系列データから所望の時系列データを生成して出力することができる生成装置を提供することができる。
特に、ある時刻における入力変数と出力変数ないし予測値との間に1対1の関数関係が成立しない、言い換えると、出力あるいは予測に影響を与える非観測の変数が存在するような場合にも適切な学習を行い、所望の出力あるいは予測を実現することのできるデータ処理装置を提供することができる。
本発明は、音声や画像信号などのセンサから入力される時系列データの認識、予測および記憶・生成などに利用される。また、ロボットなどの制御信号の認識、生成にも利用される。特に、自律システムや自律型ロボットなどにおいて、センサおよびモータの入出力信号の学習、認識、予測、生成に利用される。
図26は、上述した一連の処理をプログラムにより実行するパーソナルコンピュータの構成の例を示すブロック図である。CPU(Central Processing Unit)221は、ROM(Read Only Memory)222、または記憶部228に記憶されているプログラムに従って各種の処理を実行する。RAM(Random Access Memory)223には、CPU221が実行するプログラムやデータなどが適宜記憶される。これらのCPU221、ROM222、およびRAM223は、バス224により相互に接続されている。
CPU221にはまた、バス224を介して入出力インターフェース225が接続されている。入出力インターフェース225には、キーボード、マウス、マイクロホンなどよりなる入力部226、ディスプレイ、スピーカなどよりなる出力部227が接続されている。CPU221は、入力部226から入力される指令に対応して各種の処理を実行する。そして、CPU221は、処理の結果を出力部227に出力する。
入出力インターフェース225に接続されている記憶部228は、例えばハードディスクからなり、CPU221が実行するプログラムや各種のデータを記憶する。通信部229は、インターネットやローカルエリアネットワークなどのネットワークを介して外部の装置と通信する。また、通信部229を介してプログラムを取得し、記憶部228に記憶してもよい。
入出力インターフェース225に接続されているドライブ230は、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア231が装着されたとき、それらを駆動し、そこに記録されているプログラムやデータなどを取得する。取得されたプログラムやデータは、必要に応じて記憶部228に転送され、記憶される。
上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウエアにより実行させることもできる。一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、専用のハードウエアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、プログラム記録媒体からインストールされる。
コンピュータにインストールされ、コンピュータによって実行可能な状態とされるプログラムを格納するプログラム記録媒体は、図26に示すように、磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disc-Read Only Memory),DVD(Digital Versatile Disc)を含む)、光磁気ディスクを含む)、もしくは半導体メモリなどよりなるパッケージメディアであるリムーバブルメディア231、または、プログラムが一時的もしくは永続的に格納されるROM222や、記憶部228を構成するハードディスクなどにより構成される。プログラム記録媒体へのプログラムの格納は、必要に応じてルータ、モデムなどのインターフェースである通信部229を介して、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の通信媒体を利用して行われる。
なお、本明細書において、プログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
1 データ処理装置,11 信号入力部, 12 時系列データ変換部, 13 関数近似部, 14 出力修正量演算部, 21 パラメータ演算部, 51 減衰緩衝変換部, 71 恒等変換部, 91 振子
Claims (10)
- 学習された特性に基づいて、入力時系列データを変換時系列データに変換する時系列データ変換手段と、
学習された入出力変数間の関数関係に基づいて、前記変換時系列データから出力時系列データを生成する関数近似手段とを備え、
前記時系列データ変換手段と前記関数近似手段は、それぞれが有するパラメータを自律的に更新し、
前記時系列データ変換手段は、入力データを1度に1個だけ受け付け、その1個の入力データに対応する出力データを1個だけ出力するモデルであって、現時点の前記入力時系列データと前記モデルのパラメータの積と、前記モデルのパラメータを含む減衰項と前記モデルの直前の出力データとの積の和を演算することによって前記変換時系列データを演算する1個以上の前記モデルを有する
データ処理装置。 - 前記時系列データ変換手段は、前記入力時系列データを入力する複数個の前記モデルが並列に組み合わされた構成を有する
請求項1に記載のデータ処理装置。 - 前記時系列データ変換手段は、前記入力時系列データを入力する第1のモデルと、前記第1のモデルに対して直列に接続され、前記第1のモデルの出力を入力とする第2のモデルとを有する1個以上の組を、任意の数だけ並列に組み合わされた構成を有する
請求項2に記載のデータ処理装置。 - 前記時系列データ変換手段は、前記入力時系列データを恒等変換する恒等変換手段をさらに有する
請求項2に記載のデータ処理装置。 - 前記時系列データ変換手段のパラメータは重み係数そのものではなく、重み係数を単調関数で写像したものである
請求項1に記載のデータ処理装置。 - 前記時系列データ変換手段と前記関数近似手段は、コスト関数を最小化もしくは極小化するように前記パラメータを更新する
請求項1に記載のデータ処理装置。 - 前記コスト関数は、前記出力時系列データとその教師データとの誤差の二乗和である
請求項6に記載のデータ処理装置。 - データ処理装置のデータ処理方法において、
前記データ処理装置は、
学習された特性に基づいて、入力時系列データを変換時系列データに変換する時系列データ変換手段と、
学習された入出力変数間の関数関係に基づいて、前記変換時系列データから出力時系列データを生成する関数近似手段と
を備え、
前記時系列データ変換手段と前記関数近似手段は、それぞれが有するパラメータを自律的に更新し、
前記時系列データ変換手段は、入力データを1度に1個だけ受け付け、その1個の入力データに対応する出力データを1個だけ出力する1個以上のモデルにより、現時点の前記入力時系列データと前記モデルのパラメータの積と、前記モデルのパラメータを含む減衰項と前記モデルの直前の出力データとの積の和を演算することによって前記変換時系列データを演算する
データ処理方法。 - 入力データを1度に1個だけ受け付け、その1個の入力データに対応する出力データを1個だけ出力する1個以上のモデルにより、現時点の前記入力時系列データと前記モデルのパラメータの積と、前記モデルのパラメータを含む減衰項と前記モデルの直前の出力データとの積の和を演算して前記変換時系列データを演算することにより、学習された特性に基づいて前記入力時系列データを前記変換時系列データに変換する時系列データ変換ステップと、
学習された入出力変数間の関数関係に基づいて、前記変換時系列データから出力時系列データを生成する関数近似ステップと、
前記時系列データ変換ステップと前記関数近似ステップの処理のパラメータを、それぞれ自律的に更新する更新ステップと
を含む処理をコンピュータに実行させるプログラム。 - 請求項9に記載のプログラムが記録されている記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007291576A JP2009116770A (ja) | 2007-11-09 | 2007-11-09 | データ処理装置および方法、プログラム、並びに記録媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007291576A JP2009116770A (ja) | 2007-11-09 | 2007-11-09 | データ処理装置および方法、プログラム、並びに記録媒体 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009116770A true JP2009116770A (ja) | 2009-05-28 |
Family
ID=40783826
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007291576A Withdrawn JP2009116770A (ja) | 2007-11-09 | 2007-11-09 | データ処理装置および方法、プログラム、並びに記録媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2009116770A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013097723A (ja) * | 2011-11-04 | 2013-05-20 | Nippon Telegr & Teleph Corp <Ntt> | テキスト要約装置、方法及びプログラム |
JP2020009468A (ja) * | 2013-08-02 | 2020-01-16 | ソウル マシーンズ リミティド | 神経行動学的アニメーションのためのシステム |
CN111684474A (zh) * | 2018-03-13 | 2020-09-18 | 欧姆龙株式会社 | 运算装置、运算方法及其程序 |
-
2007
- 2007-11-09 JP JP2007291576A patent/JP2009116770A/ja not_active Withdrawn
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013097723A (ja) * | 2011-11-04 | 2013-05-20 | Nippon Telegr & Teleph Corp <Ntt> | テキスト要約装置、方法及びプログラム |
JP2020009468A (ja) * | 2013-08-02 | 2020-01-16 | ソウル マシーンズ リミティド | 神経行動学的アニメーションのためのシステム |
US11527030B2 (en) | 2013-08-02 | 2022-12-13 | Soul Machines Limited | System for neurobehavioural animation |
US11908060B2 (en) | 2013-08-02 | 2024-02-20 | Soul Machines Limited | System for neurobehaviorual animation |
CN111684474A (zh) * | 2018-03-13 | 2020-09-18 | 欧姆龙株式会社 | 运算装置、运算方法及其程序 |
CN111684474B (zh) * | 2018-03-13 | 2024-04-16 | 欧姆龙株式会社 | 运算装置、运算方法及记录介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102424893B1 (ko) | 보조 작업들을 통한 강화 학습 | |
JP4803212B2 (ja) | データ処理装置、データ処理方法、及びプログラム | |
JP4169063B2 (ja) | データ処理装置、データ処理方法、及びプログラム | |
JP4710931B2 (ja) | 学習装置、学習方法、およびプログラム | |
US10860927B2 (en) | Stacked convolutional long short-term memory for model-free reinforcement learning | |
CN112119404A (zh) | 样本高效的强化学习 | |
US11182676B2 (en) | Cooperative neural network deep reinforcement learning with partial input assistance | |
KR20070100160A (ko) | 학습 장치, 학습 방법, 및 프로그램 | |
JP2007299366A (ja) | 学習装置および学習方法、認識装置および認識方法、生成装置および生成方法、認識生成装置および認識生成方法、並びにプログラム | |
JP2007280053A (ja) | データ処理装置、データ処理方法、およびプログラム | |
US20210158141A1 (en) | Control input scheme for machine learning in motion control and physics based animation | |
JP2010020445A (ja) | 学習装置、学習方法、およびプログラム | |
KR102577188B1 (ko) | 목표 시스템에 대한 제어 시스템 생성 | |
JP2007265345A (ja) | 情報処理装置および方法、学習装置および方法、並びにプログラム | |
KR20220134619A (ko) | 부트스트랩된 잠재 예측을 사용한 에이전트 제어를 위한 학습 환경 표현 | |
JP2009116770A (ja) | データ処理装置および方法、プログラム、並びに記録媒体 | |
US11195116B2 (en) | Dynamic boltzmann machine for predicting general distributions of time series datasets | |
JP7123938B2 (ja) | データ・シーケンスに基づく予測モデルの双方向学習のための学習装置、方法及びコンピュータ・プログラム | |
Chen | Quantum deep Q-learning with distributed prioritized experience replay | |
JP2022189799A (ja) | Few-shot模倣のためのデモンストレーション条件付き強化学習 | |
WO2020054402A1 (ja) | ニューラルネットワーク処理装置、コンピュータプログラム、ニューラルネットワーク製造方法、ニューラルネットワークデータの製造方法、ニューラルネットワーク利用装置、及びニューラルネットワーク小規模化方法 | |
Walravens et al. | Spiking neural network implementation on fpga for robotic behaviour | |
EP4035079A1 (en) | Upside-down reinforcement learning | |
Li et al. | A parallel heterogeneous policy deep reinforcement learning algorithm for bipedal walking motion design | |
JP2007280057A (ja) | データ処理装置、データ処理方法、およびプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20110201 |