説明

データ処理装置、データ処理方法、およびプログラム

【課題】ロボット等に、実時間性が要求されるタスクを行わせる。
【解決手段】時系列パターンを表現する時系列パターンモデルを有する複数のノードで構成される入力ネットワークnet1と出力ネットワークnet2とのノードどうしが結合されている入出力関係モデルM11における入力ネットワークnet1を、入力データに基づいて、自己組織的に更新するとともに、出力ネットワークnetout2を、出力データに基づいて、自己組織的に更新し、入力ネットワークnet1のフレーム単位の入力データに対する勝者ノードと、出力ネットワークnet2の、フレーム単位の入力データの時刻から一定の時間だけ遅れたフレーム単位の出力データに対する勝者ノードとの結合重みを強めるように更新する。本発明は、例えば、ロボットなどに適用できる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データ処理装置、データ処理方法、およびプログラムに関し、特に、例えば、ロボット等が、実時間性が要求されるタスクを行うことができるようにするデータ処理装置、データ処理方法、およびプログラムに関する。
【背景技術】
【0002】
例えば、自律的にタスクを行うロボットの実現には、順モデルまたは逆モデルを利用することができる。
【0003】
図1は、順モデルと逆モデルの概念を示している。
【0004】
ある時系列データ(時系列のデータ)としての入力データに対して、他の時系列データとしての出力データを出力する制御対象が与えられ、制御対象に関する詳細な情報はわからないが(制御対象の内部がわからないが)、制御対象に与えられる入力データと、その入力データに対して制御対象から得られる出力データは観測することができることとする。
【0005】
ここで、制御対象に与えられる入力データと、その入力データに対して制御対象から得られる出力データとは、観測することができれば、どのような物理量でも良い。また、制御対象は、入力データを与えることができ、かつ、その入力データに対して出力データを得ることができるものであれば、どのような対象(もの)でも良い。
【0006】
従って、例えば、ボールや、楽器、自動車、ガスヒータその他の種々のものが、制御対象となり得る。即ち、例えば、ボールについては、入力データとしての力を加える(与える)ことで、その入力データに対して変化する出力データとしてのボールの位置や速度が得られる。また、例えば、自動車については、入力データとしてのハンドルや、アクセル、ブレーキなどの操作をする(与える)ことで、その入力データに対して変化する出力データとしての自動車の位置や速度を得ることができる。さらに、例えば、ガスヒータについては、入力データとしての火力を調整する操作をすることで、その入力データに対して変化する出力データとしての部屋の温度を得ることができる。
【0007】
以上のように、制御対象に入力データを与え、それに対して出力データが得られる場合に、その制御対象をモデル化したもの(モデル)が順モデルである。
【0008】
順モデルは、入力データを入力すると(入力データが与えられると)、その入力データに対して、制御対象から得られる出力データの推定値を出力する。従って、順モデルによれば、制御対象に対して、実際の入力データを与えなくても、その入力データに対して、制御対象から得られる出力データを推定することができる。
【0009】
一方、制御対象から得られる出力データの目標値を決定し、その目標値となる出力データを得るために、制御対象に与えるべき入力データを推定することができるモデルが逆モデルである。順モデルは、入力データから出力データへの写像とみなすことができるが、その逆写像が逆モデルである。
【0010】
ここで、逆モデルによって求められる、目標値となる出力データを得るために、制御対象に与えるべき入力データを、以下、適宜、制御データともいう。
【0011】
以上のような順モデルや逆モデルは、上述したように、ロボット(の構成)に利用することができる。
【0012】
即ち、いま、ロボットが、マイク(マイクロフォン)やカメラを備え、音声(音)データや画像データを入力することができ、かつ、スピーカやアクチュエータ(モータ)を備え、音声(音声データ)を出力し、また、モータデータ(モータ信号)にしたがってモータが駆動することにより、アームを動かすことができることとする。
【0013】
かかるロボットにおいて、ある音声データや画像データなどの入力データに応じて、出力データとしての音声データを出力させ、また、所望のアームの動作をさせる出力データとしてのモータデータを出力させる場合、従来においては、音声認識装置や画像認識装置を用いて、ロボットに入力される音声データや画像データを認識した認識結果に応じて、どのような音声データを出力するべきか、あるいは、どのようなモータデータを出力するべきかを、あらかじめプログラミング(デザイン)しておくことが行われる。
【0014】
これに対して、順モデルを利用すれば、図2に示すように、ある音声データや画像データに応じて、所望の音声データや、所望のアーム動作をさせるモータデータを出力するロボットを制御対象として想定し、その制御対象として想定したロボット(以下、適宜、想定ロボットと呼ぶ)の順モデルとして、実際のロボットを構成することが可能となる。即ち、想定ロボットに対する入力データと出力データの関係を、実際のロボットに学習させることができれば、想定ロボットの順モデルとしてのロボットを構成することができる。
【0015】
具体的には、想定ロボットに入力する音声データや画像データなどの入力データと、想定ロボットが各入力データに対応して出力すべき音声データやモータデータなどの出力データとのセットをあらかじめ用意し、実際のロボットに与える。実際のロボットにおいて、外部から与えられた入力データと出力データのセット(以下、適宜、教示データという)だけを用いて、入力データに対応する出力データを推定する(出力する)想定ロボットの順モデルを求めることができれば、実際に入力される音声データや画像データなどの入力データに応じて、所望の音声データやモータデータなどの出力データを出力することが可能となる。
【0016】
また、逆モデルを利用すれば、図3に示すように、ロボットのアームを制御対象として、その制御対象であるアームを制御するアーム制御器を構成することが可能となる。
【0017】
即ち、いま、ロボットのアームが、入力データとしてのモータデータに応じて駆動するモータによって動き、その結果、アームの先端の位置が変化するとする。さらに、ロボットの重心を原点とし、ロボットの前方(正面)方向をx軸と、(ロボットから見て)右方向をy軸と、上方向をz軸と、それぞれする3次元座標系に基づき、その3次元座標系の(x,y,z)座標でアームの先端の位置を表すこととする。この場合、モータデータに応じてモータが駆動し、さらにアームの先端の位置が変化することで、アームの先端がある軌跡を描く。ここで、アームの先端が描く軌跡(先端位置軌跡)の座標のシーケンスを、先端位置軌跡データという。
【0018】
アームが所望の先端位置軌跡を描くようにするには、つまり、出力データとしての所望の先端位置軌跡データを出力するようにするには、アームがそのような先端位置軌跡を描くようにモータを駆動するモータデータを、入力データとしてモータに与える必要がある。
【0019】
いま、入力データとしてのモータデータと、そのモータデータがモータに与えられたときの出力データとしての先端位置軌跡データとのセットである教示データだけを用いて、出力データとしての、ある先端位置軌跡データを目標値として得ることができる入力データ(制御データ)としてのモータデータを推定するアームの逆モデルを求めることができれば、その逆モデルは、目標値である先端位置軌跡データに対して、対応するモータデータを決定するアーム制御器に利用することができる。
【0020】
このようなアームの逆モデルとしてのアーム制御器によれば、ロボットに対して、入力データとしての先端位置軌跡データを入力すると、ロボットは、アーム制御器を用いることで、対応するモータデータ(制御データ)を決定することができる。そして、ロボットが、このモータデータにしたがってモータを駆動すれば、ロボットのアームは、入力データとしての先端位置軌跡データに対応した軌跡を描くように移動する。
【0021】
以上のように、入力データと出力データとのセット(教示データ)だけを用いて、順モデルや逆モデルを求めることができれば、その順モデルや逆モデルを用いて、各入力データに応じた出力データを出力するロボットを、容易に構成することが可能となる。
【0022】
以上のような順モデルや逆モデルを求める方法としては、線形システムを用いたモデル化がある。
【0023】
線形システムを用いたモデル化では、例えば、図4に示すように、時刻tにおける、制御対象への入力データをu(t)とするとともに、出力データをy(t)として、出力データy(t)と入力データu(t)との関係、つまり制御対象を、例えば、式(1)および式(2)で与えられる線形システムとして近似する。
【0024】
【数1】

【0025】
【数2】

【0026】
ここで、x(t)は、時刻tにおける線形システムの状態変数と呼ばれ、A, B, C は係数である。また、ここでは、説明を簡単にするために、入力データu(t)および出力データy(t)を1次元ベクトル(スカラ)とするとともに、状態変数x(t)をn次元ベクトルとすると(ここでは、nは2以上の整数値)、A,B,Cは、それぞれn×n行列、n×1行列、1×n行列で与えられる定数の行列となる。
【0027】
線形システムを用いたモデル化では、観測することができる入力データu(t)と、その入力データu(t)が制御対象に与えられたときに観測される出力データy(t)との関係が、式(1)および式(2)を満たすように、行例A,B,Cを決定することで、制御対象の順モデルが得られる。
【0028】
しかしながら、線形システムを用いたモデル化は、複雑な制御対象、即ち、例えば、非線形な特性を持つ制御対象をモデル化するには十分ではない。
【0029】
即ち、現実の制御対象は複雑であり、非線形な特性を有することが少なくないが、かかる制御対象を、単純な線形システムとして近似してモデル化すると、順モデルが入力データに対して推定する出力データや、逆モデルが出力データに対して推定する入力データ(制御データ)の推定誤差が大になり、高精度の推定を行うことが困難となる。
【0030】
そこで、非線形な特性を持つ制御対象に対する順モデルや逆モデルを得る方法としては、例えば、ニューラルネットワークを用いて、教示データ、即ち、制御対象に与えられる入力データと、その入力データが与えられたときに制御対象から観測される出力データとのセットを学習する方法がある。ここで、ニューラルネットワークとは、生体の神経細胞(ニューロン)を模擬した人工素子を相互接続して構成されるネットワークであり、外部から与えられる教示データの関係、つまり、入力データと出力データとの関係を学習することができる。
【0031】
しかしながら、ニューラルネットワークによって、制御対象を適切にモデル化するには、制御対象の複雑性に応じて、ニューラルネットワークの規模を大にする必要がある。ニューラルネットワークの規模が大になると、学習に要する時間が飛躍的に増大し、また、安定した学習も難しくなる。このことは、入力データや出力データの次元数が大である場合も同様である。
【0032】
一方、入力データと出力データとのセット(教示データ)だけを用いて、順モデルや逆モデルを求める場合には、教示データを用いて学習を行い、教示データが、幾つかのパターンのうちのいずれに該当するかを認識する必要がある。即ち、教示データとしての入力データや出力データのパターンを学習して認識する必要がある。
【0033】
パターンを学習して認識を行う技術は、一般にパターン認識(pattern recognition)と呼ばれ、パターン認識における学習は、教師あり学習(supervised learning)と、教師なし学習(unsupervised learning)とに分けることができる。
【0034】
教師あり学習とは、各パターンの学習データがどのクラスに属するかの情報(これを正解ラベルと呼ぶ)を与えて、各パターンごとに、そのパターンに属する学習データを学習する方法であり、ニューラルネットワークや、HMM(Hidden Markov Model)などを用いた学習方法が数多く提案されている。
【0035】
ここで、図5は、教師あり学習の一例を示している。
【0036】
教師あり学習では、学習に利用する学習データが、想定したカテゴリ(クラス)(例えば、各音素のカテゴリや、各音韻のカテゴリ、各単語のカテゴリなど)ごとに用意される。例えば、"A","B","C"という発声の音声データを学習する場合、"A","B","C"それぞれの多数の音声データが用意されることになる。
【0037】
一方、学習に利用するモデル(各カテゴリの学習データを学習させるモデル)も、想定したカテゴリごとに用意される。ここで、モデルは、パラメータによって定義される。例えば、音声データの学習には、モデルとして、HMMなどが用いられるが、HMMは、ある状態から他の状態(元の状態を含む)に遷移する状態遷移確率や、HMMから出力される観測値の確率密度を表す出力確率密度関数などによって定義される。
【0038】
教師あり学習では、各カテゴリ(クラス)のモデルの学習が、そのカテゴリの学習データのみを用いて行われる。即ち、図5では、カテゴリ"A"のモデルの学習は、カテゴリ"A"の学習データのみを用いて行われ、カテゴリ"B"のモデルの学習は、カテゴリ"B"の学習データのみを用いて行われる。同様に、カテゴリ"C"のモデルの学習も、カテゴリ"C"の学習データのみを用いて行われる。
【0039】
教師あり学習においては、このように、各カテゴリの学習データを用いて、そのカテゴリのモデルの学習を行う必要があるため、カテゴリごとに、そのカテゴリの学習データを用意し、各カテゴリのモデルの学習に対して、そのカテゴリの学習データを与えて、カテゴリごとのモデルを得る。その結果、教師あり学習によれば、正解ラベルに基づき、クラスごとのテンプレート(正解ラベルが表すクラス(カテゴリ)のモデル)を得ることができる。
【0040】
そして、認識時には、ある認識対象のデータに対し、その認識対象のデータに最も適合(match)するテンプレート(尤度が最も高いテンプレート)が求められ、そのテンプレートの正解ラベルが、認識結果として出力される。
【0041】
一方、教師なし学習は、各パターンの学習データに正解ラベルが与えられない状況で行われる学習であり、例えば、ニューラルネットなどを用いた学習方法があるが、正解ラベルが与えられないという点で、教師あり学習とは大きく異なる。
【0042】
ところで、パターン認識は、そのパターン認識によって認識しようとする認識対象のデータ(信号)が観測される信号空間の量子化と見ることができる。特に、認識対象のデータがベクトルである場合のパターン認識は、ベクトル量子化(vector quantization)と呼ばれることがある。
【0043】
ベクトル量子化の学習(コードブックの生成)では、認識対象のデータが観測される信号空間上に、クラスに対応する代表的なベクトル(これをセントロイドベクトルと呼ぶ)が配置される。
【0044】
ベクトル量子化の教師なし学習として代表的な手法の一つに、K-平均法(K-means clustering method)がある。K-平均法は、初期状態として、セントロイドベクトルを適当に配置し、学習データとしてのベクトルを、最も距離の近いセントロイドベクトルに割り当て、各セントロイドベクトルに割り当てられた学習データの平均ベクトルによってセントロイドベクトルを更新することを繰り返す学習手法である。なお、セントロイドベクトルの集まりは、コードブックと呼ばれる。
【0045】
ここで、多数の学習データを蓄積し、そのすべてを用いて学習を行う方法は、バッチ学習(batch learning)と呼ばれ、K-平均法は、バッチ学習に分類される。バッチ学習に対して、学習データを観測するたびに、その学習データを用いて学習を行い、パラメータ(セントロイドベクトルのコンポーネントや、HMMを定義する出力確率密度関数など)を少しずつ更新する学習は、オンライン学習(on-line learning)と呼ばれる。
【0046】
オンライン学習としては、コホネン(T.Kohonen)の提案したSOM(self-organization map)による学習が知られている。SOMによる学習では、SOMの入力層と出力層の結合重みが、オンライン学習により少しずつ更新(修正)されていく。
【0047】
即ち、SOMにおいて、出力層は、複数のノードを有し、出力層の各ノードには、重みベクトルが与えられる。この重みベクトルをセントロイドベクトルとした場合、ベクトル量子化における学習を行うことができる。
【0048】
具体的には、SOMの出力層のノードにおいて、重みベクトルと、学習データとしてのベクトルとの距離が最も近いノードが、その学習データとしてのベクトルに最も適合する勝者ノードに決定され、その勝者ノードの重みベクトルが、学習データとしてのベクトルに近づくように更新される。さらに、勝者ノードの近傍のノードの重みベクトルも、学習データに少しだけ近づくように更新される。その結果、学習が進むにつれ、重みベクトルが類似したノードどうしは近くなるように、類似しないノードは遠くなるように、出力層の上に配置されていく。従って、出力層には、あたかも学習データに含まれるパターンに応じた地図が構成されていくことになる。このように、学習が進むにつれて、類似するノード(重みベクトルが類似するノード)どうしが近い位置に集まり、学習データに含まれるパターンに応じた地図が構成されていく学習は、自己組織的または自己組織化(self-organization)と呼ばれる。
【0049】
ここで、K-平均法では、学習データに最も距離の近いベクトルのみが更新されることから、その更新方法はWTA(winner-take-all)と呼ばれる。一方、SOMによる学習では、学習データに最も距離の近いノード(勝者ノード)の重みベクトルだけでなく、勝者ノードの近傍のノードの重みベクトルも更新されるから、その更新方法はSMA(soft-max adaptation)と呼ばれる。WTAで学習を行うと学習結果が局所解に陥りやすいのに対して、SMAで学習を行うと、局所解に陥る問題を改善することができることが知られている。
【0050】
なお、SOMに関しては、例えば、非特許文献1に記載されている。
【0051】
【非特許文献1】T.コホネン、「自己組織化マップ」、シュプリンガー・フェアラーク東京
【発明の開示】
【発明が解決しようとする課題】
【0052】
ところで、ロボットの実世界での振る舞い(行動)をより自然にするため、ロボット自身が自分の行動を通して認知行動の構造を獲得するための枠組みの研究が行われている。この枠組みは、「認知行動アーキテクチャ」と呼ばれる。ここで、認知行動とは、例えば、ロボット等が、外部の状態(ロボット自身の状態も含む)を認知(認識)し、その認知結果に応じて行動をとることを意味する。
【0053】
これまでの多くのロボット行動制御の方法論が、事前に作りこみ(ロボットの設計者等によるプログラミング)を行って行動を発現させていたのに対して、「認知行動アーキテクチャ」は、できる限り作りこみを排除し、自己探索、教示、ものまねなどに基づいて認知行動を獲得させる方法論である。このような「認知行動アーキテクチャ」で行動を獲得したロボットは、与えられた環境に適応し、頑健に振る舞える可能性がある。
【0054】
「認知行動アーキテクチャ」は、例えば、外部の状態を検知するセンサが出力するセンサデータに対して、ロボットを駆動するモータに供給されるモータデータとして、適切なモータデータを計算する問題に抽象化することができる。ここでいう「適切」には、知的であるといった深い意味が込められている。
【0055】
一般に、センサが出力するセンサデータと、モータに供給されるモータデータとは、いずれも連続的な時系列データである。また、現在とるべき行動は、現在の外部の状態のみならず、過去の外部の状態や、過去にとった認知行動等を必要に応じて考慮して決定する必要がある。即ち、現在とるべき認知行動の決定にあたっては、コンテキストを扱う必要性がある。さらに、実世界での認知行動を行うロボットでは、センサデータやモータデータとして、次元数の大きなデータを扱う必要がある。また、かかるロボットで扱うセンサデータやモータデータの振る舞いは複雑であり、線形システムでモデル化することは困難である。そして、「認知行動アーキテクチャ」を実世界に適用するには、上述のようなセンサデータやモータデータを効率良く取り扱う方法が必要となる。
【0056】
そこで、センサデータやモータデータのような時系列データのパターンである時系列パターンを表現する時系列パターンモデルを有する複数のノードから構成される時系列パターン記憶ネットワークによって、多次元のベクトルの時系列であるセンサデータやモータデータなどの時系列データを自己組織的に学習し、さらに、入力データとしての時系列データを学習した時系列パターン記憶ネットワークと、出力データとしての時系列データを学習した時系列パターン記憶ネットワークとのノードどうしを結合し、入力データに基づき、外部の状態を認知し、その認知結果に応じてロボットがとるべき行動に対応する出力データを生成する方法について、本件出願人は、先に提案している(例えば、特願2004-353382号)。
【0057】
先に提案した方法によれば、多次元のベクトルの時系列のような、入力データと出力データとの対応関係(例えば、五十音の音声データと、その音声データをまねた(聞きまねした)音声データとの対応関係)や、センサデータとモータデータとの対応関係のようなクロスモーダルな対応関係(例えば、人が視覚(ビジョン)によって獲得する情報と、その情報に対してとる行動(行う運動)との対応関係)を学習することができる。
【0058】
しかしながら、先に提案した方法では、時系列データの自己組織的な構造生成と、時系列データどうしの間の静的な対応関係の学習とを行うが、その方法を適用することができるタスクとしては、実時間性が要求されないタスクに制限されることがあった。
【0059】
即ち、例えば、動いている物体に対し、その物体を追いかけるような働きかけをするタスクには、現に動いている物体の状態の認知と、その認知結果に応じて物体を追いかけるという行動とを、実時間で連続的に行うことが要求されるが、先に提案した方法では、かかるタスクの学習が困難なことがあった。
【0060】
本発明は、このような状況に鑑みてなされたものであり、例えば、ロボット等が、実時間性が要求されるタスクを行うことができるようにするものである。
【課題を解決するための手段】
【0061】
本発明の一側面のデータ処理装置は、時系列データである入力データと、他の時系列のデータである出力データとの関係の学習を行うデータ処理装置であり、前記入力データから所定の時間単位の入力データを抽出するとともに、前記出力データから前記所定の時間単位の出力データを抽出する入出力データ抽出手段と、前記入力データとしての時系列データのパターンである時系列パターンを表現する時系列パターンモデルを有する複数のノードから構成される入力時系列パターン記憶ネットワークと、前記出力データとしての時系列データのパターンである時系列パターンを表現する時系列パターンモデルを有する複数のノードから構成される出力時系列パターン記憶ネットワークとを有し、前記入力時系列パターン記憶ネットワークのノードと、前記出力時系列パターン記憶ネットワークのノードとが結合されている入出力関係モデルにおける前記入力時系列パターン記憶ネットワークのノードの中から、前記所定の時間単位の入力データに最も適合するノードである入力勝者ノードを決定し、前記入力勝者ノードに基づいて、前記入力時系列パターン記憶ネットワークを、自己組織的に更新する認識学習処理手段と、前記出力時系列パターン記憶ネットワークのノードの中から、前記所定の時間単位の出力データに最も適合するノードである出力勝者ノードを決定し、前記出力勝者ノードに基づいて、前記出力時系列パターン記憶ネットワークを、自己組織的に更新する生成学習処理手段と、前記入力時系列パターン記憶ネットワークの前記所定の時間単位の入力データに対する前記入力勝者ノードと、前記出力時系列パターン記憶ネットワークの、前記所定の時間単位の入力データの時刻から一定の時間だけ遅れた前記所定の時間単位の出力データに対する前記出力勝者ノードとの結合の度合いを表す結合重みを強めるように更新する結合重み更新手段とを備える。
【0062】
本発明の一側面のデータ処理方法、またはプログラムは、時系列データである入力データと、他の時系列のデータである出力データとの関係の学習を行うデータ処理装置のデータ処理方法、または時系列データである入力データと、他の時系列のデータである出力データとの関係の学習を行うデータ処理を、コンピュータに実行させるプログラムであり、前記入力データから所定の時間単位の入力データを抽出するとともに、前記出力データから前記所定の時間単位の出力データを抽出し、前記入力データとしての時系列データのパターンである時系列パターンを表現する時系列パターンモデルを有する複数のノードから構成される入力時系列パターン記憶ネットワークと、前記出力データとしての時系列データのパターンである時系列パターンを表現する時系列パターンモデルを有する複数のノードから構成される出力時系列パターン記憶ネットワークとを有し、前記入力時系列パターン記憶ネットワークのノードと、前記出力時系列パターン記憶ネットワークのノードとが結合されている入出力関係モデルにおける前記入力時系列パターン記憶ネットワークのノードの中から、前記所定の時間単位の入力データに最も適合するノードである入力勝者ノードを決定し、前記入力勝者ノードに基づいて、前記入力時系列パターン記憶ネットワークを、自己組織的に更新し、前記出力時系列パターン記憶ネットワークのノードの中から、前記所定の時間単位の出力データに最も適合するノードである出力勝者ノードを決定し、前記出力勝者ノードに基づいて、前記出力時系列パターン記憶ネットワークを、自己組織的に更新し、前記入力時系列パターン記憶ネットワークの前記所定の時間単位の入力データに対する前記入力勝者ノードと、前記出力時系列パターン記憶ネットワークの、前記所定の時間単位の入力データの時刻から一定の時間だけ遅れた前記所定の時間単位の出力データに対する前記出力勝者ノードとの結合の度合いを表す結合重みを強めるように更新するステップを含む。
【0063】
本発明の一側面では、入出力関係モデルにおいて、前記入力データとしての時系列データのパターンである時系列パターンを表現する時系列パターンモデルを有する複数のノードから構成される入力時系列パターン記憶ネットワークと、前記出力データとしての時系列データのパターンである時系列パターンを表現する時系列パターンモデルを有する複数のノードから構成される出力時系列パターン記憶ネットワークとのノードどうしが結合されている。かかる入出力関係モデルにおける前記入力時系列パターン記憶ネットワークのノードの中から、前記所定の時間単位の入力データに最も適合するノードである入力勝者ノードが決定され、前記入力勝者ノードに基づいて、前記入力時系列パターン記憶ネットワークが、自己組織的に更新される。また、前記出力時系列パターン記憶ネットワークのノードの中から、前記所定の時間単位の出力データに最も適合するノードである出力勝者ノードが決定され、前記出力勝者ノードに基づいて、前記出力時系列パターン記憶ネットワークが、自己組織的に更新される。そして、前記入力時系列パターン記憶ネットワークの前記所定の時間単位の入力データに対する前記入力勝者ノードと、前記出力時系列パターン記憶ネットワークの、前記所定の時間単位の入力データの時刻から一定の時間だけ遅れた前記所定の時間単位の出力データに対する前記出力勝者ノードとの結合の度合いを表す結合重みが強めるように更新される。
【発明の効果】
【0064】
本発明の一側面によれば、例えば、ロボット等が、実時間性が要求されるタスクを行うことができるようになる。
【発明を実施するための最良の形態】
【0065】
以下に本発明の実施の形態を説明するが、本発明の構成要件と、明細書又は図面に記載の実施の形態との対応関係を例示すると、次のようになる。この記載は、本発明をサポートする実施の形態が、明細書又は図面に記載されていることを確認するためのものである。従って、明細書又は図面中には記載されているが、本発明の構成要件に対応する実施の形態として、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その構成要件に対応するものではないことを意味するものではない。逆に、実施の形態が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
【0066】
本発明の一側面のデータ処理装置は、
時系列データである入力データと、他の時系列のデータである出力データとの関係の学習を行うデータ処理装置であり、
前記入力データから所定の時間単位の入力データを抽出するとともに、前記出力データから前記所定の時間単位の出力データを抽出する入出力データ抽出手段(例えば、図25のデータ抽出部312)と、
前記入力データとしての時系列データのパターンである時系列パターンを表現する時系列パターンモデルを有する複数のノードから構成される入力時系列パターン記憶ネットワーク(例えば、図26の時系列パターン記憶ネットワークnet1)と、
前記出力データとしての時系列データのパターンである時系列パターンを表現する時系列パターンモデルを有する複数のノードから構成される出力時系列パターン記憶ネットワーク(例えば、図26の時系列パターン記憶ネットワークnet2)と
を有し、
前記入力時系列パターン記憶ネットワークのノードと、前記出力時系列パターン記憶ネットワークのノードとが結合されている
入出力関係モデル(例えば、図26の入出力関係モデルM11)における前記入力時系列パターン記憶ネットワークのノードの中から、前記所定の時間単位の入力データに最も適合するノードである入力勝者ノードを決定し、前記入力勝者ノードに基づいて、前記入力時系列パターン記憶ネットワークを、自己組織的に更新する認識学習処理手段(例えば、図25の認識学習処理部321)と、
前記出力時系列パターン記憶ネットワークのノードの中から、前記所定の時間単位の出力データに最も適合するノードである出力勝者ノードを決定し、前記出力勝者ノードに基づいて、前記出力時系列パターン記憶ネットワークを、自己組織的に更新する生成学習処理手段(例えば、図25の生成学習処理部322)と、
前記入力時系列パターン記憶ネットワークの前記所定の時間単位の入力データに対する前記入力勝者ノードと、前記出力時系列パターン記憶ネットワークの、前記所定の時間単位の入力データの時刻から一定の時間だけ遅れた前記所定の時間単位の出力データに対する前記出力勝者ノードとの結合の度合いを表す結合重みを強めるように更新する結合重み更新手段(例えば、図25の結合重み更新部333)と
を備える。
【0067】
一側面のデータ処理装置には、
前記入力データから前記所定の時間単位の入力データを抽出する入力データ抽出手段(例えば、図25のデータ抽出部315)と、
前記入出力関係モデルにおける前記入力時系列パターン記憶ネットワークのノードの中から、前記入力データ抽出手段が抽出した前記所定の時間単位の入力データに最も適合するノードである入力勝者ノードを決定する入力勝者ノード決定手段(例えば、図25の勝者ノード決定部342)と、
前記出力時系列パターン記憶ネットワークのノードの中から、前記入力勝者ノード手段が決定した前記入力勝者ノードとの結合が最強のノードを、前記他の時系列データを生成する生成ノードとして決定する生成ノード決定手段(例えば、図25の生成ノード決定部351)と、
前記生成ノードが有する前記時系列パターンモデルに基づいて、前記他の時系列データを生成する生成手段(例えば、図25の時系列生成部361)と
をさらに設けることができる。
【0068】
本発明の一側面のデータ処理方法、またはプログラムは、
時系列データである入力データと、他の時系列のデータである出力データとの関係の学習を行うデータ処理装置のデータ処理方法、または時系列データである入力データと、他の時系列のデータである出力データとの関係の学習を行うデータ処理を、コンピュータに実行させるプログラムであり、
前記入力データから所定の時間単位の入力データを抽出するとともに、前記出力データから前記所定の時間単位の出力データを抽出し(例えば、図29のステップS301)、
前記入力データとしての時系列データのパターンである時系列パターンを表現する時系列パターンモデルを有する複数のノードから構成される入力時系列パターン記憶ネットワーク(例えば、図26の時系列パターン記憶ネットワークnet1)と、
前記出力データとしての時系列データのパターンである時系列パターンを表現する時系列パターンモデルを有する複数のノードから構成される出力時系列パターン記憶ネットワーク(例えば、図26の時系列パターン記憶ネットワークnet2)と
を有し、
前記入力時系列パターン記憶ネットワークのノードと、前記出力時系列パターン記憶ネットワークのノードとが結合されている
入出力関係モデル(例えば、図26の入出力関係モデルM11)における前記入力時系列パターン記憶ネットワークのノードの中から、前記所定の時間単位の入力データに最も適合するノードである入力勝者ノードを決定し、前記入力勝者ノードに基づいて、前記入力時系列パターン記憶ネットワークを、自己組織的に更新し(例えば、図29のステップS3021)、
前記出力時系列パターン記憶ネットワークのノードの中から、前記所定の時間単位の出力データに最も適合するノードである出力勝者ノードを決定し、前記出力勝者ノードに基づいて、前記出力時系列パターン記憶ネットワークを、自己組織的に更新し(例えば、図29のステップS3022)、
前記入力時系列パターン記憶ネットワークの前記所定の時間単位の入力データに対する前記入力勝者ノードと、前記出力時系列パターン記憶ネットワークの、前記所定の時間単位の入力データの時刻から一定の時間だけ遅れた前記所定の時間単位の出力データに対する前記出力勝者ノードとの結合の度合いを表す結合重みを強めるように更新する(例えば、図29のステップS304)
ステップを含む。
【0069】
以下、図面を参照して、本発明の実施の形態について説明するが、その前段階の準備として、時系列パターン記憶ネットワークについて説明する。
【0070】
図6は、時系列パターン記憶ネットワークの例を模式的に示している。
【0071】
時系列パターン記憶ネットワークは、時系列パターンを表現する時系列パターンモデルを有する複数のノードから構成されるネットワークで、そのネットワーク全体で、ノードの数だけの(クラス分けを行う)時系列パターンを記憶する。
【0072】
図6においては、時系列パターン記憶ネットワークは、ノードN1乃至N6の6つのノードから構成されている。
【0073】
時系列パターン記憶ネットワークを構成する各ノードNi(図6では、i=1,2,・・・,6)は、時系列パターンを表現する時系列パターンモデルを有する。また、ノードNiは、他のノードNj(図6では、j=1,2,・・・,6)と結合関係を持つことができる。この結合関係をリンクと呼ぶ。図6では、例えば、ノードN1は、ノードN2,N3と直接の結合関係を有している。また、例えば、ノードN3は、ノードN1,N2,N5,N6と直接の結合関係を有しており、従って、ノードN5とN6は、ノードN3を介して、ノードN1と間接的な結合関係を有している。なお、2つのノードNiとNjとの結合関係としては、その2つのノードNiとNjとの最短の結合関係を考えるものとする。
【0074】
時系列パターン記憶ネットワークの学習(時系列パターン記憶ネットワークに時系列パターンを記憶させる学習)は、時系列データを、学習用の学習データとして行われるが、この学習データは、カテゴリの種類や、カテゴリの数が未知のもので、この点、時系列パターン記憶ネットワークの学習は、前述の図5で説明した教師あり学習と大きく異なる。また、時系列パターン記憶ネットワークの学習に用いられる学習データには、正解ラベルは付与されていない。このため、時系列パターン記憶ネットワークの学習には、前述の図5で説明した教師あり学習を適用することはできない。
【0075】
このように、時系列パターン記憶ネットワークの学習には、教師あり学習を適用することができず、また、学習データは、そのカテゴリの種類も、カテゴリの数も未知である。そこで、時系列パターン記憶ネットワークの学習は、その全体(のノード)によって、学習データの特徴(時系列パターン)を適切に表現することができるように、自己組織的に行われる。
【0076】
なお、時系列パターン記憶ネットワークの学習は、教師なし学習である。また、時系列パターン記憶ネットワークの学習は、ある1つのノードが、必ずしもある1つのカテゴリに対応するように行われるとは限らない。即ち、時系列パターン記憶ネットワークにおいては、1つのノードが1つのカテゴリに対応するように学習が行われる場合もあるし、複数のノードが1つのカテゴリに対応するように学習が行われる場合もある。さらに、1つのノードが複数のカテゴリに対応するように学習が行われる場合もある。従って、仮に、学習データが、明確にカテゴリ分けすることができないものであっても、時系列パターン記憶ネットワークによる学習は行うことができる。
【0077】
次に、図7は、時系列パターン記憶ネットワークのノードNiの構成例を模式的に示している。
【0078】
ノードNiは、時系列パターンを表現する時系列パターンモデル21と、その時系列パターンモデル21の学習に用いる学習データを記憶する学習データ記憶部22とから構成される。
【0079】
ここで、図7では、時系列パターンモデル21として、状態確率遷移モデルの1つであるHMM(連続HMM)が採用されている。また、図7では、HMMは、自己ループと次状態(右隣の状態)への状態遷移だけを有するleft-to-right型の3状態S1,S2,S3を有するものとなっている。図7の時系列パターンモデル21における○印は状態を表し、矢印は状態遷移を表している。なお、時系列パターンモデル21としてのHMMは、left-to-right型や、3状態のもの等に限定されない。
【0080】
時系列パターンモデル21が、図7に示したようなHMMである場合、その時系列パターンモデル21としてのHMMは、状態遷移確率と出力確率密度関数(HMMが離散HMMである場合には、スカラ量である離散的なシンボルが出力される確率)とで定義される。
【0081】
状態遷移確率は、HMMにおいて、状態が遷移する確率で、図7の時系列パターンモデル21における矢印で示した状態遷移それぞれに対して与えられる。出力確率密度関数は、状態遷移時に、HMMから観測される値の確率密度を表す。出力確率密度関数としては、例えば、混合正規分布などが採用される。これらのHMMのパラメータ(状態遷移確率と出力確率密度関数)は、例えば、Baum-Welch 法によって学習(推定)することができる。
【0082】
ノードNiでは、学習データ記憶部22に記憶された学習データの統計的な特性、即ち、学習データ記憶部22に記憶された学習データの時系列パターンが、時系列パターンモデル21において学習され、これにより、時系列パターンモデル21と、学習データ記憶部22に記憶された学習データとが、対応関係を持つことになる。
【0083】
なお、時系列パターン記憶ネットワークの学習、ひいては、ノードNiの時系列パターンモデル21の学習は、時系列パターン記憶ネットワークに対して、時系列データが与えられるごとに学習を行うオンライン学習によって行われる。従って、時系列パターン記憶ネットワークのパラメータ、つまり、ノードNiの時系列パターンモデル21のパラメータ(時系列パターンモデル21がHMMである場合には、上述したように、状態遷移確率と出力確率密度関数)は、時系列パターン記憶ネットワークに対して、時系列データが与えられるたびに、少しずつ更新される。
【0084】
即ち、後述するように、時系列パターン記憶ネットワークの学習が進むにつれ、学習データ記憶部22に記憶される学習データは、時系列パターン記憶ネットワークに与えられた時系列データによって更新され、これにより、少しずつ変化する。そして、その少しずつ変化する学習データによって、時系列パターンモデル21の学習が行われることにより、その時系列パターンモデル21のパラメータも、少しずつ変化していく。
【0085】
次に、図8は、時系列パターン記憶ネットワークの他の例を模式的に示している。
【0086】
図8では、時系列パターン記憶ネットワークは、9個のノードN1乃至N9で構成されており、この9個のノードN1乃至N9は、2次元的に配置されている。即ち、図8では、9個のノードN1乃至N9は、2次元平面上に、横×縦が3×3となるように配置されている。
【0087】
さらに、図8では、2次元的に配置された9個のノードN1乃至N9の、横方向に隣接するノードどうしと、縦方向に隣接するノードどうしに対して、リンク(結合関係)が与えられている。なお、このようなリンクを与えることによって、時系列パターン記憶ネットワークを構成するノードには、空間的に、2次元的に配置される配置構造が与えられているということもできる。
【0088】
時系列パターン記憶ネットワークでは、リンクによって与えられる空間的なノードの配置構造に基づき、その空間上でのある2つのノードどうしの距離を定義することができ、この2つのノードどうしの距離は、その2つのノードそれぞれが有する時系列パターンモデル21が表現する時系列パターンのパターン間距離(時系列パターンどうしの類似性)として用いることができる。
【0089】
なお、2つのノードどうしの距離によって表される時系列パターンのパターン間距離は、2つのノードの結合関係(リンク)に基づくパターン間距離ということができる。
【0090】
2つのノードどうしの距離としては、例えば、その2つのノードどうしを結ぶ最短のパスを構成するリンクの数を採用することができる。この場合、あるノードに注目すると、その注目ノードとの直接のリンクを有するノード(図8では、注目ノードの横方向や縦方向に隣接するノード)は、注目ノードとの距離が最も近く、注目ノードとの直接のリンクを有するノードから先のリンクを辿っていくことで到達することができるノードは、到達するのに辿るリンクの数が多いほど、注目ノードとの距離が遠くなっていく。
【0091】
なお、ノードに与えるリンクは、図6や図8に示したものに限定されるものではない。また、図6や図8に示したリンクは、ノードに対して、2次元的な配置構造を与えるが、リンクは、その他、1次元的な配置構造や3次元的な配置構造等を与えるリンクであっても良い。さらに、ノードには、必ずしもリンクを与える必要はない。
【0092】
即ち、図9は、時系列パターン記憶ネットワークのさらに他の例を模式的に示している。
【0093】
図9では、時系列パターン記憶ネットワークは、図6における場合と同様に、6個のノードN1乃至N6で構成されているが、これらの6個のノードN1乃至N6は、いずれもリンクを有していない。従って、図9の時系列パターン記憶ネットワークを構成するノードN1乃至N6は、リンクによって与えられる空間的な配置構造を有していない。なお、空間的な配置構造を有していないということは、空間的な制約がない配置構造が与えられているということもできる。
【0094】
ここで、ある2つのノードにリンクがない場合には、空間上でのその2つのノードどうしの距離を定義することはできないから、その2つのノードそれぞれが(有する時系列パターンモデル21が)表現する時系列パターンのパターン間距離として、結合関係(リンク)に基づくパターン間距離は用いることができない。そこで、この場合には、例えば、ノードが、ある時系列データ(の観測値)に適合する度合いに基づく順位(以下、適宜、適合順位という)に対応する値を、パターン間距離として用いることができる。
【0095】
即ち、ある時系列データが与えられた場合には、その時系列データに対して、ノードが表現する時系列パターンとの類似性を、そのノードが適合する度合いとして求めることができる。いま、時系列パターン記憶ネットワークを構成するノードのうち、ある時系列データに最も適合するノードである勝者ノードについては、勝者ノードと、時系列パターン記憶ネットワークのあるノードとのそれぞれが表現する時系列パターンのパターン間距離として、そのノードが時系列データに適合する順位(適合順位)に対応する値を採用することができる。
【0096】
具体的には、時系列パターン記憶ネットワークを構成するノードのうち、勝者ノードとなっているノードの適合順位は第1位であり、このノード(勝者ノード)と勝者ノードとの(それぞれが表現する時系列パターンの)パターン間距離は、例えば、その適合順位から1を減算した0とすることができる。
【0097】
また、時系列パターン記憶ネットワークを構成するノードのうち、適合順位が第2位のノードと勝者ノードとのパターン間距離は、例えば、その適合順位から1を減算した1とすることができる。以下、同様に、ノードの適合順位から1を減算して得られる値を、そのノードと、勝者ノード(となっているノード)とのパターン間距離とすることができる。
【0098】
なお、ノードがある時系列データに適合する度合いに基づく順位(適合順位)に対応する値によって表されるパターン間距離は、ノードが時系列データに適合する度合いに基づくパターン間距離ということができる。
【0099】
次に、図10は、時系列パターン記憶ネットワークを用いて、各種の処理を行うデータ処理装置の構成例を示している。
【0100】
信号入力部1には、後述する学習処理や認識処理の対象となるデータ(以下、処理対象データという)が入力される。ここで、処理対象データは、例えば、音や画像、LED(Light Emitting Diode)の明るさ、モータの回転角度や回転角速度などの観測値(外部から観測することができる値(信号))である。また、処理対象データは、例えば、図10のデータ処理装置が適用されるシステムの入力を受け付ける入力デバイス(センサ)が出力するデータであっても良いし、何らかの出力を行う出力デバイスに対して与えられるデータであっても良い。
【0101】
即ち、図10のデータ処理装置が、例えば、2足歩行ロボットその他のロボットに適用され、その2足歩行ロボットが、外部の状況に応じて、何らかの処理を行う場合には、信号入力部1は、外部の状況をセンシングするセンサで構成することができる。具体的には、信号入力部1は、例えば、マイク(マイクロフォン)やカメラなどで構成することができる。
【0102】
信号入力部1がマイクで構成される場合には、そのマイクに対して、外部で発生する音声(人間の音声の他、動物の鳴き声、物音、その他のあらゆる音を含む)が、2足歩行ロボット(データ処理装置が適用されているシステム)に対する入力データとして入力され、対応する音声データが、特徴抽出部2に供給される。また、信号入力部1がカメラで構成される場合には、そのカメラに対して、外部からの光が、2足歩行ロボットに対する入力データとして入力され、対応する画像データが、特徴抽出部2に供給される。
【0103】
また、2足歩行ロボットが、例えば、手や足に相当する部分を、アクチュエータとしてのモータによって動かすことができる場合には、信号入力部1は、そのモータの回転角度や回転速度を計測する計測装置(回転角度や回転速度をセンシングするセンサ)で構成することができる。なお、2足歩行ロボットの手や足に相当する部分を動かすモータは、そのモータを回転駆動させる電気信号としての駆動信号を与える他、手や足に相当する部分に外部から力を加えて動かすことによっても回転するが、計測装置では、そのいずれの回転によって生じた回転角度や回転速度であっても計測することができる。
【0104】
信号入力部1が計測装置で構成される場合には、その計測装置に対して、モータの回転角度や回転速度を表す信号が、2足歩行ロボットからの出力データとして入力されて計測され、その計測結果が、特徴抽出部2に供給される。
【0105】
なお、信号入力部1に入力される処理対象データは、時間的な変化が一定の定常的なデータ(定常信号)であっても良いし、時間的な変化が一定でない非定常なデータ(非定常信号)であっても良い。
【0106】
また、以下では、信号入力部1に対しては、例えば、時系列データの1つである音声が入力されるものとする。さらに、信号入力部1から特徴抽出部2に対しては、いわゆる音声区間の音声データだけが供給されるものとする。なお、音声区間の検出方法は、特に限定されるものではない。また、信号入力部1から特徴抽出部2に対して供給される音声データは、必ずしも、音声区間の長さである必要はなく、適切な長さに区切られていればよい。即ち、信号入力部1から特徴抽出部2に対して供給される音声データは、例えば、音素や音韻の単位であっても良いし、単語や文、ある句読点から次の句読点までであっても良い。
【0107】
ここで、信号入力部1から特徴抽出部2に対して供給される処理対象データは、音声データに限定されるものではなく、その区間も、特に限定されるものではない。即ち、信号入力部1から特徴抽出部2に対しては、最も良い方法で適当な長さに区切られた処理対象データが供給されれば良い。なお、信号入力部1から特徴抽出部2に対して供給される処理対象データ(の区間)は、一定であっても良いし、一定でなくても良い。
【0108】
特徴抽出部2は、信号入力部1からの処理対象データとしての時系列データである音声データから特徴量を抽出し、その結果得られる時系列データである時系列の特徴量を、認識部3と学習部4に供給する。即ち、特徴抽出部2は、信号入力部1からの音声データに対して一定時間間隔で周波数分析などの処理を施し、例えば、メルケプストラム係数(MFCC(Mel Frequency Cepstrum Coefficient))などの特徴量を抽出して、そのメルケプストラム係数の時系列データを、認識部3と学習部4に供給する。なお、特徴抽出部2から認識部3と学習部4に供給される時系列データも、外部から観測することができる観測値である。
【0109】
認識部3は、記憶部5に記憶された時系列パターン記憶ネットワークに基づき、特徴抽出部2から供給される時系列データを認識し、その認識結果を出力する。
【0110】
ここで、学習部4は、記憶部5に記憶された時系列パターン記憶ネットワークを、特徴抽出部2から供給される時系列データ(の観測値)に基づいて、自己組織的に更新する。即ち、学習部4は、特徴抽出部2から供給される時系列データに基づいて、記憶部5に記憶された時系列パターン記憶ネットワークのパラメータを更新する。なお、このパラメータの更新のことを学習と呼ぶ場合がある。
【0111】
学習部4では、正解ラベルの付与されていない時系列データを繰り返し与えると、その与えられた時系列データの中の特徴的なパターン(時系列パターン)を自己組織的に獲得していく教師なし学習が実行される。その結果、記憶部5の時系列パターン記憶ネットワークには、代表的な時系列パターンが効率的に記憶される。即ち、特徴抽出部2が認識部3と学習部4に供給する時系列データは、幾つかのパターン(時系列パターン)に分類することができ、学習部4では、時系列パターン記憶ネットワークに、時系列データの代表的な時系列パターンを記憶させるための学習が行われる。
【0112】
記憶部5は、時系列パターン記憶ネットワークを記憶しており、この時系列パターン記憶ネットワーク(のパラメータ)は、学習部4によって適宜更新される。
【0113】
生成部6には、制御データが供給される。生成部6に供給される制御データは、記憶部5の時系列パターン記憶ネットワークが記憶している時系列パターンのうちのいずれかを表すもの(後述するノードラベル)で、生成部6は、記憶部5の時系列パターン記憶ネットワークに基づき、そこに供給される制御データが表す時系列パターンの時系列データを生成して出力する。
【0114】
次に、図11は、図10の学習部4の構成例を示している。
【0115】
学習部4は、時系列データ記憶部31と学習処理部32とから構成される。
【0116】
時系列データ記憶部31には、特徴抽出部2から、(1区間の)新たな時系列データとしての特徴量の系列が供給される。時系列データ記憶部31は、特徴抽出部2からの新たな時系列データを、一時的に(学習処理部32による新たな時系列データを用いた処理が終了するまで)記憶する。
【0117】
学習処理部32は、記憶部5に記憶された時系列パターン記憶ネットワークを、時系列データ記憶部31に記憶された新たな時系列データ(の観測値)に基づいて、自己組織的に更新する。
【0118】
次に、図12は、図11の学習処理部32の構成例を示している。
【0119】
スコア計算部41は、記憶部5に記憶された時系列パターン記憶ネットワークを構成する各ノードについて、そのノードが、時系列データ記憶部31に記憶された時系列データ(の観測値)に適合する度合いをスコアとして求め、勝者ノード決定部42に供給する。即ち、ノードが有する時系列パターンモデル21が、例えば、図7に示したようにHMMである場合には、スコア計算部41は、ノードが有する時系列パターンモデル21としてのHMMから、時系列データ記憶部31に記憶された時系列データが観測される尤度を求め、そのノードのスコアとして、勝者ノード決定部42に供給する。
【0120】
勝者ノード決定部42は、記憶部5に記憶された時系列パターン記憶ネットワークにおいて、時系列データ記憶部31に記憶された時系列データに最も適合するノードを求め、そのノードを、勝者ノードに決定する。
【0121】
即ち、勝者ノード決定部42は、記憶部5に記憶された時系列パターン記憶ネットワークを構成するノードのうちの、スコア計算部41からのスコアが最も高いノードを勝者ノードとして決定する。そして、勝者ノード決定部42は、勝者ノードを表す情報を、重み決定部43に供給する。
【0122】
ここで、時系列パターン記憶ネットワークを構成するノードには、各ノードを識別するためのラベルであるノードラベルを付しておくことができる。そして、勝者ノードを表す情報、その他のノード表す情報としては、ノードラベルを採用することができる。なお、ノードラベルは、ノード自体を識別するラベルであり、正解が何であるかを表す正解ラベルとは、何ら関係がない。
【0123】
重み決定部43は、勝者ノード決定部42から供給されるノードラベルが表す勝者ノードに基づき、記憶部5に記憶された時系列パターン記憶ネットワークを構成する各ノードについて、後述する更新重みを決定し、学習データ更新部44に供給する。
【0124】
即ち、重み決定部43は、記憶部5に記憶された時系列パターン記憶ネットワークを構成する各ノード(勝者ノードを含む)の更新重みを、そのノードと、勝者ノードとのパターン間距離に基づいて決定し、学習データ更新部44に供給する。
【0125】
ここで、ノードが有する時系列パターンモデル21(図7)は、時系列データ記憶部31(図11)に記憶された新たな時系列データを用いて更新されるが、ノードの更新重みとは、そのノードが有する時系列パターンモデル21の更新によって、その時系列パターンモデル21が受ける新たな時系列データの影響の度合いを表す。従って、ノードの更新重みが0であれば、そのノードが有する時系列パターンモデル21は、新たな時系列データの影響を受けない(更新されない)。
【0126】
なお、重み決定部43において、記憶部5に記憶された時系列パターン記憶ネットワークを構成する各ノードの更新重みを決定する際のパターン間距離としては、時系列パターン記憶ネットワークのノードが、図6や図8に示したように、リンクを有する場合には、そのノードと勝者ノードとの結合関係に基づくパターン間距離を採用し、また、時系列パターン記憶ネットワークのノードが、図9に示したように、リンクを有しない場合には、そのノードが、時系列データ記憶部31(図11)に記憶された新たな時系列データに適合する度合いに基づくパターン間距離を採用することができる。
【0127】
即ち、重み決定部43は、記憶部5に記憶された時系列パターン記憶ネットワークを参照し、時系列パターン記憶ネットワークのノードそれぞれと、勝者ノード決定部42からのノードラベルが表す勝者ノードとの結合関係に基づくパターン間距離を求め、そのパターン間距離に基づいて、時系列パターン記憶ネットワークのノードそれぞれの更新重みを決定する。
【0128】
あるいは、重み決定部43は、記憶部5に記憶された時系列パターン記憶ネットワークを参照し、時系列パターン記憶ネットワークのノードそれぞれについて、ノードが、時系列データ記憶部31に記憶された新たな時系列データに適合する度合いとして、例えば、スコア計算部41が求めるのと同様のスコアを求める。さらに、重み決定部43は、時系列パターン記憶ネットワークのノードそれぞれについて、ノードのスコアに基づく順位(適合順位)に対応する値を、新たな時系列データに適合する度合いに基づくパターン間距離として求め、そのパターン間距離に基づいて、時系列パターン記憶ネットワークのノードそれぞれの更新重みを決定する。
【0129】
なお、ノードのスコアは、重み決定部43で求めても良いが、スコア計算部41から重み決定部43に供給するようにしても良い。
【0130】
学習データ更新部44は、記憶部5に記憶された時系列パターン記憶ネットワークの各ノードが有する学習データ記憶部22(図7)に記憶された学習データを更新する。
【0131】
即ち、学習データ更新部44は、ノードが有する学習データ記憶部22に既に記憶されている学習データと、時系列データ記憶部31に記憶された時系列データとを、重み決定部43からの、対応するノードの更新重みにしたがって混合し、その混合結果を、新たな学習データとして、学習データ記憶部22に記憶させることで、その学習データ記憶部22の記憶内容を更新する。
【0132】
学習データ更新部44は、以上のように、学習データ記憶部22(図7)に記憶された学習データを、更新重みにしたがって更新すると、その更新が終了した旨の終了通知を、モデル学習部45に供給する。
【0133】
モデル学習部45は、学習データ更新部44から終了通知を受けると、その学習データ更新部44による更新後の学習データ記憶部22(図7)に記憶された学習データを用いて、時系列パターンに記憶ネットワークの各ノードが有する時系列パターンモデル21の学習を行うことにより、その時系列パターンモデル21を更新する。
【0134】
従って、モデル学習部45による、ノードが有する時系列パターンモデル21の更新は、そのノードが有する学習データ記憶部22(図7)に記憶されていた学習データ(の一部)と、時系列データ記憶部31に記憶された新たな時系列データとに基づいて行われる。なお、学習データ記憶部22の記憶内容は、更新重みにしたがって更新されるから、モデル学習部45による、時系列パターンモデル21の更新は、更新重みに基づいて行われるということもできる。
【0135】
次に、図13は、図12の重み決定部43において更新重みを決定する決定方法を示している。
【0136】
重み決定部43は、例えば、図13に示すような、勝者ノードとのパターン間距離dの増加に対して更新重みαが減少する関係を表す曲線(以下、距離/重み曲線という)にしたがって、ノードに対する更新重み(ノードの更新重み)αを決定する。距離/重み曲線によれば、勝者ノードとのパターン間距離dが近いノードほど、大きな更新重みαが決定され、パターン間距離dが遠いノードほど、小さな更新重みαが決定される。
【0137】
図13の距離/重み曲線において、横軸(左から右方向)は、更新重みαを示しており、縦軸(上から下方向)は、パターン間距離dを示している。
【0138】
図13では、パターン間距離dとして、例えば、ノードとの結合関係に基づくパターン間距離、即ち、勝者ノードからの距離が採用されており、縦軸に沿って、時系列パターン記憶ネットワークを構成する6つのノードN1乃至N6が、各ノードNiと勝者ノードとの距離に対応する位置(縦軸の位置)に記載されている。
【0139】
図13では、時系列パターン記憶ネットワークを構成する6つのノードN1乃至N6が、その順で、勝者ノードとの距離が近くなっている。時系列パターン記憶ネットワークを構成する6つのノードN1乃至N6のうち、勝者ノードとの距離が最も近いノード、即ち、勝者ノードとの距離が0のノードであるノードN1は、勝者ノード(となっているノード)である。
【0140】
ここで、時系列パターン記憶ネットワークが、例えば、図8に示したような2次元的な配置構造を有し、勝者ノードが、例えば、ノードN6であった場合には、勝者ノードN6とノードN6との距離は最も(1番)近い0であり、ノードN6と勝者ノードN6とのパターン間距離dも0となる。また、勝者ノードN6と、ノードN3,N5、またはN9それぞれとの距離は2番目に近い1であり、ノードN3,N5、またはN9それぞれと勝者ノードN6とのパターン間距離dも1となる。さらに、勝者ノードN6と、ノードN2,N4、またはN8それぞれとの距離は3番目に近い2であり、ノードN2,N4、またはN8それぞれと勝者ノードN6とのパターン間距離dも2となる。また、勝者ノードN6と、ノードN1またはN7それぞれとの距離は最も遠い(4番目に近い)3であり、ノードN1またはN7それぞれと勝者ノードN6とのパターン間距離dも3となる。
【0141】
一方、ノードがリンクを有しない、例えば、図9に示した時系列パターン記憶ネットワークについては、ノードが新たな時系列データに適合する度合いに基づくパターン間距離、即ち、ノードが新たな時系列データに適合する度合いに基づく順位(適合順位)に対応する値が、そのノードと勝者ノードとのパターン間距離dとして求められる。即ち、この場合、スコアが最も高い(一番目に高い)ノード(勝者ノード)と勝者ノードとのパターン間距離dは0とされ、スコアが2番目に高いノードと勝者ノードとのパターン間距離dは1とされる。以下、同様に、スコアがk番目に高いノードと勝者ノードとのパターン間距離dはk-1とされる。
【0142】
次に、更新重みαとパターン間距離dとの関係を表す、例えば、図13に示したような距離/重み曲線は、例えば、式(3)によって与えられる。
【0143】
【数3】

【0144】
ここで、式(3)において、定数Gは、勝者ノードの更新重みを表す定数であり、γは、減衰係数で、0<γ<1の範囲の定数である。また、変数Δは、時系列パターン記憶ネットワークを更新する更新方法として、前述したSMAを採用した場合の、勝者ノードの近傍のノード(勝者ノードとのパターン間距離dが近いノード)の更新重みαを調整するための変数である。
【0145】
上述したように、勝者ノードとなっているノードのパターン間距離dとして、0が与えられ、以下、他のノードのパターン間距離dとして、勝者ノードとの距離、または適合順位にしたがって、1,2,・・・が与えられる場合、式(3)において、例えば、G=8,γ=0.5,Δ=1であれば、勝者ノードとなっているノードの更新重みαとして、8(=G)が求められる。以下、勝者ノードとの距離、または適合順位が大になるにしたがって、ノードの更新重みαとしては、4,2,1,・・・と小さくなる値が求められる。
【0146】
ここで、式(3)における減衰係数Δが大きな値である場合には、パターン間距離dの変化に対する更新重みαの変化は緩やかになり、逆に、減衰係数Δが0に近い値である場合には、パターン間距離dの変化に対する更新重みαの変化は急峻になる。
【0147】
従って、減衰係数Δを、例えば、上述した1から少しずつ0に近づけていくように調整すると、パターン間距離dの変化に対する更新重みαの変化は急峻になっていき、更新重みαは、パターン間距離dが大きくなるにしたがって、より小さい値となる。そして、減衰係数Δが0に近くなると、勝者ノード(となっているノード)以外のノードの更新重みαは、ほとんど0となり、この場合、時系列パターン記憶ネットワークを更新する更新方法として、前述したWTAを採用した場合と(ほぼ)等価となる。
【0148】
このように、減衰係数Δを調整することによって、時系列パターン記憶ネットワークを更新する更新方法としてSMAを採用した場合の、勝者ノードの近傍のノードの更新重みαを調整することができる。
【0149】
減衰係数△は、例えば、時系列パターン記憶ネットワークの更新(学習)の開始時は大きな値にし、時間の経過とともに、即ち、更新の回数が増加するにしたがって小さな値にくなるようにすることができる。この場合、時系列パターン記憶ネットワークの更新の開始時は、パターン間距離dの変化に対する更新重みαの変化が緩やかな距離/重み曲線にしたがって、時系列パターン記憶ネットワークの各ノードの更新重みαが決定され、更新(学習)が進む(進行する)につれ、パターン間距離dの変化に対する更新重みαの変化が急峻になっていく距離/重み曲線にしたがって、時系列パターン記憶ネットワークの各ノードの更新重みαが決定される。
【0150】
即ち、この場合、勝者ノード(が有する時系列パターンモデル21)の更新は、学習(更新)の進行にかかわらず、時系列データ記憶部31(図12)に記憶された新たな時系列データの影響を強く受けるように行われる。一方、勝者ノード以外のノード(が有する時系列パターンモデル21)の更新は、学習の開始時は、比較的広い範囲のノード(勝者ノードとのパターン間距離dが小のノードから、ある程度大のノードまで)に亘って、新たな時系列データの影響を受けるように行われる。そして、学習が進行するにつれ、勝者ノード以外のノードの更新は、徐々に狭い範囲のノードについてのみ、新たな時系列データの影響を受けるように行われる。
【0151】
図12の重み決定部43は、以上のようにして、時系列パターン記憶ネットワークの各ノードの更新重みαを決定し、学習データ更新部44では、各ノードが有する学習データ記憶部22に記憶される学習データが、そのノードの更新重みαに基づいて更新される。
【0152】
次に、図14を参照して、ノードが有する学習データ記憶部22に記憶される学習データを更新する更新方法について説明する。
【0153】
いま、あるノードNiが有する学習データ記憶部22には、学習データが既に記憶されており、ノードNiの時系列パターンモデル21は、学習データ記憶部22に既に記憶されている学習データを用いて学習が行われたものであるとする。
【0154】
学習データ更新部44は、上述したように、ノードNiが有する学習データ記憶部22に既に記憶されている学習データ(以下、適宜、旧学習データという)と、時系列データ記憶部31(図12)に記憶された新たな時系列データとを、重み決定部43からのノードNiの更新重みαにしたがって混合し、その混合結果を、新たな学習データとして、学習データ記憶部22に記憶させることで、その学習データ記憶部22の記憶内容を、新たな学習データに更新する。
【0155】
即ち、学習データ更新部44は、旧学習データに対して、新たな時系列データを追加することで、旧学習データと新たな時系列データとを混合した新たな学習データとするが、旧学習データに対する新たな時系列データの追加(旧学習データと新たな時系列データとの混合)は、ノードNiの更新重みαに対応する比にしたがって行われる。
【0156】
ここで、ノードNiの時系列パターンモデル21(図7)の更新は、新たな学習データを用いた学習によって行われるため、新たな時系列データと旧学習データとを混合する比率を変えることによって、更新により時系列パターンモデル21が受ける新たな時系列データの影響の度合い(強さ)を変えることができる。
【0157】
ノードNiにおいて、新たな時系列データと旧学習データとを混合する比率としては、ノードNiの更新重みαに対応した値が採用され、例えば、更新重みαが大であるほど、新たな時系列データの比率が大となる(旧学習データの比率が小となる)ような値とされる。
【0158】
具体的には、ノードNiの学習データ記憶部22には、一定の数の時系列データ(学習データ)が記憶されるものとし、その一定の数をHとする。この場合、ノードNiの時系列パターンモデル21の学習は、常に、H個の学習データ(時系列データ)を用いて行われる。
【0159】
学習データ記憶部22に、常に、一定の数Hの学習データが記憶される場合、新たな時系列データと旧学習データとの混合によって得られる新たな学習データの個数は、H個である必要があり、そのような、新たな時系列データと旧学習データとの混合を、ノードNiの更新重みαに対応した比率で行う方法としては、新たな時系列データと旧学習データとを、比率α:H-αで混合する方法がある。
【0160】
新たな時系列データと旧学習データとを、比率α:H-αで混合する具体的な方法としては、図14に示すように、H個の旧学習データのうちのH-α個の旧学習データに対して、α個の新たな時系列データを追加することにより、H個の新たな学習データを得る方法がある。
【0161】
この場合、学習データ記憶部22に記憶される時系列データの数Hが、例えば、100であり、ノードNiの更新重みαが、例えば、8であれば、学習データ記憶部22の記憶内容は、100個の旧学習データのうちの92個の旧学習データに対して、8個の新たな時系列データを追加することによって得られる100個の新たな学習データに更新される。
【0162】
H個の旧学習データのうちのH-α個の旧学習データに対する、α個の新たな時系列データの追加は、α個の新たな時系列データが得られるのを待って行う方法があるが、この方法では、1個の新たな時系列データが得られるごとに、学習データ記憶部22の記憶内容を更新することができない。
【0163】
そこで、学習データ記憶部22の記憶内容の更新は、1個の新たな時系列データが得られるごとに、その新たな時系列データをα個だけ、H-α個の旧学習データに追加することにより行うことができる。即ち、1個の新たな時系列データをコピーしてα個の新たな時系列データとし、そのα個の新たな時系列データを、H個の旧学習データから古い順にα個を除外して残ったH-α個の旧学習データに追加することにより、学習データ記憶部22の記憶内容の更新を行う。これにより、1個の新たな時系列データが得られるごとに、学習データ記憶部22の記憶内容を更新することができる。
【0164】
以上のように、学習データ記憶部22の記憶内容の更新を行うことにより、学習データ記憶部22には、常に、新しい順のH個の時系列データだけが、学習データとして保持されることになり、その学習データに占める新たな時系列データの割合(比率)は、更新重みαによって調整されることになる。
【0165】
次に、図15のフローチャートを参照して、図10のデータ処理装置で行われる、時系列パターン記憶ネットワークを学習する学習処理について説明する。
【0166】
まず最初に、ステップS1において、学習部4(図11)の学習処理部32は、記憶部5に記憶された時系列パターン記憶ネットワークのパラメータ、即ち、時系列パターン記憶ネットワークの各ノードが有する時系列パターンモデル21(図7)としての、例えばHMMのパラメータを初期化する初期化処理を行う。この初期化処理により、HMMのパラメータ(状態遷移確率と出力確率密度関数)として、適切な初期値が与えられる。なお、初期化処理において、HMMのパラメータにおいて、どのように初期値を与えるかは、特に限定されるものではない。
【0167】
その後、ステップS2において、1個の処理対象データ、即ち、例えば、1の音声区間の音声データが、信号入力部1に入力されると、信号入力部1は、その処理対象データを、特徴抽出部2に供給する。特徴抽出部2は、処理対象データから特徴量を抽出し、その特徴量の時系列データ(1個の新たな時系列データ)を、学習部4に供給する。
【0168】
学習部4(図11)は、特徴抽出部2からの新たな時系列データを、時系列データ記憶部31に一時記憶させ、以下、ステップS3乃至S7において、記憶部5に記憶された時系列パターン記憶ネットワークを、時系列データ記憶部31に記憶された新たな時系列データ(の観測値)に基づいて、自己組織的に更新(学習)する。
【0169】
即ち、学習部4の学習処理部32(図12)では、ステップS3において、スコア計算部41が、時系列データ記憶部31に記憶された新たな時系列データを読み出し、記憶部5に記憶された時系列パターン記憶ネットワークを構成する各ノードについて、そのノードが、新たな時系列データに適合する度合いを表すスコアを求める。
【0170】
具体的には、ノードが有する時系列パターンモデル21(図7)が、例えばHMMである場合には、そのHMMから、新たな時系列データが観測される対数尤度が、スコアとして求められる。ここで、対数尤度の計算方法としては、例えば、ビタビアルゴリズム(Viterbi algorithm)を採用することができる。
【0171】
スコア計算部41は、時系列パターン記憶ネットワークが有するすべてのノードについて、新たな時系列データに対するスコアを計算すると、その各ノードについてのスコアを、勝者ノード決定部42に供給する。
【0172】
勝者ノード決定部42は、ステップS4において、時系列パターン記憶ネットワークを構成するノードのうちの、スコア計算部41からのスコアが最も高いノードを求め、そのノードを勝者ノードに決定する。そして、勝者ノード決定部42は、勝者ノードを表す情報としてのノードラベルを、重み決定部43に供給する。
【0173】
重み決定部43は、ステップS5において、勝者ノード決定部42からのノードラベルが表す勝者ノードを、いわば基準として、時系列パターン記憶ネットワークを構成する各ノードの更新重みを決定する。
【0174】
即ち、重み決定部43は、図13で説明したように、時系列パターン記憶ネットワークの更新(学習)が進むにつれ、パターン間距離dの変化に対する更新重みαの変化が急峻になっていく、式(3)で表される距離/重み曲線にしたがって、時系列パターン記憶ネットワークの各ノードの更新重みαを決定し、学習データ更新部44に供給する。
【0175】
学習データ更新部44は、ステップS6において、時系列パターン記憶ネットワークの各ノードが有する学習データ記憶部22(図7)に記憶された学習データを、重み決定部43からの、対応するノードの更新重みにしたがって更新する。即ち、学習データ更新部44は、図14で説明したように、時系列データ記憶部31に記憶されている新たな時系列データと、ノードの学習データ記憶部22に記憶されている旧学習データとを、そのノードの更新重みαに対応した比率α:H-αで混合することにより、H個の新たな学習データを得て、そのH個の新たな学習データによって、学習データ記憶部22の記憶内容を更新する。
【0176】
学習データ更新部44は、時系列パターン記憶ネットワークのノードすべての学習データ記憶部22(図7)の記憶内容を更新すると、その更新が終了した旨の終了通知を、モデル学習部45に供給する。
【0177】
モデル学習部45は、学習データ更新部44から終了通知を受けると、ステップS7において、時系列パターン記憶ネットワークのパラメータを更新する。
【0178】
即ち、モデル学習部45は、時系列パターン記憶ネットワークの各ノードについて、学習データ更新部44による更新後の学習データ記憶部22に記憶された新たな学習データを用いて、時系列パターンモデル21の学習を行うことにより、その時系列パターンモデル21を更新する。
【0179】
具体的には、ノードが有する時系列パターンモデル21が、例えばHMMである場合には、そのノードが有する学習データ記憶部22に記憶された新たな学習データを用いて、HMMの学習が行われる。この学習では、例えば、HMMの現在の状態遷移確率と出力確率密度関数を初期値とし、新たな学習データを用いて、Baum-Welch法により、新たな状態遷移確率と出力確率密度関数がそれぞれ求められる。そして、その新たな状態遷移確率と出力確率密度関数によって、HMMの状態遷移確率と出力確率密度関数がそれぞれ更新される。
【0180】
その後は、ステップS7からステップS2に戻り、次の処理対象データが、信号入力部1に入力されるのを待って、以下、同様の処理が繰り返される。
【0181】
図15の学習処理によれば、1個の新たな時系列データが得られると、その新たな時系列データに対して、時系列パターン記憶ネットワークを構成するノードの中から、勝者ノードが決定される(ステップS4)。さらに、その勝者ノードを基準として、時系列パターン記憶ネットワークを構成する各ノードの更新重みが決定される(ステップS5)。そして、更新重みに基づいて、時系列パターン記憶ネットワークを構成する各ノードが有する時系列パターンモデル21(図7)のパラメータが更新される。
【0182】
即ち、図15の学習処理では、1個の新たな時系列データに対して、時系列パターン記憶ネットワークを構成するノードのパラメータの更新が1回行われ、以下、同様に、新たな時系列データが得られるたびに、ノードのパラメータの更新が繰り返されることにより、自己組織的に学習が行われる。
【0183】
そして、学習が十分に行われることにより、時系列パターン記憶ネットワークの各ノードが有する時系列パターンモデル21は、ある時系列パターンを学習(獲得)する。時系列パターン記憶ネットワーク全体において学習される時系列パターンの数(種類)は、時系列パターン記憶ネットワークが有するノードの数と一致するので、時系列パターン記憶ネットワークが有するノードの数が、例えば100である場合は、100種類の時系列パターンが学習されることになる。この時系列パターンに基づき、認識部3(図10)では、時系列データ(処理対象データ)を認識する認識処理を行うことが可能となり、生成部6(図10)では、時系列データを生成する生成処理を行うことが可能となる。
【0184】
次に、図16は、図10の認識部3の構成例を示している。
【0185】
認識部3には、図10で説明したように、特徴抽出部2から、(1個の)時系列データが供給され、この時系列データは、スコア計算部51に供給される。
【0186】
スコア計算部51は、学習処理部32(図12)のスコア計算部41と同様に、記憶部5に記憶された時系列パターン記憶ネットワークを構成する各ノードについて、そのノードが、特徴抽出部2からの時系列データ(の観測値)に適合する度合いを表すスコアを求め、勝者ノード決定部52に供給する。
【0187】
勝者ノード決定部52は、学習処理部32(図12)の勝者ノード決定部42と同様に、記憶部5に記憶された時系列パターン記憶ネットワークにおいて、特徴抽出部2からの時系列データに最も適合するノードを求め、そのノードを、勝者ノードとして決定する。
【0188】
即ち、勝者ノード決定部52は、記憶部5に記憶された時系列パターン記憶ネットワークを構成するノードのうちの、スコア計算部51からのスコアが最も高いノードを勝者ノードとして決定する。そして、勝者ノード決定部52は、勝者ノードを表す情報としてのノードラベルを、出力部53に供給する。
【0189】
出力部53は、勝者ノード決定部52からの勝者ノードを表すノードラベルを、特徴抽出部2からの特徴量の時系列データ、ひいては、その特徴量に対応する、信号入力部1に入力された処理対象データの認識結果として出力する。
【0190】
なお、認識部3のスコア計算部51と、学習処理部32(図12)のスコア計算部41とは、いずれか一方のスコア計算部で兼用することが可能である。認識部3の勝者ノード決定部52と、学習処理部32(図12)の勝者ノード決定部42についても、同様である。
【0191】
次に、図17のフローチャートを参照して、図10のデータ処理装置で行われる、時系列データを認識する認識処理について説明する。
【0192】
ステップS21において、1個の処理対象データ、即ち、例えば、1の音声区間の音声データ(時系列データ)が、信号入力部1に入力されると、信号入力部1は、その処理対象データを、特徴抽出部2に供給する。特徴抽出部2は、処理対象データである時系列データから特徴量を抽出し、その特徴量の時系列データを、認識部3に供給する。
【0193】
認識部3(図16)では、ステップS22において、スコア計算部51が、記憶部5に記憶された時系列パターン記憶ネットワークを構成する各ノードが、特徴抽出部2からの時系列データに適合する度合いを表すスコアを求め、勝者ノード決定部52に供給する。
【0194】
勝者ノード決定部52は、ステップS23において、時系列パターン記憶ネットワークを構成するノードのうちの、スコア計算部51からのスコアが最も高いノードを求め、そのノードを勝者ノードとして決定する。そして、勝者ノード決定部52は、勝者ノードを表す情報としてのノードラベルを、出力部53に供給する。
【0195】
出力部53は、勝者ノード決定部52からのノードラベルを、特徴抽出部2からの時系列データ(信号入力部1に入力された処理対象データ)の認識結果として出力し、処理を終了する。
【0196】
なお、出力部53が出力するノードラベル(勝者ノードのノードラベル)は、例えば、制御データとして、生成部6に供給することができる。
【0197】
以上のような、時系列パターン記憶ネットワークを用いた認識処理によれば、その時系列パターン記憶ネットワークのノードの数に応じた細かさの認識結果を得ることができる。
【0198】
即ち、例えば、いま、時系列パターン記憶ネットワークの学習が、3つのカテゴリ"A","B","C"の発声それぞれにより得られた音声データを用いて行われたとする。
【0199】
時系列パターン記憶ネットワークの学習に用いられた3つのカテゴリ"A","B","C"の音声データが、多数の話者の発話を含む場合には、例えば、カテゴリ"A"の音声データであっても、発話速度や、イントネーション、話者の年齢、性別などの違いによって、様々なバリエーションの音声データが存在する。
【0200】
教師あり学習であれば、カテゴリ"A","B","C"の音声データを用いた学習は、カテゴリ"A"の音声データだけ、カテゴリ"B"の音声データだけ、カテゴリ"C"の音声データだけをそれぞれ用いて行われる。従って、各カテゴリの学習結果には、発話速度等の違いによるバリエーションは、生じ得ない。
【0201】
一方、時系列パターン記憶ネットワークの学習では、カテゴリ"A","B","C"の音声データが、それらを区別(分類)することなく用いられる。そして、時系列パターン記憶ネットワークでは、上述したように、その時系列パターン記憶ネットワークが有するノードの数だけの時系列パターンが学習される。
【0202】
従って、時系列パターン記憶ネットワークでは、例えば、それが有するノードの数が3より大であれば、1つのカテゴリ"A"の音声データであっても、そのカテゴリ"A"の音声データの中の、ある1つのバリエーション(の時系列パターン)が、ある1つのノードで学習され、他の1つのバリエーションが、他の1つのノードで学習されることがある。
【0203】
そして、このように、複数のノードにおいて、カテゴリ"A"の音声データの様々なバリエーションが学習された場合、認識処理では、例えば、カテゴリ"A"の音声データが処理対象データとして入力されると、カテゴリ"A"の音声データが学習された複数のノードの中から、処理対象データに最も適合するノードが、勝者ノードとして決定され、その勝者ノードのノードラベルが、認識結果として出力される。
【0204】
即ち、時系列パターン記憶ネットワークを用いた認識処理では、処理対象データが、カテゴリ"A","B","C"のうちのいずれのカテゴリの音声データであるかが決定されるのではなく、時系列パターン記憶ネットワークが学習によって獲得した、そのノードの数だけの時系列パターンのうちのいずれに最も適合するか(類似するか)かが決定される。
【0205】
つまり、時系列パターン記憶ネットワークの学習では、時系列パターン記憶ネットワークが有するノードの数に応じた細かさで時系列パターンが獲得され、時系列パターン記憶ネットワークを用いた認識では、時系列パターン記憶ネットワークが有するノードの数に応じた細かさで、時系列データが分類(クラス分け)される。
【0206】
なお、(十分な)学習が行われた時系列パターン記憶ネットワークの各ノードに対し、そのノードが獲得した時系列パターンに応じて、適切に、カテゴリ"A","B","C"の正解ラベルを付与すれば、時系列パターン記憶ネットワークを用いた認識処理において、時系列データ(処理対象データ)が、カテゴリ"A","B","C"のうちのいずれのカテゴリの音声データであるかの認識結果を得ることができる。
【0207】
次に、図18は、図10の生成部6の構成例を示している。
【0208】
生成部6には、図10で説明したように、制御データが供給される。生成部6に供給される制御データは、記憶部5の時系列パターン記憶ネットワークが記憶している時系列パターン、ひいては、時系列パターン記憶ネットワークを構成するノードのうちのいずれかを表すもので、例えば、ノードラベルである。
【0209】
生成部6に供給された制御データは、生成ノード決定部61に供給される。生成ノード決定部61は、記憶部5に記憶された時系列パターン記憶ネットワークにおいて、そこに供給される制御データが表すノードを、時系列データを生成するのに用いるノード(以下、適宜、生成ノードという)に決定し、その決定結果を、時系列生成部62に供給する。
【0210】
即ち、生成ノード決定部61は、そこに供給される制御データとしてのノードラベルが表すノードを、生成ノードに決定し、その決定結果を、時系列生成部62に供給する。
【0211】
時系列生成部62は、生成ノード決定部61からの決定結果にしたがい、生成ノードが有する時系列パターンモデル21(図7)に基づいて、時系列データを生成し、出力部63に供給する。
【0212】
ここで、時系列パターンモデル21が、例えば、HMMである場合には、時系列生成部62は、生成ノードが有する時系列パターンモデル21としてのHMMにおいて時系列データが観測される尤度を表す出力確率を最大にする時系列データを生成する。なお、HMMを用いた時系列データの生成については、例えば、動的特徴量を利用することで滑らかに変化する時系列データを生成する方法があり、時系列生成部62では、その方法によって、時系列データを生成することができる。このような時系列データの生成方法は、例えば、K. Tokuda, T. Yoshimura, T. Masuko, T. Kobayashi, T. Kitamura, "SPEECH PARAMETER GENERATION ALGORITHMS FOR HMM-BASED SPEECH SYNTHESIS", Proc. of ICASSP 2000, vol.3, pp.1315-1318, June 2000に記載されている。
【0213】
なお、HMMを用いて時系列データを生成する方法としては、その他、例えば、HMMのパラメータを用いた確率的試行に基づく時系列データの生成を繰り返し行い、その平均をとることで、HMMから時系列データを生成する方法なども提案されており、その詳細については、例えば、稲邑哲也、谷江博昭、中村仁彦、「連続分布型隠れマルコフモデルを用いた時系列データのキーフレーム抽出とその復元」、日本機械学会ロボティクス・メカトロニクス講演会2003講演論文集、2P1-3F-C6,2003に記載されている。
【0214】
出力部63は、時系列生成部62からの時系列データを、処理対象データに相当する時系列データに変換して出力する。即ち、時系列生成部62において生成される時系列データは、ノードが有する時系列パターンモデル21の学習に用いられた特徴量の時系列データであり、出力部63は、その特徴量の時系列データを、処理対象データ(に相当するデータ)に変換して出力する。
【0215】
具体的には、例えば、処理対象データが音声データであり、特徴抽出部2が、音声データからメルケプストラム係数を特徴量として抽出することとすると、メルケプストラムの時系列データが、時系列パターンモデル21によって学習されるので、時系列生成部62が生成ノードの時系列パターンモデル21(図7)に基づいて生成する時系列データは、メルケプストラムの時系列データとなる。出力部63は、時系列生成部62において生成されるメルケプストラム(の時系列データ)を、処理対象データに相当する時系列データである音声データに変換する。
【0216】
なお、メルケプストラムの時系列データを音声データ(時領域の音声)に変換する方法としては、例えば、MLSAフィルタ(メル対数スペクトル近似フィルタ)と呼ばれる合成フィルタによって、メルケプストラムの時系列データをフィルタリングする方法がある。MLSAフィルタの詳細については、例えば、今井聖、住田一男、古市千恵子、「音声合成のためのメル対数スペクトル近似(MLSA)フィルタ」、電子情報通信学会論文誌(A)、J66-A, 2, pp.122-129, 1983や、徳田恵一、小林隆夫、斉藤博徳、深田俊明、今井聖、「メルケプストラムをパラメータとする音声のスペクトル推定」、電子情報通信学会論文誌(A)、J74-A, 8, pp.1240-1248, 1991に記載されている。
【0217】
次に、図19のフローチャートを参照して、図10のデータ処理装置で行われる、時系列データ(処理対象データ)を生成する生成処理について説明する。
【0218】
ステップS31では、制御データが、生成部6(図18)に入力される。この制御データは、生成ノード決定部61に供給される。生成ノード決定部61は、記憶部5に記憶された時系列パターン記憶ネットワークを構成するノードのうちの、制御データとしてのノードラベルが表すノードを、生成ノードに決定し、その決定結果を、時系列生成部62に供給する。
【0219】
時系列生成部62は、ステップS33において、生成ノード決定部61からの決定結果にしたがい、記憶部5に記憶された時系列パターン記憶ネットワークを構成するノードのうちの生成ノードが有する時系列パターンモデル21(のパラメータ)に基づいて、時系列データを生成し、出力部63に供給する。出力部63は、ステップS34において、時系列生成部62からの時系列データを、処理対象データに相当する時系列データに変換して出力する。
【0220】
以上のような、時系列パターン記憶ネットワークを用いた生成処理によれば、その時系列パターン記憶ネットワークのノードの数に応じた(時系列パターンの)時系列データを生成することができる。
【0221】
以上のように、時系列パターンモデル21を有する複数のノードから構成される時系列パターン記憶ネットワークを、時系列データに基づいて、自己組織的に更新するようにしたので、長さが一定の時系列データは勿論、長さが一定でない時系列データの教師なし学習、つまり、時系列データの、いわば自律的な学習を、容易に(実用的に)行うことができる。
【0222】
即ち、時系列パターン記憶ネットワークの各ノードは、時系列パターンモデル21を有するから、時系列パターン記憶ネットワークの学習において、ノードの更新、つまり、そのノードが有する時系列パターンモデル21の更新は、他のノードの更新に影響しない。従って、時系列パターン記憶ネットワークを構成するノードが1つ増えても、時系列パターン記憶ネットワークの学習に要する計算量は、単純には、1のノードの更新に要する計算量だけ増えるだけであり、時系列パターン記憶ネットワークの規模、つまり、時系列パターン記憶ネットワークを構成するノードの数を大にしても、時系列パターン記憶ネットワークの学習に要する計算量が飛躍的に増加することはない。従って、大規模な時系列パターン記憶ネットワークであっても、容易に、自己組織的に学習することができる。
【0223】
さらに、かかる時系列パターン記憶ネットワークの学習によれば、各ノードに、時系列データの統計的な特性を表す時系列パターンが記憶されるので、その時系列パターンを用いて、時系列データの認識や生成を、容易に行うことができる。
【0224】
なお、学習処理、認識処理、生成処理は、例えば、音声データ、画像データ、モータを駆動する信号(モータデータ)、その他の任意の時系列データを対象として行うことができる。具体的には、例えば、図10のデータ処理装置を自律型のロボットなどの自律システムに適用し、そのロボットの視覚や、聴覚、触覚に相当するセンサが出力する信号や、ロボットの手や足に相当する部分を駆動するモータを制御する信号、合成音を生成する装置や目に相当するLEDに対して与える信号等を、学習処理、認識処理、生成処理の対象とする時系列データとして採用することができる。
【0225】
また、本実施の形態では、ノードが有する時系列パターンモデル21(図7)として、状態遷移確率モデルの1つであるHMMを採用することとしたが、時系列パターンモデル21としては、他の状態遷移確率モデルを採用することが可能である。
【0226】
時系列パターンモデル21として採用することができる他の状態遷移確率モデルとしては、例えば、ベイジアンネットワークがある。
【0227】
ベイジアンネットワークでは、変数間の依存関係をグラフ構造で表し、各ノードに条件付き確率を割り当てることでモデル化が行われるが、特に、時間軸に沿った状態遷移モデルを構築することで、時系列データをモデル化することが可能となる。
【0228】
なお、ベイジアンネットワークのグラフ構造の決定は、例えば、学習データの尤度とグラフ構造の複雑さとを考慮したモデルを選択することにより行われ、条件付き確率の推定には、例えば、最尤推定法やEM(Expectation Maximaization)アルゴリズムなどが利用される。ここで、ベイジアンネットワークの詳細については、例えば、本村陽一、「不確実性モデリングのための情報表現:ベイジアンネット」、2001年、ベイジアンネットチュートリアルなどに記載されている。
【0229】
さらに、時系列パターンモデル21(図7)としては、上述のように、HMMやベイジアンネットワークなどのような状態遷移確率モデルを採用することができる他、関数を近似するモデル(以下、適宜、関数近似モデルという)を採用することもできる。
【0230】
関数近似モデルは、時系列パターンを、関数f()を用い、例えば、微分方程式{x(t)}'=f(x(t))や、差分方程式x(t+1)=f(x(t))などで表現するモデルで、関数f()が、時系列パターンを特徴づける。なお、tは時間(時刻)(サンプル点)を表し、x(t)は、時刻tの時系列データのサンプル値、または時刻(0から)tまでに観測された時系列データを表す。また、{x(t)}'は、時系列データx(t)の時間tに関する1次微分を表す。
【0231】
学習データ(時系列データ)から、ある時系列パターンを表す(に対応する)関数f()を求めることを、関数近似と呼ぶと、関数近似の方法としては、例えば、多項式などを用いて関数 f() を表現し、その多項式の係数を、学習データから決定する方法や、ニューラルネットワークによって関数 f() を表現し、そのニューラルネットワークのパラメータを、学習データから決定する方法などがある。
【0232】
多項式で表現された関数f()の関数近似において、その多項式の係数の決定(推定)は、例えば、最急降下法などによって行うことができる。また、ニューラルネットワークによって表現された関数f()の関数近似において、そのニューラルネットワークのパラメータの決定は、例えば、バックプロパゲーション法によって行うことができる。ここで、バックプロパゲーション法では、ニューラルネットワークに入力と出力のデータを与え、その入力と出力のデータの関係を満たすように、ニューラルネットワークのパラメータの学習が行われる。
【0233】
例えば、時系列パターンモデル21として、関数f()を用いた差分方程式x(t+1)=f(x(t))で時系列パターンを表現する関数近似モデルを採用する場合、入力層x(t)と出力層x(t+1)をつなぐ重み(中間層)が、ニューラルネットワークのパラメータであり、このパラメータが、学習データ(時系列データ)を用いて学習される。ニューラルネットワークのパラメータの学習は、初期値を適当に与えて、バックプロパゲーション法により行われる。なお、ニューラルネットワークとしては、例えば、リカレントニューラルネットワークを採用することができる。
【0234】
関数f()がニューラルネットワークによって表現される時系列パターンモデル21を有するノードで構成される時系列パターン記憶ネットワークの学習等でも、上述のHMMを時系列パターンモデル21として採用した場合と同様に、勝者ノードを決定する必要があり、勝者ノードの決定のためには、時系列パターン記憶ネットワークの各ノードの、新たな時系列データに対するスコアを計算する必要がある。
【0235】
このスコアとしては、例えば、新たな時系列データの観測値(実際の値)と、関数f()がニューラルネットワークによって表現される時系列パターンモデル21から求められる、新たな時系列データの理論値との誤差(例えば、差の二乗和など)を採用することができる。この場合、スコアの値が最も小さいノードが、新たな時系列データに最も適合するノードである勝者ノードとして決定される。
【0236】
勝者ノードの決定後は、各ノードの更新重みを決定し、以下、上述のHMMを時系列パターンモデル21として採用した場合と同様の手順で、各ノード(が有するニューラルネットワーク)のパラメータを更新することができる。
【0237】
なお、スコアが、例えば、尤度である場合は、スコアが大きいほど、良いスコアとなり、スコアが、例えば、誤差や距離である場合には、スコアが小さいほど、良いスコアとなる。
【0238】
次に、以上のような時系列パターン記憶ネットワークを適用した順モデルや逆モデルについて説明する。
【0239】
図20は、時系列パターン記憶ネットワークが適用された順モデルまたは逆モデルとしての入出力関係モデルの構成例を模式的に示している。
【0240】
図20において、入出力関係モデルは、2つの時系列パターン記憶ネットワークnetinおよびnetoutを有している。さらに、入出力関係モデルは、時系列パターン記憶ネットワークnetinの各ノードNi(i=1,2,・・・,ノードの総数)と、時系列パターン記憶ネットワークnetoutの各ノードN'j(j=1,2,・・・,ノードの総数)とが結合されている結合モデルである。
【0241】
ここで、図20において、時系列パターン記憶ネットワークnetinのノードNiと、時系列パターン記憶ネットワークnetoutのノードN'jとの間の矢印が、そのノードNiとN'jとの結合を表している。
【0242】
なお、時系列パターン記憶ネットワークnetinおよびnetoutは、同一の数のノードと同一のリンク(リンクがない場合を含む)を有するものであっても良いし、異なる数のノードまたは異なるリンクを有する者であっても良い。また、時系列パターン記憶ネットワークnetinのノードNiが有する時系列パターンモデル21(図7)と、時系列パターン記憶ネットワークnetoutのノードが有する時系列パターンモデル21も、同一の時系列パターンモデルであっても良いし、異なる時系列パターンモデルであっても良い。
【0243】
次に、図21は、入出力関係モデルを用いて、各種の処理を行うデータ処理装置の構成例を示している。
【0244】
図21のデータ処理装置では、図20の入出力関係モデルによって制御対象を順モデルまたは逆モデルにモデル化し、さらに、その順モデルまたは逆モデルとしての入出力関係モデルを用いて、制御対象から得られる出力データや、制御対象に与えるべき制御データ(入力データ)を推定する。
【0245】
即ち、図21において、データ処理装置は、記憶部211、学習部212、および認識生成部213から構成されている。
【0246】
記憶部211は、例えば、図20に示した入出力関係モデルなどを記憶する。
【0247】
学習部212には、モデル化しようとする制御対象に与えられる入力データ(の観測値)と、その入力データに対して制御対象から得られる出力データ(の観測値)とのセットである教示データが供給されるようになっている。ここで、教示データは、ある区間の時系列データ(ある時間に亘る時系列データ)である入力データと、その区間の時系列データに対して制御対象から得られる区間の他の時系列データである出力データとのセットである。
【0248】
学習部212は、そこに供給される教示データを用い、制御対象の順モデルまたは逆モデルとしての入出力関係モデルの学習を行う。
【0249】
即ち、学習部212は、学習処理部221と結合重み更新部222から構成される。
【0250】
学習処理部221は、図12に示した学習処理部32と同様に構成され、学習部212に供給される教示データのうちの入力データに基づいて、記憶部211に記憶された入出力関係モデル(図20)における時系列パターン記憶ネットワークnetinを、図10のデータ処理装置における場合と同様に、自己組織的に更新する。また、学習処理部221は、学習部212に供給される教示データのうちの出力データ(教示データにおいて、入力データとセットになっている出力データ)に基づいて、記憶部211に記憶された入出力関係モデル(図20)における時系列パターン記憶ネットワークnetoutを、図10のデータ処理装置における場合と同様に、自己組織的に更新する。
【0251】
さらに、学習処理部221は、時系列パターン記憶ネットワークnetinを更新するときに勝者ノードとなった、その時系列パターン記憶ネットワークnetinのノードNiのノードラベル(以下、適宜、入力ラベルという)と、時系列パターン記憶ネットワークnetoutを更新するときに勝者ノードとなった、その時系列パターン記憶ネットワークnetoutのノードN'jのノードラベル(以下、適宜、出力ラベルという)とをセットにしたラベルセットを、結合重み更新部222に供給する。
【0252】
結合重み更新部222は、学習処理部221から供給されるラベルセットに基づき、記憶部211に記憶された入出力関係モデル(図20)における時系列パターン記憶ネットワークnetoutのノードNiと、時系列パターン記憶ネットワークnetoutのノードN'jとの結合関係を更新する。
【0253】
ここで、学習処理部221から結合重み更新部222に供給されるラベルセットは、入力ラベルと出力ラベルとのセットであり、入力ラベルは、教示データのうちの入力データに基づいて時系列パターン記憶ネットワークnetinを更新するときに勝者ノードとなった、その時系列パターン記憶ネットワークnetinのノードNiのノードラベルであるから、時系列パターン記憶ネットワークnetinにおいて、入力データに最も適合するノードNiのノードラベルである。
【0254】
同様に、出力ラベルは、教示データのうちの出力データに基づいて時系列パターン記憶ネットワークnetoutを更新するときに勝者ノードとなった、その時系列パターン記憶ネットワークnetoutのノードN'jのノードラベルであるから、時系列パターン記憶ネットワークnetoutにおいて、出力データに最も適合するノードN'jのノードラベルである。
【0255】
結合重み更新部222では、時系列パターン記憶ネットワークnetinのノードのうちの、教示データにおける入力データに最も適合するノードである勝者ノードNiと、時系列パターン記憶ネットワークnetoutの各ノードとの結合関係が更新されるとともに、時系列パターン記憶ネットワークnetoutのノードのうちの、教示データにおける出力データに最も適合するノードである勝者ノードN'jと、時系列パターン記憶ネットワークnetinの各ノードとの結合関係が更新される。
【0256】
ここで、入出力関係モデルにおける時系列パターン記憶ネットワークnetinのノードと、時系列パターン記憶ネットワークnetoutのノードとの間の結合関係は、その結合の度合いが強いほど、大きな値となる結合重みによって表されるようになっており、ノードどうしの結合関係の更新とは、結合重みの更新を意味する。結合重み更新部222によるノードどうしの結合関係の更新の方法についての詳細は、後述する。
【0257】
認識生成部213には、制御対象から得られる出力データを推定するための入力データ、または制御対象から得られる出力データをある目標値とするのに制御対象に与えるべき入力データ(制御データ)を推定するための出力データが供給される。
【0258】
そして、認識生成部213は、入力データが供給された場合は、記憶部211に記憶された入出力関係モデルにおける時系列パターン記憶ネットワークnetinにおいて、その入力データに最も適合する勝者ノードNiを決定し、その勝者ノードNiとの結合重みが最も強い、時系列パターン記憶ネットワークnetoutのノードを、その入力データに対する出力データの推定値としての時系列データを生成する生成ノードN'jに決定する。さらに、認識生成部213は、生成ノードN'jが有する時系列パターンモデル21(図7)に基づいて、出力データ(の推定値)を生成して出力する。
【0259】
また、認識生成部213は、出力データが供給された場合は、記憶部211に記憶された入出力関係モデルにおける時系列パターン記憶ネットワークnetoutにおいて、その出力データに最も適合する勝者ノードN'jを決定し、その勝者ノードN'jとの結合重みが最も強い、時系列パターン記憶ネットワークnetinのノードを、その出力データが得られるときに制御対象に与えられる制御データ(入力データ)の推定値としての時系列データを生成する生成ノードNiに決定する。さらに、認識生成部213は、生成ノードNiが有する時系列パターンモデル21(図7)に基づいて、制御データ(の推定値)を生成して出力する。
【0260】
即ち、認識生成部213は、スコア計算部231、勝者ノード決定部232、生成ノード決定部233、および時系列生成部234から構成される。
【0261】
なお、スコア計算部231、勝者ノード決定部232、生成ノード決定部233、および時系列生成部234は、認識生成部213に供給されたデータが、入力データであるのか、または出力データであるのかを認識することができるようになっているものとする。即ち、例えば、認識生成部213に対しては、そこに供給されるデータとは別に、あるいは、そこに供給されるデータとともに、そのデータが、入力データまたは出力データのうちのいずれであるのかを表す情報が供給されるようになっており、これにより、スコア計算部231、勝者ノード決定部232、生成ノード決定部233、および時系列生成部234は、認識生成部213に供給されたデータが、入力データであるのか、または出力データであるのかを認識する。
【0262】
スコア計算部231は、認識生成部213に供給されたデータに対して、記憶部211に記憶された入出力関係モデルを構成する時系列パターン記憶ネットワークnetinの各ノードNi、または時系列パターン記憶ネットワークnetoutの各ノードN'jが適合する度合いであるスコアを、図16の認識部3のスコア計算部51における場合と同様にして計算し、勝者ノード決定部232に供給する。
【0263】
即ち、スコア計算部231は、認識生成部213に供給されたデータが入力データである場合、その入力データに対して、記憶部211に記憶された入出力関係モデルを構成する時系列パターン記憶ネットワークnetinの各ノードNiのスコアを計算し、勝者ノード決定部232に供給する。また、スコア計算部231は、認識生成部213に供給されたデータが出力データである場合、その出力データに対して、記憶部211に記憶された入出力関係モデルを構成する時系列パターン記憶ネットワークnetoutの各ノードN'jのスコアを計算し、勝者ノード決定部232に供給する。
【0264】
勝者ノード決定部232は、図16の認識部3の勝者ノード決定部52における場合と同様に、スコア計算部231から供給されるスコアが最も高いノードを勝者ノードに決定し、その勝者ノードを表すノードラベルを、生成ノード決定部233に供給する。
【0265】
従って、認識生成部213に供給されたデータが入力データである場合、勝者ノード決定部232では、記憶部211に記憶された入出力関係モデルを構成する時系列パターン記憶ネットワークnetinのノードの中で、スコア計算部231から供給される、入力データに対するスコアが最も高いノードが、勝者ノードNiに決定され、その勝者ノードNiを表す入力ラベルが、生成ノード決定部233に供給される。また、認識生成部213に供給されたデータが出力データである場合、勝者ノード決定部232では、記憶部211に記憶された入出力関係モデルを構成する時系列パターン記憶ネットワークnetoutのノードの中で、スコア計算部231から供給される、出力データに対するスコアが最も高いノードが、勝者ノードN'jに決定され、その勝者ノードN'jを表す出力ラベルが、生成ノード決定部233に供給される。
【0266】
なお、ここでは、最も高い(大きい)スコアが最も良いスコアであるとする。
【0267】
生成ノード決定部233は、勝者ノード決定部232から入力ラベルが供給された場合、即ち、認識生成部213に供給されたデータが入力データである場合、記憶部211に記憶された入出力関係モデルを構成する時系列パターン記憶ネットワークnetoutのノードの中で、勝者ノード決定部232からの入力ラベルが表すノードNiとの結合重みが最も強い(最強の)ノードN'jを生成ノードとして決定し、その生成ノードN'jを表す出力ラベルを、時系列生成部234に供給する。また、生成ノード決定部233は、勝者ノード決定部232から出力ラベルが供給された場合、即ち、認識生成部213に供給されたデータが出力データである場合、記憶部211に記憶された入出力関係モデルを構成する時系列パターン記憶ネットワークnetinのノードの中で、勝者ノード決定部232からの出力ラベルが表すノードN'jとの結合重みが最も強い(最強の)ノードNiを生成ノードとして決定し、その生成ノードNiを表す入力ラベルを、時系列生成部234に供給する。
【0268】
時系列生成部234は、生成ノード決定部233から出力ラベルが供給された場合、即ち、認識生成部213に供給されたデータが入力データである場合、記憶部211に記憶された入出力関係モデルを構成する時系列パターン記憶ネットワークnetoutのノードのうちの、生成ノード決定部233からの出力ラベルが表すノードN'jが有する時系列パターンモデル21(図7)に基づいて、認識生成部213に供給された入力データに対する出力データの推定値としての時系列データを、例えば、図18の生成部6の時系列生成部62における場合と同様にして生成する。
【0269】
また、時系列生成部234は、生成ノード決定部233から入力ラベルが供給された場合、即ち、認識生成部213に供給されたデータが出力データである場合、記憶部211に記憶された入出力関係モデルを構成する時系列パターン記憶ネットワークnetinのノードのうちの、生成ノード決定部233からの入力ラベルが表すノードNiが有する時系列パターンモデル21に基づいて、認識生成部213に供給された出力データに対する制御データ(入力データ)の推定値としての時系列データを、例えば、図18の生成部6の時系列生成部62における場合と同様にして生成する。
【0270】
次に、図22のフローチャートを参照して、図21のデータ処理装置で行われる、入出力関係モデルによる制御対象のモデル化、即ち、入出力関係モデルの学習について説明する。
【0271】
ステップS101において、入力データと出力データとのセットである教示データが、図21のデータ処理装置に入力されると、その教示データは、学習部212の学習処理部221に供給される。
【0272】
学習処理部221は、ステップS102において、教示データのうちの入力データに基づいて、記憶部211に記憶された入出力関係モデル(図20)における時系列パターン記憶ネットワークnetinを、自己組織的に更新し、ステップS103に進む。ステップS103では、学習処理部221は、教示データのうちの出力データに基づいて、記憶部211に記憶された入出力関係モデルにおける時系列パターン記憶ネットワークnetoutを、自己組織的に更新する。
【0273】
そして、学習処理部221は、時系列パターン記憶ネットワークnetinを更新するときに勝者ノードとなった、その時系列パターン記憶ネットワークnetinのノードNiの入力ラベルと、時系列パターン記憶ネットワークnetoutを更新するときに勝者ノードとなった、その時系列パターン記憶ネットワークnetoutのノードN'jの出力ラベルとのセットであるラベルセットを、結合重み更新部222に供給する。
【0274】
結合重み更新部222は、ステップS104において、学習処理部221から供給されるラベルセットに基づき、記憶部211に記憶された入出力関係モデル(図20)における時系列パターン記憶ネットワークnetinの各ノードと、時系列パターン記憶ネットワークnetoutの各ノードとの結合重みを更新して、ステップS101に戻り、次の教示データが入力されるのを待って、以下、同様の処理が繰り返される。
【0275】
多数の教示データが入力され、ステップS101乃至S104の処理が繰り返されることにより、記憶部211に記憶された入出力関係モデルは、制御対象に対応する順モデルとなっていくとともに、逆モデルにもなっていく。
【0276】
なお、ステップS102とS103の処理は、並列して行うこともできるし、図22の場合と逆順で行うこともできる。
【0277】
次に、図23を参照して、結合重み更新部222(図21)が、図22のステップS104で行う結合重み(ノードどうしの結合関係)の更新について説明する。
【0278】
なお、以下、適宜、入出力関係モデルにおいて、入力データが与えられる時系列パターン記憶ネットワーク、つまり、入力データを用いて学習が行われ、入力データの時系列パターンを表現する時系列パターンモデル21を有する複数のノードから構成される時系列パターン記憶ネットワーク(例えば、時系列パターン記憶ネットワークnetin)を、入力ネットワークといい、出力データが与えられる時系列パターン記憶ネットワーク、つまり、出力データを用いて学習が行われ、出力データの時系列パターンを表現する時系列パターンモデル21を有する複数のノードから構成される時系列パターン記憶ネットワーク(例えば、時系列パターン記憶ネットワークnetout)を、出力ネットワークという。
【0279】
さらに、以下、適宜、入力ネットワークのノードを入力ノードといい、出力ネットワークのノードを出力ノードという。
【0280】
また、以下では、入出力関係モデルを、入力データを与えて出力データを推定する順モデルとして用いる場合についての説明をし、入出力関係モデルを、出力データ(目標値)を与えて入力データ(制御データ)を推定する逆モデルとして用いる場合についての説明は適宜省略する。
【0281】
図23は、入出力関係モデルを示している。
【0282】
図23左側では、入出力関係モデルは、1つの入力ネットワークnetinと、1つの出力ネットワークnetoutとを有し、入力ネットワークnetinの各入力ノードと、出力ネットワークnetoutの各出力ノードとが結合している。なお、図23では、入力ネットワークnetin、および出力ネットワークnetoutのいずれも、8つのノードで構成されている。
【0283】
図23左側では、入力ネットワークnetinの各入力ノードは、出力ネットワークnetoutのすべての出力ノードと結合しており(従って、出力ネットワークnetoutの各出力ノードも、入力ネットワークnetinのすべての入力ノードと結合している)、入力ネットワークnetinの入力ノードと、出力ネットワークnetoutの出力ノードとのすべての組み合わせについて、結合重みwが存在する。
【0284】
いま、ノードどうしが結合している2つの時系列パターン記憶ネットワークに注目し、そのうちの一方の時系列パターン記憶ネットワークのノードを各行に対応させるとともに、他方の時系列パターン記憶ネットワークのノードを各列に対応させ、第i行第j列の要素に、一方の時系列パターン記憶ネットワークのi番目のノードと、他方の時系列パターン記憶ネットワークのj番目のノードとの結合重みwを配置した行列を、結合重み行列MTXということとすると、結合重み更新部222(図21)は、この結合重み行列MTXの各要素である結合重みwを更新する。
【0285】
図23右側は、図23左側の入出力関係モデルについての結合重み行列MTXを示している。
【0286】
図23右側の結合重み行列MTXでは、入力ノードを各行に対応させるとともに、出力ノードを各列に対応させ、第i行第j列の要素に、i番目の入力ノードと、j番目の出力ノードとの結合重みwが配置されている。結合重み更新部222(図21)は、この結合重み行列MTXの各要素である結合重みwを更新する。
【0287】
即ち、結合重み更新部222は、例えば、最初に電源がオンにされたときに、結合重み行列MTXにおけるすべての結合重みwを、例えば、初期値としての0に初期化する。そして、結合重み更新部222は、図21のデータ処理装置に対して、教示データ、つまり、入力データと出力データとのセットが入力され、これにより、入力ネットワークnetinにおける勝者ノードを表す入力ラベルと、出力ネットワークnetoutにおける勝者ノードを表す出力ラベルとのラベルセットが、学習処理部221から与えられるたびに、それらの勝者ノードどうしの結合を、いわば中心として、結合重みを更新する。
【0288】
具体的には、結合重み更新部222は、例えば、式(4)にしたがって、結合重み行列MTXの結合重みwを更新する。
【0289】
【数4】

