JP2007299365A - データ処理装置、データ処理方法、及びプログラム - Google Patents

データ処理装置、データ処理方法、及びプログラム Download PDF

Info

Publication number
JP2007299365A
JP2007299365A JP2006215946A JP2006215946A JP2007299365A JP 2007299365 A JP2007299365 A JP 2007299365A JP 2006215946 A JP2006215946 A JP 2006215946A JP 2006215946 A JP2006215946 A JP 2006215946A JP 2007299365 A JP2007299365 A JP 2007299365A
Authority
JP
Japan
Prior art keywords
som
data
node
time
learning
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2006215946A
Other languages
English (en)
Other versions
JP4169063B2 (ja
Inventor
Kotaro Sabe
浩太郎 佐部
Kazumi Aoyama
一美 青山
Jun Yokono
順 横野
Kenichi Hidai
健一 日台
Kuniaki Noda
邦昭 野田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2006215946A priority Critical patent/JP4169063B2/ja
Priority to US11/697,238 priority patent/US7783585B2/en
Publication of JP2007299365A publication Critical patent/JP2007299365A/ja
Application granted granted Critical
Publication of JP4169063B2 publication Critical patent/JP4169063B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/088Non-supervised learning, e.g. competitive learning
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1602Programme controls characterised by the control system, structure, architecture
    • B25J9/161Hardware, e.g. neural networks, fuzzy logic, interfaces, processor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks

Abstract

【課題】大規模な学習を、実用的に行う。
【解決手段】複数のSOM(Self-Organization Map)が階層構造を構成するように接続された階層SOMを構成するSOMの自己組織的な学習を、時系列データであるSOM入力データを用いて行うとともに、所定のフレーム長のSOM入力データに対するSOMの勝者ノードと、次の時刻の前記フレーム長のSOM入力データに対するSOMの勝者ノードとの結合の度合いを表す結合重みを強めるように更新する予測学習を行い、かつ、階層SOMを構成する複数のSOMのうちの注目している注目SOMの自己組織的な学習と予測学習とを、注目SOMの下位階層のSOMである下位SOMの勝者ノードを表すノード情報の時系列をSOM入力データとして用いて行う。本発明は、例えば、ロボットなどに適用できる。
【選択図】図34

Description

本発明は、データ処理装置、データ処理方法、及びプログラムに関し、特に、例えば、ロボット等において、大規模な学習を、実用的に行い、自律的に行動すること等ができるようにするデータ処理装置、データ処理方法、及びプログラムに関する。
例えば、自律的にタスクを行うロボットの実現には、順モデルまたは逆モデルを利用することができる。
図1は、順モデルと逆モデルの概念を示している。
ある時系列データ(時系列のデータ)としての入力データに対して、他の時系列データとしての出力データを出力する制御対象が与えられ、制御対象に関する詳細な情報はわからないが(制御対象の内部がわからないが)、制御対象に与えられる入力データと、その入力データに対して制御対象から得られる出力データは観測することができることとする。
ここで、制御対象に与えられる入力データと、その入力データに対して制御対象から得られる出力データとは、観測することができれば、どのような物理量でも良い。また、制御対象は、入力データを与えることができ、かつ、その入力データに対して出力データを得ることができるものであれば、どのような対象(もの)でも良い。
従って、例えば、ボールや、楽器、自動車、ガスヒータその他の種々のものが、制御対象となり得る。即ち、例えば、ボールについては、入力データとしての力を加える(与える)ことで、その入力データに対して変化する出力データとしてのボールの位置や速度が得られる。また、例えば、自動車については、入力データとしてのハンドルや、アクセル、ブレーキなどの操作をする(与える)ことで、その入力データに対して変化する出力データとしての自動車の位置や速度を得ることができる。さらに、例えば、ガスヒータについては、入力データとしての火力を調整する操作をすることで、その入力データに対して変化する出力データとしての部屋の温度を得ることができる。
以上のように、制御対象に入力データを与え、それに対して出力データが得られる場合に、その制御対象をモデル化したもの(モデル)が順モデルである。
順モデルは、入力データを入力すると(入力データが与えられると)、その入力データに対して、制御対象から得られる出力データの予測値を出力する。従って、順モデルによれば、制御対象に対して、実際の入力データを与えなくても、その入力データに対して、制御対象から得られる出力データを予測することができる。
一方、制御対象から得られる出力データの目標値を決定し、その目標値となる出力データを得るために、制御対象に与えるべき入力データを予測することができるモデルが逆モデルである。順モデルは、入力データから出力データへの写像とみなすことができるが、その逆写像が逆モデルである。
ここで、逆モデルによって求められる、目標値となる出力データを得るために、制御対象に与えるべき入力データを、以下、適宜、制御データともいう。
以上のような順モデルや逆モデルは、上述したように、ロボット(の構成)に利用することができる。
即ち、いま、ロボットが、マイク(マイクロフォン)やカメラを備え、音声(音)データや画像データを入力することができ、かつ、スピーカやアクチュエータ(モータ)を備え、音声(音声データ)を出力し、また、モータデータ(モータ信号)にしたがってモータが駆動することにより、アームを動かすことができることとする。
かかるロボットにおいて、ある音声データや画像データなどの入力データに応じて、出力データとしての音声データを出力させ、また、所望のアームの動作をさせる出力データとしてのモータデータを出力させる場合、従来においては、音声認識装置や画像認識装置を用いて、ロボットに入力される音声データや画像データを認識した認識結果に応じて、どのような音声データを出力するべきか、あるいは、どのようなモータデータを出力するべきかを、あらかじめプログラミング(デザイン)しておくことが行われる。
これに対して、順モデルを利用すれば、図2に示すように、ある音声データや画像データに応じて、所望の音声データや、所望のアーム動作をさせるモータデータを出力するロボットを制御対象として想定し、その制御対象として想定したロボット(以下、適宜、想定ロボットと呼ぶ)の順モデルとして、実際のロボットを構成することが可能となる。即ち、想定ロボットに対する入力データと出力データの関係を、実際のロボットに学習させることができれば、想定ロボットの順モデルとしてのロボットを構成することができる。
具体的には、想定ロボットに入力する音声データや画像データなどの入力データと、想定ロボットが各入力データに対応して出力すべき音声データやモータデータなどの出力データとのセットをあらかじめ用意し、実際のロボットに与える。実際のロボットにおいて、外部から与えられた入力データと出力データのセット(以下、適宜、教示データという)だけを用いて、入力データに対応する出力データを予測する(出力する)想定ロボットの順モデルを求めることができれば、実際に入力される音声データや画像データなどの入力データに応じて、所望の音声データやモータデータなどの出力データを出力することが可能となる。
また、逆モデルを利用すれば、図3に示すように、ロボットのアームを制御対象として、その制御対象であるアームを制御するアーム制御器を構成することが可能となる。
即ち、いま、ロボットのアームが、入力データとしてのモータデータに応じて駆動するモータによって動き、その結果、アームの先端の位置が変化するとする。さらに、ロボットの重心を原点とし、ロボットの前方(正面)方向をx軸と、(ロボットから見て)右方向をy軸と、上方向をz軸と、それぞれする3次元座標系に基づき、その3次元座標系の(x,y,z)座標でアームの先端の位置を表すこととする。この場合、モータデータに応じてモータが駆動し、さらにアームの先端の位置が変化することで、アームの先端がある軌跡を描く。ここで、アームの先端が描く軌跡(先端位置軌跡)の座標のシーケンスを、先端位置軌跡データという。
アームが所望の先端位置軌跡を描くようにするには、つまり、出力データとしての所望の先端位置軌跡データを出力するようにするには、アームがそのような先端位置軌跡を描くようにモータを駆動するモータデータを、入力データとしてモータに与える必要がある。
いま、入力データとしてのモータデータと、そのモータデータがモータに与えられたときの出力データとしての先端位置軌跡データとのセットである教示データだけを用いて、出力データとしての、ある先端位置軌跡データを目標値として得ることができる入力データ(制御データ)としてのモータデータを予測するアームの逆モデルを求めることができれば、その逆モデルは、目標値である先端位置軌跡データに対して、対応するモータデータを決定するアーム制御器に利用することができる。
このようなアームの逆モデルとしてのアーム制御器によれば、ロボットに対して、入力データとしての先端位置軌跡データを入力すると、ロボットは、アーム制御器を用いることで、対応するモータデータ(制御データ)を決定することができる。そして、ロボットが、このモータデータにしたがってモータを駆動すれば、ロボットのアームは、入力データとしての先端位置軌跡データに対応した軌跡を描くように移動する。
以上のように、入力データと出力データとのセット(教示データ)だけを用いて、順モデルや逆モデルを求めることができれば、その順モデルや逆モデルを用いて、各入力データに応じた出力データを出力するロボットを、容易に構成することが可能となる。
以上のような順モデルや逆モデルを求める方法としては、線形システムを用いたモデル化がある。
線形システムを用いたモデル化では、例えば、図4に示すように、時刻tにおける、制御対象への入力データをu(t)とするとともに、出力データをy(t)として、出力データy(t)と入力データu(t)との関係、つまり制御対象を、例えば、式(1)および式(2)で与えられる線形システムとして近似する。
Figure 2007299365
・・・(1)
Figure 2007299365
・・・(2)
ここで、x(t)は、時刻tにおける線形システムの状態変数と呼ばれ、A,B,Cは係数である。また、ここでは、説明を簡単にするために、入力データu(t)および出力データy(t)を1次元ベクトル(スカラ)とするとともに、状態変数x(t)をn次元ベクトルとすると(ここでは、nは2以上の整数値)、A,B,Cは、それぞれn×n行列、n×1行列、1×n行列で与えられる定数の行列となる。
線形システムを用いたモデル化では、観測することができる入力データu(t)と、その入力データu(t)が制御対象に与えられたときに観測される出力データy(t)との関係が、式(1)および式(2)を満たすように、行例A,B,Cを決定することで、制御対象の順モデルが得られる。
しかしながら、線形システムを用いたモデル化は、複雑な制御対象、即ち、例えば、非線形な特性を持つ制御対象をモデル化するには十分ではない。
即ち、現実の制御対象は複雑であり、非線形な特性を有することが少なくないが、かかる制御対象を、単純な線形システムとして近似してモデル化すると、順モデルが入力データに対して予測する出力データや、逆モデルが出力データに対して予測する入力データ(制御データ)の予測誤差が大になり、高精度の予測を行うことが困難となる。
そこで、非線形な特性を持つ制御対象に対する順モデルや逆モデルを得る方法としては、例えば、ニューラルネットワークを用いて、教示データ、即ち、制御対象に与えられる入力データと、その入力データが与えられたときに制御対象から観測される出力データとのセットを学習する方法がある。ここで、ニューラルネットワークとは、生体の神経細胞(ニューロン)を模擬した人工素子を相互接続して構成されるネットワークであり、外部から与えられる教示データの関係、つまり、入力データと出力データとの関係を学習することができる。
しかしながら、ニューラルネットワークによって、制御対象を適切にモデル化するには、制御対象の複雑性に応じて、ニューラルネットワークの規模を大にする必要がある。ニューラルネットワークの規模が大になると、学習に要する時間が飛躍的に増大し、また、安定した学習も難しくなる。このことは、入力データや出力データの次元数が大である場合も同様である。
一方、入力データと出力データとのセット(教示データ)だけを用いて、順モデルや逆モデルを求める場合には、教示データを用いて学習を行い、教示データが、幾つかのパターンのうちのいずれに該当するかを認識する必要がある。即ち、教示データとしての入力データや出力データのパターンを学習して認識する必要がある。
パターンを学習して認識を行う技術は、一般にパターン認識(pattern recognition)と呼ばれ、パターン認識における学習は、教師あり学習(supervised learning)と、教師なし学習(unsupervised learning)とに分けることができる。
教師あり学習とは、各パターンの学習データがどのクラスに属するかの情報(これを正解ラベルと呼ぶ)を与えて、各パターンごとに、そのパターンに属する学習データを学習する方法であり、ニューラルネットワークや、HMM(Hidden Markov Model)などを用いた学習方法が数多く提案されている。
ここで、図5は、教師あり学習の一例を示している。
教師あり学習では、学習に利用する学習データが、想定したカテゴリ(クラス)(例えば、各音素のカテゴリや、各音韻のカテゴリ、各単語のカテゴリなど)ごとに用意される。例えば、”A”,”B”,”C”という発声の音声データを学習する場合、”A”,”B”,”C”それぞれの多数の音声データが用意されることになる。
一方、学習に利用するモデル(各カテゴリの学習データを学習させるモデル)も、想定したカテゴリごとに用意される。ここで、モデルは、パラメータによって定義される。例えば、音声データの学習には、モデルとして、HMMなどが用いられるが、HMMは、ある状態から他の状態(元の状態を含む)に遷移する状態遷移確率や、HMMから出力される観測値の確率密度を表す出力確率密度関数などによって定義される。
教師あり学習では、各カテゴリ(クラス)のモデルの学習が、そのカテゴリの学習データのみを用いて行われる。即ち、図5では、カテゴリ”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に関しては、例えば、非特許文献1に記載されている。
ところで、ロボットの実世界での振る舞い(行動)をより自然にするため、ロボット自身が自分の行動を通して認知行動の構造を獲得するための枠組みの研究が行われている。ここで、認知行動とは、例えば、ロボット等が、外部の状態(ロボット自身の状態も含む)を認知(認識)し、その認知結果に応じて行動をとることを意味する。
ロボットに認知行動を行わせるには、例えば、外部の状態を検知するセンサが出力するセンサデータに対して、ロボットを駆動するモータに供給されるモータデータとして、適切なモータデータを求める必要がある。
一般に、センサが出力するセンサデータと、モータに供給されるモータデータとは、いずれも連続的な時系列データである。また、実世界での認知行動を行うロボットでは、センサデータやモータデータとして、次元数の大きなデータを扱う必要がある。さらに、かかるロボットで扱うセンサデータやモータデータの振る舞いは複雑であり、線形システムでモデル化することは困難である。
そこで、センサデータやモータデータのような時系列データのパターンである時系列パターンを表現する時系列パターンモデルを有する複数のノードから構成される時系列パターン記憶ネットワークによって、多次元のベクトルの時系列であるセンサデータやモータデータなどの時系列データを自己組織的に学習し、さらに、入力データとしての時系列データを学習した時系列パターン記憶ネットワークと、出力データとしての時系列データを学習した時系列パターン記憶ネットワークとのノードどうしを結合し、入力データに基づき、外部の状態を認知し、その認知結果に応じてロボットがとるべき行動に対応する出力データを生成する方法について、本件出願人は、先に提案している(例えば、特許文献参照)。
ここで、時系列パターン記憶ネットワークは、複数のノードから構成され、自己組織的な学習を行うことができる点で、従来のSOMと共通し、従って、SOMの範疇に含まれるので、SOMの一種であるということができる。但し、時系列パターン記憶ネットワークは、ノードが時系列パターンモデルを有し、その時系列パターンモデルによって記憶構造の中に、時系列パターンを保持することができる点で、従来のSOMとは異なる。
特開2006−162898号公報 T.コホネン、「自己組織化マップ」、シュプリンガー・フェアラーク東京
ところで、時系列データの学習は、例えば、時系列データを、固定の長さに区切ることにより、ニューラルネットワークで行うことができる。即ち、時系列データを、固定の長さに区切り、その固定の長さの時系列データをコンポーネントとするベクトルを、ニューラルネットワークに入力として与えることにより、時系列データを、ニューラルネットワークで学習することができる。
しかしながら、ニューラルネットワークに与える入力の次元数が大であるような、いわば大規模な学習を、1つのニューラルネットワークで行うことは、演算量が飛躍的に増大することから、実用的なレベルでは困難である。
本発明は、このような状況に鑑みてなされたものであり、大規模な学習を、実用的に行うことができるようにするものである。
本発明の第1の側面のデータ処理装置は、時系列データを処理するデータ処理装置であり、複数のSOM(Self-Organization Map)が階層構造を構成するように接続された階層SOMを構成するSOMの自己組織的な学習を、そのSOMの下位階層のSOMである下位SOMの勝者ノードを表すノード情報の時系列を、SOMへの入力であるSOM入力データとして用いて行う学習手段を備える。
本発明の第1の側面のデータ処理方法、又はプログラムは、時系列データを処理するデータ処理方法、又は時系列データを処理するデータ処理を、コンピュータに実行させるプログラムであり、複数のSOM(Self-Organization Map)が階層構造を構成するように接続された階層SOMを構成するSOMの自己組織的な学習を、そのSOMの下位階層のSOMである下位SOMの勝者ノードを表すノード情報の時系列を、SOMへの入力であるSOM入力データとして用いて行うステップを含む。
以上のような第1の側面においては、複数のSOMが階層構造を構成するように接続された階層SOMを構成するSOMの自己組織的な学習が、そのSOMの下位階層のSOMである下位SOMの勝者ノードを表すノード情報の時系列を、SOM入力データとして用いて行われる。
本発明の第2の側面のデータ処理装置は、時系列データを処理するデータ処理装置であり、複数のSOM(Self-Organization Map)が階層構造を構成するように接続された階層SOMを記憶する記憶手段と、前記階層SOMを用いて、ある時刻の時系列データの次の時刻の時系列データを予測した予測時系列データを生成する認識生成手段とを備える。
本発明の第2の側面のデータ処理方法、又はプログラムは、時系列データを処理するデータ処理方法、又は時系列データを処理するデータ処理を、コンピュータに実行させるプログラムであり、複数のSOM(Self-Organization Map)が階層構造を構成するように接続された階層SOMを用いて、ある時刻の時系列データの次の時刻の時系列データを予測した予測時系列データを生成するステップを含む。
以上のような第2の側面においては、複数のSOMが階層構造を構成するように接続された階層SOMを用いて、ある時刻の時系列データの次の時刻の時系列データを予測した予測時系列データが生成される。
なお、プログラムは、記録媒体に記録し、また、伝送媒体を介して伝送することができる。
本発明の第1の側面によれば、大規模な学習を、実用的に行うことができる。
また、本発明の第2の側面によれば、次の時刻の時系列データを予測した予測時系列データを生成することができる。
以下に本発明の実施の形態を説明するが、本発明の構成要件と、明細書又は図面に記載の実施の形態との対応関係を例示すると、次のようになる。この記載は、本発明をサポートする実施の形態が、明細書又は図面に記載されていることを確認するためのものである。従って、明細書又は図面中には記載されているが、本発明の構成要件に対応する実施の形態として、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その構成要件に対応するものではないことを意味するものではない。逆に、実施の形態が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
本発明の第1の側面のデータ処理装置は、
時系列データを処理するデータ処理装置(例えば、図33のデータ処理装置501)であり、
複数のSOM(Self-Organization Map)が階層構造を構成するように接続された階層SOMを構成するSOMの自己組織的な学習を、そのSOMの下位階層のSOMである下位SOMの勝者ノードを表すノード情報の時系列を、SOMへの入力であるSOM入力データとして用いて行う学習手段(例えば、図33の学習部513)
を備える。
第1の側面のデータ処理装置には、
自己組織的な学習と予測学習とが行われた前記階層SOMを用いて、ある時刻の時系列データの次の時刻の時系列データを予測した予測時系列データを生成する認識生成手段(例えば、図33の認識生成部515)をさらに設けることができる。
本発明の第1の側面のデータ処理方法、又はプログラムは、
時系列データを処理するデータ処理方法、又は時系列データを処理するデータ処理を、コンピュータに実行させるプログラムであり、
複数のSOM(Self-Organization Map)が階層構造を構成するように接続された階層SOMを構成するSOMの自己組織的な学習を、そのSOMの下位階層のSOMである下位SOMの勝者ノードを表すノード情報の時系列を、SOMへの入力であるSOM入力データとして用いて行うステップ(図39のステップS521ないしS525)
を含む。
本発明の第2の側面のデータ処理装置は、
時系列データを処理するデータ処理装置(例えば、図33のデータ処理装置501)であり、
複数のSOM(Self-Organization Map)が階層構造を構成するように接続された階層SOMを記憶する記憶手段(例えば、図33の記憶部511)と、
前記階層SOMを用いて、ある時刻の時系列データの次の時刻の時系列データを予測した予測時系列データを生成する認識生成手段(例えば、図33の認識生成部515)と
を備える。
本発明の第2の側面のデータ処理方法、又はプログラムは、
時系列データを処理するデータ処理方法、又は時系列データを処理するデータ処理を、コンピュータに実行させるプログラムであり、
複数のSOM(Self-Organization Map)が階層構造を構成するように接続された階層SOMを用いて、ある時刻の時系列データの次の時刻の時系列データを予測した予測時系列データを生成するステップ(例えば、図41のステップS541ないしS560や、図49のステップS601ないしS620、図52のステップS701ないしS723、図57のステップS801ないし824)
を含む。
なお、第1及び第2の側面のデータ処理装置において、
前記認識生成手段は、
下位階層から上位階層に向かう順序で、
前記階層SOMの各SOMについて、勝者ノードとなるノードを求め(例えば、図41のステップS544)、
上位階層から下位階層に向かう順序で、
前記階層SOMの、上位階層のSOMである上位SOMがないSOMについては、前記勝者ノードの前記結合重みに基づいて、次の時刻において勝者ノードとなると予測されるノードである予測ノードを求め(例えば、図41のステップS554)、
前記階層SOMの、上位SOMがあるSOMについては、前記勝者ノードの前記結合重みと、上位SOMの予測ノードとに基づいて、予測ノードを求め(例えば、図41のステップS552)、
前記階層SOMを構成する複数のSOMのうちの最下位階層のSOMの予測ノードを用いて、前記予測時系列データを生成する(例えば、図41のステップS559)
ことができる。
さらに、第1及び第2の側面のデータ処理装置において、
前記認識生成手段は、
下位階層から上位階層に向かう順序で、SOMにおいて、勝者ノードとなるノードを求め、前記勝者ノードを表すノード情報の時系列を、上位階層のSOMである上位SOMへのSOM入力データとし(例えば、図41のステップS544及びS545や、図49のステップS607)、
上位階層から下位階層に向かう順序で、次の時刻において勝者ノードとなると予測されるSOMのノードである予測ノードを、そのSOMの上位SOMの予測ノードに基づいて求める(例えば、図41のステップS552や、図49のステップS614)
ことができる。
また、第1及び第2の側面のデータ処理装置において、
前記認識生成手段は、
さらに、SOMにおいて勝者ノードが遷移する確率である遷移確率を、前記結合重みに基づいて求め(例えば、図49のステップS612)、
注目SOMの予測ノードを、注目SOMの前記遷移確率と、注目SOMの上位SOMの予測ノードとに基づいて求める(例えば、図49のステップS615)
ことができる。
さらに、第1及び第2の側面のデータ処理装置において、
前記認識生成手段は、
下位階層から上位階層に向かう順序で、
前記階層SOMを構成するSOMのノードにおいてSOM入力データが観測される観測尤度を求め(例えば、図49のステップS605)、
前記観測尤度に基づいて、SOMのノードが勝者ノードである確率を表す、現在時刻の状態確率を求め(例えば、図49のステップS606)、
前記現在時刻の状態確率に基づいて、SOMの勝者ノードを求め(例えば、図49のステップS607)、
注目SOMの勝者ノードを表すノード情報の時系列を、その注目SOMの上位SOMへのSOM入力データとし(例えば、図49のステップS607)、
上位階層から下位階層に向かう順序で、
注目SOMの遷移確率を、前記結合重みを用いて求め(例えば、図49のステップS612)、
注目SOMの遷移確率と、前記注目SOMの上位SOMの予測ノードとに基づいて、次の時刻の状態確率を求め(例えば、図49のステップS614)、
前記次の時刻の状態確率に基づいて、前記注目SOMの予測ノードを求め(例えば、図49のステップS615)、
前記階層SOMを構成する複数のSOMのうちの最下位階層のSOMの予測ノードを用いて、前記予測時系列データを生成する(例えば、図49のステップS617)
ことができる。
以下、図面を参照して、本発明の実施の形態について説明するが、その前段階の準備として、時系列パターン記憶ネットワークについて説明する。
図6は、時系列パターン記憶ネットワークの例を模式的に示している。
時系列パターン記憶ネットワークは、時系列パターンを表現する時系列パターンモデルを有する複数のノードから構成されるネットワークで、そのネットワーク全体で、ノードの数だけの(クラス分けを行う)時系列パターンを記憶する。
図6においては、時系列パターン記憶ネットワークは、ノードN1乃至N6の6つのノードから構成されている。
時系列パターン記憶ネットワークを構成する各ノードNi(図6では、i=1,2,・・・,6)は、時系列パターンを表現する時系列パターンモデルを有する。また、ノードNiは、他のノードNj(図6では、j=1,2,・・・,6)と結合関係を持つことができる。この結合関係をリンクと呼ぶ。図6では、例えば、ノードN1は、ノードN2,N3と直接の結合関係を有している。また、例えば、ノードN3は、ノードN1,N2,N5,N6と直接の結合関係を有しており、従って、ノードN5とN6は、ノードN3を介して、ノードN1と間接的な結合関係を有している。なお、2つのノードNiとNjとの結合関係としては、その2つのノードNiとNjとの最短の結合関係を考えるものとする。
時系列パターン記憶ネットワークの学習(時系列パターン記憶ネットワークに時系列パターンを記憶させる学習)は、時系列データを、学習用の学習データとして行われるが、この学習データは、カテゴリの種類や、カテゴリの数が未知のもので、この点、時系列パターン記憶ネットワークの学習は、前述の図5で説明した教師あり学習と大きく異なる。また、時系列パターン記憶ネットワークの学習に用いられる学習データには、正解ラベルは付与されていない。このため、時系列パターン記憶ネットワークの学習には、前述の図5で説明した教師あり学習を適用することはできない。
このように、時系列パターン記憶ネットワークの学習には、教師あり学習を適用することができず、また、学習データは、そのカテゴリの種類も、カテゴリの数も未知である。そこで、時系列パターン記憶ネットワークの学習は、その全体(のノード)によって、学習データの特徴(時系列パターン)を適切に表現することができるように、自己組織的に行われる。
なお、時系列パターン記憶ネットワークの学習は、教師なし学習である。また、時系列パターン記憶ネットワークの学習は、ある1つのノードが、必ずしもある1つのカテゴリに対応するように行われるとは限らない。即ち、時系列パターン記憶ネットワークにおいては、1つのノードが1つのカテゴリに対応するように学習が行われる場合もあるし、複数のノードが1つのカテゴリに対応するように学習が行われる場合もある。さらに、1つのノードが複数のカテゴリに対応するように学習が行われる場合もある。従って、仮に、学習データが、明確にカテゴリ分けすることができないものであっても、時系列パターン記憶ネットワークによる学習は行うことができる。
次に、図7は、時系列パターン記憶ネットワークのノードNiの構成例を模式的に示している。
ノードNiは、時系列パターンを表現する時系列パターンモデル21と、その時系列パターンモデル21の学習に用いる学習データを記憶する学習データ記憶部22とから構成される。
ここで、図7では、時系列パターンモデル21として、状態確率遷移モデルの1つであるHMM(連続HMM)が採用されている。また、図7では、HMMは、自己ループと次状態(右隣の状態)への状態遷移だけを有するleft-to-right型の3状態S1,S2,S3を有するものとなっている。図7の時系列パターンモデル21における○印は状態を表し、矢印は状態遷移を表している。なお、時系列パターンモデル21としてのHMMは、left-to-right型や、3状態のもの等に限定されない。
時系列パターンモデル21が、図7に示したようなHMMである場合、その時系列パターンモデル21としてのHMMは、状態遷移確率と出力確率密度関数(HMMが離散HMMである場合には、スカラ量である離散的なシンボルが出力される確率)とで定義される。
状態遷移確率は、HMMにおいて、状態が遷移する確率で、図7の時系列パターンモデル21における矢印で示した状態遷移それぞれに対して与えられる。出力確率密度関数は、状態遷移時に、HMMから観測される値の確率密度を表す。出力確率密度関数としては、例えば、混合正規分布などが採用される。これらのHMMのパラメータ(状態遷移確率と出力確率密度関数)は、例えば、Baum-Welch法によって学習(推定)することができる。
ノードNiでは、学習データ記憶部22に記憶された学習データの統計的な特性、即ち、学習データ記憶部22に記憶された学習データの時系列パターンが、時系列パターンモデル21において学習され、これにより、時系列パターンモデル21と、学習データ記憶部22に記憶された学習データとが、対応関係を持つことになる。
なお、時系列パターン記憶ネットワークの学習、ひいては、ノードNiの時系列パターンモデル21の学習は、時系列パターン記憶ネットワークに対して、時系列データが与えられるごとに学習を行うオンライン学習によって行われる。従って、時系列パターン記憶ネットワークのパラメータ、つまり、ノードNiの時系列パターンモデル21のパラメータ(時系列パターンモデル21がHMMである場合には、上述したように、状態遷移確率と出力確率密度関数)は、時系列パターン記憶ネットワークに対して、時系列データが与えられるたびに、少しずつ更新される。
即ち、後述するように、時系列パターン記憶ネットワークの学習が進むにつれ、学習データ記憶部22に記憶される学習データは、時系列パターン記憶ネットワークに与えられた時系列データによって更新され、これにより、少しずつ変化する。そして、その少しずつ変化する学習データによって、時系列パターンモデル21の学習が行われることにより、その時系列パターンモデル21のパラメータも、少しずつ変化していく。
但し、時系列パターン記憶ネットワークの学習は、バッチ学習によって行うことも可能である。
次に、図8は、時系列パターン記憶ネットワークの他の例を模式的に示している。
図8では、時系列パターン記憶ネットワークは、9個のノードN1乃至N9で構成されており、この9個のノードN1乃至N9は、2次元的に配置されている。即ち、図8では、9個のノードN1乃至N9は、2次元平面上に、横×縦が3×3となるように配置されている。
さらに、図8では、2次元的に配置された9個のノードN1乃至N9の、横方向に隣接するノードどうしと、縦方向に隣接するノードどうしに対して、リンク(結合関係)が与えられている。なお、このようなリンクを与えることによって、時系列パターン記憶ネットワークを構成するノードには、空間的に、2次元的に配置される配置構造が与えられているということもできる。
時系列パターン記憶ネットワークでは、リンクによって与えられる空間的なノードの配置構造に基づき、その空間上でのある2つのノードどうしの距離を定義することができ、この2つのノードどうしの距離は、その2つのノードそれぞれが有する時系列パターンモデル21が表現する時系列パターンのパターン間距離(時系列パターンどうしの類似性)として用いることができる。
なお、2つのノードどうしの距離によって表される時系列パターンのパターン間距離は、2つのノードの結合関係(リンク)に基づくパターン間距離ということができる。
2つのノードどうしの距離としては、例えば、その2つのノードどうしを結ぶ最短のパスを構成するリンクの数を採用することができる。この場合、あるノードに注目すると、その注目ノードとの直接のリンクを有するノード(図8では、注目ノードの横方向や縦方向に隣接するノード)は、注目ノードとの距離が最も近く、注目ノードとの直接のリンクを有するノードから先のリンクを辿っていくことで到達することができるノードは、到達するのに辿るリンクの数が多いほど、注目ノードとの距離が遠くなっていく。
なお、ノードに与えるリンクは、図6や図8に示したものに限定されるものではない。また、図6や図8に示したリンクは、ノードに対して、2次元的な配置構造を与えるが、リンクは、その他、1次元的な配置構造や3次元的な配置構造等を与えるリンクであっても良い。さらに、ノードには、必ずしもリンクを与える必要はない。
即ち、図9は、時系列パターン記憶ネットワークのさらに他の例を模式的に示している。
図9では、時系列パターン記憶ネットワークは、図6における場合と同様に、6個のノードN1乃至N6で構成されているが、これらの6個のノードN1乃至N6は、いずれもリンクを有していない。従って、図9の時系列パターン記憶ネットワークを構成するノードN1乃至N6は、リンクによって与えられる空間的な配置構造を有していない。なお、空間的な配置構造を有していないということは、空間的な制約がない配置構造が与えられているということもできる。
ここで、ある2つのノードにリンクがない場合には、空間上でのその2つのノードどうしの距離を定義することはできないから、その2つのノードそれぞれが(有する時系列パターンモデル21が)表現する時系列パターンのパターン間距離として、結合関係(リンク)に基づくパターン間距離は用いることができない。そこで、この場合には、例えば、ノードが、ある時系列データ(の観測値)に適合する度合いに基づく順位(以下、適宜、適合順位という)に対応する値を、パターン間距離として用いることができる。
即ち、ある時系列データが与えられた場合には、その時系列データに対して、ノードが表現する時系列パターンとの類似性を、そのノードが適合する度合いとして求めることができる。そこで、時系列パターン記憶ネットワークを構成するノードのうちの、ある時系列データに最も適合するノードである勝者ノードと、時系列パターン記憶ネットワークのあるノードとのそれぞれが表現する時系列パターンのパターン間距離としては、そのノードが時系列データに適合する度合いの順位(適合順位)に対応する値を採用することができる。
具体的には、時系列パターン記憶ネットワークを構成するノードのうち、勝者ノードとなっているノードの適合順位は第1位であり、このノード(勝者ノード)と勝者ノードとの(それぞれが表現する時系列パターンの)パターン間距離は、例えば、その適合順位から1を減算した0とすることができる。
また、時系列パターン記憶ネットワークを構成するノードのうち、適合順位が第2位のノードと勝者ノードとのパターン間距離は、例えば、その適合順位から1を減算した1とすることができる。以下、同様に、ノードの適合順位から1を減算して得られる値を、そのノードと、勝者ノード(となっているノード)とのパターン間距離とすることができる。
なお、ノードがある時系列データに適合する度合いに基づく順位(適合順位)に対応する値によって表されるパターン間距離は、ノードが時系列データに適合する度合いに基づくパターン間距離ということができる。
次に、図10は、時系列パターン記憶ネットワークを用いて、各種の処理を行うデータ処理装置の構成例を示している。
信号入力部1には、後述する学習処理や認識処理の対象となるデータ(以下、処理対象データという)が入力される。ここで、処理対象データは、例えば、音(音声)や画像、LED(Light Emitting Diode)の明るさ、モータの回転角度や回転角速度などの観測値(外部から観測することができる値(信号))である。また、処理対象データは、例えば、図10のデータ処理装置が適用されるシステムの入力を受け付ける入力デバイス(センサ)が出力するデータであっても良いし、何らかの出力を行う出力デバイスに対して与えられるデータであっても良い。
即ち、図10のデータ処理装置が、例えば、2足歩行ロボットその他のロボットに適用され、その2足歩行ロボットが、外部の状況に応じて、何らかの処理を行う場合には、信号入力部1は、外部の状況をセンシングするセンサで構成することができる。具体的には、信号入力部1は、例えば、マイク(マイクロフォン)やカメラなどで構成することができる。
信号入力部1がマイクで構成される場合には、そのマイクに対して、外部で発生する音声(人間の音声の他、動物の鳴き声、物音、その他のあらゆる音を含む)が、2足歩行ロボット(データ処理装置が適用されているシステム)に対する入力データとして入力され、対応する音声データが、特徴抽出部2に供給される。また、信号入力部1がカメラで構成される場合には、そのカメラに対して、外部からの光が、2足歩行ロボットに対する入力データとして入力され、対応する画像データが、特徴抽出部2に供給される。
また、2足歩行ロボットが、例えば、手や足に相当する部分を、アクチュエータとしてのモータによって動かすことができる場合には、信号入力部1は、そのモータの回転角度や回転速度を計測する計測装置(回転角度や回転速度をセンシングするセンサ)で構成することができる。なお、2足歩行ロボットの手や足に相当する部分を動かすモータは、そのモータを回転駆動させる電気信号としての駆動信号を与える他、手や足に相当する部分に外部から力を加えて動かすことによっても回転するが、計測装置では、そのいずれの回転によって生じた回転角度や回転速度等であっても計測することができる。
信号入力部1が計測装置で構成される場合には、その計測装置に対して、モータの回転角度や回転速度等を表す信号が、2足歩行ロボットからの出力データとして入力されて計測され、その計測結果が、特徴抽出部2に供給される。
なお、信号入力部1に入力される処理対象データは、時間的な変化が一定の定常的なデータ(定常信号)であっても良いし、時間的な変化が一定でない非定常なデータ(非定常信号)であっても良い。
また、以下では、信号入力部1に対しては、例えば、時系列データの1つである音声が入力されるものとする。さらに、信号入力部1から特徴抽出部2に対しては、いわゆる音声区間の音声データだけが供給されるものとする。なお、音声区間の検出方法は、特に限定されるものではない。また、信号入力部1から特徴抽出部2に対して供給される音声データは、必ずしも、音声区間の長さである必要はなく、適切な長さに区切られていればよい。即ち、信号入力部1から特徴抽出部2に対して供給される音声データは、例えば、音素や音韻の単位であっても良いし、単語や文、ある句読点から次の句読点までであっても良い。
ここで、信号入力部1から特徴抽出部2に対して供給される処理対象データは、音声データに限定されるものではなく、その区間も、特に限定されるものではない。即ち、信号入力部1から特徴抽出部2に対しては、最も良い方法で適当な長さに区切られた処理対象データが供給されれば良い。なお、信号入力部1から特徴抽出部2に対して供給される処理対象データ(の区間)は、一定であっても良いし、一定でなくても良い。
特徴抽出部2は、信号入力部1からの処理対象データとしての時系列データである音声データを所定の時間長のデータに区切って分析することにより、特徴量を抽出し、その特徴量の時系列である時系列データを、認識部3と学習部4に供給する。即ち、特徴抽出部2は、信号入力部1からの音声データに対して一定時間間隔で周波数分析などの処理を施し、例えば、メルケプストラム係数(MFCC(Mel Frequency Cepstrum Coefficient))などの特徴量を抽出して、そのメルケプストラム係数の時系列データを、認識部3と学習部4に供給する。なお、特徴抽出部2から認識部3と学習部4に供給される時系列データも、外部から観測することができる観測値である。
認識部3は、記憶部5に記憶された時系列パターン記憶ネットワークに基づき、特徴抽出部2から供給される時系列データを認識し、その認識結果を出力する。
ここで、学習部4は、記憶部5に記憶された時系列パターン記憶ネットワークを、特徴抽出部2から供給される時系列データ(の観測値)に基づいて、自己組織的に更新する学習を行う。即ち、学習部4は、特徴抽出部2から供給される時系列データに基づいて、記憶部5に記憶された時系列パターン記憶ネットワークのパラメータを更新する。
学習部4では、正解ラベルの付与されていない時系列データを繰り返し与えると、その与えられた時系列データの中の特徴的なパターン(時系列パターン)を自己組織的に獲得していく教師なし学習が実行される。その結果、記憶部5の時系列パターン記憶ネットワークには、代表的な時系列パターンが効率的に記憶される。即ち、特徴抽出部2が認識部3と学習部4に供給する時系列データは、幾つかのパターン(時系列パターン)に分類することができ、学習部4では、時系列パターン記憶ネットワークに、時系列データの代表的な時系列パターンを記憶させるための学習が行われる。
記憶部5は、時系列パターン記憶ネットワークを記憶しており、この時系列パターン記憶ネットワーク(のパラメータ)は、学習部4によって適宜更新される。
生成部6には、制御データが供給される。生成部6に供給される制御データは、記憶部5の時系列パターン記憶ネットワークが記憶している時系列パターンのうちのいずれかを表すもの(例えば、後述するノードラベル)で、生成部6は、記憶部5の時系列パターン記憶ネットワークに基づき、そこに供給される制御データが表す時系列パターンの時系列データを生成して出力する。
次に、図11は、図10の学習部4の構成例を示している。
学習部4は、時系列データ記憶部31と学習処理部32とから構成される。
時系列データ記憶部31には、特徴抽出部2から、(1区間の)新たな時系列データとしての特徴量の系列が供給される。時系列データ記憶部31は、特徴抽出部2からの新たな時系列データを、一時的に(学習処理部32による新たな時系列データを用いた処理が終了するまで)記憶する。
学習処理部32は、記憶部5に記憶された時系列パターン記憶ネットワークを、時系列データ記憶部31に記憶された新たな時系列データ(の観測値)に基づいて、自己組織的に更新する。
次に、図12は、図11の学習処理部32の構成例を示している。
スコア計算部41は、記憶部5に記憶された時系列パターン記憶ネットワークを構成する各ノードについて、そのノードが、時系列データ記憶部31に記憶された時系列データ(の観測値)に適合する度合いをスコアとして求め、勝者ノード決定部42に供給する。即ち、ノードが有する時系列パターンモデル21が、例えば、図7に示したようにHMMである場合には、スコア計算部41は、ノードが有する時系列パターンモデル21としてのHMMから、時系列データ記憶部31に記憶された時系列データが観測される尤度を求め、そのノードのスコアとして、勝者ノード決定部42に供給する。
勝者ノード決定部42は、記憶部5に記憶された時系列パターン記憶ネットワークにおいて、時系列データ記憶部31に記憶された時系列データに最も適合するノードを求め、そのノードを、勝者ノードに決定する。
即ち、勝者ノード決定部42は、記憶部5に記憶された時系列パターン記憶ネットワークを構成するノードのうちの、スコア計算部41からのスコアが最も高いノードを勝者ノードとして決定する。そして、勝者ノード決定部42は、勝者ノードを表す情報を、重み決定部43に供給する。
ここで、時系列パターン記憶ネットワークを構成するノードには、各ノードを識別するためのラベルであるノードラベルを付しておくことができる。そして、勝者ノードを表す情報、その他のノード表す情報としては、ノードラベルを採用することができる。なお、ノードラベルは、ノード自体を識別するラベルであり、正解が何であるかを表す正解ラベルとは、何ら関係がない。
重み決定部43は、勝者ノード決定部42から供給されるノードラベルが表す勝者ノードに基づき、記憶部5に記憶された時系列パターン記憶ネットワークを構成する各ノードについて、後述する更新重みを決定し、学習データ更新部44に供給する。
即ち、重み決定部43は、記憶部5に記憶された時系列パターン記憶ネットワークを構成する各ノード(勝者ノードを含む)の更新重みを、そのノードと、勝者ノードとのパターン間距離に基づいて決定し、学習データ更新部44に供給する。
ここで、ノードが有する時系列パターンモデル21(図7)は、時系列データ記憶部31(図11)に記憶された新たな時系列データを用いて更新されるが、ノードの更新重みとは、そのノードが有する時系列パターンモデル21の更新によって、その時系列パターンモデル21が受ける新たな時系列データの影響の度合いを表す。従って、ノードの更新重みが0であれば、そのノードが有する時系列パターンモデル21は、新たな時系列データの影響を受けない(更新されない)。
なお、重み決定部43において、記憶部5に記憶された時系列パターン記憶ネットワークを構成する各ノードの更新重みを決定する際のパターン間距離としては、時系列パターン記憶ネットワークのノードが、図6や図8に示したように、リンクを有する場合には、そのノードと勝者ノードとの結合関係に基づくパターン間距離を採用し、また、時系列パターン記憶ネットワークのノードが、図9に示したように、リンクを有しない場合には、そのノードが、時系列データ記憶部31(図11)に記憶された新たな時系列データに適合する度合いに基づくパターン間距離を採用することができる。
即ち、重み決定部43は、記憶部5に記憶された時系列パターン記憶ネットワークを参照し、時系列パターン記憶ネットワークのノードそれぞれと、勝者ノード決定部42からのノードラベルが表す勝者ノードとの結合関係に基づくパターン間距離を求め、そのパターン間距離に基づいて、時系列パターン記憶ネットワークのノードそれぞれの更新重みを決定する。
あるいは、重み決定部43は、記憶部5に記憶された時系列パターン記憶ネットワークを参照し、時系列パターン記憶ネットワークのノードそれぞれについて、ノードが、時系列データ記憶部31に記憶された新たな時系列データに適合する度合いとして、例えば、スコア計算部41が求めるのと同様のスコアを求める。さらに、重み決定部43は、時系列パターン記憶ネットワークのノードそれぞれについて、ノードのスコアに基づく順位(適合順位)に対応する値を、新たな時系列データに適合する度合いに基づくパターン間距離として求め、そのパターン間距離に基づいて、時系列パターン記憶ネットワークのノードそれぞれの更新重みを決定する。
なお、ノードのスコアは、重み決定部43で求めても良いが、スコア計算部41から重み決定部43に供給するようにしても良い。
学習データ更新部44は、記憶部5に記憶された時系列パターン記憶ネットワークの各ノードが有する学習データ記憶部22(図7)に記憶された学習データを更新する。
即ち、学習データ更新部44は、ノードが有する学習データ記憶部22に既に記憶されている学習データと、時系列データ記憶部31に記憶された時系列データとを、重み決定部43からの、対応するノードの更新重みにしたがって混合し、その混合結果を、新たな学習データとして、学習データ記憶部22に記憶させることで、その学習データ記憶部22の記憶内容を更新する。
学習データ更新部44は、以上のように、学習データ記憶部22(図7)に記憶された学習データを、更新重みにしたがって更新すると、その更新が終了した旨の終了通知を、モデル学習部45に供給する。
モデル学習部45は、学習データ更新部44から終了通知を受けると、その学習データ更新部44による更新後の学習データ記憶部22(図7)に記憶された学習データを用いて、時系列パターンに記憶ネットワークの各ノードが有する時系列パターンモデル21の学習を行うことにより、その時系列パターンモデル21を更新する。
従って、モデル学習部45による、ノードが有する時系列パターンモデル21の更新は、そのノードが有する学習データ記憶部22(図7)に記憶されていた学習データ(の一部)と、時系列データ記憶部31に記憶された新たな時系列データとに基づいて行われる。なお、学習データ記憶部22の記憶内容は、更新重みにしたがって更新されるから、モデル学習部45による、時系列パターンモデル21の更新は、更新重みに基づいて行われるということもできる。
次に、図13は、図12の重み決定部43において更新重みを決定する決定方法を示している。
重み決定部43は、例えば、図13に示すような、勝者ノードとのパターン間距離dの増加に対して更新重みαが減少する関係を表す曲線(以下、距離/重み曲線という)にしたがって、ノードに対する更新重み(ノードの更新重み)αを決定する。距離/重み曲線によれば、勝者ノードとのパターン間距離dが近いノードほど、大きな更新重みαが決定され、パターン間距離dが遠いノードほど、小さな更新重みαが決定される。
図13の距離/重み曲線において、横軸(左から右方向)は、更新重みαを示しており、縦軸(上から下方向)は、パターン間距離dを示している。
図13では、パターン間距離dとして、例えば、ノードとの結合関係に基づくパターン間距離、即ち、勝者ノードからの距離が採用されており、縦軸に沿って、時系列パターン記憶ネットワークを構成する6つのノードN1乃至N6が、各ノードNiと勝者ノードとの距離に対応する位置(縦軸の位置)に記載されている。
図13では、時系列パターン記憶ネットワークを構成する6つのノードN1乃至N6が、その順で、勝者ノードとの距離が近くなっている。時系列パターン記憶ネットワークを構成する6つのノードN1乃至N6のうち、勝者ノードとの距離が最も近いノード、即ち、勝者ノードとの距離が0のノードであるノードN1は、勝者ノード(となっているノード)である。
ここで、時系列パターン記憶ネットワークが、例えば、図8に示したような2次元的な配置構造を有し、勝者ノードが、例えば、ノードN6であった場合には、勝者ノードN6とノードN6との距離は最も(1番)近い0であり、ノードN6と勝者ノードN6とのパターン間距離dも0となる。また、勝者ノードN6と、ノードN3,N5、またはN9それぞれとの距離は2番目に近い1であり、ノードN3,N5、またはN9それぞれと勝者ノードN6とのパターン間距離dも1となる。さらに、勝者ノードN6と、ノードN2,N4、またはN8それぞれとの距離は3番目に近い2であり、ノードN2,N4、またはN8それぞれと勝者ノードN6とのパターン間距離dも2となる。また、勝者ノードN6と、ノードN1またはN7それぞれとの距離は最も遠い(4番目に近い)3であり、ノードN1またはN7それぞれと勝者ノードN6とのパターン間距離dも3となる。
一方、ノードがリンクを有しない、例えば、図9に示した時系列パターン記憶ネットワークについては、ノードが新たな時系列データに適合する度合いに基づくパターン間距離、即ち、ノードが新たな時系列データに適合する度合いに基づく順位(適合順位)に対応する値が、そのノードと勝者ノードとのパターン間距離dとして求められる。即ち、この場合、スコアが最も高い(一番目に高い)ノード(勝者ノード)と勝者ノードとのパターン間距離dは0とされ、スコアが2番目に高いノードと勝者ノードとのパターン間距離dは1とされる。以下、同様に、スコアがk番目に高いノードと勝者ノードとのパターン間距離dはk-1とされる。
次に、更新重みαとパターン間距離dとの関係を表す、例えば、図13に示したような距離/重み曲線は、例えば、式(3)によって与えられる。
Figure 2007299365
・・・(3)
ここで、式(3)において、定数Gは、勝者ノードの更新重みを表す定数であり、γは、0<γ<1の範囲の定数である。また、変数Δは、時系列パターン記憶ネットワークを更新する更新方法として、前述したSMAを採用した場合の、勝者ノードの近傍のノード(勝者ノードとのパターン間距離dが近いノード)の更新重みαを調整するための減衰係数である。
上述したように、勝者ノードとなっているノードのパターン間距離dとして、0が与えられ、以下、他のノードのパターン間距離dとして、勝者ノードとの距離、または適合順位にしたがって、1,2,・・・が与えられる場合、式(3)において、例えば、G=8,γ=0.5,Δ=1であれば、勝者ノードとなっているノードの更新重みαとして、8(=G)が求められる。以下、勝者ノードとの距離、または適合順位が大になるにしたがって、ノードの更新重みαとしては、4,2,1,・・・と小さくなる値が求められる。
ここで、式(3)における減衰係数Δが大きな値である場合には、パターン間距離dの変化に対する更新重みαの変化は緩やかになり、逆に、減衰係数Δが0に近い値である場合には、パターン間距離dの変化に対する更新重みαの変化は急峻になる。
従って、減衰係数Δを、例えば、上述した1から少しずつ0に近づけていくように調整すると、パターン間距離dの変化に対する更新重みαの変化は急峻になっていき、更新重みαは、パターン間距離dが大きくなるにしたがって、より小さい値となる。そして、減衰係数Δが0に近くなると、勝者ノード(となっているノード)以外のノードの更新重みαは、ほとんど0となり、この場合、時系列パターン記憶ネットワークを更新する更新方法として、前述したWTAを採用した場合と(ほぼ)等価となる。
このように、減衰係数Δを調整することによって、時系列パターン記憶ネットワークを更新する更新方法としてSMAを採用した場合の、勝者ノードの近傍のノードの更新重みαを調整することができる。
減衰係数△は、例えば、時系列パターン記憶ネットワークの更新(学習)の開始時は大きな値にし、時間の経過とともに、即ち、更新の回数が増加するにしたがって小さな値にくなるようにすることができる。この場合、時系列パターン記憶ネットワークの更新の開始時は、パターン間距離dの変化に対する更新重みαの変化が緩やかな距離/重み曲線にしたがって、時系列パターン記憶ネットワークの各ノードの更新重みαが決定され、更新(学習)が進む(進行する)につれ、パターン間距離dの変化に対する更新重みαの変化が急峻になっていく距離/重み曲線にしたがって、時系列パターン記憶ネットワークの各ノードの更新重みαが決定される。
即ち、この場合、勝者ノード(が有する時系列パターンモデル21)の更新は、学習(更新)の進行にかかわらず、時系列データ記憶部31(図12)に記憶された新たな時系列データの影響を強く受けるように行われる。一方、勝者ノード以外のノード(が有する時系列パターンモデル21)の更新は、学習の開始時は、比較的広い範囲のノード(勝者ノードとのパターン間距離dが小のノードから、ある程度大のノードまで)に亘って、新たな時系列データの影響を受けるように行われる。そして、学習が進行するにつれ、勝者ノード以外のノードの更新は、徐々に狭い範囲のノードについてのみ、新たな時系列データの影響を受けるように行われる。
図12の重み決定部43は、以上のようにして、時系列パターン記憶ネットワークの各ノードの更新重みαを決定し、学習データ更新部44では、各ノードが有する学習データ記憶部22に記憶される学習データが、そのノードの更新重みαに基づいて更新される。
次に、図14を参照して、ノードが有する学習データ記憶部22に記憶される学習データを更新する更新方法について説明する。
いま、あるノードNiが有する学習データ記憶部22には、学習データが既に記憶されており、ノードNiの時系列パターンモデル21は、学習データ記憶部22に既に記憶されている学習データを用いて学習が行われたものであるとする。
学習データ更新部44は、上述したように、ノードNiが有する学習データ記憶部22に既に記憶されている学習データ(以下、適宜、旧学習データという)と、時系列データ記憶部31(図12)に記憶された新たな時系列データとを、重み決定部43からのノードNiの更新重みαにしたがって混合し、その混合結果を、新たな学習データとして、学習データ記憶部22に記憶させることで、その学習データ記憶部22の記憶内容を、新たな学習データに更新する。
即ち、学習データ更新部44は、旧学習データに対して、新たな時系列データを追加することで、旧学習データと新たな時系列データとを混合した新たな学習データとするが、旧学習データに対する新たな時系列データの追加(旧学習データと新たな時系列データとの混合)は、ノードNiの更新重みαに対応する比にしたがって行われる。
ここで、ノードNiの時系列パターンモデル21(図7)の更新は、新たな学習データを用いた学習によって行われるため、新たな時系列データと旧学習データとを混合する比率を変えることによって、更新により時系列パターンモデル21が受ける新たな時系列データの影響の度合い(強さ)を変えることができる。
ノードNiにおいて、新たな時系列データと旧学習データとを混合する比率としては、ノードNiの更新重みαに対応した値が採用され、例えば、更新重みαが大であるほど、新たな時系列データの比率が大となる(旧学習データの比率が小となる)ような値とされる。
具体的には、ノードNiの学習データ記憶部22には、一定の数の時系列データ(学習データ)が記憶されるものとし、その一定の数をHとする。この場合、ノードNiの時系列パターンモデル21の学習は、常に、H個の学習データ(時系列データ)を用いて行われる。
学習データ記憶部22に、常に、一定の数Hの学習データが記憶される場合、新たな時系列データと旧学習データとの混合によって得られる新たな学習データの個数は、H個である必要があり、そのような、新たな時系列データと旧学習データとの混合を、ノードNiの更新重みαに対応した比率で行う方法としては、新たな時系列データと旧学習データとを、比率α:H-αで混合する方法がある。
新たな時系列データと旧学習データとを、比率α:H-αで混合する具体的な方法としては、図14に示すように、H個の旧学習データのうちのH-α個の旧学習データに対して、α個の新たな時系列データを追加することにより、H個の新たな学習データを得る方法がある。
この場合、学習データ記憶部22に記憶される時系列データの数Hが、例えば、100であり、ノードNiの更新重みαが、例えば、8であれば、学習データ記憶部22の記憶内容は、100個の旧学習データのうちの92個の旧学習データに対して、8個の新たな時系列データを追加することによって得られる100個の新たな学習データに更新される。
H個の旧学習データのうちのH-α個の旧学習データに対する、α個の新たな時系列データの追加は、α個の新たな時系列データが得られるのを待って行う方法があるが、この方法では、1個の新たな時系列データが得られるごとに、学習データ記憶部22の記憶内容を更新することができない。
そこで、学習データ記憶部22の記憶内容の更新は、1個の新たな時系列データが得られるごとに、その新たな時系列データをα個だけ、H-α個の旧学習データに追加することにより行うことができる。即ち、1個の新たな時系列データをコピーしてα個の新たな時系列データとし、そのα個の新たな時系列データを、H個の旧学習データから古い順にα個を除外して残ったH-α個の旧学習データに追加することにより、学習データ記憶部22の記憶内容の更新を行う。これにより、1個の新たな時系列データが得られるごとに、学習データ記憶部22の記憶内容を更新することができる。
以上のように、学習データ記憶部22の記憶内容の更新を行うことにより、学習データ記憶部22には、常に、新しい順のH個の時系列データだけが、学習データとして保持されることになり、その学習データに占める新たな時系列データの割合(比率)は、更新重みαによって調整されることになる。
次に、図15のフローチャートを参照して、図10のデータ処理装置で行われる、時系列パターン記憶ネットワークを学習する学習処理について説明する。
まず最初に、ステップS1において、学習部4(図11)の学習処理部32は、記憶部5に記憶された時系列パターン記憶ネットワークのパラメータ、即ち、時系列パターン記憶ネットワークの各ノードが有する時系列パターンモデル21(図7)としての、例えばHMMのパラメータを初期化する初期化処理を行う。この初期化処理により、HMMのパラメータ(状態遷移確率と出力確率密度関数)として、適切な初期値が与えられる。なお、初期化処理において、HMMのパラメータにおいて、どのように初期値を与えるかは、特に限定されるものではない。
その後、ステップS2において、1個の処理対象データ、即ち、例えば、1の音声区間の音声データが、信号入力部1に入力されると、信号入力部1は、その処理対象データを、特徴抽出部2に供給する。特徴抽出部2は、処理対象データから特徴量を抽出し、その特徴量の時系列データ(1個の新たな時系列データ)を、学習部4に供給する。
学習部4(図11)は、特徴抽出部2からの新たな時系列データを、時系列データ記憶部31に一時記憶させ、以下、ステップS3乃至S7において、記憶部5に記憶された時系列パターン記憶ネットワークを、時系列データ記憶部31に記憶された新たな時系列データ(の観測値)に基づいて、自己組織的に更新(学習)する。
即ち、学習部4の学習処理部32(図12)では、ステップS3において、スコア計算部41が、時系列データ記憶部31に記憶された新たな時系列データを読み出し、記憶部5に記憶された時系列パターン記憶ネットワークを構成する各ノードについて、そのノードが、新たな時系列データに適合する度合いを表すスコアを求める。
具体的には、ノードが有する時系列パターンモデル21(図7)が、例えばHMMである場合には、そのHMMから、新たな時系列データが観測される対数尤度が、スコアとして求められる。ここで、対数尤度の計算方法としては、例えば、ビタビアルゴリズム(Viterbi algorithm)を採用することができる。
スコア計算部41は、時系列パターン記憶ネットワークが有するすべてのノードについて、新たな時系列データに対するスコアを計算すると、その各ノードについてのスコアを、勝者ノード決定部42に供給する。
勝者ノード決定部42は、ステップS4において、時系列パターン記憶ネットワークを構成するノードのうちの、スコア計算部41からのスコアが最も高いノードを求め、そのノードを勝者ノードに決定する。そして、勝者ノード決定部42は、勝者ノードを表す情報としてのノードラベルを、重み決定部43に供給する。
重み決定部43は、ステップS5において、勝者ノード決定部42からのノードラベルが表す勝者ノードを、いわば基準として、時系列パターン記憶ネットワークを構成する各ノードの更新重みを決定する。
即ち、重み決定部43は、図13で説明したように、時系列パターン記憶ネットワークの更新(学習)が進むにつれ、パターン間距離dの変化に対する更新重みαの変化が急峻になっていく、式(3)で表される距離/重み曲線にしたがって、時系列パターン記憶ネットワークの各ノードの更新重みαを決定し、学習データ更新部44に供給する。
学習データ更新部44は、ステップS6において、時系列パターン記憶ネットワークの各ノードが有する学習データ記憶部22(図7)に記憶された学習データを、重み決定部43からの、対応するノードの更新重みにしたがって更新する。即ち、学習データ更新部44は、図14で説明したように、時系列データ記憶部31に記憶されている新たな時系列データと、ノードの学習データ記憶部22に記憶されている旧学習データとを、そのノードの更新重みαに対応した比率α:H-αで混合することにより、H個の新たな学習データを得て、そのH個の新たな学習データによって、学習データ記憶部22の記憶内容を更新する。
学習データ更新部44は、時系列パターン記憶ネットワークのノードすべての学習データ記憶部22(図7)の記憶内容を更新すると、その更新が終了した旨の終了通知を、モデル学習部45に供給する。
モデル学習部45は、学習データ更新部44から終了通知を受けると、ステップS7において、時系列パターン記憶ネットワークのパラメータを更新する。
即ち、モデル学習部45は、時系列パターン記憶ネットワークの各ノードについて、学習データ更新部44による更新後の学習データ記憶部22に記憶された新たな学習データを用いて、時系列パターンモデル21の学習を行うことにより、その時系列パターンモデル21を更新する。
具体的には、ノードが有する時系列パターンモデル21が、例えばHMMである場合には、そのノードが有する学習データ記憶部22に記憶された新たな学習データを用いて、HMMの学習が行われる。この学習では、例えば、HMMの現在の状態遷移確率と出力確率密度関数を初期値とし、新たな学習データを用いて、Baum-Welch法により、新たな状態遷移確率と出力確率密度関数がそれぞれ求められる。そして、その新たな状態遷移確率と出力確率密度関数によって、HMMの状態遷移確率と出力確率密度関数がそれぞれ更新される。
その後は、ステップS7からステップS2に戻り、次の処理対象データが、信号入力部1に入力されるのを待って、以下、同様の処理が繰り返される。
図15の学習処理によれば、1個の新たな時系列データが得られると、その新たな時系列データに対して、時系列パターン記憶ネットワークを構成するノードの中から、勝者ノードが決定される(ステップS4)。さらに、その勝者ノードを基準として、時系列パターン記憶ネットワークを構成する各ノードの更新重みが決定される(ステップS5)。そして、更新重みに基づいて、時系列パターン記憶ネットワークを構成する各ノードが有する時系列パターンモデル21(図7)のパラメータが更新される。
即ち、図15の学習処理では、1個の新たな時系列データに対して、時系列パターン記憶ネットワークを構成するノードのパラメータの更新が1回行われ、以下、同様に、新たな時系列データが得られるたびに、ノードのパラメータの更新が繰り返されることにより、自己組織的に学習が行われる。
そして、学習が十分に行われることにより、時系列パターン記憶ネットワークの各ノードが有する時系列パターンモデル21は、ある時系列パターンを学習(獲得)する。時系列パターン記憶ネットワーク全体において学習される時系列パターンの数(種類)は、時系列パターン記憶ネットワークが有するノードの数と一致するので、時系列パターン記憶ネットワークが有するノードの数が、例えば100である場合は、100種類の時系列パターンが学習されることになる。この時系列パターンに基づき、認識部3(図10)では、時系列データ(処理対象データ)を認識する認識処理を行うことが可能となり、生成部6(図10)では、時系列データを生成する生成処理を行うことが可能となる。
次に、図16は、図10の認識部3の構成例を示している。
認識部3には、図10で説明したように、特徴抽出部2から、(1個の)時系列データが供給され、この時系列データは、スコア計算部51に供給される。
スコア計算部51は、学習処理部32(図12)のスコア計算部41と同様に、記憶部5に記憶された時系列パターン記憶ネットワークを構成する各ノードについて、そのノードが、特徴抽出部2からの時系列データ(の観測値)に適合する度合いを表すスコアを求め、勝者ノード決定部52に供給する。
勝者ノード決定部52は、学習処理部32(図12)の勝者ノード決定部42と同様に、記憶部5に記憶された時系列パターン記憶ネットワークにおいて、特徴抽出部2からの時系列データに最も適合するノードを求め、そのノードを、勝者ノードとして決定する。
即ち、勝者ノード決定部52は、記憶部5に記憶された時系列パターン記憶ネットワークを構成するノードのうちの、スコア計算部51からのスコアが最も高いノードを勝者ノードとして決定する。そして、勝者ノード決定部52は、勝者ノードを表す情報としてのノードラベルを、出力部53に供給する。
出力部53は、勝者ノード決定部52からの勝者ノードを表すノードラベルを、特徴抽出部2からの特徴量の時系列データ、ひいては、その特徴量に対応する、信号入力部1に入力された処理対象データの認識結果として出力する。
なお、認識部3のスコア計算部51と、学習処理部32(図12)のスコア計算部41とは、いずれか一方のスコア計算部で兼用することが可能である。認識部3の勝者ノード決定部52と、学習処理部32(図12)の勝者ノード決定部42についても、同様である。
次に、図17のフローチャートを参照して、図10のデータ処理装置で行われる、時系列データを認識する認識処理について説明する。
ステップS21において、1個の処理対象データ、即ち、例えば、1の音声区間の音声データ(時系列データ)が、信号入力部1に入力されると、信号入力部1は、その処理対象データを、特徴抽出部2に供給する。特徴抽出部2は、処理対象データである時系列データから特徴量を抽出し、その特徴量の時系列データを、認識部3に供給する。
認識部3(図16)では、ステップS22において、スコア計算部51が、記憶部5に記憶された時系列パターン記憶ネットワークを構成する各ノードが、特徴抽出部2からの時系列データに適合する度合いを表すスコアを求め、勝者ノード決定部52に供給する。
勝者ノード決定部52は、ステップS23において、時系列パターン記憶ネットワークを構成するノードのうちの、スコア計算部51からのスコアが最も高いノードを求め、そのノードを勝者ノードとして決定する。そして、勝者ノード決定部52は、勝者ノードを表す情報としてのノードラベルを、出力部53に供給する。
出力部53は、勝者ノード決定部52からのノードラベルを、特徴抽出部2からの時系列データ(信号入力部1に入力された処理対象データ)の認識結果として出力し、処理を終了する。
なお、出力部53が出力するノードラベル(勝者ノードのノードラベル)は、例えば、制御データとして、生成部6に供給することができる。
以上のような、時系列パターン記憶ネットワークを用いた認識処理によれば、その時系列パターン記憶ネットワークのノードの数に応じた細かさの認識結果を得ることができる。
即ち、例えば、いま、時系列パターン記憶ネットワークの学習が、3つのカテゴリ”A”,”B”,”C”の発声それぞれにより得られた音声データを用いて行われたとする。
時系列パターン記憶ネットワークの学習に用いられた3つのカテゴリ”A”,”B”,”C”の音声データが、多数の話者の発話を含む場合には、例えば、カテゴリ”A”の音声データであっても、発話速度や、イントネーション、話者の年齢、性別などの違いによって、様々なバリエーションの音声データが存在する。
教師あり学習であれば、カテゴリ”A”,”B”,”C”の音声データを用いた学習は、カテゴリ”A”の音声データだけ、カテゴリ”B”の音声データだけ、カテゴリ”C”の音声データだけをそれぞれ用いて行われる。従って、各カテゴリの学習結果には、発話速度等の違いによるバリエーションは、生じ得ない。
一方、時系列パターン記憶ネットワークの学習では、カテゴリ”A”,”B”,”C”の音声データが、それらを区別(分類)することなく用いられる。そして、時系列パターン記憶ネットワークでは、上述したように、その時系列パターン記憶ネットワークが有するノードの数だけの時系列パターンが学習される。
従って、時系列パターン記憶ネットワークでは、例えば、それが有するノードの数が3より大であれば、1つのカテゴリ”A”の音声データであっても、そのカテゴリ”A”の音声データの中の、ある1つのバリエーション(の時系列パターン)が、ある1つのノードで学習され、他の1つのバリエーションが、他の1つのノードで学習されることがある。
そして、このように、複数のノードにおいて、カテゴリ”A”の音声データの様々なバリエーションが学習された場合、認識処理では、例えば、カテゴリ”A”の音声データが処理対象データとして入力されると、カテゴリ”A”の音声データが学習された複数のノードの中から、処理対象データに最も適合するノードが、勝者ノードとして決定され、その勝者ノードのノードラベルが、認識結果として出力される。
即ち、時系列パターン記憶ネットワークを用いた認識処理では、処理対象データが、カテゴリ”A”,”B”,”C”のうちのいずれのカテゴリの音声データであるかが決定されるのではなく、時系列パターン記憶ネットワークが学習によって獲得した、そのノードの数だけの時系列パターンのうちのいずれに最も適合するか(類似するか)かが決定される。
つまり、時系列パターン記憶ネットワークの学習では、時系列パターン記憶ネットワークが有するノードの数に応じた細かさで時系列パターンが獲得され、時系列パターン記憶ネットワークを用いた認識では、時系列パターン記憶ネットワークが有するノードの数に応じた細かさで、時系列データが分類(クラス分け)される。
なお、(十分な)学習が行われた時系列パターン記憶ネットワークの各ノードに対し、そのノードが獲得した時系列パターンに応じて、適切に、カテゴリ”A”,”B”,”C”の正解ラベルを付与すれば、時系列パターン記憶ネットワークを用いた認識処理において、時系列データ(処理対象データ)が、カテゴリ”A”,”B”,”C”のうちのいずれのカテゴリの音声データであるかの認識結果を得ることができる。
次に、図18は、図10の生成部6の構成例を示している。
生成部6には、図10で説明したように、制御データが供給される。生成部6に供給される制御データは、記憶部5の時系列パターン記憶ネットワークが記憶している時系列パターン、ひいては、時系列パターン記憶ネットワークを構成するノードのうちのいずれかを表すもので、例えば、ノードラベルである。
生成部6に供給された制御データは、生成ノード決定部61に供給される。生成ノード決定部61は、記憶部5に記憶された時系列パターン記憶ネットワークにおいて、そこに供給される制御データが表すノードを、時系列データを生成するのに用いるノード(以下、適宜、生成ノードという)に決定し、その決定結果を、時系列生成部62に供給する。
即ち、生成ノード決定部61は、そこに供給される制御データとしてのノードラベルが表すノードを、生成ノードに決定し、その決定結果を、時系列生成部62に供給する。
時系列生成部62は、生成ノード決定部61からの決定結果にしたがい、生成ノードが有する時系列パターンモデル21(図7)に基づいて、時系列データを生成し、出力部63に供給する。
ここで、時系列パターンモデル21が、例えば、HMMである場合には、時系列生成部62は、生成ノードが有する時系列パターンモデル21としてのHMMにおいて時系列データが観測される尤度を表す出力確率を最大にする時系列データを生成する。なお、HMMを用いた時系列データの生成については、例えば、動的特徴量を利用することで滑らかに変化する時系列データを生成する方法があり、時系列生成部62では、その方法によって、時系列データを生成することができる。このような時系列データの生成方法は、例えば、K. Tokuda, T. Yoshimura, T. Masuko, T. Kobayashi, T. Kitamura, ”SPEECH PARAMETER GENERATION ALGORITHMS FOR HMM-BASED SPEECH SYNTHESIS”, Proc. of ICASSP 2000, vol.3, pp.1315-1318, June 2000に記載されている。
なお、HMMを用いて時系列データを生成する方法としては、その他、例えば、HMMのパラメータを用いた確率的試行に基づく時系列データの生成を繰り返し行い、その平均をとることで、HMMから時系列データを生成する方法なども提案されており、その詳細については、例えば、稲邑哲也、谷江博昭、中村仁彦、「連続分布型隠れマルコフモデルを用いた時系列データのキーフレーム抽出とその復元」、日本機械学会ロボティクス・メカトロニクス講演会2003講演論文集、2P1-3F-C6,2003に記載されている。
出力部63は、時系列生成部62からの時系列データを、処理対象データに相当する時系列データに変換して出力する。即ち、時系列生成部62において生成される時系列データは、ノードが有する時系列パターンモデル21の学習に用いられた特徴量の時系列データであり、出力部63は、その特徴量の時系列データを、処理対象データ(に相当するデータ)に変換して出力する。
具体的には、例えば、処理対象データが音声データであり、特徴抽出部2が、音声データからメルケプストラム係数を特徴量として抽出することとすると、メルケプストラムの時系列データが、時系列パターンモデル21によって学習されるので、時系列生成部62が生成ノードの時系列パターンモデル21(図7)に基づいて生成する時系列データは、メルケプストラムの時系列データとなる。出力部63は、時系列生成部62において生成されるメルケプストラム(の時系列データ)を、処理対象データに相当する時系列データである音声データに変換する。
なお、メルケプストラムの時系列データを音声データ(時領域の音声)に変換する方法としては、例えば、MLSAフィルタ(メル対数スペクトル近似フィルタ)と呼ばれる合成フィルタによって、メルケプストラムの時系列データをフィルタリングする方法がある。MLSAフィルタの詳細については、例えば、今井聖、住田一男、古市千恵子、「音声合成のためのメル対数スペクトル近似(MLSA)フィルタ」、電子情報通信学会論文誌(A)、J66-A, 2, pp.122-129, 1983や、徳田恵一、小林隆夫、斉藤博徳、深田俊明、今井聖、「メルケプストラムをパラメータとする音声のスペクトル推定」、電子情報通信学会論文誌(A)、J74-A, 8, pp.1240-1248, 1991に記載されている。
次に、図19のフローチャートを参照して、図10のデータ処理装置で行われる、時系列データ(処理対象データ)を生成する生成処理について説明する。
ステップS31では、制御データが、生成部6(図18)に入力される。この制御データは、生成ノード決定部61に供給される。生成ノード決定部61は、記憶部5に記憶された時系列パターン記憶ネットワークを構成するノードのうちの、制御データとしてのノードラベルが表すノードを、生成ノードに決定し、その決定結果を、時系列生成部62に供給する。
時系列生成部62は、ステップS33において、生成ノード決定部61からの決定結果にしたがい、記憶部5に記憶された時系列パターン記憶ネットワークを構成するノードのうちの生成ノードが有する時系列パターンモデル21(のパラメータ)に基づいて、時系列データを生成し、出力部63に供給する。出力部63は、ステップS34において、時系列生成部62からの時系列データを、処理対象データに相当する時系列データに変換して出力する。
以上のような、時系列パターン記憶ネットワークを用いた生成処理によれば、その時系列パターン記憶ネットワークのノードの数に応じた(時系列パターンの)時系列データを生成することができる。
以上のように、時系列パターンモデル21を有する複数のノードから構成される時系列パターン記憶ネットワークを、時系列データに基づいて、自己組織的に更新するようにしたので、長さが一定の時系列データは勿論、長さが一定でない時系列データの教師なし学習、つまり、時系列データの、いわば自律的な学習を、容易に(実用的に)行うことができる。
即ち、時系列パターン記憶ネットワークの各ノードは、時系列パターンモデル21を有するから、時系列パターン記憶ネットワークの学習において、ノードの更新、つまり、そのノードが有する時系列パターンモデル21の更新は、他のノードの更新に影響しない。従って、時系列パターン記憶ネットワークを構成するノードが1つ増えても、時系列パターン記憶ネットワークの学習に要する計算量としては、単純には、1のノードの更新に要する計算量が増えるだけであり、時系列パターン記憶ネットワークの規模、つまり、時系列パターン記憶ネットワークを構成するノードの数を大にしても、時系列パターン記憶ネットワークの学習に要する計算量が飛躍的に増加することはない。従って、大規模な時系列パターン記憶ネットワークであっても、容易に、自己組織的に学習することができる。
さらに、かかる時系列パターン記憶ネットワークの学習によれば、各ノードに、時系列データの統計的な特性を表す時系列パターンが記憶されるので、その時系列パターンを用いて、時系列データの認識や生成を、容易に行うことができる。
なお、学習処理、認識処理、生成処理は、例えば、音声データ、画像データ、モータを駆動する信号(モータデータ)、その他の任意の時系列データを対象として行うことができる。具体的には、例えば、図10のデータ処理装置を自律型のロボットなどの自律システムに適用し、そのロボットの視覚や、聴覚、触覚に相当するセンサが出力する信号や、ロボットの手や足に相当する部分を駆動するモータを制御する信号、合成音を生成する装置や目に相当するLEDに対して与える信号等を、学習処理、認識処理、生成処理の対象とする時系列データとして採用することができる。
また、本実施の形態では、ノードが有する時系列パターンモデル21(図7)として、状態遷移確率モデルの1つであるHMMを採用することとしたが、時系列パターンモデル21としては、他の状態遷移確率モデルを採用することが可能である。
時系列パターンモデル21として採用することができる他の状態遷移確率モデルとしては、例えば、ベイジアンネットワークがある。
ベイジアンネットワークでは、変数間の依存関係をグラフ構造で表し、各ノードに条件付き確率を割り当てることでモデル化が行われるが、特に、時間軸に沿った状態遷移モデルを構築することで、時系列データをモデル化することが可能となる。
なお、ベイジアンネットワークのグラフ構造の決定は、例えば、学習データの尤度とグラフ構造の複雑さとを考慮したモデルを選択することにより行われ、条件付き確率の推定には、例えば、最尤推定法やEM(Expectation Maximaization)アルゴリズムなどが利用される。ここで、ベイジアンネットワークの詳細については、例えば、本村陽一、「不確実性モデリングのための情報表現:ベイジアンネット」、2001年、ベイジアンネットチュートリアルなどに記載されている。
さらに、時系列パターンモデル21(図7)としては、上述のように、HMMやベイジアンネットワークなどのような状態遷移確率モデルを採用することができる他、関数を近似するモデル(以下、適宜、関数近似モデルという)を採用することもできる。
関数近似モデルは、時系列パターンを、関数f()を用い、例えば、微分方程式{x(t)}'=f(x(t))や、差分方程式x(t+1)=f(x(t))などで表現するモデルで、関数f()が、時系列パターンを特徴づける。なお、tは時間(時刻)(サンプル点)を表し、x(t)は、時刻tの時系列データのサンプル値、または時刻(0から)tまでに観測された時系列データを表す。また、{x(t)}'は、時系列データx(t)の時間tに関する1次微分を表す。
学習データ(時系列データ)から、ある時系列パターンを表す(に対応する)関数f()を求めることを、関数近似と呼ぶと、関数近似の方法としては、例えば、多項式などを用いて関数f()を表現し、その多項式の係数を、学習データから決定する方法や、ニューラルネットワークによって関数f()を表現し、そのニューラルネットワークのパラメータを、学習データから決定する方法などがある。
多項式で表現された関数f()の関数近似において、その多項式の係数の決定(推定)は、例えば、最急降下法などによって行うことができる。また、ニューラルネットワークによって表現された関数f()の関数近似において、そのニューラルネットワークのパラメータの決定は、例えば、バックプロパゲーション法によって行うことができる。ここで、バックプロパゲーション法では、ニューラルネットワークに入力と出力のデータを与え、その入力と出力のデータの関係を満たすように、ニューラルネットワークのパラメータの学習が行われる。
例えば、時系列パターンモデル21として、関数f()を用いた差分方程式x(t+1)=f(x(t))で時系列パターンを表現する関数近似モデルを採用する場合、入力層x(t)と出力層x(t+1)をつなぐ重み(中間層)が、ニューラルネットワークのパラメータであり、このパラメータが、学習データ(時系列データ)を用いて学習される。ニューラルネットワークのパラメータの学習は、初期値を適当に与えて、バックプロパゲーション法により行われる。なお、ニューラルネットワークとしては、例えば、リカレントニューラルネットワークを採用することができる。
関数f()がニューラルネットワークによって表現される時系列パターンモデル21を有するノードで構成される時系列パターン記憶ネットワークの学習等でも、上述のHMMを時系列パターンモデル21として採用した場合と同様に、勝者ノードを決定する必要があり、勝者ノードの決定のためには、時系列パターン記憶ネットワークの各ノードの、新たな時系列データに対するスコアを計算する必要がある。
このスコアとしては、例えば、新たな時系列データの観測値(実際の値)と、関数f()がニューラルネットワークによって表現される時系列パターンモデル21から求められる、新たな時系列データの理論値との誤差(例えば、差の二乗和など)を採用することができる。この場合、スコアの値が最も小さいノードが、新たな時系列データに最も適合するノードである勝者ノードとして決定される。
勝者ノードの決定後は、各ノードの更新重みを決定し、以下、上述のHMMを時系列パターンモデル21として採用した場合と同様の手順で、各ノード(が有するニューラルネットワーク)のパラメータを更新することができる。
なお、スコアが、例えば、尤度である場合は、スコアが大きいほど、良いスコアとなり、スコアが、例えば、誤差や距離である場合には、スコアが小さいほど、良いスコアとなる。
次に、以上のような時系列パターン記憶ネットワークを適用した順モデルや逆モデルについて説明する。
図20は、時系列パターン記憶ネットワークが適用された順モデルまたは逆モデルとしての入出力関係モデルの構成例を模式的に示している。
図20において、入出力関係モデルは、2つの時系列パターン記憶ネットワークnetinおよびnetoutを有している。さらに、入出力関係モデルは、時系列パターン記憶ネットワークnetinの各ノードNi(i=1,2,・・・,ノードの総数)と、時系列パターン記憶ネットワークnetoutの各ノードN'j(j=1,2,・・・,ノードの総数)とを結合した結合モデルになっている。
ここで、図20において、時系列パターン記憶ネットワークnetinのノードNiと、時系列パターン記憶ネットワークnetoutのノードN'jとの間の矢印が、そのノードNiとN'jとの結合を表している。
なお、時系列パターン記憶ネットワークnetinおよびnetoutは、同一の数のノードと同一のリンク(リンクがない場合を含む)を有するものであっても良いし、異なる数のノードまたは異なるリンクを有するものであっても良い。また、時系列パターン記憶ネットワークnetinのノードNiが有する時系列パターンモデル21(図7)と、時系列パターン記憶ネットワークnetoutのノードが有する時系列パターンモデル21も、同一の時系列パターンモデルであっても良いし、異なる時系列パターンモデルであっても良い。
次に、図21は、入出力関係モデルを用いて、各種の処理を行うデータ処理装置の構成例を示している。
図21のデータ処理装置では、図20の入出力関係モデルによって制御対象を順モデルまたは逆モデルにモデル化し、さらに、その順モデルまたは逆モデルとしての入出力関係モデルを用いて、制御対象から得られる出力データや、制御対象に与えるべき制御データ(入力データ)を予測する。
即ち、図21において、データ処理装置は、記憶部211、学習部212、および認識生成部213から構成されている。
記憶部211は、例えば、図20に示した入出力関係モデルなどを記憶する。
学習部212には、モデル化しようとする制御対象に与えられる入力データ(の観測値)と、その入力データに対して制御対象から得られる出力データ(の観測値)とのセットである教示データが供給されるようになっている。ここで、教示データは、ある区間の時系列データ(ある時間に亘る時系列データ)である入力データと、その区間の時系列データに対して制御対象から得られる区間の他の時系列データである出力データとのセットである。
学習部212は、そこに供給される教示データを用い、制御対象の順モデルまたは逆モデルとしての入出力関係モデルの学習を行う。
即ち、学習部212は、学習処理部221と結合重み更新部222から構成される。
学習処理部221は、図12に示した学習処理部32と同様に構成され、学習部212に供給される教示データのうちの入力データに基づいて、記憶部211に記憶された入出力関係モデル(図20)における時系列パターン記憶ネットワークnetinを、図10のデータ処理装置における場合と同様に、自己組織的に更新する。また、学習処理部221は、学習部212に供給される教示データのうちの出力データ(教示データにおいて、入力データとセットになっている出力データ)に基づいて、記憶部211に記憶された入出力関係モデル(図20)における時系列パターン記憶ネットワークnetoutを、図10のデータ処理装置における場合と同様に、自己組織的に更新する。
さらに、学習処理部221は、時系列パターン記憶ネットワークnetinを更新するときに勝者ノードとなった、その時系列パターン記憶ネットワークnetinのノードNiのノードラベル(以下、適宜、入力ラベルという)と、時系列パターン記憶ネットワークnetoutを更新するときに勝者ノードとなった、その時系列パターン記憶ネットワークnetoutのノードN'jのノードラベル(以下、適宜、出力ラベルという)とをセットにしたラベルセットを、結合重み更新部222に供給する。
結合重み更新部222は、学習処理部221から供給されるラベルセットに基づき、記憶部211に記憶された入出力関係モデル(図20)における時系列パターン記憶ネットワークnetoutのノードNiと、時系列パターン記憶ネットワークnetoutのノードN'jとの結合関係を更新する。
ここで、学習処理部221から結合重み更新部222に供給されるラベルセットは、入力ラベルと出力ラベルとのセットであり、入力ラベルは、教示データのうちの入力データに基づいて時系列パターン記憶ネットワークnetinを更新するときに勝者ノードとなった、その時系列パターン記憶ネットワークnetinのノードNiのノードラベルであるから、時系列パターン記憶ネットワークnetinにおいて、入力データに最も適合するノードNiのノードラベルである。
同様に、出力ラベルは、教示データのうちの出力データに基づいて時系列パターン記憶ネットワークnetoutを更新するときに勝者ノードとなった、その時系列パターン記憶ネットワークnetoutのノードN'jのノードラベルであるから、時系列パターン記憶ネットワークnetoutにおいて、出力データに最も適合するノードN'jのノードラベルである。
結合重み更新部222では、時系列パターン記憶ネットワークnetinのノードのうちの、教示データにおける入力データに最も適合するノードである勝者ノードNiと、時系列パターン記憶ネットワークnetoutの各ノードとの結合関係が更新されるとともに、時系列パターン記憶ネットワークnetoutのノードのうちの、教示データにおける出力データに最も適合するノードである勝者ノードN'jと、時系列パターン記憶ネットワークnetinの各ノードとの結合関係が更新される。
ここで、入出力関係モデルにおける時系列パターン記憶ネットワークnetinのノードと、時系列パターン記憶ネットワークnetoutのノードとの間の結合関係は、その結合の度合いが強いほど、大きな値となる結合重みによって表されるようになっており、ノードどうしの結合関係の更新とは、結合重みの更新を意味する。結合重み更新部222によるノードどうしの結合関係の更新の方法についての詳細は、後述する。
認識生成部213には、制御対象から得られる出力データを予測するための入力データ、または制御対象から得られる出力データをある目標値とするのに制御対象に与えるべき入力データ(制御データ)を予測するための出力データが供給される。
そして、認識生成部213は、入力データが供給された場合は、記憶部211に記憶された入出力関係モデルにおける時系列パターン記憶ネットワークnetinにおいて、その入力データに最も適合する勝者ノードNiを決定し、その勝者ノードNiとの結合重みが最も強い、時系列パターン記憶ネットワークnetoutのノードを、その入力データに対する出力データの予測値としての時系列データを生成する生成ノードN'jに決定する。さらに、認識生成部213は、生成ノードN'jが有する時系列パターンモデル21(図7)に基づいて、出力データ(の予測値)を生成して出力する。
また、認識生成部213は、出力データが供給された場合は、記憶部211に記憶された入出力関係モデルにおける時系列パターン記憶ネットワークnetoutにおいて、その出力データに最も適合する勝者ノードN'jを決定し、その勝者ノードN'jとの結合重みが最も強い、時系列パターン記憶ネットワークnetinのノードを、その出力データが得られるときに制御対象に与えられる制御データ(入力データ)の予測値としての時系列データを生成する生成ノードNiに決定する。さらに、認識生成部213は、生成ノードNiが有する時系列パターンモデル21(図7)に基づいて、制御データ(の予測値)を生成して出力する。
即ち、認識生成部213は、スコア計算部231、勝者ノード決定部232、生成ノード決定部233、および時系列生成部234から構成される。
なお、スコア計算部231、勝者ノード決定部232、生成ノード決定部233、および時系列生成部234は、認識生成部213に供給されたデータが、入力データであるのか、または出力データであるのかを認識することができるようになっているものとする。即ち、例えば、認識生成部213に対しては、そこに供給されるデータとは別に、あるいは、そこに供給されるデータとともに、そのデータが、入力データまたは出力データのうちのいずれであるのかを表す情報が供給されるようになっており、これにより、スコア計算部231、勝者ノード決定部232、生成ノード決定部233、および時系列生成部234は、認識生成部213に供給されたデータが、入力データであるのか、または出力データであるのかを認識する。
スコア計算部231は、認識生成部213に供給されたデータに対して、記憶部211に記憶された入出力関係モデルを構成する時系列パターン記憶ネットワークnetinの各ノードNi、または時系列パターン記憶ネットワークnetoutの各ノードN'jが適合する度合いであるスコアを、図16の認識部3のスコア計算部51における場合と同様にして計算し、勝者ノード決定部232に供給する。
即ち、スコア計算部231は、認識生成部213に供給されたデータが入力データである場合、その入力データに対して、記憶部211に記憶された入出力関係モデルを構成する時系列パターン記憶ネットワークnetinの各ノードNiのスコアを計算し、勝者ノード決定部232に供給する。また、スコア計算部231は、認識生成部213に供給されたデータが出力データである場合、その出力データに対して、記憶部211に記憶された入出力関係モデルを構成する時系列パターン記憶ネットワークnetoutの各ノードN'jのスコアを計算し、勝者ノード決定部232に供給する。
勝者ノード決定部232は、図16の認識部3の勝者ノード決定部52における場合と同様に、スコア計算部231から供給されるスコアが最も高いノードを勝者ノードに決定し、その勝者ノードを表すノードラベルを、生成ノード決定部233に供給する。
従って、認識生成部213に供給されたデータが入力データである場合、勝者ノード決定部232では、記憶部211に記憶された入出力関係モデルを構成する時系列パターン記憶ネットワークnetinのノードの中で、スコア計算部231から供給される、入力データに対するスコアが最も高いノードが、勝者ノードNiに決定され、その勝者ノードNiを表す入力ラベルが、生成ノード決定部233に供給される。また、認識生成部213に供給されたデータが出力データである場合、勝者ノード決定部232では、記憶部211に記憶された入出力関係モデルを構成する時系列パターン記憶ネットワークnetoutのノードの中で、スコア計算部231から供給される、出力データに対するスコアが最も高いノードが、勝者ノードN'jに決定され、その勝者ノードN'jを表す出力ラベルが、生成ノード決定部233に供給される。
なお、ここでは、最も高い(大きい)スコアが最も良いスコアであるとする。
生成ノード決定部233は、勝者ノード決定部232から入力ラベルが供給された場合、即ち、認識生成部213に供給されたデータが入力データである場合、記憶部211に記憶された入出力関係モデルを構成する時系列パターン記憶ネットワークnetoutのノードの中で、勝者ノード決定部232からの入力ラベルが表すノードNiとの結合重みが最も強い(最強の)ノードN'jを生成ノードとして決定し、その生成ノードN'jを表す出力ラベルを、時系列生成部234に供給する。また、生成ノード決定部233は、勝者ノード決定部232から出力ラベルが供給された場合、即ち、認識生成部213に供給されたデータが出力データである場合、記憶部211に記憶された入出力関係モデルを構成する時系列パターン記憶ネットワークnetinのノードの中で、勝者ノード決定部232からの出力ラベルが表すノードN'jとの結合重みが最も強い(最強の)ノードNiを生成ノードとして決定し、その生成ノードNiを表す入力ラベルを、時系列生成部234に供給する。
時系列生成部234は、生成ノード決定部233から出力ラベルが供給された場合、即ち、認識生成部213に供給されたデータが入力データである場合、記憶部211に記憶された入出力関係モデルを構成する時系列パターン記憶ネットワークnetoutのノードのうちの、生成ノード決定部233からの出力ラベルが表すノードN'jが有する時系列パターンモデル21(図7)に基づいて、認識生成部213に供給された入力データに対する出力データの予測値としての時系列データを、例えば、図18の生成部6の時系列生成部62における場合と同様にして生成する。
また、時系列生成部234は、生成ノード決定部233から入力ラベルが供給された場合、即ち、認識生成部213に供給されたデータが出力データである場合、記憶部211に記憶された入出力関係モデルを構成する時系列パターン記憶ネットワークnetinのノードのうちの、生成ノード決定部233からの入力ラベルが表すノードNiが有する時系列パターンモデル21に基づいて、認識生成部213に供給された出力データに対する制御データ(入力データ)の予測値としての時系列データを、例えば、図18の生成部6の時系列生成部62における場合と同様にして生成する。
次に、図22のフローチャートを参照して、図21のデータ処理装置で行われる、入出力関係モデルによる制御対象のモデル化、即ち、入出力関係モデルの学習について説明する。
ステップS101において、入力データと出力データとのセットである教示データが、図21のデータ処理装置に入力されると、その教示データは、学習部212の学習処理部221に供給される。
学習処理部221は、ステップS102において、教示データのうちの入力データに基づいて、記憶部211に記憶された入出力関係モデル(図20)における時系列パターン記憶ネットワークnetinを、自己組織的に更新し、ステップS103に進む。ステップS103では、学習処理部221は、教示データのうちの出力データに基づいて、記憶部211に記憶された入出力関係モデルにおける時系列パターン記憶ネットワークnetoutを、自己組織的に更新する。
そして、学習処理部221は、時系列パターン記憶ネットワークnetinを更新するときに勝者ノードとなった、その時系列パターン記憶ネットワークnetinのノードNiの入力ラベルと、時系列パターン記憶ネットワークnetoutを更新するときに勝者ノードとなった、その時系列パターン記憶ネットワークnetoutのノードN'jの出力ラベルとのセットであるラベルセットを、結合重み更新部222に供給する。
結合重み更新部222は、ステップS104において、学習処理部221から供給されるラベルセットに基づき、記憶部211に記憶された入出力関係モデル(図20)における時系列パターン記憶ネットワークnetinの各ノードと、時系列パターン記憶ネットワークnetoutの各ノードとの結合重みを更新して、ステップS101に戻り、次の教示データが入力されるのを待って、以下、同様の処理が繰り返される。
多数の教示データが入力され、ステップS101乃至S104の処理が繰り返されることにより、記憶部211に記憶された入出力関係モデルは、制御対象に対応する順モデルとなっていくとともに、逆モデルにもなっていく。
なお、ステップS102とS103の処理は、並列して行うこともできるし、図22の場合と逆順で行うこともできる。
次に、図23を参照して、結合重み更新部222(図21)が、図22のステップS104で行う結合重み(ノードどうしの結合関係)の更新について説明する。
なお、以下、適宜、入出力関係モデルにおいて、入力データが与えられる時系列パターン記憶ネットワーク、つまり、入力データを用いて学習が行われ、入力データの時系列パターンを表現する時系列パターンモデル21を有する複数のノードから構成される時系列パターン記憶ネットワーク(例えば、時系列パターン記憶ネットワークnetin)を、入力ネットワークといい、出力データが与えられる時系列パターン記憶ネットワーク、つまり、出力データを用いて学習が行われ、出力データの時系列パターンを表現する時系列パターンモデル21を有する複数のノードから構成される時系列パターン記憶ネットワーク(例えば、時系列パターン記憶ネットワークnetout)を、出力ネットワークという。
さらに、以下、適宜、入力ネットワークのノードを入力ノードといい、出力ネットワークのノードを出力ノードという。
また、以下では、入出力関係モデルを、入力データを与えて出力データを予測する順モデルとして用いる場合についての説明をし、入出力関係モデルを、出力データ(目標値)を与えて入力データ(制御データ)を予測する逆モデルとして用いる場合についての説明は適宜省略する。
図23は、入出力関係モデルを示している。
図23左側では、入出力関係モデルは、1つの入力ネットワークnetinと、1つの出力ネットワークnetoutとを有し、入力ネットワークnetinの各入力ノードと、出力ネットワークnetoutの各出力ノードとが結合している。なお、図23では、入力ネットワークnetin、および出力ネットワークnetoutのいずれも、8つのノードで構成されている。
図23左側では、入力ネットワークnetinの各入力ノードは、出力ネットワークnetoutのすべての出力ノードと結合しており(従って、出力ネットワークnetoutの各出力ノードも、入力ネットワークnetinのすべての入力ノードと結合している)、入力ネットワークnetinの入力ノードと、出力ネットワークnetoutの出力ノードとのすべての組み合わせについて、結合重みwが存在する。
いま、ノードどうしが結合している2つの時系列パターン記憶ネットワークに注目し、そのうちの一方の時系列パターン記憶ネットワークのノードを各行に対応させるとともに、他方の時系列パターン記憶ネットワークのノードを各列に対応させ、第i行第j列の要素に、一方の時系列パターン記憶ネットワークのi番目のノードと、他方の時系列パターン記憶ネットワークのj番目のノードとの結合重みwを配置した行列を、結合重み行列MTXということとすると、結合重み更新部222(図21)は、この結合重み行列MTXの各要素である結合重みwを更新する。
図23右側は、図23左側の入出力関係モデルについての結合重み行列MTXを示している。
図23右側の結合重み行列MTXでは、入力ノードを各行に対応させるとともに、出力ノードを各列に対応させ、第i行第j列の要素に、i番目の入力ノードと、j番目の出力ノードとの結合重みwが配置されている。結合重み更新部222(図21)は、この結合重み行列MTXの各要素である結合重みwを更新する。
即ち、結合重み更新部222は、例えば、最初に電源がオンにされたときに、結合重み行列MTXにおけるすべての結合重みwを、例えば、初期値としての0に初期化する。そして、結合重み更新部222は、図21のデータ処理装置に対して、教示データ、つまり、入力データと出力データとのセットが入力され、これにより、入力ネットワークnetinにおける勝者ノードを表す入力ラベルと、出力ネットワークnetoutにおける勝者ノードを表す出力ラベルとのラベルセットが、学習処理部221から与えられるたびに、それらの勝者ノードどうしの結合を、いわば中心として、結合重みwを更新する。
具体的には、結合重み更新部222は、例えば、式(4)にしたがって、結合重み行列MTXの結合重みwを更新する。
Figure 2007299365
・・・(4)
ここで、βは、結合重みwを更新する程度を表す学習率であり、0から1の範囲で与えられる。学習率βを小さくするほど、結合重みwは、あまり変化しなくなり、学習率βが0である場合には、結合重みwは変化しない。一方、学習率βを大きくするほど、結合重みwも、大きく変化し、学習率βが1である場合には、結合重みwは、更新の基準値△wに更新される。
また、基準値△wは、例えば、式(5)で与えられる。
Figure 2007299365
・・・(5)
ここで、dは、式(3)における場合と同様に、勝者ノードとのパターン間距離を表し、勝者ノードとなっているノードについては、d=0である。従って、勝者ノード(となっているノード)については、基準値△wは1となり、勝者ノードからのパターン間距離dが大のノードほど、基準値△wは0に近づく。
いま、学習処理部221(図21)から結合重み更新部222に供給される入力ラベルが表す入力ノード、即ち、入力ネットワークnetinにおける勝者ノードを、入力ノードNiと表すとともに、学習処理部221(図21)から結合重み更新部222に供給される出力ラベルが表す出力ノード、即ち、出力ネットワークnetoutにおける勝者ノードを、出力ノードN'jと表すと、結合重み更新部222(図21)は、式(4)(および式(5))にしたがい、以下のように、結合重み行列MTXの結合重みwを更新する。
即ち、結合重み更新部222は、出力ネットワークnetoutの各出力ノードについて、出力ネットワークnetoutにおける勝者ノードである出力ノードN'jとのパターン間距離dを用い、式(5)にしたがって、基準値△wを求め、さらに、その基準値△wを用い、式(4)にしたがって、入力ネットワークnetinの勝者ノードであるi番目の入力ノードNiとの結合重みwを更新する。
これにより、入力ネットワークnetinの勝者ノードである入力ノードNiに対応する、結合重み行列MTXの第i行の(各列の)結合重みwが更新される。
また、結合重み更新部222は、入力ネットワークnetinの各入力ノードについて、入力ネットワークnetinにおける勝者ノードである入力ノードNiとのパターン間距離dを用い、式(5)にしたがって、基準値△wを求め、さらに、その基準値△wを用い、式(4)にしたがって、出力ネットワーク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)の更新は、教示データとしての入力データと出力データとのセットが、図21のデータ処理装置に対して入力されるたびに行われる。
さらに、入出力関係モデルが有する入力ネットワークnetinの入力データに基づく学習、および出力ネットワークnetoutの出力データに基づく学習も、教示データとしての入力データと出力データとのセットが、図21のデータ処理装置に対して入力されるたびに行われる。
そして、入力ネットワークnetin、および出力ネットワークnetoutの学習が進むと、入力ノードが有する時系列パターンモデル21が、ある特定の時系列パターンを表現し、また、出力ノードが有する時系列パターンモデル21も、他の特定の時系列パターンを表現するようになる。
その結果、ある特定の時系列パターンの入力データと、他の特定の時系列パターンの出力データとの間に、何らかの関係性がある場合、そのような入力データと出力データとのセット(教示データ)が与えられると、入力ネットワークnetinにおいてある特定の時系列パターンを表現する時系列パターンモデル21を有する入力ノードが勝者ノードとなるとともに、出力ネットワークnetoutにおいて他の特定の時系列パターンを表現する時系列パターンモデル21を有する出力ノードが勝者ノードとなる。
さらに、上述したように、入力ネットワーク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の出力ノードを決定することができる。さらに、その出力ノード(が有する時系列パターンモデル21)に基づき、時系列データを生成することで、与えられた入力データに対する出力データを予測することができる。
また、逆モデルとしての入出力関係モデルによれば、ある出力データ(目標値)が与えられた場合に、出力ネットワークnetoutにおいて、その出力データに最も適合する勝者ノードを決定することができ、その勝者ノードとの結合重みwが最強の入力ネットワークnetinの入力ノードを決定することができる。さらに、その入力ノード(が有する時系列パターンモデル21)に基づき、時系列データを生成することで、与えられた出力データに対する制御データ(入力データ)を予測することができる。
なお、結合重み行列MTXは、入出力関係モデルの一部として、記憶部211(図21)に記憶される。
次に、図24のフローチャートを参照して、順モデルまたは逆モデルとしての入出力関係モデルを用いて、入力データに対する出力データや、出力データに対する制御データ(入力データ)を予測する処理について説明する。
まず、図21のデータ処理装置において、入力データに対する出力データを予測する場合、ステップS111において、その入力データが、図21のデータ処理装置に入力される。
データ処理装置に入力された入力データは、認識生成部213のスコア計算部231に供給される。
スコア計算部231は、ステップS112において、そこに供給された入力データに対して、記憶部211に記憶された入出力関係モデルを構成する時系列パターン記憶ネットワークnetinの各ノードNiのスコアを計算し、勝者ノード決定部232に供給する。
勝者ノード決定部232は、ステップS113において、記憶部211に記憶された入出力関係モデルを構成する時系列パターン記憶ネットワークnetinのノードの中で、スコア計算部231からのスコアが最も高いノードを、勝者ノードNiに決定し、その勝者ノードNiを表す入力ラベルを、生成ノード決定部233に供給する。
生成ノード決定部233は、ステップS114において、記憶部211に記憶された入出力関係モデルを構成する時系列パターン記憶ネットワークnetoutのノードの中で、勝者ノード決定部232からの入力ラベルが表すノードNiとの結合重みが最も強いノードN'jを生成ノードに決定し、その生成ノードN'jを表す出力ラベルを、時系列生成部234に供給する。
時系列生成部234は、ステップS115において、記憶部211に記憶された入出力関係モデルを構成する時系列パターン記憶ネットワークnetoutのノードのうちの、生成ノード決定部233からの出力ラベルが表すノードN'jが有する時系列パターンモデル21(図7)に基づいて、認識生成部213に供給された入力データに対する出力データの予測値としての時系列データを生成して、ステップS116に進み、その時系列データを出力する。
次に、図21のデータ処理装置において、出力データに対する制御データ(入力データ)を予測する場合には、ステップS111において、その出力データが、図21のデータ処理装置に入力される。
データ処理装置に入力された出力データは、認識生成部213のスコア計算部231に供給される。
スコア計算部231は、ステップS112において、そこに供給された出力データに対して、記憶部211に記憶された入出力関係モデルを構成する時系列パターン記憶ネットワークnetoutの各ノードN'jのスコアを計算し、勝者ノード決定部232に供給する。
勝者ノード決定部232は、ステップS113において、記憶部211に記憶された入出力関係モデルを構成する時系列パターン記憶ネットワークnetoutのノードの中で、スコア計算部231からのスコアが最も高いノードを、勝者ノードN'jに決定し、その勝者ノードN'jを表す出力ラベルを、生成ノード決定部233に供給する。
生成ノード決定部233は、ステップS114において、記憶部211に記憶された入出力関係モデルを構成する時系列パターン記憶ネットワークnetinのノードの中で、勝者ノード決定部232からの出力ラベルが表すノードN'jとの結合重みが最も強いノードNiを生成ノードに決定し、その生成ノードNiを表す入力ラベルを、時系列生成部234に供給する。
時系列生成部234は、ステップS115において、記憶部211に記憶された入出力関係モデルを構成する時系列パターン記憶ネットワークnetinのノードのうちの、生成ノード決定部233からの入力ラベルが表すノードNiが有する時系列パターンモデル21に基づいて、認識生成部213に供給された出力データに対する制御データ(入力データ)の予測値としての時系列データを生成して、ステップS116に進み、その時系列データを出力する。
以上のように、入力データと出力データとのセットを用いて、入出力関係モデルの学習を行い、制御対象を順モデルおよび逆モデルにモデル化して、制御対象を精度良く表現し、高精度に、出力データや制御データ(入力データ)を予測することが可能となる。
次に、上述したように、図21のデータ処理装置においては、制御対象に与えられる、ある区間の時系列データ(ある時間に亘る時系列データ)である入力データと、その区間の時系列データに対して制御対象から観測される区間の他の時系列データである出力データとのセットを、教示データとして、学習部212に供給し、学習部212において、教示データを用い、制御対象の順モデルまたは逆モデルとしての入出力関係モデルの学習を行う。
従って、例えば、制御対象をロボットとして、そのロボットに与える入力データとして、ロボットに呼びかける音声をセンサとしてのマイクで検知したセンサデータ(音声データ)の時系列を採用するとともに、ロボットに呼びかける音声に対して、ロボットが手をふるようにアームを動かす行動をとるためにモータに与えられるモータデータの時系列を、ロボットの出力データとして採用して、入出力関係モデルの学習を行うと、学習部212(図21)では、入出力関係モデルの入力ネットワークnetinの1以上のノード(が有する時系列パターンモデル21)が、ロボットに呼びかける音声に対応するセンサデータとしての入力データの時系列パターンを表現するように、自己組織的な学習が行われるとともに、出力ネットワークnetoutの1以上のノード(が有する時系列パターンモデル21)が、手をふる行動に対応するモータデータとしての出力データの時系列パターンを表現するように、自己組織的な学習が行われる。
さらに、学習部212では、入出力関係モデルの入力ネットワークnetinの各ノードと、出力ネットワークnetoutの勝者ノードとの結合重みwが、入力ネットワークnetinの勝者ノードとのパターン間距離dが近いノードほど強くなるように更新されるとともに、出力ネットワークnetoutの各出力ノードと、入力ネットワークnetinの勝者ノードとの結合重みwが、出力ネットワークnetoutの勝者ノードとのパターン間距離dが近い出力ノードほど強くなるように更新される。
その結果、入力ネットワークnetinのノードのうちの、ロボットに呼びかける音声に対応するセンサデータとしての入力データの時系列パターンを表現する(時系列パターンモデル21を有する)1以上のノードと、出力ネットワークnetoutのノードのうちの、手をふる行動に対応するモータデータの時系列パターンを表現する(時系列パターンモデル21を有する)1以上のノードとの結合重みは強くなる。
その後、認識生成部213(図21)に、ロボットに呼びかける音声に対応するセンサデータが、入力データとして与えられると、入出力関係モデルでは、その入力データに対して、入力ネットワークnetinのノードのうちの、ロボットに呼びかける音声に対応するセンサデータの時系列パターンを表現する、ある1つのノードが勝者ノードとなる。そして、認識生成部213では、その勝者ノードとの結合重みが最も強い、出力ネットワークnetoutのノード、即ち、いまの場合、出力ネットワークnetoutのノードのうちの、手をふる行動に対応するモータデータの時系列パターンを表現する、あるノードが、生成ノードに決定され、その生成ノードを用いて、出力データ、即ち、いまの場合、手をふる行動に対応するモータデータが生成されて出力される。
ここで、入出力関係モデルを利用したロボットの認知行動という場合の認知とは、入力データに対して、入出力関係モデルの入力ネットワークnetinのノードの中から勝者ノードを決定することに相当し、行動とは、その勝者ノードに対して、出力ネットワークnetoutのノードの中から生成ノードを決定し、時系列データ(出力データ)を生成することに相当する。
図21のデータ処理装置によれば、例えば、ロボットに、呼びかけの音声を与え、その音声に対して、手をふるようなアームの動きを与えると、上述のような学習が行われ、その結果、ロボットが、呼びかけの音声に対して、手をふる認知行動を行うようになる。
しかしながら、図21のデータ処理装置では、認知と行動とが、比較的短時間で繰り返されることで完成する、実時間性が要求されるタスクを、ロボットに行わせることが困難であることがある。
即ち、例えば、ロボットが、目の前にあるボールを左右に転がすタスクを行う場合、ボールの状態を把握(認識)する認知と、ボールの状態に応じて適切にアームを動かす行動とを、ある短い所定の時間単位で繰り返し行う必要がある。いま、この所定の時間を、フレームと呼ぶこととすると、時間軸上のあるフレームにおける、ボールの状態をセンサで検知したセンサデータと、そのフレームにおいてとらなければならないアームの動きに対応するモータデータとのセットを、教示データとして、図21のデータ処理装置に与え、その教示データのうちのセンサデータの時系列パターンを表現する入力ノード(入力ネットワークnetinのノード)と、その教示データのうちのモータデータの時系列パターンを表現する出力ノード(出力ネットワークnetoutのノード)との結合重みを強くしても、ロボットは、目の前にあるボールを左右に転がすタスクを行うことができるようにはならない。
なぜなら、あるフレームのセンサデータが与えられた時点で、そのフレームのモータデータによるアームの動きは、既に行われていなければならないからである。
従って、ロボットが、目の前にあるボールを左右に転がすタスクを行うことができるようにするには、あるフレームを注目フレームとして注目すると、ボールの状態をセンサで検知したセンサデータのうちの、注目フレームのセンサデータの時系列パターンを表現する入力ノード(以下、適宜、センサデータに対応するノードともいう)と、ボールを左右に転がすアームの動きに対応するモータデータのうちの、注目フレームの時刻から一定の時間だけ遅れたフレームのモータデータの時系列パターンを表現する出力ノード(以下、適宜、モータデータに対応するノードともいう)との結合重みを強くするように、入出力関係モデルの学習を行う必要がある。
なお、フレームのセンサデータの認知、即ち、フレームのセンサデータに対して勝者ノードを決定する処理の処理速度によっては、注目フレームのセンサデータが与えられてから、そのセンサデータに対するモータデータが生成される行動が行われるまでに、無視することができない遅延時間が生じることがある。注目フレームのセンサデータに対応するノードとの結合重みを強くする出力ノードを、注目フレームからどの程度の時間だけ遅れたフレームのモータデータに対応するノードとするかは、必要に応じて、かかる遅延時間をも考慮して決めるのが望ましい。
図25は、実時間性が要求されるタスクを行うことが可能なロボットの構成例を示している。
図25において、ロボットは、データ処理装置301、センサ302、およびモータ駆動部303等から構成されている。
データ処理装置301は、センサ302から供給される時系列のセンサデータと、モータ駆動部303から供給される時系列のモータデータとを用いて、入出力関係モデルの自己組織的な学習を行う。さらに、データ処理装置301は、センサ302から供給される時系列のセンサデータに対して、時系列のモータデータを生成し、モータ駆動部303に供給する。
センサ302は、カメラやマイク等であり、外部の状態を検知して、その外部の状態を表す時系列のセンサデータを、データ処理装置301に供給する。
モータ駆動部303は、データ処理装置301から供給されるモータデータに応じて、例えば、ロボットのアーム等を動かすための図示せぬモータ(アクチュエータ)を駆動する。また、モータ駆動部303は、例えば、ロボットのアーム等が、外部から力が加えられることによって動かされた場合に、その動きをするために、モータ駆動部303に与えられるべきモータデータと同一のモータデータを生成し、データ処理装置301に供給する。さらに、モータ駆動部303は、上述したように、データ処理装置301から供給されるモータデータに応じて、モータを駆動するとともに、必要に応じて、そのモータデータを、データ処理装置301に供給する(戻す)。
図25において、データ処理装置301は、記憶部311、データ抽出部312、学習処理部313、写像学習部314、データ抽出部315、認識部316、写像部317、および生成部318から構成されている。
記憶部311は、入出力関係モデルを記憶している。
ここで、図26は、記憶部311が記憶している入出力関係モデルM11を示している。
入出力関係モデルM11は、図20や図23に示した入出力関係モデルと同様に、入力データとしての時系列データのパターンである時系列パターンを表現する時系列パターンモデル21(図7)を有する複数のノードから構成される時系列パターン記憶ネットワークである入力ネットワークnet1(入力時系列パターン記憶ネットワーク)と、出力データとしての時系列データのパターンである時系列パターンを表現する時系列パターンモデル21を有する複数のノードから構成される時系列パターン記憶ネットワークである出力ネットワークnet2(出力時系列パターン記憶ネットワーク)とを有する。
そして、入出力関係モデルM11では、入力ネットワークnet1の各ノードと、出力ネットワークのnet2の各ノードとが、結合重みによって結合されている。
図25に戻り、データ抽出部312には、センサ302が各時刻において出力するセンサデータと、モータ駆動部303が同一時刻において出力するモータデータとが、教示データとして供給される。データ抽出部312は、教示データのうちのセンサデータを、認知行動時に入出力関係モデルM11に与える入力データとして、その入力データの時系列から、フレーム単位の入力データを順次抽出し、学習処理部313に供給する。
さらに、データ抽出部312は、教示データのうちのモータデータを、認知行動時に入出力関係モデルM11から生成されるべき出力データとして、その出力データの時系列から、フレーム単位の出力データを順次抽出し、学習処理部313に供給する。
学習処理部313は、認識学習処理部321と生成学習処理部322とから構成され、データ抽出部312から供給されるフレーム単位の入力データと出力データそれぞれを用いて、記憶部311に記憶された入出力関係モデルM11(図26)が有する入力ネットワークnet1と出力ネットワークnet2それぞれの自己組織的な学習を行う。
即ち、認識学習処理部321は、図21の学習処理部221と同様に、データ抽出部312から供給されるフレーム単位の入力データに基づいて、記憶部311に記憶された入出力関係モデルM11(図26)における入力ネットワークnet1を、自己組織的に更新する。
具体的には、認識学習処理部321は、入出力関係モデルM11における入力ネットワークnet1の各ノードについて、データ抽出部312からのフレームの入力データに対するスコアを求め、入力ネットワークnet1のノードの中から、スコアの最も良いノードを、勝者ノード(入力勝者ノード)に決定する。さらに、認識学習処理部321は、データ抽出部312からのフレームの入力データに対する入力勝者ノードに基づいて、入力ネットワークnet1を、自己組織的に更新する。
また、認識学習処理部321は、フレーム単位の入力データに対して時系列に決定した入力勝者ノードを表すノードラベルである入力ラベルを、写像学習部314に、時系列に供給する。
生成学習処理部322も、図21の学習処理部221と同様に、データ抽出部312から供給されるフレーム単位の出力データに基づいて、記憶部311に記憶された入出力関係モデルM11(図26)における出力ネットワークnet2を、自己組織的に更新する。
具体的には、生成学習処理部322は、入出力関係モデルM11における出力ネットワークnet2の各ノードについて、データ抽出部312からのフレームの出力データに対するスコアを求め、出力ネットワークnet2のノードの中から、スコアの最も良いノードを、勝者ノード(出力勝者ノード)に決定する。さらに、生成学習処理部322は、データ抽出部312からのフレームの出力データに対する出力勝者ノードに基づいて、出力ネットワークnet2を、自己組織的に更新する。
また、生成学習処理部322は、フレーム単位の出力データに対して時系列に決定した出力勝者ノードを表すノードラベルである出力ラベルを、写像学習部314に、時系列に供給する。
写像学習部314は、データバッファ331、読み出し部332、および結合重み更新部333から構成され、記憶部311に記憶された入出力関係モデルM11における入力ネットワークnet1のフレーム単位の入力データに対する入力勝者ノードと、出力ネットワークnet2の各ノードとの結合重みを更新するとともに、出力ネットワークnet2の、フレーム単位の入力データの時刻から一定の時間だけ遅れたフレーム単位の出力データに対する出力勝者ノードと、入力ネットワークnet1の各ノードとの結合重みを更新する。
即ち、データバッファ331は、認識学習処理部321から供給される時系列の入力ラベルと、生成学習処理部322から供給される時系列の出力ラベルとを一時記憶する。
読み出し部332は、入力データのフレームを、順次、注目フレームとして、データバッファ331に記憶された入力ラベルのうちの、注目フレームの入力データに対する入力勝者ノードを表す入力ラベルと、データバッファ331に記憶された出力ラベルのうちの、注目フレームの時刻から一定の時間だけ遅れたフレームの出力データに対する出力勝者ノードを表す出力ラベルとを読み出して対応付け、その対応付けた入力ラベルと出力ラベルとのセットであるラベルセットを、結合重み更新部333に供給する。
結合重み更新部333は、図21の結合重み更新部222と同様に、図23で説明したようにして、読み出し部332から供給されるラベルセットに基づき記憶部311に記憶された入出力関係モデルM11(図26)における入力ネットワークnet1のノードNiと、出力ネットワークnet2のノードN'jとの結合関係を、ヘブ(hebb)則等により更新する。
即ち、結合重み更新部333は、入力ネットワークnet1の各入力ノードと、ラベルセットの出力ラベルが表す出力ネットワークnet2の出力勝者ノードとの結合重みを、ラベルセットの入力ラベルが表す入力ネットワークnet1の入力勝者ノードを中心として更新するとともに、出力ネットワークnet2の各出力ノードと、入力ネットワークnet1の勝者ノードとの結合重みを、出力ネットワークnet2の勝者ノードを中心として更新する。
ここで、上述したように、入力勝者ノードは、注目フレームの入力データに対する勝者ノードであり、出力勝者ノードは、注目フレームから一定の時間だけ遅れたフレームの出力データに対する勝者ノードであるから、結合重み更新部333による結合重みの更新によれば、記憶部311に記憶された入出力関係モデルM11において、注目フレームの入力データに対する入力ネットワークnet1の入力勝者ノードと、注目フレームから一定の時間だけ遅れたフレームの出力データに対する出力ネットワークnet2の出力勝者ノードとの結合重みが、より強くなるように更新される。
その結果、入出力関係モデルM11に、あるフレームFの入力データが与えられると、入出力関係モデルM11では、入力ネットワークnet1のノードのうちの、フレームFの入力データに対応するノードが入力勝者ノードとなる。さらに、入出力関係モデルM11では、出力ネットワークnet2のノードのうちの、フレームFから一定の時間だけ遅れたフレームの出力データに対応するノードが、入力勝者ノードとの結合重みが最も強いノードとして、生成ノードに決定され、これにより、その生成ノードに基づき、フレームFから一定の時間だけ遅れたフレームの出力データに相当する時系列データが生成される。
データ抽出部315には、センサ302が各時刻において出力するセンサデータが供給される。データ抽出部315は、センサ302からのセンサデータを、入力データとして、その入力データの時系列から、フレーム単位の入力データを順次抽出し、認識部316に供給する。
認識部316は、スコア計算部341と勝者ノード決定部342とから構成される。
また、図25において、写像部317は、生成ノード決定部351から構成される。さらに、生成部318は、時系列生成部361から構成される。
スコア計算部341、勝者ノード決定部342、生成ノード決定部351、時系列生成部361は、それぞれ、図21のスコア計算部231、勝者ノード決定部232、生成ノード決定部233、時系列生成部234と同様の処理を行う。
なお、時系列生成部361が生成した出力データは、モータデータとして、モータ駆動部303に供給される。
次に、図27を参照して、図25のデータ抽出部312の処理について説明する。
図25で説明したように、データ抽出部312には、センサ302が各時刻において出力するセンサデータと、モータ駆動部303が同一時刻において出力するモータデータとが供給される。
いま、フレームの長さ(時間)をTと表すこととすると、データ抽出部312は、センサデータを入力データとして、その入力データの時系列を、図27に示すように、時間T単位に区切った、フレーム単位の入力データを抽出し、学習処理部313に供給する。
また、データ抽出部312は、モータデータを出力データとして、その出力データの時系列を、図27に示すように、時間T単位に区切った、フレーム単位の出力データを抽出し、学習処理部313に供給する。
ここで、以下、適宜、時刻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]と表すことができる。
なお、図25のデータ抽出部315も、データ抽出部312と同様に、センサ302から供給されるセンサデータを入力データとして、その入力データの時系列から、時間Tのフレーム単位の入力データを抽出し、認識部316に供給する。
次に、図28を参照して、図25の読み出し部332の処理について説明する。
読み出し部332は、上述したように、入力データのフレームを、順次、注目フレームとして、データバッファ331に記憶された入力ラベルのうちの、注目フレームの入力データに対する入力勝者ノードを表す入力ラベルと、データバッファ331に記憶された出力ラベルのうちの、注目フレームの時刻から一定の時間だけ遅れたフレームの出力データに対する出力勝者ノードを表す出力ラベルとを対応付ける。
即ち、一定の時間として、例えば、フレームと同一の時間Tを採用することとすると、読み出し部332は、時刻tのフレームの入力データ(I[t,t+T-1])に対する入力勝者ノードNtを表す入力ラベルと、注目フレームの時刻tから時間Tだけ遅れた時刻t+Tのフレームの出力データ(O[t+T,t+2T-1])に対する出力勝者ノードN't+Tを表す出力ラベルとを対応付ける。
次に、図29のフローチャートを参照して、図25のロボットが行う学習処理、即ち、入出力関係モデルM11の学習処理について説明する。
例えば、ロボットに、目の前にあるボールを左右に転がすタスクを学習させる場合、オペレータ(ロボットにタスクの学習をさせようとするユーザ)は、ロボットの前にボールをおき、ロボットのアームを持って、ボールを左右に転がすように、アームを動かす。
この場合、センサ302において、左右に転がるボールの状態が検知され、その状態を表す時系列のセンサデータが、データ処理装置301のデータ抽出部312に供給される。
また、モータ駆動部303では、オペレータが動かしているアームの動きに対応するモータデータが生成され、データ処理装置301のデータ抽出部312に供給される。
データ抽出部312は、ステップS301において、センサ302からのセンサデータを入力データとして、その入力データの時系列から、フレーム単位の入力データを抽出し、学習処理部313の認識学習処理部321に供給するとともに、モータ駆動部303からのモータデータを出力データとして、その出力データの時系列から、フレーム単位の出力データを抽出し、学習処理部313の生成学習処理部322に供給して、ステップS302に進む。
ステップS302では、学習処理部313が、データ抽出部312からのフレーム単位の入力データと出力データを用いて、記憶部311に記憶された入出力関係モデルM11(図26)が有する入力ネットワークnet1と出力ネットワークnet2の自己組織的な学習を行う。
即ち、ステップS302では、ステップS3021とS3022の処理が行われる。
ステップS3021では、認識学習処理部321が、記憶部311に記憶された入出力関係モデルM11における入力ネットワークnet1の各ノードについて、データ抽出部312からのフレーム単位の入力データに対するスコアを求め、入力ネットワークnet1のノードの中から、スコアの最も良いノードを、入力勝者ノードに決定する。さらに、認識学習処理部321は、データ抽出部312からのフレーム単位の入力データに対する入力勝者ノードに基づいて、入力ネットワークnet1を、自己組織的に更新し、入力勝者ノードを表す入力ラベルを、写像学習部314に供給する。
ステップS3022では、生成学習処理部322が、記憶部311に記憶された入出力関係モデルM11における出力ネットワークnet2の各ノードについて、データ抽出部312からのフレーム単位の出力データに対するスコアを求め、出力ネットワークnet2のノードの中から、スコアの最も良いノードを、出力勝者ノードに決定する。さらに、生成学習処理部322は、データ抽出部312からのフレーム単位の出力データに対する出力勝者ノードに基づいて、出力ネットワークnet2を、自己組織的に更新し、出力勝者ノードを表す出力ラベルを、写像学習部314に供給する。
ステップS302の処理後は、ステップS303に進み、写像学習部314は、入力データのフレームのうちの、まだ注目フレームとしていないフレームを、注目フレームとして、学習処理部313からの、注目フレームの入力データに対する入力勝者ノードを表す入力ラベルと、学習処理部313からの、注目フレームから時間Tだけ遅れたフレームの出力データに対する出力勝者ノードを表す出力ラベルとを対応付ける。
即ち、ステップS303では、写像学習部314のデータバッファ331において、学習処理部313からのフレーム単位の入力データに対する入力勝者ノードを表す入力ラベルと、フレーム単位の出力データに対する出力勝者ノードを表す出力ラベルとが一時記憶される。
さらに、ステップS303では、写像学習部314の読み出し部332が、データバッファ331に記憶された入力ラベルのうちの、注目フレームの入力データに対する入力勝者ノードを表す入力ラベルと、データバッファ331に記憶された出力ラベルのうちの、注目フレームの時刻から時間Tだけ遅れたフレームの出力データに対する出力勝者ノードを表す出力ラベルとを読み出して対応付け、その対応付けた入力ラベルと出力ラベルとのセットであるラベルセットを、結合重み更新部333に供給する。
そして、ステップS303からステップS304に進み、写像学習部314の結合重み更新部333が、読み出し部332から供給されるラベルセットに基づき、記憶部311に記憶された入出力関係モデルM11(図26)における入力ネットワークnet1のノードと、出力ネットワークnet2のノードとの結合関係を更新する。
即ち、結合重み更新部333は、記憶部311に記憶された入出力関係モデルM11における入力ネットワークnet1の各入力ノードと、ラベルセットの出力ラベルが表す出力ネットワークnet2の出力勝者ノードとの結合重みを、ラベルセットの入力ラベルが表す入力ネットワークnet1の入力勝者ノードを中心として更新するとともに、出力ネットワークnet2の各出力ノードと、入力ネットワークnet1の勝者ノードとの結合重みを、出力ネットワークnet2の勝者ノードを中心として更新する。
なお、図29の学習処理は、入力データの先頭のフレームから終わりのフレームまでを、順次、注目フレームとして、ステップS302乃至S304の処理を繰り返し行うようにしてもよいし、入力データの先頭のフレームから終わりのフレームまでを、順次、注目フレームとして、ステップS302の処理を繰り返し行い、その後、再び、入力データの先頭のフレームから終わりのフレームまでを、順次、注目フレームとして、ステップS303およびS304の処理を繰り返し行うようにしても良い。
次に、図30のフローチャートを参照して、図25のロボットが行う認知行動の処理、即ち、入出力関係モデルM11を用いた時系列データの生成処理(認識生成処理)について説明する。
例えば、図29で説明したように、ロボットに、目の前にあるボールを左右に転がすタスクを学習させた後、ロボットの前にボールをおくと(さらに、必要に応じて、ボールを転がすと)、センサ302において、ボールの状態が検知され、その状態を表す時系列のセンサデータが、データ処理装置301のデータ抽出部315に供給される。
データ抽出部315は、ステップS311において、センサ302からのセンサデータを入力データとして、その入力データの時系列から、フレーム単位の入力データを抽出し、認識部316に供給して、ステップS312に進む。
認識部316では、ステップS312において、スコア計算部341が、データ抽出部315からのフレーム単位の入力データを、順次、注目フレームの入力データとして、その注目フレームの入力データに対して、記憶部311に記憶された入出力関係モデルM11を構成する入力ネットワークnet1の各ノードのスコアを計算し、勝者ノード決定部342に供給する。
さらに、ステップS312では、勝者ノード決定部342が、記憶部311に記憶された入出力関係モデルM11を構成する入力ネットワークnet1のノードの中で、スコア計算部341からのスコアが最も良いノードを、入力勝者ノードに決定し、その入力勝者ノードを表す入力ラベルを、写像部317に供給して、ステップS313に進む。
ステップS313では、写像部317の生成ノード決定部351が、記憶部311に記憶された入出力関係モデルM11を構成する出力ネットワークnet2のノードの中で、勝者ノード決定部342からの入力ラベルが表すノード(入力勝者ノード)との結合重みが最も強いノードを生成ノードに決定し、その生成ノードを表す出力ラベルを、生成部318に供給して、ステップS314に進む。
ステップS314では、生成部318の時系列生成部361が、記憶部311に記憶された入出力関係モデルM11を構成する出力ネットワークnet2のノードのうちの、生成ノード決定部351からの出力ラベルが表す生成ノードが有する時系列パターンモデル21(図7)に基づいて、注目フレームの入力データに対する出力データ(の予測値)としての、例えば、フレームの長さの時系列データを生成して出力する。
この出力データとしての時系列データは、モータ駆動部303に供給され、モータ駆動部303が、時系列生成部361からの出力データをモータデータとして、モータを駆動することにより、ロボットのアームが動かされる。
以下、データ抽出部315から認識部316に対して供給されるフレーム単位の入力データについて、ステップS312乃至S314の処理が行われる。
以上のように、入力ネットワークnet1のフレーム単位の入力データに対する入力勝者ノードと、出力ネットワークnet2の各ノードとの結合重みを更新するとともに、出力ネットワークnet2の、フレーム単位の入力データの時刻から一定の時間だけ遅れたフレーム単位の出力データに対する出力勝者ノードと、入力ネットワークnet1の各ノードとの結合重みを更新するようにしたので、ロボットに、目の前にあるボールを左右に転がすタスクのような実時間性が要求されるタスクを学習させ、そのようなタスクを行わせることができる。
なお、上述の場合には、注目フレームの時刻から一定の時間だけ遅れたフレームの出力データとして、注目フレームの時刻から、フレームと同一の時間Tだけ遅れたフレームの出力データを採用することとしたが、即ち、入力データの注目フレームと、その注目フレームに対応する出力データのフレームとの時間差(以下、適宜、入出力時間差という)として、時間Tを採用したが、入出力時間差は、時間Tに限られるものではなく、例えば、時間2Tや3T、0.5Tなどを採用することができる。
ここで、結合重み更新部333(図25)において、入力ネットワークnet1のフレーム単位の入力データに対する入力勝者ノードと、出力ネットワークnet2の各ノードとの結合重みを更新するとともに、出力ネットワークnet2の、フレーム単位の入力データの時刻から入出力時間差だけ遅れたフレーム単位の出力データに対する出力勝者ノードと、入力ネットワークnet1の各ノードとの結合重みを更新することは、フレーム単位の入力データと、そのフレーム単位の入力データの時刻から入出力時間差だけ遅れたフレーム単位の出力データとを対応付けるように、入出力関係モデルM11の学習を行うことになる。
そして、かかる学習が行われた入出力関係モデルM11を用いた、入力データに対する出力データの生成では、フレーム単位の入力データに対して、そのフレーム単位の入力データの時刻から入出力時間差だけ遅れたフレーム単位の出力データ(の予測値)が生成されるから、この出力データの生成は、フレーム単位の入力データ(例えば、センサデータ)から、そのフレーム単位の入力データの時刻から入出力時間差だけ未来のフレーム単位の出力データ(に対応する行動)を予測している、ということができる。
以上のように、図25のロボットでは、フレーム単位の入力データと、そのフレーム単位の入力データの時刻から入出力時間差だけ遅れたフレーム単位の出力データとを対応付けるように、入出力関係モデルM11の学習を行う。
このため、ロボットの認知行動(出力データの生成)時において、入力データであるセンサデータとして、入出力関係モデルM11の入力ネットワークnet1のいずれかのノードが表現する時系列パターンに合致する時系列パターンのセンサデータが入力される限りは、そのセンサデータに対して適切な出力データであるモータデータが生成され、その結果、ロボットは、学習したタスクを再現することができる。
ところで、図25の入出力関係モデルM11の学習においては、センサデータを入力データとするとともに、モータデータを出力データとして、フレーム単位の入力データを用いて、入力ネットワークnet1の自己組織的な学習を行うとともに、フレーム単位の出力データを用いて、出力ネットワークnet2の自己組織的な学習を行い、フレーム単位の入力データに対する入力ネットワークnet1の勝者ノードと、そのフレーム単位の入力データから入出力時間差だけ遅れたフレーム単位の出力データに対する出力ネットワークnet2の勝者ノードとの結合関係を強めるように、結合重みwを更新するようにしたので、このような入出力関係モデルM11によれば、例えば、フレーム単位の入力データから、入出力時間差だけ遅れたフレームの出力データを生成すること、つまり、未来のフレームの出力データを予測することができる。
従って、入出力関係モデルM11によれば、入力データおよび出力データとして、同一の時系列データを採用することにより、各フレームの時系列データから、未来のフレームとしての、例えば、次のフレームの時系列データを予測することができる。
即ち、入出力関係モデルM11の学習において、図31に示すように、例えば、センサデータやモータデータなどの時系列データから、フレーム単位の時系列データを抽出し、そのフレーム単位の時系列データを用いて、入力ネットワーク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は、図20の入出力関係モデルが有する時系列パターン記憶ネットワークnetinおよびnetoutと同様に、ノードの数や、リンク、ノードが有する時系列パターンモデル21が同一であっても良いし、異なっていても良い。
また、予測SOMモデルでは、入力ネットワークnet1および出力ネットワークnet2は、いずれも、同一のフレーム単位の時系列データを用いて、自己組織的な学習が行われる。
従って、予測SOMモデルを構成する入力ネットワークnet1と出力ネットワークnet2として、ノードの数、リンク、ノードが有する時系列パターンモデル21のそれぞれが同一の時系列パターン記憶ネットワークを採用する場合には、その入力ネットワークnet1および出力ネットワークnet2は、1つの時系列パターン記憶ネットワークで代用することができる。
即ち、図32は、図31の予測SOMモデルとしての入出力関係モデルM11が有する入力ネットワークnet1および出力ネットワークnet2を、1つの時系列パターン記憶ネットワークで代用した予測SOMモデルを示している。
図32の予測SOMモデルは、1つの時系列パターン記憶ネットワーク(入力ネットワーク)net1を有しており、図31の予測SOMモデルとしての入出力関係モデルM11が有する2つの入力ネットワークnet1および出力ネットワークnet2が、1つの時系列パターン記憶ネットワークnet1で代用されている。
そして、図32の予測SOMモデルでは、図31の予測SOMモデルとしての入出力関係モデルM11が有する入力ネットワークnet1および出力ネットワークnet2が、1つの時系列パターン記憶ネットワークnet1で代用されているために、時系列パターン記憶ネットワークnet1のノードどうしが、結合重みwによって結合されている。
ここで、図32の予測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も同様)は、ノードに、時系列パターンモデル21を有する時系列パターン記憶ネットワークを用いて構成するのではなく、ノードに、所定の次元の重みベクトルを有する(ノードに重みベクトルが割り当てられた)従来のSOMを用いて構成することもできる。
入出力関係モデルを、従来のSOMを用いて構成する場合には、ノードは、そのノードが有する重みベクトルのコンポーネントをサンプル値とする固定長の時系列パターンを表現することになる。
なお、入出力関係モデルを、従来のSOMを用いて構成する場合であっても、入出力関係モデルとしてのSOMは、結合重みwを有するので、結合重みを有しない従来のSOMとは異なる。
ところで、人間の脳は大量の観測情報を処理して、統合的に判断して次に起こることを予測することができる。また自身の行動も次の自分の行動を予測して行われる。したがって、予測学習の機能は、知能情報処理を考えた時には非常に重要な構成要素である。
こうした予測の枠組みを数学的に定式化したものの一つに、次式で表されるマルコフ過程がある。マルコフ過程では、観測した結果により一意に次の状態が決まる。
Figure 2007299365
・・・(6)
ここで、式(6)において、S_tは、時刻tにおける状態を表し、A_tは、時刻tにおける観測値(観測した結果)を表す。また、f(S_t,A_t)は、状態S_tと観測値A_tとを引数とする所定の関数である。
式(6)によれば、時刻t+1の状態S_t+1が、現在(時刻t)の状態S_tと、現在の観測値A_tとから予測される。
しかしながら、実際の環境は、式(6)で表されるような単純なものではなく、同じ観測値が観測されても、違う現象が発生する(違う状態となる)ことはしばしばある。こうした現象を表すためにその時刻までの累積で決まる内部状態(コンテクスト)を持たせることで、次状態をこの内部状態と現在の観測できまるものとしたのが以下の式である。
Figure 2007299365
・・・(7)
ここで、式(7)において、X_tは、時刻tにおける内部状態を表す。また、f(X_t,A_t)は、内部状態X_tと観測値A_tとを引数とする所定の関数であり、g(X_t,A_t)も、内部状態X_tと観測値A_tとを引数とする他の所定の関数である。
式(7)によれば、時刻t+1の状態S_t+1が、現在の内部状態X_tと、現在の観測値A_tとから予測される。さらに、現在の内部状態X_tと、現在の観測値A_tとによって、内部状態が、時刻t+1の内部状態X_t+1に更新される。
式(6)や式(7)の予測を行うための学習(予測学習)では、時刻の状態を出す写像を経験(観測値)から学習することになるが、学習の問題となるのは、大規模の学習が難しいという点である。通常のニューラルネットワークの学習では入力の次元数が増えると学習が困難になるために、例えばヒューマノイドロボットのあらゆるセンサやアクチュエータの信号を一つのネットワークに入力して全体が最適となるように学習させようとしても、現実的には、ほぼ不可能となる。
ところで、脳の情報処理の中で比較的解明が進んでいるのが低次の視覚機能である。最も低次のV1と呼ばれる視覚野には、網膜からの信号が入る。ここでは大規模な画素からなる視覚センサのうちの局所領域に対して特定の処理だけを行う事が知られている。またこの処理結果を受けるV2ではV1の神経細胞の幾つかをまとめて処理するために対応する領域と処理の内容が広がっている。このように脳の情報処理では局所的なセンサ情報の処理結果を階層が上がるごとに束ねていくことで階層上位ではより時間・空間的に広範囲の情報を扱うようにできている。結果的に視覚野の上位に位置するIT野では視野全体の情報から特定の物体があるなしの判断をするような神経細胞(おばあちゃん細胞)が存在すると言われている。
Hawkinsは、ジェフ・ホーキンス,サンドラ・ブレイクスリー,「考える脳考えるコンピュータ」,ランダムハウス講談社,2005, (原書)Jeff Hawkins, Sandra Blakeslee, ”On Intelligence”, Owl Books, 2004.において、大脳新皮質は視覚野に限らず6層構造からなる神経細胞群で均質に構成されており、全ての情報処理は同じ原理の元に実行されているはずであると主張している。また彼らは6層構造の各層の働きに関して実際の神経細胞の接続の生理学的知見から説明を与えており、下位から上位だけではなく、各層内の接続や上位から下位への信号が非常に重要な働きをしていると述べている。
そこで、以下では、大規模な予測学習の問題を1つのニューラルネットワークに対して全体最適化を行って学習させるアプローチではなく、大脳のように異なるモーダルの局所的な情報処理の積み重ねで結果的に大規模なネットワークを構成できるというHawkinsの主張を参考にし、認識と予測の学習、及び実行(認識生成)に関して具体的な計算モデルを提案する。
図33は、新SOMを利用したロボットの構成例を示している。
なお、図中、図25のロボットと対応する部分については、同一の符号を付してあり、以下では、その説明は、適宜省略する。
図33において、データ処理装置501は、記憶部511、データ抽出部512、学習部513、データ抽出部514、および認識生成部515から構成されている。
記憶部511は、複数の新SOMを階層構造にした階層SOMを記憶している。
なお、ここでは、階層SOMを、図32に示した新SOMを用いて構成するが、階層SOMは、新SOMと同様の機能を有する、例えば、図31の予測SOMモデルを用いて構成することが可能である。
データ抽出部512には、センサ302が各時刻において出力するセンサデータ(例えば、画像センサとしてのセンサ302が出力する画像データ)や、モータ駆動部303が同一時刻において出力するモータデータ(例えば、腕の関節の角度を指示する関節角指示値)などの時系列データが供給される。データ抽出部512は、そこに供給される時系列データを、適宜、複数種類の時系列データに分別(分類)して、学習部513に供給する。
すなわち、データ抽出部512は、例えば、センサ302が出力するセンサデータを1種類の時系列データとして学習部513に供給するとともに、モータ駆動部303が出力するモータデータを他の1種類の時系列データとして学習部513に供給する。
また、データ抽出部512では、例えば、モータ駆動部303が出力するモータデータが、ロボットの左腕を駆動するためのモータデータと、右腕を駆動するためのモータデータとを含んでいる場合には、その左腕を駆動するためのモータデータと、右腕を駆動するためのモータデータとをコンポーネントとするベクトルの時系列を、1種類の時系列データとして、学習部513に供給することもできるし、左腕を駆動するためのモータデータを、1種類の時系列データとするとともに、右腕を駆動するためのモータデータを、他の1種類の時系列データとして、学習部513に供給することもできる。
なお、データ抽出部512において、センサ302が出力するセンサデータや、モータ駆動部303が出力するモータデータを、どのような種類の時系列データに分別して、学習部513に供給するかは、あらかじめ決めておく必要がある。
学習部513は、データ抽出部512から供給される複数種類の時系列データそれぞれから、フレーム単位の時系列データを抽出し、そのフレーム単位の時系列データを用いて、記憶部511に記憶された階層SOMの学習を行う。
即ち、学習部513は、階層SOMを構成する新SOMの自己組織的な学習と、予測学習(結合重みの学習)とを行う。
データ抽出部514には、センサ302が各時刻において出力するセンサデータや、モータ駆動部303が同一時刻において出力するモータデータなどの時系列データが供給される。データ抽出部514は、データ抽出部512と同様に、そこに供給される時系列データを、複数種類の時系列データに分別して、認識生成部515に供給する。
認識生成部515は、データ抽出部512から供給される複数種類の時系列データそれぞれについて、時系列データを認識し、未来の時系列データを生成する認識生成を行う。
すなわち、認識生成部515は、データ抽出部512から供給される複数種類の時系列データそれぞれから、フレーム単位の時系列データを抽出し、そのフレーム単位の時系列データを、記憶部511に記憶された階層SOMを用いて認識(認知)する。そして、認識生成部515は、複数種類のフレーム単位の時系列データそれぞれの認識結果に基づき、そのフレーム単位の時系列データの時刻よりも未来のフレームの時系列データとしての、例えば、次のフレームの時系列データ(以下、適宜、次の時刻の時系列データともいう)を予測、つまり、次の時刻の時系列データの予測値を生成して出力する。
なお、認識生成部515が生成した時系列データのうちの、モータデータは、モータ駆動部303に供給される。
以下、階層SOMを用いて、学習部513が行う処理(学習処理)と、認識生成部515が行う処理(次のフレーム(時刻)の時系列データの予測(認識生成処理))とについて説明する。
1章.概要
階層SOMの概念図を図34に示す。この例では1種類の入力(画像センサ)と1種類の出力(関節角指示値)がある。それぞれを異なる新SOMによって、信号の分類を自己組織化させる。信号は時系列信号であるので各時刻において、発火するノード(勝者ノード)が変化する。各新SOMでは次の時刻どのノードが発火するかを予測学習している。上位の新SOMではこれら2つの新SOMの発火位置(勝者ノードの位置)を入力として新SOMの学習を行う。こうすることで下位のノードがどのような組み合わせで発火するかを記憶・分類することができる。上位の新SOMでも同様に次時刻の予測学習を行う。
実行時(認識生成処理時)には下位レイヤでは入出力信号に基づくそれぞれの次の信号の予測を行う。上位レイヤではこれらの信号の分類で次の予測を行い、この分類から次の時刻の下位のレイヤの信号を推定(予測)する。この際に上位と下位の推定を統合して判断することで、直接接続されていない下位レイヤ間での情報伝搬が行われることになる。
こうした3者間の情報伝達を繰り返すことでこの階層構造を横に縦に広げてより大規模な情報処理を局所的な情報処理の組み合わせで実現することができる。
すなわち、図34は、階層SOMを模式的に示している。
階層SOMは、複数の新SOMを有し、その複数の新SOMが階層構造を構成するように接続されている。
ここで、新SOMを、以下、適宜、単に、SOMともいう。
図34では、階層SOMは、3つのSOM#11,#12、及び#21を有し、SOM#11及び#12を最下位階層のSOMとするとともに、SOM#21を上位階層のSOMとして、SOM21#と、SOM#11又は#12のそれぞれとが接続されることにより、階層構造が構成されている。
階層SOMの学習時、つまり、学習部513(図33)が階層SOMの学習を行う場合には、最下位階層のSOM#11及び#12に対して、学習の対象となる時系列データが入力される。
すなわち、例えば、図33において、学習の対象となる時系列データが、センサ302が出力するセンサデータと、モータ駆動部303が出力するモータデータとであるとすると、2つの最下位階層のSOM#11と#12のうちの一方の、例えば、SOM#11には、センタデータが入力され、他方のSOM#12には、モータデータが入力される。
SOM#11では、そこに入力されるセンサデータを用いて、自己組織的な学習(以下、適宜、自己組織化学習という)が行われる。さらに、SOM#11では、結合重みを更新する予測学習が行われる。
すなわち、SOM#11においては、時系列のセンサデータからフレーム単位の時系列データが抽出され、そのフレーム単位の時系列データを用いて、自己組織化学習が行われる。この、フレーム単位の時系列データを用いた自己組織化学習によって、勝者ノードが時系列に決定される。
そして、SOM#11においては、自己組織化学習で決定された各時刻(フレーム)の勝者ノードと、その次の時刻の勝者ノードとの結合重みを強めるように更新する予測学習が行われる。
さらに、SOM#11では、自己組織化学習で時系列に決定された勝者ノードを表すノード情報の時系列が、そのSOM#11に接続している上位階層のSOMである上位SOMへの入力、すなわち、図34においては、SOM#21への入力とされる。
ここで、以下、適宜、SOMへの入力となる時系列データを、SOM入力データというとともに、SOMから出力(生成)される時系列データを、SOM出力データという。
SOM#12でも、SOM#11と同様に、そこに入力されるSOM入力データを用いて、学習が行われる。
すなわち、SOM#12では、そこに入力されるモータデータを用いて、自己組織化学習が行われるとともに、その自己組織化学習で決定された各時刻の勝者ノードと、その次の時刻の勝者ノードとの結合重みを強めるように更新する予測学習が行われる。
さらに、SOM#12では、自己組織化学習で時系列に決定された勝者ノードを表すノード情報の時系列が、そのSOM#12に接続している上位階層のSOMである上位SOMへの入力、すなわち、図34においては、SOM#21への入力とされる。
下位階層のSOMが接続されている上位SOMであるSOM#21では、その下位階層のSOMである下位SOMで得られるノード情報を統合した時系列を、SOM入力データとして用いた学習が行われる。
すなわち、図34において、SOM#21には、その下位SOMとして、2つの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の認識生成時、つまり、認識生成部515が階層SOMを用いて認識生成を行う場合には、最下位階層のSOM#11及び#12に対して、認識の対象となる時系列データが入力される。
すなわち、例えば、図33において、認識の対象となる時系列データが、センサ302が出力するセンサデータと、モータ駆動部303が出力するモータデータとであるとすると、学習時と同様に、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入力データとして用いた認識処理が行われる。
すなわち、図34において、SOM#21には、その下位SOMとして、2つの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章.原理実験設定
図35に原理確認実験の設定を示す。概要で説明したように3つの新SOMを利用する。それぞれの新SOMは2次元の9×9で81ノードを持たせる。各ノードには入力時系列信号を学習させるHMMを用意する。時系列データの扱いは、下位の新SOMでは40ステップ(サンプル点)分を1つのウインドウ(フレーム)として入力し、10ステップずつウインドウをずらしながら入力をする(図36)。従って入出力は10ステップに一回発生する。上位の新SOMでは下位の出力を、20ステップ分のウインドウで5ステップずらしながら入力する。結果的に、上位の新SOMでは10×20=200でオリジナルの時間幅の200ステップ分の影響を受けることになり、間引きながらより長い時間の情報を取り扱う。
入力データには2種類のsin波とcos波の組を用いる。ペアの片割れをそれぞれ下位の新SOMに入力する。個々の新SOMは自分に入力された波形しか予測、生成することができないが、上位の新SOMが2つの信号の関係を学習しているために上位レイヤを介して、片方の信号からもう片方を想起することができる。
すなわち、図35は、本件発明者が実験に用いた階層SOMを模式的に示している。
実験に用いた階層SOM#Eは、図34に示した階層SOMと同一構成になっており、したがって、3つのSOM#11,#12、及び#21を有し、SOM#11及び#12を最下位階層のSOMとするとともに、SOM#21を上位階層のSOMとして、SOM21#と、SOM#11又は#12のそれぞれとが接続されることにより、階層構造を構成している。
階層SOM#Eを構成する3つのSOM#11,#12、及び#21は、例えば、いずれも、横×縦が9×9個の81個のノードを有し、図8に示したような2次元の配置構造が与えられている。また、ノードは、時系列パターン記憶モデル21(図7)として、20の状態のHMMを有している。
学習時及び認識生成時においては、図36に示すように、時系列データであるSOM入力データに対して、所定のウインドウ長(時間長)のウインドウを、所定のシフト量ずつシフトしながらかけることにより、時系列データから、所定のウインドウ長を1フレームのフレーム長とするフレーム単位のSOM入力データを抽出して用いた。
すなわち、図36は、時系列データから、フレーム単位のSOM入力データを抽出する抽出方法を示している。
ここで、以下、適宜、階層SOMに与えられる時系列データ、すなわち、例えば、図33のデータ抽出部512から学習部513に供給されるセンサデータやモータデータ、さらには、データ抽出部514から認識生成部515に供給されるセンサデータやモータデータを、入力時系列データともいう。
また、以下、適宜、階層SOMから出力される時系列データ、すなわち、例えば、認識生成部515が、データ抽出部514から認識生成部515に供給される入力時系列データに対して出力(予測)する未来の時系列データを、予測時系列データともいう。
学習時及び認識生成時において、最下位階層のSOMであるSOM#11及び#12では、入力時系列データでもあるSOM入力データに対して、例えば、40サンプル(ステップ)をウインドウ長とするウインドウを、10サンプルずつシフトしながらかけることにより、40サンプルのフレーム長のフレーム単位のSOM入力データを抽出し、学習や認識生成に用いた。
したがって、SOM#11及び#12においては、シフト量である10サンプルごとに、勝者ノードを表すノード情報が得られ、上位SOMへの入力とされる。
また、上位SOMであるSOM#21では、その下位SOMであるSOM#11及び#12のノード情報を統合した時系列に対して、例えば、20サンプルをウインドウ長とするウインドウを、5サンプルずつシフトしながらかけることにより、20サンプルのフレーム長のフレーム単位のSOM入力データを抽出し、学習と認識生成に用いた。
ここで、上位SOMであるSOM#21に入力されるSOM入力データとしてのノード情報の時系列は、20サンプル単位の時系列データであるが、SOM#21に入力される20サンプルのSOM入力データの1サンプルは、下位SOMであるSOM#11及び#12において10サンプルのシフト量ごとに得られるデータであるから、SOM#21に入力される20サンプルのSOM入力データは、入力時系列データの200(=20×10)サンプルに相当する。
したがって、上位SOMでは、入力時系列データを間引くことによって、下位SOMよりも長い時間分の入力時系列データが扱われるということができる。
すなわち、フレーム単位のSOM入力データは、上位階層のSOMで用いられるSOM入力データであるほど、長い時間分の入力時系列データになっている。
なお、実験では、2種類のsin波#A及び#B、並びに2種類のcos波#A及び#Bを用意し、sin波#Aとcos波#Aの時系列データをセットとして、そのうちの一方の時系列データを、最下位階層の2つのSOM#11と#12のうちの一方のSOMに対して、入力時系列データとして与えるとともに、他方の時系列データを、他方のSOMに対して、入力時系列データとして与えた。
また、sin波#Bとcos波#Bの時系列データをセットとして、そのうちの一方の時系列データを、最下位階層の2つのSOM#11と#12のうちの一方のSOMに対して、入力時系列データとして与えるとともに、他方の時系列データを、他方のSOMに対して、入力時系列データとして与えた。
学習時には、1回の学習につき、最下位階層の2つのSOM#11と#12それぞれに対して、40フレームのSOM入力データを繰り返し与え、その上位SOMであるSOM#21に対して、20フレームのSOM入力データを繰り返し与えた。また、学習は、1フレームのSOM入力データをSOMに与えることを1回として、1万回行った。
学習後の最下位階層の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では、時系列データは生成されない。
これに対して、3つの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のような、ノードに時系列パターンモデル21(図7)ではなく、所定の次元の重みベクトルを有するSOMを用いた場合、その自己組織化学習は、従来のSOMの学習(自己組織化学習)と同様である。
ここで、従来のSOMの学習の方法に関しては、前述した非特許文献1に記載されている。
一方、階層SOMを構成する新SOMとして、ノードに、時系列パターンモデル21としての、例えば、HMMを有する時系列パターン記憶ネットワークを用いた場合の自己組織化学習は、上述の図15で説明したようにして行われる。
なお、ノードに、時系列パターンモデル21としての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学習)
予測学習では、例えば、図23で説明したように、ある時刻(フレーム)のSOM入力データに対する新SOMの勝者ノードから、次の時刻のSOM入力データに対する新SOMの勝者ノードへの結合の度合いを表す結合重みを強めるように、結合重みの更新が行われる。
すなわち、予測学習においては、新SOMのノードどうしの結合重みが、ある時刻のSOM入力データに対する新SOMの勝者ノードと、次の時刻のSOM入力データに対する新SOMの勝者ノードのそれぞれを中心として、hebb則によって学習される。
hebb則による結合重みの学習(更新)の方法は、式(4)及び式(5)で説明した通りである。
ここで、新SOMがN個のノードを有しており、新SOMのN個のノードのうちの、ノード#iから#jへの結合重みを、wijと表す。結合重みwijは、ノード#iが勝者ノードになった次の時刻にノード#jが勝者ノードとなる可能性を表す。
いま、ある時刻のSOM入力データに対する新SOMの勝者ノードをノード#Iと表すとともに、その次の時刻のSOM入力データに対する新SOMの勝者ノードをノード#Jと表すこととすると、予測学習としての結合重みwijの更新は、式(8)にしたがって行われる。
Figure 2007299365
・・・(8)
式(8)は、上述した式(4)と同様の式であり、したがって、式(8)におけるβは、式(4)と同様に学習率を表す。学習率βが大きいほど、結合重みwijが、基準値△wに近づく速さが速くなる。
さらに、式(8)において、基準値△wは、式(5)と同様に、1/[新SOM上の勝者ノード#I(#J)とノード#i(#j)とのパターン間距離+1]で与えられ、0.0ないし1.0の範囲の値である。
また、式(8)において、iとjは、いずれも、1から、新SOMのノードの数Nまでの整数値をとる。したがって、式(8)の2つの式によれば、1番目の式によって、結合重みw1J,w1J,・・・,wIJ,・・・,wNJが更新され、2番目の式によって、結合重みwI1,wI2,・・・,wIJ,・・・,wINが更新される。但し、更新重みwIJは、式(8)の2つの式のうちの一方によってのみ更新される。
以上のような階層SOMの学習としての自己組織化学習と予測学習は、図33の学習部513で行われる。
図37は、学習部513が行う、階層SOMを構成する新SOMのうちの、最下位階層の新SOMの学習の学習手順を示している。
なお、図33のロボットでは、上述したように、データ抽出部512が、例えば、センサ302が出力するセンサデータ、及びモータ駆動部303が出力するモータデータ等の複数種類の時系列データを、学習部513に供給し、学習部513が、データ抽出部512からの複数種類の時系列データ(入力時系列データ)を用いて、階層SOMの学習を行うが、ここでは、時刻の同期がとれた、例えば、センサ302が出力するセンサデータ、及びモータ駆動部303が出力するモータデータ等の複数種類の入力時系列データがあらかじめ用意してあり、その複数種類の入力時系列データを用いて行う、階層SOMの最下位階層の新SOMの学習について説明する。
ここで、時刻の同期がとれた複数種類の入力時系列データとは、例えば、図33のロボットに、目の前にあるボールを左右に転がすタスクを学習させる場合において、オペレータが、ロボットの前にボールをおき、ロボットのアームを持って、ボールを左右に転がすように、アームを動かしたときに、センサ302が検知する、左右に転がるボールの状態に対応する時系列のセンサデータと、モータ駆動部303が生成する、オペレータが動かしているアームの動きに対応するモータデータである。
また、階層SOMの最下位階層のSOMは、あらかじめ用意されている入力時系列データの種類の数と同一の数だけ存在することとする。
学習部513は、ステップS501において、あらかじめ用意されている複数種類の入力時系列データの中から、まだ、学習に用いていない1種類の入力時系列データを、注目する注目時系列データとして選択するとともに、記憶部511に記憶された階層SOMの最下位階層の新SOMのうちの、まだ、学習をしていない新SOMを、注目する注目SOMとして選択する。
その後、学習部513は、注目時系列データの先頭に、最下位階層用のウインドウ長のウインドウをセットして、ステップS502に進み、注目時系列データから、ウインドウ内の時系列データ、すなわち、最下位階層用のウインドウ長に等しい時間長(フレーム長)のフレームの時系列データを、注目する注目フレームのSOM入力データとして抽出する。
そして、学習部513は、ステップS502から、ステップS503,S504に順次進み、注目フレームのSOM入力データを用いて、注目SOMの自己組織化学習を行う。
すなわち、ステップS503では、学習部513は、例えば、図15のステップS3及びS4と同様にして、注目フレームのSOM入力データに対する注目SOMの勝者ノードを求める。
具体的には、注目SOMの各ノードが、例えば、HMMを有している場合には、ステップS503では、注目フレームのSOM入力データが観測される観測尤度が最も高いHMMを有するノードが、勝者ノードとして求められる。
なお、新SOMを含む時系列パターン記憶ネットワークや、従来のSOM(ノードに重みベクトルが割り当てられたSOM)等のSOMの範疇に入るもの(以下、適宜、広義のSOMという)は、各ノードにおいて、データの系列を生成することができる。
すなわち、例えば、従来のSOMによれば、ノードに割り当てられている重みベクトルのコンポーネントを、データの系列として生成(出力)することができる。また、例えば、時系列パターン記憶ネットワークによれば、例えば、図19で説明したように、ノードが保持する時系列パターンの時系列データを生成することができる。
いま、広義のSOMの各ノードが生成するデータの系列を、プロトタイプと呼ぶこととすると、ステップS503においては、注目SOMの各ノードのプロトタイプと、注目フレームのSOM入力データとの誤差を求め、その誤差が最小のノードを、勝者ノードとして求めることができる。
学習部513は、ステップS503において、注目フレームのSOM入力データに対する注目SOMの勝者ノードを求めた後、ステップS504に進み、ステップS503で求められた勝者ノードを、いわば中心として、注目SOMの各ノード(が有するHMMが表す時系列パターン)を、注目フレームのSOM入力データを用いて更新するSOM学習を行う。
すなわち、ステップS504では、学習部513は、図15のステップS5ないしS7で説明したように、ステップS503で求められた勝者ノードを基準として、注目SOMを構成する各ノードの更新重みαを、式(3)にしたがって決定する。さらに、学習部513は、注目SOMの各ノードが有する学習データ記憶部22(図7)に記憶された学習データを、そのノードの更新重みαにしたがって更新し、注目SOMの各ノードについて、更新後の学習データ記憶部22に記憶された新たな学習データを用いて、時系列パターンモデル21としてのHMMの学習を行うことにより、そのHMMを更新する。
これにより、ステップS504では、勝者ノードとのパターン間距離が近いほど、注目フレームのSOM入力データの影響を強く受けるように、注目SOMの各ノードを更新するSOM学習が行われる。
ここで、自己組織化学習には、ステップS503及びS504の処理の他、厳密には、後述するステップS506の処理も含まれる。
その後、ステップS504からステップS505に進み、学習部513は、注目SOMの予測学習を行い、ステップS506に進む。
すなわち、注目フレームのSOM入力データに対する注目SOMの勝者ノードをノード#Jと表すとともに、その前の時刻、つまり、注目フレームの直前のフレームのSOM入力データに対する注目SOMの勝者ノードをノード#Iと表すこととすると、学習部513は、ステップS505において、式(8)にしたがって、注目SOMのノード#iと#jとの結合重み(ノード#iから#jへの結合重み)wijを更新する予測学習を行う。
ステップS506では、学習部513は、注目SOMの学習、つまり、注目SOMを対象として、ステップS503及びS504の自己組織化学習と、ステップS505の予測学習とを行った回数である学習回数に応じて、式(3)の更新重みαを求めるのに用いられる減数係数△を更新する。
すなわち、上述したように、ノード(が有する時系列パターンモデル21としてのHMM)の更新は、学習の開始時は、勝者ノードを中心とする比較的広い範囲のノード(勝者ノードとのパターン間距離dが小のノードから、ある程度大のノードまで)に亘って、注目フレームのSOM入力データの影響を受けるように行われるが、学習が進行するにつれ、勝者ノードを中心として、徐々に狭い範囲のノードについてのみ、注目フレームのSOM入力データの影響を受けるように行われるようにするため、ステップS506では、学習部513は、式(3)で説明したように、学習回数が大になるについて、減衰係数△が小さくなるように、減衰係数△を更新する。
学習部513は、ステップS506において、式(3)の減衰係数△を更新した後、ステップS507に進み、注目SOMの学習回数が、あらかじめ決められた、例えば、10000回などの所定の回数になったかどうかを判定する。
ステップS507において、注目SOMの学習回数が所定の回数になっていないと判定された場合、学習部513は、学習回数を1だけインクリメントして、ステップS508に進む。
ステップS508では、学習部513は、注目時系列データにセットされたウインドウを、最下位階層用のシフト量だけシフトする(時間的に進む方向にずらす)。さらに、ステップS508では、学習部513は、注目時系列データから、シフト後のウインドウ内の時系列データを、注目フレームのSOM入力データとして新たに抽出して、ステップS503に戻り、以下、同様の処理を繰り返す。
また、ステップS507において、注目SOMの学習回数が所定の回数になったと判定された場合、学習部513は、ステップS508をスキップして、ステップS509に進み、学習回数を、例えば0にリセットする。
さらに、ステップS509では、学習部513は、あらかじめ用意されている複数種類の入力時系列データの中から、まだ、学習に用いていない1種類の入力時系列データを、注目時系列データとして新たに選択するとともに、記憶部511に記憶された階層SOMの最下位階層の新SOMのうちの、まだ、学習をしていない新SOMを、注目SOMとして新たに選択して、ステップS502に戻り、以下、同様の処理を繰り返す。
そして、あらかじめ用意されている複数種類の入力時系列データが、すべて、注目時系列データとして選択されるとともに、記憶部511に記憶された階層SOMの最下位階層の新SOMが、すべて、注目SOMとして選択され、記憶部511に記憶された階層SOMの最下位階層の新SOMのすべての学習が終了すると、学習部513は、処理を終了する。
なお、図37では、注目時系列データから、時間順に、ウインドウ長のフレーム単位のSOM入力データを抽出するようになっているが、階層SOMの最下位階層のSOMの学習は、そのように、時間順に、フレーム単位のSOM入力データを抽出しなくても行うことができる。
すなわち、階層SOMの最下位階層のSOMの学習は、例えば、フレーム単位のSOM入力データを、あらかじめ抽出しておき、あるいは、任意の時刻をウインドウの先頭として、フレーム単位のSOM入力データを抽出し、そのフレーム単位のSOM入力データから、適宜、注目フレームのSOM入力データを選択して行うこと、つまり、いわゆるバッチ型の処理で行うことができる。
但し、階層SOMの最下位階層のSOMの学習のうちの予測学習は、連続した時刻(フレーム)のSOM入力データそれぞれに対するSOMの勝者ノードが求まっていないと行うことができないため、階層SOMの最下位階層のSOMの学習を、バッチ型の処理で行う場合においては、例えば、自己組織化学習において、各時刻のSOM入力データに対して求められたSOMの勝者ノードを記憶しておき、自己組織化学習の終了後に、その自己組織化学習で記憶しておいた勝者ノードを用いて、予測学習を行うか、又は、自己組織化学習の終了後に、再度、連続した時刻のSOM入力データそれぞれに対するSOMの勝者ノードを求めて、その勝者ノードを用いて、予測学習を行う必要がある。
図38は、SOM入力データとして、単純なsin波形を用いて行った、横×縦が9×9個のノードを有する新SOMの自己組織化学習の結果を示している。
すなわち、図38左は、自己組織化学習後の新SOMの9×9個のノードが保持する時系列パターンを示している。
図38左から、各ノードが、sin波の部分領域を代表する(部分領域の波形パターン(時系列パターン)を表現する)ように、SOM学習がされていることが分かる。
図38右は、図38左に示す自己組織化後の新SOMに対して与えた時系列データとしてのsin波(図中、実線で示す部分)と、そのsin波に対する勝者ノードから生成したプロトタイプをつなぎ合わせた時系列データ(図中、点線で示す部分)とを示している。
図38左に示す自己組織化後の新SOMに対して、図38右に実線で示すsin波から抽出したフレーム単位の時系列データとしてのSOM入力データを与えると、新SOMにおいては、勝者ノードとなるノードが、順番に遷移していき、その勝者ノードとなったノードのプロトタイプをつなぎ合わせることにより、図38右に点線で示すように、新SOMに与えたsin波と同様の時系列データを得ることができる。
次に、図39は、図33の学習部513が行う、階層SOMを構成する新SOMのうちの、最下位階層より上位階層の上位SOMの学習の学習手順を示している。
なお、図33のロボットでは、上述したように、データ抽出部512が、例えば、センサ302が出力するセンサデータ、及びモータ駆動部303が出力するモータデータ等の複数種類の時系列データを、学習部513に供給し、学習部513が、データ抽出部512からの複数種類の時系列データ(入力時系列データ)を用いて、階層SOMの学習を行うが、ここでは、図37の場合と同様に、時刻の同期がとれた、センサ302が出力するセンサデータ、及びモータ駆動部303が出力するモータデータ等の複数種類の入力時系列データがあらかじめ用意してあり、その複数種類の入力時系列データを用いて行う、階層SOMの学習について説明する。
また、ここでは、説明を簡単にするために、最下位階層より1階層だけ上位階層のSOM(上位SOM)を、注目SOMとして注目し、その注目SOMには、最下位階層のSOMのすべてが接続していることとする。
学習部513は、ステップS521において、あらかじめ用意されている複数種類の入力時系列データ(トレーニングデータ)を用いて、図37で説明したように、最下位階層のSOMの自己組織化学習を行う。
なお、図37で説明した最下位階層のSOMの学習が既に終了している場合には、ステップS521の処理は、スキップすることができる。
ステップS521の処理後は、ステップS522に進み、学習部513は、最下位階層の各SOMに対して、そのSOMの自己組織化学習に用いた入力時系列データから抽出したフレーム単位のSOM入力データを入力し、勝者ノードを求める。
なお、入力時系列データからのフレーム単位のSOM入力データの抽出は、入力時系列データに対して、最下位階層用のウインドウ長のウインドウを、最下位階層用のシフト量ずつシフトしながらかけることにより行われる。そして、ステップS522では、ウインドウをシフト量ずつシフトして抽出されたSOM入力データごとに、勝者ノードが時系列に求められ、これにより、最下位階層の各SOMについて、勝者ノードを表すノード情報の時系列が得られる。
ここで、勝者ノードを表すノード情報としては、例えば、その勝者ノードのSOM上の位置を表す位置データ(座標)(x,y)や、上述したノードラベルなどを採用することができる。ここでは、勝者ノードを表すノード情報として、その勝者ノードのSOM上の位置データ(x,y)を採用することとする。
また、以下、適宜、SOM入力データに対して、勝者ノードを求めることを、(SOM入力データの)認識ともいう。
学習部513は、ステップS522において、最下位階層の各SOMに対して、勝者ノードを表すノード情報の時系列を得ると、ステップS523に進み、最下位階層の各SOMのノード情報の時系列を統合し、時系列統合データを求めて、ステップS524に進む。
ここで、いま、説明を簡単にするため、最下位階層のSOMとして、例えば、図34や図35に示したように、2つの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,・・・となる。
ステップS524では、学習部513は、上位SOMである注目SOMの自己組織化学習を、最下位階層の各SOMのノード情報の時系列を統合した時系列統合データc1,c2,c3,・・・をSOM入力データとして用いて行い、ステップS525に進む。
すなわち、学習部513は、時系列統合データc1,c2,c3,・・・に対して、注目SOMの階層用のウインドウ長のウインドウを、その階層用のシフト量ずつシフトしながらかけることにより、時系列統合データc1,c2,c3,・・・から、注目SOMの階層用のウインドウ長を1フレームのフレーム長とするフレーム単位のSOM入力データを抽出し、そのフレーム単位のSOM入力データを用いて、注目SOMの自己組織化学習を行う。
なお、ステップS524の自己組織化学習に用いるフレーム単位のSOM入力データの、時系列統合データc1,c2,c3,・・・からの抽出は、ランダムな時刻を先頭にして行ってもよい。
ステップS525では、学習部513は、注目SOMの予測学習を行い、処理を終了する。
すなわち、ステップS525では、時系列統合データc1,c2,c3,・・・から抽出された各フレームのSOM入力データに対する注目SOMの勝者ノードから、その次のフレームのSOM入力データに対する注目SOMの勝者ノードへの結合重みを強めるように、式(8)にしたがって、注目SOMのノード#iと#jとの結合重みwijを更新する予測学習が行われる。
なお、注目SOMの上位階層に、注目SOMが接続している上位SOMがある場合には、その上位SOMの学習は、その上位SOMに接続している1階層だけ下位階層の、注目SOMを含む下位SOMそれぞれで得られるノード情報を統合した時系列統合データをSOM入力データとして用いて行われる。より上位階層のSOMについても、同様である。
5章.階層SOMの実行方法
次に、図33の認識生成部515が行う認識生成処理について説明する。
図40は、階層SOMを模式的に示している。
なお、図40では、説明を簡単にするため、階層SOMを構成するSOMのうちの、2つのSOM#1及び#2だけを図示してある。SOM#1は、最下位階層のSOMであり、SOM#2は、その上位階層のSOMである。そして、SOM#1と#2とは接続している。
また、図40の階層SOMを構成するSOM#iは、入力バッファ#iと予測バッファ#iを有している。なお、入力バッファ#i及び予測バッファ#iの実体は、記憶部511(図33)の一部の記憶領域である。
SOM#iの入力バッファ#iには、そのSOM#iへの入力(の一部)となるデータが供給され、SOM#iの入力バッファ#iは、そこに供給されるデータを記憶する。SOM#iには、入力バッファ#iに記憶されたデータから、フレーム単位のSOM入力データが抽出されて入力される。
図40では、最下位階層のSOMであるSOM#1の入力バッファ#1には、センサデータやモータデータなどの入力時系列データが供給されて記憶される。入力バッファ#1に記憶された入力時系列データは、上述したようにウインドウをかけることにより、フレーム単位のSOM入力データとされ、SOM#1に対する入力として、SOM#1に供給される。
SOM#1では、入力バッファ#1からのフレーム単位のSOM入力データが認識され、つまり、SOM入力データに対する勝者ノードが求められ、その勝者ノードを表すノード情報としての、勝者ノードの位置を表す位置データ(x,y)が、SOM#1と接続されている上位のSOM、すなわち、図40では、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)、すなわち、例えば、図40の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の予測ノードから生成される時系列の予測値としての入力時系列データ、すなわち、図33のデータ抽出部514から認識生成部515に供給される入力時系列データを予測した予測時系列データが記憶される。
SOM#1の予測バッファ#1、その他の最下位階層のSOMの予想バッファに記憶された予測時系列データは、階層SOMの出力として、適宜、出力される。
次に、図41は、図33の認識生成部515が行う、データ抽出部512から供給される複数種類の時系列データそれぞれについて、時系列データを認識し、未来の時系列データを生成(予測)する認識生成処理の処理手順(アルゴリズム1)を示している。
ステップS541において、認識生成部515は、データ抽出部512から供給される複数種類の入力時系列データそれぞれの時刻tのサンプル値S(t)を、記憶部511に記憶された階層SOMの最下位階層のSOMのうちの、対応するSOMの入力バッファに供給して記憶させる。
すなわち、入力時系列データの種類のうちの、ある1種類を、注目種類として注目した場合、認識生成部515は、注目種類の入力時系列データのサンプル値S(t)を、その注目種類の入力時系列データを用いて学習を行った最下位階層のSOMの入力バッファに供給して記憶させる。
その後、ステップS542に進み、認識生成部515は、階層SOMにおいて、まだ、注目SOMとしていないSOMの中で、下位階層から上位階層に向かう順番で最初に見つかるSOMを、注目SOMとして選択して、ステップS543に進む。
ステップS543では、認識生成部515は、時刻tを、シフト量shiftで除算した剰余Mod(t,shift)が0であるかどうか、すなわち、注目SOMの入力バッファに、シフト量(注目SOMの階層用のシフト量)shift分の新たなSOM入力データが記憶されたかどうかを判定する。
ステップS543において、注目SOMの入力バッファに、シフト量shift分の新たなSOM入力データが、まだ記憶されていないと判定された場合、ステップS542に戻り、新たな注目SOMが選択され、以下、同様の処理が繰り返される。
また、ステップS543において、注目SOMの入力バッファに、シフト量shift分の新たなSOM入力データが記憶されたと判定された場合、ステップS544に進み、認識生成部515は、注目SOMの入力バッファに記憶されているSOM入力データにウインドウ(注目SOMの階層用のウインドウ長のウインドウ)をかけることにより、ウインドウ長分の最新のSOM入力データ(以下、適宜、現在時刻のSOM入力データともいう)を抽出する。
さらに、ステップS544では、認識生成部515は、現在時刻のSOM入力データに対する注目SOMの勝者ノードを、例えば、図17のステップS22及びS23で説明したようにして求め(現在時刻のSOM入力データの認識を行い)、ステップS545に進む。
ステップS545では、認識生成部515は、現在時刻のSOM入力データに対する注目SOMの勝者ノードを表すノード情報として、例えば、その勝者ノードの位置を表す位置データ(x,y)を、注目SOMに接続している上位階層のSOM(上位SOM)の入力バッファに供給して記憶させ、ステップS546に進む。
ステップS546では、認識生成部515は、注目SOMの入力バッファから、古い順に、シフト量(注目SOMの階層用のシフト量)shift分だけのSOM入力データを破棄(削除)して、ステップS547に進む。
ステップS547では、認識生成部515は、階層SOMのすべてのSOMを対象として、ステップS543ないしS546の処理を行ったどうかを判定する。
ステップS547において、階層SOMのすべてのSOMを、まだ、対象としていないと判定された場合、すなわち、階層SOMのSOMの中で、まだ、注目SOMに選択していないSOMがある場合、ステップS542に戻り、認識生成部515は、まだ、注目SOMとしていないSOMの中で、下位階層から上位階層に向かう順番で最初に見つかるSOMを、注目SOMとして新たに選択して、以下、同様の処理を繰り返す。
また、ステップS547において、階層SOMのすべてのSOMを対象としたと判定された場合、すなわち、階層SOMのSOMの中で、注目SOMに選択していないSOMがない場合、認識生成部515は、階層SOMのすべてのSOMについて、注目SOMに選択したことをリセットして、ステップS548に進み、階層SOMにおいて、まだ、注目SOMとしていないSOMの中で、上位階層から下位階層に向かう順番で最初に見つかるSOMを、注目SOMとして選択して、ステップS549に進む。
ステップS549では、認識生成部515は、注目SOMに接続している上位階層のSOM(上位SOM)があるかどうかを判定する。
ステップS549において、注目SOMに接続している上位SOMがないと判定された場合、すなわち、注目SOMが、例えば、最上位階層のSOMである場合、ステップS550ないしS552をスキップして、ステップS553に進む。
また、ステップS549において、注目SOMに接続している上位SOMがあると判定された場合、ステップS550に進み、認識生成部515は、注目SOMに接続している上位SOMの予測バッファから、次の時刻の予測情報、すなわち、ここでは、ノード情報としての位置データ(x,y)を読み出して、ステップS551に進む。
ステップS551では、認識生成部515は、現在時刻のSOM入力データに対する注目SOMの勝者ノードを求め、その勝者ノードに基づき、予測ノードの候補となる候補ノードを、B個だけ求める。
すなわち、認識生成部515は、現在時刻のSOM入力データに対する注目SOMの勝者ノードを、ノード#Iとすると、そのノード#Iとの、式(8)の結合重みwIjが強い上位B個のノード#jを、候補ノードとして求める。
そして、ステップS552に進み、認識生成部515は、注目SOMのB個の候補ノードのうちの、注目SOMに接続している上位SOMの予測バッファから読み出した次の時刻の予測情報としての位置データ(x,y)が表す位置に最も近い位置にある候補ノードを、注目SOMの次の時刻の予測ノードとして求め、ステップS553に進む。
ステップS553では、認識生成部515は、注目SOMに接続している上位SOMがないかどうかを判定する。
ステップS553において、注目SOMに接続している上位SOMがあると判定された場合、ステップS554をスキップして、ステップS555に進む。
また、ステップS553において、注目SOMに接続している上位SOMがないと判定された場合、すなわち、注目SOMが、例えば、最上位階層のSOMである場合、ステップS554に進み、認識生成部515は、現在時刻のSOM入力データに対する注目SOMの勝者ノードに基づき、予測ノードを求めて、ステップS555に進む。
すなわち、認識生成部515は、現在時刻のSOM入力データに対する注目SOMの勝者ノードを、ノード#Iとすると、そのノード#Iとの、式(8)の結合重みwIjが最も強いノード#jを、次の時刻の予測ノードとして求める。
ステップS555では、認識生成部515は、注目SOMに接続している下位階層のSOM(下位SOM)があるかどうかをを判定する。
ステップS555において、注目SOMに接続している下位SOMがないと判定された場合、すなわち、注目SOMが、最下位階層のSOMである場合、ステップS556ないしS557をスキップして、ステップS558に進む。
また、ステップS555において、注目SOMに接続している下位SOMがあると判定された場合、ステップS556に進み、認識生成部515は、注目SOMの次の時刻の予測ノード、すなわち、直前に行われたステップS552、又はS554で得られた次の時刻の予測ノードから、プロトタイプとしてのウインドウ長の時系列データを生成する。
注目SOMに接続している下位SOMがある場合、注目SOMの次の時刻の予測ノードのプロトタイプは、その注目SOMに接続している1以上の下位SOMの勝者ノードの予測情報を含む時系列統合データであり、認識生成部515は、その時系列統合データに、複数の下位SOMの勝者ノードの予測情報のシーケンスが含まれる場合には、その時系列統合データを、個々の下位SOMごとの予測情報のシーケンスに分けて、ステップS556からステップS557に進む。
ステップS557では、認識生成部515は、ステップS556で得た個々の下位SOMごとの予測情報のシーケンスを、注目SOMの予測バッファに供給して記憶させ、ステップS558に進む。
ここで、下位SOMごとの予測情報のシーケンスは、注目SOMに入力されるフレーム単位のSOM入力データと同一の時間長、つまり、注目SOMの入力バッファに記憶された時系列データからフレーム単位のSOM入力データを抽出するときに、その時系列データにかけるウインドウのウインドウ長と同一の時間長を有するが、注目SOMの予測バッファには、下位SOMごとの予測情報のシーケンスのうちの、シフト量shift(注目SOMに入力されるフレーム単位のSOM入力データを抽出するときに用いられるウインドウのシフト量shift)分の最新のデータだけが記憶される。
したがって、この場合、下位SOMごとの予測情報のシーケンスのうちの、シフト量shift分の最新のデータ以外のデータは破棄されることになる。但し、下位SOMごとの予測情報のシーケンスのうちの、シフト量shift分の最新のデータ以外のデータは、破棄するのではなく、注目SOMの予測バッファに上書きする形で記憶させるようにしても良い。
ステップS558では、認識生成部515は、階層SOMのすべてのSOMを対象として、ステップS549ないしS557の処理を行ったどうかを判定する。
ステップS558において、階層SOMのすべてのSOMを、まだ、対象としていないと判定された場合、すなわち、階層SOMのSOMの中で、まだ、注目SOMに選択していないSOMがある場合、ステップS548に戻り、認識生成部515は、まだ、注目SOMとしていないSOMの中で、上位階層から下位階層に向かう順番で最初に見つかるSOMを、注目SOMとして新たに選択して、以下、同様の処理を繰り返す。
また、ステップS558において、階層SOMのすべてのSOMを対象としたと判定された場合、すなわち、階層SOMのSOMの中で、注目SOMに選択していないSOMがない場合、ステップS559に進み、認識生成部515は、最下位階層のSOM(最下位SOM)それぞれについて、次の時刻の予測ノードとなっているノードから、そのプロトタイプとしての時系列データを生成し、そのうちの、シフト量shift(最下位SOMに入力されるフレーム単位のSOM入力データを抽出するときに用いられるウインドウのシフト量shift)分の最新のデータを、予測時系列データとして出力して、ステップS560に進む。
ステップS560では、認識生成部515は、データ抽出部512から、入力時系列データの新たなサンプル値が供給されたかどうかを判定する。ステップS560において、データ抽出部512から認識生成部515に、入力時系列データの新たなサンプル値が供給されたと判定された場合、ステップS541に戻り、認識生成部515は、データ抽出部512から供給された入力時系列データの新たなサンプル値を、最下位階層のSOMの入力バッファに供給して記憶させ、以下、同様の処理を繰り返す。
また、ステップS560において、データ抽出部512から認識生成部515に、入力時系列データの新たなサンプル値が供給されていないと判定された場合、認識生成部515は、処理を終了する。
次に、図42は、図34(図35)に示した階層SOMを用いて行った認識生成処理の実験の結果を示している。
ここで、例えば、図34に示した、最下位階層の2つのSOM#11及び#12と、その2つのSOM#11及び#12それぞれと接続している上位階層のSOM#21とから構成される階層SOMは、いわば入出力が対称な構成をしているため、最下位階層の2つのSOM#11及び#12のうちのいずれを階層SOMの入力又は出力とするかは(図33のロボットの入力データ又は出力データが与えられるSOMとするかは)、任意に決定することができる。
実験では、SOM#11を、階層SOMの入力(ロボットの入力データが与えられるSOM)に、SOM#12を、階層SOMの出力(ロボットの出力データが与えられるSOM)に、それぞれ割り当て、図42左に示すように、学習後の階層SOMのSOM#11に対して、学習に用いた入力時系列データを入力するとともに、その入力時系列データに対応して、SOM#12が出力(生成)する予測時系列データを、そのまま、次の時刻の入力時系列データとして、SOM#12に対して入力することにより、認識生成処理を行った。
以上のような認識生成処理において、階層SOMのSOM#11,#12、及びSOM#21それぞれで観測されるデータを、横軸を時間として、図42右に示す。
図42右において、グラフC1は、SOM#11を入出力するデータを、グラフC2は、SOM#12を入出力するデータを、グラフC3は、SOM#11と#21との間を入出力するデータを、グラフC4は、SOM#12と#21との間を入出力するデータを、それぞれ表している。
また、グラフC1ないしC4において、2点破線は、階層SOMの学習時のデータを示している。さらに、実線は、認識生成処理において認識の対象としたSOM入力データを示しており、点線は、認識生成処理において、予測ノードから生成された時系列データ(プロトタイプ)を示している。
なお、グラフC3は、SOM#11のノードを表すノード情報としての位置データ(x,y)のグラフであり、図42右において、グラフC3として図示してある2つのグラフのうちの一方は、SOM#11上の位置を表す位置データ(x,y)のうちのx座標を表し、他方は、y座標を表す。同様に、図42右において、グラフC4として図示してある2つのグラフのうちの一方は、SOM#12上の位置を表す位置データ(x,y)のうちのx座標を表し、他方は、y座標を表す。
グラフC1では、認識生成処理において、SOM#11に対して、学習に用いた入力時系列データを入力しているため、階層SOMの学習時のデータ(2点破線)と、認識の対象としたSOM入力データ(実線)とが一致している。
グラフC2では、認識生成処理において、SOM#12が出力(生成)する予測時系列データを、そのまま、次の時刻の入力時系列データとして、SOM#12に対して入力しているため、予測ノードから生成された時系列データ(点線)と、認識の対象としたSOM入力データ(実線)とが一致している。
図42右では、グラフC1において、SOM#11の予測ノードから生成された時系列データ(点線)、つまり、SOM#11へのSOM入力データの予測値が、階層SOMの学習時のデータ(2点破線)、及び認識の対象としたSOM入力データ(実線)に対して、若干の誤差を伴いながら追従していることが分かる。
また、グラフC2において、SOM#12の予測ノードから生成された時系列データ(点線)は、最初は、不安定になっているが、認識生成処理が進むと、階層SOMの学習時のデータ(2点破線)に一致するようになっていくことが分かる。
さらに、図42右では、グラフC1の左から1/3あたりで、認識の対象としたSOM入力データ(実線)が、それまでとは異なるパターンのデータに切り替わっており、その切り替わりの直後は、グラフC2において、SOM#12の予測ノードから生成された時系列データ(点線)は、不安定になっている(混乱している)が、その後は、徐々に、階層SOMの学習時のデータ(2点破線)に一致するようになっていくことが分かる。
6章.ロボットを使った実験と階層の構成
階層SOMをロボットの物体ハンドリング学習に応用する例を説明する。
ロボットには視覚センサ(ステレオ・カメラ)がついており、そこから色領域抽出を行い、重心位置を求めることで、単色の物体の3次元位置を得ることができる。またロボットの腕関節は左右それぞれ4自由度のアクチュエータ(モータ)を持ち、角度指示値を与えることでサーボ制御を行うことができる。
ここでは実際にロボットの眼前に物体をおいて、人間がロボットの腕を取って、その物体に対する腕の動きを教示してやる。この時の物体の位置や動きと腕の軌道を入力データとして、実際に物体が提示された時に教えた動作を再現させる。
入力データは、視覚センサから入るものと、実行したい腕の軌道(出力値)を階層SOMに与える。それぞれを別々の新SOMにいれて、階層学習(階層SOMを構成する各新SOMの自己組織的な学習と予測学習)を行い、画像入力と腕の軌道から次の腕の軌道を予測させることで出力を生成する(認識生成処理を行う)。
また、図43の下図のように、右腕と左腕を別々に自己組織化させるというようにすることにより複雑なネットワークを構成して学習することも同様のアルゴリズムで行うことができる。
ここで、図43は、腕を動かして物体を操作するロボットに適用する階層SOMの例を示している。
図43上は、図34や図35に示した階層SOMと同様に、最下位階層の2つのSOM#101及び#102と、その2つのSOM#101及び#102それぞれと接続している上位階層のSOM#111との、合計で3つのSOM#101,#102、及び#111から構成される階層SOM#100を示している。
上述の物体の3次元位置の時系列をセンサデータとして、SOM#101に入力するとともに、左右の腕の角度指示値の時系列をモータデータとして、SOM#102に入力して、階層SOM#100の学習を行うことにより、階層SOM#100によれば、SOM#101に、現在の物体の位置を表す3次元位置を入力し、さらに、必要に応じて、SOM#102に、左右の腕の現在の角度指示値を入力すると、人間が教示した左右の腕の動きをするための次の角度指示値を、SOM#102から出力する認識生成処理を行うことができる。
図43下は、6つのSOM#201,#202,#203,#211,#212、及び#221から構成される階層SOM#200を示している。
すなわち、階層SOM#200は、最下位階層のSOMとして、3つのSOM#201,#202、及び#203を、その1階層だけ上位階層のSOMとして、2つのSOM#211及び#212を、最上位階層のSOMとして、1つのSOM#221を有している。
そして、最下位階層のSOM#201は、上位階層のSOM#211に接続し、最下位階層のSOM#202及び#203は、上位階層のSOM#212に接続している。さらに、上位階層のSOM#211及びSOM#212は、最上位階層のSOM#221に接続している。
上述の物体の3次元位置の時系列をセンサデータとして、SOM#201に入力し、左の腕の角度指示値の時系列を第1のモータデータとして、SOM#202に入力するとともに、右の腕の角度指示値の時系列を第2のモータデータとして、SOM#203に入力して、階層SOM#200の学習を行うことにより、階層SOM#200によれば、SOM#201に、現在の物体の位置を表す3次元位置が入力され、さらに、必要に応じて、SOM#202に、左の腕の現在の角度指示値が入力されるとともに、SOM#203に、右の腕の現在の角度指示値が入力されると、人間が教示した左の腕の動きをするための次の角度指示値を、SOM#202から出力するとともに、教示された右の腕の動きをするための次の角度指示値を、SOM#203から出力する認識生成処理を行うことができる。
7章.確率論的定式化
上記までで階層SOMの基本的学習(階層SOMを構成する各新SOMの自己組織的な学習と予測学習)と実行(認識生成処理)のアルゴリズムを示した。これからの章で確率論的定式化を行い、認識生成処理のアルゴリズムの修正バージョンを示していく。
各新SOMでの予測を確率的因果モデルと照らし合わせると図44のような関係が成り立つと考えられる。
すなわち、図44は、新SOMと、因果モデルとの関係を示している。
図44右の因果モデルは、ある時刻tのある状態Xi(t)において、ある確率で観測値I(t)が観測(生成)されるという生成モデル(generative model)と現在の状態Xi(t)によって次の状態Xi'(t)が決まるという確率的マルコフ過程に基づいている。この因果モデルによる状態確率P(Xi(t))は、式(9)から推定することができる(Connect Hebb)。式(9)のP(I(t)|Xi(t))は、観測値I(t)が観測される確率を表し、P(Xi(t)|Xj(t-1))は、遷移確率を表している。これを、観測値I(t)が観測される最初の時刻t=1から順番に伝搬させて行くことで現在の状態確率P(Xi(t))=P(Xi(t)|I(1),I(2),・・・,I(t))を求めることができる。
Figure 2007299365
・・・(9)
時系列データが入力される各時刻の新SOMを表す図44左の時系列SOMモデルでは、観測値としてのSOM入力データを用いて自己組織化学習を行うことにより求められたN個の(離散)ノードが存在する。N個のノードのどれかを取る確率を定義してやることで、因果モデルの状態確率と対応させることができる。またそれぞれのノードから次のノードを予測することは、現在のノードから次のノードは確率的マルコフ過程で決まると捉えることができる。
ここで、式(9)において、mi t,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))を表す。
また、式(9)において、P(I(t)|Xi(t))は、時刻tにおいて、状態Xi(t)で、観測値I(t)が観測される観測確率(観測尤度)、すなわち、新SOMでは、観測値I(t)としてのSOM入力データに対して、ノード#iが勝者ノードとなる確率を表す。
さらに、式(9)において、P(Xi(t)|Xj(t-1))は、時刻t-1において、状態Xj(t-1)にいて、時刻tにおいて、状態Xi(t)に遷移する遷移確率、すなわち、新SOMでは、ノード#iが勝者ノードになった後に、ノード#jが勝者ノードになる確率を表す。
したがって、式(9)によれば、時刻tにおいてノード#iが勝者ノードである確率P(Xi(t))=mi t,t+1は、時刻t-1においてノード#jが勝者ノードである確率P(Xj(t-1))=mj t-1,tと、時刻t-1においてノード#jが勝者ノードであったときに、時刻tにおいてノード#iが勝者ノードになる確率P(Xi(t)|Xj(t-1))との乗算値P(Xi(t)|Xj(t-1))mj t-1,tの、新SOMを構成するノード#jすべてについての総和ΣP(Xi(t)|Xj(t-1))mj t-1,tを求め、その総和ΣP(Xi(t)|Xj(t-1))mj t-1,tと、観測値I(t)としてのSOM入力データに対してノード#iが勝者ノードとなる確率P(I(t)|Xi(t))とを乗算することにより求めることができる。
なお、下付の添え字がついている変数を、下付の添え字なしで記載した場合、その下付の添え字をなしにした変数は、全状態(新SOMのすべてのノード)に関する情報を表す。すなわち、全状態(新SOMのすべてのノード)の数がN個であるとすると、下付の添え字をなしにした変数は、N個の状態(新SOMのN個のノード)すべてに関する情報を表す。
具体的には、例えば、メッセージmi t,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))は、式(10)に示すように、全状態(新SOMのすべてのノード)それぞれの状態確率をコンポーネントとするベクトル(N行1列の行列)を表す。
Figure 2007299365
・・・(10)
また、例えば、遷移確率P(Xi(t)|Xj(t-1))については、状態(ノード)を表す下付の添え字i及びjをなしにした遷移確率P(X(t)|X(t-1))は、式(11)に示すように、全状態(新SOMのすべてのノード)それぞれからの遷移の遷移確率をコンポーネントとするN行N列の行列を表す。
Figure 2007299365
・・・(11)
さらに、例えば、観測尤度P(I(t)|Xi(t))については、状態(ノード)を表す下付の添え字iをなしにした観測尤度P(I(t)|X(t))は、式(12)に示すように、全状態それぞれにおいて、観測値I(t)が観測される観測尤度(新SOMのすべてのノードのそれぞれが観測値I(t)に対して勝者ノードとなる確率)をコンポーネントとするベクトル(N行1列の行列)を表す。
Figure 2007299365
・・・(12)
ここで、式(9)を下付の添え字をなしにした変数によって書き直すと、式(13)になる。
Figure 2007299365
・・・(13)
なお、行列(ベクトルを含む)AとBとの演算において、ABは、行列AとBとの積を表し、A*Bは、行列Aのコンポーネントと、行列Bの対応するコンポーネントとの積(をコンポーネントとする行列)を表す。
次に、図45は、最下位階層のSOM#1と、その1階層だけ上位階層のSOM#2とが接続された2つの新SOMからなる階層SOM(図45左)と、2階層の因果モデル(階層因果モデル)(図45右)との関係を示している。
図45の階層因果モデルは、上位階層の状態Y(t)が下位階層の状態X(t)を決定する生成モデルで記述されている。階層SOMは、上位階層のSOM#2の勝者ノードに対応する下位階層(最下位階層)のSOM#1のノードが勝者ノードとなるモデルとして捉えることができ、これにより、階層SOMには、階層因果モデルを適用することができる。
ここで、図45において、メッセージmc a→bは、c階層において、時刻aの状態から時刻bの状態に伝搬するメッセージを表し、メッセージmb→c aは、時刻aにおいて、b階層の状態からc階層の状態に伝搬するメッセージを表す。
図46は、階層因果モデルの状態推定を行う方法を示している。
階層因果モデルの状態推定は、複雑で、図46に示すLoopy BPという手法に基づいて、式(14)を演算することにより行われる。なお、式(14)の演算では、2つの階層の状態X(t)及びY(t)の組み合わせからなる確率P(Xk(t)|Yi(t),Xj(t-1))や、P(Xi(t)|Yj(t),Xk(t-1))を求めなくてはならず、階層因果モデルが多くの状態を持つ場合、つまり、階層SOMを構成するSOMが多くのノードを有する場合には、演算量が大になる。
Figure 2007299365
・・・(14)
ここで、式(14)において、m1→2,i tは、時刻tにおいて、第1階層(最下位階層)から第2階層(第1階層の1階層だけ上の階層)の状態Yi(t)に伝搬するメッセージを表す。
また、P(Xk(t)|Yi(t),Xj(t-1))は、第2階層において、時刻tに、状態Yi(t)にいるときに、第1階層において、時刻t-1に、状態Xj(t-1)にいて、時刻tに、状態Xk(t)に遷移する遷移確率を表す。
さらに、m1,j t-1→tは、第1階層の時刻t-1の状態Xj(t-1)から、時刻tの状態Xj(t)に伝搬するメッセージを表す。
また、P(I(t)|Xk(t))は、時刻tの状態Xk(t)において、観測値I(t)が観測される観測尤度を表す。
さらに、m2→1,i tは、時刻tにおいて、第2階層の状態Yi(t)から第1階層に伝搬するメッセージを表す。
また、P(Yi(t)|Yj(t-1))は、第2階層において、時刻t-1に、状態Yj(t-1)にいて、時刻tに、状態Yi(t)に遷移する遷移確率を表す。
さらに、m2,j t-1→tは、第2階層の時刻t-1の状態Yj(t-1)から、時刻tの状態Yj(t)に伝搬するメッセージを表す。
また、m1,i t→t+1は、第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))は、第2階層において、時刻tに、状態Yj(t)にいるときに、第1階層において、時刻t-1に、状態Xk(t-1)にいて、時刻tに、状態Xi(t)に遷移する遷移確率を表す。
さらに、m2→1,j tは、時刻tにおいて、第2階層から第1階層の状態Xj(t)に伝搬するメッセージを表す。
また、m1,k t-1→tは、第1階層の時刻t-1の状態Xk(t-1)から、時刻tの状態Xk(t)に伝搬するメッセージを表す。
さらに、m2,i t→t+1は、第2階層の時刻tの状態Yi(t)から、時刻t+1の状態Yi(t+1)に伝搬するメッセージを表す。
ここで、図41で説明した階層SOMの実行手法(認識生成処理)を確率伝搬の形で書き換えたものを、図47に示す。図47では、下位から上位の認識を上向きの矢印、各SOMでの次時刻の予測を横向きの矢印、上位レイヤから下位の推定(予測)を下向きの矢印で表しており、図41の認識生成処理でもこの順番で計算を行っている。
すなわち、図47は、図41の認識生成処理の手順に対応する確率伝搬を示している。
図47では、最下位階層(第1階層)の状態X(t)、最下位階層より1階層だけ上位階層(第2階層)の状態Y(t)、及び最下位階層より2階層だけ上位階層(第3階層)の状態Z(t)の、3階層の状態を有する階層因果モデルの確率伝搬を示しており、この階層因果モデルは、3階層の新SOMから構成される階層SOMに対応する。
第1階層の状態X(t)は、階層SOMの第1階層のSOMのノードに対応し、第2階層の状態Y(t)は、階層SOMの第2階層のSOMのノードに対応する。第3階層(最上位階層)の状態Z(t)は、階層SOMの第3階層のSOMのノードに対応する。
そして、図47において、P(I(t)|X(t))は、時刻tに、状態X(t)において、入力時系列データである観測値I(t)が観測される観測尤度、すなわち、観測値I(t)に対して、第1階層のSOMのノードX(t)が勝者ノードとなる確率(観測尤度)を表す。
また、P(X(t)|Y(t))は、時刻tに、状態Y(t)において、観測値としてのノードX(t)が観測される観測尤度、すなわち、第1階層のSOMのノードX(t)を表すノード情報としての位置データに対して、第2階層のSOMのノードY(t)が勝者ノードとなる確率(観測尤度)を表す。
さらに、P(Y(t)|Z(t))は、時刻tに、状態Z(t)において、観測値としてのノードY(t)が観測される観測尤度、すなわち、第2階層のSOMのノードY(t)を表すノード情報としての位置データに対して、第3階層のSOMのノードZ(t)が勝者ノードとなる確率(観測尤度)を表す。
さらに、P(Z(t+1)|Z(t))は、時刻tから時刻t+1に、状態Z(t)から状態Z(t+1)に遷移する遷移確率、すなわち、第3階層のSOMにおいて、時刻tに、ノードZ(t)が勝者ノードとなったときに、次の時刻t+1に、ノードZ(t+1)が勝者ノードとなる確率(遷移確率)を表す。
また、P(Y(t+1)|Y(t))は、時刻tから時刻t+1に、状態Y(t)から状態Y(t+1)に遷移する遷移確率、すなわち、第2階層のSOMにおいて、時刻tに、ノードY(t)が勝者ノードとなったときに、次の時刻t+1に、ノードY(t+1)が勝者ノードとなる確率(遷移確率)を表す。
さらに、P(X(t+1)|X(t))は、時刻tから時刻t+1に、状態X(t)から状態X(t+1)に遷移する遷移確率、すなわち、第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)が観測される観測尤度、すなわち、第3階層のSOMのノードZ(t+1)が勝者ノードであったならば、第2階層のSOMのノードY(t+1)を表すノード情報としての位置データが観測される確率(観測尤度)を表す。
さらに、P(X(t+1)|Y(t+1))は、時刻t+1に、状態Y(t+1)において、観測値としてのノードX(t+1)が観測される観測尤度、すなわち、第2階層のSOMのノードY(t+1)が勝者ノードであったならば、第1階層のSOMのノードX(t+1)を表すノード情報としての位置データが観測される確率(観測尤度)を表す。
さらに、P(I(t+1)|X(t+1))は、時刻t+1に、状態X(t+1)において、観測値としての入力時系列データI(t+1)が観測される観測尤度、すなわち、第1階層のSOMのノードX(t+1)が勝者ノードであったならば、入力時系列データI(t+1)が観測される確率(観測尤度)を表す。
次に、図48にSOMの発火と確率分布の対応を示す。SOMの勝者ノードの決定は、入力信号と各ノードのプロトタイプとの距離(誤差)を求めて最も誤差の小さいものを選ぶことにより行うが、元信号に正規分布の加法性ノイズが乗ると仮定すると、各ノードにおける信号の観測確率(尤度)は正規分布を用いることができる。
すなわち、図48は、新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学習の重み係数である結合重みwijを利用する。Connect Hebb学習では、勝者ノードが、ノード#iからノード#jへ遷移した時にこれをつなぐ結合重みwijを基準値Δwだけ増加させると同時に近傍のノードの結合重みも、勝者ノードとのパターン間距離に応じて増加させる。従って、結合重みwijはノード#iからノード#jへの遷移の頻度に比例する。各ノードから遷移する確率の総和は1であることから、以下の正規化を行って遷移確率として用いる。
Figure 2007299365
・・・(15)
すなわち、予測学習(Connect Hebb学習)では、ノード#iが勝者ノードになった場合、そのノード#iと、次の時刻に勝者ノードになったノード#jとの結合を強めるように、結合重みwijを、式(8)にしたがって更新する。したがって、結合重みwijは、勝者ノードがノード#iから#jに遷移する頻度を表しているということができ、時刻tに、ノード#iが勝者ノードになったときに、次の時刻t+1に、ノード#jが勝者ノードとなる確率、つまり、時刻tから時刻t+1において、状態Xi(t)から状態Xj(t+1)に遷移する遷移確率P(Xj(t+1)|Xi(t))として利用することができる。
ここで、式(15)において、右辺の分母のサメーションΣ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))を用いることにより、各時刻での状態推定を行うことができる。
図49は、図33の認識生成部515が行う、階層因果モデルを適用した認識生成処理の処理手順(アルゴリズム2)を示している。
ステップS601において、認識生成部515は、記憶部511に記憶された階層SOMを構成するSOMそれぞれの各ノードの状態確率P(X(t))を、一様分布で初期化して、ステップS602に進む。
すなわち、階層SOMを構成するSOMのうちの、k番目のSOM#kを、注目SOMとして注目した場合に、その注目SOM#kがN個のノードX1(t),X2(t),・・・,XN(t)を有するとすると、認識生成部515は、ノードXi(t)の状態確率P(Xi(t))を、1/Nに初期化する。
ステップS602では、認識生成部515は、図41のステップS541と同様に、データ抽出部512から供給される複数種類の入力時系列データそれぞれの時刻tのサンプル値S(t)を、記憶部511に記憶された階層SOMの最下位階層のSOMのうちの、対応するSOMの入力バッファに供給して記憶させ、ステップS603に進む。
ステップS603では、認識生成部515は、階層SOMにおいて、まだ、注目SOMとしていないSOMの中で、下位階層から上位階層に向かう順番で最初に見つかるSOMを、注目SOMとして選択して、ステップS604に進む。
ここで、いま、ステップS603において、階層SOMを構成するSOMのうちの、k番目のSOM#kが、注目SOMとして選択されたこととする。
ステップS604では、認識生成部515は、時刻tを、シフト量shiftで除算した剰余Mod(t,shift)が0であるかどうか、すなわち、注目SOM#kの入力バッファに、シフト量shift分の新たなSOM入力データが記憶されたかどうかを判定する。
ステップS604において、注目SOM#kの入力バッファに、シフト量shift分の新たなSOM入力データが、まだ記憶されていないと判定された場合、ステップS603に戻り、新たな注目SOMが選択され、以下、同様の処理が繰り返される。
また、ステップS604において、注目SOM#kの入力バッファに、シフト量shift分の新たなSOM入力データが記憶されたと判定された場合、ステップS605に進み、認識生成部515は、注目SOM#kの入力バッファに記憶されているSOM入力データにウインドウをかけることにより、ウインドウ長分の最新のSOM入力データを、現在時刻tのSOM入力データとして抽出する。
さらに、ステップS605では、認識生成部515は、現在時刻tのSOM入力データを、時刻tにおいて、注目SOM#kで観測された観測値Ik(t)として、その観測値Ik(t)が、注目SOM#kのN個のノードX(t)それぞれで観測される観測尤度P(Ik(t)|X(t))を求め、ステップS606に進む。
ステップS606では、認識生成部515は、注目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))である。
認識生成部515は、ステップS606において、状態確率P(X(t))を更新した後、ステップS607に進み、その更新後の状態確率P(Xi(t))が最も高いノードXi(t)を、観測値Ik(t)に対する勝者ノードとして求める(観測値Ik(t)の認識を行う)。
さらに、ステップS607では、認識生成部515は、観測値Ik(t)に対する注目SOM#kの勝者ノードXi(t)を表すノード情報としての、その勝者ノードXi(t)の位置を表す位置データ(x,y)を、注目SOM#kに接続している上位階層のSOM(上位SOM)の入力バッファに供給して記憶させ、ステップS608に進む。
ステップS608では、認識生成部515は、注目SOM#kの入力バッファから、古い順に、シフト量shift分だけのSOM入力データを破棄(削除)して、ステップS609に進む。
ステップS609では、認識生成部515は、階層SOMのすべてのSOMを対象として、ステップS604ないしS608の処理を行ったどうかを判定する。
ステップS609において、階層SOMのすべてのSOMを、まだ、対象としていないと判定された場合、すなわち、階層SOMのSOMの中で、まだ、注目SOMに選択していないSOMがある場合、ステップS603に戻り、認識生成部515は、まだ、注目SOMとしていないSOMの中で、下位階層から上位階層に向かう順番で最初に見つかるSOMを、注目SOMとして選択して、以下、同様の処理を繰り返す。
また、ステップS609において、階層SOMのすべてのSOMを対象としたと判定された場合、すなわち、階層SOMのSOMの中で、注目SOMに選択していないSOMがない場合、認識生成部515は、階層SOMのすべてのSOMについて、注目SOMに選択したことをリセットして、ステップS610に進み、階層SOMにおいて、まだ、注目SOMとしていないSOMの中で、上位階層から下位階層に向かう順番で最初に見つかるSOMを、注目SOMとして選択して、ステップS611に進む。
ステップS611では、認識生成部515は、ステップS604と同様に、時刻tを、シフト量shiftで除算した剰余Mod(t,shift)が0であるかどうか、すなわち、注目SOMの入力バッファに、シフト量shift分の新たなSOM入力データが記憶されたかどうかを判定する。
ステップS611において、注目SOMの入力バッファに、シフト量shift分の新たなSOM入力データが、まだ記憶されていないと判定された場合、ステップS610に戻り、新たな注目SOMが選択され、以下、同様の処理が繰り返される。
また、ステップS611において、注目SOMの入力バッファに、シフト量shift分の新たなSOM入力データが記憶されたと判定された場合、ステップS612に進み、認識生成部515は、注目SOMにおいて、時刻tから、次の時刻t+1に、勝者ノードがノードX(t)からノードX(t+1)に遷移する遷移確率P(X(t+1)|X(t))を、式(15)にしたがい、注目SOMの結合重みwijを用いて求める。
さらに、ステップS612では、認識生成部515は、注目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))を記憶しておくことにより、再度求める必要はない。
認識生成部515は、ステップS612において、次の時刻t+1のノードX(t+1)の状態確率P(X(t+1))=P(X(t+1)|X(t))P(X(t))を求めると、ステップS613に進み、認識生成部515は、注目SOMに接続している上位階層のSOM(上位SOM)があるかどうかを判定する。
ステップS613において、注目SOMに接続している上位SOMがないと判定された場合、すなわち、注目SOMが、例えば、最上位階層のSOMである場合、ステップS614をスキップして、ステップS615に進む。
また、ステップS613において、注目SOMに接続している上位SOMがあると判定された場合、ステップS614に進み、認識生成部515は、注目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))を求める。
さらに、ステップS614では、認識生成部515は、その観測尤度P(X(t+1)|Ywin(t+1))を用いて、時刻t+1のノードX(t+1)の状態確率P(X(t+1))(ステップS612で求められた次の時刻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として、後述するステップS615の処理が行われることにより、その上位SOMの予測バッファに記憶される。
また、ステップS614において、時刻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)のプロトタイプとしての時系列データの最新のサンプル(時刻が最も後のサンプル)との誤差を用いて、図48で説明したようにして、観測尤度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))を記憶しておくことにより、再度求める必要はない。
認識生成部515は、以上のように、ステップS614において、時刻t+1のノードX(t+1)の状態確率P(X(t+1))を更新した後、ステップS615に進み、状態確率P(X(t+1))が最も高い注目SOMのノードを予測ノードとして求め、その予測ノードを表すノード情報を、注目SOMの予測バッファに供給して記憶させ、ステップS616に進む。
ステップS616では、認識生成部515は、注目SOMが最下位階層のSOM(最下位SOM)であるかどうかを判定する。
ステップS616において、注目SOMが最下位SOMでないと判定された場合、ステップS617をスキップして、ステップS618に進む。
また、ステップS616において、注目SOMが最下位SOMであると判定された場合、ステップS617に進み、認識生成部515は、直前のステップS615で求められた注目SOMである最下位SOMの予測ノードを、その注目SOMの予測バッファを参照することにより認識する。さらに、ステップS617では、認識生成部515は、注目SOMの予測ノードから、そのプロトタイプとしての時系列データを生成し、そのうちの、シフト量shift(最下位SOMに入力するフレーム単位のSOM入力データを抽出するときに用いるウインドウのシフト量shift)分の最新のデータを、予測時系列データとして出力して、ステップS618に進む。
ステップS618では、認識生成部515は、階層SOMのすべてのSOMを対象として、ステップS611ないしS617の処理を行ったどうかを判定する。
ステップS618において、階層SOMのすべてのSOMを、まだ、対象としていないと判定された場合、すなわち、階層SOMのSOMの中で、まだ、注目SOMに選択していないSOMがある場合、ステップS610に戻り、認識生成部515は、まだ、注目SOMとしていないSOMの中で、上位階層から下位階層に向かう順番で最初に見つかるSOMを、注目SOMとして選択して、以下、同様の処理を繰り返す。
また、ステップS618において、階層SOMのすべてのSOMを対象としたと判定された場合、すなわち、階層SOMのSOMの中で、注目SOMに選択していないSOMがない場合、ステップS619に進み、認識生成部515は、階層SOMのすべてのSOMそれぞれについて、SOMの時刻tの状態確率P(X(t))を、そのSOMを注目SOMとしてステップS614で求めた時刻t+1の状態確率(最上位階層のSOMについては、ステップS612で求めた時刻t+1の状態確率)P(X(t+1))に更新して、ステップS620に進む。
ステップS620では、認識生成部515は、データ抽出部512から、入力時系列データの新たなサンプル値が供給されたかどうかを判定する。ステップS620において、データ抽出部512から認識生成部515に、入力時系列データの新たなサンプル値が供給されたと判定された場合、ステップS602に戻り、認識生成部515は、データ抽出部512から供給された入力時系列データの新たなサンプル値を、最下位階層のSOMの入力バッファに供給して記憶させ、以下、同様の処理を繰り返す。
また、ステップS620において、データ抽出部512から認識生成部515に、入力時系列データの新たなサンプル値が供給されていないと判定された場合、認識生成部515は、処理を終了する。
8章.パーティクル・フィルタによる実装
階層SOMを構成するSOMのノードが多くなった場合には、図49で説明したように、ノードすべての状態確率を計算する認識生成処理は、演算量が大になる。
そこで、認識生成処理では、例えば、階層SOMを構成するSOMに、パーティクルフィルタを適用して状態確率を求めることにより、演算量を低減することができる。
パーティクルフィルタは、モンテカルロ法に基づいた確率計算手法であり、全ての状態についての状態確率を持つのではなく、パーティクル(particle)と呼ばれる単位が一つの状態を表現し、状態確率を保持する。全パーティクルの状態確率によって全体の確率分布が表される。
ここで、パーティクルフィルタについては、Michael Isard and Andrew Blake, ”CONDENSATION -- conditional density propagation for visual tracking”, Int. J. Computer Vision, 29, 1, 5--28, (1998)に記載されている。
図50及び図51を参照して、パーティクルフィルタを適用した認識生成処理の概要について説明する。
パーティクルフィルタを適用した認識生成処理では、図50に示すように、まず、階層SOMを構成する各SOMに、M個のパーティクル(図50において○印で示す)が割り当てられる。
すなわち、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)に対する勝者ノードに決定される。
その後、図51に示すように、パーティクルが、遷移確率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であれば、その予測ノードを用いて、予測時系列データが生成される。
次に、図52は、図33の認識生成部515が行う、パーティクルフィルタを適用して状態確率を求める認識生成処理の処理手順(アルゴリズム3)を示している。
ステップS701において、認識生成部515は、記憶部511に記憶された階層SOMを構成する各SOMに、M個のパーティクルを一様に割り当てる。さらに、M個のパーティクルs(j)それぞれがとる状態(ノード)Xi(t)を、状態Xs(j)とすると、認識生成部515は、パーティクルs(j)の状態確率P(Xs(j)(t))を、1/Mに初期化し、ステップS701からステップS702に進む。
ステップS702では、認識生成部515は、図41のステップS541と同様に、データ抽出部512から供給される複数種類の入力時系列データそれぞれの時刻tのサンプル値S(t)を、記憶部511に記憶された階層SOMの最下位階層のSOMのうちの、対応するSOMの入力バッファに供給して記憶させ、ステップS703に進む。
ステップS703では、認識生成部515は、階層SOMにおいて、まだ、注目SOMとしていないSOMの中で、下位階層から上位階層に向かう順番で最初に見つかるSOMを、注目SOMとして選択して、ステップS704に進む。
ここで、いま、ステップS703において、階層SOMを構成するSOMのうちの、k番目のSOM#kが、注目SOMとして選択されたこととする。
ステップS704では、認識生成部515は、時刻tを、シフト量shiftで除算した剰余Mod(t,shift)が0であるかどうか、すなわち、注目SOM#kの入力バッファに、シフト量shift分の新たなSOM入力データが記憶されたかどうかを判定する。
ステップS704において、注目SOM#kの入力バッファに、シフト量shift分の新たなSOM入力データが、まだ記憶されていないと判定された場合、ステップS703に戻り、新たな注目SOMが選択され、以下、同様の処理が繰り返される。
また、ステップS704において、注目SOM#kの入力バッファに、シフト量shift分の新たなSOM入力データが記憶されたと判定された場合、ステップS705に進み、認識生成部515は、注目SOM#kの入力バッファに記憶されているSOM入力データにウインドウをかけることにより、ウインドウ長分の最新のSOM入力データを、現在時刻tのSOM入力データとして抽出する。
さらに、ステップS705では、認識生成部515は、現在時刻tのSOM入力データを、時刻tにおいて、注目SOM#kで観測された観測値Ik(t)として、その観測値Ik(t)が、注目SOM#kに割り当てられているM個のパーティクルs(j)それぞれで観測される観測尤度P(Ik(t)|Xs(j)(t))を求め、ステップS706に進む。
ステップS706では、認識生成部515は、注目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))の総和である。
認識生成部515は、ステップS706において、状態確率P(Xs(j)(t))を更新した後、ステップS707に進み、その更新後の状態確率P(Xs(j)(t))に応じて、パーティクルのリサンプリングを行う。
すなわち、認識生成部515は、状態確率P(Xs(j)(t))が高いパーティクルs(j)がとる注目SOMの状態(ノード)Xi(t)を表す値ほど、高い確率で現れる乱数をM回だけ発生し、j回目の乱数が表す状態Xi(t)を、パーティクルs(j)に割り当てることにより、M個のパーティクルs(j)を、注目SOM#kの状態(ノード)Xi(t)に、新たに割り当てる。
認識生成部515は、ステップS707において、以上のようなM個のパーティクルs(j)のリサンプリングを行った後、ステップS708に進み、リサンプリング後のパーティクルに基づいて、投票を行い、すなわち、注目SOM#kの各ノード(状態)に割り当てられているパーティクルの数をカウントして、ステップS709に進む。
ステップS709では、認識生成部515は、パーティクルの数が最も多いノードを、観測値Ik(t)に対する勝者ノードに決定する。
さらに、ステップS709では、認識生成部515は、注目SOM#kの勝者ノードを表すノード情報としての位置データ(x,y)を、注目SOM#kに接続している上位階層のSOM(上位SOM)の入力バッファに供給して記憶させ、ステップS710に進む。
ステップS710では、認識生成部515は、注目SOM#kの入力バッファから、古い順に、シフト量shift分だけのSOM入力データを破棄(削除)して、ステップS711に進む。
ステップS711では、認識生成部515は、階層SOMのすべてのSOMを対象として、ステップS704ないしS710の処理を行ったどうかを判定する。
ステップS711において、階層SOMのすべてのSOMを、まだ、対象としていないと判定された場合、すなわち、階層SOMのSOMの中で、まだ、注目SOMに選択していないSOMがある場合、ステップS703に戻り、認識生成部515は、まだ、注目SOMとしていないSOMの中で、下位階層から上位階層に向かう順番で最初に見つかるSOMを、注目SOMとして選択して、以下、同様の処理を繰り返す。
また、ステップS711において、階層SOMのすべてのSOMを対象としたと判定された場合、すなわち、階層SOMのSOMの中で、注目SOMに選択していないSOMがない場合、認識生成部515は、階層SOMのすべてのSOMについて、注目SOMに選択したことをリセットして、ステップS712に進み、階層SOMにおいて、まだ、注目SOMとしていないSOMの中で、上位階層から下位階層に向かう順番で最初に見つかるSOMを、注目SOMとして選択して、ステップS713に進む。
ステップS713では、認識生成部515は、ステップS704と同様に、時刻tを、シフト量shiftで除算した剰余Mod(t,shift)が0であるかどうか、すなわち、注目SOMの入力バッファに、シフト量shift分の新たなSOM入力データが記憶されたかどうかを判定する。
ステップS713において、注目SOMの入力バッファに、シフト量shift分の新たなSOM入力データが、まだ記憶されていないと判定された場合、ステップS712に戻り、新たな注目SOMが選択され、以下、同様の処理が繰り返される。
また、ステップS713において、注目SOMの入力バッファに、シフト量shift分の新たなSOM入力データが記憶されたと判定された場合、ステップS714に進み、認識生成部515は、注目SOMにおいて、時刻tから、次の時刻t+1に、勝者ノードがノードX(t)からノードX(t+1)に遷移する遷移確率P(X(t+1)|X(t))を、式(15)にしたがい、注目SOMの結合重みwijを用いて求める。
ここで、遷移確率P(X(t+1)|X(t))は、図49で説明したように、時刻tによっては変わらないので、階層SOMを構成する各SOMについて、一度求めれば、その後は、その求めた遷移確率P(X(t+1)|X(t))を記憶しておくことにより、再度求める必要はない。
ステップS714では、さらに、認識生成部515は、注目SOMに割り当てられているM個のパーティクルを、遷移確率P(X(t+1)|X(t))に応じて移動させ(再割り当てし)、これにより、次の時刻t+1の状態確率P(Xs(j)(t+1))を求める。
すなわち、認識生成部515は、遷移確率P(Xi'(t+1)|Xi(t))が高い遷移先としての状態(ノード)Xi'(t+1)を表す値ほど、高い確率で現れる乱数を発生し、状態Xi(t)に割り当てられていたパーティクルを、乱数が表す状態Xi'(t+1)に割り当てることにより、M個のパーティクルs(j)それぞれを、注目SOM#kの状態(ノード)X(t+1)に、新たに割り当てる。
その後、認識生成部515は、ステップS714からステップS715に進み、注目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におけるパーティクルの移動軌跡を保持しておくための、記憶部511(図33)の記憶領域の一部である。
認識生成部515は、ステップS715からステップS716に進み、注目SOMに接続している上位SOMがあるかどうかを判定する。
ステップS716において、注目SOMに接続している上位SOMがないと判定された場合、すなわち、注目SOMが、例えば、最上位階層のSOMである場合、ステップS717をスキップして、ステップS718に進む。
また、ステップS716において、注目SOMに接続している上位SOMがあると判定された場合、ステップS717に進み、認識生成部515は、注目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))を求める。
さらに、ステップS717では、認識生成部515は、その観測尤度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として、後述するステップS719の処理が行われることにより、その上位SOMの予測バッファに記憶される。
また、ステップS717において、時刻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を1から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の移動履歴バッファに記憶されている。
認識生成部515は、以上のように、ステップS717において、時刻t+1のノードX(t+1)の状態確率P(X(t+1))を更新した後、ステップS718に進み、ステップS707と同様に、状態確率P(Xs(j)(t+1))に応じて、M個のパーティクルのリサンプリングを行って、ステップS719に進む。
ステップS719では、認識生成部515は、リサンプリング後のパーティクルに基づいて、投票を行い、すなわち、注目SOMの各ノード(状態)に割り当てられているパーティクルの数をカウントし、パーティクルの数が最も多いノードを、注目SOMの予測ノードとして求める。さらに、ステップS719では、認識生成部515は、その予測ノードを表すノード情報を、注目SOMの予測バッファに供給して記憶させ、ステップS720に進む。
ステップS720では、認識生成部515は、注目SOMが最下位階層のSOM(最下位SOM)であるかどうかを判定する。
ステップS720において、注目SOMが最下位SOMでないと判定された場合、ステップS721をスキップして、ステップS722に進む。
また、ステップS720において、注目SOMが最下位SOMであると判定された場合、ステップS721に進み、認識生成部515は、直前のステップS719で求められた注目SOMである最下位SOMの予測ノードを、その注目SOMの予測バッファを参照することにより認識する。さらに、ステップS721では、認識生成部515は、注目SOMの予測ノードから、そのプロトタイプとしての時系列データを生成し、そのうちの、シフト量shift(最下位SOMに入力するフレーム単位のSOM入力データを抽出するときに用いるウインドウのシフト量shift)分の最新のデータを、予測時系列データとして出力して、ステップS722に進む。
ステップS722では、認識生成部515は、階層SOMのすべてのSOMを対象として、ステップS713ないしS721の処理を行ったどうかを判定する。
ステップS722において、階層SOMのすべてのSOMを、まだ、対象としていないと判定された場合、すなわち、階層SOMのSOMの中で、まだ、注目SOMに選択していないSOMがある場合、ステップS712に戻り、認識生成部515は、まだ、注目SOMとしていないSOMの中で、上位階層から下位階層に向かう順番で最初に見つかるSOMを、注目SOMとして新たに選択して、以下、同様の処理を繰り返す。
また、ステップS722において、階層SOMのすべてのSOMを対象としたと判定された場合、すなわち、階層SOMのSOMの中で、注目SOMに選択していないSOMがない場合、ステップS723に進み、認識生成部515は、データ抽出部512から、入力時系列データの新たなサンプル値が供給されたかどうかを判定する。ステップS723において、データ抽出部512から認識生成部515に、入力時系列データの新たなサンプル値が供給されたと判定された場合、ステップS702に戻り、認識生成部515は、データ抽出部512から供給された入力時系列データの新たなサンプル値を、最下位階層のSOMの入力バッファに供給して記憶させ、以下、同様の処理を繰り返す。
また、ステップS723において、データ抽出部512から認識生成部515に、入力時系列データの新たなサンプル値が供給されていないと判定された場合、認識生成部515は、処理を終了する。
9章.Bayesian Network的定式化
階層SOMを一般的なグラフィカルモデルとして捉え、時間方向の発展を無視すると、階層SOMは、polytree(1つの親に複数の子が存在する)と呼ばれるグラフに属すると考えられる。
また、階層SOMにおいて、時間方向に時刻t-1の状態(ノード)が、時刻tの状態の原因となる(親)ノードであると捉えると、階層SOMは、無限に続くpolytreeと捉えることができる。
ここで、Polytree構成をしたBayesian Network(ベイジアンネットワーク)については、Pearl ”Probabilistic Reasoning in Intelligent System: Network of Plausible Inference”, 1988に、解法が示されており、その解法を適用した階層SOMの認識生成処理の概要を、図53及び図54に示す。
Polytree構成をしたBayesian Networkを、階層SOMに厳密に適用すると、時間方向を遡って全ての状態を更新しなくてはならないが、時間方向に関しては1時刻前から現時刻までの順方向の確率伝搬だけを実装し、時間を遡る確率伝搬は用いないという近似を行うことにより、確率伝搬が、図49の認識生成処理で説明したと類似した階層を上がる認識の確率伝搬、次の時刻の予測の確率伝搬、及び下位階層を推定する(下位階層の次の時刻の勝者ノードを予測する)確率伝搬の3種類となって、認識生成処理を、比較的容易に行うことができる。
図55は、Polytree構成をしたBayesian Networkを適用した階層SOMを示している。
階層SOMを構成するSOMのうちの、あるSOMであるSOM(X)に注目し、その注目SOM(X)に接続している下位階層のM個のSOMをのうちのm番目、SOM(Y#m)と表すとともに、注目SOMに接続している上位階層のN個のSOMのうちのn番目を、SOM(U#n)と表すこととする。
ここで、図55では、注目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)は子である。
図56は、Polytree構成をしたBayesian Networkを適用した階層SOMを構成するSOM(のノード)どうしでやりとりされるメッセージを示している。
図56において、太線の矢印は、因果の方向(原因から結果の方向)を示している。因果の方向と同一方向に伝搬するメッセージは、πメッセージと呼ばれ、因果の方向と逆方向に伝搬するメッセージは、λメッセージと呼ばれる。
また、図56において、時刻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)が、式(16)にしたがって求められる。
Figure 2007299365
・・・(16)
ここで、式(16)において、λ(X)は、注目SOM(X)のλ値と呼ばれる値で、式(17)にしたがい、下位SOM(Y#m)それぞれから注目SOM(X)へのメッセージλY#m(X)すべてを乗算することにより求められる。
Figure 2007299365
・・・(17)
さらに、式(16)において、π(X)は、注目SOM(X)のπ値と呼ばれる値で、式(18)にしたがい、上位SOM(U#n)それぞれから注目SOM(X)へのメッセージπX(U#m)を用いて求められる。
Figure 2007299365
・・・(18)
また、式(16)において、aは、状態確率BEL(X)を正規化するための正規化項であり、式(19)に示すように、注目SOM(X)のすべてのノードの状態確率BEL(X)の総和が1になるように定められる。
Figure 2007299365
・・・(19)
さらに、ベイジアンネットワークの解法を適用した認識生成処理では、注目SOM(X)から、上位SOM(U#n)へのλメッセージであるメッセージλX(U#n)が、式(20)にしたがって求められるとともに、注目SOM(X)から、下位SOM(Y#m)へのπメッセージであるメッセージπX(Y#m)が、式(21)にしたがって求められる。
Figure 2007299365
・・・(20)
Figure 2007299365
・・・(21)
10章.λ・πメッセージによる実装
図57は、図33の認識生成部515が行う、PolytreeのBayesian Networkによる解法を適用した階層SOMの認識生成処理の処理手順(アルゴリズム4)を示している。
ステップS801において、認識生成部515は、記憶部511に記憶された階層SOMを構成するSOMそれぞれの各ノードのλメッセージとπメッセージとを一様分布で初期化して、ステップS802に進む。
ステップS802では、認識生成部515は、図41のステップS541と同様に、データ抽出部512から供給される複数種類の入力時系列データそれぞれの時刻tのサンプル値S(t)を、記憶部511に記憶された階層SOMの最下位階層のSOMのうちの、対応するSOMの入力バッファに供給して記憶させ、ステップS803に進む。
ステップS803では、認識生成部515は、階層SOMにおいて、まだ、注目SOMとしていないSOMの中で、下位階層から上位階層に向かう順番で最初に見つかるSOMを、注目SOMとして選択して、ステップS804に進む。
ステップS804では、認識生成部515は、時刻tを、シフト量shiftで除算した剰余Mod(t,shift)が0であるかどうか、すなわち、注目SOMの入力バッファに、シフト量shift分の新たなSOM入力データが記憶されたかどうかを判定する。
ステップS804において、注目SOMの入力バッファに、シフト量shift分の新たなSOM入力データが、まだ記憶されていないと判定された場合、ステップS805をスキップして、ステップS806に進む。
また、ステップS804において、注目SOMの入力バッファに、シフト量shift分の新たなSOM入力データが記憶されたと判定された場合、ステップS805に進み、認識生成部515は、注目SOMの入力バッファに記憶されているSOM入力データにウインドウをかけることにより、ウインドウ長分の最新のSOM入力データを、現在時刻tのSOM入力データとして抽出する。
さらに、ステップS805では、認識生成部515は、現在時刻tのSOM入力データを、時刻tにおいて、注目SOMで観測された観測値I(t)として、その観測値I(t)が、注目SOMのN個のノードX(t)それぞれで観測される観測尤度P(I(t)|X(t))を、式(22)にしたがい、注目SOMの各ノードのλ値(λ(X(t)))として求めて、ステップS806に進む。
Figure 2007299365
・・・(22)
ステップS806では、認識生成部515は、注目SOMの入力バッファに、シフト量shift分の新たなSOM入力データが、まだ記憶されておらず、かつ、注目SOMに接続している下位SOMがあるかどうかを判定する。
注目SOMの入力バッファに、シフト量shift分の新たなSOM入力データが、まだ記憶されておらず、かつ、注目SOMに接続している下位SOMがあるかどうかのステップS806の判定の結果が偽である場合、ステップS807をスキップして、ステップS808に進む。
また、ステップS806において、注目SOMの入力バッファに、シフト量shift分の新たなSOM入力データが、まだ記憶されておらず、かつ、注目SOMに接続している下位SOMがあると判定された場合、ステップS807に進み、認識生成部515は、式(23)にしたがい、注目SOMに接続している下位SOM(Y#m(t))のノードから注目SOMのノードX(t)へのλメッセージ(λY#m(t)(X(t)))すべてを乗算することにより、注目SOMのλ値(λ(X(t)))を求め、ステップS808に進む。
Figure 2007299365
・・・(23)
ステップS808では、認識生成部515は、注目SOMの入力バッファに、シフト量shift分の新たなSOM入力データが、まだ記憶されておらず、かつ、注目SOMに接続している下位SOMがない場合には、注目SOMのλ値(λ(X(t)))を、式(24)にしたがって1として、ステップS809に進む。
Figure 2007299365
・・・(24)
ステップS809では、認識生成部515は、注目SOMに接続している上位SOM(U)の階層用のウインドウ長分のλ値(λ(X(t)))の時系列を用い、その上位SOM(U)へのλメッセージ(λX(U))を、式(25)にしたがって求め、ステップS810に進む。
Figure 2007299365
・・・(25)
ここで、式(25)において、bは正規化項であり、Wは、注目SOMに接続している上位SOM(U)の階層用のウインドウ長である。
ステップS810では、認識生成部515は、注目SOMの最新のλ値(λ(X(t)))を、注目SOMに接続している上位SOM(U)の階層用のウインドウ長分だけ、記憶部511に記憶させ、他の古いλ値(λ(X(t)))を削除して、ステップS811に進む。
ステップS811では、認識生成部515は、階層SOMのすべてのSOMを対象として、ステップS803ないしS810の処理を行ったどうかを判定する。
ステップS811において、階層SOMのすべてのSOMを、まだ、対象としていないと判定された場合、すなわち、階層SOMのSOMの中で、まだ、注目SOMに選択していないSOMがある場合、ステップS803に戻り、認識生成部515は、まだ、注目SOMとしていないSOMの中で、下位階層から上位階層に向かう順番で最初に見つかるSOMを、注目SOMとして新たに選択して、以下、同様の処理を繰り返す。
また、ステップS811において、階層SOMのすべてのSOMを対象としたと判定された場合、すなわち、階層SOMのSOMの中で、注目SOMに選択していないSOMがない場合、認識生成部515は、階層SOMのすべてのSOMについて、注目SOMに選択したことをリセットして、ステップS812に進み、階層SOMにおいて、まだ、注目SOMとしていないSOMの中で、上位階層から下位階層に向かう順番で最初に見つかるSOMを、注目SOMとして選択して、ステップS813に進む。
ステップS813では、認識生成部515は、現在時刻tを、シフト量shiftで除算した剰余Mod(t,shift)が0であるかどうか、すなわち、注目SOMの入力バッファに、シフト量shift分の新たなSOM入力データが記憶されたかどうかを判定する。
ステップS813において、注目SOMの入力バッファに、シフト量shift分の新たなSOM入力データが、まだ記憶されていないと判定された場合、ステップS812に戻り、新たな注目SOMが選択され、以下、同様の処理が繰り返される。
また、ステップS813において、注目SOMの入力バッファに、シフト量shift分の新たなSOM入力データが記憶されたと判定された場合、ステップS814に進み、認識生成部515は、注目SOMにおいて、時刻tから、次の時刻t+1に、勝者ノードがノードX(t)からノードX(t+1)に遷移する遷移確率P(X(t+1)|X(t))を、注目SOMの結合重みwijを用いて求める。
さらに、ステップS814では、認識生成部515は、遷移確率P(X(t+1)|X(t))と、1時刻前の時刻t-1の注目SOMから、時刻tの注目SOMへのπメッセージ(πX(t-1)(X(t)))とを用い、式(26)にしたがって、1時刻前の時刻t-1の注目SOMからのπ値であるπ1を求める。
Figure 2007299365
・・・(26)
その後、ステップS814からステップS815に進み、認識生成部515は、注目SOMが接続している上位SOMがあり、時刻tが、その上位SOMにおいて勝者ノードが求められるタイミング(発火タイミング)である場合には、上位SOMのノードUにおいて、注目SOMの、勝者ノードとなっているノード(を表すノード情報としての位置データ(x,y))が観測される観測尤度P(X|U)と、上位SOMのノードU(t)から、注目SOMのノードX(t)へのπメッセージ(πU(t)(X(t)))とを用い、式(27)にしたがって、上位SOMのノードU(t)からのπ値であるπ2を求める。
Figure 2007299365
・・・(27)
そして、ステップS815からステップS816に進み、認識生成部515は、式(26)で求めたπ1と、式(27)で求めたπ2とを用いて、式(28)にしたがい、注目SOMのπ値(π(X(t)))を求めて、ステップS817に進む。
Figure 2007299365
・・・(28)
ステップS817では、認識生成部515は、式(22)ないし式(24)のうちのいずれかで求められたλ値(λ(X(t)))と、式(28)で求められたπ値(π(X(t)))とを用いて、式(29)にしたがい、時刻tの注目SOMのノードの状態確率BELを求めて、ステップS818に進む。
Figure 2007299365
・・・(29)
ステップS818では、認識生成部515は、式(30)にしたがい、式(29)で求めた時刻tの注目SOMのノードの状態確率BELを、時刻tの注目SOMのノードX(t)から、時刻t+1の注目SOMのノードX(t+1)へのπメッセージ(πX(t)(X(t+1)))として、ステップS819に進む。
Figure 2007299365
・・・(30)
ステップS819では、認識生成部515は、式(31)にしたがい、正規化項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)))を求めて、ステップS820に進む。
Figure 2007299365
・・・(31)
ステップS820では、認識生成部515は、注目SOMが最下位階層のSOM(最下位SOM)である場合には、遷移確率P(X(t+1)|X(t))と、時刻tの注目SOMのノードX(t)から、時刻t+1の注目SOMのノードX(t+1)へのπメッセージ(πX(t)(X(t+1)))とを用い、式(32)にしたがって、状態予測確率Pprevを求めて、ステップS821に進む。
Figure 2007299365
・・・(32)
ステップS821では、認識生成部515は、最下位SOMである注目SOMのノードのうちの、状態予測確率Pprevが最も高いノードを、予測ノードとして求めて、ステップS822に進む。
ステップS822では、認識生成部515は、注目SOMの予測ノードから、そのプロトタイプとしての時系列データを生成し、そのうちの、シフト量shift(最下位SOMに入力するフレーム単位のSOM入力データを抽出するときに用いるウインドウのシフト量shift)分の最新のデータを、予測時系列データとして出力して、ステップS823に進む。
ステップS823では、認識生成部515は、階層SOMのすべてのSOMを対象として、ステップS813ないしS822の処理を行ったどうかを判定する。
ステップS823において、階層SOMのすべてのSOMを、まだ、対象としていないと判定された場合、すなわち、階層SOMのSOMの中で、まだ、注目SOMに選択していないSOMがある場合、ステップS812に戻り、認識生成部515は、まだ、注目SOMとしていないSOMの中で、上位階層から下位階層に向かう順番で最初に見つかるSOMを、注目SOMとして選択して、以下、同様の処理を繰り返す。
また、ステップS823において、階層SOMのすべてのSOMを対象としたと判定された場合、すなわち、階層SOMのSOMの中で、注目SOMに選択していないSOMがない場合、ステップS824に進み、認識生成部515は、データ抽出部512から、入力時系列データの新たなサンプル値が供給されたかどうかを判定する。ステップS824において、データ抽出部512から認識生成部515に、入力時系列データの新たなサンプル値が供給されたと判定された場合、ステップS802に戻り、認識生成部515は、データ抽出部512から供給された入力時系列データの新たなサンプル値を、最下位階層のSOMの入力バッファに供給して記憶させ、以下、同様の処理を繰り返す。
また、ステップS824において、データ抽出部512から認識生成部515に、入力時系列データの新たなサンプル値が供給されていないと判定された場合、認識生成部515は、処理を終了する。
以上のように、階層SOMによれば、大規模な学習を、実用的に行うことができる。また、様々なセンサ・制御信号をモーダル毎に複数の自己組織マップ(SOM)を階層的に使い学習することにより、各種信号を局所的に計算するだけで結果として統合した予測と再構成を行う事ができる。
すなわち、複数のSOMが階層構造を構成するように接続された階層SOMを構成するSOMの自己組織化学習を、そのSOMの下位階層のSOMである下位SOMの勝者ノードを表すノード情報の時系列を、SOM入力データとして用いて行うことにより、階層SOMの最下位階層のSOMごとに、時系列データを割り当てて学習するとともに、その最下位階層のSOMどうしを、いわば関係付ける学習を、上位階層のSOMで行うことができ、その結果、例えば、多種類(多数)の時系列データや、多次元のベクトルの時系列データの学習といった大規模な学習を、実用的なレベルで行うことができる。
さらに、階層SOMの最下位階層のSOMごとに、時系列データを割り当てて学習が行われるとともに、その最下位階層のSOMどうしを関係付ける学習が、上位階層のSOMで行われる結果、例えば、最下位階層のSOMのそれぞれに入力される時系列データすべてを、いわば総合的に考慮して、次の時刻の時系列データを予測した予測時系列データを生成することができる。
なお、階層SOMを構成する新SOMのノードには、時系列パターンモデル21(図7)ではなく、従来のSOMと同様に、重みベクトルを割り当てることができる。
この場合、勝者ノードは、式(33)にしたがって求められる。
Figure 2007299365
・・・(33)
ここで、式(33)において、xは、フレーム単位のSOM入力データの各サンプル値をコンポーネントとするベクトル(入力ベクトル)を表す。また、miは、新SOMのi番目のノード#iに割り当てられている重みベクトルを表す。
式(33)によれば、入力ベクトルxの終点と、重みベクトルmiの終点とのユークリッド距離|x-mi|が最も短いノード番号#cのノード#cが、勝者ノードとして求められる。
また、ノードに重みベクトルが割り当てられた新SOMの自己組織化学習において、各ノード#iの重みベクトルの更新は、式(34)にしたがって行われる。
Figure 2007299365
・・・(34)
ここで、式(34)において、mi(t+1)は、ノード#iの更新後(時刻t+1)の重みベクトルを表し、mi(t)は、ノード#iの更新前(時刻t)の重みベクトルを表す。また、x(t)は、時刻tの入力ベクトルを表す。さらに、hci(t)は、式(35)で表される関数である。
Figure 2007299365
・・・(35)
ここで、式(35)において、α(t)は、時刻tの経過(学習回数)にしたがって単調減少する学習係数である。また、σ(t)は、時刻tの経過にしたがって単調減少する係数で、カーネルの幅と呼ばれる。さらに、rcは、時刻tの入力ベクトルx(t)に対する勝者ノードの位置を表す位置ベクトルであり、riは、更新対象の重みベクトルmi(t)が割り当てられているノード#iの位置を表す位置ベクトルである。
次に、上述した一連の処理は、専用のハードウェアにより行うこともできるし、ソフトウェアにより行うこともできる。一連の処理をソフトウェアによって行う場合には、そのソフトウェアを構成するプログラムが、汎用のコンピュータやマイクロコンピュータ(コントローラ)等にインストールされる。
そこで、図58は、上述した一連の処理を実行するプログラムがインストールされるコンピュータの一実施の形態の構成例を示している。
プログラムは、コンピュータに内蔵されている記録媒体としてのハードディスク10105やROM10103に予め記録しておくことができる。
あるいはまた、プログラムは、フレキシブルディスク、CD-ROM(Compact Disc Read Only Memory),MO(Magneto Optical)ディスク,DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブル記録媒体10111に、一時的あるいは永続的に格納(記録)しておくことができる。このようなリムーバブル記録媒体10111は、いわゆるパッケージソフトウエアとして提供することができる。
なお、プログラムは、上述したようなリムーバブル記録媒体10111からコンピュータにインストールする他、ダウンロードサイトから、ディジタル衛星放送用の人工衛星を介して、コンピュータに無線で転送したり、LAN(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送し、コンピュータでは、そのようにして転送されてくるプログラムを、通信部10108で受信し、内蔵するハードディスク10105にインストールすることができる。
コンピュータは、CPU(Central Processing Unit)10102を内蔵している。CPU10102には、バス10101を介して、入出力インタフェース10110が接続されており、CPU10102は、入出力インタフェース10110を介して、ユーザによって、キーボードや、マウス、マイク等で構成される入力部10107が操作等されることにより指令が入力されると、それにしたがって、ROM(Read Only Memory)10103に格納されているプログラムを実行する。あるいは、また、CPU10102は、ハードディスク10105に格納されているプログラム、衛星若しくはネットワークから転送され、通信部10108で受信されてハードディスク10105にインストールされたプログラム、またはドライブ10109に装着されたリムーバブル記録媒体10111から読み出されてハードディスク10105にインストールされたプログラムを、RAM(Random Access Memory)10104にロードして実行する。これにより、CPU10102は、上述したフローチャートにしたがった処理、あるいは上述したブロック図の構成により行われる処理を行う。そして、CPU10102は、その処理結果を、必要に応じて、例えば、入出力インタフェース10110を介して、LCD(Liquid Crystal Display)やスピーカ等で構成される出力部10106から出力、あるいは、通信部10108から送信、さらには、ハードディスク10105に記録等させる。
なお、本明細書において、コンピュータに各種の処理を行わせるためのプログラムを記述する処理ステップは、必ずしもフローチャートとして記載された順序に沿って時系列に処理する必要はなく、並列的あるいは個別に実行される処理(例えば、並列処理あるいはオブジェクトによる処理)も含むものである。
また、プログラムは、1のコンピュータにより処理されるものであっても良いし、複数のコンピュータによって分散処理されるものであっても良い。さらに、プログラムは、遠方のコンピュータに転送されて実行されるものであっても良い。
ここで、モータデータには、モータを駆動するためのデータの他、広く、外部に働きかける装置、または刺激を与える装置を駆動するためのデータを含む。外部に働きかける装置または刺激を与える装置としては、モータの他、光を発することにより画像を表示するディスプレイや、音声を出力するスピーカ等があり、従って、モータデータには、モータを駆動するためのデータの他、ディスプレイに表示させる画像に対応する画像データや、スピーカから出力する音声に対応する音声データ等が含まれる。
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
また、本発明は、ロボットの他、例えば、テレビジョン受像機やHDレコーダなどのAV(Audio Visual)機器、コンピュータ、その他の装置における、ユーザインタフェース(ヒューマンインタフェース)に適用することが可能である。
制御対象と、順モデルおよび逆モデルとを説明するための図である。 制御対象としての想定ロボットと、その想定ロボットの順モデルとを示す図である。 制御対象としてのロボットのアームと、そのアームの逆モデルを利用したアーム制御器とを示す図である。 線形システムを用いたモデル化を説明するための図である。 教師あり学習の一例を説明するための図である。 時系列パターン記憶ネットワークの第1の構成例を示す図である。 ノードの構成例を示す図である。 時系列パターン記憶ネットワークの第2の構成例を示す図である。 時系列パターン記憶ネットワークの第3の構成例を示す図である。 時系列パターン記憶ネットワークを用いた処理を行うデータ処理装置の構成例を示すブロック図である。 学習部4の構成例を示すブロック図である。 学習処理部32の構成例を示すブロック図である。 更新重みを決定する決定方法を説明するための図である。 学習データ記憶部22に記憶させる学習データを更新する更新方法を説明するための図である。 学習処理を説明するフローチャートである。 認識部3の構成例を示すブロック図である。 認識処理を説明するフローチャートである。 生成部6の構成例を示すブロック図である。 生成処理を説明するフローチャートである。 入出力関係モデルの構成例を示す図である。 入出力関係モデルを用いた処理を行うデータ処理装置の構成例を示すブロック図である。 入出力関係モデルの学習を説明するフローチャートである。 結合重み行列を示す図である。 入出力関係モデルを用いて、出力データまたは制御データを予測する処理を説明するフローチャートである。 実時間性が要求されるタスクを行うロボットの構成例を示すブロック図である。 入出力関係モデルM11を示す図である。 データ抽出部213の処理を説明するための図である。 読み出し部332の処理を説明するための図である。 入出力関係モデルM11の学習を説明するためのフローチャートである。 入出力関係モデルM11を用いて時系列データを生成する認識生成処理を説明するフローチャートである。 予測SOMモデルを示す図である。 新SOMを示す図である。 階層SOMを利用したロボットの構成例を示すブロック図である。 階層SOMを模式的に示す図である。 実験に用いた階層SOMを模式的を示す図である。 フレーム単位のSOM入力データの抽出の方法を説明する図である。 階層SOMを構成するSOMのうちの、最下位階層のSOMの学習の学習手順を説明する図である。 新SOMの自己組織化学習の結果の例を示す図である。 階層SOMを構成するSOMのうちの、最下位階層より上位階層の上位SOMの学習の学習手順を説明する図である。 認識生成処理を行う階層SOMを説明する図である。 認識生成処理の第1の処理手順(アルゴリズム1)を説明する図である。 認識生成処理の実験の結果を説明する図である。 階層SOMを模式的に示す図である。 Single Layerの確率伝搬を説明する図である。 時系列階層SOMモデルを説明する図である。 Loopy BP of 2 layer dynamic graph modelを説明する図である。 階層SOMの確率伝搬を説明する図である。 SOMの発火と確率分布を説明する図である。 認識生成処理の第2の処理手順(アルゴリズム2)を説明する図である。 Particle Filterの使い方を説明する図である。 Particle Filterの使い方を説明する図である。 認識生成処理の第3の処理手順(アルゴリズム3)を説明する図である。 Bayesian Networkの解法を適用した階層SOMを説明する図である。 Bayesian Networkの解法を適用した階層SOMを説明する図である。 Polytree構成をしたBayesian Networkを適用した階層SOMを説明する図である。 Polytree構成をしたBayesian Networkを適用した階層SOMを構成するSOMどうしでやりとりされるメッセージを説明する図である。 認識生成処理の第4の処理手順(アルゴリズム4)を説明する図である。 本発明を適用したコンピュータの一実施の形態の構成例を示すブロック図である。
符号の説明
1 信号入力部, 2 特徴抽出部, 3 認識部, 4 学習部, 5 記憶部, 6 生成部, 21 時系列パターンモデル, 22 学習データ記憶部, 31 時系列データ記憶部, 32 学習処理部, 41 スコア計算部, 42 勝者ノード決定部, 43 重み決定部, 44 学習データ更新部, 45 モデル学習部, 51 スコア計算部, 52 勝者ノード決定部, 53 出力部, 61 生成ノード決定部, 62 時系列決定部, 63 出力部, 211 記憶部, 212 学習部, 213 認識生成部, 221 学習処理部, 222 結合重み更新部, 231 スコア計算部, 232 勝者ノード決定部, 233 生成ノード決定部, 234 時系列生成部, 301 データ処理装置, 302 センサ, 303 モータ駆動部, 311 記憶部, 312 データ抽出部, 313 学習処理部, 314 写像学習部, 315 データ抽出部, 316 認識部, 317 写像部, 318 生成部, 321 認識学習処理部, 322 生成学習処理部, 331 データバッファ,
332 読み出し部, 333 結合重み更新部, 341 スコア計算部, 342
勝者ノード決定部, 351 生成ノード決定部, 361 時系列生成部, 501
データ処理装置, 511 記憶部, 512 データ抽出部, 513 学習部, 514 データ抽出部, 515 認識生成部, 10101 バス, 10102 CPU, 10103 ROM, 10104 RAM, 10105 ハードディスク, 10106 出力部, 10107 入力部, 10108 通信部, 10109 ドライブ, 10110 入出力インタフェース, 10111 リムーバブル記録媒体

Claims (24)

  1. 時系列データを処理するデータ処理装置において、
    複数のSOM(Self-Organization Map)が階層構造を構成するように接続された階層SOMを構成するSOMの自己組織的な学習を、そのSOMの下位階層のSOMである下位SOMの勝者ノードを表すノード情報の時系列を、SOMへの入力であるSOM入力データとして用いて行う学習手段を備える
    データ処理装置。
  2. 前記学習手段は、
    前記階層SOMを構成するSOMの自己組織的な学習を、SOM入力データを用いて行うとともに、所定のフレーム長のSOM入力データに対するSOMの勝者ノードと、次の時刻の前記フレーム長のSOM入力データに対するSOMの勝者ノードとの結合の度合いを表す結合重みを強めるように更新する予測学習を行い、
    かつ、前記階層SOMを構成する複数のSOMのうちの注目している注目SOMの自己組織的な学習と予測学習とを、前記注目SOMの下位階層のSOMである下位SOMの勝者ノードを表すノード情報の時系列をSOM入力データとして用いて行う
    請求項1に記載のデータ処理装置。
  3. 前記注目SOMには、複数の下位SOMが接続されており、
    前記学習手段は、前記注目SOMに接続されている複数の下位SOMそれぞれで得られる前記ノード情報を統合した時系列をSOM入力データとして用いて、注目SOMの自己組織的な学習と予測学習とを行う
    請求項2に記載のデータ処理装置。
  4. 自己組織的な学習と予測学習とが行われた前記階層SOMを用いて、ある時刻の時系列データの次の時刻の時系列データを予測した予測時系列データを生成する認識生成手段をさらに備える
    請求項2に記載のデータ処理装置。
  5. 前記認識生成手段は、
    下位階層から上位階層に向かう順序で、
    前記階層SOMの各SOMについて、勝者ノードとなるノードを求め、
    上位階層から下位階層に向かう順序で、
    前記階層SOMの、上位階層のSOMである上位SOMがないSOMについては、前記勝者ノードの前記結合重みに基づいて、次の時刻において勝者ノードとなると予測されるノードである予測ノードを求め、
    前記階層SOMの、上位SOMがあるSOMについては、前記勝者ノードの前記結合重みと、上位SOMの予測ノードとに基づいて、予測ノードを求め、
    前記階層SOMを構成する複数のSOMのうちの最下位階層のSOMの予測ノードを用いて、前記予測時系列データを生成する
    請求項4に記載のデータ処理装置。
  6. 前記認識生成手段は、
    下位階層から上位階層に向かう順序で、SOMにおいて、勝者ノードとなるノードを求め、前記勝者ノードを表すノード情報の時系列を、上位階層のSOMである上位SOMへのSOM入力データとし、
    上位階層から下位階層に向かう順序で、次の時刻において勝者ノードとなると予測されるSOMのノードである予測ノードを、そのSOMの上位SOMの予測ノードに基づいて求める
    請求項4に記載のデータ処理装置。
  7. 前記認識生成手段は、
    さらに、SOMにおいて勝者ノードが遷移する確率である遷移確率を、前記結合重みに基づいて求め、
    注目SOMの予測ノードを、注目SOMの前記遷移確率と、注目SOMの上位SOMの予測ノードとに基づいて求める
    請求項6に記載のデータ処理装置。
  8. 前記認識生成手段は、
    下位階層から上位階層に向かう順序で、
    前記階層SOMを構成するSOMのノードにおいてSOM入力データが観測される観測尤度を求め、
    前記観測尤度に基づいて、SOMのノードが勝者ノードである確率を表す、現在時刻の状態確率を求め、
    前記現在時刻の状態確率に基づいて、SOMの勝者ノードを求め、
    注目SOMの勝者ノードを表すノード情報の時系列を、その注目SOMの上位SOMへのSOM入力データとし、
    上位階層から下位階層に向かう順序で、
    注目SOMの遷移確率を、前記結合重みを用いて求め、
    注目SOMの遷移確率と、前記注目SOMの上位SOMの予測ノードとに基づいて、次の時刻の状態確率を求め、
    前記次の時刻の状態確率に基づいて、前記注目SOMの予測ノードを求め、
    前記階層SOMを構成する複数のSOMのうちの最下位階層のSOMの予測ノードを用いて、前記予測時系列データを生成する
    請求項7に記載のデータ処理装置。
  9. 前記認識生成手段は、前記階層SOMを構成するSOMに、パーティクルフィルタを適用して前記状態確率を求める
    請求項8に記載のデータ処理装置。
  10. 前記所定のフレーム長のSOM入力データは、上位階層のSOMで用いられるSOM入力データであるほど、長い時間分のデータである
    請求項2に記載のデータ処理装置。
  11. 前記認識生成手段は、前記階層SOMに対して、λメッセージ及びπメッセージを用いたベイジアンネットワークの解法を適用して、前記階層SOMを構成する複数のSOMのうちの最下位階層のSOMの予測ノードを求め、その予測ノードを用いて、前記予測時系列データを生成する
    請求項4に記載のデータ処理装置。
  12. 時系列データを処理するデータ処理方法において、
    複数のSOM(Self-Organization Map)が階層構造を構成するように接続された階層SOMを構成するSOMの自己組織的な学習を、そのSOMの下位階層のSOMである下位SOMの勝者ノードを表すノード情報の時系列を、SOMへの入力であるSOM入力データとして用いて行うステップ
    を含むデータ処理方法。
  13. 時系列データを処理するデータ処理を、コンピュータに実行させるプログラムにおいて、
    複数のSOM(Self-Organization Map)が階層構造を構成するように接続された階層SOMを構成するSOMの自己組織的な学習を、そのSOMの下位階層のSOMである下位SOMの勝者ノードを表すノード情報の時系列を、SOMへの入力であるSOM入力データとして用いて行うステップ
    を含むデータ処理を、コンピュータに実行させるプログラム。
  14. 時系列データを処理するデータ処理装置において、
    複数のSOM(Self-Organization Map)が階層構造を構成するように接続された階層SOMを記憶する記憶手段と、
    前記階層SOMを用いて、ある時刻の時系列データの次の時刻の時系列データを予測した予測時系列データを生成する認識生成手段と
    を備えるデータ処理装置。
  15. 前記記憶手段に記憶された階層SOMは、
    階層SOMを構成するSOMの自己組織的な学習を、SOMへの入力であるSOM入力データを用いて行うとともに、所定のフレーム長のSOM入力データに対するSOMの勝者ノードと、次の時刻の前記フレーム長のSOM入力データに対するSOMの勝者ノードとの結合の度合いを表す結合重みを強めるように更新する予測学習を行うことにより得られた階層SOMであって、
    かつ、階層SOMを構成する複数のSOMのうちの注目している注目SOMの自己組織的な学習と予測学習とを、前記注目SOMの下位階層のSOMである下位SOMの勝者ノードを表すノード情報の時系列をSOM入力データとして用いて行うことにより得られた階層SOMである
    請求項14に記載のデータ処理装置。
  16. 前記認識生成手段は、
    下位階層から上位階層に向かう順序で、
    前記階層SOMの各SOMについて、勝者ノードとなるノードを求め、
    上位階層から下位階層に向かう順序で、
    前記階層SOMの、上位階層のSOMである上位SOMがないSOMについては、前記勝者ノードの前記結合重みに基づいて、次の時刻において勝者ノードとなると予測されるノードである予測ノードを求め、
    前記階層SOMの、上位SOMがあるSOMについては、前記勝者ノードの前記結合重みと、上位SOMの予測ノードとに基づいて、予測ノードを求め、
    前記階層SOMを構成する複数のSOMのうちの最下位階層のSOMの予測ノードを用いて、前記予測時系列データを生成する
    請求項15に記載のデータ処理装置。
  17. 前記認識生成手段は、
    下位階層から上位階層に向かう順序で、SOMにおいて、勝者ノードとなるノードを求め、前記勝者ノードを表すノード情報の時系列を、上位階層のSOMである上位SOMへのSOM入力データとし、
    上位階層から下位階層に向かう順序で、次の時刻において勝者ノードとなると予測されるSOMのノードである予測ノードを、そのSOMの上位SOMの予測ノードに基づいて求める
    請求項15に記載のデータ処理装置。
  18. 前記認識生成手段は、
    さらに、SOMにおいて勝者ノードが遷移する確率である遷移確率を、前記結合重みに基づいて求め、
    注目SOMの予測ノードを、注目SOMの前記遷移確率と、注目SOMの上位SOMの予測ノードとに基づいて求める
    請求項17に記載のデータ処理装置。
  19. 前記認識生成手段は、
    下位階層から上位階層に向かう順序で、
    前記階層SOMを構成するSOMのノードにおいてSOM入力データが観測される観測尤度を求め、
    前記観測尤度に基づいて、SOMのノードが勝者ノードである確率を表す、現在時刻の状態確率を求め、
    前記現在時刻の状態確率に基づいて、SOMの勝者ノードを求め、
    注目SOMの勝者ノードを表すノード情報の時系列を、その注目SOMの上位SOMへのSOM入力データとし、
    上位階層から下位階層に向かう順序で、
    注目SOMの遷移確率を、前記結合重みを用いて求め、
    注目SOMの遷移確率と、前記注目SOMの上位SOMの予測ノードとに基づいて、次の時刻の状態確率を求め、
    前記次の時刻の状態確率に基づいて、前記注目SOMの予測ノードを求め、
    前記階層SOMを構成する複数のSOMのうちの最下位階層のSOMの予測ノードを用いて、前記予測時系列データを生成する
    請求項18に記載のデータ処理装置。
  20. 前記認識生成手段は、前記階層SOMを構成するSOMに、パーティクルフィルタを適用して前記状態確率を求める
    請求項19に記載のデータ処理装置。
  21. 前記所定のフレーム長のSOM入力データは、上位階層のSOMで用いられるSOM入力データであるほど、長い時間分のデータである
    請求項15に記載のデータ処理装置。
  22. 前記認識生成手段は、前記階層SOMに対して、λメッセージ及びπメッセージを用いたベイジアンネットワークの解法を適用して、前記階層SOMを構成する複数のSOMのうちの最下位階層のSOMの予測ノードを求め、その予測ノードを用いて、前記予測時系列データを生成する
    請求項15に記載のデータ処理装置。
  23. 時系列データを処理するデータ処理方法において、
    複数のSOM(Self-Organization Map)が階層構造を構成するように接続された階層SOMを用いて、ある時刻の時系列データの次の時刻の時系列データを予測した予測時系列データを生成するステップ
    を含むデータ処理方法。
  24. 時系列データを処理するデータ処理を、コンピュータに実行させるプログラムにおいて、
    複数のSOM(Self-Organization Map)が階層構造を構成するように接続された階層SOMを用いて、ある時刻の時系列データの次の時刻の時系列データを予測した予測時系列データを生成するステップ
    を含むデータ処理を、コンピュータに実行させるプログラム。
JP2006215946A 2006-04-06 2006-08-08 データ処理装置、データ処理方法、及びプログラム Expired - Fee Related JP4169063B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006215946A JP4169063B2 (ja) 2006-04-06 2006-08-08 データ処理装置、データ処理方法、及びプログラム
US11/697,238 US7783585B2 (en) 2006-04-06 2007-04-05 Data processing device, data processing method, and program

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2006105552 2006-04-06
JP2006215946A JP4169063B2 (ja) 2006-04-06 2006-08-08 データ処理装置、データ処理方法、及びプログラム

Publications (2)

Publication Number Publication Date
JP2007299365A true JP2007299365A (ja) 2007-11-15
JP4169063B2 JP4169063B2 (ja) 2008-10-22

Family

ID=38620655

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006215946A Expired - Fee Related JP4169063B2 (ja) 2006-04-06 2006-08-08 データ処理装置、データ処理方法、及びプログラム

Country Status (2)

Country Link
US (1) US7783585B2 (ja)
JP (1) JP4169063B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009265713A (ja) * 2008-04-22 2009-11-12 Toyota Central R&D Labs Inc モデル構築装置およびプログラム
JP2015210747A (ja) * 2014-04-30 2015-11-24 国立研究開発法人情報通信研究機構 階層型ニューラルネットワークの学習システム及び方法
WO2018211914A1 (ja) * 2017-05-16 2018-11-22 富士通株式会社 推定プログラム、推定方法および推定装置
WO2023084640A1 (ja) * 2021-11-10 2023-05-19 日本電信電話株式会社 情報変遷予測装置、方法およびプログラム

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8055593B2 (en) * 2006-11-02 2011-11-08 Siemens Medical Solutions Usa, Inc. Learning classifiers for multiple-label data analysis
US8027939B2 (en) * 2006-11-02 2011-09-27 Siemens Medical Solutions Usa, Inc. Automatic labeler assignment using a model built from multi-labeler data
US7979088B2 (en) * 2007-08-13 2011-07-12 International Business Machines Corporation Water friend or foe system for global vessel identification and tracking
US8712987B2 (en) * 2007-08-13 2014-04-29 International Business Machines Corporation Emergent information database management system
US9076314B2 (en) * 2007-08-13 2015-07-07 International Business Machines Corporation Emergent information pattern driven sensor networks
US7756593B2 (en) * 2007-08-14 2010-07-13 International Business Machines Corporation Anomaly anti-pattern
US7710259B2 (en) * 2007-08-14 2010-05-04 International Business Machines Corporation Emergent information database management system
US7823082B2 (en) * 2007-08-14 2010-10-26 International Business Machines Corporation Intelligence driven icons and cursors
US7710260B2 (en) * 2007-08-14 2010-05-04 International Business Machines Corporation Pattern driven effectuator system
US7992094B2 (en) * 2007-08-14 2011-08-02 International Business Machines Corporation Intelligence driven icons and cursors
US7710258B2 (en) * 2007-08-14 2010-05-04 International Business Machines Corporation Emergent information pattern driven sensor networks
US7889100B2 (en) * 2007-08-14 2011-02-15 International Business Machines Corporation Water friend or foe system for global vessel identification and tracking
US8086547B2 (en) * 2008-06-16 2011-12-27 International Business Machines Corporation Data pattern generation, modification and management utilizing a semantic network-based graphical interface
US7864037B2 (en) * 2008-06-16 2011-01-04 International Business Machines Corporation Pattern-driven communication architecture
JP5633734B2 (ja) * 2009-11-11 2014-12-03 ソニー株式会社 情報処理装置、情報処理方法、及び、プログラム
JP2012003494A (ja) * 2010-06-16 2012-01-05 Sony Corp 情報処理装置、情報処理方法及びプログラム
CA2806532A1 (en) * 2010-07-30 2012-02-02 Exxonmobil Upstream Research Company Systems and methods for predicting well performance
US8775341B1 (en) 2010-10-26 2014-07-08 Michael Lamport Commons Intelligent control with hierarchical stacked neural networks
US9015093B1 (en) 2010-10-26 2015-04-21 Michael Lamport Commons Intelligent control with hierarchical stacked neural networks
US9542662B2 (en) * 2010-12-30 2017-01-10 Sap Se Lineage information for streaming event data and event lineage graph structures for visualization
AU2011371570B2 (en) * 2011-06-24 2015-08-13 Halliburton Energy Services, Inc. Apparatus and methods of analysis of pipe and annulus in a wellbore
US11568331B2 (en) 2011-09-26 2023-01-31 Open Text Corporation Methods and systems for providing automated predictive analysis
WO2013110348A1 (de) * 2012-01-27 2013-08-01 Siemens Medical Instruments Pte. Ltd. Anpassung einer klassifikation eines audiosignals in einem hörgerät
US9081854B2 (en) * 2012-07-06 2015-07-14 Hewlett-Packard Development Company, L.P. Multilabel classification by a hierarchy
US20140250376A1 (en) * 2013-03-04 2014-09-04 Microsoft Corporation Summarizing and navigating data using counting grids
US9491186B2 (en) * 2013-06-19 2016-11-08 Verizon Patent And Licensing Inc. Method and apparatus for providing hierarchical pattern recognition of communication network data
TWI506461B (zh) * 2013-07-16 2015-11-01 Univ Nat Taiwan Science Tech 人體動作的辨識方法與裝置
US10833954B2 (en) * 2014-11-19 2020-11-10 Battelle Memorial Institute Extracting dependencies between network assets using deep learning
JP2017091431A (ja) * 2015-11-17 2017-05-25 ソニー株式会社 情報処理装置、情報処理方法およびプログラム
JP6374466B2 (ja) * 2016-11-11 2018-08-15 ファナック株式会社 センサインタフェース装置、測定情報通信システム、測定情報通信方法、及び測定情報通信プログラム
US11003988B2 (en) * 2016-11-23 2021-05-11 General Electric Company Hardware system design improvement using deep learning algorithms
JP6968681B2 (ja) * 2016-12-21 2021-11-17 ホーチキ株式会社 火災監視システム
WO2018149530A1 (en) * 2017-02-17 2018-08-23 NEC Laboratories Europe GmbH Method for operating a network
CN108228804B (zh) * 2017-12-29 2020-12-11 北京奇元科技有限公司 一种更新资源文件标签权重值的方法及装置
JP7167141B2 (ja) * 2018-05-25 2022-11-08 川崎重工業株式会社 ロボットシステム及び追加学習方法
US20190378017A1 (en) * 2018-06-12 2019-12-12 Sun-Yuan Kung System and method for implementing a neural network
US20200019840A1 (en) * 2018-07-13 2020-01-16 Arizona Board Of Regents On Behalf Of Arizona State University Systems and methods for sequential event prediction with noise-contrastive estimation for marked temporal point process
EP3753684B1 (en) * 2019-06-21 2022-08-10 Robert Bosch GmbH Method and system for robot manipulation planning
US11545379B2 (en) * 2020-07-31 2023-01-03 Nanya Technology Corporation System and method for controlling semiconductor manufacturing equipment
US11645253B1 (en) * 2021-12-01 2023-05-09 International Business Machines Corporation Managing a new version of an integration flow during a rolling update
US20230230005A1 (en) * 2022-01-17 2023-07-20 Vmware, Inc. Discount predictions for cloud services

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1063634A (ja) * 1996-04-05 1998-03-06 Nec Corp 時系列予測・分類のための方法及び装置
US7152051B1 (en) * 2002-09-30 2006-12-19 Michael Lamport Commons Intelligent control with hierarchical stacked neural networks
JP4639784B2 (ja) 2004-12-06 2011-02-23 ソニー株式会社 学習装置および学習方法、並びにプログラム

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009265713A (ja) * 2008-04-22 2009-11-12 Toyota Central R&D Labs Inc モデル構築装置およびプログラム
JP2015210747A (ja) * 2014-04-30 2015-11-24 国立研究開発法人情報通信研究機構 階層型ニューラルネットワークの学習システム及び方法
WO2018211914A1 (ja) * 2017-05-16 2018-11-22 富士通株式会社 推定プログラム、推定方法および推定装置
WO2023084640A1 (ja) * 2021-11-10 2023-05-19 日本電信電話株式会社 情報変遷予測装置、方法およびプログラム

Also Published As

Publication number Publication date
US20070250461A1 (en) 2007-10-25
JP4169063B2 (ja) 2008-10-22
US7783585B2 (en) 2010-08-24

Similar Documents

Publication Publication Date Title
JP4169063B2 (ja) データ処理装置、データ処理方法、及びプログラム
JP4201012B2 (ja) データ処理装置、データ処理方法、およびプログラム
JP4639784B2 (ja) 学習装置および学習方法、並びにプログラム
JP4803212B2 (ja) データ処理装置、データ処理方法、及びプログラム
Silva et al. Open issues in evolutionary robotics
JP4710931B2 (ja) 学習装置、学習方法、およびプログラム
US7672920B2 (en) Apparatus and method for embedding recurrent neural networks into the nodes of a self-organizing map
JP2006285899A (ja) 学習装置および学習方法、生成装置および生成方法、並びにプログラム
KR20070100160A (ko) 학습 장치, 학습 방법, 및 프로그램
JP4710933B2 (ja) 学習装置、学習方法、およびプログラム
KR20190018278A (ko) 뉴럴 네트워크를 이용한 인식 방법 및 장치 및 상기 뉴럴 네트워크를 트레이닝하는 방법 및 장치
JP4169038B2 (ja) 情報処理装置および情報処理方法、並びにプログラム
JP2007265345A (ja) 情報処理装置および方法、学習装置および方法、並びにプログラム
JP2010266975A (ja) 学習装置、学習方法、データ生成装置、データ生成方法、及び、プログラム
JP2010067033A (ja) データ処理装置、データ処理方法、及び、プログラム
JP2007280057A (ja) データ処理装置、データ処理方法、およびプログラム
JP2007280007A (ja) データ処理装置、データ処理方法、およびプログラム
JP2009053782A (ja) データ処理装置、データ処理方法、及びプログラム
JP2007280009A (ja) データ処理装置、データ処理方法、およびプログラム
JP2009043122A (ja) データ処理装置、データ処理方法、及びプログラム
JP2008293259A (ja) データ処理装置、データ処理方法、及びプログラム
JP2007280056A (ja) データ処理装置、データ処理方法、およびプログラム
JP2007280008A (ja) データ処理装置、データ処理方法、およびプログラム
WO2023166573A1 (ja) 学習装置、制御装置、学習方法及び記憶媒体
Bouteiller Managing the World Complexity: From Linear Regression to Deep Learning

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080410

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080606

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080715

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080728

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110815

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110815

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110815

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120815

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120815

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130815

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees