以下、本発明の幾つかの実施形態を説明する。本発明の実施形態は、特許請求の範囲による本発明を限定するものではなく、本発明の実施形態において説明される特徴の組み合わせの全ては、必ずしも本発明にとって必須ではない。
図1は、本発明の実施形態による学習装置100の例示的構成を示す。学習装置100は、時系列入力データに対応するモデル10を学習するための装置とすることができる。学習装置100は、時系列データをモデルのノードに供給することによって、ボルツマン・マシンに基づくモデルを学習するように動作可能である。学習装置100は、取得セクション110と、供給セクション120と、ストレージ・セクション130と、計算セクション140と、学習処理セクション150とを含む。
取得セクション110は、時系列入力データを取得するように動作可能である。時系列入力データは、例えば、動画データなどの、時間軸に沿って複数のデータが配置されたデータ・シーケンスとすることができる。取得セクション110は、ユーザが操作するデバイス又は時系列データを検出し、出力するデバイス(センサ)に接続し、そうしたデバイスから時系列入力データを取得することができる。或いは、取得セクション110は、ストレージ・デバイス内に所定の形式で格納される時系列入力データを読み出し取得することができる。或いは、取得セクション110は、ネットワークに接続し、ネットワークを介して時系列入力データを取得することができる。また、取得セクション110は、取得した時系列入力データを、学習装置100内に含まれるストレージ・デバイスに格納することもできる。
供給セクション120は、時系列入力データにおける、一時点(one time point)の入力データに対応する複数の入力値を、モデルの複数のノードに供給するように動作可能である。供給セクション120は、取得セクション110に接続され、受け取った時系列入力データのうちの一時点の入力データを訓練データ(training data)として処理し、一時点の入力値をモデルの対応するノードに供給することができる。一時点の入力データは、学習で用いる訓練データの中で時間的に最新のデータとすることができる。或いは、一時点の入力データは、学習で用いる訓練データの中で時間的に中間のデータとすることもできる。つまり、一時点の入力データは時系列データから任意に選択することができる。
ストレージ・セクション130は、時系列入力データにおける、複数の時点に対応するモデルの隠れノードの値を格納するように動作可能である。ストレージ・セクション130は、一時点に対応する隠れノードの値をサンプリングし、これらの値を、この時点に対応する隠れノードに格納することができる。ストレージ・セクション130は、サンプリングした値をそれぞれ、各時点について時点に対応する隠れノードに格納することができる。
計算セクション140は、入力データ・シーケンスが発生したという条件下で一時点の各入力値の条件付き確率(conditional probability)を計算するように動作可能である。ここで、時系列入力データにおいて、一時点におけるモデルのそれぞれのノードに入力されたデータを、一時点の入力値と呼び、一時点より前の時点のそれぞれのノードに入力されたデータを、入力データ・シーケンスと呼ぶ。学習装置100により用いられるモデルは、(i)複数の隠れノードと入力データ・シーケンスにおける一時点より前の各時点における入力データに対応する複数の入力値との間、及び(ii)一時点に対応する複数の隠れノードと複数の入力ノードとの間の重みパラメータを有することができる。
計算セクション140は、時系列入力データにおける一時点より前の入力データ・シーケンス、隠れノードの格納された値、及びモデルの重みパラメータに基づいて、一時点の各入力値の条件付き確率を計算するように動作可能である。さらに、計算セクション140は、時系列入力データにおける一時点より前の入力データ・シーケンス、及びモデルの重みパラメータに基づいて、入力データ・シーケンスが発生したという条件下で、一時点の各隠れノードの値の条件付き確率を計算するように動作可能である。
学習処理セクション150は、モデルの重みパラメータを調整することによって、入力データ・シーケンスが発生したという条件下で生じる一時点の入力データの条件付き確率を高めるように動作可能である。学習処理セクション150は、モデルの複数のノード及び隠れノードのそれぞれに与えられたバイアス・パラメータをさらに調整することができる。学習処理セクション150は、モデルの調整された重みパラメータ及びバイアス・パラメータを、外部データベース1000などのストレージ・データベースに供給し、これらのパラメータをストレージ・デバイスに格納することができる。
上述した学習装置100は、時系列入力データにおける一時点の入力データに基づき、モデルの重みパラメータ及びバイアス・パラメータを調整することによってモデルを学習するように動作可能である。図2を参照して、モデルについて説明する。
図2は、本発明の実施形態によるモデル10の例示的な構成を示す。モデル10は、複数の共通層(common layer)12を含む。図2は、合計T個の共通層12を含む例を示す。モデル10は、有限数の共通層12を含むことができる。各共通層12は、入力層14及び隠れ層16を含む。
各入力層14は、時系列データに対応する層とすることができる。各入力層14は、時系列データにおけるそれぞれの時点に対応し得る。各入力層14は、所定数のノードを含むことができる。例えば、0番目の入力層は、時系列データにおける一時点の入力データに対応する層とすることができる。0番目の入力層は、この入力データにおける入力値の数に対応する複数のノードを含むことができる。
複数の入力層のうちの、0番目の入力層14以外の合計T−1の入力層14は、時系列入力データにおける一時点より前の入力データ・シーケンスに対応する入力層14とすることができる。例えば、−1番目の入力層は、一時点だけ一時点に時間的に先行する時点の入力データに対応し、(−δ)番目の入力層は、δ時点だけ一時点に時間的に先行する時点の入力データに対応し得る。つまり、0番目の入力層以外の合計T−1の入力層はそれぞれ、例えば、0番目の入力層と同数のノードを有し、入力データ・シーケンスにおける対応する入力データ値の入力値が供給される。
各隠れ層16は、時系列データにおけるそれぞれの時点に対応し得る。例えば、0番目の隠れ層は、時系列データにおける一時点に対応する層とすることができる。図2は、合計Tの隠れ層16を含む例を示す。各隠れ層16は、1つ又は複数の隠れノードを含むことができ、ストレージ・セクション130は、一時点においてサンプリングされた値を格納することができる。
複数の隠れ層16の中の0番目の層以外の合計T−1の隠れ層は、時系列データにおける一時点より前の時点に対応する隠れ層16とすることができる。例えば、−1番目の隠れ層は、一時点だけ一時点に時間的に先行する時点に対応し、ストレージ・セクション130は、一時点だけ一時点に時間的に先行する時点にサンプリングされた値を格納する。さらに、(−δ)番目の隠れ層は、δの時点だけ一時点の入力データに時間的に先行する時点に対応し、ストレージ・セクション130は、δの時点だけ一時点に時間的に先行する時点にサンプリングされた値を格納することができる。つまり、0番目の隠れ層以外の合計T−1の隠れ層は、例えば、0番目の隠れ層と同数のノードをそれぞれ有し、対応する隠れノードの値がそれぞれ供給される。
一例として、時系列入力データが動画データである場合、動画データの最後の画像データが0番目の入力層に対応し、0番目の入力層の複数のノードはそれぞれ、画像データの対応するピクセル・データを受け取る。さらに、0番目の隠れ層は、動画データの最後の時点に対応し、ストレージ・セクション130は、0番目の隠れ層の隠れノードにおけるこの最後の時点においてサンプリングされた値を格納することができる。
さらに、−1番目の入力層には、最後の画像データの直前の画像データが供給され、−1番目の入力層の複数のノードのそれぞれは、直近の画像データの対応するピクセル・データを受け取る。さらに、−1番目の隠れ層は、最終時点の直近の時点に対応し、−1番目の隠れ層の複数のノードについて、ストレージ・セクション130は、この直近の時点においてサンプリングされた値を格納することができる。同様に、−δ番目の入力層の複数の層はそれぞれ、δの画像だけ最後の画像データに先行する画像データの対応するピクセル・データを受け取り、(−δ)番目の隠れ層の複数のノードはそれぞれ、δの時点だけ最終時点に先行する時点において対応するサンプリング値を格納することができる。
図2は、各共通層12が入力層14及び隠れ層16を含むが、代わりに、1つ又は複数の共通層12は隠れ層16を含む必要がない例を示す。こうした場合、0番目の共通層乃至(−m)番目の共通層は、入力層14及び隠れ層16を含み、(−m−1)番目の共通層乃至(−T+1)番目の共通層は入力層14を含むことができる。
0番目の入力層における複数のノード及び/又は0番目の隠れ層における複数の隠れノードはそれぞれ、バイアス・パラメータを有し得る。例えば、共通層12におけるj番目のノードjは、バイアス・パラメータbjを有する。
0番目の入力層における複数のノード、並びに入力データ・シーケンスに対応する隠れ層及び一時点より前の入力データ・シーケンスに対応する層のノードはそれぞれ、それらの間の重みパラメータを有し得る。これらは、各入力層14及び隠れ層16における複数のノードの間の重みパラメータである必要はない。
同様に、0番目の隠れ層における複数のノード、並びに入力データ・シーケンスに対応する隠れ層及び一時点より前の入力データ・シーケンスに対応する層のノードはそれぞれ、それらの間の重みパラメータを有し得る。つまり、0番目の共通層の複数のノード、及び一時点より前の複数の共通層のノードはそれぞれ、それらの間の重みパラメータを有し得る。
図2は、0番目の入力層のノードjと(−δ)番目の層のノードiとの間の重みパラメータWij [δ]の概念を示す。図2は、モデル10が同数の入力層14及び隠れ層16を有し、各入力層14がI個のノードを含み、各隠れ層16がH個の隠れノードを含む例を示す。本実施形態において、入力層14及び隠れ層16は、複数のノードxj [t]を有する1つの共通層12により表される。共通層12の1番目乃至I番目のノード(1≦j≦I)は、入力層14のノードを示し、(I+1)番目乃至(I+H)番目のノード(I+1,j,I+H)は、隠れノードを示す。
例えば、図2に示される重みパラメータW
ij [δ]は、入力層14の2つのノード間の重みパラメータを示す。同様に、重みパラメータW
ij [δ]は、入力ノードと隠れノードの間の重みパラメータ、隠れノードと入力ノードの間の重みパラメータ、及び隠れノード間の重みパラメータを含むことができる。重みパラメータW
ij [δ]の具体例は、次式に示される通りである。本実施形態において、入力ノード又は隠れノードと入力ノード間の重みパラメータは、「入力データに対する重みパラメータ」と呼ばれ、入力ノード又は隠れノードと隠れノード間の重みパラメータは、「隠れノードに対する重みパラメータ」と呼ばれる。
ここで、例えば、ui,j,k及びvi,j,lは、学習ターゲットとなる学習パラメータである。さらに、λk t1及びμl t2は、一時点より前の入力データ・シーケンスにおける隠れノード及び入力データと、一時点における隠れノード及び入力ノードとの間の時点差δに従って所定の方法で変化する所定の(predefined)パラメータである(t1=δ−dij、t2=−δ)。つまり、重みパラメータWij [δ]は、学習パラメータui,j,k及びvi,j,lと、所定のパラメータλk t1及びμl t2とに基づくパラメータとすることができる。
重みパラメータWij [δ]は、第1の学習パラメータui,j,kと第1の所定のパラメータλk t1の積に基づいた正の値と、第2の学習パラメータvi,j,lと第2の所定のパラメータμl t2の積に基づいた負の値とに基づくパラメータとすることができる。具体的には、時点差δが所定の遅延定数dijより大きいか又はこれに等しいの場合、重みパラメータWij [δ]は、第1の学習パラメータui,j,kと第1の所定のパラメータλk t1の積に基づいた正の値とすることができる。また、時点差δが遅延定数dijより小さくかつ0でない場合、重みパラメータWij [δ]は、第2の学習パラメータvi,j,lと第2の所定のパラメータμl t2の積に基づいた負の値とすることができる。さらに、時点差δが0に等しい場合、重みパラメータWij [δ]は、0に等しくなり得る。
さらに、時点差δが所定の遅延定数dijより大きいか又はこれに等しい場合、重みパラメータWij [δ]は、複数の第1の学習パラメータui,j,k及び複数の第1の所定のパラメータλk t1の中からそれぞれ、複数のセットの第1の学習パラメータui,j,kと第1の所定のパラメータλk t1の積ui,j,k・λk t1に基づいた複数の正の値に基づき得る。さらに、時点差δが遅延定数dijより小さくかつ0でない場合、重みパラメータWij [δ]は、複数の第2の学習パラメータvi,j,l及び複数の第2の所定のパラメータμl t2の中からそれぞれ、複数のセットの第2の学習パラメータvi,j,lと第2の所定のパラメータμl t2の積vi,j,l・μl t2に基づいた複数の負の値とに基づき得る。
所定のパラメータは、所定の定数を、時点差δに基づいた値で累乗した値に基づくパラメータとすることができる。第1の所定のパラメータλk t1は、例えば、時点差δが大きくなるにつれてその値が漸減するパラメータである。この場合、第1の所定のパラメータλk t1は、0より大きくかつ1より小さい第1の定数λkを、時点差δから所定の遅延定数dijを減算して得られる値(δ−dij=t1)で累乗した値であり得る。さらに、第2の所定のパラメータμlt2は、例えば、時点差δが大きくなるにつれてその値が漸減するパラメータであり得る。この場合、第2の所定のパラメータμl t2は、0より大きくかつ1より小さい第2の定数μlを、時点差δの負の値(−δ=t2)で累乗した値であり得る。
上述したモデル10は、ボルツマン・マシンを形成するように動作可能である。つまり、モデル10は、時系列データを適用するボルツマン・マシンとすることができる。モデル10は、時系列データが入力される入力層に加えて、時系列データとは異なる入力値である隠れ層を含むボルツマン・マシンとすることができる。学習装置100は、モデル10の0番目の入力層に供給される一時点の入力データを訓練データとして用いて、隠れノードの値をサンプリングし、格納しながら、学習パラメータui,j,k及びvi,j,lとバイアス・パラメータbjとを調整することによってモデル10を学習する。図3を参照して、学習装置100の学習動作について説明する。
図3は、学習装置100の動作フローを示す。学習装置100は、時系列入力データに対応するモデル10を学習し、S310〜S360の処理ステップを実行することによって、学習パラメータui,j,k及びvi,j,l、並びにバイアス・パラメータbjを決定するように動作可能である。隠れノードの重みパラメータ及び入力ノードの重みパラメータの決定が、実質的に同じ動作を用いて学習装置100により実行される例を説明する。
最初に、取得セクション110が、時系列データを取得する(S310)。取得セクション110は、モデル10の0番目の層から(−T+1)番目の層までの合計Tの層に等しい期間の時系列データを取得することができる。取得セクション110は、例えば、動画データを形成するT個の画像データを時系列で取得する。
次に、供給セクション120が、一時点の時系列入力データの入力データに対応する複数の入力値を、モデル10の0番目の入力層の複数の入力ノードに供給することができる(S320)。ここで、x[1,I] [0](=xj [0],1≦j≦I)は、0番目の入力層に供給される入力データを示す。
供給セクション120は、例えば、最新の時点の時系列入力データの入力データx[1,I] [0]に対応するIの入力値xj [0]を、0番目の入力層の対応するノードjに供給する(1≦j≦I)。例えば、供給セクション120は、動画データを形成するように時系列で配置されたT個の画像データの最後に含まれるI個のピクセル・データを、0番目の入力層のI個のノードに供給する。供給セクション120は、1又は0の値をピクセル・データとして、0番目の入力層の各ノードに供給することができる。時系列入力データの期間がTより短い場合、供給セクション120は、データを、時系列の長さに対応する0番目の入力層から多数の層に供給し、例えば0の値を層の残りのノードに供給することができる。
次に、供給セクション120は、一時点より前の入力データ・シーケンスに対応する複数の入力値を、モデル10の−1番目の入力層から(−T+1)番目の入力層までのそれぞれの層に含まれる複数のノードに供給することができる。ここで、xj (−T,−1]は、−1番目の入力層から(−T+1)番目の入力層までに供給される入力データを示すものとする(1≦j≦I)。用語(−T,−1]は、(−T+1)番目の層から−1番目の層までの層を示す。つまり、時系列データにおける入力データxj (−T,−1]は、例えば、入力データxj [0]に至るまでの履歴を示す。
次いで、ストレージ・セクション130は、一時点に対応する複数の隠れノードの値をサンプリングし、これらの値を、0番目の隠れ層の対応する複数の隠れノード内にそれぞれ格納する(S330)。ストレージ・セクション130は、任意に又はランダムに、1又は0の値を入力することができる。ストレージ・セクション130は、H個のサンプリング値を、例えば、0番目の隠れ層の対応する隠れノードjに格納する(I+1≦j≦I+H)。
ストレージ・セクション130は、一時点より前の隠れノードの値を、モデル10の−1番目の隠れ層から(−T+1)番目の隠れ層までの対応する隠れ層の各々における複数のノードにそれぞれ格納することができる。xj (−T,−1]は、−1番目の隠れ層から(−T+1)番目の隠れ層までの層内に格納される隠れノードの値を示すものとする(I+1≦j≦I+H)。つまり、一時点より前の各共通層12のノードに入力された値xj (−T,−1]は、例えば、0番目の共通層のノードに入力された入力値xj [0]に至るまでの履歴を示す(1≦j≦I+H)。
次に、計算セクション140は、(−T+1)番目の共通層から−1番目の共通層までの複数のノードの入力値x
j (−T,−1](1≦j≦I+H)と、重みパラメータW
ij [δ]とに基づいて、一時点の入力ノードの各入力値x
j [0](1≦j≦I)の条件付き確率を計算することができる(S340)。計算セクション140は、共通層12の複数のノードの履歴x
(−T,−1](1≦j≦I+H)に基づき、次式のx
j [0]に1を代入することにより、1に等しい0番目の入力層のj番目のノードの入力値x
j [0](1≦j≦I)の確率<x
j [0]>
θを計算する。
各ノードの入力値xj [0]が2進数、すなわち1又は0である例を説明するが、入力値xj [0]の値はこれらの値に限定されるものではない。さらに、0番目の入力層の各入力値xj [0](1≦j≦I)の条件付き確率を計算するためのステップにおいて、計算セクション140は、0番目の隠れ層の値xj [0](I+1≦j≦I+H)の条件付き確率を計算することができる。
式2は、ボルツマン・マシンとして既知の確率式から導かれる。例えば、θは、計算すべきパラメータのセットを示し、式θ=(b
j,u
i,j,k,v
i,j,l)が確立される。さらに、τは、ボルツマン・マシンの既知の「システム温度」に依存するパラメータとすることができ、ユーザ等によって予め設定することができる。また、式2のE
θ,j(x
j [0]|x
(−T,−1])は、次式を用いて計算される。
ここで、「T」は転置を示し、「:」は、n(=I+H)がノード数を示す場合に1乃至nを示し、「:,j」は、j番目の列の抽出を示す。つまり、式3の右辺の第2項は、例えば、次式により示される。
ここで、α
i,j,k、β
i,j,l、及びγ
i,lは、次式により示される。
従って、式2のxj [0]に1を代入することにより得られるPθ,j(1|xj (−T,−1])は、式5のxj [0]に1を代入することにより、式3から計算することができる。所定の初期値(例えば、0)をパラメータ・セットθ=(bj,ui,j,k,vi,j,l)に代入できることに留意されたい。このように、計算セクション140は、式2により示される一時点の各入力値xj [0]の条件付き確率<xj [0]>θを計算することができる。
次に、学習処理セクション150が、パラメータ・セットθ=(b
j,u
i,j,k,v
i,j,l)を調整することができる(S350)。バイアス・パラメータb
jを調整するとき、学習処理セクション150は、次式を用いることによって、バイアス・パラメータb
jの変化の方向を定めることができる。
ここで、式8の右辺のx
j [0]は、供給セクション120により訓練データとして供給された入力値を示し、右辺の<x
j [0]>
θは、式2を用いて計算された確率を示す(1≦j≦I)。各入力ノードについてのバイアス・パラメータb
j(1≦j≦I)は、式8を用いて次式により示されるように、調整及び更新することができる。係数cは、ユーザ等により予め定められるパラメータであることに留意されたい。
つまり、学習処理セクション150は、共通層12の履歴x(−T,−1]が発生したという条件下で生じる0番目の入力層のノードの入力値xj [0]の条件付き確率を高めるように、バイアス・パラメータbjを調整する。学習処理セクション150は、式9により示されるバイアス・パラメータbjの更新、及び式2により示される確率<xj [0]>θの計算を繰り返し実行して、バイアス・パラメータbjを決定することができる。更新前と更新後のバイアス・パラメータbjの差が所定の閾値より小さいか又はこれに等しい場合、学習処理セクション150は、バイアス・パラメータbjの更新を停止し、バイアス・パラメータbjを決定する。バイアス・パラメータbjが、隠れノードについても設定される場合、学習処理セクション150は、隠れノードのバイアス・パラメータbjを同じ方法で決定することができる。
或いは、学習処理セクション150は、所定の回数、バイアス・パラメータbjの更新を繰り返すことによって、バイアス・パラメータbjを決定することもできる。バイアス・パラメータbjを所定の回数だけ更新した後でも、更新前及び更新後のバイアス・パラメータbjの差が所定の閾値より大きいか又はこれに等しい場合、学習処理セクション150は、バイアス・パラメータbjの更新を停止し、パラメータが収束しないことをユーザに通知することができる。
同様に、学習パラメータu
i,j,kを更新する場合、学習処理セクション150は、次式によって、学習パラメータu
i,j,kの変化の方向を定めることができる。
また、学習パラメータv
i,j,lを更新する場合、学習処理セクション150は、次式によって、学習パラメータv
i,j,lの変化の方向を定めることができる。
バイアス・パラメータbjの更新と同様に、学習処理セクション150は、入力ノードに対応する学習パラメータui,j,k及びvi,j,l(1≦j≦I)の更新、及び確率<xj [0]>θの計算を繰り返し実行して、入力ノードに対応する学習パラメータui,j,k及びvi,j,l(1≦j≦I)を定めることができる。或いは、学習処理セクション150は、パラメータ・セットθ=(bj,ui,j,k,vi,j,l)を更新し、次に、式2により示される確率<xj [0]>θを計算するための動作を繰り返し実行して、パラメータ・セットθ=(bj,ui,j,k,vi,j,l)を定めることができる。
上述のように、学習処理セクション150は、学習により、学習パラメータui,j,k及びvi,j,l、並びにバイアス・パラメータbjを決定することができる。次に、学習装置100は、学習を継続するかどうかを決定することができる(S360)。学習装置100は、学習プロセスを所定の回数だけ実行するまで学習を継続することができ、又はユーザにより停止コマンドが入力されるまで学習を継続することができる。或いは、学習装置100は、取得できる時系列データがなくなるまで、学習を継続することができる。
学習装置100が学習を継続する場合(S360:イエス)、プロセスは、ステップS310に戻り、そこで、取得セクション110が次の時系列データを取得し、次に、学習装置100は、次の時系列データに基づいて、モデル10の学習を実行することができる。例えば、供給セクション120は、取得セクション110により取得される画像データにおける次の画像を、0番目の入力層に供給する。さらに、ストレージ・セクション130は、隠れ層の値をサンプリングし、これらの値を0番目の隠れ層に格納する。次に、t番目の共通層内に保持される値(−T<t<0)を、(t−1)番目の共通層に供給することができる。(−T+1)番目の層内に保持される値は、削除することができる。学習装置100は、0番目の入力層から(−T+1)番目の入力層までの層に供給された画像データを訓練データとして用い、0番目の隠れ層から(−T+1)番目の隠れ層までの層内に格納される値を用いて、学習を実行することができる。
このように、供給セクション120及びストレージ・セクション130は、モデル10内の0番目の共通層のノードに対応する次の時点における新しい入力値xj [0]を順次取得することができる。次に、計算セクション140は、次の時点より前の各共通層において履歴が発生したという条件下で、新しい入力値xj [0]の条件付き確率<xj [0]>θを計算することができる。学習処理セクション150は、この履歴が発生したという条件下で生じる新しい入力値の条件付き確率を高めるように、重みパラメータを調整することができる。
学習処理部セクション150が学習を停止する場合(S360:ノー)、学習処理セクション150は、決定した学習パラメータui,j,k及びvi,j,l、並びにバイアス・パラメータbjを出力し、パラメータを外部データベース1000等に格納することができる。
上述のように、学習装置100は、一時点を0番目の共通層と関連付け、一時点より前の入力データ・シーケンスをT−1の層と関連付けることによって、合計Tの層を有するモデルを、時系列に入力された時系列入力データに適用するように動作可能である。学習装置100は、隠れノードを有するモデルを各共通層12に適用するようにも動作可能である。つまり、学習装置100は、入力データ・シーケンス及び隠れノード値に基づいて、一時点の入力データを予測する時間発展ボルツマン・マシンを形成するように動作可能である。
学習装置100は、時間発展を考慮に入れるモデルに対し、履歴である入力値x(−T,−1]に基づき、発生する一時点の入力値xj [0]の条件付き確率を計算することにより、モデルを学習することができる。さらに、学習装置100は、時系列入力データに加えて隠れノードを用いてモデルを学習するので、表現能力及び学習能力が改善され得る。
時系列入力データから新しい入力データを順次取得し、取得した各入力データについての重みパラメータを調整する学習装置100の説明が与えられた。この構成の代わりに、学習装置100は、所定の期間の時系列入力データを取得し、次に、重みパラメータを調整することもできる。例えば、学習処理セクション150は、D個の層に対応する、複数の時点の新しい入力データの取得に応じて、複数の時点について重みパラメータをまとめて調整する。
図4は、本発明の実施形態において学習に用いられる時系列データ及び訓練データの構造の例を示す。図4において、横軸は時間を示す。図4は、学習の際、学習装置100により訓練データとして用いられる時系列データy[1,T]の期間Tよりも長い期間Lを有する時系列データy[1,L]を学習装置100が用いる例を示す。この場合、学習処理セクション150は、複数の時点の入力データが新たに取得されることに応じて、複数の時点についての重みパラメータをまとめて調整するように動作可能である。
学習装置100は、最初に、時間1から時間Tまでの時系列データの時系列データ・セグメントを、第1の訓練データとして用いて学習を実行する。この場合、図3に述べられるように、学習装置100は、時間1から時間Tまでの時系列データ及び対応する隠れ層の値を、一時点の共通層12の各入力値として順番に設定し、将来に向かけて時点を一度に1つずつ徐々にシフトすることによって、学習を実行することができる。学習装置100は、時間Tにおけるデータを一時点の各入力値xj [0]として使用し、時間1から時間T−1までの時系列データが入力データ・シーケンスx(−T,−1](すなわち、履歴)になるまで、学習を継続することができる。
次に、学習装置100は、時間2から時間T+1の時系列データの時系列データ・セグメントを、第2の訓練データとして用いて学習を実行する。学習装置100は、第2の訓練データにおけるD個のデータの各々を、一時点の入力値xj [0]として順次用いることができる。この場合、学習装置100は、時間2から時間T+1までの間隔において、一度に一時点だけ将来の方向に時点をシフトして、時間2から時間Tまでの間隔における対応する時系列データ及び隠れノードを履歴として用いることができる。このように、学習装置100は、D個の各入力値xj [0]及び対応するD個の履歴についてパラメータをD回調整することができる。つまり、学習装置100は、式8から式11までに説明される学習方法を実行する確率的勾配技術を用いることができる。
或いは、学習装置100は、D個の時系列データ・セットを取得し、期間Lの時系列データ・セグメントから複数の訓練データ・セットを生成し、D個の層に対する学習をまとめて実行することができる。具体的には、学習装置100は、次式を用いて、D個の層に対して式8から式11までをまとめて用いて説明する確率的勾配技術を実行することができる。
図5は、学習装置100の変形形態を示す。図1に示される学習装置100のものと実質的に同じ動作を実行する、図5に示される学習装置100のコンポーネントは、同じ参照番号で示され、その説明は省略される。図4で説明されるような期間Lの時系列データが与えられる場合、変形形態の学習装置100は、FIFOメモリを用いてパラメータを効率的に更新、時系列入力データに対応するモデルを学習するように動作可能である。変形形態の学習装置100は、FIFOメモリ160と、更新セクション170とをさらに含む。
FIFOメモリ160の各々は、入力データを順次格納し、所定数の格納が実行された後、格納したデータを出力することができる。FIFOメモリ160の各々は、最初に格納されたデータを最初に出力する(FIFO:先入れ先出し(First In First Out))メモリとすることができる。
FIFOメモリ160の各々は、共通層12の入力値を順次格納し、所定数の格納が実行された後、入力値を出力することができる。学習装置100は、複数のFIFOメモリ160を含むことができ、その数は、モデルのノードnの数より大きいか又はこれに等しい。複数のFIFOメモリ160が、共通層12の複数のノードと一対一対応を有するように設けられることが望ましい。つまり、複数のFIFOメモリ160の各々を、共通層12のそれぞれのノードについての履歴を格納するように、又はその履歴を更新するように設けることができる。
複数のFIFOメモリ160は、取得セクション110及びストレージ・セクション130に接続され、共通層12の新しい入力データに対応する入力値を順次格納する。また、複数のFIFOメモリ160は、更新セクション170にも接続され、そこに格納されたデータを更新セクション170に順次供給する。
更新セクション170は、一時点より前の時系列入力データの隠れノード及び入力データ・シーケンスに基づいた複数の更新パラメータを、更新パラメータの値、及び隠れノードの値、並びに次に反映すべき入力データに対応する入力値に基づいて、前の時点の値から一時点の値へと更新するように動作可能である。更新セクション170は、FIFOメモリ160に入力された値及びFIFOメモリ160から出力された値を用いて、更新パラメータを更新することができる。更新セクション170は、取得セクション110及びストレージ・セクション130に接続することができ、FIFOメモリ160に入力された値を受け取ることができる。或いは、更新セクション170は、供給セクション120を介して、取得セクション110からFIFOメモリ160に入力された値を受け取ることができる。
ここで、更新パラメータは、式5及び式7に示されるαi,j,k及びγi,lである。この場合、更新パラメータは、例えば、各時点の入力データ・シーケンスの入力データに対応する入力値i(1≦i≦I)と、この入力値iとターゲットとする入力ノードj(1≦j≦I)又は隠れノードj(I+1≦j≦I+H)との間の重みパラメータWij [δ]の所定のパラメータλk t1及びμl t2とに基づく。別の例として、更新パラメータは、例えば、各時点の隠れノードi(I+1≦i≦I+H)と、この隠れノードiとターゲットとする入力ノードj(1≦j≦I)又は隠れノードj(I+1≦j≦I+H)との間の重みパラメータWij [δ]の所定のパラメータλk t1及びμl t2とに基づく。
更新パラメータは、取得セクション110による時系列入力データの取得のたびに更新することができ、ストレージ・セクション130によるサンプリング値の格納が順次実行される。変形形態による上述の学習装置100は、モデル10の変形形態を学習するように動作可能である。モデル10の変形形態について、図6を参照して説明する。
図6を参照すると、モデル10は、図2に示されるT層を含む層状構造を有する必要はない。図6は、FIFOメモリ160の1つに対応するモデルの例を示す。従って、モデル10の全体構成は、訓練データを含む図2の0番目の共通層に相当するストレージ領域と、ノードnの数(=I+H)に等しい、図6に示される構成の数を含む。モデル10のニューロンi及びj、並びにFIFOシーケンス20を以下に説明する。
ニューロンiは、FIFOメモリ160の入力端子に相当し得る。各時点tの入力データ・シーケンスの入力データにおける各ノードの入力値yi [t](1≦i≦I)及び各時点の隠れノードの値yi [t](I+1≦i≦I+H)のうちの対応する値yi [t]が、ニューロンiに順次入力される。ニューロンiは、これに入力された入力値yi [t]を、現在の入力値として設定することができる。次に、時点t+1において、ニューロンiは、時点tにおいて入力された入力値yi [t]を更新セクション170及びFIFOシーケンス20に、前の入力値として供給し、時点t+1の入力値yi [t+1]を現在の入力値として保持することができる。
FIFOシーケンス20は、ニューロンiから受け取ったd
ij−1個の最新の入力値を格納することができる。FIFOシーケンス20は、そこに格納したd
ij−1個の入力値を更新セクション170に供給することができる。更新セクション170は、FIFOシーケンスにより供給された入力値を用いて、式6により示される更新パラメータの値を計算するように動作可能である。FIFOシーケンス20が時点t−1乃至時点t−d
ij+1を保持する場合、FIFOシーケンス20は、次式により示される。
時点t1において入力値yi [t1]がニューロンiに入力された後、FIFOシーケンス20は、時点t1の次の時点t2(=t1+1)の後の所定の期間dij−1である時点t3(=t1+dij−1)まで、入力値yi [t1]を格納することができる。次の時点t4(=t3+1=t1+dij)において、FIFOシーケンス20は、入力値yi [t1]をニューロンjに供給することができる。時点t4においてニューロンjに供給された入力値yi [t1]は、時点t4において更新セクション170に即座に供給される。しかしながら、ニューロンjが時点t4においてFIFOシーケンス20から受け取った入力値yi [t1]は、ニューロンjのための入力とならず、入力値yi [t4]が、時点t4においてニューロンjに入力され得る。
ニューロンjは、FIFOメモリ160の出力端子に相当し、ニューロンjは、期間dijの後、FIFOシーケンスを介して時点t1において、すなわち時点t1+dijにおいて、ニューロンiに入力された入力値yi [t1]を受け取ることができる。つまり、FIFOシーケンス20を介するニューロンi乃至ニューロンjのモデル10は、dij個の入力データを格納するFIFOメモリ160に対応し得る。さらに、変形形態によるモデル10のニューロンiは、例えば、図2に示されるモデル10の(−δ)番目の共通層のノードiのような、入力データ・シーケンスのノードに対応し、この場合、ニューロンjは、例えば、0番目の共通層のノードjに対応し得る。時点t1+dijにおいて、ニューロンjは、受け取った入力値yi [t1]を更新セクション170に供給することができる。
上述のように、モデル10は、時点tにおいて、時点t−1及び時点t−dij+1の入力値を、更新セクション170に供給することができる。このように、更新セクション170は、一時点より前の時点についての更新パラメータの次に反映すべき入力データにおける対応する入力値を加算し、次に、結果として生じる和に所定の定数を乗算することによって、更新パラメータを更新することができる。式8により示される更新パラメータは、更新セクション170に供給されるFIFOシーケンス20に格納された入力値を用いて、式8に従って計算できることに留意されたい。
例えば、式7により示される更新パラメータγ
i,lは、更新セクション170に供給された入力値及び第2の所定のパラメータを用いて更新することができる。具体的には、更新セクション170は、前の更新パラメータγ
i,l、及び時点tにおいてニューロンiから受け取った入力値y
i [t−1]を用いて、次式に従って時点tにおける計算を実行することにより、現在の学習に用いられる更新パラメータγ
i,lを計算することができる。
図7は、本実施形態による更新パラメータγi,lの時間的変化の例を示す。図7は、0より大きい値(例えば、1)が、時点t−5、t−2、及びt−1における入力値としてニューロンiに入力され、これらの入力値が時点t−4、t−1、及びtにおいて更新セクション170に供給される例を示す。第2の所定のパラメータμlは、時点差が増大するにつれて値が漸減するパラメータである。従って、更新セクション170により計算される更新パラメータγi,lは、1の入力値が入力される時から次の入力が与えられるまで時間の経過共に減少する傾向がある。
式5により示される更新パラメータα
i,j,kは、更新セクション170に供給される入力値及び第1の所定のパラメータλ
kを用いて更新することができる。具体的には、更新セクション170は、前の更新パラメータα
i,j,k及び時点tにおいてニューロンjから受け取った入力値y
i [t−dij]を用いて、次式に従って時点tにおいて計算することによって、現在の学習に用いられる更新パラメータα
i,j,kを計算することができる。
図8は、本発明の実施形態による更新パラメータαi,j,kの時間的変化の例を示す。図8は、0より大きい値(例えば、1)が、時点t−3、t−1、及びtにおける入力値としてニューロンjに供給される例を示す。第1の所定のパラメータλkは、時点差が増大するにつれて値が漸減するパラメータである。従って、更新セクション170により計算される更新パラメータαi,j,kは、1の入力値が入力される時から次の入力が与えられる時まで、時間の経過と共に減少する傾向がある。
上述のように、変形形態による学習装置100は、FIFOメモリ160及び更新セクション170を用いて、図6に示されるモデル10を適用することによって、更新パラメータαi,j,k及びγi,lを更新することができる。更新セクション170は、例えば、FIFOメモリ160に入力された入力データから、時点t−1の入力値xi [t−1]を取得し、FIFOメモリ160の出力から時点t−dijの入力値xi [t−dij]を取得することにより、変形形態によるモデル10を適用できることに留意されたい。
さらに、学習装置100は、図3に説明される動作と実質的に同じ動作により、パラメータβi,j,lを更新することができる。具体的には、計算セクション140は、式6により示されるように、t−1からt−dij+1までの時点について第2の所定のパラメータμlと入力値xi(本変形形態においてはyi)の積の和を求めることにより、パラメータβi,j,lを計算することができる。
このように、変形形態による計算セクション140は、隠れノード及び入力データ・シーケンスが生じたという条件下で、複数の更新パラメータ、一時点の入力データ値の条件付き確率を用いることにより計算することができる。次いで、学習処理セクション150は、図3に説明された動作と実質的に同じ動作を実行することにより、学習パラメータui,j,k及びvi,j,l、並びにバイアス・パラメータbjを決定することができる。
言い換えれば、学習装置100は、一時点より前のモデル10の共通層12に入力された過去の値に基づいて、共通層12の入力層14に入力される入力値を予測する確率を上げるように、重みパラメータ及びバイアス・パラメータを決定することができる。さらに、学習装置100は、共通層12が、入力層14に加えて隠れ層16を含むようにすることにより、入力層14に入力される入力値の予測精度、表現能力、学習効率等を改善することができる。
上述した学習装置100は、学習装置100が行った予測に関係しない値がサンプリングされ、隠れ層16に入力される隠れノードとして入力される例である。この代わりに、学習装置100は、共通層12のノードの値の条件付き確率の履歴を用いて、隠れノード値を決定することができる。学習装置100は、この条件付き確率履歴を用いて、隠れノードへの重みパラメータを決定することができる。学習装置100は、共通層12のノードの条件付き確率履歴を用いて、隠れノード及び隠れノード値への重みパラメータを決定することによって、予測精度を改善することができる。
この場合、計算セクション140は、一時点tより前の各時点における共通層12の対応するノードjに入力された値に基づいて、一時点tにおける共通層12のノードjの値の条件付き確率pj,tを計算し、この条件付き確率をストレージ・セクション等に格納することができる。上述した一時点における入力層14の各入力値の条件付き確率の計算に加えて、計算セクション140は、一時点における隠れ層16内の各隠れノードの条件付き確率を同じ方法で計算することができる。つまり、計算セクション140は、複数の更新パラメータを用いて、入力データ・シーケンスが発生したという条件下で、一時点における各隠れノードの値及び各入力データ値の条件付き確率を計算することができる。ここで、計算セクション140は、条件付き確率pj,tをFIFO等に格納することができる。
計算セクション140は、学習装置100による学習が継続した後、全尤度(total likelihood)を計算するように動作可能である。計算セクション140は、例えば、時点t−K+1から時点tまでK個の学習インスタンスによって計算される条件付き確率p
j,t−K+1、p
j,t−K+2・・・,P
j,tに基づいて、次式に示されるような全尤度p
jを計算する。式16における全尤度p
jは、一例として、条件付き確率の合計を示すが、全尤度p
jは、条件付き確率の和、加重和、積、又は加重積の少なくとも1つとすることができる。さらに、Kは、2より大きい又はこれに等しい整数とすることができ、計算セクション140が条件付き確率p
j,tをFIFO等に格納する場合、FIFOシーケンスの長さは、Kの値と等しくなり得る。
計算セクション140は、全尤度pjをストレージ・セクション130に供給することができる。ストレージ・セクション130は、最新の尤度pj,tに基づいて、一時点における隠れ層16の隠れノードの値xj [t]をサンプリングすることができる。つまり、ストレージ・セクション130は、一時点の各隠れノードの値の条件付き確率を用いて、一時点の各隠れノードの値をサンプリングするように動作可能である。例えば、ストレージ・セクション130は、計算セクション140により計算される条件付き確率の履歴に基づいて、隠れノードの値をサンプリングする。つまり、ストレージ・セクション130は、学習処理セクション150の学習動作を複数回実行した後、隠れノードの値をサンプリングすることができる。ストレージ・セクション130は、学習処理セクション150の学習動作が複数回実行されるまで、0の値を隠れノードにサンプリング値として格納することができる。
ストレージ・セクション130は、全尤度pjの値と閾値との比較の結果に従って、1又は0の値をサンプリング結果として隠れノードに格納することができる。このように、入力層14に入力されるべき時系列データを予測するとき、ストレージ・セクション130は、過去の条件付き確率の履歴に基づいてサンプリングを実行することによって、より好ましい値を隠れノードとして格納することができる。
学習処理セクション150は、全尤度p
jに基づいて重みパラメータを決定するように動作可能である。この場合、学習処理セクション150は、一時点の1つの隠れノードjの重みパラメータにおける学習パラメータu
i,j,k及びv
i,j,kについての更新量△u
i,j,k及び△v
i,j,kを計算することができる。例えば、学習処理セクション150は、入力データ・シーケンスが発生したという条件下で一時点tの1つの隠れノードjの値x
j [t]、及び一時点tのこの隠れノードjの値の条件付き確率<X
j [t]>に基づいて、次式に示されるようにこれらの更新量△u
i,j,k及び△v
i,j,kを計算することができる(I+1≦j≦I+H)。
ここで、更新量△ui,j,k [t]は、△vi,j,k (1)[t]+△ui,j,k (2)[t]に等しい。隠れノードjの値の条件付き確率<Xj [t]>は、式2を用いて計算セクション140により計算することができる。学習処理セクション150は、計算した更新量△vi,j,k [t]、△ui,j,k (1)[t]、及び△ui,j,k (2)[t]をストレージ・セクション等に格納することができる。学習処理セクション150は、一時点について計算された更新量△vi,j,k [t]、△ui,j,k (1)[t]、及び△ui,j,k (2)[t]をFIFOシーケンスに格納するように動作可能である。つまり、学習処理セクション150は、過去に計算された更新量に基づいて学習パラメータを更新するように動作可能である。
学習処理セクション150は、例えば、一時点tより後である次の時点に発生する入力データの条件付き確率に応じて、更新量を学習パラメータに反映させる比率を変える。この場合、学習処理セクション150は、一時点より後である複数の次の時点に発生する複数の隠れノード値の条件付き確率に応じて、更新量を学習パラメータに反映させる比率を変えることができる。一時点より後の全尤度pjに応じて、学習パラメータにおいて更新量を反映させる比率を変える例を説明する。
学習処理セクション150は、例えば、時点t−K+1から時点tまでの学習のK個の学習インスタンスにより計算された全尤度p
j、及び時点t−K+1の更新量に基づいて、次式に示されるように学習パラメータを更新することができる。ここで、Kは、2より大きいか又はこれに等しい整数とすることができ、学習処理セクション150は、更新量をFIFOシーケンス等に格納する場合、FIFOシーケンスの長さは、Kの値に等しくなり得る。
ここで、η1は、更新量を調整するための定数とすることができる。或いは、η1は、更新数の増加に従って値が小さくなる係数とすることもできる。さらに、η1は、学習処理セクション150が学習を開始する段階において、実質的に1の値を有することができ、時間が時点tから経過するにつれて生じる学習の量に応じて値が小さくなる係数とすることもできる。例えば、η1=η10/t2である。さらに、η1は、更新量に応じて値が小さくなる係数とすることもできる。例えば、η1=η10/(Σ△ui,j,k 2)1/2である。ここで、η10は、所定の定数とすることができる。
上述した方法において、学習処理セクション150は、一時点より前の時点で計算された条件付き確率に応じて、一時点の隠れノードの学習パラメータを更新することができる。このように、学習装置100は、一時点より前の時点の重みパラメータに起因して入力ノードの入力値の予測確率が大きいことに応答して、学習パラメータにおける一時点より前の時点の更新量をより大きく反映させることができる。つまり、学習装置100は、条件付き確率を増大させるように、隠れノードの重みパラメータを更新することができる。
FIFOシーケンスを用いてこうした重みパラメータの更新を実行する場合、学習処理セクション150は、次の時点(例えば、t)又はその後の時点における過去の時点(例えば、t−K+1)の更新量△vi,j,k [t−K+1],△ui,j,k (1)[t−K+1]、及び△ui,j,k (2)[t−K+1]を、FIFOシーケンスから抽出することができる。学習処理セクション150は、次の時点tに発生する隠れノード値の条件付き確率に応じて、FIFOシーケンスから抽出された更新を学習パラメータに反映させる比率を更新することができる。例えば、学習処理セクション150は、全尤度pjをそれぞれ各更新量と乗算することができる。このように、学習処理セクション150は、上述のように重みパラメータの更新を効率的に実行することができる。
上述のように、学習装置100は、時系列入力データにおける一時点より前の入力データ系列に基づいて、一時点の入力データを予測する方法で、モデル10を学習することができる。さらに、学習装置100は、隠れノードを含ませることにより、表現力、学習力等を改善することができる。こうした学習装置において、学習を実行するのが比較的難しい場合がある。
例えば、一時点の隠れノードの場合、特定量の時点がまだ経過していない場合、この隠れノード値が効果的であるかどうかを評価するのは困難である。従って、隠れノードが用いられる場合、入力データ系列と一時点における隠れノードとの間の重みパラメータについての学習装置100の学習精度が、入力データ系列と一時点における入力ノードとの間の重みパラメータについての学習精度より低い場合がある。さらに、入力データ系列における特徴的なデータ傾向がある場合、学習がこのデータ傾向に影響を受け、過剰適合(overfitting)がなされる場合があり、将来のデータ予測に対する適切でない学習をもたらす。
従って、学習装置100は、時系列入力データがモデル10に入力される順番を変更し、双方向学習プロセスを実行することによって、学習をさらに改善するように動作可能である。以下は、こうした学習装置100について説明する。
学習装置100が、時系列入力データにおける一時点より前の入力データ系列に基づいて、一時点の入力データを予測する方法でモデル10を学習するように動作可能である。このように、学習装置100は、過去のデータから将来のデータへの順番で、時系列入力データがモデル10に入力される学習プロセスを実行する順方向モデル(forward model)である第1のモデルを作成する。
図9は、第1のモデルの例示的な概略的構成を示す。図9は、図2に示されるモデル10に対応する第1のモデルの概略的構成を示す。図9では、一時点tの入力層14におけるノードjの値は、xj [t](1≦j≦I)で示され、一時点tの隠れ層16におけるノードjの値は、hj [t](I+1≦j≦H)で示される。さらに、一時点tより前の複数の入力層14におけるノードiの値は、xi [:t−1](1≦i≦I)で示され、一時点tより前の隠れ層16におけるノードiの値は、hi [:t−1](I+1≦i≦H)で示される。
上述のように、第1のモデルは、時系列入力データ・シーケンスにおける各時点の複数の入力値を順次入力する複数の入力ノードjと、各入力ノードjと複数の入力ノードjに対応する時点より前の時点における各入力値xi [:t−1]との間の重みパラメータWij [δ]とを含むことができる。ここで、一時点より前の複数の入力層14と一時点の入力層14との間の重みパラメータは、WVVである。さらに、第1のモデルは、各入力ノードjと複数の入力ノードjに対応する時点より前の時点に対応する時点より前の時点に対応する複数の隠れノードiの各々との間の重みパラメータWij [δ]を含むことができる。ここで、一時点tより前の複数の隠れ層16と一時点tの入力層14との間の重みパラメータは、WHVである。
第1のモデルは、複数の入力ノードjに対応する時点より前の時点に対応する各入力ノードiと複数の入力ノードjに対応する時点に対応する各隠れノードjとの間の重みパラメータWij [δ]をさらに含むことができる。ここで、一時点tより前の複数の入力層14と一時点tの隠れ層16との間の重みパラメータは、WVHである。第1のモデルは、複数の入力ノードjに対応する時点より前の時点に対応する複数の隠れノードiの各々と複数の入力ノードjに対応する時点に対応する隠れノードjの各々との間の重みパラメータWij [δ]をさらに含むことができる。ここで、一時点tより前の複数の隠れ層16と一時点tの隠れ層16との間の重みパラメータは、WHHである。
bが第1のモデルのバイアス・パラメータを表す場合、一時点における入力ノードj及び隠れノードjの条件付き確率pは、次式に基づいて算出することができる。第1のモデルにおける各パラメータの更新は、上述のとおりである。
ここで、学習のための時間系列入力データは既知であるので、この時間系列入力データがモデル10に入力される順番は、第1のモデルにおけるように、過去のデータから将来のデータへの順方向の順序に限定されない。学習装置100は、時系列入力データにおける一時点より後の入力データ系列に基づいて一時点の入力データを予測する方法でモデル10を学習するように動作可能である。このように、学習装置100は、将来のデータから過去のデータへの順序で時系列入力データをモデル10に入力する学習プロセスを実行する逆方向モデル(backward model)である第2のモデルを作成する。
図10は、第2のモデルの例示的な概略的構成を示す。図10は、図2に示されるモデル10に対応する第2のモデルの概略的構成を示す。図10では、一時点tの入力層14におけるノードjの値は、xj [t](1≦j≦I)により示され、一時点tの隠れ層16におけるノードjの値は、hj [t](I+1≦j≦H)により示される。さらに、一時点tより後の複数の入力層14におけるノードiの値は、xi [t+1:](1≦i≦I)により示され、一時点tより後の隠れ層16におけるノードiの値は、hi [t+1:](I+1≦i≦H)により示される。言い換えれば、学習動作が第2のモデルを用いて実行された場合、学習装置100は、時系列入力データにおいて時間的に最新のデータから、データをモデル10に入力する。
この場合、第2のモデルは、時系列入力データ・シーケンスにおける各時点の複数の入力値を、逆方向の順序(backward order)に順次入力する複数の入力ノードiと、複数の入力ノードiに対応する時点より後の時点の各入力値xj [t]と各入力ノードiとの間の重みパラメータWji [δ]とを含むことができる。ここで、一時点の入力層14と一時点より後の複数の入力層14との間の重みパラメータは、WVVである。さらに、第2のモデルは、複数の入力ノードiに対応する時点より後の時点に対応する複数の隠れノードjの各々と各入力ノードiとの間の重みパラメータWji [δ]を含むことができる。ここで、一時点tの入力層14と一時点tより後の複数の隠れ層16との間の重みパラメータは、WVHである。
第2のモデルは、複数の入力ノードiに対応する時点より後の時点に対応する各入力ノードjと複数の入力ノードiに対応する時点に対応する各隠れノードiとの間の重みパラメータWji [δ]をさらに含むことができる。ここで、一時点tの隠れ層16と一時点tより後の複数の入力層14との間の重みパラメータは、WHVである。第2のモデルは、複数の入力ノードiに対応する時点より後の時点に対応する複数の隠れノードjの各々と複数の入力ノードiに対応する時点に対応する各隠れノードiとの間の重みパラメータWji [δ]をさらに含むことができる。ここで、一時点tの隠れ層16と一時点tより後の複数の隠れ層16との間の重みパラメータは、WHHである。
bが第2のモデルのバイアス・パラメータを表す場合、一時点の入力ノードi及び隠れノードiの条件付き確率pは、次式に基づいて算出することができる。
式19及び式20に示されるように、学習装置100は、第1のモデル及び第2のモデルについて共通の各パラメータを学習するように動作可能である。さらに、第2のモデルを用いる学習装置100の学習動作は、第1のモデルを用いる学習動作と同じ動作を用いて実行するように動作可能である。例えば、第1のモデル及び第2のモデルについてのバイアス・パラメータは、実質的に同じパラメータとすることができる。第1のモデル及び第2のモデルについての重みパラメータWij及びWjiは、それらの間の転置関係に従って変換されるように動作可能である。さらに、第1のモデルの学習パラメータui,j,k及びvi,j,lは、iとjを交換することにより、第2のモデルの学習パラメータuj,i,k及びvj,i,lに変換されるように動作可能である。
第1のモデル及び第2のモデルの所定のパラメータλk t1及びμl t2は実質的に同じパラメータとすることができる。所定のパラメータの値は、時点差に従って決定されるので、所定のパラメータ値は、第1のモデル及び第2のモデルにおける各時点に従って異なるように変化し得る。
このように、変換動作を適用することにより、第1のモデル及び第2のモデルのパラメータが共有される。従って、同じ時系列入力データ・シーケンスに基づく第1のモデルの学習結果及び第2のモデルの学習結果は、理論的に合致することになる。しかしながら、データが入力される方向順序により、学習の容易さの差が生じる場合がある。
例えば、一時点tの入力層14の値及び一時点tより前の入力層14の複数の値は、既に時系列入力データとして知られている。さらに、一時点tより前の隠れ層16の複数の値は、例えば、これらの値がサンプリングされたときから特定量の時点が経過した後に得られた値であり、従って、評価結果は、これらの値の大部分について既に取得されている。従って、第1のモデルにおける一時点tの入力層14に関連する重みパラメータWVV及びWHVは、正確に学習できるパラメータである。
さらに、一時点tの隠れ層16の値は、例えば、サンプリングされた値であり、従って、このサンプリングされた値の評価結果は、幾つかの学習インスタンスが完了した後に既知となる。従って、第1のモデルにおける一時点tの隠れ層16に関連する重みパラメータWVH及びWHHは、学習するのが困難である。本実施形態において、第1のモデルにおいて学習するのが困難な重みパラメータWVHは、第1の学習ターゲット・パラメータとして設定され、正確に学習できる重みパラメータWHVは、第2の学習ターゲット・パラメータとして設定される。
第2のモデルにおいて、同じ方法で、一時点tの入力層14に関連する重みパラメータWVV及びWVHは、正確に学習できるパラメータである。他方、一時点tの隠れ層16に関連するWHV及びWHHは、学習するのが困難である。従って、第2のモデルにおいて正確に学習できる重みパラメータWVHは、第1の学習ターゲット・パラメータとして設定され、学習するのが困難である重みパラメータWHVは、第2の学習ターゲット・パラメータとして設定される。
ここで、第1のモデルの第1の学習ターゲット・パラメータWVHは、過去の入力層14と将来の隠れ層16との間の重みパラメータとして相対的に表すことができる。第2のモデルの第1の学習ターゲット・パラメータWVHも、過去の入力層14と将来の隠れ層16との間の重みパラメータとして相対的に表すことができる。従って、第1のモデルの第1の学習ターゲット・パラメータWVH及び第2のモデルの第1の学習ターゲット・パラメータWVHは、共通のパラメータとすることができ、又は第1のモデルの第1の学習ターゲット・パラメータWVHは、第2のモデルの第1の学習ターゲット・パラメータWVHに変換するように動作可能である。従って、このパラメータを正確に学習できる第2のモデルを用いて第1の学習ターゲット・パラメータWVHを学習することによって、学習装置100は、第1のモデルを用いて算出するのが困難であり得る第1の学習ターゲット・パラメータWVHを容易に算出することができる。
同様に、第1のモデルの第2の学習ターゲット・パラメータWHVは、過去の隠れ層16と将来の入力層14との間の重みパラメータとして相対的に表すことができる。第2のモデルの第2の学習ターゲット・パラメータWHVも、過去の隠れ層16と将来の入力層14との間の重みパラメータとして相対的に表すことができる。従って、第1のモデルの第2の学習ターゲット・パラメータWHV及び第2のモデルの第2の学習ターゲット・パラメータWHVは、共通のパラメータとすることができ、又は第1のモデルの第2の学習ターゲット・パラメータWHVは、第2のモデルの第2の学習ターゲット・パラメータWHVに変換するように動作可能である。従って、このパラメータを正確に学習できる第1のモデルを用いて第2の学習ターゲット・パラメータWHVを学習することによって、学習装置100は、第2のモデルを用いて算出するのが困難であり得る第2の学習ターゲット・パラメータWHVを容易に算出することができる。
このように、学習装置100は、モデルの一方にとって困難なパラメータを学習し、他方のモデルによって正確に学習できるパラメータを用いて学習するように第1のモデル及び第2のモデルを用いることによって効率的な学習を実行するように動作可能である。以下に、こうした学習装置100の学習動作について説明する。
図11は、学習装置100によって実行される第1のモデル及び第2のモデルを用いる学習プロセスの動作フローを示す。学習装置100は、S410乃至S470のプロセスを実行することによって、時系列入力データに対応するモデル10を正確に学習するように動作可能である。
最初に、取得セクション110が、時系列入力データ・シーケンスを取得することができる(S410)。取得セクション110が、時系列入力データ・シーケンスとして、学習の1つのインスタンスに用いられる時系列データの間隔Tより長い間隔Lにおける時系列データを取得する例を説明する。取得セクション110は、例えば、動画データを形成するように時系列に配置されたL個の画像データを取得する。
次に、学習装置100は、第1のモデル学習プロセスを用いて、各入力値と第1のモデルにおける複数の入力ノードに対応する時点より前の時点に対応する各隠れノードとの間の重みパラメータを学習することができる(S420)。具体的には、供給セクション120は、古い入力データから順番に時系列入力データ・シーケンスをモデル10に順次入力することができ、ストレージ・セクション130は、それぞれの時点に対応する複数の隠れノードの値をサンプリングし、その値をそれぞれ、対応する複数の隠れノードに格納することができる。
学習装置100は、第1のモデルを用いてこの学習を実行することができる。具体的には、計算セクション140は、一時点の入力ノードの各入力値の条件付き確率を算出し、学習処理セクション150は、パラメータθを更新することができる。さらに、更新セクション170は、更新パラメータを更新することができる。学習装置100の学習動作は上で既に説明したので、ここでは説明しない。学習装置100は、第1のモデルを用いて所定の回数、学習プロセスを実行するように動作可能である。
次に、学習装置100は、第1のモデルを用いて学習したパラメータを、第2のモデルに対応するパラメータに変換することができる(S430)。この場合、更新セクション170は、変換セクションを含み、変換セクションは、第1のモデルのパラメータを第2のモデルのパラメータに変換するように動作可能である。変換セクションは、転置、要素の置換等を実行することによって、パラメータを変換することができる。
次に、学習装置100は、変換したパラメータを用いる第2のモデルを用いた学習プロセスを用いることによって、第2のモデルにおける複数の隠れノードの各々と複数の入力ノードに対応する時点より後の時点に対応する各入力ノードとの間の重みパラメータを学習することができる(S440)。具体的には、供給セクション120は、時系列入力データ・シーケンスを、より新しい入力データから順番にモデル10に順次入力することができ、ストレージ・セクション130は、各時点に対応する複数の隠れノードの値をサンプリングし、サンプリング値をそれぞれ対応する複数の隠れノードに格納することができる。
供給セクション120及びストレージ・セクション130は、各データを、第1のモデルによる学習に用いられるFIFOメモリ160とは異なる、第2のモデルによる学習に用いられるFIFOメモリ160に格納することができる。学習装置100は、第2のモデルを用いて学習プロセスを所定の回数実行するように動作可能である。
次に、学習装置100は、第2のモデルを用いて学習したパラメータを第1のモデルに対応するパラメータに変換することができる(S450)。この場合、変換セクションは、第2のモデルのパラメータを第1のモデルのパラメータに変換するように動作可能である。変換セクションは、転置、要素の置換等を用いて、パラメータを変換することができる。
学習装置100は、学習を継続すべきかどうかを判定することができる(S460)。学習装置100は、学習プロセスが所定の回数実行されるまで、学習を継続することができ、又は代わりに、ユーザからの停止コマンドが入力されるまで、学習を継続することができる。別の例として、学習装置100は、時系列入力データ・シーケンスにおいて入力できるデータがそれ以上なくなるまで、学習を継続することができる。
学習を継続する場合(S460:イエス)、学習装置100は、ステップS410に戻り、モデル10に供給される時系列データがそれ以上ない場合、取得セクション110は、時系列データ・シーケンスにおける次のデータを取得することができる。学習装置100は、次の時系列データに基づいて、第1のモデル及び第2のモデルを用いて学習を順次実行することができる。
学習が終了した場合(S460:ノー)、学習処理セクション150は、第1のモデルを用いて最終学習プロセスを実行することができる(S470)。学習処理セクション150は、1回又は複数回、第1のモデルを用いて学習プロセスを実行した後、学習した第1のモデルを取得するように動作可能である。学習処理セクション150は、学習した第1のモデルをデータベース1000等に出力するように動作可能である。学習処理セクション150は、第1のモデルを出力し、学習プロセスを終了することができる。
このように、学習装置100は、第1のモデル及び第2のモデルの中から出力すべきモデルに対応する最後の学習インスタンスを実行するために用いられるモデルを、学習したモデルとして出力することができる。具体的には、図11は、学習した第1のモデルが出力されるが、学習した第2のモデルが出力される場合、パラメータを変換するためのS450のプロセスを実行することなく、学習した第2のモデルを出力することができる。
学習装置100は、第1のモデル及び第2のモデルの中から出力すべきモデルに対応する学習により大きく重点を置きながら、学習を継続することができる。例えば、学習装置100は、第2のモデルを用いる学習プロセスよりも多くの回数、第1のモデルを用いる学習プロセスを実行することができる。さらに、学習装置100は、係数等を調整することによって、第2のモデルを用いる学習プロセスにおけるよりも第1のモデルを用いる学習プロセスにおいて、高い学習速度を用いる学習を実行するように動作可能である。このように、学習装置100は、出力すべきモデルに対応する、重点を置いた方法で学習を実行し、従って、このモデルを用いてより適切な学習パラメータ・モデルを出力することができる。
上述のように、学習装置100の学習プロセスは、共通のパラメータを用いて、第1のモデル及び第2のモデルを用いた双方向(bidirectional)学習プロセスを実行する。従って、学習の方向に応じて変動する学習精度を有するパラメータが含まれる場合でも、学習装置100は、これらのパラメータをより高い精度で学習することができる。さらに、双方向学習を実行することによって、学習装置100は、第1のモデル及び第2のモデルの一方のみを用いてモデル学習が実行されたときに生じる過剰適合の発生を防止することができる。
上述した学習装置100の学習プロセスは、順方向モデル及び逆方向モデルを用いて実行される双方向学習プロセスの例である。これに加えて、学習装置100は、モデルに応じて学習されるパラメータを区別することができる。
図9及び図10に説明されるように、第1のモデルの第1の学習ターゲット・パラメータWVHは、第1のモデルを用いる学習よりも第2のモデルを用いる学習において、より高い精度で学習されるように動作可能である。さらに、第1のモデルの第2の学習ターゲット・パラメータWHVは、第2のモデルを用いる学習よりも第1のモデルを用いる学習においてより高い精度で学習されるように動作可能である。
この場合、学習装置100により実行される第1のモデルを用いる学習は、第1の学習ターゲット・パラメータWVHを変更することなく、第2の学習ターゲット・パラメータWHVを学習するように動作可能である。言い換えれば、第1のモデルを用いて学習するとき、学習装置100は、第1の学習ターゲット・パラメータWVHを更新することなく、第2の学習ターゲット・パラメータWHVを更新することができる。さらに、学習装置100により実行される第2のモデルを用いる学習は、第2の学習ターゲット・パラメータWHVを変更することなく、第1の学習ターゲット・パラメータWVHを学習するように動作可能である。言い換えれば、第2のモデルを用いて学習するとき、学習装置100は、第1の学習ターゲット・パラメータWVHを更新できるが、第2の学習ターゲット・パラメータWHVを更新する必要はない。
この代わりに、学習装置100は、学習に用いられるモデルに応じて、更新量を増減することができる。例えば、第1のモデルを用いる学習の場合、学習装置100は、第1の学習ターゲット・パラメータWVHの更新量に係数ρを乗算し、第2の学習ターゲット・パラメータWHVの更新量に(1−ρ)を乗算することによって、更新を実行することができる。ここで、係数ρは、0.5より小さい正の値とすることができる。このように、第2のモデルを用いる学習の場合、学習装置100は、第1の学習ターゲット・パラメータWVHの更新量に(1−ρ)を乗算し、かつ、第2の学習ターゲット・パラメータWHVの更新量に係数ρを乗算することによって、更新を実行することができる。
このように、学習装置100は、学習に用いられるモデルに応じて、学習に適切なパラメータ更新を促すことによって、学習プロセスをより正確に実行することができる。従って、隠れノードを含ませることにより、学習装置100は、表現力、学習力等を改善することができ、双方向学習プロセスを実行することによって、学習をより正確に実行することができる。
上述した学習装置100は、学習装置100が時系列入力データ・シーケンスを取得し、学習する例であるが、本発明は、時系列データに限定されない。例えば、垂直方向にn個のピクセルを有し、水平方向にm個のピクセルを有する2次元画像において、列方向に配置されたn個のピクセル列データを、一時点の入力データに対応するデータとして用いることができる。この場合、行方向に配置された複数の列データは、一時点より前又は後の入力データに対応するデータであり得る。この場合、学習装置100は、複数の列データが1つの行方向においてモデル10に入力される場合、及び、複数の列データが他の行方向においてモデル10に入力される場合、双方向学習を実行することができる。学習装置100は、波形データ、画像パターン・データ、言語データ等についても同様に双方向学習を実行することができる。
上述した本実施形態による学習装置100は、学習装置100が1つの入力データ・シーケンスを取得し、この1つの入力データ・シーケンスに基づき双方向学習のための訓練データを生成するが、本発明において取得されるデータは、1つの入力データ・シーケンスに限定されない。学習装置100は、複数のデータ・シーケンスを取得することができる。この場合、学習装置100は、第1の入力データ・シーケンスに対して、第1のモデルを用いる学習を使用し、第1の入力データ・シーケンスとは異なる第2の入力データ・シーケンスに対して、第2のモデルを用いる学習を用いることができる。
この場合、第1の入力データ・シーケンス及び第2の入力データ・シーケンスは、少なくとも部分的に関連していることが好ましい。さらに、データ・シーケンスが同じタイプのものであるか又は実質的に同じ傾向を有する場合、第1の入力データ・シーケンス及び第2の入力データ・シーケンスは、互いに異なる学習のための入力データ・シーケンスとすることができ、学習のための複数の入力データ・シーケンス内に含まれる。
この場合、学習装置100は、第1のモデルに基づいて、複数の入力値を含む入力データが配置された第1の入力データ・シーケンスからの入力データの各々をモデル10の入力ノードに順次入力し、第1のモデルを用いる学習プロセスを実行するように動作可能である。学習装置100は、複数の入力値を含む入力データが配置された第2の入力データ・シーケンスからの入力データの各々を、第1のモデルにおけるものとは異なる順序でモデル10の入力ノードに入力し、第1のモデル内に含まれる第1の学習ターゲット・パラメータを学習するための第2のモデルを生成するように動作可能である。
学習装置100は、第2の入力データ・シーケンスからの入力データの各々を、逆方向の順序で入力し、学習ターゲット・パラメータを学習するための第2のモデルを生成するように動作可能である。第1及び第2の入力データ・シーケンスは、時系列入力データ・シーケンスとすることができる。この場合、第1のモデルは、第1の入力データ・シーケンスを、より古い入力データから順番に入力することができ、第2のモデルは、第2の入力データ・シーケンスを、より新しい入力データから順番に入力することができる。
学習装置100は、第1のモデル及び第2のモデルの両方を用いて学習プロセスを実行するように動作可能である。学習装置100は、第1のモデル及び第2のモデルを用いる双方向学習を実行した後、学習した第1のモデルを出力するように動作可能である。学習装置100は、学習した第2のモデルを削除し、入力データ・シーケンスに基づいて、学習した第1のモデルを予測モデルとして出力するように動作可能である。このように、学習装置100は、学習のための複数の入力データ・シーケンスを取得し、学習プロセスを実行するように動作可能である。
上述した学習装置100は、学習装置100が、第1の学習ターゲット・パラメータ及び第2の学習ターゲット・パラメータに実質的に同じ学習プロセスを適用することによって学習する例である。この代わりに、学習装置100は、異なる学習プロセスを第1の学習ターゲット・パラメータ及び第2の学習ターゲット・パラメータにそれぞれ適用することによって学習することができる。言い換えれば、学習装置100は、学習するのが困難であり得るパラメータについての更新量を減らすことによって更新を実行するように動作可能である。
この際、第1のモデル及び第2のモデルを用いて学習する場合、学習装置100は、それぞれの更新パラメータとしてθV=(bVj,WHV,WVV)及びθH=(bHj,WVH,WHH)を用いて更新を実行することができる。言い換えれば、学習装置100は、正確に更新できる更新パラメータとしてθVを用い、学習するのが困難であり得る更新パラメータとしてθHを用いて学習を独立して実行することができる。ここで、bVjは、入力層14の各ノードに対応するバイアス・パラメータを示す。さらに、bHjは、隠れ層16の各ノードに対応するバイアス・パラメータを示す。
一例として、全尤度についての下限は、ジェンセンの不等式から次式に示されるように表すことができる。ここで、隠れノードの値
は、
に対応してサンプリングすることができる。
式23から、確率的勾配は、更新されるべきパラメータに従って、次式に示されるように算出することができる。
学習装置100は、第1のモデルを用いて学習する場合、上述のように正確に学習できるパラメータθ
Vを更新するように動作可能である。この場合、パラメータθ
Vの更新は、以下の式に示されるように表すことができる。
さらに、学習装置100は、第1のモデルを用いて学習する場合、緩やかな勾配を用いて、学習するのが困難であり得るパラメータθ
Hを徐々に更新することができる。この場合、パラメータθ
Hの更新は、以下の式に示されるように表すことができる。パラメータgは、勾配の方向を示す勾配パラメータである。定数εは、例えば、1より小さい値であっても、0に近い値であってもよい。θ
Hを更新するための式中のηgに対して演算するlogp
θを含ませる必要はない。さらに、η
1と同様に、ηは、更新量を調整するための定数、又は更新数の増大に従って値が小さくなる係数とすることができる。
同様に、学習装置100は、第2のモデルを用いて学習する場合、次式に示されるように、正確に学習できるパラメータθ
Vを更新するように動作可能である。
学習装置100は、第2のモデルを用いて学習する場合、次式に示されるように、学習するのが困難であり得るパラメータθ
Hを更新するように動作可能である。θ
Hを更新するための式中のηgに対して演算するlogp
θを含ませる必要はない。
上述のように、学習装置100は、パラメータの学習しやすさに応じて用いる方法を変えることにより、学習プロセスをより正確に実行することができる。
上述した学習装置100の双方向学習プロセスは、ボルツマン・マシンに適した例であるが、本発明はこれに限定されるものではない。本発明は、データ系列を双方向学習するように動作可能であり、学習方向に応じて学習しやすさを変え得るあらゆる学習装置に適用することができる。
図12は、本発明の態様を全体的又は部分的に具体化できるコンピュータ800の例を示す。コンピュータ800にインストールされたプログラムにより、コンピュータ800が、本発明の実施形態の装置、又はその1つ又は複数のセクション(モジュール、コンポーネント、要素等を含む)と関連した動作の役割を果たすこと又は動作を実行することができ、及び/又はコンピュータ800が、本発明の実施形態のプロセス又はそのステップを実行することができる。こうしたプログラムは、CPU 800−12により実行され、コンピュータ800に、本明細書で説明されるフローチャート及びブロック図のブロックの一部又は全てと関連した特定の動作を実行させることができる。
コンピュータ800は、ホスト・コントローラ800−10により互いに接続される、CPU800−12、RAM800−14、グラフィックス・コントローラ800−16、及びディスプレイ・デバイス800−18を含む。コンピュータ800は、入力/出力コントローラ800−20を介してホスト・コントローラ800−10に接続される、通信インターフェース800−22、ハードディスク・ドライブ800−24、DVD−ROMドライブ800−26、及びICカード・ドライブなどの入力/出力ユニットも含む。コンピュータは、入力/出力チップ800−40を通じて入力/出力コントローラ800−20に接続される、ROM800−30及びキーボード800−42などのレガシー入力/出力ユニットも含む。
CPU800−12は、ROM800−30及びRAM800−14内に格納されるプログラムに従って動作し、それにより、各ユニットを制御する。グラフィックス・コントローラ800−16は、RAM800−14内又はそれ自体で提供されるフレーム・バッファ等上のCPU800−12により生成される画像データを取得し、画像データをディスプレイ・デバイス800−18上に表示させる。
通信インターフェース800−22は、ネットワーク800−50を介して他の電子デバイスと通信する。ハードディスク・ドライブ800−24は、コンピュータ800内のCPU800−12により用いられるプログラム及びデータを格納する。DVD−ROMドライブ800−26は、DVD−ROM800−01からプログラム又はデータを読み取り、RAM800−14を介して、ハードディスク・ドライブ800−24にプログラム又はデータを提供する。ICカード・ドライブは、ICカードからプログラム及びデータを読み取り、及び/又はプログラム及びデータをICカードに書き込む。
ROM800−30は、起動時にコンピュータ800により実行されるブート・プログラム、及び/又はコンピュータ800のハードウェアに依存するプログラムを内部に格納する。入力/出力チップ800−40は、パラレル・ポート、シリアル・ポート、キーボード・ポート、マウス・ポート等を介して種々の入力/出力ユニットを入力/出力コントローラ800−20に接続することもできる。
DVD−ROM800−01又はICカードのようなコンピュータ可読媒体により、プロが提供される。プログラムは、コンピュータ可読媒体から読み取られ、同じくコンピュータ可読媒体の例であり、CPU800−12により実行される、ハードディスク・ドライブ800−24、RAM800−14、又はROM800−30にインストールされる。これらのプログラム内に記述される情報処理をコンピュータ800内に読み取り、結果としてプログラムと上述の種々のタイプのハードウェア・リソースとの間の協働がもたらされる。装置又は方法は、コンピュータ800の使用による動作又は情報の処理を実現することによって構成することができる。
例えば、コンピュータ800と外部デバイスとの間で通信が行われる場合、CPU800−12は、RAM800−14にロードされた通信プログラムを実行し、通信プログラム内に記述される処理に基づいて、通信インターフェース800−22に通信処理を指示することができる。CPU800−12の制御下の通信インターフェース800−22は、RAM800−14、ハードディスク・ドライブ800−24、DVD−ROM800−01、又はICカードのような記録媒体内に提供される伝送バッファ領域上に格納される伝送データを読み取り、読み取った伝送データをネットワーク800−50に伝送するか、ネットワーク800−50から受け取った受信データを、記録媒体上に提供される受信バッファ領域等に書き込む。
さらに、CPU800−12は、RAM800−14、ハードディスク・ドライブ800−24、DVD−ROMドライブ800−26(DVD−ROM800−01)、ICカード等のような外部記録媒体内に格納されたファイル又はデータベースの全て又は必要な部分を、RAM800−14に読み取らせ、RAM800−14上のデータに対して種々のタイプの処理を実行することができる。次に、CPU800−12は、処理されたデータを外部記録媒体にライトバックすることができる。
情報処理を行うために、種々のタイプのプログラム、データ、テーブル及びデータベースのような種々のタイプの情報を記録媒体内に格納することができる。CPU800−12は、RAM800−14から読み取られたデータに対して、本開示全体を通して説明され、プログラムの命令シーケンスにより示されるような、種々のタイプの動作、情報の処理、条件判断、条件付き分岐、条件なし分岐、情報の検索/置換等を含む種々のタイプの処理を実行し、結果をRAM800−14にライトバックすることができる。さらに、CPU800−12は、記録媒体のファイル、データベース等内の情報を検索することができる。例えば、各々が第1の属性の属性値を有する複数のエントリが第2の属性の属性値と関連付けられ、記録媒体内に格納されるとき、CPU800−12は、複数のエントリの中から、第1の属性の属性値が指定される条件に合致するエントリを検索し、エントリ内に格納される第2の属性の属性値を読み取り、それにより、所定の条件を満たす第1の属性と関連した第2の属性の属性値を得ることができる。
上で説明したプログラム又はソフトウェア・モジュールは、コンピュータ800上又はその近くのコンピュータ可読媒体に格納することができる。さらに、専用通信ネットワーク又はインターネットに接続されるサーバ・システム内に提供される、ハードディスク又はRAMなどの記録媒体をコンピュータ可読媒体として用いて、これにより、ネットワークを介してプログラムをコンピュータ800に提供することができる。
本発明は、システム、方法、及び/又はコンピュータ・プログラム製品とすることができる。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令をその上に有するコンピュータ可読ストレージ媒体(単数又は複数)を含むことができる。
コンピュータ可読ストレージ媒体は、命令実行デバイスにより使用される命令を保持及び格納できる有形デバイスとすることができる。コンピュータ可読ストレージ媒体は、例えば、これらに限定されるものではないが、電子記憶装置、磁気記憶装置、光学記憶装置、電磁気記憶装置、半導体記憶装置、又は上記のいずれかの適切な組み合わせとすることができる。コンピュータ可読ストレージ媒体のより具体的な例の非網羅的なリストとして、以下のもの:すなわち、ポータブル・コンピュータ・ディスケット、ハードディスク、ランダム・アクセス・メモリ(RAM)、読み出し専用メモリ(ROM)、消去可能プログラム可能読み出し専用メモリ(EPROM又はフラッシュメモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク読み出し専用メモリ(CD−ROM)、デジタル多用途ディスク(DVD)、メモリ・スティック、フロッピー・ディスク、パンチカード若しくは命令がそこに記録された溝内の隆起構造のような機械的にエンコードされたデバイス、及び上記のいずれかの適切な組み合わせが挙げられる。本明細書で使用される場合、コンピュータ可読ストレージ媒体は、電波、又は他の自由に伝搬する電磁波、導波管若しくは他の伝送媒体を通じて伝搬する電磁波(例えば、光ファイバ・ケーブルを通る光パルス)、又はワイヤを通って送られる電気信号などの、一時的信号自体として解釈されない。
本明細書で説明されるコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体からそれぞれのコンピューティング/処理デバイスに、又は、例えばインターネット、ローカル・エリア・ネットワーク、広域ネットワーク、及び/又は無線ネットワークなどのネットワークを介して外部コンピュータ又は外部ストレージ・デバイスにダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、及び/又はエッジ・サーバを含むことができる。各コンピューティング/処理デバイスにおけるネットワーク・アダプタ・カード又はネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受け取り、コンピュータ可読プログラム命令を転送して、それぞれのコンピューティング/処理デバイス内のコンピュータ可読ストレージ媒体に格納する。
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、又は、Smalltalk、C++などのオブジェクト指向プログラミング言語、及び、「C」プログラミング言語若しくは類似のプログラミング言語などの通常の手続き型プログラミング言語を含む1つ又は複数のプログラミング言語の任意の組み合わせで記述することができる。コンピュータ可読プログラム命令は、完全にユーザのコンピュータ上で実行される場合もあり、一部がユーザのコンピュータ上で、独立型ソフトウェア・パッケージとして実行される場合もあり、一部がユーザのコンピュータ上で実行され、一部が遠隔コンピュータ上で実行される場合もあり、又は完全に遠隔コンピュータ若しくはサーバ上で実行される場合もある。最後のシナリオにおいて、遠隔コンピュータは、ローカル・エリア・ネットワーク(LAN)若しくは広域ネットワーク(WAN)を含むいずれかのタイプのネットワークを通じてユーザのコンピュータに接続される場合もあり、又は外部コンピュータへの接続がなされる場合もある(例えば、インターネットサービスプロバイダを用いたインターネットを通じて)。幾つかの実施形態において、例えば、プログラム可能論理回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、又はプログラム可能論理アレイ(PLA)を含む電子回路は、コンピュータ可読プログラム命令の状態情報を用いて電子回路を個人化することによりコンピュータ可読プログラム命令を実行し、本発明の態様を実施することができる。
本発明の態様は、本発明の実施形態による方法、装置(システム)及びコンピュータ・プログラム製品のフローチャート図及び/又はブロック図を参照して説明される。フローチャート図及び/又はブロック図の各ブロック、並びにフローチャート図及び/又はブロック図内のブロックの組み合わせは、コンピュータ可読プログラム命令によって実装できることが理解されるであろう。
これらのコンピュータ可読プログラム命令を、汎用コンピュータ、専用コンピュータ、又は他のプログラム可能データ処理装置のプロセッサに与えてマシンを製造し、それにより、コンピュータ又は他のプログラム可能データ処理装置のプロセッサによって実行される命令が、フローチャート及び/又はブロック図の1つ又は複数のブロック内で指定された機能/動作を実施するための手段を作り出すようにすることができる。これらのコンピュータ・プログラム命令を、コンピュータ、他のプログラム可能データ処理装置、及び/又は他のデバイスを特定の方式で機能させるように指示することができるコンピュータ可読媒体内に格納し、それにより、そのコンピュータ可読媒体内に格納された命令が、フローチャート及び/又はブロック図の1つ又は複数のブロックにおいて指定された機能/動作の態様を実施する命令を含む製品を含むようにすることもできる。
コンピュータ・プログラム命令を、コンピュータ、他のプログラム可能データ処理装置、又は他のデバイス上にロードして、一連の動作ステップをコンピュータ、他のプログラム可能データ処理装置、又は他のデバイス上で行わせてコンピュータ実施のプロセスを生成し、それにより、コンピュータ又は他のプログラム可能装置上で実行される命令が、フローチャート及び/又はブロック図の1つ又は複数のブロックにおいて指定された機能/動作を実行するためのプロセスを提供するようにすることもできる。
図面内のフローチャート及びブロック図は、本発明の種々の実施形態による、システム、方法、及びコンピュータ・プログラム製品の可能な実装の、アーキテクチャ、機能及び動作を示す。この点に関して、フローチャート内の各ブロックは、指定された論理機能を実装するための1つ又は複数の実行可能命令を含む、モジュール、セグメント、又はコードの一部を表すことができる。幾つかの代替的な実装において、ブロック内に示される機能は、図に示される順序とは異なる順序で生じることがある。例えば、連続して示される2つのブロックは、関与する機能に応じて、実際には実質的に同時に実行されることもあり、又はこれらのブロックはときとして逆順で実行されることもある。ブロック図及び/又はフローチャート図の各ブロック、及びブロック図及び/又はフローチャート図内のブロックの組み合わせは、指定された機能又は動作を実行する、又は専用のハードウェアとコンピュータ命令との組み合わせを実行する、専用ハードウェア・ベースのシステムによって実装できることにも留意されたい。
本発明の実施形態を説明したが、本発明の技術的範囲は上述の実施形態に限定されない。本発明の上述の実施形態に、種々の変更又は改良を加えることが可能であることが当業者には明らかである。また、そうした変更又は改良を加えた実施形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲から明らかである。
特許請求の範囲、実施形態、又は図に示される装置、システム、プログラム、及び方法により実施される各プロセスの動作、手順、ステップ、及び段階は、順番が、「に先立って(prior to)」、「より前に(before)」等により示されず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実施することができる。特許請求の範囲、実施形態、又は図において、プロセス・フローが、「最初に(first)」又は「次に(next)」のような語句を用いて説明されたとしても、これは必ずしも、プロセスをこの順序で実施しなければならないことを意味するものではない。
上記から明らかにされるように、本発明の実施形態を用いて、過剰適合、データ・シーケンスに基づく予測モデルにおける学習精度の低下を防止しながら学習を実行し、学習装置の表現力及び学習力を改善することが可能である。