(57)【要約】【課題】時系列データの時系列パターンを適切な要素パターンに分けた学習を、容易に行う。【解決手段】データ抽出部２は、ウインドウの位置をずらすことで、時系列データから、例えば、N個のモデル学習用データを抽出し、i番目の各モデル学習用データを、学習モジュール１０iに分配する。学習モジュール１０1ないし１０Nは、モデル学習用データを用いて、パターン学習モデルを定義するモデルパラメータを更新する更新学習を行う。モデルパラメータ共有部２０は、学習モジュール１０1ないし１０Nに、モデルパラメータを共有させる。本発明は、例えば、時系列パターンの学習等に適用できる。【選択図】図１
2009288933.tif 000002
【特許請求の範囲】
【請求項１】
時系列データから、所定のウインドウ長のウインドウ内のデータを、パターンを学習するパターン学習モデルの学習用のモデル学習用データとして抽出するデータ抽出手段と、
前記モデル学習用データを用い、前記パターン学習モデルを定義するモデルパラメータを更新する更新学習を行う複数の学習手段と、
前記複数の学習手段のうちの２以上の学習手段に、前記モデルパラメータを共有させるモデルパラメータ共有手段と
を備え、
前記データ抽出手段は、前記ウインドウの位置をずらすことで、前記時系列データから、複数の前記モデル学習用データを抽出し、１の前記モデル学習用データを、１の前記パターン学習モデルに割り当てるように、前記モデル学習用データを前記学習手段に分配する
学習装置。
【請求項２】
前記モデルパラメータ共有手段は、前記２以上の学習手段が更新した前記モデルパラメータそれぞれを、前記２以上の学習手段が更新した前記モデルパラメータの重み付け平均値によって補正することにより、前記２以上の学習手段に、その２以上の学習手段が更新した前記モデルパラメータを共有させる
請求項１に記載の学習装置。
【請求項３】
前記データ抽出手段は、前記時系列データの全体が網羅されるように、前記ウインドウの位置をずらす
請求項２に記載の学習装置。
【請求項４】
前記データ抽出手段は、前記ウインドウの一部がオーバラップするように、又は、オーバラップしないように、前記ウインドウの位置をずらす
請求項２に記載の学習装置。
【請求項５】
前記ウインドウ長は、可変長、又は固定長である
請求項２に記載の学習装置。
【請求項６】
時系列データから、所定のウインドウ長のウインドウ内のデータを、パターンを学習するパターン学習モデルの学習用のモデル学習用データとして抽出するデータ抽出手段が、前記ウインドウの位置をずらすことで、前記時系列データから、複数の前記モデル学習用データを抽出し、１の前記各モデル学習用データを、１の前記パターン学習モデルに割り当てるように、前記モデル学習用データを、前記パターン学習モデルの更新学習を行う学習手段に分配し、
前記モデル学習用データを用い、前記パターン学習モデルを定義するモデルパラメータを更新する更新学習を行う複数の学習手段のそれぞれが、更新学習を行い、
前記複数の学習手段のうちの２以上の学習手段に、前記モデルパラメータを共有させるモデルパラメータ共有手段が、前記２以上の学習手段に、前記モデルパラメータを共有させる
ステップを含む学習方法。
【請求項７】
時系列データから、所定のウインドウ長のウインドウ内のデータを、パターンを学習するパターン学習モデルの学習用のモデル学習用データとして抽出するデータ抽出手段と、
前記モデル学習用データを用い、前記パターン学習モデルを定義するモデルパラメータを更新する更新学習を行う複数の学習手段と、
前記複数の学習手段のうちの２以上の学習手段に、前記モデルパラメータを共有させるモデルパラメータ共有手段と
して、コンピュータを機能させるためのプログラムであり、
前記データ抽出手段は、前記ウインドウの位置をずらすことで、前記時系列データから、複数の前記モデル学習用データを抽出し、１の前記モデル学習用データを、１の前記パターン学習モデルに割り当てるように、前記モデル学習用データを前記学習手段に分配する
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、学習装置、学習方法、及びプログラムに関し、特に、時系列データを構成する構成要素となる時系列パターンの学習を、容易に行うことができるようにする学習装置、学習方法、及びプログラムに関する。
【背景技術】
【０００２】
パターンを学習するパターン学習モデルとしては、例えば、RNN(Recurrent Neural Network)等がある。このようなパターン学習モデルの学習のスキームは、「局所表現」スキームと「分散表現」スキームとに分類される。
【０００３】
「局所表現」スキームでは、複数のパターンそれぞれが、パターン学習モデルの学習（パターン学習モデルが有するモデルパラメータの更新）を行う複数の学習モジュールそれぞれにおいて学習され、これにより、１つの学習モジュール（パターン学習モデル）で、１つのパターンが記憶（獲得）される。
【０００４】
また、「分散表現」スキームでは、複数のパターンが、１つの学習モジュールにおいて学習され、これにより、１つの学習モジュールで、複数のパターンが同時に記憶される。
【０００５】
「局所表現」スキームでは、１つの学習モジュールで、１つのパターンが記憶される、つまり、１つのパターン学習モデルが、１つのパターンを学習するので、ある学習モジュールと、他の学習モジュールとの間で、パターンの記憶の干渉が少なく、パターンの記憶の安定性が高い。そして、「局所表現」スキームは、学習モジュールを追加することにより、新たなパターンを学習することが容易に行うことができるという規模拡張性に優れる。
【０００６】
但し、「局所表現」スキームでは、１つのパターン学習モデルが、１つのパターンを学習する、つまり、パターンの記憶が、複数の学習モジュールでそれぞれ独立に行われるため、複数の学習モジュールそれぞれでのパターンの記憶間の関係性の構造化（共通化）による汎化特性を得ること、すなわち、例えば、ある学習モジュールに記憶されたパターンとも異なり、他の学習モジュールに記憶されたパターンとも異なるが、それらの両方のパターンの、いわば中間のパターンを生成するようなこと等はできない。
【０００７】
一方、「分散表現」スキームでは、１つの学習モジュールで、複数のパターンが記憶される、つまり、１つのパターン学習モデルが、複数のパターンを学習するので、１つの学習モジュール内での複数のパターンの記憶間の干渉によって、その記憶間の共通化による汎化特性を得ることができる。
【０００８】
但し、「分散表現」スキームでは、パターンの記憶の安定性が低いため、規模拡張性がない。
【０００９】
ところで、規模拡張性に優れ、時系列データを構成する構成要素となる時系列パターン（以下、要素パターンともいう）を、異なる時系列パターンごとに、１つの学習モジュールに獲得させる学習装置が、例えば、特許文献１に記載されている。
【００１０】
特許文献１に記載の学習装置は、複数の学習モジュールで構成され、各学習モジュールに対して、時系列データのどの区間の学習を担当するかが決定される。各学習モジュールでは、その学習モジュールが学習を担当することに決定された区間（以下、担当区間ともいう）のデータ（列）を用いた学習が行われる。
【００１１】
すなわち、特許文献１に記載の学習装置では、各学習モジュールの担当区間が、学習モジュールで求められる予測値の、目標値に対する予測誤差に基づいて決定され、各学習モジュールが、時系列データのうちの、担当区間のデータを、排他的に用いた学習（競合学習）を行う。
【００１２】
学習モジュールは、競合学習によって、担当区間のデータの時系列パターンを、要素パターンとして獲得（記憶）する。要素パターンを獲得した学習モジュールに対しては、その要素パターンのデータの区間が、担当区間として決定されやすくなり、その結果、学習モジュールは、競合学習によって、いわば、より強固に、要素パターンを獲得する。
【００１３】
【特許文献１】特許第3922407号
【発明の開示】
【発明が解決しようとする課題】
【００１４】
上述したように、担当区間を決定し、その担当区間のデータを用いた競合学習を行う場合においては、例えば、時系列データに含まれる要素パターンどうしの直交性が低いときや、要素パターンが複雑なパターンであること等によって、要素パターンの学習が難しいとき等に、担当区間の決定が不安定になることがある。
【００１５】
このように、担当区間の決定が不安定になると、つまり、学習モジュールに対して決定される担当区間のデータの時系列パターンが不安定になると（一定のパターンでなくなると）、学習モジュールにおいて、要素パターンを適切に学習することが困難となる。
【００１６】
本発明は、このような状況に鑑みてなされたものであり、時系列データの時系列パターンを適切な要素パターンに分けた学習を、容易にすることができるようにするものである。
【課題を解決するための手段】
【００１７】
本発明の一側面の学習装置、又は、プログラムは、時系列データから、所定のウインドウ長のウインドウ内のデータを、パターンを学習するパターン学習モデルの学習用のモデル学習用データとして抽出するデータ抽出手段と、前記モデル学習用データを用い、前記パターン学習モデルを定義するモデルパラメータを更新する更新学習を行う複数の学習手段と、前記複数の学習手段のうちの２以上の学習手段に、前記モデルパラメータを共有させるモデルパラメータ共有手段とを備え、前記データ抽出手段が、前記ウインドウの位置をずらすことで、前記時系列データから、複数の前記モデル学習用データを抽出し、１の前記モデル学習用データを、１の前記パターン学習モデルに割り当てるように、前記モデル学習用データを前記学習手段に分配する学習装置、又は、学習装置として、コンピュータを機能させるためのプログラムである。
【００１８】
本発明の一側面の学習方法は、時系列データから、所定のウインドウ長のウインドウ内のデータを、パターンを学習するパターン学習モデルの学習用のモデル学習用データとして抽出するデータ抽出手段が、前記ウインドウの位置をずらすことで、前記時系列データから、複数の前記モデル学習用データを抽出し、１の前記モデル学習用データを、１の前記パターン学習モデルに割り当てるように、前記モデル学習用データを、前記パターン学習モデルの更新学習を行う学習手段に分配し、前記モデル学習用データを用い、前記パターン学習モデルを定義するモデルパラメータを更新する更新学習を行う複数の学習手段のそれぞれが、更新学習を行い、前記複数の学習手段のうちの２以上の学習手段に、前記モデルパラメータを共有させるモデルパラメータ共有手段が、前記２以上の学習手段に、前記モデルパラメータを共有させるステップを含む学習方法である。
【００１９】
本発明の一側面においては、前記ウインドウの位置をずらすことで、前記時系列データから、複数の前記モデル学習用データが抽出され、１の前記モデル学習用データが、１の前記パターン学習モデルに割り当てられるように、前記モデル学習用データが前記学習手段に分配される。そして、前記モデル学習用データを用い、前記パターン学習モデルを定義するモデルパラメータを更新する更新学習が行われ、前記複数の学習手段のうちの２以上の学習手段に、前記モデルパラメータを共有させる。
【００２０】
なお、プログラムは、伝送媒体を介して伝送することにより、又は、記録媒体に記録して、提供することができる。
【００２１】
また、学習装置は、独立した装置であっても良いし、１つの装置を構成している内部ブロックであっても良い。
【発明の効果】
【００２２】
本発明の一側面によれば、時系列データを構成する構成要素となる時系列パターン（要素パターン）の学習を、容易に行うことができる。
【発明を実施するための最良の形態】
【００２３】
図１は、本発明を適用した学習装置の一実施の形態の構成例を示している。
【００２４】
なお、以下説明する学習装置は、本件出願人が先に出願した特願2007-094009号に記載の学習装置を応用した学習装置であり、特願2007-094009号をも参照すると、詳細の理解が容易になる。
【００２５】
図１において、学習装置は、時系列データ入力部１、データ抽出部２、複数であるN個の学習モジュール１０1ないし１０N、モデルパラメータ共有部２０から構成される。
【００２６】
時系列データ入力部１には、時系列データが、外部から供給される。
【００２７】
時系列データ入力部１は、外部からの時系列データを受信し、図１の学習装置での学習に用いる学習データとして、データ抽出部２に供給する。
【００２８】
データ抽出部２は、時系列データ入力部１からの学習データとしての時系列データから、所定のウインドウ長のウインドウ内のデータを、パターンを学習するパターン学習モデルの学習用のモデル学習用データとして抽出し、学習モジュール１０1ないし１０Nに分配する。
【００２９】
すなわち、データ抽出部２は、例えば、時系列データ入力部１からの時系列データにかけるウインドウの位置をずらすことで、その時系列データから、複数であるN個のモデル学習用データを抽出する。さらに、データ抽出部２は、１個のモデル学習用データを、１つのパターン学習モデルに割り当てるように、N個のモデル学習用データを学習モジュール１０i(i=1,2,・・・,N)に供給(分配）する。
【００３０】
具体的には、データ抽出部２は、ウインドウを、時系列データ入力部１からの時系列データの先頭から終わりの方向に順次ずらし、ウインドウ内のデータ(列）を、モデル学習用データとして抽出することで、N個(シーケンス）のモデル学習用データを得る。
【００３１】
そして、データ抽出部２は、N個のモデル学習用データのうちのi番目のモデル学習用データを、学習モジュール１０iに供給する。なお、データ抽出部２から学習モジュール１０iに対して供給するモデル学習用データは、N個のモデル学習用データのうちのいずれであってもよい。
【００３２】
ここで、データ抽出部２は、時系列データ入力部１からの時系列データの全体が網羅されるように、ウインドウの位置をずらす。したがって、N個のモデル学習用データの全体には、時系列データ入力部１からの時系列データの全体が含まれる。
【００３３】
学習モジュール１０i(i=1,2,・・・,N)は、学習データ入力部１１i、モデル学習部１２i、及びモデル記憶部１３iから構成され、データ抽出部２からのモデル学習用データ
を用いて、パターン学習モデルを定義する複数のモデルパラメータ（学習リソース）を更新する更新学習を行う。
【００３４】
すなわち、学習データ入力部１１iには、データ抽出部２から、学習データとしての時系列データから抽出されたi番目のモデル学習用データが供給される。
【００３５】
学習データ入力部１１iは、データ抽出部２からのモデル学習用データを受信し、モデル学習部１２iに供給する。
【００３６】
モデル学習部１２iは、学習データ入力部１１iからのモデル学習用データを用いて、モデル記憶部１３iに記憶されたパターン学習モデルの複数のモデルパラメータを更新する更新学習を行う。
【００３７】
モデル記憶部１３iは、複数のモデルパラメータによって定義され、時系列パターンを学習（獲得）するパターン学習モデルを記憶する。すなわち、モデル記憶部１３iは、パターン学習モデルを定義する複数のモデルパラメータを記憶する。
【００３８】
ここで、パターン学習モデルとしては、例えば、HMM(Hidden Markov Model)等の確率モデル、RNN，FNN(Feed Forward Neural Network)，RNNPB(RNN with Parametric Bias)等のニューラルネットワーク、SVR(Support Vector Regression)等の関数近似器等を採用することができる。
【００３９】
例えば、HMMについては、HMMにおいて状態が遷移する確率を表す状態遷移確率や、状態が遷移するときに、HMMからある観測値が出力される確率を表す出力確率、又は確率密度を表す出力確率密度関数が、HMMのモデルパラメータである。
【００４０】
また、例えば、ニューラルネットワークについては、ニューロンに相当するユニット（ノード）において、他のユニットからの入力に付されるウエイト（重み）が、ニューラルネットワークのモデルパラメータである。
【００４１】
なお、HMMの状態遷移確率や、出力確率、又は出力確率密度関数、ニューラルネットワークのウエイトは、いずれも複数存在する。
【００４２】
モデルパラメータ共有部２０は、N個の学習モジュール１０1ないし１０Nのうちの、２以上の学習モジュールに、モデルパラメータを共有させる共有処理を行う。モデルパラメータ共有部２０が共有処理を行うことにより、N個の学習モジュール１０1ないし１０Nのうちの、２以上の学習モジュールは、モデルパラメータを共有する。
【００４３】
なお、以下では、説明を簡単にするため、モデルパラメータ共有部２０は、N個の学習モジュール１０1ないし１０Nのすべてに、モデルパラメータを共有させる共有処理を行うこととする。
【００４４】
次に、図２を参照して、図１のデータ抽出部２が、学習データとしての時系列データから、モデル学習用データを抽出するときの、ウインドウのずらし方（モデル学習用データの抽出の仕方）を説明する。
【００４５】
データ抽出部２では、ウインドウの一部がオーバラップするように、又は、オーバラップしないように、ウインドウの位置をずらすことで、モデル学習用データを抽出することができる。
【００４６】
また、データ抽出部２では、可変長、又は固定長のウインドウ長のウインドウを用いて、モデル学習用データを抽出することができる。
【００４７】
すなわち、図２Ａは、固定長のウインドウ長のウインドウの一部がオーバラップするように、ウインドウの位置をずらしながら、モデル学習用データを抽出する様子を示している。
【００４８】
図２Ｂは、固定長のウインドウ長のウインドウがオーバラップしないように、ウインドウの位置をずらしながら、モデル学習用データを抽出する様子を示している。
【００４９】
図２Ｃは、可変長のウインドウ長のウインドウがオーバラップしないように、ウインドウの位置をずらしながら、モデル学習用データを抽出する様子を示している。
【００５０】
なお、可変長のウインドウ長のウインドウを用いることは、ウインドウ長が異なる複数の固定長のウインドウを用意しておき、その複数のウインドウを適宜選択することによって代用することができる。
【００５１】
また、ウインドウは、その一部ではなく、全部がオーバラップするようにずらすことができる。
【００５２】
図２Ｄは、ウインドウの全部をオーバラップさせて、モデル学習用データを抽出する様子を示している。
【００５３】
すなわち、図２Ｄでは、固定長の短いウインドウ長L1と長いウインドウ長L2との２つのウインドウを用い、ウインドウ長L1のウインドウの全部を、ウインドウ長L2のウインドウにオーバラップさせて、モデル学習用データが抽出されている。
【００５４】
ここで、ウインドウ長は、学習データとしての時系列データを構成する構成要素となる時系列パターン（要素パターン）の長さに無関係に、あらかじめ、適当な値に決めておくことができる。
【００５５】
また、学習データとしての時系列データの時定数が、なんらかの方法によって分かる場合には、ウインドウ長は、その時定数に比例した長さ等とすることができる。
【００５６】
さらに、ウインドウをオーバラップするか否かは、例えば、ウインドウ長に応じて決めることができる。
【００５７】
すなわち、ウインドウ長が短い場合には、オーバラップをなしにすることができ、ウインドウ長が長い場合には、ある程度の長さのオーバラップを設けるようにすることができる。
【００５８】
ここで、学習データとしての時系列データに、例えば、周期的なパターンが、要素パターンとして含まれる場合には、ウインドウ長が短いとは、要素パターンの周期の1/8や、1/2，3/4程度以下のウインドウ長を意味し、ウインドウ長が長いとは、要素パターンの周期の2倍程度以上のウインドウ長を意味する。
【００５９】
なお、上述の場合には、データ抽出部２において、学習データとしての時系列データから、N個のモデル学習用データを抽出することとしたが、学習データとしての時系列データからは、N個以外の複数個のモデル学習用データを抽出することが可能である。
【００６０】
学習データとしての時系列データから、N個未満の数であるN'個のモデル学習用データが抽出される場合、データ抽出部２は、N個の学習モジュール１０1ないし１０NのうちのN'個に対して、モデル学習用データを分配する。
【００６１】
一方、学習データとしての時系列データから、N個を超える数であるN''個のモデル学習用データが抽出される場合、図１の学習装置では、学習モジュール１０iと同様の学習モジュールが、N''-N個だけ追加され、学習モジュールが、全部で、N''個にされる。そして、そのN''個の学習モジュールに対して、モデル学習用データが分配される。
【００６２】
ここで、図１の学習装置を、コンピュータにプログラムを実行させることで（等価的に）実現するとすれば、学習モジュールの追加は、メモリに、学習モジュールとしての記憶領域を新たに確保すること（たとえば、オブジェクト指向プログラミングにおけるインスタンスの生成）によって行うことができる。
【００６３】
なお、学習モジュール１０1ないし１０Nの数Nを固定しておき、データ抽出部２において、学習データとしての時系列データから、N個のモデル学習用データを抽出することができるように、ウインドウのウインドウ長（及びオーバラップの長さ）を調整するようにしてもよい。
【００６４】
次に、図３のフローチャートを参照して、図１の学習装置が行う、パターン学習モデルを学習する学習処理について説明する。
【００６５】
時系列データ入力部１は、外部から、時系列データが供給されるのを待って、ステップＳ１１において、その時系列データを受信し、学習データとして、データ抽出部２に供給して、処理は、ステップＳ１２に進む。
【００６６】
ステップＳ１２では、データ抽出部２は、時系列データ入力部１からの学習データとしての時系列データから、例えば、N個のモデル学習用データを抽出し、i番目のモデル学習用データを、モデル記憶部１３iに記憶されたパターン学習モデルに割り当てるように、学習モジュール１０1ないし１０Nに分配して、処理は、ステップＳ１３に進む。
【００６７】
ステップＳ１３では、学習モジュール１０iのモデル学習部１２iが、モデル記憶部１３iに記憶されたモデルパラメータを、例えば、乱数等によって初期化して、処理は、ステップＳ１４に進む。
【００６８】
ステップＳ１４では、学習モジュール１０iが、データ抽出部２からのモデル学習用データを用いて、モデルパラメータを更新する更新学習を行う。
【００６９】
すなわち、ステップＳ１４では、学習モジュール１０iにおいて、学習データ入力部１１iが、学習モジュール１０iに供給されたモデル学習用データを受信し、モデル学習部１２iに供給する。
【００７０】
さらに、ステップＳ１４では、モデル学習部１２iが、学習データ入力部１１iからのモデル学習用データを用いて、モデル記憶部１３iに記憶されたパターン学習モデルの複数のモデルパラメータを更新する更新学習を行い、その更新学習によって得られた新たな複数のモデルパラメータによって、モデル記憶部１３iの記憶内容を更新する（上書きする）。
【００７１】
ここで、ステップＳ１３及びＳ１４の処理は、データ抽出部２からモデル学習用データが分配された学習モジュール、すなわち、ここでは、N個の学習モジュール１０1ないし１０Nのすべてで行われる。
【００７２】
ステップＳ１４の後、処理は、ステップＳ１５に進み、モデルパラメータ共有部２０は、直前のステップＳ1４で、更新学習が行われた学習モジュール、すなわち、ここでは、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の記憶内容を更新する。
【００７８】
ステップＳ１５の後、処理は、ステップＳ１６に進み、図１の学習装置は、学習の終了条件が満たされているかどうかを判定する。
【００７９】
ここで、ステップＳ１６での学習の終了条件としては、例えば、学習の回数、つまり、ステップＳ１４及びＳ１５が繰り返された回数が、あらかじめ定められた所定の回数となったことや、あるいは、パターン学習モデルがモデル学習用データの予測値を生成することができる場合に、その予測値の予測誤差が所定値以下に収束したこと等を採用することができる。
【００８０】
ステップＳ１６において、学習の終了条件が満たされていないと判定された場合、処理は、ステップＳ１４に戻り、以下、同様の処理が繰り返される。
【００８１】
また、ステップＳ１６において、学習の終了条件が満たされていると判定された場合、処理は終了する。
【００８２】
次に、図４は、パターン学習モデルとして、RNNを採用した場合の、図１の学習装置の構成例を示している。
【００８３】
なお、図４においては、時系列データ入力部１、データ抽出部２、並びに、学習モジュール１０iの学習データ入力部１１i及びモデル学習部１２iの図示を省略してある。
【００８４】
モデル記憶部１３iには、RNN（を定義するモデルパラメータ）が記憶されている。ここで、モデル記憶部１３iに記憶されたRNNを、以下、適宜、RNN#iとも記載する。
【００８５】
図４では、RNNは、入力層、隠れ層（中間層）、及び出力層により構成されている。入力層、隠れ層、及び出力層は、それぞれ任意の数の、ニューロンに相当するユニットにより構成されている。
【００８６】
RNNでは、入力層の一部のユニットである入力ユニットに、外部から入力データxtが入力（供給）される。ここで、入力データxtは、時刻tのデータを表す。
【００８７】
入力層の、入力データxtが入力される入力ユニット以外の、残りのユニットは、コンテキストユニットであり、コンテキストユニットには、出力層の一部のユニットの出力が、内部状態を表すコンテキストとしてフィードバックされる。
【００８８】
ここで、時刻tの入力データxtが入力層の入力ユニットに入力されるときに入力層のコンテキストユニットに入力される時刻tのコンテキストを、ctと記載する。
【００８９】
隠れ層のユニットは、入力層に入力される入力データxtとコンテキストctを対象として、所定のウエイト（重み）を用いた重み付け加算を行い、その重み付け加算の結果を引数とする非線形関数の演算を行って、その演算結果を、出力層のユニットに出力する。
【００９０】
出力層のユニットでは、隠れ層のユニットが出力するデータを対象として、隠れ層のユニットと同様の処理が行われる。そして、出力層の一部のユニットからは、上述したように、次の時刻t+1のコンテキストct+1が出力され、入力層にフィードバックされる。また、出力層の残りのユニットからは、例えば、入力データxtに対する出力データとして、その入力データxtの次の時刻t+1の入力データxt+1の予測値x*t+1が出力される。
【００９１】
ここで、RNNでは、ユニットへの入力が重み付け加算されるが、この重み付け加算に用いられるウエイト（重み）が、RNNのモデルパラメータである。RNNのモデルパラメータとしてのウエイトには、入力ユニットから隠れ層のユニットへのウエイト、コンテキストユニットから隠れ層のユニットへウエイト、隠れ層のユニットから出力層のユニットへのウエイト等がある。
【００９２】
パターン学習モデルとして、以上のようなRNNを採用した場合、モデルパラメータ共有部２０には、RNNのモデルパラメータとしてのウエイトを、学習モジュール１０1ないし１０Nに共有させるウエイトマトリクス共有部２１が設けられる。
【００９３】
ここで、RNNのモデルパラメータとしてのウエイトは、複数あるが、その複数のウエイトをコンポーネントとするマトリクスを、ウエイトマトリクスという。
【００９４】
ウエイトマトリクス共有部２１は、モデル記憶部１３1ないし１３Nに記憶されたRNN#1ないしRNN#Nの複数のモデルパラメータとしてのウエイトマトリクスすべてを、学習モジュール１０1ないし１０Nのそれぞれに共有させる。
【００９５】
すなわち、RNN#iのウエイトマトリクスをwiと表すこととすると、ウエイトマトリクス共有部２１は、ウエイトマトリクスwiを、N個の学習モジュール１０1ないし１０Nそれぞれのウエイトマトリクスw1ないしwNのすべてに基づいて補正することで、ウエイトマトリクスwiに、ウエイトマトリクスw1ないしwNのすべてを影響させる共有処理を行う。
【００９６】
具体的には、ウエイトマトリクス共有部２１は、例えば、次式（１）に従い、RNN#iのウエイトマトリクスwiを補正する。
【００９７】
【数１】
2009288933.tif 000003
・・・（１）
【００９８】
ここで、式（１）において、△wiは、ウエイトマトリクスwiを補正する補正成分であり、例えば、式（２）に従って求められる。
【００９９】
【数２】
2009288933.tif 000004
・・・（２）
【０１００】
式（２）において、βijは、RNN#iのウエイトマトリクスwiに、RNN#j(j=1,2,・・・,N)のウエイトマトリクスwjを影響させる度合いを表す係数である。
【０１０１】
したがって、式（２）の右辺のサメーションΣβij(wj-wi)は、係数βijを重みとした、RNN#iのウエイトマトリクスwjに対するRNN#1ないしRNN#Nのウエイトマトリクスw1ないしwNそれぞれの偏差（差分）の重み付け平均値を表し、αiは、その重み付け平均値Σβij(wj-wi)を、ウエイトマトリクスwiに影響させる度合いを表す係数である。
【０１０２】
係数αi及びβijとしては、例えば、0.0より大で1.0より小の値を採用することができる。
【０１０３】
式（２）によれば、係数αiが小であるほど、いわば共有が弱くなり（ウエイトマトリクスwiが受ける重み付け平均値Σβij(wj-wi)の影響が小さくなり）、係数αiが大であるほど、いわば共有が強まる。
【０１０４】
なお、ウエイトマトリクスwiの補正の方法は、式（１）に限定されるものではなく、例えば、式（３）に従って行うことが可能である。
【０１０５】
【数３】
2009288933.tif 000005
・・・（３）
【０１０６】
ここで、式（３）において、βij'は、RNN#iのウエイトマトリクスwiに、RNN#j(j=1,2,・・・,N)のウエイトマトリクスwjを影響させる度合いを表す係数である。
【０１０７】
したがって、式（３）の右辺の第２項におけるサメーションΣβij'wjは、係数βij'を重みとした、RNN#1ないしRNN#Nのウエイトマトリクスw1ないしwNの重み付け平均値を表し、αi'は、その重み付け平均値Σβij'wjを、ウエイトマトリクスwiに影響させる度合いを表す係数である。
【０１０８】
係数αi'及びβij'としては、例えば、0.0より大で1.0より小の値を採用することができる。
【０１０９】
式（３）によれば、係数αi'が大であるほど、共有が弱くなり（ウエイトマトリクスwiが受ける重み付け平均値Σβij'wjの影響が小さくなり）、係数αi'が小であるほど、共有が強まる。
【０１１０】
次に、図５のフローチャートを参照して、パターン学習モデルとして、RNNを採用した場合の、図１の学習装置の学習処理について説明する。
【０１１１】
ステップＳ２１ないしＳ２３において、図３のステップＳ１１ないしＳ１３と同様の処理がそれぞれ行われる。
【０１１２】
そして、ステップＳ２３において、学習モジュール１０iのモデル学習部１２iが、モデル記憶部１３iに記憶されたモデルパラメータを初期化した後、すなわち、モデル記憶部１３iに記憶されたRNN#iのモデルパラメータであるウエイトマトリクスwiを、例えば、乱数等によって初期化した後、処理は、ステップＳ２４に進む。
【０１１３】
ステップＳ２４では、学習モジュール１０iが、データ抽出部２から供給されるモデル学習用データを用いて、モデルパラメータを更新する更新学習を行う。
【０１１４】
すなわち、ステップＳ２４では、学習モジュール１０iにおいて、学習データ入力部１１iが、学習モジュール１０iに供給されたモデル学習用データを受信して、モデル学習部１２iに供給する。
【０１１５】
さらに、ステップＳ２４では、モデル学習部１２iが、学習データ入力部１１iからのモデル学習用データを用いて、モデル記憶部１３iに記憶されたRNN#iのウエイトマトリクスwiを更新する更新学習を、例えば、BPTT(Back-Propagation Through Time)法により行い、その更新学習によって得られた新たなモデルパラメータとしてのウエイトマトリクスwiによって、モデル記憶部１３iの記憶内容を更新する。
【０１１６】
ここで、ステップＳ２３及びＳ２４の処理は、図３のステップＳ１３及びＳ１４の場合と同様に、N個の学習モジュール１０1ないし１０Nのすべてで行われる。
【０１１７】
ステップＳ２４の後、処理は、ステップＳ２５に進み、モデルパラメータ共有部２０のウエイトマトリクス共有部２１は、N個の学習モジュール１０1ないし１０Nのすべてに、ウエイトマトリクスw1ないしwNのすべてを共有させる共有処理を行う。
【０１１８】
すなわち、ステップＳ２５において、ウエイトマトリクス共有部２１は、例えば、式（２）に従い、モデル記憶部１３1ないし１３Nに記憶されたウエイトマトリクスw1ないしwNを用いて補正成分△w1ないし△wNをそれぞれ求め、その補正成分△w1ないし△wNにより、モデル記憶部１３1ないし１３Nに記憶されたウエイトマトリクスw1ないしwNを、式（１）に従ってそれぞれ補正する。
【０１１９】
ステップＳ２５の後、処理は、ステップＳ２６に進み、図１の学習装置は、学習の終了条件が満たされているかどうかを判定する。
【０１２０】
ここで、ステップＳ２６での学習の終了条件としては、例えば、学習の回数、つまり、ステップＳ２４及びＳ２５が繰り返された回数が、あらかじめ定められた所定の回数となったことや、モデル学習用データxtに対してRNN#iが出力する予測値x*t+1の予測誤差（入力データxt+1の予測値x*t+1の、入力データxt+1に対する誤差）が所定値以下であること等を採用することができる。
【０１２１】
ステップＳ２６において、学習の終了条件が満たされていないと判定された場合、処理は、ステップＳ２４に戻り、以下、同様の処理、すなわち、ウエイトマトリクスwiの更新学習と、共有処理とが交互に繰り返される。
【０１２２】
また、ステップＳ２６において、学習の終了条件が満たされていると判定された場合、処理は終了する。
【０１２３】
以上のように、図１（及び図４）の学習装置では、１つの学習モジュール１０iが、１個のモデル学習データを学習するので、規模拡張性に優れる。そして、規模拡張性に優れた複数の学習モジュール１０1ないし１０Nそれぞれにおいて、モデルパラメータを共有しながら、その複数の学習モジュール１０1ないし１０Nそれぞれのモデルパラメータを更新する更新学習を行うことにより、１つの学習モジュール１０iだけで行われる学習で得られる汎化特性が、複数の学習モジュール１０1ないし１０Nの全体で得ることができ、その結果、規模拡張性があり、同時に、汎化特性を有するパターン学習モデルを得ることができる。
【０１２４】
すなわち、多くのパターンを獲得（記憶）することができ、かつ、複数のパターンの共通性を獲得することができる。さらに、複数のパターンの共通性を獲得することで、その共通性に基づいて、未学習のパターンの認識や生成を行うことが可能となる。
【０１２５】
また、図１の学習装置では、データ抽出部２が、ウインドウの位置をずらすことで、学習データとしての時系列データから、N個のモデル学習用データを抽出し、N個の学習モジュール１０1ないし１０Nに分配する。そして、学習モジュール１０1ないし１０Nそれぞれにおいて、モデルパラメータを共有しながら、その学習モジュール１０1ないし１０Nそれぞれのモデルパラメータを更新する更新学習が行われる。
【０１２６】
その結果、パターン学習モデルでは、データ抽出部２でのモデル学習用データの抽出とは独立に、元の学習データとしての時系列データの要素パターンを獲得することができる。
【０１２７】
したがって、元の学習データとしての時系列データを、適切な要素パターンごとのモデル学習用データに分けることなく、その要素パターンを各パターン学習モデルに獲得させる学習を、容易にすることができる。
【０１２８】
すなわち、元の学習データとしての時系列データが、複数の要素パターンのデータのシーケンスである場合において、その複数の要素パターンを、複数のパターン学習モデルに獲得させる学習は、一般には、元の学習データとしての時系列データを、各要素パターンのデータに分節（分割）し、そのデータを、パターン学習モデルに与える必要がある。
【０１２９】
分節の方法としては、例えば、特許文献１に記載のように、複数のRNNのうちの、学習データとしての時系列データの予測値の予測誤差を最小にするRNN(以下、誤差最小RNNという）を、各時刻において検出し、その誤差最小RNNが変化する時刻で、学習データを区切ることにより、その学習データの分節を行う方法がある。
【０１３０】
図１の学習装置では、このような学習データの分節を行わなくても(容易に）、時系列データの時系列パターンを、適切な要素パターンに分けて獲得する学習を行うことができる。
【０１３１】
図６及び図７を参照して、本件発明者が行った、図１の学習装置による学習処理（以下、適宜、共有学習処理という）のシミュレーションの結果について説明する。
【０１３２】
図６は、共有学習処理で用いたデータと、共有学習処理後のパターン学習モデルを用いて生成したデータとを示している。
【０１３３】
すなわち、図６Ａは、シミュレーションで用いた学習データとしての時系列データを示している。
【０１３４】
シミュレーションでは、80ステップ(時刻）分の２次元の周期的なデータ列を、２種類だけ用意し、その２種類のデータ列としての第１と第２の種類のデータ列を繋げて得られる160ステップの時系列データを、学習データとした。
【０１３５】
図６Ａでは、左半分(時間的に先行する80ステップ分）が、第１の種類のデータ列になっており、右半分(時間的に先行する80ステップ分）が、第２の種類のデータ列になっている。
【０１３６】
さらに、シミュレーションでは、N個のパターン学習モデルとして、8個のRNNを用意した。また、シミュレーションでは、ウインドウ長が20ステップのウインドウを、160ステップの学習データの先頭から、20ステップずつずらすことにより、20ステップのモデル学習用データを、8個だけ抽出した。
【０１３７】
図６Ｂは、1個目のモデル学習用データと、そのモデル学習用データの抽出に用いたウインドウを示している。
【０１３８】
同様に、図６Ｃは、2個目のモデル学習用データとウインドウを、図６Ｄは、3個目のモデル学習用データとウインドウを、図６Ｅは、4個目のモデル学習用データとウインドウを、図６Ｆは、5個目のモデル学習用データとウインドウを、図６Ｇは、6個目のモデル学習用データとウインドウを、図６Ｈは、7個目のモデル学習用データとウインドウを、図６Ｉは、8個目のモデル学習用データとウインドウを、それぞれ示している。
【０１３９】
シミュレーションでは、8個のモデル学習用データのうちのi個目のモデル学習データを、i個目のRNN#iに与えて、共有学習処理を行った。
【０１４０】
したがって、1ないし4個目のRNN#1ないし#4の学習は、第1の種類のデータ列の一部を用いて行われ、5ないし8個目のRNN#5ないし#8の学習は、第2の種類のデータ列の一部を用いて行われたことになる。
【０１４１】
図６Ｊないし図６Ｑは、共有学習処理後のRNN#1ないし#8を用いて生成された時系列データを示している。
【０１４２】
ここで、RNNを用いた時系列データの生成（リハース生成）では、入力データ(入力層のユニットに与えるデータ）の初期値として、ランダムな値を採用し、その後は、出力データ(出力層のユニットから出力されるデータ）を、次の時刻の入力データとして与えることを繰り返すことで、80ステップの時系列データを生成した。
【０１４３】
図６Ｊは、共有学習処理後のRNN#1を用いて生成された時系列データを、図６Ｋは、共有学習処理後のRNN#2を用いて生成された時系列データを、図６Ｌは、共有学習処理後のRNN#3を用いて生成された時系列データを、図６Ｍは、共有学習処理後のRNN#4を用いて生成された時系列データを、図６Ｎは、共有学習処理後のRNN#5を用いて生成された時系列データを、図６Ｏは、共有学習処理後のRNN#6を用いて生成された時系列データを、図６Ｐは、共有学習処理後のRNN#7を用いて生成された時系列データを、図６Ｑは、共有学習処理後のRNN#8を用いて生成された時系列データを、それぞれ示している。
【０１４４】
図６Ｊないし図６Ｍによれば、共有学習処理において、RNN#1ないし#4には、第1の種類のデータ列の一部しか与えられていないのにもかかわらず、RNN#1ないし#4が、第1の種類のデータ列の周期的なパターン（要素パターン）を獲得していることを確認することができる。
【０１４５】
同様に、図６Ｎないし図６Ｑによれば、共有学習処理において、RNN#5ないし#8には、第2の種類のデータ列の一部しか与えられていないのにもかかわらず、RNN#5ないし#8が、第2の種類のデータ列の周期的なパターンを獲得していることを確認することができる。
【０１４６】
図７は、共有学習処理後のRNN#1ないし#8それぞれのウエイトマトリクスどうしの相関としての距離、すなわち、例えば、ウエイトマトリクスを構成する各ウエイトをコンポーネントとするベクトルの空間における、そのベクトルどうしの距離を表すマップを示している。
【０１４７】
なお、ウエイトマトリクスどうしの距離が小であるほど、その２つのウエイトマトリクスどうしの相関が高い。
【０１４８】
図７のマップでは、横軸と縦軸のそれぞれに、8個のRNN#1ないしRNN#8それぞれのウエイトマトリクスをとって、その横軸のウエイトマトリクスと、縦軸のウエイトマトリクスとの距離が、濃淡で示されており、濃い（黒い）部分ほど、距離が小であることを表す（淡い（白い）部分ほど、距離が大であることを表す）。
【０１４９】
図７によれば、共有学習処理において第1の種類のデータ列の一部が与えられたRNN#1ないし#4のウエイトマトリクスどうしは、相関が高く、共有学習処理において第2の種類のデータ列の一部が与えられたRNN#5ないし#8のウエイトマトリクスどうしも、相関が高いことを確認することができる。
【０１５０】
さらに、図７によれば、共有学習処理において、第1の種類のデータ列の一部が与えられたRNN#1ないし#4のウエイトマトリクスと、第2の種類のデータ列の一部が与えられたRNN#5ないし#8のウエイトマトリクスとは、相関が低いことを確認することができる。
【０１５１】
以上の図６及び図７のシミュレーションの結果によれば、特許文献１に記載のような分節を行わなくても、学習データを、単に、20サンプルのモデル学習用データに区切るだけで、学習データの時系列パターンを、適切な要素パターンに分けて獲得する学習を行うことができることが分かる。
【０１５２】
以上のように、図１の学習装置によれば、時系列データから、適切な要素パターンを獲得する学習を容易に行うことができ、その学習結果としての、要素パターンを獲得したパターン学習モデルを用いて、時系列データの予測や、分類（クラスタリング）等を行うことが可能となる。
【０１５３】
また、１つのパターン学習モデルが、学習データの全体を学習するのではなく、学習データから抽出された、学習データの一部であるモデル学習用データを学習するので、学習データの全体を学習する場合に比較して、学習の精度（パターン学習モデルが獲得する時系列パターンの精度）を向上させることができ、さらに、学習に要する計算量を大幅に削減することができる。
【０１５４】
なお、モデル学習部１２iによるモデルパラメータの更新学習の方法、及び、モデルパラメータ共有部２０による共有処理の方法は、上述した方法に限定されるものではない。
【０１５５】
また、本実施の形態では、モデルパラメータ共有部２０による共有処理において、N個の学習モジュール１０1ないし１０Nのすべてに、モデルパラメータとしてのウエイトマトリクスを共有させるようにしたが、その他、例えば、N個の学習モジュール１０1ないし１０Nのうちの一部だけに、モデルパラメータとしてのウエイトマトリクスを共有させることが可能である。
【０１５６】
さらに、本実施の形態では、モデルパラメータ共有部２０による共有処理において、学習モジュール１０iに、複数のモデルパラメータとしての、ウエイトマトリクスを構成する複数のウエイトすべてを共有させるようにしたが、共有処理では、ウエイトマトリクスを構成する複数のウエイトすべてではなく、そのうちの一部のウエイトだけを共有させるようにすることが可能である。
【０１５７】
また、N個の学習モジュール１０1ないし１０Nのうちの一部だけに、ウエイトマトリクスを構成する複数のウエイトのうちの一部のウエイトだけを共有させることも可能である。
【０１５８】
次に、図１の学習装置による共有学習処理の結果得られるパターン学習モデルを用いた、時系列データの予測や分類について説明する。
【０１５９】
図８は、時系列データを予測する予測装置の一実施の形態の構成例を示すブロック図である。
【０１６０】
図８において、予測装置は、時系列データ入力部５０、N個の予測モジュール６０1ないし６０N、統合出力決定部７０、及び、予測シーケンス出力部８０から構成される。
【０１６１】
時系列データ入力部５０には、外部から、時系列データが供給される。時系列データ入力部５０は、外部からの時系列データを受信し、N個の予測モジュール６０1ないし６０Nに供給する。
【０１６２】
予測モジュール６０iは、モデル記憶部６１i、予測部６２i、予測値出力部６３i、及び、予測誤差計算部６４iから構成され、時系列データ入力部５０からの時系列データに対して、その時系列データの予測値と、その予測値の予測誤差とを求める。
【０１６３】
すなわち、モデル記憶部６１iは、図１（図４）の学習装置で共有学習処理が行われた後の、モデル記憶部１３iに記憶されたパターン学習モデルとしての、例えば、RNN#iを記憶している。
【０１６４】
予測部６２iには、時系列データ入力部５０からの時系列データが供給される。予測部６２iは、時系列データ入力部５０からの時系列データを入力データとして、モデル記憶部６１iに記憶されたRNN#iに与えることで、その入力データの予測値である出力データを求め、予測値出力部６３i、及び、予測誤差計算部６４iに供給する。
【０１６５】
予測値出力部６３iは、予測部６２iからの予測値（以下、予測値#iともいう）を受信し、予測シーケンス出力部８０に供給する。
【０１６６】
予測誤差計算部６４iは、予測部６２iからの予測値#iの予測誤差を求め、統合出力決定部７０に供給する。すなわち、予測誤差計算部６４iは、予測部６２iからの予測値#iと、時系列データ入力部５０からの時系列データとの差分をとることで、予測値#iの予測誤差を求めて、統合出力決定部７０に供給する。
【０１６７】
統合出力決定部７０は、予測誤差計算部６４1ないし６４Nそれぞれからの予測誤差（予測値#1ないし#Nそれぞれの予測誤差）に基づき、外部から時系列データ入力部５０に供給された時系列データ（以下、入力時系列データともいう）の、最終的な予測値の系列（シーケンス）を決定し、その最終的な予測値を出力するように、予測シーケンス出力部８０を制御する。
【０１６８】
ここで、統合出力決定部７０では、各時刻において、例えば、予測値#1ないし#Nのうちの、予測誤差が最小の予測値の系列を、最終的な予測値の系列とすることを決定することができる。
【０１６９】
また、統合出力決定部７０では、各時刻において、例えば、予測値#1ないし#Nを、予測誤差に反比例するような重みを用いて重み付け加算し、その加算値の系列を、最終的な予測値の系列とすることを決定することができる。
【０１７０】
予測シーケンス出力部８０は、統合出力決定部７０の制御に従い、予測値出力部６３1ないし６３Nからの予測値#1ないし#Nを用いて、最終的な予測値の系列を求めて出力する。
【０１７１】
すなわち、予測シーケンス出力部８０は、例えば、各時刻において、予測値出力部６３1ないし６３Nからの予測値#1ないし#Nのうちの、予測誤差が最小の予測値を選択し、その予測値の系列を、最終的な予測値の系列として出力する。
【０１７２】
あるいは、予測シーケンス出力部８０は、例えば、各時刻において、予測値出力部６３1ないし６３Nからの予測値#1ないし#Nを対象として、予測誤差に反比例する重みを用いた重み付け加算を行い、その加算値の系列を、最終的な予測値の系列として出力する。
【０１７３】
次に、図９を参照して、図８の予測装置で行われる処理（予測処理）について説明する。
【０１７４】
時系列データ入力部５０は、外部から時系列データが供給されるのを待って、ステップＳ５１において、その時系列データを受信し、N個の予測モジュール６０1ないし６０Nに供給して、処理は、ステップＳ５２に進む。
【０１７５】
ステップＳ５２では、予測モジュール６０1ないし６０Nのそれぞれが、時系列データ入力部５０からの時系列データから、その予測値を求める。
【０１７６】
すなわち、予測モジュール６０iでは、予測部６２iが、時系列データ入力部５０から供給される時系列データを入力データとして、モデル記憶部６１iに記憶されたRNN#iに与えることで、その入力データの予測値#iである出力データを求め、予測値出力部６３i、及び、予測誤差計算部６４iに供給する。
【０１７７】
そして、予測値出力部６３iが、予測部６２iからの予測値#iを受信し、予測シーケンス出力部８０に供給して、処理は、ステップＳ５３からステップＳ５４に進む。
【０１７８】
ステップＳ５４では、予測モジュール６０1ないし６０Nが、予測値#1ないし#Nの予測誤差を求める。
【０１７９】
すなわち、予測モジュール６０iでは、予測誤差計算部６４iが、予測部６２iからの予測値#iの予測誤差を求める。そして、予測誤差計算部６４iは、予測値#iの予測誤差を、統合出力決定部７０に供給して、処理は、ステップＳ５４からＳ５５に進む。
【０１８０】
ステップＳ５５では、統合出力決定部７０が、予測誤差計算部６４1ないし６４Nそれぞれからの、予測値#1ないし#Nの予測誤差に基づき、外部から時系列データ入力部５０に供給された時系列データ（入力時系列データ）の、最終的な予測値の系列を決定し、その最終的な予測値を出力するように、予測シーケンス出力部８０を制御して、処理は、ステップＳ５６に進む。
【０１８１】
ステップＳ５６では、予測シーケンス出力部８０が、統合出力決定部７０の制御に従い、予測値出力部６３1ないし６３Nからの予測値#1ないし#Nを用いて、最終的な予測値の系列を求めて出力し、処理は、終了する。
【０１８２】
図１の学習装置による共有学習処理の結果得られるパターン学習モデルによれば、上述したような、時系列データの予測の他、例えば、時系列データの分類を行うことができる。
【０１８３】
すなわち、例えば、パターン学習モデル間のモデルパラメータどうしの相関（距離）に基づいて、パターン学習モデルどうしの類似性を評価し、類似性が高いパターン学習モデルどうしを同一のクラスタに属するパターン学習モデルとして、時系列データの分類（クラスタリング）を行うことができる。
【０１８４】
具体的には、例えば、パターン学習モデルとして、RNNを採用する場合には、時系列データ（の全区間）の予測値の予測誤差が最小のRNNを、勝者(winner)として、時系列データを、勝者のRNNが属するクラスタにクラスタリングすることができる。
【０１８５】
また、時系列データの分類を、例えば、時刻(ステップ）ごとに行うことで、時系列データの分節を行うことができる。すなわち、各時刻において、勝者となったRNNに応じて、時系列データを分節することができる。
【０１８６】
なお、図１の学習装置において、学習データとする時系列データは、特に限定されるものではない。すなわち、学習データとしては、例えば、PC(Personal Computer)のUI(User Interface)をユーザが操作したときの、その操作の内容を表すデータの時系列や、センサ及びモータを有するロボットのセンサが出力する信号と、モータに与えられる駆動信号とをコンポーネントとするベクトルの時系列等を採用することができる。また、学習データとしては、例えば、音楽や音声その他の音のデータの時系列や、画像のデータの時系列、言語処理の対象となる文字列としての音素や、単語、文のデータの時系列等を採用することができる。
【０１８７】
次に、上述した一連の処理は、ハードウェアにより行うこともできるし、ソフトウェアにより行うこともできる。一連の処理をソフトウェアによって行う場合には、そのソフトウェアを構成するプログラムが、汎用のコンピュータ等にインストールされる。
【０１８８】
そこで、図１０は、上述した一連の処理を実行するプログラムがインストールされるコンピュータの一実施の形態の構成例を示している。
【０１８９】
プログラムは、コンピュータに内蔵されている記録媒体としてのハードディスク１０５や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)やスピーカ等で構成される出力部１０６から出力、あるいは、通信部１０８から送信、さらには、ハードディスク１０５に記録等させる。
【０１９３】
ここで、本明細書において、コンピュータに各種の処理を行わせるためのプログラムを記述する処理ステップは、必ずしもフローチャートとして記載された順序に沿って時系列に処理する必要はなく、並列的あるいは個別に実行される処理（例えば、並列処理あるいはオブジェクトによる処理）も含むものである。
【０１９４】
また、プログラムは、１のコンピュータにより処理されるものであっても良いし、複数のコンピュータによって分散処理されるものであっても良い。さらに、プログラムは、遠方のコンピュータに転送されて実行されるものであっても良い。
【０１９５】
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【０１９６】
すなわち、本発明は、例えば、時系列パターン以外のパターンの学習にも適用可能である。
【図面の簡単な説明】
【０１９７】
【図１】本発明を適用した学習装置の一実施の形態の構成例を示すブロック図である。
【図２】データ抽出部２が、学習データとしての時系列データから、モデル学習用データを抽出するときの、ウインドウのずらし方を説明する図である。
【図３】学習装置の学習処理を説明するフローチャートである。
【図４】パターン学習モデルとして、RNNを採用した場合の学習装置の構成例を示すブロック図である。
【図５】パターン学習モデルとして、RNNを採用した場合の学習装置の学習処理を説明するフローチャートである。
【図６】シミュレーションの結果を示す図である。
【図７】シミュレーションの結果を示す図である。
【図８】予測装置の構成例を示すブロック図である。
【図９】予測装置の予測処理を説明するフローチャートである。
【図１０】本発明を適用したコンピュータの一実施の形態の構成例を示すブロック図である。
【符号の説明】
【０１９８】
１  時系列データ入力部，  ２  データ抽出部，  １０1ないし１０N  学習モジュール，  １１1ないし１１N  学習データ入力部，  １２1ないし１２N  モデル学習部，  １３1ないし１３N  モデル記憶部，  ２０  モデルパラメータ共有部，  ２１  ウエイトマトリクス共有部，  ５０  時系列データ入力部，  ６０1ないし６０N  予測モジュール，  ６１1ないし６１N  モデル記憶部，  ６２1ないし６２N  予測部，  ６３1ないし６３N  予測値出力部，  ６４1ないし６４N  予測誤差計算部，  ７０  統合出力決定部，  ８０  予測シーケンス出力部，  １０１  バス，  １０２  CPU，  １０３  ROM，  １０４  RAM，  １０５  ハードディスク，  １０６  出力部，  １０７  入力部，  １０８  通信部，  １０９  ドライブ，  １１０  入出力インタフェース，  １１１  リムーバブル記録媒体
【図１】
2009288933.tif 000006
【図２】
2009288933.tif 000007
【図３】
2009288933.tif 000008
【図４】
2009288933.tif 000009
【図５】
2009288933.tif 000010
【図６】
2009288933.tif 000011
【図７】
2009288933.tif 000012
【図８】
2009288933.tif 000013
【図９】
2009288933.tif 000014
【図１０】
2009288933.tif 000015