【0290】
ここで、βは、結合重みwを更新する程度の表す学習率であり、0から1の範囲で与えられる。学習率βを小さくするほど、結合重みwは、あまり変化しなくなり、学習率βが0である場合には、結合重みwは変化しない。一方、学習率βを大きくするほど、結合重みwも、大きく変化し、学習率βが1である場合には、結合重みwは、更新の基準値△wに更新される。
【0291】
また、基準値△wは、例えば、式(5)で与えられる。
【0292】
【数5】

【0293】
ここで、dは、式(3)における場合と同様に、勝者ノードとのパターン間距離を表し、勝者ノードとなっているノードについては、d=0である。従って、勝者ノード(となっているノード)については、基準値△wは1となり、勝者ノードからのパターン間距離dが大のノードほど、基準値△wは0に近づく。
【0294】
いま、学習処理部221(図21)から結合重み更新部222に供給される入力ラベルが表す入力ノード、即ち、入力ネットワークnetinにおける勝者ノードを、入力ノードNiと表すとともに、学習処理部221(図21)から結合重み更新部222に供給される出力ラベルが表す出力ノード、即ち、出力ネットワークnetoutにおける勝者ノードを、出力ノードN'jと表すと、結合重み更新部222(図21)は、式(4)(および式(5))にしたがい、以下のように、結合重み行列MTXの結合重みwを更新する。
【0295】
即ち、結合重み更新部222は、出力ネットワークnetoutの各出力ノードについて、出力ネットワークnetoutにおける勝者ノードである出力ノードN'jとのパターン間距離dを用い、式(5)にしたがって、基準値△wを求め、さらに、その基準値△wを用い、式(4)にしたがって、入力ネットワークnetinの勝者ノードであるi番目の入力ノードNiとの結合重みwを更新する。
【0296】
これにより、入力ネットワークnetinの勝者ノードである入力ノードNiに対応する、結合重み行列MTXの第i行の(各列の)結合重みwが更新される。
【0297】
また、結合重み更新部222は、入力ネットワークnetinの各入力ノードについて、入力ネットワークnetinにおける勝者ノードである入力ノードNiとのパターン間距離dを用い、式(5)にしたがって、基準値△wを求め、さらに、その基準値△wを用い、式(4)にしたがって、出力ネットワークnetoutの勝者ノードであるj番目の出力ノードN'jとの結合重みwを更新する。
【0298】
これにより、出力ネットワークnetoutの勝者ノードである出力ノードN'jに対応する、結合重み行列MTXの第j列の(各行の)結合重みwが更新される。
【0299】
従って、入力ネットワークnetinの勝者ノードNiと、出力ネットワークnetoutの勝者ノードN'jとの結合重みが、結合の度合いを最も強めるように更新される。
【0300】
なお、入力ネットワークnetinの勝者ノードである入力ノードNiと、出力ネットワークnetoutの勝者ノードである出力ノードN'jとの結合重みwの更新は、出力ネットワークnetoutの各出力ノードについての、勝者ノードである入力ノードNiとの結合重みwの更新時か、または、入力ネットワークnetinの各入力ノードについての、勝者ノードである出力ノードN'jとの結合重みwの更新時のいずれか一方においてのみ行われる。
【0301】
以上のような結合重みw(結合重み行列MTX)の更新は、教示データとしての入力データと出力データとのセットが、図21のデータ処理装置に対して入力されるたびに行われる。
【0302】
さらに、入出力関係モデルが有する入力ネットワークnetinの入力データに基づく学習、および出力ネットワークnetoutの出力データに基づく学習も、教示データとしての入力データと出力データとのセットが、図21のデータ処理装置に対して入力されるたびに行われる。
【0303】
そして、入力ネットワークnetin、および出力ネットワークnetoutの学習が進むと、入力ノードが有する時系列パターンモデル21が、ある特定の時系列パターンを表現し、また、出力ノードが有する時系列パターンモデル21も、他の特定の時系列パターンを表現するようになる。
【0304】
その結果、ある特定の時系列パターンの入力データと、他の特定の時系列パターンの出力データとの間に、何らかの関係性がある場合、そのような入力データと出力データとのセット(教示データ)が与えられると、入力ネットワークnetinにおいてある特定の時系列パターンを表現する時系列パターンモデル21を有する入力ノードが勝者ノードとなるとともに、出力ネットワークnetoutにおいて他の特定の時系列パターンを表現する時系列パターンモデル21を有する出力ノードが勝者ノードとなる。
【0305】
さらに、上述したように、入力ネットワークnetinの勝者ノードを、いわば中心として、入力ネットワークnetinの各入力ノードと、出力ネットワークnetoutの勝者ノードとの結合重みが更新されるとともに、出力ネットワークnetoutの勝者ノードを中心として、出力ネットワークnetoutの各出力ノードと、入力ネットワークnetinの勝者ノードとの結合重みが更新される。
【0306】
即ち、入力ネットワークnetinの各入力ノードと、出力ネットワークnetoutの勝者ノードとの結合重みは、入力ネットワークnetinの勝者ノードとのパターン間距離dが近い入力ノードほど強くなる(強化する)ように更新される。また、出力ネットワークnetoutの各出力ノードと、入力ネットワークnetinの勝者ノードとの結合重みは、出力ネットワークnetoutの勝者ノードとのパターン間距離dが近い出力ノードほど強くなるように更新される。
【0307】
逆に言えば、入力ネットワークnetinの各入力ノードと、出力ネットワークnetoutの勝者ノードとの結合重みは、入力ネットワークnetinの勝者ノードとのパターン間距離dが遠い入力ノードほど弱くなる(弱化する)ように更新される。また、出力ネットワークnetoutの各出力ノードと、入力ネットワークnetinの勝者ノードとの結合重みも、出力ネットワークnetoutの勝者ノードとのパターン間距離dが遠い出力ノードほど弱くなるように更新される。
【0308】
多数の教示データが与えられ、入力ネットワークnetin、および出力ネットワークnetoutの学習が進み、さらに、結合重みの更新が進むと、その結合重みによって、入力データ(の時系列パターン)と出力データ(の時系列パターン)とを関係付ける順モデルまたは逆モデルとしての入出力関係モデルを獲得することができる。
【0309】
そして、順モデルとしての入出力関係モデルによれば、ある入力データが与えられた場合に、入力ネットワークnetinにおいて、その入力データに最も適合する勝者ノードを決定することができ、その勝者ノードとの結合重みが最強の出力ネットワークnetoutの出力ノードを決定することができる。さらに、その出力ノード(が有する時系列パターンモデル21)に基づき、時系列データを生成することで、与えられた入力データに対する出力データを推定することができる。
【0310】
また、逆モデルとしての入出力関係モデルによれば、ある出力データ(目標値)が与えられた場合に、出力ネットワークnetoutにおいて、その出力データに最も適合する勝者ノードを決定することができ、その勝者ノードとの結合重みが最強の入力ネットワークnetinの入力ノードを決定することができる。さらに、その入力ノード(が有する時系列パターンモデル21)に基づき、時系列データを生成することで、与えられた出力データに対する制御データ(入力データ)を推定することができる。
【0311】
なお、結合重み行列MTXは、入出力関係モデルの一部として、記憶部211(図21)に記憶される。
【0312】
次に、図24のフローチャートを参照して、順モデルまたは逆モデルとしての入出力関係モデルを用いて、入力データに対する出力データや、出力データに対する制御データ(入力データ)を推定する処理について説明する。
【0313】
まず、図21のデータ処理装置において、入力データに対する出力データを推定する場合、ステップS111において、その入力データが、図21のデータ処理装置に入力される。
【0314】
データ処理装置に入力された入力データは、認識生成部213のスコア計算部231に供給される。
【0315】
スコア計算部231は、ステップS112において、そこに供給された入力データに対して、記憶部211に記憶された入出力関係モデルを構成する時系列パターン記憶ネットワークnetinの各ノードNiのスコアを計算し、勝者ノード決定部232に供給する。
【0316】
勝者ノード決定部232は、ステップS113において、記憶部211に記憶された入出力関係モデルを構成する時系列パターン記憶ネットワークnetinのノードの中で、スコア計算部231からのスコアが最も高いノードを、勝者ノードNiに決定し、その勝者ノードNiを表す入力ラベルを、生成ノード決定部233に供給する。
【0317】
生成ノード決定部233は、ステップS114において、記憶部211に記憶された入出力関係モデルを構成する時系列パターン記憶ネットワークnetoutのノードの中で、勝者ノード決定部232からの入力ラベルが表すノードNiとの結合重みが最も強いノードN'jを生成ノードに決定し、その生成ノードN'jを表す出力ラベルを、時系列生成部234に供給する。
【0318】
時系列生成部234は、ステップS115において、記憶部211に記憶された入出力関係モデルを構成する時系列パターン記憶ネットワークnetoutのノードのうちの、生成ノード決定部233からの出力ラベルが表すノードN'jが有する時系列パターンモデル21(図7)に基づいて、認識生成部213に供給された入力データに対する出力データの推定値としての時系列データを生成して、ステップS116に進み、その時系列データを出力する。
【0319】
次に、図21のデータ処理装置において、出力データに対する制御データ(入力データ)を推定する場合には、ステップS111において、その出力データが、図21のデータ処理装置に入力される。
【0320】
データ処理装置に入力された出力データは、認識生成部213のスコア計算部231に供給される。
【0321】
スコア計算部231は、ステップS112において、そこに供給された出力データに対して、記憶部211に記憶された入出力関係モデルを構成する時系列パターン記憶ネットワークnetoutの各ノードN'jのスコアを計算し、勝者ノード決定部232に供給する。
【0322】
勝者ノード決定部232は、ステップS113において、記憶部211に記憶された入出力関係モデルを構成する時系列パターン記憶ネットワークnetoutのノードの中で、スコア計算部231からのスコアが最も高いノードを、勝者ノードN'jに決定し、その勝者ノードN'jを表す出力ラベルを、生成ノード決定部233に供給する。
【0323】
生成ノード決定部233は、ステップS114において、記憶部211に記憶された入出力関係モデルを構成する時系列パターン記憶ネットワークnetinのノードの中で、勝者ノード決定部232からの出力ラベルが表すノードN'jとの結合重みが最も強いノードNiを生成ノードに決定し、その生成ノードNiを表す入力ラベルを、時系列生成部234に供給する。
【0324】
時系列生成部234は、ステップS115において、記憶部211に記憶された入出力関係モデルを構成する時系列パターン記憶ネットワークnetinのノードのうちの、生成ノード決定部233からの入力ラベルが表すノードNiが有する時系列パターンモデル21に基づいて、認識生成部213に供給された出力データに対する制御データ(入力データ)の推定値としての時系列データを生成して、ステップS116に進み、その時系列データを出力する。
【0325】
以上のように、入力データと出力データとのセットを用いて、入出力関係モデルの学習を行い、制御対象を順モデルおよび逆モデルにモデル化して、制御対象を精度良く表現し、高精度に、出力データや制御データ(入力データ)を推定することが可能となる。
【0326】
次に、上述したように、図21のデータ処理装置においては、制御対象に与えられる、ある区間の時系列データ(ある時間に亘る時系列データ)である入力データと、その区間の時系列データに対して制御対象から観測される区間の他の時系列データである出力データとのセットを、教示データとして、学習部212に供給し、学習部212において、教示データを用い、制御対象の順モデルまたは逆モデルとしての入出力関係モデルの学習を行う。
【0327】
従って、例えば、制御対象をロボットとして、そのロボットに与える入力データとして、ロボットに呼びかける音声をセンサとしてのマイクで検知したセンサデータ(音声データ)の時系列を採用するとともに、ロボットに呼びかける音声に対して、ロボットが手をふるようにアームを動かす行動をとるためにモータに与えられるモータデータの時系列を採用して、入出力関係モデルの学習を行うと、学習部212(図21)では、入出力関係モデルの入力ネットワークnetinの1以上のノード(が有する時系列パターンモデル21)が、ロボットに呼びかける音声に対応するセンサデータとしての入力データの時系列パターンを表現するように、自己組織的な学習が行われるとともに、出力ネットワークnetoutの1以上のノード(が有する時系列パターンモデル21)が、手をふる行動に対応するモータデータとしての出力データの時系列パターンを表現するように、自己組織的な学習が行われる。
【0328】
さらに、学習部212では、入出力関係モデルの入力ネットワークnetinの各ノードと、出力ネットワークnetoutの勝者ノードとの結合重みが、入力ネットワークnetinの勝者ノードとのパターン間距離dが近いノードほど強くなるように更新されるとともに、出力ネットワークnetoutの各出力ノードと、入力ネットワークnetinの勝者ノードとの結合重みが、出力ネットワークnetoutの勝者ノードとのパターン間距離dが近い出力ノードほど強くなるように更新される。
【0329】
その結果、入力ネットワークnetinのノードのうちの、ロボットに呼びかける音声に対応するセンサデータとしての入力データの時系列パターンを表現する(時系列パターンモデル21を有する)1以上のノードと、出力ネットワークnetoutのノードのうちの、手をふる行動に対応するモータデータの時系列パターンを表現する(時系列パターンモデル21を有する)1以上のノードとの結合重みは強くなる。
【0330】
その後、認識生成部213(図21)に、ロボットに呼びかける音声に対応するセンサデータが、入力データとして与えられると、入出力関係モデルでは、その入力データに対して、入力ネットワークnetinのノードのうちの、ロボットに呼びかける音声に対応するセンサデータの時系列パターンを表現する、ある1つのノードが勝者ノードとなる。そして、認識生成部213では、その勝者ノードとの結合重みが最も強い、出力ネットワークnetoutのノード、即ち、いまの場合、出力ネットワークnetoutのノードのうちの、手をふる行動に対応するモータデータの時系列パターンを表現する、あるノードが、生成ノードに決定され、その生成ノードを用いて、出力データ、即ち、いまの場合、手をふる行動に対応するモータデータが生成されて出力される。
【0331】
ここで、入出力関係モデルを利用したロボットの認知行動という場合の認知とは、入力データに対して、入出力関係モデルの入力ネットワークnetinのノードの中から勝者ノードを決定することに相当し、行動とは、その勝者ノードに対して、出力ネットワークnetoutのノードの中から生成ノードを決定し、時系列データ(出力データ)を生成することに相当する。
【0332】
図21のデータ処理装置によれば、例えば、ロボットに、呼びかけの音声を与え、その音声に対して、手をふるようなアームの動きを与えると、上述のような学習が行われ、その結果、ロボットが、呼びかけの音声に対して、手をふる認知行動を行うようになる。
【0333】
しかしながら、図21のデータ処理装置では、認知と行動とが、比較的短時間で繰り返されることで完成する、実時間性が要求されるタスクを、ロボットに行わせることが困難であることがある。
【0334】
即ち、例えば、ロボットが、目の前にあるボールを左右に転がすタスクを行う場合、ボールの状態を把握(認識)する認知と、ボールの状態に応じて適切にアームを動かす行動とを、ある短い所定の時間単位で繰り返し行う必要がある。いま、この繰り返しの単位である所定の時間を、フレームと呼ぶこととすると、時間軸上のあるフレームにおける、ボールの状態をセンサで検知したセンサデータと、そのフレームにおいてとらなければならないアームの動きに対応するモータデータとのセットを、教示データとして、図21のデータ処理装置に与え、その教示データのうちのセンサデータの時系列パターンを表現する入力ノード(入力ネットワークnetinのノード)と、その教示データのうちのモータデータの時系列パターンを表現する出力ノード(出力ネットワークnetoutのノード)との結合重みを強くしても、ロボットは、目の前にあるボールを左右に転がすタスクを行うことができるようにはならない。
【0335】
なぜなら、あるフレームのセンサデータが与えられた時点で、そのフレームのモータデータによるアームの動きは、既に行われていなければならないからである。
【0336】
従って、ロボットが、目の前にあるボールを左右に転がすタスクを行うことができるようにするには、あるフレームを注目フレームとして注目すると、ボールの状態をセンサで検知したセンサデータのうちの、注目フレームのセンサデータの時系列パターンを表現する入力ノード(以下、適宜、センサデータに対応するノードともいう)と、ボールを左右に転がすアームの動きに対応するモータデータのうちの、注目フレームの時刻から一定の時間だけ遅れたフレームのモータデータの時系列パターンを表現する出力ノード(以下、適宜、モータデータに対応するノードともいう)との結合重みを強くするように、入出力関係モデルの学習を行う必要がある。
【0337】
なお、フレームのセンサデータの認知、即ち、フレームのセンサデータに対して勝者ノードを決定する処理の処理速度によっては、注目フレームのセンサデータが与えられてから、そのセンサデータに対するモータデータが生成される行動が行われるまでに、無視することができない遅延時間が生じることがある。注目フレームのセンサデータに対応するノードとの結合重みを強くする出力ノードを、注目フレームからどの程度の時間だけ遅れたフレームのモータデータに対応するノードとするかは、必要に応じて、かかる遅延時間をも考慮して決める必要がある。
【0338】
図25は、実時間性が要求されるタスクを行うことが可能なロボットの構成例を示している。
【0339】
図25において、ロボットは、データ処理装置301、センサ302、およびモータ駆動部303等から構成されている。
【0340】
データ処理装置301は、センサ302から供給される時系列のセンサデータと、モータ駆動部303から供給される時系列のモータデータとを用いて、入出力関係モデルの自己組織的な学習を行う。さらに、データ処理装置301は、センサ302から供給される時系列のセンサデータに対して、時系列のモータデータを生成し、モータ駆動部303に供給する。
【0341】
センサ302は、カメラやマイク等であり、外部の状態を検知して、その外部の状態を表す時系列のセンサデータを、データ処理装置301に供給する。
【0342】
モータ駆動部303は、データ処理装置301から供給されるモータデータに応じて、例えば、ロボットのアーム等を動かすための図示せぬモータを駆動する。また、モータ駆動部303は、例えば、ロボットのアーム等が、外部から力が加えられることによって動かされた場合に、その動きをするために、モータ駆動部303に与えられるべきモータデータと同一のモータデータを生成し、データ処理部301に供給する。
【0343】
図25において、データ処理装置301は、記憶部311、データ抽出部312、学習処理部313、写像学習部314、データ抽出部315、認識部316、写像部317、および生成部318から構成されている。
【0344】
記憶部311は、入出力関係モデルを記憶している。
【0345】
ここで、図26は、記憶部311が記憶している入出力関係モデルM11を示している。
【0346】
入出力関係モデルM11は、図20や図23に示した入出力関係モデルと同様に、入力データとしての時系列データのパターンである時系列パターンを表現する時系列パターンモデルを有する複数のノードから構成される時系列パターン記憶ネットワークである入力ネットワークnet1(入力時系列パターン記憶ネットワーク)と、出力データとしての時系列データのパターンである時系列パターンを表現する時系列パターンモデルを有する複数のノードから構成される時系列パターン記憶ネットワークである出力ネットワークnet2(出力時系列パターン記憶ネットワーク)とを有する。
【0347】
そして、入出力関係モデルM11では、入力ネットワークnet1の各ノードと、出力ネットワークのnet2の各ノードとが、結合重みによって結合されている。
【0348】
図25に戻り、データ抽出部312には、センサ302が各時刻において出力するセンサデータと、モータ駆動部302が同一時刻において出力するモータデータとが、教示データとして供給される。データ抽出部312は、教示データのうちのセンサデータを、認知行動時に入出力関係モデルM11に与える入力データとして、その入力データの時系列から、フレーム単位の入力データを順次抽出し、学習処理部313に供給する。
【0349】
さらに、データ抽出部312は、教示データのうちのモータデータを、認知行動時に入出力関係モデルM11から生成されるべき出力データとして、その出力データの時系列から、フレーム単位の出力データを順次抽出し、学習処理部313に供給する。
【0350】
学習処理部313は、認識学習処理部321と生成学習処理部322とから構成され、データ抽出部312から供給されるフレーム単位の入力データと出力データそれぞれを用いて、記憶部311に記憶された入出力関係モデルM11(図26)が有する入力ネットワークnet1と出力ネットワークnet2それぞれの自己組織的な学習を行う。
【0351】
即ち、認識学習処理部321は、図21の学習処理部221と同様に、データ抽出部312から供給されるフレーム単位の入力データに基づいて、記憶部311に記憶された入出力関係モデルM11(図26)における入力ネットワークnet1を、自己組織的に更新する。
【0352】
具体的には、認識学習処理部321は、入出力関係モデルM11における入力ネットワークnet1の各ノードについて、データ抽出部312からのフレームの入力データに対するスコアを求め、入力ネットワークnet1のノードの中から、スコアの最も良いノードを、勝者ノード(入力勝者ノード)に決定する。さらに、認識学習処理部321は、データ抽出部312からのフレームの入力データに対する入力勝者ノードに基づいて、入力ネットワークnet1を、自己組織的に更新する。
【0353】
また、認識学習処理部321は、フレーム単位の入力データに対して時系列に決定した入力勝者ノードを表すノードラベルである入力ラベルを、写像学習部314に、時系列に供給する。
【0354】
生成学習処理部322も、図21の学習処理部221と同様に、データ抽出部312から供給されるフレーム単位の出力データに基づいて、記憶部311に記憶された入出力関係モデルM11(図26)における出力ネットワークnet2を、自己組織的に更新する。
【0355】
具体的には、生成学習処理部322は、入出力関係モデルM11における出力ネットワークnet2の各ノードについて、データ抽出部312からのフレームの出力データに対するスコアを求め、出力ネットワークnet2のノードの中から、スコアの最も良いノードを、勝者ノード(出力勝者ノード)に決定する。さらに、生成学習処理部322は、データ抽出部312からのフレームの出力データに対する出力勝者ノードに基づいて、出力ネットワークnet2を、自己組織的に更新する。
【0356】
また、生成学習処理部322は、フレーム単位の出力データに対して時系列に決定した出力勝者ノードを表すノードラベルである出力ラベルを、写像学習部314に、時系列に供給する。
【0357】
写像学習部314は、データバッファ331、読み出し部332、および結合重み更新部333から構成され、記憶部311に記憶された入出力関係モデルM11における入力ネットワークnet1のフレーム単位の入力データに対する入力勝者ノードと、出力ネットワークnet2の各ノードとの結合重みを更新するとともに、出力ネットワークnet2の、フレーム単位の入力データの時刻から一定の時間だけ遅れたフレーム単位の出力データに対する出力勝者ノードと、入力ネットワークnet1の各ノードとの結合重みを更新する。
【0358】
即ち、データバッファ331は、認識学習処理部321から供給される時系列の入力ラベルと、生成学習処理部322から供給される時系列の出力ラベルとを一時記憶する。
【0359】
読み出し部332は、入力データのフレームを、順次、注目フレームとして、データバッファ331に記憶された入力ラベルのうちの、注目フレームの入力データに対する入力勝者ノードを表す入力ラベルと、データバッファ331に記憶された出力ラベルのうちの、注目フレームの時刻から一定の時間だけ遅れたフレームの出力データに対する出力勝者ノードを表す出力ラベルとを読み出して対応付け、その対応付けた入力ラベルと出力ラベルとのセットであるラベルセットを、結合重み更新部333に供給する。
【0360】
結合重み更新部333は、図21の結合重み更新部222と同様に、図23で説明したようにして、読み出し部332から供給されるラベルセットに基づき記憶部311に記憶された入出力関係モデルM11(図26)における入力ネットワークnet1のノードNiと、出力ネットワークnet2のノードN'jとの結合関係を、ヘブ則等により更新する。
【0361】
即ち、結合重み更新部333は、入力ネットワークnet1の各入力ノードと、ラベルセットの出力ラベルが表す出力ネットワークnet2の出力勝者ノードとの結合重みを、ラベルセットの入力ラベルが表す入力ネットワークnet1の入力勝者ノードを中心として更新するとともに、出力ネットワークnet2の各出力ノードと、入力ネットワークnet1の勝者ノードとの結合重みを、出力ネットワークnet2の勝者ノードを中心として更新する。
【0362】
ここで、上述したように、入力勝者ノードは、注目フレームの入力データに対する勝者ノードであり、出力勝者ノードは、注目フレームから一定の時間だけ遅れたフレームの出力データに対する勝者ノードであるから、結合重み更新部333による結合重みの更新によれば、記憶部311に記憶された入出力関係モデルM11において、注目フレームの入力データに対する入力ネットワークnet1の入力勝者ノードと、注目フレームから一定の時間だけ遅れたフレームの出力データに対する出力ネットワークnet2の出力勝者ノードとの結合重みが、より強くなるように更新される。
【0363】
その結果、入出力関係モデルM11に、あるフレームFの入力データが与えられると、入出力関係モデルM11では、入力ネットワークnet1のノードのうちの、フレームFの入力データに対応するノードが入力勝者ノードとなる。さらに、入出力関係モデルM11では、出力ネットワークnet2のノードのうちの、フレームFから一定の時間だけ遅れたフレームの出力データに対応するノードが、入力勝者ノードとの結合重みが最も強いノードとして、生成ノードに決定され、これにより、その生成ノードに基づき、フレームFから一定の時間だけ遅れたフレームの出力データに相当する時系列データが生成される。
【0364】
データ抽出部315には、センサ302が各時刻において出力するセンサデータが供給される。データ抽出部315は、センサ302からのセンサデータを、入力データとして、その入力データの時系列から、フレーム単位の入力データを順次抽出し、認識部316に供給する。
【0365】
認識部316は、スコア計算部341と勝者ノード決定部342とから構成される。
【0366】
また、図25において、写像部317は、生成ノード決定部351から構成される。さらに、生成部318は、時系列生成部361から構成される。
【0367】
スコア計算部341、勝者ノード決定部342、生成ノード決定部351、時系列生成部361は、それぞれ、図21のスコア計算部231、勝者ノード決定部232、生成ノード決定部233、時系列生成部234と同様の処理を行う。
【0368】
なお、時系列生成部361が生成した出力データは、モータデータとして、モータ駆動部303に供給される。
【0369】
次に、図27を参照して、図25のデータ抽出部312の処理について説明する。
【0370】
図25で説明したように、データ抽出部312には、センサ302が各時刻において出力するセンサデータと、モータ駆動部303が同一時刻において出力するモータデータとが供給される。
【0371】
いま、フレームの長さ(時間)をTと表すこととすると、データ抽出部312は、センサデータを入力データとして、その入力データの時系列を、図27に示すように、時間T単位に区切った、フレーム単位の入力データを抽出し、学習処理部313に供給する。
【0372】
また、データ抽出部312は、モータデータを出力データとして、その出力データの時系列を、図27に示すように、時間T単位に区切ったった、フレーム単位の出力データを抽出し、学習処理部313に供給する。
【0373】
ここで、以下、適宜、時刻tを先頭の時刻とし、時刻t+Tを終わりの時刻とする時間Tのフレームを、時刻tのフレームという。時刻tの入力データ(のサンプル値)から、時刻t+t'(の直前)の入力データまでを、I[t,t+t']と表すこととすると、時刻tのフレームの入力データは、I[t,t+T]と表すことができる。同様に、時刻tの出力データから、時刻t+t'の出力データまでを、O[t,t+t']と表すこととすると、時刻tのフレームの出力データは、O[t,t+T]と表すことができる。
【0374】
なお、図25のデータ抽出部315も、データ抽出部312と同様に、センサ302から供給されるセンサデータを入力データとして、その入力データの時系列から、時間Tのフレーム単位の入力データを抽出し、認識部316に供給する。
【0375】
次に、図28を参照して、図25の読み出し部332の処理について説明する。
【0376】
読み出し部332は、上述したように、入力データのフレームを、順次、注目フレームとして、データバッファ331に記憶された入力ラベルのうちの、注目フレームの入力データに対する入力勝者ノードを表す入力ラベルと、データバッファ331に記憶された出力ラベルのうちの、注目フレームの時刻から一定の時間だけ遅れたフレームの出力データに対する出力勝者ノードを表す出力ラベルとを対応付ける。
【0377】
即ち、注目フレームの時刻から一定の時間だけ遅れたフレームの出力データとして、例えば、フレームと同一の時間Tを採用することとすると、読み出し部332は、時刻tのフレームの入力データ(I[t,t+T])に対する入力勝者ノードNtを表す入力ラベルと、注目フレームの時刻tから時間Tだけ遅れた時刻t+Tのフレームの出力データ(O[t+T,t+2T])に対する出力勝者ノードN't+Tを表す出力ラベルとを対応付ける。
【0378】
次に、図29のフローチャートを参照して、図25のロボットが行う学習処理、即ち、入出力関係モデルM11の学習処理について説明する。
【0379】
例えば、ロボットに、目の前にあるボールを左右に転がすタスクを学習させる場合、オペレータ(ロボットにタスクの学習をさせようとするユーザ)は、ロボットの前にボールをおき、ロボットのアームを持って、ボールを左右に転がすように、アームを動かす。
【0380】
この場合、センサ302において、左右に転がるボールの状態が検知され、その状態を表す時系列のセンサデータが、データ処理装置301のデータ抽出部312に供給される。
【0381】
また、モータ駆動部303では、オペレータが動かしているアームの動きに対応するモータデータが生成され、データ処理部301のデータ抽出部312に供給される。
【0382】
データ抽出部312は、ステップS301において、センサ302からのセンサデータを入力データとして、その入力データの時系列から、フレーム単位の入力データを抽出し、学習処理部313の認識学習処理部321に供給するとともに、モータ駆動部303からのモータデータを出力データとして、その出力データの時系列から、フレーム単位の出力データを抽出し、学習処理部313の生成学習処理部322に供給して、ステップS302に進む。
【0383】
ステップS302では、学習処理部313が、データ抽出部312からのフレーム単位の入力データと出力データを用いて、記憶部311に記憶された入出力関係モデルM11(図26)が有する入力ネットワークnet1と出力ネットワークnet2の自己組織的な学習を行う。
【0384】
即ち、ステップS302では、ステップS3021とS3022の処理が行われる。
【0385】
ステップS3021では、認識学習処理部321が、記憶部311に記憶された入出力関係モデルM11における入力ネットワークnet1の各ノードについて、データ抽出部312からのフレーム単位の入力データに対するスコアを求め、入力ネットワークnet1のノードの中から、スコアの最も良いノードを、入力勝者ノードに決定する。さらに、認識学習処理部321は、データ抽出部312からのフレーム単位の入力データに対する入力勝者ノードに基づいて、入力ネットワークnet1を、自己組織的に更新し、入力勝者ノードを表す入力ラベルを、写像学習部314に供給する。
【0386】
ステップS3022では、生成学習処理部322が、記憶部311に記憶された入出力関係モデルM11における出力ネットワークnet2の各ノードについて、データ抽出部312からのフレーム単位の出力データに対するスコアを求め、出力ネットワークnet2のノードの中から、スコアの最も良いノードを、出力勝者ノードに決定する。さらに、生成学習処理部322は、データ抽出部312からのフレーム単位の出力データに対する出力勝者ノードに基づいて、出力ネットワークnet2を、自己組織的に更新し、出力勝者ノードを表す出力ラベルを、写像学習部314に供給する。
【0387】
ステップS302の処理後は、ステップS303に進み、写像学習部314は、入力データのフレームのうちの、まだ注目フレームとしていないフレームを、注目フレームとして、学習処理部313からの、注目フレームの入力データに対する入力勝者ノードを表す入力ラベルと、学習処理部313からの、注目フレームから時間Tだけ遅れたフレームの出力データに対する出力勝者ノードを表す出力ラベルとを対応付ける。
【0388】
即ち、ステップS303では、写像学習部314のデータバッファ331において、学習処理部313からのフレーム単位の入力データに対する入力勝者ノードを表す入力ラベルと、フレーム単位の出力データに対する出力勝者ノードを表す出力ラベルとが一時記憶される。
【0389】
さらに、ステップS303では、写像学習部314の読み出し部332が、データバッファ331に記憶された入力ラベルのうちの、注目フレームの入力データに対する入力勝者ノードを表す入力ラベルと、データバッファ331に記憶された出力ラベルのうちの、注目フレームの時刻から時間Tだけ遅れたフレームの出力データに対する出力勝者ノードを表す出力ラベルとを読み出して対応付け、その対応付けた入力ラベルと出力ラベルとのセットであるラベルセットを、結合重み更新部333に供給する。
【0390】
そして、ステップS303からステップS304に進み、写像学習部314の結合重み更新部333が、読み出し部332から供給されるラベルセットに基づき、記憶部311に記憶された入出力関係モデルM11(図26)における入力ネットワークnet1のノードと、出力ネットワークnet2のノードとの結合関係を更新する。
【0391】
即ち、結合重み更新部333は、記憶部311に記憶された入出力関係モデルM11における入力ネットワークnet1の各入力ノードと、ラベルセットの出力ラベルが表す出力ネットワークnet2の出力勝者ノードとの結合重みを、ラベルセットの入力ラベルが表す入力ネットワークnet1の入力勝者ノードを中心として更新するとともに、出力ネットワークnet2の各出力ノードと、入力ネットワークnet1の勝者ノードとの結合重みを、出力ネットワークnet2の勝者ノードを中心として更新する。
【0392】
なお、図29の学習処理は、入力データの先頭のフレームから終わりのフレームまでを、順次、注目フレームとして、ステップS302乃至S304の処理を繰り返し行うようにしてもよいし、入力データの先頭のフレームから終わりのフレームまでを、順次、注目フレームとして、ステップS302の処理を繰り返し行い、その後、再び、入力データの先頭のフレームから終わりのフレームまでを、順次、注目フレームとして、ステップS303およびS304の処理を繰り返し行うようにしても良い。
【0393】
次に、図30のフローチャートを参照して、図25のロボットが行う認知行動の処理、即ち、入出力関係モデルM11を用いた時系列データの生成処理(認識生成処理)について説明する。
【0394】
例えば、図29で説明したように、ロボットに、目の前にあるボールを左右に転がすタスクを学習させた後、ロボットの前にボールをおくと(さらに、必要に応じて、ボールを転がすと)、センサ302において、ボールの状態が検知され、その状態を表す時系列のセンサデータが、データ処理装置301のデータ抽出部315に供給される。
【0395】
データ抽出部315は、ステップS311において、センサ302からのセンサデータを入力データとして、その入力データの時系列から、フレーム単位の入力データを抽出し、認識部316に供給して、ステップS312に進む。
【0396】
認識部316では、ステップS312において、スコア計算部341が、データ抽出部315からのフレーム単位の入力データを、順次、注目フレームの入力データとして、その注目フレームの入力データに対して、記憶部311に記憶された入出力関係モデルM11を構成する入力ネットワークnet1の各ノードのスコアを計算し、勝者ノード決定部342に供給する。
【0397】
さらに、ステップS312では、勝者ノード決定部342が、記憶部311に記憶された入出力関係モデルM11を構成する入力ネットワークnet1のノードの中で、スコア計算部341からのスコアが最も良いノードを、入力勝者ノードに決定し、その入力勝者ノードを表す入力ラベルを、写像部317に供給して、ステップS313に進む。
【0398】
ステップS313では、写像部317の生成ノード決定部351が、記憶部311に記憶された入出力関係モデルM11を構成する出力ネットワークnet2のノードの中で、勝者ノード決定部342からの入力ラベルが表すノード(入力勝者ノード)との結合重みが最も強いノードを生成ノードに決定し、その生成ノードを表す出力ラベルを、生成部318に供給して、ステップS314に進む。
【0399】
ステップS314では、生成部318の時系列生成部361が、記憶部311に記憶された入出力関係モデルM11を構成する出力ネットワークnet2のノードのうちの、生成ノード決定部351からの出力ラベルが表す生成ノードが有する時系列パターンモデル21(図7)に基づいて、注目フレームの入力データに対する出力データ(の推定値)としての、例えば、フレームの長さの時系列データを生成して出力する。
【0400】
この出力データとしての時系列データは、モータ駆動部303に供給され、モータ駆動部303が、時系列生成部361からの出力データをモータデータとして、モータを駆動することにより、ロボットのアームが動かされる。
【0401】
以下、データ抽出部315から認識部316に対して供給されるフレーム単位の入力データについて、ステップS312乃至S314の処理が行われる。
【0402】
以上のように、入力ネットワークnet1のフレーム単位の入力データに対する入力勝者ノードと、出力ネットワークnet2の各ノードとの結合重みを更新するとともに、出力ネットワークnet2の、フレーム単位の入力データの時刻から一定の時間だけ遅れたフレーム単位の出力データに対する出力勝者ノードと、入力ネットワークnet1の各ノードとの結合重みを更新するようにしたので、ロボットに、目の前にあるボールを左右に転がすタスクのような実時間性が要求されるタスクを学習させ、そのようなタスクを行わせることができる。
【0403】
なお、上述の場合には、注目フレームの時刻から一定の時間だけ遅れたフレームの出力データとして、注目フレームの時刻から、フレームと同一の時間Tだけ遅れたフレームの出力データを採用することとしたが、即ち、入力データの注目フレームと、その注目フレームに対応する出力データのフレームとの時間差(以下、適宜、入出力時間差という)として、時間Tを採用したが、入出力時間差は、時間Tに限られるものではなく、例えば、時間2Tや3T、0.5Tなどを採用することができる。
【0404】
また、入出力時間差としては、フレーム単位の入力データに対して勝者ノードを決定する処理に要する時間△を考慮した時間、即ち、例えば、時間T+△を採用することができる。
【0405】
図31は、入出力時間差として、フレーム単位の入力データに対して勝者ノードを決定する処理に要する時間△を考慮した時間T+△を採用した場合の、入力データと出力データとを示している。
【0406】
この場合、注目フレームの入力データに対応する出力データは、注目フレームの時刻から時間T+△だけ遅れたフレームの出力データとなるので、結合重み更新部333(図25)では、入力ネットワークnet1のフレーム単位の入力データに対する入力勝者ノードと、出力ネットワークnet2の各ノードとの結合重みが更新されるとともに、出力ネットワークnet2の、フレーム単位の入力データの時刻から時間T+△だけ遅れたフレーム単位の出力データに対する出力勝者ノードと、入力ネットワークnet1の各ノードとの結合重みが更新される。
【0407】
なお、この場合、時刻tのフレームの入力データI[t,t+T]に対応する時刻t+T+△のフレームの出力データは、O[t+T+△,t+2T+△]と表される。
【0408】
また、データ抽出部312(図25)では、時間Tの長さのフレーム単位の入力データに対して、例えば、そのフレームから時間△だけ遅れた、時間Tの長さのフレーム単位の出力データを抽出する必要がある。
【0409】
ここで、結合重み更新部333(図25)において、入力ネットワークnet1のフレーム単位の入力データに対する入力勝者ノードと、出力ネットワークnet2の各ノードとの結合重みを更新するとともに、出力ネットワークnet2の、フレーム単位の入力データの時刻から入出力時間差だけ遅れたフレーム単位の出力データに対する出力勝者ノードと、入力ネットワークnet1の各ノードとの結合重みを更新することは、フレーム単位の入力データと、そのフレーム単位の入力データの時刻から入出力時間差だけ遅れたフレーム単位の出力データとを対応付けるように、入出力関係モデルM11の学習を行うことになる。
【0410】
そして、かかる学習が行われた入出力関係モデルM11を用いた、入力データに対する出力データの生成では、フレーム単位の入力データに対して、そのフレーム単位の入力データの時刻から入出力時間差だけ遅れたフレーム単位の出力データ(の推定値)が生成されるから、この出力データの生成は、フレーム単位の入力データ(例えば、センサデータ)から、そのフレーム単位の入力データの時刻から入出力時間差だけ未来のフレーム単位の出力データ(に対応する行動)を予測している、ということができる。
【0411】
以上のように、図25のロボットでは、フレーム単位の入力データと、そのフレーム単位の入力データの時刻から入出力時間差だけ遅れたフレーム単位の出力データとを対応付けるように、入出力関係モデルM11の学習を行う。
【0412】
このため、ロボットの認知行動(出力データの生成)時において、入力データであるセンサデータとして、入出力関係モデルM11の入力ネットワークnet1のいずれかのノードが表現する時系列パターンに合致する時系列パターンのセンサデータ(以下、適宜、既知のセンサデータという)が入力される限りは、そのセンサデータに対して適切な出力データであるモータデータが生成され、その結果、ロボットは、学習したタスクを再現することができる。
【0413】
次に、図25のロボットについて行った実験の実験結果について説明する。
【0414】
実験では、ロボットに学習させるタスクとして、ボールをロボットの目前で左右の手であるアームを使って転がすタスクを採用した。
【0415】
タスクの学習にあたっては、ロボットの左右の手であるアームのゲインを抜いて、人がロボットのアームを操作しながらボールを左右に転がす状況を再現した。そして、その状況下において、ロボットの左右のアームそれぞれの関節角度の情報を、出力データであるモータデータとして収集するとともに、ボールの位置の情報を、入力データであるセンサデータとして収集し、そのモータデータとセンサデータのセットを、教示データとして、タスクの学習に使った。
【0416】
なお、ボールの位置の情報としては、空間上に定めた3次元座標系におけるボールの座標(x,y,z)を表す3次元のベクトルを採用し、左右のアームの関節角度の情報としては、その関節角度を表す8次元のベクトルを採用した。また、センサデータおよびモータデータは、約70msごとにサンプリングした。
【0417】
フレームとしては、2100msを採用し、フレーム単位のセンサデータとしては、センサデータから、2100ms分のサンプル値を、オーバラップしながら、350msずらしで抽出した。フレーム単位のモータデータも同様である。
【0418】
なお、フレーム単位のセンサデータやモータデータは、人が、センサデータやモータデータから、ある意味がある区間のサンプル値を抽出して得ることが可能である。但し、そのような抽出を、ロボットに行わせることは困難であるため、実験では、上述したように、2100ms分のサンプル値を、350msずらしで抽出して、フレーム単位のセンサデータやモータデータとした。
【0419】
入出力関係モデルM11を構成する時系列パターン記憶ネットワーク(入力ネットワークnet1および出力ネットワークnet2)としては、横×縦が10×10個のノードを有する時系列パターン記憶ネットワークを採用し、ノードには、図8に示したような2次元的に配置される配置構造となるリンクを与えた。
【0420】
また、ノードが有する時系列パターンモデル21としては、HMMを採用し、HMMの出力確率密度関数としては、シングルガウシアン(1つのガウス分布)を採用した。
【0421】
なお、2100msのセンサデータの認知(勝者ノードを決定する処理)は、高々1サンプル分の時間程度で行うことができるため、入出力時間差には、フレーム単位のセンサデータに対して勝者ノードを決定する処理に要する時間△を考慮しなかった。
【0422】
学習後の認知行動の実験では、センサデータに混入するノイズによって、アームの動きが多少不安定になりやすくなるものの、ロボットの前で、ボールを転がし始めると、ロボットが、アームでボールを左右に転がす行動を行うことが確認された。従って、図25のロボットが実時間性が要求されるタスクを学習し、そのタスクを行うことができることが検証された。
【0423】
次に、上述した一連の処理は、専用のハードウェアにより行うこともできるし、ソフトウェアにより行うこともできる。一連の処理をソフトウェアによって行う場合には、そのソフトウェアを構成するプログラムが、汎用のコンピュータやマイクロコンピュータ(コントローラ)等にインストールされる。
【0424】
そこで、図32は、上述した一連の処理を実行するプログラムがインストールされるコンピュータの一実施の形態の構成例を示している。
【0425】
プログラムは、コンピュータに内蔵されている記録媒体としてのハードディスク10105やROM10103に予め記録しておくことができる。
【0426】
あるいはまた、プログラムは、フレキシブルディスク、CD-ROM(Compact Disc Read Only Memory),MO(Magneto Optical)ディスク,DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブル記録媒体10111に、一時的あるいは永続的に格納(記録)しておくことができる。このようなリムーバブル記録媒体10111は、いわゆるパッケージソフトウエアとして提供することができる。
【0427】
なお、プログラムは、上述したようなリムーバブル記録媒体10111からコンピュータにインストールする他、ダウンロードサイトから、ディジタル衛星放送用の人工衛星を介して、コンピュータに無線で転送したり、LAN(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送し、コンピュータでは、そのようにして転送されてくるプログラムを、通信部10108で受信し、内蔵するハードディスク10105にインストールすることができる。
【0428】
コンピュータは、CPU(Central Processing Unit)10102を内蔵している。CPU10102には、バス10101を介して、入出力インタフェース10110が接続されており、CPU10102は、入出力インタフェース10110を介して、ユーザによって、キーボードや、マウス、マイク等で構成される入力部10107が操作等されることにより指令が入力されると、それにしたがって、ROM(Read Only Memory)10103に格納されているプログラムを実行する。あるいは、また、CPU10102は、ハードディスク10105に格納されているプログラム、衛星若しくはネットワークから転送され、通信部10108で受信されてハードディスク10105にインストールされたプログラム、またはドライブ10109に装着されたリムーバブル記録媒体10111から読み出されてハードディスク10105にインストールされたプログラムを、RAM(Random Access Memory)10104にロードして実行する。これにより、CPU10102は、上述したフローチャートにしたがった処理、あるいは上述したブロック図の構成により行われる処理を行う。そして、CPU10102は、その処理結果を、必要に応じて、例えば、入出力インタフェース10110を介して、LCD(Liquid Crystal Display)やスピーカ等で構成される出力部10106から出力、あるいは、通信部10108から送信、さらには、ハードディスク10105に記録等させる。
【0429】
ここで、本明細書において、コンピュータに各種の処理を行わせるためのプログラムを記述する処理ステップは、必ずしもフローチャートとして記載された順序に沿って時系列に処理する必要はなく、並列的あるいは個別に実行される処理(例えば、並列処理あるいはオブジェクトによる処理)も含むものである。
【0430】
また、プログラムは、1のコンピュータにより処理されるものであっても良いし、複数のコンピュータによって分散処理されるものであっても良い。さらに、プログラムは、遠方のコンピュータに転送されて実行されるものであっても良い。
【0431】
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【0432】
また、本発明は、ロボットの他、例えば、テレビジョン受像機やHDレコーダなどのAV(Audio Visual)機器、コンピュータ、その他の装置における、ユーザインタフェース(ヒューマンインタフェース)に適用することが可能である。
【図面の簡単な説明】
【0433】
【図1】制御対象と、順モデルおよび逆モデルとを説明するための図である。
【図2】制御対象としての想定ロボットと、その想定ロボットの順モデルとを示す図である。
【図3】制御対象としてのロボットのアームと、そのアームの逆モデルを利用したアーム制御器とを示す図である。
【図4】線形システムを用いたモデル化を説明するための図である。
【図5】教師あり学習の一例を説明するための図である。
【図6】時系列パターン記憶ネットワークの第1の構成例を示す図である。
【図7】ノードの構成例を示す図である。
【図8】時系列パターン記憶ネットワークの第2の構成例を示す図である。
【図9】時系列パターン記憶ネットワークの第3の構成例を示す図である。
【図10】時系列パターン記憶ネットワークを用いた処理を行うデータ処理装置の構成例を示すブロック図である。
【図11】学習部4の構成例を示すブロック図である。
【図12】学習処理部32の構成例を示すブロック図である。
【図13】更新重みを決定する決定方法を説明するための図である。
【図14】学習データ記憶部22に記憶させる学習データを更新する更新方法を説明するための図である。
【図15】学習処理を説明するフローチャートである。
【図16】認識部3の構成例を示すブロック図である。
【図17】認識処理を説明するフローチャートである。
【図18】生成部6の構成例を示すブロック図である。
【図19】生成処理を説明するフローチャートである。
【図20】入出力関係モデルの構成例を示す図である。
【図21】入出力関係モデルを用いた処理を行うデータ処理装置の構成例を示すブロック図である。
【図22】入出力関係モデルの学習を説明するフローチャートである。
【図23】結合重み行列を示す図である。
【図24】入出力関係モデルを用いて、出力データまたは制御データを推定する処理を説明するフローチャートである。
【図25】本発明を適用したロボットの一実施の形態の構成例を示すブロック図である。
【図26】入出力関係モデルM11を示す図である。
【図27】データ抽出部213の処理を説明するための図である。
【図28】読み出し部332の処理を説明するための図である。
【図29】入出力関係モデルM11の学習を説明するためのフローチャートである。
【図30】入出力関係モデルを用いて時系列データを生成する認識生成処理を説明するフローチャートである。
【図31】入出力時間差として、勝者ノードを決定する処理に要する時間△を考慮した時間を採用した場合の、入力データと出力データとを示す図である。
【図32】本発明を適用したコンピュータの一実施の形態の構成例を示すブロック図である。
【符号の説明】
【0434】
1 信号入力部, 2 特徴抽出部, 3 認識部, 4 学習部, 5 記憶部, 6 生成部, 21 時系列パターンモデル, 22 学習データ記憶部, 31 時系列データ記憶部, 32 学習処理部, 41 スコア計算部, 42 勝者ノード決定部, 43 重み決定部, 44 学習データ更新部, 45 モデル学習部, 51 スコア計算部, 52 勝者ノード決定部, 53 出力部, 61 生成ノード決定部, 62 時系列決定部, 63 出力部, 211 記憶部, 212 学習部, 213 認識生成部, 221 学習処理部, 222 結合重み更新部, 231 スコア計算部, 232 勝者ノード決定部, 233 生成ノード決定部, 234 時系列生成部, 301 データ処理装置, 302 センサ, 303 モータ駆動部, 311 記憶部, 312 データ抽出部, 313 学習処理部, 314 写像学習部, 315 データ抽出部, 316 認識部, 317 写像部, 318 生成部, 321 認識学習処理部, 322 生成学習処理部, 331 データバッファ, 332 読み出し部, 333 結合重み更新部, 341 スコア計算部, 342 勝者ノード決定部, 351 生成ノード決定部, 361 時系列生成部, 10101 バス, 10102 CPU, 10103 ROM, 10104 RAM, 10105
ハードディスク, 10106 出力部, 10107 入力部, 10108 通信部, 10109 ドライブ, 10110 入出力インタフェース, 10111 リムーバブル記録媒体

【特許請求の範囲】
【請求項1】
時系列データである入力データと、他の時系列のデータである出力データとの関係の学習を行うデータ処理装置において、
前記入力データから所定の時間単位の入力データを抽出するとともに、前記出力データから前記所定の時間単位の出力データを抽出する入出力データ抽出手段と、
前記入力データとしての時系列データのパターンである時系列パターンを表現する時系列パターンモデルを有する複数のノードから構成される入力時系列パターン記憶ネットワークと、
前記出力データとしての時系列データのパターンである時系列パターンを表現する時系列パターンモデルを有する複数のノードから構成される出力時系列パターン記憶ネットワークと
を有し、
前記入力時系列パターン記憶ネットワークのノードと、前記出力時系列パターン記憶ネットワークのノードとが結合されている
入出力関係モデルにおける前記入力時系列パターン記憶ネットワークのノードの中から、前記所定の時間単位の入力データに最も適合するノードである入力勝者ノードを決定し、前記入力勝者ノードに基づいて、前記入力時系列パターン記憶ネットワークを、自己組織的に更新する認識学習処理手段と、
前記出力時系列パターン記憶ネットワークのノードの中から、前記所定の時間単位の出力データに最も適合するノードである出力勝者ノードを決定し、前記出力勝者ノードに基づいて、前記出力時系列パターン記憶ネットワークを、自己組織的に更新する生成学習処理手段と、
前記入力時系列パターン記憶ネットワークの前記所定の時間単位の入力データに対する前記入力勝者ノードと、前記出力時系列パターン記憶ネットワークの、前記所定の時間単位の入力データの時刻から一定の時間だけ遅れた前記所定の時間単位の出力データに対する前記出力勝者ノードとの結合の度合いを表す結合重みを強めるように更新する結合重み更新手段と
を備えるデータ処理装置。
【請求項2】
前記入力データは、外部の状態を検知するセンサを有するロボットに所定の行動をさせたときに、前記センサが出力する外部の状態を表す時系列のセンサデータであり、
前記出力データは、前記ロボットに前記所定の行動させるときに、前記ロボットを駆動するモータに供給される時系列のモータデータである
請求項1に記載のデータ処理装置。
【請求項3】
前記入力データから前記所定の時間単位の入力データを抽出する入力データ抽出手段と、
前記入出力関係モデルにおける前記入力時系列パターン記憶ネットワークのノードの中から、前記入力データ抽出手段が抽出した前記所定の時間単位の入力データに最も適合するノードである入力勝者ノードを決定する入力勝者ノード決定手段と、
前記出力時系列パターン記憶ネットワークのノードの中から、前記入力勝者ノード手段が決定した前記入力勝者ノードとの結合が最強のノードを、前記他の時系列データを生成する生成ノードとして決定する生成ノード決定手段と、
前記生成ノードが有する前記時系列パターンモデルに基づいて、前記他の時系列データを生成する生成手段と
をさらに備える請求項1に記載のデータ処理装置。
【請求項4】
時系列データである入力データと、他の時系列のデータである出力データとの関係の学習を行うデータ処理装置のデータ処理方法において、
前記入力データから所定の時間単位の入力データを抽出するとともに、前記出力データから前記所定の時間単位の出力データを抽出し、
前記入力データとしての時系列データのパターンである時系列パターンを表現する時系列パターンモデルを有する複数のノードから構成される入力時系列パターン記憶ネットワークと、
前記出力データとしての時系列データのパターンである時系列パターンを表現する時系列パターンモデルを有する複数のノードから構成される出力時系列パターン記憶ネットワークと
を有し、
前記入力時系列パターン記憶ネットワークのノードと、前記出力時系列パターン記憶ネットワークのノードとが結合されている
入出力関係モデルにおける前記入力時系列パターン記憶ネットワークのノードの中から、前記所定の時間単位の入力データに最も適合するノードである入力勝者ノードを決定し、前記入力勝者ノードに基づいて、前記入力時系列パターン記憶ネットワークを、自己組織的に更新し、
前記出力時系列パターン記憶ネットワークのノードの中から、前記所定の時間単位の出力データに最も適合するノードである出力勝者ノードを決定し、前記出力勝者ノードに基づいて、前記出力時系列パターン記憶ネットワークを、自己組織的に更新し、
前記入力時系列パターン記憶ネットワークの前記所定の時間単位の入力データに対する前記入力勝者ノードと、前記出力時系列パターン記憶ネットワークの、前記所定の時間単位の入力データの時刻から一定の時間だけ遅れた前記所定の時間単位の出力データに対する前記出力勝者ノードとの結合の度合いを表す結合重みを強めるように更新する
ステップを含むデータ処理方法。
【請求項5】
時系列データである入力データと、他の時系列のデータである出力データとの関係の学習を行うデータ処理を、コンピュータに実行させるプログラムにおいて、
前記入力データから所定の時間単位の入力データを抽出するとともに、前記出力データから前記所定の時間単位の出力データを抽出し、
前記入力データとしての時系列データのパターンである時系列パターンを表現する時系列パターンモデルを有する複数のノードから構成される入力時系列パターン記憶ネットワークと、
前記出力データとしての時系列データのパターンである時系列パターンを表現する時系列パターンモデルを有する複数のノードから構成される出力時系列パターン記憶ネットワークと
を有し、
前記入力時系列パターン記憶ネットワークのノードと、前記出力時系列パターン記憶ネットワークのノードとが結合されている
入出力関係モデルにおける前記入力時系列パターン記憶ネットワークのノードの中から、前記所定の時間単位の入力データに最も適合するノードである入力勝者ノードを決定し、前記入力勝者ノードに基づいて、前記入力時系列パターン記憶ネットワークを、自己組織的に更新し、
前記出力時系列パターン記憶ネットワークのノードの中から、前記所定の時間単位の出力データに最も適合するノードである出力勝者ノードを決定し、前記出力勝者ノードに基づいて、前記出力時系列パターン記憶ネットワークを、自己組織的に更新し、
前記入力時系列パターン記憶ネットワークの前記所定の時間単位の入力データに対する前記入力勝者ノードと、前記出力時系列パターン記憶ネットワークの、前記所定の時間単位の入力データの時刻から一定の時間だけ遅れた前記所定の時間単位の出力データに対する前記出力勝者ノードとの結合の度合いを表す結合重みを強めるように更新する
ステップを含む前記データ処理を、コンピュータに実行させるプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate

【図31】
image rotate

【図32】
image rotate