図1は、本発明を適用する学習装置の基本となる学習装置の一実施の形態の構成例を示している。
図1において、学習装置は、複数であるN個の学習モジュール101ないし10Nと、モデルパラメータ共有部20とから構成される。
学習モジュール10i(i=1,2,・・・,N)は、パターン入力部11i、モデル学習部12i、及びモデル記憶部13iから構成され、入力データを用いて、パターン学習モデルの複数のモデルパラメータ(学習リソース)を更新する更新学習を行う。
すなわち、パターン入力部11iには、モデル記憶部13iに記憶されたパターン学習モデルに獲得(学習)させるパターン(カテゴリ)の入力データが、パターン学習モデルの学習に用いる学習データとして供給される。
パターン入力部11iは、そこに供給される学習データを、パターン学習モデルの学習に適切な形のデータにする処理をして、モデル学習部12iに供給する。すなわち、例えば、学習データが時系列のデータである場合には、パターン入力部11iは、例えば、その時系列のデータを、固定の長さに区切って、モデル学習部12iに供給する。
モデル学習部12iは、パターン入力部11iからの学習データを用いて、モデル記憶部13iに記憶されたパターン学習モデルの複数のモデルパラメータを更新する更新学習を行う。
モデル記憶部13iは、複数のモデルパラメータを有し、パターンを学習するパターン学習モデルを記憶する。すなわち、モデル記憶部13iは、パターン学習モデルの複数のモデルパラメータを記憶する。
ここで、パターン学習モデルとしては、例えば、時系列のパターンである時系列パターンや、時間変化する力学系を表すダイナミクスを学習(獲得)(記憶)するモデル等を採用することができる。
時系列パターンを学習するモデルとしては、例えば、HMM(Hidden Markov Model)等があり、ダイナミクスを学習するモデルとしては、例えば、RNN,FNN(Feed Forward Neural Network),RNNPB等のニューラルネットワークや、SVR(Support Vector Regression)等がある。
例えば、HMMについては、HMMにおいて状態が遷移する確率を表す状態遷移確率や、状態が遷移するときに、HMMからある観測値が出力される確率を表す出力確率、又は確率密度を表す出力確率密度関数が、HMMのモデルパラメータである。
また、例えば、ニューラルネットワークについては、ニューロンに相当するユニット(ノード)において、他のユニットからの入力に付されるウエイト(重み)が、ニューラルネットワークのモデルパラメータである。
なお、HMMの状態遷移確率や、出力確率、又は出力確率密度関数、ニューラルネットワークのウエイトは、いずれも複数存在する。
モデルパラメータ共有部20は、N個の学習モジュール101ないし10Nのうちの、2以上の学習モジュールに、モデルパラメータを共有させる共有処理を行う。モデルパラメータ共有部20が共有処理を行うことにより、N個の学習モジュール101ないし10Nのうちの、2以上の学習モジュールは、モデルパラメータを共有する。
なお、以下では、説明を簡単にするため、モデルパラメータ共有部20は、N個の学習モジュール101ないし10Nのすべてに、モデルパラメータを共有させる共有処理を行うこととする。
次に、図2のフローチャートを参照して、図1の学習装置が行う、パターン学習モデルを学習する学習処理について説明する。
ステップS11において、学習モジュール10iのモデル学習部12iは、モデル記憶部13iに記憶されたモデルパラメータを、例えば、乱数等によって初期化して、処理は、ステップS12に進む。
ステップS12では、学習モジュール10iが、その学習モジュール10iで学習すべき学習データが供給(入力)されるのを待って、その学習データを用いて、モデルパラメータを更新する更新学習を行う。
すなわち、ステップS12では、学習モジュール10iにおいて、パターン入力部11iが、学習モジュール10iに供給された学習データを、必要に応じて処理し、モデル学習部12iに供給する。
さらに、ステップS12では、モデル学習部12iが、パターン入力部11iからの学習データを用いて、モデル記憶部13iに記憶されたパターン学習モデルの複数のモデルパラメータを更新する更新学習を行い、その更新学習によって得られた新たな複数のモデルパラメータによって、モデル記憶部13iの記憶内容を更新する(上書きする)。
ここで、ステップS11及びS12の処理は、N個の学習モジュール101ないし10Nのすべてで行われる。
ステップS12の後、処理は、ステップS13に進み、モデルパラメータ共有部20は、N個の学習モジュール101ないし10Nのすべてに、モデルパラメータを共有させる共有処理を行う。
すなわち、学習モジュール10iが有する複数のモデルパラメータのうちの、例えば、m番目のモデルパラメータに注目すると、モデルパラメータ共有部20は、N個の学習モジュール101ないし10Nそれぞれのm番目のモデルパラメータに基づいて、学習モジュール101のm番目のモデルパラメータを補正する。
さらに、モデルパラメータ共有部20は、N個の学習モジュール101ないし10Nそれぞれのm番目のモデルパラメータに基づいて、学習モジュール102のm番目のモデルパラメータを補正し、以下、同様にして、学習モジュール103ないし10Nそれぞれのm番目のモデルパラメータを補正する。
以上のように、モデルパラメータ共有部20が、学習モジュール10iのm番目のモデルパラメータを、N個の学習モジュール101ないし10Nそれぞれのm番目のモデルパラメータに基づいて補正することで、N個の学習モジュール101ないし10Nのm番目のモデルパラメータのそれぞれは、N個の学習モジュール101ないし10Nのm番目のモデルパラメータのすべての影響を受ける(N個の学習モジュール101ないし10Nのm番目のモデルパラメータのそれぞれに、N個の学習モジュール101ないし10Nのm番目のモデルパラメータのすべてを影響させる)。
このように、複数の学習モジュールのモデルパラメータすべてを、その複数の学習モジュールのモデルパラメータのそれぞれに影響させること(複数の学習モジュールのモデルパラメータのそれぞれが、その複数の学習モジュールのモデルパラメータすべての影響を受けること)が、複数の学習モジュールによるモデルパラメータの共有である。
モデルパラメータ共有部20は、ステップS13において、学習モジュール10iのモデル記憶部13iに記憶された複数のモデルパラメータのすべてを対象に、共有処理を行い、その共有処理によって得られたモデルパラメータによって、モデル記憶部131ないし13Nの記憶内容を更新する。
ステップS13の後、処理は、ステップS14に進み、図1の学習装置は、学習の終了条件が満たされているかどうかを判定する。
ここで、ステップS14での学習の終了条件としては、例えば、学習の回数、つまり、ステップS12及びS13が繰り返された回数が、あらかじめ定められた所定の回数となったことや、あらかじめ用意された学習データのすべてを用いて、ステップS12の更新学習が行われたこと、あるいは、ある入力データに対して出力されるべき出力データの真値が分かっている場合に、その入力データに対してパターン学習モデルから出力される出力データの、真値に対する誤差が所定値以下であること、等を採用することができる。
ステップS14において、学習の終了条件が満たされていないと判定された場合、処理は、ステップS12に戻り、以下、同様の処理が繰り返される。
また、ステップS14において、学習の終了条件が満たされていると判定された場合、処理は終了する。
なお、ステップS12とステップS13は、その処理の順番を逆にすることも可能である。即ち、N個の学習モジュール101ないし10Nのすべてに、モデルパラメータを共有させる共有処理を行った後、モデルパラメータを更新する更新学習を行うようにすることもできる。
次に、図3は、パターン学習モデルとして、RNNPBを採用した場合の、図1の学習装置の構成例を示している。
なお、図3においては、学習モジュール10iのパターン入力部11i及びモデル学習部12iの図示を省略してある。
モデル記憶部13iには、RNNPB(を定義するモデルパラメータ)が記憶されている。ここで、モデル記憶部13iに記憶されたRNNPBを、以下、適宜、RNNPB#iとも記載する。
RNNPBは、入力層、隠れ層(中間層)、及び出力層により構成されている。入力層、隠れ層、及び出力層は、それぞれ任意の数の、ニューロンに相当するユニットにより構成されている。
RNNPBでは、入力層の一部のユニットである入力ユニットに、時系列データ等の入力データxtが入力(供給)される。ここで、入力データxtとしては、例えば、画像や音声の特徴量や、ロボットの手や足に相当する部分の動きの軌道等を採用することができる。
また、入力層の、入力データxtが入力される入力ユニット以外のユニットの一部であるPBユニットには、PB(Parametric Bias)が入力される。PBによれば、同一の状態のRNNPBに対して、同一の入力データxtが入力されても、PBを変更することにより、異なる出力データx* t+1を得ることができる。
入力層の、入力データxtが入力される入力ユニット以外のユニットの残りであるコンテキストユニットには、出力層の一部のユニットより出力される出力データが、内部状態を表すコンテキストとしてフィードバックされる。
ここで、時刻tの入力データxtが入力層の入力ユニットに入力されるときに入力層のPBユニットとコンテキストユニットに入力される時刻tのPBとコンテキストを、それぞれ、PBtとctと記載する。
隠れ層のユニットは、入力層に入力される入力データxt,PBt,コンテキストctを対象として、所定のウエイト(重み)を用いた重み付け加算を行い、その重み付け加算の結果を引数とする非線形関数の演算を行って、その演算結果を、出力層のユニットに出力する。
出力層の一部のユニットからは、上述したように、次の時刻t+1のコンテキストct+1となる出力データが出力され、入力層にフィードバックされる。また、出力層の残りのユニットからは、例えば、入力データxtに対応する出力データとして、その入力データxtの次の時刻t+1の入力データxt+1の予測値x* t+1が出力される。
ここで、RNNPBでは、ユニットへの入力が重み付け加算されるが、この重み付け加算に用いられるウエイト(重み)が、RNNPBのモデルパラメータである。RNNPBのモデルパラメータとしてのウエイトには、入力ユニットから隠れ層のユニットへのウエイト、PBユニットから隠れ層のユニットへのウエイト、コンテキストユニットから隠れ層のユニットへウエイト、隠れ層のユニットから出力層のユニットへのウエイト、及び、隠れ層のユニットからコンテキストユニットへのウエイトの5種類がある。
パターン学習モデルとして、以上のようなRNNPBを採用した場合、モデルパラメータ共有部20には、RNNPBのモデルパラメータとしてのウエイトを、学習モジュール101ないし10Nに共有させるウエイトマトリクス共有部21が設けられる。
ここで、RNNPBのモデルパラメータとしてのウエイトは、複数あるが、その複数のウエイトをコンポーネントとするマトリクスを、ウエイトマトリクスという。
ウエイトマトリクス共有部21は、モデル記憶部131ないし13Nに記憶されたRNNPB#1ないしRNNPB#Nの複数のモデルパラメータとしてのウエイトマトリクスすべてを、学習モジュール101ないし10Nのそれぞれに共有させる。
すなわち、RNNPB#iのウエイトマトリクスをwiと表すこととすると、ウエイトマトリクス共有部21は、ウエイトマトリクスwiを、N個の学習モジュール101ないし10Nそれぞれのウエイトマトリクスw1ないしwNのすべてに基づいて補正することで、ウエイトマトリクスwiに、ウエイトマトリクスw1ないしwNのすべてを影響させる共有処理を行う。
具体的には、ウエイトマトリクス共有部21は、例えば、次式(1)に従い、RNNPB#iのウエイトマトリクスwiを補正する。
ここで、式(1)において、△wiは、ウエイトマトリクスwiを補正する補正成分であり、例えば、式(2)に従って求められる。
式(2)において、βijは、RNNPB#iのウエイトマトリクスwiに、RNNPB#j(j=1,2,・・・,N)のウエイトマトリクスwjを影響させる度合いを表す係数である。
したがって、式(2)の右辺のサメーションΣβij(wj-wi)は、係数βijを重みとした、RNNPB#iのウエイトマトリクスwjに対するRNNPB#1ないしRNNPB#Nのウエイトマトリクスw1ないしwNそれぞれの偏差(差分)の重み付け平均値を表し、αiは、その重み付け平均値Σβij(wj-wi)を、ウエイトマトリクスwiに影響させる度合いを表す係数である。
係数αi及びβijとしては、例えば、0.0より大で1.0より小の値を採用することができる。
式(2)によれば、係数αiが小であるほど、いわば共有が弱くなり(ウエイトマトリクスwiが受ける重み付け平均値Σβij(wj-wi)の影響が小さくなり)、係数αiが大であるほど、いわば共有が強まる。
なお、ウエイトマトリクスwiの補正の方法は、式(1)に限定されるものではなく、例えば、式(3)に従って行うことが可能である。
ここで、式(3)において、βij 'は、RNNPB#iのウエイトマトリクスwiに、RNNPB#j(j=1,2,・・・,N)のウエイトマトリクスwjを影響させる度合いを表す係数である。
したがって、式(3)の右辺の第2項におけるサメーションΣβij 'wjは、係数βij 'を重みとした、RNNPB#1ないしRNNPB#Nのウエイトマトリクスw1ないしwNの重み付け平均値を表し、αi 'は、その重み付け平均値Σβij 'wjを、ウエイトマトリクスwiに影響させる度合いを表す係数である。
係数αi '及びβij 'としては、例えば、0.0より大で1.0より小の値を採用することができる。
式(3)によれば、係数αi 'が大であるほど、共有が弱くなり(ウエイトマトリクスwiが受ける重み付け平均値Σβij 'wjの影響が小さくなり)、係数αi 'が小であるほど、共有が強まる。
次に、図4のフローチャートを参照して、パターン学習モデルとして、RNNPBを採用した場合の、図1の学習装置の学習処理について説明する。
ステップS21において、学習モジュール10iのモデル学習部12iは、モデル記憶部13iに記憶されたRNNPB#iのモデルパラメータであるウエイトマトリクスwiを、例えば、乱数等によって初期化して、処理は、ステップS22に進む。
ステップS22では、学習モジュール10iが、その学習モジュール10iで学習すべき学習データxtが入力されるのを待って、その学習データxtを用いて、モデルパラメータを更新する更新学習を行う。
すなわち、ステップS22では、学習モジュール10iにおいて、パターン入力部11iが、学習モジュール10iに供給された学習データxtを、必要に応じて処理し、モデル学習部12iに供給する。
さらに、ステップS22では、モデル学習部12iが、パターン入力部11iからの学習データxtを用いて、モデル記憶部13iに記憶されたRNNPB#iのウエイトマトリクスwiを更新する更新学習を、例えば、BPTT(Back-Propagation Through Time)法により行い、その更新学習によって得られた新たなモデルパラメータとしてのウエイトマトリクスwiによって、モデル記憶部13iの記憶内容を更新する。
ここで、ステップS21及びS22の処理は、N個の学習モジュール101ないし10Nのすべてで行われる。
また、BPTT法については、例えば、特開2002-236904号公報等に記載されている。
ステップS22の後、処理は、ステップS23に進み、モデルパラメータ共有部20のウエイトマトリクス共有部21は、N個の学習モジュール101ないし10Nのすべてに、ウエイトマトリクスw1ないしwNのすべてを共有させる共有処理を行う。
すなわち、ステップS23において、ウエイトマトリクス共有部21は、例えば、式(2)に従い、モデル記憶部131ないし13Nに記憶されたウエイトマトリクスw1ないしwNを用いて補正成分△w1ないし△wNをそれぞれ求め、その補正成分△w1ないし△wNにより、モデル記憶部131ないし13Nに記憶されたウエイトマトリクスw1ないしwNを、式(1)に従ってそれぞれ補正する。
ステップS23の後、処理は、ステップS24に進み、図1の学習装置は、学習の終了条件が満たされているかどうかを判定する。
ここで、ステップS24での学習の終了条件としては、例えば、学習の回数、つまり、ステップS22及びS23が繰り返された回数が、あらかじめ定められた所定の回数となったことや、ある入力データxtに対してRNNPB#iが出力する出力データx* t+1、すなわち、入力データxt+1の予測値x* t+1の、入力データxt+1に対する誤差が所定値以下であること、等を採用することができる。
ステップS24において、学習の終了条件が満たされていないと判定された場合、処理は、ステップS22に戻り、以下、同様の処理、すなわち、ウエイトマトリクスwiの更新学習と、共有処理とが交互に繰り返される。
また、ステップS24において、学習の終了条件が満たされていると判定された場合、処理は終了する。
なお、図4においても、ステップS22とステップS23は、その処理の順番を逆にすることが可能である。
以上のように、規模拡張性に優れた複数の学習モジュール101ないし10Nそれぞれにおいて、モデルパラメータを共有しながら、その複数の学習モジュール101ないし10Nそれぞれのモデルパラメータを更新する更新学習を行うことにより、1つの学習モジュールだけで行われる学習で得られる汎化特性が、複数の学習モジュール101ないし10Nの全体で得ることができ、その結果、規模拡張性があり、同時に、汎化特性を有するパターン学習モデルを得ることができる。
すなわち、多くのパターンを獲得(記憶)することができ、かつ、複数のパターンの共通性を獲得することができる。さらに、複数のパターンの共通性を獲得することで、その共通性に基づいて、未学習のパターンの認識や生成を行うことが可能となる。
具体的には、学習データとして、例えば、N種類の音韻の音声データを、N個の学習モジュール101ないし10Nにそれぞれ与えて、パターン学習モデルの学習を行った場合に、そのパターン学習モデルによれば、学習に用いられていない時系列パターンの音声データの認識や生成を行うことができる。さらに、例えば、学習データとして、例えば、ロボットのアームを駆動するための、N種類の駆動データを、N個の学習モジュール101ないし10Nにそれぞれ与えて、パターン学習モデルの学習を行った場合に、そのパターン学習モデルによれば、学習に用いられていない時系列パターンの駆動データの生成を行うことができ、その結果、ロボットは、教えられていないアームの動きをすることが可能となる。
また、学習後のパターン学習モデルによれば、パターン学習モデル間のモデルパラメータ(リソース)どうしの距離に基づいて、パターン学習モデルどうしの類似性を評価し、類似性が高いパターン学習モデルどうしをクラスタとして、パターンのクラスタリングを行うことができる。
次に、図5ないし図9を参照して、本件発明者が行った、図1の学習装置による学習処理(以下、適宜、共有学習処理という)のシミュレーションの結果について説明する。
図5は、共有学習処理で学習を行ったパターン学習モデルについての各データを示している。
なお、シミュレーションでは、パターン学習モデルとして、2つのPBが入力層に入力され、3つのコンテキストが入力層にフィードバックされる9個のRNNPB#1ないしRNNPB#9を採用し、学習データとして、3つのパターンP#1,P#2,P#3の時系列データのそれぞれに、異なる3つのノイズN#1,N#2,N#3のそれぞれを重畳して得られる9個の時系列データを用いた。
また、RNNPB#1には、パターンP#1の時系列データにノイズN#1を重畳して得られる時系列データを、RNNPB#2には、パターンP#1の時系列データにノイズN#2を重畳して得られる時系列データを、RNNPB#2には、パターンP#1の時系列データにノイズN#3を重畳して得られる時系列データを、それぞれ、学習データとして与えた。
同様に、RNNPB#4には、パターンP#2の時系列データにノイズN#1を重畳して得られる時系列データを、RNNPB#5には、パターンP#2の時系列データにノイズN#2を重畳して得られる時系列データを、RNNPB#6には、パターンP#2の時系列データにノイズN#3を重畳して得られる時系列データを、それぞれ、学習データとして与え、RNNPB#7には、パターンP#3の時系列データにノイズN#1を重畳して得られる時系列データを、RNNPB#8には、パターンP#3の時系列データにノイズN#2を重畳して得られる時系列データを、RNNPB#9には、パターンP#3の時系列データにノイズN#3を重畳して得られる時系列データを、それぞれ、学習データとして与えた。
なお、更新学習は、入力データxtに対してRNNPBが出力する出力データとしての、入力データxt+1の予測値x* t+1の、入力データxt+1に対する誤差(予測誤差)を小さくするように行った。
図5上から1番目は、学習後のRNNPB#1ないしRNNPB#9に、学習時に与えられた学習データを入力データとして与えたときに、RNNPB#1ないしRNNPB#9それぞれが出力する出力データ(output)と、その出力データの予測誤差(error)とを示している。
図5上から1番目において、予測誤差は、ほぼ0になっており、したがって、RNNPB#1ないしRNNPB#9は、入力データ、つまり、学習時に与えられた学習データとほぼ一致する出力データを出力する。
図5上から2番目は、学習後のRNNPB#1ないしRNNPB#9が、図5上から1番目に示した出力データを出力するときの、3つのコンテキストの時間変化を示している。
また、図5上から3番目は、学習後のRNNPB#1ないしRNNPB#9が、図5上から1番目に示した出力データを出力するときの、2つのPB(以下、適宜、2つのPBそれぞれを、PB#1,PB#2と記載する)の時間変化を示している。
図6は、学習後のRNNPB#1ないしRNNPB#9のうちの、例えば、5番目のRNNPB#5が、各値のPB#1,PB#2に対して出力する出力データを示している。
なお、図6では、横軸がPB#1を表し、縦軸がPB#2を表している。
図6によれば、RNNPB#5は、PB#1が0.6程度のときに、学習時に与えられた学習データとほぼ一致する出力データを出力しており、これにより、RNNPB#5は、学習時に与えられた学習データのパターンP#2を獲得していることが分かる。
また、RNNPB#5は、PB#1が0.6より小さいときに、RNNPB#1ないしRNNPB#3に学習させたパターンP#1や、RNNPB#7ないしRNNPB#9に学習させたパターンP#3に類似する時系列データを出力しており、これにより、RNNPB#5が、RNNPB#1ないしRNNPB#3が獲得したパターンP#1や、RNNPB#7ないしRNNPB#9が獲得したパターンP#3の影響を受け、いわば、RNNPB#5に対して学習時に与えられた学習データのパターンP#2が、RNNPB#1ないしRNNPB#3が獲得したパターンP#1や、RNNPB#7ないしRNNPB#9が獲得したパターンP#3の方向に変形していくときに現れる中間のパターンをも獲得していることが分かる。
さらに、RNNPB#5は、PB#1が0.6より大であるときに、9個のRNNPB#1ないしRNNPB#9のいずれにも学習させていないパターンの時系列データを出力しており、これにより、RNNPB#5が、RNNPB#1ないしRNNPB#3が獲得したパターンP#1や、RNNPB#7ないしRNNPB#9が獲得したパターンP#3の影響を受け、いわば、RNNPB#5に対して学習時に与えられた学習データのパターンP#2が、RNNPB#1ないしRNNPB#3が獲得したパターンP#1や、RNNPB#7ないしRNNPB#9が獲得したパターンP#3の方向とは逆方向に変形していくときに現れるパターンをも獲得していることが分かる。
次に、図7は、9個のRNNPB#1ないしRNNPB#9それぞれのウエイトマトリクスどうしの相関としての距離、すなわち、例えば、ウエイトマトリクスを構成する各ウエイトをコンポーネントとするベクトルの空間における、そのベクトルどうしの距離を表す長方形状のマップを示している。
なお、ウエイトマトリクスどうしの距離が小であるほど、その2つのウエイトマトリクスどうしの相関が高い。
図7のマップでは、横軸と縦軸のそれぞれに、9個のRNNPB#1ないしRNNPB#9それぞれのウエイトマトリクスをとって、その横軸のウエイトマトリクスと、縦軸のウエイトマトリクスとの距離が、濃淡で示されており、濃い(黒い)部分ほど、距離が小であることを表す(淡い(白い)部分ほど、距離が大であることを表す)。
図7において、横×縦が5×3個のマップのうちの、左上のマップは、学習の回数が0回目であるときのウエイトマトリクスどうしの距離、すなわち、初期化がされたウエイトマトリクスどうしの距離を示しており、マップにおいて、対角線上に並ぶ、同一のRNNPB#iのウエイトマトリクスどうしの距離だけが小になっている。
以下、図7では、右に行くほど、そして、下に行くほど、学習が進行したときのマップが示されており、右下のマップが、学習の回数が1400回目であるときのウエイトマトリクスどうしの距離を示している。
図7によれば、学習が進行するにつれ、同一のパターンP#1の時系列データを学習したRNNPB#1ないしRNNPB#3のウエイトマトリクスどうしの距離、同一のパターンP#2の時系列データを学習したRNNPB#4ないしRNNPB#6のウエイトマトリクスどうしの距離、及び、同一のパターンP#3の時系列データを学習したRNNPB#7ないしRNNPB#9のウエイトマトリクスどうしの距離が小さくなることが分かる。
図8は、図5ないし図7の場合とは別の時系列データを用いて学習を行ったRNNPBのウエイトマトリクスどうしの相関としての距離を表す、図7と同様のマップを示している。
なお、図8のマップを作成するシミュレーションでは、図9に示す5種類のパターンP#1,P#2,P#3,P#4,P#5の時系列データのそれぞれに、異なる4つのノイズN#1,N#2,N#3,N#4のそれぞれを重畳して得られる20個の時系列データを用意し、各時系列データを、1つのRNNPBに学習させた。したがって、図8のマップを作成するシミュレーションで用いたRNNPBは、20個のRNNPB#1ないしRNNPB#20である。
また、学習では、RNNPB#1ないしRNNPB#4には、パターンP#1の時系列データを、RNNPB#5ないしRNNPB#8には、パターンP#2の時系列データを、RNNPB#9ないしRNNPB#12には、パターンP#3の時系列データを、RNNPB#13ないしRNNPB#16には、パターンP#4の時系列データを、RNNPB#17ないしRNNPB#20には、パターンP#5の時系列データを、それぞれ与えた。
図8左の5×3個のマップは、共有が弱い場合、すなわち、20個のRNNPB#1ないしRNNPB#20のウエイトマトリクスw1ないしw20それぞれに、その20個のウエイトマトリクスw1ないしw20のすべてを影響させる度合いが小さい場合、具体的には、式(2)の係数αiが小である場合(αiがほぼ0である場合)のマップを示している。
また、図8右の5×3個のマップは、共有が強い場合、すなわち、20個のRNNPB#1ないしRNNPB#20のウエイトマトリクスw1ないしw20それぞれに、その20個のウエイトマトリクスw1ないしw20のすべてを影響させる度合いが大きい場合、具体的には、式(1)の係数αiが小でない場合のマップを示している。
共有が弱い場合も強い場合も、学習の回数が0回目であるときの左上のマップでは、対角線上に並ぶ、同一のRNNPB#iのウエイトマトリクスどうしの距離だけが小になっている。
そして、共有が弱い場合には、図8左に示すように、学習が進行しても、ウエイトマトリクスどうしの距離に、特に傾向は現れないが、共有が強い場合には、図8右に示すように、同一のパターンの時系列データを学習したRNNPBの間で、ウエイトマトリクスどうしの距離が小さくなることが分かる。
したがって、共有処理によって、複数の学習モジュールをまたいで分散表現が形成され、複数のRNNPBが汎化特性を有するようになっていることが分かる。
なお、モデル学習部12iによるモデルパラメータの更新学習の方法、及び、モデルパラメータ共有部20による共有処理の方法は、上述した方法に限定されるものではない。
また、本実施の形態では、モデルパラメータ共有部20による共有処理において、N個の学習モジュール101ないし10Nのすべてに、モデルパラメータとしてのウエイトマトリクスを共有させるようにしたが、その他、例えば、N個の学習モジュール101ないし10Nのうちの一部だけに、モデルパラメータとしてのウエイトマトリクスを共有させることが可能である。
さらに、本実施の形態では、モデルパラメータ共有部20による共有処理において、学習モジュール10iに、複数のモデルパラメータとしての、ウエイトマトリクスを構成する複数のウエイトすべてを共有させるようにしたが、共有処理では、ウエイトマトリクスを構成する複数のウエイトすべてではなく、そのうちの一部のウエイトだけを共有させるようにすることが可能である。
また、N個の学習モジュール101ないし10Nのうちの一部だけに、ウエイトマトリクスを構成する複数のウエイトのうちの一部のウエイトだけを共有させることも可能である。
なお、図1の学習装置は、モデルパラメータ共有部20が、複数の学習モジュール101ないし10Nに、モデルパラメータを共有させる、つまり、各学習モジュール10iにおけるパターン学習モデルとしてのRNNPB#iのモデルパラメータであるウエイトマトリクスwiに、学習モジュール101ないし10NそれぞれにおけるRNNPB#1ないしRNNPB#Nのウエイトマトリクスw1ないしwNを影響させる点で、RNNの学習時に、2つのRNNのコンテキストどうしの誤差に基づいて、その2つのRNNのコンテキストを変化させる、つまり、各RNNのコンテキストに、2つのRNNのコンテキストを影響させる特許文献1に記載の技術と共通する。
しかしながら、図1の学習装置では、影響を受けるのが、モデルパラメータであるウエイトマトリクスである点で、モデルパラメータではなく、内部状態であるコンテキストが影響を受ける特許文献1に記載の技術と相違する。
すなわち、例えば、関数で表現されるパターン学習モデルを例にすれば、パターン学習モデルのモデルパラメータは、そのパターン学習モデルを表現する関数を定義する、学習によって求められる定数(例えば、入力がuと、出力がyと、内部状態がxと、それぞれ表されるシステムをモデル化する状態方程式y=Cx+Du、及びx'=Ax+Bu(x'はxの微分を表す)を例にすれば、A,B,C,Dにあたる)であり、そもそも定数ではない内部状態(状態方程式の例では、内部状態x)とは異なる。
同様に、図1の学習装置は、各学習モジュール10iにおけるパターン学習モデルとしてのRNNPB#iのモデルパラメータであるウエイトマトリクスwiに、学習モジュール101ないし10NそれぞれにおけるRNNPB#1ないしRNNPB#Nのウエイトマトリクスw1ないしwNを影響させる点で、RNNPBの学習時に、2つのRNNPBのPBどうしの差に基づいて、その2つのRNNPBのPBを変化させる、つまり、各RNNPBのPBに、2つのRNNPBのPBを影響させる非特許文献1に記載の技術と共通する。
しかしながら、図1の学習装置では、影響を受けるのが、モデルパラメータであるウエイトマトリクスである点で、モデルパラメータではなく、内部状態である(あるいは、内部状態に相当する)PBが影響を受ける非特許文献1に記載の技術と相違する。
すなわち、上述したように、パターン学習モデルのモデルパラメータとは、パターン学習モデルを表現する関数を定義する、学習によって求められる定数であり、定数ではない内部状態とは異なる。
そして、モデルパラメータは、パターン学習モデルを表現する関数を定義する、学習によって求められる定数であるがゆえに、学習時は、学習をしようとするパターンに対応する値になるように更新(変更)されるが、出力データを生成するとき(パターン学習モデルとしてのRNNPBの入力層に入力データを入力し、その入力データに対応する出力データを、RNNPBの出力層から出力するとき)には、変更されない。
一方、特許文献1に記載の技術が対象としているコンテキスト、及び、非特許文献1に記載の技術が対象としているPBは、モデルパラメータとは異なる内部状態であるがゆえに、学習時は勿論、出力データを生成するときも変更される。
以上のように、図1の学習装置は、特許文献1及び非特許文献1に記載の技術のいずれとも相違し、その結果、規模拡張性があり、同時に、汎化特性を有するパターン学習モデルを得ることができる。
すなわち、図1の学習装置では、例えば、図10に示すように、RNNPBなどのパターン学習モデルのモデルパラメータを共有させる。
その結果、図1の学習装置によれば、図11に示すように、規模拡張性に優れるが、汎化特性に欠ける「局所表現」スキームと、汎化特性があるが、規模拡張性に欠ける「分散表現」スキームとの2種類の学習の両方の長所を有する、いわば「中間表現」スキームの学習を行い、規模拡張性があり、同時に、汎化特性を有するパターン学習モデルを得ることができる。
次に、基本となる図1の学習装置に対して、更新学習した学習モジュール10i(が記憶するモデルパラメータが表す時系列パターンまたはダイナミクス)を、時系列パターンやダイナミクスの特徴に応じて、適切に分類することができるようにした学習装置について説明する。
従来、時系列パターンを分類する技術としては、例えば、教師なし分類に関するものとして、Mixture of RNN ExpertやRNN-SOM(self-organization map)、HMM−SOMなどがある。RNN-SOMまたはHMM−SOMとは、ベクトルパターンのカテゴリ学習に用いられる自己組織化マップ(SOM)の各ノードに、RNNまたはHMMを採用したものである。
しかしながら、Mixture of RNN Expert、RNN-SOM、HMM−SOMなどでは、学習対象として入力された時系列パターンと、学習モジュールが出力した時系列パターンのユークリッド距離に基づいて、入力された時系列パターンの分類を行っているために、時系列パターンやダイナミクスの特徴を適切に反映した分類ができないという問題があった。
そこで、図1の学習装置を発展させ、パターン学習モデルのモデルパラメータ距離に基づいて分類することで、時系列パターンやダイナミクスの特徴を反映した分類を可能とした学習装置を図12に示す。
即ち、図12は、本発明を適用した学習装置の一実施の形態の構成例を示している。
図12において、上述した図1の学習装置と対応する部分については同一の符号を付してあり、その説明は省略する。
図12の学習装置101は、学習モジュール101ないし10N、モデルパラメータ共有部20、およびパターン分類部111により構成され、パターン分類部111が新たに設けられている点で、図1の学習装置と相違する。
パターン分類部111は、更新学習後のパターン学習モデルのモデルパラメータを、N個の学習モジュール101ないし10Nそれぞれから取得し、モデルパラメータ距離に基づく分類を行う。上述したように、パターン学習モデルのモデルパラメータは複数あり、ベクトルとなっているので、モデルパラメータ距離に基づく分類手法としては、教師なし分類アルゴリズムの一つである、例えば、k-means法を採用することができる。
また、学習モジュール間のモデルパラメータ距離(以下、単にパラメータ距離と称する)は、学習モジュール間のモデルパラメータのユークリッド距離で求めることができる。例えば、学習モジュール101と学習モジュール102のパラメータ距離Dparameter(1,2)は、式(4)で計算することができる。なお、式(4)におけるkは、学習モジュール101または102のモデルパラメータを識別する変数を表し、例えば、p1,kは、学習モジュール101のk番目(k≦Q)のモデルパラメータを表す。
時系列パターンに対してパターン学習モデルのモデルパラメータが一意に決まるような冗長性の低いパターン学習モデルであれば、パターン学習モデルの類似性の評価にパラメータ距離を用いることは容易に想像できるが、例えば、ニューラルネット(RNN)などのように冗長性の高いパターン学習モデルにおいて、パラメータ距離をパターン学習モデルの類似性の評価に用いることができるのは、上述した共有学習処理により、類似した時系列パターンを学習する学習モジュール間ではパラメータ距離が小さくなるという特性を有しているからである。
図13のフローチャートを参照して、図12の学習装置101が行う、パターン分類も行う学習処理について説明する。
図13の学習処理は、ステップS41ないしS44が図2のステップS11ないしS14にそれぞれ対応し、ステップS44の後に、図2の学習処理にはないステップS45が挿入されている点のみが異なるので、図13のステップS45の処理についてのみ説明する。
ステップS44で、学習の終了条件が満たされていると判定された場合、処理はステップS45に進み、パターン分類部111は、N個の学習モジュール101ないし10Nから、学習後のモデルパラメータを取得し、教師なし分類アルゴリズムであるk-means法を用いて、パターン分類処理を行う。ステップS45の処理が終了後、学習処理は終了する。
次に、パターン学習モデルとしてRNNを採用した場合について説明する。RNNは、入力層にPBユニットを有していない点のみがRNNPBと異なり、それ以外の更新学習等はRNNPBと同様に行うことができる。
図14は、パターン学習モデルとして、RNNを採用した場合の、図12の学習装置101の構成例を示している。
RNNでは、ウエイトがモデルパラメータであるので、パターン分類部111は、更新学習後のRNN#1ないしRNN#Nのウエイトマトリクスw1ないしwNを、学習モジュール101ないし10Nから取得し、ウエイトマトリクスのユークリッド距離(以下、ウエイト距離と称する)に基づく分類を行う。
例えば、RNN#1とRNN#2のウエイト距離Dweight(1,2)は、RNN#1のウエイトマトリクスw1の各ウエイトをw1,k,l(1≦k≦Q,1≦l≦R)、RNN#2のウエイトマトリクスw2の各ウエイトをw2,k,lとしたとき、式(5)で表すことができる。
図15は、パターン学習モデルとしてRNNを採用した場合の、図12の学習装置101の学習処理のフローチャートである。
図15の学習処理は、ステップS61ないしS64が図4のステップS21ないしS24にそれぞれ対応し、ステップS64の後に、図4の学習処理にはないステップS65が挿入されている点のみが異なるので、図15のステップS65の処理についてのみ説明する。
ステップS64で、学習の終了条件が満たされていると判定された場合、処理はステップS65に進み、パターン分類部111は、N個の学習モジュール101ないし10Nから、学習後のウエイトマトリクスw1ないしwNを取得し、その取得したウエイトマトリクスw1ないしwNを用いて、k-means法により、パターン分類処理を行う。ステップS65の処理が終了後、学習処理は終了する。
以上のようにして、学習装置101では、学習後のウエイトマトリクスw1ないしwNを用いて、時系列パターンやダイナミクスの特徴に基づいた学習モジュールの分類を行うことができる。これにより、例えば、多数の学習モジュールに共通の特徴を抽出すること(いわゆるデータマイニングを行うこと)などが可能となる。
次に、図16ないし図19を参照して、図12の学習装置101によるパターン分類処理を検証した実験結果について説明する。
図16は、実験を行った環境を示している。
本件発明者は、実験として、図12の学習装置101を備える移動ロボット141に2次元平面上の移動を行動パターンとして学習させることを行った。なお、パターン学習モデルには、3つのコンテキストが入力層にフィードバックされるRNNを採用した。
具体的には、本件発明者は、移動ロボット141を、図16に示される、4面の壁で囲まれた空間(部屋)161内に置き、その空間161内を移動する6つの行動パターンACT#1ないしACT#6を移動ロボット141の各RNNに学習させた。なお、空間161のなかには、障壁171ないし174とライト175が設けられている。また、移動ロボット141には、6つの行動パターンACT#1ないしACT#6のほかに、壁(障壁)を避ける、光に近づくなどの反射行動が予め入力(学習)されている。
移動ロボット141は、距離センサと光センサを内蔵している。より具体的には、図17に示されるように、移動ロボット141は、2次元平面(XY平面)と並行な所定の面上で、かつ、自分の周囲360度を等分割した8方向の検出方向(点線で示される方向)の距離または光を検出する距離センサおよび光センサを備える。距離センサの8方向の入力値はd1ないしd8であり、光センサの8方向の入力値はh1ないしh8である。
そして、移動ロボット141に行動パターンを学習させるとは、移動ロボット141に2次元平面上の軌道(位置の軌跡)を学習させるのではなく、移動ロボット141が各軌道を通過したときに、センサが取得したセンサ入力値と、移動ロボット141の駆動部の出力値の時系列データを学習させることを意味する。
従って、実験では、移動ロボット141に、距離センサの入力値d1ないしd8と光センサの入力値h1ないしh8、および、所定のモータ出力に対応する移動ベクトル(mx,my)からなる18次元(mx,my,d1,・・,d8,h1,・・,h8)のベクトルパターン(時系列データ)を学習させた。
なお、本件発明者は、6つの行動パターンACT#1ないしACT#6それぞれについて、互いに軌道を少し異なるものとした5つのバリエーションを学習させたので、学習させた行動パターンのサンプル数は、合計で30個(6つの行動パターン×5バリエーション)となる。
図18は、30個のRNN#1ないしRNN#30に学習させた行動パターンACT#1ないしACT#6を示している。
図18に示されるように、本件発明者は、行動パターンACT#1についての5つのバリエーションをRNN#1ないしRNN#5に学習させ、行動パターンACT#2についての5つのバリエーションをRNN#6ないしRNN#10に学習させ、行動パターンACT#3についての5つのバリエーションをRNN#11ないしRNN#15に学習させ、行動パターンACT#4についての5つのバリエーションをRNN#16ないしRNN#20に学習させ、行動パターンACT#5についての5つのバリエーションをRNN#21ないしRNN#25に学習させ、行動パターンACT#6についての5つのバリエーションをRNN#26ないしRNN#30に学習させた。
図19は、図15の学習処理後の各RNN間のウエイト距離を、2次元空間に射影したサモンマップ(sammon map)に、パターン分類部111による分類結果を重ね合わせた図を示している。
サモンマップは、n次元入力ベクトルを、入力ベクトル空間での関係を維持したまま2次元平面上へ写像することができる手法であり、その詳細は、JOHN W.SAMMON.JR.,A Nonlinear Mapping For Data Structure Analysis,IEEE TRANSACTIONS ON COMPUTERS,VOL.C-18,NO.5,MAY 1969に開示されている。
図19において、番号が付されたバツ印(×)は、その番号iに対応するRNN#iのサモンマップ上の位置を表す。そして、バツ印間の距離は、RNN間のウエイト距離を反映している。なお、バツ印を中心とする細線の円は、RNN間のウエイト距離の近さをわかりやすくするため、ウエイト距離が10となる範囲を示したものである。例えば、サモンマップ上の横軸の値が0で、縦軸の値が−40付近に位置するRNN#18ないしRNN#20のウエイトマトリクスw18ないしw20は、ほとんど一致していることが分かる。
一方、図19において、太い点線で示される6つの大きな円は、学習処理後の30個のRNN#1ないしRNN#30のウエイトマトリクスw1ないしw30を、6つの分類(カテゴリ)となるように指定してパターン分類部111が分類を行ったときの分類結果を示している。採用した分類アルゴリズムはk-means法である。
太い点線の大きな円が示す分類結果によれば、1つのカテゴリ(カテゴリ1)はRNN#1ないしRNN#5を含み、1つのカテゴリ(カテゴリ2)はRNN#6ないしRNN#10を含み、1つのカテゴリ(カテゴリ3)はRNN#11ないしRNN#15を含み、1つのカテゴリ(カテゴリ4)はRNN#16ないしRNN#20を含み、1つのカテゴリ(カテゴリ5)はRNN#21ないしRNN#25を含み、1つのカテゴリ(カテゴリ6)はRNN#26ないしRNN#30を含むように、30個のRNN#1ないしRNN#30が分類されている。即ち、同一の行動パターンを学習させた5つのRNNが同一のカテゴリとなるように分類されているので、学習モジュールが適切に分類されていると言える。
以上のように、図12の学習装置101によれば、規模拡張性があり、同時に、汎化特性を有するパターン学習モデルを得ることができるとともに、学習モジュール10i(それぞれが学習したパターン時系列パターンやダイナミクス)を、時系列パターンやダイナミクスの特徴に基づいて、教師なしで適切に分類することができる。
すなわち、上述した状態方程式y=Cx+Du、及びx'=Ax+Bu(x'はxの微分を表す)の例で言えば、Mixture of RNN Expert、RNN-SOM、HMM−SOMなどで行われるような、学習モジュールが出力した時系列パターンのユークリッド距離に基づく分類(教師なし分類)では、出力yの類似度による分類を行うものであって、本来求めるべき、モデルパラメータである定数A,B,C,Dの類似度で分類するものではなかった(定数A,B,C,Dの類似度で分類することはできなかった)が、学習装置101によれば、時系列パターンやダイナミクスの特徴を表す定数A,B,C,Dの類似度で分類することができる。
上述した一連の処理は、ハードウェアにより行うこともできるし、ソフトウェアにより行うこともできる。一連の処理をソフトウェアによって行う場合には、そのソフトウェアを構成するプログラムが、汎用のコンピュータ等にインストールされる。
そこで、図20は、上述した一連の処理を実行するプログラムがインストールされるコンピュータの一実施の形態の構成例を示している。
プログラムは、コンピュータに内蔵されている記録媒体としてのハードディスク205やROM203に予め記録しておくことができる。
あるいはまた、プログラムは、フレキシブルディスク、CD-ROM(Compact Disc Read Only Memory),MO(Magneto Optical)ディスク,DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブル記録媒体211に、一時的あるいは永続的に格納(記録)しておくことができる。このようなリムーバブル記録媒体211は、いわゆるパッケージソフトウエアとして提供することができる。
なお、プログラムは、上述したようなリムーバブル記録媒体211からコンピュータにインストールする他、ダウンロードサイトから、ディジタル衛星放送用の人工衛星を介して、コンピュータに無線で転送したり、LAN(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送し、コンピュータでは、そのようにして転送されてくるプログラムを、通信部208で受信し、内蔵するハードディスク205にインストールすることができる。
コンピュータは、CPU(Central Processing Unit)202を内蔵している。CPU202には、バス201を介して、入出力インタフェース210が接続されており、CPU202は、入出力インタフェース210を介して、ユーザによって、キーボードや、マウス、マイク等で構成される入力部207が操作等されることにより指令が入力されると、それにしたがって、ROM(Read Only Memory)203に格納されているプログラムを実行する。あるいは、また、CPU202は、ハードディスク205に格納されているプログラム、衛星若しくはネットワークから転送され、通信部208で受信されてハードディスク205にインストールされたプログラム、またはドライブ209に装着されたリムーバブル記録媒体211から読み出されてハードディスク205にインストールされたプログラムを、RAM(Random Access Memory)204にロードして実行する。これにより、CPU202は、上述したフローチャートにしたがった処理、あるいは上述したブロック図の構成により行われる処理を行う。そして、CPU202は、その処理結果を、必要に応じて、例えば、入出力インタフェース210を介して、LCD(Liquid Crystal Display)やスピーカ等で構成される出力部206から出力、あるいは、通信部208から送信、さらには、ハードディスク205に記録等させる。
ここで、本明細書において、コンピュータに各種の処理を行わせるためのプログラムを記述する処理ステップは、必ずしもフローチャートとして記載された順序に沿って時系列に処理する必要はなく、並列的あるいは個別に実行される処理(例えば、並列処理あるいはオブジェクトによる処理)も含むものである。
また、プログラムは、1のコンピュータにより処理されるものであっても良いし、複数のコンピュータによって分散処理されるものであっても良い。さらに、プログラムは、遠方のコンピュータに転送されて実行されるものであっても良い。
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
上述した例では、時系列パターンとして、移動ロボット141のセンサ入力およびモータ出力の時系列データを学習して、分類する例について説明したが、学習および分類の対象となる時系列データは、これに限らず、コンピュータのユーザインタフェースにおけるユーザ入力の時系列データ、音楽データおよび画像データに関する時系列データ、言語処理における音素、言語、センテンスなどの音声の時系列データなどとすることも勿論可能である。