図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種類の学習の両方の長所を有する、いわば「中間表現」スキームの学習を行い、規模拡張性があり、同時に、汎化特性を有するパターン学習モデルを得ることができる。
ところで、学習装置がN個の学習モジュール101ないし10Nで構成されている場合に、新たな学習モジュールを追加する必要があると判断するかが難しいという問題がある。
即ち、新しい学習データ(学習サンプル)が供給された場合に、その供給された学習データが、既存のパターン学習モデルで学習済みの時系列パターンに類似するものであるので、既存のN個の学習モジュール101ないし10Nのいずれかの学習モジュールに更新学習させれば済むものであるのか、あるいは、N個の学習モジュール101ないし10Nで学習済みの時系列パターンのいずれにも類似するものではないので、新たな学習モジュールを追加して学習させるべきものであるのかを判断することは難しい。
規模拡張性に優れ、必要に応じて学習モジュールを追加して学習するようにしたモジュール型学習においては、例えば、既存の学習モジュールに対する新しい学習モジュールの新規性を数値で表し、その数値で表された新しい学習モジュールの新規性が所定の閾値を超えた場合に、新しい学習モジュールを追加するという手法が採用されている。
しかしながら、上述した手法では、学習モジュールの追加を決定する基準となる閾値の設定が困難であり、設定を間違えると、本来は別々の学習モジュールに学習させるべき学習データを1つの学習モジュールが学習してしまったり、反対に、1つの学習モジュールに学習させるべき学習データを別々の学習モジュールが学習してしまうという問題があった。
そこで、以下では、上述したモデルパラメータの共有処理によって、類似するモデルパラメータは、その距離が小さくなるという特性を生かして、学習モジュール追加の要否を判断する必要がなく、学習モジュールを追加しての学習(追加学習)ができるとともに、学習モジュール数の不要な増加も抑制することができるようにした実施の形態について説明する。
図12は、本発明を適用した学習装置の一実施の形態の構成例を示している。
図12において、上述した図1の学習装置と対応する部分については同一の符号を付してあり、その説明は省略する。
即ち、図12の学習装置101は、図1の学習装置と同様の構成を有するパターン学習部111と、学習モジュールの管理を行う学習モジュール管理部112とにより構成されている。
パターン学習部111は、学習モジュール管理部112により制御された学習モジュール数であるN個の学習モジュール101ないし10Nにより、パターン学習モデルの複数のモデルパラメータ(学習リソース)を学習(更新)する更新学習を行う。
学習モジュール管理部112は、モジュール作成部121、類似性評価部122、およびモジュール統合部123から構成され、パターン学習部111の学習モジュール101ないし10Nの個数(N)を制御する。
モジュール作成部121は、学習装置101のパターン学習部111に新しい学習データが供給された場合に、その新しい学習データに対応する新たな学習モジュールを無条件にパターン学習部111に作成(追加)する。
類似性評価部122は、パターン学習部111の各学習モジュール間の類似性を評価する。学習モジュール間の類似性の評価としては、例えば、学習モジュール間のモデルパラメータのユークリッド距離(以下、パラメータ距離と称する)を採用することができる。
具体的には、学習モジュール101と学習モジュール102のパラメータ距離Dparameter(1,2)は、式(4)で計算することができる。なお、式(4)におけるkは、学習モジュール101および102のモデルパラメータを識別する変数であり、例えば、p1,kは、学習モジュール101のk番目(k≦Q)のモデルパラメータを表す。
時系列パターンに対してパターン学習モデルのモデルパラメータが一意に決まるような冗長性の低いパターン学習モデルであれば、パターン学習モデルの類似性の評価にパラメータ距離を用いることは容易に想像できるが、例えば、ニューラルネット(RNN)などのように冗長性の高いパターン学習モデルにおいて、パラメータ距離をパターン学習モデルの類似性の評価に用いることができるのは、上述した共有学習処理により、類似した時系列パターンを学習する学習モジュール間では、パラメータ距離が小さくなるという特性を有しているからである。
モジュール統合部123は、類似性評価部122が求めた学習モジュール間の類似性に基づいて、学習モジュールの統合の可否を判定する。そして、統合することができると判定した学習モジュールがある場合には、モジュール統合部123は、それらの統合を行う。
次に、図13のフローチャートを参照して、図12の学習装置101による、学習モジュールの追加をともなう学習である追加学習処理について説明する。
パターン学習部111に新しい学習データが供給されると、ステップS41において、モジュール作成部121は、新しい学習データに対して新たな学習モジュールをパターン学習部111に作成する。以下では、新たな学習モジュールを追加した後の学習モジュールの個数がN個であるとする。
ステップS42において、パターン学習部111は、ステップS41の処理により追加された新しい学習モジュールを含めて、学習処理を行う。この学習処理は、図2を参照して説明した学習処理と同様であるので、その詳細な説明は省略する。
ステップS43において、学習モジュール管理部112は、学習モジュール間の類似性に基づいて、学習モジュールを統合する統合処理を行う。統合処理の詳細は、図14を参照して後述する。
ステップS44において、新しい学習データがあるか、即ち、パターン学習部111に供給された学習データのなかで、まだ学習処理に含めていない学習データがあるかを判定する。新しい学習データがあると判定された場合、処理はステップS41に戻り、ステップS41乃至S44の処理が繰り返される。一方、新しい学習データがないと判定された場合、追加学習処理は終了する。
次に、図14のフローチャートを参照して、図13のステップS43における統合処理の詳細について説明する。
統合処理では、初めに、ステップS61において、類似性評価部122が、学習モジュール間の類似性を評価する。即ち、類似性評価部122は、各学習モジュール間のパラメータ距離を、N個の学習モジュール101ないし10Nのすべての組み合わせについて求める。
ステップS62において、モジュール統合部123は、類似性評価部122が求めた各学習モジュール間の類似性(学習モジュール間のパラメータ距離)に基づいて、統合すべき学習モジュールがあるかを判定する。具体的には、モジュール統合部123は、ステップS61で求めたパラメータ距離が所定の閾値Dthresholdより小さいものがある場合に、そのパラメータ距離が得られた2つの学習モジュールは、統合すべき学習モジュールであるとして、統合すべき学習モジュールがあると判定する。
ステップS62で、統合すべき学習モジュールがあると判定された場合、処理はステップS63に進み、モジュール統合部123は、統合すべきと判定された学習モジュールを統合する。具体的には、モジュール統合部123は、統合対象の2つの学習モジュールのモデルパラメータの平均値を計算し、その値を、統合後に存続させる一方の学習モジュールのモデルパラメータに設定し、他方の学習モジュールをパターン学習部111から削除する。
なお、学習が十分に進んでいない学習モジュールを統合するのは適当ではないため、統合すべきと判定された各学習モジュールが、十分学習された状態であることを確認した上で、学習モジュールを統合する必要がある。統合対象の2つの学習モジュールが十分学習された状態であるかを判断するには、統合すべきと判定された2つの学習モジュールの学習スコアが十分学習された状態であることを表す所定の閾値以上であることを確認するか、または、各学習モジュールの学習スコアが所定の閾値以上であることを確認した上で、学習モジュール間の類似性を判断すればよい。
一方、ステップS62で、統合すべき学習モジュールがないと判定された場合、ステップS63の処理はスキップして統合処理は終了する(図13の追加学習処理に戻る)。
次に、パターン学習モデルとしてRNNを採用した場合について説明する。RNNは、入力層にPBユニットを有していない点のみがRNNPBと異なり、それ以外の更新学習等はRNNPBと同様に行うことができる。
パターン学習モデルとしてRNNを採用した場合、図12の学習装置101の構成例を示すブロック図は、図12のパターン学習部111が図3に示したようになる。但し、図3のRNNPB#iが、PBユニットを持たないRNN#iに置き換わる。
また、パターン学習モデルとしてRNNを採用した場合の追加学習処理のフローチャートは、図13のステップS41で作成する学習モジュールがRNNとなるので、ステップS42の学習処理がRNNPB#iをRNN#iに置き換えた図4の学習処理となり、ステップS43の統合処理が図15に示す処理となる。
そこで、図15のフローチャートを参照して、パターン学習モデルとしてRNNを採用した場合の、図13のステップS43における統合処理について説明する。
ステップS81において、類似性評価部122は、学習モジュール間の類似性を評価する。RNNでは、ウエイトがモデルパラメータであるので、類似性評価部122は、ウエイトマトリクスのユークリッド距離(以下、ウエイト距離と称する)を、RNN間の類似性の評価として採用する。
例えば、RNN#1のウエイトマトリクスw1の各ウエイトをw1,k,l(1≦k≦Q,1≦l≦R)、RNN#2のウエイトマトリクスw2の各ウエイトをw2,k,lとしたとき、RNN#1とRNN#2のウエイト距離Dweight(1,2)は、式(5)で表すことができる。
類似性評価部122は、各RNN間のウエイト距離を、N個の学習モジュール101ないし10N(RNN#1ないしRNN#N)のすべての組み合わせについて求める。
ステップS82において、モジュール統合部123は、類似性評価部122が求めた各RNN間の類似性に基づいて、統合すべき学習モジュールがあるかを判定する。すなわち、モジュール統合部123は、ステップS81で求めたウエイト距離が所定の閾値Dthresholdより小さいものがある場合に、そのウエイト距離が得られた2つの学習モジュールは、統合すべき学習モジュールであるとして、統合すべき学習モジュールがあると判定する。
ステップS82で、統合すべき学習モジュールがあると判定された場合、処理はステップS83に進み、モジュール統合部123は、統合すべきと判定された学習モジュール(RNN)を統合する。具体的には、モジュール統合部123は、統合対象の2つのRNNのウエイトマトリクスの平均値を計算し、その値を、統合後に存続させる一方のRNNのウエイトマトリクスに設定し、他方のRNNをパターン学習部111から削除する。
パターン学習モデルがRNNである場合においても、統合対象の2つのRNNが十分学習された状態であることを確認する必要がある。RNNでは、例えば、学習誤差が所定の閾値以下であるかを判断することで、RNNが十分学習された状態であることを確認してから、統合対象の2つのRNNを統合する。
一方、ステップS82で、統合すべき学習モジュールがないと判定された場合、ステップS83の処理はスキップして統合処理は終了する(図13の追加学習処理に戻る)。
図16および図17は、学習装置101による追加学習処理を概念的に示した図である。
図16は、1回の追加学習処理に対して1つの新しい学習データが供給され、図13の追加学習処理を1回行うごとに、1つの新たな学習モジュールをモジュール作成部121が追加していく処理を概念的に示した図である。
新しい学習データDAT1がパターン学習部111に供給されると、第1回目の追加学習処理が実行され、学習モジュール作成部121は、その学習データDAT1に対する学習モジュール101を新たに作成する。
次に、新しい学習データDAT2がパターン学習部111に供給されると、第2回目の追加学習処理が実行され、学習モジュール作成部121は、その学習データDAT2に対する学習モジュール102を新たに作成する。さらに、新しい学習データDAT3がパターン学習部111に供給されると、第3回目の追加学習処理が実行され、学習モジュール作成部121は、その学習データDAT3に対する学習モジュール103を新たに作成する。以下同様にして、新しい学習データDAT5がパターン学習部111に供給されると、第5回目の追加学習処理が実行され、学習モジュール作成部121は、その学習データDAT5に対する学習モジュール105を新たに作成する。
第1回目ないし第5回目の各追加学習処理では、図13を参照して説明したように、追加された学習モジュールを含めて学習処理(ステップS42の処理)が行われ、続いて、統合処理(ステップS43の処理)が行われる。
そして、第1回目ないし第4回目の各追加学習処理においては、統合すべき学習モジュールがないと判定され、第5回目の追加学習処理において、学習モジュール101と学習モジュール105を統合することができると判定されたとする。
図17は、学習モジュール101と学習モジュール105を統合する場合の処理を概念的に示した図である。
第5回目の追加学習処理において、学習処理終了後、モジュール統合部123が、類似性評価部122が求めた各学習モジュール間の類似性に基づいて、統合すべき学習モジュールがあるかを判定したところ、学習モジュール101と学習モジュール105は統合することができるという判定結果が得られたとする。すなわち、学習モジュール101と学習モジュール105のパラメータ距離Dparameter(1,5)が、閾値Dthresholdより小さいという結果が得られたとする。
この場合、モジュール統合部123は、学習モジュール101のモデルパラメータP1と、学習モジュール105のモデルパラメータP5の平均値を計算し、その平均値を統合後の学習モジュール101のモデルパラメータP1に設定するとともに、学習モジュール105をパターン学習部111から削除する。
なお、図17は、2つの学習モジュール101と学習モジュール105を1つの学習モジュール101に統合する例であるが、統合する学習モジュールの数は2つに限定されない。例えば、3つの学習モジュールが互いに閾値Dthresholdより小さいと判定された場合には、その3つの学習モジュールを1つの学習モジュールに統合してもよい。この場合、統合後の学習モジュールのモデルパラメータは、統合対象の3つの学習モジュールのモデルパラメータの平均値とすることができる。
図17に示される学習モジュール10iのモデルパラメータPiは、式(4)のpi,1乃至pi,Q全体を表し、モデルパラメータP1とモデルパラメータP5の平均値とは、p1,1とp5,1の平均値、p1,2とp5,2の平均値、p1,3とp5,3の平均値、p1,4とp5,4の平均値、・・・・・p1, Qとp5, Qの平均値を、それぞれ、統合後のp1,1,p1,2,p1,3,p1,4,・・・・・,p1, Qとすることを表している。なお、平均値以外の演算結果を、統合後に存続させる学習モジュールのモデルパラメータに設定してもよい。すなわち、統合後に存続させる学習モジュールのモデルパラメータを、統合対象の複数の学習モジュールのモデルパラメータの平均値以外の演算によって求めることが可能である。
以上のように、図12の学習装置101によれば、規模拡張性があり、同時に、汎化特性を有するパターン学習モデルを得ることができるとともに、新しい学習データ(学習サンプル)が供給された場合に、その新しい学習データに対して、モジュール作成部121が無条件に新たな学習モジュールを作成(追加)するので、学習モジュール追加の要否を判断する必要がない。また、学習(更新学習)処理後、類似性の高い学習モジュールどうしについては統合するので、学習モジュール数の不要な増加を抑制することができる。
なお、学習装置101に供給された新しい学習データに対応して、学習モジュールを作成する場合に、その作成する学習モジュールのモデルパラメータの初期値は、乱数等によって決定された値を与えるようにしてもよいし、既存の全学習モジュールのモデルパラメータの平均値を与えるようにすることもできる。既存の全学習モジュールのモデルパラメータの平均値を、追加した学習モジュールのモデルパラメータの初期値として与えた場合には、例えば、乱数等によって与えた場合のように、既存の学習モジュールのモデルパラメータとは関係なく初期値が与えられたときと比較して、追加された学習モジュールが、既存の各学習モジュールが有するパターンの共通性を既に有している状態となるので、高速に学習することができる。
上述した一連の処理は、ハードウェアにより行うこともできるし、ソフトウェアにより行うこともできる。一連の処理をソフトウェアによって行う場合には、そのソフトウェアを構成するプログラムが、汎用のコンピュータ等にインストールされる。
そこで、図18は、上述した一連の処理を実行するプログラムがインストールされるコンピュータの一実施の形態の構成例を示している。
プログラムは、コンピュータに内蔵されている記録媒体としてのハードディスク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のコンピュータにより処理されるものであっても良いし、複数のコンピュータによって分散処理されるものであっても良い。さらに、プログラムは、遠方のコンピュータに転送されて実行されるものであっても良い。
また、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
即ち、本発明は、ある特定の空間パターン、時系列シーケンス及びパターンに特化した方法ではない。したがって、コンピュータのユーザインタフェースにおけるユーザ入力のパターン、ロボットのセンサ入力及びモータ出力のパターン、音楽データに関するパターン、画像データに関するパターン、言語処理における音素、単語、センテンスなどのパターンの学習及び学習結果に基づくパターンの予測や分類に適用することができる。