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

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

Info

Publication number
JP2007280053A
JP2007280053A JP2006105544A JP2006105544A JP2007280053A JP 2007280053 A JP2007280053 A JP 2007280053A JP 2006105544 A JP2006105544 A JP 2006105544A JP 2006105544 A JP2006105544 A JP 2006105544A JP 2007280053 A JP2007280053 A JP 2007280053A
Authority
JP
Japan
Prior art keywords
data
node
time
output
input
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2006105544A
Other languages
English (en)
Other versions
JP4201012B2 (ja
Inventor
Kazumi Aoyama
一美 青山
Kotaro Sabe
浩太郎 佐部
Hideki Shimomura
秀樹 下村
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 JP2006105544A priority Critical patent/JP4201012B2/ja
Priority to US11/732,644 priority patent/US7725412B2/en
Publication of JP2007280053A publication Critical patent/JP2007280053A/ja
Application granted granted Critical
Publication of JP4201012B2 publication Critical patent/JP4201012B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2477Temporal data queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/213Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods
    • G06F18/2137Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods based on criteria of topology preservation, e.g. multidimensional scaling or self-organising maps
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2218/00Aspects of pattern recognition specially adapted for signal processing
    • G06F2218/22Source localisation; Inverse modelling

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Evolutionary Computation (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Fuzzy Systems (AREA)
  • Mathematical Physics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Databases & Information Systems (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

【課題】処理の負担を軽減する。
【解決手段】SOMの一種である入力ネットワークnet11は、空間的な配置構造が与えられた複数のノードから構成され、各ノードは、時系列パターンを表現する時系列パターンモデルを有している。時系列データである入力データの学習時において、時刻tのフレームの入力データに対する勝者ノードNtの決定後、次のフレームである、時刻t+1のフレームの入力データに対する勝者ノードNt+1の決定は、その時刻t+1のフレームの入力データの直前の時刻tのフレームの入力データに対する勝者ノードNtとの距離が所定の距離以内のノードだけを対象にして行われる。本発明は、例えば、ロボットなどに適用できる。
【選択図】図31

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 2007280053
Figure 2007280053
ここで、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の出力層のノードにおいて、重みベクトルと、学習データとしてのベクトルとの距離が最も近いノードが、その学習データとしてのベクトルに最も適合する勝者ノードに決定され、その勝者ノードの重みベクトルが、学習データとしてのベクトルに近づくように更新される。さらに、勝者ノードの近傍のノードの重みベクトルも、学習データに少しだけ近づくように更新される。その結果、学習が進むにつれ、重みベクトルが類似したノードどうしは近くなるように、類似しないノードは遠くなるように、出力層の上に配置されていく。従って、出力層には、あたかも学習データに含まれるパターンに応じた地図が構成されていくことになる。このように、学習が進むにつれて、類似するノード(重みベクトルが類似するノード)どうしが近い位置に集まり、学習データに含まれるパターンに応じた地図が構成されていく学習は、自己組織的または自己組織化(self-organization)と呼ばれる。
ここで、K-平均法では、学習データに最も距離の近いベクトルのみが更新されることから、その更新方法はWTA(winner-take-all)と呼ばれる。一方、SOMによる学習では、学習データに最も距離の近いノード(勝者ノード)の重みベクトルだけでなく、勝者ノードの近傍のノードの重みベクトルも更新されるから、その更新方法はSMA(soft-max adaptation)と呼ばれる。WTAで学習を行うと学習結果が局所解に陥りやすいのに対して、SMAで学習を行うと、局所解に陥る問題を改善することができることが知られている。
なお、SOMに関しては、例えば、非特許文献1に記載されている。
T.コホネン、「自己組織化マップ」、シュプリンガー・フェアラーク東京
ところで、ロボットの実世界での振る舞い(行動)をより自然にするため、ロボット自身が自分の行動を通して認知行動の構造を獲得するための枠組みの研究が行われている。ここで、認知行動とは、例えば、ロボット等が、外部の状態(ロボット自身の状態も含む)を認知(認識)し、その認知結果に応じて行動をとることを意味する。
ロボットに認知行動を行わせるには、例えば、外部の状態を検知するセンサが出力するセンサデータに対して、ロボットを駆動するモータに供給されるモータデータとして、適切なモータデータを求める必要がある。
一般に、センサが出力するセンサデータと、モータに供給されるモータデータとは、いずれも連続的な時系列データである。また、実世界での認知行動を行うロボットでは、センサデータやモータデータとして、次元数の大きなデータを扱う必要がある。また、かかるロボットで扱うセンサデータやモータデータの振る舞いは複雑であり、線形システムでモデル化することは困難である。
そこで、センサデータやモータデータのような時系列データのパターンである時系列パターンを表現する時系列パターンモデルを有する複数のノードから構成される時系列パターン記憶ネットワークによって、多次元のベクトルの時系列であるセンサデータやモータデータなどの時系列データを自己組織的に学習し、さらに、入力データとしての時系列データを学習した時系列パターン記憶ネットワークと、出力データとしての時系列データを学習した時系列パターン記憶ネットワークとのノードどうしを結合し、入力データに基づき、外部の状態を認知し、その認知結果に応じてロボットがとるべき行動に対応する出力データを生成する方法について、本件出願人は、先に提案している(例えば、特願2004-353382号)。
ここで、時系列パターン記憶ネットワークは、複数のノードから構成され、自己組織的な学習を行うことができる点で、従来のSOMと共通し、従って、SOMの範疇に含まれるので、SOMの一種であるということができる。但し、時系列パターン記憶ネットワークは、ノードが時系列パターンモデルを有し、その時系列パターンモデルによって記憶構造の中に、時系列パターンを保持することができる点で、従来のSOMとは異なる。
ところで、先に提案した方法では、入力データや出力データとしての時系列データを用いて、時系列パターン記憶ネットワークの学習が行われるが、その学習は、以下のように行われていた。
即ち、時系列パターン記憶ネットワークの学習は、時系列パターン記憶ネットワークのノードが、時系列データである入力データや出力データに適合する度合いを表すスコアを求め、そのスコアが最も良いノードを、時系列データに最も適合するノードである勝者ノードに決定し、その勝者ノードに基づいて、時系列パターン記憶ネットワークを、自己組織的に更新することにより行われていた。
従って、時系列パターン記憶ネットワークの学習にあたっては、勝者ノードを決定するために、時系列パターン記憶ネットワークを構成するノードすべてについて、スコアを計算する必要があった。このため、ノードの数が増加すると、その分、スコアの計算の処理の負担も増加することになっていた。
本発明は、このような状況に鑑みてなされたものであり、処理の負担を軽減することができるようにするものである。
本発明の一側面のデータ処理装置は、時系列データの処理を行うデータ処理装置であり、時系列データから、所定の時間単位の時系列データを抽出するデータ抽出手段と、空間的な配置構造が与えられた複数のノードから構成されるSOM(Self-Organization Map)のノードが、所定の時間単位の時系列データに適合する度合いを表すスコアを求め、前記スコアが最も良いノードを、所定の時間単位の時系列データに最も適合するノードである勝者ノードに決定する処理手段とを備え、前記処理手段が、前記SOMにおいて、1の所定の時間単位の時系列データの直前の所定の時間単位の時系列データに対する勝者ノードとの距離が所定の距離以内のノードである距離制限ノードについて、前記1の所定の時間単位の時系列データに対するスコアを求め、前記距離制限ノードのうちの、前記スコアが最も良いノードを、前記1の所定の時間単位の時系列データに対する勝者ノードに決定する。
本発明の一側面のデータ処理方法、またはプログラムは、時系列データの処理を行うデータ処理装置のデータ処理方法、または時系列データの処理を行うデータ処理を、コンピュータに実行させるプログラムであり、時系列データから、所定の時間単位の時系列データを抽出するデータ抽出ステップと、空間的な配置構造が与えられた複数のノードから構成されるSOM(Self-Organization Map)のノードが、所定の時間単位の時系列データに適合する度合いを表すスコアを求め、前記スコアが最も良いノードを、所定の時間単位の時系列データに最も適合するノードである勝者ノードに決定する処理ステップとを含み、前記処理ステップにおいて、前記SOMにおいて、1の所定の時間単位の時系列データの直前の所定の時間単位の時系列データに対する勝者ノードとの距離が所定の距離以内のノードである距離制限ノードについて、前記1の所定の時間単位の時系列データに対するスコアを求め、前記距離制限ノードのうちの、前記スコアが最も良いノードを、前記1の所定の時間単位の時系列データに対する勝者ノードに決定する。
本発明の一側面においては、時系列データから、所定の時間単位の時系列データが抽出される。そして、空間的な配置構造が与えられた複数のノードから構成されるSOMのノードが、所定の時間単位の時系列データに適合する度合いを表すスコアが求められ、前記スコアが最も良いノードが、所定の時間単位の時系列データに最も適合するノードである勝者ノードに決定される。この場合において、前記SOMにおいて、1の所定の時間単位の時系列データの直前の所定の時間単位の時系列データに対する勝者ノードとの距離が所定の距離以内のノードである距離制限ノードについて、前記1の所定の時間単位の時系列データに対するスコアが求められ、前記距離制限ノードのうちの、前記スコアが最も良いノードが、前記1の所定の時間単位の時系列データに対する勝者ノードに決定される。
本発明の一側面によれば、処理の負担を軽減することができる
以下に本発明の実施の形態を説明するが、本発明の構成要件と、明細書又は図面に記載の実施の形態との対応関係を例示すると、次のようになる。この記載は、本発明をサポートする実施の形態が、明細書又は図面に記載されていることを確認するためのものである。従って、明細書又は図面中には記載されているが、本発明の構成要件に対応する実施の形態として、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その構成要件に対応するものではないことを意味するものではない。逆に、実施の形態が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
本発明の一側面のデータ処理装置は、
時系列データの処理を行うデータ処理装置(例えば、図32のデータ処理装置301)であり、
時系列データから、所定の時間単位の時系列データを抽出するデータ抽出手段(例えば、図32のデータ抽出部312や315など)と、
空間的な配置構造が与えられた複数のノードから構成されるSOM(Self-Organization Map)(例えば、図25の時系列パターン記憶ネットワークnet11やnet12)のノードが、所定の時間単位の時系列データに適合する度合いを表すスコアを求め、前記スコアが最も良いノードを、所定の時間単位の時系列データに最も適合するノードである勝者ノードに決定する処理手段(例えば、図32の認識学習処理部1321や、認識部316)と
を備え、
前記処理手段は、
前記SOMにおいて、1の所定の時間単位の時系列データの直前の所定の時間単位の時系列データに対する勝者ノードとの距離が所定の距離以内のノードである距離制限ノードについて、前記1の所定の時間単位の時系列データに対するスコアを求め、
前記距離制限ノードのうちの、前記スコアが最も良いノードを、前記1の所定の時間単位の時系列データに対する勝者ノードに決定する。
本発明の一側面のデータ処理方法、またはプログラムは、
時系列データの処理を行うデータ処理装置のデータ処理方法、または時系列データの処理を行うデータ処理を、コンピュータに実行させるプログラムであり、
時系列データから、所定の時間単位の時系列データを抽出するデータ抽出ステップ(例えば、図33のステップS341や、図35のステップS381)と、
空間的な配置構造が与えられた複数のノードから構成されるSOM(Self-Organization Map)(例えば、図25の時系列パターン記憶ネットワークnet11やnet12)のノードが、所定の時間単位の時系列データに適合する度合いを表すスコアを求め、前記スコアが最も良いノードを、所定の時間単位の時系列データに最も適合するノードである勝者ノードに決定する処理ステップ(例えば、図33のステップS342や、図35のステップS382)と
を含み、
前記処理ステップにおいて、
前記SOMにおいて、1の所定の時間単位の時系列データの直前の所定の時間単位の時系列データに対する勝者ノードとの距離が所定の距離以内のノードである距離制限ノードについて、前記1の所定の時間単位の時系列データに対するスコアを求め、
前記距離制限ノードのうちの、前記スコアが最も良いノードを、前記1の所定の時間単位の時系列データに対する勝者ノードに決定する。
以下、図面を参照して、本発明の実施の形態について説明するが、その前段階の準備として、時系列パターン記憶ネットワークについて説明する。
図6は、時系列パターン記憶ネットワークの例を模式的に示している。
時系列パターン記憶ネットワークは、時系列パターンを表現する時系列パターンモデルを有する複数のノードから構成されるネットワークで、前述したように、SOMの一種である。時系列パターン記憶ネットワークは、そのネットワーク全体で、ノードの数だけの(クラス分けを行う)時系列パターンを記憶することができる。
図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は、時系列パターン記憶ネットワークを用いて、各種の処理を行うデータ処理装置の構成例を示している。
信号入力部1には、後述する学習処理や認識処理の対象となるデータ(以下、処理対象データという)が入力される。ここで、処理対象データは、例えば、音や画像、LED(Light Emitting Diode)の明るさ、モータの回転角度や回転角速度などの観測値(外部から観測することができる値(信号))である。また、処理対象データは、例えば、図9のデータ処理装置が適用されるシステムの入力を受け付ける入力デバイス(センサ)が出力するデータであっても良いし、何らかの出力を行う出力デバイスに対して与えられるデータであっても良い。
即ち、図9のデータ処理装置が、例えば、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の時系列パターン記憶ネットワークに基づき、そこに供給される制御データが表す時系列パターンの時系列データを生成して出力する。
次に、図10は、図9の学習部4の構成例を示している。
学習部4は、時系列データ記憶部31と学習処理部32とから構成される。
時系列データ記憶部31には、特徴抽出部2から、(1区間の)新たな時系列データとしての特徴量の系列が供給される。時系列データ記憶部31は、特徴抽出部2からの新たな時系列データを、一時的に(学習処理部32による新たな時系列データを用いた処理が終了するまで)記憶する。
学習処理部32は、記憶部5に記憶された時系列パターン記憶ネットワークを、時系列データ記憶部31に記憶された新たな時系列データ(の観測値)に基づいて、自己組織的に更新する。
次に、図11は、図10の学習処理部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(図10)に記憶された新たな時系列データを用いて更新されるが、ノードの更新重みとは、そのノードが有する時系列パターンモデル21の更新によって、その時系列パターンモデル21が受ける新たな時系列データの影響の度合いを表す。従って、ノードの更新重みが0であれば、そのノードが有する時系列パターンモデル21は、新たな時系列データの影響を受けない(更新されない)。
学習データ更新部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の更新は、更新重みに基づいて行われるということもできる。
次に、図12は、図11の重み決定部43において更新重みを決定する決定方法を示している。
重み決定部43は、例えば、図12に示すような、勝者ノードとのパターン間距離dの増加に対して更新重みαが減少する関係を表す曲線(以下、距離/重み曲線という)にしたがって、ノードに対する更新重み(ノードの更新重み)αを決定する。距離/重み曲線によれば、勝者ノードとのパターン間距離dが近いノードほど、大きな更新重みαが決定され、パターン間距離dが遠いノードほど、小さな更新重みαが決定される。
図12の距離/重み曲線において、横軸(左から右方向)は、更新重みαを示しており、縦軸(上から下方向)は、パターン間距離dを示している。
図12では、縦軸に沿って、時系列パターン記憶ネットワークを構成する6つのノードN1乃至N6が、各ノードNiと勝者ノードとのパターン間距離dに対応する位置(縦軸の位置)に記載されている。
図12では、時系列パターン記憶ネットワークを構成する6つのノードN1乃至N6が、その順で、勝者ノードとのパターン間距離dが近くなっている。時系列パターン記憶ネットワークを構成する6つのノードN1乃至N6のうち、勝者ノードとのパターン間距離dが最も近いノード、即ち、勝者ノードとのパターン間距離dが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となる。
次に、更新重みαとパターン間距離dとの関係を表す、例えば、図12に示したような距離/重み曲線は、例えば、式(3)によって与えられる。
Figure 2007280053
ここで、式(3)において、定数Gは、勝者ノードの更新重みを表す定数であり、γは、減衰係数で、0<γ<1の範囲の定数である。また、変数Δは、時系列パターン記憶ネットワークを更新する更新方法として、前述したSMAを採用した場合の、勝者ノードの近傍のノード(勝者ノードとの距離が近いノード)の更新重みαを調整するための変数である。
上述したように、勝者ノードとなっているノードのパターン間距離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(図11)に記憶された新たな時系列データの影響を強く受けるように行われる。一方、勝者ノード以外のノード(が有する時系列パターンモデル21)の更新は、学習の開始時は、比較的広い範囲のノード(勝者ノードとのパターン間距離dが小のノードから、ある程度大のノードまで)に亘って、新たな時系列データの影響を受けるように行われる。そして、学習が進行するにつれ、勝者ノード以外のノードの更新は、徐々に狭い範囲のノードについてのみ、新たな時系列データの影響を受けるように行われる。
図11の重み決定部43は、以上のようにして、時系列パターン記憶ネットワークの各ノードの更新重みαを決定し、学習データ更新部44では、各ノードが有する学習データ記憶部22に記憶される学習データが、そのノードの更新重みαに基づいて更新される。
次に、図13を参照して、ノードが有する学習データ記憶部22に記憶される学習データを更新する更新方法について説明する。
いま、あるノードNiが有する学習データ記憶部22には、学習データが既に記憶されており、ノードNiの時系列パターンモデル21は、学習データ記憶部22に既に記憶されている学習データを用いて学習が行われたものであるとする。
学習データ更新部44は、上述したように、ノードNiが有する学習データ記憶部22に既に記憶されている学習データ(以下、適宜、旧学習データという)と、時系列データ記憶部31(図11)に記憶された新たな時系列データとを、重み決定部43からのノードNiの更新重みαにしたがって混合し、その混合結果を、新たな学習データとして、学習データ記憶部22に記憶させることで、その学習データ記憶部22の記憶内容を、新たな学習データに更新する。
即ち、学習データ更新部44は、旧学習データに対して、新たな時系列データを追加することで、旧学習データと新たな時系列データとを混合した新たな学習データとするが、旧学習データに対する新たな時系列データの追加(旧学習データと新たな時系列データとの混合)は、ノードNiの更新重みαに対応する比にしたがって行われる。
ここで、ノードNiの時系列パターンモデル21(図7)の更新は、新たな学習データを用いた学習によって行われるため、新たな時系列データと旧学習データとを混合する比率を変えることによって、更新により時系列パターンモデル21が受ける新たな時系列データの影響の度合い(強さ)を変えることができる。
ノードNiにおいて、新たな時系列データと旧学習データとを混合する比率としては、ノードNiの更新重みαに対応した値が採用され、例えば、更新重みαが大であるほど、新たな時系列データの比率が大となる(旧学習データの比率が小となる)ような値とされる。
具体的には、ノードNiの学習データ記憶部22には、一定の数の時系列データ(学習データ)が記憶されるものとし、その一定の数をHとする。この場合、ノードNiの時系列パターンモデル21の学習は、常に、H個の学習データ(時系列データ)を用いて行われる。
学習データ記憶部22に、常に、一定の数Hの学習データが記憶される場合、新たな時系列データと旧学習データとの混合によって得られる新たな学習データの個数は、H個である必要があり、そのような、新たな時系列データと旧学習データとの混合を、ノードNiの更新重みαに対応した比率で行う方法としては、新たな時系列データと旧学習データとを、比率α:H-αで混合する方法がある。
新たな時系列データと旧学習データとを、比率α:H-αで混合する具体的な方法としては、図13に示すように、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個の時系列データだけが、学習データとして保持されることになり、その学習データに占める新たな時系列データの割合(比率)は、更新重みαによって調整されることになる。
次に、図14のフローチャートを参照して、図9のデータ処理装置で行われる、時系列パターン記憶ネットワークを学習する学習処理について説明する。
まず最初に、ステップS1において、学習部4(図10)の学習処理部32は、記憶部5に記憶された時系列パターン記憶ネットワークのパラメータ、即ち、時系列パターン記憶ネットワークの各ノードが有する時系列パターンモデル21(図7)としての、例えばHMMのパラメータを初期化する初期化処理を行う。この初期化処理により、HMMのパラメータ(状態遷移確率と出力確率密度関数)として、適切な初期値が与えられる。なお、初期化処理において、HMMのパラメータにおいて、どのように初期値を与えるかは、特に限定されるものではない。
その後、ステップS2において、1個の処理対象データ、即ち、例えば、1の音声区間の音声データが、信号入力部1に入力されると、信号入力部1は、その処理対象データを、特徴抽出部2に供給する。特徴抽出部2は、処理対象データから特徴量を抽出し、その特徴量の時系列データ(1個の新たな時系列データ)を、学習部4に供給する。
学習部4(図10)は、特徴抽出部2からの新たな時系列データを、時系列データ記憶部31に一時記憶させ、以下、ステップS3乃至S7において、記憶部5に記憶された時系列パターン記憶ネットワークを、時系列データ記憶部31に記憶された新たな時系列データ(の観測値)に基づいて、自己組織的に更新(学習)する。
即ち、学習部4の学習処理部32(図11)では、ステップS3において、スコア計算部41が、時系列データ記憶部31に記憶された新たな時系列データを読み出し、記憶部5に記憶された時系列パターン記憶ネットワークを構成する各ノードについて、そのノードが、新たな時系列データに適合する度合いを表すスコアを求める。
具体的には、ノードが有する時系列パターンモデル21(図7)が、例えばHMMである場合には、そのHMMから、新たな時系列データが観測される対数尤度が、スコアとして求められる。ここで、対数尤度の計算方法としては、例えば、ビタビアルゴリズム(Viterbi algorithm)を採用することができる。
スコア計算部41は、時系列パターン記憶ネットワークが有するすべてのノードについて、新たな時系列データに対するスコアを計算すると、その各ノードについてのスコアを、勝者ノード決定部42に供給する。
勝者ノード決定部42は、ステップS4において、時系列パターン記憶ネットワークを構成するノードのうちの、スコア計算部41からのスコアが最も高いノードを求め、そのノードを勝者ノードに決定する。そして、勝者ノード決定部42は、勝者ノードを表す情報としてのノードラベルを、重み決定部43に供給する。
重み決定部43は、ステップS5において、勝者ノード決定部42からのノードラベルが表す勝者ノードを、いわば基準として、時系列パターン記憶ネットワークを構成する各ノードの更新重みを決定する。
即ち、重み決定部43は、図12で説明したように、時系列パターン記憶ネットワークの更新(学習)が進むにつれ、パターン間距離dの変化に対する更新重みαの変化が急峻になっていく、式(3)で表される距離/重み曲線にしたがって、時系列パターン記憶ネットワークの各ノードの更新重みαを決定し、学習データ更新部44に供給する。
学習データ更新部44は、ステップS6において、時系列パターン記憶ネットワークの各ノードが有する学習データ記憶部22(図7)に記憶された学習データを、重み決定部43からの、対応するノードの更新重みにしたがって更新する。即ち、学習データ更新部44は、図13で説明したように、時系列データ記憶部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に入力されるのを待って、以下、同様の処理が繰り返される。
図14の学習処理によれば、1個の新たな時系列データが得られると、その新たな時系列データに対して、時系列パターン記憶ネットワークを構成するノードの中から、勝者ノードが決定される(ステップS4)。さらに、その勝者ノードを基準として、時系列パターン記憶ネットワークを構成する各ノードの更新重みが決定される(ステップS5)。そして、更新重みに基づいて、時系列パターン記憶ネットワークを構成する各ノードが有する時系列パターンモデル21(図7)のパラメータが更新される。
即ち、図14の学習処理では、1個の新たな時系列データに対して、時系列パターン記憶ネットワークを構成するノードのパラメータの更新が1回行われ、以下、同様に、新たな時系列データが得られるたびに、ノードのパラメータの更新が繰り返されることにより、自己組織的に学習が行われる。
そして、学習が十分に行われることにより、時系列パターン記憶ネットワークの各ノードが有する時系列パターンモデル21は、ある時系列パターンを学習(獲得)する。時系列パターン記憶ネットワーク全体において学習される時系列パターンの数(種類)は、時系列パターン記憶ネットワークが有するノードの数と一致するので、時系列パターン記憶ネットワークが有するノードの数が、例えば100である場合は、100種類の時系列パターンが学習されることになる。この時系列パターンに基づき、認識部3(図9)では、時系列データ(処理対象データ)を認識する認識処理を行うことが可能となり、生成部6(図9)では、時系列データを生成する生成処理を行うことが可能となる。
次に、図15は、図9の認識部3の構成例を示している。
認識部3には、図9で説明したように、特徴抽出部2から、(1個の)時系列データが供給され、この時系列データは、スコア計算部51に供給される。
スコア計算部51は、学習処理部32(図11)のスコア計算部41と同様に、記憶部5に記憶された時系列パターン記憶ネットワークを構成する各ノードについて、そのノードが、特徴抽出部2からの時系列データ(の観測値)に適合する度合いを表すスコアを求め、勝者ノード決定部52に供給する。
勝者ノード決定部52は、学習処理部32(図11)の勝者ノード決定部42と同様に、記憶部5に記憶された時系列パターン記憶ネットワークにおいて、特徴抽出部2からの時系列データに最も適合するノードを求め、そのノードを、勝者ノードとして決定する。
即ち、勝者ノード決定部52は、記憶部5に記憶された時系列パターン記憶ネットワークを構成するノードのうちの、スコア計算部51からのスコアが最も高いノードを勝者ノードとして決定する。そして、勝者ノード決定部52は、勝者ノードを表す情報としてのノードラベルを、出力部53に供給する。
出力部53は、勝者ノード決定部52からの勝者ノードを表すノードラベルを、特徴抽出部2からの特徴量の時系列データ、ひいては、その特徴量に対応する、信号入力部1に入力された処理対象データの認識結果として出力する。
なお、認識部3のスコア計算部51と、学習処理部32(図11)のスコア計算部41とは、いずれか一方のスコア計算部で兼用することが可能である。認識部3の勝者ノード決定部52と、学習処理部32(図11)の勝者ノード決定部42についても、同様である。
次に、図16のフローチャートを参照して、図9のデータ処理装置で行われる、時系列データを認識する認識処理について説明する。
ステップS21において、1個の処理対象データ、即ち、例えば、1の音声区間の音声データ(時系列データ)が、信号入力部1に入力されると、信号入力部1は、その処理対象データを、特徴抽出部2に供給する。特徴抽出部2は、処理対象データである時系列データから特徴量を抽出し、その特徴量の時系列データを、認識部3に供給する。
認識部3(図15)では、ステップ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"のうちのいずれのカテゴリの音声データであるかの認識結果を得ることができる。
次に、図17は、図9の生成部6の構成例を示している。
生成部6には、図9で説明したように、制御データが供給される。生成部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に記載されている。
次に、図18のフローチャートを参照して、図9のデータ処理装置で行われる、時系列データ(処理対象データ)を生成する生成処理について説明する。
ステップS31では、制御データが、生成部6(図17)に入力される。この制御データは、生成ノード決定部61に供給される。生成ノード決定部61は、記憶部5に記憶された時系列パターン記憶ネットワークを構成するノードのうちの、制御データとしてのノードラベルが表すノードを、生成ノードに決定し、その決定結果を、時系列生成部62に供給する。
時系列生成部62は、ステップS33において、生成ノード決定部61からの決定結果にしたがい、記憶部5に記憶された時系列パターン記憶ネットワークを構成するノードのうちの生成ノードが有する時系列パターンモデル21(のパラメータ)に基づいて、時系列データを生成し、出力部63に供給する。出力部63は、ステップS34において、時系列生成部62からの時系列データを、処理対象データに相当する時系列データに変換して出力する。
以上のような、時系列パターン記憶ネットワークを用いた生成処理によれば、その時系列パターン記憶ネットワークのノードの数に応じた(時系列パターンの)時系列データを生成することができる。
以上のように、時系列パターンモデル21を有する複数のノードから構成される時系列パターン記憶ネットワークを、時系列データに基づいて、自己組織的に更新するようにしたので、長さが一定の時系列データは勿論、長さが一定でない時系列データの教師なし学習、つまり、時系列データの、いわば自律的な学習を、容易に(実用的に)行うことができる。
即ち、時系列パターン記憶ネットワークの各ノードは、時系列パターンモデル21を有するから、時系列パターン記憶ネットワークの学習において、ノードの更新、つまり、そのノードが有する時系列パターンモデル21の更新は、他のノードの更新に影響しない。従って、時系列パターン記憶ネットワークを構成するノードが1つ増えても、時系列パターン記憶ネットワークの学習に要する計算量は、単純には、1のノードの更新に要する計算量だけ増えるだけであり、時系列パターン記憶ネットワークの規模、つまり、時系列パターン記憶ネットワークを構成するノードの数を大にしても、時系列パターン記憶ネットワークの学習に要する計算量が飛躍的に増加することはない。従って、大規模な時系列パターン記憶ネットワークであっても、容易に、自己組織的に学習することができる。
さらに、かかる時系列パターン記憶ネットワークの学習によれば、各ノードに、時系列データの統計的な特性を表す時系列パターンが記憶されるので、その時系列パターンを用いて、時系列データの認識や生成を、容易に行うことができる。
なお、学習処理、認識処理、生成処理は、例えば、音声データ、画像データ、モータを駆動する信号(モータデータ)、その他の任意の時系列データを対象として行うことができる。具体的には、例えば、図9のデータ処理装置を自律型のロボットなどの自律システムに適用し、そのロボットの視覚や、聴覚、触覚に相当するセンサが出力する信号や、ロボットの手や足に相当する部分を駆動するモータを制御する信号、合成音を生成する装置や目に相当する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として採用した場合と同様の手順で、各ノード(が有するニューラルネットワーク)のパラメータを更新することができる。
なお、スコアが、例えば、尤度である場合は、スコアが大きいほど、良いスコアとなり、スコアが、例えば、誤差や距離である場合には、スコアが小さいほど、良いスコアとなる。
次に、以上のような時系列パターン記憶ネットワークを適用した順モデルや逆モデルについて説明する。
図19は、時系列パターン記憶ネットワークが適用された順モデルまたは逆モデルとしての入出力関係モデルの構成例を模式的に示している。
図19において、入出力関係モデルは、2つの時系列パターン記憶ネットワークnetinおよびnetoutを有している。さらに、図19の入出力関係モデルは、時系列パターン記憶ネットワークnetinの各ノードNi(i=1,2,・・・,ノードの総数)と、時系列パターン記憶ネットワークnetoutの各ノードN'j(j=1,2,・・・,ノードの総数)とが結合されている。
ここで、図19において、時系列パターン記憶ネットワークnetinのノードNiと、時系列パターン記憶ネットワークnetoutのノードN'jとの間の矢印が、そのノードNiとN'jとの結合を表している。
なお、時系列パターン記憶ネットワークnetinおよびnetoutは、同一の数のノードと同一のリンク(リンクがない場合を含む)を有するものであっても良いし、異なる数のノードまたは異なるリンクを有するものであっても良い。また、時系列パターン記憶ネットワークnetinのノードNiが有する時系列パターンモデル21(図7)と、時系列パターン記憶ネットワークnetoutのノードが有する時系列パターンモデル21も、同一の時系列パターンモデルであっても良いし、異なる時系列パターンモデルであっても良い。
次に、図20は、入出力関係モデルを用いて、各種の処理を行うデータ処理装置の構成例を示している。
図20のデータ処理装置では、図19の入出力関係モデルによって制御対象を順モデルまたは逆モデルにモデル化し、さらに、その順モデルまたは逆モデルとしての入出力関係モデルを用いて、制御対象から得られる出力データや、制御対象に与えるべき制御データ(入力データ)を推定する。
即ち、図20において、データ処理装置は、記憶部211、学習部212、および認識生成部213から構成されている。
記憶部211は、例えば、図19に示した入出力関係モデルなどを記憶する。
学習部212には、モデル化しようとする制御対象に与えられる入力データ(の観測値)と、その入力データに対して制御対象から得られる出力データ(の観測値)とのセットである教示データが供給されるようになっている。ここで、教示データは、ある区間の時系列データ(ある時間に亘る時系列データ)である入力データと、その区間の時系列データに対して制御対象から得られる区間の他の時系列データである出力データとのセットである。
学習部212は、そこに供給される教示データを用い、制御対象の順モデルまたは逆モデルとしての入出力関係モデルの学習を行う。
即ち、学習部212は、学習処理部221と結合重み更新部222から構成される。
学習処理部221は、図11に示した学習処理部32と同様に構成され、学習部212に供給される教示データのうちの入力データに基づいて、記憶部211に記憶された入出力関係モデル(図19)における時系列パターン記憶ネットワークnetinを、図9のデータ処理装置における場合と同様に、自己組織的に更新する。また、学習処理部221は、学習部212に供給される教示データのうちの出力データ(教示データにおいて、入力データとセットになっている出力データ)に基づいて、記憶部211に記憶された入出力関係モデル(図19)における時系列パターン記憶ネットワークnetoutを、図9のデータ処理装置における場合と同様に、自己組織的に更新する。
さらに、学習処理部221は、時系列パターン記憶ネットワークnetinを更新するときに勝者ノードとなった、その時系列パターン記憶ネットワークnetinのノードNiのノードラベル(以下、適宜、入力ラベルという)と、時系列パターン記憶ネットワークnetoutを更新するときに勝者ノードとなった、その時系列パターン記憶ネットワークnetoutのノードN'jのノードラベル(以下、適宜、出力ラベルという)とをセットにしたラベルセットを、結合重み更新部222に供給する。
結合重み更新部222は、学習処理部221から供給されるラベルセットに基づき、記憶部211に記憶された入出力関係モデル(図19)における時系列パターン記憶ネットワーク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が適合する度合いであるスコアを、図15の認識部3のスコア計算部51における場合と同様にして計算し、勝者ノード決定部232に供給する。
即ち、スコア計算部231は、認識生成部213に供給されたデータが入力データである場合、その入力データに対して、記憶部211に記憶された入出力関係モデルを構成する時系列パターン記憶ネットワークnetinの各ノードNiのスコアを計算し、勝者ノード決定部232に供給する。また、スコア計算部231は、認識生成部213に供給されたデータが出力データである場合、その出力データに対して、記憶部211に記憶された入出力関係モデルを構成する時系列パターン記憶ネットワークnetoutの各ノードN'jのスコアを計算し、勝者ノード決定部232に供給する。
勝者ノード決定部232は、図15の認識部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に供給された入力データに対する出力データの推定値としての時系列データを、例えば、図17の生成部6の時系列生成部62における場合と同様にして生成する。
また、時系列生成部234は、生成ノード決定部233から入力ラベルが供給された場合、即ち、認識生成部213に供給されたデータが出力データである場合、記憶部211に記憶された入出力関係モデルを構成する時系列パターン記憶ネットワークnetinのノードのうちの、生成ノード決定部233からの入力ラベルが表すノードNiが有する時系列パターンモデル21に基づいて、認識生成部213に供給された出力データに対する制御データ(入力データ)の推定値としての時系列データを、例えば、図17の生成部6の時系列生成部62における場合と同様にして生成する。
次に、図21のフローチャートを参照して、図20のデータ処理装置で行われる、入出力関係モデルによる制御対象のモデル化、即ち、入出力関係モデルの学習について説明する。
ステップS101において、入力データと出力データとのセットである教示データが、図20のデータ処理装置に入力されると、その教示データは、学習部212の学習処理部221に供給される。
学習処理部221は、ステップS102において、教示データのうちの入力データに基づいて、記憶部211に記憶された入出力関係モデル(図19)における時系列パターン記憶ネットワークnetinを、自己組織的に更新し、ステップS103に進む。ステップS103では、学習処理部221は、教示データのうちの出力データに基づいて、記憶部211に記憶された入出力関係モデルにおける時系列パターン記憶ネットワークnetoutを、自己組織的に更新する。
そして、学習処理部221は、時系列パターン記憶ネットワークnetinを更新するときに勝者ノードとなった、その時系列パターン記憶ネットワークnetinのノードNiの入力ラベルと、時系列パターン記憶ネットワークnetoutを更新するときに勝者ノードとなった、その時系列パターン記憶ネットワークnetoutのノードN'jの出力ラベルとのセットであるラベルセットを、結合重み更新部222に供給する。
結合重み更新部222は、ステップS104において、学習処理部221から供給されるラベルセットに基づき、記憶部211に記憶された入出力関係モデル(図19)における時系列パターン記憶ネットワークnetinの各ノードと、時系列パターン記憶ネットワークnetoutの各ノードとの結合重みを更新して、ステップS101に戻り、次の教示データが入力されるのを待って、以下、同様の処理が繰り返される。
多数の教示データが入力され、ステップS101乃至S104の処理が繰り返されることにより、記憶部211に記憶された入出力関係モデルは、制御対象に対応する順モデルとなっていくとともに、逆モデルにもなっていく。
なお、ステップS102とS103の処理は、並列して行うこともできるし、図21の場合と逆順で行うこともできる。
次に、図22を参照して、結合重み更新部222(図20)が、図21のステップS104で行う結合重み(ノードどうしの結合関係)の更新について説明する。
なお、以下、適宜、入出力関係モデルにおいて、入力データが与えられる時系列パターン記憶ネットワーク、つまり、入力データを用いて学習が行われ、入力データの時系列パターンを表現する時系列パターンモデル21を有する複数のノードから構成される時系列パターン記憶ネットワーク(例えば、時系列パターン記憶ネットワークnetin)を、入力ネットワークといい、出力データが与えられる時系列パターン記憶ネットワーク、つまり、出力データを用いて学習が行われ、出力データの時系列パターンを表現する時系列パターンモデル21を有する複数のノードから構成される時系列パターン記憶ネットワーク(例えば、時系列パターン記憶ネットワークnetout)を、出力ネットワークという。
さらに、以下、適宜、入力ネットワークのノードを入力ノードといい、出力ネットワークのノードを出力ノードという。
また、以下では、入出力関係モデルを、入力データを与えて出力データを推定する順モデルとして用いる場合についての説明をし、入出力関係モデルを、出力データ(目標値)を与えて入力データ(制御データ)を推定する逆モデルとして用いる場合についての説明は適宜省略する。
図22は、図19に示したように、入力ネットワークnetinの入力ノードと、出力ネットワークnetoutの出力ノードとが結合している入出力関係モデルを示している。
即ち、図22左側では、入出力関係モデルは、入力ネットワークnetinと、出力ネットワークnetoutとを有し、入力ネットワークnetinの各入力ノードと、出力ネットワークnetoutの各出力ノードとが結合している。なお、図22では、入力ネットワークnetin、および出力ネットワークnetoutのいずれも、8つのノードで構成されている。
図22左側では、入力ネットワークnetinの各入力ノードは、出力ネットワークnetoutのすべての出力ノードと結合しており(従って、出力ネットワークnetoutの各出力ノードも、入力ネットワークnetinのすべての入力ノードと結合している)、入力ネットワークnetinの入力ノードと、出力ネットワークnetoutの出力ノードとのすべての組み合わせについて、結合重みwが存在する。
いま、ノードどうしが結合している2つの時系列パターン記憶ネットワークについて、そのうちの一方の時系列パターン記憶ネットワークのノードを各行に対応させるとともに、他方の時系列パターン記憶ネットワークのノードを各列に対応させ、第i行第j列の要素に、一方の時系列パターン記憶ネットワークのi番目のノードと、他方の時系列パターン記憶ネットワークのj番目のノードとの結合重みwを配置した行列を、結合重み行列MTXということとすると、結合重み更新部222(図20)は、この結合重み行列MTXの各要素である結合重みwを更新する。
図22右側は、図22左側の入出力関係モデルについての結合重み行列MTXを示している。
図22右側の結合重み行列MTXでは、入力ノードを各行に対応させるとともに、出力ノードを各列に対応させ、第i行第j列の要素に、i番目の入力ノードと、j番目の出力ノードとの結合重みwが配置されている。結合重み更新部222(図20)は、この結合重み行列MTXの各要素である結合重みwを更新する。
即ち、結合重み更新部222は、例えば、最初に電源がオンにされたとき等に、結合重み行列MTXにおけるすべての結合重みwを、例えば、初期値としての0に初期化する。そして、結合重み更新部222は、図20のデータ処理装置に対して、教示データ、つまり、入力データと出力データとのセットが入力され、これにより、入力ネットワークnetinにおける勝者ノードを表す入力ラベルと、出力ネットワークnetoutにおける勝者ノードを表す出力ラベルとのラベルセットが、学習処理部221から与えられるたびに、それらの勝者ノードどうしの結合を、いわば中心として、結合重みを更新する。
具体的には、結合重み更新部222は、例えば、式(4)にしたがって、結合重み行列MTXの結合重みwを更新する。
Figure 2007280053
ここで、βは、結合重みwを更新する程度の表す学習率であり、0から1の範囲で与えられる。学習率βを小さくするほど、結合重みwは、あまり変化しなくなり、学習率βが0である場合には、結合重みwは変化しない。一方、学習率βを大きくするほど、結合重みwも、大きく変化し、学習率βが1である場合には、結合重みwは、更新の基準値△wに更新される。
また、基準値△wは、例えば、式(5)で与えられる。
Figure 2007280053
ここで、dは、式(3)における場合と同様に、勝者ノードとのパターン間距離を表し、勝者ノードとなっているノードについては、d=0である。従って、勝者ノード(となっているノード)については、基準値△wは1となり、勝者ノードからのパターン間距離dが大のノードほど、基準値△wは0に近づく。
いま、学習処理部221(図20)から結合重み更新部222に供給される入力ラベルが表す入力ノード、即ち、入力ネットワークnetinにおける勝者ノードを、入力ノードNiと表すとともに、学習処理部221(図20)から結合重み更新部222に供給される出力ラベルが表す出力ノード、即ち、出力ネットワークnetoutにおける勝者ノードを、出力ノードN'jと表すと、結合重み更新部222(図20)は、式(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)の更新は、教示データとしての入力データと出力データとのセットが、図20のデータ処理装置に対して入力されるたびに行われる。
さらに、入出力関係モデルが有する入力ネットワークnetinの入力データに基づく学習、および出力ネットワークnetoutの出力データに基づく学習も、教示データとしての入力データと出力データとのセットが、図20のデータ処理装置に対して入力されるたびに行われる。
そして、入力ネットワーク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の学習が進み、さらに、結合重みの更新が進むと、その結合重みによって、入力データ(の時系列パターン)と出力データ(の時系列パターン)とを関係付ける順モデルまたは逆モデルとしての入出力関係モデルを獲得することができる。
そして、順モデルとしての入出力関係モデルによれば、ある入力データが与えられた場合に、入力ネットワークnetinにおいて、その入力データに最も適合する勝者ノードを決定することができ、その勝者ノードとの結合重みが最強の出力ネットワークnetoutの出力ノードを決定することができる。さらに、その出力ノード(が有する時系列パターンモデル21)に基づき、時系列データを生成することで、与えられた入力データに対する出力データを推定することができる。
また、逆モデルとしての入出力関係モデルによれば、ある出力データ(目標値)が与えられた場合に、出力ネットワークnetoutにおいて、その出力データに最も適合する勝者ノードを決定することができ、その勝者ノードとの結合重みが最強の入力ネットワークnetinの入力ノードを決定することができる。さらに、その入力ノード(が有する時系列パターンモデル21)に基づき、時系列データを生成することで、与えられた出力データに対する制御データ(入力データ)を推定することができる。
なお、入力ネットワークnetinのノードと出力ネットワークnetoutのノードとが結合されている入出力関係モデルについては、結合重み行列MTXは、入出力関係モデルの一部として、記憶部211(図20)に記憶される。
次に、図23のフローチャートを参照して、順モデルまたは逆モデルとしての入出力関係モデルを用いて、入力データに対する出力データや、出力データに対する制御データ(入力データ)を推定する処理について説明する。
まず、図20のデータ処理装置において、入力データに対する出力データを推定する場合、ステップS111において、その入力データが、図20のデータ処理装置に入力される。
データ処理装置に入力された入力データは、認識生成部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に進み、その時系列データを出力する。
次に、図20のデータ処理装置において、出力データに対する制御データ(入力データ)を推定する場合には、ステップS111において、その出力データが、図20のデータ処理装置に入力される。
データ処理装置に入力された出力データは、認識生成部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に進み、その時系列データを出力する。
以上のように、入力データと出力データとのセットを用いて、入出力関係モデルの学習を行い、制御対象を順モデルおよび逆モデルにモデル化して、制御対象を精度良く表現し、高精度に、出力データや制御データ(入力データ)を推定することが可能となる。
ところで、上述したように、図20のデータ処理装置においては、制御対象に与えられる、ある区間の時系列データ(ある時間に亘る時系列データ)である入力データと、その区間の時系列データに対して制御対象から観測される区間の他の時系列データである出力データとのセットを、教示データとして、学習部212に供給し、学習部212において、教示データを用い、制御対象の順モデルまたは逆モデルとしての入出力関係モデルの学習を行う。
従って、例えば、制御対象をロボットとして、そのロボットに与える入力データとして、ロボットに呼びかける音声をセンサとしてのマイクで検知したセンサデータ(音声データ)の時系列を採用するとともに、ロボットに呼びかける音声に対して、ロボットが手をふるようにアームを動かす行動をとるためにモータに与えられるモータデータの時系列を採用して、入出力関係モデルの学習を行うと、学習部212(図20)では、入出力関係モデルの入力ネットワークnetinの1以上のノード(が有する時系列パターンモデル21)が、ロボットに呼びかける音声に対応するセンサデータとしての入力データの時系列パターンを表現するように、自己組織的な学習が行われるとともに、出力ネットワークnetoutの1以上のノード(が有する時系列パターンモデル21)が、手をふる行動に対応するモータデータとしての出力データの時系列パターンを表現するように、自己組織的な学習が行われる。
さらに、学習部212では、入出力関係モデルの入力ネットワークnetinの各ノードと、出力ネットワークnetoutの勝者ノードとの結合重みが、入力ネットワークnetinの勝者ノードとのパターン間距離dが近いノードほど強くなるように更新されるとともに、出力ネットワークnetoutの各出力ノードと、入力ネットワークnetinの勝者ノードとの結合重みが、出力ネットワークnetoutの勝者ノードとのパターン間距離dが近い出力ノードほど強くなるように更新される。
その結果、入力ネットワークnetinのノードのうちの、ロボットに呼びかける音声に対応するセンサデータとしての入力データの時系列パターンを表現する(時系列パターンモデル21を有する)1以上のノードと、出力ネットワークnetoutのノードのうちの、手をふる行動に対応するモータデータの時系列パターンを表現する(時系列パターンモデル21を有する)1以上のノードとの結合重みは強くなる。
その後、認識生成部213(図20)に、ロボットに呼びかける音声に対応するセンサデータが、入力データとして与えられると、入出力関係モデルでは、その入力データに対して、入力ネットワークnetinのノードのうちの、ロボットに呼びかける音声に対応するセンサデータの時系列パターンを表現する、ある1つのノードが勝者ノードとなる。そして、認識生成部213では、その勝者ノードとの結合重みが最も強い、出力ネットワークnetoutのノード、即ち、いまの場合、出力ネットワークnetoutのノードのうちの、手をふる行動に対応するモータデータの時系列パターンを表現する、あるノードが、生成ノードに決定され、その生成ノードを用いて、出力データ、即ち、いまの場合、手をふる行動に対応するモータデータが生成されて出力される。
図20のデータ処理装置によれば、例えば、ロボットに、呼びかけの音声を与え、その音声に対して、手をふるようなアームの動きを与えると、上述のような学習が行われ、その結果、ロボットが、呼びかけの音声に対して、手をふる認知行動を行うようになる。
しかしながら、図20のデータ処理装置では、認知と行動とが、比較的短時間で繰り返されることで完成する、実時間性が要求されるタスクを、ロボットに行わせることが困難であることがある。
即ち、例えば、ロボットが、目の前にあるボールを左右に転がすタスクを行う場合、ボールの状態を把握(認識)する認知と、ボールの状態に応じて適切にアームを動かす行動とを、ある短い所定の時間単位で繰り返し行う必要がある。いま、この繰り返しの単位である所定の時間を、フレームと呼ぶこととすると、時間軸上のあるフレームにおける、ボールの状態をセンサで検知したセンサデータと、そのフレームにおいてとらなければならないアームの動きに対応するモータデータとのセットを、教示データとして、図20のデータ処理装置に与え、その教示データのうちのセンサデータの時系列パターンを表現する入力ノード(入力ネットワークnetinのノード)と、その教示データのうちのモータデータの時系列パターンを表現する出力ノード(出力ネットワークnetoutのノード)との結合重みを強くしても、ロボットは、目の前にあるボールを左右に転がすタスクを行うことができるようにはならない。
なぜなら、あるフレームのセンサデータが与えられた時点で、そのフレームのモータデータによるアームの動きは、既に行われていなければならないからである。
従って、ロボットが、目の前にあるボールを左右に転がすタスクを行うことができるようにするには、あるフレームを注目フレームとして注目すると、ボールの状態をセンサで検知したセンサデータのうちの、注目フレームのセンサデータの時系列パターンを表現する入力ノード(以下、適宜、センサデータに対応するノードともいう)と、ボールを左右に転がすアームの動きに対応するモータデータのうちの、注目フレームの時刻から一定の時間だけ遅れたフレームのモータデータの時系列パターンを表現する出力ノード(以下、適宜、モータデータに対応するノードともいう)との結合重みを強くするように、入出力関係モデルの学習を行う必要がある。
即ち、注目フレームのセンサデータに対して、次のフレームのモータデータが生成されるように、入出力関係モデルの学習を行う必要がある。
また、ロボットが次にとるべき行動は、現在の外部の状態としてのボールの状態だけでは決められないことがある。即ち、現在のボールの状態が、ある特定の状態であっても、ロボットが現在とっている行動(状態)によっては、次にとるべき行動が異なることがある。
従って、注目フレームのセンサデータのみならず、モータデータをも考慮して、次のフレームのモータデータが生成されるように、入出力関係モデルの学習を行うことが望ましい。
そこで、図24は、実時間性が要求されるタスクを行うことが可能なロボットの構成例を示している。
図24において、ロボットは、データ処理装置301、センサ302、およびモータ駆動部303等から構成されている。
データ処理装置301は、センサ302から供給される時系列のセンサデータと、モータ駆動部303から供給される時系列のモータデータとを用いて、入出力関係モデルの自己組織的な学習を行う。さらに、データ処理装置301は、センサ302から供給される時系列のセンサデータ、およびモータ駆動部303から供給されるモータデータに対して、時系列のセンサデータおよびモータデータを生成し、モータ駆動部303に供給する。
センサ302は、カメラやマイク等であり、外部の状態を検知して、その外部の状態を表す時系列のセンサデータを、データ処理装置301に供給する。
モータ駆動部303は、データ処理装置301から供給されるモータデータに応じて、例えば、ロボットのアーム等を動かすための図示せぬモータを駆動する。また、モータ駆動部303は、例えば、ロボットのアーム等が、外部から力が加えられることによって動かされた場合に、その動きをするために、モータ駆動部303に与えられるべきモータデータと同一のモータデータを生成し、データ処理部301に供給する。さらに、モータ駆動部303は、上述したように、データ処理装置301から供給されるモータデータに応じて、モータを駆動するとともに、必要に応じて、そのモータデータを、データ処理装置301に供給する(戻す)。
図24において、データ処理装置301は、記憶部311、データ抽出部312、学習処理部313、写像学習部314、データ抽出部315、認識部316、写像部317、および生成部318から構成されている。
記憶部311は、入出力関係モデルを記憶している。
ここで、図25は、記憶部311が記憶している入出力関係モデルM1112を示している。
入出力関係モデルM1112は、図19や図22に示した入出力関係モデルと同様に、時系列データのパターンである時系列パターンを表現する時系列パターンモデルを有する複数のノードから構成される時系列パターン記憶ネットワークである入力ネットワークnet11(入力SOM)と、出力ネットワークnet12(出力SOM)とを有する。
そして、入出力関係モデルM1112では、入力ネットワークnet11の各ノードと、出力ネットワークのnet12の各ノードとが、結合重みによって結合されている。
図24に戻り、データ抽出部312には、センサ302が各時刻において出力するセンサデータと、モータ駆動部303が同一時刻において出力するモータデータとが供給される。
データ抽出部312は、センサ302からのセンサデータとモータ駆動部303からのモータデータをコンポーネントとするベクトルの時系列を、入力データおよび出力データとして、入力データの時系列から、フレーム単位の入力データを順次抽出するとともに、出力データの時系列から、フレーム単位の出力データを順次抽出し、それらのフレーム単位の入力データと出力データを、学習処理部313に供給する。
即ち、図26は、図24のデータ抽出部312が扱う入力データと出力データを示している。
上述したように、データ抽出部312が扱う入力データと出力データは、いずれも、センサデータとモータデータをコンポーネントとするベクトルの時系列であり、同一の時系列データである。
図24で説明したように、データ抽出部312には、センサ302が各時刻において出力するセンサデータと、モータ駆動部303が同一時刻において出力するモータデータとが供給される。
例えば、フレームの長さ(時間)をTと表すこととすると、データ抽出部312は、センサデータとモータデータを入力データとして、その入力データの時系列を、図26に示すように、時間T単位に区切った、フレーム単位の入力データを抽出し、学習処理部313に供給する。
また、データ抽出部312は、センサデータとモータデータを出力データとして、その出力データの時系列を、図26に示すように、時間T単位に区切った、フレーム単位の出力データを抽出し、学習処理部313に供給する。
ここで、以下、適宜、時刻tを先頭の時刻とし、時刻t+T-1を終わりの時刻とする時間Tのフレームを、時刻tのフレームという。センサデータとモータデータとをコンポーネントとするベクトルの時系列の、時刻tのベクトル(サンプル値)から、時刻t+t'(の直前)のベクトルまでを、IO[t,t+t']と表すこととすると、時刻tのフレームの入力データと出力データは、いずれも、IO[t,t+T-1]と表すことができる。
なお、図26では、入力データと出力データとが、完全に同一の時系列データであるとしたが、入力データと出力データとは、一部が同一の時系列データであっても良い。即ち、例えば、入力データが、センサデータとモータデータをコンポーネントとするベクトルの時系列であり、出力データが、モータデータ(さらには、センサデータ以外の時系列データ)をコンポーネントとするベクトルの時系列であっても良い。
また、図26では、入力データを(出力データについても同様)、単純に、時間T単位に区切って、フレーム単位の入力データを得るようにしたが、その他、例えば、時間T未満の時間だけずらしながら、時間Tの長さの入力データを抽出することにより、一部が重複したフレーム単位の入力データを抽出することも可能である。
再び、図24に戻り、学習処理部313は、認識学習処理部321から構成され、データ抽出部312から供給されるフレーム単位の入力データと出力データそれぞれを用いて、記憶部311に記憶された入出力関係モデルM1112(図25)が有する入力ネットワークnet11と出力ネットワークnet12それぞれの自己組織的な学習を行う。
即ち、認識学習処理部321は、図20の学習処理部221と同様に、データ抽出部312から供給されるフレーム単位の入力データに基づいて、記憶部311に記憶された入出力関係モデルM1112(図25)における入力ネットワークnet11を、自己組織的に更新する。
具体的には、認識学習処理部321は、入出力関係モデルM1112における入力ネットワークnet11の各ノードについて、データ抽出部312からのフレーム単位の入力データに対するスコアを求め、入力ネットワークnet11のノードの中から、スコアの最も良いノードを、勝者ノード(以下、適宜、入力勝者ノードともいう)に決定する。さらに、認識学習処理部321は、データ抽出部312からのフレーム単位の入力データに対する入力勝者ノードに基づいて、入力ネットワークnet11を、自己組織的に更新する。
また、認識学習処理部321は、フレーム単位の入力データに対して時系列に決定した入力勝者ノードを表すノードラベルである入力ラベルを、写像学習部314に、時系列に供給する。
さらに、認識学習処理部321は、データ抽出部312から供給されるフレーム単位の出力データに基づいて、記憶部311に記憶された入出力関係モデルM1112(図25)における出力ネットワークnet12を、自己組織的に更新する。
具体的には、認識学習処理部321は、入出力関係モデルM1112における出力ネットワークnet12の各ノードについて、データ抽出部312からのフレーム単位の出力データに対するスコアを求め、出力ネットワークnet12のノードの中から、スコアの最も良いノードを、勝者ノード(以下、適宜、出力勝者ノードともいう)に決定する。さらに、認識学習処理部321は、データ抽出部312からのフレーム単位の出力データに対する出力勝者ノードに基づいて、出力ネットワークnet12を、自己組織的に更新する。
また、認識学習処理部321は、フレーム単位の出力データに対して時系列に決定した出力勝者ノードを表すノードラベルである出力ラベルを、写像学習部314に、時系列に供給する。
写像学習部314は、データバッファ331、読み出し部332、および結合重み更新部333から構成され、記憶部311に記憶された入出力関係モデルM1112における入力ネットワークnet11のフレーム単位の入力データに対する入力勝者ノードと、出力ネットワークnet12の各ノードとの結合重みを更新するとともに、出力ネットワークnet12の、フレーム単位の入力データの時刻から一定の時間だけ遅れたフレーム単位の出力データに対する出力勝者ノードと、入力ネットワークnet11の各ノードとの結合重みを更新する。
即ち、データバッファ331は、認識学習処理部321から供給される時系列の入力ラベルと、認識学習処理部321から供給される時系列の出力ラベルとを一時記憶する。
読み出し部332は、入力データのフレームを、順次、注目フレームとして、データバッファ331に記憶された入力ラベルのうちの、注目フレームの入力データに対する入力勝者ノードを表す入力ラベルと、データバッファ331に記憶された出力ラベルのうちの、注目フレームの時刻から一定の時間だけ遅れたフレームの出力データに対する出力勝者ノードを表す出力ラベルとを読み出して対応付け、その対応付けた入力ラベルと出力ラベルとのセットであるラベルセットを、結合重み更新部333に供給する。
結合重み更新部333は、図20の結合重み更新部222と同様に、図22で説明したようにして、読み出し部332から供給されるラベルセットに基づき記憶部311に記憶された入出力関係モデルM1112(図25)における入力ネットワークnet11のノードと、出力ネットワークnet12のノードとの結合関係を、ヘブ則等により更新する。
即ち、結合重み更新部333は、入力ネットワークnet11の各入力ノードと、ラベルセットの出力ラベルが表す出力ネットワークnet12の出力勝者ノードとの結合重みを、ラベルセットの入力ラベルが表す入力ネットワークnet11の入力勝者ノードを中心として更新するとともに、出力ネットワークnet12の各出力ノードと、入力ネットワークnet11の勝者ノードとの結合重みを、出力ネットワークnet12の出力勝者ノードを中心として更新する。
データ抽出部315には、センサ302が各時刻において出力するセンサデータと、モータ駆動部302が同一時刻において出力するモータデータとをコンポーネントとするベクトルの時系列が、入力データとして供給される。データ抽出部315は、データ抽出部312と同様に、入力データの時系列から、フレーム単位の入力データを順次抽出し、認識部316に供給する。
認識部316は、スコア計算部341と勝者ノード決定部342とから構成される。
また、図24において、写像部317は、生成ノード決定部351から構成される。さらに、生成部318は、時系列生成部361から構成される。
スコア計算部341、勝者ノード決定部342、生成ノード決定部351、時系列生成部361は、それぞれ、図20のスコア計算部231、勝者ノード決定部232、生成ノード決定部233、時系列生成部234と同様の処理を行う。
なお、時系列生成部361は、図20の時系列生成部234と同様にして、出力データ(の推定値)を生成するが、この出力データは、センサデータとモータデータとをコンポーネントとするベクトルであり、そのうちのモータデータが、時系列生成部361からモータ駆動部303に供給される。
次に、図27を参照して、図24の読み出し部332の処理について説明する。
読み出し部332は、上述したように、入力データのフレームを、順次、注目フレームとして、データバッファ331に記憶された入力ラベルのうちの、注目フレームの入力データに対する入力勝者ノードを表す入力ラベルと、データバッファ331に記憶された出力ラベルのうちの、注目フレームの時刻から一定の時間だけ遅れたフレームの出力データに対する出力勝者ノードを表す出力ラベルとを対応付ける。
即ち、注目フレームの時刻から一定の時間だけ遅れたフレームの出力データとして、例えば、フレームと同一の時間Tを採用することとすると、読み出し部332は、時刻tのフレームの入力データ(IO[t,t+T-1])に対する入力勝者ノードNtを表す入力ラベルと、注目フレームの時刻tから時間Tだけ遅れた時刻t+Tのフレームの出力データ(IO[t+T,t+2T-1])に対する出力勝者ノードN't+Tを表す出力ラベルとを対応付ける。
但し、ここでは、入力データと出力データは、同一の時系列データ(センサデータとモータデータとをコンポーネントとするベクトルの時系列)である。
次に、図28のフローチャートを参照して、図24のロボットが行う学習処理、即ち、入出力関係モデルM1112の学習処理について説明する。
例えば、ロボットに、目の前にあるボールを左右に転がすタスクを学習させる場合、オペレータ(ロボットにタスクの学習をさせようとするユーザ)は、ロボットの前にボールをおき、ロボットのアームを持って、ボールを左右に転がすように、アームを動かす。
この場合、センサ302において、左右に転がるボールの状態が検知され、その状態を表す時系列のセンサデータが、データ処理装置301のデータ抽出部312に供給される。
また、モータ駆動部303では、オペレータが動かしているアームの動きに対応するモータデータが生成され、データ処理装置301のデータ抽出部312に供給される。
データ抽出部312は、ステップS301において、センサ302からのセンサデータと、モータ駆動部303からのモータデータをコンポーネントとするベクトルの時系列(以下、適宜、センサモータデータという)を、入力データとして、その入力データの時系列から、フレーム単位の入力データを抽出し、学習処理部313の認識学習処理部321に供給するとともに、センサモータデータを出力データとして、その出力データの時系列から、フレーム単位の出力データを抽出し、学習処理部313の認識学習処理部321に供給して、ステップS302に進む。
ステップS302では、学習処理部313の認識学習処理部321が、データ抽出部312からのフレーム単位の入力データと出力データを用いて、記憶部311に記憶された入出力関係モデルM1112(図25)が有する入力ネットワークnet11と出力ネットワークnet12の自己組織的な学習を行う。
即ち、ステップS302では、ステップS3021とS3022の処理が行われる。
ステップS3021では、認識学習処理部321が、記憶部311に記憶された入出力関係モデルM1112における入力ネットワークnet11の各ノードについて、データ抽出部312からのフレーム単位の入力データに対するスコアを求め、入力ネットワークnet11のノードの中から、スコアの最も良いノードを、入力勝者ノードに決定する。さらに、認識学習処理部321は、データ抽出部312からのフレーム単位の入力データに対する入力勝者ノードに基づいて、入力ネットワークnet11を、自己組織的に更新し、入力勝者ノードを表す入力ラベルを、写像学習部314に供給する。
ステップS3022では、認識学習処理部321が、記憶部311に記憶された入出力関係モデルM1112における出力ネットワークnet12の各ノードについて、データ抽出部312からのフレーム単位の出力データに対するスコアを求め、出力ネットワークnet12のノードの中から、スコアの最も良いノードを、出力勝者ノードに決定する。さらに、認識学習処理部321は、データ抽出部312からのフレーム単位の出力データに対する出力勝者ノードに基づいて、出力ネットワークnet12を、自己組織的に更新し、出力勝者ノードを表す出力ラベルを、写像学習部314に供給する。
ステップS302の処理後は、ステップS303に進み、写像学習部314は、入力データのフレームのうちの、まだ注目フレームとしていないフレームを、注目フレームとして、認識学習処理部321からの、注目フレームの入力データに対する入力勝者ノードを表す入力ラベルと、認識学習処理部321からの、注目フレームから時間Tだけ遅れたフレームの出力データに対する出力勝者ノードを表す出力ラベルとを対応付ける。
即ち、ステップS303では、写像学習部314のデータバッファ331において、認識学習処理部321からのフレーム単位の入力データに対する入力勝者ノードを表す入力ラベルと、フレーム単位の出力データに対する出力勝者ノードを表す出力ラベルとが一時記憶される。
さらに、ステップS303では、写像学習部314の読み出し部332が、データバッファ331に記憶された入力ラベルのうちの、注目フレームの入力データに対する入力勝者ノードを表す入力ラベルと、データバッファ331に記憶された出力ラベルのうちの、注目フレームの時刻から時間Tだけ遅れたフレームの出力データに対する出力勝者ノードを表す出力ラベルとを読み出して対応付け、その対応付けた入力ラベルと出力ラベルとのセットであるラベルセットを、結合重み更新部333に供給する。
そして、ステップS303からステップS304に進み、写像学習部314の結合重み更新部333が、読み出し部332から供給されるラベルセットに基づき、記憶部311に記憶された入出力関係モデルM1112(図25)における入力ネットワークnet11のノードと、出力ネットワークnet12のノードとの結合関係を更新する。
即ち、結合重み更新部333は、記憶部311に記憶された入出力関係モデルM1112における入力ネットワークnet11の各入力ノードと、ラベルセットの出力ラベルが表す出力ネットワークnet12の出力勝者ノードとの結合重みを、ラベルセットの入力ラベルが表す入力ネットワークnet11の入力勝者ノードを中心として更新するとともに、出力ネットワークnet12の各出力ノードと、入力ネットワークnet11の入力勝者ノードとの結合重みを、出力ネットワークnet12の出力勝者ノードを中心として更新する。
以上のような入出力関係モデルM1112の学習処理によれば、入出力関係モデルM1112(図25)が有する入力ネットワークnet11と出力ネットワークnet2との結合関係は、以下のように更新される。
即ち、入力勝者ノードは、注目フレームの入力データに対する勝者ノードであり、出力勝者ノードは、注目フレームから時間Tだけ遅れたフレームの出力データに対する勝者ノードであるから、結合重み更新部333による結合重みの更新によれば、記憶部311に記憶された入出力関係モデルM1112において、注目フレームの入力データに対する入力ネットワークnet11の入力勝者ノードと、注目フレームから時間Tだけ遅れたフレームの出力データに対する出力ネットワークnet2の出力勝者ノードとの結合重みが、より強くなるように更新される。
なお、図28の学習処理は、入力データの先頭のフレームから終わりのフレームまでを、順次、注目フレームとして、ステップS302乃至S304の処理を繰り返し行うようにしてもよいし、入力データの先頭のフレームから終わりのフレームまでを、順次、注目フレームとして、ステップS302の処理を繰り返し行い、その後、再び、入力データの先頭のフレームから終わりのフレームまでを、順次、注目フレームとして、ステップS303およびS304の処理を繰り返し行うようにしても良い。
次に、図29のフローチャートを参照して、図24のロボットが行う認知行動の処理、即ち、入出力関係モデルM1112を用いた時系列データの生成処理(認識生成処理)について説明する。
例えば、図28で説明したように、ロボットに、目の前にあるボールを左右に転がすタスクを学習させた後、ロボットの前にボールをおくと(さらに、必要に応じて、ボールを転がすと)、センサ302において、ボールの状態が検知され、その状態を表す時系列のセンサデータが、データ処理装置301のデータ抽出部315に供給される。
さらに、データ処理装置301のデータ抽出部315には、モータ駆動部303からモータデータも供給される。
データ抽出部315は、ステップS321において、センサ302からのセンサデータと、モータ駆動部303からのモータデータとをコンポーネントとするベクトルの時系列であるセンサモータデータを入力データとして、その入力データの時系列から、フレーム単位の入力データを抽出し、認識部316に供給して、ステップS322に進む。
認識部316では、ステップS322において、スコア計算部341が、データ抽出部315からのフレーム単位の入力データを、順次、注目フレームの入力データとして、その注目フレームの入力データに対して、記憶部311に記憶された入出力関係モデルM1112を構成する入力ネットワークnet11の各ノードのスコアを計算し、勝者ノード決定部342に供給する。
さらに、ステップS322では、勝者ノード決定部342が、記憶部311に記憶された入出力関係モデルM1112を構成する入力ネットワークnet11のノードの中で、スコア計算部341からのスコアが最も良いノードを、入力勝者ノードに決定し、その入力勝者ノードを表す入力ラベルを、写像部317に供給して、ステップS323に進む。
ステップS323では、写像部317の生成ノード決定部351が、記憶部311に記憶された入出力関係モデルM1112を構成する出力ネットワークnet12のノードの中で、勝者ノード決定部342からの入力ラベルが表すノード(入力勝者ノード)との結合重みが最も強いノードを生成ノードに決定し、その生成ノードを表す出力ラベルを、生成部318に供給して、ステップS324に進む。
ステップS324では、生成部318の時系列生成部361が、記憶部311に記憶された入出力関係モデルM1112を構成する出力ネットワークnet12のノードのうちの、生成ノード決定部351からの出力ラベルが表す生成ノードが有する時系列パターンモデル21(図7)に基づいて、注目フレームの入力データに対する出力データ(の推定値)としての、例えば、フレームの長さの時系列データを生成して出力する。
この出力データとしての時系列データは、センサモータデータであり、そのセンサモータデータのうちのモータデータが、時系列生成部361からモータ駆動部303に供給され、モータ駆動部303が、時系列生成部361からのモータデータにしたがって、モータを駆動することにより、ロボットのアームが動かされる。
以下、データ抽出部315から認識部316に対して供給されるフレーム単位の入力データについて、ステップS322乃至S324の処理が行われる。
以上のように、図24のロボットでは、入力ネットワークnet11のフレーム単位の入力データに対する入力勝者ノードと、出力ネットワークnet2の、フレーム単位の入力データの時刻から一定の時間だけ遅れたフレーム単位の出力データに対する出力勝者ノードとの結合重みを強めるように更新するので、例えば、目の前にあるボールを左右に転がすタスクのような実時間性が要求されるタスクを学習し、そのようなタスクを行うことができるようになる。
即ち、上述したように図28の学習処理によれば、記憶部311に記憶された入出力関係モデルM1112において、注目フレームの入力データに対する入力ネットワークnet11の入力勝者ノードと、注目フレームから一定の時間だけ遅れたフレームの出力データに対する出力ネットワークnet12の出力勝者ノードとの結合重みが、より強くなるように更新される。
従って、図29の認識生成処理では、入出力関係モデルM1112に、あるフレームFの入力データが与えられると、入出力関係モデルM1112では、入力ネットワークnet1のノードのうちの、フレームFの入力データに対応するノードが入力勝者ノードとなり、出力ネットワークnet2のノードのうちの、フレームFから一定の時間だけ遅れたフレームの出力データに対応するノードが、入力勝者ノードとの結合重みが最も強いノードとして、生成ノードに決定され、これにより、その生成ノードに基づき、フレームFから一定の時間だけ遅れたフレームの出力データに相当する時系列データが生成される。
即ち、図24のロボットでは、フレーム単位の入力データとしてのセンサモータデータ、つまり、外部の状態とロボット自身の状態に対して、フレーム単位の入力データから一定の時間だけ遅れたフレームの出力データとしてのセンサモータデータ、つまり、その後にとるべき行動に対応するモータデータと、その後に検知されるであろう外部の状態に対応するセンサデータとを得ることができるように、学習が行われるので、目の前にあるボールを左右に転がすタスクのような実時間性が要求されるタスクを学習し、そのようなタスクを行うことができるようになる。
ここで、図24のロボットの結合重み更新部333による結合重みの更新、即ち、入力ネットワークnet11のフレーム単位の入力データとしてのセンサモータデータに対する入力勝者ノードと、出力ネットワークnet12の、フレーム単位のセンサモータデータの時刻から一定の時間だけ遅れたフレーム単位の出力データとしてのセンサモータデータに対する出力勝者ノードとの結合重みを強めるように更新することは、フレーム単位のセンサモータデータと、そのフレーム単位のセンサモータデータの時刻から一定の時間だけ遅れたフレーム単位のセンサモータデータとを対応付けるように、入出力関係モデルM1112の学習を行うことになる。
そして、認知行動時において、かかる学習が行われた入出力関係モデルM1112にフレーム単位のセンサモータデータが与えられると、入出力関係モデルM1112では、そのフレーム単位のセンサモータデータに対して、そのフレーム単位のセンサモータデータの時刻から一定の時間だけ遅れたフレーム単位のセンサモータデータ(の推定値)に対応するノードが、生成ノードとして求められることになるが、これは、あるフレームFのセンサモータデータから、生成ノードに対応するセンサモータデータ、つまり、フレームFの時刻から一定の時間だけ未来のフレームのセンサモータデータを予測している、ということができる。
以上のように、図24のロボットでは、フレーム単位の入力データとしてのセンサモータデータと、そのフレーム単位の入力データの時刻から一定の時間だけ遅れたフレーム単位の出力データとしてのセンサモータデータとを対応付けるように、入出力関係モデルM1112の学習を行う。
このため、ロボットの認知行動(出力データの生成)時において、入力データであるセンサモータデータとして、入出力関係モデルM1112(図25)の入力ネットワークnet11のいずれかのノードが表現する時系列パターンに合致する時系列パターンのセンサモータデータ(既知のセンサモータデータ)が入力される限りは、そのセンサモータデータに対して適切な出力データであるセンサモータデータが生成され、その結果、ロボットは、学習したタスクを再現することができる。
さらに、図24のロボットでは、入力データおよび出力データとして、いずれも、センサデータとモータデータとをコンポーネントとするベクトルであるセンサモータデータが採用され、フレーム単位の入力データとしてのセンサモータデータに対して、そのフレーム単位の入力データの時刻から一定の時間だけ遅れたフレーム単位の出力データとしてのセンサモータデータ、即ち、いわば、未来のセンサモータデータ(の推定値)が生成される。
従って、図24のロボットでは、フレーム単位の入力データとしてのセンサモータデータに基づき、現在の外部の状態と、ロボット自体の現在の行動の状態との両方を、いわば考慮して、そのフレーム単位の入力データの時刻から一定の時間だけ遅れたフレーム単位の出力データとしてのセンサモータデータの生成、つまり、一定の時間だけ未来の外部の状態の予測と、その未来の行動の決定が行われているということができ、高い安定性でタスクを行うことができる。
具体的には、例えば、ボールを左右に転がすタスクにおいて、ボールの状態だけ、即ち、センサデータだけでは、行動を定めにくい場合(例えば、ボールを左右に転がすタスクにおいて、ボールが特定の状態にあるときに、アームを左から右に動かす行動をするケースと、右から左に動かすケースとが混在する場合)、センサデータにノイズが混入した場合(例えば、ボールを左右に転がすタスクにおいて、センサ302が、本来検知すべきボールの状態のみならず、ロボットのアームの状態も検知して、センサデータを出力した場合)には、センサデータだけに基づいて、一定の時間だけ遅れたモータデータを生成したのでは、ロボットの行動が不安定になるおそれがある。
これに対して、センサモータデータ、つまり、センサデータとモータデータの両方に基づいて、一定の時間だけ遅れたセンサモータデータを生成する場合においては、その一定の時間だけ遅れたセンサモータデータには、現在の外部の状態のみならず、ロボット自体の現在の行動の状態も考慮されているので、安定した行動をとることが可能となる。
なお、上述の場合には、注目フレームの時刻から一定の時間だけ遅れたフレームの出力データとして、注目フレームの時刻から、フレームと同一の時間Tだけ遅れたフレームの出力データを採用することとしたが、即ち、入力データの注目フレームと、その注目フレームに対応する出力データのフレームとの時間差(以下、適宜、入出力時間差という)として、時間Tを採用したが、入出力時間差は、時間Tに限られるものではなく、例えば、時間2Tや3T、0.5Tなどを採用することができる。
また、入出力時間差としては、フレーム単位の入力データに対して勝者ノードを決定する処理に要する時間△を考慮した時間、即ち、例えば、時間T+△を採用することができる。
以上のように、入力ネットワークnet11と出力ネットワークnet12とを有する入出力関係モデルM1112によれば、フレーム単位の入力データ(の時系列パターン)を、入力ネットワークnet11で学習するとともに、フレーム単位の出力データを、出力ネットワークnet12で学習し、さらに、フレーム単位の入力データと、入出力時間差だけ未来のフレームの出力データとの対応を、入力ネットワークnet11のノードと、出力ネットワークnet12のノードとの結合重みという形で学習することができ、これにより、ロボットにおいて、現在の状態(に対応する入力データ)に基づき、次にとるべき適切な行動(に対応する出力データ(の推定値)の生成)を行うという認知行動をとることができる。
即ち、入出力関係モデルM1112を用いた認知行動では、図29で説明したように、入力ネットワークnet11のノードのうちの、入力データに対するスコアが最も良いノードが、勝者ノードに決定される(ステップS322)。さらに、出力ネットワークnet12のノードのうちの、勝者ノードとの結合重みが最強のノードが、生成ノードに決定される(ステップS323)。そして、生成ノードを用いて、入力データの時刻から入出力時間差だけ未来の出力データ(の推定値)が生成される。
従って、入出力関係モデルM1112を用いた認知行動は、図30に示すように、入力データを内部表現に変換するプロセスPro1、入力データの内部表現から、未来の出力データの内部表現を予測するプロセスPro2、および予測された内部表現から出力データ(の推定値)を生成するプロセスPro3の3つのプロセスに分けることができる。
即ち、入出力関係モデルM1112では、入力ネットワークnet11において、入力データが、その入力データに対するスコアが最も良いノード(勝者ノード)に抽象化され、そのノードを表すノードラベル(入力ラベル)という内部表現で表される。
ここで、出力ネットワークnet12においても、同様に、出力データが、その出力データに対するスコアが最も良いノードに抽象化され、そのノードを表すノードラベルという内部表現で表される、ということができる。
入力ネットワークnet11のノードの中から、入力データに対する勝者ノードを決定することは、入力データを内部表現に変換するプロセスPro1に相当する。
また、勝者ノードの決定後は、その勝者ノードとの結合重みが最強の出力ネットワークnet12のノードが、入出力時間差だけ未来の出力データの生成に用いられる生成ノードに決定されるが、この生成ノードの決定は、入力データの内部表現から、未来の出力データの内部表現を予測するプロセスPro2に相当する。
さらに、生成ノードの決定後は、その生成ノードを用いて出力データが生成されるが、この出力データの生成は、予測された内部表現から出力データを生成するプロセスPro3に相当する。
ところで、図24のロボットの認知行動では、入力データを内部表現に変換するプロセスPro1において、入力ネットワークnet11のすべてのノードについて、フレーム単位の入力データに対するスコアが計算され、そのスコアが最も良いノードが、そのフレーム単位の入力データに対する勝者ノードに決定される。
従って、入力ネットワークnet11を構成するノードの数の増加に伴って、スコアの計算の処理の負担も増加する。
そこで、例えば、図31に示すように、時刻tのフレームの入力データに対する勝者ノードの決定後、次のフレームである、例えば、時刻t+1のフレームの入力データに対する勝者ノードNt+1の決定は、その時刻t+1のフレームの入力データの直前の時刻tのフレームの入力データに対する勝者ノードNtとの距離が所定の距離以内のノード(以下、適宜、距離制限ノードという)だけを対象にして行うことができる。
この場合、時刻t+1のフレームの入力データに対するスコアの計算は、入力ネットワークnet11のすべてのノードではなく、時刻tのフレームの入力データに対する勝者ノードNtの近傍にある距離制限ノードだけを対象として行えば良いので、スコアの計算の処理の負担を軽減することができる。
なお、2つのノードどうしの距離としては、例えば、上述したように、その2つのノードどうしを結ぶ最短のパスを構成するリンクの数を採用することができる。
また、所定の距離を小にすると、スコアの計算の対象とするノードを少なくことができるが、勝者ノードとなるノードの自由度が損なわれる。一方、所定の距離を大にすると、勝者ノードとなるノードの制約が緩和されるが、スコアの計算の対象とするノードが多くなる。
ここで、所定の距離は、例えば、時系列パターンネットワークのノードの数(総数)に基づいて設定(決定)することができる。また、所定の距離は、ユーザの操作に応じて設定することができる。
図32は、上述のように、勝者ノードの決定を、距離制限ノードだけを対象にして行うロボットの構成例を示している。
なお、図中、図24のロボットと対応する部分については、同一の符号を付してあり、以下では、その説明は、省略する。即ち、図32のロボットは、認識学習処理部321、スコア計算部341、勝者ノード決定部342に代えて、それぞれ、認識学習処理部1321、スコア計算部1341、勝者ノード決定部1342が設けられている他は、図24のロボットと同様に構成されている。
即ち、認識学習処理部1321は、図24の認識学習処理部321と同様に、データ抽出部312から供給されるフレーム単位の入力データと出力データに基づいて、記憶部311に記憶された入出力関係モデルM1112(図25)における入力ネットワークnet11と出力ネットワークnet12を、自己組織的に更新するが、その際に行う勝者ノードの決定を、距離制限ノードを対象として行う。
即ち、認識学習処理部1321は、入出力関係モデルM1112における入力ネットワークnet11のノードのうちの、前回のフレームの入力データに対する勝者ノードとの距離が所定の距離以内の距離制限ノードについて、データ抽出部312からの今回のフレームの入力データに対するスコアを求め、入力ネットワークnet11の距離制限ノードの中から、スコアの最も良いノードを、勝者ノード(入力勝者ノード)に決定し、その入力勝者ノードに基づいて、入力ネットワークnet11を、自己組織的に更新するとともに、入力勝者ノードを表すノードラベルである入力ラベルを、写像学習部314に供給する。
さらに、認識学習処理部1321は、入出力関係モデルM1112における出力ネットワークnet12のノードのうちの、前回のフレームの出力データに対する勝者ノードとの距離が所定の距離以内の距離制限ノードについて、データ抽出部312からの今回のフレームの出力データに対するスコアを求め、出力ネットワークnet12の距離制限ノードの中から、スコアの最も良いノードを、勝者ノード(出力勝者ノード)に決定し、その出力勝者ノードに基づいて、出力ネットワークnet12を、自己組織的に更新するとともに、出力勝者ノードを表すノードラベルである出力ラベルを、写像学習部314に供給する。
スコア計算部1341は、データ抽出部315からの今回のフレームの入力データを、注目フレームの入力データとして、その注目フレームの入力データに対して、記憶部311に記憶された入出力関係モデルM1112を構成する入力ネットワークnet11のノードのうちの、前回のフレームの入力データに対する勝者ノードとの距離が所定の距離以内の距離制限ノードについて、スコアを計算し、勝者ノード決定部1342に供給する。
勝者ノード決定部1342は、記憶部311に記憶された入出力関係モデルM1112を構成する入力ネットワークnet11の距離制限ノードの中で、スコア計算部1341からのスコアが最も良いノードを、入力勝者ノードに決定し、その入力勝者ノードを表す入力ラベルを、写像部317に供給する。
次に、図33のフローチャートを参照して、図32のロボットが行う学習処理、即ち、入出力関係モデルM1112の学習処理について説明する。
例えば、ロボットに、目の前にあるボールを左右に転がすタスクを学習させる場合、オペレータは、ロボットの前にボールをおき、ロボットのアームを持って、ボールを左右に転がすように、アームを動かす。
この場合、センサ302において、左右に転がるボールの状態が検知され、その状態を表す時系列のセンサデータが、データ処理装置301のデータ抽出部312に供給される。
また、モータ駆動部303では、オペレータが動かしているアームの動きに対応するモータデータが生成され、データ処理装置301のデータ抽出部312に供給される。
データ抽出部312は、ステップS341において、センサ302からのセンサデータと、モータ駆動部303からのモータデータをコンポーネントとするベクトルの時系列であるセンサモータデータを、入力データおよび出力データとして、入力データの時系列から、フレーム単位の入力データを抽出するとともに、出力データの時系列から、フレーム単位の出力データを抽出し、そのフレーム単位の入力データと出力データを、学習処理部313の認識学習処理部1321に供給して、ステップS342に進む。
ステップS342では、学習処理部313が、データ抽出部312からのフレーム単位の入力データと出力データを用いて、記憶部311に記憶された入出力関係モデルM1112(図25)が有する入力ネットワークnet11と出力ネットワークnet12の自己組織的な学習を行う。
即ち、ステップS342では、ステップS3421とS3422の処理が行われる。
ステップS3421では、認識学習処理部1321が、記憶部311に記憶された入出力関係モデルM1112における入力ネットワークnet11のノードのうちの、距離制限ノードについて、データ抽出部312からのフレーム単位の入力データに対するスコアを求め、入力ネットワークnet11の距離制限ノードの中から、スコアの最も良いノードを、入力勝者ノードに決定する。さらに、認識学習処理部1321は、データ抽出部312からのフレーム単位の入力データに対する入力勝者ノードに基づいて、入力ネットワークnet11を、自己組織的に更新し、入力勝者ノードを表す入力ラベルを、写像学習部314に供給する。
ステップS3422では、認識学習処理部1321が、記憶部311に記憶された入出力関係モデルM1112における出力ネットワークnet12のノードのうちの、距離制限ノードについて、データ抽出部312からのフレーム単位の出力データに対するスコアを求め、出力ネットワークnet12の距離制限ノードの中から、スコアの最も良いノードを、出力勝者ノードに決定する。さらに、認識学習処理部1321は、データ抽出部312からのフレーム単位の出力データに対する出力勝者ノードに基づいて、出力ネットワークnet12を、自己組織的に更新し、出力勝者ノードを表す出力ラベルを、写像学習部314に供給する。
ステップS342の処理後は、ステップS343,S344に順次進み、図28のステップS303,S304とそれぞれ同様の処理が行われる。
即ち、写像学習部314は、ステップS303において、入力データのフレームのうちの、まだ注目フレームとしていないフレームを、注目フレームとして、学習処理部313からの、注目フレームの入力データに対する入力勝者ノードを表す入力ラベルと、学習処理部313からの、注目フレームから入出力時間差だけ遅れたフレームの出力データに対する出力勝者ノードを表す出力ラベルとを対応付ける。
具体的には、ステップS343では、写像学習部314のデータバッファ331において、学習処理部313からのフレーム単位の入力データに対する入力勝者ノードを表す入力ラベルと、フレーム単位の出力データに対する出力勝者ノードを表す出力ラベルとが一時記憶される。
さらに、ステップS343では、写像学習部314の読み出し部332が、データバッファ331に記憶された入力ラベルのうちの、注目フレームの入力データに対する入力勝者ノードを表す入力ラベルと、データバッファ331に記憶された出力ラベルのうちの、注目フレームの時刻から入出力時間差だけ遅れたフレームの出力データに対する出力勝者ノードを表す出力ラベルとを読み出して対応付け、その対応付けた入力ラベルと出力ラベルとのセットであるラベルセットを、結合重み更新部333に供給する。
そして、ステップS343からステップS344に進み、写像学習部314の結合重み更新部333が、読み出し部332から供給されるラベルセットに基づき、記憶部311に記憶された入出力関係モデルM1112(図25)における入力ネットワークnet11のノードと、出力ネットワークnet12のノードとの結合関係を更新する。
即ち、結合重み更新部333は、記憶部311に記憶された入出力関係モデルM1112における入力ネットワークnet11の各入力ノードと、ラベルセットの出力ラベルが表す出力ネットワークnet12の出力勝者ノードとの結合重みを、ラベルセットの入力ラベルが表す入力ネットワークnet11の入力勝者ノードを中心として更新するとともに、出力ネットワークnet12の各出力ノードと、入力ネットワークnet11の入力勝者ノードとの結合重みを、出力ネットワークnet12の出力勝者ノードを中心として更新する。
以上のような入出力関係モデルM1112の学習処理によれば、図28で説明した学習処理と同様に、記憶部311に記憶された入出力関係モデルM1112において、注目フレームの入力データに対する入力ネットワークnet11の入力勝者ノードと、注目フレームから入出力時間差だけ遅れたフレームの出力データに対する出力ネットワークnet2の出力勝者ノードとの結合重みが、より強くなるように更新される。
次に、図34のフローチャートを参照して、図33のステップS342で行われる時系列パターン記憶ネットワーク(入出力関係モデルM1112(図25)が有する入力ネットワークnet11と出力ネットワークnet12)の自己組織的な学習の処理について、さらに説明する。
図33のステップS342では、図34に示すように、まず最初に、ステップS361において、認識学習処理部1321は、入出力関係モデルM1112における入力ネットワークnet11のノードのうちの、前回のフレームの入力データに対する勝者ノードとの距離が所定の距離以内のノードを、距離制限ノードとして求め、その距離制限ノードについて、データ抽出部312からの今回のフレームの入力データに対するスコアを求めて、ステップS362に進む。
ステップS362では、認識学習処理部1321は、入力ネットワークnet11の距離制限ノードの中から、ステップS361で求めたスコアの最も良いノードを、勝者ノードに決定し、ステップS363に進む。ステップS363では、認識学習処理部1321は、ステップS362で決定された勝者ノードに基づいて、入力ネットワークnet11を、自己組織的に更新するとともに、勝者ノードを表すノードラベル(入力ラベル)を、写像学習部314に供給して、ステップS364に進む。
ステップS364では、認識学習処理部1321は、ステップS362で決定された勝者ノードのノードラベルを記憶し、今回のフレームの入力データを用いた入力ネットワークnet11の学習の処理を終了する。
なお、ステップS364で記憶されたノードラベルは、次のステップS361の処理、つまり、次のフレームの入力データを用いた入力ネットワークnet11の学習の処理において、距離制限ノードを求めるときに、前回のフレームの入力データに対する勝者ノードを認識するのに用いられる。
また、図34のフローチャートにしたがった処理は、今回のフレームの出力データを用いた出力ネットワークnet12の学習の処理としても行われる。
次に、図35のフローチャートを参照して、図32のロボットが行う認知行動の処理、即ち、入出力関係モデルM1112を用いた時系列データの生成処理(認識生成処理)について説明する。
例えば、図33で説明したように、ロボットに、目の前にあるボールを左右に転がすタスクを学習させた後、ロボットの前にボールをおくと(さらに、必要に応じて、ボールを転がすと)、センサ302において、ボールの状態が検知され、その状態を表す時系列のセンサデータが、データ処理装置301のデータ抽出部315に供給される。
さらに、データ処理装置301のデータ抽出部315には、モータ駆動部303からモータデータも供給される。
データ抽出部315は、ステップS381において、センサ302からのセンサデータと、モータ駆動部303からのモータデータとをコンポーネントとするベクトルの時系列であるセンサモータデータを入力データとして、その入力データの時系列から、フレーム単位の入力データを抽出し、認識部316に供給して、ステップS382に進む。
認識部316では、ステップS382において、スコア計算部1341が、データ抽出部315からのフレーム単位の入力データを、順次、注目フレームの入力データとして、その注目フレームの入力データに対し、記憶部311に記憶された入出力関係モデルM1112を構成する入力ネットワークnet11のノードのうちの距離制限ノードについて、スコアを計算し、勝者ノード決定部1342に供給する。
さらに、ステップS382では、勝者ノード決定部1342が、記憶部311に記憶された入出力関係モデルM1112を構成する入力ネットワークnet11の距離制限ノードの中で、スコア計算部1341からのスコアが最も良いノードを、勝者ノードに決定し、その勝者ノードを表す入力ラベルを、写像部317に供給して、ステップS383に進む。
ステップS383では、写像部317の生成ノード決定部351が、記憶部311に記憶された入出力関係モデルM1112を構成する出力ネットワークnet12のノードの中で、勝者ノード決定部1342からの入力ラベルが表すノード(勝者ノード)との結合重みが最も強いノードを生成ノードに決定し、その生成ノードを表す出力ラベルを、生成部318に供給して、ステップS384に進む。
ステップS384では、生成部318の時系列生成部361が、記憶部311に記憶された入出力関係モデルM1112を構成する出力ネットワークnet12のノードのうちの、生成ノード決定部351からの出力ラベルが表す生成ノードが有する時系列パターンモデル21(図7)に基づいて、注目フレームの入力データに対する出力データ(の推定値)としての、例えば、フレームの長さの時系列データを生成して出力する。
この出力データとしての時系列データは、センサモータデータであり、そのセンサモータデータのうちのモータデータが、時系列生成部361からモータ駆動部303に供給され、モータ駆動部303が、時系列生成部361からのモータデータにしたがって、モータを駆動することにより、ロボットのアームが動かされる。
以下、データ抽出部315から認識部316に対して供給されるフレーム単位の入力データについて、ステップS382乃至S384の処理が行われる。
次に、図36のフローチャートを参照して、図35のステップS382で行われる勝者ノードの決定の処理について、さらに説明する。
図35のステップS382では、図36に示すように、まず最初に、ステップS401において、スコア計算部1341は、入出力関係モデルM1112における入力ネットワークnet11のノードのうちの、前回のフレーム(注目フレームの直前のフレーム)の入力データに対する勝者ノードとの距離が所定の距離以内のノードを、距離制限ノードとして求める。さらに、スコア計算部1341は、距離制限ノードについて、データ抽出部315からの今回のフレーム(注目フレーム)の入力データに対するスコアを求め、勝者ノード決定部1342に供給して、ステップS402に進む。
ステップS402では、勝者ノード決定部1342は、入力ネットワークnet11の距離制限ノードの中から、スコア計算部1341から供給されたスコアの最も良いノードを、勝者ノードに決定し、その勝者ノードを表すノードラベル(入力ラベル)を、写像部317とスコア計算部1341に供給して、ステップS403に進む。
ステップS403では、スコア計算部1341は、勝者ノード決定部1342から供給されたステップS362で決定された勝者ノードのノードラベルを記憶し、勝者ノードの決定の処理を終了する。
なお、ステップS403で記憶されたノードラベルは、次のステップS401の処理、つまり、次のフレームの入力データに対する勝者ノードの決定の処理において、距離制限ノードを求めるときに、前回のフレームの入力データに対する勝者ノードを認識するのに用いられる。
上述したように、図33の学習処理によれば、記憶部311に記憶された入出力関係モデルM1112において、注目フレームの入力データに対する入力ネットワークnet11の入力勝者ノードと、注目フレームから一定の時間だけ遅れたフレームの出力データに対する出力ネットワークnet12の出力勝者ノードとの結合重みが、より強くなるように更新される。
従って、図35の認識生成処理では、入出力関係モデルM1112に、あるフレームFの入力データが与えられると、入出力関係モデルM1112では、入力ネットワークnet11のノードのうちの、フレームFの入力データに対応するノードが入力勝者ノードとなり、出力ネットワークnet12のノードのうちの、フレームFから一定の時間だけ遅れたフレームの出力データに対応するノードが、入力勝者ノードとの結合重みが最も強いノードとして、生成ノードに決定され、これにより、その生成ノードに基づき、フレームFから一定の時間だけ遅れたフレームの出力データに相当する時系列データが生成される。
即ち、図32のロボットでも、図24のロボット同様に、フレーム単位の入力データとしてのセンサモータデータ、つまり、外部の状態とロボット自身の状態に対して、フレーム単位の入力データから一定の時間だけ遅れたフレームの出力データとしてのセンサモータデータ、つまり、その後にとるべき行動に対応するモータデータと、その後に検知されるであろう外部の状態に対応するセンサデータとを得ることができるように、学習が行われるので、目の前にあるボールを左右に転がすタスクのような実時間性が要求されるタスクを学習し、そのようなタスクを行うことができるようになる。
さらに、図32のロボットでは、認識学習処理部1321や、スコア計算部1341において、距離制限ノードのみを対象として、スコアの計算が行われるので、スコアの計算の処理の負担を軽減することができる。
なお、上述のような、距離制限ノードのみを対象としたスコアの計算は、図9のデータ処理装置や、図20のデータ処理装置にも適用可能である。さらに、距離制限ノードのみを対象としたスコアの計算は、時系列パターン記憶ネットワークの他、ノードに、時系列パターンモデル21ではなく、入力データとしてのベクトルと同一次元の重みベクトルを有する(ノードに重みベクトルが割り当てられた)SOMのスコアの計算にも適用することができる。
次に、上述した図24のロボットの認知行動では、入力データの内部表現から、未来の出力データの内部表現を予測するプロセスPro2において、あるフレームFの入力データに対する入力ネットワークnet11の勝者ノードとの結合重みが最強の出力ネットワークnet12のノードが、フレームFの時刻から入出力時間差だけ未来のフレームの出力データの生成に用いられる生成ノードに決定される。
従って、図24のロボットでは、未来の出力データの内部表現の予測のバリエーション、つまり、生成ノードとなり得るノードの数は、多くても、出力ネットワークnet12を構成するノードの数に限られる。その結果、プロセスPro2に注目すれば、入出力関係モデルM1112を用いて生成される出力データである時系列データ、ひいては、ロボットがとり得る行動のバリエーションは、出力ネットワークnet12を構成するノードの数に限られることになる。
そこで、入力データの内部表現として、ノードラベルではなく、入力データに対する、入力ネットワークnet11のノードのスコアの分布である発火パターンを採用するとともに、出力データの内部表現としても、同様に、出力データに対する、出力ネットワークnet12のノードのスコアの分布である発火パターンを採用し、プロセスPro2では、図37に示すように、あるフレームFの入力データの発火パターンから、フレームFの時刻から入出力時間差だけ未来のフレームの出力データの発火パターンを予測することとする。
ここで、図37上は、ノードラベルを内部表現として、フレームFの入力データに対する入力ネットワークnet11の勝者ノードのノードラベルから、フレームFの時刻から入出力時間差だけ未来のフレームの出力データのノード(生成ノード)のノードラベルを予測するプロセスPro2を示している。
また、図37下は、発火パターンを内部表現として、フレームFの入力データに対する入力ネットワークnet11のノードのスコアの分布である発火パターンから、フレームFの時刻から入出力時間差だけ未来のフレームの出力データに対する出力ネットワークnet12のノードのスコアの分布である発火パターンを予測するプロセスPro2を示している。
図37上のプロセスPro2では、フレームFの入力データに対する入力ネットワークnet11の勝者ノードから、その勝者ノードとの結合重みに基づき、その勝者ノードとの結合重みが最強の出力ネットワークnet12のノードが、フレームFの時刻から入出力時間差だけ未来のフレームの出力データの生成に用いられる生成ノードに決定される。即ち、フレームFの入力データに対する入力ネットワークnet11の勝者ノードのノードラベルから、結合重みに基づき、フレームFの時刻から入出力時間差だけ未来のフレームの出力データのノード(生成ノード)のノードラベルが予測される。
従って、図37上のプロセスPro2では、出力ネットワークnet12のノードの数がM個であるとすると、予測の結果は、多くても、M通りしか存在しない。
一方、図37上のプロセスPro2では、フレームFの入力データに対する入力ネットワークnet11のノードのスコアの分布である発火パターンから、フレームFの時刻から入出力時間差だけ未来のフレームの出力データに対する出力ネットワークnet12のノードのスコアの分布である発火パターンが予測される。
いま、出力ネットワークnet12のノードの数がM個であり、スコアがKビットで表されるとすると、出力ネットワークnet12のノードのスコアの分布である発火パターンは、(2K)M通りだけ存在する。従って、図37下のプロセスPro2では、予測の結果は、最大で、(2K)M通りだけ存在する。
ところで、入力ネットワークnet11のノードのスコアの分布である発火パターンを、入力発火パターンといい、出力ネットワークnet12のノードのスコアの分布である発火パターンを、出力発火パターンということとすると、入力発火パターンから出力発火パターンを予測するには、入力発火パターンと出力発火パターンとを対応付ける(入力発火パターンから出力発火パターンへの写像を求める)必要がある。
いま、入力発火パターンと出力発火パターンとを対応付ける情報を、対パターン対応情報ということとすると、対パターン対応情報は、例えば、SVR(Support Vector Regression)(サポートベクタ回帰)などの関数近似手法その他の手法によって求める(学習する)ことができる。
ここで、SVRでは、複数であるn次元の値である入力ベクトルを引数として、1次元の値としての出力スカラ値を出力する、次式で表される実数値関数f():Rn→Rが推定される。
Figure 2007280053
式(6)において、yは、出力スカラ値を表し、z∈Rnは、入力ベクトルを表す。また、K(,)は、カーネル関数を表し、bは、バイアス項と呼ばれるスカラ量である。さらに、Jは、サポートベクトルの数を表し、Sj∈RNは、J個のサポートベクトルのうちの、j番目のサポートベクトルを表す。
SVRの学習においては、ある数Dの学習サンプルとしての出力スカラ値ydおよび入力ベクトルzdのセット(d=1,2,・・・,D)と、カーネル関数K(,)が与えられると、入力ベクトルzdから出力スカラ値ydへの写像を適切に行う関数f()を規定するパラメータsjj,bが求められる。なお、サポートベクタの数Jとしては、学習サンプルの数D以下の値が、SVRの学習の過程で求められる。
SVRの学習は、バッチ学習で行われることが多いが、オンライン学習で行う方法も提案されている。SVRの学習をオンライン学習で行う方法としては、例えば、AOSVR(Acurate Online SVR)と呼ばれる方法がある。
入力発火パターンと出力発火パターンとの対応付けを、SVRによって行う場合には、対パターン対応情報は、式(6)の関数f()を規定するパラメータsjj,bとなる。
SVRによる対パターン対応情報の学習では、式(6)の関数f()が、出力ネットワークnet12のノードの数だけ用意される。いま、出力ネットワークnet12のノードの数がM個であり、そのうちのm番目(m=1,2,・・・,M)のノードに対応する関数f()を、fm()と表すこととすると、その関数fm()を規定するパラメータsjj,bとしての対パターン対応情報は、出力ネットワークnet12のm番目のノードのスコアを、学習サンプルとしての出力スカラ値yとするとともに、入力発火パターンに対応するベクトル、即ち、入力ネットワークnet11の各ノードのスコアをコンポーネントとするベクトルを、学習サンプルとしての入力ベクトルzとして求められる。
なお、SVRについては、例えば、「サポートベクターマシン入門」、共立出版、pp.149-159などに記載されている。
次に、図24のロボットの認知行動では、プロセスPro2で予測された内部表現から出力データを生成するプロセスPro3において、出力ネットワークnet12のノードのうちの1つのノードを生成ノードとして、その生成ノードを用いて出力データが生成される。
従って、図24のロボットでは、プロセスPro3に注目すれば、データ処理装置301において生成される出力データ(の予測値)、ひいては、ロボットがとり得る行動のバリエーションは、出力ネットワークnet12のノードの数に限られることになる。
一方、図37で説明したように、入力データの内部表現として、入力発火パターンを採用するとともに、出力データの内部表現として、出力発火パターンを採用し、プロセスPro2において、フレームFの入力データの発火パターン(入力発火パターン)から、フレームFの時刻から入出力時間差だけ未来のフレームの出力データの発火パターン(出力発火パターン)を予測する場合、プロセスPro2で予測された内部表現から出力データを生成するプロセスPro3では、図38に示すように、出力ネットワークnet12の生成ノードとされたノードからではなく、プロセスPro2で予測された出力発火パターンから、出力データを生成する必要がある。
ここで、図38上は、ノードラベルを内部表現とし、フレームFの入力データに対する入力ネットワークnet11の勝者ノードとの結合重みが最強の出力ネットワークnet12のノードを生成ノードとして、その生成ノードから、出力データを生成するプロセスPro3を示している。
また、図38下は、発火パターンを内部表現として、出力発火パターンから、出力データを生成するプロセスPro3を示している。
図38上のプロセスPro3では、生成ノードが有する時系列パターンモデル21(図7)が表現する時系列パターンの時系列データ(プロトタイプの時系列データ)が、出力データとして生成される。
従って、図38上のプロセスPro3では、出力ネットワークnet12のノードの数がM個であるとすると、出力データ(の推定値)として生成される時系列データは、多くても、M通りしか存在しない。
一方、図38上のプロセスPro3では、出力発火パターンから、出力データとしての時系列データが生成される。
いま、出力ネットワークnet12のノードの数がM個であり、スコアがKビットで表されるとすると、出力ネットワークnet12のノードのスコアの分布である発火パターンは、(2K)M通りだけ存在する。従って、図38下のプロセスPro3では、出力データとして、最大で、(2K)M通りの時系列データを生成することができる。
ところで、出力発火パターンから出力データとしての時系列データを生成するには、出力発火パターンと出力データとしての時系列データを対応付ける(出力発火パターンから出力データとしての時系列データへの写像を求める)必要がある。
いま、出力発火パターンと出力データとしての時系列データとを対応付ける情報を、対時系列対応情報ということとすると、対時系列対応情報は、例えば、上述した対パターン対応情報と同様に、SVRなどの関数近似手法その他の手法によって求める(学習する)ことができる。
出力発火パターンと出力データとしての時系列データとの対応付けを、SVRによって行う場合には、対時系列対応情報は、式(6)の関数f()を規定するパラメータsjj,bとなる。
SVRによる対時系列対応情報の学習では、式(6)の関数f()が、出力発火パターンから生成する出力データとしての時系列データのサンプル点の数だけ用意される。いま、出力発火パターンから生成する出力データとしての時系列データのサンプル点の数が、例えば、フレームの時間Tに等しく、先頭からi番目(i=1,2,・・・,T)のサンプル点の時系列データ(サンプル値)に対応する関数f()を、fi()と表すこととすると、その関数fi()を規定するパラメータsjj,bとしての対時系列対応情報は、i番目のサンプル点のサンプル値を、学習サンプルとしての出力スカラ値yとするとともに、出力発火パターンに対応するベクトル、即ち、出力ネットワークnet12の各ノードのスコアをコンポーネントとするベクトルを、学習サンプルとしての入力ベクトルzとして求められる。
図39は、上述したように、入力データおよび出力データの内部表現として、発火パターンを採用し、プロセスPro2において、入力発火パターンから出力発火パターンを予測するとともに、プロセスPro3において、出力発火パターンから出力データを生成するロボットの構成例を示している。
なお、図中、図24のロボットと対応する部分については、同一の符号を付してあり、以下では、その説明は、適宜省略する。
図39において、学習処理部313には、図24の認識学習処理部321に代えて、認識学習処理部2321と生成学習処理部2322とが設けられている。
認識学習処理部2321には、データ抽出部312からフレーム単位の入力データと出力データとが供給される。
認識学習処理部2321は、図24の認識学習処理部321と同様に、記憶部311に記憶された入出力関係モデルM1112における入力ネットワークnet11の各ノードについて、データ抽出部312からのフレーム単位の入力データに対するスコアを求め、入力ネットワークnet11のノードの中から、スコアの最も良いノードを、勝者ノード(入力勝者ノード)に決定する。そして、認識学習処理部2321は、データ抽出部312からのフレームの入力データに対する入力勝者ノードに基づいて、入力ネットワークnet11を、自己組織的に更新する。
また、認識学習処理部2321は、入力ネットワークnet11の、フレーム単位の入力データに対するスコアの分布である入力発火パターン(を表す情報)を、写像学習部314のデータバッファ2331に時系列に供給する。
さらに、認識学習処理部2321は、記憶部311に記憶された入出力関係モデルM1112における出力ネットワークnet12の各ノードについて、データ抽出部312からのフレーム単位の出力データに対するスコアを求め、出力ネットワークnet12のノードの中から、スコアの最も良いノードを、勝者ノード(出力勝者ノード)に決定する。そして、認識学習処理部2321は、データ抽出部312からのフレームの出力データに対する出力勝者ノードに基づいて、出力ネットワークnet12を、自己組織的に更新する。
また、認識学習処理部2321は、出力ネットワークnet12の、フレーム単位の出力データに対するスコアの分布である出力発火パターン(を表す情報)を、生成学習処理部2322と、写像学習部314のデータバッファ2331とに時系列に供給する。
生成学習処理部2322には、認識学習処理部2321からフレーム単位の出力データに対する出力発火パターンが供給される他、そのフレーム単位の出力データが、データ抽出部312から供給されるようになっている。
生成学習処理部2322は、データ抽出部312からのフレーム単位の出力データと、認識学習処理部2321から供給される、そのフレーム単位の出力データに対する出力発火パターンとに基づき、フレーム単位の出力データと、そのフレーム単位の出力データに対する出力発火パターンとを対応付ける対時系列対応情報を、例えば、上述したSVRにより学習し、入出力関係モデルM1112の一部として、記憶部311に記憶させる。
ここで、生成学習処理部2322で学習する対時系列対応情報は、あるフレームFの出力データの(時間)T個のサンプル値のすべてと、そのフレームFに対する出力発火パターンとを対応付ける情報であっても良いし、フレームFの出力データの一部のサンプル値と、そのフレームFに対する出力発火パターンとを対応付ける情報であっても良い。後述する時系列生成部2361では、出力発火パターンに対応付けられたサンプル値の数だけのサンプル値からなる出力データの推定値としての時系列データが、1フレームの入力データに対して生成される。
写像学習部314には、図24のデータバッファ331、読み出し部332、結合重み更新部333に代えて、それぞれデータバッファ2331、読み出し部2332、対パターン対応情報更新部2333が設けられている。
データバッファ2331は、認識学習処理部2321から時系列に供給される入力発火パターンと出力発火パターンとを一時記憶する。
読み出し部2332は、入力データのフレームを、順次、注目フレームとして、データバッファ2331に記憶された入力発火パターンのうちの、注目フレームの入力データに対する入力発火パターンと、データバッファ2331に記憶された出力発火パターンのうちの、注目フレームの時刻から入出力時間差だけ遅れた(未来の)フレームの出力データに対する出力発火パターンとを読み出して対応付け、その対応付けた入力発火パターンと出力発火パターンとのセットであるパターンセットを、対パターン対応情報更新部2333に供給する。
対パターン対応情報更新部2333は、読み出し部2332からのパターンセットの入力発火パターンと、そのパターンセットの出力発火パターンとに基づき、それらの入力発火パターンと出力発火パターンとを対応付ける対パターン対応情報を、例えば、上述したSVRにより学習し、入出力関係モデルM1112の結合重みの代わりに、記憶部311に記憶させる。
認識部316には、図24の勝者ノード決定部342に代えて、入力発火パターン出力部2342が設けられている。
入力発火パターン出力部2342には、スコア計算部341から、フレーム単位の入力データに対する入力ネットワークnet11の各ノードのスコアが供給されるようになっている。入力発火パターン出力部2342は、スコア計算部341から、あるフレームFの入力データに対する、入力ネットワークnet11の各ノードのスコアが供給されると、そのスコアの分布である入力発火パターンを構成して出力する。入力発火パターン出力部2342が出力する入力発火パターンは、写像部317の出力発火パターン決定部2351に供給される。
写像部317には、図24の生成ノード決定部351に代えて、出力発火パターン決定部2351が設けられている。
出力発火パターン決定部2351は、記憶部311に記憶された対パターン対応情報に基づいて、入力発火パターン出力部2342から供給される入力発火パターンに対応する出力発火パターンを決定し、生成部318の時系列生成部2361に供給する。
即ち、出力発火パターン決定部2351は、例えば、記憶部311に記憶された対パターン対応情報としての式(6)の関数f()を規定するパラメータsjj,bに基づき、入力発火パターン出力部2342から供給されるフレームFの入力データに対する入力発火パターンを引数として、式(6)の関数f()を演算することにより、フレームFの入力データに対する入力発火パターンから、そのフレームFから入出力時間差だけ未来のフレームの出力データ(の推定値)に対する出力発火パターンを予測し、生成部318の時系列生成部2361に供給する。
生成部318には、図24の時系列生成部361に代えて、時系列生成部2361が設けられている。
時系列生成部2361は、記憶部311に記憶された対時系列対応情報に基づいて、出力発火パターン決定部2351から供給される出力発火パターンに対応する時系列データを、出力データ(の推定値)として生成し、モータ駆動部303に供給する。
即ち、時系列生成部2361は、例えば、記憶部311に記憶された対時系列対応情報としての式(6)の関数f()を規定するパラメータsjj,bに基づき、出力発火パターン出力部2351から供給される、フレームFの入力データに対する入力発火パターンから予測された、フレームFから入出力時間差だけ未来のフレームの出力データに対する出力発火パターンを引数として、式(6)の関数f()を演算することにより、フレームFから入出力時間差だけ未来のフレームの出力データの一部または全部の推定値としての時系列データを生成し、モータ駆動部303に供給する。
次に、図40のフローチャートを参照して、図39のロボットが行う学習処理、即ち、入出力関係モデルM1112の学習処理について説明する。
例えば、ロボットに、目の前にあるボールを左右に転がすタスクを学習させる場合、オペレータは、ロボットの前にボールをおき、ロボットのアームを持って、ボールを左右に転がすように、アームを動かす。
この場合、センサ302において、左右に転がるボールの状態が検知され、その状態を表す時系列のセンサデータが、データ処理装置301のデータ抽出部312に供給される。
また、モータ駆動部303では、オペレータが動かしているアームの動きに対応するモータデータが生成され、データ処理装置301のデータ抽出部312に供給される。
データ抽出部312は、ステップS421において、センサ302からのセンサデータと、モータ駆動部303からのモータデータをコンポーネントとするベクトルの時系列であるセンサモータデータを、入力データとして、その入力データの時系列から、フレーム単位の入力データを抽出し、学習処理部313の認識学習処理部321に供給するとともに、センサモータデータを出力データとして、その出力データの時系列から、フレーム単位の出力データを抽出し、認識学習処理部2321と生成学習処理部2322に供給して、ステップS422に進む。
ステップS422では、認識学習処理部2321が、データ抽出部312からのフレーム単位の入力データと出力データを用いて、記憶部311に記憶された入出力関係モデルM1112(図25)が有する入力ネットワークnet11と出力ネットワークnet12の自己組織的な学習を行う。
即ち、ステップS422では、ステップS4221とS4222の処理が行われる。
ステップS4221では、認識学習処理部2321が、記憶部311に記憶された入出力関係モデルM1112における入力ネットワークnet11の各ノードについて、データ抽出部312からのフレーム単位の入力データに対するスコアを求め、入力ネットワークnet11のノードの中から、スコアの最も良いノードを、入力勝者ノードに決定する。さらに、認識学習処理部2321は、データ抽出部312からのフレーム単位の入力データに対する入力勝者ノードに基づいて、入力ネットワークnet11を、自己組織的に更新し、入力ネットワークnet11の、フレーム単位の入力データに対するスコアの分布である入力発火パターンを、データバッファ2331に供給する。
ステップS4222では、認識学習処理部2321が、記憶部311に記憶された入出力関係モデルM1112における出力ネットワークnet12の各ノードについて、データ抽出部312からのフレーム単位の出力データに対するスコアを求め、出力ネットワークnet12のノードの中から、スコアの最も良いノードを、出力勝者ノードに決定する。さらに、認識学習処理部2321は、データ抽出部312からのフレーム単位の出力データに対する出力勝者ノードに基づいて、出力ネットワークnet12を、自己組織的に更新し、出力ネットワークnet12の、フレーム単位の出力データに対するスコアの分布である出力発火パターンを、生成学習処理部2322と、写像学習部314とに供給する。
ステップS422の処理後は、ステップS423に進み、生成学習処理部2322は、データ抽出部312から供給される出力データのフレームを注目フレームとして、その注目フレームの出力データと、認識学習処理部2321から供給される、その注目フレームの出力データに対する出力発火パターンとに基づき、注目フレームの出力データと、その注目フレームの出力データに対する出力発火パターンとを対応付ける対時系列対応情報を学習し、記憶部311に記憶させて、ステップS424に進む。
ステップS424では、写像学習部314は、入力データのフレームのうちの、まだ注目フレームとしていないフレームを、注目フレームとして、認識学習処理部2321からの、注目フレームの入力データに対する入力発火パターンと、同じく認識学習処理部2321からの、注目フレームから入出力時間差だけ未来のフレームの出力データに対する出力発火パターンとを対応付ける。
即ち、ステップS424では、写像学習部314のデータバッファ2331において、認識学習処理部2321からのフレーム単位の入力データに対する入力発火パターンと、フレーム単位の出力データに対する出力発火パターンとが一時記憶される。
さらに、ステップS424では、写像学習部314の読み出し部2332が、データバッファ2331に記憶された入力発火パターンのうちの、注目フレームの入力データに対する入力発火パターンと、データバッファ2331に記憶された出力発火パターンのうちの、注目フレームの時刻から入出力時間差だけ未来のフレームの出力データに対する出力発火パターンとを読み出して、その入力発火パターンと出力発火パターンとのセットであるパターンセットを、対パターン対応情報更新部2333に供給する。
そして、ステップS424からステップS425に進み、写像学習部314の対パターン対応情報更新部2333が、読み出し部2332から供給されるパターンセットに基づき、対パターン対応情報を学習し、記憶部311に記憶させる。
なお、図40の学習処理は、入力データの先頭のフレームから終わりのフレームまでを、順次、注目フレームとして、ステップS422乃至S425の処理を繰り返し行うようにしてもよいし、入力データの先頭のフレームから終わりのフレームまでを、順次、注目フレームとして、ステップS422およびS423の処理を繰り返し行い、その後、再び、入力データの先頭のフレームから終わりのフレームまでを、順次、注目フレームとして、ステップS424およびS425の処理を繰り返し行うようにしても良い。
次に、図41のフローチャートを参照して、対時系列対応情報の学習(更新)を、SVRにより行う場合の、図40のステップS423の処理について、さらに説明する。
なお、ここでは、データ抽出部312から生成学習処理部2322に供給される注目フレームの出力データのすべてのサンプル値と、認識学習処理部2321から供給される、注目フレームの出力データに対する出力発火パターンとを対応付ける対時系列対応情報を学習することとする。
ステップS441において、生成学習処理部2322は、データ抽出部312から供給される注目フレームの出力データの先頭からのサンプル値の数をカウントする変数iを1に初期化し、ステップS442に進む。
ステップS442では、生成学習処理部2322は、フレームの先頭からi番目(i=1,2,・・・,T)のサンプル値viに対応する式(6)の関数f()である関数fi()について、注目フレームのi番目のサンプル値viを、学習サンプルとしての出力スカラ値yとするとともに、注目フレームの出力データに対する出力発火パターンに対応するベクトル、即ち、注目フレームの出力データに対する出力ネットワークnet12の各ノードのスコアをコンポーネントとするベクトルを、学習サンプルとしての入力ベクトルzとして、関数fi()を規定するパラメータsjj,b(以下、適宜、SVRパラメータPiという)を学習(更新)して、ステップS443に進む。
ステップS443では、生成学習処理部2322は、変数iがフレームの長さTに等しいかどうかを判定する。ステップS443において、変数iがフレームの長さTに等しくないと判定された場合、ステップS444に進み、生成学習処理部2322は、変数iを1だけインクリメントして、ステップS442に戻り、以下、同様の処理が繰り返される。
また、ステップS443において、変数iがフレームの長さTに等しいと判定された場合、即ち、フレームのT個のサンプル点すべてについて、SVRパラメータPiが求められた場合、生成学習処理部2322は、そのSVRパラメータPiを、対時系列対応情報として、記憶部311に記憶させて、リターンする。
次に、図42のフローチャートを参照して、対パターン対応情報の学習(更新)を、SVRにより行う場合の、図40のステップS425の処理について、さらに説明する。
ステップS461において、対パターン対応情報更新部2333は、読み出し部2332から供給されるパターンセットの出力発火パターン、即ち、入力データのあるフレームを注目フレームとすると、その注目フレームから入出力時間差だけ未来のフレームの出力データに対する出力発火パターンを構成する、出力ネットワークnet12のノードのスコアの数をカウントする変数mを1に初期化し、ステップS462に進む。
ステップS462では、対パターン対応情報更新部2333は、出力発火パターンのm番目(i=1,2,・・・,M)のスコアumに対応する式(6)の関数f()である関数fm()について、注目フレームから入出力時間差だけ未来のフレームの出力データに対する出力発火パターンのm番目(i=1,2,・・・,M)のスコアumを、学習サンプルとしての出力スカラ値yとするとともに、注目フレームの入力データに対する入力発火パターンに対応するベクトル、即ち、注目フレームの入力データに対する入力ネットワークnet11の各ノードのスコアをコンポーネントとするベクトルを、学習サンプルとしての入力ベクトルzとして、関数fm()を規定するパラメータsjj,b(以下、適宜、SVRパラメータQmという)を学習(更新)して、ステップS463に進む。
ステップS463では、対パターン対応情報更新部2333は、変数mが、出力ネットワークnet12のノードの数Mに等しいかどうかを判定する。ステップS463において、変数mがノードの数Mに等しくないと判定された場合、ステップS464に進み、対パターン対応情報更新部2333は、変数mを1だけインクリメントして、ステップS462に戻り、以下、同様の処理が繰り返される。
また、ステップS463において、変数mがノードの数Mに等しいと判定された場合、即ち、出力ネットワークnet12のノードすべてについて、SVRパラメータQmが求められた場合、対パターン対応情報更新部2333は、そのSVRパラメータQmを、対パターン対応情報として、記憶部311に記憶させて、リターンする。
次に、図43のフローチャートを参照して、図39のロボットが行う認知行動の処理、即ち、入出力関係モデルM1112を用いた時系列データの生成処理(認識生成処理)について説明する。
例えば、図40で説明したように、ロボットに、目の前にあるボールを左右に転がすタスクを学習させた後、ロボットの前にボールをおくと(さらに、必要に応じて、ボールを転がすと)、センサ302において、ボールの状態が検知され、その状態を表す時系列のセンサデータが、データ処理装置301のデータ抽出部315に供給される。
さらに、データ処理装置301のデータ抽出部315には、モータ駆動部303からモータデータも供給される。
データ抽出部315は、ステップS481において、センサ302からのセンサデータと、モータ駆動部303からのモータデータとをコンポーネントとするベクトルの時系列であるセンサモータデータを入力データとして、その入力データの時系列から、フレーム単位の入力データを抽出し、認識部316のスコア計算部341に供給して、ステップS482に進む。
認識部316では、ステップS482において、スコア計算部341が、データ抽出部315からのフレーム単位の入力データを、順次、注目フレームの入力データとして、その注目フレームの入力データに対して、記憶部311に記憶された入出力関係モデルM1112を構成する入力ネットワークnet11の各ノードのスコアを計算し、入力発火パターン出力部2342に供給する。
さらに、ステップS482では、入力発火パターン出力部2342が、スコア計算部341からの、注目フレームの入力データに対する入力ネットワークnet11の各ノードのスコアを用いて、そのスコアの分布である入力発火パターンを構成し、出力発火パターン決定部2351に供給して、ステップS483に進む。
ステップS483では、出力発火パターン決定部2351は、記憶部311に記憶された対パターン対応情報としての式(6)の関数f()を規定するSVRパラメータQmに基づき、入力発火パターン出力部2342からの注目フレームの入力データに対する入力発火パターンを引数zとして、式(6)の関数f()を演算することにより、注目フレームの入力データに対する入力発火パターンから、その注目フレームから入出力時間差だけ未来のフレームの出力データ(の推定値)に対する出力発火パターンを予測し、生成部318の時系列生成部2361に供給して、ステップS484に進む。
ステップS484では、時系列生成部2361は、記憶部311に記憶された対時系列対応情報としての式(6)の関数f()を規定するSVRパラメータPiに基づき、出力発火パターン出力部2351からの出力発火パターンを引数zとして、式(6)の関数f()を演算することにより、注目フレームから入出力時間差だけ未来のフレームの出力データの推定値である時系列データを生成して出力する。
この時系列データは、センサモータデータであり、そのセンサモータデータのうちのモータデータが、時系列生成部2361からモータ駆動部303に供給され、モータ駆動部303が、時系列生成部2361からのモータデータにしたがって、モータを駆動することにより、ロボットのアームが動かされる。
以下、データ抽出部315から認識部316に対して供給されるフレーム単位の入力データについて、ステップS482乃至S484の処理が行われる。
なお、上述のような、入力データの内部表現として、発火パターンを採用すること、および発火パターン(出力発火パターン)から時系列データ(出力データ)を生成することは、図9のデータ処理装置に適用可能である。
また、上述のような、入力データおよび出力データの内部表現として、発火パターンを採用すること、入力発火パターンから出力発火パターンを予測すること、および予測された出力発火パターンから出力データを生成することは、図20のデータ処理装置にも適用可能である。
さらに、入力データおよび出力データの内部表現として、発火パターンを採用すること、入力発火パターンから出力発火パターンを予測すること、および予測された出力発火パターンから出力データを生成することは、時系列パターン記憶ネットワークの他、ノードに、時系列パターンモデル21ではなく、入力データとしてのベクトルと同一次元の重みベクトルを有するSOMを対象として行うことが可能である。
ところで、入力データや出力データなどの時系列データから、フレーム単位の時系列データを抽出し、そのフレーム単位の時系列データを用いて、時系列パターン記憶ネットワークなどのSOMの学習を行うと、類似する時系列パターンを表現するノードどうしは、近い位置に配置されていく。
従って、時系列データにおいて、あるフレームFの時系列データの時系列パターンPFと、そのフレームFに時間的に近いフレームF'の時系列データの時系列パターンPF'とが、類似していない場合には、フレームFとF'とが時間的に近くても、そのフレームFの時系列データの時系列パターンPFを表現するノードと、フレームF'の時系列データの時系列パターンPF'を表現するノードとは、近い位置には配置されない。
即ち、例えば、凹形状の時系列パターンと、凸形状の時系列パターンとが、比較的短い周期で繰り返される正弦波から、その周期より短い長さのフレーム単位で、時系列データを抽出し、そのフレーム単位の時系列データを用いて、時系列パターン記憶ネットワークの学習を行うと、凹形状の時系列パターンのフレームの時系列データと、凸形状の時系列パターンのフレームの時系列データとが、時間的に近くても、凹形状の時系列パターンと凸形状の時系列パターンとが類似していないため、凹形状の時系列パターンを表現するノードと、凸形状の時系列パターンを表現するノードとは、遠い位置(互いに離れた位置)に配置される。
ここで、図44は、凹形状の時系列パターンと、凸形状の時系列パターンとが、比較的短い周期で繰り返される正弦波から抽出したフレーム単位の時系列データを、フレーム単位の入力データとして、時系列パターン記憶ネットワークに与えたときに勝者ノードとなるノードの軌跡を求めた実験の実験結果を示している。
なお、実験では、時系列パターン記憶ネットワークとして、横×縦が10×10個のノードを有する時系列パターン記憶ネットワークを採用し、ノードには、図8に示したような2次元的に配置される配置構造となるリンクを与えた。
また、実験では、図44上に示すように、時系列データとして、凹形状の時系列パターンと、凸形状の時系列パターンとが、比較的短い周期で繰り返される、式y=100sin(4t)で表される正弦波をサンプリングして得られる時系列データを用いた。サンプリングでは、正弦波の1周期、つまり、2πの区間から、314点のサンプル値を得た(0.01ごとのサンプリングを行った)。
さらに、以上のようなサンプリングによって得られる正弦波の時系列データから、連続する40サンプル点のサンプル値を、10サンプル点ずつシフトしながら抽出し、その40サンプル点のサンプル値を、フレーム単位の入力データとして、時系列パターン記憶ネットワークの学習を行った。
図44下は、学習後の時系列パターン記憶ネットワークに、フレーム単位の入力データを与えて求めた、勝者ノード(白い部分)の軌跡を示している。
図44下に示すように、ある1のフレームの次のフレームの入力データに対する勝者ノードが、その1のフレームの入力データに対する勝者ノードから大きく離れたノードとなることがある。
このように、あるフレームF1の入力データに対する勝者ノードNF1と、そのフレームF1の次のフレームF2の入力データに対する勝者ノードNF2とが大きく離れている場合、フレームF1の入力データに対する発火パターン(入力発火パターン)と、フレームF2の入力データに対する発火パターンとは、いわば時間的な連続性のない、大きく異なった発火パターンになる。
上述したように、対パターン対応情報や対時系列対応情報の学習を、SVRなどの関数近似によって行う場合、学習に用いる学習サンプルとしての入力ベクトルzとなる発火パターンが、時間的な連続性のないものであると、近似の精度が劣化し、その結果、入力発火パターンから出力発火パターンを予測するときの予測精度や、予測された出力発火パターンから出力データとしての時系列データを生成するときの、その時系列データの精度が劣化する。
そこで、あるフレームF1の入力データに対する勝者ノードNF1の決定後、そのフレームF1の次のフレームF2の入力データに対する勝者ノードNF2の決定は、上述したように、フレームF1の入力データに対する勝者ノードNF1との距離が所定の距離以内のノード(距離制限ノード)だけを対象にして行うことができる。これにより、入力発火パターンから出力発火パターンを予測するときの予測精度や、予測された出力発火パターンから出力データとしての時系列データを生成するときの、その時系列データの精度の劣化を防止することができる。
なお、以上のことは、出力データについても同様である。
ここで、図45に、時系列データとして、4種類の正弦波を用い、勝者ノードの決定を、時系列パターン記憶ネットワークノードのうちの、距離制限ノードだけを対象に行った場合と、すべてのノードを対象に行った場合の、勝者ノードの軌跡を示す。
なお、図45では、図44で説明したのと同一の10×10個のノードで構成される時系列パターン記憶ネットワークを用い、距離制限ノードとしては、直前のフレームの時系列データに対する勝者ノードからの距離が1以内のノード、つまり、直前のフレームの時系列データに対する勝者ノードと、その勝者ノードに隣接する8個のノードを採用している。
図45の左から1番目は、時系列データとしての4つの正弦波を示している。上から1番目は、式y=100sin(t)で表される正弦波であり、上から2番目は、式y=50sin(8t)-50で表される正弦波である。また、上から3番目は、式y=100sin(4t)で表される正弦波であり、上から4番目(下から1番目)は、式y=50sin(2t)+50で表される正弦波である。
図45の左から2番目は、4種類の正弦波それぞれについて、勝者ノードの決定を、時系列パターン記憶ネットワークのノードのうちの距離制限ノードだけを対象に行った場合の、勝者ノードの軌跡を示している。
図45の左から3番目(右から1番目)は、4種類の正弦波それぞれについて、勝者ノードの決定を、時系列パターン記憶ネットワークのノードのうちのすべてのノードを対象に行った場合の、勝者ノードの軌跡を示している。
図45から、勝者ノードの決定を、時系列パターン記憶ネットワークのノードのうちの距離制限ノードだけを対象に行った場合には、すべてのノードを対象に行った場合に比べて、勝者ノードが、局所的に集まり、ある時系列データ(フレーム単位の時系列データとする前の時系列データ)が有する時系列パターンが、局所的なノードで学習(獲得)されていることがわかる。
なお、図45によれば、時系列データから抽出したフレーム単位の時系列データに対する勝者ノードの軌跡により、時系列データを区別することができることがわかる。
図46は、上述したように、勝者ノードの決定を、時系列パターン記憶ネットワークノードのうちの距離制限ノードだけを対象に行い、かつ、入力データおよび出力データの内部表現として、発火パターンを採用し、入力発火パターンから出力発火パターンを予測するとともに、出力発火パターンから出力データを生成するロボットの構成例を示している。
なお、図中、図24または図39のロボットと対応する部分については、同一の符号を付してあり、以下では、その説明は、適宜省略する。
図46において、学習処理部313には、図39の認識学習処理部2321に代えて、認識学習処理部3321が設けられている。
認識学習処理部3321には、データ抽出部312からフレーム単位の入力データと出力データとが供給される。
認識学習処理部3321は、図39の認識学習処理部2321と同様の処理を行う。但し、図39の認識学習処理部2321は、入力ネットワークnet11のノードの中から、データ抽出部312からのフレーム単位の入力データに対するスコアが最も良いノードを、入力勝者ノードに決定するとともに、出力ネットワークnet12のノードの中から、データ抽出部312からのフレーム単位の出力データに対するスコアが最も良いノードを、出力勝者ノードに決定するのに対して、認識学習処理部3321は、距離制限ノードの中から、フレーム単位の入力データに対するスコアが最も良いノードを、入力勝者ノードに決定するとともに、フレーム単位の出力データに対するスコアが最も良いノードを、出力勝者ノードに決定する。
次に、図47のフローチャートを参照して、図46のロボットが行う学習処理、即ち、入出力関係モデルM1112の学習処理について説明する。
例えば、ロボットに、目の前にあるボールを左右に転がすタスクを学習させる場合、オペレータは、ロボットの前にボールをおき、ロボットのアームを持って、ボールを左右に転がすように、アームを動かす。
この場合、センサ302において、左右に転がるボールの状態が検知され、その状態を表す時系列のセンサデータが、データ処理装置301のデータ抽出部312に供給される。
また、モータ駆動部303では、オペレータが動かしているアームの動きに対応するモータデータが生成され、データ処理装置301のデータ抽出部312に供給される。
データ抽出部312は、ステップS501において、センサ302からのセンサデータと、モータ駆動部303からのモータデータをコンポーネントとするベクトルの時系列であるセンサモータデータを、入力データとして、その入力データの時系列から、フレーム単位の入力データを抽出し、学習処理部313の認識学習処理部321に供給するとともに、センサモータデータを出力データとして、その出力データの時系列から、フレーム単位の出力データを抽出し、認識学習処理部3321と生成学習処理部2322に供給して、ステップS502に進む。
ステップS502では、認識学習処理部3321が、データ抽出部312からのフレーム単位の入力データと出力データを用いて、記憶部311に記憶された入出力関係モデルM1112(図25)が有する入力ネットワークnet11と出力ネットワークnet12の自己組織的な学習を行う。
即ち、ステップS502では、ステップS5021とS5022の処理が行われる。
ステップS5021では、認識学習処理部3321が、記憶部311に記憶された入出力関係モデルM1112における入力ネットワークnet11の各ノードについて、データ抽出部312からのフレーム単位の入力データに対するスコアを求め、入力ネットワークnet11の距離制限ノードの中から、スコアの最も良いノードを、入力勝者ノードに決定する。さらに、認識学習処理部3321は、データ抽出部312からのフレーム単位の入力データに対する入力勝者ノードに基づいて、入力ネットワークnet11を、自己組織的に更新し、入力ネットワークnet11の、フレーム単位の入力データに対するスコアの分布である入力発火パターンを、データバッファ2331に供給する。
ステップS5022では、認識学習処理部3321が、記憶部311に記憶された入出力関係モデルM1112における出力ネットワークnet12の各ノードについて、データ抽出部312からのフレーム単位の出力データに対するスコアを求め、出力ネットワークnet12の距離制限ノードの中から、スコアの最も良いノードを、出力勝者ノードに決定する。さらに、認識学習処理部3321は、データ抽出部312からのフレーム単位の出力データに対する出力勝者ノードに基づいて、出力ネットワークnet12を、自己組織的に更新し、出力ネットワークnet12の、フレーム単位の出力データに対するスコアの分布である出力発火パターンを、生成学習処理部2322と、写像学習部314とに供給する。
ステップS502の処理後は、ステップS503,S504,S505に順次進み、図40のステップS423,S424,S425とそれぞれ同様の処理が行われる。
なお、図46のロボットが行う認知行動の処理、即ち、入出力関係モデルM1112を用いた時系列データの生成処理(認識生成処理)は、図43で説明した、図39のロボットが行う認知行動の処理と同様であるため、その説明は、省略する。
次に、図48および図49を参照して、図46のロボットを用いて行った実験の実験結果について説明する。
図48は、入力発火パターンから、出力発火パターンを予測した実験の実験結果を示している。
なお、図48において、xy平面上の各位置は、時系列パターン記憶ネットワークのノードの位置を表し、z軸は、各ノードのスコアを表す。
実験では、入力データおよび出力データとするセンサモータデータとして、式y=100sin(x)で表される時系列データを用い、その時系列データからフレーム単位の入力データと出力データを抽出し、そのフレーム単位の入力データと出力データを用いて、図44で説明した時系列パターン記憶ネットワークを入力ネットワークnet11および出力ネットワークnet12として有する入出力関係モデルM1112の学習を行った。
図48の左から1番目は、入出力関係モデルM1112の学習に用いたフレーム単位の入力データのうちの、ある時刻tのフレームの入力データに対する入力発火パターンを表している。
図48の左から2番目は、図48の左から1番目に示した、時刻tのフレームの入力データに対する入力発火パターンから予測した、未来の時刻t+1のフレームの出力データ(の推定値)に対する出力発火パターンを示している。
図48の左から3番目(右から1番目)は、入出力関係モデルM1112の学習に用いたフレーム単位の出力データのうちの、時刻t+1のフレームの出力データに対する実際の出力発火パターンを示している。
図48の左から2番目と3番目とを比較することにより、時刻tのフレームの入力データに対する入力発火パターンから、未来の時刻t+1のフレームの出力データ(の推定値)に対する出力発火パターンを精度良く予測することができていることが分かる。
図49は、出力発火パターンから、出力データ(の推定値)を生成した実験の実験結果を示している。
実験では、入力データおよび出力データとするセンサモータデータとして、図45に示した4つの正弦波の時系列データを用い、その時系列データからフレーム単位の入力データと出力データを抽出し、そのフレーム単位の入力データと出力データを用いて、図44で説明した時系列パターン記憶ネットワークを入力ネットワークnet11および出力ネットワークnet12として有する入出力関係モデルM1112の学習を行った。
また、実験では、式y=100sin(x)で表される時系列データからフレーム単位の時系列データを抽出し、そのフレーム単位の時系列データに対する出力ネットワークnet12の各ノードのスコアを求め、そのスコアに基づいて得られる勝者ノードを生成ノードとして、その生成ノードを用いて、時系列データを生成するとともに、スコアに基づいて得られる発火パターンを用いて、時系列データを生成した。
図49の上から1番目は、スコアを求めるのに用いた、式y=100sin(x)で表される時系列データを示している。
図49の上から2番目は、生成ノードを用いて生成された時系列データを示している。
図49の上から3番目(下から1番目)は、発火パターンを用いて生成された時系列データを示している。
図49から、発火パターンを用いた場合の方が、生成ノードを用いた場合に比較して滑らかな時系列データを得ることができることが分かる。
次に、図46のロボットにおいて、入出力関係モデルM1112の学習は、図47で説明したように行われるが、その学習は、大きく、入出力関係モデルM1112が有する入力ネットワークnet11および出力ネットワークnet12の学習(ステップS502)、対時系列対応関係の学習(ステップS503)、並びに対パターン対応関係の学習(ステップS505)に分けることができる。
入力ネットワークnet11および出力ネットワークnet12の学習、対時系列対応関係の学習、並びに対パターン対応関係の学習のすべては、バッチ学習とオンライン学習のいずれによっても行うことができ、従って、入出力関係モデルM1112の学習も、バッチ学習とオンライン学習のいずれによっても行うことができる。
そこで、図50のフローチャートを参照して、入出力関係モデルM1112の学習を、バッチ学習で行う場合について説明する。
入出力関係モデルM1112の学習を、バッチ学習で行う場合には、入出力関係モデルM1112の学習に用いる多数のセンサモータデータがあらかじめ用意される。
そして、ステップS1001において、あらかじめ用意された多数のセンサモータデータをすべて用いて、入力ネットワークnet11および出力ネットワークnet12の学習が行われる。
次に、ステップS1002において、あらかじめ用意された多数のセンサモータデータすべてを再び用いて、対パターン対応関係の学習が行われる。
そして、最後に、ステップS1003において、あらかじめ用意された多数のセンサモータデータすべてを再び用いて、対時系列対応関係の学習が行われる。
次に、図51のフローチャートを参照して、入出力関係モデルM1112の学習を、オンライン学習で行う場合について説明する。
入出力関係モデルM1112のオンライン学習は、入出力関係モデルM1112に用いるある長さのセンサモータデータが得られると開始される。
即ち、まずステップS1021において、センサモータデータを入力データおよび出力データとして、その先頭から終わりの方向にフレームの先頭の時刻tをずらしながら、時刻tのフレームの入力データと、次の時刻t+1のフレームの出力データとが抽出される。
そして、ステップS1022において、時刻tのフレームの入力データを用いて、入力ネットワークnet11の学習(更新)が行われるとともに、時刻t+1のフレームの出力データを用いて、出力ネットワークnet12の学習(更新)が行われる。
次に、ステップS1023において、時刻tのフレームの入力データに対する入力発火パターンと、時刻t+1のフレームの出力データに対する出力発火パターンとを用いて、入力発火パターンと出力発火パターンを対応付ける対パターン対応情報の学習(更新)が行われる。
その後、ステップS1024において、時刻t+1のフレームの出力データと、その出力データに対する出力発火パターンとを用いて、出力データと出力発火パターンを対応付ける対時系列対応情報の学習(更新)が行われる。
そして、時刻tが更新され、センサモータデータとしての入力データおよび出力データからフレームを抽出することができなくなるまで、ステップS1021乃至S1024の処理が繰り返し行われる。
なお、本実施の形態では、入出力関係モデルを、ノードに、時系列パターンモデル21を有する時系列パターン記憶ネットワークを用いて構成するようにしたが、入出力関係モデルは、ノードに、時系列パターンモデル21ではなく、入力データとしてのベクトルと同一次元の重みベクトルを有する(ノードに重みベクトルが割り当てられた)従来のSOMを用いて構成することもできる。
入出力関係モデルを、従来のSOMを用いて構成する場合には、ノードは、そのノードが有する重みベクトルのコンポーネントをサンプル値とする固定長の時系列パターンを表現することになる。
また、入出力関係モデルを、従来のSOMを用いて構成する場合には、ノードが有する重みベクトルの次元数(重みベクトルのコンポーネントの数)と、フレームの長さTとは一致させる必要があり、フレーム単位の時系列データに対するSOMのノードのスコアとしては、例えば、フレーム単位の時系列データを構成する各サンプル値をコンポーネントとするベクトルと、ノードが有する重みベクトルとの距離が用いられる。
さらに、本実施の形態では、時系列パターン記憶ネットワークのすべてのノードのスコアの分布を、発火パターンとしたが、発火パターンとしては、すべてのノードのスコアの分布ではなく、距離制限ノードのスコアの分布を採用することができる。発火パターンとして、距離制限ノードのスコアの分布を採用する場合、距離制限ノード以外のノードのスコアを0とすることにより、時系列パターン記憶ネットワークのすべてのノードのスコアの分布を、発火パターンとする場合と同様に処理することができる。
また、入出力関係モデルM1112が有する入力ネットワークnet11および出力ネットワークnet12は、図19の入出力関係モデルが有する時系列パターン記憶ネットワークnetinおよびnetoutと同様に、ノードの数や、リンク、ノードが有する時系列パターンモデル21が同一であっても良いし、異なっていても良い。
さらに、入出力関係モデルM1112が有する入力ネットワークnet11と出力ネットワークnet12の学習を、フレーム単位のセンサモータデータを用いて行い、かつ、入力ネットワークnet11と出力ネットワークnet12として、同一の時系列パターン記憶ネットワークを採用する場合には、その入力ネットワークnet11および出力ネットワークnet12は、学習の結果が同一となるから、1つの時系列パターン記憶ネットワークで代用することができる。この場合、1つ分の時系列パターン記憶ネットワーク(入力ネットワークnet11または出力ネットワークnet12)を記憶するのに必要な記憶容量を節約することができる。
次に、上述した一連の処理は、専用のハードウェアにより行うこともできるし、ソフトウェアにより行うこともできる。一連の処理をソフトウェアによって行う場合には、そのソフトウェアを構成するプログラムが、汎用のコンピュータや、いわゆる組み込み型のコンピュータ等にインストールされる。
そこで、図52は、上述した一連の処理を実行するプログラムがインストールされるコンピュータの一実施の形態の構成例を示している。
プログラムは、コンピュータに内蔵されている記録媒体としてのハードディスク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の構成例を示す図である。 時系列パターン記憶ネットワークを用いた処理を行うデータ処理装置の構成例を示すブロック図である。 学習部4の構成例を示すブロック図である。 学習処理部32の構成例を示すブロック図である。 更新重みを決定する決定方法を説明するための図である。 学習データ記憶部22に記憶させる学習データを更新する更新方法を説明するための図である。 学習処理を説明するフローチャートである。 認識部3の構成例を示すブロック図である。 認識処理を説明するフローチャートである。 生成部6の構成例を示すブロック図である。 生成処理を説明するフローチャートである。 入出力関係モデルの構成例を示す図である。 入出力関係モデルを用いた処理を行うデータ処理装置の構成例を示すブロック図である。 入出力関係モデルの学習を説明するフローチャートである。 結合重み行列を示す図である。 入出力関係モデルを用いて、出力データまたは制御データを推定する処理を説明するフローチャートである。 入出力関係モデルを適用したロボットの第1の構成例を示すブロック図である。 入出力関係モデルM1112を示す図である。 データ抽出部312の処理を説明するための図である。 読み出し部332の処理を説明するための図である。 入出力関係モデルM1112の学習を説明するフローチャートである。 入出力関係モデルM1112を用いて時系列データを生成する認識生成処理を説明するフローチャートである。 入出力関係モデルM1112を用いた認知行動のプロセスPro1,Pro2,Pro3を説明するための図である。 スコアの計算を距離制限ノードだけを対象に行うことを説明するための図である。 入出力関係モデルを適用したロボットの第2の構成例を示すブロック図である。 入出力関係モデルM1112の学習を説明するフローチャートである。 時系列パターン記憶ネットワークの学習を説明するフローチャートである。 入出力関係モデルM1112を用いて時系列データを生成する認識生成処理を説明するフローチャートである。 勝者ノードの決定の処理を説明するフローチャートである。 入力発火パターンから出力発火パターンを予測するプロセスPro2を説明するための図である。 プロセスPro2で予測された出力発火パターンから、出力データを生成するプロセスPro3を説明するための図である。 入出力関係モデルを適用したロボットの第3の構成例を示すブロック図である。 入出力関係モデルM1112の学習を説明するフローチャートである。 対時系列対応情報の学習の処理を説明するフローチャートである。 対パターン対応情報の学習の処理を説明するフローチャートである。 入出力関係モデルM1112を用いて時系列データを生成する認識生成処理を説明するフローチャートである。 勝者ノードの軌跡を示す図である。 勝者ノードの軌跡を示す図である。 入出力関係モデルを適用したロボットの第4の構成例を示すブロック図である。 入出力関係モデルM1112の学習を説明するフローチャートである。 入力発火パターンから、出力発火パターンを予測した実験の実験結果を示す図である。 出力発火パターンから、出力データ(の推定値)を生成した実験の実験結果を示す図である。 入出力関係モデルM1112のバッチ学習を説明するフローチャートである。 入出力関係モデルM1112のオンライン学習を説明するフローチャートである。 本発明を適用したコンピュータの一実施の形態の構成例を示すブロック図である。
符号の説明
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 認識学習処理部, 331 データバッファ, 332 読み出し部, 333 結合重み更新部, 341 スコア計算部, 342 勝者ノード決定部, 351 生成ノード決定部, 361 時系列生成部, 1321 認識学習処理部, 1341 スコア計算部, 1342 勝者ノード決定部, 2321 認識学習処理部, 2322 生成学習処理部, 2331 データバッファ, 2332 読み出し部, 2333 対パターン対応情報更新部, 2341 スコア計算部, 2342 入力発火パターン出力部, 2351 出力発火パターン決定部, 2361 時系列生成部, 3321 認識学習処理部, 10101 バス, 10102 CPU, 10103 ROM, 10104 RAM, 10105 ハードディスク, 10106 出力部, 10107 入力部, 10108 通信部, 10109 ドライブ, 10110 入出力インタフェース, 10111 リムーバブル記録媒体

Claims (4)

  1. 時系列データの処理を行うデータ処理装置において、
    時系列データから、所定の時間単位の時系列データを抽出するデータ抽出手段と、
    空間的な配置構造が与えられた複数のノードから構成されるSOM(Self-Organization Map)のノードが、所定の時間単位の時系列データに適合する度合いを表すスコアを求め、前記スコアが最も良いノードを、所定の時間単位の時系列データに最も適合するノードである勝者ノードに決定する処理手段と
    を備え、
    前記処理手段は、
    前記SOMにおいて、1の所定の時間単位の時系列データの直前の所定の時間単位の時系列データに対する勝者ノードとの距離が所定の距離以内のノードである距離制限ノードについて、前記1の所定の時間単位の時系列データに対するスコアを求め、
    前記距離制限ノードのうちの、前記スコアが最も良いノードを、前記1の所定の時間単位の時系列データに対する勝者ノードに決定する
    データ処理装置。
  2. 前記処理手段は、さらに、前記勝者ノードに基づいて、前記SOMを、自己組織的に更新する
    請求項1に記載のデータ処理装置。
  3. 時系列データの処理を行うデータ処理装置のデータ処理方法において、
    時系列データから、所定の時間単位の時系列データを抽出するデータ抽出ステップと、
    空間的な配置構造が与えられた複数のノードから構成されるSOM(Self-Organization Map)のノードが、所定の時間単位の時系列データに適合する度合いを表すスコアを求め、前記スコアが最も良いノードを、所定の時間単位の時系列データに最も適合するノードである勝者ノードに決定する処理ステップと
    を含み、
    前記処理ステップにおいて、
    前記SOMにおいて、1の所定の時間単位の時系列データの直前の所定の時間単位の時系列データに対する勝者ノードとの距離が所定の距離以内のノードである距離制限ノードについて、前記1の所定の時間単位の時系列データに対するスコアを求め、
    前記距離制限ノードのうちの、前記スコアが最も良いノードを、前記1の所定の時間単位の時系列データに対する勝者ノードに決定する
    データ処理方法。
  4. 時系列データの処理を行うデータ処理を、コンピュータに実行させるプログラムにおいて、
    時系列データから、所定の時間単位の時系列データを抽出するデータ抽出ステップと、
    空間的な配置構造が与えられた複数のノードから構成されるSOM(Self-Organization Map)のノードが、所定の時間単位の時系列データに適合する度合いを表すスコアを求め、前記スコアが最も良いノードを、所定の時間単位の時系列データに最も適合するノードである勝者ノードに決定する処理ステップと
    を含み、
    前記処理ステップにおいて、
    前記SOMにおいて、1の所定の時間単位の時系列データの直前の所定の時間単位の時系列データに対する勝者ノードとの距離が所定の距離以内のノードである距離制限ノードについて、前記1の所定の時間単位の時系列データに対するスコアを求め、
    前記距離制限ノードのうちの、前記スコアが最も良いノードを、前記1の所定の時間単位の時系列データに対する勝者ノードに決定する
    前記データ処理を、コンピュータに実行させるプログラム。
JP2006105544A 2006-04-06 2006-04-06 データ処理装置、データ処理方法、およびプログラム Expired - Fee Related JP4201012B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006105544A JP4201012B2 (ja) 2006-04-06 2006-04-06 データ処理装置、データ処理方法、およびプログラム
US11/732,644 US7725412B2 (en) 2006-04-06 2007-04-04 Identifying temporal sequences using a recurrent self organizing map

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006105544A JP4201012B2 (ja) 2006-04-06 2006-04-06 データ処理装置、データ処理方法、およびプログラム

Publications (2)

Publication Number Publication Date
JP2007280053A true JP2007280053A (ja) 2007-10-25
JP4201012B2 JP4201012B2 (ja) 2008-12-24

Family

ID=38681440

Family Applications (1)

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

Country Status (2)

Country Link
US (1) US7725412B2 (ja)
JP (1) JP4201012B2 (ja)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090132088A1 (en) * 2007-04-24 2009-05-21 Tairob Ltd. Transfer of knowledge from a human skilled worker to an expert machine - the learning process
US8078357B1 (en) * 2007-06-06 2011-12-13 Spark Integration Technologies Inc. Application-independent and component-isolated system and system of systems framework
US9052710B1 (en) * 2009-03-20 2015-06-09 Exelis Inc. Manipulation control based upon mimic of human gestures
JP5633734B2 (ja) * 2009-11-11 2014-12-03 ソニー株式会社 情報処理装置、情報処理方法、及び、プログラム
US8490018B2 (en) * 2009-11-17 2013-07-16 International Business Machines Corporation Prioritization of choices based on context and user history
EP2337280A1 (en) 2009-12-21 2011-06-22 Thomson Licensing Method to manage an opportunistic communication network
JP2011223287A (ja) * 2010-04-09 2011-11-04 Sony Corp 情報処理装置、情報処理方法、及び、プログラム
US9015093B1 (en) 2010-10-26 2015-04-21 Michael Lamport Commons Intelligent control with hierarchical stacked neural networks
US8775341B1 (en) 2010-10-26 2014-07-08 Michael Lamport Commons Intelligent control with hierarchical stacked neural networks
US9659063B2 (en) * 2010-12-17 2017-05-23 Software Ag Systems and/or methods for event stream deviation detection
US9424511B2 (en) 2011-11-09 2016-08-23 Qualcomm Incorporated Methods and apparatus for unsupervised neural component replay by referencing a pattern in neuron outputs
US9424513B2 (en) 2011-11-09 2016-08-23 Qualcomm Incorporated Methods and apparatus for neural component memory transfer of a referenced pattern by including neurons to output a pattern substantially the same as the referenced pattern
US9015091B2 (en) 2011-11-09 2015-04-21 Qualcomm Incorporated Methods and apparatus for unsupervised neural replay, learning refinement, association and memory transfer: structural plasticity and structural constraint modeling
US9443190B2 (en) 2011-11-09 2016-09-13 Qualcomm Incorporated Methods and apparatus for neural pattern sequence completion and neural pattern hierarchical replay by invoking replay of a referenced neural pattern
JP5516610B2 (ja) * 2012-01-19 2014-06-11 株式会社安川電機 ロボット、ロボットハンドおよびロボットハンドの保持位置調整方法
US9984154B2 (en) * 2015-05-01 2018-05-29 Morpho Detection, Llc Systems and methods for analyzing time series data based on event transitions
US10456910B2 (en) * 2016-01-14 2019-10-29 Purdue Research Foundation Educational systems comprising programmable controllers and methods of teaching therewith
US10356743B2 (en) 2016-08-05 2019-07-16 Neonic Corporation System and method for wireless location
US11215535B2 (en) * 2019-11-14 2022-01-04 Hitachi, Ltd. Predictive maintenance for robotic arms using vibration measurements

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2964507B2 (ja) * 1989-12-12 1999-10-18 松下電器産業株式会社 Hmm装置
JP3088171B2 (ja) * 1991-02-12 2000-09-18 三菱電機株式会社 自己組織型パタ−ン分類システム及び分類方法
US5724487A (en) * 1995-07-07 1998-03-03 Streit; Roy L. Neural network for maximum likelihood classification with supervised and unsupervised training capability
DE19649633A1 (de) * 1996-12-02 1998-06-04 Abb Patent Gmbh Verfahren zur Analyse und Darstellung von transienten Prozeßvorgängen
JP3922407B2 (ja) 1997-10-22 2007-05-30 ソニー株式会社 データ処理装置および方法
JP2003531656A (ja) * 1999-05-01 2003-10-28 ザ コート オブ ネーピア ユニバーシティー 医学的信号の解析方法
US6766316B2 (en) * 2001-01-18 2004-07-20 Science Applications International Corporation Method and system of ranking and clustering for document indexing and retrieval
US6608924B2 (en) * 2001-12-05 2003-08-19 New Mexico Technical Research Foundation Neural network model for compressing/decompressing image/acoustic data files
US6965885B2 (en) * 2002-01-22 2005-11-15 Koninklijke Philips Electronics N.V. Self-organizing feature map with improved performance by non-monotonic variation of the learning rate
JP3946562B2 (ja) * 2002-04-08 2007-07-18 本田技研工業株式会社 行動制御装置及び方法
US7006205B2 (en) * 2002-05-30 2006-02-28 Applied Materials Inc. Method and system for event detection in plasma processes
JP3826197B2 (ja) 2003-12-12 2006-09-27 独立行政法人情報通信研究機構 ロボットの位置および向きの情報の自己組織的学習処理方法ならびにその学習処理システム、およびその学習プログラム
US7463927B1 (en) * 2004-09-02 2008-12-09 Intelligent Neurostimulation Microsystems, Llc Self-adaptive system for the automatic detection of discomfort and the automatic generation of SCS therapies for chronic pain control
JP4639784B2 (ja) 2004-12-06 2011-02-23 ソニー株式会社 学習装置および学習方法、並びにプログラム
US7702482B2 (en) * 2004-12-30 2010-04-20 Microsoft Corporation Dependency structure from temporal data

Also Published As

Publication number Publication date
US20070280006A1 (en) 2007-12-06
US7725412B2 (en) 2010-05-25
JP4201012B2 (ja) 2008-12-24

Similar Documents

Publication Publication Date Title
JP4201012B2 (ja) データ処理装置、データ処理方法、およびプログラム
JP4639784B2 (ja) 学習装置および学習方法、並びにプログラム
JP4169063B2 (ja) データ処理装置、データ処理方法、及びプログラム
US11610130B2 (en) Knowledge sharing for machine learning systems
US11915152B2 (en) Learning coach for machine learning system
JP2006285899A (ja) 学習装置および学習方法、生成装置および生成方法、並びにプログラム
JP4710931B2 (ja) 学習装置、学習方法、およびプログラム
JP4843987B2 (ja) 情報処理装置、情報処理方法、およびプログラム
JP4710933B2 (ja) 学習装置、学習方法、およびプログラム
KR20070100160A (ko) 학습 장치, 학습 방법, 및 프로그램
JP2011059816A (ja) 情報処理装置、情報処理方法、及び、プログラム
JP2011059815A (ja) 情報処理装置、情報処理方法、及び、プログラム
JP2011059817A (ja) 情報処理装置、情報処理方法、及び、プログラム
JP4534769B2 (ja) 情報処理装置、情報処理方法、およびプログラム
JP2007280057A (ja) データ処理装置、データ処理方法、およびプログラム
JP2009140454A (ja) データ処理装置、データ処理方法、及びプログラム
JP2007280007A (ja) データ処理装置、データ処理方法、およびプログラム
JP2007280056A (ja) データ処理装置、データ処理方法、およびプログラム
JP2009053782A (ja) データ処理装置、データ処理方法、及びプログラム
JP2007280009A (ja) データ処理装置、データ処理方法、およびプログラム
JP2004309523A (ja) ロボット装置の動作パターン共有システム、ロボット装置の動作パターン共有方法、及びロボット装置
JP2009043122A (ja) データ処理装置、データ処理方法、及びプログラム
JP2007280008A (ja) データ処理装置、データ処理方法、およびプログラム
JP2008293259A (ja) データ処理装置、データ処理方法、及びプログラム
JP2010282556A (ja) 情報処理装置、情報処理方法、及び、プログラム

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: 20080516

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: 20080916

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: 20080929

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

Free format text: PAYMENT UNTIL: 20111017

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20121017

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20131017

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees