(57)【要約】【課題】大規模な学習を、実用的に行う。【解決手段】複数のSOM(Self-Organization Map)が階層構造を構成するように接続された階層SOMを構成するSOMの自己組織的な学習を、時系列データであるSOM入力データを用いて行うとともに、所定のフレーム長のSOM入力データに対するSOMの勝者ノードと、次の時刻の前記フレーム長のSOM入力データに対するSOMの勝者ノードとの結合の度合いを表す結合重みを強めるように更新する予測学習を行い、かつ、階層SOMを構成する複数のSOMのうちの注目している注目SOMの自己組織的な学習と予測学習とを、注目SOMの下位階層のSOMである下位SOMの勝者ノードを表すノード情報の時系列をSOM入力データとして用いて行う。本発明は、例えば、ロボットなどに適用できる。【選択図】図３４
2007299365.tif 000002
【特許請求の範囲】
【請求項１】
時系列データを処理するデータ処理装置において、
複数のSOM(Self-Organization Map)が階層構造を構成するように接続された階層SOMを構成するSOMの自己組織的な学習を、そのSOMの下位階層のSOMである下位SOMの勝者ノードを表すノード情報の時系列を、SOMへの入力であるSOM入力データとして用いて行う学習手段を備える
データ処理装置。
【請求項２】
前記学習手段は、
前記階層SOMを構成するSOMの自己組織的な学習を、SOM入力データを用いて行うとともに、所定のフレーム長のSOM入力データに対するSOMの勝者ノードと、次の時刻の前記フレーム長のSOM入力データに対するSOMの勝者ノードとの結合の度合いを表す結合重みを強めるように更新する予測学習を行い、
かつ、前記階層SOMを構成する複数のSOMのうちの注目している注目SOMの自己組織的な学習と予測学習とを、前記注目SOMの下位階層のSOMである下位SOMの勝者ノードを表すノード情報の時系列をSOM入力データとして用いて行う
請求項１に記載のデータ処理装置。
【請求項３】
前記注目SOMには、複数の下位SOMが接続されており、
前記学習手段は、前記注目SOMに接続されている複数の下位SOMそれぞれで得られる前記ノード情報を統合した時系列をSOM入力データとして用いて、注目SOMの自己組織的な学習と予測学習とを行う
請求項２に記載のデータ処理装置。
【請求項４】
自己組織的な学習と予測学習とが行われた前記階層SOMを用いて、ある時刻の時系列データの次の時刻の時系列データを予測した予測時系列データを生成する認識生成手段をさらに備える
請求項２に記載のデータ処理装置。
【請求項５】
前記認識生成手段は、
下位階層から上位階層に向かう順序で、
前記階層SOMの各SOMについて、勝者ノードとなるノードを求め、
上位階層から下位階層に向かう順序で、
前記階層SOMの、上位階層のSOMである上位SOMがないSOMについては、前記勝者ノードの前記結合重みに基づいて、次の時刻において勝者ノードとなると予測されるノードである予測ノードを求め、
前記階層SOMの、上位SOMがあるSOMについては、前記勝者ノードの前記結合重みと、上位SOMの予測ノードとに基づいて、予測ノードを求め、
前記階層SOMを構成する複数のSOMのうちの最下位階層のSOMの予測ノードを用いて、前記予測時系列データを生成する
請求項４に記載のデータ処理装置。
【請求項６】
前記認識生成手段は、
下位階層から上位階層に向かう順序で、SOMにおいて、勝者ノードとなるノードを求め、前記勝者ノードを表すノード情報の時系列を、上位階層のSOMである上位SOMへのSOM入力データとし、
上位階層から下位階層に向かう順序で、次の時刻において勝者ノードとなると予測されるSOMのノードである予測ノードを、そのSOMの上位SOMの予測ノードに基づいて求める
請求項４に記載のデータ処理装置。
【請求項７】
前記認識生成手段は、
さらに、SOMにおいて勝者ノードが遷移する確率である遷移確率を、前記結合重みに基づいて求め、
注目SOMの予測ノードを、注目SOMの前記遷移確率と、注目SOMの上位SOMの予測ノードとに基づいて求める
請求項６に記載のデータ処理装置。
【請求項８】
前記認識生成手段は、
下位階層から上位階層に向かう順序で、
前記階層SOMを構成するSOMのノードにおいてSOM入力データが観測される観測尤度を求め、
前記観測尤度に基づいて、SOMのノードが勝者ノードである確率を表す、現在時刻の状態確率を求め、
前記現在時刻の状態確率に基づいて、SOMの勝者ノードを求め、
注目SOMの勝者ノードを表すノード情報の時系列を、その注目SOMの上位SOMへのSOM入力データとし、
上位階層から下位階層に向かう順序で、
注目SOMの遷移確率を、前記結合重みを用いて求め、
注目SOMの遷移確率と、前記注目SOMの上位SOMの予測ノードとに基づいて、次の時刻の状態確率を求め、
前記次の時刻の状態確率に基づいて、前記注目SOMの予測ノードを求め、
前記階層SOMを構成する複数のSOMのうちの最下位階層のSOMの予測ノードを用いて、前記予測時系列データを生成する
請求項７に記載のデータ処理装置。
【請求項９】
前記認識生成手段は、前記階層SOMを構成するSOMに、パーティクルフィルタを適用して前記状態確率を求める
請求項８に記載のデータ処理装置。
【請求項１０】
前記所定のフレーム長のSOM入力データは、上位階層のSOMで用いられるSOM入力データであるほど、長い時間分のデータである
請求項２に記載のデータ処理装置。
【請求項１１】
前記認識生成手段は、前記階層SOMに対して、λメッセージ及びπメッセージを用いたベイジアンネットワークの解法を適用して、前記階層SOMを構成する複数のSOMのうちの最下位階層のSOMの予測ノードを求め、その予測ノードを用いて、前記予測時系列データを生成する
請求項４に記載のデータ処理装置。
【請求項１２】
時系列データを処理するデータ処理方法において、
複数のSOM(Self-Organization Map)が階層構造を構成するように接続された階層SOMを構成するSOMの自己組織的な学習を、そのSOMの下位階層のSOMである下位SOMの勝者ノードを表すノード情報の時系列を、SOMへの入力であるSOM入力データとして用いて行うステップ
を含むデータ処理方法。
【請求項１３】
時系列データを処理するデータ処理を、コンピュータに実行させるプログラムにおいて、
複数のSOM(Self-Organization Map)が階層構造を構成するように接続された階層SOMを構成するSOMの自己組織的な学習を、そのSOMの下位階層のSOMである下位SOMの勝者ノードを表すノード情報の時系列を、SOMへの入力であるSOM入力データとして用いて行うステップ
を含むデータ処理を、コンピュータに実行させるプログラム。
【請求項１４】
時系列データを処理するデータ処理装置において、
複数のSOM(Self-Organization Map)が階層構造を構成するように接続された階層SOMを記憶する記憶手段と、
前記階層SOMを用いて、ある時刻の時系列データの次の時刻の時系列データを予測した予測時系列データを生成する認識生成手段と
を備えるデータ処理装置。
【請求項１５】
前記記憶手段に記憶された階層SOMは、
階層SOMを構成するSOMの自己組織的な学習を、SOMへの入力であるSOM入力データを用いて行うとともに、所定のフレーム長のSOM入力データに対するSOMの勝者ノードと、次の時刻の前記フレーム長のSOM入力データに対するSOMの勝者ノードとの結合の度合いを表す結合重みを強めるように更新する予測学習を行うことにより得られた階層SOMであって、
かつ、階層SOMを構成する複数のSOMのうちの注目している注目SOMの自己組織的な学習と予測学習とを、前記注目SOMの下位階層のSOMである下位SOMの勝者ノードを表すノード情報の時系列をSOM入力データとして用いて行うことにより得られた階層SOMである
請求項１４に記載のデータ処理装置。
【請求項１６】
前記認識生成手段は、
下位階層から上位階層に向かう順序で、
前記階層SOMの各SOMについて、勝者ノードとなるノードを求め、
上位階層から下位階層に向かう順序で、
前記階層SOMの、上位階層のSOMである上位SOMがないSOMについては、前記勝者ノードの前記結合重みに基づいて、次の時刻において勝者ノードとなると予測されるノードである予測ノードを求め、
前記階層SOMの、上位SOMがあるSOMについては、前記勝者ノードの前記結合重みと、上位SOMの予測ノードとに基づいて、予測ノードを求め、
前記階層SOMを構成する複数のSOMのうちの最下位階層のSOMの予測ノードを用いて、前記予測時系列データを生成する
請求項１５に記載のデータ処理装置。
【請求項１７】
前記認識生成手段は、
下位階層から上位階層に向かう順序で、SOMにおいて、勝者ノードとなるノードを求め、前記勝者ノードを表すノード情報の時系列を、上位階層のSOMである上位SOMへのSOM入力データとし、
上位階層から下位階層に向かう順序で、次の時刻において勝者ノードとなると予測されるSOMのノードである予測ノードを、そのSOMの上位SOMの予測ノードに基づいて求める
請求項１５に記載のデータ処理装置。
【請求項１８】
前記認識生成手段は、
さらに、SOMにおいて勝者ノードが遷移する確率である遷移確率を、前記結合重みに基づいて求め、
注目SOMの予測ノードを、注目SOMの前記遷移確率と、注目SOMの上位SOMの予測ノードとに基づいて求める
請求項１７に記載のデータ処理装置。
【請求項１９】
前記認識生成手段は、
下位階層から上位階層に向かう順序で、
前記階層SOMを構成するSOMのノードにおいてSOM入力データが観測される観測尤度を求め、
前記観測尤度に基づいて、SOMのノードが勝者ノードである確率を表す、現在時刻の状態確率を求め、
前記現在時刻の状態確率に基づいて、SOMの勝者ノードを求め、
注目SOMの勝者ノードを表すノード情報の時系列を、その注目SOMの上位SOMへのSOM入力データとし、
上位階層から下位階層に向かう順序で、
注目SOMの遷移確率を、前記結合重みを用いて求め、
注目SOMの遷移確率と、前記注目SOMの上位SOMの予測ノードとに基づいて、次の時刻の状態確率を求め、
前記次の時刻の状態確率に基づいて、前記注目SOMの予測ノードを求め、
前記階層SOMを構成する複数のSOMのうちの最下位階層のSOMの予測ノードを用いて、前記予測時系列データを生成する
請求項１８に記載のデータ処理装置。
【請求項２０】
前記認識生成手段は、前記階層SOMを構成するSOMに、パーティクルフィルタを適用して前記状態確率を求める
請求項１９に記載のデータ処理装置。
【請求項２１】
前記所定のフレーム長のSOM入力データは、上位階層のSOMで用いられるSOM入力データであるほど、長い時間分のデータである
請求項１５に記載のデータ処理装置。
【請求項２２】
前記認識生成手段は、前記階層SOMに対して、λメッセージ及びπメッセージを用いたベイジアンネットワークの解法を適用して、前記階層SOMを構成する複数のSOMのうちの最下位階層のSOMの予測ノードを求め、その予測ノードを用いて、前記予測時系列データを生成する
請求項１５に記載のデータ処理装置。
【請求項２３】
時系列データを処理するデータ処理方法において、
複数のSOM(Self-Organization Map)が階層構造を構成するように接続された階層SOMを用いて、ある時刻の時系列データの次の時刻の時系列データを予測した予測時系列データを生成するステップ
を含むデータ処理方法。
【請求項２４】
時系列データを処理するデータ処理を、コンピュータに実行させるプログラムにおいて、
複数のSOM(Self-Organization Map)が階層構造を構成するように接続された階層SOMを用いて、ある時刻の時系列データの次の時刻の時系列データを予測した予測時系列データを生成するステップ
を含むデータ処理を、コンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理装置、データ処理方法、及びプログラムに関し、特に、例えば、ロボット等において、大規模な学習を、実用的に行い、自律的に行動すること等ができるようにするデータ処理装置、データ処理方法、及びプログラムに関する。
【背景技術】
【０００２】
例えば、自律的にタスクを行うロボットの実現には、順モデルまたは逆モデルを利用することができる。
【０００３】
図１は、順モデルと逆モデルの概念を示している。
【０００４】
ある時系列データ（時系列のデータ）としての入力データに対して、他の時系列データとしての出力データを出力する制御対象が与えられ、制御対象に関する詳細な情報はわからないが（制御対象の内部がわからないが）、制御対象に与えられる入力データと、その入力データに対して制御対象から得られる出力データは観測することができることとする。
【０００５】
ここで、制御対象に与えられる入力データと、その入力データに対して制御対象から得られる出力データとは、観測することができれば、どのような物理量でも良い。また、制御対象は、入力データを与えることができ、かつ、その入力データに対して出力データを得ることができるものであれば、どのような対象（もの）でも良い。
【０００６】
従って、例えば、ボールや、楽器、自動車、ガスヒータその他の種々のものが、制御対象となり得る。即ち、例えば、ボールについては、入力データとしての力を加える（与える）ことで、その入力データに対して変化する出力データとしてのボールの位置や速度が得られる。また、例えば、自動車については、入力データとしてのハンドルや、アクセル、ブレーキなどの操作をする（与える）ことで、その入力データに対して変化する出力データとしての自動車の位置や速度を得ることができる。さらに、例えば、ガスヒータについては、入力データとしての火力を調整する操作をすることで、その入力データに対して変化する出力データとしての部屋の温度を得ることができる。
【０００７】
以上のように、制御対象に入力データを与え、それに対して出力データが得られる場合に、その制御対象をモデル化したもの（モデル）が順モデルである。
【０００８】
順モデルは、入力データを入力すると（入力データが与えられると）、その入力データに対して、制御対象から得られる出力データの予測値を出力する。従って、順モデルによれば、制御対象に対して、実際の入力データを与えなくても、その入力データに対して、制御対象から得られる出力データを予測することができる。
【０００９】
一方、制御対象から得られる出力データの目標値を決定し、その目標値となる出力データを得るために、制御対象に与えるべき入力データを予測することができるモデルが逆モデルである。順モデルは、入力データから出力データへの写像とみなすことができるが、その逆写像が逆モデルである。
【００１０】
ここで、逆モデルによって求められる、目標値となる出力データを得るために、制御対象に与えるべき入力データを、以下、適宜、制御データともいう。
【００１１】
以上のような順モデルや逆モデルは、上述したように、ロボット（の構成）に利用することができる。
【００１２】
即ち、いま、ロボットが、マイク（マイクロフォン）やカメラを備え、音声（音）データや画像データを入力することができ、かつ、スピーカやアクチュエータ（モータ）を備え、音声（音声データ）を出力し、また、モータデータ（モータ信号）にしたがってモータが駆動することにより、アームを動かすことができることとする。
【００１３】
かかるロボットにおいて、ある音声データや画像データなどの入力データに応じて、出力データとしての音声データを出力させ、また、所望のアームの動作をさせる出力データとしてのモータデータを出力させる場合、従来においては、音声認識装置や画像認識装置を用いて、ロボットに入力される音声データや画像データを認識した認識結果に応じて、どのような音声データを出力するべきか、あるいは、どのようなモータデータを出力するべきかを、あらかじめプログラミング（デザイン）しておくことが行われる。
【００１４】
これに対して、順モデルを利用すれば、図２に示すように、ある音声データや画像データに応じて、所望の音声データや、所望のアーム動作をさせるモータデータを出力するロボットを制御対象として想定し、その制御対象として想定したロボット（以下、適宜、想定ロボットと呼ぶ）の順モデルとして、実際のロボットを構成することが可能となる。即ち、想定ロボットに対する入力データと出力データの関係を、実際のロボットに学習させることができれば、想定ロボットの順モデルとしてのロボットを構成することができる。
【００１５】
具体的には、想定ロボットに入力する音声データや画像データなどの入力データと、想定ロボットが各入力データに対応して出力すべき音声データやモータデータなどの出力データとのセットをあらかじめ用意し、実際のロボットに与える。実際のロボットにおいて、外部から与えられた入力データと出力データのセット（以下、適宜、教示データという）だけを用いて、入力データに対応する出力データを予測する（出力する）想定ロボットの順モデルを求めることができれば、実際に入力される音声データや画像データなどの入力データに応じて、所望の音声データやモータデータなどの出力データを出力することが可能となる。
【００１６】
また、逆モデルを利用すれば、図３に示すように、ロボットのアームを制御対象として、その制御対象であるアームを制御するアーム制御器を構成することが可能となる。
【００１７】
即ち、いま、ロボットのアームが、入力データとしてのモータデータに応じて駆動するモータによって動き、その結果、アームの先端の位置が変化するとする。さらに、ロボットの重心を原点とし、ロボットの前方（正面）方向をx軸と、（ロボットから見て）右方向をｙ軸と、上方向をｚ軸と、それぞれする３次元座標系に基づき、その３次元座標系の(x,y,z)座標でアームの先端の位置を表すこととする。この場合、モータデータに応じてモータが駆動し、さらにアームの先端の位置が変化することで、アームの先端がある軌跡を描く。ここで、アームの先端が描く軌跡（先端位置軌跡）の座標のシーケンスを、先端位置軌跡データという。
【００１８】
アームが所望の先端位置軌跡を描くようにするには、つまり、出力データとしての所望の先端位置軌跡データを出力するようにするには、アームがそのような先端位置軌跡を描くようにモータを駆動するモータデータを、入力データとしてモータに与える必要がある。
【００１９】
いま、入力データとしてのモータデータと、そのモータデータがモータに与えられたときの出力データとしての先端位置軌跡データとのセットである教示データだけを用いて、出力データとしての、ある先端位置軌跡データを目標値として得ることができる入力データ（制御データ）としてのモータデータを予測するアームの逆モデルを求めることができれば、その逆モデルは、目標値である先端位置軌跡データに対して、対応するモータデータを決定するアーム制御器に利用することができる。
【００２０】
このようなアームの逆モデルとしてのアーム制御器によれば、ロボットに対して、入力データとしての先端位置軌跡データを入力すると、ロボットは、アーム制御器を用いることで、対応するモータデータ（制御データ）を決定することができる。そして、ロボットが、このモータデータにしたがってモータを駆動すれば、ロボットのアームは、入力データとしての先端位置軌跡データに対応した軌跡を描くように移動する。
【００２１】
以上のように、入力データと出力データとのセット（教示データ）だけを用いて、順モデルや逆モデルを求めることができれば、その順モデルや逆モデルを用いて、各入力データに応じた出力データを出力するロボットを、容易に構成することが可能となる。
【００２２】
以上のような順モデルや逆モデルを求める方法としては、線形システムを用いたモデル化がある。
【００２３】
線形システムを用いたモデル化では、例えば、図４に示すように、時刻tにおける、制御対象への入力データをu(t)とするとともに、出力データをy(t)として、出力データy(t)と入力データu(t)との関係、つまり制御対象を、例えば、式（１）および式（２）で与えられる線形システムとして近似する。
【００２４】
【数１】
2007299365.tif 000003
・・・（１）
【００２５】
【数２】
2007299365.tif 000004
・・・（２）
【００２６】
ここで、x(t)は、時刻tにおける線形システムの状態変数と呼ばれ、A,B,Cは係数である。また、ここでは、説明を簡単にするために、入力データu(t)および出力データy(t)を１次元ベクトル（スカラ）とするとともに、状態変数x(t)をn次元ベクトルとすると（ここでは、nは２以上の整数値）、A,B,Cは、それぞれn×n行列、n×1行列、1×n行列で与えられる定数の行列となる。
【００２７】
線形システムを用いたモデル化では、観測することができる入力データu(t)と、その入力データu(t)が制御対象に与えられたときに観測される出力データy(t)との関係が、式（１）および式（２）を満たすように、行例A,B,Cを決定することで、制御対象の順モデルが得られる。
【００２８】
しかしながら、線形システムを用いたモデル化は、複雑な制御対象、即ち、例えば、非線形な特性を持つ制御対象をモデル化するには十分ではない。
【００２９】
即ち、現実の制御対象は複雑であり、非線形な特性を有することが少なくないが、かかる制御対象を、単純な線形システムとして近似してモデル化すると、順モデルが入力データに対して予測する出力データや、逆モデルが出力データに対して予測する入力データ（制御データ）の予測誤差が大になり、高精度の予測を行うことが困難となる。
【００３０】
そこで、非線形な特性を持つ制御対象に対する順モデルや逆モデルを得る方法としては、例えば、ニューラルネットワークを用いて、教示データ、即ち、制御対象に与えられる入力データと、その入力データが与えられたときに制御対象から観測される出力データとのセットを学習する方法がある。ここで、ニューラルネットワークとは、生体の神経細胞（ニューロン）を模擬した人工素子を相互接続して構成されるネットワークであり、外部から与えられる教示データの関係、つまり、入力データと出力データとの関係を学習することができる。
【００３１】
しかしながら、ニューラルネットワークによって、制御対象を適切にモデル化するには、制御対象の複雑性に応じて、ニューラルネットワークの規模を大にする必要がある。ニューラルネットワークの規模が大になると、学習に要する時間が飛躍的に増大し、また、安定した学習も難しくなる。このことは、入力データや出力データの次元数が大である場合も同様である。
【００３２】
一方、入力データと出力データとのセット（教示データ）だけを用いて、順モデルや逆モデルを求める場合には、教示データを用いて学習を行い、教示データが、幾つかのパターンのうちのいずれに該当するかを認識する必要がある。即ち、教示データとしての入力データや出力データのパターンを学習して認識する必要がある。
【００３３】
パターンを学習して認識を行う技術は、一般にパターン認識（pattern recognition）と呼ばれ、パターン認識における学習は、教師あり学習（supervised learning）と、教師なし学習（unsupervised learning）とに分けることができる。
【００３４】
教師あり学習とは、各パターンの学習データがどのクラスに属するかの情報（これを正解ラベルと呼ぶ）を与えて、各パターンごとに、そのパターンに属する学習データを学習する方法であり、ニューラルネットワークや、HMM（Hidden Markov Model）などを用いた学習方法が数多く提案されている。
【００３５】
ここで、図５は、教師あり学習の一例を示している。
【００３６】
教師あり学習では、学習に利用する学習データが、想定したカテゴリ（クラス）（例えば、各音素のカテゴリや、各音韻のカテゴリ、各単語のカテゴリなど）ごとに用意される。例えば、”A”，”B”，”C”という発声の音声データを学習する場合、”A”，”B”，”C”それぞれの多数の音声データが用意されることになる。
【００３７】
一方、学習に利用するモデル（各カテゴリの学習データを学習させるモデル）も、想定したカテゴリごとに用意される。ここで、モデルは、パラメータによって定義される。例えば、音声データの学習には、モデルとして、HMMなどが用いられるが、HMMは、ある状態から他の状態（元の状態を含む）に遷移する状態遷移確率や、HMMから出力される観測値の確率密度を表す出力確率密度関数などによって定義される。
【００３８】
教師あり学習では、各カテゴリ（クラス）のモデルの学習が、そのカテゴリの学習データのみを用いて行われる。即ち、図５では、カテゴリ”A”のモデルの学習は、カテゴリ”A”の学習データのみを用いて行われ、カテゴリ”B”のモデルの学習は、カテゴリ”B”の学習データのみを用いて行われる。同様に、カテゴリ”C”のモデルの学習も、カテゴリ”C”の学習データのみを用いて行われる。
【００３９】
教師あり学習においては、このように、各カテゴリの学習データを用いて、そのカテゴリのモデルの学習を行う必要があるため、カテゴリごとに、そのカテゴリの学習データを用意し、各カテゴリを学習させるモデルに対して、そのカテゴリの学習データを与えて、カテゴリごとのモデルを得る。その結果、教師あり学習によれば、正解ラベルに基づき、クラスごとのテンプレート（正解ラベルが表すクラス（カテゴリ）のモデル）を得ることができる。
【００４０】
そして、認識時には、ある認識対象のデータに対し、その認識対象のデータに最も適合(match)するテンプレート（尤度が最も高いテンプレート）が求められ、そのテンプレートの正解ラベルが、認識結果として出力される。
【００４１】
一方、教師なし学習は、各パターンの学習データに正解ラベルが与えられない状況で行われる学習であり、例えば、ニューラルネットなどを用いた学習方法があるが、正解ラベルが与えられないという点で、教師あり学習とは大きく異なる。
【００４２】
ところで、パターン認識は、そのパターン認識によって認識しようとする認識対象のデータ（信号）が観測される信号空間の量子化と見ることができる。特に、認識対象のデータがベクトルである場合のパターン認識は、ベクトル量子化（vector quantization）と呼ばれることがある。
【００４３】
ベクトル量子化の学習（コードブックの生成）では、認識対象のデータが観測される信号空間上に、クラスに対応する代表的なベクトル（これをセントロイドベクトルと呼ぶ）が配置される。
【００４４】
ベクトル量子化の教師なし学習として代表的な手法の一つに、K-平均法（K-means clustering method）がある。K-平均法は、初期状態として、セントロイドベクトルを適当に配置し、学習データとしてのベクトルを、最も距離の近いセントロイドベクトルに割り当て、各セントロイドベクトルに割り当てられた学習データの平均ベクトルによってセントロイドベクトルを更新することを繰り返す学習手法である。なお、セントロイドベクトルの集まりは、コードブックと呼ばれる。
【００４５】
ここで、多数の学習データを蓄積し、そのすべてを用いて学習を行う方法は、バッチ学習（batch learning）と呼ばれ、K-平均法は、バッチ学習に分類される。バッチ学習に対して、学習データを観測するたびに、その学習データを用いて学習を行い、パラメータ（セントロイドベクトルのコンポーネントや、HMMを定義する出力確率密度関数など）を少しずつ更新する学習は、オンライン学習（on-line learning）と呼ばれる。
【００４６】
オンライン学習としては、コホネン(T.Kohonen)の提案したSOM（self-organization map）の学習が知られている。SOMの学習では、SOMの入力層と出力層の結合重みが、オンライン学習により少しずつ更新（修正）されていく。
【００４７】
即ち、SOMにおいて、出力層は、複数のノードを有し、出力層の各ノードには、重みベクトルが与えられる。この重みベクトルをセントロイドベクトルとした場合、SOMの学習は、ベクトル量子化の学習となる。
【００４８】
具体的には、SOMの出力層のノードにおいて、重みベクトルと、学習データとしてのベクトルとの距離が最も近いノードが、その学習データとしてのベクトルに最も適合する勝者ノードに決定され、その勝者ノードの重みベクトルが、学習データとしてのベクトルに近づくように更新される。さらに、勝者ノードの近傍のノードの重みベクトルも、学習データに少しだけ近づくように更新される。その結果、学習が進むにつれ、重みベクトルが類似したノードどうしは近くなるように、類似しないノードは遠くなるように、出力層の上に配置されていく。従って、出力層には、あたかも学習データに含まれるパターンに応じた地図が構成されていくことになる。このように、学習が進むにつれて、類似するノード（重みベクトルが類似するノード）どうしが近い位置に集まり、学習データに含まれるパターンに応じた地図が構成されていく学習は、自己組織的な学習または自己組織化学習（self-organization）と呼ばれる。
【００４９】
ここで、K-平均法では、学習データに最も距離の近いベクトルのみが更新されることから、その更新方法はWTA(winner-take-all)と呼ばれる。一方、SOMによる学習では、学習データに最も距離の近いノード（勝者ノード）の重みベクトルだけでなく、勝者ノードの近傍のノードの重みベクトルも更新されるから、その更新方法はSMA(soft-max adaptation)と呼ばれる。WTAで学習を行うと学習結果が局所解に陥りやすいのに対して、SMAで学習を行うと、局所解に陥る問題を改善することができることが知られている。
【００５０】
なお、SOMに関しては、例えば、非特許文献１に記載されている。
【００５１】
ところで、ロボットの実世界での振る舞い（行動）をより自然にするため、ロボット自身が自分の行動を通して認知行動の構造を獲得するための枠組みの研究が行われている。ここで、認知行動とは、例えば、ロボット等が、外部の状態（ロボット自身の状態も含む）を認知（認識）し、その認知結果に応じて行動をとることを意味する。
【００５２】
ロボットに認知行動を行わせるには、例えば、外部の状態を検知するセンサが出力するセンサデータに対して、ロボットを駆動するモータに供給されるモータデータとして、適切なモータデータを求める必要がある。
【００５３】
一般に、センサが出力するセンサデータと、モータに供給されるモータデータとは、いずれも連続的な時系列データである。また、実世界での認知行動を行うロボットでは、センサデータやモータデータとして、次元数の大きなデータを扱う必要がある。さらに、かかるロボットで扱うセンサデータやモータデータの振る舞いは複雑であり、線形システムでモデル化することは困難である。
【００５４】
そこで、センサデータやモータデータのような時系列データのパターンである時系列パターンを表現する時系列パターンモデルを有する複数のノードから構成される時系列パターン記憶ネットワークによって、多次元のベクトルの時系列であるセンサデータやモータデータなどの時系列データを自己組織的に学習し、さらに、入力データとしての時系列データを学習した時系列パターン記憶ネットワークと、出力データとしての時系列データを学習した時系列パターン記憶ネットワークとのノードどうしを結合し、入力データに基づき、外部の状態を認知し、その認知結果に応じてロボットがとるべき行動に対応する出力データを生成する方法について、本件出願人は、先に提案している（例えば、特許文献参照）。
【００５５】
ここで、時系列パターン記憶ネットワークは、複数のノードから構成され、自己組織的な学習を行うことができる点で、従来のSOMと共通し、従って、SOMの範疇に含まれるので、SOMの一種であるということができる。但し、時系列パターン記憶ネットワークは、ノードが時系列パターンモデルを有し、その時系列パターンモデルによって記憶構造の中に、時系列パターンを保持することができる点で、従来のSOMとは異なる。
【００５６】
【特許文献１】特開２００６−１６２８９８号公報
【非特許文献１】T.コホネン、「自己組織化マップ」、シュプリンガー・フェアラーク東京
【発明の開示】
【発明が解決しようとする課題】
【００５７】
ところで、時系列データの学習は、例えば、時系列データを、固定の長さに区切ることにより、ニューラルネットワークで行うことができる。即ち、時系列データを、固定の長さに区切り、その固定の長さの時系列データをコンポーネントとするベクトルを、ニューラルネットワークに入力として与えることにより、時系列データを、ニューラルネットワークで学習することができる。
【００５８】
しかしながら、ニューラルネットワークに与える入力の次元数が大であるような、いわば大規模な学習を、１つのニューラルネットワークで行うことは、演算量が飛躍的に増大することから、実用的なレベルでは困難である。
【００５９】
本発明は、このような状況に鑑みてなされたものであり、大規模な学習を、実用的に行うことができるようにするものである。
【課題を解決するための手段】
【００６０】
本発明の第１の側面のデータ処理装置は、時系列データを処理するデータ処理装置であり、複数のSOM(Self-Organization Map)が階層構造を構成するように接続された階層SOMを構成するSOMの自己組織的な学習を、そのSOMの下位階層のSOMである下位SOMの勝者ノードを表すノード情報の時系列を、SOMへの入力であるSOM入力データとして用いて行う学習手段を備える。
【００６１】
本発明の第１の側面のデータ処理方法、又はプログラムは、時系列データを処理するデータ処理方法、又は時系列データを処理するデータ処理を、コンピュータに実行させるプログラムであり、複数のSOM(Self-Organization Map)が階層構造を構成するように接続された階層SOMを構成するSOMの自己組織的な学習を、そのSOMの下位階層のSOMである下位SOMの勝者ノードを表すノード情報の時系列を、SOMへの入力であるSOM入力データとして用いて行うステップを含む。
【００６２】
以上のような第１の側面においては、複数のSOMが階層構造を構成するように接続された階層SOMを構成するSOMの自己組織的な学習が、そのSOMの下位階層のSOMである下位SOMの勝者ノードを表すノード情報の時系列を、SOM入力データとして用いて行われる。
【００６３】
本発明の第２の側面のデータ処理装置は、時系列データを処理するデータ処理装置であり、複数のSOM(Self-Organization Map)が階層構造を構成するように接続された階層SOMを記憶する記憶手段と、前記階層SOMを用いて、ある時刻の時系列データの次の時刻の時系列データを予測した予測時系列データを生成する認識生成手段とを備える。
【００６４】
本発明の第２の側面のデータ処理方法、又はプログラムは、時系列データを処理するデータ処理方法、又は時系列データを処理するデータ処理を、コンピュータに実行させるプログラムであり、複数のSOM(Self-Organization Map)が階層構造を構成するように接続された階層SOMを用いて、ある時刻の時系列データの次の時刻の時系列データを予測した予測時系列データを生成するステップを含む。
【００６５】
以上のような第２の側面においては、複数のSOMが階層構造を構成するように接続された階層SOMを用いて、ある時刻の時系列データの次の時刻の時系列データを予測した予測時系列データが生成される。
【００６６】
なお、プログラムは、記録媒体に記録し、また、伝送媒体を介して伝送することができる。
【発明の効果】
【００６７】
本発明の第１の側面によれば、大規模な学習を、実用的に行うことができる。
【００６８】
また、本発明の第２の側面によれば、次の時刻の時系列データを予測した予測時系列データを生成することができる。
【発明を実施するための最良の形態】
【００６９】
以下に本発明の実施の形態を説明するが、本発明の構成要件と、明細書又は図面に記載の実施の形態との対応関係を例示すると、次のようになる。この記載は、本発明をサポートする実施の形態が、明細書又は図面に記載されていることを確認するためのものである。従って、明細書又は図面中には記載されているが、本発明の構成要件に対応する実施の形態として、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その構成要件に対応するものではないことを意味するものではない。逆に、実施の形態が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
【００７０】
本発明の第１の側面のデータ処理装置は、
時系列データを処理するデータ処理装置（例えば、図３３のデータ処理装置５０１）であり、
複数のSOM(Self-Organization Map)が階層構造を構成するように接続された階層SOMを構成するSOMの自己組織的な学習を、そのSOMの下位階層のSOMである下位SOMの勝者ノードを表すノード情報の時系列を、SOMへの入力であるSOM入力データとして用いて行う学習手段（例えば、図３３の学習部５１３）
を備える。
【００７１】
第１の側面のデータ処理装置には、
自己組織的な学習と予測学習とが行われた前記階層SOMを用いて、ある時刻の時系列データの次の時刻の時系列データを予測した予測時系列データを生成する認識生成手段（例えば、図３３の認識生成部５１５）をさらに設けることができる。
【００７２】
本発明の第１の側面のデータ処理方法、又はプログラムは、
時系列データを処理するデータ処理方法、又は時系列データを処理するデータ処理を、コンピュータに実行させるプログラムであり、
複数のSOM(Self-Organization Map)が階層構造を構成するように接続された階層SOMを構成するSOMの自己組織的な学習を、そのSOMの下位階層のSOMである下位SOMの勝者ノードを表すノード情報の時系列を、SOMへの入力であるSOM入力データとして用いて行うステップ（図３９のステップＳ５２１ないしＳ５２５）
を含む。
【００７３】
本発明の第２の側面のデータ処理装置は、
時系列データを処理するデータ処理装置（例えば、図３３のデータ処理装置５０１）であり、
複数のSOM(Self-Organization Map)が階層構造を構成するように接続された階層SOMを記憶する記憶手段（例えば、図３３の記憶部５１１）と、
前記階層SOMを用いて、ある時刻の時系列データの次の時刻の時系列データを予測した予測時系列データを生成する認識生成手段（例えば、図３３の認識生成部５１５）と
を備える。
【００７４】
本発明の第２の側面のデータ処理方法、又はプログラムは、
時系列データを処理するデータ処理方法、又は時系列データを処理するデータ処理を、コンピュータに実行させるプログラムであり、
複数のSOM(Self-Organization Map)が階層構造を構成するように接続された階層SOMを用いて、ある時刻の時系列データの次の時刻の時系列データを予測した予測時系列データを生成するステップ（例えば、図４１のステップＳ５４１ないしＳ５６０や、図４９のステップＳ６０１ないしＳ６２０、図５２のステップＳ７０１ないしＳ７２３、図５７のステップＳ８０１ないし８２４）
を含む。
【００７５】
なお、第１及び第２の側面のデータ処理装置において、
前記認識生成手段は、
下位階層から上位階層に向かう順序で、
前記階層SOMの各SOMについて、勝者ノードとなるノードを求め（例えば、図４１のステップＳ５４４）、
上位階層から下位階層に向かう順序で、
前記階層SOMの、上位階層のSOMである上位SOMがないSOMについては、前記勝者ノードの前記結合重みに基づいて、次の時刻において勝者ノードとなると予測されるノードである予測ノードを求め（例えば、図４１のステップＳ５５４）、
前記階層SOMの、上位SOMがあるSOMについては、前記勝者ノードの前記結合重みと、上位SOMの予測ノードとに基づいて、予測ノードを求め（例えば、図４１のステップＳ５５２）、
前記階層SOMを構成する複数のSOMのうちの最下位階層のSOMの予測ノードを用いて、前記予測時系列データを生成する（例えば、図４１のステップＳ５５９）
ことができる。
【００７６】
さらに、第１及び第２の側面のデータ処理装置において、
前記認識生成手段は、
下位階層から上位階層に向かう順序で、SOMにおいて、勝者ノードとなるノードを求め、前記勝者ノードを表すノード情報の時系列を、上位階層のSOMである上位SOMへのSOM入力データとし（例えば、図４１のステップＳ５４４及びＳ５４５や、図４９のステップＳ６０７）、
上位階層から下位階層に向かう順序で、次の時刻において勝者ノードとなると予測されるSOMのノードである予測ノードを、そのSOMの上位SOMの予測ノードに基づいて求める（例えば、図４１のステップＳ５５２や、図４９のステップＳ６１４）
ことができる。
【００７７】
また、第１及び第２の側面のデータ処理装置において、
前記認識生成手段は、
さらに、SOMにおいて勝者ノードが遷移する確率である遷移確率を、前記結合重みに基づいて求め（例えば、図４９のステップＳ６１２）、
注目SOMの予測ノードを、注目SOMの前記遷移確率と、注目SOMの上位SOMの予測ノードとに基づいて求める（例えば、図４９のステップＳ６１５）
ことができる。
【００７８】
さらに、第１及び第２の側面のデータ処理装置において、
前記認識生成手段は、
下位階層から上位階層に向かう順序で、
前記階層SOMを構成するSOMのノードにおいてSOM入力データが観測される観測尤度を求め（例えば、図４９のステップＳ６０５）、
前記観測尤度に基づいて、SOMのノードが勝者ノードである確率を表す、現在時刻の状態確率を求め（例えば、図４９のステップＳ６０６）、
前記現在時刻の状態確率に基づいて、SOMの勝者ノードを求め（例えば、図４９のステップＳ６０７）、
注目SOMの勝者ノードを表すノード情報の時系列を、その注目SOMの上位SOMへのSOM入力データとし（例えば、図４９のステップＳ６０７）、
上位階層から下位階層に向かう順序で、
注目SOMの遷移確率を、前記結合重みを用いて求め（例えば、図４９のステップＳ６１２）、
注目SOMの遷移確率と、前記注目SOMの上位SOMの予測ノードとに基づいて、次の時刻の状態確率を求め（例えば、図４９のステップＳ６１４）、
前記次の時刻の状態確率に基づいて、前記注目SOMの予測ノードを求め（例えば、図４９のステップＳ６１５）、
前記階層SOMを構成する複数のSOMのうちの最下位階層のSOMの予測ノードを用いて、前記予測時系列データを生成する（例えば、図４９のステップＳ６１７）
ことができる。
【００７９】
以下、図面を参照して、本発明の実施の形態について説明するが、その前段階の準備として、時系列パターン記憶ネットワークについて説明する。
【００８０】
図６は、時系列パターン記憶ネットワークの例を模式的に示している。
【００８１】
時系列パターン記憶ネットワークは、時系列パターンを表現する時系列パターンモデルを有する複数のノードから構成されるネットワークで、そのネットワーク全体で、ノードの数だけの（クラス分けを行う）時系列パターンを記憶する。
【００８２】
図６においては、時系列パターン記憶ネットワークは、ノードN1乃至N6の６つのノードから構成されている。
【００８３】
時系列パターン記憶ネットワークを構成する各ノードNi（図６では、ｉ＝１，２，・・・，６）は、時系列パターンを表現する時系列パターンモデルを有する。また、ノードNiは、他のノードNj（図６では、ｊ＝１，２，・・・，６）と結合関係を持つことができる。この結合関係をリンクと呼ぶ。図６では、例えば、ノードN1は、ノードN2，N3と直接の結合関係を有している。また、例えば、ノードN3は、ノードN1，N2，N5，N6と直接の結合関係を有しており、従って、ノードN5とN6は、ノードN3を介して、ノードN1と間接的な結合関係を有している。なお、２つのノードNiとNjとの結合関係としては、その２つのノードNiとNjとの最短の結合関係を考えるものとする。
【００８４】
時系列パターン記憶ネットワークの学習（時系列パターン記憶ネットワークに時系列パターンを記憶させる学習）は、時系列データを、学習用の学習データとして行われるが、この学習データは、カテゴリの種類や、カテゴリの数が未知のもので、この点、時系列パターン記憶ネットワークの学習は、前述の図５で説明した教師あり学習と大きく異なる。また、時系列パターン記憶ネットワークの学習に用いられる学習データには、正解ラベルは付与されていない。このため、時系列パターン記憶ネットワークの学習には、前述の図５で説明した教師あり学習を適用することはできない。
【００８５】
このように、時系列パターン記憶ネットワークの学習には、教師あり学習を適用することができず、また、学習データは、そのカテゴリの種類も、カテゴリの数も未知である。そこで、時系列パターン記憶ネットワークの学習は、その全体（のノード）によって、学習データの特徴（時系列パターン）を適切に表現することができるように、自己組織的に行われる。
【００８６】
なお、時系列パターン記憶ネットワークの学習は、教師なし学習である。また、時系列パターン記憶ネットワークの学習は、ある１つのノードが、必ずしもある１つのカテゴリに対応するように行われるとは限らない。即ち、時系列パターン記憶ネットワークにおいては、１つのノードが１つのカテゴリに対応するように学習が行われる場合もあるし、複数のノードが１つのカテゴリに対応するように学習が行われる場合もある。さらに、１つのノードが複数のカテゴリに対応するように学習が行われる場合もある。従って、仮に、学習データが、明確にカテゴリ分けすることができないものであっても、時系列パターン記憶ネットワークによる学習は行うことができる。
【００８７】
次に、図７は、時系列パターン記憶ネットワークのノードNiの構成例を模式的に示している。
【００８８】
ノードNiは、時系列パターンを表現する時系列パターンモデル２１と、その時系列パターンモデル２１の学習に用いる学習データを記憶する学習データ記憶部２２とから構成される。
【００８９】
ここで、図７では、時系列パターンモデル２１として、状態確率遷移モデルの１つであるHMM（連続HMM）が採用されている。また、図７では、HMMは、自己ループと次状態（右隣の状態）への状態遷移だけを有するleft-to-right型の３状態S1，S2，S3を有するものとなっている。図７の時系列パターンモデル２１における○印は状態を表し、矢印は状態遷移を表している。なお、時系列パターンモデル２１としてのHMMは、left-to-right型や、３状態のもの等に限定されない。
【００９０】
時系列パターンモデル２１が、図７に示したようなHMMである場合、その時系列パターンモデル２１としてのHMMは、状態遷移確率と出力確率密度関数（HMMが離散HMMである場合には、スカラ量である離散的なシンボルが出力される確率）とで定義される。
【００９１】
状態遷移確率は、HMMにおいて、状態が遷移する確率で、図７の時系列パターンモデル２１における矢印で示した状態遷移それぞれに対して与えられる。出力確率密度関数は、状態遷移時に、HMMから観測される値の確率密度を表す。出力確率密度関数としては、例えば、混合正規分布などが採用される。これらのHMMのパラメータ（状態遷移確率と出力確率密度関数）は、例えば、Baum-Welch法によって学習（推定）することができる。
【００９２】
ノードNiでは、学習データ記憶部２２に記憶された学習データの統計的な特性、即ち、学習データ記憶部２２に記憶された学習データの時系列パターンが、時系列パターンモデル２１において学習され、これにより、時系列パターンモデル２１と、学習データ記憶部２２に記憶された学習データとが、対応関係を持つことになる。
【００９３】
なお、時系列パターン記憶ネットワークの学習、ひいては、ノードNiの時系列パターンモデル２１の学習は、時系列パターン記憶ネットワークに対して、時系列データが与えられるごとに学習を行うオンライン学習によって行われる。従って、時系列パターン記憶ネットワークのパラメータ、つまり、ノードNiの時系列パターンモデル２１のパラメータ（時系列パターンモデル２１がHMMである場合には、上述したように、状態遷移確率と出力確率密度関数）は、時系列パターン記憶ネットワークに対して、時系列データが与えられるたびに、少しずつ更新される。
【００９４】
即ち、後述するように、時系列パターン記憶ネットワークの学習が進むにつれ、学習データ記憶部２２に記憶される学習データは、時系列パターン記憶ネットワークに与えられた時系列データによって更新され、これにより、少しずつ変化する。そして、その少しずつ変化する学習データによって、時系列パターンモデル２１の学習が行われることにより、その時系列パターンモデル２１のパラメータも、少しずつ変化していく。
【００９５】
但し、時系列パターン記憶ネットワークの学習は、バッチ学習によって行うことも可能である。
【００９６】
次に、図８は、時系列パターン記憶ネットワークの他の例を模式的に示している。
【００９７】
図８では、時系列パターン記憶ネットワークは、９個のノードN1乃至N9で構成されており、この９個のノードN1乃至N9は、２次元的に配置されている。即ち、図８では、９個のノードN1乃至N9は、２次元平面上に、横×縦が３×３となるように配置されている。
【００９８】
さらに、図８では、２次元的に配置された９個のノードN1乃至N9の、横方向に隣接するノードどうしと、縦方向に隣接するノードどうしに対して、リンク（結合関係）が与えられている。なお、このようなリンクを与えることによって、時系列パターン記憶ネットワークを構成するノードには、空間的に、２次元的に配置される配置構造が与えられているということもできる。
【００９９】
時系列パターン記憶ネットワークでは、リンクによって与えられる空間的なノードの配置構造に基づき、その空間上でのある２つのノードどうしの距離を定義することができ、この２つのノードどうしの距離は、その２つのノードそれぞれが有する時系列パターンモデル２１が表現する時系列パターンのパターン間距離（時系列パターンどうしの類似性）として用いることができる。
【０１００】
なお、２つのノードどうしの距離によって表される時系列パターンのパターン間距離は、２つのノードの結合関係（リンク）に基づくパターン間距離ということができる。
【０１０１】
２つのノードどうしの距離としては、例えば、その２つのノードどうしを結ぶ最短のパスを構成するリンクの数を採用することができる。この場合、あるノードに注目すると、その注目ノードとの直接のリンクを有するノード（図８では、注目ノードの横方向や縦方向に隣接するノード）は、注目ノードとの距離が最も近く、注目ノードとの直接のリンクを有するノードから先のリンクを辿っていくことで到達することができるノードは、到達するのに辿るリンクの数が多いほど、注目ノードとの距離が遠くなっていく。
【０１０２】
なお、ノードに与えるリンクは、図６や図８に示したものに限定されるものではない。また、図６や図８に示したリンクは、ノードに対して、２次元的な配置構造を与えるが、リンクは、その他、１次元的な配置構造や３次元的な配置構造等を与えるリンクであっても良い。さらに、ノードには、必ずしもリンクを与える必要はない。
【０１０３】
即ち、図９は、時系列パターン記憶ネットワークのさらに他の例を模式的に示している。
【０１０４】
図９では、時系列パターン記憶ネットワークは、図６における場合と同様に、６個のノードN1乃至N6で構成されているが、これらの６個のノードN1乃至N6は、いずれもリンクを有していない。従って、図９の時系列パターン記憶ネットワークを構成するノードN1乃至N6は、リンクによって与えられる空間的な配置構造を有していない。なお、空間的な配置構造を有していないということは、空間的な制約がない配置構造が与えられているということもできる。
【０１０５】
ここで、ある２つのノードにリンクがない場合には、空間上でのその２つのノードどうしの距離を定義することはできないから、その２つのノードそれぞれが（有する時系列パターンモデル２１が）表現する時系列パターンのパターン間距離として、結合関係（リンク）に基づくパターン間距離は用いることができない。そこで、この場合には、例えば、ノードが、ある時系列データ（の観測値）に適合する度合いに基づく順位（以下、適宜、適合順位という）に対応する値を、パターン間距離として用いることができる。
【０１０６】
即ち、ある時系列データが与えられた場合には、その時系列データに対して、ノードが表現する時系列パターンとの類似性を、そのノードが適合する度合いとして求めることができる。そこで、時系列パターン記憶ネットワークを構成するノードのうちの、ある時系列データに最も適合するノードである勝者ノードと、時系列パターン記憶ネットワークのあるノードとのそれぞれが表現する時系列パターンのパターン間距離としては、そのノードが時系列データに適合する度合いの順位（適合順位）に対応する値を採用することができる。
【０１０７】
具体的には、時系列パターン記憶ネットワークを構成するノードのうち、勝者ノードとなっているノードの適合順位は第１位であり、このノード（勝者ノード）と勝者ノードとの（それぞれが表現する時系列パターンの）パターン間距離は、例えば、その適合順位から１を減算した０とすることができる。
【０１０８】
また、時系列パターン記憶ネットワークを構成するノードのうち、適合順位が第２位のノードと勝者ノードとのパターン間距離は、例えば、その適合順位から１を減算した１とすることができる。以下、同様に、ノードの適合順位から１を減算して得られる値を、そのノードと、勝者ノード（となっているノード）とのパターン間距離とすることができる。
【０１０９】
なお、ノードがある時系列データに適合する度合いに基づく順位（適合順位）に対応する値によって表されるパターン間距離は、ノードが時系列データに適合する度合いに基づくパターン間距離ということができる。
【０１１０】
次に、図１０は、時系列パターン記憶ネットワークを用いて、各種の処理を行うデータ処理装置の構成例を示している。
【０１１１】
信号入力部１には、後述する学習処理や認識処理の対象となるデータ（以下、処理対象データという）が入力される。ここで、処理対象データは、例えば、音（音声）や画像、LED(Light Emitting Diode)の明るさ、モータの回転角度や回転角速度などの観測値（外部から観測することができる値（信号））である。また、処理対象データは、例えば、図１０のデータ処理装置が適用されるシステムの入力を受け付ける入力デバイス（センサ）が出力するデータであっても良いし、何らかの出力を行う出力デバイスに対して与えられるデータであっても良い。
【０１１２】
即ち、図１０のデータ処理装置が、例えば、２足歩行ロボットその他のロボットに適用され、その２足歩行ロボットが、外部の状況に応じて、何らかの処理を行う場合には、信号入力部１は、外部の状況をセンシングするセンサで構成することができる。具体的には、信号入力部１は、例えば、マイク（マイクロフォン）やカメラなどで構成することができる。
【０１１３】
信号入力部１がマイクで構成される場合には、そのマイクに対して、外部で発生する音声（人間の音声の他、動物の鳴き声、物音、その他のあらゆる音を含む）が、２足歩行ロボット（データ処理装置が適用されているシステム）に対する入力データとして入力され、対応する音声データが、特徴抽出部２に供給される。また、信号入力部１がカメラで構成される場合には、そのカメラに対して、外部からの光が、２足歩行ロボットに対する入力データとして入力され、対応する画像データが、特徴抽出部２に供給される。
【０１１４】
また、２足歩行ロボットが、例えば、手や足に相当する部分を、アクチュエータとしてのモータによって動かすことができる場合には、信号入力部１は、そのモータの回転角度や回転速度を計測する計測装置（回転角度や回転速度をセンシングするセンサ）で構成することができる。なお、２足歩行ロボットの手や足に相当する部分を動かすモータは、そのモータを回転駆動させる電気信号としての駆動信号を与える他、手や足に相当する部分に外部から力を加えて動かすことによっても回転するが、計測装置では、そのいずれの回転によって生じた回転角度や回転速度等であっても計測することができる。
【０１１５】
信号入力部１が計測装置で構成される場合には、その計測装置に対して、モータの回転角度や回転速度等を表す信号が、２足歩行ロボットからの出力データとして入力されて計測され、その計測結果が、特徴抽出部２に供給される。
【０１１６】
なお、信号入力部１に入力される処理対象データは、時間的な変化が一定の定常的なデータ（定常信号）であっても良いし、時間的な変化が一定でない非定常なデータ（非定常信号）であっても良い。
【０１１７】
また、以下では、信号入力部１に対しては、例えば、時系列データの１つである音声が入力されるものとする。さらに、信号入力部１から特徴抽出部２に対しては、いわゆる音声区間の音声データだけが供給されるものとする。なお、音声区間の検出方法は、特に限定されるものではない。また、信号入力部１から特徴抽出部２に対して供給される音声データは、必ずしも、音声区間の長さである必要はなく、適切な長さに区切られていればよい。即ち、信号入力部１から特徴抽出部２に対して供給される音声データは、例えば、音素や音韻の単位であっても良いし、単語や文、ある句読点から次の句読点までであっても良い。
【０１１８】
ここで、信号入力部１から特徴抽出部２に対して供給される処理対象データは、音声データに限定されるものではなく、その区間も、特に限定されるものではない。即ち、信号入力部１から特徴抽出部２に対しては、最も良い方法で適当な長さに区切られた処理対象データが供給されれば良い。なお、信号入力部１から特徴抽出部２に対して供給される処理対象データ（の区間）は、一定であっても良いし、一定でなくても良い。
【０１１９】
特徴抽出部２は、信号入力部１からの処理対象データとしての時系列データである音声データを所定の時間長のデータに区切って分析することにより、特徴量を抽出し、その特徴量の時系列である時系列データを、認識部３と学習部４に供給する。即ち、特徴抽出部２は、信号入力部１からの音声データに対して一定時間間隔で周波数分析などの処理を施し、例えば、メルケプストラム係数（MFCC（Mel Frequency Cepstrum Coefficient））などの特徴量を抽出して、そのメルケプストラム係数の時系列データを、認識部３と学習部４に供給する。なお、特徴抽出部２から認識部３と学習部４に供給される時系列データも、外部から観測することができる観測値である。
【０１２０】
認識部３は、記憶部５に記憶された時系列パターン記憶ネットワークに基づき、特徴抽出部２から供給される時系列データを認識し、その認識結果を出力する。
【０１２１】
ここで、学習部４は、記憶部５に記憶された時系列パターン記憶ネットワークを、特徴抽出部２から供給される時系列データ（の観測値）に基づいて、自己組織的に更新する学習を行う。即ち、学習部４は、特徴抽出部２から供給される時系列データに基づいて、記憶部５に記憶された時系列パターン記憶ネットワークのパラメータを更新する。
【０１２２】
学習部４では、正解ラベルの付与されていない時系列データを繰り返し与えると、その与えられた時系列データの中の特徴的なパターン（時系列パターン）を自己組織的に獲得していく教師なし学習が実行される。その結果、記憶部５の時系列パターン記憶ネットワークには、代表的な時系列パターンが効率的に記憶される。即ち、特徴抽出部２が認識部３と学習部４に供給する時系列データは、幾つかのパターン（時系列パターン）に分類することができ、学習部４では、時系列パターン記憶ネットワークに、時系列データの代表的な時系列パターンを記憶させるための学習が行われる。
【０１２３】
記憶部５は、時系列パターン記憶ネットワークを記憶しており、この時系列パターン記憶ネットワーク（のパラメータ）は、学習部４によって適宜更新される。
【０１２４】
生成部６には、制御データが供給される。生成部６に供給される制御データは、記憶部５の時系列パターン記憶ネットワークが記憶している時系列パターンのうちのいずれかを表すもの（例えば、後述するノードラベル）で、生成部６は、記憶部５の時系列パターン記憶ネットワークに基づき、そこに供給される制御データが表す時系列パターンの時系列データを生成して出力する。
【０１２５】
次に、図１１は、図１０の学習部４の構成例を示している。
【０１２６】
学習部４は、時系列データ記憶部３１と学習処理部３２とから構成される。
【０１２７】
時系列データ記憶部３１には、特徴抽出部２から、（１区間の）新たな時系列データとしての特徴量の系列が供給される。時系列データ記憶部３１は、特徴抽出部２からの新たな時系列データを、一時的に（学習処理部３２による新たな時系列データを用いた処理が終了するまで）記憶する。
【０１２８】
学習処理部３２は、記憶部５に記憶された時系列パターン記憶ネットワークを、時系列データ記憶部３１に記憶された新たな時系列データ（の観測値）に基づいて、自己組織的に更新する。
【０１２９】
次に、図１２は、図１１の学習処理部３２の構成例を示している。
【０１３０】
スコア計算部４１は、記憶部５に記憶された時系列パターン記憶ネットワークを構成する各ノードについて、そのノードが、時系列データ記憶部３１に記憶された時系列データ（の観測値）に適合する度合いをスコアとして求め、勝者ノード決定部４２に供給する。即ち、ノードが有する時系列パターンモデル２１が、例えば、図７に示したようにHMMである場合には、スコア計算部４１は、ノードが有する時系列パターンモデル２１としてのHMMから、時系列データ記憶部３１に記憶された時系列データが観測される尤度を求め、そのノードのスコアとして、勝者ノード決定部４２に供給する。
【０１３１】
勝者ノード決定部４２は、記憶部５に記憶された時系列パターン記憶ネットワークにおいて、時系列データ記憶部３１に記憶された時系列データに最も適合するノードを求め、そのノードを、勝者ノードに決定する。
【０１３２】
即ち、勝者ノード決定部４２は、記憶部５に記憶された時系列パターン記憶ネットワークを構成するノードのうちの、スコア計算部４１からのスコアが最も高いノードを勝者ノードとして決定する。そして、勝者ノード決定部４２は、勝者ノードを表す情報を、重み決定部４３に供給する。
【０１３３】
ここで、時系列パターン記憶ネットワークを構成するノードには、各ノードを識別するためのラベルであるノードラベルを付しておくことができる。そして、勝者ノードを表す情報、その他のノード表す情報としては、ノードラベルを採用することができる。なお、ノードラベルは、ノード自体を識別するラベルであり、正解が何であるかを表す正解ラベルとは、何ら関係がない。
【０１３４】
重み決定部４３は、勝者ノード決定部４２から供給されるノードラベルが表す勝者ノードに基づき、記憶部５に記憶された時系列パターン記憶ネットワークを構成する各ノードについて、後述する更新重みを決定し、学習データ更新部４４に供給する。
【０１３５】
即ち、重み決定部４３は、記憶部５に記憶された時系列パターン記憶ネットワークを構成する各ノード（勝者ノードを含む）の更新重みを、そのノードと、勝者ノードとのパターン間距離に基づいて決定し、学習データ更新部４４に供給する。
【０１３６】
ここで、ノードが有する時系列パターンモデル２１（図７）は、時系列データ記憶部３１（図１１）に記憶された新たな時系列データを用いて更新されるが、ノードの更新重みとは、そのノードが有する時系列パターンモデル２１の更新によって、その時系列パターンモデル２１が受ける新たな時系列データの影響の度合いを表す。従って、ノードの更新重みが０であれば、そのノードが有する時系列パターンモデル２１は、新たな時系列データの影響を受けない（更新されない）。
【０１３７】
なお、重み決定部４３において、記憶部５に記憶された時系列パターン記憶ネットワークを構成する各ノードの更新重みを決定する際のパターン間距離としては、時系列パターン記憶ネットワークのノードが、図６や図８に示したように、リンクを有する場合には、そのノードと勝者ノードとの結合関係に基づくパターン間距離を採用し、また、時系列パターン記憶ネットワークのノードが、図９に示したように、リンクを有しない場合には、そのノードが、時系列データ記憶部３１（図１１）に記憶された新たな時系列データに適合する度合いに基づくパターン間距離を採用することができる。
【０１３８】
即ち、重み決定部４３は、記憶部５に記憶された時系列パターン記憶ネットワークを参照し、時系列パターン記憶ネットワークのノードそれぞれと、勝者ノード決定部４２からのノードラベルが表す勝者ノードとの結合関係に基づくパターン間距離を求め、そのパターン間距離に基づいて、時系列パターン記憶ネットワークのノードそれぞれの更新重みを決定する。
【０１３９】
あるいは、重み決定部４３は、記憶部５に記憶された時系列パターン記憶ネットワークを参照し、時系列パターン記憶ネットワークのノードそれぞれについて、ノードが、時系列データ記憶部３１に記憶された新たな時系列データに適合する度合いとして、例えば、スコア計算部４１が求めるのと同様のスコアを求める。さらに、重み決定部４３は、時系列パターン記憶ネットワークのノードそれぞれについて、ノードのスコアに基づく順位（適合順位）に対応する値を、新たな時系列データに適合する度合いに基づくパターン間距離として求め、そのパターン間距離に基づいて、時系列パターン記憶ネットワークのノードそれぞれの更新重みを決定する。
【０１４０】
なお、ノードのスコアは、重み決定部４３で求めても良いが、スコア計算部４１から重み決定部４３に供給するようにしても良い。
【０１４１】
学習データ更新部４４は、記憶部５に記憶された時系列パターン記憶ネットワークの各ノードが有する学習データ記憶部２２（図７）に記憶された学習データを更新する。
【０１４２】
即ち、学習データ更新部４４は、ノードが有する学習データ記憶部２２に既に記憶されている学習データと、時系列データ記憶部３１に記憶された時系列データとを、重み決定部４３からの、対応するノードの更新重みにしたがって混合し、その混合結果を、新たな学習データとして、学習データ記憶部２２に記憶させることで、その学習データ記憶部２２の記憶内容を更新する。
【０１４３】
学習データ更新部４４は、以上のように、学習データ記憶部２２（図７）に記憶された学習データを、更新重みにしたがって更新すると、その更新が終了した旨の終了通知を、モデル学習部４５に供給する。
【０１４４】
モデル学習部４５は、学習データ更新部４４から終了通知を受けると、その学習データ更新部４４による更新後の学習データ記憶部２２（図７）に記憶された学習データを用いて、時系列パターンに記憶ネットワークの各ノードが有する時系列パターンモデル２１の学習を行うことにより、その時系列パターンモデル２１を更新する。
【０１４５】
従って、モデル学習部４５による、ノードが有する時系列パターンモデル２１の更新は、そのノードが有する学習データ記憶部２２（図７）に記憶されていた学習データ（の一部）と、時系列データ記憶部３１に記憶された新たな時系列データとに基づいて行われる。なお、学習データ記憶部２２の記憶内容は、更新重みにしたがって更新されるから、モデル学習部４５による、時系列パターンモデル２１の更新は、更新重みに基づいて行われるということもできる。
【０１４６】
次に、図１３は、図１２の重み決定部４３において更新重みを決定する決定方法を示している。
【０１４７】
重み決定部４３は、例えば、図１３に示すような、勝者ノードとのパターン間距離dの増加に対して更新重みαが減少する関係を表す曲線（以下、距離／重み曲線という）にしたがって、ノードに対する更新重み（ノードの更新重み）αを決定する。距離／重み曲線によれば、勝者ノードとのパターン間距離dが近いノードほど、大きな更新重みαが決定され、パターン間距離dが遠いノードほど、小さな更新重みαが決定される。
【０１４８】
図１３の距離／重み曲線において、横軸（左から右方向）は、更新重みαを示しており、縦軸（上から下方向）は、パターン間距離dを示している。
【０１４９】
図１３では、パターン間距離dとして、例えば、ノードとの結合関係に基づくパターン間距離、即ち、勝者ノードからの距離が採用されており、縦軸に沿って、時系列パターン記憶ネットワークを構成する６つのノードN1乃至N6が、各ノードNiと勝者ノードとの距離に対応する位置（縦軸の位置）に記載されている。
【０１５０】
図１３では、時系列パターン記憶ネットワークを構成する６つのノードN1乃至N6が、その順で、勝者ノードとの距離が近くなっている。時系列パターン記憶ネットワークを構成する６つのノードN1乃至N6のうち、勝者ノードとの距離が最も近いノード、即ち、勝者ノードとの距離が０のノードであるノードN1は、勝者ノード（となっているノード）である。
【０１５１】
ここで、時系列パターン記憶ネットワークが、例えば、図８に示したような２次元的な配置構造を有し、勝者ノードが、例えば、ノードN6であった場合には、勝者ノードN6とノードN6との距離は最も（１番）近い０であり、ノードN6と勝者ノードN6とのパターン間距離dも０となる。また、勝者ノードN6と、ノードN3，N5、またはN9それぞれとの距離は２番目に近い１であり、ノードN3，N5、またはN9それぞれと勝者ノードN6とのパターン間距離dも１となる。さらに、勝者ノードN6と、ノードN2，N4、またはN8それぞれとの距離は３番目に近い２であり、ノードN2，N4、またはN8それぞれと勝者ノードN6とのパターン間距離dも２となる。また、勝者ノードN6と、ノードN1またはN7それぞれとの距離は最も遠い（４番目に近い）３であり、ノードN1またはN7それぞれと勝者ノードN6とのパターン間距離dも３となる。
【０１５２】
一方、ノードがリンクを有しない、例えば、図９に示した時系列パターン記憶ネットワークについては、ノードが新たな時系列データに適合する度合いに基づくパターン間距離、即ち、ノードが新たな時系列データに適合する度合いに基づく順位（適合順位）に対応する値が、そのノードと勝者ノードとのパターン間距離dとして求められる。即ち、この場合、スコアが最も高い（一番目に高い）ノード（勝者ノード）と勝者ノードとのパターン間距離dは０とされ、スコアが２番目に高いノードと勝者ノードとのパターン間距離dは１とされる。以下、同様に、スコアがk番目に高いノードと勝者ノードとのパターン間距離dはk-1とされる。
【０１５３】
次に、更新重みαとパターン間距離dとの関係を表す、例えば、図１３に示したような距離／重み曲線は、例えば、式（３）によって与えられる。
【０１５４】
【数３】
2007299365.tif 000005
・・・（３）
【０１５５】
ここで、式（３）において、定数Gは、勝者ノードの更新重みを表す定数であり、γは、０＜γ＜１の範囲の定数である。また、変数Δは、時系列パターン記憶ネットワークを更新する更新方法として、前述したSMAを採用した場合の、勝者ノードの近傍のノード（勝者ノードとのパターン間距離dが近いノード）の更新重みαを調整するための減衰係数である。
【０１５６】
上述したように、勝者ノードとなっているノードのパターン間距離dとして、０が与えられ、以下、他のノードのパターン間距離dとして、勝者ノードとの距離、または適合順位にしたがって、１，２，・・・が与えられる場合、式（３）において、例えば、G=8，γ=0.5，Δ=1であれば、勝者ノードとなっているノードの更新重みαとして、８(=G)が求められる。以下、勝者ノードとの距離、または適合順位が大になるにしたがって、ノードの更新重みαとしては、４，２，１，・・・と小さくなる値が求められる。
【０１５７】
ここで、式（３）における減衰係数Δが大きな値である場合には、パターン間距離dの変化に対する更新重みαの変化は緩やかになり、逆に、減衰係数Δが０に近い値である場合には、パターン間距離dの変化に対する更新重みαの変化は急峻になる。
【０１５８】
従って、減衰係数Δを、例えば、上述した１から少しずつ０に近づけていくように調整すると、パターン間距離dの変化に対する更新重みαの変化は急峻になっていき、更新重みαは、パターン間距離dが大きくなるにしたがって、より小さい値となる。そして、減衰係数Δが０に近くなると、勝者ノード（となっているノード）以外のノードの更新重みαは、ほとんど０となり、この場合、時系列パターン記憶ネットワークを更新する更新方法として、前述したWTAを採用した場合と（ほぼ）等価となる。
【０１５９】
このように、減衰係数Δを調整することによって、時系列パターン記憶ネットワークを更新する更新方法としてSMAを採用した場合の、勝者ノードの近傍のノードの更新重みαを調整することができる。
【０１６０】
減衰係数△は、例えば、時系列パターン記憶ネットワークの更新（学習）の開始時は大きな値にし、時間の経過とともに、即ち、更新の回数が増加するにしたがって小さな値にくなるようにすることができる。この場合、時系列パターン記憶ネットワークの更新の開始時は、パターン間距離dの変化に対する更新重みαの変化が緩やかな距離／重み曲線にしたがって、時系列パターン記憶ネットワークの各ノードの更新重みαが決定され、更新（学習）が進む（進行する）につれ、パターン間距離dの変化に対する更新重みαの変化が急峻になっていく距離／重み曲線にしたがって、時系列パターン記憶ネットワークの各ノードの更新重みαが決定される。
【０１６１】
即ち、この場合、勝者ノード（が有する時系列パターンモデル２１）の更新は、学習（更新）の進行にかかわらず、時系列データ記憶部３１（図１２）に記憶された新たな時系列データの影響を強く受けるように行われる。一方、勝者ノード以外のノード（が有する時系列パターンモデル２１）の更新は、学習の開始時は、比較的広い範囲のノード（勝者ノードとのパターン間距離dが小のノードから、ある程度大のノードまで）に亘って、新たな時系列データの影響を受けるように行われる。そして、学習が進行するにつれ、勝者ノード以外のノードの更新は、徐々に狭い範囲のノードについてのみ、新たな時系列データの影響を受けるように行われる。
【０１６２】
図１２の重み決定部４３は、以上のようにして、時系列パターン記憶ネットワークの各ノードの更新重みαを決定し、学習データ更新部４４では、各ノードが有する学習データ記憶部２２に記憶される学習データが、そのノードの更新重みαに基づいて更新される。
【０１６３】
次に、図１４を参照して、ノードが有する学習データ記憶部２２に記憶される学習データを更新する更新方法について説明する。
【０１６４】
いま、あるノードNiが有する学習データ記憶部２２には、学習データが既に記憶されており、ノードNiの時系列パターンモデル２１は、学習データ記憶部２２に既に記憶されている学習データを用いて学習が行われたものであるとする。
【０１６５】
学習データ更新部４４は、上述したように、ノードNiが有する学習データ記憶部２２に既に記憶されている学習データ（以下、適宜、旧学習データという）と、時系列データ記憶部３１（図１２）に記憶された新たな時系列データとを、重み決定部４３からのノードNiの更新重みαにしたがって混合し、その混合結果を、新たな学習データとして、学習データ記憶部２２に記憶させることで、その学習データ記憶部２２の記憶内容を、新たな学習データに更新する。
【０１６６】
即ち、学習データ更新部４４は、旧学習データに対して、新たな時系列データを追加することで、旧学習データと新たな時系列データとを混合した新たな学習データとするが、旧学習データに対する新たな時系列データの追加（旧学習データと新たな時系列データとの混合）は、ノードNiの更新重みαに対応する比にしたがって行われる。
【０１６７】
ここで、ノードNiの時系列パターンモデル２１（図７）の更新は、新たな学習データを用いた学習によって行われるため、新たな時系列データと旧学習データとを混合する比率を変えることによって、更新により時系列パターンモデル２１が受ける新たな時系列データの影響の度合い（強さ）を変えることができる。
【０１６８】
ノードNiにおいて、新たな時系列データと旧学習データとを混合する比率としては、ノードNiの更新重みαに対応した値が採用され、例えば、更新重みαが大であるほど、新たな時系列データの比率が大となる（旧学習データの比率が小となる）ような値とされる。
【０１６９】
具体的には、ノードNiの学習データ記憶部２２には、一定の数の時系列データ（学習データ）が記憶されるものとし、その一定の数をHとする。この場合、ノードNiの時系列パターンモデル２１の学習は、常に、H個の学習データ（時系列データ）を用いて行われる。
【０１７０】
学習データ記憶部２２に、常に、一定の数Hの学習データが記憶される場合、新たな時系列データと旧学習データとの混合によって得られる新たな学習データの個数は、H個である必要があり、そのような、新たな時系列データと旧学習データとの混合を、ノードNiの更新重みαに対応した比率で行う方法としては、新たな時系列データと旧学習データとを、比率α:H-αで混合する方法がある。
【０１７１】
新たな時系列データと旧学習データとを、比率α:H-αで混合する具体的な方法としては、図１４に示すように、H個の旧学習データのうちのH-α個の旧学習データに対して、α個の新たな時系列データを追加することにより、H個の新たな学習データを得る方法がある。
【０１７２】
この場合、学習データ記憶部２２に記憶される時系列データの数Hが、例えば、１００であり、ノードNiの更新重みαが、例えば、８であれば、学習データ記憶部２２の記憶内容は、１００個の旧学習データのうちの９２個の旧学習データに対して、８個の新たな時系列データを追加することによって得られる１００個の新たな学習データに更新される。
【０１７３】
H個の旧学習データのうちのH-α個の旧学習データに対する、α個の新たな時系列データの追加は、α個の新たな時系列データが得られるのを待って行う方法があるが、この方法では、１個の新たな時系列データが得られるごとに、学習データ記憶部２２の記憶内容を更新することができない。
【０１７４】
そこで、学習データ記憶部２２の記憶内容の更新は、１個の新たな時系列データが得られるごとに、その新たな時系列データをα個だけ、H-α個の旧学習データに追加することにより行うことができる。即ち、１個の新たな時系列データをコピーしてα個の新たな時系列データとし、そのα個の新たな時系列データを、H個の旧学習データから古い順にα個を除外して残ったH-α個の旧学習データに追加することにより、学習データ記憶部２２の記憶内容の更新を行う。これにより、１個の新たな時系列データが得られるごとに、学習データ記憶部２２の記憶内容を更新することができる。
【０１７５】
以上のように、学習データ記憶部２２の記憶内容の更新を行うことにより、学習データ記憶部２２には、常に、新しい順のＨ個の時系列データだけが、学習データとして保持されることになり、その学習データに占める新たな時系列データの割合（比率）は、更新重みαによって調整されることになる。
【０１７６】
次に、図１５のフローチャートを参照して、図１０のデータ処理装置で行われる、時系列パターン記憶ネットワークを学習する学習処理について説明する。
【０１７７】
まず最初に、ステップＳ１において、学習部４（図１１）の学習処理部３２は、記憶部５に記憶された時系列パターン記憶ネットワークのパラメータ、即ち、時系列パターン記憶ネットワークの各ノードが有する時系列パターンモデル２１（図７）としての、例えばHMMのパラメータを初期化する初期化処理を行う。この初期化処理により、HMMのパラメータ（状態遷移確率と出力確率密度関数）として、適切な初期値が与えられる。なお、初期化処理において、HMMのパラメータにおいて、どのように初期値を与えるかは、特に限定されるものではない。
【０１７８】
その後、ステップＳ２において、１個の処理対象データ、即ち、例えば、１の音声区間の音声データが、信号入力部１に入力されると、信号入力部１は、その処理対象データを、特徴抽出部２に供給する。特徴抽出部２は、処理対象データから特徴量を抽出し、その特徴量の時系列データ（１個の新たな時系列データ）を、学習部４に供給する。
【０１７９】
学習部４（図１１）は、特徴抽出部２からの新たな時系列データを、時系列データ記憶部３１に一時記憶させ、以下、ステップＳ３乃至Ｓ７において、記憶部５に記憶された時系列パターン記憶ネットワークを、時系列データ記憶部３１に記憶された新たな時系列データ（の観測値）に基づいて、自己組織的に更新（学習）する。
【０１８０】
即ち、学習部４の学習処理部３２（図１２）では、ステップＳ３において、スコア計算部４１が、時系列データ記憶部３１に記憶された新たな時系列データを読み出し、記憶部５に記憶された時系列パターン記憶ネットワークを構成する各ノードについて、そのノードが、新たな時系列データに適合する度合いを表すスコアを求める。
【０１８１】
具体的には、ノードが有する時系列パターンモデル２１（図７）が、例えばHMMである場合には、そのHMMから、新たな時系列データが観測される対数尤度が、スコアとして求められる。ここで、対数尤度の計算方法としては、例えば、ビタビアルゴリズム(Viterbi algorithm)を採用することができる。
【０１８２】
スコア計算部４１は、時系列パターン記憶ネットワークが有するすべてのノードについて、新たな時系列データに対するスコアを計算すると、その各ノードについてのスコアを、勝者ノード決定部４２に供給する。
【０１８３】
勝者ノード決定部４２は、ステップＳ４において、時系列パターン記憶ネットワークを構成するノードのうちの、スコア計算部４１からのスコアが最も高いノードを求め、そのノードを勝者ノードに決定する。そして、勝者ノード決定部４２は、勝者ノードを表す情報としてのノードラベルを、重み決定部４３に供給する。
【０１８４】
重み決定部４３は、ステップＳ５において、勝者ノード決定部４２からのノードラベルが表す勝者ノードを、いわば基準として、時系列パターン記憶ネットワークを構成する各ノードの更新重みを決定する。
【０１８５】
即ち、重み決定部４３は、図１３で説明したように、時系列パターン記憶ネットワークの更新（学習）が進むにつれ、パターン間距離dの変化に対する更新重みαの変化が急峻になっていく、式（３）で表される距離／重み曲線にしたがって、時系列パターン記憶ネットワークの各ノードの更新重みαを決定し、学習データ更新部４４に供給する。
【０１８６】
学習データ更新部４４は、ステップＳ６において、時系列パターン記憶ネットワークの各ノードが有する学習データ記憶部２２（図７）に記憶された学習データを、重み決定部４３からの、対応するノードの更新重みにしたがって更新する。即ち、学習データ更新部４４は、図１４で説明したように、時系列データ記憶部３１に記憶されている新たな時系列データと、ノードの学習データ記憶部２２に記憶されている旧学習データとを、そのノードの更新重みαに対応した比率α:H-αで混合することにより、H個の新たな学習データを得て、そのH個の新たな学習データによって、学習データ記憶部２２の記憶内容を更新する。
【０１８７】
学習データ更新部４４は、時系列パターン記憶ネットワークのノードすべての学習データ記憶部２２（図７）の記憶内容を更新すると、その更新が終了した旨の終了通知を、モデル学習部４５に供給する。
【０１８８】
モデル学習部４５は、学習データ更新部４４から終了通知を受けると、ステップＳ７において、時系列パターン記憶ネットワークのパラメータを更新する。
【０１８９】
即ち、モデル学習部４５は、時系列パターン記憶ネットワークの各ノードについて、学習データ更新部４４による更新後の学習データ記憶部２２に記憶された新たな学習データを用いて、時系列パターンモデル２１の学習を行うことにより、その時系列パターンモデル２１を更新する。
【０１９０】
具体的には、ノードが有する時系列パターンモデル２１が、例えばHMMである場合には、そのノードが有する学習データ記憶部２２に記憶された新たな学習データを用いて、HMMの学習が行われる。この学習では、例えば、HMMの現在の状態遷移確率と出力確率密度関数を初期値とし、新たな学習データを用いて、Baum-Welch法により、新たな状態遷移確率と出力確率密度関数がそれぞれ求められる。そして、その新たな状態遷移確率と出力確率密度関数によって、HMMの状態遷移確率と出力確率密度関数がそれぞれ更新される。
【０１９１】
その後は、ステップＳ７からステップＳ２に戻り、次の処理対象データが、信号入力部１に入力されるのを待って、以下、同様の処理が繰り返される。
【０１９２】
図１５の学習処理によれば、１個の新たな時系列データが得られると、その新たな時系列データに対して、時系列パターン記憶ネットワークを構成するノードの中から、勝者ノードが決定される（ステップＳ４）。さらに、その勝者ノードを基準として、時系列パターン記憶ネットワークを構成する各ノードの更新重みが決定される（ステップＳ５）。そして、更新重みに基づいて、時系列パターン記憶ネットワークを構成する各ノードが有する時系列パターンモデル２１（図７）のパラメータが更新される。
【０１９３】
即ち、図１５の学習処理では、１個の新たな時系列データに対して、時系列パターン記憶ネットワークを構成するノードのパラメータの更新が１回行われ、以下、同様に、新たな時系列データが得られるたびに、ノードのパラメータの更新が繰り返されることにより、自己組織的に学習が行われる。
【０１９４】
そして、学習が十分に行われることにより、時系列パターン記憶ネットワークの各ノードが有する時系列パターンモデル２１は、ある時系列パターンを学習（獲得）する。時系列パターン記憶ネットワーク全体において学習される時系列パターンの数（種類）は、時系列パターン記憶ネットワークが有するノードの数と一致するので、時系列パターン記憶ネットワークが有するノードの数が、例えば１００である場合は、１００種類の時系列パターンが学習されることになる。この時系列パターンに基づき、認識部３（図１０）では、時系列データ（処理対象データ）を認識する認識処理を行うことが可能となり、生成部６（図１０）では、時系列データを生成する生成処理を行うことが可能となる。
【０１９５】
次に、図１６は、図１０の認識部３の構成例を示している。
【０１９６】
認識部３には、図１０で説明したように、特徴抽出部２から、（１個の）時系列データが供給され、この時系列データは、スコア計算部５１に供給される。
【０１９７】
スコア計算部５１は、学習処理部３２（図１２）のスコア計算部４１と同様に、記憶部５に記憶された時系列パターン記憶ネットワークを構成する各ノードについて、そのノードが、特徴抽出部２からの時系列データ（の観測値）に適合する度合いを表すスコアを求め、勝者ノード決定部５２に供給する。
【０１９８】
勝者ノード決定部５２は、学習処理部３２（図１２）の勝者ノード決定部４２と同様に、記憶部５に記憶された時系列パターン記憶ネットワークにおいて、特徴抽出部２からの時系列データに最も適合するノードを求め、そのノードを、勝者ノードとして決定する。
【０１９９】
即ち、勝者ノード決定部５２は、記憶部５に記憶された時系列パターン記憶ネットワークを構成するノードのうちの、スコア計算部５１からのスコアが最も高いノードを勝者ノードとして決定する。そして、勝者ノード決定部５２は、勝者ノードを表す情報としてのノードラベルを、出力部５３に供給する。
【０２００】
出力部５３は、勝者ノード決定部５２からの勝者ノードを表すノードラベルを、特徴抽出部２からの特徴量の時系列データ、ひいては、その特徴量に対応する、信号入力部１に入力された処理対象データの認識結果として出力する。
【０２０１】
なお、認識部３のスコア計算部５１と、学習処理部３２（図１２）のスコア計算部４１とは、いずれか一方のスコア計算部で兼用することが可能である。認識部３の勝者ノード決定部５２と、学習処理部３２（図１２）の勝者ノード決定部４２についても、同様である。
【０２０２】
次に、図１７のフローチャートを参照して、図１０のデータ処理装置で行われる、時系列データを認識する認識処理について説明する。
【０２０３】
ステップＳ２１において、１個の処理対象データ、即ち、例えば、１の音声区間の音声データ（時系列データ）が、信号入力部１に入力されると、信号入力部１は、その処理対象データを、特徴抽出部２に供給する。特徴抽出部２は、処理対象データである時系列データから特徴量を抽出し、その特徴量の時系列データを、認識部３に供給する。
【０２０４】
認識部３（図１６）では、ステップＳ２２において、スコア計算部５１が、記憶部５に記憶された時系列パターン記憶ネットワークを構成する各ノードが、特徴抽出部２からの時系列データに適合する度合いを表すスコアを求め、勝者ノード決定部５２に供給する。
【０２０５】
勝者ノード決定部５２は、ステップＳ２３において、時系列パターン記憶ネットワークを構成するノードのうちの、スコア計算部５１からのスコアが最も高いノードを求め、そのノードを勝者ノードとして決定する。そして、勝者ノード決定部５２は、勝者ノードを表す情報としてのノードラベルを、出力部５３に供給する。
【０２０６】
出力部５３は、勝者ノード決定部５２からのノードラベルを、特徴抽出部２からの時系列データ（信号入力部１に入力された処理対象データ）の認識結果として出力し、処理を終了する。
【０２０７】
なお、出力部５３が出力するノードラベル（勝者ノードのノードラベル）は、例えば、制御データとして、生成部６に供給することができる。
【０２０８】
以上のような、時系列パターン記憶ネットワークを用いた認識処理によれば、その時系列パターン記憶ネットワークのノードの数に応じた細かさの認識結果を得ることができる。
【０２０９】
即ち、例えば、いま、時系列パターン記憶ネットワークの学習が、３つのカテゴリ”A”，”B”，”C”の発声それぞれにより得られた音声データを用いて行われたとする。
【０２１０】
時系列パターン記憶ネットワークの学習に用いられた３つのカテゴリ”A”，”B”，”C”の音声データが、多数の話者の発話を含む場合には、例えば、カテゴリ”A”の音声データであっても、発話速度や、イントネーション、話者の年齢、性別などの違いによって、様々なバリエーションの音声データが存在する。
【０２１１】
教師あり学習であれば、カテゴリ”A”，”B”，”C”の音声データを用いた学習は、カテゴリ”A”の音声データだけ、カテゴリ”B”の音声データだけ、カテゴリ”C”の音声データだけをそれぞれ用いて行われる。従って、各カテゴリの学習結果には、発話速度等の違いによるバリエーションは、生じ得ない。
【０２１２】
一方、時系列パターン記憶ネットワークの学習では、カテゴリ”A”，”B”，”C”の音声データが、それらを区別（分類）することなく用いられる。そして、時系列パターン記憶ネットワークでは、上述したように、その時系列パターン記憶ネットワークが有するノードの数だけの時系列パターンが学習される。
【０２１３】
従って、時系列パターン記憶ネットワークでは、例えば、それが有するノードの数が３より大であれば、１つのカテゴリ”A”の音声データであっても、そのカテゴリ”A”の音声データの中の、ある１つのバリエーション（の時系列パターン）が、ある１つのノードで学習され、他の１つのバリエーションが、他の１つのノードで学習されることがある。
【０２１４】
そして、このように、複数のノードにおいて、カテゴリ”A”の音声データの様々なバリエーションが学習された場合、認識処理では、例えば、カテゴリ”A”の音声データが処理対象データとして入力されると、カテゴリ”A”の音声データが学習された複数のノードの中から、処理対象データに最も適合するノードが、勝者ノードとして決定され、その勝者ノードのノードラベルが、認識結果として出力される。
【０２１５】
即ち、時系列パターン記憶ネットワークを用いた認識処理では、処理対象データが、カテゴリ”A”，”B”，”C”のうちのいずれのカテゴリの音声データであるかが決定されるのではなく、時系列パターン記憶ネットワークが学習によって獲得した、そのノードの数だけの時系列パターンのうちのいずれに最も適合するか（類似するか）かが決定される。
【０２１６】
つまり、時系列パターン記憶ネットワークの学習では、時系列パターン記憶ネットワークが有するノードの数に応じた細かさで時系列パターンが獲得され、時系列パターン記憶ネットワークを用いた認識では、時系列パターン記憶ネットワークが有するノードの数に応じた細かさで、時系列データが分類（クラス分け）される。
【０２１７】
なお、（十分な）学習が行われた時系列パターン記憶ネットワークの各ノードに対し、そのノードが獲得した時系列パターンに応じて、適切に、カテゴリ”A”，”B”，”C”の正解ラベルを付与すれば、時系列パターン記憶ネットワークを用いた認識処理において、時系列データ（処理対象データ）が、カテゴリ”A”，”B”，”C”のうちのいずれのカテゴリの音声データであるかの認識結果を得ることができる。
【０２１８】
次に、図１８は、図１０の生成部６の構成例を示している。
【０２１９】
生成部６には、図１０で説明したように、制御データが供給される。生成部６に供給される制御データは、記憶部５の時系列パターン記憶ネットワークが記憶している時系列パターン、ひいては、時系列パターン記憶ネットワークを構成するノードのうちのいずれかを表すもので、例えば、ノードラベルである。
【０２２０】
生成部６に供給された制御データは、生成ノード決定部６１に供給される。生成ノード決定部６１は、記憶部５に記憶された時系列パターン記憶ネットワークにおいて、そこに供給される制御データが表すノードを、時系列データを生成するのに用いるノード（以下、適宜、生成ノードという）に決定し、その決定結果を、時系列生成部６２に供給する。
【０２２１】
即ち、生成ノード決定部６１は、そこに供給される制御データとしてのノードラベルが表すノードを、生成ノードに決定し、その決定結果を、時系列生成部６２に供給する。
【０２２２】
時系列生成部６２は、生成ノード決定部６１からの決定結果にしたがい、生成ノードが有する時系列パターンモデル２１（図７）に基づいて、時系列データを生成し、出力部６３に供給する。
【０２２３】
ここで、時系列パターンモデル２１が、例えば、HMMである場合には、時系列生成部６２は、生成ノードが有する時系列パターンモデル２１としてのHMMにおいて時系列データが観測される尤度を表す出力確率を最大にする時系列データを生成する。なお、HMMを用いた時系列データの生成については、例えば、動的特徴量を利用することで滑らかに変化する時系列データを生成する方法があり、時系列生成部６２では、その方法によって、時系列データを生成することができる。このような時系列データの生成方法は、例えば、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に記載されている。
【０２２４】
なお、HMMを用いて時系列データを生成する方法としては、その他、例えば、HMMのパラメータを用いた確率的試行に基づく時系列データの生成を繰り返し行い、その平均をとることで、HMMから時系列データを生成する方法なども提案されており、その詳細については、例えば、稲邑哲也、谷江博昭、中村仁彦、「連続分布型隠れマルコフモデルを用いた時系列データのキーフレーム抽出とその復元」、日本機械学会ロボティクス・メカトロニクス講演会2003講演論文集、2P1-3F-C6，2003に記載されている。
【０２２５】
出力部６３は、時系列生成部６２からの時系列データを、処理対象データに相当する時系列データに変換して出力する。即ち、時系列生成部６２において生成される時系列データは、ノードが有する時系列パターンモデル２１の学習に用いられた特徴量の時系列データであり、出力部６３は、その特徴量の時系列データを、処理対象データ（に相当するデータ）に変換して出力する。
【０２２６】
具体的には、例えば、処理対象データが音声データであり、特徴抽出部２が、音声データからメルケプストラム係数を特徴量として抽出することとすると、メルケプストラムの時系列データが、時系列パターンモデル２１によって学習されるので、時系列生成部６２が生成ノードの時系列パターンモデル２１（図７）に基づいて生成する時系列データは、メルケプストラムの時系列データとなる。出力部６３は、時系列生成部６２において生成されるメルケプストラム（の時系列データ）を、処理対象データに相当する時系列データである音声データに変換する。
【０２２７】
なお、メルケプストラムの時系列データを音声データ（時領域の音声）に変換する方法としては、例えば、MLSAフィルタ（メル対数スペクトル近似フィルタ）と呼ばれる合成フィルタによって、メルケプストラムの時系列データをフィルタリングする方法がある。MLSAフィルタの詳細については、例えば、今井聖、住田一男、古市千恵子、「音声合成のためのメル対数スペクトル近似(MLSA)フィルタ」、電子情報通信学会論文誌（Ａ）、J66-A, 2, pp.122-129, 1983や、徳田恵一、小林隆夫、斉藤博徳、深田俊明、今井聖、「メルケプストラムをパラメータとする音声のスペクトル推定」、電子情報通信学会論文誌（Ａ）、J74-A, 8, pp.1240-1248, 1991に記載されている。
【０２２８】
次に、図１９のフローチャートを参照して、図１０のデータ処理装置で行われる、時系列データ（処理対象データ）を生成する生成処理について説明する。
【０２２９】
ステップＳ３１では、制御データが、生成部６（図１８）に入力される。この制御データは、生成ノード決定部６１に供給される。生成ノード決定部６１は、記憶部５に記憶された時系列パターン記憶ネットワークを構成するノードのうちの、制御データとしてのノードラベルが表すノードを、生成ノードに決定し、その決定結果を、時系列生成部６２に供給する。
【０２３０】
時系列生成部６２は、ステップＳ３３において、生成ノード決定部６１からの決定結果にしたがい、記憶部５に記憶された時系列パターン記憶ネットワークを構成するノードのうちの生成ノードが有する時系列パターンモデル２１（のパラメータ）に基づいて、時系列データを生成し、出力部６３に供給する。出力部６３は、ステップＳ３４において、時系列生成部６２からの時系列データを、処理対象データに相当する時系列データに変換して出力する。
【０２３１】
以上のような、時系列パターン記憶ネットワークを用いた生成処理によれば、その時系列パターン記憶ネットワークのノードの数に応じた（時系列パターンの）時系列データを生成することができる。
【０２３２】
以上のように、時系列パターンモデル２１を有する複数のノードから構成される時系列パターン記憶ネットワークを、時系列データに基づいて、自己組織的に更新するようにしたので、長さが一定の時系列データは勿論、長さが一定でない時系列データの教師なし学習、つまり、時系列データの、いわば自律的な学習を、容易に（実用的に）行うことができる。
【０２３３】
即ち、時系列パターン記憶ネットワークの各ノードは、時系列パターンモデル２１を有するから、時系列パターン記憶ネットワークの学習において、ノードの更新、つまり、そのノードが有する時系列パターンモデル２１の更新は、他のノードの更新に影響しない。従って、時系列パターン記憶ネットワークを構成するノードが１つ増えても、時系列パターン記憶ネットワークの学習に要する計算量としては、単純には、１のノードの更新に要する計算量が増えるだけであり、時系列パターン記憶ネットワークの規模、つまり、時系列パターン記憶ネットワークを構成するノードの数を大にしても、時系列パターン記憶ネットワークの学習に要する計算量が飛躍的に増加することはない。従って、大規模な時系列パターン記憶ネットワークであっても、容易に、自己組織的に学習することができる。
【０２３４】
さらに、かかる時系列パターン記憶ネットワークの学習によれば、各ノードに、時系列データの統計的な特性を表す時系列パターンが記憶されるので、その時系列パターンを用いて、時系列データの認識や生成を、容易に行うことができる。
【０２３５】
なお、学習処理、認識処理、生成処理は、例えば、音声データ、画像データ、モータを駆動する信号（モータデータ）、その他の任意の時系列データを対象として行うことができる。具体的には、例えば、図１０のデータ処理装置を自律型のロボットなどの自律システムに適用し、そのロボットの視覚や、聴覚、触覚に相当するセンサが出力する信号や、ロボットの手や足に相当する部分を駆動するモータを制御する信号、合成音を生成する装置や目に相当するLEDに対して与える信号等を、学習処理、認識処理、生成処理の対象とする時系列データとして採用することができる。
【０２３６】
また、本実施の形態では、ノードが有する時系列パターンモデル２１（図７）として、状態遷移確率モデルの１つであるHMMを採用することとしたが、時系列パターンモデル２１としては、他の状態遷移確率モデルを採用することが可能である。
【０２３７】
時系列パターンモデル２１として採用することができる他の状態遷移確率モデルとしては、例えば、ベイジアンネットワークがある。
【０２３８】
ベイジアンネットワークでは、変数間の依存関係をグラフ構造で表し、各ノードに条件付き確率を割り当てることでモデル化が行われるが、特に、時間軸に沿った状態遷移モデルを構築することで、時系列データをモデル化することが可能となる。
【０２３９】
なお、ベイジアンネットワークのグラフ構造の決定は、例えば、学習データの尤度とグラフ構造の複雑さとを考慮したモデルを選択することにより行われ、条件付き確率の推定には、例えば、最尤推定法やEM(Expectation Maximaization)アルゴリズムなどが利用される。ここで、ベイジアンネットワークの詳細については、例えば、本村陽一、「不確実性モデリングのための情報表現：ベイジアンネット」、２００１年、ベイジアンネットチュートリアルなどに記載されている。
【０２４０】
さらに、時系列パターンモデル２１（図７）としては、上述のように、HMMやベイジアンネットワークなどのような状態遷移確率モデルを採用することができる他、関数を近似するモデル（以下、適宜、関数近似モデルという）を採用することもできる。
【０２４１】
関数近似モデルは、時系列パターンを、関数f()を用い、例えば、微分方程式{x(t)}'=f(x(t))や、差分方程式x(t+1)=f(x(t))などで表現するモデルで、関数f()が、時系列パターンを特徴づける。なお、tは時間（時刻）（サンプル点）を表し、x(t)は、時刻tの時系列データのサンプル値、または時刻（０から）tまでに観測された時系列データを表す。また、{x(t)}'は、時系列データx(t)の時間tに関する１次微分を表す。
【０２４２】
学習データ（時系列データ）から、ある時系列パターンを表す（に対応する）関数f()を求めることを、関数近似と呼ぶと、関数近似の方法としては、例えば、多項式などを用いて関数f()を表現し、その多項式の係数を、学習データから決定する方法や、ニューラルネットワークによって関数f()を表現し、そのニューラルネットワークのパラメータを、学習データから決定する方法などがある。
【０２４３】
多項式で表現された関数f()の関数近似において、その多項式の係数の決定（推定）は、例えば、最急降下法などによって行うことができる。また、ニューラルネットワークによって表現された関数f()の関数近似において、そのニューラルネットワークのパラメータの決定は、例えば、バックプロパゲーション法によって行うことができる。ここで、バックプロパゲーション法では、ニューラルネットワークに入力と出力のデータを与え、その入力と出力のデータの関係を満たすように、ニューラルネットワークのパラメータの学習が行われる。
【０２４４】
例えば、時系列パターンモデル２１として、関数f()を用いた差分方程式x(t+1)=f(x(t))で時系列パターンを表現する関数近似モデルを採用する場合、入力層x(t)と出力層x(t+1)をつなぐ重み（中間層）が、ニューラルネットワークのパラメータであり、このパラメータが、学習データ（時系列データ）を用いて学習される。ニューラルネットワークのパラメータの学習は、初期値を適当に与えて、バックプロパゲーション法により行われる。なお、ニューラルネットワークとしては、例えば、リカレントニューラルネットワークを採用することができる。
【０２４５】
関数f()がニューラルネットワークによって表現される時系列パターンモデル２１を有するノードで構成される時系列パターン記憶ネットワークの学習等でも、上述のHMMを時系列パターンモデル２１として採用した場合と同様に、勝者ノードを決定する必要があり、勝者ノードの決定のためには、時系列パターン記憶ネットワークの各ノードの、新たな時系列データに対するスコアを計算する必要がある。
【０２４６】
このスコアとしては、例えば、新たな時系列データの観測値（実際の値）と、関数f()がニューラルネットワークによって表現される時系列パターンモデル２１から求められる、新たな時系列データの理論値との誤差（例えば、差の二乗和など）を採用することができる。この場合、スコアの値が最も小さいノードが、新たな時系列データに最も適合するノードである勝者ノードとして決定される。
【０２４７】
勝者ノードの決定後は、各ノードの更新重みを決定し、以下、上述のHMMを時系列パターンモデル２１として採用した場合と同様の手順で、各ノード（が有するニューラルネットワーク）のパラメータを更新することができる。
【０２４８】
なお、スコアが、例えば、尤度である場合は、スコアが大きいほど、良いスコアとなり、スコアが、例えば、誤差や距離である場合には、スコアが小さいほど、良いスコアとなる。
【０２４９】
次に、以上のような時系列パターン記憶ネットワークを適用した順モデルや逆モデルについて説明する。
【０２５０】
図２０は、時系列パターン記憶ネットワークが適用された順モデルまたは逆モデルとしての入出力関係モデルの構成例を模式的に示している。
【０２５１】
図２０において、入出力関係モデルは、２つの時系列パターン記憶ネットワークnetinおよびnetoutを有している。さらに、入出力関係モデルは、時系列パターン記憶ネットワークnetinの各ノードNi（i＝１，２，・・・，ノードの総数）と、時系列パターン記憶ネットワークnetoutの各ノードN'j（j＝１，２，・・・，ノードの総数）とを結合した結合モデルになっている。
【０２５２】
ここで、図２０において、時系列パターン記憶ネットワークnetinのノードNiと、時系列パターン記憶ネットワークnetoutのノードN'jとの間の矢印が、そのノードNiとN'jとの結合を表している。
【０２５３】
なお、時系列パターン記憶ネットワークnetinおよびnetoutは、同一の数のノードと同一のリンク（リンクがない場合を含む）を有するものであっても良いし、異なる数のノードまたは異なるリンクを有するものであっても良い。また、時系列パターン記憶ネットワークnetinのノードNiが有する時系列パターンモデル２１（図７）と、時系列パターン記憶ネットワークnetoutのノードが有する時系列パターンモデル２１も、同一の時系列パターンモデルであっても良いし、異なる時系列パターンモデルであっても良い。
【０２５４】
次に、図２１は、入出力関係モデルを用いて、各種の処理を行うデータ処理装置の構成例を示している。
【０２５５】
図２１のデータ処理装置では、図２０の入出力関係モデルによって制御対象を順モデルまたは逆モデルにモデル化し、さらに、その順モデルまたは逆モデルとしての入出力関係モデルを用いて、制御対象から得られる出力データや、制御対象に与えるべき制御データ（入力データ）を予測する。
【０２５６】
即ち、図２１において、データ処理装置は、記憶部２１１、学習部２１２、および認識生成部２１３から構成されている。
【０２５７】
記憶部２１１は、例えば、図２０に示した入出力関係モデルなどを記憶する。
【０２５８】
学習部２１２には、モデル化しようとする制御対象に与えられる入力データ（の観測値）と、その入力データに対して制御対象から得られる出力データ（の観測値）とのセットである教示データが供給されるようになっている。ここで、教示データは、ある区間の時系列データ（ある時間に亘る時系列データ）である入力データと、その区間の時系列データに対して制御対象から得られる区間の他の時系列データである出力データとのセットである。
【０２５９】
学習部２１２は、そこに供給される教示データを用い、制御対象の順モデルまたは逆モデルとしての入出力関係モデルの学習を行う。
【０２６０】
即ち、学習部２１２は、学習処理部２２１と結合重み更新部２２２から構成される。
【０２６１】
学習処理部２２１は、図１２に示した学習処理部３２と同様に構成され、学習部２１２に供給される教示データのうちの入力データに基づいて、記憶部２１１に記憶された入出力関係モデル（図２０）における時系列パターン記憶ネットワークnetinを、図１０のデータ処理装置における場合と同様に、自己組織的に更新する。また、学習処理部２２１は、学習部２１２に供給される教示データのうちの出力データ（教示データにおいて、入力データとセットになっている出力データ）に基づいて、記憶部２１１に記憶された入出力関係モデル（図２０）における時系列パターン記憶ネットワークnetoutを、図１０のデータ処理装置における場合と同様に、自己組織的に更新する。
【０２６２】
さらに、学習処理部２２１は、時系列パターン記憶ネットワークnetinを更新するときに勝者ノードとなった、その時系列パターン記憶ネットワークnetinのノードNiのノードラベル（以下、適宜、入力ラベルという）と、時系列パターン記憶ネットワークnetoutを更新するときに勝者ノードとなった、その時系列パターン記憶ネットワークnetoutのノードN'jのノードラベル（以下、適宜、出力ラベルという）とをセットにしたラベルセットを、結合重み更新部２２２に供給する。
【０２６３】
結合重み更新部２２２は、学習処理部２２１から供給されるラベルセットに基づき、記憶部２１１に記憶された入出力関係モデル（図２０）における時系列パターン記憶ネットワークnetoutのノードNiと、時系列パターン記憶ネットワークnetoutのノードN'jとの結合関係を更新する。
【０２６４】
ここで、学習処理部２２１から結合重み更新部２２２に供給されるラベルセットは、入力ラベルと出力ラベルとのセットであり、入力ラベルは、教示データのうちの入力データに基づいて時系列パターン記憶ネットワークnetinを更新するときに勝者ノードとなった、その時系列パターン記憶ネットワークnetinのノードNiのノードラベルであるから、時系列パターン記憶ネットワークnetinにおいて、入力データに最も適合するノードNiのノードラベルである。
【０２６５】
同様に、出力ラベルは、教示データのうちの出力データに基づいて時系列パターン記憶ネットワークnetoutを更新するときに勝者ノードとなった、その時系列パターン記憶ネットワークnetoutのノードN'jのノードラベルであるから、時系列パターン記憶ネットワークnetoutにおいて、出力データに最も適合するノードN'jのノードラベルである。
【０２６６】
結合重み更新部２２２では、時系列パターン記憶ネットワークnetinのノードのうちの、教示データにおける入力データに最も適合するノードである勝者ノードNiと、時系列パターン記憶ネットワークnetoutの各ノードとの結合関係が更新されるとともに、時系列パターン記憶ネットワークnetoutのノードのうちの、教示データにおける出力データに最も適合するノードである勝者ノードN'jと、時系列パターン記憶ネットワークnetinの各ノードとの結合関係が更新される。
【０２６７】
ここで、入出力関係モデルにおける時系列パターン記憶ネットワークnetinのノードと、時系列パターン記憶ネットワークnetoutのノードとの間の結合関係は、その結合の度合いが強いほど、大きな値となる結合重みによって表されるようになっており、ノードどうしの結合関係の更新とは、結合重みの更新を意味する。結合重み更新部２２２によるノードどうしの結合関係の更新の方法についての詳細は、後述する。
【０２６８】
認識生成部２１３には、制御対象から得られる出力データを予測するための入力データ、または制御対象から得られる出力データをある目標値とするのに制御対象に与えるべき入力データ（制御データ）を予測するための出力データが供給される。
【０２６９】
そして、認識生成部２１３は、入力データが供給された場合は、記憶部２１１に記憶された入出力関係モデルにおける時系列パターン記憶ネットワークnetinにおいて、その入力データに最も適合する勝者ノードNiを決定し、その勝者ノードNiとの結合重みが最も強い、時系列パターン記憶ネットワークnetoutのノードを、その入力データに対する出力データの予測値としての時系列データを生成する生成ノードN'jに決定する。さらに、認識生成部２１３は、生成ノードN'jが有する時系列パターンモデル２１（図７）に基づいて、出力データ（の予測値）を生成して出力する。
【０２７０】
また、認識生成部２１３は、出力データが供給された場合は、記憶部２１１に記憶された入出力関係モデルにおける時系列パターン記憶ネットワークnetoutにおいて、その出力データに最も適合する勝者ノードN'jを決定し、その勝者ノードN'jとの結合重みが最も強い、時系列パターン記憶ネットワークnetinのノードを、その出力データが得られるときに制御対象に与えられる制御データ（入力データ）の予測値としての時系列データを生成する生成ノードNiに決定する。さらに、認識生成部２１３は、生成ノードNiが有する時系列パターンモデル２１（図７）に基づいて、制御データ（の予測値）を生成して出力する。
【０２７１】
即ち、認識生成部２１３は、スコア計算部２３１、勝者ノード決定部２３２、生成ノード決定部２３３、および時系列生成部２３４から構成される。
【０２７２】
なお、スコア計算部２３１、勝者ノード決定部２３２、生成ノード決定部２３３、および時系列生成部２３４は、認識生成部２１３に供給されたデータが、入力データであるのか、または出力データであるのかを認識することができるようになっているものとする。即ち、例えば、認識生成部２１３に対しては、そこに供給されるデータとは別に、あるいは、そこに供給されるデータとともに、そのデータが、入力データまたは出力データのうちのいずれであるのかを表す情報が供給されるようになっており、これにより、スコア計算部２３１、勝者ノード決定部２３２、生成ノード決定部２３３、および時系列生成部２３４は、認識生成部２１３に供給されたデータが、入力データであるのか、または出力データであるのかを認識する。
【０２７３】
スコア計算部２３１は、認識生成部２１３に供給されたデータに対して、記憶部２１１に記憶された入出力関係モデルを構成する時系列パターン記憶ネットワークnetinの各ノードNi、または時系列パターン記憶ネットワークnetoutの各ノードN'jが適合する度合いであるスコアを、図１６の認識部３のスコア計算部５１における場合と同様にして計算し、勝者ノード決定部２３２に供給する。
【０２７４】
即ち、スコア計算部２３１は、認識生成部２１３に供給されたデータが入力データである場合、その入力データに対して、記憶部２１１に記憶された入出力関係モデルを構成する時系列パターン記憶ネットワークnetinの各ノードNiのスコアを計算し、勝者ノード決定部２３２に供給する。また、スコア計算部２３１は、認識生成部２１３に供給されたデータが出力データである場合、その出力データに対して、記憶部２１１に記憶された入出力関係モデルを構成する時系列パターン記憶ネットワークnetoutの各ノードN'jのスコアを計算し、勝者ノード決定部２３２に供給する。
【０２７５】
勝者ノード決定部２３２は、図１６の認識部３の勝者ノード決定部５２における場合と同様に、スコア計算部２３１から供給されるスコアが最も高いノードを勝者ノードに決定し、その勝者ノードを表すノードラベルを、生成ノード決定部２３３に供給する。
【０２７６】
従って、認識生成部２１３に供給されたデータが入力データである場合、勝者ノード決定部２３２では、記憶部２１１に記憶された入出力関係モデルを構成する時系列パターン記憶ネットワークnetinのノードの中で、スコア計算部２３１から供給される、入力データに対するスコアが最も高いノードが、勝者ノードNiに決定され、その勝者ノードNiを表す入力ラベルが、生成ノード決定部２３３に供給される。また、認識生成部２１３に供給されたデータが出力データである場合、勝者ノード決定部２３２では、記憶部２１１に記憶された入出力関係モデルを構成する時系列パターン記憶ネットワークnetoutのノードの中で、スコア計算部２３１から供給される、出力データに対するスコアが最も高いノードが、勝者ノードN'jに決定され、その勝者ノードN'jを表す出力ラベルが、生成ノード決定部２３３に供給される。
【０２７７】
なお、ここでは、最も高い（大きい）スコアが最も良いスコアであるとする。
【０２７８】
生成ノード決定部２３３は、勝者ノード決定部２３２から入力ラベルが供給された場合、即ち、認識生成部２１３に供給されたデータが入力データである場合、記憶部２１１に記憶された入出力関係モデルを構成する時系列パターン記憶ネットワークnetoutのノードの中で、勝者ノード決定部２３２からの入力ラベルが表すノードNiとの結合重みが最も強い（最強の）ノードN'jを生成ノードとして決定し、その生成ノードN'jを表す出力ラベルを、時系列生成部２３４に供給する。また、生成ノード決定部２３３は、勝者ノード決定部２３２から出力ラベルが供給された場合、即ち、認識生成部２１３に供給されたデータが出力データである場合、記憶部２１１に記憶された入出力関係モデルを構成する時系列パターン記憶ネットワークnetinのノードの中で、勝者ノード決定部２３２からの出力ラベルが表すノードN'jとの結合重みが最も強い（最強の）ノードNiを生成ノードとして決定し、その生成ノードNiを表す入力ラベルを、時系列生成部２３４に供給する。
【０２７９】
時系列生成部２３４は、生成ノード決定部２３３から出力ラベルが供給された場合、即ち、認識生成部２１３に供給されたデータが入力データである場合、記憶部２１１に記憶された入出力関係モデルを構成する時系列パターン記憶ネットワークnetoutのノードのうちの、生成ノード決定部２３３からの出力ラベルが表すノードN'jが有する時系列パターンモデル２１（図７）に基づいて、認識生成部２１３に供給された入力データに対する出力データの予測値としての時系列データを、例えば、図１８の生成部６の時系列生成部６２における場合と同様にして生成する。
【０２８０】
また、時系列生成部２３４は、生成ノード決定部２３３から入力ラベルが供給された場合、即ち、認識生成部２１３に供給されたデータが出力データである場合、記憶部２１１に記憶された入出力関係モデルを構成する時系列パターン記憶ネットワークnetinのノードのうちの、生成ノード決定部２３３からの入力ラベルが表すノードNiが有する時系列パターンモデル２１に基づいて、認識生成部２１３に供給された出力データに対する制御データ（入力データ）の予測値としての時系列データを、例えば、図１８の生成部６の時系列生成部６２における場合と同様にして生成する。
【０２８１】
次に、図２２のフローチャートを参照して、図２１のデータ処理装置で行われる、入出力関係モデルによる制御対象のモデル化、即ち、入出力関係モデルの学習について説明する。
【０２８２】
ステップＳ１０１において、入力データと出力データとのセットである教示データが、図２１のデータ処理装置に入力されると、その教示データは、学習部２１２の学習処理部２２１に供給される。
【０２８３】
学習処理部２２１は、ステップＳ１０２において、教示データのうちの入力データに基づいて、記憶部２１１に記憶された入出力関係モデル（図２０）における時系列パターン記憶ネットワークnetinを、自己組織的に更新し、ステップＳ１０３に進む。ステップＳ１０３では、学習処理部２２１は、教示データのうちの出力データに基づいて、記憶部２１１に記憶された入出力関係モデルにおける時系列パターン記憶ネットワークnetoutを、自己組織的に更新する。
【０２８４】
そして、学習処理部２２１は、時系列パターン記憶ネットワークnetinを更新するときに勝者ノードとなった、その時系列パターン記憶ネットワークnetinのノードNiの入力ラベルと、時系列パターン記憶ネットワークnetoutを更新するときに勝者ノードとなった、その時系列パターン記憶ネットワークnetoutのノードN'jの出力ラベルとのセットであるラベルセットを、結合重み更新部２２２に供給する。
【０２８５】
結合重み更新部２２２は、ステップＳ１０４において、学習処理部２２１から供給されるラベルセットに基づき、記憶部２１１に記憶された入出力関係モデル（図２０）における時系列パターン記憶ネットワークnetinの各ノードと、時系列パターン記憶ネットワークnetoutの各ノードとの結合重みを更新して、ステップＳ１０１に戻り、次の教示データが入力されるのを待って、以下、同様の処理が繰り返される。
【０２８６】
多数の教示データが入力され、ステップＳ１０１乃至Ｓ１０４の処理が繰り返されることにより、記憶部２１１に記憶された入出力関係モデルは、制御対象に対応する順モデルとなっていくとともに、逆モデルにもなっていく。
【０２８７】
なお、ステップＳ１０２とＳ１０３の処理は、並列して行うこともできるし、図２２の場合と逆順で行うこともできる。
【０２８８】
次に、図２３を参照して、結合重み更新部２２２（図２１）が、図２２のステップＳ１０４で行う結合重み（ノードどうしの結合関係）の更新について説明する。
【０２８９】
なお、以下、適宜、入出力関係モデルにおいて、入力データが与えられる時系列パターン記憶ネットワーク、つまり、入力データを用いて学習が行われ、入力データの時系列パターンを表現する時系列パターンモデル２１を有する複数のノードから構成される時系列パターン記憶ネットワーク（例えば、時系列パターン記憶ネットワークnetin）を、入力ネットワークといい、出力データが与えられる時系列パターン記憶ネットワーク、つまり、出力データを用いて学習が行われ、出力データの時系列パターンを表現する時系列パターンモデル２１を有する複数のノードから構成される時系列パターン記憶ネットワーク（例えば、時系列パターン記憶ネットワークnetout）を、出力ネットワークという。
【０２９０】
さらに、以下、適宜、入力ネットワークのノードを入力ノードといい、出力ネットワークのノードを出力ノードという。
【０２９１】
また、以下では、入出力関係モデルを、入力データを与えて出力データを予測する順モデルとして用いる場合についての説明をし、入出力関係モデルを、出力データ（目標値）を与えて入力データ（制御データ）を予測する逆モデルとして用いる場合についての説明は適宜省略する。
【０２９２】
図２３は、入出力関係モデルを示している。
【０２９３】
図２３左側では、入出力関係モデルは、１つの入力ネットワークnetinと、１つの出力ネットワークnetoutとを有し、入力ネットワークnetinの各入力ノードと、出力ネットワークnetoutの各出力ノードとが結合している。なお、図２３では、入力ネットワークnetin、および出力ネットワークnetoutのいずれも、８つのノードで構成されている。
【０２９４】
図２３左側では、入力ネットワークnetinの各入力ノードは、出力ネットワークnetoutのすべての出力ノードと結合しており（従って、出力ネットワークnetoutの各出力ノードも、入力ネットワークnetinのすべての入力ノードと結合している）、入力ネットワークnetinの入力ノードと、出力ネットワークnetoutの出力ノードとのすべての組み合わせについて、結合重みwが存在する。
【０２９５】
いま、ノードどうしが結合している２つの時系列パターン記憶ネットワークに注目し、そのうちの一方の時系列パターン記憶ネットワークのノードを各行に対応させるとともに、他方の時系列パターン記憶ネットワークのノードを各列に対応させ、第i行第j列の要素に、一方の時系列パターン記憶ネットワークのi番目のノードと、他方の時系列パターン記憶ネットワークのj番目のノードとの結合重みwを配置した行列を、結合重み行列MTXということとすると、結合重み更新部２２２（図２１）は、この結合重み行列MTXの各要素である結合重みwを更新する。
【０２９６】
図２３右側は、図２３左側の入出力関係モデルについての結合重み行列MTXを示している。
【０２９７】
図２３右側の結合重み行列MTXでは、入力ノードを各行に対応させるとともに、出力ノードを各列に対応させ、第i行第j列の要素に、i番目の入力ノードと、j番目の出力ノードとの結合重みwが配置されている。結合重み更新部２２２（図２１）は、この結合重み行列MTXの各要素である結合重みwを更新する。
【０２９８】
即ち、結合重み更新部２２２は、例えば、最初に電源がオンにされたときに、結合重み行列MTXにおけるすべての結合重みwを、例えば、初期値としての0に初期化する。そして、結合重み更新部２２２は、図２１のデータ処理装置に対して、教示データ、つまり、入力データと出力データとのセットが入力され、これにより、入力ネットワークnetinにおける勝者ノードを表す入力ラベルと、出力ネットワークnetoutにおける勝者ノードを表す出力ラベルとのラベルセットが、学習処理部２２１から与えられるたびに、それらの勝者ノードどうしの結合を、いわば中心として、結合重みwを更新する。
【０２９９】
具体的には、結合重み更新部２２２は、例えば、式（４）にしたがって、結合重み行列MTXの結合重みwを更新する。
【０３００】
【数４】
2007299365.tif 000006
・・・（４）
【０３０１】
ここで、βは、結合重みwを更新する程度を表す学習率であり、0から1の範囲で与えられる。学習率βを小さくするほど、結合重みwは、あまり変化しなくなり、学習率βが0である場合には、結合重みwは変化しない。一方、学習率βを大きくするほど、結合重みwも、大きく変化し、学習率βが1である場合には、結合重みwは、更新の基準値△wに更新される。
【０３０２】
また、基準値△wは、例えば、式（５）で与えられる。
【０３０３】
【数５】
2007299365.tif 000007
・・・（５）
【０３０４】
ここで、dは、式（３）における場合と同様に、勝者ノードとのパターン間距離を表し、勝者ノードとなっているノードについては、d=0である。従って、勝者ノード（となっているノード）については、基準値△wは1となり、勝者ノードからのパターン間距離dが大のノードほど、基準値△wは0に近づく。
【０３０５】
いま、学習処理部２２１（図２１）から結合重み更新部２２２に供給される入力ラベルが表す入力ノード、即ち、入力ネットワークnetinにおける勝者ノードを、入力ノードNiと表すとともに、学習処理部２２１（図２１）から結合重み更新部２２２に供給される出力ラベルが表す出力ノード、即ち、出力ネットワークnetoutにおける勝者ノードを、出力ノードN'jと表すと、結合重み更新部２２２（図２１）は、式（４）（および式（５））にしたがい、以下のように、結合重み行列MTXの結合重みwを更新する。
【０３０６】
即ち、結合重み更新部２２２は、出力ネットワークnetoutの各出力ノードについて、出力ネットワークnetoutにおける勝者ノードである出力ノードN'jとのパターン間距離dを用い、式（５）にしたがって、基準値△wを求め、さらに、その基準値△wを用い、式（４）にしたがって、入力ネットワークnetinの勝者ノードであるi番目の入力ノードNiとの結合重みwを更新する。
【０３０７】
これにより、入力ネットワークnetinの勝者ノードである入力ノードNiに対応する、結合重み行列MTXの第i行の（各列の）結合重みwが更新される。
【０３０８】
また、結合重み更新部２２２は、入力ネットワークnetinの各入力ノードについて、入力ネットワークnetinにおける勝者ノードである入力ノードNiとのパターン間距離dを用い、式（５）にしたがって、基準値△wを求め、さらに、その基準値△wを用い、式（４）にしたがって、出力ネットワークnetoutの勝者ノードであるj番目の出力ノードN'jとの結合重みwを更新する。
【０３０９】
これにより、出力ネットワークnetoutの勝者ノードである出力ノードN'jに対応する、結合重み行列MTXの第j列の（各行の）結合重みwが更新される。
【０３１０】
従って、入力ネットワークnetinの勝者ノードNiと、出力ネットワークnetoutの勝者ノードN'jとの結合重みが、結合の度合いを最も強めるように更新される。
【０３１１】
なお、入力ネットワークnetinの勝者ノードである入力ノードNiと、出力ネットワークnetoutの勝者ノードである出力ノードN'jとの結合重みwの更新は、出力ネットワークnetoutの各出力ノードについての、勝者ノードである入力ノードNiとの結合重みwの更新時か、または、入力ネットワークnetinの各入力ノードについての、勝者ノードである出力ノードN'jとの結合重みwの更新時のいずれか一方においてのみ行われる。
【０３１２】
以上のような結合重みw（結合重み行列MTX）の更新は、教示データとしての入力データと出力データとのセットが、図２１のデータ処理装置に対して入力されるたびに行われる。
【０３１３】
さらに、入出力関係モデルが有する入力ネットワークnetinの入力データに基づく学習、および出力ネットワークnetoutの出力データに基づく学習も、教示データとしての入力データと出力データとのセットが、図２１のデータ処理装置に対して入力されるたびに行われる。
【０３１４】
そして、入力ネットワークnetin、および出力ネットワークnetoutの学習が進むと、入力ノードが有する時系列パターンモデル２１が、ある特定の時系列パターンを表現し、また、出力ノードが有する時系列パターンモデル２１も、他の特定の時系列パターンを表現するようになる。
【０３１５】
その結果、ある特定の時系列パターンの入力データと、他の特定の時系列パターンの出力データとの間に、何らかの関係性がある場合、そのような入力データと出力データとのセット（教示データ）が与えられると、入力ネットワークnetinにおいてある特定の時系列パターンを表現する時系列パターンモデル２１を有する入力ノードが勝者ノードとなるとともに、出力ネットワークnetoutにおいて他の特定の時系列パターンを表現する時系列パターンモデル２１を有する出力ノードが勝者ノードとなる。
【０３１６】
さらに、上述したように、入力ネットワークnetinの勝者ノードを、いわば中心として、入力ネットワークnetinの各入力ノードと、出力ネットワークnetoutの勝者ノードとの結合重みが更新されるとともに、出力ネットワークnetoutの勝者ノードを中心として、出力ネットワークnetoutの各出力ノードと、入力ネットワークnetinの勝者ノードとの結合重みが更新される。
【０３１７】
即ち、入力ネットワークnetinの各入力ノードと、出力ネットワークnetoutの勝者ノードとの結合重みは、入力ネットワークnetinの勝者ノードとのパターン間距離dが近い入力ノードほど強くなる（強化する）ように更新される。また、出力ネットワークnetoutの各出力ノードと、入力ネットワークnetinの勝者ノードとの結合重みは、出力ネットワークnetoutの勝者ノードとのパターン間距離dが近い出力ノードほど強くなるように更新される。
【０３１８】
逆に言えば、入力ネットワークnetinの各入力ノードと、出力ネットワークnetoutの勝者ノードとの結合重みは、入力ネットワークnetinの勝者ノードとのパターン間距離dが遠い入力ノードほど弱くなる（弱化する）ように更新される。また、出力ネットワークnetoutの各出力ノードと、入力ネットワークnetinの勝者ノードとの結合重みも、出力ネットワークnetoutの勝者ノードとのパターン間距離dが遠い出力ノードほど弱くなるように更新される。
【０３１９】
多数の教示データが与えられ、入力ネットワークnetin、および出力ネットワークnetoutの学習が進み、さらに、結合重みwの更新が進むと、その結合重みwによって、入力データ（の時系列パターン）と出力データ（の時系列パターン）とを関係付ける順モデルまたは逆モデルとしての入出力関係モデルを獲得することができる。
【０３２０】
そして、順モデルとしての入出力関係モデルによれば、ある入力データが与えられた場合に、入力ネットワークnetinにおいて、その入力データに最も適合する勝者ノードを決定することができ、その勝者ノードとの結合重みwが最強の出力ネットワークnetoutの出力ノードを決定することができる。さらに、その出力ノード（が有する時系列パターンモデル２１）に基づき、時系列データを生成することで、与えられた入力データに対する出力データを予測することができる。
【０３２１】
また、逆モデルとしての入出力関係モデルによれば、ある出力データ（目標値）が与えられた場合に、出力ネットワークnetoutにおいて、その出力データに最も適合する勝者ノードを決定することができ、その勝者ノードとの結合重みwが最強の入力ネットワークnetinの入力ノードを決定することができる。さらに、その入力ノード（が有する時系列パターンモデル２１）に基づき、時系列データを生成することで、与えられた出力データに対する制御データ（入力データ）を予測することができる。
【０３２２】
なお、結合重み行列MTXは、入出力関係モデルの一部として、記憶部２１１（図２１）に記憶される。
【０３２３】
次に、図２４のフローチャートを参照して、順モデルまたは逆モデルとしての入出力関係モデルを用いて、入力データに対する出力データや、出力データに対する制御データ（入力データ）を予測する処理について説明する。
【０３２４】
まず、図２１のデータ処理装置において、入力データに対する出力データを予測する場合、ステップＳ１１１において、その入力データが、図２１のデータ処理装置に入力される。
【０３２５】
データ処理装置に入力された入力データは、認識生成部２１３のスコア計算部２３１に供給される。
【０３２６】
スコア計算部２３１は、ステップＳ１１２において、そこに供給された入力データに対して、記憶部２１１に記憶された入出力関係モデルを構成する時系列パターン記憶ネットワークnetinの各ノードNiのスコアを計算し、勝者ノード決定部２３２に供給する。
【０３２７】
勝者ノード決定部２３２は、ステップＳ１１３において、記憶部２１１に記憶された入出力関係モデルを構成する時系列パターン記憶ネットワークnetinのノードの中で、スコア計算部２３１からのスコアが最も高いノードを、勝者ノードNiに決定し、その勝者ノードNiを表す入力ラベルを、生成ノード決定部２３３に供給する。
【０３２８】
生成ノード決定部２３３は、ステップＳ１１４において、記憶部２１１に記憶された入出力関係モデルを構成する時系列パターン記憶ネットワークnetoutのノードの中で、勝者ノード決定部２３２からの入力ラベルが表すノードNiとの結合重みが最も強いノードN'jを生成ノードに決定し、その生成ノードN'jを表す出力ラベルを、時系列生成部２３４に供給する。
【０３２９】
時系列生成部２３４は、ステップＳ１１５において、記憶部２１１に記憶された入出力関係モデルを構成する時系列パターン記憶ネットワークnetoutのノードのうちの、生成ノード決定部２３３からの出力ラベルが表すノードN'jが有する時系列パターンモデル２１（図７）に基づいて、認識生成部２１３に供給された入力データに対する出力データの予測値としての時系列データを生成して、ステップＳ１１６に進み、その時系列データを出力する。
【０３３０】
次に、図２１のデータ処理装置において、出力データに対する制御データ（入力データ）を予測する場合には、ステップＳ１１１において、その出力データが、図２１のデータ処理装置に入力される。
【０３３１】
データ処理装置に入力された出力データは、認識生成部２１３のスコア計算部２３１に供給される。
【０３３２】
スコア計算部２３１は、ステップＳ１１２において、そこに供給された出力データに対して、記憶部２１１に記憶された入出力関係モデルを構成する時系列パターン記憶ネットワークnetoutの各ノードN'jのスコアを計算し、勝者ノード決定部２３２に供給する。
【０３３３】
勝者ノード決定部２３２は、ステップＳ１１３において、記憶部２１１に記憶された入出力関係モデルを構成する時系列パターン記憶ネットワークnetoutのノードの中で、スコア計算部２３１からのスコアが最も高いノードを、勝者ノードN'jに決定し、その勝者ノードN'jを表す出力ラベルを、生成ノード決定部２３３に供給する。
【０３３４】
生成ノード決定部２３３は、ステップＳ１１４において、記憶部２１１に記憶された入出力関係モデルを構成する時系列パターン記憶ネットワークnetinのノードの中で、勝者ノード決定部２３２からの出力ラベルが表すノードN'jとの結合重みが最も強いノードNiを生成ノードに決定し、その生成ノードNiを表す入力ラベルを、時系列生成部２３４に供給する。
【０３３５】
時系列生成部２３４は、ステップＳ１１５において、記憶部２１１に記憶された入出力関係モデルを構成する時系列パターン記憶ネットワークnetinのノードのうちの、生成ノード決定部２３３からの入力ラベルが表すノードNiが有する時系列パターンモデル２１に基づいて、認識生成部２１３に供給された出力データに対する制御データ（入力データ）の予測値としての時系列データを生成して、ステップＳ１１６に進み、その時系列データを出力する。
【０３３６】
以上のように、入力データと出力データとのセットを用いて、入出力関係モデルの学習を行い、制御対象を順モデルおよび逆モデルにモデル化して、制御対象を精度良く表現し、高精度に、出力データや制御データ（入力データ）を予測することが可能となる。
【０３３７】
次に、上述したように、図２１のデータ処理装置においては、制御対象に与えられる、ある区間の時系列データ（ある時間に亘る時系列データ）である入力データと、その区間の時系列データに対して制御対象から観測される区間の他の時系列データである出力データとのセットを、教示データとして、学習部２１２に供給し、学習部２１２において、教示データを用い、制御対象の順モデルまたは逆モデルとしての入出力関係モデルの学習を行う。
【０３３８】
従って、例えば、制御対象をロボットとして、そのロボットに与える入力データとして、ロボットに呼びかける音声をセンサとしてのマイクで検知したセンサデータ（音声データ）の時系列を採用するとともに、ロボットに呼びかける音声に対して、ロボットが手をふるようにアームを動かす行動をとるためにモータに与えられるモータデータの時系列を、ロボットの出力データとして採用して、入出力関係モデルの学習を行うと、学習部２１２（図２１）では、入出力関係モデルの入力ネットワークnetinの１以上のノード（が有する時系列パターンモデル２１）が、ロボットに呼びかける音声に対応するセンサデータとしての入力データの時系列パターンを表現するように、自己組織的な学習が行われるとともに、出力ネットワークnetoutの１以上のノード（が有する時系列パターンモデル２１）が、手をふる行動に対応するモータデータとしての出力データの時系列パターンを表現するように、自己組織的な学習が行われる。
【０３３９】
さらに、学習部２１２では、入出力関係モデルの入力ネットワークnetinの各ノードと、出力ネットワークnetoutの勝者ノードとの結合重みwが、入力ネットワークnetinの勝者ノードとのパターン間距離dが近いノードほど強くなるように更新されるとともに、出力ネットワークnetoutの各出力ノードと、入力ネットワークnetinの勝者ノードとの結合重みwが、出力ネットワークnetoutの勝者ノードとのパターン間距離dが近い出力ノードほど強くなるように更新される。
【０３４０】
その結果、入力ネットワークnetinのノードのうちの、ロボットに呼びかける音声に対応するセンサデータとしての入力データの時系列パターンを表現する（時系列パターンモデル２１を有する）１以上のノードと、出力ネットワークnetoutのノードのうちの、手をふる行動に対応するモータデータの時系列パターンを表現する（時系列パターンモデル２１を有する）１以上のノードとの結合重みは強くなる。
【０３４１】
その後、認識生成部２１３（図２１）に、ロボットに呼びかける音声に対応するセンサデータが、入力データとして与えられると、入出力関係モデルでは、その入力データに対して、入力ネットワークnetinのノードのうちの、ロボットに呼びかける音声に対応するセンサデータの時系列パターンを表現する、ある１つのノードが勝者ノードとなる。そして、認識生成部２１３では、その勝者ノードとの結合重みが最も強い、出力ネットワークnetoutのノード、即ち、いまの場合、出力ネットワークnetoutのノードのうちの、手をふる行動に対応するモータデータの時系列パターンを表現する、あるノードが、生成ノードに決定され、その生成ノードを用いて、出力データ、即ち、いまの場合、手をふる行動に対応するモータデータが生成されて出力される。
【０３４２】
ここで、入出力関係モデルを利用したロボットの認知行動という場合の認知とは、入力データに対して、入出力関係モデルの入力ネットワークnetinのノードの中から勝者ノードを決定することに相当し、行動とは、その勝者ノードに対して、出力ネットワークnetoutのノードの中から生成ノードを決定し、時系列データ（出力データ）を生成することに相当する。
【０３４３】
図２１のデータ処理装置によれば、例えば、ロボットに、呼びかけの音声を与え、その音声に対して、手をふるようなアームの動きを与えると、上述のような学習が行われ、その結果、ロボットが、呼びかけの音声に対して、手をふる認知行動を行うようになる。
【０３４４】
しかしながら、図２１のデータ処理装置では、認知と行動とが、比較的短時間で繰り返されることで完成する、実時間性が要求されるタスクを、ロボットに行わせることが困難であることがある。
【０３４５】
即ち、例えば、ロボットが、目の前にあるボールを左右に転がすタスクを行う場合、ボールの状態を把握（認識）する認知と、ボールの状態に応じて適切にアームを動かす行動とを、ある短い所定の時間単位で繰り返し行う必要がある。いま、この所定の時間を、フレームと呼ぶこととすると、時間軸上のあるフレームにおける、ボールの状態をセンサで検知したセンサデータと、そのフレームにおいてとらなければならないアームの動きに対応するモータデータとのセットを、教示データとして、図２１のデータ処理装置に与え、その教示データのうちのセンサデータの時系列パターンを表現する入力ノード（入力ネットワークnetinのノード）と、その教示データのうちのモータデータの時系列パターンを表現する出力ノード（出力ネットワークnetoutのノード）との結合重みを強くしても、ロボットは、目の前にあるボールを左右に転がすタスクを行うことができるようにはならない。
【０３４６】
なぜなら、あるフレームのセンサデータが与えられた時点で、そのフレームのモータデータによるアームの動きは、既に行われていなければならないからである。
【０３４７】
従って、ロボットが、目の前にあるボールを左右に転がすタスクを行うことができるようにするには、あるフレームを注目フレームとして注目すると、ボールの状態をセンサで検知したセンサデータのうちの、注目フレームのセンサデータの時系列パターンを表現する入力ノード（以下、適宜、センサデータに対応するノードともいう）と、ボールを左右に転がすアームの動きに対応するモータデータのうちの、注目フレームの時刻から一定の時間だけ遅れたフレームのモータデータの時系列パターンを表現する出力ノード（以下、適宜、モータデータに対応するノードともいう）との結合重みを強くするように、入出力関係モデルの学習を行う必要がある。
【０３４８】
なお、フレームのセンサデータの認知、即ち、フレームのセンサデータに対して勝者ノードを決定する処理の処理速度によっては、注目フレームのセンサデータが与えられてから、そのセンサデータに対するモータデータが生成される行動が行われるまでに、無視することができない遅延時間が生じることがある。注目フレームのセンサデータに対応するノードとの結合重みを強くする出力ノードを、注目フレームからどの程度の時間だけ遅れたフレームのモータデータに対応するノードとするかは、必要に応じて、かかる遅延時間をも考慮して決めるのが望ましい。
【０３４９】
図２５は、実時間性が要求されるタスクを行うことが可能なロボットの構成例を示している。
【０３５０】
図２５において、ロボットは、データ処理装置３０１、センサ３０２、およびモータ駆動部３０３等から構成されている。
【０３５１】
データ処理装置３０１は、センサ３０２から供給される時系列のセンサデータと、モータ駆動部３０３から供給される時系列のモータデータとを用いて、入出力関係モデルの自己組織的な学習を行う。さらに、データ処理装置３０１は、センサ３０２から供給される時系列のセンサデータに対して、時系列のモータデータを生成し、モータ駆動部３０３に供給する。
【０３５２】
センサ３０２は、カメラやマイク等であり、外部の状態を検知して、その外部の状態を表す時系列のセンサデータを、データ処理装置３０１に供給する。
【０３５３】
モータ駆動部３０３は、データ処理装置３０１から供給されるモータデータに応じて、例えば、ロボットのアーム等を動かすための図示せぬモータ（アクチュエータ）を駆動する。また、モータ駆動部３０３は、例えば、ロボットのアーム等が、外部から力が加えられることによって動かされた場合に、その動きをするために、モータ駆動部３０３に与えられるべきモータデータと同一のモータデータを生成し、データ処理装置３０１に供給する。さらに、モータ駆動部３０３は、上述したように、データ処理装置３０１から供給されるモータデータに応じて、モータを駆動するとともに、必要に応じて、そのモータデータを、データ処理装置３０１に供給する（戻す）。
【０３５４】
図２５において、データ処理装置３０１は、記憶部３１１、データ抽出部３１２、学習処理部３１３、写像学習部３１４、データ抽出部３１５、認識部３１６、写像部３１７、および生成部３１８から構成されている。
【０３５５】
記憶部３１１は、入出力関係モデルを記憶している。
【０３５６】
ここで、図２６は、記憶部３１１が記憶している入出力関係モデルM11を示している。
【０３５７】
入出力関係モデルM11は、図２０や図２３に示した入出力関係モデルと同様に、入力データとしての時系列データのパターンである時系列パターンを表現する時系列パターンモデル２１（図７）を有する複数のノードから構成される時系列パターン記憶ネットワークである入力ネットワークnet1（入力時系列パターン記憶ネットワーク）と、出力データとしての時系列データのパターンである時系列パターンを表現する時系列パターンモデル２１を有する複数のノードから構成される時系列パターン記憶ネットワークである出力ネットワークnet2（出力時系列パターン記憶ネットワーク）とを有する。
【０３５８】
そして、入出力関係モデルM11では、入力ネットワークnet1の各ノードと、出力ネットワークのnet2の各ノードとが、結合重みによって結合されている。
【０３５９】
図２５に戻り、データ抽出部３１２には、センサ３０２が各時刻において出力するセンサデータと、モータ駆動部３０３が同一時刻において出力するモータデータとが、教示データとして供給される。データ抽出部３１２は、教示データのうちのセンサデータを、認知行動時に入出力関係モデルM11に与える入力データとして、その入力データの時系列から、フレーム単位の入力データを順次抽出し、学習処理部３１３に供給する。
【０３６０】
さらに、データ抽出部３１２は、教示データのうちのモータデータを、認知行動時に入出力関係モデルM11から生成されるべき出力データとして、その出力データの時系列から、フレーム単位の出力データを順次抽出し、学習処理部３１３に供給する。
【０３６１】
学習処理部３１３は、認識学習処理部３２１と生成学習処理部３２２とから構成され、データ抽出部３１２から供給されるフレーム単位の入力データと出力データそれぞれを用いて、記憶部３１１に記憶された入出力関係モデルM11（図２６）が有する入力ネットワークnet1と出力ネットワークnet2それぞれの自己組織的な学習を行う。
【０３６２】
即ち、認識学習処理部３２１は、図２１の学習処理部２２１と同様に、データ抽出部３１２から供給されるフレーム単位の入力データに基づいて、記憶部３１１に記憶された入出力関係モデルM11（図２６）における入力ネットワークnet1を、自己組織的に更新する。
【０３６３】
具体的には、認識学習処理部３２１は、入出力関係モデルM11における入力ネットワークnet1の各ノードについて、データ抽出部３１２からのフレームの入力データに対するスコアを求め、入力ネットワークnet1のノードの中から、スコアの最も良いノードを、勝者ノード（入力勝者ノード）に決定する。さらに、認識学習処理部３２１は、データ抽出部３１２からのフレームの入力データに対する入力勝者ノードに基づいて、入力ネットワークnet1を、自己組織的に更新する。
【０３６４】
また、認識学習処理部３２１は、フレーム単位の入力データに対して時系列に決定した入力勝者ノードを表すノードラベルである入力ラベルを、写像学習部３１４に、時系列に供給する。
【０３６５】
生成学習処理部３２２も、図２１の学習処理部２２１と同様に、データ抽出部３１２から供給されるフレーム単位の出力データに基づいて、記憶部３１１に記憶された入出力関係モデルM11（図２６）における出力ネットワークnet2を、自己組織的に更新する。
【０３６６】
具体的には、生成学習処理部３２２は、入出力関係モデルM11における出力ネットワークnet2の各ノードについて、データ抽出部３１２からのフレームの出力データに対するスコアを求め、出力ネットワークnet2のノードの中から、スコアの最も良いノードを、勝者ノード（出力勝者ノード）に決定する。さらに、生成学習処理部３２２は、データ抽出部３１２からのフレームの出力データに対する出力勝者ノードに基づいて、出力ネットワークnet2を、自己組織的に更新する。
【０３６７】
また、生成学習処理部３２２は、フレーム単位の出力データに対して時系列に決定した出力勝者ノードを表すノードラベルである出力ラベルを、写像学習部３１４に、時系列に供給する。
【０３６８】
写像学習部３１４は、データバッファ３３１、読み出し部３３２、および結合重み更新部３３３から構成され、記憶部３１１に記憶された入出力関係モデルM11における入力ネットワークnet1のフレーム単位の入力データに対する入力勝者ノードと、出力ネットワークnet2の各ノードとの結合重みを更新するとともに、出力ネットワークnet2の、フレーム単位の入力データの時刻から一定の時間だけ遅れたフレーム単位の出力データに対する出力勝者ノードと、入力ネットワークnet1の各ノードとの結合重みを更新する。
【０３６９】
即ち、データバッファ３３１は、認識学習処理部３２１から供給される時系列の入力ラベルと、生成学習処理部３２２から供給される時系列の出力ラベルとを一時記憶する。
【０３７０】
読み出し部３３２は、入力データのフレームを、順次、注目フレームとして、データバッファ３３１に記憶された入力ラベルのうちの、注目フレームの入力データに対する入力勝者ノードを表す入力ラベルと、データバッファ３３１に記憶された出力ラベルのうちの、注目フレームの時刻から一定の時間だけ遅れたフレームの出力データに対する出力勝者ノードを表す出力ラベルとを読み出して対応付け、その対応付けた入力ラベルと出力ラベルとのセットであるラベルセットを、結合重み更新部３３３に供給する。
【０３７１】
結合重み更新部３３３は、図２１の結合重み更新部２２２と同様に、図２３で説明したようにして、読み出し部３３２から供給されるラベルセットに基づき記憶部３１１に記憶された入出力関係モデルM11（図２６）における入力ネットワークnet1のノードNiと、出力ネットワークnet2のノードN'jとの結合関係を、ヘブ（hebb）則等により更新する。
【０３７２】
即ち、結合重み更新部３３３は、入力ネットワークnet1の各入力ノードと、ラベルセットの出力ラベルが表す出力ネットワークnet2の出力勝者ノードとの結合重みを、ラベルセットの入力ラベルが表す入力ネットワークnet1の入力勝者ノードを中心として更新するとともに、出力ネットワークnet2の各出力ノードと、入力ネットワークnet1の勝者ノードとの結合重みを、出力ネットワークnet2の勝者ノードを中心として更新する。
【０３７３】
ここで、上述したように、入力勝者ノードは、注目フレームの入力データに対する勝者ノードであり、出力勝者ノードは、注目フレームから一定の時間だけ遅れたフレームの出力データに対する勝者ノードであるから、結合重み更新部３３３による結合重みの更新によれば、記憶部３１１に記憶された入出力関係モデルM11において、注目フレームの入力データに対する入力ネットワークnet1の入力勝者ノードと、注目フレームから一定の時間だけ遅れたフレームの出力データに対する出力ネットワークnet2の出力勝者ノードとの結合重みが、より強くなるように更新される。
【０３７４】
その結果、入出力関係モデルM11に、あるフレームFの入力データが与えられると、入出力関係モデルM11では、入力ネットワークnet1のノードのうちの、フレームFの入力データに対応するノードが入力勝者ノードとなる。さらに、入出力関係モデルM11では、出力ネットワークnet2のノードのうちの、フレームFから一定の時間だけ遅れたフレームの出力データに対応するノードが、入力勝者ノードとの結合重みが最も強いノードとして、生成ノードに決定され、これにより、その生成ノードに基づき、フレームFから一定の時間だけ遅れたフレームの出力データに相当する時系列データが生成される。
【０３７５】
データ抽出部３１５には、センサ３０２が各時刻において出力するセンサデータが供給される。データ抽出部３１５は、センサ３０２からのセンサデータを、入力データとして、その入力データの時系列から、フレーム単位の入力データを順次抽出し、認識部３１６に供給する。
【０３７６】
認識部３１６は、スコア計算部３４１と勝者ノード決定部３４２とから構成される。
【０３７７】
また、図２５において、写像部３１７は、生成ノード決定部３５１から構成される。さらに、生成部３１８は、時系列生成部３６１から構成される。
【０３７８】
スコア計算部３４１、勝者ノード決定部３４２、生成ノード決定部３５１、時系列生成部３６１は、それぞれ、図２１のスコア計算部２３１、勝者ノード決定部２３２、生成ノード決定部２３３、時系列生成部２３４と同様の処理を行う。
【０３７９】
なお、時系列生成部３６１が生成した出力データは、モータデータとして、モータ駆動部３０３に供給される。
【０３８０】
次に、図２７を参照して、図２５のデータ抽出部３１２の処理について説明する。
【０３８１】
図２５で説明したように、データ抽出部３１２には、センサ３０２が各時刻において出力するセンサデータと、モータ駆動部３０３が同一時刻において出力するモータデータとが供給される。
【０３８２】
いま、フレームの長さ（時間）をTと表すこととすると、データ抽出部３１２は、センサデータを入力データとして、その入力データの時系列を、図２７に示すように、時間T単位に区切った、フレーム単位の入力データを抽出し、学習処理部３１３に供給する。
【０３８３】
また、データ抽出部３１２は、モータデータを出力データとして、その出力データの時系列を、図２７に示すように、時間T単位に区切った、フレーム単位の出力データを抽出し、学習処理部３１３に供給する。
【０３８４】
ここで、以下、適宜、時刻tを先頭の時刻とし、時刻t+Tを終わりの時刻とする時間Tのフレームを、時刻tのフレームという。時刻tの入力データ（のサンプル値）から、時刻t+t'の入力データまでを、I[t,t+t']と表すこととすると、時刻tのフレームの入力データは、I[t,t+T-1]と表すことができる。同様に、時刻tの出力データから、時刻t+t'の出力データまでを、O[t,t+t']と表すこととすると、時刻tのフレームの出力データは、O[t,t+T-1]と表すことができる。
【０３８５】
なお、図２５のデータ抽出部３１５も、データ抽出部３１２と同様に、センサ３０２から供給されるセンサデータを入力データとして、その入力データの時系列から、時間Tのフレーム単位の入力データを抽出し、認識部３１６に供給する。
【０３８６】
次に、図２８を参照して、図２５の読み出し部３３２の処理について説明する。
【０３８７】
読み出し部３３２は、上述したように、入力データのフレームを、順次、注目フレームとして、データバッファ３３１に記憶された入力ラベルのうちの、注目フレームの入力データに対する入力勝者ノードを表す入力ラベルと、データバッファ３３１に記憶された出力ラベルのうちの、注目フレームの時刻から一定の時間だけ遅れたフレームの出力データに対する出力勝者ノードを表す出力ラベルとを対応付ける。
【０３８８】
即ち、一定の時間として、例えば、フレームと同一の時間Tを採用することとすると、読み出し部３３２は、時刻tのフレームの入力データ(I[t,t+T-1])に対する入力勝者ノードNtを表す入力ラベルと、注目フレームの時刻tから時間Tだけ遅れた時刻t+Tのフレームの出力データ(O[t+T,t+2T-1])に対する出力勝者ノードN't+Tを表す出力ラベルとを対応付ける。
【０３８９】
次に、図２９のフローチャートを参照して、図２５のロボットが行う学習処理、即ち、入出力関係モデルM11の学習処理について説明する。
【０３９０】
例えば、ロボットに、目の前にあるボールを左右に転がすタスクを学習させる場合、オペレータ（ロボットにタスクの学習をさせようとするユーザ）は、ロボットの前にボールをおき、ロボットのアームを持って、ボールを左右に転がすように、アームを動かす。
【０３９１】
この場合、センサ３０２において、左右に転がるボールの状態が検知され、その状態を表す時系列のセンサデータが、データ処理装置３０１のデータ抽出部３１２に供給される。
【０３９２】
また、モータ駆動部３０３では、オペレータが動かしているアームの動きに対応するモータデータが生成され、データ処理装置３０１のデータ抽出部３１２に供給される。
【０３９３】
データ抽出部３１２は、ステップＳ３０１において、センサ３０２からのセンサデータを入力データとして、その入力データの時系列から、フレーム単位の入力データを抽出し、学習処理部３１３の認識学習処理部３２１に供給するとともに、モータ駆動部３０３からのモータデータを出力データとして、その出力データの時系列から、フレーム単位の出力データを抽出し、学習処理部３１３の生成学習処理部３２２に供給して、ステップＳ３０２に進む。
【０３９４】
ステップＳ３０２では、学習処理部３１３が、データ抽出部３１２からのフレーム単位の入力データと出力データを用いて、記憶部３１１に記憶された入出力関係モデルM11（図２６）が有する入力ネットワークnet1と出力ネットワークnet2の自己組織的な学習を行う。
【０３９５】
即ち、ステップＳ３０２では、ステップＳ３０２1とＳ３０２2の処理が行われる。
【０３９６】
ステップＳ３０２1では、認識学習処理部３２１が、記憶部３１１に記憶された入出力関係モデルM11における入力ネットワークnet1の各ノードについて、データ抽出部３１２からのフレーム単位の入力データに対するスコアを求め、入力ネットワークnet1のノードの中から、スコアの最も良いノードを、入力勝者ノードに決定する。さらに、認識学習処理部３２１は、データ抽出部３１２からのフレーム単位の入力データに対する入力勝者ノードに基づいて、入力ネットワークnet1を、自己組織的に更新し、入力勝者ノードを表す入力ラベルを、写像学習部３１４に供給する。
【０３９７】
ステップＳ３０２2では、生成学習処理部３２２が、記憶部３１１に記憶された入出力関係モデルM11における出力ネットワークnet2の各ノードについて、データ抽出部３１２からのフレーム単位の出力データに対するスコアを求め、出力ネットワークnet2のノードの中から、スコアの最も良いノードを、出力勝者ノードに決定する。さらに、生成学習処理部３２２は、データ抽出部３１２からのフレーム単位の出力データに対する出力勝者ノードに基づいて、出力ネットワークnet2を、自己組織的に更新し、出力勝者ノードを表す出力ラベルを、写像学習部３１４に供給する。
【０３９８】
ステップＳ３０２の処理後は、ステップＳ３０３に進み、写像学習部３１４は、入力データのフレームのうちの、まだ注目フレームとしていないフレームを、注目フレームとして、学習処理部３１３からの、注目フレームの入力データに対する入力勝者ノードを表す入力ラベルと、学習処理部３１３からの、注目フレームから時間Tだけ遅れたフレームの出力データに対する出力勝者ノードを表す出力ラベルとを対応付ける。
【０３９９】
即ち、ステップＳ３０３では、写像学習部３１４のデータバッファ３３１において、学習処理部３１３からのフレーム単位の入力データに対する入力勝者ノードを表す入力ラベルと、フレーム単位の出力データに対する出力勝者ノードを表す出力ラベルとが一時記憶される。
【０４００】
さらに、ステップＳ３０３では、写像学習部３１４の読み出し部３３２が、データバッファ３３１に記憶された入力ラベルのうちの、注目フレームの入力データに対する入力勝者ノードを表す入力ラベルと、データバッファ３３１に記憶された出力ラベルのうちの、注目フレームの時刻から時間Tだけ遅れたフレームの出力データに対する出力勝者ノードを表す出力ラベルとを読み出して対応付け、その対応付けた入力ラベルと出力ラベルとのセットであるラベルセットを、結合重み更新部３３３に供給する。
【０４０１】
そして、ステップＳ３０３からステップＳ３０４に進み、写像学習部３１４の結合重み更新部３３３が、読み出し部３３２から供給されるラベルセットに基づき、記憶部３１１に記憶された入出力関係モデルM11（図２６）における入力ネットワークnet1のノードと、出力ネットワークnet2のノードとの結合関係を更新する。
【０４０２】
即ち、結合重み更新部３３３は、記憶部３１１に記憶された入出力関係モデルM11における入力ネットワークnet1の各入力ノードと、ラベルセットの出力ラベルが表す出力ネットワークnet2の出力勝者ノードとの結合重みを、ラベルセットの入力ラベルが表す入力ネットワークnet1の入力勝者ノードを中心として更新するとともに、出力ネットワークnet2の各出力ノードと、入力ネットワークnet1の勝者ノードとの結合重みを、出力ネットワークnet2の勝者ノードを中心として更新する。
【０４０３】
なお、図２９の学習処理は、入力データの先頭のフレームから終わりのフレームまでを、順次、注目フレームとして、ステップＳ３０２乃至Ｓ３０４の処理を繰り返し行うようにしてもよいし、入力データの先頭のフレームから終わりのフレームまでを、順次、注目フレームとして、ステップＳ３０２の処理を繰り返し行い、その後、再び、入力データの先頭のフレームから終わりのフレームまでを、順次、注目フレームとして、ステップＳ３０３およびＳ３０４の処理を繰り返し行うようにしても良い。
【０４０４】
次に、図３０のフローチャートを参照して、図２５のロボットが行う認知行動の処理、即ち、入出力関係モデルM11を用いた時系列データの生成処理（認識生成処理）について説明する。
【０４０５】
例えば、図２９で説明したように、ロボットに、目の前にあるボールを左右に転がすタスクを学習させた後、ロボットの前にボールをおくと（さらに、必要に応じて、ボールを転がすと）、センサ３０２において、ボールの状態が検知され、その状態を表す時系列のセンサデータが、データ処理装置３０１のデータ抽出部３１５に供給される。
【０４０６】
データ抽出部３１５は、ステップＳ３１１において、センサ３０２からのセンサデータを入力データとして、その入力データの時系列から、フレーム単位の入力データを抽出し、認識部３１６に供給して、ステップＳ３１２に進む。
【０４０７】
認識部３１６では、ステップＳ３１２において、スコア計算部３４１が、データ抽出部３１５からのフレーム単位の入力データを、順次、注目フレームの入力データとして、その注目フレームの入力データに対して、記憶部３１１に記憶された入出力関係モデルM11を構成する入力ネットワークnet1の各ノードのスコアを計算し、勝者ノード決定部３４２に供給する。
【０４０８】
さらに、ステップＳ３１２では、勝者ノード決定部３４２が、記憶部３１１に記憶された入出力関係モデルM11を構成する入力ネットワークnet1のノードの中で、スコア計算部３４１からのスコアが最も良いノードを、入力勝者ノードに決定し、その入力勝者ノードを表す入力ラベルを、写像部３１７に供給して、ステップＳ３１３に進む。
【０４０９】
ステップＳ３１３では、写像部３１７の生成ノード決定部３５１が、記憶部３１１に記憶された入出力関係モデルM11を構成する出力ネットワークnet2のノードの中で、勝者ノード決定部３４２からの入力ラベルが表すノード（入力勝者ノード）との結合重みが最も強いノードを生成ノードに決定し、その生成ノードを表す出力ラベルを、生成部３１８に供給して、ステップＳ３１４に進む。
【０４１０】
ステップＳ３１４では、生成部３１８の時系列生成部３６１が、記憶部３１１に記憶された入出力関係モデルM11を構成する出力ネットワークnet2のノードのうちの、生成ノード決定部３５１からの出力ラベルが表す生成ノードが有する時系列パターンモデル２１（図７）に基づいて、注目フレームの入力データに対する出力データ（の予測値）としての、例えば、フレームの長さの時系列データを生成して出力する。
【０４１１】
この出力データとしての時系列データは、モータ駆動部３０３に供給され、モータ駆動部３０３が、時系列生成部３６１からの出力データをモータデータとして、モータを駆動することにより、ロボットのアームが動かされる。
【０４１２】
以下、データ抽出部３１５から認識部３１６に対して供給されるフレーム単位の入力データについて、ステップＳ３１２乃至Ｓ３１４の処理が行われる。
【０４１３】
以上のように、入力ネットワークnet1のフレーム単位の入力データに対する入力勝者ノードと、出力ネットワークnet2の各ノードとの結合重みを更新するとともに、出力ネットワークnet2の、フレーム単位の入力データの時刻から一定の時間だけ遅れたフレーム単位の出力データに対する出力勝者ノードと、入力ネットワークnet1の各ノードとの結合重みを更新するようにしたので、ロボットに、目の前にあるボールを左右に転がすタスクのような実時間性が要求されるタスクを学習させ、そのようなタスクを行わせることができる。
【０４１４】
なお、上述の場合には、注目フレームの時刻から一定の時間だけ遅れたフレームの出力データとして、注目フレームの時刻から、フレームと同一の時間Tだけ遅れたフレームの出力データを採用することとしたが、即ち、入力データの注目フレームと、その注目フレームに対応する出力データのフレームとの時間差（以下、適宜、入出力時間差という）として、時間Tを採用したが、入出力時間差は、時間Tに限られるものではなく、例えば、時間2Tや3T、0.5Tなどを採用することができる。
【０４１５】
ここで、結合重み更新部３３３（図２５）において、入力ネットワークnet1のフレーム単位の入力データに対する入力勝者ノードと、出力ネットワークnet2の各ノードとの結合重みを更新するとともに、出力ネットワークnet2の、フレーム単位の入力データの時刻から入出力時間差だけ遅れたフレーム単位の出力データに対する出力勝者ノードと、入力ネットワークnet1の各ノードとの結合重みを更新することは、フレーム単位の入力データと、そのフレーム単位の入力データの時刻から入出力時間差だけ遅れたフレーム単位の出力データとを対応付けるように、入出力関係モデルM11の学習を行うことになる。
【０４１６】
そして、かかる学習が行われた入出力関係モデルM11を用いた、入力データに対する出力データの生成では、フレーム単位の入力データに対して、そのフレーム単位の入力データの時刻から入出力時間差だけ遅れたフレーム単位の出力データ（の予測値）が生成されるから、この出力データの生成は、フレーム単位の入力データ（例えば、センサデータ）から、そのフレーム単位の入力データの時刻から入出力時間差だけ未来のフレーム単位の出力データ（に対応する行動）を予測している、ということができる。
【０４１７】
以上のように、図２５のロボットでは、フレーム単位の入力データと、そのフレーム単位の入力データの時刻から入出力時間差だけ遅れたフレーム単位の出力データとを対応付けるように、入出力関係モデルM11の学習を行う。
【０４１８】
このため、ロボットの認知行動（出力データの生成）時において、入力データであるセンサデータとして、入出力関係モデルM11の入力ネットワークnet1のいずれかのノードが表現する時系列パターンに合致する時系列パターンのセンサデータが入力される限りは、そのセンサデータに対して適切な出力データであるモータデータが生成され、その結果、ロボットは、学習したタスクを再現することができる。
【０４１９】
ところで、図２５の入出力関係モデルM11の学習においては、センサデータを入力データとするとともに、モータデータを出力データとして、フレーム単位の入力データを用いて、入力ネットワークnet1の自己組織的な学習を行うとともに、フレーム単位の出力データを用いて、出力ネットワークnet2の自己組織的な学習を行い、フレーム単位の入力データに対する入力ネットワークnet1の勝者ノードと、そのフレーム単位の入力データから入出力時間差だけ遅れたフレーム単位の出力データに対する出力ネットワークnet2の勝者ノードとの結合関係を強めるように、結合重みwを更新するようにしたので、このような入出力関係モデルM11によれば、例えば、フレーム単位の入力データから、入出力時間差だけ遅れたフレームの出力データを生成すること、つまり、未来のフレームの出力データを予測することができる。
【０４２０】
従って、入出力関係モデルM11によれば、入力データおよび出力データとして、同一の時系列データを採用することにより、各フレームの時系列データから、未来のフレームとしての、例えば、次のフレームの時系列データを予測することができる。
【０４２１】
即ち、入出力関係モデルM11の学習において、図３１に示すように、例えば、センサデータやモータデータなどの時系列データから、フレーム単位の時系列データを抽出し、そのフレーム単位の時系列データを用いて、入力ネットワークnet1と、出力ネットワークnet2との自己組織的な学習を行い、フレーム単位の時系列データに対する入力ネットワークnet1の勝者ノードと、そのフレーム単位の時系列データの次のフレームの時系列データに対する出力ネットワークnet2の勝者ノードとの結合関係を強めるように、結合重みwを更新する。
【０４２２】
この場合、入出力関係モデルM11では、入力ネットワークnet1のノードのうちの、あるフレームFの時系列データの時系列パターンを表現するノードNAと、出力ネットワークnet2のノードのうちの、フレームFの次のフレームの時系列データの時系列パターンを表現するノードNBとの結合重みwが強くなる。
【０４２３】
従って、入出力関係モデルM11の入力ネットワークnet1に対して、フレームFの時系列データが入力されると、入力ネットワークnet1のノードのうちのノードNAが勝者ノードとなる。さらに、出力ネットワークnet2のノードのうちの、ノードNBが、勝者ノードであるノードNAとの結合重みが最も強いノードとなり、そのノードNBが生成ノードに決定され、そのノードNBが表現する時系列パターンの時系列データ、つまり、フレームFの次のフレームの時系列データの予測値が生成される。
【０４２４】
一方、入出力関係モデルM11を構成する入力ネットワークnet1やnet2などの時系列パターン記憶ネットワークは、複数のノードから構成され、自己組織的な学習を行うことができる点で、従来のSOMと共通し、従って、SOMの範疇に含まれるので、SOMの一種であるということができる。
【０４２５】
以上のように、入出力関係モデルによれば、各フレームの時系列データから、未来のフレームとしての、例えば、次のフレームの時系列データを予測することができ、さらに、入出力関係モデルを構成する時系列パターン記憶ネットワークは、SOMの一種であるから、かかる観点からは、入出力関係モデルは、SOMを用いて、現在の時系列データから、未来の時系列データを予測するモデルであるということができる。
【０４２６】
そこで、SOMを用いて、現在の時系列データから、未来の時系列データを予測するモデルとしての入出力関係モデルを、以下、適宜、予測SOMモデルともいう。
【０４２７】
ところで、予測SOMモデルである入出力関係モデルM11が有する入力ネットワークnet1および出力ネットワークnet2は、図２０の入出力関係モデルが有する時系列パターン記憶ネットワークnetinおよびnetoutと同様に、ノードの数や、リンク、ノードが有する時系列パターンモデル２１が同一であっても良いし、異なっていても良い。
【０４２８】
また、予測SOMモデルでは、入力ネットワークnet1および出力ネットワークnet2は、いずれも、同一のフレーム単位の時系列データを用いて、自己組織的な学習が行われる。
【０４２９】
従って、予測SOMモデルを構成する入力ネットワークnet1と出力ネットワークnet2として、ノードの数、リンク、ノードが有する時系列パターンモデル２１のそれぞれが同一の時系列パターン記憶ネットワークを採用する場合には、その入力ネットワークnet1および出力ネットワークnet2は、１つの時系列パターン記憶ネットワークで代用することができる。
【０４３０】
即ち、図３２は、図３１の予測SOMモデルとしての入出力関係モデルM11が有する入力ネットワークnet1および出力ネットワークnet2を、１つの時系列パターン記憶ネットワークで代用した予測SOMモデルを示している。
【０４３１】
図３２の予測SOMモデルは、１つの時系列パターン記憶ネットワーク（入力ネットワーク）net1を有しており、図３１の予測SOMモデルとしての入出力関係モデルM11が有する２つの入力ネットワークnet1および出力ネットワークnet2が、１つの時系列パターン記憶ネットワークnet1で代用されている。
【０４３２】
そして、図３２の予測SOMモデルでは、図３１の予測SOMモデルとしての入出力関係モデルM11が有する入力ネットワークnet1および出力ネットワークnet2が、１つの時系列パターン記憶ネットワークnet1で代用されているために、時系列パターン記憶ネットワークnet1のノードどうしが、結合重みwによって結合されている。
【０４３３】
ここで、図３２の予測SOMモデルのように、ノードどうしが結合重みwによって結合されるSOMを、以下、適宜、新SOMという。
【０４３４】
新SOMの学習では、新SOMの各ノードについて、フレーム単位の時系列データに対するスコアが求められ、そのスコアが最も良いノードが勝者ノードに決定される。そして、その勝者ノードに基づいて、新SOMが自己組織的に更新（学習）される。さらに、新SOMのノードのうちの、フレーム単位の時系列データに対する勝者ノードと、そのフレーム単位の時系列データの、例えば、次のフレームなどの未来のフレームの時系列データに対する勝者ノードとの結合重みが強くなるように更新される。
【０４３５】
そして、新SOMを用いた時系列データの生成では、新SOMに対して、あるフレームFの時系列データが入力されると、新SOMの各ノードについて、フレームFの時系列データに対するスコアが求められ、そのスコアが最も良いノードが勝者ノードに決定される。そして、その勝者ノードとの結合重みwが最も強い新SOMのノードが、生成ノードに決定され、その生成ノードを用いて、その生成ノードが表現する時系列パターンの時系列データが、フレームFの次のフレームの時系列データの予測値として生成される。
【０４３６】
以上のように、新SOMを用いた時系列データの生成では、フレームFの時系列データに対して、その次のフレームの時系列データの予測値が生成される、つまり、次のフレームの時系列データが予測されるので、新SOMを用いた時系列データの生成は、予測の一種である。
【０４３７】
また、この予測は、結合重みwに基づき、フレームFの入力データに対する勝者ノードとの結合重み（勝者ノードからの結合重み）wが最も強いノードを生成ノードとして用いて行われるので、新SOMの学習で行われる自己組織的な学習と結合重みの学習（更新）とのうちの、結合重みの学習は、予測のために行われる学習である予測学習の一種である。
【０４３８】
なお、入出力関係モデル（ノードどうしが結合重みwによって結合される予測SOMモデル、および新SOMも同様）は、ノードに、時系列パターンモデル２１を有する時系列パターン記憶ネットワークを用いて構成するのではなく、ノードに、所定の次元の重みベクトルを有する（ノードに重みベクトルが割り当てられた）従来のSOMを用いて構成することもできる。
【０４３９】
入出力関係モデルを、従来のSOMを用いて構成する場合には、ノードは、そのノードが有する重みベクトルのコンポーネントをサンプル値とする固定長の時系列パターンを表現することになる。
【０４４０】
なお、入出力関係モデルを、従来のSOMを用いて構成する場合であっても、入出力関係モデルとしてのSOMは、結合重みwを有するので、結合重みを有しない従来のSOMとは異なる。
【０４４１】
ところで、人間の脳は大量の観測情報を処理して、統合的に判断して次に起こることを予測することができる。また自身の行動も次の自分の行動を予測して行われる。したがって、予測学習の機能は、知能情報処理を考えた時には非常に重要な構成要素である。
【０４４２】
こうした予測の枠組みを数学的に定式化したものの一つに、次式で表されるマルコフ過程がある。マルコフ過程では、観測した結果により一意に次の状態が決まる。
【０４４３】
【数６】
2007299365.tif 000008
・・・（６）
【０４４４】
ここで、式（６）において、S_tは、時刻tにおける状態を表し、A_tは、時刻tにおける観測値（観測した結果）を表す。また、f(S_t,A_t)は、状態S_tと観測値A_tとを引数とする所定の関数である。
【０４４５】
式（６）によれば、時刻t+1の状態S_t+1が、現在（時刻t）の状態S_tと、現在の観測値A_tとから予測される。
【０４４６】
しかしながら、実際の環境は、式（６）で表されるような単純なものではなく、同じ観測値が観測されても、違う現象が発生する（違う状態となる）ことはしばしばある。こうした現象を表すためにその時刻までの累積で決まる内部状態（コンテクスト）を持たせることで、次状態をこの内部状態と現在の観測できまるものとしたのが以下の式である。
【０４４７】
【数７】
2007299365.tif 000009
・・・（７）
【０４４８】
ここで、式（７）において、X_tは、時刻tにおける内部状態を表す。また、f(X_t,A_t)は、内部状態X_tと観測値A_tとを引数とする所定の関数であり、g(X_t,A_t)も、内部状態X_tと観測値A_tとを引数とする他の所定の関数である。
【０４４９】
式（７）によれば、時刻t+1の状態S_t+1が、現在の内部状態X_tと、現在の観測値A_tとから予測される。さらに、現在の内部状態X_tと、現在の観測値A_tとによって、内部状態が、時刻t+1の内部状態X_t+1に更新される。
【０４５０】
式（６）や式（７）の予測を行うための学習（予測学習）では、時刻の状態を出す写像を経験（観測値）から学習することになるが、学習の問題となるのは、大規模の学習が難しいという点である。通常のニューラルネットワークの学習では入力の次元数が増えると学習が困難になるために、例えばヒューマノイドロボットのあらゆるセンサやアクチュエータの信号を一つのネットワークに入力して全体が最適となるように学習させようとしても、現実的には、ほぼ不可能となる。
【０４５１】
ところで、脳の情報処理の中で比較的解明が進んでいるのが低次の視覚機能である。最も低次のV1と呼ばれる視覚野には、網膜からの信号が入る。ここでは大規模な画素からなる視覚センサのうちの局所領域に対して特定の処理だけを行う事が知られている。またこの処理結果を受けるV2ではV1の神経細胞の幾つかをまとめて処理するために対応する領域と処理の内容が広がっている。このように脳の情報処理では局所的なセンサ情報の処理結果を階層が上がるごとに束ねていくことで階層上位ではより時間・空間的に広範囲の情報を扱うようにできている。結果的に視覚野の上位に位置するIT野では視野全体の情報から特定の物体があるなしの判断をするような神経細胞（おばあちゃん細胞）が存在すると言われている。
【０４５２】
Hawkinsは、ジェフ・ホーキンス，サンドラ・ブレイクスリー，「考える脳考えるコンピュータ」，ランダムハウス講談社，2005, (原書)Jeff Hawkins, Sandra Blakeslee, ”On Intelligence”, Owl Books, 2004.において、大脳新皮質は視覚野に限らず６層構造からなる神経細胞群で均質に構成されており、全ての情報処理は同じ原理の元に実行されているはずであると主張している。また彼らは６層構造の各層の働きに関して実際の神経細胞の接続の生理学的知見から説明を与えており、下位から上位だけではなく、各層内の接続や上位から下位への信号が非常に重要な働きをしていると述べている。
【０４５３】
そこで、以下では、大規模な予測学習の問題を１つのニューラルネットワークに対して全体最適化を行って学習させるアプローチではなく、大脳のように異なるモーダルの局所的な情報処理の積み重ねで結果的に大規模なネットワークを構成できるというHawkinsの主張を参考にし、認識と予測の学習、及び実行（認識生成）に関して具体的な計算モデルを提案する。
【０４５４】
図３３は、新SOMを利用したロボットの構成例を示している。
【０４５５】
なお、図中、図２５のロボットと対応する部分については、同一の符号を付してあり、以下では、その説明は、適宜省略する。
【０４５６】
図３３において、データ処理装置５０１は、記憶部５１１、データ抽出部５１２、学習部５１３、データ抽出部５１４、および認識生成部５１５から構成されている。
【０４５７】
記憶部５１１は、複数の新SOMを階層構造にした階層SOMを記憶している。
【０４５８】
なお、ここでは、階層SOMを、図３２に示した新SOMを用いて構成するが、階層SOMは、新SOMと同様の機能を有する、例えば、図３１の予測SOMモデルを用いて構成することが可能である。
【０４５９】
データ抽出部５１２には、センサ３０２が各時刻において出力するセンサデータ（例えば、画像センサとしてのセンサ３０２が出力する画像データ）や、モータ駆動部３０３が同一時刻において出力するモータデータ（例えば、腕の関節の角度を指示する関節角指示値）などの時系列データが供給される。データ抽出部５１２は、そこに供給される時系列データを、適宜、複数種類の時系列データに分別（分類）して、学習部５１３に供給する。
【０４６０】
すなわち、データ抽出部５１２は、例えば、センサ３０２が出力するセンサデータを１種類の時系列データとして学習部５１３に供給するとともに、モータ駆動部３０３が出力するモータデータを他の１種類の時系列データとして学習部５１３に供給する。
【０４６１】
また、データ抽出部５１２では、例えば、モータ駆動部３０３が出力するモータデータが、ロボットの左腕を駆動するためのモータデータと、右腕を駆動するためのモータデータとを含んでいる場合には、その左腕を駆動するためのモータデータと、右腕を駆動するためのモータデータとをコンポーネントとするベクトルの時系列を、１種類の時系列データとして、学習部５１３に供給することもできるし、左腕を駆動するためのモータデータを、１種類の時系列データとするとともに、右腕を駆動するためのモータデータを、他の１種類の時系列データとして、学習部５１３に供給することもできる。
【０４６２】
なお、データ抽出部５１２において、センサ３０２が出力するセンサデータや、モータ駆動部３０３が出力するモータデータを、どのような種類の時系列データに分別して、学習部５１３に供給するかは、あらかじめ決めておく必要がある。
【０４６３】
学習部５１３は、データ抽出部５１２から供給される複数種類の時系列データそれぞれから、フレーム単位の時系列データを抽出し、そのフレーム単位の時系列データを用いて、記憶部５１１に記憶された階層SOMの学習を行う。
【０４６４】
即ち、学習部５１３は、階層SOMを構成する新SOMの自己組織的な学習と、予測学習（結合重みの学習）とを行う。
【０４６５】
データ抽出部５１４には、センサ３０２が各時刻において出力するセンサデータや、モータ駆動部３０３が同一時刻において出力するモータデータなどの時系列データが供給される。データ抽出部５１４は、データ抽出部５１２と同様に、そこに供給される時系列データを、複数種類の時系列データに分別して、認識生成部５１５に供給する。
【０４６６】
認識生成部５１５は、データ抽出部５１２から供給される複数種類の時系列データそれぞれについて、時系列データを認識し、未来の時系列データを生成する認識生成を行う。
【０４６７】
すなわち、認識生成部５１５は、データ抽出部５１２から供給される複数種類の時系列データそれぞれから、フレーム単位の時系列データを抽出し、そのフレーム単位の時系列データを、記憶部５１１に記憶された階層SOMを用いて認識（認知）する。そして、認識生成部５１５は、複数種類のフレーム単位の時系列データそれぞれの認識結果に基づき、そのフレーム単位の時系列データの時刻よりも未来のフレームの時系列データとしての、例えば、次のフレームの時系列データ（以下、適宜、次の時刻の時系列データともいう）を予測、つまり、次の時刻の時系列データの予測値を生成して出力する。
【０４６８】
なお、認識生成部５１５が生成した時系列データのうちの、モータデータは、モータ駆動部３０３に供給される。
【０４６９】
以下、階層SOMを用いて、学習部５１３が行う処理（学習処理）と、認識生成部５１５が行う処理（次のフレーム（時刻）の時系列データの予測（認識生成処理））とについて説明する。
【０４７０】
1章.概要
【０４７１】
階層SOMの概念図を図３４に示す。この例では１種類の入力（画像センサ）と１種類の出力（関節角指示値）がある。それぞれを異なる新SOMによって、信号の分類を自己組織化させる。信号は時系列信号であるので各時刻において、発火するノード（勝者ノード）が変化する。各新SOMでは次の時刻どのノードが発火するかを予測学習している。上位の新SOMではこれら２つの新SOMの発火位置（勝者ノードの位置）を入力として新SOMの学習を行う。こうすることで下位のノードがどのような組み合わせで発火するかを記憶・分類することができる。上位の新SOMでも同様に次時刻の予測学習を行う。
【０４７２】
実行時（認識生成処理時）には下位レイヤでは入出力信号に基づくそれぞれの次の信号の予測を行う。上位レイヤではこれらの信号の分類で次の予測を行い、この分類から次の時刻の下位のレイヤの信号を推定（予測）する。この際に上位と下位の推定を統合して判断することで、直接接続されていない下位レイヤ間での情報伝搬が行われることになる。
【０４７３】
こうした３者間の情報伝達を繰り返すことでこの階層構造を横に縦に広げてより大規模な情報処理を局所的な情報処理の組み合わせで実現することができる。
【０４７４】
すなわち、図３４は、階層SOMを模式的に示している。
【０４７５】
階層SOMは、複数の新SOMを有し、その複数の新SOMが階層構造を構成するように接続されている。
【０４７６】
ここで、新SOMを、以下、適宜、単に、SOMともいう。
【０４７７】
図３４では、階層SOMは、３つのSOM#11,#12、及び#21を有し、SOM#11及び#12を最下位階層のSOMとするとともに、SOM#21を上位階層のSOMとして、SOM21#と、SOM#11又は#12のそれぞれとが接続されることにより、階層構造が構成されている。
【０４７８】
階層SOMの学習時、つまり、学習部５１３（図３３）が階層SOMの学習を行う場合には、最下位階層のSOM#11及び#12に対して、学習の対象となる時系列データが入力される。
【０４７９】
すなわち、例えば、図３３において、学習の対象となる時系列データが、センサ３０２が出力するセンサデータと、モータ駆動部３０３が出力するモータデータとであるとすると、２つの最下位階層のSOM#11と#12のうちの一方の、例えば、SOM#11には、センタデータが入力され、他方のSOM#12には、モータデータが入力される。
【０４８０】
SOM#11では、そこに入力されるセンサデータを用いて、自己組織的な学習（以下、適宜、自己組織化学習という）が行われる。さらに、SOM#11では、結合重みを更新する予測学習が行われる。
【０４８１】
すなわち、SOM#11においては、時系列のセンサデータからフレーム単位の時系列データが抽出され、そのフレーム単位の時系列データを用いて、自己組織化学習が行われる。この、フレーム単位の時系列データを用いた自己組織化学習によって、勝者ノードが時系列に決定される。
【０４８２】
そして、SOM#11においては、自己組織化学習で決定された各時刻（フレーム）の勝者ノードと、その次の時刻の勝者ノードとの結合重みを強めるように更新する予測学習が行われる。
【０４８３】
さらに、SOM#11では、自己組織化学習で時系列に決定された勝者ノードを表すノード情報の時系列が、そのSOM#11に接続している上位階層のSOMである上位SOMへの入力、すなわち、図３４においては、SOM#21への入力とされる。
【０４８４】
ここで、以下、適宜、SOMへの入力となる時系列データを、SOM入力データというとともに、SOMから出力（生成）される時系列データを、SOM出力データという。
【０４８５】
SOM#12でも、SOM#11と同様に、そこに入力されるSOM入力データを用いて、学習が行われる。
【０４８６】
すなわち、SOM#12では、そこに入力されるモータデータを用いて、自己組織化学習が行われるとともに、その自己組織化学習で決定された各時刻の勝者ノードと、その次の時刻の勝者ノードとの結合重みを強めるように更新する予測学習が行われる。
【０４８７】
さらに、SOM#12では、自己組織化学習で時系列に決定された勝者ノードを表すノード情報の時系列が、そのSOM#12に接続している上位階層のSOMである上位SOMへの入力、すなわち、図３４においては、SOM#21への入力とされる。
【０４８８】
下位階層のSOMが接続されている上位SOMであるSOM#21では、その下位階層のSOMである下位SOMで得られるノード情報を統合した時系列を、SOM入力データとして用いた学習が行われる。
【０４８９】
すなわち、図３４において、SOM#21には、その下位SOMとして、２つのSOM#11及び#12が接続されており、上述したように、SOM#11と#12では、それぞれ、自己組織化学習で時系列に決定された勝者ノードを表すノード情報の時系列が、SOM#21への入力とされる。
【０４９０】
SOM#21では、その下位SOMであるSOM#11と#12それぞれで得られたノード情報を統合し、その統合後のノード情報の時系列を、SOM入力データとして用いて学習が行われる。
【０４９１】
すなわち、SOM#21では、その下位SOMであるSOM#11と#12それぞれで得られたノード情報を統合した時系列を、SOM入力データとして用いて、自己組織化学習が行われるとともに、その自己組織化学習で決定された各時刻の勝者ノードと、その次の時刻の勝者ノードとの結合重みを強めるように更新する予測学習が行われる。
【０４９２】
以上のように、上位SOMであるSOM#21において、その下位SOMであるSOM#11と#12それぞれで得られたノード情報を統合した時系列を、SOM入力データとして用いて、自己組織化学習及び予測学習が行われることにより、下位SOMであるSOM#11と#12それぞれで発火するノードの組み合わせ、つまり、SOM#11で勝者ノードとなるノードと、SOM#12で勝者ノードとなるノードとの組み合わせが記憶される。
【０４９３】
次に、階層SOMの認識生成時、つまり、認識生成部５１５が階層SOMを用いて認識生成を行う場合には、最下位階層のSOM#11及び#12に対して、認識の対象となる時系列データが入力される。
【０４９４】
すなわち、例えば、図３３において、認識の対象となる時系列データが、センサ３０２が出力するセンサデータと、モータ駆動部３０３が出力するモータデータとであるとすると、学習時と同様に、SOM#11には、センタデータが入力され、SOM#12には、モータデータが入力される。
【０４９５】
SOM#11では、そこに入力されるセンサデータを認識する認識処理が行われる。
【０４９６】
すなわち、SOM#11においては、時系列のセンサデータからフレーム単位の時系列データが抽出され、そのフレーム単位の時系列データに対して発火するノード、つまり、勝者ノードが時系列に決定される。
【０４９７】
さらに、SOM#11では、フレーム単位の時系列データに対する勝者ノードを表すノード情報の時系列が、そのSOM#11に接続している上位SOMであるSOM#21への入力とされる。
【０４９８】
SOM#12でも、SOM#11と同様に、そこに入力されるSOM入力データであるモータデータを認識する認識処理が行われる。
【０４９９】
すなわち、SOM#12では、時系列のモータデータからフレーム単位の時系列データが抽出され、そのフレーム単位の時系列データに対して発火するノードである勝者ノードが時系列に決定される。
【０５００】
さらに、SOM#12では、フレーム単位の時系列データに対する勝者ノードを表すノード情報の時系列が、そのSOM#12に接続している上位SOMであるSOM#21への入力とされる。
【０５０１】
下位階層のSOMが接続されている上位SOMであるSOM#21では、その下位階層のSOMである下位SOMで得られるノード情報を統合した時系列を、SOM入力データとして用いた認識処理が行われる。
【０５０２】
すなわち、図３４において、SOM#21には、その下位SOMとして、２つのSOM#11及び#12が接続されており、上述したように、SOM#11と#12では、それぞれ、時系列に決定された勝者ノードを表すノード情報の時系列が、SOM#21への入力とされる。
【０５０３】
SOM#21では、その下位SOMであるSOM#11と#12それぞれで得られたノード情報を統合し、その統合後のノード情報の時系列を、SOM入力データとして用いて認識処理が行われる。
【０５０４】
具体的には、SOM#21では、SOM#11と#12それぞれで得られたノード情報を統合した時系列であるSOM入力データから、フレーム単位の時系列データが抽出され、そのフレーム単位の時系列データに対して発火するノードである勝者ノードが時系列に決定される。
【０５０５】
そして、SOM#21では、フレーム単位の時系列データに対する勝者ノードについて、次の時刻において勝者ノードとなると予測されるノードを予測する予測処理が行われ、その予測処理による予測の結果が、その下位SOMのSOM#11と#12に与えられる。
【０５０６】
SOM#21の下位SOMであるSOM#11と#12では、その上位SOMであるSOM#21からの予測の結果に基づいて、フレーム単位の時系列データに対する勝者ノードについて、次の時刻において勝者ノードとなると予測されるノード（以下、適宜、予測ノードという）を予測する予測処理が行われる。
【０５０７】
すなわち、SOM#11では、勝者ノードが決定されたある時刻（フレーム）の時系列データの次の時刻において勝者ノードとなると予測される予測ノードが、ある時刻の時系列データに対する勝者ノードの結合重みと、上位SOMであるSOM#21からの予測の結果とに基づいて求められる。そして、SOM#11では、予測ノードを生成ノードとして用いて、次の時刻のセンサデータとしての時系列データが生成されて出力される。
【０５０８】
SOM#12でも、同様に、勝者ノードが決定されたある時刻の時系列データの次の時刻において勝者ノードとなると予測される予測ノードが、ある時刻の時系列データに対する勝者ノードの結合重みと、上位SOMであるSOM#21からの予測の結果とに基づいて求められる。そして、SOM#12では、予測ノードを生成ノードとして用いて、次の時刻のモータデータとしての時系列データが生成されて出力される。
【０５０９】
以上のように、階層SOMでは、下位SOMにおいて、SOM入力データの認識を行い、その認識の結果としての、勝者ノードを表すノード情報を、上位SOMに出力する。そして、上位SOMにおいて、下位SOMからのノード情報を統合した時系列を、SOM入力データとして、そのSOM入力データの認識を行うことが、下位階層から上位階層（のSOM）に向かって順次行われる。
【０５１０】
また、階層SOMの各SOMでは、勝者ノードの結合重みと、上位SOMの予測処理による予測の結果とに基づき、予測処理を行い、その予測処理による予測の結果を、下位SOMに与える（戻す）ことが、上位階層から下位階層（のSOM）に向かって順次行われる。
【０５１１】
このため、階層SOMによれば、直接接続されていない複数の下位SOMどうし、ひいては、その複数の下位SOMそれぞれが学習した時系列データどうし、つまり、例えば、センサデータとモータデータのような複数種類の時系列データ（複数のモーダル）どうしを関連付けることができる。
【０５１２】
2章.原理実験設定
【０５１３】
図３５に原理確認実験の設定を示す。概要で説明したように３つの新SOMを利用する。それぞれの新SOMは２次元の９×９で８１ノードを持たせる。各ノードには入力時系列信号を学習させるHMMを用意する。時系列データの扱いは、下位の新SOMでは４０ステップ（サンプル点）分を１つのウインドウ（フレーム）として入力し、１０ステップずつウインドウをずらしながら入力をする（図３６）。従って入出力は１０ステップに一回発生する。上位の新SOMでは下位の出力を、２０ステップ分のウインドウで５ステップずらしながら入力する。結果的に、上位の新SOMでは１０×２０＝２００でオリジナルの時間幅の２００ステップ分の影響を受けることになり、間引きながらより長い時間の情報を取り扱う。
【０５１４】
入力データには２種類のsin波とcos波の組を用いる。ペアの片割れをそれぞれ下位の新SOMに入力する。個々の新SOMは自分に入力された波形しか予測、生成することができないが、上位の新SOMが２つの信号の関係を学習しているために上位レイヤを介して、片方の信号からもう片方を想起することができる。
【０５１５】
すなわち、図３５は、本件発明者が実験に用いた階層SOMを模式的に示している。
【０５１６】
実験に用いた階層SOM#Eは、図３４に示した階層SOMと同一構成になっており、したがって、３つのSOM#11,#12、及び#21を有し、SOM#11及び#12を最下位階層のSOMとするとともに、SOM#21を上位階層のSOMとして、SOM21#と、SOM#11又は#12のそれぞれとが接続されることにより、階層構造を構成している。
【０５１７】
階層SOM#Eを構成する３つのSOM#11,#12、及び#21は、例えば、いずれも、横×縦が９×９個の８１個のノードを有し、図８に示したような２次元の配置構造が与えられている。また、ノードは、時系列パターン記憶モデル２１（図７）として、２０の状態のHMMを有している。
【０５１８】
学習時及び認識生成時においては、図３６に示すように、時系列データであるSOM入力データに対して、所定のウインドウ長（時間長）のウインドウを、所定のシフト量ずつシフトしながらかけることにより、時系列データから、所定のウインドウ長を１フレームのフレーム長とするフレーム単位のSOM入力データを抽出して用いた。
【０５１９】
すなわち、図３６は、時系列データから、フレーム単位のSOM入力データを抽出する抽出方法を示している。
【０５２０】
ここで、以下、適宜、階層SOMに与えられる時系列データ、すなわち、例えば、図３３のデータ抽出部５１２から学習部５１３に供給されるセンサデータやモータデータ、さらには、データ抽出部５１４から認識生成部５１５に供給されるセンサデータやモータデータを、入力時系列データともいう。
【０５２１】
また、以下、適宜、階層SOMから出力される時系列データ、すなわち、例えば、認識生成部５１５が、データ抽出部５１４から認識生成部５１５に供給される入力時系列データに対して出力（予測）する未来の時系列データを、予測時系列データともいう。
【０５２２】
学習時及び認識生成時において、最下位階層のSOMであるSOM#11及び#12では、入力時系列データでもあるSOM入力データに対して、例えば、４０サンプル（ステップ）をウインドウ長とするウインドウを、１０サンプルずつシフトしながらかけることにより、４０サンプルのフレーム長のフレーム単位のSOM入力データを抽出し、学習や認識生成に用いた。
【０５２３】
したがって、SOM#11及び#12においては、シフト量である１０サンプルごとに、勝者ノードを表すノード情報が得られ、上位SOMへの入力とされる。
【０５２４】
また、上位SOMであるSOM#21では、その下位SOMであるSOM#11及び#12のノード情報を統合した時系列に対して、例えば、２０サンプルをウインドウ長とするウインドウを、５サンプルずつシフトしながらかけることにより、２０サンプルのフレーム長のフレーム単位のSOM入力データを抽出し、学習と認識生成に用いた。
【０５２５】
ここで、上位SOMであるSOM#21に入力されるSOM入力データとしてのノード情報の時系列は、２０サンプル単位の時系列データであるが、SOM#21に入力される２０サンプルのSOM入力データの１サンプルは、下位SOMであるSOM#11及び#12において１０サンプルのシフト量ごとに得られるデータであるから、SOM#21に入力される２０サンプルのSOM入力データは、入力時系列データの２００（＝２０×１０）サンプルに相当する。
【０５２６】
したがって、上位SOMでは、入力時系列データを間引くことによって、下位SOMよりも長い時間分の入力時系列データが扱われるということができる。
【０５２７】
すなわち、フレーム単位のSOM入力データは、上位階層のSOMで用いられるSOM入力データであるほど、長い時間分の入力時系列データになっている。
【０５２８】
なお、実験では、２種類のsin波#A及び#B、並びに２種類のcos波#A及び#Bを用意し、sin波#Aとcos波#Aの時系列データをセットとして、そのうちの一方の時系列データを、最下位階層の２つのSOM#11と#12のうちの一方のSOMに対して、入力時系列データとして与えるとともに、他方の時系列データを、他方のSOMに対して、入力時系列データとして与えた。
【０５２９】
また、sin波#Bとcos波#Bの時系列データをセットとして、そのうちの一方の時系列データを、最下位階層の２つのSOM#11と#12のうちの一方のSOMに対して、入力時系列データとして与えるとともに、他方の時系列データを、他方のSOMに対して、入力時系列データとして与えた。
【０５３０】
学習時には、１回の学習につき、最下位階層の２つのSOM#11と#12それぞれに対して、４０フレームのSOM入力データを繰り返し与え、その上位SOMであるSOM#21に対して、２０フレームのSOM入力データを繰り返し与えた。また、学習は、１フレームのSOM入力データをSOMに与えることを１回として、１万回行った。
【０５３１】
学習後の最下位階層のSOM#11や#12だけでは、時系列データを入力した方のSOMだけからしか、次の時刻の時系列データ（の予測値）を得ることができない。
【０５３２】
すなわち、SOM#11と#12のうちの一方の、例えば、SOM#11に対して、時系列データを入力した場合、その一方のSOM#11において、学習時にSOM#11に入力されたSOM入力データから、SOM#11の各ノードが獲得した時系列パターンの時系列データが生成されるだけで、他方のSOM#12では、時系列データは生成されない。
【０５３３】
同様に、他方のSOM#12に対して、時系列データを入力した場合も、その他方のSOM#12において、学習時にSOM#12に入力されたSOM入力データから、SOM#12の各ノードが獲得した時系列パターンの時系列データが生成されるだけで、一方のSOM#11では、時系列データは生成されない。
【０５３４】
これに対して、３つのSOM#11,#12、及び#21を有する階層SOM#Eにおいては、上位SOMであるSOM#21が、学習時にSOM#11に入力された時系列データと、SOM#12に入力された時系列データとの関係を学習しているため、例えば、最下位階層のSOM#11又は#12のうちの一方の、例えば、SOM#11にSOM入力データを入力すると、その一方のSOM#11において、SOM#11のノードが獲得した時系列パターンの時系列データが生成される他、他方のSOM#12でも、上位SOMであるSOM#21を介して、SOM#12のノードが獲得した時系列パターンの時系列データが生成される。
【０５３５】
すなわち、階層SOM#Eによれば、SOM#11又は#12のうちの一方のSOMのノードが獲得した時系列パターンの時系列データから、他方のSOMのノードが獲得した時系列パターンの時系列データを、いわば、上位SOMであるSOM#21を介して想起することができる。
【０５３６】
3章.階層SOMの学習（SOMの自己組織化学習）
【０５３７】
階層SOMの学習には、階層SOMを構成する各新SOMの自己組織化学習と、予測学習とがある。
【０５３８】
階層SOMを構成する新SOMとして、ノードに、従来のSOMのような、ノードに時系列パターンモデル２１（図７）ではなく、所定の次元の重みベクトルを有するSOMを用いた場合、その自己組織化学習は、従来のSOMの学習（自己組織化学習）と同様である。
【０５３９】
ここで、従来のSOMの学習の方法に関しては、前述した非特許文献１に記載されている。
【０５４０】
一方、階層SOMを構成する新SOMとして、ノードに、時系列パターンモデル２１としての、例えば、HMMを有する時系列パターン記憶ネットワークを用いた場合の自己組織化学習は、上述の図１５で説明したようにして行われる。
【０５４１】
なお、ノードに、時系列パターンモデル２１としてのHMMを有する時系列パターン記憶ネットワークの自己組織化学習については、例えば、Katsuki Minamino, Kazumi Aoyama, and Hideki Shimomura: ”Voice Imitation based on self-organizing maps with HMMs”, The International Workshop on Intelligence Dynamics at Humanoids 2005.に記載されている。
【０５４２】
4章.予測学習（Connect Hebb学習）
【０５４３】
予測学習では、例えば、図２３で説明したように、ある時刻（フレーム）のSOM入力データに対する新SOMの勝者ノードから、次の時刻のSOM入力データに対する新SOMの勝者ノードへの結合の度合いを表す結合重みを強めるように、結合重みの更新が行われる。
【０５４４】
すなわち、予測学習においては、新SOMのノードどうしの結合重みが、ある時刻のSOM入力データに対する新SOMの勝者ノードと、次の時刻のSOM入力データに対する新SOMの勝者ノードのそれぞれを中心として、hebb則によって学習される。
【０５４５】
hebb則による結合重みの学習（更新）の方法は、式（４）及び式（５）で説明した通りである。
【０５４６】
ここで、新SOMがN個のノードを有しており、新SOMのN個のノードのうちの、ノード#iから#jへの結合重みを、wijと表す。結合重みwijは、ノード#iが勝者ノードになった次の時刻にノード#jが勝者ノードとなる可能性を表す。
【０５４７】
いま、ある時刻のSOM入力データに対する新SOMの勝者ノードをノード#Iと表すとともに、その次の時刻のSOM入力データに対する新SOMの勝者ノードをノード#Jと表すこととすると、予測学習としての結合重みwijの更新は、式（８）にしたがって行われる。
【０５４８】
【数８】
2007299365.tif 000010
・・・（８）
【０５４９】
式（８）は、上述した式（４）と同様の式であり、したがって、式（８）におけるβは、式（４）と同様に学習率を表す。学習率βが大きいほど、結合重みwijが、基準値△wに近づく速さが速くなる。
【０５５０】
さらに、式（８）において、基準値△wは、式（５）と同様に、1/[新SOM上の勝者ノード#I(#J)とノード#i(#j)とのパターン間距離+1]で与えられ、0.0ないし1.0の範囲の値である。
【０５５１】
また、式（８）において、iとjは、いずれも、1から、新SOMのノードの数Nまでの整数値をとる。したがって、式（８）の２つの式によれば、１番目の式によって、結合重みw1J,w1J,・・・,wIJ,・・・,wNJが更新され、２番目の式によって、結合重みwI1,wI2,・・・,wIJ,・・・,wINが更新される。但し、更新重みwIJは、式（８）の２つの式のうちの一方によってのみ更新される。
【０５５２】
以上のような階層SOMの学習としての自己組織化学習と予測学習は、図３３の学習部５１３で行われる。
【０５５３】
図３７は、学習部５１３が行う、階層SOMを構成する新SOMのうちの、最下位階層の新SOMの学習の学習手順を示している。
【０５５４】
なお、図３３のロボットでは、上述したように、データ抽出部５１２が、例えば、センサ３０２が出力するセンサデータ、及びモータ駆動部３０３が出力するモータデータ等の複数種類の時系列データを、学習部５１３に供給し、学習部５１３が、データ抽出部５１２からの複数種類の時系列データ（入力時系列データ）を用いて、階層SOMの学習を行うが、ここでは、時刻の同期がとれた、例えば、センサ３０２が出力するセンサデータ、及びモータ駆動部３０３が出力するモータデータ等の複数種類の入力時系列データがあらかじめ用意してあり、その複数種類の入力時系列データを用いて行う、階層SOMの最下位階層の新SOMの学習について説明する。
【０５５５】
ここで、時刻の同期がとれた複数種類の入力時系列データとは、例えば、図３３のロボットに、目の前にあるボールを左右に転がすタスクを学習させる場合において、オペレータが、ロボットの前にボールをおき、ロボットのアームを持って、ボールを左右に転がすように、アームを動かしたときに、センサ３０２が検知する、左右に転がるボールの状態に対応する時系列のセンサデータと、モータ駆動部３０３が生成する、オペレータが動かしているアームの動きに対応するモータデータである。
【０５５６】
また、階層SOMの最下位階層のSOMは、あらかじめ用意されている入力時系列データの種類の数と同一の数だけ存在することとする。
【０５５７】
学習部５１３は、ステップＳ５０１において、あらかじめ用意されている複数種類の入力時系列データの中から、まだ、学習に用いていない１種類の入力時系列データを、注目する注目時系列データとして選択するとともに、記憶部５１１に記憶された階層SOMの最下位階層の新SOMのうちの、まだ、学習をしていない新SOMを、注目する注目SOMとして選択する。
【０５５８】
その後、学習部５１３は、注目時系列データの先頭に、最下位階層用のウインドウ長のウインドウをセットして、ステップＳ５０２に進み、注目時系列データから、ウインドウ内の時系列データ、すなわち、最下位階層用のウインドウ長に等しい時間長（フレーム長）のフレームの時系列データを、注目する注目フレームのSOM入力データとして抽出する。
【０５５９】
そして、学習部５１３は、ステップＳ５０２から、ステップＳ５０３，Ｓ５０４に順次進み、注目フレームのSOM入力データを用いて、注目SOMの自己組織化学習を行う。
【０５６０】
すなわち、ステップＳ５０３では、学習部５１３は、例えば、図１５のステップＳ３及びＳ４と同様にして、注目フレームのSOM入力データに対する注目SOMの勝者ノードを求める。
【０５６１】
具体的には、注目SOMの各ノードが、例えば、HMMを有している場合には、ステップＳ５０３では、注目フレームのSOM入力データが観測される観測尤度が最も高いHMMを有するノードが、勝者ノードとして求められる。
【０５６２】
なお、新SOMを含む時系列パターン記憶ネットワークや、従来のSOM（ノードに重みベクトルが割り当てられたSOM）等のSOMの範疇に入るもの（以下、適宜、広義のSOMという）は、各ノードにおいて、データの系列を生成することができる。
【０５６３】
すなわち、例えば、従来のSOMによれば、ノードに割り当てられている重みベクトルのコンポーネントを、データの系列として生成（出力）することができる。また、例えば、時系列パターン記憶ネットワークによれば、例えば、図１９で説明したように、ノードが保持する時系列パターンの時系列データを生成することができる。
【０５６４】
いま、広義のSOMの各ノードが生成するデータの系列を、プロトタイプと呼ぶこととすると、ステップＳ５０３においては、注目SOMの各ノードのプロトタイプと、注目フレームのSOM入力データとの誤差を求め、その誤差が最小のノードを、勝者ノードとして求めることができる。
【０５６５】
学習部５１３は、ステップＳ５０３において、注目フレームのSOM入力データに対する注目SOMの勝者ノードを求めた後、ステップＳ５０４に進み、ステップＳ５０３で求められた勝者ノードを、いわば中心として、注目SOMの各ノード（が有するHMMが表す時系列パターン）を、注目フレームのSOM入力データを用いて更新するSOM学習を行う。
【０５６６】
すなわち、ステップＳ５０４では、学習部５１３は、図１５のステップＳ５ないしＳ７で説明したように、ステップＳ５０３で求められた勝者ノードを基準として、注目SOMを構成する各ノードの更新重みαを、式（３）にしたがって決定する。さらに、学習部５１３は、注目SOMの各ノードが有する学習データ記憶部２２（図７）に記憶された学習データを、そのノードの更新重みαにしたがって更新し、注目SOMの各ノードについて、更新後の学習データ記憶部２２に記憶された新たな学習データを用いて、時系列パターンモデル２１としてのHMMの学習を行うことにより、そのHMMを更新する。
【０５６７】
これにより、ステップＳ５０４では、勝者ノードとのパターン間距離が近いほど、注目フレームのSOM入力データの影響を強く受けるように、注目SOMの各ノードを更新するSOM学習が行われる。
【０５６８】
ここで、自己組織化学習には、ステップＳ５０３及びＳ５０４の処理の他、厳密には、後述するステップＳ５０６の処理も含まれる。
【０５６９】
その後、ステップＳ５０４からステップＳ５０５に進み、学習部５１３は、注目SOMの予測学習を行い、ステップＳ５０６に進む。
【０５７０】
すなわち、注目フレームのSOM入力データに対する注目SOMの勝者ノードをノード#Jと表すとともに、その前の時刻、つまり、注目フレームの直前のフレームのSOM入力データに対する注目SOMの勝者ノードをノード#Iと表すこととすると、学習部５１３は、ステップＳ５０５において、式（８）にしたがって、注目SOMのノード#iと#jとの結合重み（ノード#iから#jへの結合重み）wijを更新する予測学習を行う。
【０５７１】
ステップＳ５０６では、学習部５１３は、注目SOMの学習、つまり、注目SOMを対象として、ステップＳ５０３及びＳ５０４の自己組織化学習と、ステップＳ５０５の予測学習とを行った回数である学習回数に応じて、式（３）の更新重みαを求めるのに用いられる減数係数△を更新する。
【０５７２】
すなわち、上述したように、ノード（が有する時系列パターンモデル２１としてのHMM）の更新は、学習の開始時は、勝者ノードを中心とする比較的広い範囲のノード（勝者ノードとのパターン間距離dが小のノードから、ある程度大のノードまで）に亘って、注目フレームのSOM入力データの影響を受けるように行われるが、学習が進行するにつれ、勝者ノードを中心として、徐々に狭い範囲のノードについてのみ、注目フレームのSOM入力データの影響を受けるように行われるようにするため、ステップＳ５０６では、学習部５１３は、式（３）で説明したように、学習回数が大になるについて、減衰係数△が小さくなるように、減衰係数△を更新する。
【０５７３】
学習部５１３は、ステップＳ５０６において、式（３）の減衰係数△を更新した後、ステップＳ５０７に進み、注目SOMの学習回数が、あらかじめ決められた、例えば、１００００回などの所定の回数になったかどうかを判定する。
【０５７４】
ステップＳ５０７において、注目SOMの学習回数が所定の回数になっていないと判定された場合、学習部５１３は、学習回数を１だけインクリメントして、ステップＳ５０８に進む。
【０５７５】
ステップＳ５０８では、学習部５１３は、注目時系列データにセットされたウインドウを、最下位階層用のシフト量だけシフトする（時間的に進む方向にずらす）。さらに、ステップＳ５０８では、学習部５１３は、注目時系列データから、シフト後のウインドウ内の時系列データを、注目フレームのSOM入力データとして新たに抽出して、ステップＳ５０３に戻り、以下、同様の処理を繰り返す。
【０５７６】
また、ステップＳ５０７において、注目SOMの学習回数が所定の回数になったと判定された場合、学習部５１３は、ステップＳ５０８をスキップして、ステップＳ５０９に進み、学習回数を、例えば０にリセットする。
【０５７７】
さらに、ステップＳ５０９では、学習部５１３は、あらかじめ用意されている複数種類の入力時系列データの中から、まだ、学習に用いていない１種類の入力時系列データを、注目時系列データとして新たに選択するとともに、記憶部５１１に記憶された階層SOMの最下位階層の新SOMのうちの、まだ、学習をしていない新SOMを、注目SOMとして新たに選択して、ステップＳ５０２に戻り、以下、同様の処理を繰り返す。
【０５７８】
そして、あらかじめ用意されている複数種類の入力時系列データが、すべて、注目時系列データとして選択されるとともに、記憶部５１１に記憶された階層SOMの最下位階層の新SOMが、すべて、注目SOMとして選択され、記憶部５１１に記憶された階層SOMの最下位階層の新SOMのすべての学習が終了すると、学習部５１３は、処理を終了する。
【０５７９】
なお、図３７では、注目時系列データから、時間順に、ウインドウ長のフレーム単位のSOM入力データを抽出するようになっているが、階層SOMの最下位階層のSOMの学習は、そのように、時間順に、フレーム単位のSOM入力データを抽出しなくても行うことができる。
【０５８０】
すなわち、階層SOMの最下位階層のSOMの学習は、例えば、フレーム単位のSOM入力データを、あらかじめ抽出しておき、あるいは、任意の時刻をウインドウの先頭として、フレーム単位のSOM入力データを抽出し、そのフレーム単位のSOM入力データから、適宜、注目フレームのSOM入力データを選択して行うこと、つまり、いわゆるバッチ型の処理で行うことができる。
【０５８１】
但し、階層SOMの最下位階層のSOMの学習のうちの予測学習は、連続した時刻（フレーム）のSOM入力データそれぞれに対するSOMの勝者ノードが求まっていないと行うことができないため、階層SOMの最下位階層のSOMの学習を、バッチ型の処理で行う場合においては、例えば、自己組織化学習において、各時刻のSOM入力データに対して求められたSOMの勝者ノードを記憶しておき、自己組織化学習の終了後に、その自己組織化学習で記憶しておいた勝者ノードを用いて、予測学習を行うか、又は、自己組織化学習の終了後に、再度、連続した時刻のSOM入力データそれぞれに対するSOMの勝者ノードを求めて、その勝者ノードを用いて、予測学習を行う必要がある。
【０５８２】
図３８は、SOM入力データとして、単純なsin波形を用いて行った、横×縦が９×９個のノードを有する新SOMの自己組織化学習の結果を示している。
【０５８３】
すなわち、図３８左は、自己組織化学習後の新SOMの９×９個のノードが保持する時系列パターンを示している。
【０５８４】
図３８左から、各ノードが、sin波の部分領域を代表する（部分領域の波形パターン（時系列パターン）を表現する）ように、SOM学習がされていることが分かる。
【０５８５】
図３８右は、図３８左に示す自己組織化後の新SOMに対して与えた時系列データとしてのsin波（図中、実線で示す部分）と、そのsin波に対する勝者ノードから生成したプロトタイプをつなぎ合わせた時系列データ（図中、点線で示す部分）とを示している。
【０５８６】
図３８左に示す自己組織化後の新SOMに対して、図３８右に実線で示すsin波から抽出したフレーム単位の時系列データとしてのSOM入力データを与えると、新SOMにおいては、勝者ノードとなるノードが、順番に遷移していき、その勝者ノードとなったノードのプロトタイプをつなぎ合わせることにより、図３８右に点線で示すように、新SOMに与えたsin波と同様の時系列データを得ることができる。
【０５８７】
次に、図３９は、図３３の学習部５１３が行う、階層SOMを構成する新SOMのうちの、最下位階層より上位階層の上位SOMの学習の学習手順を示している。
【０５８８】
なお、図３３のロボットでは、上述したように、データ抽出部５１２が、例えば、センサ３０２が出力するセンサデータ、及びモータ駆動部３０３が出力するモータデータ等の複数種類の時系列データを、学習部５１３に供給し、学習部５１３が、データ抽出部５１２からの複数種類の時系列データ（入力時系列データ）を用いて、階層SOMの学習を行うが、ここでは、図３７の場合と同様に、時刻の同期がとれた、センサ３０２が出力するセンサデータ、及びモータ駆動部３０３が出力するモータデータ等の複数種類の入力時系列データがあらかじめ用意してあり、その複数種類の入力時系列データを用いて行う、階層SOMの学習について説明する。
【０５８９】
また、ここでは、説明を簡単にするために、最下位階層より１階層だけ上位階層のSOM（上位SOM）を、注目SOMとして注目し、その注目SOMには、最下位階層のSOMのすべてが接続していることとする。
【０５９０】
学習部５１３は、ステップＳ５２１において、あらかじめ用意されている複数種類の入力時系列データ（トレーニングデータ）を用いて、図３７で説明したように、最下位階層のSOMの自己組織化学習を行う。
【０５９１】
なお、図３７で説明した最下位階層のSOMの学習が既に終了している場合には、ステップＳ５２１の処理は、スキップすることができる。
【０５９２】
ステップＳ５２１の処理後は、ステップＳ５２２に進み、学習部５１３は、最下位階層の各SOMに対して、そのSOMの自己組織化学習に用いた入力時系列データから抽出したフレーム単位のSOM入力データを入力し、勝者ノードを求める。
【０５９３】
なお、入力時系列データからのフレーム単位のSOM入力データの抽出は、入力時系列データに対して、最下位階層用のウインドウ長のウインドウを、最下位階層用のシフト量ずつシフトしながらかけることにより行われる。そして、ステップＳ５２２では、ウインドウをシフト量ずつシフトして抽出されたSOM入力データごとに、勝者ノードが時系列に求められ、これにより、最下位階層の各SOMについて、勝者ノードを表すノード情報の時系列が得られる。
【０５９４】
ここで、勝者ノードを表すノード情報としては、例えば、その勝者ノードのSOM上の位置を表す位置データ（座標）(x,y)や、上述したノードラベルなどを採用することができる。ここでは、勝者ノードを表すノード情報として、その勝者ノードのSOM上の位置データ(x,y)を採用することとする。
【０５９５】
また、以下、適宜、SOM入力データに対して、勝者ノードを求めることを、（SOM入力データの）認識ともいう。
【０５９６】
学習部５１３は、ステップＳ５２２において、最下位階層の各SOMに対して、勝者ノードを表すノード情報の時系列を得ると、ステップＳ５２３に進み、最下位階層の各SOMのノード情報の時系列を統合し、時系列統合データを求めて、ステップＳ５２４に進む。
【０５９７】
ここで、いま、説明を簡単にするため、最下位階層のSOMとして、例えば、図３４や図３５に示したように、２つのSOM#11及び#12があるとする。また、SOM#11のノード情報の時系列を、a1,a2,a3,・・・と表すとともに、SOM#12のノード情報の時系列を、b1,b2,b3・・・と表し、同一時刻のSOM#11のノード情報aiと、SOM#12のノード情報biとをコンポーネントとするベクトルを、ci=(ai,bi)Tと表すこととする（上付のTは転置を表す）。
【０５９８】
この場合、時系列統合データは、c1,c2,c3,・・・となる。
【０５９９】
ステップＳ５２４では、学習部５１３は、上位SOMである注目SOMの自己組織化学習を、最下位階層の各SOMのノード情報の時系列を統合した時系列統合データc1,c2,c3,・・・をSOM入力データとして用いて行い、ステップＳ５２５に進む。
【０６００】
すなわち、学習部５１３は、時系列統合データc1,c2,c3,・・・に対して、注目SOMの階層用のウインドウ長のウインドウを、その階層用のシフト量ずつシフトしながらかけることにより、時系列統合データc1,c2,c3,・・・から、注目SOMの階層用のウインドウ長を１フレームのフレーム長とするフレーム単位のSOM入力データを抽出し、そのフレーム単位のSOM入力データを用いて、注目SOMの自己組織化学習を行う。
【０６０１】
なお、ステップＳ５２４の自己組織化学習に用いるフレーム単位のSOM入力データの、時系列統合データc1,c2,c3,・・・からの抽出は、ランダムな時刻を先頭にして行ってもよい。
【０６０２】
ステップＳ５２５では、学習部５１３は、注目SOMの予測学習を行い、処理を終了する。
【０６０３】
すなわち、ステップＳ５２５では、時系列統合データc1,c2,c3,・・・から抽出された各フレームのSOM入力データに対する注目SOMの勝者ノードから、その次のフレームのSOM入力データに対する注目SOMの勝者ノードへの結合重みを強めるように、式（８）にしたがって、注目SOMのノード#iと#jとの結合重みwijを更新する予測学習が行われる。
【０６０４】
なお、注目SOMの上位階層に、注目SOMが接続している上位SOMがある場合には、その上位SOMの学習は、その上位SOMに接続している１階層だけ下位階層の、注目SOMを含む下位SOMそれぞれで得られるノード情報を統合した時系列統合データをSOM入力データとして用いて行われる。より上位階層のSOMについても、同様である。
【０６０５】
5章.階層SOMの実行方法
【０６０６】
次に、図３３の認識生成部５１５が行う認識生成処理について説明する。
【０６０７】
図４０は、階層SOMを模式的に示している。
【０６０８】
なお、図４０では、説明を簡単にするため、階層SOMを構成するSOMのうちの、２つのSOM#1及び#2だけを図示してある。SOM#1は、最下位階層のSOMであり、SOM#2は、その上位階層のSOMである。そして、SOM#1と#2とは接続している。
【０６０９】
また、図４０の階層SOMを構成するSOM#iは、入力バッファ#iと予測バッファ#iを有している。なお、入力バッファ#i及び予測バッファ#iの実体は、記憶部５１１（図３３）の一部の記憶領域である。
【０６１０】
SOM#iの入力バッファ#iには、そのSOM#iへの入力（の一部）となるデータが供給され、SOM#iの入力バッファ#iは、そこに供給されるデータを記憶する。SOM#iには、入力バッファ#iに記憶されたデータから、フレーム単位のSOM入力データが抽出されて入力される。
【０６１１】
図４０では、最下位階層のSOMであるSOM#1の入力バッファ#1には、センサデータやモータデータなどの入力時系列データが供給されて記憶される。入力バッファ#1に記憶された入力時系列データは、上述したようにウインドウをかけることにより、フレーム単位のSOM入力データとされ、SOM#1に対する入力として、SOM#1に供給される。
【０６１２】
SOM#1では、入力バッファ#1からのフレーム単位のSOM入力データが認識され、つまり、SOM入力データに対する勝者ノードが求められ、その勝者ノードを表すノード情報としての、勝者ノードの位置を表す位置データ(x,y)が、SOM#1と接続されている上位のSOM、すなわち、図４０では、SOM#2の入力バッファ#2に供給される。
【０６１３】
SOM#2の入力バッファ#2には、SOM#1からのノード情報の他、SOM#2に接続している下位階層の他のSOMからのノード情報も供給される。
【０６１４】
入力バッファ#2では、SOM#1からのノード情報と、SOM#2に接続している下位階層の他のSOMからのノード情報とが統合されて記憶される。
【０６１５】
SOM#1、及びSOM#2に接続している下位階層の他のSOMから、入力バッファ#2に対しては、フレーム単位のSOM入力データの認識（勝者ノードの決定）が行われるたびに、ノード情報が供給されるから、その結果として、入力バッファ#2には、SOM#1からのノード情報の時系列と、SOM#2に接続している下位階層の他のSOMからのノード情報の時系列とが統合された時系列統合データが記憶されることになる。
【０６１６】
そして、入力バッファ#2に記憶された時系列統合データは、上述したようにウインドウをかけることにより、フレーム単位のSOM入力データとされ、SOM#2に対する入力として、SOM#2に供給される。
【０６１７】
SOM#2では、SOM#1と同様に、入力バッファ#2からのフレーム単位のSOM入力データが認識され、つまり、SOM入力データに対する勝者ノードが求められ、以下、同様の処理が行われる。
【０６１８】
予測バッファ#iには、ある時刻（フレーム）の入力SOMデータの次の時刻において勝者ノードとなると予測されるSOM#iのノードである予測ノードを予測する予測処理によって求められる予測ノードから得られる情報が、SOM出力データとして供給され、予測バッファ#iは、そこに供給される情報を記憶する。
【０６１９】
ここで、階層SOMの最下位階層以外の上位階層のSOM（上位SOM）、すなわち、例えば、図４０のSOM#2については、自己組織化学習が、SOM#2に接続しているSOM#1、その他の下位階層のSOM（下位SOM）それぞれの勝者ノードを表すノード情報の時系列を統合した時系列統合データを用いて行われているから、SOM#2のノードでは、プロトタイプとして、自己組織化学習に用いられた時系列統合データと同様の時系列データ（自己組織化学習でノードが獲得した時系列パターンの時系列データ）、つまり、時系列統合データを予測した時系列の予測値を生成することができる。
【０６２０】
したがって、上位SOM#2の予測バッファ#2には、その上位SOM#2の予測ノードから生成される時系列の予測値としての時系列統合データが記憶される。そして、その時系列統合データには、下位SOM#1の勝者ノードを表すノード情報の時系列、つまり、SOM#1の勝者ノードを時系列に予測した情報が含まれる。
【０６２１】
いま、上位SOM#2の予測バッファ#2に記憶される時系列統合データに含まれる、下位SOM#1の勝者ノードを表すノード情報の時系列の、個々のノード情報を、勝者ノードの予測情報ということとすると、下位SOM#1では、予測処理において、上位SOM#2の予測バッファ#2に記憶される時系列統合データから、下位SOM#1の次の時刻の勝者ノードの予測情報を取り出し、その予測情報、つまり、上位SOM#2で予測された下位SOM#1の勝者ノードの情報と、下位SOM#1での現在時刻の勝者ノードの結合重みとを用いて、予測ノード、つまり、下位SOM#1のノードのうちの、次の時刻において勝者ノードとなると予測される予測ノードが求められる。
【０６２２】
下位SOM#1でも、上位SOM#2と同様に、予測処理によって求められる予測ノードから得られる情報が、予測バッファ#1に供給されて記憶される。
【０６２３】
最下位階層のSOMであるSOM#1については、自己組織化学習が、入力センサデータやモータデータなどの入力時系列データを用いて行われているから、SOM#1のノードでは、プロトタイプとして、自己組織化学習に用いられた入力時系列データと同様の時系列データ（自己組織化学習でノードが獲得した時系列パターンの時系列データ）、つまり、入力時系列データを予測した時系列の予測値を生成することができる。
【０６２４】
したがって、SOM#1の予測バッファ#1には、そのSOM#1の予測ノードから生成される時系列の予測値としての入力時系列データ、すなわち、図３３のデータ抽出部５１４から認識生成部５１５に供給される入力時系列データを予測した予測時系列データが記憶される。
【０６２５】
SOM#1の予測バッファ#1、その他の最下位階層のSOMの予想バッファに記憶された予測時系列データは、階層SOMの出力として、適宜、出力される。
【０６２６】
次に、図４１は、図３３の認識生成部５１５が行う、データ抽出部５１２から供給される複数種類の時系列データそれぞれについて、時系列データを認識し、未来の時系列データを生成（予測）する認識生成処理の処理手順（アルゴリズム１）を示している。
【０６２７】
ステップＳ５４１において、認識生成部５１５は、データ抽出部５１２から供給される複数種類の入力時系列データそれぞれの時刻tのサンプル値S(t)を、記憶部５１１に記憶された階層SOMの最下位階層のSOMのうちの、対応するSOMの入力バッファに供給して記憶させる。
【０６２８】
すなわち、入力時系列データの種類のうちの、ある１種類を、注目種類として注目した場合、認識生成部５１５は、注目種類の入力時系列データのサンプル値S(t)を、その注目種類の入力時系列データを用いて学習を行った最下位階層のSOMの入力バッファに供給して記憶させる。
【０６２９】
その後、ステップＳ５４２に進み、認識生成部５１５は、階層SOMにおいて、まだ、注目SOMとしていないSOMの中で、下位階層から上位階層に向かう順番で最初に見つかるSOMを、注目SOMとして選択して、ステップＳ５４３に進む。
【０６３０】
ステップＳ５４３では、認識生成部５１５は、時刻tを、シフト量shiftで除算した剰余Mod(t,shift)が0であるかどうか、すなわち、注目SOMの入力バッファに、シフト量（注目SOMの階層用のシフト量）shift分の新たなSOM入力データが記憶されたかどうかを判定する。
【０６３１】
ステップＳ５４３において、注目SOMの入力バッファに、シフト量shift分の新たなSOM入力データが、まだ記憶されていないと判定された場合、ステップＳ５４２に戻り、新たな注目SOMが選択され、以下、同様の処理が繰り返される。
【０６３２】
また、ステップＳ５４３において、注目SOMの入力バッファに、シフト量shift分の新たなSOM入力データが記憶されたと判定された場合、ステップＳ５４４に進み、認識生成部５１５は、注目SOMの入力バッファに記憶されているSOM入力データにウインドウ（注目SOMの階層用のウインドウ長のウインドウ）をかけることにより、ウインドウ長分の最新のSOM入力データ（以下、適宜、現在時刻のSOM入力データともいう）を抽出する。
【０６３３】
さらに、ステップＳ５４４では、認識生成部５１５は、現在時刻のSOM入力データに対する注目SOMの勝者ノードを、例えば、図１７のステップＳ２２及びＳ２３で説明したようにして求め（現在時刻のSOM入力データの認識を行い）、ステップＳ５４５に進む。
【０６３４】
ステップＳ５４５では、認識生成部５１５は、現在時刻のSOM入力データに対する注目SOMの勝者ノードを表すノード情報として、例えば、その勝者ノードの位置を表す位置データ(x,y)を、注目SOMに接続している上位階層のSOM（上位SOM）の入力バッファに供給して記憶させ、ステップＳ５４６に進む。
【０６３５】
ステップＳ５４６では、認識生成部５１５は、注目SOMの入力バッファから、古い順に、シフト量（注目SOMの階層用のシフト量）shift分だけのSOM入力データを破棄（削除）して、ステップＳ５４７に進む。
【０６３６】
ステップＳ５４７では、認識生成部５１５は、階層SOMのすべてのSOMを対象として、ステップＳ５４３ないしＳ５４６の処理を行ったどうかを判定する。
【０６３７】
ステップＳ５４７において、階層SOMのすべてのSOMを、まだ、対象としていないと判定された場合、すなわち、階層SOMのSOMの中で、まだ、注目SOMに選択していないSOMがある場合、ステップＳ５４２に戻り、認識生成部５１５は、まだ、注目SOMとしていないSOMの中で、下位階層から上位階層に向かう順番で最初に見つかるSOMを、注目SOMとして新たに選択して、以下、同様の処理を繰り返す。
【０６３８】
また、ステップＳ５４７において、階層SOMのすべてのSOMを対象としたと判定された場合、すなわち、階層SOMのSOMの中で、注目SOMに選択していないSOMがない場合、認識生成部５１５は、階層SOMのすべてのSOMについて、注目SOMに選択したことをリセットして、ステップＳ５４８に進み、階層SOMにおいて、まだ、注目SOMとしていないSOMの中で、上位階層から下位階層に向かう順番で最初に見つかるSOMを、注目SOMとして選択して、ステップＳ５４９に進む。
【０６３９】
ステップＳ５４９では、認識生成部５１５は、注目SOMに接続している上位階層のSOM（上位SOM）があるかどうかを判定する。
【０６４０】
ステップＳ５４９において、注目SOMに接続している上位SOMがないと判定された場合、すなわち、注目SOMが、例えば、最上位階層のSOMである場合、ステップＳ５５０ないしＳ５５２をスキップして、ステップＳ５５３に進む。
【０６４１】
また、ステップＳ５４９において、注目SOMに接続している上位SOMがあると判定された場合、ステップＳ５５０に進み、認識生成部５１５は、注目SOMに接続している上位SOMの予測バッファから、次の時刻の予測情報、すなわち、ここでは、ノード情報としての位置データ(x,y)を読み出して、ステップＳ５５１に進む。
【０６４２】
ステップＳ５５１では、認識生成部５１５は、現在時刻のSOM入力データに対する注目SOMの勝者ノードを求め、その勝者ノードに基づき、予測ノードの候補となる候補ノードを、B個だけ求める。
【０６４３】
すなわち、認識生成部５１５は、現在時刻のSOM入力データに対する注目SOMの勝者ノードを、ノード#Iとすると、そのノード#Iとの、式（８）の結合重みwIjが強い上位B個のノード#jを、候補ノードとして求める。
【０６４４】
そして、ステップＳ５５２に進み、認識生成部５１５は、注目SOMのB個の候補ノードのうちの、注目SOMに接続している上位SOMの予測バッファから読み出した次の時刻の予測情報としての位置データ(x,y)が表す位置に最も近い位置にある候補ノードを、注目SOMの次の時刻の予測ノードとして求め、ステップＳ５５３に進む。
【０６４５】
ステップＳ５５３では、認識生成部５１５は、注目SOMに接続している上位SOMがないかどうかを判定する。
【０６４６】
ステップＳ５５３において、注目SOMに接続している上位SOMがあると判定された場合、ステップＳ５５４をスキップして、ステップＳ５５５に進む。
【０６４７】
また、ステップＳ５５３において、注目SOMに接続している上位SOMがないと判定された場合、すなわち、注目SOMが、例えば、最上位階層のSOMである場合、ステップＳ５５４に進み、認識生成部５１５は、現在時刻のSOM入力データに対する注目SOMの勝者ノードに基づき、予測ノードを求めて、ステップＳ５５５に進む。
【０６４８】
すなわち、認識生成部５１５は、現在時刻のSOM入力データに対する注目SOMの勝者ノードを、ノード#Iとすると、そのノード#Iとの、式（８）の結合重みwIjが最も強いノード#jを、次の時刻の予測ノードとして求める。
【０６４９】
ステップＳ５５５では、認識生成部５１５は、注目SOMに接続している下位階層のSOM（下位SOM）があるかどうかをを判定する。
【０６５０】
ステップＳ５５５において、注目SOMに接続している下位SOMがないと判定された場合、すなわち、注目SOMが、最下位階層のSOMである場合、ステップＳ５５６ないしＳ５５７をスキップして、ステップＳ５５８に進む。
【０６５１】
また、ステップＳ５５５において、注目SOMに接続している下位SOMがあると判定された場合、ステップＳ５５６に進み、認識生成部５１５は、注目SOMの次の時刻の予測ノード、すなわち、直前に行われたステップＳ５５２、又はＳ５５４で得られた次の時刻の予測ノードから、プロトタイプとしてのウインドウ長の時系列データを生成する。
【０６５２】
注目SOMに接続している下位SOMがある場合、注目SOMの次の時刻の予測ノードのプロトタイプは、その注目SOMに接続している１以上の下位SOMの勝者ノードの予測情報を含む時系列統合データであり、認識生成部５１５は、その時系列統合データに、複数の下位SOMの勝者ノードの予測情報のシーケンスが含まれる場合には、その時系列統合データを、個々の下位SOMごとの予測情報のシーケンスに分けて、ステップＳ５５６からステップＳ５５７に進む。
【０６５３】
ステップＳ５５７では、認識生成部５１５は、ステップＳ５５６で得た個々の下位SOMごとの予測情報のシーケンスを、注目SOMの予測バッファに供給して記憶させ、ステップＳ５５８に進む。
【０６５４】
ここで、下位SOMごとの予測情報のシーケンスは、注目SOMに入力されるフレーム単位のSOM入力データと同一の時間長、つまり、注目SOMの入力バッファに記憶された時系列データからフレーム単位のSOM入力データを抽出するときに、その時系列データにかけるウインドウのウインドウ長と同一の時間長を有するが、注目SOMの予測バッファには、下位SOMごとの予測情報のシーケンスのうちの、シフト量shift（注目SOMに入力されるフレーム単位のSOM入力データを抽出するときに用いられるウインドウのシフト量shift）分の最新のデータだけが記憶される。
【０６５５】
したがって、この場合、下位SOMごとの予測情報のシーケンスのうちの、シフト量shift分の最新のデータ以外のデータは破棄されることになる。但し、下位SOMごとの予測情報のシーケンスのうちの、シフト量shift分の最新のデータ以外のデータは、破棄するのではなく、注目SOMの予測バッファに上書きする形で記憶させるようにしても良い。
【０６５６】
ステップＳ５５８では、認識生成部５１５は、階層SOMのすべてのSOMを対象として、ステップＳ５４９ないしＳ５５７の処理を行ったどうかを判定する。
【０６５７】
ステップＳ５５８において、階層SOMのすべてのSOMを、まだ、対象としていないと判定された場合、すなわち、階層SOMのSOMの中で、まだ、注目SOMに選択していないSOMがある場合、ステップＳ５４８に戻り、認識生成部５１５は、まだ、注目SOMとしていないSOMの中で、上位階層から下位階層に向かう順番で最初に見つかるSOMを、注目SOMとして新たに選択して、以下、同様の処理を繰り返す。
【０６５８】
また、ステップＳ５５８において、階層SOMのすべてのSOMを対象としたと判定された場合、すなわち、階層SOMのSOMの中で、注目SOMに選択していないSOMがない場合、ステップＳ５５９に進み、認識生成部５１５は、最下位階層のSOM（最下位SOM）それぞれについて、次の時刻の予測ノードとなっているノードから、そのプロトタイプとしての時系列データを生成し、そのうちの、シフト量shift（最下位SOMに入力されるフレーム単位のSOM入力データを抽出するときに用いられるウインドウのシフト量shift）分の最新のデータを、予測時系列データとして出力して、ステップＳ５６０に進む。
【０６５９】
ステップＳ５６０では、認識生成部５１５は、データ抽出部５１２から、入力時系列データの新たなサンプル値が供給されたかどうかを判定する。ステップＳ５６０において、データ抽出部５１２から認識生成部５１５に、入力時系列データの新たなサンプル値が供給されたと判定された場合、ステップＳ５４１に戻り、認識生成部５１５は、データ抽出部５１２から供給された入力時系列データの新たなサンプル値を、最下位階層のSOMの入力バッファに供給して記憶させ、以下、同様の処理を繰り返す。
【０６６０】
また、ステップＳ５６０において、データ抽出部５１２から認識生成部５１５に、入力時系列データの新たなサンプル値が供給されていないと判定された場合、認識生成部５１５は、処理を終了する。
【０６６１】
次に、図４２は、図３４（図３５）に示した階層SOMを用いて行った認識生成処理の実験の結果を示している。
【０６６２】
ここで、例えば、図３４に示した、最下位階層の２つのSOM#11及び#12と、その２つのSOM#11及び#12それぞれと接続している上位階層のSOM#21とから構成される階層SOMは、いわば入出力が対称な構成をしているため、最下位階層の２つのSOM#11及び#12のうちのいずれを階層SOMの入力又は出力とするかは（図３３のロボットの入力データ又は出力データが与えられるSOMとするかは）、任意に決定することができる。
【０６６３】
実験では、SOM#11を、階層SOMの入力（ロボットの入力データが与えられるSOM）に、SOM#12を、階層SOMの出力（ロボットの出力データが与えられるSOM）に、それぞれ割り当て、図４２左に示すように、学習後の階層SOMのSOM#11に対して、学習に用いた入力時系列データを入力するとともに、その入力時系列データに対応して、SOM#12が出力（生成）する予測時系列データを、そのまま、次の時刻の入力時系列データとして、SOM#12に対して入力することにより、認識生成処理を行った。
【０６６４】
以上のような認識生成処理において、階層SOMのSOM#11,#12、及びSOM#21それぞれで観測されるデータを、横軸を時間として、図４２右に示す。
【０６６５】
図４２右において、グラフC1は、SOM#11を入出力するデータを、グラフC2は、SOM#12を入出力するデータを、グラフC3は、SOM#11と#21との間を入出力するデータを、グラフC4は、SOM#12と#21との間を入出力するデータを、それぞれ表している。
【０６６６】
また、グラフC1ないしC4において、２点破線は、階層SOMの学習時のデータを示している。さらに、実線は、認識生成処理において認識の対象としたSOM入力データを示しており、点線は、認識生成処理において、予測ノードから生成された時系列データ（プロトタイプ）を示している。
【０６６７】
なお、グラフC3は、SOM#11のノードを表すノード情報としての位置データ(x,y)のグラフであり、図４２右において、グラフC3として図示してある２つのグラフのうちの一方は、SOM#11上の位置を表す位置データ(x,y)のうちのx座標を表し、他方は、y座標を表す。同様に、図４２右において、グラフC4として図示してある２つのグラフのうちの一方は、SOM#12上の位置を表す位置データ(x,y)のうちのx座標を表し、他方は、y座標を表す。
【０６６８】
グラフC1では、認識生成処理において、SOM#11に対して、学習に用いた入力時系列データを入力しているため、階層SOMの学習時のデータ（２点破線）と、認識の対象としたSOM入力データ（実線）とが一致している。
【０６６９】
グラフC2では、認識生成処理において、SOM#12が出力（生成）する予測時系列データを、そのまま、次の時刻の入力時系列データとして、SOM#12に対して入力しているため、予測ノードから生成された時系列データ（点線）と、認識の対象としたSOM入力データ（実線）とが一致している。
【０６７０】
図４２右では、グラフC1において、SOM#11の予測ノードから生成された時系列データ（点線）、つまり、SOM#11へのSOM入力データの予測値が、階層SOMの学習時のデータ（２点破線）、及び認識の対象としたSOM入力データ（実線）に対して、若干の誤差を伴いながら追従していることが分かる。
【０６７１】
また、グラフC2において、SOM#12の予測ノードから生成された時系列データ（点線）は、最初は、不安定になっているが、認識生成処理が進むと、階層SOMの学習時のデータ（２点破線）に一致するようになっていくことが分かる。
【０６７２】
さらに、図４２右では、グラフC1の左から1/3あたりで、認識の対象としたSOM入力データ（実線）が、それまでとは異なるパターンのデータに切り替わっており、その切り替わりの直後は、グラフC2において、SOM#12の予測ノードから生成された時系列データ（点線）は、不安定になっている（混乱している）が、その後は、徐々に、階層SOMの学習時のデータ（２点破線）に一致するようになっていくことが分かる。
【０６７３】
6章.ロボットを使った実験と階層の構成
【０６７４】
階層SOMをロボットの物体ハンドリング学習に応用する例を説明する。
【０６７５】
ロボットには視覚センサ（ステレオ・カメラ）がついており、そこから色領域抽出を行い、重心位置を求めることで、単色の物体の３次元位置を得ることができる。またロボットの腕関節は左右それぞれ４自由度のアクチュエータ（モータ）を持ち、角度指示値を与えることでサーボ制御を行うことができる。
【０６７６】
ここでは実際にロボットの眼前に物体をおいて、人間がロボットの腕を取って、その物体に対する腕の動きを教示してやる。この時の物体の位置や動きと腕の軌道を入力データとして、実際に物体が提示された時に教えた動作を再現させる。
【０６７７】
入力データは、視覚センサから入るものと、実行したい腕の軌道（出力値）を階層SOMに与える。それぞれを別々の新SOMにいれて、階層学習（階層SOMを構成する各新SOMの自己組織的な学習と予測学習）を行い、画像入力と腕の軌道から次の腕の軌道を予測させることで出力を生成する（認識生成処理を行う）。
【０６７８】
また、図４３の下図のように、右腕と左腕を別々に自己組織化させるというようにすることにより複雑なネットワークを構成して学習することも同様のアルゴリズムで行うことができる。
【０６７９】
ここで、図４３は、腕を動かして物体を操作するロボットに適用する階層SOMの例を示している。
【０６８０】
図４３上は、図３４や図３５に示した階層SOMと同様に、最下位階層の２つのSOM#101及び#102と、その２つのSOM#101及び#102それぞれと接続している上位階層のSOM#111との、合計で３つのSOM#101,#102、及び#111から構成される階層SOM#100を示している。
【０６８１】
上述の物体の３次元位置の時系列をセンサデータとして、SOM#101に入力するとともに、左右の腕の角度指示値の時系列をモータデータとして、SOM#102に入力して、階層SOM#100の学習を行うことにより、階層SOM#100によれば、SOM#101に、現在の物体の位置を表す３次元位置を入力し、さらに、必要に応じて、SOM#102に、左右の腕の現在の角度指示値を入力すると、人間が教示した左右の腕の動きをするための次の角度指示値を、SOM#102から出力する認識生成処理を行うことができる。
【０６８２】
図４３下は、６つのSOM#201,#202,#203,#211,#212、及び#221から構成される階層SOM#200を示している。
【０６８３】
すなわち、階層SOM#200は、最下位階層のSOMとして、３つのSOM#201,#202、及び#203を、その１階層だけ上位階層のSOMとして、２つのSOM#211及び#212を、最上位階層のSOMとして、１つのSOM#221を有している。
【０６８４】
そして、最下位階層のSOM#201は、上位階層のSOM#211に接続し、最下位階層のSOM#202及び#203は、上位階層のSOM#212に接続している。さらに、上位階層のSOM#211及びSOM#212は、最上位階層のSOM#221に接続している。
【０６８５】
上述の物体の３次元位置の時系列をセンサデータとして、SOM#201に入力し、左の腕の角度指示値の時系列を第１のモータデータとして、SOM#202に入力するとともに、右の腕の角度指示値の時系列を第２のモータデータとして、SOM#203に入力して、階層SOM#200の学習を行うことにより、階層SOM#200によれば、SOM#201に、現在の物体の位置を表す３次元位置が入力され、さらに、必要に応じて、SOM#202に、左の腕の現在の角度指示値が入力されるとともに、SOM#203に、右の腕の現在の角度指示値が入力されると、人間が教示した左の腕の動きをするための次の角度指示値を、SOM#202から出力するとともに、教示された右の腕の動きをするための次の角度指示値を、SOM#203から出力する認識生成処理を行うことができる。
【０６８６】
7章.確率論的定式化
【０６８７】
上記までで階層SOMの基本的学習（階層SOMを構成する各新SOMの自己組織的な学習と予測学習）と実行（認識生成処理）のアルゴリズムを示した。これからの章で確率論的定式化を行い、認識生成処理のアルゴリズムの修正バージョンを示していく。
【０６８８】
各新SOMでの予測を確率的因果モデルと照らし合わせると図４４のような関係が成り立つと考えられる。
【０６８９】
すなわち、図４４は、新SOMと、因果モデルとの関係を示している。
【０６９０】
図４４右の因果モデルは、ある時刻tのある状態Xi(t)において、ある確率で観測値I(t)が観測（生成）されるという生成モデル（generative model）と現在の状態Xi(t)によって次の状態Xi'(t)が決まるという確率的マルコフ過程に基づいている。この因果モデルによる状態確率P(Xi(t))は、式（９）から推定することができる（Connect Hebb）。式（９）のP(I(t)|Xi(t))は、観測値Ｉ(t)が観測される確率を表し、P(Xi(t)|Xj(t-1))は、遷移確率を表している。これを、観測値Ｉ(t)が観測される最初の時刻t=1から順番に伝搬させて行くことで現在の状態確率P(Xi(t))=P(Xi(t)|I(1),I(2),・・・,I(t))を求めることができる。
【０６９１】
【数９】
2007299365.tif 000011
・・・（９）
【０６９２】
時系列データが入力される各時刻の新SOMを表す図４４左の時系列SOMモデルでは、観測値としてのSOM入力データを用いて自己組織化学習を行うことにより求められたＮ個の（離散）ノードが存在する。Ｎ個のノードのどれかを取る確率を定義してやることで、因果モデルの状態確率と対応させることができる。またそれぞれのノードから次のノードを予測することは、現在のノードから次のノードは確率的マルコフ過程で決まると捉えることができる。
【０６９３】
ここで、式（９）において、mit,t+1は、時刻tの状態Xi(t)から、次の時刻t+1の状態Xi(t+1)に伝搬するメッセージであり、現在（時刻t）の状態が状態Xi(t)である状態確率P(Xi(t))、すなわち、新SOMでは、時刻tにおいて、ノード#iが勝者ノードである確率、つまり、時刻tまでに、観測値I(1),I(2),・・・,I(t)が入力され、その結果として、ノード#iが勝者ノードとなっている確率P(Xi(t)|I(1),I(2),・・・,I(t))を表す。
【０６９４】
また、式（９）において、P(I(t)|Xi(t))は、時刻tにおいて、状態Xi(t)で、観測値I(t)が観測される観測確率（観測尤度）、すなわち、新SOMでは、観測値I(t)としてのSOM入力データに対して、ノード#iが勝者ノードとなる確率を表す。
【０６９５】
さらに、式（９）において、P(Xi(t)|Xj(t-1))は、時刻t-1において、状態Xj(t-1)にいて、時刻tにおいて、状態Xi(t)に遷移する遷移確率、すなわち、新SOMでは、ノード#iが勝者ノードになった後に、ノード#jが勝者ノードになる確率を表す。
【０６９６】
したがって、式（９）によれば、時刻tにおいてノード#iが勝者ノードである確率P(Xi(t))=mit,t+1は、時刻t-1においてノード#jが勝者ノードである確率P(Xj(t-1))=mjt-1,tと、時刻t-1においてノード#jが勝者ノードであったときに、時刻tにおいてノード#iが勝者ノードになる確率P(Xi(t)|Xj(t-1))との乗算値P(Xi(t)|Xj(t-1))mjt-1,tの、新SOMを構成するノード#jすべてについての総和ΣP(Xi(t)|Xj(t-1))mjt-1,tを求め、その総和ΣP(Xi(t)|Xj(t-1))mjt-1,tと、観測値I(t)としてのSOM入力データに対してノード#iが勝者ノードとなる確率P(I(t)|Xi(t))とを乗算することにより求めることができる。
【０６９７】
なお、下付の添え字がついている変数を、下付の添え字なしで記載した場合、その下付の添え字をなしにした変数は、全状態（新SOMのすべてのノード）に関する情報を表す。すなわち、全状態（新SOMのすべてのノード）の数がN個であるとすると、下付の添え字をなしにした変数は、N個の状態（新SOMのN個のノード）すべてに関する情報を表す。
【０６９８】
具体的には、例えば、メッセージmit,t+1、又は状態確率P(Xi(t)|I(1),I(2),・・・,I(t))=P(Xi(t))については、状態（ノード）を表す下付の添え字iをなしにしたメッセージmt,t+1、又は状態確率P(X(t)|I(1),I(2),・・・,I(t))=P(X(t))は、式（１０）に示すように、全状態（新SOMのすべてのノード）それぞれの状態確率をコンポーネントとするベクトル（N行１列の行列）を表す。
【０６９９】
【数１０】
2007299365.tif 000012
・・・（１０）
【０７００】
また、例えば、遷移確率P(Xi(t)|Xj(t-1))については、状態（ノード）を表す下付の添え字i及びjをなしにした遷移確率P(X(t)|X(t-1))は、式（１１）に示すように、全状態（新SOMのすべてのノード）それぞれからの遷移の遷移確率をコンポーネントとするN行N列の行列を表す。
【０７０１】
【数１１】
2007299365.tif 000013
・・・（１１）
【０７０２】
さらに、例えば、観測尤度P(I(t)|Xi(t))については、状態（ノード）を表す下付の添え字iをなしにした観測尤度P(I(t)|X(t))は、式（１２）に示すように、全状態それぞれにおいて、観測値I(t)が観測される観測尤度（新SOMのすべてのノードのそれぞれが観測値I(t)に対して勝者ノードとなる確率）をコンポーネントとするベクトル（N行１列の行列）を表す。
【０７０３】
【数１２】
2007299365.tif 000014
・・・（１２）
【０７０４】
ここで、式（９）を下付の添え字をなしにした変数によって書き直すと、式（１３）になる。
【０７０５】
【数１３】
2007299365.tif 000015
・・・（１３）
【０７０６】
なお、行列（ベクトルを含む）AとBとの演算において、ABは、行列AとBとの積を表し、A*Bは、行列Aのコンポーネントと、行列Bの対応するコンポーネントとの積（をコンポーネントとする行列）を表す。
【０７０７】
次に、図４５は、最下位階層のSOM#1と、その１階層だけ上位階層のSOM#2とが接続された２つの新SOMからなる階層SOM（図４５左）と、２階層の因果モデル（階層因果モデル）（図４５右）との関係を示している。
【０７０８】
図４５の階層因果モデルは、上位階層の状態Y(t)が下位階層の状態X(t)を決定する生成モデルで記述されている。階層SOMは、上位階層のSOM#2の勝者ノードに対応する下位階層（最下位階層）のSOM#1のノードが勝者ノードとなるモデルとして捉えることができ、これにより、階層SOMには、階層因果モデルを適用することができる。
【０７０９】
ここで、図４５において、メッセージmca→bは、c階層において、時刻aの状態から時刻bの状態に伝搬するメッセージを表し、メッセージmb→caは、時刻aにおいて、b階層の状態からc階層の状態に伝搬するメッセージを表す。
【０７１０】
図４６は、階層因果モデルの状態推定を行う方法を示している。
【０７１１】
階層因果モデルの状態推定は、複雑で、図４６に示すLoopy BPという手法に基づいて、式（１４）を演算することにより行われる。なお、式（１４）の演算では、２つの階層の状態X(t)及びY(t)の組み合わせからなる確率P(Xk(t)|Yi(t),Xj(t-1))や、P(Xi(t)|Yj(t),Xk(t-1))を求めなくてはならず、階層因果モデルが多くの状態を持つ場合、つまり、階層SOMを構成するSOMが多くのノードを有する場合には、演算量が大になる。
【０７１２】
【数１４】
2007299365.tif 000016
・・・（１４）
【０７１３】
ここで、式（１４）において、m1→2,itは、時刻tにおいて、第１階層（最下位階層）から第２階層（第１階層の１階層だけ上の階層）の状態Yi(t)に伝搬するメッセージを表す。
【０７１４】
また、P(Xk(t)|Yi(t),Xj(t-1))は、第２階層において、時刻tに、状態Yi(t)にいるときに、第１階層において、時刻t-1に、状態Xj(t-1)にいて、時刻tに、状態Xk(t)に遷移する遷移確率を表す。
【０７１５】
さらに、m1,jt-1→tは、第１階層の時刻t-1の状態Xj(t-1)から、時刻tの状態Xj(t)に伝搬するメッセージを表す。
【０７１６】
また、P(I(t)|Xk(t))は、時刻tの状態Xk(t)において、観測値I(t)が観測される観測尤度を表す。
【０７１７】
さらに、m2→1,itは、時刻tにおいて、第２階層の状態Yi(t)から第１階層に伝搬するメッセージを表す。
【０７１８】
また、P(Yi(t)|Yj(t-1))は、第２階層において、時刻t-1に、状態Yj(t-1)にいて、時刻tに、状態Yi(t)に遷移する遷移確率を表す。
【０７１９】
さらに、m2,jt-1→tは、第２階層の時刻t-1の状態Yj(t-1)から、時刻tの状態Yj(t)に伝搬するメッセージを表す。
【０７２０】
また、m1,it→t+1は、第１階層の時刻tの状態Xi(t)から、時刻t+1の状態Xi(t+1)に伝搬するメッセージを表す。
【０７２１】
さらに、P(I(t)|Xi(t))は、時刻tの状態Xi(t)において、観測値I(t)が観測される観測尤度を表す。
【０７２２】
また、P(Xi(t)|Yj(t),Xk(t-1))は、第２階層において、時刻tに、状態Yj(t)にいるときに、第１階層において、時刻t-1に、状態Xk(t-1)にいて、時刻tに、状態Xi(t)に遷移する遷移確率を表す。
【０７２３】
さらに、m2→1,jtは、時刻tにおいて、第２階層から第１階層の状態Xj(t)に伝搬するメッセージを表す。
【０７２４】
また、m1,kt-1→tは、第１階層の時刻t-1の状態Xk(t-1)から、時刻tの状態Xk(t)に伝搬するメッセージを表す。
【０７２５】
さらに、m2,it→t+1は、第２階層の時刻tの状態Yi(t)から、時刻t+1の状態Yi(t+1)に伝搬するメッセージを表す。
【０７２６】
ここで、図４１で説明した階層SOMの実行手法（認識生成処理）を確率伝搬の形で書き換えたものを、図４７に示す。図４７では、下位から上位の認識を上向きの矢印、各SOMでの次時刻の予測を横向きの矢印、上位レイヤから下位の推定（予測）を下向きの矢印で表しており、図４１の認識生成処理でもこの順番で計算を行っている。
【０７２７】
すなわち、図４７は、図４１の認識生成処理の手順に対応する確率伝搬を示している。
【０７２８】
図４７では、最下位階層（第１階層）の状態X(t)、最下位階層より１階層だけ上位階層（第２階層）の状態Y(t)、及び最下位階層より２階層だけ上位階層（第３階層）の状態Z(t)の、３階層の状態を有する階層因果モデルの確率伝搬を示しており、この階層因果モデルは、３階層の新SOMから構成される階層SOMに対応する。
【０７２９】
第１階層の状態X(t)は、階層SOMの第１階層のSOMのノードに対応し、第２階層の状態Y(t)は、階層SOMの第２階層のSOMのノードに対応する。第３階層（最上位階層）の状態Z(t)は、階層SOMの第３階層のSOMのノードに対応する。
【０７３０】
そして、図４７において、P(I(t)|X(t))は、時刻tに、状態X(t)において、入力時系列データである観測値I(t)が観測される観測尤度、すなわち、観測値I(t)に対して、第１階層のSOMのノードX(t)が勝者ノードとなる確率（観測尤度）を表す。
【０７３１】
また、P(X(t)|Y(t))は、時刻tに、状態Y(t)において、観測値としてのノードX(t)が観測される観測尤度、すなわち、第１階層のSOMのノードX(t)を表すノード情報としての位置データに対して、第２階層のSOMのノードY(t)が勝者ノードとなる確率（観測尤度）を表す。
【０７３２】
さらに、P(Y(t)|Z(t))は、時刻tに、状態Z(t)において、観測値としてのノードY(t)が観測される観測尤度、すなわち、第２階層のSOMのノードY(t)を表すノード情報としての位置データに対して、第３階層のSOMのノードZ(t)が勝者ノードとなる確率（観測尤度）を表す。
【０７３３】
さらに、P(Z(t+1)|Z(t))は、時刻tから時刻t+1に、状態Z(t)から状態Z(t+1)に遷移する遷移確率、すなわち、第３階層のSOMにおいて、時刻tに、ノードZ(t)が勝者ノードとなったときに、次の時刻t+1に、ノードZ(t+1)が勝者ノードとなる確率（遷移確率）を表す。
【０７３４】
また、P(Y(t+1)|Y(t))は、時刻tから時刻t+1に、状態Y(t)から状態Y(t+1)に遷移する遷移確率、すなわち、第２階層のSOMにおいて、時刻tに、ノードY(t)が勝者ノードとなったときに、次の時刻t+1に、ノードY(t+1)が勝者ノードとなる確率（遷移確率）を表す。
【０７３５】
さらに、P(X(t+1)|X(t))は、時刻tから時刻t+1に、状態X(t)から状態X(t+1)に遷移する遷移確率、すなわち、第１階層のSOMにおいて、時刻tに、ノードX(t)が勝者ノードとなったときに、次の時刻t+1に、ノードX(t+1)が勝者ノードとなる確率（遷移確率）を表す。
【０７３６】
また、P(Y(t+1)|Z(t+1))は、時刻t+1に、状態Z(t+1)において、観測値としてのノードY(t+1)が観測される観測尤度、すなわち、第３階層のSOMのノードZ(t+1)が勝者ノードであったならば、第２階層のSOMのノードY(t+1)を表すノード情報としての位置データが観測される確率（観測尤度）を表す。
【０７３７】
さらに、P(X(t+1)|Y(t+1))は、時刻t+1に、状態Y(t+1)において、観測値としてのノードX(t+1)が観測される観測尤度、すなわち、第２階層のSOMのノードY(t+1)が勝者ノードであったならば、第１階層のSOMのノードX(t+1)を表すノード情報としての位置データが観測される確率（観測尤度）を表す。
【０７３８】
さらに、P(I(t+1)|X(t+1))は、時刻t+1に、状態X(t+1)において、観測値としての入力時系列データI(t+1)が観測される観測尤度、すなわち、第１階層のSOMのノードX(t+1)が勝者ノードであったならば、入力時系列データI(t+1)が観測される確率（観測尤度）を表す。
【０７３９】
次に、図４８にSOMの発火と確率分布の対応を示す。SOMの勝者ノードの決定は、入力信号と各ノードのプロトタイプとの距離（誤差）を求めて最も誤差の小さいものを選ぶことにより行うが、元信号に正規分布の加法性ノイズが乗ると仮定すると、各ノードにおける信号の観測確率（尤度）は正規分布を用いることができる。
【０７４０】
すなわち、図４８は、新SOMのノードである観測値が観測される観測尤度の求め方を示している。
【０７４１】
階層SOMを構成するSOMのうちの、例えば、k番目のSOM#kを注目SOMとして、その注目SOM#kに対して、時刻tに入力されるSOM入力データである観測値を、Ik(t)と表すとともに、注目SOM#kのi番目のノード#iのプロトタイプを、uiと表すこととする。
【０７４２】
さらに、観測値Ik(t)とノード#iのプロトタイプuiとの誤差eiを、例えば、式ei=(Ik(t)-ui)2で定義し、注目SOM#kにおいて、誤差eiが最も小さいノード#iを勝者ノードとすることとする。
【０７４３】
また、観測値Ik(t)が、信号成分（真値）s(t)と、平均が0で、分散がσ2の正規分布n(0,σ2)の加法性のノイズ成分とを含んでいるとすると、観測値Ik(t)は、式Ik(t)=s(t)+n(0,σ2)で表される。
【０７４４】
この場合、ノード#i(状態Xi(t))において、観測値Ik(t)が観測される観測尤度P(Ik(t)|Xi(t))は、正規分布を表す式P(Ik(t)|Xi(t))=1/(√(2π)σ)×exp{-(Ik(t)-ui)2/(2σ2)}によって求めることができる。ここで、exp{}は、ネイピア数 (Napier's constant)eを底とする指数関数を表す。
【０７４５】
なお、予測の遷移確率としては、Connect Hebb学習の重み係数である結合重みｗijを利用する。Connect Hebb学習では、勝者ノードが、ノード#iからノード#ｊへ遷移した時にこれをつなぐ結合重みｗijを基準値Δｗだけ増加させると同時に近傍のノードの結合重みも、勝者ノードとのパターン間距離に応じて増加させる。従って、結合重みｗijはノード#iからノード#jへの遷移の頻度に比例する。各ノードから遷移する確率の総和は１であることから、以下の正規化を行って遷移確率として用いる。
【０７４６】
【数１５】
2007299365.tif 000017
・・・（１５）
【０７４７】
すなわち、予測学習（Connect Hebb学習）では、ノード#iが勝者ノードになった場合、そのノード#iと、次の時刻に勝者ノードになったノード#jとの結合を強めるように、結合重みwijを、式（８）にしたがって更新する。したがって、結合重みwijは、勝者ノードがノード#iから#jに遷移する頻度を表しているということができ、時刻tに、ノード#iが勝者ノードになったときに、次の時刻t+1に、ノード#jが勝者ノードとなる確率、つまり、時刻tから時刻t+1において、状態Xi(t)から状態Xj(t+1)に遷移する遷移確率P(Xj(t+1)|Xi(t))として利用することができる。
【０７４８】
ここで、式（１５）において、右辺の分母のサメーションΣwijは、新SOMにおける遷移先のノード、つまり、新SOMのノードすべてについての結合重みwijの総和を表す。
【０７４９】
学習後の階層SOMによれば、因果モデルに必要な確率的因果関係、すなわち、階層SOMを構成するSOM#kのノードXi(t)において、そのSOM#kへのSOM入力データである観測値Ik(t)が観測される観測尤度P(Ik(t)|Xi(t))と、時刻tから時刻t+1において、ノードXi(t)からノードXj(t+1)に遷移する遷移確率P(Xj(t+1)|Xi(t))を求めることができる。そして、この観測尤度P(Ik(t)|Xi(t))と遷移確率P(Xj(t+1)|Xi(t))を用いることにより、各時刻での状態推定を行うことができる。
【０７５０】
図４９は、図３３の認識生成部５１５が行う、階層因果モデルを適用した認識生成処理の処理手順（アルゴリズム２）を示している。
【０７５１】
ステップＳ６０１において、認識生成部５１５は、記憶部５１１に記憶された階層SOMを構成するSOMそれぞれの各ノードの状態確率P(X(t))を、一様分布で初期化して、ステップＳ６０２に進む。
【０７５２】
すなわち、階層SOMを構成するSOMのうちの、k番目のSOM#kを、注目SOMとして注目した場合に、その注目SOM#kがN個のノードX1(t),X2(t),・・・,XN(t)を有するとすると、認識生成部５１５は、ノードXi(t)の状態確率P(Xi(t))を、1/Nに初期化する。
【０７５３】
ステップＳ６０２では、認識生成部５１５は、図４１のステップＳ５４１と同様に、データ抽出部５１２から供給される複数種類の入力時系列データそれぞれの時刻tのサンプル値S(t)を、記憶部５１１に記憶された階層SOMの最下位階層のSOMのうちの、対応するSOMの入力バッファに供給して記憶させ、ステップＳ６０３に進む。
【０７５４】
ステップＳ６０３では、認識生成部５１５は、階層SOMにおいて、まだ、注目SOMとしていないSOMの中で、下位階層から上位階層に向かう順番で最初に見つかるSOMを、注目SOMとして選択して、ステップＳ６０４に進む。
【０７５５】
ここで、いま、ステップＳ６０３において、階層SOMを構成するSOMのうちの、k番目のSOM#kが、注目SOMとして選択されたこととする。
【０７５６】
ステップＳ６０４では、認識生成部５１５は、時刻tを、シフト量shiftで除算した剰余Mod(t,shift)が0であるかどうか、すなわち、注目SOM#kの入力バッファに、シフト量shift分の新たなSOM入力データが記憶されたかどうかを判定する。
【０７５７】
ステップＳ６０４において、注目SOM#kの入力バッファに、シフト量shift分の新たなSOM入力データが、まだ記憶されていないと判定された場合、ステップＳ６０３に戻り、新たな注目SOMが選択され、以下、同様の処理が繰り返される。
【０７５８】
また、ステップＳ６０４において、注目SOM#kの入力バッファに、シフト量shift分の新たなSOM入力データが記憶されたと判定された場合、ステップＳ６０５に進み、認識生成部５１５は、注目SOM#kの入力バッファに記憶されているSOM入力データにウインドウをかけることにより、ウインドウ長分の最新のSOM入力データを、現在時刻tのSOM入力データとして抽出する。
【０７５９】
さらに、ステップＳ６０５では、認識生成部５１５は、現在時刻tのSOM入力データを、時刻tにおいて、注目SOM#kで観測された観測値Ik(t)として、その観測値Ik(t)が、注目SOM#kのN個のノードX(t)それぞれで観測される観測尤度P(Ik(t)|X(t))を求め、ステップＳ６０６に進む。
【０７６０】
ステップＳ６０６では、認識生成部５１５は、注目SOM#kのN個のノードX(t)それぞれの状態確率P(X(t))を、観測尤度P(Ik(t)|X(t))を用い、例えば、式P(X(t))=P(Ik(t)|X(t))P(X(t))/Zにしたがって更新する。
【０７６１】
ここで、式P(X(t))=P(Ik(t)|X(t))P(X(t))/Zにおいて、Zは、P(Ik(t)|X(t))P(X(t))を正規化するための値（規格化因子）であり、注目SOM#kのノードのN個のノードX(t)それぞれの状態確率P(X(t))の総和P(X1(t))+P(X2(t))+・・・+P(XN(t))である。
【０７６２】
認識生成部５１５は、ステップＳ６０６において、状態確率P(X(t))を更新した後、ステップＳ６０７に進み、その更新後の状態確率P(Xi(t))が最も高いノードXi(t)を、観測値Ik(t)に対する勝者ノードとして求める（観測値Ik(t)の認識を行う）。
【０７６３】
さらに、ステップＳ６０７では、認識生成部５１５は、観測値Ik(t)に対する注目SOM#kの勝者ノードXi(t)を表すノード情報としての、その勝者ノードXi(t)の位置を表す位置データ(x,y)を、注目SOM#kに接続している上位階層のSOM（上位SOM）の入力バッファに供給して記憶させ、ステップＳ６０８に進む。
【０７６４】
ステップＳ６０８では、認識生成部５１５は、注目SOM#kの入力バッファから、古い順に、シフト量shift分だけのSOM入力データを破棄（削除）して、ステップＳ６０９に進む。
【０７６５】
ステップＳ６０９では、認識生成部５１５は、階層SOMのすべてのSOMを対象として、ステップＳ６０４ないしＳ６０８の処理を行ったどうかを判定する。
【０７６６】
ステップＳ６０９において、階層SOMのすべてのSOMを、まだ、対象としていないと判定された場合、すなわち、階層SOMのSOMの中で、まだ、注目SOMに選択していないSOMがある場合、ステップＳ６０３に戻り、認識生成部５１５は、まだ、注目SOMとしていないSOMの中で、下位階層から上位階層に向かう順番で最初に見つかるSOMを、注目SOMとして選択して、以下、同様の処理を繰り返す。
【０７６７】
また、ステップＳ６０９において、階層SOMのすべてのSOMを対象としたと判定された場合、すなわち、階層SOMのSOMの中で、注目SOMに選択していないSOMがない場合、認識生成部５１５は、階層SOMのすべてのSOMについて、注目SOMに選択したことをリセットして、ステップＳ６１０に進み、階層SOMにおいて、まだ、注目SOMとしていないSOMの中で、上位階層から下位階層に向かう順番で最初に見つかるSOMを、注目SOMとして選択して、ステップＳ６１１に進む。
【０７６８】
ステップＳ６１１では、認識生成部５１５は、ステップＳ６０４と同様に、時刻tを、シフト量shiftで除算した剰余Mod(t,shift)が0であるかどうか、すなわち、注目SOMの入力バッファに、シフト量shift分の新たなSOM入力データが記憶されたかどうかを判定する。
【０７６９】
ステップＳ６１１において、注目SOMの入力バッファに、シフト量shift分の新たなSOM入力データが、まだ記憶されていないと判定された場合、ステップＳ６１０に戻り、新たな注目SOMが選択され、以下、同様の処理が繰り返される。
【０７７０】
また、ステップＳ６１１において、注目SOMの入力バッファに、シフト量shift分の新たなSOM入力データが記憶されたと判定された場合、ステップＳ６１２に進み、認識生成部５１５は、注目SOMにおいて、時刻tから、次の時刻t+1に、勝者ノードがノードX(t)からノードX(t+1)に遷移する遷移確率P(X(t+1)|X(t))を、式（１５）にしたがい、注目SOMの結合重みwijを用いて求める。
【０７７１】
さらに、ステップＳ６１２では、認識生成部５１５は、注目SOMのノードX(t)の状態確率P(X(t))と、遷移確率P(X(t+1)|X(t))とを乗算することにより、次の時刻t+1のノードX(t+1)の状態確率P(X(t+1))=P(X(t+1)|X(t))P(X(t))を求める。
【０７７２】
ここで、遷移確率P(X(t+1)|X(t))は、時刻tによっては変わらないので、階層SOMを構成する各SOMについて、一度求めれば、その後は、その求めた遷移確率P(X(t+1)|X(t))を記憶しておくことにより、再度求める必要はない。
【０７７３】
認識生成部５１５は、ステップＳ６１２において、次の時刻t+1のノードX(t+1)の状態確率P(X(t+1))=P(X(t+1)|X(t))P(X(t))を求めると、ステップＳ６１３に進み、認識生成部５１５は、注目SOMに接続している上位階層のSOM（上位SOM）があるかどうかを判定する。
【０７７４】
ステップＳ６１３において、注目SOMに接続している上位SOMがないと判定された場合、すなわち、注目SOMが、例えば、最上位階層のSOMである場合、ステップＳ６１４をスキップして、ステップＳ６１５に進む。
【０７７５】
また、ステップＳ６１３において、注目SOMに接続している上位SOMがあると判定された場合、ステップＳ６１４に進み、認識生成部５１５は、注目SOMに接続している上位SOMの予測バッファから、その上位SOMにおいて、次の時刻t+1に勝者ノードとなると予測された予測ノードYwin(t+1)を表すノード情報を読み出し、そのノード情報が表す予測ノードYwin(t+1)において、時刻t+1に、注目SOMのノードX(t+1)が観測値として観測される観測尤度（時刻t+1に、ノードX(t+1)が勝者ノードとなる確率）P(X(t+1)|Ywin(t+1))を求める。
【０７７６】
さらに、ステップＳ６１４では、認識生成部５１５は、その観測尤度P(X(t+1)|Ywin(t+1))を用いて、時刻t+1のノードX(t+1)の状態確率P(X(t+1))（ステップＳ６１２で求められた次の時刻t+1の状態確率P(X(t+1)=P(X(t+1)|X(t))P(X(t))）を、式P(X(t+1))=P(X(t+1)|Ywin(t+1))*P(X(t+1))にしたがって更新する。
【０７７７】
ここで、注目SOMに接続している上位SOMにおいて、次の時刻t+1に勝者ノードとなると予測された予測ノードYwin(t+1)を表すノード情報は、先に、その上位SOMを注目SOMとして、後述するステップＳ６１５の処理が行われることにより、その上位SOMの予測バッファに記憶される。
【０７７８】
また、ステップＳ６１４において、時刻t+1のノードX(t+1)の状態確率P(X(t+1))の更新は、式P(X(t+1))=P(X(t+1)|Ywin(t+1))*P(X(t+1))ではなく、上位SOMのすべてのノードY(t+1)それぞれにおいて、注目SOMのノードX(t+1)のそれぞれが観測される観測尤度P(X(t+1)|Y(t+1))を用いた式P(X(t+1))=P(X(t+1)|Y(t+1))P(Y(t+1))*P(X(t+1))にしたがって行うことも可能である。
【０７７９】
但し、時刻t+1のノードX(t+1)の状態確率P(X(t+1))の更新を、式P(X(t+1))=P(X(t+1)|Y(t+1))P(Y(t+1))*P(X(t+1))で行う場合は、式P(X(t+1))=P(X(t+1)|Ywin(t+1))*P(X(t+1))で行う場合よりも演算精度は向上するが、観測尤度P(X(t+1)|Y(t+1))の演算量が大であるため、全体の演算量も大になる。
【０７８０】
さらに、時刻t+1のノードX(t+1)の状態確率P(X(t+1))の更新に用いられる観測尤度P(X(t+1)|Ywin(t+1))、又はP(X(t+1)|Y(t+1))における観測値としてのX(t+1)は、ここでは、注目SOMの勝者ノードを表すノード情報としての位置データ(x,y)であり、観測尤度P(X(t+1)|Ywin(t+1))、又はP(X(t+1)|Y(t+1))を正確に計算するには、その位置データ(x,y)の時系列が、注目SOMに接続している上位SOMの階層用のウインドウ長分だけ必要となる。したがって、そのウインドウ長分の位置データ(x,y)の時系列を記憶しておかなければならない。
【０７８１】
但し、注目SOMに接続している上位SOMの階層用のウインドウ長を、例えば、1に仮定することにより、観測尤度P(X(t+1)|Ywin(t+1))、又はP(X(t+1)|Y(t+1))として求められる値は、近似値となるが、注目SOMに接続している上位SOMの階層用のウインドウ長分の位置データ(x,y)を記憶しておかずに済む。
【０７８２】
この場合、注目SOMのノードを表すノード情報としての位置データ(x,y)と、注目SOMに接続している上位SOMのノードY(t+1)のプロトタイプとしての時系列データの最新のサンプル（時刻が最も後のサンプル）との誤差を用いて、図４８で説明したようにして、観測尤度P(X(t+1)|Ywin(t+1))、又はP(X(t+1)|Y(t+1))を求めることができる。
【０７８３】
なお、上位SOMのノードY(t)において、その上位SOMに接続している下位階層のSOMのノードX(t)が観測される観測尤度P(X(t)|Y(t))は、時刻tによらないので、例えば、時刻tの観測尤度P(X(t)|Y(t))と、次の時刻t+1の観測尤度P(X(t+1)|Y(t+1))とは、等しい。
【０７８４】
したがって、観測尤度P(X(t)|Y(t))は、一度求めれば、その後は、その求めた観測尤度P(X(t)|Y(t))を記憶しておくことにより、再度求める必要はない。
【０７８５】
認識生成部５１５は、以上のように、ステップＳ６１４において、時刻t+1のノードX(t+1)の状態確率P(X(t+1))を更新した後、ステップＳ６１５に進み、状態確率P(X(t+1))が最も高い注目SOMのノードを予測ノードとして求め、その予測ノードを表すノード情報を、注目SOMの予測バッファに供給して記憶させ、ステップＳ６１６に進む。
【０７８６】
ステップＳ６１６では、認識生成部５１５は、注目SOMが最下位階層のSOM（最下位SOM）であるかどうかを判定する。
【０７８７】
ステップＳ６１６において、注目SOMが最下位SOMでないと判定された場合、ステップＳ６１７をスキップして、ステップＳ６１８に進む。
【０７８８】
また、ステップＳ６１６において、注目SOMが最下位SOMであると判定された場合、ステップＳ６１７に進み、認識生成部５１５は、直前のステップＳ６１５で求められた注目SOMである最下位SOMの予測ノードを、その注目SOMの予測バッファを参照することにより認識する。さらに、ステップＳ６１７では、認識生成部５１５は、注目SOMの予測ノードから、そのプロトタイプとしての時系列データを生成し、そのうちの、シフト量shift（最下位SOMに入力するフレーム単位のSOM入力データを抽出するときに用いるウインドウのシフト量shift）分の最新のデータを、予測時系列データとして出力して、ステップＳ６１８に進む。
【０７８９】
ステップＳ６１８では、認識生成部５１５は、階層SOMのすべてのSOMを対象として、ステップＳ６１１ないしＳ６１７の処理を行ったどうかを判定する。
【０７９０】
ステップＳ６１８において、階層SOMのすべてのSOMを、まだ、対象としていないと判定された場合、すなわち、階層SOMのSOMの中で、まだ、注目SOMに選択していないSOMがある場合、ステップＳ６１０に戻り、認識生成部５１５は、まだ、注目SOMとしていないSOMの中で、上位階層から下位階層に向かう順番で最初に見つかるSOMを、注目SOMとして選択して、以下、同様の処理を繰り返す。
【０７９１】
また、ステップＳ６１８において、階層SOMのすべてのSOMを対象としたと判定された場合、すなわち、階層SOMのSOMの中で、注目SOMに選択していないSOMがない場合、ステップＳ６１９に進み、認識生成部５１５は、階層SOMのすべてのSOMそれぞれについて、SOMの時刻tの状態確率P(X(t))を、そのSOMを注目SOMとしてステップＳ６１４で求めた時刻t+1の状態確率（最上位階層のSOMについては、ステップＳ６１２で求めた時刻t+1の状態確率）P(X(t+1))に更新して、ステップＳ６２０に進む。
【０７９２】
ステップＳ６２０では、認識生成部５１５は、データ抽出部５１２から、入力時系列データの新たなサンプル値が供給されたかどうかを判定する。ステップＳ６２０において、データ抽出部５１２から認識生成部５１５に、入力時系列データの新たなサンプル値が供給されたと判定された場合、ステップＳ６０２に戻り、認識生成部５１５は、データ抽出部５１２から供給された入力時系列データの新たなサンプル値を、最下位階層のSOMの入力バッファに供給して記憶させ、以下、同様の処理を繰り返す。
【０７９３】
また、ステップＳ６２０において、データ抽出部５１２から認識生成部５１５に、入力時系列データの新たなサンプル値が供給されていないと判定された場合、認識生成部５１５は、処理を終了する。
【０７９４】
8章.パーティクル・フィルタによる実装
【０７９５】
階層SOMを構成するSOMのノードが多くなった場合には、図４９で説明したように、ノードすべての状態確率を計算する認識生成処理は、演算量が大になる。
【０７９６】
そこで、認識生成処理では、例えば、階層SOMを構成するSOMに、パーティクルフィルタを適用して状態確率を求めることにより、演算量を低減することができる。
【０７９７】
パーティクルフィルタは、モンテカルロ法に基づいた確率計算手法であり、全ての状態についての状態確率を持つのではなく、パーティクル(particle)と呼ばれる単位が一つの状態を表現し、状態確率を保持する。全パーティクルの状態確率によって全体の確率分布が表される。
【０７９８】
ここで、パーティクルフィルタについては、Michael Isard and Andrew Blake, ”CONDENSATION -- conditional density propagation for visual tracking”, Int. J. Computer Vision, 29, 1, 5--28, (1998)に記載されている。
【０７９９】
図５０及び図５１を参照して、パーティクルフィルタを適用した認識生成処理の概要について説明する。
【０８００】
パーティクルフィルタを適用した認識生成処理では、図５０に示すように、まず、階層SOMを構成する各SOMに、M個のパーティクル（図５０において○印で示す）が割り当てられる。
【０８０１】
すなわち、SOMのノードの数をN個とすると、SOMには、そのノードの数であるN個より少ない数のM個のパーティクルが割り当てられる。
【０８０２】
ここで、M個のパーティクルのうちのj番目のパーティクルを、s(j)とすると、SOMに割り当てられたパーティクルs(j)は、SOMのN個のノード（状態）X1(t),X2(t),・・・,XN(t)のうちのいずれの状態Xi(t)をとる。パーティクルs(j)がとる状態Xi(t)を、状態Xs(j)(t)と表す。
【０８０３】
いま、階層SOMを構成するk番目のSOM#kに与えられるSOM入力データである観測値を、上述したように、Ik(t)と表すこととすると、SOM#kのパーティクルs(j)がとる状態Xs(j)(t)において、SOM#kに与えられる観測値Ik(t)が観測される観測尤度P(Ik(t)|Xs(j)(t))が求められる。
【０８０４】
さらに、その観測尤度P(Ik(t)|Xs(j)(t))を用いて、パーティクルs(j)（がとる状態Xs(j)(t)）の状態確率P(Xs(j)(t))が更新され、その更新後の状態確率P(Xs(j)(t))に応じて、パーティクルのリサンプリング（再割り当て）が行われる。すなわち、更新後の状態確率P(Xs(j)(t))が高い状態ほど、多くのパーティクルが割り当てられるように、パーティクルのリサンプリングが行われる。
【０８０５】
そして、リサンプリング後のパーティクルに基づいて、投票が行われ、すなわち、SOM#kの各ノード（状態）に割り当てられているパーティクルの数がカウントされ、その数が最も多いノードが、観測値Ik(t)に対する勝者ノードに決定される。
【０８０６】
その後、図５１に示すように、パーティクルが、遷移確率P(X(t+1)|X(t))に応じて移動される（再割り当てされる）。すなわち、状態Xi(t)をとるパーティクルは、遷移確率P(Xi'(t+1)|Xi(t))が高い遷移先としての状態Xi'(t+1)ほど、多くのパーティクルが移動するように移動される。
【０８０７】
さらに、移動後のパーティクルs(j)（がとる状態Xs(j)(t+1)）の状態確率P(Xs(j)(t))に応じて、パーティクルのリサンプリング（再割り当て）が行われる。すなわち、状態確率P(Xs(j)(t+1))が高い状態ほど、多くのパーティクルが割り当てられるように、パーティクルのリサンプリングが行われる。
【０８０８】
そして、リサンプリング後のパーティクルに基づいて、投票が行われ、すなわち、SOM#kの各ノード（状態）に割り当てられているパーティクルの数がカウントされ、その数が最も多いノードが、予測ノードに決定される。
【０８０９】
予測ノードの決定後は、SOM#kが最下位階層のSOMであれば、その予測ノードを用いて、予測時系列データが生成される。
【０８１０】
次に、図５２は、図３３の認識生成部５１５が行う、パーティクルフィルタを適用して状態確率を求める認識生成処理の処理手順（アルゴリズム３）を示している。
【０８１１】
ステップＳ７０１において、認識生成部５１５は、記憶部５１１に記憶された階層SOMを構成する各SOMに、M個のパーティクルを一様に割り当てる。さらに、M個のパーティクルs(j)それぞれがとる状態（ノード）Xi(t)を、状態Xs(j)とすると、認識生成部５１５は、パーティクルs(j)の状態確率P(Xs(j)(t))を、1/Mに初期化し、ステップＳ７０１からステップＳ７０２に進む。
【０８１２】
ステップＳ７０２では、認識生成部５１５は、図４１のステップＳ５４１と同様に、データ抽出部５１２から供給される複数種類の入力時系列データそれぞれの時刻tのサンプル値S(t)を、記憶部５１１に記憶された階層SOMの最下位階層のSOMのうちの、対応するSOMの入力バッファに供給して記憶させ、ステップＳ７０３に進む。
【０８１３】
ステップＳ７０３では、認識生成部５１５は、階層SOMにおいて、まだ、注目SOMとしていないSOMの中で、下位階層から上位階層に向かう順番で最初に見つかるSOMを、注目SOMとして選択して、ステップＳ７０４に進む。
【０８１４】
ここで、いま、ステップＳ７０３において、階層SOMを構成するSOMのうちの、k番目のSOM#kが、注目SOMとして選択されたこととする。
【０８１５】
ステップＳ７０４では、認識生成部５１５は、時刻tを、シフト量shiftで除算した剰余Mod(t,shift)が0であるかどうか、すなわち、注目SOM#kの入力バッファに、シフト量shift分の新たなSOM入力データが記憶されたかどうかを判定する。
【０８１６】
ステップＳ７０４において、注目SOM#kの入力バッファに、シフト量shift分の新たなSOM入力データが、まだ記憶されていないと判定された場合、ステップＳ７０３に戻り、新たな注目SOMが選択され、以下、同様の処理が繰り返される。
【０８１７】
また、ステップＳ７０４において、注目SOM#kの入力バッファに、シフト量shift分の新たなSOM入力データが記憶されたと判定された場合、ステップＳ７０５に進み、認識生成部５１５は、注目SOM#kの入力バッファに記憶されているSOM入力データにウインドウをかけることにより、ウインドウ長分の最新のSOM入力データを、現在時刻tのSOM入力データとして抽出する。
【０８１８】
さらに、ステップＳ７０５では、認識生成部５１５は、現在時刻tのSOM入力データを、時刻tにおいて、注目SOM#kで観測された観測値Ik(t)として、その観測値Ik(t)が、注目SOM#kに割り当てられているM個のパーティクルs(j)それぞれで観測される観測尤度P(Ik(t)|Xs(j)(t))を求め、ステップＳ７０６に進む。
【０８１９】
ステップＳ７０６では、認識生成部５１５は、注目SOM#kに割り当てられているパーティクルs(j)それぞれの状態確率P(Xs(j)(t))を、観測尤度P(Ik(t)|Xs(j)(t))を用い、例えば、式P(Xs(j)(t))=P(Ik(t)|Xs(j)(t))P(Xs(j)(t))/Zにしたがって更新する。
【０８２０】
ここで、式P(Xs(j)(t))=P(Ik(t)|Xs(j)(t))P(Xs(j)(t))/Zにおいて、Zは、P(Ik(t)|Xs(j)(t))P(Xs(j)(t))を正規化するための規格化因子であり、注目SOM#kに割り当てられているM個のパーティクルs(j)それぞれの状態確率P(Xs(j)(t))の総和である。
【０８２１】
認識生成部５１５は、ステップＳ７０６において、状態確率P(Xs(j)(t))を更新した後、ステップＳ７０７に進み、その更新後の状態確率P(Xs(j)(t))に応じて、パーティクルのリサンプリングを行う。
【０８２２】
すなわち、認識生成部５１５は、状態確率P(Xs(j)(t))が高いパーティクルs(j)がとる注目SOMの状態（ノード）Xi(t)を表す値ほど、高い確率で現れる乱数をM回だけ発生し、j回目の乱数が表す状態Xi(t)を、パーティクルs(j)に割り当てることにより、M個のパーティクルs(j)を、注目SOM#kの状態（ノード）Xi(t)に、新たに割り当てる。
【０８２３】
認識生成部５１５は、ステップＳ７０７において、以上のようなM個のパーティクルs(j)のリサンプリングを行った後、ステップＳ７０８に進み、リサンプリング後のパーティクルに基づいて、投票を行い、すなわち、注目SOM#kの各ノード（状態）に割り当てられているパーティクルの数をカウントして、ステップＳ７０９に進む。
【０８２４】
ステップＳ７０９では、認識生成部５１５は、パーティクルの数が最も多いノードを、観測値Ik(t)に対する勝者ノードに決定する。
【０８２５】
さらに、ステップＳ７０９では、認識生成部５１５は、注目SOM#kの勝者ノードを表すノード情報としての位置データ(x,y)を、注目SOM#kに接続している上位階層のSOM（上位SOM）の入力バッファに供給して記憶させ、ステップＳ７１０に進む。
【０８２６】
ステップＳ７１０では、認識生成部５１５は、注目SOM#kの入力バッファから、古い順に、シフト量shift分だけのSOM入力データを破棄（削除）して、ステップＳ７１１に進む。
【０８２７】
ステップＳ７１１では、認識生成部５１５は、階層SOMのすべてのSOMを対象として、ステップＳ７０４ないしＳ７１０の処理を行ったどうかを判定する。
【０８２８】
ステップＳ７１１において、階層SOMのすべてのSOMを、まだ、対象としていないと判定された場合、すなわち、階層SOMのSOMの中で、まだ、注目SOMに選択していないSOMがある場合、ステップＳ７０３に戻り、認識生成部５１５は、まだ、注目SOMとしていないSOMの中で、下位階層から上位階層に向かう順番で最初に見つかるSOMを、注目SOMとして選択して、以下、同様の処理を繰り返す。
【０８２９】
また、ステップＳ７１１において、階層SOMのすべてのSOMを対象としたと判定された場合、すなわち、階層SOMのSOMの中で、注目SOMに選択していないSOMがない場合、認識生成部５１５は、階層SOMのすべてのSOMについて、注目SOMに選択したことをリセットして、ステップＳ７１２に進み、階層SOMにおいて、まだ、注目SOMとしていないSOMの中で、上位階層から下位階層に向かう順番で最初に見つかるSOMを、注目SOMとして選択して、ステップＳ７１３に進む。
【０８３０】
ステップＳ７１３では、認識生成部５１５は、ステップＳ７０４と同様に、時刻tを、シフト量shiftで除算した剰余Mod(t,shift)が0であるかどうか、すなわち、注目SOMの入力バッファに、シフト量shift分の新たなSOM入力データが記憶されたかどうかを判定する。
【０８３１】
ステップＳ７１３において、注目SOMの入力バッファに、シフト量shift分の新たなSOM入力データが、まだ記憶されていないと判定された場合、ステップＳ７１２に戻り、新たな注目SOMが選択され、以下、同様の処理が繰り返される。
【０８３２】
また、ステップＳ７１３において、注目SOMの入力バッファに、シフト量shift分の新たなSOM入力データが記憶されたと判定された場合、ステップＳ７１４に進み、認識生成部５１５は、注目SOMにおいて、時刻tから、次の時刻t+1に、勝者ノードがノードX(t)からノードX(t+1)に遷移する遷移確率P(X(t+1)|X(t))を、式（１５）にしたがい、注目SOMの結合重みwijを用いて求める。
【０８３３】
ここで、遷移確率P(X(t+1)|X(t))は、図４９で説明したように、時刻tによっては変わらないので、階層SOMを構成する各SOMについて、一度求めれば、その後は、その求めた遷移確率P(X(t+1)|X(t))を記憶しておくことにより、再度求める必要はない。
【０８３４】
ステップＳ７１４では、さらに、認識生成部５１５は、注目SOMに割り当てられているM個のパーティクルを、遷移確率P(X(t+1)|X(t))に応じて移動させ（再割り当てし）、これにより、次の時刻t+1の状態確率P(Xs(j)(t+1))を求める。
【０８３５】
すなわち、認識生成部５１５は、遷移確率P(Xi'(t+1)|Xi(t))が高い遷移先としての状態（ノード）Xi'(t+1)を表す値ほど、高い確率で現れる乱数を発生し、状態Xi(t)に割り当てられていたパーティクルを、乱数が表す状態Xi'(t+1)に割り当てることにより、M個のパーティクルs(j)それぞれを、注目SOM#kの状態（ノード）X(t+1)に、新たに割り当てる。
【０８３６】
その後、認識生成部５１５は、ステップＳ７１４からステップＳ７１５に進み、注目SOMに接続している上位階層のSOM（上位SOM）が存在する場合には、移動（遷移）後のパーティクルs(j)がとる状態（ノード）Xs(j)(t+1)を表すノード情報としての位置データ(x,y)を、注目SOMが接続している上位SOMの移動履歴バッファに記憶させるとともに、その移動履歴バッファに記憶されているノード情報としての位置データ(x,y)のうちの、最も古いものを破棄（削除）して、これにより、注目SOMが接続している上位SOMの移動履歴バッファに、注目SOMにおけるパーティクルの移動の軌跡としての位置データ(x,y)の時系列を、少なくとも、上位SOMの階層用のウインドウ長分だけ保持させる。
【０８３７】
ここで、階層SOMを構成するSOMの移動履歴バッファとは、そのSOMに接続している下位階層のSOMにおけるパーティクルの移動軌跡を保持しておくための、記憶部５１１（図３３）の記憶領域の一部である。
【０８３８】
認識生成部５１５は、ステップＳ７１５からステップＳ７１６に進み、注目SOMに接続している上位SOMがあるかどうかを判定する。
【０８３９】
ステップＳ７１６において、注目SOMに接続している上位SOMがないと判定された場合、すなわち、注目SOMが、例えば、最上位階層のSOMである場合、ステップＳ７１７をスキップして、ステップＳ７１８に進む。
【０８４０】
また、ステップＳ７１６において、注目SOMに接続している上位SOMがあると判定された場合、ステップＳ７１７に進み、認識生成部５１５は、注目SOMに接続している上位SOMの予測バッファから、その上位SOMにおいて、次の時刻t+1に勝者ノードとなると予測された予測ノードYwin(t+1)を表すノード情報を読み出し、そのノード情報が表す予測ノードYwin(t+1)において、時刻t+1に、注目SOMのパーティクルがとる状態（ノード）Xs(j)(t+1)が観測値として観測される観測尤度（時刻t+1に、パーティクルがとるノードXs(j)(t+1)が勝者ノードとなる確率）P(Xs(j)(t+1)|Ywin(t+1))を求める。
【０８４１】
さらに、ステップＳ７１７では、認識生成部５１５は、その観測尤度P(Xs(j)(t+1)|Ywin(t+1))を用いて、時刻t+1のパーティクルs(j)の状態確率P(Xs(j)(t+1))を、式P(Xs(j)(t+1))=P(Xs(j)(t+1))P(Xs(j)(t+1)|Ywin(t+1))にしたがって更新する。
【０８４２】
ここで、注目SOMに接続している上位SOMにおいて、次の時刻t+1に勝者ノードとなると予測された予測ノードYwin(t+1)を表すノード情報は、先に、その上位SOMを注目SOMとして、後述するステップＳ７１９の処理が行われることにより、その上位SOMの予測バッファに記憶される。
【０８４３】
また、ステップＳ７１７において、時刻t+1のパーティクルs(j)の状態確率P(Xs(j)(t+1))の更新は、式P(Xs(j)(t+1))=P(Xs(j)(t+1))P(Xs(j)(t+1)|Ywin(t+1))ではなく、上位SOMに割り当てられているM個のパーティクルq(m)がとる状態（ノード）Yq(m)(t+1)を利用した式P(Xs(j)(t+1))=P(Xs(j)(t+1))（ΣP(Xs(j)(t+1)|Yq(m)(t+1))P(Yq(m)(t+1)))にしたがって行うことも可能である。
【０８４４】
なお、式P(Xs(j)(t+1))=P(Xs(j)(t+1))（ΣP(Xs(j)(t+1)|Yq(m)(t+1))P(Yq(m)(t+1)))のサメーションΣは、上位SOMに割り当てられたM個のパーティクルq(m)を表す変数mを１からMに変えての総和を表す。
【０８４５】
また、式P(Xs(j)(t+1))=P(Xs(j)(t+1))P(Xs(j)(t+1)|Ywin(t+1))における確率P(Xs(j)(t+1)|Ywin(t+1))や、式P(Xs(j)(t+1))=P(Xs(j)(t+1))（ΣP(Xs(j)(t+1)|Yq(m)(t+1))P(Yq(m)(t+1)))におけるP(Xs(j)(t+1)|Yq(m)(t+1))を正確に計算するには、注目SOMが接続している上位SOMの階層用のウインドウ長分の、注目SOMに割り当てられたパーティクルの移動の軌跡としての位置データ(x,y)が必要となるが、これは、上述したように、注目SOMが接続している上位SOMの移動履歴バッファに記憶されている。
【０８４６】
認識生成部５１５は、以上のように、ステップＳ７１７において、時刻t+1のノードX(t+1)の状態確率P(X(t+1))を更新した後、ステップＳ７１８に進み、ステップＳ７０７と同様に、状態確率P(Xs(j)(t+1))に応じて、M個のパーティクルのリサンプリングを行って、ステップＳ７１９に進む。
【０８４７】
ステップＳ７１９では、認識生成部５１５は、リサンプリング後のパーティクルに基づいて、投票を行い、すなわち、注目SOMの各ノード（状態）に割り当てられているパーティクルの数をカウントし、パーティクルの数が最も多いノードを、注目SOMの予測ノードとして求める。さらに、ステップＳ７１９では、認識生成部５１５は、その予測ノードを表すノード情報を、注目SOMの予測バッファに供給して記憶させ、ステップＳ７２０に進む。
【０８４８】
ステップＳ７２０では、認識生成部５１５は、注目SOMが最下位階層のSOM（最下位SOM）であるかどうかを判定する。
【０８４９】
ステップＳ７２０において、注目SOMが最下位SOMでないと判定された場合、ステップＳ７２１をスキップして、ステップＳ７２２に進む。
【０８５０】
また、ステップＳ７２０において、注目SOMが最下位SOMであると判定された場合、ステップＳ７２１に進み、認識生成部５１５は、直前のステップＳ７１９で求められた注目SOMである最下位SOMの予測ノードを、その注目SOMの予測バッファを参照することにより認識する。さらに、ステップＳ７２１では、認識生成部５１５は、注目SOMの予測ノードから、そのプロトタイプとしての時系列データを生成し、そのうちの、シフト量shift（最下位SOMに入力するフレーム単位のSOM入力データを抽出するときに用いるウインドウのシフト量shift）分の最新のデータを、予測時系列データとして出力して、ステップＳ７２２に進む。
【０８５１】
ステップＳ７２２では、認識生成部５１５は、階層SOMのすべてのSOMを対象として、ステップＳ７１３ないしＳ７２１の処理を行ったどうかを判定する。
【０８５２】
ステップＳ７２２において、階層SOMのすべてのSOMを、まだ、対象としていないと判定された場合、すなわち、階層SOMのSOMの中で、まだ、注目SOMに選択していないSOMがある場合、ステップＳ７１２に戻り、認識生成部５１５は、まだ、注目SOMとしていないSOMの中で、上位階層から下位階層に向かう順番で最初に見つかるSOMを、注目SOMとして新たに選択して、以下、同様の処理を繰り返す。
【０８５３】
また、ステップＳ７２２において、階層SOMのすべてのSOMを対象としたと判定された場合、すなわち、階層SOMのSOMの中で、注目SOMに選択していないSOMがない場合、ステップＳ７２３に進み、認識生成部５１５は、データ抽出部５１２から、入力時系列データの新たなサンプル値が供給されたかどうかを判定する。ステップＳ７２３において、データ抽出部５１２から認識生成部５１５に、入力時系列データの新たなサンプル値が供給されたと判定された場合、ステップＳ７０２に戻り、認識生成部５１５は、データ抽出部５１２から供給された入力時系列データの新たなサンプル値を、最下位階層のSOMの入力バッファに供給して記憶させ、以下、同様の処理を繰り返す。
【０８５４】
また、ステップＳ７２３において、データ抽出部５１２から認識生成部５１５に、入力時系列データの新たなサンプル値が供給されていないと判定された場合、認識生成部５１５は、処理を終了する。
【０８５５】
9章.Bayesian Network的定式化
【０８５６】
階層SOMを一般的なグラフィカルモデルとして捉え、時間方向の発展を無視すると、階層SOMは、polytree(１つの親に複数の子が存在する)と呼ばれるグラフに属すると考えられる。
【０８５７】
また、階層SOMにおいて、時間方向に時刻t-1の状態（ノード）が、時刻ｔの状態の原因となる（親）ノードであると捉えると、階層SOMは、無限に続くpolytreeと捉えることができる。
【０８５８】
ここで、Polytree構成をしたBayesian Network（ベイジアンネットワーク）については、Pearl ”Probabilistic Reasoning in Intelligent System: Network of Plausible Inference”, 1988に、解法が示されており、その解法を適用した階層SOMの認識生成処理の概要を、図５３及び図５４に示す。
【０８５９】
Polytree構成をしたBayesian Networkを、階層SOMに厳密に適用すると、時間方向を遡って全ての状態を更新しなくてはならないが、時間方向に関しては1時刻前から現時刻までの順方向の確率伝搬だけを実装し、時間を遡る確率伝搬は用いないという近似を行うことにより、確率伝搬が、図４９の認識生成処理で説明したと類似した階層を上がる認識の確率伝搬、次の時刻の予測の確率伝搬、及び下位階層を推定する（下位階層の次の時刻の勝者ノードを予測する）確率伝搬の３種類となって、認識生成処理を、比較的容易に行うことができる。
【０８６０】
図５５は、Polytree構成をしたBayesian Networkを適用した階層SOMを示している。
【０８６１】
階層SOMを構成するSOMのうちの、あるSOMであるSOM(X)に注目し、その注目SOM(X)に接続している下位階層のM個のSOMをのうちのm番目、SOM(Y#m)と表すとともに、注目SOMに接続している上位階層のN個のSOMのうちのn番目を、SOM(U#n)と表すこととする。
【０８６２】
ここで、図５５では、注目SOM(X)に対して、M個の下位階層のSOM（下位SOM）であるSOM(Y#1),SOM(Y#2),・・・,SOM(Y#M)と、N個の上位階層のSOM（上位SOM）であるSOM(U#1),SOM(U#2),・・・,SOM(U#N)とが接続している。
【０８６３】
注目SOM(X)にとって、上位階層のSOM(U#n)は親であり、下位階層のSOM(Y#m)は子である。
【０８６４】
図５６は、Polytree構成をしたBayesian Networkを適用した階層SOMを構成するSOM（のノード）どうしでやりとりされるメッセージを示している。
【０８６５】
図５６において、太線の矢印は、因果の方向（原因から結果の方向）を示している。因果の方向と同一方向に伝搬するメッセージは、πメッセージと呼ばれ、因果の方向と逆方向に伝搬するメッセージは、λメッセージと呼ばれる。
【０８６６】
また、図５６において、時刻tの注目SOM(X(t))においてやりとりされるメッセージには、πX(t-1)(X(t)),πX(t)(X(t+1)),πU#1(t)(X(t)),πX(t)(Y#m(t)),λX(t)(U#1(t))、及びλY#m(t)(X(t))等がある。
【０８６７】
メッセージπX(t-1)(X(t))は、時刻t-1の注目SOM(X(t-1))のノードから、時刻tの注目SOM(X(t))のノードへのπメッセージであり、メッセージπX(t)(X(t+1))は、時刻tの注目SOM(X(t))のノードから、時刻t+1の注目SOM(X(t+1))のノードへのπメッセージである。
【０８６８】
また、メッセージπU#1(t)(X(t))は、時刻tの上位SOM（親のSOM）であるSOM(U#1(t))のノードから、時刻tの注目SOM(X(t))のノードへのπメッセージであり、メッセージπX(t)(Y#m(t))は、時刻tの注目SOM(X(t))のノードから、時刻tの下位SOM（子のSOM）であるSOM(Y#m(t))のノードへのπメッセージである。
【０８６９】
さらに、メッセージλX(t)(U#1(t))は、時刻tの注目SOM(X(t))のノードから、時刻tの上位SOMであるSOM(U#1(t))のノードへのλメッセージであり、メッセージλY#m(t)(X(t))は、時刻tの下位SOMであるSOM(Y#m(t))のノードから、時刻tの注目SOM(X(t))のノードへのλメッセージである。
【０８７０】
階層SOMに対して、λメッセージ及びπメッセージを用いたベイジアンネットワークの解法を適用した認識生成処理では、注目SOM(X)（の各ノード）の状態確率BEL(X)が、式（１６）にしたがって求められる。
【０８７１】
【数１６】
2007299365.tif 000018
・・・（１６）
【０８７２】
ここで、式（１６）において、λ(X)は、注目SOM(X)のλ値と呼ばれる値で、式（１７）にしたがい、下位SOM(Y#m)それぞれから注目SOM(X)へのメッセージλY#m(X)すべてを乗算することにより求められる。
【０８７３】
【数１７】
2007299365.tif 000019
・・・（１７）
【０８７４】
さらに、式（１６）において、π(X)は、注目SOM(X)のπ値と呼ばれる値で、式（１８）にしたがい、上位SOM(U#n)それぞれから注目SOM(X)へのメッセージπX(U#m)を用いて求められる。
【０８７５】
【数１８】
2007299365.tif 000020
・・・（１８）
【０８７６】
また、式（１６）において、aは、状態確率BEL(X)を正規化するための正規化項であり、式（１９）に示すように、注目SOM(X)のすべてのノードの状態確率BEL(X)の総和が１になるように定められる。
【０８７７】
【数１９】
2007299365.tif 000021
・・・（１９）
【０８７８】
さらに、ベイジアンネットワークの解法を適用した認識生成処理では、注目SOM(X)から、上位SOM(U#n)へのλメッセージであるメッセージλX(U#n)が、式（２０）にしたがって求められるとともに、注目SOM(X)から、下位SOM(Y#m)へのπメッセージであるメッセージπX(Y#m)が、式（２１）にしたがって求められる。
【０８７９】
【数２０】
2007299365.tif 000022
・・・（２０）
【０８８０】
【数２１】
2007299365.tif 000023
・・・（２１）
【０８８１】
10章.λ・πメッセージによる実装
【０８８２】
図５７は、図３３の認識生成部５１５が行う、PolytreeのBayesian Networkによる解法を適用した階層SOMの認識生成処理の処理手順（アルゴリズム４）を示している。
【０８８３】
ステップＳ８０１において、認識生成部５１５は、記憶部５１１に記憶された階層SOMを構成するSOMそれぞれの各ノードのλメッセージとπメッセージとを一様分布で初期化して、ステップＳ８０２に進む。
【０８８４】
ステップＳ８０２では、認識生成部５１５は、図４１のステップＳ５４１と同様に、データ抽出部５１２から供給される複数種類の入力時系列データそれぞれの時刻tのサンプル値S(t)を、記憶部５１１に記憶された階層SOMの最下位階層のSOMのうちの、対応するSOMの入力バッファに供給して記憶させ、ステップＳ８０３に進む。
【０８８５】
ステップＳ８０３では、認識生成部５１５は、階層SOMにおいて、まだ、注目SOMとしていないSOMの中で、下位階層から上位階層に向かう順番で最初に見つかるSOMを、注目SOMとして選択して、ステップＳ８０４に進む。
【０８８６】
ステップＳ８０４では、認識生成部５１５は、時刻tを、シフト量shiftで除算した剰余Mod(t,shift)が0であるかどうか、すなわち、注目SOMの入力バッファに、シフト量shift分の新たなSOM入力データが記憶されたかどうかを判定する。
【０８８７】
ステップＳ８０４において、注目SOMの入力バッファに、シフト量shift分の新たなSOM入力データが、まだ記憶されていないと判定された場合、ステップＳ８０５をスキップして、ステップＳ８０６に進む。
【０８８８】
また、ステップＳ８０４において、注目SOMの入力バッファに、シフト量shift分の新たなSOM入力データが記憶されたと判定された場合、ステップＳ８０５に進み、認識生成部５１５は、注目SOMの入力バッファに記憶されているSOM入力データにウインドウをかけることにより、ウインドウ長分の最新のSOM入力データを、現在時刻tのSOM入力データとして抽出する。
【０８８９】
さらに、ステップＳ８０５では、認識生成部５１５は、現在時刻tのSOM入力データを、時刻tにおいて、注目SOMで観測された観測値I(t)として、その観測値I(t)が、注目SOMのN個のノードX(t)それぞれで観測される観測尤度P(I(t)|X(t))を、式（２２）にしたがい、注目SOMの各ノードのλ値(λ(X(t)))として求めて、ステップＳ８０６に進む。
【０８９０】
【数２２】
2007299365.tif 000024
・・・（２２）
【０８９１】
ステップＳ８０６では、認識生成部５１５は、注目SOMの入力バッファに、シフト量shift分の新たなSOM入力データが、まだ記憶されておらず、かつ、注目SOMに接続している下位SOMがあるかどうかを判定する。
【０８９２】
注目SOMの入力バッファに、シフト量shift分の新たなSOM入力データが、まだ記憶されておらず、かつ、注目SOMに接続している下位SOMがあるかどうかのステップＳ８０６の判定の結果が偽である場合、ステップＳ８０７をスキップして、ステップＳ８０８に進む。
【０８９３】
また、ステップＳ８０６において、注目SOMの入力バッファに、シフト量shift分の新たなSOM入力データが、まだ記憶されておらず、かつ、注目SOMに接続している下位SOMがあると判定された場合、ステップＳ８０７に進み、認識生成部５１５は、式（２３）にしたがい、注目SOMに接続している下位SOM(Y#m(t))のノードから注目SOMのノードX(t)へのλメッセージ（λY#m(t)(X(t))）すべてを乗算することにより、注目SOMのλ値（λ(X(t))）を求め、ステップＳ８０８に進む。
【０８９４】
【数２３】
2007299365.tif 000025
・・・（２３）
【０８９５】
ステップＳ８０８では、認識生成部５１５は、注目SOMの入力バッファに、シフト量shift分の新たなSOM入力データが、まだ記憶されておらず、かつ、注目SOMに接続している下位SOMがない場合には、注目SOMのλ値（λ(X(t))）を、式（２４）にしたがって1として、ステップＳ８０９に進む。
【０８９６】
【数２４】
2007299365.tif 000026
・・・（２４）
【０８９７】
ステップＳ８０９では、認識生成部５１５は、注目SOMに接続している上位SOM(U)の階層用のウインドウ長分のλ値（λ(X(t))）の時系列を用い、その上位SOM(U)へのλメッセージ（λX(U)）を、式（２５）にしたがって求め、ステップＳ８１０に進む。
【０８９８】
【数２５】
2007299365.tif 000027
・・・（２５）
【０８９９】
ここで、式（２５）において、bは正規化項であり、Wは、注目SOMに接続している上位SOM(U)の階層用のウインドウ長である。
【０９００】
ステップＳ８１０では、認識生成部５１５は、注目SOMの最新のλ値（λ(X(t))）を、注目SOMに接続している上位SOM(U)の階層用のウインドウ長分だけ、記憶部５１１に記憶させ、他の古いλ値（λ(X(t))）を削除して、ステップＳ８１１に進む。
【０９０１】
ステップＳ８１１では、認識生成部５１５は、階層SOMのすべてのSOMを対象として、ステップＳ８０３ないしＳ８１０の処理を行ったどうかを判定する。
【０９０２】
ステップＳ８１１において、階層SOMのすべてのSOMを、まだ、対象としていないと判定された場合、すなわち、階層SOMのSOMの中で、まだ、注目SOMに選択していないSOMがある場合、ステップＳ８０３に戻り、認識生成部５１５は、まだ、注目SOMとしていないSOMの中で、下位階層から上位階層に向かう順番で最初に見つかるSOMを、注目SOMとして新たに選択して、以下、同様の処理を繰り返す。
【０９０３】
また、ステップＳ８１１において、階層SOMのすべてのSOMを対象としたと判定された場合、すなわち、階層SOMのSOMの中で、注目SOMに選択していないSOMがない場合、認識生成部５１５は、階層SOMのすべてのSOMについて、注目SOMに選択したことをリセットして、ステップＳ８１２に進み、階層SOMにおいて、まだ、注目SOMとしていないSOMの中で、上位階層から下位階層に向かう順番で最初に見つかるSOMを、注目SOMとして選択して、ステップＳ８１３に進む。
【０９０４】
ステップＳ８１３では、認識生成部５１５は、現在時刻tを、シフト量shiftで除算した剰余Mod(t,shift)が0であるかどうか、すなわち、注目SOMの入力バッファに、シフト量shift分の新たなSOM入力データが記憶されたかどうかを判定する。
【０９０５】
ステップＳ８１３において、注目SOMの入力バッファに、シフト量shift分の新たなSOM入力データが、まだ記憶されていないと判定された場合、ステップＳ８１２に戻り、新たな注目SOMが選択され、以下、同様の処理が繰り返される。
【０９０６】
また、ステップＳ８１３において、注目SOMの入力バッファに、シフト量shift分の新たなSOM入力データが記憶されたと判定された場合、ステップＳ８１４に進み、認識生成部５１５は、注目SOMにおいて、時刻tから、次の時刻t+1に、勝者ノードがノードX(t)からノードX(t+1)に遷移する遷移確率P(X(t+1)|X(t))を、注目SOMの結合重みwijを用いて求める。
【０９０７】
さらに、ステップＳ８１４では、認識生成部５１５は、遷移確率P(X(t+1)|X(t))と、１時刻前の時刻t-1の注目SOMから、時刻tの注目SOMへのπメッセージ（πX(t-1)(X(t))）とを用い、式（２６）にしたがって、１時刻前の時刻t-1の注目SOMからのπ値であるπ1を求める。
【０９０８】
【数２６】
2007299365.tif 000028
・・・（２６）
【０９０９】
その後、ステップＳ８１４からステップＳ８１５に進み、認識生成部５１５は、注目SOMが接続している上位SOMがあり、時刻tが、その上位SOMにおいて勝者ノードが求められるタイミング（発火タイミング）である場合には、上位SOMのノードUにおいて、注目SOMの、勝者ノードとなっているノード（を表すノード情報としての位置データ(x,y)）が観測される観測尤度P(X|U)と、上位SOMのノードU(t)から、注目SOMのノードX(t)へのπメッセージ（πU(t)(X(t))）とを用い、式（２７）にしたがって、上位SOMのノードU(t)からのπ値であるπ2を求める。
【０９１０】
【数２７】
2007299365.tif 000029
・・・（２７）
【０９１１】
そして、ステップＳ８１５からステップＳ８１６に進み、認識生成部５１５は、式（２６）で求めたπ1と、式（２７）で求めたπ2とを用いて、式（２８）にしたがい、注目SOMのπ値（π(X(t))）を求めて、ステップＳ８１７に進む。
【０９１２】
【数２８】
2007299365.tif 000030
・・・（２８）
【０９１３】
ステップＳ８１７では、認識生成部５１５は、式（２２）ないし式（２４）のうちのいずれかで求められたλ値（λ(X(t))）と、式（２８）で求められたπ値（π(X(t))）とを用いて、式（２９）にしたがい、時刻tの注目SOMのノードの状態確率BELを求めて、ステップＳ８１８に進む。
【０９１４】
【数２９】
2007299365.tif 000031
・・・（２９）
【０９１５】
ステップＳ８１８では、認識生成部５１５は、式（３０）にしたがい、式（２９）で求めた時刻tの注目SOMのノードの状態確率BELを、時刻tの注目SOMのノードX(t)から、時刻t+1の注目SOMのノードX(t+1)へのπメッセージ（πX(t)(X(t+1))）として、ステップＳ８１９に進む。
【０９１６】
【数３０】
2007299365.tif 000032
・・・（３０）
【０９１７】
ステップＳ８１９では、認識生成部５１５は、式（３１）にしたがい、正規化項aが乗算された時刻tの注目SOMのノードの状態確率BELを、注目SOMに接続している下位SOMのノードY#m(t)から注目SOMのノードX(t)へのλメッセージ（λY#m(t)(X(t))）で除算することにより、時刻tの注目SOMのノードX(t)から、下位SOMのノードY#m(t)へのπメッセージ（πX(t)(Y#m(t))）を求めて、ステップＳ８２０に進む。
【０９１８】
【数３１】
2007299365.tif 000033
・・・（３１）
【０９１９】
ステップＳ８２０では、認識生成部５１５は、注目SOMが最下位階層のSOM（最下位SOM）である場合には、遷移確率P(X(t+1)|X(t))と、時刻tの注目SOMのノードX(t)から、時刻t+1の注目SOMのノードX(t+1)へのπメッセージ（πX(t)(X(t+1))）とを用い、式（３２）にしたがって、状態予測確率Pprevを求めて、ステップＳ８２１に進む。
【０９２０】
【数３２】
2007299365.tif 000034
・・・（３２）
【０９２１】
ステップＳ８２１では、認識生成部５１５は、最下位SOMである注目SOMのノードのうちの、状態予測確率Pprevが最も高いノードを、予測ノードとして求めて、ステップＳ８２２に進む。
【０９２２】
ステップＳ８２２では、認識生成部５１５は、注目SOMの予測ノードから、そのプロトタイプとしての時系列データを生成し、そのうちの、シフト量shift（最下位SOMに入力するフレーム単位のSOM入力データを抽出するときに用いるウインドウのシフト量shift）分の最新のデータを、予測時系列データとして出力して、ステップＳ８２３に進む。
【０９２３】
ステップＳ８２３では、認識生成部５１５は、階層SOMのすべてのSOMを対象として、ステップＳ８１３ないしＳ８２２の処理を行ったどうかを判定する。
【０９２４】
ステップＳ８２３において、階層SOMのすべてのSOMを、まだ、対象としていないと判定された場合、すなわち、階層SOMのSOMの中で、まだ、注目SOMに選択していないSOMがある場合、ステップＳ８１２に戻り、認識生成部５１５は、まだ、注目SOMとしていないSOMの中で、上位階層から下位階層に向かう順番で最初に見つかるSOMを、注目SOMとして選択して、以下、同様の処理を繰り返す。
【０９２５】
また、ステップＳ８２３において、階層SOMのすべてのSOMを対象としたと判定された場合、すなわち、階層SOMのSOMの中で、注目SOMに選択していないSOMがない場合、ステップＳ８２４に進み、認識生成部５１５は、データ抽出部５１２から、入力時系列データの新たなサンプル値が供給されたかどうかを判定する。ステップＳ８２４において、データ抽出部５１２から認識生成部５１５に、入力時系列データの新たなサンプル値が供給されたと判定された場合、ステップＳ８０２に戻り、認識生成部５１５は、データ抽出部５１２から供給された入力時系列データの新たなサンプル値を、最下位階層のSOMの入力バッファに供給して記憶させ、以下、同様の処理を繰り返す。
【０９２６】
また、ステップＳ８２４において、データ抽出部５１２から認識生成部５１５に、入力時系列データの新たなサンプル値が供給されていないと判定された場合、認識生成部５１５は、処理を終了する。
【０９２７】
以上のように、階層SOMによれば、大規模な学習を、実用的に行うことができる。また、様々なセンサ・制御信号をモーダル毎に複数の自己組織マップ(SOM)を階層的に使い学習することにより、各種信号を局所的に計算するだけで結果として統合した予測と再構成を行う事ができる。
【０９２８】
すなわち、複数のSOMが階層構造を構成するように接続された階層SOMを構成するSOMの自己組織化学習を、そのSOMの下位階層のSOMである下位SOMの勝者ノードを表すノード情報の時系列を、SOM入力データとして用いて行うことにより、階層SOMの最下位階層のSOMごとに、時系列データを割り当てて学習するとともに、その最下位階層のSOMどうしを、いわば関係付ける学習を、上位階層のSOMで行うことができ、その結果、例えば、多種類（多数）の時系列データや、多次元のベクトルの時系列データの学習といった大規模な学習を、実用的なレベルで行うことができる。
【０９２９】
さらに、階層SOMの最下位階層のSOMごとに、時系列データを割り当てて学習が行われるとともに、その最下位階層のSOMどうしを関係付ける学習が、上位階層のSOMで行われる結果、例えば、最下位階層のSOMのそれぞれに入力される時系列データすべてを、いわば総合的に考慮して、次の時刻の時系列データを予測した予測時系列データを生成することができる。
【０９３０】
なお、階層SOMを構成する新SOMのノードには、時系列パターンモデル２１（図７）ではなく、従来のSOMと同様に、重みベクトルを割り当てることができる。
【０９３１】
この場合、勝者ノードは、式（３３）にしたがって求められる。
【０９３２】
【数３３】
2007299365.tif 000035
・・・（３３）
【０９３３】
ここで、式（３３）において、xは、フレーム単位のSOM入力データの各サンプル値をコンポーネントとするベクトル（入力ベクトル）を表す。また、miは、新SOMのi番目のノード#iに割り当てられている重みベクトルを表す。
【０９３４】
式（３３）によれば、入力ベクトルxの終点と、重みベクトルmiの終点とのユークリッド距離|x-mi|が最も短いノード番号#cのノード#cが、勝者ノードとして求められる。
【０９３５】
また、ノードに重みベクトルが割り当てられた新SOMの自己組織化学習において、各ノード#iの重みベクトルの更新は、式（３４）にしたがって行われる。
【０９３６】
【数３４】
2007299365.tif 000036
・・・（３４）
【０９３７】
ここで、式（３４）において、mi(t+1)は、ノード#iの更新後（時刻t+1）の重みベクトルを表し、mi(t)は、ノード#iの更新前（時刻t）の重みベクトルを表す。また、x(t)は、時刻tの入力ベクトルを表す。さらに、hci(t)は、式（３５）で表される関数である。
【０９３８】
【数３５】
2007299365.tif 000037
・・・（３５）
【０９３９】
ここで、式（３５）において、α(t)は、時刻tの経過（学習回数）にしたがって単調減少する学習係数である。また、σ(t)は、時刻tの経過にしたがって単調減少する係数で、カーネルの幅と呼ばれる。さらに、rcは、時刻tの入力ベクトルx(t)に対する勝者ノードの位置を表す位置ベクトルであり、riは、更新対象の重みベクトルmi(t)が割り当てられているノード#iの位置を表す位置ベクトルである。
【０９４０】
次に、上述した一連の処理は、専用のハードウェアにより行うこともできるし、ソフトウェアにより行うこともできる。一連の処理をソフトウェアによって行う場合には、そのソフトウェアを構成するプログラムが、汎用のコンピュータやマイクロコンピュータ（コントローラ）等にインストールされる。
【０９４１】
そこで、図５８は、上述した一連の処理を実行するプログラムがインストールされるコンピュータの一実施の形態の構成例を示している。
【０９４２】
プログラムは、コンピュータに内蔵されている記録媒体としてのハードディスク１０１０５やROM１０１０３に予め記録しておくことができる。
【０９４３】
あるいはまた、プログラムは、フレキシブルディスク、CD-ROM(Compact Disc Read Only Memory)，MO(Magneto Optical)ディスク，DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブル記録媒体１０１１１に、一時的あるいは永続的に格納（記録）しておくことができる。このようなリムーバブル記録媒体１０１１１は、いわゆるパッケージソフトウエアとして提供することができる。
【０９４４】
なお、プログラムは、上述したようなリムーバブル記録媒体１０１１１からコンピュータにインストールする他、ダウンロードサイトから、ディジタル衛星放送用の人工衛星を介して、コンピュータに無線で転送したり、LAN(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送し、コンピュータでは、そのようにして転送されてくるプログラムを、通信部１０１０８で受信し、内蔵するハードディスク１０１０５にインストールすることができる。
【０９４５】
コンピュータは、CPU(Central Processing Unit)１０１０２を内蔵している。CPU１０１０２には、バス１０１０１を介して、入出力インタフェース１０１１０が接続されており、CPU１０１０２は、入出力インタフェース１０１１０を介して、ユーザによって、キーボードや、マウス、マイク等で構成される入力部１０１０７が操作等されることにより指令が入力されると、それにしたがって、ROM(Read Only Memory)１０１０３に格納されているプログラムを実行する。あるいは、また、CPU１０１０２は、ハードディスク１０１０５に格納されているプログラム、衛星若しくはネットワークから転送され、通信部１０１０８で受信されてハードディスク１０１０５にインストールされたプログラム、またはドライブ１０１０９に装着されたリムーバブル記録媒体１０１１１から読み出されてハードディスク１０１０５にインストールされたプログラムを、RAM(Random Access Memory)１０１０４にロードして実行する。これにより、CPU１０１０２は、上述したフローチャートにしたがった処理、あるいは上述したブロック図の構成により行われる処理を行う。そして、CPU１０１０２は、その処理結果を、必要に応じて、例えば、入出力インタフェース１０１１０を介して、LCD(Liquid Crystal Display)やスピーカ等で構成される出力部１０１０６から出力、あるいは、通信部１０１０８から送信、さらには、ハードディスク１０１０５に記録等させる。
【０９４６】
なお、本明細書において、コンピュータに各種の処理を行わせるためのプログラムを記述する処理ステップは、必ずしもフローチャートとして記載された順序に沿って時系列に処理する必要はなく、並列的あるいは個別に実行される処理（例えば、並列処理あるいはオブジェクトによる処理）も含むものである。
【０９４７】
また、プログラムは、１のコンピュータにより処理されるものであっても良いし、複数のコンピュータによって分散処理されるものであっても良い。さらに、プログラムは、遠方のコンピュータに転送されて実行されるものであっても良い。
【０９４８】
ここで、モータデータには、モータを駆動するためのデータの他、広く、外部に働きかける装置、または刺激を与える装置を駆動するためのデータを含む。外部に働きかける装置または刺激を与える装置としては、モータの他、光を発することにより画像を表示するディスプレイや、音声を出力するスピーカ等があり、従って、モータデータには、モータを駆動するためのデータの他、ディスプレイに表示させる画像に対応する画像データや、スピーカから出力する音声に対応する音声データ等が含まれる。
【０９４９】
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【０９５０】
また、本発明は、ロボットの他、例えば、テレビジョン受像機やHDレコーダなどのAV(Audio Visual)機器、コンピュータ、その他の装置における、ユーザインタフェース（ヒューマンインタフェース）に適用することが可能である。
【図面の簡単な説明】
【０９５１】
【図１】制御対象と、順モデルおよび逆モデルとを説明するための図である。
【図２】制御対象としての想定ロボットと、その想定ロボットの順モデルとを示す図である。
【図３】制御対象としてのロボットのアームと、そのアームの逆モデルを利用したアーム制御器とを示す図である。
【図４】線形システムを用いたモデル化を説明するための図である。
【図５】教師あり学習の一例を説明するための図である。
【図６】時系列パターン記憶ネットワークの第１の構成例を示す図である。
【図７】ノードの構成例を示す図である。
【図８】時系列パターン記憶ネットワークの第２の構成例を示す図である。
【図９】時系列パターン記憶ネットワークの第３の構成例を示す図である。
【図１０】時系列パターン記憶ネットワークを用いた処理を行うデータ処理装置の構成例を示すブロック図である。
【図１１】学習部４の構成例を示すブロック図である。
【図１２】学習処理部３２の構成例を示すブロック図である。
【図１３】更新重みを決定する決定方法を説明するための図である。
【図１４】学習データ記憶部２２に記憶させる学習データを更新する更新方法を説明するための図である。
【図１５】学習処理を説明するフローチャートである。
【図１６】認識部３の構成例を示すブロック図である。
【図１７】認識処理を説明するフローチャートである。
【図１８】生成部６の構成例を示すブロック図である。
【図１９】生成処理を説明するフローチャートである。
【図２０】入出力関係モデルの構成例を示す図である。
【図２１】入出力関係モデルを用いた処理を行うデータ処理装置の構成例を示すブロック図である。
【図２２】入出力関係モデルの学習を説明するフローチャートである。
【図２３】結合重み行列を示す図である。
【図２４】入出力関係モデルを用いて、出力データまたは制御データを予測する処理を説明するフローチャートである。
【図２５】実時間性が要求されるタスクを行うロボットの構成例を示すブロック図である。
【図２６】入出力関係モデルM11を示す図である。
【図２７】データ抽出部２１３の処理を説明するための図である。
【図２８】読み出し部３３２の処理を説明するための図である。
【図２９】入出力関係モデルM11の学習を説明するためのフローチャートである。
【図３０】入出力関係モデルM11を用いて時系列データを生成する認識生成処理を説明するフローチャートである。
【図３１】予測SOMモデルを示す図である。
【図３２】新SOMを示す図である。
【図３３】階層SOMを利用したロボットの構成例を示すブロック図である。
【図３４】階層SOMを模式的に示す図である。
【図３５】実験に用いた階層SOMを模式的を示す図である。
【図３６】フレーム単位のSOM入力データの抽出の方法を説明する図である。
【図３７】階層SOMを構成するSOMのうちの、最下位階層のSOMの学習の学習手順を説明する図である。
【図３８】新SOMの自己組織化学習の結果の例を示す図である。
【図３９】階層SOMを構成するSOMのうちの、最下位階層より上位階層の上位SOMの学習の学習手順を説明する図である。
【図４０】認識生成処理を行う階層SOMを説明する図である。
【図４１】認識生成処理の第１の処理手順（アルゴリズム１）を説明する図である。
【図４２】認識生成処理の実験の結果を説明する図である。
【図４３】階層SOMを模式的に示す図である。
【図４４】Single Layerの確率伝搬を説明する図である。
【図４５】時系列階層SOMモデルを説明する図である。
【図４６】Loopy BP of 2 layer dynamic graph modelを説明する図である。
【図４７】階層SOMの確率伝搬を説明する図である。
【図４８】SOMの発火と確率分布を説明する図である。
【図４９】認識生成処理の第２の処理手順（アルゴリズム２）を説明する図である。
【図５０】Particle Filterの使い方を説明する図である。
【図５１】Particle Filterの使い方を説明する図である。
【図５２】認識生成処理の第３の処理手順（アルゴリズム３）を説明する図である。
【図５３】Bayesian Networkの解法を適用した階層SOMを説明する図である。
【図５４】Bayesian Networkの解法を適用した階層SOMを説明する図である。
【図５５】Polytree構成をしたBayesian Networkを適用した階層SOMを説明する図である。
【図５６】Polytree構成をしたBayesian Networkを適用した階層SOMを構成するSOMどうしでやりとりされるメッセージを説明する図である。
【図５７】認識生成処理の第４の処理手順（アルゴリズム４）を説明する図である。
【図５８】本発明を適用したコンピュータの一実施の形態の構成例を示すブロック図である。
【符号の説明】
【０９５２】
１  信号入力部，  ２  特徴抽出部，  ３  認識部，  ４  学習部，  ５  記憶部，  ６  生成部，  ２１  時系列パターンモデル，  ２２  学習データ記憶部，  ３１  時系列データ記憶部，  ３２  学習処理部，  ４１  スコア計算部，  ４２  勝者ノード決定部，  ４３  重み決定部，  ４４  学習データ更新部，  ４５  モデル学習部，  ５１  スコア計算部，  ５２  勝者ノード決定部，  ５３  出力部，  ６１  生成ノード決定部，  ６２  時系列決定部，  ６３  出力部，  ２１１  記憶部，  ２１２  学習部，  ２１３  認識生成部，  ２２１  学習処理部，  ２２２  結合重み更新部，  ２３１  スコア計算部，  ２３２  勝者ノード決定部，  ２３３  生成ノード決定部，  ２３４  時系列生成部，  ３０１  データ処理装置，  ３０２  センサ，  ３０３  モータ駆動部，  ３１１  記憶部，  ３１２  データ抽出部，  ３１３  学習処理部，  ３１４  写像学習部，  ３１５  データ抽出部，  ３１６  認識部，  ３１７  写像部，  ３１８  生成部，  ３２１  認識学習処理部，  ３２２  生成学習処理部，  ３３１  データバッファ，
３３２  読み出し部，  ３３３  結合重み更新部，  ３４１  スコア計算部，  ３４２
勝者ノード決定部，  ３５１  生成ノード決定部，  ３６１  時系列生成部，  ５０１
データ処理装置，  ５１１  記憶部，  ５１２  データ抽出部，  ５１３  学習部，  ５１４  データ抽出部，  ５１５  認識生成部，  １０１０１  バス，  １０１０２  CPU，  １０１０３  ROM，  １０１０４  RAM，  １０１０５  ハードディスク，  １０１０６  出力部，  １０１０７  入力部，  １０１０８  通信部，  １０１０９  ドライブ，  １０１１０  入出力インタフェース，  １０１１１  リムーバブル記録媒体
【図１】
2007299365.tif 000038
【図２】
2007299365.tif 000039
【図３】
2007299365.tif 000040
【図４】
2007299365.tif 000041
【図５】
2007299365.tif 000042
【図６】
2007299365.tif 000043
【図７】
2007299365.tif 000044
【図８】
2007299365.tif 000045
【図９】
2007299365.tif 000046
【図１０】
2007299365.tif 000047
【図１１】
2007299365.tif 000048
【図１２】
2007299365.tif 000049
【図１３】
2007299365.tif 000050
【図１４】
2007299365.tif 000051
【図１５】
2007299365.tif 000052
【図１６】
2007299365.tif 000053
【図１７】
2007299365.tif 000054
【図１８】
2007299365.tif 000055
【図１９】
2007299365.tif 000056
【図２０】
2007299365.tif 000057
【図２１】
2007299365.tif 000058
【図２２】
2007299365.tif 000059
【図２３】
2007299365.tif 000060
【図２４】
2007299365.tif 000061
【図２５】
2007299365.tif 000062
【図２６】
2007299365.tif 000063
【図２７】
2007299365.tif 000064
【図２８】
2007299365.tif 000065
【図２９】
2007299365.tif 000066
【図３０】
2007299365.tif 000067
【図３１】
2007299365.tif 000068
【図３２】
2007299365.tif 000069
【図３３】
2007299365.tif 000070
【図３４】
2007299365.tif 000071
【図３５】
2007299365.tif 000072
【図３６】
2007299365.tif 000073
【図３７】
2007299365.tif 000074
【図３８】
2007299365.tif 000075
【図３９】
2007299365.tif 000076
【図４０】
2007299365.tif 000077
【図４１】
2007299365.tif 000078
【図４２】
2007299365.tif 000079
【図４３】
2007299365.tif 000080
【図４４】
2007299365.tif 000081
【図４５】
2007299365.tif 000082
【図４６】
2007299365.tif 000083
【図４７】
2007299365.tif 000084
【図４８】
2007299365.tif 000085
【図４９】
2007299365.tif 000086
【図５０】
2007299365.tif 000087
【図５１】
2007299365.tif 000088
【図５２】
2007299365.tif 000089
【図５３】
2007299365.tif 000090
【図５４】
2007299365.tif 000091
【図５５】
2007299365.tif 000092
【図５６】
2007299365.tif 000093
【図５７】
2007299365.tif 000094
【図５８】
2007299365.tif 000095