説明

情報処理装置、情報処理方法、及び、プログラム

【課題】時系列パターンの追加学習を、再学習なしに行う。
【解決手段】 時系列パターンを学習するパターン学習モデルの学習を行う複数の学習モジュールを有する複数の学習手段としての時系列シーケンス学習部11及び13が階層構造を構成するように接続されている。上位階層の時系列シーケンス学習部13が有する学習モジュールは、その上位階層の時系列シーケンス学習部13の下位階層の時系列シーケンス学習部11が有するパターン学習モデルを定義するモデルパラメータの系列を用いて、パターン学習モデルの学習を行う。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理方法、及び、プログラムに関し、特に、例えば、時系列パターンの追加学習を、容易に行うことができるようにする情報処理装置、情報処理方法、及び、プログラムに関する。
【背景技術】
【0002】
時系列パターンを学習するパターン学習モデルとしては、例えば、RNN(Recurrent Neural Network)等のNN(Neural Network)や、HMM(Hidden Marcov Model)等の状態遷移確率モデル等がある。
【0003】
また、新たな時系列パターンの学習を行う規模拡張性に優れた学習方法として、パターン学習モデルをモジュール化した学習モジュールを複数用意し、複数の学習モジュールのそれぞれにおいて、個別の時系列パターンを学習するモジュール型学習がある。
【0004】
モジュール型学習では、複数の学習モジュールの1つ1つが、1つの時系列パターンを学習し、これにより、1つの学習モジュールにおいて、1つのパターンが記憶(獲得)される。
【0005】
モジュール型学習においては、ある学習モジュールと、他の学習モジュールとの間で、時系列パターンの記憶の干渉がなく、時系列パターンの記憶の安定性が高い。そして、モジュール型学習は、学習モジュールを追加することにより、新たな時系列パターンを学習する追加学習を、容易に行うことができるという規模拡張性に優れる。
【0006】
モジュール型学習を利用した技術として、複数の学習モジュールを、階層構造を構成するように接続し、時系列パターンの階層的な記憶(階層記憶)を実現する階層化技術がある。
【0007】
階層化技術では、下位階層の複数の学習モジュールそれぞれにおいて、学習後のパターン学習モデルと、時系列データとを用いた予測(時系列データの予測、又は、時系列データが属するカテゴリ(パターン学習モデル)の予測(認識))が行われることにより、予測の尤度を表すスコアが、例えば、各時刻において求められる。
【0008】
すなわち、パターン学習モデルが、例えば、RNNである場合には、学習モジュールでは、RNNを用いて、時系列データの予測値が求められ、その予測値の予測誤差(に反比例するような値)が、スコアとして求められる。また、パターン学習モデルが、例えば、HMMである場合には、学習モジュールでは、時系列データがHMMから観測される確率が、スコアとして求められる。
【0009】
そして、下位階層の複数の学習モジュールのパターン学習モデルのうちの、最も良いスコアが得られるパターン学習モデルを識別するモデルID(Identification)に対応するコンポーネントだけが1で、他のモデルIDに対応するコンポーネントが0のベクトル(モデルIDベクトル)の系列や、複数の学習モジュールそれぞれで得られたスコアに対応する値をコンポーネントとするベクトル(重み付けベクトル)の系列が、上位階層の学習モジュールに対して、入力として与えられる(例えば、特許文献1を参照)。
【0010】
上位階層の学習モジュールでは、下位階層からの入力を用いて、下位階層の学習モジュールと同様の処理が行われる。
【先行技術文献】
【特許文献】
【0011】
【特許文献1】特開平11-126198号公報
【発明の概要】
【発明が解決しようとする課題】
【0012】
階層化技術において、新たな時系列パターンを学習するために、下位階層の学習モジュールを追加する場合、上位階層の学習モジュールに対する入力の次元を変更する必要があることがある。
【0013】
すなわち、例えば、上述のモデルIDベクトルや、重み付けベクトルは、下位階層の学習モジュールの数に等しい次元のベクトルとなる。
【0014】
したがって、モデルIDベクトルや、重み付けベクトルを、上位階層の学習モジュールに対する入力とする場合において、下位階層に学習モジュールを追加すると、上位階層の学習モジュールに対する入力となるベクトル(モデルIDベクトル、重み付けベクトル)の次元が変更される。
【0015】
そして、上位階層の学習モジュールに対する入力となるベクトルの次元が変更されると、上位階層の学習モジュールのパターン学習モデルは、変更後の次元のベクトルを用いて、学習し直す必要がある。
【0016】
さらに、上位階層の学習モジュールに対して入力として与える、変更後の次元のベクトルを求めるために、下位階層の学習モジュールでも、学習をし直す必要がある。
【0017】
ここで、モデルIDベクトルを、上位階層の学習モジュールに対する入力とする場合には、上位階層の学習モジュールでは、下位階層の各学習モジュール(のパターン学習モデル)が獲得した時系列パターンどうしの距離構造を反映した学習を行うことが困難である。
【0018】
すなわち、モデルIDは、下位階層の各学習モジュールが時系列パターンの学習に用いた時系列データの空間(入力空間)の距離構造、ひいては、各学習モジュールが獲得した時系列パターンどうしの距離構造とは無関係である。このため、そのようなモデルIDをコンポーネントとするモデルIDベクトルを、上位階層の学習モジュールに対する入力とする場合には、上位階層の学習モジュールの学習において、下位階層の各学習モジュールが獲得した時系列パターンどうしの距離構造は考慮されない(考慮することができない)。したがって、上位階層の学習モジュールのパターン学習モデルには、下位階層の各学習モジュールが獲得した時系列パターンどうしの距離構造は反映されない。
【0019】
本発明は、このような状況に鑑みてなされたものであり、時系列パターンの追加学習を、学習をし直すことなく(再学習なしに)、容易に行うことができるようにするものである。
【課題を解決するための手段】
【0020】
本発明の第1の側面の情報処理装置、又は、プログラムは、時系列パターンを学習するパターン学習モデルの学習を行う複数の学習モジュールを有する複数の学習手段が階層構造を構成するように接続されており、上位階層の前記学習手段が有する前記学習モジュールは、その上位階層の前記学習手段の下位階層の前記学習手段が有する前記パターン学習モデルを定義するモデルパラメータの系列を用いて、前記パターン学習モデルの学習を行う情報処理装置、又は、情報処理装置として、コンピュータを機能させるためのプログラムである。
【0021】
本発明の第1の側面の情報処理方法は、時系列パターンを学習するパターン学習モデルの学習を行う複数の学習モジュールを有する複数の学習手段が階層構造を構成するように接続されており、上位階層の前記学習手段が有する前記学習モジュールが、その上位階層の前記学習手段の下位階層の前記学習手段が有する前記パターン学習モデルを定義するモデルパラメータの系列を用いて、前記パターン学習モデルの学習を行うステップを含む情報処理方法である。
【0022】
以上のような第1の側面においては、時系列パターンを学習するパターン学習モデルの学習を行う複数の学習モジュールを有する複数の学習手段が、階層構造を構成するように接続されており、上位階層の前記学習手段が有する前記学習モジュールは、その上位階層の前記学習手段の下位階層の前記学習手段が有する前記パターン学習モデルを定義するモデルパラメータの系列を用いて、前記パターン学習モデルの学習を行う。
【0023】
本発明の第2の側面の情報処理装置、又は、プログラムは、時系列パターンを学習するパターン学習モデルを用いて、時系列データを予測する複数の予測モジュールを有する複数の予測手段が階層構造を構成するように接続されており、上位階層の前記予測手段が有する前記予測モジュールは、その上位階層の前記予測手段の下位階層の前記予測手段が有する前記パターン学習モデルを定義するモデルパラメータの系列を用いて、前記モデルパラメータを予測する情報処理装置、又は、情報処理装置として、コンピュータを機能させるためのプログラムである。
【0024】
本発明の第2の側面の情報処理方法は、時系列パターンを学習するパターン学習モデルを用いて、時系列データを予測する複数の予測モジュールを有する複数の予測手段が階層構造を構成するように接続されており、上位階層の前記予測手段が有する前記予測モジュールが、その上位階層の前記予測手段の下位階層の前記予測手段が有する前記パターン学習モデルを定義するモデルパラメータの系列を用いて、前記モデルパラメータを予測するステップを含む情報処理方法である。
【0025】
以上のような第2の側面においては、時系列パターンを学習するパターン学習モデルを用いて、時系列データを予測する複数の予測モジュールを有する複数の予測手段が、階層構造を構成するように接続されており、上位階層の前記予測手段が有する前記予測モジュールは、その上位階層の前記予測手段の下位階層の前記予測手段が有する前記パターン学習モデルを定義するモデルパラメータの系列を用いて、前記モデルパラメータを予測する。
【0026】
なお、情報処理装置は、独立した装置であっても良いし、1つの装置を構成している内部ブロックであっても良い。
【0027】
また、プログラムは、伝送媒体を介して伝送することにより、又は、記録媒体に記録して、提供することができる。
【発明の効果】
【0028】
本発明の第1及び第2の側面によれば、時系列パターンの追加学習を、容易に行うことができる。
【図面の簡単な説明】
【0029】
【図1】本発明を適用した学習装置の一実施の形態の構成例を示すブロック図である。
【図2】学習装置の処理を説明するフローチャートである。
【図3】時系列シーケンス学習部11の第1の構成例を示すブロック図である。
【図4】時系列シーケンス学習部13の第1の構成例を示すブロック図である。
【図5】学習処理を説明するフローチャートである。
【図6】時系列シーケンス学習部11の第2の構成例を示すブロック図である。
【図7】時系列シーケンス学習部13の第2の構成例を示すブロック図である。
【図8】モデル学習用データを抽出するときの、ウインドウのずらし方を説明する図である。
【図9】学習処理を説明するフローチャートである。
【図10】パターン学習モデルとして、RNNを採用した場合の、時系列シーケンス学習部11の構成例を示す図である。
【図11】時系列シーケンス学習部11及び13で行われる分節学習を説明する図である。
【図12】時系列シーケンス学習部11及び13で行われる追加学習を説明する図である。
【図13】本発明を適用した学習装置の他の一実施の形態の構成例を示すブロック図である。
【図14】学習装置の処理を説明するフローチャートである。
【図15】本発明を適用した予測装置の一実施の形態の構成例を示すブロック図である。
【図16】予測装置の処理を説明するフローチャートである。
【図17】時系列シーケンス予測部201の構成例を示すブロック図である。
【図18】時系列シーケンス予測部203の構成例を示すブロック図である。
【図19】予測処理を説明するフローチャートである。
【図20】本発明を適用した予測装置の他の一実施の形態の構成例を示すブロック図である。
【図21】予測装置の処理を説明するフローチャートである。
【図22】移動ロボットが移動する移動環境の概要を説明する図である。
【図23】シミュレーションで採用した移動環境を示す平面図である。
【図24】移動ロボットの、移動環境の移動の軌跡を示す図である。
【図25】最下位階層の100個のRNNを、そのRNNのウエイトマトリクスを用い、k-means法によってクラスタリングした結果を示す図である。
【図26】最下位階層のRNN、及び、最上位階層のRNNそれぞれの、勝者のRNNが学習した、移動環境中の軌跡を示す図である。
【図27】最下位階層のRNN、及び、最上位階層のRNNそれぞれの、勝者のRNNが学習した、移動環境中の軌跡を示す図である。
【図28】最下位階層のRNN、及び、最上位階層のRNNそれぞれの、勝者のRNNが学習した、移動環境中の軌跡を示す図である。
【図29】本発明を適用したコンピュータの一実施の形態の構成例を示すブロック図である。
【発明を実施するための形態】
【0030】
[学習装置の一実施の形態]
【0031】
図1は、本発明の情報処理装置を適用した学習装置の一実施の形態の構成例を示すブロック図である。
【0032】
図1において、学習装置は、時系列シーケンス学習部11、モデルパラメータシーケンス生成部12、及び、時系列シーケンス学習部13から構成される。
【0033】
図1の学習装置では、時系列パターンを学習するパターン学習モデルの学習を行う複数の学習モジュールを有する複数の学習手段としての2つの時系列シーケンス学習部11及び13が、2階層の階層構造を構成するように接続されている。
【0034】
すなわち、図1では、最下位階層である第1階層の時系列シーケンス学習部11と、最上位階層である第2階層の時系列シーケンス学習部13とが、上位階層と下位階層との間のインタフェースとなるモデルパラメータシーケンス生成部12を介して接続されている。
【0035】
最下位階層である第1階層の時系列シーケンス学習部11には、外部から、図1の学習装置での学習に用いられる時系列データが供給される。
【0036】
時系列シーケンス学習部11は、パターン学習モデルの学習を行う複数の学習モジュールを有し、学習モジュールは、外部からの時系列データを用いて、パターン学習モデルの学習を行う。
【0037】
すなわち、時系列シーケンス学習部11が有する学習モジュールは、外部からの時系列データを用いて、パターン学習モデルを定義するモデルパラメータを更新する更新学習を行い、そのモデルパラメータを、モデルパラメータシーケンス生成部12に供給する。
【0038】
ここで、外部から、最下位階層の時系列シーケンス学習部11に与える時系列データとしては、例えば、ロボットに所定のアクションを行わせるために、各種のアクチュエータに与えるアクションデータや、ロボットが内蔵する各種のセンサが出力するセンサデータをコンポーネントとするベクトルを採用することができる。
【0039】
また、外部から、最下位階層の時系列シーケンス学習部11に与える時系列データとしては、例えば、テレビジョン放送その他の番組等のコンテンツを構成する画像や音声のAV(Audio Visual)データ(の各種の特徴量をコンポーネントとするベクトル)を採用することができる。
【0040】
外部からの時系列データとして、アクションデータやセンサデータをコンポーネントとするベクトルを採用する場合には、学習後のパターン学習モデルを用いて、次の時刻のアクションデータやセンサデータを予測し、そのアクションデータの予測値をロボットに与えて、ロボットに、自律的なアクション(行動)を行わせることが可能となる。
【0041】
また、外部からの時系列データとして、コンテンツのAVデータを採用する場合には、学習後のパターン学習モデルを用いて、コンテンツ(の全体、又は、部分ごと)のクラスタリング等を行うことが可能となる。
【0042】
モデルパラメータシーケンス生成部12は、最下位階層である第1階層の時系列シーケンス学習部11から供給されるモデルパラメータから、上位階層である第2階層に時系列データとして与えるモデルパラメータの系列(時系列シーケンス学習部11のリソースダイナミクス)を生成し、第2階層の時系列シーケンス学習部13に供給する。
【0043】
すなわち、モデルパラメータシーケンス生成部12は、時系列シーケンス学習部11から供給されるモデルパラメータを一時記憶する。そして、モデルパラメータシーケンス生成部12は、外部からのある時系列データに対して、時系列シーケンス学習部11から供給されるモデルパラメータのすべてを記憶すると、そのモデルパラメータの系列を、時系列シーケンス学習部13に供給する。
【0044】
最上位階層である第2階層の時系列シーケンス学習部13は、時系列シーケンス学習部11と同様に、パターン学習モデルの学習を行う複数の学習モジュールを有する。
【0045】
そして、時系列シーケンス学習部13の学習モジュールは、モデルパラメータシーケンス生成部12からのモデルパラメータの系列、すなわち、下位階層(時系列シーケンス学習部13の階層の直下の階層)の時系列シーケンス学習部11が有するパターン学習モデルを定義するモデルパラメータの系列を用いて、時系列シーケンス学習部13のパターン学習モデルの学習を行う。
【0046】
図2は、図1の学習装置の処理を説明するフローチャートである。
【0047】
第1階層の時系列シーケンス学習部11は、外部から、時系列データが供給されるのを待って、ステップS11において、外部からの時系列データを用いて、パターン学習モデルを学習する学習処理(第1階層の学習処理)を行う。
【0048】
さらに、第1階層の時系列シーケンス学習部11は、学習後のパターン学習モデルのモデルパラメータを、モデルパラメータシーケンス生成部12に供給して、処理は、ステップS11からステップS12に進む。
【0049】
ステップS12では、モデルパラメータシーケンス生成部12は、時系列シーケンス学習部11からのモデルパラメータの系列を生成し、第2階層の時系列シーケンス学習部13に供給して、処理は、ステップS13に進む。
【0050】
ステップS13では、第2階層の時系列シーケンス学習部13が、モデルパラメータシーケンス生成部12からのモデルパラメータの系列、つまり、下位階層(図1では、第1階層)の時系列シーケンス学習部11が有するパターン学習モデルのモデルパラメータの系列を用いて、パターン学習モデルを学習する学習処理(第2階層の学習処理)を行い、処理は終了する。
【0051】
[時系列シーケンス学習部11の第1の構成例]
【0052】
図3は、図1の最下位階層である第1階層(最上位階層以外の階層)の時系列シーケンス学習部11の第1の構成例を示すブロック図である。
【0053】
図3の時系列シーケンス学習部11は、競合学習によって、時系列パターンを獲得する。
【0054】
すなわち、図3において、時系列シーケンス学習部11は、時系列データ入力部21、複数であるN個の学習モジュール301ないし30N、担当モジュール決定部41、及び、モデルパラメータ出力部42から構成される。
【0055】
時系列データ入力部21には、外部からの時系列データが供給される。
【0056】
時系列データ入力部21は、外部からの時系列データを受信し、時系列シーケンス学習部11での学習に用いる学習データとして、学習モジュール301ないし30Nのすべてに供給する。
【0057】
学習モジュール30i(i=1,2,・・・,N)は、時系列データ入力部21からの学習用データを用いて、パターン学習モデルを定義する複数のモデルパラメータを更新する更新学習を、競合学習によって行う。
【0058】
すなわち、学習モジュール30iは、学習データ入力部31i、モデル学習部32i、モデル記憶部33i、予測部34i、及び、予測誤差計算部35iから構成される。
【0059】
学習データ入力部31iは、時系列データ入力部21からの学習データを受信し、予測部34iに供給する。また、学習データ入力部31iは、担当モジュール決定部41からの指示に従い、時系列データ入力部21からの学習データを、モデル学習部32iに供給する。
【0060】
モデル学習部32iは、学習データ入力部31iからの学習データを用いて、モデル記憶部33iに記憶されたパターン学習モデルの複数のモデルパラメータを更新する更新学習を行う。
【0061】
モデル記憶部33iは、複数のモデルパラメータによって定義され、時系列パターンを学習(獲得)するパターン学習モデルを記憶する。すなわち、モデル記憶部33iは、パターン学習モデルを定義する複数のモデルパラメータを記憶する。
【0062】
ここで、パターン学習モデルとしては、例えば、HMM(Hidden Markov Model)等の状態遷移確率モデル、RNN,FNN(Feed Forward Neural Network),RNNPB(RNN with Parametric Bias)等のニューラルネットワーク、SVR(Support Vector Regression)等の関数近似器等を採用することができる。
【0063】
例えば、HMMについては、HMMにおいて状態が遷移する確率を表す状態遷移確率や、状態が遷移するときに、HMMからある観測値が出力される確率を表す出力確率、又は確率密度を表す出力確率密度関数が、HMMのモデルパラメータである。
【0064】
また、例えば、ニューラルネットワークについては、ニューロンに相当するユニット(ノード)において、他のユニットからの入力に付されるウエイト(重み)が、ニューラルネットワークのモデルパラメータである。
【0065】
なお、HMMの状態遷移確率や、出力確率、又は出力確率密度関数、ニューラルネットワークのウエイトは、いずれも複数存在する。
【0066】
予測部34iは、学習データ入力部31iからの学習データを入力データとして、モデル記憶部33iに記憶されたパターン学習モデルに与えることで、その入力データの予測値である出力データを求め、予測誤差計算部35iに供給する。
【0067】
予測誤差計算部35iは、予測部34iからの予測値の予測誤差を求め、担当モジュール決定部41に供給する。すなわち、予測誤差計算部35iは、予測部34iからの予測値と、学習データ入力部31iが予測部34iに供給する学習データとの差分をとることで、予測値の予測誤差を求めて、担当モジュール決定部41に供給する。
【0068】
担当モジュール決定部41は、予測誤差計算部351ないし35Nそれぞれからの予測誤差に基づき、学習データの学習を担当させる担当モジュールとなる学習モジュール30iを決定する。
【0069】
すなわち、担当モジュール決定部41は、予測誤差計算部351ないし35Nそれぞれからの予測誤差に基づき、学習モジュール301ないし30Nのうちの、予測誤差が最小の予測値が得られる学習モジュール30iを、担当モジュールに決定する。
【0070】
そして、担当モジュール決定部41は、担当モジュールを表す情報を、モデルパラメータ出力部42に供給するとともに、担当モジュールとなった学習モジュール30iに対して、学習の指示を供給する。
【0071】
モデルパラメータ出力部42は、担当モジュール決定部41からの情報に基づき、担当モジュールとなった学習モジュール30iを認識する。さらに、モデルパラメータ出力部42は、担当モジュールとなった学習モジュール30iのモデル記憶部33iに記憶されたモデルパラメータを読み出し、モデルパラメータシーケンス生成部12(図1)に供給する。
【0072】
[時系列シーケンス学習部13の第1の構成例]
【0073】
図4は、図1の最上位階層である第2階層の時系列シーケンス学習部13の第1の構成例を示すブロック図である。
【0074】
図4の時系列シーケンス学習部13は、図3の時系列シーケンス学習部11と同様に構成され、競合学習によって、時系列パターンを獲得する。
【0075】
すなわち、図4において、時系列シーケンス学習部13は、時系列データ入力部51、複数であるN個の学習モジュール601ないし60N、及び、担当モジュール決定部71から構成される。
【0076】
ここで、時系列シーケンス学習部13は、図3のモデルパラメータ出力部42に相当するブロックが設けられていないことを除いて、図3の時系列シーケンス学習部11と同様に構成される。
【0077】
また、本実施の形態では、説明を簡単にするため、学習装置において、上位階層の時系列シーケンス学習部13が有する学習モジュール60iの数を、下位階層の時系列シーケンス学習部11が有する学習モジュール30iの数と同一の数とするようにしたが、上位階層の時系列シーケンス学習部13が有する学習モジュール60iの数は、下位階層の時系列シーケンス学習部11が有する学習モジュール30iの数よりも少ない1以上の数、又は複数とすることができる。予測装置においても同様である。
【0078】
時系列データ入力部51には、第1階層の時系列シーケンス学習部11(図1)から、モデルパラメータシーケンス生成部12を経由して、モデルパラメータの系列が、時系列データとして供給される。
【0079】
時系列データ入力部51は、第1階層の時系列シーケンス学習部11から、モデルパラメータシーケンス生成部12を経由して供給されるモデルパラメータの系列を受信し、図4の時系列シーケンス学習部13での学習に用いる学習データとして、学習モジュール601ないし60Nのすべてに供給する。
【0080】
学習モジュール60i(i=1,2,・・・,N)は、時系列データ入力部51からの学習用データを用いて、パターン学習モデルを定義する複数のモデルパラメータを更新する更新学習を、競合学習によって行う。
【0081】
すなわち、学習モジュール60iは、学習データ入力部61i、モデル学習部62i、モデル記憶部63i、予測部64i、及び、予測誤差計算部65iから構成される。
【0082】
学習データ入力部61iないし予測誤差計算部65iは、それぞれ、図3の学習データ入力部31iないし予測誤差計算部35iと同様に構成される。
【0083】
すなわち、学習データ入力部61iは、時系列データ入力部51からの学習データを受信し、予測部64iに供給する。また、学習データ入力部61iは、担当モジュール決定部71からの指示に従い、時系列データ入力部51からの学習データを、モデル学習部62iに供給する。
【0084】
モデル学習部62iは、学習データ入力部61iからの学習データを用いて、モデル記憶部63iに記憶されたパターン学習モデルの複数のモデルパラメータを更新する更新学習を行う。
【0085】
モデル記憶部63iは、複数のモデルパラメータによって定義され、時系列パターンを学習するパターン学習モデル(を定義するモデルパラメータ)を記憶する。
【0086】
予測部64iは、学習データ入力部61iからの学習データを入力データとして、モデル記憶部63iに記憶されたパターン学習モデルに与えることで、その入力データの予測値である出力データを求め、予測誤差計算部65iに供給する。
【0087】
予測誤差計算部65iは、予測部64iからの予測値の予測誤差を求め、担当モジュール決定部71に供給する。
【0088】
担当モジュール決定部71は、予測誤差計算部651ないし65Nそれぞれからの予測誤差に基づき、学習データの学習を担当させる担当モジュールとなる学習モジュール60iを決定する。
【0089】
すなわち、担当モジュール決定部71は、図3の担当モジュール決定部41と同様に、予測誤差計算部651ないし65Nそれぞれからの予測誤差に基づき、学習モジュール601ないし60Nのうちの、予測誤差が最小の予測値が得られる学習モジュール60iを、担当モジュールに決定する。
【0090】
そして、担当モジュール決定部71は、担当モジュールとなった学習モジュール60iに対して、学習の指示を供給する。
【0091】
[学習処理]
【0092】
図5は、図3の時系列シーケンス学習部11が、図2のステップS11で行う第1階層の学習処理を説明するフローチャートである。
【0093】
時系列データ入力部21は、外部から、学習に用いるのに十分な数(複数)の時系列データが供給されるのを待って、ステップS21において、その時系列データを受信し、処理は、ステップS22に進む。
【0094】
ステップS22では、各学習モジュール30iのモデル学習部32iが、モデル記憶部33iに記憶されたパターン学習モデルのモデルパラメータを、例えば、乱数等によって初期化して、処理は、ステップS23に進む。
【0095】
ステップS23では、時系列データ入力部21は、外部からの複数の時系列データのうちの、まだ、学習に用いていない1つの時系列データを、学習データとして、時系列シーケンス学習部11を構成する学習モジュール301ないし30Nに供給する。
【0096】
さらに、ステップS23では、各学習モジュール30iの予測部34iが、モデル記憶部33iに記憶されたモデルパラメータを読み込み、処理は、ステップS24に進む。
【0097】
ステップS24では、各学習モジュール30iの予測部34iが、ステップS23でモデル記憶部33iから読み込んだモデルパラメータによって定義されるパターン学習モデルを用い、時系列データ入力部21からの学習データを、パターン学習モデルへの入力データとして、入力データの予測値である出力データを求め、予測誤差計算部35iに供給する。
【0098】
すなわち、各学習モジュール30iでは、学習データ入力部31iが、時系列データ入力部21からの学習データを、予測部34iに供給する。予測部34iは、学習データ入力部31iからの学習データを入力データとして、パターン学習モデルに与えることで、その入力データの予測値である出力データを求め、予測誤差計算部35iに供給する。
【0099】
そして、処理は、ステップS24からステップS25に進み、各学習モジュール30iの予測誤差計算部35iが、予測部34iからの予測値の予測誤差を求める。さらに、予測誤差計算部35iは、予測誤差を、担当モジュール決定部41に供給して、処理は、ステップS25からS26に進む。
【0100】
ステップS26では、担当モジュール決定部41が、予測誤差計算部351ないし35Nそれぞれからの予測誤差に基づき、学習モジュール301ないし30Nの中から、担当モジュールとなる(1つの)学習モジュール30iを決定する。
【0101】
さらに、担当モジュール決定部41は、担当モジュールを表す情報を、モデルパラメータ出力部42に供給するとともに、担当モジュールとなった学習モジュール30iの学習データ入力部31iに対して、学習の指示を供給し、処理は、ステップS26からステップS27に進む。
【0102】
ステップS27では、担当モジュール(担当学習モジュール)となった学習モジュール30iが、担当モジュール決定部41からの指示に従い、時系列データ入力部21からの学習データを用いて、モデルパラメータを更新する更新学習を行う。
【0103】
すなわち、ステップS27では、担当モジュールとなった学習モジュール30iの学習データ入力部31iは、担当モジュール決定部41からの指示に従い、時系列データ入力部21からの学習データを、モデル学習部32iに供給する。
【0104】
さらに、ステップS27では、モデル学習部32iが、学習データ入力部31iからの学習データを用いて、モデル記憶部33iに記憶されたパターン学習モデルのモデルパラメータを更新する更新学習を行う。そして、モデル学習部32iは、更新学習において、例えば、モデルパラメータが収束すると、その収束後の新たなモデルパラメータによって、モデル記憶部33iの記憶内容を更新する(上書きする)。
【0105】
ステップS27の後、処理は、ステップS28に進み、モデルパラメータ出力部42は、担当モジュール決定部41からの情報に基づき、担当モジュールとなった学習モジュール30iを認識する。さらに、モデルパラメータ出力部42は、担当モジュールとなった学習モジュール30iのモデル記憶部33iに記憶されたモデルパラメータを読み出し、モデルパラメータシーケンス生成部12(図1)に供給(出力)して、処理は、ステップS28からステップS29に進む。
【0106】
ここで、ステップS28では、モデルパラメータ出力部42において、担当モジュールとなった学習モジュール30iのモデル記憶部33iに記憶されたモデルパラメータだけではなく、モデル記憶部331ないし33Nに記憶されたモデルパラメータすべてを出力することが可能である。
【0107】
ステップS29では、時系列データ入力部21は、外部からの複数の時系列データの中に、まだ、学習に用いていない時系列データがあるかどうかを判定する。
【0108】
ステップS29において、外部からの複数の時系列データの中に、まだ、学習に用いていない時系列データがあると判定された場合、処理は、ステップS23に戻り、以下、同様の処理が繰り返される。
【0109】
また、ステップS29において、外部からの複数の時系列データの中に、学習に用いていない時系列データがないと判定された場合、学習処理は、終了する。
【0110】
なお、図4の時系列シーケンス学習部13が、図2のステップS13で行う第2階層の学習処理では、ステップS21で、時系列データ入力部51が受信するのが、時系列シーケンス学習部11から、モデルパラメータシーケンス生成部12を経由して供給されるモデルパラメータの系列である点と、ステップS28で、モデルパラメータを出力することが行われない(ステップS28の処理が行われない)点とを除けば、図5の学習処理と同様の処理が行われるため、説明を省略する。
【0111】
また、図3の時系列シーケンス学習部11において、追加学習を行う場合には、例えば、追加学習に用いる時系列データの数等に対して適切な数の学習モジュールを、時系列シーケンス学習部11に追加し、その追加した学習モジュールだけを対象として、学習処理を行えば良い。図4の時系列シーケンス学習部13でも同様である。
【0112】
このように、既に学習に用いた時系列データを再度用いて再学習を行うことなく、容易に、追加学習を行うことができる。
【0113】
[時系列シーケンス学習部11の第2の構成例]
【0114】
図6は、図1の最下位階層である第1階層の時系列シーケンス学習部11の第2の構成例を示すブロック図である。
【0115】
なお、図中、図3の場合と対応する部分については、同一の符号を付してあり、以下では、その説明は、適宜省略する。
【0116】
図6の時系列シーケンス学習部11は、競合学習ではなく、分節学習によって、時系列パターンを獲得する。
【0117】
すなわち、図6において、時系列シーケンス学習部11は、時系列データ入力部21、複数であるN個の学習モジュール301ないし30N、データ抽出部102、モデルパラメータ共有部121、及び、モデルパラメータ出力部122から構成される。
【0118】
時系列データ入力部21は、図3で説明したように、外部から供給される時系列データを受信し、図1の学習装置での学習に用いる学習データとして、データ抽出部102に供給する。
【0119】
データ抽出部102は、時系列データ入力部21からの学習データとしての時系列データから、所定のウインドウ長のウインドウ内のデータを、パターン学習モデルの学習用のモデル学習用データとして抽出し、学習モジュール301ないし30Nに分配する。
【0120】
すなわち、データ抽出部102は、例えば、時系列データ入力部21からの時系列データにかけるウインドウの位置をずらすことで、その時系列データから、複数であるN個のモデル学習用データを抽出する。さらに、データ抽出部102は、1個のモデル学習用データを、1つのパターン学習モデルに割り当てるように、N個のモデル学習用データを学習モジュール30i(i=1,2,・・・,N)に供給(分配)する。
【0121】
具体的には、データ抽出部102は、ウインドウを、時系列データ入力部21からの時系列データの先頭から終わりの方向に順次ずらし、ウインドウ内のデータ(列)を、モデル学習用データとして抽出することで、N個(シーケンス)のモデル学習用データを得る。
【0122】
そして、データ抽出部102は、N個のモデル学習用データのうちのi番目のモデル学習用データを、学習モジュール30iに供給する。なお、データ抽出部102から学習モジュール30iに対して供給するモデル学習用データは、N個のモデル学習用データのうちのいずれであってもよい。
【0123】
ここで、データ抽出部102は、時系列データ入力部21からの時系列データの全体が網羅されるように、ウインドウの位置をずらす。したがって、N個のモデル学習用データの全体には、時系列データ入力部21からの時系列データの全体が含まれる。
【0124】
学習モジュール30i(i=1,2,・・・,N)は、学習データ入力部31i、モデル学習部32i、及びモデル記憶部33iから構成され、予測部34i、及び、予測誤差計算部35iを有していない点で、図3の場合と異なる。
【0125】
また、図6では、担当モジュールとなった1つの学習モジュール30iだけが、学習データの全体を学習する競合学習が行われるのではなく、各学習モジュール30iが、学習データの一部分ずつを、モデル学習用データとして分け合って学習する分節学習が行われる。
【0126】
すなわち、学習データ入力部31iには、データ抽出部102から、学習データとしての時系列データから抽出されたi番目のモデル学習用データが供給される。
【0127】
学習データ入力部31iは、データ抽出部102からのモデル学習用データを受信し、モデル学習部32iに供給する。
【0128】
モデル学習部32iは、学習データ入力部31iからのモデル学習用データを用いて、モデル記憶部33iに記憶されたパターン学習モデルのモデルパラメータを更新する更新学習を行う。
【0129】
モデルパラメータ共有部121は、N個の学習モジュール301ないし30Nのうちの、2以上の学習モジュールに、モデルパラメータを共有させる共有処理を行う。モデルパラメータ共有部121が共有処理を行うことにより、N個の学習モジュール301ないし30Nのうちの、2以上の学習モジュールは、モデルパラメータを共有する。
【0130】
なお、以下では、説明を簡単にするため、モデルパラメータ共有部121は、N個の学習モジュール301ないし30Nのすべてに、モデルパラメータを共有させる共有処理を行うこととする。
【0131】
モデルパラメータ出力部122は、各学習モジュール30iのモデル記憶部33iに記憶されたモデルパラメータを読み出し、モデルパラメータシーケンス生成部12(図1)に供給(出力)する。
【0132】
ここで、モデル記憶部33iに記憶されたモデルパラメータを、モデルパラメータ#iと表すこととすると、モデルパラメータシーケンス生成部12(図1)は、例えば、モデルパラメータ#1,#2,・・・,#Nの並びを、モデルパラメータの系列として生成し、時系列シーケンス学習部13に供給する。
【0133】
[時系列シーケンス学習部13の第2の構成例]
【0134】
図7は、図1の最上位階層である第2階層の時系列シーケンス学習部13の第2の構成例を示すブロック図である。
【0135】
なお、図中、図4の場合と対応する部分については、同一の符号を付してあり、以下では、その説明は、適宜省略する。
【0136】
図7の時系列シーケンス学習部13は、分節学習によって、時系列パターンを獲得する。
【0137】
すなわち、図7において、時系列シーケンス学習部13は、時系列データ入力部51、複数であるN個の学習モジュール601ないし60N、データ抽出部132、及び、モデルパラメータ共有部151から構成される。
【0138】
ここで、時系列シーケンス学習部13は、図6のモデルパラメータ出力部122に相当するブロックが設けられていないことを除いて、図6の時系列シーケンス学習部11と同様に構成される。
【0139】
時系列データ入力部51は、第1階層の時系列シーケンス学習部11(図6)から、モデルパラメータシーケンス生成部12(図1)を経由して供給されるモデルパラメータの系列を、時系列データとして受信する。さらに、時系列データ入力部51は、モデルパラメータシーケンス生成部12からのモデルパラメータの系列を、時系列シーケンス学習部13での学習に用いる学習データとして、データ抽出部132に供給する。
【0140】
データ抽出部132は、図6のデータ抽出部102と同様に、時系列データ入力部51からの学習データとしてのモデルパラメータの系列から、所定のウインドウ長のウインドウ内のデータを、パターン学習モデルの学習用のモデル学習用データとして抽出し、学習モジュール601ないし60Nに分配する。
【0141】
なお、図6のデータ抽出部102で用いられるウインドウのウインドウ長と、図7のデータ抽出部132で用いられるウインドウのウインドウ長とは、同一であっても良いし、異なっていても良い。
【0142】
学習モジュール60i(i=1,2,・・・,N)は、学習データ入力部61i、モデル学習部62i、及びモデル記憶部63iから構成され、予測部64i、及び、予測誤差計算部65iを有していない点で、図4の場合と異なる。
【0143】
また、図7では、担当モジュールとなった1つの学習モジュール60iだけが、学習データの全体を学習する競合学習が行われるのではなく、各学習モジュール60iが、学習データの一部分ずつを、モデル学習用データとして分け合って学習する分節学習が行われる。
【0144】
すなわち、学習データ入力部61iには、データ抽出部132から、学習データとしての時系列データから抽出されたi番目のモデル学習用データが供給される。
【0145】
学習データ入力部61iは、データ抽出部132からのモデル学習用データを受信し、モデル学習部62iに供給する。
【0146】
モデル学習部62iは、学習データ入力部61iからのモデル学習用データを用いて、モデル記憶部63iに記憶されたパターン学習モデルのモデルパラメータを更新する更新学習を行う。
【0147】
モデルパラメータ共有部151は、図6のモデルパラメータ供給部121と同様に、N個の学習モジュール601ないし60Nのうちの、2以上の学習モジュールに、モデルパラメータを共有させる共有処理を行う。モデルパラメータ共有部151が共有処理を行うことにより、N個の学習モジュール601ないし60Nのうちの、2以上の学習モジュールは、モデルパラメータを共有する。
【0148】
なお、以下では、説明を簡単にするため、モデルパラメータ共有部151は、N個の学習モジュール601ないし60Nのすべてに、モデルパラメータを共有させる共有処理を行うこととする。
【0149】
[モデル学習用データの抽出]
【0150】
図8は、図6のデータ抽出部102(及び、図7のデータ抽出部132)が、学習データとしての時系列データから、モデル学習用データを抽出するときの、ウインドウのずらし方(モデル学習用データの抽出の仕方)を説明する図である。
【0151】
データ抽出部102では、ウインドウの一部がオーバラップするように、又は、オーバラップしないように、ウインドウの位置をずらすことで、モデル学習用データを抽出することができる。
【0152】
また、データ抽出部102では、可変長、又は固定長のウインドウ長のウインドウを用いて、モデル学習用データを抽出することができる。
【0153】
すなわち、図8Aは、固定長のウインドウ長のウインドウの一部がオーバラップするように、ウインドウの位置をずらしながら、モデル学習用データを抽出する様子を示している。
【0154】
図8Bは、固定長のウインドウ長のウインドウがオーバラップしないように、ウインドウの位置をずらしながら、モデル学習用データを抽出する様子を示している。
【0155】
図8Cは、可変長のウインドウ長のウインドウがオーバラップしないように、ウインドウの位置をずらしながら、モデル学習用データを抽出する様子を示している。
【0156】
なお、可変長のウインドウ長のウインドウを用いることは、ウインドウ長が異なる複数の固定長のウインドウを用意しておき、その複数のウインドウを適宜選択することによって代用することができる。
【0157】
また、ウインドウは、その一部ではなく、全部がオーバラップするようにずらすことができる。
【0158】
図8Dは、ウインドウの全部をオーバラップさせて、モデル学習用データを抽出する様子を示している。
【0159】
すなわち、図8Dでは、固定長の短いウインドウ長L1と長いウインドウ長L2との2つのウインドウを用い、ウインドウ長L1のウインドウの全部を、ウインドウ長L2のウインドウにオーバラップさせて、モデル学習用データが抽出されている。
【0160】
ここで、ウインドウ長は、学習データとしての時系列データを構成する構成要素となる時系列パターンの長さに無関係に、あらかじめ、適当な値に決めておくことができる。
【0161】
また、学習データとしての時系列データの時定数が、なんらかの方法によって分かる場合には、ウインドウ長は、その時定数に比例した長さ等とすることができる。
【0162】
さらに、ウインドウをオーバラップするか否かは、例えば、ウインドウ長に応じて決めることができる。
【0163】
すなわち、ウインドウ長が短い場合には、オーバラップをなしにすることができ、ウインドウ長が長い場合には、ある程度の長さのオーバラップを設けるようにすることができる。
【0164】
ここで、学習データとしての時系列データに、例えば、周期的な時系列パターンが、含まれる場合には、ウインドウ長が短いとは、時系列パターンの周期の1/8や、1/2,3/4程度以下のウインドウ長を意味し、ウインドウ長が長いとは、時系列パターンの周期の2倍程度以上のウインドウ長を意味する。
【0165】
なお、上述の場合には、データ抽出部102(図6)において、学習データとしての時系列データから、学習モジュール301ないし30Nと同一の数のN個のモデル学習用データを抽出することとしたが、学習データとしての時系列データからは、N個以外の複数個のモデル学習用データを抽出することが可能である。
【0166】
学習データとしての時系列データから、N個未満の数であるN'個のモデル学習用データが抽出される場合、データ抽出部102は、N個の学習モジュール301ないし30NのうちのN'個に対して、モデル学習用データを分配する。
【0167】
一方、学習データとしての時系列データから、N個を超える数であるN''個のモデル学習用データが抽出される場合、図6の時系列シーケンス学習部11では、学習モジュール30iと同様の学習モジュールが、N''-N個だけ追加され、学習モジュールが、全部で、N''個にされる。そして、そのN''個の学習モジュールに対して、モデル学習用データが分配される。
【0168】
ここで、図6の時系列シーケンス学習部11を、コンピュータにプログラムを実行させることで(等価的に)実現するとすれば、学習モジュールの追加は、メモリに、学習モジュールとしての記憶領域を新たに確保すること(たとえば、オブジェクト指向プログラミングにおけるインスタンスの生成)によって行うことができる。
【0169】
また、学習モジュール301ないし30Nの数Nを固定しておき、データ抽出部102において、学習データとしての時系列データから、N個のモデル学習用データを抽出することができるように、ウインドウのウインドウ長(及びオーバラップの長さ)を調整することができる。
【0170】
[学習処理]
【0171】
図9は、図6の時系列シーケンス学習部11が、図2のステップS11で行う第1階層の学習処理を説明するフローチャートである。
【0172】
時系列データ入力部21は、外部から、時系列データが供給されるのを待って、ステップS41において、その時系列データを受信し、学習データとして、データ抽出部102に供給して、処理は、ステップS42に進む。
【0173】
ステップS42では、データ抽出部102は、時系列データ入力部21からの学習データとしての時系列データから、例えば、N個のモデル学習用データを抽出する。さらに、データ抽出部102は、例えば、時間順で、i番目のモデル学習用データを、モデル記憶部33iに記憶されたパターン学習モデルに割り当てるように、モデル学習用データを、学習モジュール301ないし30Nに分配して、処理は、ステップS42からステップS43に進む。
【0174】
ステップS43では、学習モジュール30iのモデル学習部32iが、モデル記憶部33iに記憶されたモデルパラメータを、例えば、乱数等によって初期化して、処理は、ステップS44に進む。
【0175】
ステップS44では、学習モジュール30iが、データ抽出部102からのモデル学習用データを用いて、モデルパラメータを更新する更新学習を行う。
【0176】
すなわち、ステップS44では、学習モジュール30iにおいて、学習データ入力部31iが、学習モジュール30iに供給されたモデル学習用データを受信し、モデル学習部32iに供給する。
【0177】
さらに、ステップS44では、モデル学習部32iが、学習データ入力部31iからのモデル学習用データを用いて、モデル記憶部33iに記憶されたパターン学習モデルの複数のモデルパラメータを更新する更新学習を行い、その更新学習によって得られた新たな複数のモデルパラメータによって、モデル記憶部33iの記憶内容を更新する(上書きする)。
【0178】
ここで、ステップS43及びS44の処理は、データ抽出部102からモデル学習用データが分配された学習モジュール、すなわち、ここでは、N個の学習モジュール301ないし30Nのすべてで行われる。
【0179】
ステップS44の後、処理は、ステップS45に進み、モデルパラメータ共有部121は、直前のステップS14で、更新学習が行われた学習モジュール、すなわち、ここでは、N個の学習モジュール301ないし30Nのすべてに、モデルパラメータを共有させる共有処理を行う。
【0180】
ここで、学習モジュール30iが有する複数のモデルパラメータのうちの、例えば、m番目のモデルパラメータに注目すると、共有処理では、モデルパラメータ共有部121は、N個の学習モジュール301ないし30Nそれぞれのm番目のモデルパラメータに基づいて、学習モジュール301のm番目のモデルパラメータを補正する。
【0181】
さらに、モデルパラメータ共有部121は、N個の学習モジュール301ないし30Nそれぞれのm番目のモデルパラメータに基づいて、学習モジュール302のm番目のモデルパラメータを補正し、以下、同様にして、学習モジュール303ないし30Nそれぞれのm番目のモデルパラメータを補正する。
【0182】
以上のように、モデルパラメータ共有部121が、学習モジュール30iのm番目のモデルパラメータを、N個の学習モジュール301ないし30Nそれぞれのm番目のモデルパラメータに基づいて補正することで、N個の学習モジュール301ないし30Nのm番目のモデルパラメータのそれぞれは、N個の学習モジュール301ないし30Nのm番目のモデルパラメータのすべての影響を受ける(N個の学習モジュール301ないし30Nのm番目のモデルパラメータのそれぞれに、N個の学習モジュール301ないし30Nのm番目のモデルパラメータのすべてを影響させる)。
【0183】
このように、複数の学習モジュールすべてのモデルパラメータを、その複数の学習モジュールのそれぞれのモデルパラメータに影響させること(複数の学習モジュールのそれぞれのモデルパラメータが、その複数の学習モジュールすべてのモデルパラメータの影響を受けること)が、複数の学習モジュールによるモデルパラメータの共有である。
【0184】
モデルパラメータ共有部121は、ステップS45において、学習モジュール30iのモデル記憶部33iに記憶された複数のモデルパラメータのすべてを対象に、共有処理を行い、その共有処理によって得られたモデルパラメータによって、モデル記憶部331ないし13Nの記憶内容を更新する。
【0185】
ステップS45の後、処理は、ステップS46に進み、図6の時系列シーケンス学習部11は、学習の終了条件が満たされているかどうかを判定する。
【0186】
ここで、ステップS46での学習の終了条件としては、例えば、学習の回数、つまり、ステップS44及びS45が繰り返された回数が、あらかじめ定められた所定の回数となったことや、あるいは、パターン学習モデルがモデル学習用データの予測値を生成することができる場合に、その予測値の予測誤差が所定値以下に収束したこと、モデルパラメータが収束したこと等を採用することができる。
【0187】
ステップS46において、学習の終了条件が満たされていないと判定された場合、処理は、ステップS44に戻り、以下、同様の処理が繰り返される。
【0188】
また、ステップS46において、学習の終了条件が満たされていると判定された場合、処理は、ステップS47に進み、モデルパラメータ出力部122は、モデル記憶部331ないし33Nに記憶されたモデルパラメータ#1ないし#Nを、例えば、その順に並べたモデルパラメータの系列を、モデルパラメータシーケンス生成部12(図1)に出力して、学習処理は終了する。
【0189】
なお、図7の時系列シーケンス学習部13が、図2のステップS13で行う第2階層の学習処理では、ステップS41で、時系列データ入力部51が受信するのが、時系列シーケンス学習部11から、モデルパラメータシーケンス生成部12を経由して供給されるモデルパラメータの系列である点と、ステップS47で、モデルパラメータを出力することが行われない(ステップS47の処理が行われない)点とを除けば、図9の学習処理と同様の処理が行われるため、説明を省略する。
【0190】
また、図6の時系列シーケンス学習部11において、追加学習を行う場合には、例えば、追加学習に用いる時系列データの数等に対して適切な数の学習モジュールを、時系列シーケンス学習部11に追加し、その追加した学習モジュールだけを対象として、学習処理を行えば良い。図7の時系列シーケンス学習部13でも同様である。
【0191】
このように、既に学習に用いた時系列データを再度用いて再学習を行うことなく、容易に、追加学習を行うことができる。
【0192】
図10は、パターン学習モデルとして、RNNを採用した場合の、図6の時系列シーケンス学習部11(図7の時系列シーケンス学習部13)の構成例を示す図である。
【0193】
なお、図10においては、時系列データ入力部21、学習モジュール30iの学習データ入力部31i及びモデル学習部32i、データ抽出部102、並びに、モデルパラメータ出力部122の図示を省略してある。
【0194】
モデル記憶部33iには、RNN(を定義するモデルパラメータ)が記憶されている。ここで、モデル記憶部33iに記憶されたRNNを、以下、適宜、RNN#iとも記載する。
【0195】
図10では、RNNは、入力層、隠れ層(中間層)、及び出力層の3つの層により構成されている。入力層、隠れ層、及び出力層は、それぞれ任意の数の、ニューロンに相当するユニットにより構成されている。
【0196】
RNNでは、入力層の一部のユニットである入力ユニットに、外部から入力データxtが入力(供給)される。ここで、入力データxtは、時刻tのデータを表す。
【0197】
入力層の、入力データxtが入力される入力ユニット以外の、残りのユニットは、コンテキストユニットであり、コンテキストユニットには、出力層の一部のユニットの出力が、内部状態を表すコンテキストとしてフィードバックされる。
【0198】
ここで、時刻tの入力データxtが入力層の入力ユニットに入力されるときに入力層のコンテキストユニットに入力される時刻tのコンテキストを、ctと記載する。
【0199】
隠れ層のユニットは、入力層に入力される入力データxtとコンテキストctを対象として、所定のウエイト(重み)を用いた重み付け加算を行い、その重み付け加算の結果を引数とする非線形関数の演算を行って、その演算結果を、出力層のユニットに出力する。
【0200】
出力層のユニットでは、隠れ層のユニットが出力するデータを対象として、隠れ層のユニットと同様の処理が行われる。そして、出力層の一部のユニットからは、上述したように、次の時刻t+1のコンテキストct+1が出力され、入力層にフィードバックされる。また、出力層の残りのユニットからは、入力データxtに対する出力データとして、例えば、その入力データxtの次の時刻t+1の入力データxt+1の予測値x*t+1が出力される。
【0201】
ここで、RNNでは、ユニットへの入力が重み付け加算されるが、この重み付け加算に用いられるウエイト(重み)が、RNNのモデルパラメータである。RNNのモデルパラメータとしてのウエイトには、入力ユニットから隠れ層のユニットへのウエイト、コンテキストユニットから隠れ層のユニットへウエイト、隠れ層のユニットから出力層のユニットへのウエイト等がある。
【0202】
パターン学習モデルとして、以上のようなRNNを採用した場合、モデルパラメータ共有部121には、RNNのモデルパラメータとしてのウエイトを、学習モジュール301ないし30Nに共有させるウエイトマトリクス共有部191が設けられる。
【0203】
ここで、RNNのモデルパラメータとしてのウエイトは、複数あるが、その複数のウエイトをコンポーネントとするマトリクスを、ウエイトマトリクスという。
【0204】
ウエイトマトリクス共有部191は、モデル記憶部331ないし33Nに記憶されたRNN#1ないしRNN#Nのすべての複数のモデルパラメータとしてのウエイトマトリクスを、学習モジュール301ないし30Nのそれぞれに共有させる。
【0205】
すなわち、RNN#iのウエイトマトリクスをwiと表すこととすると、ウエイトマトリクス共有部191は、ウエイトマトリクスwiを、N個の学習モジュール301ないし30Nそれぞれのウエイトマトリクスw1ないしwNのすべてに基づいて補正することで、ウエイトマトリクスwiに、ウエイトマトリクスw1ないしwNのすべてを影響させる共有処理を行う。
【0206】
具体的には、ウエイトマトリクス共有部191は、例えば、次式(1)に従い、RNN#iのウエイトマトリクスwiを補正する。
【0207】
【数1】

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

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

【0216】
ここで、式(3)において、βij'は、RNN#iのウエイトマトリクスwiに、RNN#j(j=1,2,・・・,N)のウエイトマトリクスwjを影響させる度合いを表す係数である。
【0217】
したがって、式(3)の右辺の第2項におけるサメーションΣβij'wjは、係数βij'を重みとした、RNN#1ないしRNN#Nのウエイトマトリクスw1ないしwNの重み付け平均値を表し、αi'は、その重み付け平均値Σβij'wjを、ウエイトマトリクスwiに影響させる度合いを表す係数である。
【0218】
係数αi'及びβij'としては、例えば、0.0より大で1.0より小の値を採用することができる。
【0219】
式(3)によれば、係数αi'が大であるほど、共有が弱くなり(ウエイトマトリクスwiが受ける重み付け平均値Σβij'wjの影響が小さくなり)、係数αi'が小であるほど、共有が強まる。
【0220】
なお、パターン学習モデルとして、RNNを採用する場合、RNNの学習は、例えば、BPTT(Back-Propagation Through Time)法に従って行われ、RNN#iが出力する出力データとしての入力データxt+1の予測値の、真値である入力データxt+1に対する予測誤差を小さくするウエイトマトリクスwiが求められる。
【0221】
図6の時系列シーケンス学習部11(及び、図7の時系列シーケンス学習部13)は、1つの学習モジュール30iが、1個のモデル学習データを学習するので、規模拡張性に優れる。そして、規模拡張性に優れた複数の学習モジュール301ないし30Nそれぞれにおいて、モデルパラメータを共有しながら、その複数の学習モジュール301ないし30Nそれぞれのモデルパラメータを更新する更新学習を行うことにより、1つの学習モジュール30iだけで行われる学習で得られる汎化特性が、複数の学習モジュール301ないし30Nの全体で得ることができ、その結果、規模拡張性があり、同時に、汎化特性を有するパターン学習モデルを得ることができる。
【0222】
すなわち、多くの時系列パターンを獲得(記憶)することができ、かつ、複数の時系列パターンの共通性を獲得することができる。さらに、複数の時系列パターンの共通性を獲得することで、その共通性に基づいて、未学習の時系列パターンの認識や生成を行うことが可能となる。
【0223】
また、図6の時系列シーケンス学習部11(及び、図7の時系列シーケンス学習部13)では、データ抽出部102が、ウインドウの位置をずらすことで、学習データとしての時系列データから、N個のモデル学習用データを抽出し、N個の学習モジュール301ないし30Nに分配する。そして、学習モジュール301ないし30Nそれぞれにおいて、データ抽出部102から分配されたモデル学習用データを用いて、モデルパラメータを更新する分節学習が行われる。
【0224】
その結果、N個のパターン学習モデルの全体において、学習データとしての時系列データに含まれる1以上の時系列パターンを獲得することができる。
【0225】
図11は、時系列シーケンス学習部11及び13で行われる分節学習を説明する図である。
【0226】
図11では、下位階層の時系列シーケンス学習部11は、複数のパターン学習モデルとして、6個のRNN#1-1,#1-2,#1-3,#1-4,#1-5,#1-6を有している。また、上位階層の時系列シーケンス学習部13は、複数のパターン学習モデルとして、3個のRNN#2-1,#2-2,#2-3を有している。
【0227】
そして、下位階層の時系列シーケンス学習部11では、外部からの時系列データから、時系列に、6つのモデル学習用データxtが抽出され、i番目のモデル学習用データxtを用いて、i番目のRNN#1-iの学習が行われる。これにより、RNN#1-iのモデルパラメータとして、i番目のモデル学習用データxtについて、時刻tのサンプルxtから、次の時刻t+1のサンプルxt+1を予測する関数xt+1=f1(xt)の係数となる、RNN#1-iのウエイトマトリクスwiが求められる。
【0228】
その後、下位階層の時系列シーケンス学習部11では、i番目のモデル学習用データxtを用いて学習が行われた、i番目のRNN#1-iのモデルパラメータとしてのウエイトマトリクスwiが、モデルパラメータシーケンス生成部12(図1)に出力される。
【0229】
モデルパラメータシーケンス生成部12は、例えば、時系列シーケンス学習部11からのウエイトマトリクスwiを時系列(ウエイトマトリクスwiを求めるのに用いたモデル学習用データxtの時間順)に並べた、ウエイトマトリクスwiの系列w1,w2,w3,w4,w5,w6を、上位階層の時系列シーケンス学習部13に供給する。
【0230】
上位階層の時系列シーケンス学習部13では、モデルパラメータシーケンス生成部12からのウエイトマトリクスwiの系列w1ないしw6から、時系列に、3つのモデル学習用データwが抽出され、i番目のモデル学習用データwを用いて、i番目のRNN#2-jの学習が行われる。これにより、RNN#2-jのモデルパラメータとして、i番目のモデル学習用データwの、時刻tのサンプルw(t)から、次の時刻t+1のサンプルw(t+1)を予測する関数w(t+1)=f2(w(t))の係数となる、RNN#2-jのウエイトマトリクスが求められる。
【0231】
以上のように、上位階層の時系列シーケンス学習部13では、その上位階層の時系列シーケンス学習部13の下位階層の時系列シーケンス学習部11が有するRNN#1-iを定義するウエイトマトリクスwiの時系列(ウエイトダイナミクス)を用いて、RNN#2-jの学習を行う。
【0232】
このように、上位階層のRNN#2-jの学習が、下位階層のRNN#1-iのウエイトマトリクスwiの系列を用いて行われるので、上位階層の時系列シーケンス学習部13では、ウエイトマトリクスwiによって表現される、下位階層のRNN#1-iが獲得した時系列パターンどうしの距離構造を反映した学習を行うことができる。
【0233】
さらに、上位階層のRNN#2-jの学習が、下位階層のRNN#1-iのウエイトマトリクスwiの系列を用いて行われるので、追加学習は、学習モジュール、つまり、パターン学習モデルとしてのRNNの追加によって、既に学習済みのRNNの再学習をせずに行うことができる。
【0234】
すなわち、図12は、時系列シーケンス学習部11及び13で行われる追加学習を説明する図である。
【0235】
図12では、下位階層の時系列シーケンス学習部11は、図11の6個のRNN#1-1ないし#1-6に、2個のRNN#1-7及び#1-8が新たに追加され、合計で、8個のRNN#1-1ないし1-8を有している。また、上位階層の時系列シーケンス学習部13は、図11の3個のRNN#2-1ないし#2-3に、1個のRNN#2-4が新たに追加され、合計で、4個のRNN#2-1ないし#2-4を有している。
【0236】
そして、下位階層の時系列シーケンス学習部11では、外部から、新たな時系列データが与えられると、その新たな時系列データから、時系列に、2つのモデル学習用データxtが抽出され、i(i=1,2)番目のモデル学習用データxtを用いて、新たに追加された2個のRNN#1-7及び#1-8のうちの、i番目のRNN#1-(i+6)の学習(追加学習)が行われる。これにより、新たに追加されたRNN#1-(i+6)のモデルパラメータとして、新たな時系列データから抽出されたi番目のモデル学習用データxtの、時刻tのサンプルxtから、次の時刻t+1のサンプルxt+1を予測する関数xt+1=f1(xt)の係数となる、RNN#1-(i+6)のウエイトマトリクスwi+6が求められる。
【0237】
その後、新たに追加された2個のRNN#1-7及び#1-8のウエイトマトリクスの系列w7,w8が、下位階層の時系列シーケンス学習部11から、モデルパラメータシーケンス生成部12(図1)を経由して、上位階層の時系列シーケンス学習部13に供給される。
【0238】
上位階層の時系列シーケンス学習部13では、モデルパラメータシーケンス生成部12からのウエイトマトリクスの系列w7,w8から、1つのモデル学習用データwが抽出され、その1つのモデル学習用データwを用いて、すなわち、ウエイトマトリクスの系列w7,w8を、そのまま、モデル学習用データwとして用いて、新たに追加された1個のRNN#2-4の学習が行われる。
【0239】
以上のように、上位階層のRNN#2-jの学習が、下位階層のRNN#1-iのウエイトマトリクスwiの系列を用いて行われ、この下位階層のRNN#1-iのウエイトマトリクスwiの系列の次元は、下位階層のRNNの数に依存せず、したがって、RNNが追加されても変化しないので、下位階層の時系列シーケンス学習部11では、学習済みのRNN#1-1ないし#1-6の再学習をする必要はなく、上位階層の時系列シーケンス学習部13でも、学習済みのRNN#2-1ないし#2-3の再学習をする必要はない。
【0240】
なお、上述の場合には、新たに追加された2個のRNN#1-7及び#1-8のウエイトマトリクスの系列w7,w8を、下位階層の時系列シーケンス学習部11から、モデルパラメータシーケンス生成部12(図1)を経由して、上位階層の時系列シーケンス学習部13に供給し、上位階層の時系列シーケンス学習部13において、モデルパラメータシーケンス生成部12からのウエイトマトリクスの系列w7,w8から、モデル学習用データwを抽出し、そのモデル学習用データwを用いて、新たに追加された1個のRNN#2-4の学習を行うようにしたが、下位階層の時系列シーケンス学習部11から上位階層の時系列シーケンス学習部13に対しては、新たに追加された2個のRNN#1-7及び#1-8のウエイトマトリクスの系列w7,w8ではなく、すべてのRNN#1-1及び#1-8のウエイトマトリクスの系列w1ないしw8を、モデルパラメータシーケンス生成部12(図1)を経由して供給することができる。
【0241】
この場合、上位階層の時系列シーケンス学習部13では、学習済みの3個のRNN#2-1ないし#2-3を含むすべての4個のRNN#2-1ないし#2-4の学習を、モデルパラメータシーケンス生成部12からのウエイトマトリクスの時系列w1ないしw8を用いて行うこと(4個のRNN#2-1ないし#2-4のうちの、学習済みの3個のRNN#2-1ないし#2-3については、再学習すること)ができる。
【0242】
[学習装置の他の実施の形態]
【0243】
図1では、学習装置の階層構造を、2階層の階層構造としたが、学習装置の階層構造は、3階層以上の階層構造とすることができる。
【0244】
すなわち、図13は、本発明の情報処理装置を適用した学習装置の他の一実施の形態の構成例を示すブロック図である。
【0245】
なお、図中、図1の場合と対応する部分については、同一の符号を付してあり、以下では、その説明は、適宜省略する。
【0246】
図13の学習装置では、パターン学習モデルの学習を行う複数の学習モジュールを有する複数の学習手段としての3つの時系列シーケンス学習部11,13、及び14が、3階層の階層構造を構成するように接続されている。
【0247】
すなわち、図13では、最下位階層である第1階層の時系列シーケンス学習部11と、最下位階層から2番目の階層である第2階層の時系列シーケンス学習部14とが、上位階層と下位階層との間のインタフェースとなるモデルパラメータシーケンス生成部12を介して接続されている。
【0248】
さらに、図13では、第2階層の時系列シーケンス学習部14と、最上位階層である第3階層の時系列シーケンス学習部13とが、上位階層と下位階層との間のインタフェースとなるモデルパラメータシーケンス生成部15を介して接続されている。
【0249】
第2階層の時系列シーケンス学習部14は、最下位階層である第1階層の時系列シーケンス学習部11と同様に構成される。
【0250】
そして、時系列シーケンス学習部14は、モデルパラメータシーケンス生成部12から供給されるモデルパラメータの系列を用いて、パターン学習モデルの学習を行い、学習後のパターン学習モデルのモデルパラメータを、モデルパラメータシーケンス生成部15に供給する。
【0251】
モデルパラメータシーケンス生成部15は、モデルパラメータシーケンス生成部12と同様に構成される。モデルパラメータシーケンス生成部15は、第2階層の時系列シーケンス学習部14から供給されるモデルパラメータから、最上位階層である第3階層に与える時系列データとするモデルパラメータの系列(時系列シーケンス学習部14のリソースダイナミクス)を生成し、第3階層の時系列シーケンス学習部13に供給する。
【0252】
図13は、図12の学習装置の処理を説明するフローチャートである。
【0253】
第1階層の時系列シーケンス学習部11は、外部から、時系列データが供給されるのを待って、ステップS61において、外部からの時系列データを用いて、パターン学習モデルを学習する学習処理(第1階層の学習処理)を行う。
【0254】
さらに、第1階層の時系列シーケンス学習部11は、学習後のパターン学習モデルのモデルパラメータを、モデルパラメータシーケンス生成部12に供給して、処理は、ステップS61からステップS62に進む。
【0255】
ステップS62では、モデルパラメータシーケンス生成部12は、時系列シーケンス学習部11からのモデルパラメータの系列を生成し、第2階層の時系列シーケンス学習部14に供給して、処理は、ステップS63に進む。
【0256】
ステップS63では、第2階層の時系列シーケンス学習部14が、モデルパラメータシーケンス生成部12からのモデルパラメータの系列、つまり、下位階層(図12では、第1階層)の時系列シーケンス学習部11が有するパターン学習モデルのモデルパラメータの系列を用いて、パターン学習モデルを学習する学習処理(第2階層の学習処理)を行う。
【0257】
さらに、第2階層の時系列シーケンス学習部14は、学習後のパターン学習モデルのモデルパラメータを、モデルパラメータシーケンス生成部15に供給して、処理は、ステップS63からステップS64に進む。
【0258】
ステップS64では、モデルパラメータシーケンス生成部15は、時系列シーケンス学習部14からのモデルパラメータの系列を生成し、最上位階層である第3階層の時系列シーケンス学習部13に供給して、処理は、ステップS65に進む。
【0259】
ステップS65では、第3階層の時系列シーケンス学習部13が、モデルパラメータシーケンス生成部15からのモデルパラメータの系列、つまり、下位階層(図12では、第2階層)の時系列シーケンス学習部14が有するパターン学習モデルのモデルパラメータの系列を用いて、パターン学習モデルを学習する学習処理(第3階層の学習処理)を行い、処理は終了する。
【0260】
[予測装置の一実施の形態]
【0261】
図15は、本発明の情報処理装置を適用した予測装置の一実施の形態の構成例を示すブロック図である。
【0262】
図15において、予測装置は、時系列シーケンス予測部201、モデルパラメータシーケンス生成部202、及び、時系列シーケンス予測部203から構成される。
【0263】
図15の予測装置では、時系列パターンを学習するパターン学習モデルを用いて、時系列データを予測する複数の予測モジュールを有する複数の予測手段としての2つの時系列シーケンス予測部201及び203が、2階層の階層構造を構成するように接続されている。
【0264】
すなわち、図15では、最下位階層である第1階層の時系列シーケンス予測部201と、最上位階層である第2階層の時系列シーケンス予測部203とが、上位階層と下位階層との間のインタフェースとなるモデルパラメータシーケンス生成部202を介して接続されている。
【0265】
最下位階層である第1階層の時系列シーケンス予測部201には、外部から、図15の予測装置での予測に用いられる時系列データが供給される。
【0266】
時系列シーケンス予測部201は、パターン学習モデルを用いた予測を行う複数の予測モジュールを有する。時系列シーケンス予測部201の予測モジュールは、外部からの時系列データを、パターン学習モデルに与えて、時系列データの予測(又は認識)を行う。
【0267】
そして、時系列シーケンス予測部201は、予測モジュールが予測に用いたパターン学習モデルを定義するモデルパラメータを、モデルパラメータシーケンス生成部202に供給する。
【0268】
モデルパラメータシーケンス生成部202は、第1階層の時系列シーケンス予測部201から供給されるモデルパラメータから、上位階層である第2階層に与えるモデルパラメータの系列(時系列シーケンス予測部201のリソースダイナミクス)を生成し、第2階層の時系列シーケンス予測部203に供給する。
【0269】
すなわち、モデルパラメータシーケンス生成部202は、時系列シーケンス予測部201から供給されるモデルパラメータを一時記憶する。そして、モデルパラメータシーケンス生成部202は、外部からの時系列データに対して、時系列シーケンス予測部201から供給されるモデルパラメータのすべてを記憶すると、そのモデルパラメータの系列を、時系列シーケンス予測部203に供給する。
【0270】
最上位階層である第2階層の時系列シーケンス予測部203は、時系列シーケンス予測部201と同様に、パターン学習モデルを用いて、時系列データを予測する複数の予測モジュールを有する。
【0271】
そして、時系列シーケンス予測部203の予測モジュールは、モデルパラメータシーケンス生成部202からのモデルパラメータの系列、すなわち、下位階層(時系列シーケンス予測部203の階層の直下の階層)の時系列シーケンス予測部201が有するパターン学習モデルを定義するモデルパラメータの系列を用いて、時系列データとしてのモデルパラメータの予測を行う。
【0272】
図16は、図15の予測装置の処理を説明するフローチャートである。
【0273】
第1階層の時系列シーケンス予測部201は、外部から、時系列データが供給されるのを待って、ステップS101において、外部からの時系列データを、パターン学習モデルに与えて、その時系列データを予測する予測処理(第1階層の予測処理)を行う。
【0274】
さらに、第1階層の時系列シーケンス予測部201は、予測に用いたパターン学習モデルのモデルパラメータを、モデルパラメータシーケンス生成部202に供給して、処理は、ステップS101からステップS102に進む。
【0275】
ステップS102では、モデルパラメータシーケンス生成部202は、時系列シーケンス予測部201からのモデルパラメータの系列を生成し、第2階層の時系列シーケンス予測部203に供給して、処理は、ステップS103に進む。
【0276】
ステップS103では、第2階層の時系列シーケンス予測部203が、モデルパラメータシーケンス生成部202からのモデルパラメータの系列、つまり、下位階層(図15では、第1階層)の時系列シーケンス予測部201が予測に用いたパターン学習モデルのモデルパラメータの系列を用いて、そのモデルパラメータを予測する予測処理(第2階層の予測処理)を行い、処理は終了する。
【0277】
[時系列シーケンス予測部201の構成例]
【0278】
図17は、図15の最下位階層である第1階層(最上位階層以外の階層)の時系列シーケンス予測部201の構成例を示すブロック図である。
【0279】
図17において、時系列シーケンス予測部201は、時系列データ入力部211、N個の予測モジュール2201ないし220N、担当モジュール決定部231、予測シーケンス出力部232、及び、モデルパラメータ出力部233から構成される。
【0280】
時系列データ入力部211には、外部から、時系列データが供給される。時系列データ入力部211は、外部からの時系列データを受信し、N個の予測モジュール2201ないし220Nに供給する。
【0281】
予測モジュール220iは、モデル記憶部221i、予測部222i、予測値出力部223i、及び、予測誤差計算部224iから構成され、時系列データ入力部211からの時系列データに対して、その時系列データの予測値と、その予測値の予測誤差とを求める。
【0282】
すなわち、モデル記憶部221iは、図3又は図6の時系列シーケンス学習部11で学習が行われた後の、モデル記憶部33iに記憶されたパターン学習モデルとしての、例えば、RNN#i(のウエイトマトリクス)を記憶している。
【0283】
予測部222iには、時系列データ入力部211からの時系列データが供給される。予測部222iは、時系列データ入力部211からの時系列データを入力データとして、モデル記憶部221iに記憶されたRNN#iに与えることで、その入力データの次の時刻の入力データの予測値である出力データを求め、予測値出力部223i、及び、予測誤差計算部224iに供給する。
【0284】
予測値出力部223iは、予測部222iからの予測値(以下、予測値#iともいう)を受信し、予測シーケンス出力部232に供給する。
【0285】
予測誤差計算部224iは、予測部222iからの予測値#iの予測誤差を求め、担当モジュール決定部231に供給する。すなわち、予測誤差計算部224iは、予測部222iからの予測値#iと、時系列データ入力部211からの時系列データ(のうちの、予測値#iの真値)との差分をとることで、予測値#iの予測誤差を求めて、担当モジュール決定部231に供給する。
【0286】
担当モジュール決定部231は、予測誤差計算部2241ないし224Nそれぞれからの予測誤差に基づき、時系列データ入力部211からの時系列データの認識結果となる、その時系列データの予測を担当させることが適切な担当モジュールとなる予測モジュール220iを決定する。
【0287】
すなわち、担当モジュール決定部231は、予測誤差計算部2241ないし224Nそれぞれからの予測誤差に基づき、予測モジュール2201ないし30Nのうちの、予測誤差が最小の予測値が得られる予測モジュール220iを、担当モジュールに決定する。
【0288】
そして、担当モジュール決定部231は、担当モジュールを表す情報を、予測シーケンス出力部232と、モデルパラメータ出力部233とに供給する。
【0289】
ここで、担当モジュール決定部231では、例えば、1時刻ごと(時系列データ入力部211からの時系列データの1サンプルごと)に、担当モジュールを決定することができる。
【0290】
また、担当モジュール決定部231では、例えば、1時刻を越える所定の時間ごと(時系列データ入力部211からの時系列データの複数サンプルごと)に、担当モジュールを決定することができる。所定の時間ごとに、担当モジュールを決定する場合には、担当モジュール決定部231では、予測モジュール2201ないし220Nのうちの、例えば、予測誤差計算部224iからの、所定の時間分の予測誤差の総和が最小の予測モジュール220iが、担当モジュールに決定される。
【0291】
予測シーケンス出力部232は、担当モジュール決定部231からの情報に基づき、担当モジュールとなった予測モジュール220iを認識する。さらに、予測シーケンス出力部232は、担当モジュールとなった予測モジュール220iの予測値出力部2231から供給される予測値#iを、時系列データ入力部211からの時系列データの予測値として出力する。
【0292】
ここで、時系列データ入力部211からの時系列データが、例えば、上述したような、ロボットのアクションデータとセンサデータをコンポーネントとするベクトル(以下、センサアクションデータともいう)である場合には、予測シーケンス出力部232が出力する時系列データの予測値、すなわち、センサアクションデータの予測値は、ロボットに供給される。ロボットは、そのセンサアクションデータの予測値のうちの、アクションデータの予測値に従ったアクションを行う。
【0293】
モデルパラメータ出力部233は、担当モジュール決定部231からの情報に基づき、担当モジュールとなった予測モジュール220iを認識する。さらに、モデルパラメータ出力部233は、担当モジュールとなった予測モジュール220iのモデル記憶部221iに記憶されたモデルパラメータとしての、例えば、ウエイトマトリクスを読み出し、モデルパラメータシーケンス生成部202(図15)に供給する。
【0294】
[時系列シーケンス予測部203の構成例]
【0295】
図18は、図15の最上位階層である第2階層の時系列シーケンス予測部203の構成例を示すブロック図である。
【0296】
図18において、時系列シーケンス予測部203は、時系列データ入力部241、複数であるN個の予測モジュール2501ないし250N、及び、担当モジュール決定部261から構成される。
【0297】
ここで、時系列シーケンス予測部203は、図17の予測シーケンス出力部232、及び、モデルパラメータ出力部233に相当するブロックが設けられていないことを除いて、図17の時系列シーケンス予測部201と同様に構成される。
【0298】
時系列データ入力部241には、第1階層の時系列シーケンス予測部201(図15)から、モデルパラメータシーケンス生成部202を経由して、モデルパラメータの系列が、時系列データとして供給される。
【0299】
時系列データ入力部241は、第1階層の時系列シーケンス予測部201から、モデルパラメータシーケンス生成部202を経由して供給されるモデルパラメータの系列を受信し、N個の予測モジュール2501ないし250Nに供給する。
【0300】
予測モジュール250iは、モデル記憶部251i、予測部252i、及び、予測誤差計算部254iから構成され、時系列データ入力部211からの時系列データ(モデルパラメータの系列)に対して、その時系列データの予測値、さらには、その予測値の予測誤差とを求める。
【0301】
すなわち、モデル記憶部251iは、図4又は図7の時系列シーケンス学習部13で学習が行われた後の、モデル記憶部33iに記憶されたパターン学習モデルとしての、例えば、RNN#iを記憶している。
【0302】
予測部252iには、時系列データ入力部241からの時系列データが供給される。予測部252iは、時系列データ入力部241からの時系列データを入力データとして、モデル記憶部251iに記憶されたRNN#iに与えることで、その入力データの次の時刻の入力データの予測値#iである出力データを求め、予測誤差計算部254iに供給する。
【0303】
予測誤差計算部254iは、予測部252iからの予測値#iの予測誤差を求め、担当モジュール決定部261に供給する。すなわち、予測誤差計算部254iは、予測部252iからの予測値#iと、時系列データ入力部241からの時系列データ(のうちの、予測値#iの真値)との差分をとることで、予測値#iの予測誤差を求めて、担当モジュール決定部261に供給する。
【0304】
担当モジュール決定部261は、予測誤差計算部2541ないし254Nそれぞれからの予測誤差に基づき、時系列データ入力部241からの時系列データの認識結果となる、その時系列データの予測を担当させることが適切な担当モジュールとなる予測モジュール250iを決定する。
【0305】
すなわち、担当モジュール決定部261は、予測誤差計算部2541ないし254Nそれぞれからの予測誤差に基づき、予測モジュール2501ないし30Nのうちの、予測誤差が最小の予測値が得られる予測モジュール250iを、担当モジュールに決定する。
【0306】
そして、担当モジュール決定部261は、担当モジュールを表す情報を、必要に応じて、時系列データ入力部241からの時系列データの認識結果として出力する。
【0307】
ここで、担当モジュール決定部261では、図17の担当モジュール決定部231と同様に、例えば、1時刻ごとや、所定の時間ごとに、担当モジュールを決定することができる。
【0308】
[予測処理]
【0309】
図19は、図17の時系列シーケンス予測部201が、図16のステップS101で行う第1階層の予測処理を説明するフローチャートである。
【0310】
時系列データ入力部211は、外部から時系列データが供給されるのを待って、ステップS111において、その時系列データを受信し、N個の予測モジュール2201ないし220Nに供給して、処理は、ステップS112に進む。
【0311】
ステップS112では、各予測モジュール220iにおいて、予測部222iが、モデル記憶部221iから、パターン学習モデルのモデルパラメータとしての、例えば、RNN#iのウエイトマトリクスを読み込み、処理は、ステップS113に進む。
【0312】
ステップS113では、各予測モジュール220iにおいて、予測部222iが、ステップS112で読み込んだウエイトマトリクスで定義されるRNN#iに対して、時系列データ入力部211から供給される時系列データを入力データとして与えることで、その入力データの次の時刻の入力データの予測値#iである出力データを求め、予測値出力部223i、及び、予測誤差計算部224iに供給する。
【0313】
そして、予測値出力部223iが、予測部222iからの予測値#iを受信し、予測シーケンス出力部232に供給して、処理は、ステップS113からステップS114に進む。
【0314】
ステップS114では、予測モジュール2201ないし220Nが、予測値#1ないし#Nの予測誤差を求め、担当モジュール決定部231に供給して、処理は、ステップS114からS115に進む。
【0315】
ステップS115では、担当モジュール決定部231が、予測誤差計算部2241ないし224Nそれぞれからの、予測値#1ないし#Nの予測誤差に基づき、例えば、1時刻ごとに、予測誤差が最小の予測値が得られた予測モジュール220iを担当モジュールに決定する。さらに、担当モジュール決定部231は、担当モジュールの情報を、予測シーケンス出力部232、及び、モデルパラメータ出力部233に供給して、処理は、ステップS115からステップS116に進む。
【0316】
ステップS116では、モデルパラメータ出力部233は、担当モジュール決定部231からの情報に基づき、各時刻に担当モジュールとなった予測モジュール220iのモデル記憶部221iに記憶されたモデルパラメータとしての、例えば、RNN#iのウエイトマトリクスを読み出し、モデルパラメータシーケンス生成部202(図15)に供給する。
【0317】
そして、処理は、ステップS116からステップステップS117に進み、予測シーケンス出力部232が、担当モジュール決定部231からの情報に基づき、各時刻に担当モジュールとなった予測モジュール220iの予測値出力部2231から供給される予測値#iを、時系列データ入力部211からの時系列データの予測値として出力して、予測処理は終了する。
【0318】
なお、図10の時系列シーケンス予測部203が、図6のステップS103で行う第2階層の予測処理では、ステップS111で、時系列データ入力部241が受信するのが、時系列シーケンス予測部201から、モデルパラメータシーケンス生成部202を経由して供給されるモデルパラメータの系列である点、ステップS116で、モデルパラメータを出力することが行われない(ステップS116の処理が行われない)点、及び、ステップS117で、予測値を出力することが行われない(ステップS117の処理が行われない)点を除けば、図19の予測処理と同様の処理が行われるため、説明を省略する。
【0319】
[予測装置の他の実施の形態]
【0320】
図15では、予測装置の階層構造を、2階層の階層構造としたが、予測装置の階層構造は、3階層以上の階層構造とすることができる。
【0321】
すなわち、図20は、本発明の情報処理装置を適用した予測装置の他の一実施の形態の構成例を示すブロック図である。
【0322】
なお、図中、図15の場合と対応する部分については、同一の符号を付してあり、以下では、その説明は、適宜省略する。
【0323】
図20の予測装置では、パターン学習モデルを用いた予測を行う複数の予測モジュールを有する複数の予測手段としての3つの時系列シーケンス予測部201,203、及び204が、3階層の階層構造を構成するように接続されている。
【0324】
すなわち、図20では、最下位階層である第1階層の時系列シーケンス予測部201と、最下位階層から2番目の階層である第2階層の時系列シーケンス予測部204とが、上位階層と下位階層との間のインタフェースとなるモデルパラメータシーケンス生成部202を介して接続されている。
【0325】
さらに、図20では、第2階層の時系列シーケンス予測部204と、最上位階層である第3階層の時系列シーケンス予測部203とが、上位階層と下位階層との間のインタフェースとなるモデルパラメータシーケンス生成部205を介して接続されている。
【0326】
第2階層の時系列シーケンス予測部204は、最下位階層である第1階層の時系列シーケンス予測部201と同様に構成される。
【0327】
そして、時系列シーケンス予測部204は、モデルパラメータシーケンス生成部202から供給されるモデルパラメータの系列を、時系列データとして、パターン学習モデルに与えて、そのモデルパラメータの予測を行い、その予測に用いたパターン学習モデル(担当モジュールとなっている予測モジュールが有するパターン学習モデル)のモデルパラメータを、モデルパラメータシーケンス生成部205に供給する。
【0328】
モデルパラメータシーケンス生成部205は、モデルパラメータシーケンス生成部202と同様に構成される。モデルパラメータシーケンス生成部205は、第2階層の時系列シーケンス予測部204から供給されるモデルパラメータから、最上位階層である第3階層に与えるモデルパラメータの系列(時系列シーケンス予測部204のリソースダイナミクス)を生成し、第3階層の時系列シーケンス予測部203に供給する。
【0329】
図21は、図20の予測装置の処理を説明するフローチャートである。
【0330】
第1階層の時系列シーケンス予測部201は、外部から、時系列データが供給されるのを待って、ステップS131において、外部からの時系列データを、パターン学習モデルに与えて、その時系列データを予測する予測処理(第1階層の予測処理)を行う。
【0331】
さらに、第1階層の時系列シーケンス予測部201は、予測に用いたパターン学習モデルのモデルパラメータを、モデルパラメータシーケンス生成部202に供給して、処理は、ステップS131からステップS132に進む。
【0332】
ステップS132では、モデルパラメータシーケンス生成部202は、時系列シーケンス予測部201からのモデルパラメータの系列を生成し、第2階層の時系列シーケンス予測部204に供給して、処理は、ステップS133に進む。
【0333】
ステップS133では、第2階層の時系列シーケンス予測部204が、モデルパラメータシーケンス生成部202からのモデルパラメータの系列、つまり、下位階層(図20では、第1階層)の時系列シーケンス予測部201が予測に用いたパターン学習モデルのモデルパラメータの系列を用いて、そのモデルパラメータを予測する予測処理(第2階層の予測処理)を行う。
【0334】
さらに、第2階層の時系列シーケンス予測部204は、予測に用いたパターン学習モデルのモデルパラメータを、モデルパラメータシーケンス生成部205に供給して、処理は、ステップS133からステップS134に進む。
【0335】
ステップS134では、モデルパラメータシーケンス生成部205は、時系列シーケンス予測部204からのモデルパラメータの系列を生成し、最上位階層である第3階層の時系列シーケンス予測部203に供給して、処理は、ステップS135に進む。
【0336】
ステップS135では、第3階層の時系列シーケンス予測部203が、モデルパラメータシーケンス生成部205からのモデルパラメータの系列、つまり、下位階層(図20では、第2階層)の時系列シーケンス予測部204が予測に用いたパターン学習モデルのモデルパラメータの系列を用いて、そのモデルパラメータを予測する予測処理(第3階層の予測処理)を行い、処理は終了する。
【0337】
[シミュレーション結果]
【0338】
次に、本件発明者が、図1の学習装置、及び、図15の予測装置について行ったシミュレーションについて説明する。
【0339】
シミュレーションとしては、自律的に移動する移動ロボットを、所定の環境(移動環境)の中を移動させるシミュレーションを行った。
【0340】
図22は、移動ロボットが移動する移動環境の概要を説明する図である。
【0341】
移動環境としては、光源が設置され、四方が壁で囲まれた2次元平面を採用した。移動ロボットは、移動環境を自由に移動することができるが、壁をすり抜けて移動することはできない。なお、移動環境には、四方を囲む壁の他に、移動環境の内部に、障害物となる壁が存在する。
【0342】
また、移動ロボットには、移動ロボットから周囲の8方向それぞれについて、壁(移動環境を囲む壁と、移動環境内の障害物としての壁との両方を含む)までの距離をセンシングする距離センサ、及び、光の強度をセンシングする光センサを搭載した。
【0343】
また、移動ロボットは、水平方向(x方向)の移動量mxと、垂直方向(y方向)の移動量myとを表すベクトルである移動ベクトル(mx,my)を、アクションデータとして与えると、その移動ベクトル(mx,my)だけ移動する。
【0344】
シミュレーションでは、以上のような移動ロボットを採用し、移動ロボットに与えるセンサアクションデータ、及び、移動ロボットから観測されるセンサアクションデータとして、アクションデータとしての移動ベクトル(mx,my)、並びに、センサデータとしての、距離センサが出力する、8方向それぞれについての距離d1,d2,d3,d4,d5,d6,d7,d8、及び、光センサが出力する、8方向それぞれについての光の強度l1,l2,l3,l4,l5,l6,l7,l8をコンポーネントとする18次元のベクトル(mx,my,d1,d2,d3,d4,d5,d6,d7,d8,l1,l2,l3,l4,l5,l6,l7,l8)を採用した。
【0345】
なお、センサアクションデータは、移動ロボットが自律的に移動した場合も、人が手動で、移動ロボットを移動させた場合も、移動ロボットから観測することができる。
【0346】
図23は、シミュレーションで採用した移動環境を示す平面図である。
【0347】
移動環境は、四方が壁で囲まれた長方形の2次元平面であり、移動環境内には、障害物としての2つの壁が存在する。2つの壁は、移動環境の下部に、移動ロボットの水平方向の移動を妨げるように設けられている。なお、2つの壁は、長方形の移動環境を2等分する垂直方向の直線に対して、線対称となるように、左側と右側とに設けられている。
【0348】
さらに、移動環境内には、移動環境の下部の、長方形の移動環境を2等分する垂直方向の直線(以下、単に、垂直方向直線ともいう)上に、1つの光源が設けられている。
【0349】
したがって、移動環境は、垂直方向直線に対して、線対称になっており、移動環境のある位置と、その位置と垂直方向直線に対して線対称の位置とでは、同一のセンサデータが得られる。
【0350】
図24は、図1の学習装置に与える、学習データとなる時系列データとしての、移動ロボットの、移動環境の移動の軌跡(行動シーケンス)を示す図である。
【0351】
なお、図1の学習装置に与えられる学習データは、図24の軌跡そのものではなく、図24の軌跡に沿って移動ロボットを移動させた場合に、移動ロボットにおいて観測されるセンサアクションデータの時系列である。
【0352】
図24の軌跡(行動シーケンス)は、移動環境内を、壁を避けながら、円を描くように移動する反射行動が行われる場合に、移動環境内に描かれる軌跡であり、学習装置では、そのような反射行動が学習される。
【0353】
シミュレーションでは、3000サンプル(ステップ)の学習データ(3000時刻分の学習データ)を用い、最下位階層である第1階層の複数のパターン学習モデルとしての100個のRNNの学習を、分節学習によって行った。
【0354】
図25は、最下位階層である第1階層の100個のRNNを、そのRNNのウエイトマトリクスを用い、k-means法によって、10個のクラスタ(カテゴリ)にクラスタリングした、その10個のクラスタを示す図である。
【0355】
なお、図25において、"C"と数字#kとでなる文字列C#kは、10個のクラスタのうちの、k番目のクラスタを表す。さらに、クラスタを表す文字列C#kの右側のかっこ内の数字は、クラスタC#kに属するRNNのウエイトマトリクスの分散に相当する値である。
【0356】
また、図25では、クラスタC#kを、そのクラスタC#kに属するRNNが学習した、移動環境中の軌跡(上述したように、学習するのは、軌跡そのものではなく、その軌跡に沿って移動ロボットを移動させた場合に、移動ロボットにおいて観測されるセンサアクションデータの時系列)によって表している。
【0357】
さらに、図25において、クラスタC#kとしての軌跡中に付してある3桁の数字は、その軌跡を学習(獲得)したRNNを識別するモデルIDである。
【0358】
図25によれば、最下位階層である第1階層の100個のRNNは、基本的に、移動環境中の、ある特定の領域内の軌跡を学習したRNNごとにクラスタリングされることを確認することができる。
【0359】
したがって、移動ロボットで観測されるセンサアクションデータを学習後のRNNの入力として、最下位階層である第1階層の100個のRNNの中から、予測誤差が最小になる予測値が得られるRNN(以下、勝者(winner)ともいう)を特定することによって、移動ロボットが存在する移動環境内の位置を同定することができる。
【0360】
なお、図25において、カテゴリC7には、移動環境中の左側の壁の左側の領域内の軌跡を学習したRNNと、右側の壁の右側の領域内の軌跡を学習したRNNとの両方がクラスタリングされている。これは、移動環境中の左側の壁の左側の領域と、右側の壁の右側の領域とでは、局所的には、同様のセンサアクションデータの時系列が観測されることが原因であると考えられる。
【0361】
したがって、最下位階層である第1階層の100個のRNNのうちの、カテゴリC7に属するRNNが勝者となる場合には、その、最下位階層である第1階層の勝者だけからでは、移動環境中の左側の壁の左側の領域と、右側の壁の右側の領域とのうちの、いずれの領域に、移動ロボットが存在するのかを同定することが困難となる。
【0362】
シミュレーションでは、最上位階層である第2階層の複数のパターン学習モデルとして、32個のRNNを用意し、その32個のRNNの分節学習を、最下位階層である第1階層の100個のRNNのウエイトマトリクスの時系列を用いて行った。
【0363】
図26ないし図28は、最下位階層である第1階層の100個のRNN、及び、最上位階層である第2階層の32個のRNNの学習後の予測処理において、勝者となるRNN(担当モジュールとなる予測モジュールが有するRNN)が学習した、移動環境中の軌跡(上述したように、学習するのは、軌跡そのものではなく、その軌跡に沿って移動ロボットを移動させた場合に、移動ロボットにおいて観測されるセンサアクションデータの時系列)を示す図である。
【0364】
すなわち、図26は、移動ロボットが、移動環境内の光源の近くに位置する場合に勝者となるRNNが学習した軌跡を示している。
【0365】
図26Aは、移動ロボットが存在する移動環境中の位置を示している。図26Aでは、移動ロボットは、移動環境内の光源の近くに位置する。なお、図26Aにおいて(図27及び図28でも同様)、点線の円は、移動ロボットに搭載された距離センサと、光センサとがセンシングを行うことができる範囲を表す。
【0366】
図26Bは、移動ロボットが、図26Aの位置を移動している場合に、最下位階層である第1階層の100個のRNNの中で、勝者となるRNNが学習した軌跡と、そのRNNと同一のクラスタにクラスタリングされるRNNが学習した軌跡とを示している。
【0367】
図26Cは、移動ロボットが、図26Aの位置を移動している場合に、最上位階層である第2階層の32個のRNNの中で、勝者となるRNNが学習した軌跡を示している。
【0368】
ここで、最上位階層である第2階層のRNNは、移動環境中の軌跡を、いわば直接的に学習するのではなく、最下位階層である第1階層のRNNが学習した軌跡を、そのRNNのモデルパラメータの学習を通じて、いわば間接的に学習する。最上位階層である第2階層のRNNが学習した軌跡とは、そのような間接的に学習がされた軌跡である。
【0369】
図26によれば、移動ロボットが、移動環境内の光源の近くに位置する場合に、その位置付近の軌跡を学習したRNNが、最下位階層である第1階層、及び、最上位階層である第2階層のいずれにおいても、勝者になっていることを確認することができる。
【0370】
図27は、移動ロボットが、移動環境内の左側の壁の左側に位置する場合に勝者となるRNNが学習した軌跡を示している。
【0371】
図27Aは、移動ロボットが存在する移動環境中の位置を示している。図27Aでは、移動ロボットは、移動環境内の左側の壁の左側に位置する。
【0372】
図27Bは、移動ロボットが、図27Aの位置を移動している場合に、最下位階層である第1階層の100個のRNNの中で、勝者となるRNNが学習した軌跡と、そのRNNと同一のクラスタにクラスタリングされるRNNが学習した軌跡とを示している。
【0373】
図27Cは、移動ロボットが、図27Aの位置を移動している場合に、最上位階層である第2階層の32個のRNNの中で、勝者となるRNNが学習した軌跡を示している。
【0374】
図27Bによれば、移動ロボットが、移動環境内の左側の壁の左側に位置する場合に、最下位階層である第1階層では、移動ロボットが存在する位置付近の軌跡を学習したRNNが勝者になることもあるし、移動ロボットが存在する位置ではない、移動環境内の右側の壁の右側に位置付近の軌跡を学習したRNNが勝者になることもあって、移動ロボットの位置の同定が誤りやすいことを確認することができる。
【0375】
一方、図27Cによれば、移動ロボットが、移動環境内の左側の壁の左側に位置する場合に、最上位階層である第2階層では、移動ロボットが存在する位置付近の軌跡を学習したRNNが勝者になり、移動ロボットの位置を同定することができることを確認することができる。
【0376】
図28は、移動ロボットが、移動環境内の右側の壁の右側に位置する場合に勝者となるRNNが学習した軌跡を示している。
【0377】
図28Aは、移動ロボットが存在する移動環境中の位置を示している。図28Aでは、移動ロボットは、移動環境内の右側の壁の右側に位置する。
【0378】
図28Bは、移動ロボットが、図28Aの位置を移動している場合に、最下位階層である第1階層の100個のRNNの中で、勝者となるRNNが学習した軌跡と、そのRNNと同一のクラスタにクラスタリングされるRNNが学習した軌跡とを示している。
【0379】
図28Cは、移動ロボットが、図28Aの位置を移動している場合に、最上位階層である第2階層の32個のRNNの中で、勝者となるRNNが学習した軌跡を示している。
【0380】
図28Bによれば、移動ロボットが、移動環境内の右側の壁の右側に位置する場合に、最下位階層である第1階層では、移動ロボットが存在する位置付近の軌跡を学習したRNNが勝者になることもあるし、移動ロボットが存在する位置ではない、移動環境内の左側の壁の左側に位置付近の軌跡を学習したRNNが勝者になることもあって、移動ロボットの位置の同定が誤りやすいことを確認することができる。
【0381】
一方、図28Cによれば、移動ロボットが、移動環境内の右側の壁の右側に位置する場合に、最上位階層である第2階層では、移動ロボットが存在する位置付近の軌跡を学習したRNNが勝者になり、移動ロボットの位置を同定することができることを確認することができる。
【0382】
以上のように、階層構造の下位階層と上位階層との間のインタフェースとして、下位階層のパターン学習モデルのモデルパラメータの系列を用いることにより、容易に(再学習なしで)、追加学習を行うことが可能となる。
【0383】
また、下位階層のパターン学習モデル(のモデルパラメータ(最下位階層については、外部からの時系列データ))どうしの距離構造が、上位階層のパターン学習モデルに伝播され、認識のロバスト性の向上が期待できる。
【0384】
なお、図1等の学習装置、及び、図15等の予測装置に対して、外部から与える時系列データは、特に限定されるものではない。すなわち、外部から与える時系列データとしては、例えば、PC(Personal Computer)のUI(User Interface)をユーザが操作したときの、その操作の内容を表すデータの時系列や、センサ及びアクチュエータを有するロボットのセンサが出力する信号(センサデータ)と、アクチュエータに与えられる駆動信号(アクションデータ)とをコンポーネントとするベクトルの時系列等を採用することができる。また、外部から与える時系列データとしては、例えば、音楽や音声その他の音のデータの時系列や、画像のデータの時系列、言語処理の対象となる文字列としての音素や、単語、文のデータの時系列等を採用することができる。
【0385】
また、本実施の形態では、下位階層の複数のパターン学習モデルすべてのモデルパラメータを、上位階層のパターン学習モデルに与えて、学習処理や予測処理を行うこととしたが、上位階層のパターン学習モデルに与えるモデルパラメータは、下位階層の複数のパターン学習モデルの一部のモデルパラメータであっても良い。
【0386】
すなわち、分節学習では、下位階層の複数のパターン学習モデルのうちの、2以上のパターン学習モデルの学習が、同じような時系列パターンの時系列データを用いて行われることがあり、この場合、その2以上のパターン学習モデルのモデルパラメータは、類似したパラメータとなる。このような場合、モデルパラメータが類似する2以上のパターン学習モデルについては、その2以上のパターン学習モデルのうちの、例えば、1つのパターン学習モデルを代表として、その代表のパターン学習モデルのモデルパラメータだけを、上位階層に与えることができる。
【0387】
また、本実施の形態では、下位階層のパターン学習モデルのモデルパラメータのすべてを、上位階層のパターン学習モデルに与えて、学習処理や予測処理を行うこととしたが、上位階層のパターン学習モデルに与えるモデルパラメータは、下位階層のパターン学習モデルのモデルパラメータの一部であっても良い。
【0388】
さらに、本実施の形態では、図9で説明したように、分節学習において、共有処理を行うようにしたが、分節学習を行う場合に、共有処理は、必ずしも行わなくて良い。
【0389】
[本発明を適用したコンピュータの説明]
【0390】
次に、上述した一連の処理は、ハードウェアにより行うこともできるし、ソフトウェアにより行うこともできる。一連の処理をソフトウェアによって行う場合には、そのソフトウェアを構成するプログラムが、汎用のコンピュータ等にインストールされる。
【0391】
そこで、図29は、上述した一連の処理を実行するプログラムがインストールされるコンピュータの一実施の形態の構成例を示している。
【0392】
プログラムは、コンピュータに内蔵されている記録媒体としてのハードディスク305やROM303に予め記録しておくことができる。
【0393】
あるいはまた、プログラムは、リムーバブル記録媒体311に格納(記録)しておくことができる。このようなリムーバブル記録媒体311は、いわゆるパッケージソフトウエアとして提供することができる。ここで、リムーバブル記録媒体311としては、例えば、フレキシブルディスク、CD-ROM(Compact Disc Read Only Memory),MO(Magneto Optical)ディスク,DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリ等がある。
【0394】
なお、プログラムは、上述したようなリムーバブル記録媒体311からコンピュータにインストールする他、通信網や放送網を介して、コンピュータにダウンロードし、内蔵するハードディスク305にインストールすることができる。すなわち、プログラムは、例えば、ダウンロードサイトから、ディジタル衛星放送用の人工衛星を介して、コンピュータに無線で転送したり、LAN(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送することができる。
【0395】
コンピュータは、CPU(Central Processing Unit)302を内蔵しており、CPU302には、バス301を介して、入出力インタフェース310が接続されている。
【0396】
CPU302は、入出力インタフェース310を介して、ユーザによって、入力部307が操作等されることにより指令が入力されると、それに従って、ROM(Read Only Memory)303に格納されているプログラムを実行する。あるいは、CPU302は、ハードディスク305に格納されたプログラムを、RAM(Random Access Memory)304にロードして実行する。
【0397】
これにより、CPU302は、上述したフローチャートにしたがった処理、あるいは上述したブロック図の構成により行われる処理を行う。そして、CPU302は、その処理結果を、必要に応じて、例えば、入出力インタフェース310を介して、出力部306から出力、あるいは、通信部308から送信、さらには、ハードディスク305に記録等させる。
【0398】
なお、入力部307は、キーボードや、マウス、マイク等で構成される。また、出力部306は、LCD(Liquid Crystal Display)やスピーカ等で構成される。
【0399】
ここで、本明細書において、コンピュータがプログラムに従って行う処理は、必ずしもフローチャートとして記載された順序に沿って時系列に行われる必要はない。すなわち、コンピュータがプログラムに従って行う処理は、並列的あるいは個別に実行される処理(例えば、並列処理あるいはオブジェクトによる処理)も含む。
【0400】
また、プログラムは、1のコンピュータ(プロセッサ)により処理されるものであっても良いし、複数のコンピュータによって分散処理されるものであっても良い。さらに、プログラムは、遠方のコンピュータに転送されて実行されるものであっても良い。
【0401】
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【符号の説明】
【0402】
11 時系列シーケンス学習部, 12 モデルパラメータシーケンス生成部, 13,14 時系列シーケンス学習部, 15 モデルパラメータシーケンス生成部, 21 時系列データ入力部, 301ないし30N 学習モジュール, 311ないし31N 学習データ入力部, 321ないし32N モデル学習部, 331ないし33N モデル記憶部, 341ないし34N 予測部, 351ないし35N 予測誤差計算部, 41 担当モジュール決定部, 42 モデルパラメータ出力部, 51 時系列データ入力部, 601ないし60N 学習モジュール, 611ないし61N 学習データ入力部, 621ないし62N モデル学習部, 631ないし63N モデル記憶部, 641ないし64N 予測部, 651ないし65N 予測誤差計算部, 71 担当モジュール決定部, 102 データ抽出部, 121 モデルパラメータ共有部, 122 モデルパラメータ出力部, 132 データ抽出部, 151 モデルパラメータ共有部, 191 ウエイトマトリクス共有部, 201 時系列シーケンス予測部, 202 モデルパラメータシーケンス生成部, 203,204 時系列シーケンス予測部, 205 モデルパラメータシーケンス生成部, 211 時系列データ入力部, 2201ないし220N 予測モジュール, 2211ないし221N モデル記憶部, 2221ないし222N 予測部, 2231ないし223N 予測値出力部, 2241ないし224N 予測誤差計算部, 231 担当モジュール決定部, 232 予測シーケンス出力部, 233 モデルパラメータ出力部, 241 時系列データ入力部, 2501ないし250N 予測モジュール, 2511ないし251N モデル記憶部, 2521ないし252N 予測部, 2541ないし254N 予測誤差計算部, 261 担当モジュール決定部, 301 バス, 302 CPU, 303 ROM, 304 RAM, 305 ハードディスク, 306 出力部, 307 入力部, 308 通信部, 309 ドライブ, 310 入出力インタフェース, 311 リムーバブル記録媒体

【特許請求の範囲】
【請求項1】
時系列パターンを学習するパターン学習モデルの学習を行う複数の学習モジュールを有する複数の学習手段が階層構造を構成するように接続されており、
上位階層の前記学習手段が有する前記学習モジュールは、その上位階層の前記学習手段の下位階層の前記学習手段が有する前記パターン学習モデルを定義するモデルパラメータの系列を用いて、前記パターン学習モデルの学習を行う
情報処理装置。
【請求項2】
前記学習手段は、
時系列データから、所定のウインドウ長のウインドウ内のデータを、前記パターン学習モデルの学習用のモデル学習用データとして抽出するデータ抽出手段と、
前記複数の学習モジュールのうちの2以上の学習モジュールに、前記モデルパラメータを共有させるモデルパラメータ共有手段と
を、さらに有し、
前記学習モジュールは、前記モデル学習用データを用い、前記パターン学習モデルを定義するモデルパラメータを更新する更新学習を行い、
前記データ抽出手段は、前記ウインドウの位置をずらすことで、前記時系列データから、複数の前記モデル学習用データを抽出し、1の前記モデル学習用データを、1の前記パターン学習モデルに割り当てるように、前記モデル学習用データを前記学習モジュールに分配する
請求項1に記載の情報処理装置。
【請求項3】
上位階層の前記学習手段が有する前記学習モジュールは、その上位階層の前記学習手段の下位階層の前記学習手段が有する前記複数の学習モジュールのすべての前記パターン学習モデルのモデルパラメータの系列を用いて、前記パターン学習モデルの学習を行う
請求項2に記載の情報処理装置。
【請求項4】
時系列パターンを学習するパターン学習モデルの学習を行う複数の学習モジュールを有する複数の学習手段が階層構造を構成するように接続されており、
上位階層の前記学習手段が有する前記学習モジュールが、その上位階層の前記学習手段の下位階層の前記学習手段が有する前記パターン学習モデルを定義するモデルパラメータの系列を用いて、前記パターン学習モデルの学習を行うステップを含む
情報処理方法。
【請求項5】
時系列パターンを学習するパターン学習モデルの学習を行う複数の学習モジュールを有する複数の学習手段として、コンピュータを機能させるためのプログラムであり、
前記複数の学習手段は、階層構造を構成するように接続されており、
上位階層の前記学習手段が有する前記学習モジュールは、その上位階層の前記学習手段の下位階層の前記学習手段が有する前記パターン学習モデルを定義するモデルパラメータの系列を用いて、前記パターン学習モデルの学習を行う
プログラム。
【請求項6】
時系列パターンを学習するパターン学習モデルを用いて、時系列データを予測する複数の予測モジュールを有する複数の予測手段が階層構造を構成するように接続されており、
上位階層の前記予測手段が有する前記予測モジュールは、その上位階層の前記予測手段の下位階層の前記予測手段が有する前記パターン学習モデルを定義するモデルパラメータの系列を用いて、前記モデルパラメータを予測する
情報処理装置。
【請求項7】
下位階層の前記予測手段は、
前記複数の予測モジュールのうちの、前記パターン学習モデルを用いて予測した時系列データの予測値の予測誤差が最小の予測値が得られる予測モジュールを、時系列データの予測を担当する担当モジュールに決定する担当モジュール決定手段と、
前記担当モジュールの前記パターン学習モデルのモデルパラメータを、外部に出力するモデルパラメータ出力手段と
を、さらに有する
請求項6に記載の情報処理装置。
【請求項8】
時系列パターンを学習するパターン学習モデルを用いて、時系列データを予測する複数の予測モジュールを有する複数の予測手段が階層構造を構成するように接続されており、
上位階層の前記予測手段が有する前記予測モジュールが、その上位階層の前記予測手段の下位階層の前記予測手段が有する前記パターン学習モデルを定義するモデルパラメータの系列を用いて、前記モデルパラメータを予測するステップを含む
情報処理方法。
【請求項9】
時系列パターンを学習するパターン学習モデルを用いて、時系列データを予測する複数の予測モジュールを有する複数の予測手段として、コンピュータを機能させるためのプログラムであり、
前記複数の予測手段は、階層構造を構成するように接続されており、
上位階層の前記予測手段が有する前記予測モジュールは、その上位階層の前記予測手段の下位階層の前記予測手段が有する前記パターン学習モデルを定義するモデルパラメータの系列を用いて、前記モデルパラメータを予測する
プログラム。

【図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

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate


【公開番号】特開2010−282556(P2010−282556A)
【公開日】平成22年12月16日(2010.12.16)
【国際特許分類】
【出願番号】特願2009−137317(P2009−137317)
【出願日】平成21年6月8日(2009.6.8)
【出願人】(000002185)ソニー株式会社 (34,172)