説明

学習装置、学習方法、及びプログラム

【課題】時系列データの時系列パターンを適切な要素パターンに分けた学習を、容易に行う。
【解決手段】データ抽出部2は、ウインドウの位置をずらすことで、時系列データから、例えば、N個のモデル学習用データを抽出し、i番目の各モデル学習用データを、学習モジュール10iに分配する。学習モジュール101ないし10Nは、モデル学習用データを用いて、パターン学習モデルを定義するモデルパラメータを更新する更新学習を行う。モデルパラメータ共有部20は、学習モジュール101ないし10Nに、モデルパラメータを共有させる。本発明は、例えば、時系列パターンの学習等に適用できる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、学習装置、学習方法、及びプログラムに関し、特に、時系列データを構成する構成要素となる時系列パターンの学習を、容易に行うことができるようにする学習装置、学習方法、及びプログラムに関する。
【背景技術】
【0002】
パターンを学習するパターン学習モデルとしては、例えば、RNN(Recurrent Neural Network)等がある。このようなパターン学習モデルの学習のスキームは、「局所表現」スキームと「分散表現」スキームとに分類される。
【0003】
「局所表現」スキームでは、複数のパターンそれぞれが、パターン学習モデルの学習(パターン学習モデルが有するモデルパラメータの更新)を行う複数の学習モジュールそれぞれにおいて学習され、これにより、1つの学習モジュール(パターン学習モデル)で、1つのパターンが記憶(獲得)される。
【0004】
また、「分散表現」スキームでは、複数のパターンが、1つの学習モジュールにおいて学習され、これにより、1つの学習モジュールで、複数のパターンが同時に記憶される。
【0005】
「局所表現」スキームでは、1つの学習モジュールで、1つのパターンが記憶される、つまり、1つのパターン学習モデルが、1つのパターンを学習するので、ある学習モジュールと、他の学習モジュールとの間で、パターンの記憶の干渉が少なく、パターンの記憶の安定性が高い。そして、「局所表現」スキームは、学習モジュールを追加することにより、新たなパターンを学習することが容易に行うことができるという規模拡張性に優れる。
【0006】
但し、「局所表現」スキームでは、1つのパターン学習モデルが、1つのパターンを学習する、つまり、パターンの記憶が、複数の学習モジュールでそれぞれ独立に行われるため、複数の学習モジュールそれぞれでのパターンの記憶間の関係性の構造化(共通化)による汎化特性を得ること、すなわち、例えば、ある学習モジュールに記憶されたパターンとも異なり、他の学習モジュールに記憶されたパターンとも異なるが、それらの両方のパターンの、いわば中間のパターンを生成するようなこと等はできない。
【0007】
一方、「分散表現」スキームでは、1つの学習モジュールで、複数のパターンが記憶される、つまり、1つのパターン学習モデルが、複数のパターンを学習するので、1つの学習モジュール内での複数のパターンの記憶間の干渉によって、その記憶間の共通化による汎化特性を得ることができる。
【0008】
但し、「分散表現」スキームでは、パターンの記憶の安定性が低いため、規模拡張性がない。
【0009】
ところで、規模拡張性に優れ、時系列データを構成する構成要素となる時系列パターン(以下、要素パターンともいう)を、異なる時系列パターンごとに、1つの学習モジュールに獲得させる学習装置が、例えば、特許文献1に記載されている。
【0010】
特許文献1に記載の学習装置は、複数の学習モジュールで構成され、各学習モジュールに対して、時系列データのどの区間の学習を担当するかが決定される。各学習モジュールでは、その学習モジュールが学習を担当することに決定された区間(以下、担当区間ともいう)のデータ(列)を用いた学習が行われる。
【0011】
すなわち、特許文献1に記載の学習装置では、各学習モジュールの担当区間が、学習モジュールで求められる予測値の、目標値に対する予測誤差に基づいて決定され、各学習モジュールが、時系列データのうちの、担当区間のデータを、排他的に用いた学習(競合学習)を行う。
【0012】
学習モジュールは、競合学習によって、担当区間のデータの時系列パターンを、要素パターンとして獲得(記憶)する。要素パターンを獲得した学習モジュールに対しては、その要素パターンのデータの区間が、担当区間として決定されやすくなり、その結果、学習モジュールは、競合学習によって、いわば、より強固に、要素パターンを獲得する。
【0013】
【特許文献1】特許第3922407号
【発明の開示】
【発明が解決しようとする課題】
【0014】
上述したように、担当区間を決定し、その担当区間のデータを用いた競合学習を行う場合においては、例えば、時系列データに含まれる要素パターンどうしの直交性が低いときや、要素パターンが複雑なパターンであること等によって、要素パターンの学習が難しいとき等に、担当区間の決定が不安定になることがある。
【0015】
このように、担当区間の決定が不安定になると、つまり、学習モジュールに対して決定される担当区間のデータの時系列パターンが不安定になると(一定のパターンでなくなると)、学習モジュールにおいて、要素パターンを適切に学習することが困難となる。
【0016】
本発明は、このような状況に鑑みてなされたものであり、時系列データの時系列パターンを適切な要素パターンに分けた学習を、容易にすることができるようにするものである。
【課題を解決するための手段】
【0017】
本発明の一側面の学習装置、又は、プログラムは、時系列データから、所定のウインドウ長のウインドウ内のデータを、パターンを学習するパターン学習モデルの学習用のモデル学習用データとして抽出するデータ抽出手段と、前記モデル学習用データを用い、前記パターン学習モデルを定義するモデルパラメータを更新する更新学習を行う複数の学習手段と、前記複数の学習手段のうちの2以上の学習手段に、前記モデルパラメータを共有させるモデルパラメータ共有手段とを備え、前記データ抽出手段が、前記ウインドウの位置をずらすことで、前記時系列データから、複数の前記モデル学習用データを抽出し、1の前記モデル学習用データを、1の前記パターン学習モデルに割り当てるように、前記モデル学習用データを前記学習手段に分配する学習装置、又は、学習装置として、コンピュータを機能させるためのプログラムである。
【0018】
本発明の一側面の学習方法は、時系列データから、所定のウインドウ長のウインドウ内のデータを、パターンを学習するパターン学習モデルの学習用のモデル学習用データとして抽出するデータ抽出手段が、前記ウインドウの位置をずらすことで、前記時系列データから、複数の前記モデル学習用データを抽出し、1の前記モデル学習用データを、1の前記パターン学習モデルに割り当てるように、前記モデル学習用データを、前記パターン学習モデルの更新学習を行う学習手段に分配し、前記モデル学習用データを用い、前記パターン学習モデルを定義するモデルパラメータを更新する更新学習を行う複数の学習手段のそれぞれが、更新学習を行い、前記複数の学習手段のうちの2以上の学習手段に、前記モデルパラメータを共有させるモデルパラメータ共有手段が、前記2以上の学習手段に、前記モデルパラメータを共有させるステップを含む学習方法である。
【0019】
本発明の一側面においては、前記ウインドウの位置をずらすことで、前記時系列データから、複数の前記モデル学習用データが抽出され、1の前記モデル学習用データが、1の前記パターン学習モデルに割り当てられるように、前記モデル学習用データが前記学習手段に分配される。そして、前記モデル学習用データを用い、前記パターン学習モデルを定義するモデルパラメータを更新する更新学習が行われ、前記複数の学習手段のうちの2以上の学習手段に、前記モデルパラメータを共有させる。
【0020】
なお、プログラムは、伝送媒体を介して伝送することにより、又は、記録媒体に記録して、提供することができる。
【0021】
また、学習装置は、独立した装置であっても良いし、1つの装置を構成している内部ブロックであっても良い。
【発明の効果】
【0022】
本発明の一側面によれば、時系列データを構成する構成要素となる時系列パターン(要素パターン)の学習を、容易に行うことができる。
【発明を実施するための最良の形態】
【0023】
図1は、本発明を適用した学習装置の一実施の形態の構成例を示している。
【0024】
なお、以下説明する学習装置は、本件出願人が先に出願した特願2007-094009号に記載の学習装置を応用した学習装置であり、特願2007-094009号をも参照すると、詳細の理解が容易になる。
【0025】
図1において、学習装置は、時系列データ入力部1、データ抽出部2、複数であるN個の学習モジュール101ないし10N、モデルパラメータ共有部20から構成される。
【0026】
時系列データ入力部1には、時系列データが、外部から供給される。
【0027】
時系列データ入力部1は、外部からの時系列データを受信し、図1の学習装置での学習に用いる学習データとして、データ抽出部2に供給する。
【0028】
データ抽出部2は、時系列データ入力部1からの学習データとしての時系列データから、所定のウインドウ長のウインドウ内のデータを、パターンを学習するパターン学習モデルの学習用のモデル学習用データとして抽出し、学習モジュール101ないし10Nに分配する。
【0029】
すなわち、データ抽出部2は、例えば、時系列データ入力部1からの時系列データにかけるウインドウの位置をずらすことで、その時系列データから、複数であるN個のモデル学習用データを抽出する。さらに、データ抽出部2は、1個のモデル学習用データを、1つのパターン学習モデルに割り当てるように、N個のモデル学習用データを学習モジュール10i(i=1,2,・・・,N)に供給(分配)する。
【0030】
具体的には、データ抽出部2は、ウインドウを、時系列データ入力部1からの時系列データの先頭から終わりの方向に順次ずらし、ウインドウ内のデータ(列)を、モデル学習用データとして抽出することで、N個(シーケンス)のモデル学習用データを得る。
【0031】
そして、データ抽出部2は、N個のモデル学習用データのうちのi番目のモデル学習用データを、学習モジュール10iに供給する。なお、データ抽出部2から学習モジュール10iに対して供給するモデル学習用データは、N個のモデル学習用データのうちのいずれであってもよい。
【0032】
ここで、データ抽出部2は、時系列データ入力部1からの時系列データの全体が網羅されるように、ウインドウの位置をずらす。したがって、N個のモデル学習用データの全体には、時系列データ入力部1からの時系列データの全体が含まれる。
【0033】
学習モジュール10i(i=1,2,・・・,N)は、学習データ入力部11i、モデル学習部12i、及びモデル記憶部13iから構成され、データ抽出部2からのモデル学習用データ
を用いて、パターン学習モデルを定義する複数のモデルパラメータ(学習リソース)を更新する更新学習を行う。
【0034】
すなわち、学習データ入力部11iには、データ抽出部2から、学習データとしての時系列データから抽出されたi番目のモデル学習用データが供給される。
【0035】
学習データ入力部11iは、データ抽出部2からのモデル学習用データを受信し、モデル学習部12iに供給する。
【0036】
モデル学習部12iは、学習データ入力部11iからのモデル学習用データを用いて、モデル記憶部13iに記憶されたパターン学習モデルの複数のモデルパラメータを更新する更新学習を行う。
【0037】
モデル記憶部13iは、複数のモデルパラメータによって定義され、時系列パターンを学習(獲得)するパターン学習モデルを記憶する。すなわち、モデル記憶部13iは、パターン学習モデルを定義する複数のモデルパラメータを記憶する。
【0038】
ここで、パターン学習モデルとしては、例えば、HMM(Hidden Markov Model)等の確率モデル、RNN,FNN(Feed Forward Neural Network),RNNPB(RNN with Parametric Bias)等のニューラルネットワーク、SVR(Support Vector Regression)等の関数近似器等を採用することができる。
【0039】
例えば、HMMについては、HMMにおいて状態が遷移する確率を表す状態遷移確率や、状態が遷移するときに、HMMからある観測値が出力される確率を表す出力確率、又は確率密度を表す出力確率密度関数が、HMMのモデルパラメータである。
【0040】
また、例えば、ニューラルネットワークについては、ニューロンに相当するユニット(ノード)において、他のユニットからの入力に付されるウエイト(重み)が、ニューラルネットワークのモデルパラメータである。
【0041】
なお、HMMの状態遷移確率や、出力確率、又は出力確率密度関数、ニューラルネットワークのウエイトは、いずれも複数存在する。
【0042】
モデルパラメータ共有部20は、N個の学習モジュール101ないし10Nのうちの、2以上の学習モジュールに、モデルパラメータを共有させる共有処理を行う。モデルパラメータ共有部20が共有処理を行うことにより、N個の学習モジュール101ないし10Nのうちの、2以上の学習モジュールは、モデルパラメータを共有する。
【0043】
なお、以下では、説明を簡単にするため、モデルパラメータ共有部20は、N個の学習モジュール101ないし10Nのすべてに、モデルパラメータを共有させる共有処理を行うこととする。
【0044】
次に、図2を参照して、図1のデータ抽出部2が、学習データとしての時系列データから、モデル学習用データを抽出するときの、ウインドウのずらし方(モデル学習用データの抽出の仕方)を説明する。
【0045】
データ抽出部2では、ウインドウの一部がオーバラップするように、又は、オーバラップしないように、ウインドウの位置をずらすことで、モデル学習用データを抽出することができる。
【0046】
また、データ抽出部2では、可変長、又は固定長のウインドウ長のウインドウを用いて、モデル学習用データを抽出することができる。
【0047】
すなわち、図2Aは、固定長のウインドウ長のウインドウの一部がオーバラップするように、ウインドウの位置をずらしながら、モデル学習用データを抽出する様子を示している。
【0048】
図2Bは、固定長のウインドウ長のウインドウがオーバラップしないように、ウインドウの位置をずらしながら、モデル学習用データを抽出する様子を示している。
【0049】
図2Cは、可変長のウインドウ長のウインドウがオーバラップしないように、ウインドウの位置をずらしながら、モデル学習用データを抽出する様子を示している。
【0050】
なお、可変長のウインドウ長のウインドウを用いることは、ウインドウ長が異なる複数の固定長のウインドウを用意しておき、その複数のウインドウを適宜選択することによって代用することができる。
【0051】
また、ウインドウは、その一部ではなく、全部がオーバラップするようにずらすことができる。
【0052】
図2Dは、ウインドウの全部をオーバラップさせて、モデル学習用データを抽出する様子を示している。
【0053】
すなわち、図2Dでは、固定長の短いウインドウ長L1と長いウインドウ長L2との2つのウインドウを用い、ウインドウ長L1のウインドウの全部を、ウインドウ長L2のウインドウにオーバラップさせて、モデル学習用データが抽出されている。
【0054】
ここで、ウインドウ長は、学習データとしての時系列データを構成する構成要素となる時系列パターン(要素パターン)の長さに無関係に、あらかじめ、適当な値に決めておくことができる。
【0055】
また、学習データとしての時系列データの時定数が、なんらかの方法によって分かる場合には、ウインドウ長は、その時定数に比例した長さ等とすることができる。
【0056】
さらに、ウインドウをオーバラップするか否かは、例えば、ウインドウ長に応じて決めることができる。
【0057】
すなわち、ウインドウ長が短い場合には、オーバラップをなしにすることができ、ウインドウ長が長い場合には、ある程度の長さのオーバラップを設けるようにすることができる。
【0058】
ここで、学習データとしての時系列データに、例えば、周期的なパターンが、要素パターンとして含まれる場合には、ウインドウ長が短いとは、要素パターンの周期の1/8や、1/2,3/4程度以下のウインドウ長を意味し、ウインドウ長が長いとは、要素パターンの周期の2倍程度以上のウインドウ長を意味する。
【0059】
なお、上述の場合には、データ抽出部2において、学習データとしての時系列データから、N個のモデル学習用データを抽出することとしたが、学習データとしての時系列データからは、N個以外の複数個のモデル学習用データを抽出することが可能である。
【0060】
学習データとしての時系列データから、N個未満の数であるN'個のモデル学習用データが抽出される場合、データ抽出部2は、N個の学習モジュール101ないし10NのうちのN'個に対して、モデル学習用データを分配する。
【0061】
一方、学習データとしての時系列データから、N個を超える数であるN''個のモデル学習用データが抽出される場合、図1の学習装置では、学習モジュール10iと同様の学習モジュールが、N''-N個だけ追加され、学習モジュールが、全部で、N''個にされる。そして、そのN''個の学習モジュールに対して、モデル学習用データが分配される。
【0062】
ここで、図1の学習装置を、コンピュータにプログラムを実行させることで(等価的に)実現するとすれば、学習モジュールの追加は、メモリに、学習モジュールとしての記憶領域を新たに確保すること(たとえば、オブジェクト指向プログラミングにおけるインスタンスの生成)によって行うことができる。
【0063】
なお、学習モジュール101ないし10Nの数Nを固定しておき、データ抽出部2において、学習データとしての時系列データから、N個のモデル学習用データを抽出することができるように、ウインドウのウインドウ長(及びオーバラップの長さ)を調整するようにしてもよい。
【0064】
次に、図3のフローチャートを参照して、図1の学習装置が行う、パターン学習モデルを学習する学習処理について説明する。
【0065】
時系列データ入力部1は、外部から、時系列データが供給されるのを待って、ステップS11において、その時系列データを受信し、学習データとして、データ抽出部2に供給して、処理は、ステップS12に進む。
【0066】
ステップS12では、データ抽出部2は、時系列データ入力部1からの学習データとしての時系列データから、例えば、N個のモデル学習用データを抽出し、i番目のモデル学習用データを、モデル記憶部13iに記憶されたパターン学習モデルに割り当てるように、学習モジュール101ないし10Nに分配して、処理は、ステップS13に進む。
【0067】
ステップS13では、学習モジュール10iのモデル学習部12iが、モデル記憶部13iに記憶されたモデルパラメータを、例えば、乱数等によって初期化して、処理は、ステップS14に進む。
【0068】
ステップS14では、学習モジュール10iが、データ抽出部2からのモデル学習用データを用いて、モデルパラメータを更新する更新学習を行う。
【0069】
すなわち、ステップS14では、学習モジュール10iにおいて、学習データ入力部11iが、学習モジュール10iに供給されたモデル学習用データを受信し、モデル学習部12iに供給する。
【0070】
さらに、ステップS14では、モデル学習部12iが、学習データ入力部11iからのモデル学習用データを用いて、モデル記憶部13iに記憶されたパターン学習モデルの複数のモデルパラメータを更新する更新学習を行い、その更新学習によって得られた新たな複数のモデルパラメータによって、モデル記憶部13iの記憶内容を更新する(上書きする)。
【0071】
ここで、ステップS13及びS14の処理は、データ抽出部2からモデル学習用データが分配された学習モジュール、すなわち、ここでは、N個の学習モジュール101ないし10Nのすべてで行われる。
【0072】
ステップS14の後、処理は、ステップS15に進み、モデルパラメータ共有部20は、直前のステップS14で、更新学習が行われた学習モジュール、すなわち、ここでは、N個の学習モジュール101ないし10Nのすべてに、モデルパラメータを共有させる共有処理を行う。
【0073】
ここで、学習モジュール10iが有する複数のモデルパラメータのうちの、例えば、m番目のモデルパラメータに注目すると、共有処理では、モデルパラメータ共有部20は、N個の学習モジュール101ないし10Nそれぞれのm番目のモデルパラメータに基づいて、学習モジュール101のm番目のモデルパラメータを補正する。
【0074】
さらに、モデルパラメータ共有部20は、N個の学習モジュール101ないし10Nそれぞれのm番目のモデルパラメータに基づいて、学習モジュール102のm番目のモデルパラメータを補正し、以下、同様にして、学習モジュール103ないし10Nそれぞれのm番目のモデルパラメータを補正する。
【0075】
以上のように、モデルパラメータ共有部20が、学習モジュール10iのm番目のモデルパラメータを、N個の学習モジュール101ないし10Nそれぞれのm番目のモデルパラメータに基づいて補正することで、N個の学習モジュール101ないし10Nのm番目のモデルパラメータのそれぞれは、N個の学習モジュール101ないし10Nのm番目のモデルパラメータのすべての影響を受ける(N個の学習モジュール101ないし10Nのm番目のモデルパラメータのそれぞれに、N個の学習モジュール101ないし10Nのm番目のモデルパラメータのすべてを影響させる)。
【0076】
このように、複数の学習モジュールのモデルパラメータすべてを、その複数の学習モジュールのモデルパラメータのそれぞれに影響させること(複数の学習モジュールのモデルパラメータのそれぞれが、その複数の学習モジュールのモデルパラメータすべての影響を受けること)が、複数の学習モジュールによるモデルパラメータの共有である。
【0077】
モデルパラメータ共有部20は、ステップS15において、学習モジュール10iのモデル記憶部13iに記憶された複数のモデルパラメータのすべてを対象に、共有処理を行い、その共有処理によって得られたモデルパラメータによって、モデル記憶部131ないし13Nの記憶内容を更新する。
【0078】
ステップS15の後、処理は、ステップS16に進み、図1の学習装置は、学習の終了条件が満たされているかどうかを判定する。
【0079】
ここで、ステップS16での学習の終了条件としては、例えば、学習の回数、つまり、ステップS14及びS15が繰り返された回数が、あらかじめ定められた所定の回数となったことや、あるいは、パターン学習モデルがモデル学習用データの予測値を生成することができる場合に、その予測値の予測誤差が所定値以下に収束したこと等を採用することができる。
【0080】
ステップS16において、学習の終了条件が満たされていないと判定された場合、処理は、ステップS14に戻り、以下、同様の処理が繰り返される。
【0081】
また、ステップS16において、学習の終了条件が満たされていると判定された場合、処理は終了する。
【0082】
次に、図4は、パターン学習モデルとして、RNNを採用した場合の、図1の学習装置の構成例を示している。
【0083】
なお、図4においては、時系列データ入力部1、データ抽出部2、並びに、学習モジュール10iの学習データ入力部11i及びモデル学習部12iの図示を省略してある。
【0084】
モデル記憶部13iには、RNN(を定義するモデルパラメータ)が記憶されている。ここで、モデル記憶部13iに記憶されたRNNを、以下、適宜、RNN#iとも記載する。
【0085】
図4では、RNNは、入力層、隠れ層(中間層)、及び出力層により構成されている。入力層、隠れ層、及び出力層は、それぞれ任意の数の、ニューロンに相当するユニットにより構成されている。
【0086】
RNNでは、入力層の一部のユニットである入力ユニットに、外部から入力データxtが入力(供給)される。ここで、入力データxtは、時刻tのデータを表す。
【0087】
入力層の、入力データxtが入力される入力ユニット以外の、残りのユニットは、コンテキストユニットであり、コンテキストユニットには、出力層の一部のユニットの出力が、内部状態を表すコンテキストとしてフィードバックされる。
【0088】
ここで、時刻tの入力データxtが入力層の入力ユニットに入力されるときに入力層のコンテキストユニットに入力される時刻tのコンテキストを、ctと記載する。
【0089】
隠れ層のユニットは、入力層に入力される入力データxtとコンテキストctを対象として、所定のウエイト(重み)を用いた重み付け加算を行い、その重み付け加算の結果を引数とする非線形関数の演算を行って、その演算結果を、出力層のユニットに出力する。
【0090】
出力層のユニットでは、隠れ層のユニットが出力するデータを対象として、隠れ層のユニットと同様の処理が行われる。そして、出力層の一部のユニットからは、上述したように、次の時刻t+1のコンテキストct+1が出力され、入力層にフィードバックされる。また、出力層の残りのユニットからは、例えば、入力データxtに対する出力データとして、その入力データxtの次の時刻t+1の入力データxt+1の予測値x*t+1が出力される。
【0091】
ここで、RNNでは、ユニットへの入力が重み付け加算されるが、この重み付け加算に用いられるウエイト(重み)が、RNNのモデルパラメータである。RNNのモデルパラメータとしてのウエイトには、入力ユニットから隠れ層のユニットへのウエイト、コンテキストユニットから隠れ層のユニットへウエイト、隠れ層のユニットから出力層のユニットへのウエイト等がある。
【0092】
パターン学習モデルとして、以上のようなRNNを採用した場合、モデルパラメータ共有部20には、RNNのモデルパラメータとしてのウエイトを、学習モジュール101ないし10Nに共有させるウエイトマトリクス共有部21が設けられる。
【0093】
ここで、RNNのモデルパラメータとしてのウエイトは、複数あるが、その複数のウエイトをコンポーネントとするマトリクスを、ウエイトマトリクスという。
【0094】
ウエイトマトリクス共有部21は、モデル記憶部131ないし13Nに記憶されたRNN#1ないしRNN#Nの複数のモデルパラメータとしてのウエイトマトリクスすべてを、学習モジュール101ないし10Nのそれぞれに共有させる。
【0095】
すなわち、RNN#iのウエイトマトリクスをwiと表すこととすると、ウエイトマトリクス共有部21は、ウエイトマトリクスwiを、N個の学習モジュール101ないし10Nそれぞれのウエイトマトリクスw1ないしwNのすべてに基づいて補正することで、ウエイトマトリクスwiに、ウエイトマトリクスw1ないしwNのすべてを影響させる共有処理を行う。
【0096】
具体的には、ウエイトマトリクス共有部21は、例えば、次式(1)に従い、RNN#iのウエイトマトリクスwiを補正する。
【0097】
【数1】

