(57)【要約】【課題】規模拡張性があり、かつ、汎化特性を有するパターン学習モデルを得ることができるようにする。【解決手段】学習モジュール１０1ないし１０Nは、入力データを用いて、パターン学習モデルの複数のモデルパラメータを更新する更新学習を行う。モデルパラメータ共有部２０は、学習モジュール１０1ないし１０Nの各学習モジュールが更新したモデルパラメータを、学習モジュール１０1ないし１０Nに共有させる。パターン分類部１１１は、更新学習後のパターン学習モデルのモデルパラメータを、学習モジュール１０1ないし１０Nそれぞれから取得し、モデルパラメータ距離に基づく分類を行う。本発明は、例えば、時系列パターンの学習等に適用できる。【選択図】図１２
2010020446.tif 000002
【特許請求の範囲】
【請求項１】
パターンを学習するパターン学習モデルが有する複数のモデルパラメータを、入力データを用いて更新する更新学習を行う複数の学習モジュールと、
前記複数の学習モジュールの２以上の学習モジュールに、前記モデルパラメータを共有させるモデルパラメータ共有手段と、
更新学習後の各学習モジュールの前記複数のモデルパタメータに基づいて、前記複数の学習モジュールを分類する分類手段と
を備える学習装置。
【請求項２】
前記パターン学習モデルは、時系列パターン、又はダイナミクスを学習するモデルである
請求項１に記載の学習装置。
【請求項３】
前記パターン学習モデルは、HMM，RNN，FNN，SVR、又はRNNPBである
請求項１に記載の学習装置。
【請求項４】
前記モデルパラメータ共有手段は、複数の学習モジュールのすべて、又は一部に、前記モデルパラメータを共有させる
請求項１に記載の学習装置。
【請求項５】
前記モデルパラメータ共有手段は、前記複数の学習モジュールの２以上の学習モジュールに、前記複数のモデルパラメータのすべて、又は一部を共有させる
請求項１に記載の学習装置。
【請求項６】
前記モデルパラメータ共有手段は、前記２以上の学習モジュールの各学習モジュールが更新したモデルパラメータを、前記２以上の学習モジュールそれぞれが更新したモデルパラメータの重み付け平均値によって補正することにより、前記２以上の学習モジュールに、その２以上の学習モジュールそれぞれが更新したモデルパラメータを共有させる
請求項１に記載の学習装置。
【請求項７】
複数の学習モジュールそれぞれにおいて、パターンを学習するパターン学習モデルが有する複数のモデルパラメータを、入力データを用いて更新する更新学習を行い、
前記複数の学習モジュールの２以上の学習モジュールに、前記モデルパラメータを共有させ、
更新学習後の各学習モジュールの前記複数のモデルパタメータに基づいて、前記複数の学習モジュールを分類する
ステップを含む学習方法。
【請求項８】
コンピュータを、
パターンを学習するパターン学習モデルが有する複数のモデルパラメータを、入力データを用いて更新する更新学習を行う複数の学習モジュールと、
前記複数の学習モジュールの２以上の学習モジュールに、前記モデルパラメータを共有させるモデルパラメータ共有手段と、
更新学習後の各学習モジュールの前記複数のモデルパタメータに基づいて、前記複数の学習モジュールを分類する分類手段と
して機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、学習装置、学習方法、およびプログラムに関し、特に、規模拡張性があり、かつ、汎化特性を有するパターン学習モデルを得ることができるようにする学習装置、学習方法、およびプログラムに関する。
【背景技術】
【０００２】
パターンを学習するパターン学習モデルとしては、例えば、RNN(Recurrent Neural Network)やRNNPB(Recurrent Neural Net with Parametric Bias)等がある。このようなパターン学習モデルの学習のスキームは、「局所表現」スキームと「分散表現」スキームとに分類される。
【０００３】
「局所表現」スキームでは、複数のパターンが、パターン学習モデルの学習（パターン学習モデルが有するモデルパラメータの更新）を行う複数の学習モジュールにおいてそれぞれ学習され、これにより、１つの学習モジュールで、１つのパターンが記憶される。
【０００４】
また、「分散表現」スキームでは、複数のパターンが、１つの学習モジュールにおいて学習され、これにより、１つの学習モジュールで、複数のパターンが同時に記憶される。
【０００５】
「局所表現」スキームでは、１つの学習モジュールで、１つのパターンが記憶される、つまり、１つのパターン学習モデルが、１つのパターンを学習するので、ある学習モジュールと、他の学習モジュールとの間で、パターンの記憶の干渉が少なく、パターンの記憶の安定性が高い。そして、「局所表現」スキームは、学習モジュールを追加することにより、新たなパターンを学習することが容易に行うことができるという規模拡張性に優れる。
【０００６】
但し、「局所表現」スキームでは、１つのパターン学習モデルが、１つのパターンを学習する、つまり、パターンの記憶が、複数の学習モジュールでそれぞれ独立に行われるため、複数の学習モジュールそれぞれでのパターンの記憶間の関係性の構造化（共通化）による汎化特性を得ること、すなわち、例えば、ある学習モジュールに記憶されたパターンとも異なり、他の学習モジュールに記憶されたパターンとも異なるが、それらの両方のパターンの、いわば中間のパターンを生成するようなこと等はできない。
【０００７】
一方、「分散表現」スキームでは、１つの学習モジュールで、複数のパターンが記憶される、つまり、１つのパターン学習モデルが、複数のパターンを学習するので、１つの学習モジュール内での複数のパターンの記憶間の干渉によって、その記憶間の共通化による汎化特性を得ることができる。
【０００８】
但し、「分散表現」スキームでは、パターンの記憶の安定性が低いため、規模拡張性がない。
【０００９】
ここで、特許文献１には、あるパターンを学習するRNNと、そのパターンと相関がある他のパターンを学習するRNNとの２つのRNNのコンテキストどうしの誤差に基づいて、その２つのRNNのコンテキストを変化させて、RNNの学習を行うこと、及び、その学習後の２つのRNNのうちの一方のコンテキストを、他方のRNNのコンテキストとして用いて、つまり、一方のRNNのコンテキストを、他方のRNNのコンテキストに影響させて、出力データを生成すること（RNNの入力層に入力データを入力し、その入力データに対応する出力データを、RNNの出力層から出力すること）が記載されている。
【００１０】
また、非特許文献１には、言語のパターンを学習するRNNPBと、動作のパターンを学習するRNNPBとの２つのRNNPBのPBどうしの差に基づいて、その２つのRNNPBをPBを変化させて、RNNPBの学習を行うこと、及び、その学習後の２つのRNNPBのうちの一方のPBを、他方のPBに影響させて、出力データを生成することが記載されている。
【００１１】
【特許文献１】特開2002-024795号公報
【非特許文献１】Yuuya Sugita, Jun Tani, "Learning Semantic Combinatoriality from the Interaction between Linguistic and Behavioral Processes", Adaptive Behavior, Vol. 13, No. 1, 33-52 (2005)
【発明の開示】
【発明が解決しようとする課題】
【００１２】
以上のように、従来のパターン学習モデルの学習では、規模拡張性があるパターン学習モデルを得るか、又は汎化特性を有するパターン学習モデルを得ることはできるが、規模拡張性があり、同時に、汎化特性を有するパターン学習モデルを得ることは困難である。
【００１３】
本発明は、このような状況に鑑みてなされたものであり、規模拡張性があり、同時に、汎化特性を有するパターン学習モデルを得ることができるようにするものである。
【課題を解決するための手段】
【００１４】
本発明の一側面の学習装置は、パターンを学習するパターン学習モデルが有する複数のモデルパラメータを、入力データを用いて更新する更新学習を行う複数の学習モジュールと、前記複数の学習モジュールの２以上の学習モジュールに、前記モデルパラメータを共有させるモデルパラメータ共有手段と、更新学習後の各学習モジュールの前記複数のモデルパタメータに基づいて、前記複数の学習モジュールを分類する分類手段とを備える。
【００１５】
本発明の一側面の学習方法は、複数の学習モジュールそれぞれにおいて、パターンを学習するパターン学習モデルが有する複数のモデルパラメータを、入力データを用いて更新する更新学習を行い、前記複数の学習モジュールの２以上の学習モジュールに、前記モデルパラメータを共有させ、更新学習後の各学習モジュールの前記複数のモデルパタメータに基づいて、前記複数の学習モジュールを分類するステップを含む学習方法である。
【００１６】
本発明の一側面のプログラムは、コンピュータを、パターンを学習するパターン学習モデルが有する複数のモデルパラメータを、入力データを用いて更新する更新学習を行う複数の学習モジュールと、前記複数の学習モジュールの２以上の学習モジュールに、前記モデルパラメータを共有させるモデルパラメータ共有手段と、更新学習後の各学習モジュールの前記複数のモデルパタメータに基づいて、前記複数の学習モジュールを分類する分類手段として機能させる。
【００１７】
本発明の一側面においては、複数の学習モジュールそれぞれにおいて、パターンを学習するパターン学習モデルが有する複数のモデルパラメータを、入力データを用いて更新する更新学習が行われ、複数の学習モジュールの２以上の学習モジュールにおいて、モデルパラメータが共有される。また、更新学習後の各学習モジュールの複数のモデルパタメータに基づいて、複数の学習モジュールが分類される。
【発明の効果】
【００１８】
本発明の一側面によれば、規模拡張性があり、同時に、汎化特性を有するパターン学習モデルを得ることができる。
【発明を実施するための最良の形態】
【００１９】
図１は、本発明を適用する学習装置の基本となる学習装置の一実施の形態の構成例を示している。
【００２０】
図１において、学習装置は、複数であるN個の学習モジュール１０1ないし１０Nと、モデルパラメータ共有部２０とから構成される。
【００２１】
学習モジュール１０i(i=1,2,・・・,N)は、パターン入力部１１i、モデル学習部１２i、及びモデル記憶部１３iから構成され、入力データを用いて、パターン学習モデルの複数のモデルパラメータ（学習リソース）を更新する更新学習を行う。
【００２２】
すなわち、パターン入力部１１iには、モデル記憶部１３iに記憶されたパターン学習モデルに獲得（学習）させるパターン（カテゴリ）の入力データが、パターン学習モデルの学習に用いる学習データとして供給される。
【００２３】
パターン入力部１１iは、そこに供給される学習データを、パターン学習モデルの学習に適切な形のデータにする処理をして、モデル学習部１２iに供給する。すなわち、例えば、学習データが時系列のデータである場合には、パターン入力部１１iは、例えば、その時系列のデータを、固定の長さに区切って、モデル学習部１２iに供給する。
【００２４】
モデル学習部１２iは、パターン入力部１１iからの学習データを用いて、モデル記憶部１３iに記憶されたパターン学習モデルの複数のモデルパラメータを更新する更新学習を行う。
【００２５】
モデル記憶部１３iは、複数のモデルパラメータを有し、パターンを学習するパターン学習モデルを記憶する。すなわち、モデル記憶部１３iは、パターン学習モデルの複数のモデルパラメータを記憶する。
【００２６】
ここで、パターン学習モデルとしては、例えば、時系列のパターンである時系列パターンや、時間変化する力学系を表すダイナミクスを学習（獲得）（記憶）するモデル等を採用することができる。
【００２７】
時系列パターンを学習するモデルとしては、例えば、HMM(Hidden Markov Model)等があり、ダイナミクスを学習するモデルとしては、例えば、RNN，FNN(Feed Forward Neural Network)，RNNPB等のニューラルネットワークや、SVR(Support Vector Regression)等がある。
【００２８】
例えば、HMMについては、HMMにおいて状態が遷移する確率を表す状態遷移確率や、状態が遷移するときに、HMMからある観測値が出力される確率を表す出力確率、又は確率密度を表す出力確率密度関数が、HMMのモデルパラメータである。
【００２９】
また、例えば、ニューラルネットワークについては、ニューロンに相当するユニット（ノード）において、他のユニットからの入力に付されるウエイト（重み）が、ニューラルネットワークのモデルパラメータである。
【００３０】
なお、HMMの状態遷移確率や、出力確率、又は出力確率密度関数、ニューラルネットワークのウエイトは、いずれも複数存在する。
【００３１】
モデルパラメータ共有部２０は、N個の学習モジュール１０1ないし１０Nのうちの、２以上の学習モジュールに、モデルパラメータを共有させる共有処理を行う。モデルパラメータ共有部２０が共有処理を行うことにより、N個の学習モジュール１０1ないし１０Nのうちの、２以上の学習モジュールは、モデルパラメータを共有する。
【００３２】
なお、以下では、説明を簡単にするため、モデルパラメータ共有部２０は、N個の学習モジュール１０1ないし１０Nのすべてに、モデルパラメータを共有させる共有処理を行うこととする。
【００３３】
次に、図２のフローチャートを参照して、図１の学習装置が行う、パターン学習モデルを学習する学習処理について説明する。
【００３４】
ステップＳ１１において、学習モジュール１０iのモデル学習部１２iは、モデル記憶部１３iに記憶されたモデルパラメータを、例えば、乱数等によって初期化して、処理は、ステップＳ１２に進む。
【００３５】
ステップＳ１２では、学習モジュール１０iが、その学習モジュール１０iで学習すべき学習データが供給（入力）されるのを待って、その学習データを用いて、モデルパラメータを更新する更新学習を行う。
【００３６】
すなわち、ステップＳ１２では、学習モジュール１０iにおいて、パターン入力部１１iが、学習モジュール１０iに供給された学習データを、必要に応じて処理し、モデル学習部１２iに供給する。
【００３７】
さらに、ステップＳ１２では、モデル学習部１２iが、パターン入力部１１iからの学習データを用いて、モデル記憶部１３iに記憶されたパターン学習モデルの複数のモデルパラメータを更新する更新学習を行い、その更新学習によって得られた新たな複数のモデルパラメータによって、モデル記憶部１３iの記憶内容を更新する（上書きする）。
【００３８】
ここで、ステップＳ１１及びＳ１２の処理は、N個の学習モジュール１０1ないし１０Nのすべてで行われる。
【００３９】
ステップＳ１２の後、処理は、ステップＳ１３に進み、モデルパラメータ共有部２０は、N個の学習モジュール１０1ないし１０Nのすべてに、モデルパラメータを共有させる共有処理を行う。
【００４０】
すなわち、学習モジュール１０iが有する複数のモデルパラメータのうちの、例えば、m番目のモデルパラメータに注目すると、モデルパラメータ共有部２０は、N個の学習モジュール１０1ないし１０Nそれぞれのm番目のモデルパラメータに基づいて、学習モジュール１０1のm番目のモデルパラメータを補正する。
【００４１】
さらに、モデルパラメータ共有部２０は、N個の学習モジュール１０1ないし１０Nそれぞれのm番目のモデルパラメータに基づいて、学習モジュール１０2のm番目のモデルパラメータを補正し、以下、同様にして、学習モジュール１０3ないし１０Nそれぞれのm番目のモデルパラメータを補正する。
【００４２】
以上のように、モデルパラメータ共有部２０が、学習モジュール１０iのm番目のモデルパラメータを、N個の学習モジュール１０1ないし１０Nそれぞれのm番目のモデルパラメータに基づいて補正することで、N個の学習モジュール１０1ないし１０Nのm番目のモデルパラメータのそれぞれは、N個の学習モジュール１０1ないし１０Nのm番目のモデルパラメータのすべての影響を受ける（N個の学習モジュール１０1ないし１０Nのm番目のモデルパラメータのそれぞれに、N個の学習モジュール１０1ないし１０Nのm番目のモデルパラメータのすべてを影響させる）。
【００４３】
このように、複数の学習モジュールのモデルパラメータすべてを、その複数の学習モジュールのモデルパラメータのそれぞれに影響させること（複数の学習モジュールのモデルパラメータのそれぞれが、その複数の学習モジュールのモデルパラメータすべての影響を受けること）が、複数の学習モジュールによるモデルパラメータの共有である。
【００４４】
モデルパラメータ共有部２０は、ステップＳ１３において、学習モジュール１０iのモデル記憶部１３iに記憶された複数のモデルパラメータのすべてを対象に、共有処理を行い、その共有処理によって得られたモデルパラメータによって、モデル記憶部１３1ないし１３Nの記憶内容を更新する。
【００４５】
ステップＳ１３の後、処理は、ステップＳ１４に進み、図１の学習装置は、学習の終了条件が満たされているかどうかを判定する。
【００４６】
ここで、ステップＳ１４での学習の終了条件としては、例えば、学習の回数、つまり、ステップＳ１２及びＳ１３が繰り返された回数が、あらかじめ定められた所定の回数となったことや、あらかじめ用意された学習データのすべてを用いて、ステップＳ１２の更新学習が行われたこと、あるいは、ある入力データに対して出力されるべき出力データの真値が分かっている場合に、その入力データに対してパターン学習モデルから出力される出力データの、真値に対する誤差が所定値以下であること、等を採用することができる。
【００４７】
ステップＳ１４において、学習の終了条件が満たされていないと判定された場合、処理は、ステップＳ１２に戻り、以下、同様の処理が繰り返される。
【００４８】
また、ステップＳ１４において、学習の終了条件が満たされていると判定された場合、処理は終了する。
【００４９】
なお、ステップＳ１２とステップＳ１３は、その処理の順番を逆にすることも可能である。即ち、N個の学習モジュール１０1ないし１０Nのすべてに、モデルパラメータを共有させる共有処理を行った後、モデルパラメータを更新する更新学習を行うようにすることもできる。
【００５０】
次に、図３は、パターン学習モデルとして、RNNPBを採用した場合の、図１の学習装置の構成例を示している。
【００５１】
なお、図３においては、学習モジュール１０iのパターン入力部１１i及びモデル学習部１２iの図示を省略してある。
【００５２】
モデル記憶部１３iには、RNNPB（を定義するモデルパラメータ）が記憶されている。ここで、モデル記憶部１３iに記憶された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ユニットから隠れ層のユニットへのウエイト、コンテキストユニットから隠れ層のユニットへウエイト、隠れ層のユニットから出力層のユニットへのウエイト、及び、隠れ層のユニットからコンテキストユニットへのウエイトの５種類がある。
【００６１】
パターン学習モデルとして、以上のようなRNNPBを採用した場合、モデルパラメータ共有部２０には、RNNPBのモデルパラメータとしてのウエイトを、学習モジュール１０1ないし１０Nに共有させるウエイトマトリクス共有部２１が設けられる。
【００６２】
ここで、RNNPBのモデルパラメータとしてのウエイトは、複数あるが、その複数のウエイトをコンポーネントとするマトリクスを、ウエイトマトリクスという。
【００６３】
ウエイトマトリクス共有部２１は、モデル記憶部１３1ないし１３Nに記憶されたRNNPB#1ないしRNNPB#Nの複数のモデルパラメータとしてのウエイトマトリクスすべてを、学習モジュール１０1ないし１０Nのそれぞれに共有させる。
【００６４】
すなわち、RNNPB#iのウエイトマトリクスをwiと表すこととすると、ウエイトマトリクス共有部２１は、ウエイトマトリクスwiを、N個の学習モジュール１０1ないし１０Nそれぞれのウエイトマトリクスw1ないしwNのすべてに基づいて補正することで、ウエイトマトリクスwiに、ウエイトマトリクスw1ないしwNのすべてを影響させる共有処理を行う。
【００６５】
具体的には、ウエイトマトリクス共有部２１は、例えば、次式（１）に従い、RNNPB#iのウエイトマトリクスwiを補正する。
【００６６】
【数１】
2010020446.tif 000003
【００６７】
ここで、式（１）において、△wiは、ウエイトマトリクスwiを補正する補正成分であり、例えば、式（２）に従って求められる。
【００６８】
【数２】
2010020446.tif 000004
【００６９】
式（２）において、βijは、RNNPB#iのウエイトマトリクスwiに、RNNPB#j(j=1,2,・・・,N)のウエイトマトリクスwjを影響させる度合いを表す係数である。
【００７０】
したがって、式（２）の右辺のサメーションΣβij(wj-wi)は、係数βijを重みとした、RNNPB#iのウエイトマトリクスwjに対するRNNPB#1ないしRNNPB#Nのウエイトマトリクスw1ないしwNそれぞれの偏差（差分）の重み付け平均値を表し、αiは、その重み付け平均値Σβij(wj-wi)を、ウエイトマトリクスwiに影響させる度合いを表す係数である。
【００７１】
係数αi及びβijとしては、例えば、0.0より大で1.0より小の値を採用することができる。
【００７２】
式（２）によれば、係数αiが小であるほど、いわば共有が弱くなり（ウエイトマトリクスwiが受ける重み付け平均値Σβij(wj-wi)の影響が小さくなり）、係数αiが大であるほど、いわば共有が強まる。
【００７３】
なお、ウエイトマトリクスwiの補正の方法は、式（１）に限定されるものではなく、例えば、式（３）に従って行うことが可能である。
【００７４】
【数３】
2010020446.tif 000005
【００７５】
ここで、式（３）において、βij'は、RNNPB#iのウエイトマトリクスwiに、RNNPB#j(j=1,2,・・・,N)のウエイトマトリクスwjを影響させる度合いを表す係数である。
【００７６】
したがって、式（３）の右辺の第２項におけるサメーションΣβij'wjは、係数βij'を重みとした、RNNPB#1ないしRNNPB#Nのウエイトマトリクスw1ないしwNの重み付け平均値を表し、αi'は、その重み付け平均値Σβij'wjを、ウエイトマトリクスwiに影響させる度合いを表す係数である。
【００７７】
係数αi'及びβij'としては、例えば、0.0より大で1.0より小の値を採用することができる。
【００７８】
式（３）によれば、係数αi'が大であるほど、共有が弱くなり（ウエイトマトリクスwiが受ける重み付け平均値Σβij'wjの影響が小さくなり）、係数αi'が小であるほど、共有が強まる。
【００７９】
次に、図４のフローチャートを参照して、パターン学習モデルとして、RNNPBを採用した場合の、図１の学習装置の学習処理について説明する。
【００８０】
ステップＳ２１において、学習モジュール１０iのモデル学習部１２iは、モデル記憶部１３iに記憶されたRNNPB#iのモデルパラメータであるウエイトマトリクスwiを、例えば、乱数等によって初期化して、処理は、ステップＳ２２に進む。
【００８１】
ステップＳ２２では、学習モジュール１０iが、その学習モジュール１０iで学習すべき学習データxtが入力されるのを待って、その学習データxtを用いて、モデルパラメータを更新する更新学習を行う。
【００８２】
すなわち、ステップＳ２２では、学習モジュール１０iにおいて、パターン入力部１１iが、学習モジュール１０iに供給された学習データxtを、必要に応じて処理し、モデル学習部１２iに供給する。
【００８３】
さらに、ステップＳ２２では、モデル学習部１２iが、パターン入力部１１iからの学習データxtを用いて、モデル記憶部１３iに記憶されたRNNPB#iのウエイトマトリクスwiを更新する更新学習を、例えば、BPTT(Back-Propagation Through Time)法により行い、その更新学習によって得られた新たなモデルパラメータとしてのウエイトマトリクスwiによって、モデル記憶部１３iの記憶内容を更新する。
【００８４】
ここで、ステップＳ２１及びＳ２２の処理は、N個の学習モジュール１０1ないし１０Nのすべてで行われる。
【００８５】
また、BPTT法については、例えば、特開2002-236904号公報等に記載されている。
【００８６】
ステップＳ２２の後、処理は、ステップＳ２３に進み、モデルパラメータ共有部２０のウエイトマトリクス共有部２１は、N個の学習モジュール１０1ないし１０Nのすべてに、ウエイトマトリクスw1ないしwNのすべてを共有させる共有処理を行う。
【００８７】
すなわち、ステップＳ２３において、ウエイトマトリクス共有部２１は、例えば、式（２）に従い、モデル記憶部１３1ないし１３Nに記憶されたウエイトマトリクスw1ないしwNを用いて補正成分△w1ないし△wNをそれぞれ求め、その補正成分△w1ないし△wNにより、モデル記憶部１３1ないし１３Nに記憶されたウエイトマトリクスw1ないしwNを、式（１）に従ってそれぞれ補正する。
【００８８】
ステップＳ２３の後、処理は、ステップＳ２４に進み、図１の学習装置は、学習の終了条件が満たされているかどうかを判定する。
【００８９】
ここで、ステップＳ２４での学習の終了条件としては、例えば、学習の回数、つまり、ステップＳ２２及びＳ２３が繰り返された回数が、あらかじめ定められた所定の回数となったことや、ある入力データxtに対してRNNPB#iが出力する出力データx*t+1、すなわち、入力データxt+1の予測値x*t+1の、入力データxt+1に対する誤差が所定値以下であること、等を採用することができる。
【００９０】
ステップＳ２４において、学習の終了条件が満たされていないと判定された場合、処理は、ステップＳ２２に戻り、以下、同様の処理、すなわち、ウエイトマトリクスwiの更新学習と、共有処理とが交互に繰り返される。
【００９１】
また、ステップＳ２４において、学習の終了条件が満たされていると判定された場合、処理は終了する。
【００９２】
なお、図４においても、ステップＳ２２とステップＳ２３は、その処理の順番を逆にすることが可能である。
【００９３】
以上のように、規模拡張性に優れた複数の学習モジュール１０1ないし１０Nそれぞれにおいて、モデルパラメータを共有しながら、その複数の学習モジュール１０1ないし１０Nそれぞれのモデルパラメータを更新する更新学習を行うことにより、１つの学習モジュールだけで行われる学習で得られる汎化特性が、複数の学習モジュール１０1ないし１０Nの全体で得ることができ、その結果、規模拡張性があり、同時に、汎化特性を有するパターン学習モデルを得ることができる。
【００９４】
すなわち、多くのパターンを獲得（記憶）することができ、かつ、複数のパターンの共通性を獲得することができる。さらに、複数のパターンの共通性を獲得することで、その共通性に基づいて、未学習のパターンの認識や生成を行うことが可能となる。
【００９５】
具体的には、学習データとして、例えば、N種類の音韻の音声データを、N個の学習モジュール１０1ないし１０Nにそれぞれ与えて、パターン学習モデルの学習を行った場合に、そのパターン学習モデルによれば、学習に用いられていない時系列パターンの音声データの認識や生成を行うことができる。さらに、例えば、学習データとして、例えば、ロボットのアームを駆動するための、N種類の駆動データを、N個の学習モジュール１０1ないし１０Nにそれぞれ与えて、パターン学習モデルの学習を行った場合に、そのパターン学習モデルによれば、学習に用いられていない時系列パターンの駆動データの生成を行うことができ、その結果、ロボットは、教えられていないアームの動きをすることが可能となる。
【００９６】
また、学習後のパターン学習モデルによれば、パターン学習モデル間のモデルパラメータ（リソース）どうしの距離に基づいて、パターン学習モデルどうしの類似性を評価し、類似性が高いパターン学習モデルどうしをクラスタとして、パターンのクラスタリングを行うことができる。
【００９７】
次に、図５ないし図９を参照して、本件発明者が行った、図１の学習装置による学習処理（以下、適宜、共有学習処理という）のシミュレーションの結果について説明する。
【００９８】
図５は、共有学習処理で学習を行ったパターン学習モデルについての各データを示している。
【００９９】
なお、シミュレーションでは、パターン学習モデルとして、２つのPBが入力層に入力され、３つのコンテキストが入力層にフィードバックされる９個のRNNPB#1ないしRNNPB#9を採用し、学習データとして、３つのパターンP#1,P#2,P#3の時系列データのそれぞれに、異なる３つのノイズN#1,N#2,N#3のそれぞれを重畳して得られる９個の時系列データを用いた。
【０１００】
また、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に対する誤差（予測誤差）を小さくするように行った。
【０１０３】
図５上から１番目は、学習後のRNNPB#1ないしRNNPB#9に、学習時に与えられた学習データを入力データとして与えたときに、RNNPB#1ないしRNNPB#9それぞれが出力する出力データ(output)と、その出力データの予測誤差(error)とを示している。
【０１０４】
図５上から１番目において、予測誤差は、ほぼ0になっており、したがって、RNNPB#1ないしRNNPB#9は、入力データ、つまり、学習時に与えられた学習データとほぼ一致する出力データを出力する。
【０１０５】
図５上から２番目は、学習後のRNNPB#1ないしRNNPB#9が、図５上から１番目に示した出力データを出力するときの、３つのコンテキストの時間変化を示している。
【０１０６】
また、図５上から３番目は、学習後のRNNPB#1ないしRNNPB#9が、図５上から１番目に示した出力データを出力するときの、２つのPB（以下、適宜、２つのPBそれぞれを、PB#1，PB#2と記載する）の時間変化を示している。
【０１０７】
図６は、学習後のRNNPB#1ないしRNNPB#9のうちの、例えば、５番目のRNNPB#5が、各値のPB#1，PB#2に対して出力する出力データを示している。
【０１０８】
なお、図６では、横軸がPB#1を表し、縦軸がPB#2を表している。
【０１０９】
図６によれば、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より大であるときに、９個の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の方向とは逆方向に変形していくときに現れるパターンをも獲得していることが分かる。
【０１１２】
次に、図７は、９個のRNNPB#1ないしRNNPB#9それぞれのウエイトマトリクスどうしの相関としての距離、すなわち、例えば、ウエイトマトリクスを構成する各ウエイトをコンポーネントとするベクトルの空間における、そのベクトルどうしの距離を表す長方形状のマップを示している。
【０１１３】
なお、ウエイトマトリクスどうしの距離が小であるほど、その２つのウエイトマトリクスどうしの相関が高い。
【０１１４】
図７のマップでは、横軸と縦軸のそれぞれに、９個のRNNPB#1ないしRNNPB#9それぞれのウエイトマトリクスをとって、その横軸のウエイトマトリクスと、縦軸のウエイトマトリクスとの距離が、濃淡で示されており、濃い（黒い）部分ほど、距離が小であることを表す（淡い（白い）部分ほど、距離が大であることを表す）。
【０１１５】
図７において、横×縦が５×３個のマップのうちの、左上のマップは、学習の回数が0回目であるときのウエイトマトリクスどうしの距離、すなわち、初期化がされたウエイトマトリクスどうしの距離を示しており、マップにおいて、対角線上に並ぶ、同一のRNNPB#iのウエイトマトリクスどうしの距離だけが小になっている。
【０１１６】
以下、図７では、右に行くほど、そして、下に行くほど、学習が進行したときのマップが示されており、右下のマップが、学習の回数が1400回目であるときのウエイトマトリクスどうしの距離を示している。
【０１１７】
図７によれば、学習が進行するにつれ、同一のパターンP#1の時系列データを学習したRNNPB#1ないしRNNPB#3のウエイトマトリクスどうしの距離、同一のパターンP#2の時系列データを学習したRNNPB#4ないしRNNPB#6のウエイトマトリクスどうしの距離、及び、同一のパターンP#3の時系列データを学習したRNNPB#7ないしRNNPB#9のウエイトマトリクスどうしの距離が小さくなることが分かる。
【０１１８】
図８は、図５ないし図７の場合とは別の時系列データを用いて学習を行ったRNNPBのウエイトマトリクスどうしの相関としての距離を表す、図７と同様のマップを示している。
【０１１９】
なお、図８のマップを作成するシミュレーションでは、図９に示す５種類のパターンP#1,P#2,P#3,P#4,P#5の時系列データのそれぞれに、異なる４つのノイズN#1,N#2,N#3,N#4のそれぞれを重畳して得られる２０個の時系列データを用意し、各時系列データを、１つのRNNPBに学習させた。したがって、図８のマップを作成するシミュレーションで用いたRNNPBは、２０個の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の時系列データを、それぞれ与えた。
【０１２１】
図８左の５×３個のマップは、共有が弱い場合、すなわち、20個のRNNPB#1ないしRNNPB#20のウエイトマトリクスw1ないしw20それぞれに、その２０個のウエイトマトリクスw1ないしw20のすべてを影響させる度合いが小さい場合、具体的には、式（２）の係数αiが小である場合（αiがほぼ0である場合）のマップを示している。
【０１２２】
また、図８右の５×３個のマップは、共有が強い場合、すなわち、20個のRNNPB#1ないしRNNPB#20のウエイトマトリクスw1ないしw20それぞれに、その２０個のウエイトマトリクスw1ないしw20のすべてを影響させる度合いが大きい場合、具体的には、式（１）の係数αiが小でない場合のマップを示している。
【０１２３】
共有が弱い場合も強い場合も、学習の回数が0回目であるときの左上のマップでは、対角線上に並ぶ、同一のRNNPB#iのウエイトマトリクスどうしの距離だけが小になっている。
【０１２４】
そして、共有が弱い場合には、図８左に示すように、学習が進行しても、ウエイトマトリクスどうしの距離に、特に傾向は現れないが、共有が強い場合には、図８右に示すように、同一のパターンの時系列データを学習したRNNPBの間で、ウエイトマトリクスどうしの距離が小さくなることが分かる。
【０１２５】
したがって、共有処理によって、複数の学習モジュールをまたいで分散表現が形成され、複数のRNNPBが汎化特性を有するようになっていることが分かる。
【０１２６】
なお、モデル学習部１２iによるモデルパラメータの更新学習の方法、及び、モデルパラメータ共有部２０による共有処理の方法は、上述した方法に限定されるものではない。
【０１２７】
また、本実施の形態では、モデルパラメータ共有部２０による共有処理において、N個の学習モジュール１０1ないし１０Nのすべてに、モデルパラメータとしてのウエイトマトリクスを共有させるようにしたが、その他、例えば、N個の学習モジュール１０1ないし１０Nのうちの一部だけに、モデルパラメータとしてのウエイトマトリクスを共有させることが可能である。
【０１２８】
さらに、本実施の形態では、モデルパラメータ共有部２０による共有処理において、学習モジュール１０iに、複数のモデルパラメータとしての、ウエイトマトリクスを構成する複数のウエイトすべてを共有させるようにしたが、共有処理では、ウエイトマトリクスを構成する複数のウエイトすべてではなく、そのうちの一部のウエイトだけを共有させるようにすることが可能である。
【０１２９】
また、N個の学習モジュール１０1ないし１０Nのうちの一部だけに、ウエイトマトリクスを構成する複数のウエイトのうちの一部のウエイトだけを共有させることも可能である。
【０１３０】
なお、図１の学習装置は、モデルパラメータ共有部２０が、複数の学習モジュール１０1ないし１０Nに、モデルパラメータを共有させる、つまり、各学習モジュール１０iにおけるパターン学習モデルとしてのRNNPB#iのモデルパラメータであるウエイトマトリクスwiに、学習モジュール１０1ないし１０NそれぞれにおけるRNNPB#1ないしRNNPB#Nのウエイトマトリクスw1ないしwNを影響させる点で、RNNの学習時に、２つのRNNのコンテキストどうしの誤差に基づいて、その２つのRNNのコンテキストを変化させる、つまり、各RNNのコンテキストに、２つのRNNのコンテキストを影響させる特許文献１に記載の技術と共通する。
【０１３１】
しかしながら、図１の学習装置では、影響を受けるのが、モデルパラメータであるウエイトマトリクスである点で、モデルパラメータではなく、内部状態であるコンテキストが影響を受ける特許文献１に記載の技術と相違する。
【０１３２】
すなわち、例えば、関数で表現されるパターン学習モデルを例にすれば、パターン学習モデルのモデルパラメータは、そのパターン学習モデルを表現する関数を定義する、学習によって求められる定数（例えば、入力がuと、出力がyと、内部状態がxと、それぞれ表されるシステムをモデル化する状態方程式y=Cx+Du、及びx'=Ax+Bu（x'はxの微分を表す）を例にすれば、A,B,C,Dにあたる）であり、そもそも定数ではない内部状態（状態方程式の例では、内部状態x）とは異なる。
【０１３３】
同様に、図１の学習装置は、各学習モジュール１０iにおけるパターン学習モデルとしてのRNNPB#iのモデルパラメータであるウエイトマトリクスwiに、学習モジュール１０1ないし１０NそれぞれにおけるRNNPB#1ないしRNNPB#Nのウエイトマトリクスw1ないしwNを影響させる点で、RNNPBの学習時に、２つのRNNPBのPBどうしの差に基づいて、その２つのRNNPBのPBを変化させる、つまり、各RNNPBのPBに、２つのRNNPBのPBを影響させる非特許文献１に記載の技術と共通する。
【０１３４】
しかしながら、図１の学習装置では、影響を受けるのが、モデルパラメータであるウエイトマトリクスである点で、モデルパラメータではなく、内部状態である（あるいは、内部状態に相当する）PBが影響を受ける非特許文献１に記載の技術と相違する。
【０１３５】
すなわち、上述したように、パターン学習モデルのモデルパラメータとは、パターン学習モデルを表現する関数を定義する、学習によって求められる定数であり、定数ではない内部状態とは異なる。
【０１３６】
そして、モデルパラメータは、パターン学習モデルを表現する関数を定義する、学習によって求められる定数であるがゆえに、学習時は、学習をしようとするパターンに対応する値になるように更新（変更）されるが、出力データを生成するとき（パターン学習モデルとしてのRNNPBの入力層に入力データを入力し、その入力データに対応する出力データを、RNNPBの出力層から出力するとき）には、変更されない。
【０１３７】
一方、特許文献１に記載の技術が対象としているコンテキスト、及び、非特許文献１に記載の技術が対象としているPBは、モデルパラメータとは異なる内部状態であるがゆえに、学習時は勿論、出力データを生成するときも変更される。
【０１３８】
以上のように、図１の学習装置は、特許文献１及び非特許文献１に記載の技術のいずれとも相違し、その結果、規模拡張性があり、同時に、汎化特性を有するパターン学習モデルを得ることができる。
【０１３９】
すなわち、図１の学習装置では、例えば、図１０に示すように、RNNPBなどのパターン学習モデルのモデルパラメータを共有させる。
【０１４０】
その結果、図１の学習装置によれば、図１１に示すように、規模拡張性に優れるが、汎化特性に欠ける「局所表現」スキームと、汎化特性があるが、規模拡張性に欠ける「分散表現」スキームとの２種類の学習の両方の長所を有する、いわば「中間表現」スキームの学習を行い、規模拡張性があり、同時に、汎化特性を有するパターン学習モデルを得ることができる。
【０１４１】
次に、基本となる図１の学習装置に対して、更新学習した学習モジュール１０i（が記憶するモデルパラメータが表す時系列パターンまたはダイナミクス）を、時系列パターンやダイナミクスの特徴に応じて、適切に分類することができるようにした学習装置について説明する。
【０１４２】
従来、時系列パターンを分類する技術としては、例えば、教師なし分類に関するものとして、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ないし１０N、モデルパラメータ共有部２０、およびパターン分類部１１１により構成され、パターン分類部１１１が新たに設けられている点で、図１の学習装置と相違する。
【０１４８】
パターン分類部１１１は、更新学習後のパターン学習モデルのモデルパラメータを、N個の学習モジュール１０1ないし１０Nそれぞれから取得し、モデルパラメータ距離に基づく分類を行う。上述したように、パターン学習モデルのモデルパラメータは複数あり、ベクトルとなっているので、モデルパラメータ距離に基づく分類手法としては、教師なし分類アルゴリズムの一つである、例えば、k-means法を採用することができる。
【０１４９】
また、学習モジュール間のモデルパラメータ距離（以下、単にパラメータ距離と称する）は、学習モジュール間のモデルパラメータのユークリッド距離で求めることができる。例えば、学習モジュール１０1と学習モジュール１０2のパラメータ距離Dparameter（1,2）は、式（４）で計算することができる。なお、式（４）におけるｋは、学習モジュール１０1または１０2のモデルパラメータを識別する変数を表し、例えば、ｐ1,kは、学習モジュール１０1のk番目（k≦Q）のモデルパラメータを表す。
【０１５０】
【数４】
2010020446.tif 000006
【０１５１】
時系列パターンに対してパターン学習モデルのモデルパラメータが一意に決まるような冗長性の低いパターン学習モデルであれば、パターン学習モデルの類似性の評価にパラメータ距離を用いることは容易に想像できるが、例えば、ニューラルネット（RNN）などのように冗長性の高いパターン学習モデルにおいて、パラメータ距離をパターン学習モデルの類似性の評価に用いることができるのは、上述した共有学習処理により、類似した時系列パターンを学習する学習モジュール間ではパラメータ距離が小さくなるという特性を有しているからである。
【０１５２】
図１３のフローチャートを参照して、図１２の学習装置１０１が行う、パターン分類も行う学習処理について説明する。
【０１５３】
図１３の学習処理は、ステップＳ４１ないしＳ４４が図２のステップＳ１１ないしＳ１４にそれぞれ対応し、ステップＳ４４の後に、図２の学習処理にはないステップＳ４５が挿入されている点のみが異なるので、図１３のステップＳ４５の処理についてのみ説明する。
【０１５４】
ステップＳ４４で、学習の終了条件が満たされていると判定された場合、処理はステップＳ４５に進み、パターン分類部１１１は、N個の学習モジュール１０1ないし１０Nから、学習後のモデルパラメータを取得し、教師なし分類アルゴリズムであるk-means法を用いて、パターン分類処理を行う。ステップＳ４５の処理が終了後、学習処理は終了する。
【０１５５】
次に、パターン学習モデルとしてRNNを採用した場合について説明する。RNNは、入力層にPBユニットを有していない点のみがRNNPBと異なり、それ以外の更新学習等はRNNPBと同様に行うことができる。
【０１５６】
図１４は、パターン学習モデルとして、RNNを採用した場合の、図１２の学習装置１０１の構成例を示している。
【０１５７】
RNNでは、ウエイトがモデルパラメータであるので、パターン分類部１１１は、更新学習後のRNN#1ないしRNN#Nのウエイトマトリクスw1ないしwNを、学習モジュール１０1ないし１０Nから取得し、ウエイトマトリクスのユークリッド距離（以下、ウエイト距離と称する）に基づく分類を行う。
【０１５８】
例えば、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としたとき、式（５）で表すことができる。
【０１５９】
【数５】
2010020446.tif 000007
【０１６０】
図１５は、パターン学習モデルとしてRNNを採用した場合の、図１２の学習装置１０１の学習処理のフローチャートである。
【０１６１】
図１５の学習処理は、ステップＳ６１ないしＳ６４が図４のステップＳ２１ないしＳ２４にそれぞれ対応し、ステップＳ６４の後に、図４の学習処理にはないステップＳ６５が挿入されている点のみが異なるので、図１５のステップＳ６５の処理についてのみ説明する。
【０１６２】
ステップＳ６４で、学習の終了条件が満たされていると判定された場合、処理はステップＳ６５に進み、パターン分類部１１１は、N個の学習モジュール１０1ないし１０Nから、学習後のウエイトマトリクスw1ないしwNを取得し、その取得したウエイトマトリクスw1ないしwNを用いて、k-means法により、パターン分類処理を行う。ステップＳ６５の処理が終了後、学習処理は終了する。
【０１６３】
以上のようにして、学習装置１０１では、学習後のウエイトマトリクスw1ないしwNを用いて、時系列パターンやダイナミクスの特徴に基づいた学習モジュールの分類を行うことができる。これにより、例えば、多数の学習モジュールに共通の特徴を抽出すること（いわゆるデータマイニングを行うこと）などが可能となる。
【０１６４】
次に、図１６ないし図１９を参照して、図１２の学習装置１０１によるパターン分類処理を検証した実験結果について説明する。
【０１６５】
図１６は、実験を行った環境を示している。
【０１６６】
本件発明者は、実験として、図１２の学習装置１０１を備える移動ロボット１４１に２次元平面上の移動を行動パターンとして学習させることを行った。なお、パターン学習モデルには、３つのコンテキストが入力層にフィードバックされるRNNを採用した。
【０１６７】
具体的には、本件発明者は、移動ロボット１４１を、図１６に示される、４面の壁で囲まれた空間（部屋）１６１内に置き、その空間１６１内を移動する６つの行動パターンACT#1ないしACT#6を移動ロボット１４１の各RNNに学習させた。なお、空間１６１のなかには、障壁１７１ないし１７４とライト１７５が設けられている。また、移動ロボット１４１には、６つの行動パターンACT#1ないしACT#6のほかに、壁（障壁）を避ける、光に近づくなどの反射行動が予め入力（学習）されている。
【０１６８】
移動ロボット１４１は、距離センサと光センサを内蔵している。より具体的には、図１７に示されるように、移動ロボット１４１は、２次元平面（XY平面）と並行な所定の面上で、かつ、自分の周囲３６０度を等分割した８方向の検出方向（点線で示される方向）の距離または光を検出する距離センサおよび光センサを備える。距離センサの８方向の入力値はd1ないしd8であり、光センサの８方向の入力値はh1ないしh8である。
【０１６９】
そして、移動ロボット１４１に行動パターンを学習させるとは、移動ロボット１４１に２次元平面上の軌道（位置の軌跡）を学習させるのではなく、移動ロボット１４１が各軌道を通過したときに、センサが取得したセンサ入力値と、移動ロボット１４１の駆動部の出力値の時系列データを学習させることを意味する。
【０１７０】
従って、実験では、移動ロボット１４１に、距離センサの入力値d1ないしd8と光センサの入力値h1ないしh8、および、所定のモータ出力に対応する移動ベクトル（mx,my）からなる１８次元（mx，my，d1，・・，d8,h1，・・，h8）のベクトルパターン（時系列データ）を学習させた。
【０１７１】
なお、本件発明者は、６つの行動パターンACT#1ないしACT#6それぞれについて、互いに軌道を少し異なるものとした５つのバリエーションを学習させたので、学習させた行動パターンのサンプル数は、合計で３０個（６つの行動パターン×５バリエーション）となる。
【０１７２】
図１８は、３０個のRNN#1ないしRNN#30に学習させた行動パターンACT#1ないしACT#6を示している。
【０１７３】
図１８に示されるように、本件発明者は、行動パターンACT#1についての５つのバリエーションをRNN#1ないしRNN#5に学習させ、行動パターンACT#2についての５つのバリエーションをRNN#6ないしRNN#10に学習させ、行動パターンACT#3についての５つのバリエーションをRNN#11ないしRNN#15に学習させ、行動パターンACT#4についての５つのバリエーションをRNN#16ないしRNN#20に学習させ、行動パターンACT#5についての５つのバリエーションをRNN#21ないしRNN#25に学習させ、行動パターンACT#6についての５つのバリエーションをRNN#26ないしRNN#30に学習させた。
【０１７４】
図１９は、図１５の学習処理後の各RNN間のウエイト距離を、２次元空間に射影したサモンマップ(sammon map)に、パターン分類部１１１による分類結果を重ね合わせた図を示している。
【０１７５】
サモンマップは、ｎ次元入力ベクトルを、入力ベクトル空間での関係を維持したまま２次元平面上へ写像することができる手法であり、その詳細は、JOHN W.SAMMON.JR.,A Nonlinear Mapping For Data Structure Analysis,IEEE TRANSACTIONS ON COMPUTERS,VOL.C-18,NO.5,MAY 1969に開示されている。
【０１７６】
図１９において、番号が付されたバツ印（×）は、その番号iに対応するRNN#iのサモンマップ上の位置を表す。そして、バツ印間の距離は、RNN間のウエイト距離を反映している。なお、バツ印を中心とする細線の円は、RNN間のウエイト距離の近さをわかりやすくするため、ウエイト距離が１０となる範囲を示したものである。例えば、サモンマップ上の横軸の値が０で、縦軸の値が−４０付近に位置するRNN#18ないしRNN#20のウエイトマトリクスw18ないしw20は、ほとんど一致していることが分かる。
【０１７７】
一方、図１９において、太い点線で示される６つの大きな円は、学習処理後の３０個のRNN#1ないしRNN#30のウエイトマトリクスw1ないしw30を、６つの分類（カテゴリ）となるように指定してパターン分類部１１１が分類を行ったときの分類結果を示している。採用した分類アルゴリズムはk-means法である。
【０１７８】
太い点線の大きな円が示す分類結果によれば、１つのカテゴリ（カテゴリ１）はRNN#1ないしRNN#5を含み、１つのカテゴリ（カテゴリ２）はRNN#6ないしRNN#10を含み、１つのカテゴリ（カテゴリ３）はRNN#11ないしRNN#15を含み、１つのカテゴリ（カテゴリ４）はRNN#16ないしRNN#20を含み、１つのカテゴリ（カテゴリ５）はRNN#21ないしRNN#25を含み、１つのカテゴリ（カテゴリ６）はRNN#26ないしRNN#30を含むように、３０個のRNN#1ないしRNN#30が分類されている。即ち、同一の行動パターンを学習させた５つのRNNが同一のカテゴリとなるように分類されているので、学習モジュールが適切に分類されていると言える。
【０１７９】
以上のように、図１２の学習装置１０１によれば、規模拡張性があり、同時に、汎化特性を有するパターン学習モデルを得ることができるとともに、学習モジュール１０i（それぞれが学習したパターン時系列パターンやダイナミクス）を、時系列パターンやダイナミクスの特徴に基づいて、教師なしで適切に分類することができる。
【０１８０】
すなわち、上述した状態方程式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の類似度で分類することはできなかった）が、学習装置１０１によれば、時系列パターンやダイナミクスの特徴を表す定数A,B,C,Dの類似度で分類することができる。
【０１８１】
上述した一連の処理は、ハードウェアにより行うこともできるし、ソフトウェアにより行うこともできる。一連の処理をソフトウェアによって行う場合には、そのソフトウェアを構成するプログラムが、汎用のコンピュータ等にインストールされる。
【０１８２】
そこで、図２０は、上述した一連の処理を実行するプログラムがインストールされるコンピュータの一実施の形態の構成例を示している。
【０１８３】
プログラムは、コンピュータに内蔵されている記録媒体としてのハードディスク２０５やROM２０３に予め記録しておくことができる。
【０１８４】
あるいはまた、プログラムは、フレキシブルディスク、CD-ROM(Compact Disc Read Only Memory)，MO(Magneto Optical)ディスク，DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブル記録媒体２１１に、一時的あるいは永続的に格納（記録）しておくことができる。このようなリムーバブル記録媒体２１１は、いわゆるパッケージソフトウエアとして提供することができる。
【０１８５】
なお、プログラムは、上述したようなリムーバブル記録媒体２１１からコンピュータにインストールする他、ダウンロードサイトから、ディジタル衛星放送用の人工衛星を介して、コンピュータに無線で転送したり、LAN(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送し、コンピュータでは、そのようにして転送されてくるプログラムを、通信部２０８で受信し、内蔵するハードディスク２０５にインストールすることができる。
【０１８６】
コンピュータは、CPU(Central Processing Unit)２０２を内蔵している。CPU２０２には、バス２０１を介して、入出力インタフェース２１０が接続されており、CPU２０２は、入出力インタフェース２１０を介して、ユーザによって、キーボードや、マウス、マイク等で構成される入力部２０７が操作等されることにより指令が入力されると、それにしたがって、ROM(Read Only Memory)２０３に格納されているプログラムを実行する。あるいは、また、CPU２０２は、ハードディスク２０５に格納されているプログラム、衛星若しくはネットワークから転送され、通信部２０８で受信されてハードディスク２０５にインストールされたプログラム、またはドライブ２０９に装着されたリムーバブル記録媒体２１１から読み出されてハードディスク２０５にインストールされたプログラムを、RAM(Random Access Memory)２０４にロードして実行する。これにより、CPU２０２は、上述したフローチャートにしたがった処理、あるいは上述したブロック図の構成により行われる処理を行う。そして、CPU２０２は、その処理結果を、必要に応じて、例えば、入出力インタフェース２１０を介して、LCD(Liquid Crystal Display)やスピーカ等で構成される出力部２０６から出力、あるいは、通信部２０８から送信、さらには、ハードディスク２０５に記録等させる。
【０１８７】
ここで、本明細書において、コンピュータに各種の処理を行わせるためのプログラムを記述する処理ステップは、必ずしもフローチャートとして記載された順序に沿って時系列に処理する必要はなく、並列的あるいは個別に実行される処理（例えば、並列処理あるいはオブジェクトによる処理）も含むものである。
【０１８８】
また、プログラムは、１のコンピュータにより処理されるものであっても良いし、複数のコンピュータによって分散処理されるものであっても良い。さらに、プログラムは、遠方のコンピュータに転送されて実行されるものであっても良い。
【０１８９】
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【０１９０】
上述した例では、時系列パターンとして、移動ロボット１４１のセンサ入力およびモータ出力の時系列データを学習して、分類する例について説明したが、学習および分類の対象となる時系列データは、これに限らず、コンピュータのユーザインタフェースにおけるユーザ入力の時系列データ、音楽データおよび画像データに関する時系列データ、言語処理における音素、言語、センテンスなどの音声の時系列データなどとすることも勿論可能である。
【図面の簡単な説明】
【０１９１】
【図１】本発明を適用する学習装置の基本となる学習装置の一実施の形態の構成例を示すブロック図である。
【図２】図１の学習装置の学習処理を説明するフローチャートである。
【図３】パターン学習モデルとしてRNNPBを採用した場合の図１の学習装置の構成例を示すブロック図である。
【図４】パターン学習モデルとしてRNNPBを採用した場合の図１の学習装置の学習処理を説明するフローチャートである。
【図５】シミュレーションの結果を示す図である。
【図６】シミュレーションの結果を示す図である。
【図７】シミュレーションの結果を示す図である。
【図８】シミュレーションの結果を示す図である。
【図９】シミュレーションに用いた時系列データを示す図である。
【図１０】RNNPBのモデルパラメータの共有を模式的に示す図である。
【図１１】「局所表現」スキーム、「分散表現」スキーム、及び「中間表現」スキームの学習の関係を模式的に示す図である。
【図１２】本発明を適用した学習装置の一実施の形態の構成例を示すブロック図である。
【図１３】図１２の学習装置の学習処理を説明するフローチャートである。
【図１４】パターン学習モデルとしてRNNを採用した場合の図１２の学習装置の構成例を示すブロック図である。
【図１５】パターン学習モデルとしてRNNを採用した場合の図１２の学習装置の学習処理を説明するフローチャートである。
【図１６】パターン分類処理を検証した実験を行った環境を説明する図である。
【図１７】パターン分類処理を検証した実験に使用した移動ロボットについて説明する図である。
【図１８】図１２の学習装置に学習させた行動パターンを示す図である。
【図１９】サモンマップ上に分類結果を重ね合わせた図である。
【図２０】本発明を適用したコンピュータの一実施の形態の構成例を示すブロック図である。
【符号の説明】
【０１９２】
１０1ないし１０N  学習モジュール，  １１1ないし１１N  パターン入力部，  １２1ないし１２N  モデル学習部，  １３1ないし１３N  モデル記憶部，  ２０  モデルパラメータ共有部，  ２１  ウエイトマトリクス共有部，  １０１  学習装置，  １１１  パターン分類部，  ２０１  バス，  ２０２  CPU，  ２０３  ROM，  ２０４  RAM，  ２０５  ハードディスク，  ２０６  出力部，  ２０７  入力部，  ２０８  通信部，  ２０９  ドライブ，  ２１０  入出力インタフェース，  ２１１  リムーバブル記録媒体
【図１】
2010020446.tif 000008
【図２】
2010020446.tif 000009
【図３】
2010020446.tif 000010
【図４】
2010020446.tif 000011
【図５】
2010020446.tif 000012
【図６】
2010020446.tif 000013
【図７】
2010020446.tif 000014
【図８】
2010020446.tif 000015
【図９】
2010020446.tif 000016
【図１０】
2010020446.tif 000017
【図１１】
2010020446.tif 000018
【図１２】
2010020446.tif 000019
【図１３】
2010020446.tif 000020
【図１４】
2010020446.tif 000021
【図１５】
2010020446.tif 000022
【図１６】
2010020446.tif 000023
【図１７】
2010020446.tif 000024
【図１８】
2010020446.tif 000025
【図１９】
2010020446.tif 000026
【図２０】
2010020446.tif 000027
【手続補正書】
【提出日】平成21年7月10日(2009.7.10)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００７０
【補正方法】変更
【補正の内容】
【００７０】
したがって、式（２）の右辺のサメーションΣβij(wj-wi)は、係数βijを重みとした、RNNPB#iのウエイトマトリクスwiに対するRNNPB#1ないしRNNPB#Nのウエイトマトリクスw1ないしwNそれぞれの偏差（差分）の重み付け平均値を表し、αiは、その重み付け平均値Σβij(wj-wi)を、ウエイトマトリクスwiに影響させる度合いを表す係数である。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０１００
【補正方法】変更
【補正の内容】
【０１００】
また、RNNPB#1には、パターンP#1の時系列データにノイズN#1を重畳して得られる時系列データを、RNNPB#2には、パターンP#1の時系列データにノイズN#2を重畳して得られる時系列データを、RNNPB#3には、パターンP#1の時系列データにノイズN#3を重畳して得られる時系列データを、それぞれ、学習データとして与えた。