説明

学習装置、学習方法、データ生成装置、データ生成方法、及び、プログラム

【課題】内部変数を考慮した学習モジュール間の接続性を用いて、時系列信号のプランニングを行うことができるようにする。
【解決手段】学習モデル#iが生成したモデル生成データ#iの最後のオーバラップ部分(最後のLサンプル)と、学習モデル#jが生成したモデル生成データ#jの最初のオーバラップ部分(最初のLサンプル)の累積距離と、学習モデル#iが生成したコンテキスト#iの最後のオーバラップ部分と、学習モデル#jが生成したコンテキスト#jの最初のオーバラップ部分の累積距離の和が、学習モデル#iが学習した時系列パターンの後に、学習モデル#jが学習した時系列パターンが接続する適切さを表すコネクティビティとして算出される。本発明は、時系列信号に基づいてパターン学習を行う装置に適用することができる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、学習装置、学習方法、データ生成装置、データ生成方法、及び、プログラムに関し、特に、各学習モデルにおける内部変数の意味を統一させ、内部変数を考慮した学習モジュール間の接続性を用いて、時系列信号のプランニングを行うことができるようにした学習装置、学習方法、データ生成装置、データ生成方法、及び、プログラムに関する。
【背景技術】
【0002】
ある時刻tにおいて観測される時系列信号が同じAとBという状況を表すものであっても、過去(時刻t-1,t-2,t-3,・・・)に観測された時系列信号を含めれば、AとBのうちのどちらの状況が目標とする正しい状態であるのかを特定することができる。時系列信号は、例えば実空間に存在するロボットにより観測されたセンサデータである。
【0003】
時系列信号を用いた学習装置においては、過去の状況を内部変数や内部変数として記憶しておき、観測信号と、内部変数もしくは内部変数とから、時刻t+n(n=1,2,・・・)の状態を予測できるようにモデルパラメータを決定することが行われる。
【0004】
時系列パターンを時間差分方程式の形で関数近似し、ダイナミクスとして学習(記憶)する学習モデルとしては、例えばRNN(Recurrent Neural Network)がある。RNNでは、コンテキストと呼ばれる内部変数を予測するノードを持ち、学習時にはその初期値をモデルパラメータの1つとして求めるようになされている。
【0005】
また、隠れマルコフモデルでは、時系列信号を生成する状態を状況AとBで別の状態として用意することで状況AとBを分離している。
【0006】
特許文献1には、連続する時系列信号を分割し、分割した時系列信号をそれぞれの学習モジュールに割り当てて学習を行わせ、複数の学習モジュール間でモデルパラメータを共有する技術が記載されている。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2008−250856号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
モデルパラメータを学習により決定する際、時系列パターンに対する各学習モジュールの持つ内部変数の初期値は、他のモジュールの持つ初期値を考慮せずに各モジュールにおいて決定される。
【0009】
従って、学習モジュールごとに内部変数の持つ意味が異なり、ある時刻に内部変数として観測される信号が、隠れ状態を含めたどの状態を表しているのかを、学習モジュールに分担して記憶させている時系列パターン全体の中で特定できないことがある。
【0010】
このことから、学習モジュール間で内部変数の接続性を評価することができず、内部変数の接続性を用いて、学習モジュールをまたいだ、隠れ状態を持つ時系列信号のプランニングを行うといったようなことを実現することができなかった。
【0011】
本発明はこのような状況に鑑みてなされたものであり、各学習モデルにおける内部変数の意味を統一させ、内部変数を考慮した学習モジュール間の接続性を用いて、時系列信号のプランニングを行うことができるようにするものである。
【課題を解決するための手段】
【0012】
本発明の一側面の学習装置は、時系列データを、一部がオーバラップする複数のデータに分割し、内部状態を有し、時系列パターンを学習する学習モデルの学習に用いるモデル学習用データとして、1つの前記モデル学習用データを、1つの前記学習モデルに割り当てる分割手段と、複数の前記学習モデルによる時系列パターンの学習を、その学習モデルに割り当てられた前記モデル学習用データと、その学習モデルの内部状態を表す時系列データの教師となる内部状態教師データとを用いて行う学習手段と、複数の前記学習モデルすべてについて、1つの前記学習モデルの内部状態を表す時系列データと、1つの前記学習モデルに割り当てられた前記モデル学習用データとオーバラップする区間を有する前記モデル学習用データが割り当てられた他の前記学習モデルの内部状態を表す時系列データとに基づいて1つの前記学習モデルに与える前記内部状態教師データを生成する生成手段と、複数の前記学習モデルすべてについて、1つの前記学習モデルが生成する時系列データの最後の一部分のデータ列と、他の1つの前記学習モデルが生成する時系列データの最初の一部分のデータ列との誤差である第1の誤差、および、1つの前記学習モデルが生成する内部状態を表す時系列データの最後の一部分のデータ列と、他の1つの前記学習モデルが生成する内部状態を表す時系列データの最初の一部分のデータ列との誤差である第2の誤差に基づいて、1つの前記学習モデルが学習した前記時系列パターンの後に、他の1つの前記学習モデルが学習した前記時系列パターンが接続する適切さを表すコネクティビティとして算出するコネクティビティ算出手段とを備える。
【0013】
前記学習モデルは、RNN(Recurrent Neural Network)であるようにすることができる。
【0014】
前記コネクティビティ算出手段には、前記第1の誤差と前記第2の誤差の和を、前記コネクティビティとして算出させることができる。
【0015】
本発明の一側面の学習方法は、時系列データを、一部がオーバラップする複数のデータに分割し、内部状態を有し、時系列パターンを学習する学習モデルの学習に用いるモデル学習用データとして、1つの前記モデル学習用データを、1つの前記学習モデルに割り当て、複数の前記学習モデルによる時系列パターンの学習を、その学習モデルに割り当てられた前記モデル学習用データと、その学習モデルの内部状態を表す時系列データの教師となる内部状態教師データとを用いて行い、複数の前記学習モデルすべてについて、1つの前記学習モデルの内部状態を表す時系列データと、1つの前記学習モデルに割り当てられた前記モデル学習用データとオーバラップする区間を有する前記モデル学習用データが割り当てられた他の前記学習モデルの内部状態を表す時系列データとに基づいて1つの前記学習モデルに与える前記内部状態教師データを生成し、複数の前記学習モデルすべてについて、1つの前記学習モデルが生成する時系列データの最後の一部分のデータ列と、他の1つの前記学習モデルが生成する時系列データの最初の一部分のデータ列との誤差である第1の誤差、および、1つの前記学習モデルが生成する内部状態を表す時系列データの最後の一部分のデータ列と、他の1つの前記学習モデルが生成する内部状態を表す時系列データの最初の一部分のデータ列との誤差である第2の誤差に基づいて、1つの前記学習モデルが学習した前記時系列パターンの後に、他の1つの前記学習モデルが学習した前記時系列パターンが接続する適切さを表すコネクティビティとして算出するステップを含む。
【0016】
本発明の一側面のプログラムは、時系列データを、一部がオーバラップする複数のデータに分割し、内部状態を有し、時系列パターンを学習する学習モデルの学習に用いるモデル学習用データとして、1つの前記モデル学習用データを、1つの前記学習モデルに割り当て、複数の前記学習モデルによる時系列パターンの学習を、その学習モデルに割り当てられた前記モデル学習用データと、その学習モデルの内部状態を表す時系列データの教師となる内部状態教師データとを用いて行い、複数の前記学習モデルすべてについて、1つの前記学習モデルの内部状態を表す時系列データと、1つの前記学習モデルに割り当てられた前記モデル学習用データとオーバラップする区間を有する前記モデル学習用データが割り当てられた他の前記学習モデルの内部状態を表す時系列データとに基づいて1つの前記学習モデルに与える前記内部状態教師データを生成し、複数の前記学習モデルすべてについて、1つの前記学習モデルが生成する時系列データの最後の一部分のデータ列と、他の1つの前記学習モデルが生成する時系列データの最初の一部分のデータ列との誤差である第1の誤差、および、1つの前記学習モデルが生成する内部状態を表す時系列データの最後の一部分のデータ列と、他の1つの前記学習モデルが生成する内部状態を表す時系列データの最初の一部分のデータ列との誤差である第2の誤差に基づいて、1つの前記学習モデルが学習した前記時系列パターンの後に、他の1つの前記学習モデルが学習した前記時系列パターンが接続する適切さを表すコネクティビティとして算出するステップを含む処理をコンピュータに実行させる。
【0017】
本発明の他の側面のデータ生成装置は、時系列データを、一部がオーバラップする複数のデータに分割し、内部状態を有し、時系列パターンを学習する学習モデルの学習に用いるモデル学習用データとして、1つの前記モデル学習用データを、1つの前記学習モデルに割り当て、前記学習モデルによる時系列パターンの学習を、その学習モデルに割り当てられた前記モデル学習用データと、複数の前記学習モデルすべてについて、1つの前記学習モデルの内部状態を表す時系列データと1つの前記学習モデルに割り当てられた前記モデル学習用データとオーバラップする区間を有する前記モデル学習用データが割り当てられた他の前記学習モデルの内部状態を表す時系列データに基づいて生成された内部状態教師データと、を用いて行うことにより得られる、学習後の複数の前記学習モデルのうちの、1つの前記学習モデルを、時系列データの生成に用いる前記学習モデルのシーケンスである生成用モデルシーケンスの始点となる始点モデルとして選択する始点モデル選択手段と、複数の前記学習モデルのうちの、他の1つの前記学習モデルを、前記生成用モデルシーケンスの終点となる終点モデルとして選択する終点モデル選択手段と、複数の前記学習モデルすべてについて、1つの前記学習モデルが生成する時系列データの最後の一部分のデータ列と、他の1つの前記学習モデルが生成する時系列データの最初の一部分のデータ列との誤差である第1の誤差、および、1つの前記学習モデルが生成する内部状態を表す時系列データの最後の一部分のデータ列と、他の1つの前記学習モデルが生成する内部状態を表す時系列データの最初の一部分のデータ列との誤差である第2の誤差に基づいて得られた、1つの前記学習モデルが学習した前記時系列パターンの後に、他の1つの前記学習モデルが学習した前記時系列パターンが接続する適切さを表すコネクティビティに対応する値を、1つの前記学習モデルの後に、他の1つの前記学習モデルを接続する接続コストとして、前記接続コストの累積値を最小にする、前記始点モデルから前記終点モデルまでの前記学習モデルの並びを、前記生成用モデルシーケンスとして求める生成用モデルシーケンス算出手段と、前記生成用モデルシーケンスを構成する前記学習モデルについて、前記学習モデルが生成する時系列データの最後の一部分のデータ列と、後に接続される前記学習モデルが生成する時系列データの最初の一部分のデータ列との誤差を小さくするように、前記学習モデルの前記内部状態の初期値を決定し、その初期値を、前記学習モデルに与えて、時系列データを生成する時系列データ生成手段とを備える。
【0018】
前記学習モデルは、RNN(Recurrent Neural Network)であるようにすることができる。
【0019】
本発明の他の側面のデータ生成方法は、時系列データを、一部がオーバラップする複数のデータに分割し、内部状態を有し、時系列パターンを学習する学習モデルの学習に用いるモデル学習用データとして、1つの前記モデル学習用データを、1つの前記学習モデルに割り当て、前記学習モデルによる時系列パターンの学習を、その学習モデルに割り当てられた前記モデル学習用データと、複数の前記学習モデルすべてについて、1つの前記学習モデルの内部状態を表す時系列データと1つの前記学習モデルに割り当てられた前記モデル学習用データとオーバラップする区間を有する前記モデル学習用データが割り当てられた他の前記学習モデルの内部状態を表す時系列データに基づいて生成された内部状態教師データと、を用いて行うことにより得られる、学習後の複数の前記学習モデルのうちの、1つの前記学習モデルを、時系列データの生成に用いる前記学習モデルのシーケンスである生成用モデルシーケンスの始点となる始点モデルとして選択し、複数の前記学習モデルのうちの、他の1つの前記学習モデルを、前記生成用モデルシーケンスの終点となる終点モデルとして選択し、複数の前記学習モデルすべてについて、1つの前記学習モデルが生成する時系列データの最後の一部分のデータ列と、他の1つの前記学習モデルが生成する時系列データの最初の一部分のデータ列との誤差である第1の誤差、および、1つの前記学習モデルが生成する内部状態を表す時系列データの最後の一部分のデータ列と、他の1つの前記学習モデルが生成する内部状態を表す時系列データの最初の一部分のデータ列との誤差である第2の誤差に基づいて得られた、1つの前記学習モデルが学習した前記時系列パターンの後に、他の1つの前記学習モデルが学習した前記時系列パターンが接続する適切さを表すコネクティビティに対応する値を、1つの前記学習モデルの後に、他の1つの前記学習モデルを接続する接続コストとして、前記接続コストの累積値を最小にする、前記始点モデルから前記終点モデルまでの前記学習モデルの並びを、前記生成用モデルシーケンスとして求め、前記生成用モデルシーケンスを構成する前記学習モデルについて、前記学習モデルが生成する時系列データの最後の一部分のデータ列と、後に接続される前記学習モデルが生成する時系列データの最初の一部分のデータ列との誤差を小さくするように、前記学習モデルの前記内部状態の初期値を決定し、その初期値を、前記学習モデルに与えて、時系列データを生成するステップを含む。
【0020】
本発明の他の側面のプログラムは、時系列データを、一部がオーバラップする複数のデータに分割し、内部状態を有し、時系列パターンを学習する学習モデルの学習に用いるモデル学習用データとして、1つの前記モデル学習用データを、1つの前記学習モデルに割り当て、前記学習モデルによる時系列パターンの学習を、その学習モデルに割り当てられた前記モデル学習用データと、複数の前記学習モデルすべてについて、1つの前記学習モデルの内部状態を表す時系列データと1つの前記学習モデルに割り当てられた前記モデル学習用データとオーバラップする区間を有する前記モデル学習用データが割り当てられた他の前記学習モデルの内部状態を表す時系列データに基づいて生成された内部状態教師データと、を用いて行うことにより得られる、学習後の複数の前記学習モデルのうちの、1つの前記学習モデルを、時系列データの生成に用いる前記学習モデルのシーケンスである生成用モデルシーケンスの始点となる始点モデルとして選択し、複数の前記学習モデルのうちの、他の1つの前記学習モデルを、前記生成用モデルシーケンスの終点となる終点モデルとして選択し、複数の前記学習モデルすべてについて、1つの前記学習モデルが生成する時系列データの最後の一部分のデータ列と、他の1つの前記学習モデルが生成する時系列データの最初の一部分のデータ列との誤差である第1の誤差、および、1つの前記学習モデルが生成する内部状態を表す時系列データの最後の一部分のデータ列と、他の1つの前記学習モデルが生成する内部状態を表す時系列データの最初の一部分のデータ列との誤差である第2の誤差に基づいて得られた、1つの前記学習モデルが学習した前記時系列パターンの後に、他の1つの前記学習モデルが学習した前記時系列パターンが接続する適切さを表すコネクティビティに対応する値を、1つの前記学習モデルの後に、他の1つの前記学習モデルを接続する接続コストとして、前記接続コストの累積値を最小にする、前記始点モデルから前記終点モデルまでの前記学習モデルの並びを、前記生成用モデルシーケンスとして求め、前記生成用モデルシーケンスを構成する前記学習モデルについて、前記学習モデルが生成する時系列データの最後の一部分のデータ列と、後に接続される前記学習モデルが生成する時系列データの最初の一部分のデータ列との誤差を小さくするように、前記学習モデルの前記内部状態の初期値を決定し、その初期値を、前記学習モデルに与えて、時系列データを生成するステップを含む処理をコンピュータに実行させる。
【0021】
本発明の一側面においては、時系列データが、一部がオーバラップする複数のデータに分割され、内部状態を有し、時系列パターンを学習する学習モデルの学習に用いるモデル学習用データとして、1つの前記モデル学習用データが、1つの前記学習モデルに割り当てられる。また、複数の前記学習モデルによる時系列パターンの学習が、その学習モデルに割り当てられた前記モデル学習用データと、その学習モデルの内部状態を表す時系列データの教師となる内部状態教師データとを用いて行われ、複数の前記学習モデルすべてについて、1つの前記学習モデルの内部状態を表す時系列データと、1つの前記学習モデルに割り当てられた前記モデル学習用データとオーバラップする区間を有する前記モデル学習用データが割り当てられた他の前記学習モデルの内部状態を表す時系列データとに基づいて1つの前記学習モデルに与える前記内部状態教師データが生成される。複数の前記学習モデルすべてについて、1つの前記学習モデルが生成する時系列データの最後の一部分のデータ列と、他の1つの前記学習モデルが生成する時系列データの最初の一部分のデータ列との誤差である第1の誤差、および、1つの前記学習モデルが生成する内部状態を表す時系列データの最後の一部分のデータ列と、他の1つの前記学習モデルが生成する内部状態を表す時系列データの最初の一部分のデータ列との誤差である第2の誤差に基づいて、1つの前記学習モデルが学習した前記時系列パターンの後に、他の1つの前記学習モデルが学習した前記時系列パターンが接続する適切さを表すコネクティビティが算出される。
【0022】
本発明の他の側面においては、学習後の複数の学習モデルのうちの、1つの前記学習モデルが、時系列データの生成に用いる前記学習モデルのシーケンスである生成用モデルシーケンスの始点となる始点モデルとして選択され、複数の前記学習モデルのうちの、他の1つの前記学習モデルが、前記生成用モデルシーケンスの終点となる終点モデルとして選択される。また、複数の前記学習モデルすべてについて、1つの前記学習モデルが生成する時系列データの最後の一部分のデータ列と、他の1つの前記学習モデルが生成する時系列データの最初の一部分のデータ列との誤差である第1の誤差、および、1つの前記学習モデルが生成する内部状態を表す時系列データの最後の一部分のデータ列と、他の1つの前記学習モデルが生成する内部状態を表す時系列データの最初の一部分のデータ列との誤差である第2の誤差に基づいて得られた、1つの前記学習モデルが学習した前記時系列パターンの後に、他の1つの前記学習モデルが学習した前記時系列パターンが接続する適切さを表すコネクティビティに対応する値を、1つの前記学習モデルの後に、他の1つの前記学習モデルを接続する接続コストとして、前記接続コストの累積値を最小にする、前記始点モデルから前記終点モデルまでの前記学習モデルの並びが、前記生成用モデルシーケンスとして求められる。前記生成用モデルシーケンスを構成する前記学習モデルについて、前記学習モデルが生成する時系列データの最後の一部分のデータ列と、後に接続される前記学習モデルが生成する時系列データの最初の一部分のデータ列との誤差を小さくするように、前記学習モデルの前記内部状態の初期値が決定され、その初期値が、前記学習モデルに与えて、時系列データが生成される。
【発明の効果】
【0023】
本発明の一側面によれば、各学習モデルにおける内部変数の意味を統一させ、内部変数を考慮した学習モジュール間の接続性を用いて、時系列信号のプランニングを行うことができる。
【図面の簡単な説明】
【0024】
【図1】本発明を適用したデータ処理装置の構成例を示すブロック図である。
【図2】図1の学習装置のより詳細な構成例を示すブロック図である。
【図3】学習モデルとしてのRNNの構成例を示す図である。
【図4】教師データの分割と、その分割によって得られるモデル学習用データを用いた学習モデルの学習とを説明する図である。
【図5】内部変数教師データの生成について説明する図である。
【図6】モデルパラメータの共有について説明する図である。
【図7】コネクティビティの算出の方法を説明する図である。
【図8】学習装置の処理について説明するフローチャートである。
【図9】図8のステップS1において行われる学習処理を説明するフローチャートである。
【図10】図8のステップS2において行われるコネクティビティ算出処理を説明するフローチャートである。
【図11】コネクティビティ算出処理を説明する、図10に続くフローチャートである。
【図12】コネクティビティ算出処理を説明する、図11に続くフローチャートである。
【図13】図1のデータ生成装置のより詳細な構成例を示すブロック図である。
【図14】生成用モデルシーケンスの算出のために行われる前向き計算を説明する図である。
【図15】生成用モデルシーケンスを用いた生成時系列データの生成を説明する図である。
【図16】データ生成装置のデータ生成処理を説明するフローチャートである。
【図17】図16のステップS61において行われる、生成用モデルシーケンスの算出処理を説明するフローチャートである。
【図18】図16のステップS62において行われる、時系列データ生成処理を説明するフローチャートである。
【図19】時系列データ生成処理を説明する、図18に続くフローチャートである。
【図20】時系列データ生成処理を説明する、図19に続くフローチャートである。
【図21】時系列データ生成処理を説明する、図20に続くフローチャートである。
【図22】教師データとしての時系列データと、その時系列データを用いた学習を行った学習モデルを用いて生成される生成時系列データとを示す図である。
【図23】移動ロボットがナビゲーションタスクを行う移動環境の概要を示す図である。
【図24】タスクの例を示す図である。
【図25】タスクの他の例を示す図である。
【図26】学習時の移動ロボットの移動の軌跡を示す図である。
【図27】学習モジュールの番号と場所との対応付けを示す図である。
【図28】生成用モデルシーケンスを示す図である。
【図29】他の生成用モデルシーケンスを示す図である。
【図30】本手法と従来手法の比較を示す図である。
【図31】コンピュータの構成例を示すブロック図である。
【発明を実施するための形態】
【0025】
[本発明を適用したデータ処理装置の全体構成]
図1は、本発明を適用したデータ処理装置の一実施の形態の構成例を示すブロック図である。
【0026】
データ処理装置は、例えば、現実のロボット等を行動させるための時系列データ(例えば、アクチュエータを駆動するデータ等)や、ディスプレイに表示される仮想的なキャラクタ等を行動させるための時系列データを学習する。さらに、データ処理装置は、その学習結果に基づき、現実のロボットや仮想的なキャラクタを、自律的に行動させるための時系列データを生成し、ロボット等に供給することで、そのロボット等(の行動)を制御する。
【0027】
すなわち、図1において、データ処理装置は、学習装置1とデータ生成装置2から構成される。データ処理装置は、学習装置1、又は、データ生成装置2だけから構成することができる。
【0028】
なお、データ生成装置2では、学習装置1が、後述する学習処理を行うことにより得られる情報(データ)を用いて、後述するデータ生成処理を行う。したがって、データ処理装置を、データ生成装置2だけから構成する場合には、データ生成処理に必要な情報を、外部からデータ生成装置2に供給するか、又は、データ生成装置2の内部に記憶しておく必要がある。
【0029】
学習装置1は、時系列パターンの学習のために用意された時系列データ(以下、教師データともいう)を用い、時系列パターンを学習する学習モデルであって、内部状態(内部変数)を有する複数の学習モデルの学習を行う。この学習の際、複数の学習モデルの内部変数を表す時系列信号が前後のものどうし連続的になるように調整することが行われる。
【0030】
また、学習装置1は、学習後の複数の学習モデルすべてについて、任意の2つの学習モデルそれぞれが学習(記憶)した時系列パターンどうしが接続する適切さを表すコネクティビティを求める学習処理を行う。
【0031】
すなわち、学習装置1は、学習処理として、例えば、複雑で、長時間の時系列データ等である教師データを、複数の学習モデルで分担して学習し、その複数の学習モデルのそれぞれに、ダイナミクスである時系列パターンを獲得(記憶)させる処理を行う。
【0032】
さらに、学習装置1は、学習処理として、複数の学習モデルのそれぞれが獲得したダイナミクスとしての時系列パターンどうしが接続する適切さ(自然さ)(接続性)を表すコネクティビティを求める処理を行う。
【0033】
ここで、ダイナミクスは、時間変化する力学系を表すもので、例えば、具体的な関数によって表現することができる。学習モデルでは、時系列データの時間変化の特徴、つまり、時系列パターンが、ダイナミクスとして記憶される。
【0034】
学習装置1は、教師データ保存部11、教師データ分割部12、学習モジュール13、モデルパラメータ共有部14、コネクティビティ算出部15、及び、コネクティビティ保存部16から構成される。学習モジュール13は、モデル学習用データ保存部21、学習部22、モデルパラメータ保存部23、及び内部変数教師データ生成部24から構成される。後述するように、学習モジュール13は複数設けられる。
【0035】
教師データ保存部11には外部から教師データが供給される。教師データ保存部11は、供給される教師データを記憶(保存)する。
【0036】
ここで、教師データとしては、複雑で、長時間の時系列データを採用することができる。なお、教師データは、その他、例えば、単純で、短時間の時系列データであっても良いし、複雑であるが、それほど長時間ではない時系列データ等であっても良い。
【0037】
また、現実のロボットを、ある環境下で自律的に行動させるための時系列データを生成する場合には、ロボットを行動させる環境下で、行動の教示を行うユーザがロボットを実際に移動させることで得られる時系列データが教師データとして用いられる。
【0038】
すなわち、ユーザがロボットを移動させているときに、ロボットがセンシングすることができる物理量のデータや、移動のために、ロボットのアクチュエータに与えられるデータ等をコンポーネントとするベクトルの時系列が、教師データとして用いられる。
【0039】
ここで、以上のようなロボットがセンシングすることができるセンサデータと、ロボットのアクチュエータに与えられるアクションデータとをコンポーネントとするベクトルの時系列を、以下、センサモータデータともいう。
【0040】
教師データ分割部12は、教師データ保存部11に記憶された教師データとしての時系列データを、一部がオーバラップする複数のデータに分割し、学習モデルの学習に用いるモデル学習用データとして、モデル学習用データ保存部21に供給する。
【0041】
ここで、教師データ分割部12において、教師データを分割して得られる複数のモデル学習用データの長さ(サンプル数)は、同一であっても良いし、異なっていても良い。オーバラップの長さも同様である。
【0042】
但し、以下では、説明を簡単にするため、教師データを分割して得られる複数のモデル学習用データは、すべて同一の固定長であることとし、また、オーバラップの長さも、固定長であることとする。
【0043】
学習モジュール13のモデル学習用データ保存部21は、教師データ分割部12からの複数のモデル学習用データを記憶する。
【0044】
学習部22は、1つのモデル学習用データを、1つの学習モデルに割り当てるように、モデル学習用データ保存部21に記憶された複数のモデル学習用データを、複数の学習モデルに割り当てる。さらに、学習部22は、学習モデルによる時系列パターンの学習を、その学習モデルに割り当てられたモデル学習用データを用いて行うことで、学習モデルを定義するモデルパラメータを求める。そして、学習部22は、複数の学習モデルそれぞれのモデルパラメータを、モデルパラメータ保存部23に供給する。
【0045】
ここで、学習部22が学習の対象とする複数の学習モデルの数Nは、教師データ分割部12で得られる複数の学習用モデルデータの数Nに一致する。
【0046】
したがって、例えば、教師データ分割部12では、教師データが、あらかじめ用意された学習モデルの数以下の数のモデル学習用データに分割される。あるいは、学習部22において、教師データ分割部12で得られた複数のモデル学習用データの数と同一の数の学習モデルが生成される。なお、学習モデルの実体は、メモリ等の記憶領域(例えば、オブジェクト指向プログラミングにおけるインスタンス)である。
【0047】
モデルパラメータ保存部23は、学習部22から供給されるモデルパラメータを記憶する。
【0048】
内部変数教師データ生成部24は、複数の学習モデルのそれぞれについて、モデルパラメータ保存部23に記憶されている、1つの学習モデルの内部変数と、隣接する他の1つの学習モジュールの学習モデルの内部変数を取得する。内部変数教師データ生成部24は、取得した内部変数に基づいて内部変数教師データを生成し、内部変数の教師として、その1つの学習モデルの学習を行う学習部22に出力する。
【0049】
モデルパラメータ共有部14は、N個の学習モジュール13のうちの、2以上の学習モジュールに、モデルパラメータを共有させる共有処理を行う。モデルパラメータ共有部14が共有処理を行うことにより、N個の学習モジュール13のうちの2以上の学習モジュールはモデルパラメータを共有する。
【0050】
コネクティビティ算出部15は、学習部22で学習が行われた複数の学習モデルのうちの任意の2つの学習モデルに注目し、注目する2つの学習モデル間のコネクティビティを算出する。コネクティビティの算出は、全ての学習モデルの組み合わせについて求められる。
【0051】
コネクティビティは、1つの学習モデルが学習した時系列パターンの後に、他の1つの学習モデルが学習した時系列パターンが接続する適切さを表す。
【0052】
例えば、コネクティビティ算出部15は、モデル学習用データ保存部21に記憶されたモデル学習用データと、モデルパラメータ保存部23に記憶されたモデルパラメータと、コネクティビティを算出しようとしている2つの学習モデルの内部変数を取得する。
【0053】
コネクティビティ算出部15は、1つの学習モデルが生成する時系列データの最後の一部分のデータ列と、他の1つの学習モデルが生成する時系列データの最初の一部分のデータ列との誤差を求める。また、コネクティビティ算出部15は、その、1つの学習モデルの内部変数の最後の一部分のデータ列と、他の1つの学習モデルの内部変数の最初の一部分のデータ列との誤差を求める。
【0054】
コネクティビティ算出部15は、求めた2つの誤差の和をコネクティビティとして算出し、コネクティビティ保存部16に供給する。
【0055】
コネクティビティ保存部16は、コネクティビティ算出部15から供給されるコネクティビティを記憶する。
【0056】
データ生成装置2は、学習装置1で得られた学習後の複数の学習モデルと、その複数の学習モデルについて算出されたコネクティビティとに基づき、教師データに相当するような、複雑で、長時間の、滑らかな時系列データを生成するデータ生成処理を行う。
【0057】
すなわち、データ生成装置2は、データ生成処理として、学習後の複数の学習モデルのうちの、1つの学習モデルを、時系列データの生成に用いる学習モデルのシーケンスである生成用モデルシーケンスの始点となる始点モデルとして選択する処理を行う。さらに、データ生成装置2は、データ生成処理として、複数の学習モデルのうちの、他の1つの学習モデルを、生成用モデルシーケンスの終点となる終点モデルとして選択する処理を行う。
【0058】
また、データ生成装置2は、データ生成処理として、コネクティビティに基づき、始点モデルから終点モデルまでの、ある学習モデルの並びを、生成用モデルシーケンスとして求める処理を行う。
【0059】
さらに、データ生成装置2は、データ生成処理として、生成用モデルシーケンスに基づき、教師データに相当するような、複雑で、長時間の、滑らかな時系列データを生成する処理を行う。
【0060】
データ生成装置2は、現在データ供給部31、目標データ供給部32、始点モデル選択部33、終点モデル選択部34、生成用モデルシーケンス算出部35、時系列データ生成部36、及び、時系列データ出力部37から構成される。
【0061】
現在データ供給部31は、時系列データである現在データを、始点モデル選択部33、及び、時系列データ生成部36に供給する。
【0062】
ここで、データ処理装置が制御するロボット等は、教師データを構成するのと同様のベクトルの時系列を、観測可能なデータとして、データ処理装置に提供するようになっている。現在データとは、例えば、データ処理装置が制御するロボット等が提供する観測可能なセンサモータデータのうちの、現在時刻のサンプル(ベクトル)を含む、連続する複数のサンプルである。
【0063】
なお、現在データを構成するサンプルの数は、例えば、モデル学習用データを構成するサンプルの数よりも少ないこととする。
【0064】
現在データ供給部31は、例えば、データ処理装置が制御するロボット等が提供する観測可能なセンサモータデータから、現在データを抽出し、始点モデル選択部33、及び、時系列データ生成部36に供給する。
【0065】
目標データ供給部32は、時系列データである目標データを、終点モデル選択部34に供給する。
【0066】
ここで、目標データは、現在データと同様(同一次元)のデータであり、例えば、ユーザ等の外部から、目標データ供給部32に提供される。
【0067】
例えば、データ生成装置2において、データ処理装置が制御するロボットがいる現在位置から、ユーザ等の外部から指定された位置(以下、目標位置ともいう)まで、ロボットを移動させるための時系列データであるセンサモータデータを生成する場合を考える。この場合、ロボットが、現在位置で得るセンサモータデータ(数サンプルのセンサモータデータ)が、現在データとなり、目標位置で得られるであろうセンサモータデータが、目標データとなる。
【0068】
始点モデル選択部33は、現在データ供給部31からの現在データに基づき、モデルパラメータ保存部23にモデルパラメータが記憶された複数の学習モデル、すなわち、学習後の複数の学習モデルのうちの、1つの学習モデルを、始点モデルとして選択する。さらに、始点モデル選択部33は、始点モデルを特定する始点モデルID(Identification)を、生成用モデルシーケンス算出部35に供給する。
【0069】
終点モデル選択部34は、目標データ供給部32からの目標データに基づき、モデルパラメータ保存部23にモデルパラメータが記憶された複数の学習モデル、すなわち、学習後の複数の学習モデルのうちの、1つの学習モデルを、終点モデルとして選択する。さらに、終点モデル選択部34は、終点モデルを特定する終点モデルIDを、生成用モデルシーケンス算出部35に供給する。
【0070】
ここで、始点モデルとは、時系列データの生成に用いる学習モデルのシーケンスである生成用モデルシーケンスの始点となる学習モデルであり、終点モデルとは、生成用モデルシーケンスの終点となる学習モデルである。
【0071】
始点モデルは、時系列データ生成部36で生成される(長時間の)時系列データ(以下、生成時系列データともいう)の最初の部分を生成するのに用いられ、終点モデルは、生成時系列データの最後の部分を生成するのに用いられる。
【0072】
生成用モデルシーケンス算出部35は、始点モデル選択部33からの始点モデルIDによって特定される始点モデルから、終点モデル選択部34からの終点モデルIDによって特定される終点モデルまでの、複数の学習モデルの、ある並びを、生成用モデルシーケンスとして求める。
【0073】
すなわち、生成用モデルシーケンス算出部35は、コネクティビティ保存部16に記憶されたコネクティビティに対応する値を、1つの学習モデルの後に、他の1つの学習モデルを接続する接続コストとする。生成用モデルシーケンス算出部35は、その接続コストの累積値を最小にする、始点モデルから終点モデルまでの学習モデルの並びを、生成用モデルシーケンスとして求める。
【0074】
生成用モデルシーケンス算出部35は、生成用モデルシーケンスを、時系列データ生成部36に供給する。
【0075】
時系列データ生成部36は、生成用モデルシーケンス算出部35からの生成用モデルシーケンスを構成する学習モデルに、現在データ供給部31からの現在データを与えることで、生成用モデルシーケンスを構成する各学習モデルに、時系列データを生成させる。
【0076】
さらに、時系列データ生成部36は、生成用モデルシーケンスを構成する各学習モデルが生成した時系列データ(以下、モデル生成データともいう)を、生成用モデルシーケンスとしての学習モデルの並びの順に接続させる。時系列データ生成部36は、そのようにして接続させることによって得られた生成時系列データを、時系列データ出力部37に供給する。
【0077】
なお、時系列データ生成部36は、生成用モデルシーケンス算出部35からの生成用モデルシーケンスを構成する学習モデルに、現在データ供給部31からの現在データを与えて、モデル生成データを生成する前に、生成用モデルシーケンスを構成する学習モデルについて、学習モデルが生成する時系列データ(モデル生成データ)の最後の一部分のデータ列と、後(直後)に接続される学習モデルが生成する時系列データの最初の一部分のデータ列との誤差を小さくするように、学習モデルの内部変数の初期値を決定する。
【0078】
そして、時系列データ生成部36は、その初期値を、学習モデルに与えて、時系列データ(モデル生成データ)を生成する。その結果、生成用モデルシーケンスを構成する各学習モデルが生成したモデル生成データを、生成用モデルシーケンスとしての学習モデルの並びの順に接続した生成時系列データは、滑らかな時系列データとなる。
【0079】
[学習装置1の詳細構成例]
図2は、図1の学習装置1のより詳細な構成例を示している。
【0080】
なお、図2では、教師データ分割部12において、教師データが、複数であるN個のモデル学習用データに分割されることとする。N個のモデル学習用データの、時系列順で、n番目を、以下、モデル学習用データ#nとも記載する。
【0081】
教師データ分割部12は、教師データを、N個のモデル学習用データ#1,#2,・・・,#Nに分割し、1つのモデル学習用データを、1つの学習モデルに割り当てるように、モデル学習用データを学習モジュール13のモデル学習用データ保存部21に出力する。
【0082】
図2の例においては、学習データの分割数と同じN個の学習モジュールである学習モジュール131ないし13Nが設けられている。学習モジュール131ないし13Nは、それぞれ同じ構成を有している。
【0083】
モデル学習用データ保存部21nは、教師データ分割部12から供給されたモデル学習用データ#nを記憶する。
【0084】
学習部22nは、学習モデルによる時系列パターンの学習を、その学習モデルに割り当てられたモデル学習用データ#nと、内部変数教師データ生成部24nから供給された内部変数教師データを用いて行う。学習部22nは、学習によって得られた、学習モデルを定義するモデルパラメータをモデルパラメータ保存部23nに供給する。
【0085】
モデルパラメータ保存部23nは、学習部22nから供給されるモデルパラメータを記憶する。
【0086】
内部変数教師データ生成部24nは、モデルパラメータ保存部23nに記憶されている学習モデルの内部変数と、隣接する学習モジュールの学習モデルの内部変数に基づいて内部変数教師データを生成し、内部変数の教師として学習部22nに出力する。内部変数教師データの生成については後述する。
【0087】
モデルパラメータ共有部14は、N個の学習モジュール131ないし13Nのうちの、2以上の学習モジュールに、モデルパラメータを共有させる共有処理を行う。
【0088】
コネクティビティ算出部15は、モデルペア選択部51、モデルパラメータ供給部52、2個の認識生成部53及び54、並びに、コネクティビティ演算部55から構成される。
【0089】
モデルペア選択部51は、N個の学習モデル#1ないし#Nから、任意の2つの学習モデルの並び(順列)を、モデルペアとして選択し、モデルパラメータ供給部52に供給する。
【0090】
すなわち、モデルペア選択部51は、N個の学習モデル#1ないし#Nのうちの1つの学習モデルを、順次、注目モデルとして選択する。さらに、モデルペア選択部51は、注目モデルに対して、N個の学習モデル#1ないし#Nのうちの、注目モデルの他の1つの学習モデルを、注目モデルの後に接続される後モデルとして選択する。そして、モデルペア選択部51は、注目モデルと、後モデルとの並び(順列)を、モデルペアとして、モデルパラメータ供給部52に供給する。
【0091】
モデルパラメータ供給部52は、モデルペア選択部51からのモデルペアを構成する2つの学習モデルのモデルパラメータを、モデルパラメータ保存部23から読み出す。さらに、モデルパラメータ供給部52は、モデルパラメータ保存部23から読み出したモデルパラメータのうちの、モデルペアを構成する2つの学習モデルの並びのうちの1番目の学習モデル(以下、前モデルともいう)のモデルパラメータを、認識生成部53に供給する。
【0092】
また、モデルパラメータ供給部52は、モデルパラメータ保存部23から読み出したモデルパラメータのうちの、後モデル(モデルペアを構成する2つの学習モデルの並びのうちの2番目の学習モデル)のモデルパラメータを、認識生成部54に供給する。
【0093】
認識生成部53は、モデルパラメータ供給部52からの、前モデルのモデルパラメータを、学習モデルに設定することで、前モデルを生成する(例えば、オブジェクト指向プログラミングにおける、前モデルとしての学習モデルのインスタンスを生成する)。
【0094】
また、認識生成部53は、前モデルに割り当てられたモデル学習用データを、モデル学習用データ保存部21から読み込み、前モデルに与えることで、前モデルから、時系列データであるモデル生成データを生成する。
【0095】
さらに、認識生成部53は、モデル生成データを生成するとともに、前モデルの内部変数を生成する。
【0096】
ここで、本実施の形態では、学習モデルは内部変数を有し、時系列データ(モデル生成データ)の生成時には、内部変数の初期値が、学習モデルに与えられる。学習モデルから生成されるモデル生成データは、内部変数の初期値によって異なる。認識生成部53は、前モデルが生成するモデル生成データの最後の一部分のデータ列(複数サンプル)と、認識生成部54が後モデルから生成するモデル生成データの最初の一部分のデータ列との誤差(以下、接続誤差ともいう)が小さくなるように、前モデルに与える内部変数の初期値を決定する(更新する)。
【0097】
そして、認識生成部53は、接続誤差が小さくなったときの内部変数の初期値を、前モデルに与えて、その前モデルから、モデル生成データを生成し、コネクティビティ演算部55に供給する。また、認識生成部53は、モデル生成データとともに生成した前モデルの内部変数をコネクティビティ演算部55に出力する。
【0098】
認識生成部54は、モデルパラメータ供給部52からの、後モデルのモデルパラメータを、学習モデルに設定することで、後モデルを生成する(例えば、オブジェクト指向プログラミングにおける、後モデルとしての学習モデルのインスタンスを生成する)。
【0099】
また、認識生成部54は、後モデルに割り当てられたモデル学習用データを、モデル学習用データ保存部21から読み込み、後モデルに与えることで、後モデルから、時系列データであるモデル生成データを生成する。さらに、認識生成部54は、モデル生成データを生成するとともに、後モデルの内部変数を生成する。
【0100】
ここで、認識生成部54も、後モデルが生成するモデル生成データの最初の一部分のデータ列と、認識生成部53が前モデルから生成するモデル生成データの最後の一部分のデータ列との接続誤差が小さくなるように後モデルに与える内部変数の初期値を決定する。
【0101】
そして、認識生成部54は、接続誤差が小さくなったときの内部変数の初期値を、後モデルに与えて、その後モデルから、モデル生成データを生成し、コネクティビティ演算部55に供給する。認識生成部54は、モデル生成データとともに生成した後モデルの内部変数をコネクティビティ演算部55に出力する。
【0102】
コネクティビティ演算部55は、認識生成部53からの、前モデルから生成されたモデル生成データの最後の一部分のデータ列と、認識生成部54からの、後モデルから生成されたモデル生成データの最初の一部分のデータ列との接続誤差を求める。
【0103】
また、コネクティビティ演算部55は、認識生成部53からの、前モデルの内部変数の最後の一部分のデータ列と、認識生成部54からの、後モデルの内部変数の最初の一部分のデータ列との接続誤差を求める。
【0104】
そして、コネクティビティ演算部55は、モデル生成データから求めた接続誤差と、内部変数から求めた接続誤差の和を、前モデルに対する後モデルのコネクティビティとして、コネクティビティ保存部16に供給する。
【0105】
ここで、学習モデル#iに対する学習モデル#jのコネクティビティを、cijと表す(i=1,2,・・・,N:j=1,2,・・・,N:i≠j)。
【0106】
コネクティビティ保存部16は、コネクティビティ算出部15(のコネクティビティ演算部55)から供給される、N個の学習モデルについての、N×N−N個のコネクティビティcijを記憶する。
【0107】
[学習モデルの説明]
次に、図1の学習装置1で学習に用いられる学習モデルについて説明する。
【0108】
学習モデルとしては、力学系を近似することができるモデル(力学系近似モデル)のうちの、内部変数を有する力学系近似モデルを採用することができる。
【0109】
内部変数を有する力学系近似モデルとしては、例えば、RNNがある。
【0110】
図3は、RNNの構成例を示している。
【0111】
ここで、あるシステム(系)にデータを入力したときに、そのデータに対して、システムから出力されるデータを、出力データというとともに、システムに入力されるデータを、入力データという。
【0112】
図3では、RNNは、入力層、隠れ層(中間層)、及び出力層の3層で構成されている。入力層、隠れ層、及び出力層は、それぞれ任意の数の、ニューロンに相当するユニットにより構成される。
【0113】
RNNでは、入力層の一部のユニットである入力ユニットに、外部から入力データxtが入力(供給)される。ここで、入力データxtは、時刻tのサンプル(値)を表す。
【0114】
入力層の、入力データxtが入力される入力ユニット以外の、残りのユニットは、コンテキストユニットであり、コンテキストユニットには、出力層の一部のユニットの出力が、内部変数を表すコンテキストとしてフィードバックされる。
【0115】
ここで、時刻tの入力データxtが入力層の入力ユニットに入力されるときに入力層のコンテキストユニットに入力される時刻tのコンテキストを、ctと記載する。
【0116】
隠れ層のユニットは、入力層に入力される入力データxtとコンテキストctを対象として、所定のウエイト(重み)を用いた重み付け加算を行い、その重み付け加算の結果を引数とする非線形関数の演算を行って、その演算結果を、出力層のユニットに出力する。
【0117】
出力層のユニットでは、隠れ層のユニットが出力するデータを対象として、隠れ層のユニットと同様の処理が行われる。そして、出力層の一部のユニットからは、上述したように、次の時刻t+1のコンテキストct+1が出力され、入力層にフィードバックされる。また、出力層の残りのユニットからは、例えば、入力データxtに対する出力データが出力される。
【0118】
すなわち、RNNの学習は、例えば、RNNに対して、ある時系列データの時刻tのサンプルを、入力データとして与えるとともに、その時系列データの、次の時刻t+1のサンプルを、出力データの真値として与え、出力データの、真値に対する誤差を小さくするように行われる。
【0119】
また、後に詳述するように、RNNの学習は、時系列の信号として表されるコンテキストの、内部変数教師データ生成部24により生成された内部変数教師データに対する誤差を小さくするようにもして行われる。
【0120】
このような学習が行われたRNNでは、入力データxtに対する出力データとして、その入力データxtの次の時刻t+1の入力データxt+1の予測値x*t+1が出力される。
【0121】
なお、上述したように、RNNでは、ユニットへの入力が重み付け加算されるが、この重み付け加算に用いられるウエイト(重み)が、RNNのモデルパラメータである。RNNのモデルパラメータとしてのウエイトには、入力ユニットから隠れ層のユニットへのウエイト、コンテキストユニットから隠れ層のユニットへウエイト、隠れ層のユニットから出力層のユニットへのウエイト等がある。
【0122】
以上のようなRNNを、学習モデルとして採用する場合には、そのRNNの学習時には、入力データ及び出力データの真値として、時系列データであるモデル学習用データ(学習モデルに割り当てられたモデル学習用データ)が与えられる。
【0123】
そして、RNNの学習では、モデル学習用データ#nの時刻tのサンプル(先頭からt番目のサンプル)を入力データとしてRNNに与えたときに、RNNが出力する出力データとしての時刻t+1のサンプルの予測値の予測誤差を小さくするウエイトが求められる。そのウエイトは、例えば、BPTT(Back-Propagation Through Time)法により求められる。
【0124】
また、RNNの学習時において、コンテキストの初期値(以下、初期コンテキストともいう)は、例えば、入力データに対する出力データの、出力データの真値に対する誤差が小さくなるように、自己組織的に決定(更新)される。
【0125】
ここで、自己組織的に決定されるとは、外部からの制御なしに、いわば自発的に決定されることを意味する。
【0126】
なお、RNNからの時系列データ(モデル生成データ)の生成は、外部から与えられるデータを、入力データとして、RNNに与えることや、RNNが出力する出力データを、入力データとして、RNNに与えることによって行われる。
【0127】
以下では、学習モデルは、RNNであるとする。
【0128】
[教師データの分割と、学習モデルの学習の説明]
図4を参照して、教師データ分割部12(図1)による教師データの分割と、その分割によって得られるモデル学習用データを用いた学習モデルの学習について説明する。
【0129】
図4は、教師データと、その教師データを分割して得られるモデル学習用データの、学習モデルへの割り当てとを示している。
【0130】
図4において、教師データは、2つのコンポーネントを有するベクトルの時系列になっている。
【0131】
教師データ分割部12(図1)は、複数の学習モデルに教師データを分担して学習させるために、教師データを、Lサンプルがオーバラップする、S(>L)サンプルのモデル学習用データに分割する。
【0132】
図4では、教師データは、4つのモデル学習用データ#1ないし#4に分割されている。
【0133】
ここで、モデル学習用データにおいて、そのモデル学習用データと隣接するモデル学習用データとオーバラップしているLサンプルを、以下、モデル学習用データのオーバラップ部分ともいう。
【0134】
Sサンプルの時系列であるモデル学習用データでは、その最初のLサンプルと、最後のLサンプルが、オーバラップ部分となっている。正確には、教師データから分割された最初のモデル学習用データでは、最後のLサンプルだけがオーバラップ部分となっており、最後のモデル学習用データでは、最初のLサンプルだけがオーバラップ部分となっている。
【0135】
教師データ分割部12は、モデル学習用データ#1を学習モジュール131の学習モデル#1に割り当て、モデル学習用データ#2を学習モジュール132の学習モデル#2に割り当てる。また、教師データ分割部12は、モデル学習用データ#3を学習モジュール133の学習モデル#3に割り当て、モデル学習用データ#4を学習モジュール131の学習モデル#4に割り当てる。
【0136】
割り当てられたモデル学習用データは、それぞれの学習モジュール13nにおいて、そのモデル学習用データ保存部21nに保存された後、学習部22nに供給される。
【0137】
学習部22nは、学習モデル#nによる時系列パターンの学習を、その学習モデル#nに割り当てられたモデル学習用データ#nを用いて行う。これにより、学習部22nは、モデル学習用データ#nのダイナミクスとしての時系列パターンを、学習モデル#nの学習則に従って、時間発展方程式の関数近似モデルとして獲得する。
【0138】
すなわち、学習部22nは、モデル学習用データ#nを用いて、RNNのモデルパラメータであるウエイトをBPTT法により求める。例えば、モデル学習用データ#nの時刻tのサンプルを入力データとして、RNNに与えたときに、RNNが出力する出力データとしての時刻t+1のサンプルの予測値の予測誤差を小さくするウエイトが求められる。
【0139】
したがって、学習部22nでは、隣接(連続)するモデル学習用データ#n及び#n+1がそれぞれ割り当てられる2つの学習モデル#n及び#n+1に注目した場合、学習モデル#n+1の学習は、最初のオーバラップ部分としてのLサンプルが、学習モデル#nの学習に用いられるモデル学習用データ#nの最後のオーバラップ部分としてのLサンプルに一致しているモデル学習用データ#n+1を用いて行われる。
【0140】
[内部変数教師データの生成]
図5は、内部変数教師データ生成部24iによる内部変数教師データの生成の例を示す図である。ここでは、各構成、各モジュール等の添え字として、図4のnに替えてiを用いている。
【0141】
i≠1、かつi≠Nである場合について説明する。この場合、学習モジュール13iに入力されるモデル学習用データより時間的に前のモデル学習用データが入力される学習モジュール13i-1が存在する。また、学習モジュール13iに入力されるモデル学習用データより時間的に後のモデル学習用データが入力される学習モジュール13i+1が存在する。
【0142】
学習モデルの学習時、内部変数教師データ生成部24iに対しては、学習モジュール13iが有する学習モデル#iのコンテキストと、学習モジュール13i-1が有する学習モデル#i-1のコンテキストと、学習モジュール13i+1が有する学習モデル#i+1のコンテキストとがそれぞれ供給される。
【0143】
時系列の信号であるモデル学習用データが入力される毎に出力されるから、RNNのコンテキストノードから出力されるコンテキストも、図5の上段に示すように時系列の信号として表される。横方向が時間方向である。
【0144】
破線の波形は、学習モジュール13i-1が有する学習モデル#i-1のコンテキストを示し、実線の波形は、学習モジュール13iが有する学習モデル#iのコンテキストを示す。また、一点鎖線の波形は、学習モジュール13i+1が有する学習モデル#i+1のコンテキストを示す。
【0145】
上述したように、モデル学習用データには、隣接する学習モジュールに入力されるものどうしオーバラップ部分が存在する。学習モジュール13i-1に入力されるモデル学習用データの最後のLサンプルと、学習モジュール13iに入力されるモデル学習用データの最初のLサンプルは一致する。
【0146】
しかし、図5に示すように、t=1からt=Nの区間L1における学習モデル#i-1のコンテキストと学習モデル#iのコンテキストとは、それぞれの学習モデルのモデルパラメータに応じて異なる値をとることになる。
【0147】
図5上段の区間L1には、学習モジュール13i-1と学習モジュール13iに入力されたモデル学習用データ全体のうちのオーバラップ部分が入力されたときにそれぞれの学習モデルにおいて観測されたコンテキストを示している。区間L1の学習モデル#i-1のコンテキストの値と、学習モデル#iのコンテキストの値とは大きく異なっている。
【0148】
同様に、学習モジュール13iに入力されるモデル学習用データの最後のLサンプルと、学習モジュール13i+1に入力されるモデル学習用データの最初のLサンプルは一致する。
【0149】
しかし、図5に示すように、t=T-N+1からt=Tの区間L2における学習モデル#iのコンテキストと学習モデル#i+1のコンテキストとは、それぞれの学習モデルのモデルパラメータに応じて異なる値をとることになる。
【0150】
図5上段の区間L2には、学習モジュール13iと学習モジュール13i+1に入力されたモデル学習用データ全体のうちのオーバラップ部分が入力されたときにそれぞれの学習モデルにおいて観測されたコンテキストを示している。区間L2の学習モデル#iのコンテキストの値と、学習モデル#i+1のコンテキストの値とは大きく異なっている。
【0151】
以下、モデル学習用データ全体のうちのオーバラップ部分に対応して出力されたコンテキストの部分をコンテキストのオーバラップ部分という。例えば、図5上段の区間L1は、学習モデル#iのコンテキストと学習モデル#i-1のコンテキストのオーバラップ部分の区間である。
【0152】
各学習モジュールにおいては、隣接する学習モジュールの学習モデルとの間でコンテキストの値が連続的になるように、コンテキストの教師となる内部変数教師データが生成され、学習が行われる。内部変数教師データを用いた学習は、コンテキストの、内部変数教師データに対する誤差が小さくなるようにして行われる。
【0153】
内部変数教師データは、前段の学習モデルのコンテキストの最後のオーバラップ部分の値と、後段の学習モデルのコンテキストの最初のオーバラップ部分の値の線形和によって、内部変数教師データ生成部24iにより計算される。
【0154】
モデル学習用データのオーバラップ長をNサンプル、モデル学習用データ長をTサンプルとすると、学習モジュール13iの最初のオーバラップ部分である区間L1における内部変数教師データCti1...Nは、下式(1)により計算される。
【数1】

【0155】
式(1)のCi-1T-N+1...Tは、学習モデル#i-1のコンテキスト全体のうちの、最後のオーバラップ部分、すなわち、学習モデル#iのコンテキストとのオーバラップ部分の値を表す。Ci1...Tは、学習モデル#iのコンテキスト全体のうちの、最初のオーバラップ部分、すなわち、学習モデル#i-1のコンテキストとのオーバラップ部分の値を表す。
【0156】
εは、他の学習モデルのコンテキストとの線形和を取るときの重みとなる所定の値である。
【0157】
同様に、学習モジュール13iの最後のオーバラップ部分である区間L2における内部変数教師データCtiT-N+1は、下式(2)により計算される。
【数2】

【0158】
式(2)のCi+11...Tは、学習モデル#i+1のコンテキスト全体のうちの、最初のオーバラップ部分、すなわち、学習モデル#iのコンテキストとのオーバラップ部分の値を表す。CiT-N+1は、学習モデル#i+1のコンテキスト全体のうちの、最後のオーバラップ部分、すなわち、学習モデル#iのコンテキストとのオーバラップ部分の値を表す。
【0159】
以上のようにして計算された内部変数教師データCti1...Nと内部変数教師データCtiT-N+1を含む、学習モジュール13iの内部変数教師データ全体を図5の下段に示す。
【0160】
なお、各学習モジュール13iにおいて、初期コンテキストに与える内部変数教師データは、学習順で前段の学習モジュール13iで得られたコンテキストの値が引き継がれる(そのまま用いられる)。
【0161】
内部変数教師データとコンテキストの誤差を小さくするようにして順伝播での学習と逆伝播での学習が繰り返されることによって、モデルパラメータが調整される。
【0162】
そのような学習が繰り返されることにより、学習モデル#iのコンテキスト全体のうちの最初のオーバラップ部分の値は、学習モデル#i-1のコンテキストの最後のオーバラップ部分の値に近いものになる。
【0163】
学習モジュール13i-1においても同様にして学習が行われるから、学習モデル#i-1のコンテキスト全体のうちの最後のオーバラップ部分の値は、学習モデル#iのコンテキストの最初のオーバラップ部分の値に近いものになる。
【0164】
すなわち、学習モデル#iのコンテキストと学習モデル#i-1のコンテキストとは、より連続的なものになる。
【0165】
また、学習モデル#iのコンテキスト全体のうちの最後のオーバラップ部分の値は、学習モデル#i+1のコンテキストの最初のオーバラップ部分の値に近いものになる。
【0166】
学習モジュール13i+1においても同様にして学習が行われるから、学習モデル#i+1のコンテキスト全体のうちの最初のオーバラップ部分の値は、学習モデル#iのコンテキストの最後のオーバラップ部分の値に近いものになる。
【0167】
すなわち、学習モデル#iのコンテキストと学習モデル#i+1のコンテキストとは、より連続的なものになる。
【0168】
このように、学習モデル#iのコンテキストと学習モデル#i-1のコンテキストとが連続的なものになり、学習モデル#iのコンテキストと学習モデル#i+1のコンテキストとが連続的なものになる。従って、学習モジュール13iないし13Nの学習モデルのコンテキスト全体が連続的なものになる。
【0169】
全体のコンテキストが連続的なものになることにより、各学習モジュール13iにおいて、その学習モデル#iのコンテキストの意味を統一させることが可能になる。
【0170】
[モデルパラメータの共有]
図6は、モデルパラメータの共有の概念を示す図である。
【0171】
N個の学習モジュール131ないし13Nのすべてに、モデルパラメータを共有させる場合について説明する。
【0172】
図6においては、モデルパラメータ保存部23iとモデルパラメータ共有部14以外の図示を省略している。図6に示すように、モデルパラメータ共有部14にはウエイトマトリクス共有部14Aが設けられる。RNNのモデルパラメータとしてのウエイトは複数あるが、その複数のウエイトをコンポーネントとするマトリクスをウエイトマトリクスという。
【0173】
ウエイトマトリクス共有部14Aは、モデルパラメータ保存部231ないし23Nに記憶された学習モデル#1ないし#Nの複数のモデルパラメータとしてのウエイトマトリクスすべてを、学習モジュール131ないし13Nのそれぞれに共有させる。
【0174】
すなわち、学習モデル#iのウエイトマトリクスをwiと表すと、ウエイトマトリクス共有部14Aは、ウエイトマトリクスwiを、N個の学習モジュール131ないし13Nそれぞれのウエイトマトリクスw1ないしwNのすべてに基づいて補正する。これにより、ウエイトマトリクス共有部14Aは、ウエイトマトリクスwiに、ウエイトマトリクスw1ないしwNのすべてを影響させる。
【0175】
具体的には、ウエイトマトリクス共有部14Aは、例えば、次式(3)に従い、学習モデル#iのウエイトマトリクスwiを補正する。
【数3】

【0176】
式(3)のΔwiは、ウエイトマトリクスwiを補正する補正成分であり、例えば、式(4)に従って求められる。
【数4】

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

【0182】
ここで、式(5)において、βij'は、学習モデル#iのウエイトマトリクスwiに、学習モデル#j(j=1,2,・・・,N)のウエイトマトリクスwjを影響させる度合いを表す係数である。
【0183】
式(5)の右辺の第2項におけるサメーションΣβij'wjは、係数βij'を重みとした、学習モデル#1ないし#Nのウエイトマトリクスw1ないしwNの重み付け平均値を表す。αi'は、その重み付け平均値Σβij'wjを、ウエイトマトリクスwiに影響させる度合いを表す係数である。
【0184】
係数αi'及びβij'としては、例えば、0.0より大で1.0より小の値を採用することができる。
【0185】
式(5)によれば、係数αi'が大であるほど、共有が弱くなり(ウエイトマトリクスwiが受ける重み付け平均値Σβij'wjの影響が小さくなり)、係数αi'が小であるほど、共有が強まる。
【0186】
[コネクティビティの算出の方法]
図7を参照して、コネクティビティ算出部15(図1)によるコネクティビティの算出の方法について説明する。
【0187】
コネクティビティ算出部15は、複数の学習モデル#1ないし#Nのそれぞれに記憶されたダイナミクスとしての時系列パターンどうしが接続する接続性(適切さ)を表すコネクティビティを求める。
【0188】
すなわち、コネクティビティ算出部15は、複数の学習モデル#1ないし#Nから、2つの学習モデル#iと#j(i≠j)の並び(順列)を、モデルペアとして選択する。
【0189】
さらに、コネクティビティ算出部15は、モデルペアを構成する学習モデル#iと#jが生成するモデル生成データ#iと#jそれぞれの一部分のデータ列(複数サンプル)であるオーバラップ部分の、いわば順伝播と逆伝播(順伝搬と逆伝搬)を繰り返す。これにより、コネクティビティ算出部15は、学習モデル#iと#jそれぞれが生成するモデル生成データ#iと#jどうしを、なるべく繋がりやすくする、学習モデル#iと#jの初期コンテキスト(以下、最適初期コンテキストともいう)を求める。
【0190】
ここで、モデル生成データのオーバラップ部分とは、学習モデルの学習に用いられたモデル学習用データのオーバラップ部分に相当する部分である。
【0191】
すなわち、図4で説明したように、学習モデルの学習は、オーバラップ部分を有するSサンプルのモデル学習用データを用いて行われる。
【0192】
したがって、学習モデルから、Sサンプルの時系列を、モデル生成データとして生成させた場合、そのモデル生成データは、学習に用いられたモデル学習用データのオーバラップ部分に相当する部分を有する。この、モデル生成データが有する、モデル学習用データのオーバラップ部分に相当する部分が、モデル生成データのオーバラップ部分である。
【0193】
また、学習モデルから、Sサンプルの時系列を、モデル生成データとして生成させた場合に観測されるコンテキストは、学習に用いられたモデル学習用データのオーバラップ部分に相当する部分を有する。この、コンテキストが有する、モデル学習用データのオーバラップ部分に相当する部分が、コンテキストのオーバラップ部分である。
【0194】
コネクティビティ算出部15は、最適初期コンテキストを求めた後、学習モデル#iと#jに、それぞれの最適初期コンテキストを与えて、モデル生成データ#iと#jを生成する。また、このとき、コネクティビティ算出部15は、コンテキスト#iと#jを生成する。
【0195】
そして、コネクティビティ算出部15は、モデルペアを構成する前モデル、つまり、モデルペアの1番目の学習モデル#iが生成したモデル生成データ#iの最後のオーバラップ部分(最後のLサンプル)と、後モデル、つまり、モデルペアの2番目の学習モデル#jが生成したモデル生成データ#jの最初のオーバラップ部分(最初のLサンプル)との累積距離(誤差の累積値)を算出する。
【0196】
また、コネクティビティ算出部15は、モデルペアを構成する学習モデル#iが生成したコンテキスト#iの最後のオーバラップ部分と、学習モデル#jが生成したコンテキスト#jの最初のオーバラップ部分との累積距離を算出する。
【0197】
コネクティビティ算出部15は、算出した2つの累積距離の和を、前モデルとしての学習モデル#iに対する、後モデルとしての学習モデル#jのコネクティビティcijとして求める。
【0198】
教師データ分割部12において、教師データを、オーバラップ部分を有するモデル学習用データに分割するのは、コネクティビティを算出するためである。
【0199】
図7を参照して、コネクティビティ算出部15(図1)によるコネクティビティの算出について、さらに説明する。
【0200】
コネクティビティ算出部15は、N個の学習モデル#1ないし#Nから、前モデルとなる学習モデル#iを選択するとともに、その学習モデル#i以外の学習モデル#jを、後モデルとして選択する。
【0201】
そして、コネクティビティ算出部15は、前モデルである学習モデル#iの入力データの最初の1サンプルとして、学習モデル#iに割り当てられたモデル学習用データ#iの最初の1サンプルを設定する。
【0202】
さらに、コネクティビティ算出部15は、後モデルである学習モデル#jの出力データの最後の1サンプルの真値として、学習モデル#jに割り当てられたモデル学習用データ#jの最後の1サンプルを設定する。
【0203】
また、コネクティビティ算出部15は、前モデルである学習モデル#iと、後モデルである学習モデル#jのそれぞれの初期コンテキストとして、ランダムな値を設定する。
【0204】
そして、コネクティビティ算出部15は、前モデルである学習モデル#iに、入力データと初期コンテキストを与えて、例えば、モデル学習用データ#iと同一の長さのS(S=T+L)サンプルのモデル生成データ#iを生成する。
【0205】
このとき、コネクティビティ算出部15は、モデル学習用データ#iと同一の長さのSサンプルのコンテキスト#iを生成する。
【0206】
前モデルである学習モデル#iから、Sサンプルのモデル生成データ#iとコンテキスト#iを生成した後、コネクティビティ算出部15は、そのモデル生成データ#iの最後のオーバラップ部分であるLサンプルを、後モデルである学習モデル#jの入力データの最初のLサンプルとして設定する。
【0207】
また、コネクティビティ算出部15は、コンテキスト#iの最後のオーバラップ部分であるLサンプルを、後モデルである学習モデル#jの初期コンテキストの最初のLサンプルとして設定する。ランダムな値として設定された学習モデル#jの初期コンテキスト全体のうちの最初のLサンプルが、コンテキスト#iの最後のオーバラップ部分であるLサンプルによって置き換えられる。
【0208】
そして、コネクティビティ算出部15は、後モデルである学習モデル#jに、入力データと初期コンテキストを与えて、例えば、モデル学習用データ#jと同一の長さのSサンプルのモデル生成データ#jとコンテキスト#jを生成する。
【0209】
ここで、以上のように、前モデルである学習モデル#iから生成されたモデル生成データ#iの最後のオーバラップ部分であるLサンプルを、後モデルである学習モデル#jの入力データの最初のLサンプルとして設定するとともに、前モデルである学習モデル#iから生成されたコンテキスト#iの最後のオーバラップ部分であるLサンプルを、後モデルである学習モデル#jの初期コンテキストの最初のLサンプルとして設定し、後モデルである学習モデル#jから、モデル生成データ#jとコンテキスト#jを生成することが、上述した、オーバラップ部分の順伝播である。
【0210】
後モデルである学習モデル#jから、Sサンプルのモデル生成データ#jとコンテキスト#jを生成した後、コネクティビティ算出部15は、そのモデル生成データ#jの最後のサンプルの、後モデルの出力データの最後の1サンプルの真値に対する予測誤差を求める。
【0211】
そして、コネクティビティ算出部15は、モデル生成データ#jの最後の1サンプルの予測誤差を、例えば、BPTT法に基づき、モデル生成データ#jの最初の1サンプルまで逆伝播(誤差の逆伝播)することで、その予測誤差を小さくするように、後モデルである学習モデル#jの初期コンテキストを更新する。
【0212】
学習モデル#jの初期コンテキストの更新後、コネクティビティ算出部15は、学習モデル#jに、入力データと、更新後の初期コンテキストを与えて、Sサンプルのモデル生成データ#jを生成する。ここで学習モデル#jに与えられる入力データは、前モデルである学習モデル#iから生成されたモデル生成データ#iの最後のオーバラップ部分のLサンプルである。
【0213】
さらに、コネクティビティ算出部15は、後モデルである学習モデル#jから生成されたモデル生成データ#jの最初のオーバラップ部分であるLサンプルを、前モデルである学習モデル#iの最後のLサンプルの真値として設定する。
【0214】
また、コネクティビティ算出部15は、後モデルである学習モデル#jから生成されたコンテキスト#jの最初のオーバラップ部分であるLサンプルを、前モデルである学習モデル#iの最後のLサンプルとして設定する。
【0215】
そして、コネクティビティ算出部15は、モデル生成データ#iの最後のLサンプルの予測誤差を例えばBPTT法に基づき、モデル生成データ#iの最初の1サンプルまで逆伝播(誤差の逆伝播)することで、その予測誤差を小さくするように、前モデルである学習モデル#iの初期コンテキストを更新する。
【0216】
学習モデル#iの初期コンテキストの更新後、コネクティビティ算出部15は、学習モデル#iに、入力データと、更新後の初期コンテキストを与えて、Sサンプルのモデル生成データ#iを生成する。
【0217】
ここで、以上のように、後モデルである学習モデル#jから生成されたモデル生成データ#jの最初のオーバラップ部分であるLサンプルを、前モデルである学習モデル#iの出力データの最後のLサンプルの真値として設定し、その真値に対する、モデル生成データ#iの最後のLサンプルの予測誤差が小さくなるように、学習モデル#iの初期コンテキストを更新して、モデル生成データ#iを生成することが、オーバラップ部分の逆伝播である。
【0218】
コネクティビティ算出部15は、前モデルである学習モデル#iから、Sサンプルのモデル生成データ#iとコンテキスト#iを生成した後、そのモデル生成データ#iの最後のオーバラップ部分であるLサンプルを、後モデルである学習モデル#jの入力データの最初のLサンプルとして設定する。
【0219】
また、コネクティビティ算出部15は、コンテキスト#iの最後のオーバラップ部分であるLサンプルを、後モデルであるコンテキスト#jのコンテキストの最初のLサンプルとして設定し、以下、同様の処理を所定の回数だけ繰り返す。
【0220】
コネクティビティ算出部15は、処理を所定の回数だけ繰り返した後、最後の順伝播が終了した時点における各生成波形に基づいて、コネクティビティを算出する。
【0221】
すなわち、コネクティビティ算出部15は、前モデルである学習モデル#iから生成したモデル生成データ#iと、後モデルである学習モデル#jから生成したモデル生成データ#jとのオーバラップ部分の累積距離を算出する。
【0222】
また、コネクティビティ算出部15は、最後の順伝播時における、前モデルである学習モデル#iから生成したコンテキスト#iと、後モデルである学習モデル#jから生成したコンテキスト#jとのオーバラップ部分の累積距離を算出する。
【0223】
コネクティビティ算出部15は、最後の順伝播時におけるモデル生成データ#iと#jのオーバラップ部分の累積距離と、コンテキスト#iと#jのオーバラップ部分の累積距離との和を、学習モデル#iに対する学習モデル#jのコネクティビティcijとして求める。
【0224】
コネクティビティcijは下式(6)により表される。
【数6】

【0225】
式(6)において、xi(t)は、学習モデル#iから生成されるモデル生成データ#iの時刻tのサンプル(モデル生成データ#iの先頭からtサンプル目)を表す。yj(t+T)は、学習モデル#jから生成されるモデル生成データ#jの時刻t+Tのサンプルを表す。
【0226】
また、ci(t)は、学習モデル#iから生成されるコンテキスト#iの時刻tのサンプルを表す。cj(t+T)は、学習モデル#jから生成されるコンテキスト#jの時刻t+Tのサンプルを表す。
【0227】
[学習装置1の動作]
図8のフローチャートを参照して、学習装置1の処理について説明する。
【0228】
ステップS1において、学習装置1は学習処理を行う。学習処理により、各学習モジュール13の学習モデルのモデルパラメータの更新学習が行われる。学習処理については図9のフローチャートを参照して後述する。
【0229】
ステップS2において、学習装置1はコネクティビティ算出処理を行う。コネクティビティ算出処理により、学習が行われた学習モデル#1ないし#Nすべてについて、コネクティビティcijが算出される。コネクティビティ算出処理については図10乃至12を参照して後述する。コネクティビティ算出処理が終了した後、処理は終了される。
【0230】
[学習処理]
次に、図9のフローチャートを参照して、図8のステップS1において行われる学習処理について説明する。
【0231】
ステップS11において、教師データ分割部12は、教師データ保存部11に記憶されている教師データを読み出し、その入力を受ける。
【0232】
ステップS12において、教師データ分割部12は、図4を参照して説明したように、オーバラップ部分を持たせた形で、教師データを複数のモデル学習用データに分割する。
【0233】
ステップS13において、学習モジュール13iの学習部22iは、モデルパラメータ保存部23iに記憶された学習モデル#iのモデルパラメータであるウエイトマトリクスwiを、例えば、乱数等によって初期化する。
【0234】
ステップS14において、学習モジュール13iは、モデル学習用データを用いて、モデルパラメータを更新する更新学習を行う。内部変数教師データが生成されている場合、学習モジュール13iは、内部変数教師データをも用いて更新学習を行う。
【0235】
すなわち、学習モジュール13iのモデル学習用データ保存部21iは、教師データ分割部12から供給されたモデル学習用データを一時的に保存し、学習部22iに供給する。
【0236】
また、学習部22iは、モデル学習用データ保存部21iからのモデル学習用データと、内部変数教師データ生成部24iから適宜供給される内部変数教師データを用いて、学習モデル#iのウエイトマトリクスwiを更新する更新学習を行う。更新学習は、例えば、BPTT(Back-Propagation Through Time)法により行われる。BPTT法については特開2002-236904号公報等に記載されている。
【0237】
学習部22iは、更新学習によって得られた新たなモデルパラメータとしてのウエイトマトリクスwiによって、モデルパラメータ保存部23iの記憶内容を更新する。
【0238】
ステップS15において、内部変数教師データ生成部24iは、図5を参照して説明したようにして内部変数教師データを生成する。
【0239】
ステップS16において、モデルパラメータ共有部14のウエイトマトリクス共有部14Aは、N個の学習モジュール131ないし13Nのすべてに、ウエイトマトリクスw1ないしwNのすべてを共有させる共有処理を行う。
【0240】
ステップS17において、学習装置1は、学習の終了条件が満たされているかどうかを判定する。
【0241】
学習の終了条件が満たされていないとステップS17において判定された場合、ステップS4に戻り、同様の処理、すなわち、ウエイトマトリクスwiの更新学習と、内部変数教師データの生成と、モデルパラメータの共有とが繰り返される。
【0242】
一方、ステップS17において、学習の終了条件が満たされていると判定された場合、処理は終了される。
【0243】
例えば、ステップS14乃至S16の処理の繰り返された回数があらかじめ定められた所定の回数になった場合や、ある入力データに対して学習モデル#iが出力する出力データの、入力データに対する誤差が所定値以下になった場合に、学習処理は終了される。
【0244】
ステップS14乃至S16の処理が繰り返されることにより、ウエイトマトリクスは各学習モジュール13i間で共有され、また、学習モジュール13iのコンテキストの値は前後で連続的に繋がるように学習が行われることになる。
【0245】
これにより、長時間の時系列パターンを記憶しているシステム全体として、内部変数の役割(意味)を共有することが可能となり、より長期の因果をモデルパラメータ保存部23iに記憶させておくことが可能になる。
【0246】
[コネクティビティ算出処理]
次に、図10乃至12のフローチャートを参照して、図8のステップS2において行われるコネクティビティ算出処理について説明する。
【0247】
ステップS21において、コネクティビティ算出部15(図1)が、N個の学習モデル#1ないし#Nから、まだ、モデルペアとして選択していない順列となる2つの学習モデル#iと#jの並びを選択する。
【0248】
すなわち、コネクティビティ算出部15は、N個の学習モデル#1ないし#Nのうちの1つの学習モデルから、モデルペアの前モデルとなる学習モデル#iを選択するとともに、その学習モデル#i以外の学習モデル#jを、モデルペアの後モデルとして選択する。
【0249】
ステップS22では、コネクティビティ算出部15は、モデル学習用データ保存部21(図1)から、モデルペアを構成する2つの学習モデルである前モデルと後モデルのそれぞれに割り当てられたモデル学習用データを読み込む。
【0250】
ステップS23では、コネクティビティ算出部15は、モデルペアを構成する前モデルと後モデルそれぞれのモデルパラメータを、モデルパラメータ保存部23(図1)から読み出す。
【0251】
ステップS24では、コネクティビティ算出部15は、前モデルの入力データの最初の1サンプルとして、前モデルに割り当てられたモデル学習用データの最初の1サンプルを設定する。
【0252】
ステップS25では、コネクティビティ算出部15は、前モデルのモデルパラメータを、学習モデルに設定することで、前モデルを生成する。
【0253】
ステップS26では、コネクティビティ算出部15は、後モデルの出力データの最後の1サンプルの真値として、後モデルに割り当てられたモデル学習用データの最後の1サンプルを設定する。
【0254】
ステップS27では、コネクティビティ算出部15は、後モデルのモデルパラメータを、学習モデルに設定することで、後モデルを生成する。
【0255】
ステップS28では、コネクティビティ算出部15は、前モデルと後モデルのそれぞれの初期コンテキストとして、ランダムな値を設定する。
【0256】
図11は、図10に続くフローチャートである。
【0257】
ステップS31では、コネクティビティ算出部15は、前モデルに、ステップS24で設定された入力データと、初期コンテキストを与えて、モデル生成データとコンテキストを生成する。
【0258】
ステップS32では、コネクティビティ算出部15は、前モデルから生成されたモデル生成データの最後のオーバラップ部分であるLサンプルを、後モデルの入力データの最初のLサンプルとして設定する。また、コネクティビティ算出部15は、前モデルから生成されたコンテキストの最後のオーバラップ部分であるLサンプルを、後モデルの初期コンテキストの最初のLサンプルとして設定する。
【0259】
ステップS33では、コネクティビティ算出部15は、後モデルに、ステップS32で設定された入力データと、初期コンテキストを与えて、モデル生成データとコンテキストを生成する。
【0260】
ステップS34では、コネクティビティ算出部15は、後モデルから生成されたモデル生成データの最後の1サンプルの、ステップS26で設定された真値に対する予測誤差を求める。
【0261】
ステップS35では、コネクティビティ算出部15は、ステップS34で求められた予測誤差をBPTT法に基づき、後モデルから生成されたモデル生成データの最初の1サンプルまで逆伝播することで、後モデルの初期コンテキストを更新する。
【0262】
ステップS36では、コネクティビティ算出部15は、後モデルに、ステップS32で設定された入力データと、ステップS35での更新後の初期コンテキストを与えて、モデル生成データとコンテキストを生成する。
【0263】
ステップS37では、コネクティビティ算出部15は、後モデルから生成されたモデル生成データの最初のオーバラップ部分のLサンプルを、前モデルの最後のLサンプルの真値として設定する。また、コネクティビティ算出部15は、後モデルから生成されたコンテキストの最初のオーバラップ部分であるLサンプルを、前モデルの最後のLサンプルとして設定する。
【0264】
ステップS38では、コネクティビティ算出部15は、前モデルから生成されたモデル生成データの最後のLサンプルの、ステップS37で設定された真値に対する予測誤差を求める。
【0265】
ステップS39では、コネクティビティ算出部15は、ステップS38で求められた予測誤差を、例えばBPTT法に基づき、前モデルから生成されたモデル生成データの最初の1サンプルまで逆伝播することで、前モデルの初期コンテキストを更新する。
【0266】
図12は、図11に続くフローチャートである。
【0267】
ステップS41では、コネクティビティ算出部15は、図11のステップS31ないしS39の処理を所定の回数だけ繰り返したか否かを判定する。
【0268】
ステップS41において、ステップS31ないしS39の処理を所定の回数だけ繰り返していないと判定された場合、ステップS31に戻り、以上の処理が繰り返される。コネクティビティ算出部15は、前モデルに、ステップS24で設定された入力データと、初期コンテキスト(いまの場合、ステップS39での更新後の初期コンテキスト)を与えて、モデル生成データとコンテキストを生成し、以下、同様の処理を繰り返す。
【0269】
ステップS31ないしS39の処理を所定の回数だけ繰り返したとステップS41において判定された場合、処理はステップS42に進む。
【0270】
ステップS42において、コネクティビティ算出部15は、最後の順伝播が終了した時点における、前モデルから生成したモデル生成データと、後モデルから生成したモデル生成データとのオーバラップ部分の累積距離を算出する。
【0271】
また、コネクティビティ算出部15は、最後の順伝播が終了した時点における、前モデルから生成したコンテキストと、後モデルから生成したコンテキストとのオーバラップ部分の累積距離を算出する。
【0272】
コネクティビティ算出部15は、算出した2つの累積距離の和を、前モデルに対する後モデルのコネクティビティcijとして求める。
【0273】
ステップS43では、コネクティビティ算出部15は、ステップS42で求めたコネクティビティcijを、コネクティビティ保存部16に供給して記憶させる。
【0274】
ステップS44では、コネクティビティ算出部15は、N個の学習モデル#1ないし#Nが取り得る、2つの学習モデルの順列のすべてを、モデルペアとして、コネクティビティを求めたかどうかを判定する。
【0275】
ステップS44において、まだ、モデルペアとしていない2つの学習モデルの順列があると判定された場合、図10のステップS21に戻り、同様の処理が繰り返される。
【0276】
ステップS44において、モデルペアとしていない2つの学習モデルの順列がないと判定された場合、図8のステップS2に戻り、その後、学習装置1の処理が終了される。
【0277】
以上のように、学習装置1によれば、内部変数の意味を全ての学習モデルに共通して持たせることができるから、学習モデル間の接続性を表すコネクティビティを、内部変数の連続性をも考慮して評価することが可能になる。
【0278】
[データ生成装置2の詳細構成例]
図13は、図1のデータ生成装置2のより詳細な構成例を示している。
【0279】
なお、図13では、教師データが、複数であるN個のモデル学習用データ#1ないし#Nに分割され、そのN個のモデル学習用データ#1ないし#Nを用いての、N個の学習モデル#1ないし#Nの学習が、コネクティビティの算出も含めて、既に済んでいることとする。
【0280】
始点モデル選択部33は、現在データ分配部61、モデルパラメータ供給部62、N個の認識生成部631ないし63N、及び、始点モデル決定部64から構成される。
【0281】
現在データ分配部61は、現在データ供給部31から始点モデル選択部33に供給される現在データを、N個の認識生成部631ないし63Nすべてに供給(分配)する。
【0282】
モデルパラメータ供給部62は、N個の学習モデル#1ないし#Nのモデルパラメータ#1ないし#Nを、モデルパラメータ保存部23から読み出す。さらに、モデルパラメータ供給部62は、モデルパラメータ保存部23から読み出したモデルパラメータ#nを、認識生成部63nに供給する。
【0283】
認識生成部63nは、モデルパラメータ供給部62からのモデルパラメータ#nを、学習モデルに設定することで、学習モデル#nを生成する。例えば、認識生成部63nは、モデル学習用データ#nを用いた学習が済んだ学習モデル#nの、オブジェクト指向プログラミングにおけるインスタンスを生成する。
【0284】
そして、認識生成部63nは、現在データ分配部61から供給される現在データを、学習モデル#nに与えることで、学習モデル#nから、現在データの予測値#nを生成する。
【0285】
なお、学習モデル#nからの、現在データの予測値#nの生成において、学習モデル#nに与える初期コンテキストとしては、例えば、ランダムな値を採用することができる。また、学習モデル#nに与える初期コンテキストとしては、その他、例えば、現在データの予測値#nを小さくする初期コンテキスト(最適初期コンテキスト)を求め、その最適初期コンテキストを採用することができる。
【0286】
認識生成部63nは、学習モデル#nから、現在データの予測値#nを生成すると、その予測値#nの予測誤差を求め、始点モデル決定部64に供給する。
【0287】
始点モデル決定部64は、認識生成部631ないし63Nからそれぞれ供給される、現在データの予測値#1ないし#Nの予測誤差が小さい上位1個以上の学習モデルを、始点モデルとして選択する。始点モデル決定部64は、始点モデルの始点モデルIDを、生成用モデルシーケンス算出部35に供給する。
【0288】
終点モデル選択部34は、目標データ分配部71、モデルパラメータ供給部72、N個の認識生成部731ないし73N、及び、終点モデル決定部74から構成される。
【0289】
目標データ分配部71は、目標データ供給部32から終点モデル選択部34に供給される目標データを、N個の認識生成部731ないし73Nすべてに供給(分配)する。
【0290】
モデルパラメータ供給部72は、N個の学習モデル#1ないし#Nのモデルパラメータ#1ないし#Nを、モデルパラメータ保存部23から読み出す。さらに、モデルパラメータ供給部72は、モデルパラメータ保存部23から読み出したモデルパラメータ#nを、認識生成部73nに供給する。
【0291】
認識生成部73nは、モデルパラメータ供給部72からのモデルパラメータ#nを、学習モデルに設定することで、学習モデル#nを生成する。
【0292】
そして、認識生成部73nは、目標データ分配部71から供給される目標データを、学習モデル#nに与えることで、学習モデル#nから、目標データの予測値#nを生成する。
【0293】
なお、学習モデル#nからの、目標データの予測値#nの生成において、学習モデル#nに与える初期コンテキストとしては、現在データの予測値#nの生成の場合と同様に、ランダムな値や、最適初期コンテキストを採用することができる。
【0294】
認識生成部73nは、学習モデル#nから、目標データの予測値#nを生成すると、その予測値#nの予測誤差を求め、終点モデル決定部74に供給する。
【0295】
終点モデル決定部74は、認識生成部731ないし73Nからそれぞれ供給される、目標データの予測値#1ないし#Nの予測誤差が小さい上位1個以上の学習モデルを、終点モデルとして選択する。終点モデル決定部74は、終点モデルの終点モデルIDを、生成用モデルシーケンス算出部35に供給する。
【0296】
生成用モデルシーケンス算出部35は、始点モデルID供給部81、終点モデルID供給部82、及び、シーケンス算出部83から構成される。
【0297】
始点モデルID供給部81は、始点モデル選択部33(の始点モデル決定部64)から生成用モデルシーケンス算出部35に供給される始点モデルIDを受信し、シーケンス算出部83に供給する。
【0298】
終点モデルID供給部82は、終点モデル選択部34(の終点モデル決定部74)から生成用モデルシーケンス算出部35に供給される終点モデルIDを受信し、シーケンス算出部83に供給する。
【0299】
シーケンス算出部83は、始点モデルIDによって特定される始点モデルから、終点モデルIDによって特定される終点モデルまでの、複数の学習モデルの、ある並びを、生成用モデルシーケンスとして求める。
【0300】
すなわち、シーケンス算出部83は、コネクティビティ保存部16に記憶されたコネクティビティcijに対応する値を、学習モデル#iの後に、学習モデル#jを接続するのに要するコスト(以下、接続コストともいう)とする。シーケンス算出部83は、その接続コストの累積値を最小にする、始点モデルから終点モデルまでの学習モデルの並びを、生成用モデルシーケンスとして求める。
【0301】
そして、シーケンス算出部83は、生成用モデルシーケンスを、時系列データ生成部36に供給する。
【0302】
ここで、シーケンス算出部83は、コネクティビティcijに対応する値によって表される接続コストをノード(学習モデル)どうしの距離とみなす。シーケンス算出部83は、接続コストの累積値を最小にする、始点モデルから終点モデルまでの学習モデルの並びである生成用モデルシーケンスを、一般的な経路探索アルゴリズムによって求める。
【0303】
生成用モデルシーケンスを求めるための経路探索アルゴリズムとしては、例えば、ダイクストラ法や、ビタビアルゴリズムを採用することができる。
【0304】
なお、生成用モデルシーケンス算出部35は、始点モデル選択部33から、複数の始点モデルIDが供給される場合や、終点モデル選択部34から、複数の終点モデルIDが供給される場合、つまり、複数の学習モデルが、始点モデルや終点モデルとして選択された場合、その複数の始点と終点の組み合わせすべてについて、生成用モデルシーケンスを算出する。
【0305】
すなわち、始点モデルとして選択された学習モデルの数をAと表すとともに、終点モデルとして選択された学習モデルの数をBと表すこととすると、生成用モデルシーケンス算出部35は、A×B個の生成用モデルシーケンスを算出する。
【0306】
そして、生成用モデルシーケンス算出部35は、A×B個の生成用モデルシーケンスのうちの、接続コストの累積値が最小の生成用モデルシーケンスを、時系列データの生成に用いる生成用モデルシーケンスに決定し、時系列データ生成部36に供給する。
【0307】
時系列データ生成部36は、シーケンス供給部91、モデルパラメータ供給部92、N個の認識生成部931ないし93N、及び、統合生成部94から構成される。
【0308】
シーケンス供給部91は、生成用モデルシーケンス算出部35(のシーケンス算出部83)から供給される生成用モデルシーケンスを受信し、モデルパラメータ供給部92に供給する。
【0309】
モデルパラメータ供給部92は、シーケンス供給部91からの生成用モデルシーケンスを構成する学習モデル(以下、構成モデルともいう)のモデルパラメータを、モデルパラメータ保存部23から読み出す。モデルパラメータ供給部92は、読み出したモデルパラメータを、認識生成部931ないし93Nのうちの必要なブロックに供給する。
【0310】
すなわち、生成用モデルシーケンスが、K(≦N)個の構成モデル#1ないし#Kの並びで構成されることとすると、モデルパラメータ供給部92は、構成モデル#1ないし#Kのモデルパラメータ#1ないし#Kを、モデルパラメータ保存部23から読み出す。
【0311】
さらに、モデルパラメータ供給部92は、構成モデル#k(k=1,2,・・・,K)のモデルパラメータ#kを、認識生成部931ないし93Nのうちの認識生成部93kに供給する。
【0312】
認識生成部93kは、モデルパラメータ供給部92からのモデルパラメータ#kを、学習モデルに設定することで、構成モデル#kを生成する。例えば、認識生成部93kは、モデル学習用データ#kを用いた学習が済んだ学習モデル#kの、オブジェクト指向プログラミングにおけるインスタンスを生成する。
【0313】
さらに、認識生成部93kは、構成モデル#kから、モデル生成データ#kを生成し、そのモデル生成データ#kの最後のオーバラップ部分と、認識生成部93k+1が構成モデル#k+1から生成するモデル生成データ#k+1、すなわち、モデル生成データ#kに接続されるモデル生成データ#k+1の最初のオーバラップ部分との誤差を小さくするように、構成モデル#kの初期コンテキストを更新することで、最適初期コンテキストを求める。
【0314】
そして、認識生成部931は、構成モデル#1に、その構成モデル#1の最適初期コンテキストを与えるとともに、現在データ供給部31から供給される現在データを入力データとして与えることで、モデル生成データ#1を生成して、統合生成部94に供給する。
【0315】
認識生成部931ないし93Kのうちの、認識生成部931以外の認識生成部93kは、構成モデル#kに、その構成モデル#kの最適初期コンテキストを与えるとともに、前段の認識生成部93k-1が構成モデル#k-1から生成したモデル生成データ#k-1の最後のオーバラップ部分を入力データの最初のLサンプルとして与えることで、モデル生成データ#kを生成して、統合生成部94に供給する。
【0316】
統合生成部94は、認識生成部931ないし93Kから供給されるモデル生成データ#1ないし#Kを、オーバラップ部分を考慮して接続することにより、滑らかな生成時系列データを構成(生成)し、時系列データ出力部37に供給する。
【0317】
[生成用モデルシーケンスの算出]
次に、生成用モデルシーケンス算出部35(図1)において、生成用モデルシーケンスを、例えば、ビタビアルゴリズムに基づいて求める方法について説明する。
【0318】
ここで、ビタビアルゴリズムは、観測結果について、1つの最も尤もらしい説明を与える動的計画法のアルゴリズムである。ビタビアルゴリズムで扱う事象(状態)の系列について、時刻tでの事象の計算は、直前の時刻t-1での事象の系列のみに依存していることを前提とする。すなわち、ビタビアルゴリズムで扱う事象は、未来の挙動が現在の値だけで決定され、過去の挙動と無関係であるという性質を持つマルコフ性を前提とする確率過程である。
【0319】
また、ビタビアルゴリズムは状態機械を仮定して動作する。すなわち、モデルとしたシステムは任意の時刻で何らかの状態を持つ。状態数は膨大であっても有限であり、リストアップ可能である。各状態はノードとして表される。与えられた状態に対応する状態の複数の系列(経路)が複数考えられるとしても、最も尤もらしい状態経路が1つある。ビタビアルゴリズムでは、ある状態に到達するあらゆる経路を調べ、最も尤もらしい経路を選ぶ。これを状態の並びに対して順次適用するため、あらゆる経路を保持しておく必要はなく、1つの状態につき1つの経路だけを保持すれば足りる。
【0320】
さらに、ビタビアルゴリズムでは、ある状態から別の状態への遷移について増分(通常、数)を付与する。この遷移は事象から求められる。また、ビタビアルゴリズムでは、事象は一般に加算的な意味で経路上で累積するとされる。ビタビアルゴリズムでは、各状態についての数を保持するとともに、ある事象が起きたとき、これまでの状態経路の持つ値と新たな遷移における増分を考慮し、最も良い状態を選択する。事象に対応した増分は、ある状態から別の状態への遷移確率に依存して決定される。
【0321】
生成用モデルシーケンスを、ビタビアルゴリズムに基づいて求める場合、学習後の学習モデル#1ないし#Nのそれぞれが、ビタビアルゴリズムにおける状態機械の状態(ノード)に相当する。したがって、学習後の学習モデル#1ないし#Nの数Nが、ビタビアルゴリズムの全状態数になる。
【0322】
また、ある状態から別の状態に遷移する際の事象に対応した増分、すなわち、ビタビアルゴリズムにおける遷移確率としては、接続コスト、すなわち、コネクティビティcijを用いることができる。但し、遷移確率と接続コスト(コネクティビティcij)とは、値の増減が逆の関係にある。すなわち、遷移確率は、値が大きいほど、状態遷移が生じやすいが、接続コストは、値が小さいほど、状態遷移に相当する、学習モデル#iと#jの接続が生じやすい(力学的接続可能性が高い)。
【0323】
ビタビアルゴリズムでは、ある始点となる状態から目標とする状態への全経路のうちの、遷移確率の総和が最大となる経路を最も尤もらしい経路(ビタビパス(Vitarbi path))として採用する。これと同様に、生成用モデルシーケンスの算出では、接続コストの累積値、つまり、コネクティビティcijの総和が最小となる経路をコストが最小の経路として採用し、その経路上の状態に相当する学習モデルの並びを、生成用モデルシーケンスとする。
【0324】
すなわち、生成用モデルシーケンス算出部35は、始点モデルから終点モデルまでの接続コストの累積値が最小になる、学習モデルの並びを、生成用モデルシーケンスとして求める。
【0325】
いま、最初の時刻t=1(始点モデルに相当する状態の時刻)から、ある時刻t=τまでの、状態#nごとの接続コストの累積値δn(τ)をコンポーネントとするベクトルを、累積値ベクトルd(τ)=(δ1(τ),δ2(τ),・・・,δN(τ))とする。生成用モデルシーケンス算出部35は、累積値ベクトルd(τ)=(δ1(τ),δ2(τ),・・・,δN(τ))を保持する。
【0326】
また、状態#iから状態#jへの状態遷移のコスト、すなわち、状態#iに相当する学習モデル#i(が生成するモデル生成データ#i)の直後に、状態#jに相当する学習モデル#j(が生成するモデル生成データ#j)が接続する接続コストを、bijで表す。接続コストbijの集合は、接続コストbijを、第i行第j列のコンポーネントとするマトリクスで表すことができる。
【0327】
ここで、接続コストbijを、第i行第j列のコンポーネントとするマトリクスを、接続コストマトリクスともいう。
【0328】
いま、学習モデル#iの直後に学習モデル#jが接続するのが不自然でないとみなすことができるコネクティビティcijの最大値を、cmaxと表し、その最大値cmaxを、コネクティビティcijの閾値とする。コネクティビティcijが、閾値cmax以下である場合には、接続コストbijとして、コネクティビティcijが採用される。また、コネクティビティcijが、閾値cmaxを超える場合には、接続コストbijとして、閾値cmaxより十分大きな値である接続不可能値cinfが採用される。
【0329】
ここで、閾値cmaxや接続不可能値cinfは、シミュレーション等によって求められる。
【0330】
すなわち、例えば、多数の教師データを用いて、学習モデル#iから生成されるモデル生成データの最後のオーバラップ部分と、学習モデル#jから生成されるモデル生成データの最初のオーバラップ部分とが似ていない場合(学習モデル#iから生成されるモデル生成データの直後に、学習モデル#jから生成されるモデル生成データが繋がることが不自然である場合)のコネクティビティcijの平均値等が、シミュレーションによって求められ、閾値cmaxとして採用される。
【0331】
また、例えば、多数の教師データを用いて、複数の学習モデルのすべてを接続した場合のコネクティビティの総和の最大値が求められる。その最大値よりも大きい値(生成用モデルシーケンスを構成する学習モデルのコネクティビティcijの総和として取り得ない大きな値)が、接続不可能値cinfとして採用される。
【0332】
以上のように、コネクティビティcijが、閾値cmax以下である場合には、接続コストbijとして、コネクティビティcijを採用し、コネクティビティcijが、閾値cmaxを超える場合には、接続コストbijとして、接続不可能値cinfを採用する。これにより、生成用モデルシーケンスにおいて、ある学習モデルの直後に接続され得る学習モデルと、接続されることがない学習モデルとを明確に区別することができる。
【0333】
生成用モデルシーケンス算出部35は、生成用モデルシーケンスを求めるにあたり、まず、上述したような接続コストマトリクスを生成するとともに、累積値ベクトルd(t)を初期化する。
【0334】
ここで、累積値ベクトルd(t)の初期化とは、時刻t=1のときの、累積値ベクトルd(1)のコンポーネントδ1(1),δ2(1),・・・,δN(1)の値を設定(セット)することである。累積値ベクトルd(t)の初期化では、コンポーネントδ1(1)ないしδN(1)のうちの、始点モデルとなっている学習モデルに対応するコンポーネントが、0とされ、その他のコンポーネントは、接続不可能値cinfとされる。
【0335】
接続コストマトリクスの生成と、累積値ベクトルd(t)の初期化が終了すると、生成用モデルシーケンス算出部35は、前向き計算(前向き方向(未来方向)の計算)を行うことで、各時刻tの累積値ベクトルd(t)を求める。
【0336】
図14は、生成用モデルシーケンス算出部35による前向き計算を説明する図である。
【0337】
図14において、横軸は、時刻tを表し、縦軸は、状態に相当する学習モデルを表す。
【0338】
生成用モデルシーケンス算出部35は、累積値ベクトルd(t)のコンポーネントδj(t)を、下式(7)に従って、コンポーネントδj(t+1)に更新することで、時刻tの累積値ベクトルd(t)を、時刻t+1の累積値ベクトルd(t+1)に更新する。
【数7】

【0339】
ここで、式(7)において、mini()は、変数iを、1ないしNの整数に変えたときのかっこ内の値の最小値を表す。
【0340】
式(7)によれば、時刻t+1の、学習モデル#jまでの接続コストの累積値δj(t+1)は、時刻tの、学習モデル#iまでの接続コストの累積値δi(t)と、学習モデル#iに対する学習モデル#jの接続コストbijとを用いて求められる。
【0341】
すなわち、式(7)によれば、時刻t+1において、学習モデル#jに至る、時刻tのすべての学習モデル#1ないし#Nからの接続のうちの、時刻t+1の、学習モデル#jまでの接続コストの累積値が最小になる接続(以下、最小接続ともいう)が選択される。そして、その最小接続を介して、時刻t+1に、学習モデル#jに至るまでの接続コストの累積値が、時刻t+1の、学習モデル#jまでの接続コストの累積値δj(t+1)として用いられる。
【0342】
これにより、生成用モデルシーケンス算出部35では、時刻t+1に、学習モデル#jに至る全経路を保持することなく、最小接続だけを選択することによって、時刻t+1の、学習モデル#jまでの接続コストの累積値δj(t+1)を求めることができる。
【0343】
なお、生成用モデルシーケンス算出部35は、式(2)によって、接続コストの累積値δj(t+1)を求めた学習モデル#1ないし#Nそれぞれに至るまでの学習モデルの系列(並び)の情報(以下、系列情報ともいう)を保持する。
【0344】
すなわち、生成用モデルシーケンス算出部35は、学習モデル#1ないし#Nそれぞれについて、時刻t+1の学習モデル#jへの最小接続となる、時刻tの学習モデル#iの情報(以下、最小接続元情報ともいう)を、時刻ごとに記憶する。
【0345】
以上のような前向き計算の開始後、生成用モデルシーケンス算出部35は、前向き計算を終了するための条件(以下、計算終了条件ともいう)の判定を開始し、計算終了条件が満たされたときに、前向き計算を終了する。
【0346】
ここで、生成用モデルシーケンス算出部35では、始点モデルから終点モデルまでの学習モデルの並びが、生成用モデルシーケンスとして求められるが、始点モデルから、何時刻後に、終点モデルに到達するかは、未知である。したがって、前向き計算を行うべき回数を、あらかじめ知ることは困難であり、そのため、前向き計算を終了するのに、計算終了条件が必要となる。
【0347】
計算終了条件としては、学習モデル#1ないし#Nのうちの、終点モデルに至るまでの接続コストの累積値δgoal(t)が、閾値δth以下になったこと(式δgoal(t)≦δthが満たされること)が採用される。
【0348】
ここで、累積値ベクトルd(t)の初期化では、接続コストの累積値δ1(1)ないしδN(1)のうちの、始点モデルの接続コストの累積値が、0とされ、始点モデル以外の学習モデルの接続コストの累積値は、接続不可能値cinfとされる。
【0349】
したがって、例えば、終点モデルに至るまでの系列情報が表す学習モデルの系列(並び)のうちの最初の学習モデルが、始点モデルになっていない場合には、終点モデルに至るまでの接続コストの累積値は、接続不可能値cinf以上の値となる。最初の学習モデルは、時刻t=1の状態に対応する学習モデルである。
【0350】
一方、終点モデルに至るまでの系列情報が表す学習モデルの系列のうちの最初の学習モデルが、始点モデルになった場合、すなわち、始点モデルから終点モデルまでの学習モデルの並びとして、接続コストの累積値を小にする適切な学習モデルの並びが得られた場合、終点モデルに至るまでの接続コストの累積値は、接続不可能値cinfよりも十分小さいコネクティビティcijの累積値となって、接続不可能値cinfより小さな値となる。
【0351】
したがって、終点モデルに至るまでの系列情報が表す学習モデルの系列のうちの最初の学習モデルが、始点モデルになる場合の、終点モデルに至るまでの接続コストの累積値の一般的な値(例えば、平均値等)より大で、かつ、接続不可能値cinfより小さい値を、閾値δthとして採用し、式δgoal(t)≦δthで表される計算終了条件を判定することにより、始点モデルから終点モデルまでの、適切な学習モデルの並び、すなわち、生成用モデルシーケンスを得ることができる。
【0352】
なお、閾値δthは、シミュレーション等によって求められる。また、閾値δthとしては、固定の値を採用することもできるし、可変の値を採用することもできる。可変な値の閾値δthとしては、接続コストの累積回数(式(7)による前向き計算時の時刻t)に応じて増加する値等を採用することができる。
【0353】
生成用モデルシーケンス算出部35は、前向き計算の開始後、計算終了条件が満たされると、前向き計算を終了し、バックトラック処理を行うことで、生成用モデルシーケンスを求める。
【0354】
すなわち、生成用モデルシーケンス算出部35は、上述したように、前向き計算において、学習モデル#1ないし#Nそれぞれについて、時刻ごとに最小接続元情報を記憶する。
【0355】
バックトラック処理では、生成用モデルシーケンス算出部35は、終点モデルから、時刻を遡る方向に、最小接続元情報を、1時刻ずつ、始点モデルまで辿っていく。生成用モデルシーケンス算出部35は、最小接続元情報を、辿った順の逆の順番に並び替えることで、時刻順の並びとし、その時刻順の並びの最小接続元情報が表す、始点モデルから終点モデルまでの学習モデルの並びを、生成用モデルシーケンスとして求める。
【0356】
なお、生成用モデルシーケンスは、時系列データ生成部36で時系列データの生成に用いられる学習モデルの順番を表す。したがって、生成用モデルシーケンスは、時系列データの生成に用いる学習モデルの順番のプランということができる。
【0357】
[生成用モデルシーケンスを用いた時系列データの生成]
図15を参照して、時系列データ生成部36による、生成用モデルシーケンスを用いた時系列データ(生成時系列データ)の生成について説明する。
【0358】
図15は、生成用モデルシーケンスが、4つの構成モデル(学習モデル)#1ないし#4の並びである場合に、その生成用モデルシーケンスを用いて生成される生成時系列データを示している。
【0359】
時系列データ生成部36は、生成用モデルシーケンスを構成する構成モデル#1ないし#4について、モデル生成データのオーバラップ部分の順伝播と逆伝播を繰り返す。これにより、時系列データ生成部36は、隣接する構成モデル#kと#k+1それぞれが生成するモデル生成データ#kと#k+1どうしを、なるべく繋がりやすくする、構成モデル#1ないし#4それぞれの初期コンテキスト(最適初期コンテキスト)を求める。
【0360】
そして、時系列データ生成部36は、最適初期コンテキストを、構成モデル#1ないし#4に与えて、構成モデル#1ないし#4からモデル生成データ#1ないし#4を生成し、そのモデル生成データ#1ないし#4を接続することで、生成時系列データを生成する。
【0361】
すなわち、時系列データ生成部36は、まず、生成用モデルシーケンスを構成する始点モデルである構成モデル#1の入力データの最初の1サンプルとして、構成モデル#1に割り当てられたモデル学習用データ#1の最初の1サンプルを設定する。
【0362】
さらに、時系列データ生成部36は、生成用モデルシーケンスを構成する終点モデルである構成モデル#4の出力データの最後の1サンプルの真値として、構成モデル#4に割り当てられたモデル学習用データ#4の最後の1サンプルを設定する。
【0363】
また、時系列データ生成部36は、生成用モデルシーケンスを構成する構成モデル#1ないし#4のそれぞれの初期コンテキストとして、ランダムな値を設定する。
【0364】
そして、時系列データ生成部36は、始点モデルである構成モデル#1に、入力データと初期コンテキストを与えて、Sサンプルのモデル生成データ#1を生成する。
【0365】
始点モデルである構成モデル#1からモデル生成データ#1を生成した後、時系列データ生成部36は、モデル生成データ#1の最後のオーバラップ部分であるLサンプルを、直後の構成モデル#2の入力データの最初のLサンプルとして設定する。
【0366】
そして、時系列データ生成部36は、構成モデル#2に、入力データと初期コンテキストを与えて、Sサンプルのモデル生成データ#2を生成する。
【0367】
その後、時系列データ生成部36は、構成モデル#2から生成されたモデル生成データ#2の最後のオーバラップ部分であるLサンプルを、直後の構成モデル#3の入力データの最初のLサンプルとして設定する。
【0368】
そして、時系列データ生成部36は、構成モデル#3に、入力データと初期コンテキストを与えて、Sサンプルのモデル生成データ#3を生成する。
【0369】
さらに、時系列データ生成部36は、構成モデル#3から生成されたモデル生成データ#3の最後のオーバラップ部分であるLサンプルを、直後の構成モデル#4の入力データの最初のLサンプルとして設定する。
【0370】
そして、時系列データ生成部36は、構成モデル#4に、入力データと初期コンテキストを与えて、Sサンプルのモデル生成データ#4を生成する。
【0371】
以上のように、時系列データ生成部36は、終点モデルである構成モデル#4から、モデル生成データ#4を生成すると、そのモデル生成データ#4の最後のサンプルの、構成モデル#4の出力データの最後の1サンプルの真値に対する予測誤差を求める。構成モデル#4の出力データの最後の1サンプルの真値は、構成モデル#4に割り当てられたモデル学習用データ#4の最後の1サンプルである。
【0372】
そして、時系列データ生成部36は、モデル生成データ#4の最後の1サンプルの予測誤差を、例えば、BPTT法に基づき、モデル生成データ#4の最初の1サンプルまで逆伝播(誤差の逆伝播)することで、その予測誤差を小さくするように、終点モデルである構成モデル#4の初期コンテキストを更新する。
【0373】
構成モデル#4の初期コンテキストの更新後、時系列データ生成部36は、構成モデル#4に、入力データと、更新後の初期コンテキストを与えて、Sサンプルのモデル生成データ#4を生成する。構成モデル#4に対する入力データは、直前の構成モデル#3から生成されたモデル生成データ#3の最後のオーバラップ部分のLサンプルである。
【0374】
さらに、時系列データ生成部36は、構成モデル#4から生成されたモデル生成データ#4の最初のオーバラップ部分であるLサンプルを、直前の構成モデル#3の最後のLサンプルの真値として設定する。
【0375】
その後、時系列データ生成部36は、構成モデル#3から生成されたモデル生成データ#3の最後のLサンプルの、構成モデル#3の出力データの最後のLサンプルの真値に対する予測誤差を求める。構成モデル#3の出力データの最後のLサンプルの真値は、初期コンテキストの更新後の学習モデル#4から生成されたモデル生成データ#4の最初のオーバラップ部分のLサンプルである。
【0376】
そして、時系列データ生成部36は、モデル生成データ#3の最後のLサンプルの予測誤差を、例えば、BPTT法に基づき、モデル生成データ#3の最初の1サンプルまで逆伝播(誤差の逆伝播)することで、その予測誤差を小さくするように、構成モデル#3の初期コンテキストを更新する。
【0377】
その後、時系列データ生成部36は、構成モデル#3から生成されたモデル生成データ#3の最初のオーバラップ部分であるLサンプルを、直前の構成モデル#2の最後のLサンプルの真値として設定する。
【0378】
さらに、時系列データ生成部36は、構成モデル#2から生成されたモデル生成データ#2の最後のLサンプルの、構成モデル#2の出力データの最後のLサンプルの真値に対する予測誤差を求める。構成モデル#2の出力データの最後のLサンプルの真値は、初期コンテキストの更新後の学習モデル#3から生成されたモデル生成データ#3の最初のオーバラップ部分のLサンプルである。
【0379】
そして、時系列データ生成部36は、モデル生成データ#2の最後のLサンプルの予測誤差を、例えば、BPTT法に基づき、モデル生成データ#2の最初の1サンプルまで逆伝播することで、その予測誤差を小さくするように、構成モデル#2の初期コンテキストを更新する。
【0380】
その後、時系列データ生成部36は、構成モデル#2から生成されたモデル生成データ#2の最初のオーバラップ部分であるLサンプルを、直前の構成モデル#1の最後のLサンプルの真値として設定する。
【0381】
さらに、時系列データ生成部36は、構成モデル#1から生成されたモデル生成データ#1の最後のLサンプルの、構成モデル#1の出力データの最後のLサンプルの真値に対する予測誤差を求める。構成モデル#1の出力データの最後のLサンプルの真値は、初期コンテキストの更新後の学習モデル#2から生成されたモデル生成データ#2の最初のオーバラップ部分のLサンプルである。
【0382】
そして、時系列データ生成部36は、モデル生成データ#1の最後のLサンプルの予測誤差を、例えば、BPTT法に基づき、モデル生成データ#1の最初の1サンプルまで逆伝播することで、その予測誤差を小さくするように、構成モデル#1の初期コンテキストを更新する。
【0383】
以上のように、終点モデルである構成モデル#4から、始点モデルである構成モデル#1までの初期コンテキストの更新が終了すると、時系列データ生成部36は、構成モデル#1に、入力データと、更新後の初期コンテキストを与えて、Sサンプルのモデル生成データ#1を生成する。構成モデル#1に対する入力データは、始点モデルである構成モデル#1に割り当てられたモデル学習用データ#1の最初の1サンプルである。
【0384】
さらに、時系列データ生成部36は、始点モデルである構成モデル#1から生成されたモデル生成データ#1の最後のオーバラップ部分であるLサンプルを、直後の構成モデル#2の入力データの最初のLサンプルとして設定し、以下、同様の処理を繰り返す。
【0385】
そして、時系列データ生成部36は、例えば、生成用モデルシーケンスを構成する構成モデル#1ないし#4それぞれで得られる予測誤差が収束すると、そのとき得られている初期コンテキストを、構成モデル#1ないし#4それぞれの最適初期コンテキストとする。
【0386】
その後、時系列データ生成部36は、始点モデルである構成モデル#1に、入力データとして、現在データを支えるとともに、最適初期コンテキストを与えて、モデル生成データ#1を生成する。
【0387】
そして、時系列データ生成部36は、構成モデル#1から生成されたモデル生成データ#1の最後のオーバラップ部分であるLサンプルを、直後の構成モデル#2の入力データの最初のLサンプルとして設定する。
【0388】
さらに、時系列データ生成部36は、構成モデル#2に、入力データと、最適初期コンテキストとを与えて、モデル生成データ#2を生成する。
【0389】
そして、時系列データ生成部36は、構成モデル#2から生成されたモデル生成データ#2の最後のオーバラップ部分であるLサンプルを、直後の構成モデル#3の入力データの最初のLサンプルとして設定する。
【0390】
さらに、時系列データ生成部36は、構成モデル#3に、入力データと、最適初期コンテキストとを与えて、モデル生成データ#3を生成する。
【0391】
そして、時系列データ生成部36は、構成モデル#3から生成されたモデル生成データ#3の最後のオーバラップ部分であるLサンプルを、直後の構成モデル#4の入力データの最初のLサンプルとして設定する。
【0392】
さらに、時系列データ生成部36は、構成モデル#4に、入力データと、最適初期コンテキストとを与えて、モデル生成データ#4を生成する。
【0393】
生成用モデルシーケンスを構成する構成モデル#1ないし#4のそれぞれに、最適初期コンテキストを与えて、モデル生成データ#1ないし#4が生成されると、時系列データ生成部36は、そのモデル生成データ#1ないし#4を接続して、生成時系列データを生成する。
【0394】
すなわち、時系列データ生成部36は、例えば、構成モデル#kから生成されたモデル生成データ#kの後に、直後の構成モデル#k+1から生成されたモデル生成データ#k+1の最初のオーバラップ部分より後のサンプル(モデル生成データ#k+1の先頭からL+1サンプル以降のサンプル)を接続することで、生成時系列データを生成する。
【0395】
[データ生成装置2の動作]
図16を参照して、データ生成装置2のデータ生成処理について説明する。
【0396】
データ生成装置2では、ステップS61において、現在データ供給部31、目標データ供給部32、始点モデル選択部33、終点モデル選択部34、及び、生成用モデルシーケンス算出部35が、生成用モデルシーケンスを算出する算出処理を行う。
【0397】
さらに、ステップS61では、生成用モデルシーケンス算出部35が、生成用モデルシーケンスの算出処理において得られる生成用モデルシーケンスを、時系列データ生成部36に供給して、処理は、ステップS62に進む。
【0398】
ステップS62では、時系列データ生成部36が、生成用モデルシーケンス算出部35からの生成用モデルシーケンスを用いて、生成時系列データを生成し、時系列データ出力部37に供給する時系列データ生成処理を行い、処理は、ステップS63に進む。
【0399】
ステップS63では、時系列データ出力部37が、時系列データ生成部36からの生成時系列データを、図1のデータ処理装置が制御するロボットに出力して、データ生成処理は終了する。
【0400】
図1のデータ処理装置が制御するロボットは、時系列データ出力部37からの生成時系列データ(センサモータデータ)のコンポーネントのうちのアクションデータに従って駆動する。これにより、ロボットは、所定の行動、すなわち、ロボットでセンシングされるセンサデータとして、現在データが得られている状態から、目標データが得られる状態となるのに適切な行動をとる。
【0401】
[生成用モデルシーケンスの算出処理]
図17を参照して、図16のステップS61で行われる、生成用モデルシーケンスの算出処理について説明する。
【0402】
ステップS71において、現在データ供給部31は、現在データを、始点モデル選択部33、及び、時系列データ生成部36に供給して、処理は、ステップS72に進む。
【0403】
ステップS72では、始点モデル選択部33は、現在データ供給部31からの現在データを入力データとする。始点モデル選択部33は、モデルパラメータ保存部23にモデルパラメータが記憶されたN個の学習モデル#1ないし#Nのそれぞれから、現在データの予測値であるモデル生成データ#1ないし#Nを生成(認識生成)する。
【0404】
そして、処理は、ステップS72からステップS73に進み、始点モデル選択部33は、モデル生成データ#1ないし#Nそれぞれの、現在データの予測値の予測誤差を求める。さらに、始点モデル選択部33は、N個の学習モデル#1ないし#Nのうちの、予測誤差が小さい、例えば、上位1個の学習モデルを始点モデルとして選択し、処理は、ステップS73からステップS74に進む。
【0405】
ステップS74では、目標データ供給部32は、目標データを、終点モデル選択部34に供給して、処理は、ステップS75に進む。
【0406】
ステップS75では、終点モデル選択部34は、目標データ供給部32からの目標データを入力データとする。終点モデル選択部34は、モデルパラメータ保存部23にモデルパラメータが記憶されたN個の学習モデル#1ないし#Nのそれぞれから、目標データの予測値であるモデル生成データ#1ないし#Nを生成(認識生成)する。
【0407】
そして、処理は、ステップS75からステップS76に進み、終点モデル選択部34は、モデル生成データ#1ないし#Nそれぞれの、目標データの予測値の予測誤差を求める。さらに、終点モデル選択部34は、N個の学習モデル#1ないし#Nのうちの、予測誤差が小さい、例えば、上位1個の学習モデルを終点モデルとして選択し、処理は、ステップS76からステップS77に進む。
【0408】
ステップS77では、始点モデル選択部33が、始点モデルの始点モデルIDを、生成用モデルシーケンス算出部35に供給する。さらに、ステップS77では、終点モデル選択部34が、終点モデルの終点モデルIDを、生成用モデルシーケンス算出部35に供給して、処理は、ステップS77からステップS78に進む。
【0409】
ステップS78では、生成用モデルシーケンス算出部35が、始点モデル選択部33からの始点モデルIDによって始点モデルを特定するとともに、終点モデル選択部34からの終点モデルIDによって終点モデルを特定する。
【0410】
さらに、生成用モデルシーケンス算出部35は、始点モデルから終点モデルまでの、複数の学習モデルの、ある並びを、生成用モデルシーケンスとして求める。
【0411】
すなわち、生成用モデルシーケンス算出部35は、上述したように、コネクティビティ保存部16に記憶されたコネクティビティに対応する値を、1つの学習モデルの後に、他の1つの学習モデルを接続する接続コストとする。生成用モデルシーケンス算出部35は、その接続コストの累積値を最小にする、始点モデルから終点モデルまでの学習モデルの並びを、生成用モデルシーケンスとして求める。
【0412】
そして、生成用モデルシーケンス算出部35は、生成用モデルシーケンスを、時系列データ生成部36に供給して、処理はリターンする。
【0413】
[時系列データ生成処理]
図18ないし図21を参照して、図16のステップS62で行われる時系列データ生成処理について説明する。
【0414】
図18は、時系列データ生成処理を説明するフローチャートである。
【0415】
時系列データ生成処理では、ステップS81において、時系列データ生成部36が、生成用モデルシーケンス算出部35から供給される生成用モデルシーケンスを受信し、処理は、ステップS82に進む。
【0416】
ステップS82では、時系列データ生成部36は、生成用モデルシーケンスを構成する構成モデルのうちの、始点モデルと終点モデルのそれぞれに割り当てられたモデル学習用データを、モデル学習用データ保存部21(図1)から読み込む。
【0417】
ステップS83では、時系列データ生成部36は、生成用モデルシーケンスを構成する構成モデルそれぞれのモデルパラメータを、モデルパラメータ保存部23(図1)から読み出し、処理は、ステップS84に進む。
【0418】
ステップS84では、時系列データ生成部36は、始点モデルの入力データの最初の1サンプルとして、始点モデルに割り当てられたモデル学習用データの最初の1サンプルを設定して、処理は、ステップS85に進む。
【0419】
ステップS85では、時系列データ生成部36は、終点モデルの出力データの最後の1サンプルの真値として、終点モデルに割り当てられたモデル学習用データの最後の1サンプルを設定して、処理は、ステップS86に進む。
【0420】
ステップS86では、時系列データ生成部36は、生成用モデルシーケンスを構成する構成モデルのモデルパラメータを、学習モデルに設定することで、生成用モデルシーケンスを構成する構成モデルを生成する。例えば、オブジェクト指向プログラミングにおける、構成モデルとしての学習モデルのインスタンスが生成される。
【0421】
ステップS88では、時系列データ生成部36は、生成用モデルシーケンスを構成する構成モデルのそれぞれの初期コンテキストとして、ランダムな値を設定して、処理は、図19のステップS91に進む。
【0422】
すなわち、図19は、図18に続くフローチャートである。
【0423】
ステップS91では、時系列データ生成部36は、生成用モデルシーケンスを構成する構成モデルのうちの、始点モデルを、注目する注目モデルに選択する。さらに、ステップS91では、注目モデルである始点モデルに、ステップS84で設定された入力データと、初期コンテキスト(いまの場合、ステップS87で設定された初期コンテキスト)を与えて、モデル生成データを生成し、処理は、ステップS92に進む。
【0424】
ステップS92では、時系列データ生成部36は、生成用モデルシーケンスを構成する構成モデルのうちの、現在の注目モデルの直後の構成モデル(以下、直後モデルともいう)を、新たに、注目モデルに選択する。
【0425】
さらに、時系列データ生成部36は、注目モデルの入力データの最初のLサンプルとして、生成用モデルシーケンスを構成する構成モデルのうちの、現在の注目モデルの直前の構成モデル(以下、直前モデルともいう)から生成されたモデル生成データの最後のオーバラップ部分であるLサンプルを設定し、処理は、ステップS92からステップS93に進む。
【0426】
ステップS93では、時系列データ生成部36は、注目モデルに、ステップS92で設定された入力データ(直前モデルから生成されたモデル生成データの最後のオーバラップ部分であるLサンプル)と、初期コンテキストを与えてモデル生成データを生成する。
【0427】
なお、ステップS91及びS93において、注目モデルに与えられる初期コンテキストは、後述するステップS102とS106の処理が既に行われている場合には、そのステップS102とS106での更新後の初期コンテキストである。一方、ステップS102とS106の処理が、まだ行われていない場合には、ステップS87で設定された初期コンテキストである。
【0428】
ステップS94では、時系列データ生成部36が、注目モデルが、終点モデルであるかどうかを判定する。ステップS94において、注目モデルが、終点モデルでないと判定された場合、処理は、ステップS92に戻り、以下、同様の処理が繰り返される。
【0429】
また、ステップS94において、注目モデルが、終点モデルであると判定された場合、つまり、生成用モデルシーケンスを構成する構成モデルのすべてから、モデル生成用データを生成した場合、処理は、図20のステップS101に進む。
【0430】
すなわち、図20は、図19に続くフローチャートである。
【0431】
ステップS101では、時系列データ生成部36は、終点モデルから生成されたモデル生成データの最後の1サンプルの、ステップS85で設定された真値に対する予測誤差を求め、処理は、ステップS102に進む。
【0432】
ステップS102では、時系列データ生成部36は、ステップS102で求められた予測誤差を、BPTT法に基づき、終点モデルから生成されたモデル生成データの最初の1サンプルまで逆伝播することで、予測誤差を小さくするように、終点モデルの初期コンテキストを更新し、処理は、ステップS103に進む。
【0433】
ステップS103では、時系列データ生成部36は、終点モデルを、注目モデルに選択する。さらに、ステップS103では、時系列データ生成部36は、注目モデルである終点モデルに、ステップS92で設定された入力データと、ステップS102での更新後の初期コンテキストを与えて、モデル生成データを生成する。
【0434】
そして、処理は、ステップS103からステップS104に進み、時系列データ生成部36は、注目モデルの直前モデルを、新たに、注目モデルに選択する。さらに、ステップS104では、時系列データ生成部36は、直前モデルから生成されたモデル生成データの最初のオーバラップ部分のLサンプルを、注目モデルの最後のLサンプルの真値として設定し、処理は、ステップS105に進む。
【0435】
ステップS105では、時系列データ生成部36は、注目モデルから生成されたモデル生成データの最後のLサンプルの、ステップS104で設定された真値(初期コンテキストの更新後の直後モデルから生成されたモデル生成データの最初のオーバラップ部分のLサンプル)に対する予測誤差を求め、処理は、ステップS106に進む。
【0436】
ステップS106では、時系列データ生成部36は、ステップS105で求められた予測誤差を、例えば、BPTT法に基づき、注目モデルから生成されたモデル生成データの最初の1サンプルまで逆伝播することで、その予測誤差を小さくするように、注目モデルの初期コンテキストを更新し、処理は、ステップS107に進む。
【0437】
ステップS107では、時系列データ生成部36が、注目モデルが、始点モデルであるかどうかを判定する。ステップS107において、注目モデルが、始点モデルでないと判定された場合、処理は、ステップS104に戻り、以下、同様の処理が繰り返される。
【0438】
また、ステップS107において、注目モデルが、始点モデルであると判定された場合、すなわち、ステップS101ないしS106において、終点モデルから、始点モデルに向かって、生成用モデルシーケンスを構成する構成モデルのすべての初期コンテキストを更新した場合、処理は、ステップS108に進み、時系列データ生成部36は、生成用モデルシーケンスを構成する構成モデルの初期コンテキストの更新を終了する条件(更新終了条件)が満たされているかどうかを判定する。
【0439】
ここで、ステップS108での更新終了条件としては、ステップS101及びS105で求められる予測誤差が、ある程度収束している状態にあることを採用することができる。具体的には、更新終了条件としては、所定の繰り返し回数だけ、生成用モデルシーケンスを構成する構成モデルの初期コンテキストの更新が行われたことを採用することができる。また、ステップS101及びS105で求められる予測誤差が、前回と今回とで、ほとんど変化しないこと、等を採用することができる。
【0440】
ステップS108において、更新終了条件が満たされていないと判定された場合、処理は、図19のステップS91に戻る。時系列データ生成部36は、始点モデルに、ステップS84で設定された入力データと、初期コンテキスト(いまの場合、ステップS106での更新後の初期コンテキスト)を与えて、モデル生成データを生成し、以下、同様の処理が繰り返される。
【0441】
また、ステップS108において、更新終了条件が満たされていると判定された場合、時系列データ生成部36は、構成モデルの現在の初期コンテキストを、その構成モデルの最適初期コンテキストとして、処理は、図21のステップS111に進む。
【0442】
すなわち、図21は、図20に続く図である。
【0443】
ステップS111において、時系列データ生成部36は、現在データ供給部31(図1)から供給される現在データを、始点モデルの入力データの最初の複数サンプル(現在データと同一のサンプル数だけのサンプル)として設定する。
【0444】
ステップS112では、時系列データ生成部36は、始点モデルを、注目モデルに選択する。
【0445】
さらに、ステップS112では、時系列データ生成部36は、注目モデルである始点モデルに、ステップS111で設定された入力データと、始点モデルの最適初期コンテキストを与えて、Sサンプルのモデル生成データを生成し、処理は、ステップS113に進む。
【0446】
ステップS113では、時系列データ生成部36は、ステップS112で生成したSサンプルのモデル生成データを、生成時系列データ(の一部)として、時系列データ出力部37(図1)に出力して、処理は、ステップS114に進む。
【0447】
ステップS114では、時系列データ生成部36は、注目モデルの直後モデルを、新たに、注目モデルに選択する。
【0448】
さらに、ステップS114では、時系列データ生成部36は、注目モデルの直前モデルから生成されたモデル生成データの最後のオーバラップ部分であるLサンプルを、注目モデルの入力データの最初のLサンプルとして設定し、処理は、ステップS115に進む。
【0449】
ステップS115では、時系列データ生成部36は、注目モデルに、ステップS114で設定された入力データと、注目モデルの最適初期コンテキストを与えて、モデル生成データを生成し、処理は、ステップS116に進む。設定された入力データは、直前モデルから生成されたモデル生成データの最後のオーバラップ部分のLサンプルである。
【0450】
ステップS116では、時系列データ生成部36は、ステップS115で注目モデルから生成されたモデル生成データのうちの、L+1サンプル以降のサンプルを、直前に出力された生成時系列データに続く生成時系列データとし、時系列データ出力部37に出力する。
【0451】
ステップS117では、時系列データ生成部36は、注目モデルが、終点モデルであるかどうかを判定する。ステップS117において、注目モデルが、終点モデルでないと判定された場合、処理は、ステップS114に戻り、以下、同様の処理が繰り返される。
【0452】
また、ステップS117において、注目モデルが、終点モデルであると判定された場合、すなわち、生成用モデルシーケンスを構成する構成モデルのすべてから、モデル生成用データを生成した場合、処理はリターンする。
【0453】
以上のように、学習装置1の教師データ分割部12は、時系列データである教師データを、一部がオーバラップする複数のデータに分割し、内部変数を有する学習モデルの学習に用いるモデル学習用データとして出力する。出力されたモデル学習用データは、その1つのモデル学習用データが、1つの学習モデルに割り当てられる。
【0454】
また、学習部22は、学習モデルによる時系列パターンの学習を、その学習モデルに割り当てられたモデル学習用データと、コンテキストの教師となる内部変数教師データを用いて行う。
【0455】
コネクティビティ算出部15は、複数の学習モデルすべてについて、1つの学習モデルが生成する時系列データの最後の一部分のデータ列であるオーバラップ部分と、他の1つの学習モデルが生成する時系列データの最初のオーバラップ部分との誤差を求める。また、コネクティビティ算出部15は、1つの学習モデルが生成するコンテキストの最後の一部分のデータ列であるオーバラップ部分と、他の1つの学習モデルがコンテキストの最初のオーバラップ部分との誤差を求める。
【0456】
コネクティビティ算出部15は、時系列データのオーバラップ部分の誤差と、コンテキストのオーバラップ部分の誤差との和を、コネクティビティとして算出する。コネクティビティは、1つの学習モデルが学習した時系列パターンの後に、他の1つの学習モデルが学習した時系列パターンが接続する適切さを表す。
【0457】
一方、データ生成装置2の始点モデル選択部33は、学習後の複数の学習モデルのうちの、1つの学習モデルを、始点モデルとして選択するとともに、終点モデル選択部34が、他の1つの学習モデルを、終点モデルとして選択する。
【0458】
また、生成用モデルシーケンス算出部35は、コネクティビティに対応する値を、1つの学習モデルの後に、他の1つの学習モデルを接続する接続コストとする。生成用モデルシーケンス算出部35は、その接続コストの累積値を最小にする、始点モデルから終点モデルまでの学習モデルの並びを、生成用モデルシーケンスとして求める。
【0459】
時系列データ生成部36は、生成用モデルシーケンスを構成する学習モデル(構成モデル)について、学習モデルが生成する時系列データの最後のオーバラップ部分と、後に接続される学習モデルが生成する時系列データの最初のオーバラップ部分との誤差を小さくするように、学習モデルの内部変数の初期値を決定し、その初期値を、学習モデルに与えて、時系列データを生成する。
【0460】
したがって、複雑で、長時間の時系列データを、容易に学習し、また、学習結果に基づき、滑らかな時系列データを、精度良く生成することができる。
【0461】
さらに、生成用モデルシーケンスを求めるのに用いられるコネクティビティはコンテキストの誤差を考慮して求められたものであるため、学習モジュールをまたいだ因果を持つプランニングが可能になる。
【0462】
すなわち、学習装置1では、1つの学習モデルでは記憶しきれない複雑(非線形、多次元)かつ長時間のダイナミクスを、複数の学習モデルで時間方向に分担して記憶する学習を行う。また、データ生成装置2では、そのような学習後の学習モデルの並びである生成用モデルシーケンスを算出し、その生成用モデルシーケンスを構成する学習モデルを用いて、生成時系列データを生成する。
【0463】
そして、生成用モデルシーケンスの算出では、学習モデルどうしの接続性に関する、いわば評価値であるコネクティビティに基づき、各学習モデルが記憶しているダイナミクスをなるべくスムーズに、かつ、始点から終点までより短いパスで接続するように、未経験のプラン(教師データの全部又は一部に相当する生成時系列データを生成する学習モデルの並び以外の学習モデルの並び)をも含む、学習モデルの並びが求められる。
【0464】
さらに、生成時系列データの生成では、直前モデルから生成されたモデル生成データの最後のオーバラップ部分を、注目モデルの入力データの最初の部分として引き継ぐ順方向の伝播によって、順方向にモデル生成データを生成する一方、順方向に生成したモデル生成データをもとに、終点モデルで計算された予測誤差を、逆方向、つまり、始点モデル側の学習モデルに伝播することで、生成用モデルシーケンスを構成する学習モデルの初期コンテキストが修正(更新)される。そして、この順方向、及び逆方向の伝播を繰り返すことにより、生成用モデルシーケンスが、教師データの全部又は一部に相当する生成時系列データを生成する学習モデルの並び以外の学習モデルの並びであっても、生成用モデルシーケンスを構成する学習モデルから生成されるモデル生成データを滑らかに接続するように、初期コンテキストが修正され、滑らかな生成時系列データが生成(再構成)される。
【0465】
より具体的には、学習装置1では、時系列データである教師データが、一部がオーバラップする複数のモデル学習用データに分割される。そして、1つのモデル学習用データを、1つの学習モデルに割り当てるように、複数のモデル学習用データが、複数の学習モデルに割り当てられ、学習モデルによる時系列パターンの学習が、その学習モデルに割り当てられたモデル学習用データを用いて行われる。
【0466】
したがって、時系列データが、複数の学習モデルによって、いわば分担して学習(関数近似学習)されるので、時系列パターンの記憶容量の限界をなくし、複雑で、長時間の時系列パターンを、短時間の(短い)時系列パターンに分けて記憶することができる。さらに、そのような短時間の時系列パターンを記憶した学習モデルを用いて、複雑で、長時間の時系列パターンの時系列データを、精度良く生成(再構成)することができる。
【0467】
すなわち、1つの学習モデルが学習を担当する時系列パターンの長さが制限されるので、学習モデルが規模の小さいRNN等であっても、時系列パターンを精度良く学習(記憶)することができる。さらに、学習モデルを増加することで、複数の学習モデルの全体の記憶容量を増加することができるので、1つの学習モデルの記憶容量に左右されずに、複雑で長時間の時系列パターンを記憶することができる。
【0468】
また、学習装置1において、コネクティビティを求め、データ生成装置2において、コネクティビティに基づき、生成用モデルシーケンスを算出するので、学習モデルが学習を担当したモデル学習用データが、教師データのどの位置のデータであるのかに依存することなく、時系列データの生成に用いる学習モデルの並びとしての生成用モデルシーケンスを算出することができる。
【0469】
すなわち、例えば、ある環境において移動する移動ロボットが、現在位置から、ゴールとなるゴール位置まで移動するタスク(ナビゲーションタスク)を実行するには、教師データとして与えられた経験から、現在位置からゴール位置まで移動する経路のプラン(計画)をたてる必要がある。
【0470】
例えば、移動ロボットが移動する環境(以下、移動環境ともいう)内の任意の2点の間を、移動ロボットが移動するときに、その移動の経路の各位置で、移動ロボットが獲得することができるセンサモータデータを、教師データとして与えて、学習を行うことにより、移動ロボットは、学習時の経験、つまり、教師データとしてのセンサモータデータを観測することができる経路に沿って、自律的に移動することができる。
【0471】
すなわち、移動を開始するスタート位置として、学習時の経路上のある位置が与えられ、かつ、移動を終了するゴール位置として、学習時の経路上の、スタート位置よりも、移動方向が後の位置が与えられた場合、移動ロボットは、スタート位置からゴール位置まで移動する経路のプランをたてることができる。
【0472】
しかしながら、移動環境では、学習時の経路上の位置が、スタート位置及びゴール位置として与えられるとは限らず、また、ゴール位置として、学習時の経路上の、スタート位置よりも後の位置が与えられるとも限らない。
【0473】
すなわち、移動ロボットが自律的に移動する場合には、現在位置がスタート位置となるが、現在位置が、学習時の経路上の位置であるとは限らない。
【0474】
さらに、スタート位置、及びゴール位置が、学習時の経路上の位置であったとしても、学習時に通ったスタート位置よりも前に通った位置が、ゴール位置として与えられることがある。
【0475】
また、学習時の経路に沿って、スタート位置からゴール位置まで移動する経路が冗長で、スタート位置からゴール位置まで移動するのに、不必要に遠回りをする場合には、そのような遠回りをしない経路のプランをたてることが望ましい。
【0476】
従来の経路のプランをたてる方法としては、例えば、移動環境の地図上で移動可能な領域を求め、その領域を通過する線分をアークとしてグラフを生成し、そのグラフ上での経路の探索問題に帰着させる方法がある。
【0477】
グラフ上での経路の探索をする方法としては、各アークにコストを設定し、スタート位置からゴール位置までの経路のうちの、経路を構成するアークのコストの総和が最小となる経路を求める方法がある。アークのコストとしては、アークに対応する地図上の距離(アークの両端の間の距離)が用いられる。
【0478】
しかしながら、アークに対応する地図上の距離を求めるには、移動環境の地図(ひいては、その地図上での、アークの両端の位置の座標)が必要であり、地図が与えられていない場合には、地図上の距離を求めることが困難となる。
【0479】
したがって、地図が与えられない場合に備え、アークのコストとしては、アークに対応する地図上の距離に代わる指標を採用することが望ましい。
【0480】
そこで、学習装置1では、1つの学習モデルが学習した時系列パターンの後に、他の1つの学習モデルが学習した時系列パターンが接続する適切さを表すコネクティビティが求められる。
【0481】
そして、データ生成装置2では、コネクティビティが、アークのコストとして採用され、ビタビアルゴリズムやダイクストラ法等の、グラフの経路探索アルゴリズムで、コストの累積値を最小にする経路としての生成用モデルシーケンスが探索される。
【0482】
すなわち、データ生成装置2では、コネクティビティに対応する値を接続コストとして、接続コストの累積値を最小にする、始点モデルから終点モデルまでの学習モデルの並びが、生成用モデルシーケンスとして算出される。
【0483】
生成用モデルシーケンスの算出に用いられるコネクティビティは、一方の学習モデルの学習に用いられたモデル学習用データと、他方の学習モデルの学習に用いられたモデル学習用データとが、教師データにおいて連続していたかどうかに依存しない。
【0484】
すなわち、時系列データだけに注目すると、教師データにおいて、他方の学習モデルの学習に用いられたモデル学習用データが、一方の学習モデルの学習に用いられたモデル学習用データに続くデータでなくても、一方の学習モデルが生成する時系列データの最後のオーバラップ部分と、他方の学習モデルが生成する時系列データの最初のオーバラップ部分とが類似していれば、一方の学習モデルを前モデルとするとともに、他方の学習モデルを後モデルとするモデルペアのコネクティビティは、前モデルに後モデルを接続することが適切であることを表す小さな値となる。
【0485】
その結果、コネクティビティに基づいて算出される生成用モデルシーケンスとしての学習モデルの並びは、学習モデルの学習に用いられたモデル学習用データの、教師データ上の順番に依存しない。
【0486】
そして、学習モデルが記憶するのは教師データの時系列パターンのいわば断片である、モデル学習用データの時系列パターンであるが、データ生成装置2では、その断片を使い回して、接続コストの累積値が小さい生成用モデルシーケンスを算出することができる。
【0487】
すなわち、学習時には経験していない、例えば、スタート位置からゴール位置まで移動するのに、不必要に遠回りをしない経路に相当する生成用モデルシーケンスを算出することができる。また、例えば、学習時に経験した経路とは逆方向に移動する経路が、接続コストの累積値を小さくする経路であるのであれば、そのような経路に相当する生成用モデルシーケンスを算出することができる。
【0488】
さらに、データ処理装置20では、生成用モデルシーケンスとしての学習モデルの並びが、コネクティビティに基づいて算出される。これにより、生成用モデルシーケンスを構成するある構成モデル#kが生成するモデル生成データの後に、その直後の構成モデル#k+1が生成するモデル生成データを接続することが適切であること(接続部分の波形が似ていること)が保証される。
【0489】
但し、生成用モデルシーケンスを、コネクティビティに基づいて算出することによっては、構成モデル#kが生成するモデル生成データの後に、構成モデル#k+1が生成するモデル生成データを接続したときに、その接続部分が滑らかになることまでは、保証されない。
【0490】
すなわち、コネクティビティに基づいて算出される生成用モデルシーケンスの構成モデルの並びが、構成モデルの学習に用いられたモデル学習用データの、教師データ上の順番に一致している場合には、構成モデル#kが生成するモデル生成データの後に、構成モデル#k+1が生成するモデル生成データを接続したときに、その接続部分は滑らかになる。
【0491】
しかしながら、コネクティビティに基づいて算出される生成用モデルシーケンスの構成モデル(学習モデル)の並びが、構成モデルの学習に用いられたモデル学習用データの、教師データ上の順番に一致していない場合には、構成モデル#kが生成するモデル生成データの後に、構成モデル#k+1が生成するモデル生成データを接続したときに、その接続部分は滑らかになるとは限らない。
【0492】
ここで、学習モデルが、モデル学習用データを、そのままテンプレートとして記憶する場合や、調節可能な内部変数を持たずに、関数近似で記憶する場合には、その記憶しているままの時系列データ(モデル生成データ)しか生成することができない。
【0493】
そのため、そのような学習モデルの複数から生成されたモデル生成データを接続したときに、その接続部分が滑らかになるとは限らない。
【0494】
一方、データ生成装置2では、学習モデルとして、時間発展するダイナミクスを関数近似の形で記憶することが可能で、内部変数としてのコンテキストを有するRNNを採用する。さらに、データ生成装置2では、構成モデル#kが生成するモデル生成データの最後のオーバラップ部分と、後に接続される構成モデル#k+1が生成するモデル生成データの最初のオーバラップ部分との誤差を小さくするように、構成モデルとしてのRNNの初期コンテキストを決定し、その初期コンテキスト(最適初期コンテキスト)を、構成モデルに与えて、時系列データを生成する。
【0495】
したがって、構成モデル#kが生成するモデル生成データの後に、構成モデル#k+1が生成するモデル生成データを接続したときに、その接続部分を滑らかにすることができ、その結果、滑らかな生成時系列データを生成することができる。
【0496】
[データ生成装置2が生成する生成時系列データ]
図22は、教師データとしての時系列データと、その時系列データを用いた学習を行った学習モデルを用いて生成される生成時系列データとを示している。
【0497】
図22Aは、教師データとしての経路(以下、教示経路ともいう)を模式的に示している。
【0498】
教示経路は、位置P1からP2までの経路の1つで、図22Aでは、7つの経路Q1,Q2,Q3,Q4,Q5,Q6、及びQ7としてのモデル学習用データに分割されている。学習時には、経路Qnが、学習モデル#nで学習される。
【0499】
なお、図22では、オーバラップ部分の図示は省略してある。
【0500】
RNNである学習モデル#nは、パラメータa付きの時間発展方程式F(x,a)を近似する関数近似器とみなすことができる。そこで、経路Qnを学習した学習モデル#nを、以下、Fn(x,an)とも表す。
【0501】
ここで、時間発展方程式F(x,a)の引数xは、入力データを表し、パラメータaは、内部変数の初期値(初期コンテキスト)を表す。
【0502】
また、図22Aにおいて、学習モデルFn(x,an)のパラメータanは、例えば、その学習モデルFn(x,an)が学習した経路Qnになるべく一致するモデル生成データを生成することができるときの内部変数の初期値を表す。
【0503】
図22Bは、データ生成装置2のデータ生成処理によって、学習モデルF1(x,a)ないしF7(x,a)を用いて生成される生成時系列データとしての経路(以下、生成経路ともいう)を模式的に示している。
【0504】
図22Bにおいて、生成経路は、位置P1からP2までの経路ではあるが、図19Aの教示経路とは異なる経路になっている。
【0505】
すなわち、生成経路は、5つの経路Q'1,Q'2,Q'3,Q'6、及びQ'7としてのモデル生成データが、その順番で接続されて構成されている。
【0506】
図22Bでは、データ生成装置2において、7つの学習モデルF1(x,a)ないしF7(x,a)から、冗長な経路を生成する学習モデルF4(x,a),及びF5(x,a)を除外した学習モデルF1(x,a),F2(x,a),F3(x,a),F6(x,a),F7(x,a)の並びが、生成用モデルシーケンスとして求められている。
【0507】
さらに、データ生成装置2では、生成経路の生成にあたって、図15等で説明した、モデル生成データのオーバラップ部分の順伝播と逆伝播を繰り返すことで、生成用モデルシーケンスを構成する学習モデルF1(x,a),F2(x,a),F3(x,a),F6(x,a),F7(x,a)それぞれから生成されるモデル生成データのオーバラップ部分を滑らかに接続するパラメータaが求められる。
【0508】
図22Bでは、オーバラップ部分が滑らかに接続するパラメータaとして、学習モデルF1(x,a)については、値a1が、学習モデルF2(x,a)については、値a2が、学習モデルF3(x,a)については、値a'3が、学習モデルF6(x,a)については、値a'6が、学習モデルF7(x,a)については、値a7がそれぞれ求められている。
【0509】
そして、学習モデルF1(x,a1)からは、経路Q'1が、学習モデルF2(x,a2)からは、経路Q'2が、については、学習モデルF3(x,a'3)からは、経路Q'3が、学習モデルF6(x,a'6)からは、経路Q'6が、学習モデルF7(x,a7)からは、経路Q'7が、それぞれ、モデル生成データとして生成されている。
【0510】
図22Bにおいて、パラメータaが図22Aの場合と一致している学習モデルF1(x,a1),F2(x,a2)、及びF7(x,a7)から生成される経路Q'1,Q'2、及びQ'7は、それぞれ、図22Aの、対応する経路Q1,Q2、及びQ7と一致している。
【0511】
一方、図22Bにおいて、パラメータaが図22Aの場合と異なる学習モデルF3(x,a'3)から生成される経路Q'3は、図22Aの、対応する経路Q3と異なっている。
【0512】
すなわち、図22Aの経路Q3は、その始点側(位置P1に近い側)が、経路Q2に滑らかに接続するようになっているとともに、終点側(位置P2に近い側)が、経路Q4に滑らかに接続するようになっている。
【0513】
これに対して、図22Bの経路Q'3は、始点側が、経路Q2と同一のQ'2に滑らかに接続するようになっている点は、経路Q3と一致するが、終点側が、経路Q'6に滑らかに接続するようになっている点で、経路Q3と異なる。
【0514】
さらに、図22Bにおいて、パラメータaが図22Aの場合と異なる学習モデルF6(x,a'6)から生成される経路Q'6は、図22Aの、対応する経路Q6と異なっている。
【0515】
すなわち、図22Aの経路Q6は、その始点側が、経路Q5に滑らかに接続するようになっているとともに、終点側が、経路Q7に滑らかに接続するようになっている。
【0516】
これに対して、図22Bの経路Q'6は、終点側が、経路Q7と同一のQ'7に滑らかに接続するようになっている点は、経路Q6と一致するが、始点側が、経路Q'3に滑らかに接続するようになっている点で、経路Q6と異なる。
【0517】
以上のようにして、データ生成装置2では、冗長な経路が除外され、かつ滑らかに接続する生成経路が生成される。
【0518】
[シミュレーション結果]
次に、本件発明者が、図1のデータ処理装置について行ったシミュレーションについて説明する。
【0519】
シミュレーションでは、移動ロボットに、ナビゲーションタスクを行わせた。
【0520】
図23は、移動ロボットがナビゲーションタスクを行う移動環境の概要を示している。
【0521】
移動環境としては、光源が設置され、四方が壁で囲まれた2次元平面を採用した。移動ロボットは、移動環境を自由に移動することができるが、壁をすり抜けて移動することはできない。なお、移動環境には、四方を囲む壁の他にも、障害物となる壁が存在する。
【0522】
また、移動ロボットには、移動ロボットから周囲の8方向それぞれについて、壁までの距離をセンシングする距離センサ、及び、光の強度をセンシングする光センサと、エネルギをセンシングするエネルギセンサとを搭載した。壁には、移動環境を囲む壁と、移動環境中の障害物としての壁とがある。また、移動ロボットには、音センサも搭載した。
【0523】
なお、エネルギとは、ここでは、光センサが出力する、8方向それぞれについての光の強度のうちの最大値に比例する物理量である。
【0524】
また、移動ロボットは、水平方向(x方向)の移動量mxと、垂直方向(y方向)の移動量myとを表すベクトルである移動ベクトル(mx,my)を、モータデータとして与えると、その移動ベクトル(mx,my)だけ移動する。
【0525】
シミュレーションでは、以上のような移動ロボットを採用する。教師データ、現在データ、及び目標データとなるセンサモータデータとしては、計20次元のベクトル(mx,my,d1,d2,d3,d4,d5,d6,d7,d8,l1,l2,l3,l4,l5,l6,l7,l8,S,E)を採用した。
【0526】
mx,myは、2次元の移動ベクトルは(mx,my)のコンポーネントである。d1,d2,d3,d4,d5,d6,d7,d8は、距離センサが出力する、8方向それぞれについての距離である。l1,l2,l3,l4,l5,l6,l7,l8は、光センサが出力する、8方向それぞれについての光の強度である。Sは音センサが出力する音量であり、Eはエネルギセンサが出力するエネルギである。
【0527】
なお、センサモータデータは、人が手動で、移動ロボットを移動させた場合を含め、移動ロボットから観測される。
【0528】
図24Aに示すように、移動ロボットは、スイッチとなる床を通過した後、光に近づくと、光との距離に応じてエネルギが増加する。ただし、スイッチを通過してから200ステップが経過した後は、光に近づいてもエネルギは増加しなくなる。図24Aの太線は、移動ロボットの移動の軌跡を示す。
【0529】
図24Bは、図24Aに示すようにスイッチを通る場合の各センサモータデータの観測値を表す。
【0530】
図24Bの1段目に示す波形は2次元の移動ベクトル(mx,my)を表し、2段目に示す波形は、距離センサが出力する8次元の距離d1,d2,d3,d4,d5,d6,d7,d8を表す。3段目に示す波形は、光センサが出力する8次元の光の強度l1,l2,l3,l4,l5,l6,l7,l8を表し、4段目に示す波形は、音センサが出力する1次元の音量Sを表す。5段目に示す波形は、エネルギセンサが出力する1次元のエネルギEを表す。
【0531】
図24Bに示すように、スイッチを通った場合、音センサにより所定の音量Sが観測され、その後、エネルギセンサによりエネルギEが観測される。
【0532】
図25Aは、スイッチを通らない場合の移動ロボットの移動の軌跡を示す。この場合、図25Bに示すように、音センサによって所定の音量Sが観測されず、また、エネルギセンサによってエネルギEが観測されない。
【0533】
このタスクでは、移動ロボットのエネルギを高くする状態をゴールとした場合、移動ロボットはスイッチを通過した後に光に近づかなければならない。逆に、エネルギを上げることなく光に近づく状態をゴールとした場合には、スイッチを通過せずに光に近づかなければならない。
【0534】
すなわち、光に近づくときにスイッチを通過したかどうかの状態を内部変数として記憶しておく必要がある。
【0535】
このタスク設定の下、図26に示す6種類の軌道に従って移動ロボットを移動させたときに観測された時系列信号を、本学習手法によって、40ステップ分の時系列信号を10ステップのオーバラップ部分を持ちながらそれぞれの学習モジュールに学習させた。
【0536】
それぞれの学習モジュールの番号(ID)と、その経験の環境中での場所との対応付けを図27に示す。
【0537】
図27において、3桁の数字は、学習モデルを特定するためのモデルIDである。また、モデルIDが付されている線(実線や、点線、太線、細線等)は、そのモデルIDの学習モデルが学習したモデル学習用データが観測されたときの、移動ロボットの移動軌跡を表している。
【0538】
図27では、モデル学習用データを学習する学習モデルが切り替わるごとに、モデル学習用データに対応する移動軌跡を、その移動軌跡を表す線の種類を変えて図示してある。
【0539】
[実験結果]
図28、図29は、本手法で接続性を評価した場合に得られるモデルシーケンスプランを示す図である。
【0540】
本手法によれば、図28に示すように、エネルギを高くする状態をゴールとした場合(モデル32をゴールとした場合)には、スイッチを通過したプランを生成していることが分かる。
【0541】
一方、図29に示すように、エネルギを高くせずに光に近づく状態をゴールとした場合(モデル54をゴールとした場合)には、スイッチを通過せずに光に近づくプランを生成していることがわかる。
【0542】
モデル54をゴールとした場合の従来手法との比較を図30に示す。
【0543】
従来手法においては、モデル間で、スイッチを通ったかどうかの情報を受け渡すことができず(内部変数の意味を共有することができず)、スイッチを通ったプランを生成してしまっていることがわかる。従来手法においては、内部変数(コンテキスト)を考慮して学習を行ったり、コネクティビティを算出したりするようなことは行われないため、内部変数の意味を共有することができない。
【0544】
上述した一連の処理は、ハードウエアにより実行することもできるし、ソフトウエアにより実行することもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、専用のハードウエアに組み込まれているコンピュータ、または汎用のパーソナルコンピュータなどに、プログラム記録媒体からインストールされる。
【0545】
図31は、上述した一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例を示すブロック図である。
【0546】
CPU(Central Processing Unit)101、ROM(Read Only Memory)102、RAM(Random Access Memory)103は、バス104により相互に接続されている。
【0547】
バス104には、さらに、入出力インタフェース105が接続されている。入出力インタフェース105には、キーボード、マウスなどよりなる入力部106、ディスプレイ、スピーカなどよりなる出力部107が接続される。また、バス104には、ハードディスクや不揮発性のメモリなどよりなる記憶部108、ネットワークインタフェースなどよりなる通信部109、リムーバブルメディア111を駆動するドライブ110が接続される。
【0548】
以上のように構成されるコンピュータでは、CPU101が、例えば、記憶部108に記憶されているプログラムを入出力インタフェース105及びバス104を介してRAM103にロードして実行することにより、上述した一連の処理が行われる。
【0549】
CPU101が実行するプログラムは、例えばリムーバブルメディア111に記録して、あるいは、ローカルエリアネットワーク、インターネット、デジタル放送といった、有線または無線の伝送媒体を介して提供され、記憶部108にインストールされる。
【0550】
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
【0551】
本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【符号の説明】
【0552】
1 学習装置, 2 データ生成装置, 11 教師データ保存部, 12 教師データ分割部, 13 学習モジュール, 14 モデルパラメータ共有部, 15 コネクティビティ算出部, 16 コネクティビティ保存部, 21 モデル学習用データ保存部, 22 学習部, 23 モデルパラメータ保存部, 24 内部変数教師データ生成部, 31 現在データ供給部, 32 目標データ供給部, 33 始点モデル選択部, 34 終点モデル選択部, 35 生成用モデルシーケンス算出部, 36 時系列データ生成部, 37 時系列データ出力部, 51 モデルペア選択部, 52 モデルパラメータ供給部, 53,54 認識生成部, 55 コネクティビティ演算部, 61 現在データ分配部, 62 モデルパラメータ供給部, 631ないし63N 認識生成部, 64 始点モデル決定部, 71 目標データ分配部, 72 モデルパラメータ供給部, 731ないし73N 認識生成部, 74 終点モデル決定部, 81 始点モデルID供給部, 82 終点モデルID供給部, 83 シーケンス算出部, 91 シーケンス供給部, 92 モデルパラメータ供給部, 931ないし93N 認識生成部, 94 統合生成部

【特許請求の範囲】
【請求項1】
時系列データを、一部がオーバラップする複数のデータに分割し、内部状態を有し、時系列パターンを学習する学習モデルの学習に用いるモデル学習用データとして、1つの前記モデル学習用データを、1つの前記学習モデルに割り当てる分割手段と、
複数の前記学習モデルによる時系列パターンの学習を、その学習モデルに割り当てられた前記モデル学習用データと、その学習モデルの内部状態を表す時系列データの教師となる内部状態教師データとを用いて行う学習手段と、
複数の前記学習モデルすべてについて、1つの前記学習モデルの内部状態を表す時系列データと、1つの前記学習モデルに割り当てられた前記モデル学習用データとオーバラップする区間を有する前記モデル学習用データが割り当てられた他の前記学習モデルの内部状態を表す時系列データとに基づいて1つの前記学習モデルに与える前記内部状態教師データを生成する生成手段と、
複数の前記学習モデルすべてについて、1つの前記学習モデルが生成する時系列データの最後の一部分のデータ列と、他の1つの前記学習モデルが生成する時系列データの最初の一部分のデータ列との誤差である第1の誤差、および、1つの前記学習モデルが生成する内部状態を表す時系列データの最後の一部分のデータ列と、他の1つの前記学習モデルが生成する内部状態を表す時系列データの最初の一部分のデータ列との誤差である第2の誤差に基づいて、1つの前記学習モデルが学習した前記時系列パターンの後に、他の1つの前記学習モデルが学習した前記時系列パターンが接続する適切さを表すコネクティビティとして算出するコネクティビティ算出手段と
を備える学習装置。
【請求項2】
前記学習モデルは、RNN(Recurrent Neural Network)である
請求項1に記載の学習装置。
【請求項3】
前記コネクティビティ算出手段は、前記第1の誤差と前記第2の誤差の和を、前記コネクティビティとして算出する
請求項1に記載の学習装置。
【請求項4】
時系列データを、一部がオーバラップする複数のデータに分割し、内部状態を有し、時系列パターンを学習する学習モデルの学習に用いるモデル学習用データとして、1つの前記モデル学習用データを、1つの前記学習モデルに割り当て、
複数の前記学習モデルによる時系列パターンの学習を、その学習モデルに割り当てられた前記モデル学習用データと、その学習モデルの内部状態を表す時系列データの教師となる内部状態教師データとを用いて行い、
複数の前記学習モデルすべてについて、1つの前記学習モデルの内部状態を表す時系列データと、1つの前記学習モデルに割り当てられた前記モデル学習用データとオーバラップする区間を有する前記モデル学習用データが割り当てられた他の前記学習モデルの内部状態を表す時系列データとに基づいて1つの前記学習モデルに与える前記内部状態教師データを生成し、
複数の前記学習モデルすべてについて、1つの前記学習モデルが生成する時系列データの最後の一部分のデータ列と、他の1つの前記学習モデルが生成する時系列データの最初の一部分のデータ列との誤差である第1の誤差、および、1つの前記学習モデルが生成する内部状態を表す時系列データの最後の一部分のデータ列と、他の1つの前記学習モデルが生成する内部状態を表す時系列データの最初の一部分のデータ列との誤差である第2の誤差に基づいて、1つの前記学習モデルが学習した前記時系列パターンの後に、他の1つの前記学習モデルが学習した前記時系列パターンが接続する適切さを表すコネクティビティとして算出する
ステップを含む学習方法。
【請求項5】
時系列データを、一部がオーバラップする複数のデータに分割し、内部状態を有し、時系列パターンを学習する学習モデルの学習に用いるモデル学習用データとして、1つの前記モデル学習用データを、1つの前記学習モデルに割り当て、
複数の前記学習モデルによる時系列パターンの学習を、その学習モデルに割り当てられた前記モデル学習用データと、その学習モデルの内部状態を表す時系列データの教師となる内部状態教師データとを用いて行い、
複数の前記学習モデルすべてについて、1つの前記学習モデルの内部状態を表す時系列データと、1つの前記学習モデルに割り当てられた前記モデル学習用データとオーバラップする区間を有する前記モデル学習用データが割り当てられた他の前記学習モデルの内部状態を表す時系列データとに基づいて1つの前記学習モデルに与える前記内部状態教師データを生成し、
複数の前記学習モデルすべてについて、1つの前記学習モデルが生成する時系列データの最後の一部分のデータ列と、他の1つの前記学習モデルが生成する時系列データの最初の一部分のデータ列との誤差である第1の誤差、および、1つの前記学習モデルが生成する内部状態を表す時系列データの最後の一部分のデータ列と、他の1つの前記学習モデルが生成する内部状態を表す時系列データの最初の一部分のデータ列との誤差である第2の誤差に基づいて、1つの前記学習モデルが学習した前記時系列パターンの後に、他の1つの前記学習モデルが学習した前記時系列パターンが接続する適切さを表すコネクティビティとして算出する
ステップを含む処理をコンピュータに実行させるプログラム。
【請求項6】
時系列データを、一部がオーバラップする複数のデータに分割し、内部状態を有し、時系列パターンを学習する学習モデルの学習に用いるモデル学習用データとして、1つの前記モデル学習用データを、1つの前記学習モデルに割り当て、
前記学習モデルによる時系列パターンの学習を、その学習モデルに割り当てられた前記モデル学習用データと、複数の前記学習モデルすべてについて、1つの前記学習モデルの内部状態を表す時系列データと1つの前記学習モデルに割り当てられた前記モデル学習用データとオーバラップする区間を有する前記モデル学習用データが割り当てられた他の前記学習モデルの内部状態を表す時系列データに基づいて生成された内部状態教師データと、を用いて行う
ことにより得られる、学習後の複数の前記学習モデルのうちの、1つの前記学習モデルを、時系列データの生成に用いる前記学習モデルのシーケンスである生成用モデルシーケンスの始点となる始点モデルとして選択する始点モデル選択手段と、
複数の前記学習モデルのうちの、他の1つの前記学習モデルを、前記生成用モデルシーケンスの終点となる終点モデルとして選択する終点モデル選択手段と、
複数の前記学習モデルすべてについて、1つの前記学習モデルが生成する時系列データの最後の一部分のデータ列と、他の1つの前記学習モデルが生成する時系列データの最初の一部分のデータ列との誤差である第1の誤差、および、1つの前記学習モデルが生成する内部状態を表す時系列データの最後の一部分のデータ列と、他の1つの前記学習モデルが生成する内部状態を表す時系列データの最初の一部分のデータ列との誤差である第2の誤差に基づいて得られた、1つの前記学習モデルが学習した前記時系列パターンの後に、他の1つの前記学習モデルが学習した前記時系列パターンが接続する適切さを表すコネクティビティに対応する値を、1つの前記学習モデルの後に、他の1つの前記学習モデルを接続する接続コストとして、前記接続コストの累積値を最小にする、前記始点モデルから前記終点モデルまでの前記学習モデルの並びを、前記生成用モデルシーケンスとして求める生成用モデルシーケンス算出手段と、
前記生成用モデルシーケンスを構成する前記学習モデルについて、前記学習モデルが生成する時系列データの最後の一部分のデータ列と、後に接続される前記学習モデルが生成する時系列データの最初の一部分のデータ列との誤差を小さくするように、前記学習モデルの前記内部状態の初期値を決定し、その初期値を、前記学習モデルに与えて、時系列データを生成する時系列データ生成手段と
を備えるデータ生成装置。
【請求項7】
前記学習モデルは、RNN(Recurrent Neural Network)である
請求項6に記載のデータ生成装置。
【請求項8】
時系列データを、一部がオーバラップする複数のデータに分割し、内部状態を有し、時系列パターンを学習する学習モデルの学習に用いるモデル学習用データとして、1つの前記モデル学習用データを、1つの前記学習モデルに割り当て、
前記学習モデルによる時系列パターンの学習を、その学習モデルに割り当てられた前記モデル学習用データと、複数の前記学習モデルすべてについて、1つの前記学習モデルの内部状態を表す時系列データと1つの前記学習モデルに割り当てられた前記モデル学習用データとオーバラップする区間を有する前記モデル学習用データが割り当てられた他の前記学習モデルの内部状態を表す時系列データに基づいて生成された内部状態教師データと、を用いて行う
ことにより得られる、学習後の複数の前記学習モデルのうちの、1つの前記学習モデルを、時系列データの生成に用いる前記学習モデルのシーケンスである生成用モデルシーケンスの始点となる始点モデルとして選択し、
複数の前記学習モデルのうちの、他の1つの前記学習モデルを、前記生成用モデルシーケンスの終点となる終点モデルとして選択し、
複数の前記学習モデルすべてについて、1つの前記学習モデルが生成する時系列データの最後の一部分のデータ列と、他の1つの前記学習モデルが生成する時系列データの最初の一部分のデータ列との誤差である第1の誤差、および、1つの前記学習モデルが生成する内部状態を表す時系列データの最後の一部分のデータ列と、他の1つの前記学習モデルが生成する内部状態を表す時系列データの最初の一部分のデータ列との誤差である第2の誤差に基づいて得られた、1つの前記学習モデルが学習した前記時系列パターンの後に、他の1つの前記学習モデルが学習した前記時系列パターンが接続する適切さを表すコネクティビティに対応する値を、1つの前記学習モデルの後に、他の1つの前記学習モデルを接続する接続コストとして、前記接続コストの累積値を最小にする、前記始点モデルから前記終点モデルまでの前記学習モデルの並びを、前記生成用モデルシーケンスとして求め、
前記生成用モデルシーケンスを構成する前記学習モデルについて、前記学習モデルが生成する時系列データの最後の一部分のデータ列と、後に接続される前記学習モデルが生成する時系列データの最初の一部分のデータ列との誤差を小さくするように、前記学習モデルの前記内部状態の初期値を決定し、その初期値を、前記学習モデルに与えて、時系列データを生成する
ステップを含むデータ生成方法。
【請求項9】
時系列データを、一部がオーバラップする複数のデータに分割し、内部状態を有し、時系列パターンを学習する学習モデルの学習に用いるモデル学習用データとして、1つの前記モデル学習用データを、1つの前記学習モデルに割り当て、
前記学習モデルによる時系列パターンの学習を、その学習モデルに割り当てられた前記モデル学習用データと、複数の前記学習モデルすべてについて、1つの前記学習モデルの内部状態を表す時系列データと1つの前記学習モデルに割り当てられた前記モデル学習用データとオーバラップする区間を有する前記モデル学習用データが割り当てられた他の前記学習モデルの内部状態を表す時系列データに基づいて生成された内部状態教師データと、を用いて行う
ことにより得られる、学習後の複数の前記学習モデルのうちの、1つの前記学習モデルを、時系列データの生成に用いる前記学習モデルのシーケンスである生成用モデルシーケンスの始点となる始点モデルとして選択し、
複数の前記学習モデルのうちの、他の1つの前記学習モデルを、前記生成用モデルシーケンスの終点となる終点モデルとして選択し、
複数の前記学習モデルすべてについて、1つの前記学習モデルが生成する時系列データの最後の一部分のデータ列と、他の1つの前記学習モデルが生成する時系列データの最初の一部分のデータ列との誤差である第1の誤差、および、1つの前記学習モデルが生成する内部状態を表す時系列データの最後の一部分のデータ列と、他の1つの前記学習モデルが生成する内部状態を表す時系列データの最初の一部分のデータ列との誤差である第2の誤差に基づいて得られた、1つの前記学習モデルが学習した前記時系列パターンの後に、他の1つの前記学習モデルが学習した前記時系列パターンが接続する適切さを表すコネクティビティに対応する値を、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

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

【図30】
image rotate

【図31】
image rotate


【公開番号】特開2010−266975(P2010−266975A)
【公開日】平成22年11月25日(2010.11.25)
【国際特許分類】
【出願番号】特願2009−116055(P2009−116055)
【出願日】平成21年5月13日(2009.5.13)
【出願人】(000002185)ソニー株式会社 (34,172)