・・・(1)
【0098】
ここで、式(1)において、△wiは、ウエイトマトリクスwiを補正する補正成分であり、例えば、式(2)に従って求められる。
【0099】
【数2】

・・・(2)
【0100】
式(2)において、βijは、RNN#iのウエイトマトリクスwiに、RNN#j(j=1,2,・・・,N)のウエイトマトリクスwjを影響させる度合いを表す係数である。
【0101】
したがって、式(2)の右辺のサメーションΣβij(wj-wi)は、係数βijを重みとした、RNN#iのウエイトマトリクスwjに対するRNN#1ないしRNN#Nのウエイトマトリクスw1ないしwNそれぞれの偏差(差分)の重み付け平均値を表し、αiは、その重み付け平均値Σβij(wj-wi)を、ウエイトマトリクスwiに影響させる度合いを表す係数である。
【0102】
係数αi及びβijとしては、例えば、0.0より大で1.0より小の値を採用することができる。
【0103】
式(2)によれば、係数αiが小であるほど、いわば共有が弱くなり(ウエイトマトリクスwiが受ける重み付け平均値Σβij(wj-wi)の影響が小さくなり)、係数αiが大であるほど、いわば共有が強まる。
【0104】
なお、ウエイトマトリクスwiの補正の方法は、式(1)に限定されるものではなく、例えば、式(3)に従って行うことが可能である。
【0105】
【数3】

・・・(3)
【0106】
ここで、式(3)において、βij'は、RNN#iのウエイトマトリクスwiに、RNN#j(j=1,2,・・・,N)のウエイトマトリクスwjを影響させる度合いを表す係数である。
【0107】
したがって、式(3)の右辺の第2項におけるサメーションΣβij'wjは、係数βij'を重みとした、RNN#1ないしRNN#Nのウエイトマトリクスw1ないしwNの重み付け平均値を表し、αi'は、その重み付け平均値Σβij'wjを、ウエイトマトリクスwiに影響させる度合いを表す係数である。
【0108】
係数αi'及びβij'としては、例えば、0.0より大で1.0より小の値を採用することができる。
【0109】
式(3)によれば、係数αi'が大であるほど、共有が弱くなり(ウエイトマトリクスwiが受ける重み付け平均値Σβij'wjの影響が小さくなり)、係数αi'が小であるほど、共有が強まる。
【0110】
次に、図5のフローチャートを参照して、パターン学習モデルとして、RNNを採用した場合の、図1の学習装置の学習処理について説明する。
【0111】
ステップS21ないしS23において、図3のステップS11ないしS13と同様の処理がそれぞれ行われる。
【0112】
そして、ステップS23において、学習モジュール10iのモデル学習部12iが、モデル記憶部13iに記憶されたモデルパラメータを初期化した後、すなわち、モデル記憶部13iに記憶されたRNN#iのモデルパラメータであるウエイトマトリクスwiを、例えば、乱数等によって初期化した後、処理は、ステップS24に進む。
【0113】
ステップS24では、学習モジュール10iが、データ抽出部2から供給されるモデル学習用データを用いて、モデルパラメータを更新する更新学習を行う。
【0114】
すなわち、ステップS24では、学習モジュール10iにおいて、学習データ入力部11iが、学習モジュール10iに供給されたモデル学習用データを受信して、モデル学習部12iに供給する。
【0115】
さらに、ステップS24では、モデル学習部12iが、学習データ入力部11iからのモデル学習用データを用いて、モデル記憶部13iに記憶されたRNN#iのウエイトマトリクスwiを更新する更新学習を、例えば、BPTT(Back-Propagation Through Time)法により行い、その更新学習によって得られた新たなモデルパラメータとしてのウエイトマトリクスwiによって、モデル記憶部13iの記憶内容を更新する。
【0116】
ここで、ステップS23及びS24の処理は、図3のステップS13及びS14の場合と同様に、N個の学習モジュール101ないし10Nのすべてで行われる。
【0117】
ステップS24の後、処理は、ステップS25に進み、モデルパラメータ共有部20のウエイトマトリクス共有部21は、N個の学習モジュール101ないし10Nのすべてに、ウエイトマトリクスw1ないしwNのすべてを共有させる共有処理を行う。
【0118】
すなわち、ステップS25において、ウエイトマトリクス共有部21は、例えば、式(2)に従い、モデル記憶部131ないし13Nに記憶されたウエイトマトリクスw1ないしwNを用いて補正成分△w1ないし△wNをそれぞれ求め、その補正成分△w1ないし△wNにより、モデル記憶部131ないし13Nに記憶されたウエイトマトリクスw1ないしwNを、式(1)に従ってそれぞれ補正する。
【0119】
ステップS25の後、処理は、ステップS26に進み、図1の学習装置は、学習の終了条件が満たされているかどうかを判定する。
【0120】
ここで、ステップS26での学習の終了条件としては、例えば、学習の回数、つまり、ステップS24及びS25が繰り返された回数が、あらかじめ定められた所定の回数となったことや、モデル学習用データxtに対してRNN#iが出力する予測値x*t+1の予測誤差(入力データxt+1の予測値x*t+1の、入力データxt+1に対する誤差)が所定値以下であること等を採用することができる。
【0121】
ステップS26において、学習の終了条件が満たされていないと判定された場合、処理は、ステップS24に戻り、以下、同様の処理、すなわち、ウエイトマトリクスwiの更新学習と、共有処理とが交互に繰り返される。
【0122】
また、ステップS26において、学習の終了条件が満たされていると判定された場合、処理は終了する。
【0123】
以上のように、図1(及び図4)の学習装置では、1つの学習モジュール10iが、1個のモデル学習データを学習するので、規模拡張性に優れる。そして、規模拡張性に優れた複数の学習モジュール101ないし10Nそれぞれにおいて、モデルパラメータを共有しながら、その複数の学習モジュール101ないし10Nそれぞれのモデルパラメータを更新する更新学習を行うことにより、1つの学習モジュール10iだけで行われる学習で得られる汎化特性が、複数の学習モジュール101ないし10Nの全体で得ることができ、その結果、規模拡張性があり、同時に、汎化特性を有するパターン学習モデルを得ることができる。
【0124】
すなわち、多くのパターンを獲得(記憶)することができ、かつ、複数のパターンの共通性を獲得することができる。さらに、複数のパターンの共通性を獲得することで、その共通性に基づいて、未学習のパターンの認識や生成を行うことが可能となる。
【0125】
また、図1の学習装置では、データ抽出部2が、ウインドウの位置をずらすことで、学習データとしての時系列データから、N個のモデル学習用データを抽出し、N個の学習モジュール101ないし10Nに分配する。そして、学習モジュール101ないし10Nそれぞれにおいて、モデルパラメータを共有しながら、その学習モジュール101ないし10Nそれぞれのモデルパラメータを更新する更新学習が行われる。
【0126】
その結果、パターン学習モデルでは、データ抽出部2でのモデル学習用データの抽出とは独立に、元の学習データとしての時系列データの要素パターンを獲得することができる。
【0127】
したがって、元の学習データとしての時系列データを、適切な要素パターンごとのモデル学習用データに分けることなく、その要素パターンを各パターン学習モデルに獲得させる学習を、容易にすることができる。
【0128】
すなわち、元の学習データとしての時系列データが、複数の要素パターンのデータのシーケンスである場合において、その複数の要素パターンを、複数のパターン学習モデルに獲得させる学習は、一般には、元の学習データとしての時系列データを、各要素パターンのデータに分節(分割)し、そのデータを、パターン学習モデルに与える必要がある。
【0129】
分節の方法としては、例えば、特許文献1に記載のように、複数のRNNのうちの、学習データとしての時系列データの予測値の予測誤差を最小にするRNN(以下、誤差最小RNNという)を、各時刻において検出し、その誤差最小RNNが変化する時刻で、学習データを区切ることにより、その学習データの分節を行う方法がある。
【0130】
図1の学習装置では、このような学習データの分節を行わなくても(容易に)、時系列データの時系列パターンを、適切な要素パターンに分けて獲得する学習を行うことができる。
【0131】
図6及び図7を参照して、本件発明者が行った、図1の学習装置による学習処理(以下、適宜、共有学習処理という)のシミュレーションの結果について説明する。
【0132】
図6は、共有学習処理で用いたデータと、共有学習処理後のパターン学習モデルを用いて生成したデータとを示している。
【0133】
すなわち、図6Aは、シミュレーションで用いた学習データとしての時系列データを示している。
【0134】
シミュレーションでは、80ステップ(時刻)分の2次元の周期的なデータ列を、2種類だけ用意し、その2種類のデータ列としての第1と第2の種類のデータ列を繋げて得られる160ステップの時系列データを、学習データとした。
【0135】
図6Aでは、左半分(時間的に先行する80ステップ分)が、第1の種類のデータ列になっており、右半分(時間的に先行する80ステップ分)が、第2の種類のデータ列になっている。
【0136】
さらに、シミュレーションでは、N個のパターン学習モデルとして、8個のRNNを用意した。また、シミュレーションでは、ウインドウ長が20ステップのウインドウを、160ステップの学習データの先頭から、20ステップずつずらすことにより、20ステップのモデル学習用データを、8個だけ抽出した。
【0137】
図6Bは、1個目のモデル学習用データと、そのモデル学習用データの抽出に用いたウインドウを示している。
【0138】
同様に、図6Cは、2個目のモデル学習用データとウインドウを、図6Dは、3個目のモデル学習用データとウインドウを、図6Eは、4個目のモデル学習用データとウインドウを、図6Fは、5個目のモデル学習用データとウインドウを、図6Gは、6個目のモデル学習用データとウインドウを、図6Hは、7個目のモデル学習用データとウインドウを、図6Iは、8個目のモデル学習用データとウインドウを、それぞれ示している。
【0139】
シミュレーションでは、8個のモデル学習用データのうちのi個目のモデル学習データを、i個目のRNN#iに与えて、共有学習処理を行った。
【0140】
したがって、1ないし4個目のRNN#1ないし#4の学習は、第1の種類のデータ列の一部を用いて行われ、5ないし8個目のRNN#5ないし#8の学習は、第2の種類のデータ列の一部を用いて行われたことになる。
【0141】
図6Jないし図6Qは、共有学習処理後のRNN#1ないし#8を用いて生成された時系列データを示している。
【0142】
ここで、RNNを用いた時系列データの生成(リハース生成)では、入力データ(入力層のユニットに与えるデータ)の初期値として、ランダムな値を採用し、その後は、出力データ(出力層のユニットから出力されるデータ)を、次の時刻の入力データとして与えることを繰り返すことで、80ステップの時系列データを生成した。
【0143】
図6Jは、共有学習処理後のRNN#1を用いて生成された時系列データを、図6Kは、共有学習処理後のRNN#2を用いて生成された時系列データを、図6Lは、共有学習処理後のRNN#3を用いて生成された時系列データを、図6Mは、共有学習処理後のRNN#4を用いて生成された時系列データを、図6Nは、共有学習処理後のRNN#5を用いて生成された時系列データを、図6Oは、共有学習処理後のRNN#6を用いて生成された時系列データを、図6Pは、共有学習処理後のRNN#7を用いて生成された時系列データを、図6Qは、共有学習処理後のRNN#8を用いて生成された時系列データを、それぞれ示している。
【0144】
図6Jないし図6Mによれば、共有学習処理において、RNN#1ないし#4には、第1の種類のデータ列の一部しか与えられていないのにもかかわらず、RNN#1ないし#4が、第1の種類のデータ列の周期的なパターン(要素パターン)を獲得していることを確認することができる。
【0145】
同様に、図6Nないし図6Qによれば、共有学習処理において、RNN#5ないし#8には、第2の種類のデータ列の一部しか与えられていないのにもかかわらず、RNN#5ないし#8が、第2の種類のデータ列の周期的なパターンを獲得していることを確認することができる。
【0146】
図7は、共有学習処理後のRNN#1ないし#8それぞれのウエイトマトリクスどうしの相関としての距離、すなわち、例えば、ウエイトマトリクスを構成する各ウエイトをコンポーネントとするベクトルの空間における、そのベクトルどうしの距離を表すマップを示している。
【0147】
なお、ウエイトマトリクスどうしの距離が小であるほど、その2つのウエイトマトリクスどうしの相関が高い。
【0148】
図7のマップでは、横軸と縦軸のそれぞれに、8個のRNN#1ないしRNN#8それぞれのウエイトマトリクスをとって、その横軸のウエイトマトリクスと、縦軸のウエイトマトリクスとの距離が、濃淡で示されており、濃い(黒い)部分ほど、距離が小であることを表す(淡い(白い)部分ほど、距離が大であることを表す)。
【0149】
図7によれば、共有学習処理において第1の種類のデータ列の一部が与えられたRNN#1ないし#4のウエイトマトリクスどうしは、相関が高く、共有学習処理において第2の種類のデータ列の一部が与えられたRNN#5ないし#8のウエイトマトリクスどうしも、相関が高いことを確認することができる。
【0150】
さらに、図7によれば、共有学習処理において、第1の種類のデータ列の一部が与えられたRNN#1ないし#4のウエイトマトリクスと、第2の種類のデータ列の一部が与えられたRNN#5ないし#8のウエイトマトリクスとは、相関が低いことを確認することができる。
【0151】
以上の図6及び図7のシミュレーションの結果によれば、特許文献1に記載のような分節を行わなくても、学習データを、単に、20サンプルのモデル学習用データに区切るだけで、学習データの時系列パターンを、適切な要素パターンに分けて獲得する学習を行うことができることが分かる。
【0152】
以上のように、図1の学習装置によれば、時系列データから、適切な要素パターンを獲得する学習を容易に行うことができ、その学習結果としての、要素パターンを獲得したパターン学習モデルを用いて、時系列データの予測や、分類(クラスタリング)等を行うことが可能となる。
【0153】
また、1つのパターン学習モデルが、学習データの全体を学習するのではなく、学習データから抽出された、学習データの一部であるモデル学習用データを学習するので、学習データの全体を学習する場合に比較して、学習の精度(パターン学習モデルが獲得する時系列パターンの精度)を向上させることができ、さらに、学習に要する計算量を大幅に削減することができる。
【0154】
なお、モデル学習部12iによるモデルパラメータの更新学習の方法、及び、モデルパラメータ共有部20による共有処理の方法は、上述した方法に限定されるものではない。
【0155】
また、本実施の形態では、モデルパラメータ共有部20による共有処理において、N個の学習モジュール101ないし10Nのすべてに、モデルパラメータとしてのウエイトマトリクスを共有させるようにしたが、その他、例えば、N個の学習モジュール101ないし10Nのうちの一部だけに、モデルパラメータとしてのウエイトマトリクスを共有させることが可能である。
【0156】
さらに、本実施の形態では、モデルパラメータ共有部20による共有処理において、学習モジュール10iに、複数のモデルパラメータとしての、ウエイトマトリクスを構成する複数のウエイトすべてを共有させるようにしたが、共有処理では、ウエイトマトリクスを構成する複数のウエイトすべてではなく、そのうちの一部のウエイトだけを共有させるようにすることが可能である。
【0157】
また、N個の学習モジュール101ないし10Nのうちの一部だけに、ウエイトマトリクスを構成する複数のウエイトのうちの一部のウエイトだけを共有させることも可能である。
【0158】
次に、図1の学習装置による共有学習処理の結果得られるパターン学習モデルを用いた、時系列データの予測や分類について説明する。
【0159】
図8は、時系列データを予測する予測装置の一実施の形態の構成例を示すブロック図である。
【0160】
図8において、予測装置は、時系列データ入力部50、N個の予測モジュール601ないし60N、統合出力決定部70、及び、予測シーケンス出力部80から構成される。
【0161】
時系列データ入力部50には、外部から、時系列データが供給される。時系列データ入力部50は、外部からの時系列データを受信し、N個の予測モジュール601ないし60Nに供給する。
【0162】
予測モジュール60iは、モデル記憶部61i、予測部62i、予測値出力部63i、及び、予測誤差計算部64iから構成され、時系列データ入力部50からの時系列データに対して、その時系列データの予測値と、その予測値の予測誤差とを求める。
【0163】
すなわち、モデル記憶部61iは、図1(図4)の学習装置で共有学習処理が行われた後の、モデル記憶部13iに記憶されたパターン学習モデルとしての、例えば、RNN#iを記憶している。
【0164】
予測部62iには、時系列データ入力部50からの時系列データが供給される。予測部62iは、時系列データ入力部50からの時系列データを入力データとして、モデル記憶部61iに記憶されたRNN#iに与えることで、その入力データの予測値である出力データを求め、予測値出力部63i、及び、予測誤差計算部64iに供給する。
【0165】
予測値出力部63iは、予測部62iからの予測値(以下、予測値#iともいう)を受信し、予測シーケンス出力部80に供給する。
【0166】
予測誤差計算部64iは、予測部62iからの予測値#iの予測誤差を求め、統合出力決定部70に供給する。すなわち、予測誤差計算部64iは、予測部62iからの予測値#iと、時系列データ入力部50からの時系列データとの差分をとることで、予測値#iの予測誤差を求めて、統合出力決定部70に供給する。
【0167】
統合出力決定部70は、予測誤差計算部641ないし64Nそれぞれからの予測誤差(予測値#1ないし#Nそれぞれの予測誤差)に基づき、外部から時系列データ入力部50に供給された時系列データ(以下、入力時系列データともいう)の、最終的な予測値の系列(シーケンス)を決定し、その最終的な予測値を出力するように、予測シーケンス出力部80を制御する。
【0168】
ここで、統合出力決定部70では、各時刻において、例えば、予測値#1ないし#Nのうちの、予測誤差が最小の予測値の系列を、最終的な予測値の系列とすることを決定することができる。
【0169】
また、統合出力決定部70では、各時刻において、例えば、予測値#1ないし#Nを、予測誤差に反比例するような重みを用いて重み付け加算し、その加算値の系列を、最終的な予測値の系列とすることを決定することができる。
【0170】
予測シーケンス出力部80は、統合出力決定部70の制御に従い、予測値出力部631ないし63Nからの予測値#1ないし#Nを用いて、最終的な予測値の系列を求めて出力する。
【0171】
すなわち、予測シーケンス出力部80は、例えば、各時刻において、予測値出力部631ないし63Nからの予測値#1ないし#Nのうちの、予測誤差が最小の予測値を選択し、その予測値の系列を、最終的な予測値の系列として出力する。
【0172】
あるいは、予測シーケンス出力部80は、例えば、各時刻において、予測値出力部631ないし63Nからの予測値#1ないし#Nを対象として、予測誤差に反比例する重みを用いた重み付け加算を行い、その加算値の系列を、最終的な予測値の系列として出力する。
【0173】
次に、図9を参照して、図8の予測装置で行われる処理(予測処理)について説明する。
【0174】
時系列データ入力部50は、外部から時系列データが供給されるのを待って、ステップS51において、その時系列データを受信し、N個の予測モジュール601ないし60Nに供給して、処理は、ステップS52に進む。
【0175】
ステップS52では、予測モジュール601ないし60Nのそれぞれが、時系列データ入力部50からの時系列データから、その予測値を求める。
【0176】
すなわち、予測モジュール60iでは、予測部62iが、時系列データ入力部50から供給される時系列データを入力データとして、モデル記憶部61iに記憶されたRNN#iに与えることで、その入力データの予測値#iである出力データを求め、予測値出力部63i、及び、予測誤差計算部64iに供給する。
【0177】
そして、予測値出力部63iが、予測部62iからの予測値#iを受信し、予測シーケンス出力部80に供給して、処理は、ステップS53からステップS54に進む。
【0178】
ステップS54では、予測モジュール601ないし60Nが、予測値#1ないし#Nの予測誤差を求める。
【0179】
すなわち、予測モジュール60iでは、予測誤差計算部64iが、予測部62iからの予測値#iの予測誤差を求める。そして、予測誤差計算部64iは、予測値#iの予測誤差を、統合出力決定部70に供給して、処理は、ステップS54からS55に進む。
【0180】
ステップS55では、統合出力決定部70が、予測誤差計算部641ないし64Nそれぞれからの、予測値#1ないし#Nの予測誤差に基づき、外部から時系列データ入力部50に供給された時系列データ(入力時系列データ)の、最終的な予測値の系列を決定し、その最終的な予測値を出力するように、予測シーケンス出力部80を制御して、処理は、ステップS56に進む。
【0181】
ステップS56では、予測シーケンス出力部80が、統合出力決定部70の制御に従い、予測値出力部631ないし63Nからの予測値#1ないし#Nを用いて、最終的な予測値の系列を求めて出力し、処理は、終了する。
【0182】
図1の学習装置による共有学習処理の結果得られるパターン学習モデルによれば、上述したような、時系列データの予測の他、例えば、時系列データの分類を行うことができる。
【0183】
すなわち、例えば、パターン学習モデル間のモデルパラメータどうしの相関(距離)に基づいて、パターン学習モデルどうしの類似性を評価し、類似性が高いパターン学習モデルどうしを同一のクラスタに属するパターン学習モデルとして、時系列データの分類(クラスタリング)を行うことができる。
【0184】
具体的には、例えば、パターン学習モデルとして、RNNを採用する場合には、時系列データ(の全区間)の予測値の予測誤差が最小のRNNを、勝者(winner)として、時系列データを、勝者のRNNが属するクラスタにクラスタリングすることができる。
【0185】
また、時系列データの分類を、例えば、時刻(ステップ)ごとに行うことで、時系列データの分節を行うことができる。すなわち、各時刻において、勝者となったRNNに応じて、時系列データを分節することができる。
【0186】
なお、図1の学習装置において、学習データとする時系列データは、特に限定されるものではない。すなわち、学習データとしては、例えば、PC(Personal Computer)のUI(User Interface)をユーザが操作したときの、その操作の内容を表すデータの時系列や、センサ及びモータを有するロボットのセンサが出力する信号と、モータに与えられる駆動信号とをコンポーネントとするベクトルの時系列等を採用することができる。また、学習データとしては、例えば、音楽や音声その他の音のデータの時系列や、画像のデータの時系列、言語処理の対象となる文字列としての音素や、単語、文のデータの時系列等を採用することができる。
【0187】
次に、上述した一連の処理は、ハードウェアにより行うこともできるし、ソフトウェアにより行うこともできる。一連の処理をソフトウェアによって行う場合には、そのソフトウェアを構成するプログラムが、汎用のコンピュータ等にインストールされる。
【0188】
そこで、図10は、上述した一連の処理を実行するプログラムがインストールされるコンピュータの一実施の形態の構成例を示している。
【0189】
プログラムは、コンピュータに内蔵されている記録媒体としてのハードディスク105やROM103に予め記録しておくことができる。
【0190】
あるいはまた、プログラムは、フレキシブルディスク、CD-ROM(Compact Disc Read Only Memory),MO(Magneto Optical)ディスク,DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブル記録媒体111に、一時的あるいは永続的に格納(記録)しておくことができる。このようなリムーバブル記録媒体111は、いわゆるパッケージソフトウエアとして提供することができる。
【0191】
なお、プログラムは、上述したようなリムーバブル記録媒体111からコンピュータにインストールする他、ダウンロードサイトから、ディジタル衛星放送用の人工衛星を介して、コンピュータに無線で転送したり、LAN(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送し、コンピュータでは、そのようにして転送されてくるプログラムを、通信部108で受信し、内蔵するハードディスク105にインストールすることができる。
【0192】
コンピュータは、CPU(Central Processing Unit)102を内蔵している。CPU102には、バス101を介して、入出力インタフェース110が接続されており、CPU102は、入出力インタフェース110を介して、ユーザによって、キーボードや、マウス、マイク等で構成される入力部107が操作等されることにより指令が入力されると、それにしたがって、ROM(Read Only Memory)103に格納されているプログラムを実行する。あるいは、また、CPU102は、ハードディスク105に格納されているプログラム、衛星若しくはネットワークから転送され、通信部108で受信されてハードディスク105にインストールされたプログラム、またはドライブ109に装着されたリムーバブル記録媒体111から読み出されてハードディスク105にインストールされたプログラムを、RAM(Random Access Memory)104にロードして実行する。これにより、CPU102は、上述したフローチャートにしたがった処理、あるいは上述したブロック図の構成により行われる処理を行う。そして、CPU102は、その処理結果を、必要に応じて、例えば、入出力インタフェース110を介して、LCD(Liquid Crystal Display)やスピーカ等で構成される出力部106から出力、あるいは、通信部108から送信、さらには、ハードディスク105に記録等させる。
【0193】
ここで、本明細書において、コンピュータに各種の処理を行わせるためのプログラムを記述する処理ステップは、必ずしもフローチャートとして記載された順序に沿って時系列に処理する必要はなく、並列的あるいは個別に実行される処理(例えば、並列処理あるいはオブジェクトによる処理)も含むものである。
【0194】
また、プログラムは、1のコンピュータにより処理されるものであっても良いし、複数のコンピュータによって分散処理されるものであっても良い。さらに、プログラムは、遠方のコンピュータに転送されて実行されるものであっても良い。
【0195】
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【0196】
すなわち、本発明は、例えば、時系列パターン以外のパターンの学習にも適用可能である。
【図面の簡単な説明】
【0197】
【図1】本発明を適用した学習装置の一実施の形態の構成例を示すブロック図である。
【図2】データ抽出部2が、学習データとしての時系列データから、モデル学習用データを抽出するときの、ウインドウのずらし方を説明する図である。
【図3】学習装置の学習処理を説明するフローチャートである。
【図4】パターン学習モデルとして、RNNを採用した場合の学習装置の構成例を示すブロック図である。
【図5】パターン学習モデルとして、RNNを採用した場合の学習装置の学習処理を説明するフローチャートである。
【図6】シミュレーションの結果を示す図である。
【図7】シミュレーションの結果を示す図である。
【図8】予測装置の構成例を示すブロック図である。
【図9】予測装置の予測処理を説明するフローチャートである。
【図10】本発明を適用したコンピュータの一実施の形態の構成例を示すブロック図である。
【符号の説明】
【0198】
1 時系列データ入力部, 2 データ抽出部, 101ないし10N 学習モジュール, 111ないし11N 学習データ入力部, 121ないし12N モデル学習部, 131ないし13N モデル記憶部, 20 モデルパラメータ共有部, 21 ウエイトマトリクス共有部, 50 時系列データ入力部, 601ないし60N 予測モジュール, 611ないし61N モデル記憶部, 621ないし62N 予測部, 631ないし63N 予測値出力部, 641ないし64N 予測誤差計算部, 70 統合出力決定部, 80 予測シーケンス出力部, 101 バス, 102 CPU, 103 ROM, 104 RAM, 105 ハードディスク, 106 出力部, 107 入力部, 108 通信部, 109 ドライブ, 110 入出力インタフェース, 111 リムーバブル記録媒体

【特許請求の範囲】
【請求項1】
時系列データから、所定のウインドウ長のウインドウ内のデータを、パターンを学習するパターン学習モデルの学習用のモデル学習用データとして抽出するデータ抽出手段と、
前記モデル学習用データを用い、前記パターン学習モデルを定義するモデルパラメータを更新する更新学習を行う複数の学習手段と、
前記複数の学習手段のうちの2以上の学習手段に、前記モデルパラメータを共有させるモデルパラメータ共有手段と
を備え、
前記データ抽出手段は、前記ウインドウの位置をずらすことで、前記時系列データから、複数の前記モデル学習用データを抽出し、1の前記モデル学習用データを、1の前記パターン学習モデルに割り当てるように、前記モデル学習用データを前記学習手段に分配する
学習装置。
【請求項2】
前記モデルパラメータ共有手段は、前記2以上の学習手段が更新した前記モデルパラメータそれぞれを、前記2以上の学習手段が更新した前記モデルパラメータの重み付け平均値によって補正することにより、前記2以上の学習手段に、その2以上の学習手段が更新した前記モデルパラメータを共有させる
請求項1に記載の学習装置。
【請求項3】
前記データ抽出手段は、前記時系列データの全体が網羅されるように、前記ウインドウの位置をずらす
請求項2に記載の学習装置。
【請求項4】
前記データ抽出手段は、前記ウインドウの一部がオーバラップするように、又は、オーバラップしないように、前記ウインドウの位置をずらす
請求項2に記載の学習装置。
【請求項5】
前記ウインドウ長は、可変長、又は固定長である
請求項2に記載の学習装置。
【請求項6】
時系列データから、所定のウインドウ長のウインドウ内のデータを、パターンを学習するパターン学習モデルの学習用のモデル学習用データとして抽出するデータ抽出手段が、前記ウインドウの位置をずらすことで、前記時系列データから、複数の前記モデル学習用データを抽出し、1の前記各モデル学習用データを、1の前記パターン学習モデルに割り当てるように、前記モデル学習用データを、前記パターン学習モデルの更新学習を行う学習手段に分配し、
前記モデル学習用データを用い、前記パターン学習モデルを定義するモデルパラメータを更新する更新学習を行う複数の学習手段のそれぞれが、更新学習を行い、
前記複数の学習手段のうちの2以上の学習手段に、前記モデルパラメータを共有させるモデルパラメータ共有手段が、前記2以上の学習手段に、前記モデルパラメータを共有させる
ステップを含む学習方法。
【請求項7】
時系列データから、所定のウインドウ長のウインドウ内のデータを、パターンを学習するパターン学習モデルの学習用のモデル学習用データとして抽出するデータ抽出手段と、
前記モデル学習用データを用い、前記パターン学習モデルを定義するモデルパラメータを更新する更新学習を行う複数の学習手段と、
前記複数の学習手段のうちの2以上の学習手段に、前記モデルパラメータを共有させるモデルパラメータ共有手段と
して、コンピュータを機能させるためのプログラムであり、
前記データ抽出手段は、前記ウインドウの位置をずらすことで、前記時系列データから、複数の前記モデル学習用データを抽出し、1の前記モデル学習用データを、1の前記パターン学習モデルに割り当てるように、前記モデル学習用データを前記学習手段に分配する
プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2009−288933(P2009−288933A)
【公開日】平成21年12月10日(2009.12.10)
【国際特許分類】
【出願番号】特願2008−139294(P2008−139294)
【出願日】平成20年5月28日(2008.5.28)
【出願人】(000002185)ソニー株式会社 (34,172)