(57)【要約】【課題】  データ・シーケンスに基づき予測モデルを正確に学習するための方法、コンピュータ・プログラム及び装置を提供する。【解決手段】  データ・シーケンスに基づき予測モデルを正確に学習するために、複数の入力値を含む入力データが配置された第１の入力データ・データ・シーケンスからの各入力データを順次入力することにより学習プロセスを実行するための第１のモデルに基づいて、第１のモデルにおける順番とは異なる順番で、複数の入力値を含む入力データが配置された第２の入力データ・シーケンスからの各入力データを入力することにより、第１のモデル内に含まれる第１の学習ターゲット・パラメータを学習するための第２のモデルを生成することと、第１のモデル及び第２のモデルの両方を用いて学習プロセスを実行することと、学習した第１のモデルを出力することと、を含む方法が提供される。コンピュータ・プログラム製品及び装置も提供される。【選択図】      図１
2020505672.tif 000002
【特許請求の範囲】
【請求項１】
複数の入力値を含む入力データが配置された第１の入力データ・シーケンスからの各入力データを順次入力することにより学習プロセスを実行するための第１のモデルに基づいて、前記第１のモデルにおける順番とは異なる順番で、複数の入力値を含む入力データが配置された第２の入力データ・シーケンスからの各入力データを入力することによって、前記第１のモデル内に含まれる第１の学習ターゲット・パラメータを学習するための第２のモデルを生成することと、
前記第１のモデル及び前記第２のモデルの両方を用いて学習プロセスを実行することと、
前記学習した第１のモデルを出力することと、
を含む、方法。
【請求項２】
前記学習した第１のモデルを出力することは、前記学習した第２のモデルを削除し、入力データ・シーケンスに基づいて、前記学習した第１のモデルを予測モデルとして出力することを含む、請求項１に記載の方法。
【請求項３】
前記第２のモデルを生成することは、前記第２の入力データ・シーケンスからの各入力データを逆順で入力することにより、前記学習ターゲット・パラメータを学習するための前記第２のモデルを生成することを含む、請求項２に記載の方法。
【請求項４】
前記第１の入力データ・シーケンス及び前記第２の入力データ・シーケンスは、時系列入力データ・シーケンスであり、
前記第１のモデルは、前記第１の入力データ・シーケンスをより古い入力データから順番に入力し、
前記第２のモデルは、前記第２の入力データ・シーケンスをより新しい入力データから順番に入力する、請求項３に記載の方法。
【請求項５】
前記第１のモデル及び前記第２のモデルはそれぞれ、前記第１の学習ターゲット・パラメータ及び第２の学習ターゲット・パラメータを含み、
前記学習プロセスを実行することは、
前記第１の学習ターゲット・パラメータを変更することなく、前記第１のモデルを用いて前記第２の学習ターゲット・パラメータを学習することと、
前記第２の学習ターゲット・パラメータを変更することなく、前記第２のモデルを用いて前記第１の学習ターゲット・パラメータを学習することと、
を含む、請求項３に記載の方法。
【請求項６】
前記第１の学習ターゲット・パラメータは、前記第１のモデルを用いて学習するよりも前記第２のモデルを用いて学習することによって、より高い精度で学習するように動作可能であり、
前記第２の学習ターゲット・パラメータは、前記第２のモデルを用いて学習するよりも前記第１のモデルを用いて学習することによって、より高い精度で学習するように動作可能である、請求項５に記載の方法。
【請求項７】
前記第１の入力データ・シーケンス及び前記第２の入力データ・シーケンスは、少なくとも部分的に同一である、請求項３に記載の方法。
【請求項８】
前記第１の入力データ・シーケンス及び前記第２の入力データ・シーケンスは、互いに異なり、学習のための複数の入力データ・シーケンス内に含まれる、学習のための入力データ・シーケンスである、請求項３に記載の方法。
【請求項９】
前記学習プロセスを実行することは、前記第２のモデルを用いる前記学習プロセスよりも多い回数、前記第１のモデルを用いる前記学習プロセスを実行することを含む、請求項３に記載の方法。
【請求項１０】
前記学習プロセスを実行することは、前記第２のモデルを用いる前記学習プロセスに用いられるよりも大きい学習速度を用いて、前記第１のモデルを用いる前記学習プロセスを実行することを含む、請求項３に記載の方法。
【請求項１１】
前記学習プロセスを実行することは、前記第１のモデルを用いる前記学習プロセスを実行することにより学習した前記第１のモデルを取得することを含む、請求項３に記載の方法。
【請求項１２】
前記第１のモデルは、前記第１の入力データ・シーケンスの各時点の複数の入力値を順次入力する複数の入力ノードと、各入力ノードと前記複数の入力ノードに対応する時点より前の時点における各入力値との間の重みパラメータとを含み、
前記第２のモデルは、前記第２の入力データ・シーケンスの各時点の複数の入力値を逆順で入力する複数の入力ノードと、各入力ノードと前記複数の入力ノードに対応する前記時点より後の時点における各入力値との間の重みパラメータとを含む、請求項４に記載の方法。
【請求項１３】
前記第１のモデルは、各入力ノードと前記複数の入力ノードに対応する前記時点より前の前記時点に対応する複数の隠れノードの各々との間の重みパラメータと、各隠れノードと前記複数の入力ノードに対応する前記時点より前の前記時点に対応する各入力値との間の重みパラメータとをさらに含み、
前記第２のモデルは、各入力ノードと前記複数の入力ノードに対応する前記時点より後の前記時点に対応する複数の隠れノードの各々との間の重みパラメータと、各隠れノードと前記複数の入力ノードに対応する前記時点より後の前記時点に対応する各入力値との間の重みパラメータとをさらに含む、請求項１２に記載の方法。
【請求項１４】
前記学習プロセスを実行することは、
前記第１のモデルを用いる前記学習プロセスを用いて、前記第１のモデルにおける各隠れノードと前記複数の入力ノードに対応する時点より前の前記時点に対応する各入力値との間の重みパラメータを学習することと、
前記第２のモデルを用いる前記学習プロセスを用いて、前記第２のモデルにおける各入力ノードと前記複数の入力ノードに対応する前記時点より後の前記時点に対応する前記複数の隠れノードの各々との間の重みパラメータを学習することと、
を含む、請求項１３に記載の方法。
【請求項１５】
プログラム命令を含むコンピュータ・プログラムであって、前記プログラム命令は、コンピュータにより実行可能であり、前記コンピュータに前記請求項のいずれかに記載の方法のステップを実行させる、コンピュータ・プログラム。
【請求項１６】
入力データに対応するモデルを学習するための学習装置であって、
プロセッサと、
前記プロセッサにより実行されるとき、前記プロセッサに請求項１〜請求項１４のいずれかに記載の方法のステップを実行させるコンピュータ・プログラムと、
を含む、学習装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ・シーケンスに基づく予測モデルの双方向学習のための学習装置、方法及びコンピュータ・プログラムに関する。
【背景技術】
【０００２】
従来、時系列データに適用することができるニューラル・ネットワーク、ボルツマン・マシン（Boltzmann machine）等は既知である。さらに、機械学習により時系列で入力されたデータに対応するモデルを学習できる動的ボルツマン・マシンも既知である。
【０００３】
こうしたボルツマン・マシン等は、動画、言語、信号波形、及び音楽などの様々な分野に適用するように、データ・シーケンスに基づいて予測モデルを正確に学習することにより、改善された表現力、学習力等を有することが望まれる。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
データ・シーケンスに基づき予測モデルを正確に学習するための方法、コンピュータ・プログラム及び装置を提供する。
【課題を解決するための手段】
【０００５】
本発明の第１の態様によると、複数の入力値を含む入力データが配置された第１の入力データ・データ・シーケンスからの各入力データを順次入力することにより学習プロセスを実行するための第１のモデルに基づいて、第１のモデルにおける順番とは異なる順番で、複数の入力値を含む入力データが配置された第２の入力データ・シーケンスからの各入力データを入力することによって、第１のモデル内に含まれる第１の学習ターゲット・パラメータを学習するための第２のモデルを生成することと、第１のモデル及び第２のモデルの両方を用いて学習プロセスを実行することと、学習した第１のモデルを出力することと、を含む方法が提供される。コンピュータ・プログラム製品及び装置も提供される。第１の態様は、第１のモデル及び第２のモデルを用いて、入力データを異なる順番で入力するので、一方向にのみ学習するモデルと比べて学習力を改善するように動作可能である。
【０００６】
本発明の第２の態様によると、第１の入力データ・シーケンス及び第２の入力データ・シーケンスが時系列入力データ・シーケンスであり、第１のモデルは、第１の入力データ・シーケンスをより古い入力データから順番に入力し、第２のモデルは、第２の入力データ・シーケンスをより新しい入力データから順番に入力する、方法、コンピュータ・プログラム製品及び装置が提供される。第２の態様は、時系列入力データに対応するモデルについての学習力を改善するように動作可能である。
【０００７】
本発明の第３の態様によると、第１の学習ターゲット・パラメータは、第１のモデルを用いて学習するよりも第２のモデルを用いて学習することによって、より高い精度で学習するように動作可能であり、第２の学習ターゲット・パラメータは、第２のモデルを用いて学習するよりも第１のモデルを用いて学習することによって、より高い精度で学習するように動作可能である、方法、コンピュータ・プログラム製品及び装置が提供される。第３の態様は、第１のモデル及び第２のモデルを学習することによって、第１の学習ターゲット・パラメータ及び第２の学習ターゲット・パラメータを学習するように動作可能である。
【０００８】
本発明の第４の態様によると、第１のモデルは、第１の入力データ・シーケンスの各時点の複数の入力値を順次入力する複数の入力ノードと、各入力ノードと複数の入力ノードに対応する時点より前の時点における各入力値との間の重みパラメータとを含み、第２のモデルは、第２の入力データ・シーケンスの各時点の複数の入力値を逆順で入力する複数の入力ノードと、各入力ノードと複数の入力ノードに対応する時点より後の時点における各入力値との間の重みパラメータとを含む、方法、コンピュータ・プログラム製品及び装置が提供される。第４の態様は、ボルツマン・マシンの学習力を改善するように動作可能である。
【０００９】
本発明の第５の態様によると、学習プロセスを実行することは、第１のモデルを用いる学習プロセスを用いて、第１のモデルにおける各隠れノード（hidden node）と複数の入力ノードに対応する時点より前の時点に対応する各入力値との間の重みパラメータを学習することと、第２のモデルを用いる学習プロセスを用いて、第２のモデルにおける各入力ノードと複数の入力ノードに対応する時点より後の時点に対応する複数の隠れノードの各々との間の重みパラメータを学習することとを含む、方法が提供される。第５の態様は、ボルツマン・マシンの学習力を改善するように動作可能である。
【００１０】
概要の節は、必ずしも本発明の実施形態の全ての必要な特徴を説明するものではない。本発明はまた、上述した特徴の部分的組み合わせとすることもできる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施形態による学習装置１００の例示的な構成を示す。
【図２】本発明の実施形態によるモデル１０の例示的な構成を示す。
【図３】本発明の実施形態による学習装置１００の動作フローを示す。
【図４】本発明の実施形態における学習に用いられる時系列データ及び訓練データの構造例を示す。
【図５】本発明の実施形態による学習装置１００の第１の変形形態を示す。
【図６】本発明の実施形態によるモデル１０の変形形態を示す。
【図７】本発明の実施形態による更新パラメータγｉ，ｌの時間的変化の例を示す。
【図８】本発明の実施形態による更新パラメータαｉ，ｊ，ｋの時間的変化の例を示す。
【図９】本発明の実施形態による第１のモデルの例示的な概略的構成を示す。
【図１０】本発明の実施形態による第２のモデルの例示的な概略的構成を示す。
【図１１】本発明の実施形態による学習装置１００により実行される第１のモデル及び第２のモデルを用いる学習プロセスの動作フローを示す。
【図１２】本発明の実施形態によるコンピュータの例ハードウェア構成を示す。
【発明を実施するための形態】
【００１２】
以下、本発明の幾つかの実施形態を説明する。本発明の実施形態は、特許請求の範囲による本発明を限定するものではなく、本発明の実施形態において説明される特徴の組み合わせの全ては、必ずしも本発明にとって必須ではない。
【００１３】
図１は、本発明の実施形態による学習装置１００の例示的構成を示す。学習装置１００は、時系列入力データに対応するモデル１０を学習するための装置とすることができる。学習装置１００は、時系列データをモデルのノードに供給することによって、ボルツマン・マシンに基づくモデルを学習するように動作可能である。学習装置１００は、取得セクション１１０と、供給セクション１２０と、ストレージ・セクション１３０と、計算セクション１４０と、学習処理セクション１５０とを含む。
【００１４】
取得セクション１１０は、時系列入力データを取得するように動作可能である。時系列入力データは、例えば、動画データなどの、時間軸に沿って複数のデータが配置されたデータ・シーケンスとすることができる。取得セクション１１０は、ユーザが操作するデバイス又は時系列データを検出し、出力するデバイス（センサ）に接続し、そうしたデバイスから時系列入力データを取得することができる。或いは、取得セクション１１０は、ストレージ・デバイス内に所定の形式で格納される時系列入力データを読み出し取得することができる。或いは、取得セクション１１０は、ネットワークに接続し、ネットワークを介して時系列入力データを取得することができる。また、取得セクション１１０は、取得した時系列入力データを、学習装置１００内に含まれるストレージ・デバイスに格納することもできる。
【００１５】
供給セクション１２０は、時系列入力データにおける、一時点（one time point）の入力データに対応する複数の入力値を、モデルの複数のノードに供給するように動作可能である。供給セクション１２０は、取得セクション１１０に接続され、受け取った時系列入力データのうちの一時点の入力データを訓練データ（training data）として処理し、一時点の入力値をモデルの対応するノードに供給することができる。一時点の入力データは、学習で用いる訓練データの中で時間的に最新のデータとすることができる。或いは、一時点の入力データは、学習で用いる訓練データの中で時間的に中間のデータとすることもできる。つまり、一時点の入力データは時系列データから任意に選択することができる。
【００１６】
ストレージ・セクション１３０は、時系列入力データにおける、複数の時点に対応するモデルの隠れノードの値を格納するように動作可能である。ストレージ・セクション１３０は、一時点に対応する隠れノードの値をサンプリングし、これらの値を、この時点に対応する隠れノードに格納することができる。ストレージ・セクション１３０は、サンプリングした値をそれぞれ、各時点について時点に対応する隠れノードに格納することができる。
【００１７】
計算セクション１４０は、入力データ・シーケンスが発生したという条件下で一時点の各入力値の条件付き確率（conditional probability）を計算するように動作可能である。ここで、時系列入力データにおいて、一時点におけるモデルのそれぞれのノードに入力されたデータを、一時点の入力値と呼び、一時点より前の時点のそれぞれのノードに入力されたデータを、入力データ・シーケンスと呼ぶ。学習装置１００により用いられるモデルは、（ｉ）複数の隠れノードと入力データ・シーケンスにおける一時点より前の各時点における入力データに対応する複数の入力値との間、及び（ｉｉ）一時点に対応する複数の隠れノードと複数の入力ノードとの間の重みパラメータを有することができる。
【００１８】
計算セクション１４０は、時系列入力データにおける一時点より前の入力データ・シーケンス、隠れノードの格納された値、及びモデルの重みパラメータに基づいて、一時点の各入力値の条件付き確率を計算するように動作可能である。さらに、計算セクション１４０は、時系列入力データにおける一時点より前の入力データ・シーケンス、及びモデルの重みパラメータに基づいて、入力データ・シーケンスが発生したという条件下で、一時点の各隠れノードの値の条件付き確率を計算するように動作可能である。
【００１９】
学習処理セクション１５０は、モデルの重みパラメータを調整することによって、入力データ・シーケンスが発生したという条件下で生じる一時点の入力データの条件付き確率を高めるように動作可能である。学習処理セクション１５０は、モデルの複数のノード及び隠れノードのそれぞれに与えられたバイアス・パラメータをさらに調整することができる。学習処理セクション１５０は、モデルの調整された重みパラメータ及びバイアス・パラメータを、外部データベース１０００などのストレージ・データベースに供給し、これらのパラメータをストレージ・デバイスに格納することができる。
【００２０】
上述した学習装置１００は、時系列入力データにおける一時点の入力データに基づき、モデルの重みパラメータ及びバイアス・パラメータを調整することによってモデルを学習するように動作可能である。図２を参照して、モデルについて説明する。
【００２１】
図２は、本発明の実施形態によるモデル１０の例示的な構成を示す。モデル１０は、複数の共通層（common layer）１２を含む。図２は、合計Ｔ個の共通層１２を含む例を示す。モデル１０は、有限数の共通層１２を含むことができる。各共通層１２は、入力層１４及び隠れ層１６を含む。
【００２２】
各入力層１４は、時系列データに対応する層とすることができる。各入力層１４は、時系列データにおけるそれぞれの時点に対応し得る。各入力層１４は、所定数のノードを含むことができる。例えば、０番目の入力層は、時系列データにおける一時点の入力データに対応する層とすることができる。０番目の入力層は、この入力データにおける入力値の数に対応する複数のノードを含むことができる。
【００２３】
複数の入力層のうちの、０番目の入力層１４以外の合計Ｔ−１の入力層１４は、時系列入力データにおける一時点より前の入力データ・シーケンスに対応する入力層１４とすることができる。例えば、−１番目の入力層は、一時点だけ一時点に時間的に先行する時点の入力データに対応し、（−δ）番目の入力層は、δ時点だけ一時点に時間的に先行する時点の入力データに対応し得る。つまり、０番目の入力層以外の合計Ｔ−１の入力層はそれぞれ、例えば、０番目の入力層と同数のノードを有し、入力データ・シーケンスにおける対応する入力データ値の入力値が供給される。
【００２４】
各隠れ層１６は、時系列データにおけるそれぞれの時点に対応し得る。例えば、０番目の隠れ層は、時系列データにおける一時点に対応する層とすることができる。図２は、合計Ｔの隠れ層１６を含む例を示す。各隠れ層１６は、１つ又は複数の隠れノードを含むことができ、ストレージ・セクション１３０は、一時点においてサンプリングされた値を格納することができる。
【００２５】
複数の隠れ層１６の中の０番目の層以外の合計Ｔ−１の隠れ層は、時系列データにおける一時点より前の時点に対応する隠れ層１６とすることができる。例えば、−１番目の隠れ層は、一時点だけ一時点に時間的に先行する時点に対応し、ストレージ・セクション１３０は、一時点だけ一時点に時間的に先行する時点にサンプリングされた値を格納する。さらに、（−δ）番目の隠れ層は、δの時点だけ一時点の入力データに時間的に先行する時点に対応し、ストレージ・セクション１３０は、δの時点だけ一時点に時間的に先行する時点にサンプリングされた値を格納することができる。つまり、０番目の隠れ層以外の合計Ｔ−１の隠れ層は、例えば、０番目の隠れ層と同数のノードをそれぞれ有し、対応する隠れノードの値がそれぞれ供給される。
【００２６】
一例として、時系列入力データが動画データである場合、動画データの最後の画像データが０番目の入力層に対応し、０番目の入力層の複数のノードはそれぞれ、画像データの対応するピクセル・データを受け取る。さらに、０番目の隠れ層は、動画データの最後の時点に対応し、ストレージ・セクション１３０は、０番目の隠れ層の隠れノードにおけるこの最後の時点においてサンプリングされた値を格納することができる。
【００２７】
さらに、−１番目の入力層には、最後の画像データの直前の画像データが供給され、−１番目の入力層の複数のノードのそれぞれは、直近の画像データの対応するピクセル・データを受け取る。さらに、−１番目の隠れ層は、最終時点の直近の時点に対応し、−１番目の隠れ層の複数のノードについて、ストレージ・セクション１３０は、この直近の時点においてサンプリングされた値を格納することができる。同様に、−δ番目の入力層の複数の層はそれぞれ、δの画像だけ最後の画像データに先行する画像データの対応するピクセル・データを受け取り、（−δ）番目の隠れ層の複数のノードはそれぞれ、δの時点だけ最終時点に先行する時点において対応するサンプリング値を格納することができる。
【００２８】
図２は、各共通層１２が入力層１４及び隠れ層１６を含むが、代わりに、１つ又は複数の共通層１２は隠れ層１６を含む必要がない例を示す。こうした場合、０番目の共通層乃至（−ｍ）番目の共通層は、入力層１４及び隠れ層１６を含み、（−ｍ−１）番目の共通層乃至（−Ｔ＋１）番目の共通層は入力層１４を含むことができる。
【００２９】
０番目の入力層における複数のノード及び／又は０番目の隠れ層における複数の隠れノードはそれぞれ、バイアス・パラメータを有し得る。例えば、共通層１２におけるｊ番目のノードｊは、バイアス・パラメータｂｊを有する。
【００３０】
０番目の入力層における複数のノード、並びに入力データ・シーケンスに対応する隠れ層及び一時点より前の入力データ・シーケンスに対応する層のノードはそれぞれ、それらの間の重みパラメータを有し得る。これらは、各入力層１４及び隠れ層１６における複数のノードの間の重みパラメータである必要はない。
【００３１】
同様に、０番目の隠れ層における複数のノード、並びに入力データ・シーケンスに対応する隠れ層及び一時点より前の入力データ・シーケンスに対応する層のノードはそれぞれ、それらの間の重みパラメータを有し得る。つまり、０番目の共通層の複数のノード、及び一時点より前の複数の共通層のノードはそれぞれ、それらの間の重みパラメータを有し得る。
【００３２】
図２は、０番目の入力層のノードｊと（−δ）番目の層のノードｉとの間の重みパラメータＷｉｊ［δ］の概念を示す。図２は、モデル１０が同数の入力層１４及び隠れ層１６を有し、各入力層１４がＩ個のノードを含み、各隠れ層１６がＨ個の隠れノードを含む例を示す。本実施形態において、入力層１４及び隠れ層１６は、複数のノードｘｊ［ｔ］を有する１つの共通層１２により表される。共通層１２の１番目乃至Ｉ番目のノード（１≦ｊ≦Ｉ）は、入力層１４のノードを示し、（Ｉ＋１）番目乃至（Ｉ＋Ｈ）番目のノード（Ｉ＋１，ｊ，Ｉ＋Ｈ）は、隠れノードを示す。
【００３３】
例えば、図２に示される重みパラメータＷｉｊ［δ］は、入力層１４の２つのノード間の重みパラメータを示す。同様に、重みパラメータＷｉｊ［δ］は、入力ノードと隠れノードの間の重みパラメータ、隠れノードと入力ノードの間の重みパラメータ、及び隠れノード間の重みパラメータを含むことができる。重みパラメータＷｉｊ［δ］の具体例は、次式に示される通りである。本実施形態において、入力ノード又は隠れノードと入力ノード間の重みパラメータは、「入力データに対する重みパラメータ」と呼ばれ、入力ノード又は隠れノードと隠れノード間の重みパラメータは、「隠れノードに対する重みパラメータ」と呼ばれる。
【数１】
2020505672.tif 000003
【００３４】
ここで、例えば、ｕｉ，ｊ，ｋ及びｖｉ，ｊ，ｌは、学習ターゲットとなる学習パラメータである。さらに、λｋｔ１及びμｌｔ２は、一時点より前の入力データ・シーケンスにおける隠れノード及び入力データと、一時点における隠れノード及び入力ノードとの間の時点差δに従って所定の方法で変化する所定の（predefined）パラメータである（ｔ１＝δ−ｄｉｊ、ｔ２＝−δ）。つまり、重みパラメータＷｉｊ［δ］は、学習パラメータｕｉ，ｊ，ｋ及びｖｉ，ｊ，ｌと、所定のパラメータλｋｔ１及びμｌｔ２とに基づくパラメータとすることができる。
【００３５】
重みパラメータＷｉｊ［δ］は、第１の学習パラメータｕｉ，ｊ，ｋと第１の所定のパラメータλｋｔ１の積に基づいた正の値と、第２の学習パラメータｖｉ，ｊ，ｌと第２の所定のパラメータμｌｔ２の積に基づいた負の値とに基づくパラメータとすることができる。具体的には、時点差δが所定の遅延定数ｄｉｊより大きいか又はこれに等しいの場合、重みパラメータＷｉｊ［δ］は、第１の学習パラメータｕｉ，ｊ，ｋと第１の所定のパラメータλｋｔ１の積に基づいた正の値とすることができる。また、時点差δが遅延定数ｄｉｊより小さくかつ０でない場合、重みパラメータＷｉｊ［δ］は、第２の学習パラメータｖｉ，ｊ，ｌと第２の所定のパラメータμｌｔ２の積に基づいた負の値とすることができる。さらに、時点差δが０に等しい場合、重みパラメータＷｉｊ［δ］は、０に等しくなり得る。
【００３６】
さらに、時点差δが所定の遅延定数ｄｉｊより大きいか又はこれに等しい場合、重みパラメータＷｉｊ［δ］は、複数の第１の学習パラメータｕｉ，ｊ，ｋ及び複数の第１の所定のパラメータλｋｔ１の中からそれぞれ、複数のセットの第１の学習パラメータｕｉ，ｊ，ｋと第１の所定のパラメータλｋｔ１の積ｕｉ，ｊ，ｋ・λｋｔ１に基づいた複数の正の値に基づき得る。さらに、時点差δが遅延定数ｄｉｊより小さくかつ０でない場合、重みパラメータＷｉｊ［δ］は、複数の第２の学習パラメータｖｉ，ｊ，ｌ及び複数の第２の所定のパラメータμｌｔ２の中からそれぞれ、複数のセットの第２の学習パラメータｖｉ，ｊ，ｌと第２の所定のパラメータμｌｔ２の積ｖｉ，ｊ，ｌ・μｌｔ２に基づいた複数の負の値とに基づき得る。
【００３７】
所定のパラメータは、所定の定数を、時点差δに基づいた値で累乗した値に基づくパラメータとすることができる。第１の所定のパラメータλｋｔ１は、例えば、時点差δが大きくなるにつれてその値が漸減するパラメータである。この場合、第１の所定のパラメータλｋｔ１は、０より大きくかつ１より小さい第１の定数λｋを、時点差δから所定の遅延定数ｄｉｊを減算して得られる値（δ−ｄｉｊ＝ｔ１）で累乗した値であり得る。さらに、第２の所定のパラメータμｌｔ２は、例えば、時点差δが大きくなるにつれてその値が漸減するパラメータであり得る。この場合、第２の所定のパラメータμｌｔ２は、０より大きくかつ１より小さい第２の定数μｌを、時点差δの負の値（−δ＝ｔ２）で累乗した値であり得る。
【００３８】
上述したモデル１０は、ボルツマン・マシンを形成するように動作可能である。つまり、モデル１０は、時系列データを適用するボルツマン・マシンとすることができる。モデル１０は、時系列データが入力される入力層に加えて、時系列データとは異なる入力値である隠れ層を含むボルツマン・マシンとすることができる。学習装置１００は、モデル１０の０番目の入力層に供給される一時点の入力データを訓練データとして用いて、隠れノードの値をサンプリングし、格納しながら、学習パラメータｕｉ，ｊ，ｋ及びｖｉ，ｊ，ｌとバイアス・パラメータｂｊとを調整することによってモデル１０を学習する。図３を参照して、学習装置１００の学習動作について説明する。
【００３９】
図３は、学習装置１００の動作フローを示す。学習装置１００は、時系列入力データに対応するモデル１０を学習し、Ｓ３１０〜Ｓ３６０の処理ステップを実行することによって、学習パラメータｕｉ，ｊ，ｋ及びｖｉ，ｊ，ｌ、並びにバイアス・パラメータｂｊを決定するように動作可能である。隠れノードの重みパラメータ及び入力ノードの重みパラメータの決定が、実質的に同じ動作を用いて学習装置１００により実行される例を説明する。
【００４０】
最初に、取得セクション１１０が、時系列データを取得する（Ｓ３１０）。取得セクション１１０は、モデル１０の０番目の層から（−Ｔ＋１）番目の層までの合計Ｔの層に等しい期間の時系列データを取得することができる。取得セクション１１０は、例えば、動画データを形成するＴ個の画像データを時系列で取得する。
【００４１】
次に、供給セクション１２０が、一時点の時系列入力データの入力データに対応する複数の入力値を、モデル１０の０番目の入力層の複数の入力ノードに供給することができる（Ｓ３２０）。ここで、ｘ［１，Ｉ］［０］（＝ｘｊ［０］，１≦ｊ≦Ｉ）は、０番目の入力層に供給される入力データを示す。
【００４２】
供給セクション１２０は、例えば、最新の時点の時系列入力データの入力データｘ［１，Ｉ］［０］に対応するＩの入力値ｘｊ［０］を、０番目の入力層の対応するノードｊに供給する（１≦ｊ≦Ｉ）。例えば、供給セクション１２０は、動画データを形成するように時系列で配置されたＴ個の画像データの最後に含まれるＩ個のピクセル・データを、０番目の入力層のＩ個のノードに供給する。供給セクション１２０は、１又は０の値をピクセル・データとして、０番目の入力層の各ノードに供給することができる。時系列入力データの期間がＴより短い場合、供給セクション１２０は、データを、時系列の長さに対応する０番目の入力層から多数の層に供給し、例えば０の値を層の残りのノードに供給することができる。
【００４３】
次に、供給セクション１２０は、一時点より前の入力データ・シーケンスに対応する複数の入力値を、モデル１０の−１番目の入力層から（−Ｔ＋１）番目の入力層までのそれぞれの層に含まれる複数のノードに供給することができる。ここで、ｘｊ（−Ｔ，−１］は、−１番目の入力層から（−Ｔ＋１）番目の入力層までに供給される入力データを示すものとする（１≦ｊ≦Ｉ）。用語（−Ｔ，−１］は、（−Ｔ＋１）番目の層から−１番目の層までの層を示す。つまり、時系列データにおける入力データｘｊ（−Ｔ，−１］は、例えば、入力データｘｊ［０］に至るまでの履歴を示す。
【００４４】
次いで、ストレージ・セクション１３０は、一時点に対応する複数の隠れノードの値をサンプリングし、これらの値を、０番目の隠れ層の対応する複数の隠れノード内にそれぞれ格納する（Ｓ３３０）。ストレージ・セクション１３０は、任意に又はランダムに、１又は０の値を入力することができる。ストレージ・セクション１３０は、Ｈ個のサンプリング値を、例えば、０番目の隠れ層の対応する隠れノードｊに格納する（Ｉ＋１≦ｊ≦Ｉ＋Ｈ）。
【００４５】
ストレージ・セクション１３０は、一時点より前の隠れノードの値を、モデル１０の−１番目の隠れ層から（−Ｔ＋１）番目の隠れ層までの対応する隠れ層の各々における複数のノードにそれぞれ格納することができる。ｘｊ（−Ｔ，−１］は、−１番目の隠れ層から（−Ｔ＋１）番目の隠れ層までの層内に格納される隠れノードの値を示すものとする（Ｉ＋１≦ｊ≦Ｉ＋Ｈ）。つまり、一時点より前の各共通層１２のノードに入力された値ｘｊ（−Ｔ，−１］は、例えば、０番目の共通層のノードに入力された入力値ｘｊ［０］に至るまでの履歴を示す（１≦ｊ≦Ｉ＋Ｈ）。
【００４６】
次に、計算セクション１４０は、（−Ｔ＋１）番目の共通層から−１番目の共通層までの複数のノードの入力値ｘｊ（−Ｔ，−１］（１≦ｊ≦Ｉ＋Ｈ）と、重みパラメータＷｉｊ［δ］とに基づいて、一時点の入力ノードの各入力値ｘｊ［０］（１≦ｊ≦Ｉ）の条件付き確率を計算することができる（Ｓ３４０）。計算セクション１４０は、共通層１２の複数のノードの履歴ｘ（−Ｔ，−１］（１≦ｊ≦Ｉ＋Ｈ）に基づき、次式のｘｊ［０］に１を代入することにより、１に等しい０番目の入力層のｊ番目のノードの入力値ｘｊ［０］（１≦ｊ≦Ｉ）の確率＜ｘｊ［０］＞θを計算する。
【数２】
2020505672.tif 000004
【００４７】
各ノードの入力値ｘｊ［０］が２進数、すなわち１又は０である例を説明するが、入力値ｘｊ［０］の値はこれらの値に限定されるものではない。さらに、０番目の入力層の各入力値ｘｊ［０］（１≦ｊ≦Ｉ）の条件付き確率を計算するためのステップにおいて、計算セクション１４０は、０番目の隠れ層の値ｘｊ［０］（Ｉ＋１≦ｊ≦Ｉ＋Ｈ）の条件付き確率を計算することができる。
【００４８】
式２は、ボルツマン・マシンとして既知の確率式から導かれる。例えば、θは、計算すべきパラメータのセットを示し、式θ＝（ｂｊ，ｕｉ，ｊ，ｋ，ｖｉ，ｊ，ｌ）が確立される。さらに、τは、ボルツマン・マシンの既知の「システム温度」に依存するパラメータとすることができ、ユーザ等によって予め設定することができる。また、式２のＥθ，ｊ（ｘｊ［０］｜ｘ（−Ｔ，−１］）は、次式を用いて計算される。
【数３】
2020505672.tif 000005
【００４９】
ここで、「Ｔ」は転置を示し、「：」は、ｎ（＝Ｉ＋Ｈ）がノード数を示す場合に１乃至ｎを示し、「：，ｊ」は、ｊ番目の列の抽出を示す。つまり、式３の右辺の第２項は、例えば、次式により示される。
【数４】
2020505672.tif 000006
【００５０】
ここで、αｉ，ｊ，ｋ、βｉ，ｊ，ｌ、及びγｉ，lは、次式により示される。
【数５】
2020505672.tif 000007
【数６】
2020505672.tif 000008
【数７】
2020505672.tif 000009
【００５１】
従って、式２のｘｊ［０］に１を代入することにより得られるＰθ，ｊ（１｜ｘｊ（−Ｔ，−１］）は、式５のｘｊ［０］に１を代入することにより、式３から計算することができる。所定の初期値（例えば、０）をパラメータ・セットθ＝（ｂｊ，ｕｉ，ｊ，ｋ，ｖｉ，ｊ，ｌ）に代入できることに留意されたい。このように、計算セクション１４０は、式２により示される一時点の各入力値ｘｊ［０］の条件付き確率＜ｘｊ［０］＞θを計算することができる。
【００５２】
次に、学習処理セクション１５０が、パラメータ・セットθ＝（ｂｊ，ｕｉ，ｊ，ｋ，ｖｉ，ｊ，ｌ）を調整することができる（Ｓ３５０）。バイアス・パラメータｂｊを調整するとき、学習処理セクション１５０は、次式を用いることによって、バイアス・パラメータｂｊの変化の方向を定めることができる。
【数８】
2020505672.tif 000010
【００５３】
ここで、式８の右辺のｘｊ［０］は、供給セクション１２０により訓練データとして供給された入力値を示し、右辺の＜ｘｊ［０］＞θは、式２を用いて計算された確率を示す（１≦ｊ≦Ｉ）。各入力ノードについてのバイアス・パラメータｂｊ（１≦ｊ≦Ｉ）は、式８を用いて次式により示されるように、調整及び更新することができる。係数ｃは、ユーザ等により予め定められるパラメータであることに留意されたい。
【数９】
2020505672.tif 000011
【００５４】
つまり、学習処理セクション１５０は、共通層１２の履歴ｘ（−Ｔ，−１］が発生したという条件下で生じる０番目の入力層のノードの入力値ｘｊ［０］の条件付き確率を高めるように、バイアス・パラメータｂｊを調整する。学習処理セクション１５０は、式９により示されるバイアス・パラメータｂｊの更新、及び式２により示される確率＜ｘｊ［０］＞θの計算を繰り返し実行して、バイアス・パラメータｂｊを決定することができる。更新前と更新後のバイアス・パラメータｂｊの差が所定の閾値より小さいか又はこれに等しい場合、学習処理セクション１５０は、バイアス・パラメータｂｊの更新を停止し、バイアス・パラメータｂｊを決定する。バイアス・パラメータｂｊが、隠れノードについても設定される場合、学習処理セクション１５０は、隠れノードのバイアス・パラメータｂｊを同じ方法で決定することができる。
【００５５】
或いは、学習処理セクション１５０は、所定の回数、バイアス・パラメータｂｊの更新を繰り返すことによって、バイアス・パラメータｂｊを決定することもできる。バイアス・パラメータｂｊを所定の回数だけ更新した後でも、更新前及び更新後のバイアス・パラメータｂｊの差が所定の閾値より大きいか又はこれに等しい場合、学習処理セクション１５０は、バイアス・パラメータｂｊの更新を停止し、パラメータが収束しないことをユーザに通知することができる。
【００５６】
同様に、学習パラメータｕｉ，ｊ，ｋを更新する場合、学習処理セクション１５０は、次式によって、学習パラメータｕｉ，ｊ，ｋの変化の方向を定めることができる。
【数１０】
2020505672.tif 000012
【００５７】
また、学習パラメータｖｉ，ｊ，ｌを更新する場合、学習処理セクション１５０は、次式によって、学習パラメータｖｉ，ｊ，ｌの変化の方向を定めることができる。
【数１１】
2020505672.tif 000013
【００５８】
バイアス・パラメータｂｊの更新と同様に、学習処理セクション１５０は、入力ノードに対応する学習パラメータｕｉ，ｊ，ｋ及びｖｉ，ｊ，ｌ（１≦ｊ≦Ｉ）の更新、及び確率＜ｘｊ［０］＞θの計算を繰り返し実行して、入力ノードに対応する学習パラメータｕｉ，ｊ，ｋ及びｖｉ，ｊ，ｌ（１≦ｊ≦Ｉ）を定めることができる。或いは、学習処理セクション１５０は、パラメータ・セットθ＝（ｂｊ，ｕｉ，ｊ，ｋ，ｖｉ，ｊ，ｌ）を更新し、次に、式２により示される確率＜ｘｊ［０］＞θを計算するための動作を繰り返し実行して、パラメータ・セットθ＝（ｂｊ，ｕｉ，ｊ，ｋ，ｖｉ，ｊ，ｌ）を定めることができる。
【００５９】
上述のように、学習処理セクション１５０は、学習により、学習パラメータｕｉ，ｊ，ｋ及びｖｉ，ｊ，ｌ、並びにバイアス・パラメータｂｊを決定することができる。次に、学習装置１００は、学習を継続するかどうかを決定することができる（Ｓ３６０）。学習装置１００は、学習プロセスを所定の回数だけ実行するまで学習を継続することができ、又はユーザにより停止コマンドが入力されるまで学習を継続することができる。或いは、学習装置１００は、取得できる時系列データがなくなるまで、学習を継続することができる。
【００６０】
学習装置１００が学習を継続する場合（Ｓ３６０：イエス）、プロセスは、ステップＳ３１０に戻り、そこで、取得セクション１１０が次の時系列データを取得し、次に、学習装置１００は、次の時系列データに基づいて、モデル１０の学習を実行することができる。例えば、供給セクション１２０は、取得セクション１１０により取得される画像データにおける次の画像を、０番目の入力層に供給する。さらに、ストレージ・セクション１３０は、隠れ層の値をサンプリングし、これらの値を０番目の隠れ層に格納する。次に、ｔ番目の共通層内に保持される値（−Ｔ＜ｔ＜０）を、（ｔ−１）番目の共通層に供給することができる。（−Ｔ＋１）番目の層内に保持される値は、削除することができる。学習装置１００は、０番目の入力層から（−Ｔ＋１）番目の入力層までの層に供給された画像データを訓練データとして用い、０番目の隠れ層から（−Ｔ＋１）番目の隠れ層までの層内に格納される値を用いて、学習を実行することができる。
【００６１】
このように、供給セクション１２０及びストレージ・セクション１３０は、モデル１０内の０番目の共通層のノードに対応する次の時点における新しい入力値ｘｊ［０］を順次取得することができる。次に、計算セクション１４０は、次の時点より前の各共通層において履歴が発生したという条件下で、新しい入力値ｘｊ［０］の条件付き確率＜ｘｊ［０］＞θを計算することができる。学習処理セクション１５０は、この履歴が発生したという条件下で生じる新しい入力値の条件付き確率を高めるように、重みパラメータを調整することができる。
【００６２】
学習処理部セクション１５０が学習を停止する場合（Ｓ３６０：ノー）、学習処理セクション１５０は、決定した学習パラメータｕｉ，ｊ，ｋ及びｖｉ，ｊ，ｌ、並びにバイアス・パラメータｂｊを出力し、パラメータを外部データベース１０００等に格納することができる。
【００６３】
上述のように、学習装置１００は、一時点を０番目の共通層と関連付け、一時点より前の入力データ・シーケンスをＴ−１の層と関連付けることによって、合計Ｔの層を有するモデルを、時系列に入力された時系列入力データに適用するように動作可能である。学習装置１００は、隠れノードを有するモデルを各共通層１２に適用するようにも動作可能である。つまり、学習装置１００は、入力データ・シーケンス及び隠れノード値に基づいて、一時点の入力データを予測する時間発展ボルツマン・マシンを形成するように動作可能である。
【００６４】
学習装置１００は、時間発展を考慮に入れるモデルに対し、履歴である入力値ｘ（−Ｔ，−１］に基づき、発生する一時点の入力値ｘｊ［０］の条件付き確率を計算することにより、モデルを学習することができる。さらに、学習装置１００は、時系列入力データに加えて隠れノードを用いてモデルを学習するので、表現能力及び学習能力が改善され得る。
【００６５】
時系列入力データから新しい入力データを順次取得し、取得した各入力データについての重みパラメータを調整する学習装置１００の説明が与えられた。この構成の代わりに、学習装置１００は、所定の期間の時系列入力データを取得し、次に、重みパラメータを調整することもできる。例えば、学習処理セクション１５０は、Ｄ個の層に対応する、複数の時点の新しい入力データの取得に応じて、複数の時点について重みパラメータをまとめて調整する。
【００６６】
図４は、本発明の実施形態において学習に用いられる時系列データ及び訓練データの構造の例を示す。図４において、横軸は時間を示す。図４は、学習の際、学習装置１００により訓練データとして用いられる時系列データｙ［１，Ｔ］の期間Ｔよりも長い期間Ｌを有する時系列データｙ［１，Ｌ］を学習装置１００が用いる例を示す。この場合、学習処理セクション１５０は、複数の時点の入力データが新たに取得されることに応じて、複数の時点についての重みパラメータをまとめて調整するように動作可能である。
【００６７】
学習装置１００は、最初に、時間１から時間Ｔまでの時系列データの時系列データ・セグメントを、第１の訓練データとして用いて学習を実行する。この場合、図３に述べられるように、学習装置１００は、時間１から時間Ｔまでの時系列データ及び対応する隠れ層の値を、一時点の共通層１２の各入力値として順番に設定し、将来に向かけて時点を一度に１つずつ徐々にシフトすることによって、学習を実行することができる。学習装置１００は、時間Ｔにおけるデータを一時点の各入力値ｘｊ［０］として使用し、時間１から時間Ｔ−１までの時系列データが入力データ・シーケンスｘ（−Ｔ，−１］（すなわち、履歴）になるまで、学習を継続することができる。
【００６８】
次に、学習装置１００は、時間２から時間Ｔ＋１の時系列データの時系列データ・セグメントを、第２の訓練データとして用いて学習を実行する。学習装置１００は、第２の訓練データにおけるＤ個のデータの各々を、一時点の入力値ｘｊ［０］として順次用いることができる。この場合、学習装置１００は、時間２から時間Ｔ＋１までの間隔において、一度に一時点だけ将来の方向に時点をシフトして、時間２から時間Ｔまでの間隔における対応する時系列データ及び隠れノードを履歴として用いることができる。このように、学習装置１００は、Ｄ個の各入力値ｘｊ［０］及び対応するＤ個の履歴についてパラメータをＤ回調整することができる。つまり、学習装置１００は、式８から式１１までに説明される学習方法を実行する確率的勾配技術を用いることができる。
【００６９】
或いは、学習装置１００は、Ｄ個の時系列データ・セットを取得し、期間Ｌの時系列データ・セグメントから複数の訓練データ・セットを生成し、Ｄ個の層に対する学習をまとめて実行することができる。具体的には、学習装置１００は、次式を用いて、Ｄ個の層に対して式８から式１１までをまとめて用いて説明する確率的勾配技術を実行することができる。
【数１２】
2020505672.tif 000014
【００７０】
図５は、学習装置１００の変形形態を示す。図１に示される学習装置１００のものと実質的に同じ動作を実行する、図５に示される学習装置１００のコンポーネントは、同じ参照番号で示され、その説明は省略される。図４で説明されるような期間Ｌの時系列データが与えられる場合、変形形態の学習装置１００は、ＦＩＦＯメモリを用いてパラメータを効率的に更新、時系列入力データに対応するモデルを学習するように動作可能である。変形形態の学習装置１００は、ＦＩＦＯメモリ１６０と、更新セクション１７０とをさらに含む。
【００７１】
ＦＩＦＯメモリ１６０の各々は、入力データを順次格納し、所定数の格納が実行された後、格納したデータを出力することができる。ＦＩＦＯメモリ１６０の各々は、最初に格納されたデータを最初に出力する（ＦＩＦＯ：先入れ先出し（First In First Out））メモリとすることができる。
【００７２】
ＦＩＦＯメモリ１６０の各々は、共通層１２の入力値を順次格納し、所定数の格納が実行された後、入力値を出力することができる。学習装置１００は、複数のＦＩＦＯメモリ１６０を含むことができ、その数は、モデルのノードｎの数より大きいか又はこれに等しい。複数のＦＩＦＯメモリ１６０が、共通層１２の複数のノードと一対一対応を有するように設けられることが望ましい。つまり、複数のＦＩＦＯメモリ１６０の各々を、共通層１２のそれぞれのノードについての履歴を格納するように、又はその履歴を更新するように設けることができる。
【００７３】
複数のＦＩＦＯメモリ１６０は、取得セクション１１０及びストレージ・セクション１３０に接続され、共通層１２の新しい入力データに対応する入力値を順次格納する。また、複数のＦＩＦＯメモリ１６０は、更新セクション１７０にも接続され、そこに格納されたデータを更新セクション１７０に順次供給する。
【００７４】
更新セクション１７０は、一時点より前の時系列入力データの隠れノード及び入力データ・シーケンスに基づいた複数の更新パラメータを、更新パラメータの値、及び隠れノードの値、並びに次に反映すべき入力データに対応する入力値に基づいて、前の時点の値から一時点の値へと更新するように動作可能である。更新セクション１７０は、ＦＩＦＯメモリ１６０に入力された値及びＦＩＦＯメモリ１６０から出力された値を用いて、更新パラメータを更新することができる。更新セクション１７０は、取得セクション１１０及びストレージ・セクション１３０に接続することができ、ＦＩＦＯメモリ１６０に入力された値を受け取ることができる。或いは、更新セクション１７０は、供給セクション１２０を介して、取得セクション１１０からＦＩＦＯメモリ１６０に入力された値を受け取ることができる。
【００７５】
ここで、更新パラメータは、式５及び式７に示されるαｉ，ｊ，ｋ及びγｉ，ｌである。この場合、更新パラメータは、例えば、各時点の入力データ・シーケンスの入力データに対応する入力値ｉ（１≦ｉ≦Ｉ）と、この入力値ｉとターゲットとする入力ノードｊ（１≦ｊ≦Ｉ）又は隠れノードｊ（Ｉ＋１≦ｊ≦Ｉ＋Ｈ）との間の重みパラメータＷｉｊ［δ］の所定のパラメータλｋｔ１及びμｌｔ２とに基づく。別の例として、更新パラメータは、例えば、各時点の隠れノードｉ（Ｉ＋１≦ｉ≦Ｉ＋Ｈ）と、この隠れノードｉとターゲットとする入力ノードｊ（１≦ｊ≦Ｉ）又は隠れノードｊ（Ｉ＋１≦ｊ≦Ｉ＋Ｈ）との間の重みパラメータＷｉｊ［δ］の所定のパラメータλｋｔ１及びμｌｔ２とに基づく。
【００７６】
更新パラメータは、取得セクション１１０による時系列入力データの取得のたびに更新することができ、ストレージ・セクション１３０によるサンプリング値の格納が順次実行される。変形形態による上述の学習装置１００は、モデル１０の変形形態を学習するように動作可能である。モデル１０の変形形態について、図６を参照して説明する。
【００７７】
図６を参照すると、モデル１０は、図２に示されるＴ層を含む層状構造を有する必要はない。図６は、ＦＩＦＯメモリ１６０の１つに対応するモデルの例を示す。従って、モデル１０の全体構成は、訓練データを含む図２の０番目の共通層に相当するストレージ領域と、ノードｎの数（＝Ｉ＋Ｈ）に等しい、図６に示される構成の数を含む。モデル１０のニューロンｉ及びｊ、並びにＦＩＦＯシーケンス２０を以下に説明する。
【００７８】
ニューロンｉは、ＦＩＦＯメモリ１６０の入力端子に相当し得る。各時点ｔの入力データ・シーケンスの入力データにおける各ノードの入力値ｙｉ［ｔ］（１≦ｉ≦Ｉ）及び各時点の隠れノードの値ｙｉ［ｔ］（Ｉ＋１≦ｉ≦Ｉ＋Ｈ）のうちの対応する値ｙｉ［ｔ］が、ニューロンｉに順次入力される。ニューロンｉは、これに入力された入力値ｙｉ［ｔ］を、現在の入力値として設定することができる。次に、時点ｔ＋１において、ニューロンｉは、時点ｔにおいて入力された入力値ｙｉ［ｔ］を更新セクション１７０及びＦＩＦＯシーケンス２０に、前の入力値として供給し、時点ｔ＋１の入力値ｙｉ［ｔ＋１］を現在の入力値として保持することができる。
【００７９】
ＦＩＦＯシーケンス２０は、ニューロンｉから受け取ったｄｉｊ−１個の最新の入力値を格納することができる。ＦＩＦＯシーケンス２０は、そこに格納したｄｉｊ−１個の入力値を更新セクション１７０に供給することができる。更新セクション１７０は、ＦＩＦＯシーケンスにより供給された入力値を用いて、式６により示される更新パラメータの値を計算するように動作可能である。ＦＩＦＯシーケンス２０が時点ｔ−１乃至時点ｔ−ｄｉｊ＋１を保持する場合、ＦＩＦＯシーケンス２０は、次式により示される。
【数１３】
2020505672.tif 000015
【００８０】
時点ｔ１において入力値ｙｉ［ｔ１］がニューロンｉに入力された後、ＦＩＦＯシーケンス２０は、時点ｔ１の次の時点ｔ２（＝ｔ１＋１）の後の所定の期間ｄｉｊ−１である時点ｔ３（＝ｔ１＋ｄｉｊ−１）まで、入力値ｙｉ［ｔ１］を格納することができる。次の時点ｔ４（＝ｔ３＋１＝ｔ１＋ｄｉｊ）において、ＦＩＦＯシーケンス２０は、入力値ｙｉ［ｔ１］をニューロンｊに供給することができる。時点ｔ４においてニューロンｊに供給された入力値ｙｉ［ｔ１］は、時点ｔ４において更新セクション１７０に即座に供給される。しかしながら、ニューロンｊが時点ｔ４においてＦＩＦＯシーケンス２０から受け取った入力値ｙｉ［ｔ１］は、ニューロンｊのための入力とならず、入力値ｙｉ［ｔ４］が、時点ｔ４においてニューロンｊに入力され得る。
【００８１】
ニューロンｊは、ＦＩＦＯメモリ１６０の出力端子に相当し、ニューロンｊは、期間ｄｉｊの後、ＦＩＦＯシーケンスを介して時点ｔ１において、すなわち時点ｔ１＋ｄｉｊにおいて、ニューロンｉに入力された入力値ｙｉ［ｔ１］を受け取ることができる。つまり、ＦＩＦＯシーケンス２０を介するニューロンｉ乃至ニューロンｊのモデル１０は、ｄｉｊ個の入力データを格納するＦＩＦＯメモリ１６０に対応し得る。さらに、変形形態によるモデル１０のニューロンｉは、例えば、図２に示されるモデル１０の（−δ）番目の共通層のノードｉのような、入力データ・シーケンスのノードに対応し、この場合、ニューロンｊは、例えば、０番目の共通層のノードｊに対応し得る。時点ｔ１＋ｄｉｊにおいて、ニューロンｊは、受け取った入力値ｙｉ［ｔ１］を更新セクション１７０に供給することができる。
【００８２】
上述のように、モデル１０は、時点ｔにおいて、時点ｔ−１及び時点ｔ−ｄｉｊ＋１の入力値を、更新セクション１７０に供給することができる。このように、更新セクション１７０は、一時点より前の時点についての更新パラメータの次に反映すべき入力データにおける対応する入力値を加算し、次に、結果として生じる和に所定の定数を乗算することによって、更新パラメータを更新することができる。式８により示される更新パラメータは、更新セクション１７０に供給されるＦＩＦＯシーケンス２０に格納された入力値を用いて、式８に従って計算できることに留意されたい。
【００８３】
例えば、式７により示される更新パラメータγｉ，ｌは、更新セクション１７０に供給された入力値及び第２の所定のパラメータを用いて更新することができる。具体的には、更新セクション１７０は、前の更新パラメータγｉ，ｌ、及び時点ｔにおいてニューロンｉから受け取った入力値ｙｉ［ｔ−１］を用いて、次式に従って時点ｔにおける計算を実行することにより、現在の学習に用いられる更新パラメータγｉ，ｌを計算することができる。
【数１４】
2020505672.tif 000016
【００８４】
図７は、本実施形態による更新パラメータγｉ，ｌの時間的変化の例を示す。図７は、０より大きい値（例えば、１）が、時点ｔ−５、ｔ−２、及びｔ−１における入力値としてニューロンｉに入力され、これらの入力値が時点ｔ−４、ｔ−１、及びｔにおいて更新セクション１７０に供給される例を示す。第２の所定のパラメータμｌは、時点差が増大するにつれて値が漸減するパラメータである。従って、更新セクション１７０により計算される更新パラメータγｉ，ｌは、１の入力値が入力される時から次の入力が与えられるまで時間の経過共に減少する傾向がある。
【００８５】
式５により示される更新パラメータαｉ，ｊ，ｋは、更新セクション１７０に供給される入力値及び第１の所定のパラメータλｋを用いて更新することができる。具体的には、更新セクション１７０は、前の更新パラメータαｉ，ｊ，ｋ及び時点ｔにおいてニューロンｊから受け取った入力値ｙｉ［ｔ−ｄij］を用いて、次式に従って時点ｔにおいて計算することによって、現在の学習に用いられる更新パラメータαｉ，ｊ，ｋを計算することができる。
【数１５】
2020505672.tif 000017
【００８６】
図８は、本発明の実施形態による更新パラメータαｉ，ｊ，ｋの時間的変化の例を示す。図８は、０より大きい値（例えば、１）が、時点ｔ−３、ｔ−１、及びｔにおける入力値としてニューロンｊに供給される例を示す。第１の所定のパラメータλｋは、時点差が増大するにつれて値が漸減するパラメータである。従って、更新セクション１７０により計算される更新パラメータαｉ，ｊ，ｋは、１の入力値が入力される時から次の入力が与えられる時まで、時間の経過と共に減少する傾向がある。
【００８７】
上述のように、変形形態による学習装置１００は、ＦＩＦＯメモリ１６０及び更新セクション１７０を用いて、図６に示されるモデル１０を適用することによって、更新パラメータαｉ，ｊ，ｋ及びγｉ，ｌを更新することができる。更新セクション１７０は、例えば、ＦＩＦＯメモリ１６０に入力された入力データから、時点ｔ−１の入力値ｘｉ［ｔ−１］を取得し、ＦＩＦＯメモリ１６０の出力から時点ｔ−ｄｉｊの入力値ｘｉ［ｔ−ｄij］を取得することにより、変形形態によるモデル１０を適用できることに留意されたい。
【００８８】
さらに、学習装置１００は、図３に説明される動作と実質的に同じ動作により、パラメータβｉ，ｊ，ｌを更新することができる。具体的には、計算セクション１４０は、式６により示されるように、ｔ−１からｔ−ｄｉｊ＋１までの時点について第２の所定のパラメータμｌと入力値ｘｉ（本変形形態においてはｙｉ）の積の和を求めることにより、パラメータβｉ，ｊ，ｌを計算することができる。
【００８９】
このように、変形形態による計算セクション１４０は、隠れノード及び入力データ・シーケンスが生じたという条件下で、複数の更新パラメータ、一時点の入力データ値の条件付き確率を用いることにより計算することができる。次いで、学習処理セクション１５０は、図３に説明された動作と実質的に同じ動作を実行することにより、学習パラメータｕｉ，ｊ，ｋ及びｖｉ，ｊ，ｌ、並びにバイアス・パラメータｂｊを決定することができる。
【００９０】
言い換えれば、学習装置１００は、一時点より前のモデル１０の共通層１２に入力された過去の値に基づいて、共通層１２の入力層１４に入力される入力値を予測する確率を上げるように、重みパラメータ及びバイアス・パラメータを決定することができる。さらに、学習装置１００は、共通層１２が、入力層１４に加えて隠れ層１６を含むようにすることにより、入力層１４に入力される入力値の予測精度、表現能力、学習効率等を改善することができる。
【００９１】
上述した学習装置１００は、学習装置１００が行った予測に関係しない値がサンプリングされ、隠れ層１６に入力される隠れノードとして入力される例である。この代わりに、学習装置１００は、共通層１２のノードの値の条件付き確率の履歴を用いて、隠れノード値を決定することができる。学習装置１００は、この条件付き確率履歴を用いて、隠れノードへの重みパラメータを決定することができる。学習装置１００は、共通層１２のノードの条件付き確率履歴を用いて、隠れノード及び隠れノード値への重みパラメータを決定することによって、予測精度を改善することができる。
【００９２】
この場合、計算セクション１４０は、一時点ｔより前の各時点における共通層１２の対応するノードｊに入力された値に基づいて、一時点ｔにおける共通層１２のノードｊの値の条件付き確率ｐｊ，ｔを計算し、この条件付き確率をストレージ・セクション等に格納することができる。上述した一時点における入力層１４の各入力値の条件付き確率の計算に加えて、計算セクション１４０は、一時点における隠れ層１６内の各隠れノードの条件付き確率を同じ方法で計算することができる。つまり、計算セクション１４０は、複数の更新パラメータを用いて、入力データ・シーケンスが発生したという条件下で、一時点における各隠れノードの値及び各入力データ値の条件付き確率を計算することができる。ここで、計算セクション１４０は、条件付き確率ｐｊ，ｔをＦＩＦＯ等に格納することができる。
【００９３】
計算セクション１４０は、学習装置１００による学習が継続した後、全尤度（total likelihood）を計算するように動作可能である。計算セクション１４０は、例えば、時点ｔ−Ｋ＋１から時点ｔまでＫ個の学習インスタンスによって計算される条件付き確率ｐｊ，ｔ−Ｋ＋１、ｐｊ，ｔ−Ｋ＋２・・・，Ｐｊ，ｔに基づいて、次式に示されるような全尤度ｐｊを計算する。式１６における全尤度ｐｊは、一例として、条件付き確率の合計を示すが、全尤度ｐｊは、条件付き確率の和、加重和、積、又は加重積の少なくとも１つとすることができる。さらに、Ｋは、２より大きい又はこれに等しい整数とすることができ、計算セクション１４０が条件付き確率ｐｊ，ｔをＦＩＦＯ等に格納する場合、ＦＩＦＯシーケンスの長さは、Ｋの値と等しくなり得る。
【数１６】
2020505672.tif 000018
【００９４】
計算セクション１４０は、全尤度ｐｊをストレージ・セクション１３０に供給することができる。ストレージ・セクション１３０は、最新の尤度ｐｊ，ｔに基づいて、一時点における隠れ層１６の隠れノードの値ｘｊ［ｔ］をサンプリングすることができる。つまり、ストレージ・セクション１３０は、一時点の各隠れノードの値の条件付き確率を用いて、一時点の各隠れノードの値をサンプリングするように動作可能である。例えば、ストレージ・セクション１３０は、計算セクション１４０により計算される条件付き確率の履歴に基づいて、隠れノードの値をサンプリングする。つまり、ストレージ・セクション１３０は、学習処理セクション１５０の学習動作を複数回実行した後、隠れノードの値をサンプリングすることができる。ストレージ・セクション１３０は、学習処理セクション１５０の学習動作が複数回実行されるまで、０の値を隠れノードにサンプリング値として格納することができる。
【００９５】
ストレージ・セクション１３０は、全尤度ｐｊの値と閾値との比較の結果に従って、１又は０の値をサンプリング結果として隠れノードに格納することができる。このように、入力層１４に入力されるべき時系列データを予測するとき、ストレージ・セクション１３０は、過去の条件付き確率の履歴に基づいてサンプリングを実行することによって、より好ましい値を隠れノードとして格納することができる。
【００９６】
学習処理セクション１５０は、全尤度ｐｊに基づいて重みパラメータを決定するように動作可能である。この場合、学習処理セクション１５０は、一時点の１つの隠れノードｊの重みパラメータにおける学習パラメータｕｉ，ｊ，ｋ及びｖｉ，ｊ，ｋについての更新量△ｕｉ，ｊ，ｋ及び△ｖｉ，ｊ，ｋを計算することができる。例えば、学習処理セクション１５０は、入力データ・シーケンスが発生したという条件下で一時点ｔの１つの隠れノードｊの値ｘｊ［ｔ］、及び一時点ｔのこの隠れノードｊの値の条件付き確率＜Ｘｊ［ｔ］＞に基づいて、次式に示されるようにこれらの更新量△ｕｉ，ｊ，ｋ及び△ｖｉ，ｊ，ｋを計算することができる（Ｉ＋１≦ｊ≦Ｉ＋Ｈ）。
【数１７】
2020505672.tif 000019
【００９７】
ここで、更新量△ｕｉ，ｊ，ｋ［ｔ］は、△ｖｉ，ｊ，ｋ（１）［ｔ］＋△ｕｉ，ｊ，ｋ（２）［ｔ］に等しい。隠れノードｊの値の条件付き確率＜Ｘｊ［ｔ］＞は、式２を用いて計算セクション１４０により計算することができる。学習処理セクション１５０は、計算した更新量△ｖｉ，ｊ，ｋ［ｔ］、△ｕｉ，ｊ，ｋ（１）［ｔ］、及び△ｕｉ，ｊ，ｋ（２）［ｔ］をストレージ・セクション等に格納することができる。学習処理セクション１５０は、一時点について計算された更新量△ｖｉ，ｊ，ｋ［ｔ］、△ｕｉ，ｊ，ｋ（１）［ｔ］、及び△ｕｉ，ｊ，ｋ（２）［ｔ］をＦＩＦＯシーケンスに格納するように動作可能である。つまり、学習処理セクション１５０は、過去に計算された更新量に基づいて学習パラメータを更新するように動作可能である。
【００９８】
学習処理セクション１５０は、例えば、一時点ｔより後である次の時点に発生する入力データの条件付き確率に応じて、更新量を学習パラメータに反映させる比率を変える。この場合、学習処理セクション１５０は、一時点より後である複数の次の時点に発生する複数の隠れノード値の条件付き確率に応じて、更新量を学習パラメータに反映させる比率を変えることができる。一時点より後の全尤度ｐｊに応じて、学習パラメータにおいて更新量を反映させる比率を変える例を説明する。
【００９９】
学習処理セクション１５０は、例えば、時点ｔ−Ｋ＋１から時点ｔまでの学習のＫ個の学習インスタンスにより計算された全尤度ｐｊ、及び時点ｔ−Ｋ＋１の更新量に基づいて、次式に示されるように学習パラメータを更新することができる。ここで、Ｋは、２より大きいか又はこれに等しい整数とすることができ、学習処理セクション１５０は、更新量をＦＩＦＯシーケンス等に格納する場合、ＦＩＦＯシーケンスの長さは、Ｋの値に等しくなり得る。
【数１８】
2020505672.tif 000020
【０１００】
ここで、η１は、更新量を調整するための定数とすることができる。或いは、η１は、更新数の増加に従って値が小さくなる係数とすることもできる。さらに、η１は、学習処理セクション１５０が学習を開始する段階において、実質的に１の値を有することができ、時間が時点ｔから経過するにつれて生じる学習の量に応じて値が小さくなる係数とすることもできる。例えば、η１＝η１０／ｔ２である。さらに、η１は、更新量に応じて値が小さくなる係数とすることもできる。例えば、η１＝η１０／（Σ△ｕｉ，ｊ，ｋ２）１／２である。ここで、η１０は、所定の定数とすることができる。
【０１０１】
上述した方法において、学習処理セクション１５０は、一時点より前の時点で計算された条件付き確率に応じて、一時点の隠れノードの学習パラメータを更新することができる。このように、学習装置１００は、一時点より前の時点の重みパラメータに起因して入力ノードの入力値の予測確率が大きいことに応答して、学習パラメータにおける一時点より前の時点の更新量をより大きく反映させることができる。つまり、学習装置１００は、条件付き確率を増大させるように、隠れノードの重みパラメータを更新することができる。
【０１０２】
ＦＩＦＯシーケンスを用いてこうした重みパラメータの更新を実行する場合、学習処理セクション１５０は、次の時点（例えば、ｔ）又はその後の時点における過去の時点（例えば、ｔ−Ｋ＋１）の更新量△ｖｉ，ｊ，ｋ［ｔ−Ｋ＋１］，△ｕｉ，ｊ，ｋ（１）［ｔ−Ｋ＋１］、及び△ｕｉ，ｊ，ｋ（２）［ｔ−Ｋ＋１］を、ＦＩＦＯシーケンスから抽出することができる。学習処理セクション１５０は、次の時点ｔに発生する隠れノード値の条件付き確率に応じて、ＦＩＦＯシーケンスから抽出された更新を学習パラメータに反映させる比率を更新することができる。例えば、学習処理セクション１５０は、全尤度ｐｊをそれぞれ各更新量と乗算することができる。このように、学習処理セクション１５０は、上述のように重みパラメータの更新を効率的に実行することができる。
【０１０３】
上述のように、学習装置１００は、時系列入力データにおける一時点より前の入力データ系列に基づいて、一時点の入力データを予測する方法で、モデル１０を学習することができる。さらに、学習装置１００は、隠れノードを含ませることにより、表現力、学習力等を改善することができる。こうした学習装置において、学習を実行するのが比較的難しい場合がある。
【０１０４】
例えば、一時点の隠れノードの場合、特定量の時点がまだ経過していない場合、この隠れノード値が効果的であるかどうかを評価するのは困難である。従って、隠れノードが用いられる場合、入力データ系列と一時点における隠れノードとの間の重みパラメータについての学習装置１００の学習精度が、入力データ系列と一時点における入力ノードとの間の重みパラメータについての学習精度より低い場合がある。さらに、入力データ系列における特徴的なデータ傾向がある場合、学習がこのデータ傾向に影響を受け、過剰適合（overfitting）がなされる場合があり、将来のデータ予測に対する適切でない学習をもたらす。
【０１０５】
従って、学習装置１００は、時系列入力データがモデル１０に入力される順番を変更し、双方向学習プロセスを実行することによって、学習をさらに改善するように動作可能である。以下は、こうした学習装置１００について説明する。
【０１０６】
学習装置１００が、時系列入力データにおける一時点より前の入力データ系列に基づいて、一時点の入力データを予測する方法でモデル１０を学習するように動作可能である。このように、学習装置１００は、過去のデータから将来のデータへの順番で、時系列入力データがモデル１０に入力される学習プロセスを実行する順方向モデル（forward model）である第１のモデルを作成する。
【０１０７】
図９は、第１のモデルの例示的な概略的構成を示す。図９は、図２に示されるモデル１０に対応する第１のモデルの概略的構成を示す。図９では、一時点ｔの入力層１４におけるノードｊの値は、ｘｊ［ｔ］（１≦ｊ≦Ｉ）で示され、一時点ｔの隠れ層１６におけるノードｊの値は、ｈｊ［ｔ］（Ｉ＋１≦ｊ≦Ｈ）で示される。さらに、一時点ｔより前の複数の入力層１４におけるノードｉの値は、ｘｉ［：ｔ−１］（１≦ｉ≦Ｉ）で示され、一時点ｔより前の隠れ層１６におけるノードｉの値は、ｈｉ［：ｔ−１］（Ｉ＋１≦ｉ≦Ｈ）で示される。
【０１０８】
上述のように、第１のモデルは、時系列入力データ・シーケンスにおける各時点の複数の入力値を順次入力する複数の入力ノードｊと、各入力ノードｊと複数の入力ノードｊに対応する時点より前の時点における各入力値ｘｉ［：ｔ−１］との間の重みパラメータＷｉｊ［δ］とを含むことができる。ここで、一時点より前の複数の入力層１４と一時点の入力層１４との間の重みパラメータは、ＷＶＶである。さらに、第１のモデルは、各入力ノードｊと複数の入力ノードｊに対応する時点より前の時点に対応する時点より前の時点に対応する複数の隠れノードｉの各々との間の重みパラメータＷｉｊ［δ］を含むことができる。ここで、一時点ｔより前の複数の隠れ層１６と一時点ｔの入力層１４との間の重みパラメータは、ＷＨＶである。
【０１０９】
第１のモデルは、複数の入力ノードｊに対応する時点より前の時点に対応する各入力ノードｉと複数の入力ノードｊに対応する時点に対応する各隠れノードｊとの間の重みパラメータＷｉｊ［δ］をさらに含むことができる。ここで、一時点ｔより前の複数の入力層１４と一時点ｔの隠れ層１６との間の重みパラメータは、ＷＶＨである。第１のモデルは、複数の入力ノードｊに対応する時点より前の時点に対応する複数の隠れノードｉの各々と複数の入力ノードｊに対応する時点に対応する隠れノードｊの各々との間の重みパラメータＷｉｊ［δ］をさらに含むことができる。ここで、一時点ｔより前の複数の隠れ層１６と一時点ｔの隠れ層１６との間の重みパラメータは、ＷＨＨである。
【０１１０】
ｂが第１のモデルのバイアス・パラメータを表す場合、一時点における入力ノードｊ及び隠れノードｊの条件付き確率ｐは、次式に基づいて算出することができる。第１のモデルにおける各パラメータの更新は、上述のとおりである。
【数１９】
2020505672.tif 000021
【０１１１】
ここで、学習のための時間系列入力データは既知であるので、この時間系列入力データがモデル１０に入力される順番は、第１のモデルにおけるように、過去のデータから将来のデータへの順方向の順序に限定されない。学習装置１００は、時系列入力データにおける一時点より後の入力データ系列に基づいて一時点の入力データを予測する方法でモデル１０を学習するように動作可能である。このように、学習装置１００は、将来のデータから過去のデータへの順序で時系列入力データをモデル１０に入力する学習プロセスを実行する逆方向モデル（backward model）である第２のモデルを作成する。
【０１１２】
図１０は、第２のモデルの例示的な概略的構成を示す。図１０は、図２に示されるモデル１０に対応する第２のモデルの概略的構成を示す。図１０では、一時点ｔの入力層１４におけるノードｊの値は、ｘｊ［ｔ］（１≦ｊ≦Ｉ）により示され、一時点ｔの隠れ層１６におけるノードｊの値は、ｈｊ［ｔ］（Ｉ＋１≦ｊ≦Ｈ）により示される。さらに、一時点ｔより後の複数の入力層１４におけるノードｉの値は、ｘｉ［ｔ＋１：］（１≦ｉ≦Ｉ）により示され、一時点ｔより後の隠れ層１６におけるノードｉの値は、ｈｉ［ｔ＋１：］（Ｉ＋１≦ｉ≦Ｈ）により示される。言い換えれば、学習動作が第２のモデルを用いて実行された場合、学習装置１００は、時系列入力データにおいて時間的に最新のデータから、データをモデル１０に入力する。
【０１１３】
この場合、第２のモデルは、時系列入力データ・シーケンスにおける各時点の複数の入力値を、逆方向の順序（backward order）に順次入力する複数の入力ノードｉと、複数の入力ノードｉに対応する時点より後の時点の各入力値ｘｊ［ｔ］と各入力ノードｉとの間の重みパラメータＷｊｉ［δ］とを含むことができる。ここで、一時点の入力層１４と一時点より後の複数の入力層１４との間の重みパラメータは、ＷＶＶである。さらに、第２のモデルは、複数の入力ノードｉに対応する時点より後の時点に対応する複数の隠れノードｊの各々と各入力ノードｉとの間の重みパラメータＷｊｉ［δ］を含むことができる。ここで、一時点ｔの入力層１４と一時点ｔより後の複数の隠れ層１６との間の重みパラメータは、ＷＶＨである。
【０１１４】
第２のモデルは、複数の入力ノードｉに対応する時点より後の時点に対応する各入力ノードｊと複数の入力ノードｉに対応する時点に対応する各隠れノードｉとの間の重みパラメータＷｊｉ［δ］をさらに含むことができる。ここで、一時点ｔの隠れ層１６と一時点ｔより後の複数の入力層１４との間の重みパラメータは、ＷＨＶである。第２のモデルは、複数の入力ノードｉに対応する時点より後の時点に対応する複数の隠れノードｊの各々と複数の入力ノードｉに対応する時点に対応する各隠れノードｉとの間の重みパラメータＷｊｉ［δ］をさらに含むことができる。ここで、一時点ｔの隠れ層１６と一時点ｔより後の複数の隠れ層１６との間の重みパラメータは、ＷＨＨである。
【０１１５】
ｂが第２のモデルのバイアス・パラメータを表す場合、一時点の入力ノードｉ及び隠れノードｉの条件付き確率ｐは、次式に基づいて算出することができる。
【数２０】
2020505672.tif 000022
【０１１６】
式１９及び式２０に示されるように、学習装置１００は、第１のモデル及び第２のモデルについて共通の各パラメータを学習するように動作可能である。さらに、第２のモデルを用いる学習装置１００の学習動作は、第１のモデルを用いる学習動作と同じ動作を用いて実行するように動作可能である。例えば、第１のモデル及び第２のモデルについてのバイアス・パラメータは、実質的に同じパラメータとすることができる。第１のモデル及び第２のモデルについての重みパラメータＷｉｊ及びＷｊｉは、それらの間の転置関係に従って変換されるように動作可能である。さらに、第１のモデルの学習パラメータｕｉ，ｊ，ｋ及びｖｉ，ｊ，ｌは、ｉとｊを交換することにより、第２のモデルの学習パラメータｕｊ，ｉ，ｋ及びｖｊ，ｉ，ｌに変換されるように動作可能である。
【０１１７】
第１のモデル及び第２のモデルの所定のパラメータλｋｔ１及びμｌｔ２は実質的に同じパラメータとすることができる。所定のパラメータの値は、時点差に従って決定されるので、所定のパラメータ値は、第１のモデル及び第２のモデルにおける各時点に従って異なるように変化し得る。
【０１１８】
このように、変換動作を適用することにより、第１のモデル及び第２のモデルのパラメータが共有される。従って、同じ時系列入力データ・シーケンスに基づく第１のモデルの学習結果及び第２のモデルの学習結果は、理論的に合致することになる。しかしながら、データが入力される方向順序により、学習の容易さの差が生じる場合がある。
【０１１９】
例えば、一時点ｔの入力層１４の値及び一時点ｔより前の入力層１４の複数の値は、既に時系列入力データとして知られている。さらに、一時点ｔより前の隠れ層１６の複数の値は、例えば、これらの値がサンプリングされたときから特定量の時点が経過した後に得られた値であり、従って、評価結果は、これらの値の大部分について既に取得されている。従って、第１のモデルにおける一時点ｔの入力層１４に関連する重みパラメータＷＶＶ及びＷＨＶは、正確に学習できるパラメータである。
【０１２０】
さらに、一時点ｔの隠れ層１６の値は、例えば、サンプリングされた値であり、従って、このサンプリングされた値の評価結果は、幾つかの学習インスタンスが完了した後に既知となる。従って、第１のモデルにおける一時点ｔの隠れ層１６に関連する重みパラメータＷＶＨ及びＷＨＨは、学習するのが困難である。本実施形態において、第１のモデルにおいて学習するのが困難な重みパラメータＷＶＨは、第１の学習ターゲット・パラメータとして設定され、正確に学習できる重みパラメータＷＨＶは、第２の学習ターゲット・パラメータとして設定される。
【０１２１】
第２のモデルにおいて、同じ方法で、一時点ｔの入力層１４に関連する重みパラメータＷＶＶ及びＷＶＨは、正確に学習できるパラメータである。他方、一時点ｔの隠れ層１６に関連するＷＨＶ及びＷＨＨは、学習するのが困難である。従って、第２のモデルにおいて正確に学習できる重みパラメータＷＶＨは、第１の学習ターゲット・パラメータとして設定され、学習するのが困難である重みパラメータＷＨＶは、第２の学習ターゲット・パラメータとして設定される。
【０１２２】
ここで、第１のモデルの第１の学習ターゲット・パラメータＷＶＨは、過去の入力層１４と将来の隠れ層１６との間の重みパラメータとして相対的に表すことができる。第２のモデルの第１の学習ターゲット・パラメータＷＶＨも、過去の入力層１４と将来の隠れ層１６との間の重みパラメータとして相対的に表すことができる。従って、第１のモデルの第１の学習ターゲット・パラメータＷＶＨ及び第２のモデルの第１の学習ターゲット・パラメータＷＶＨは、共通のパラメータとすることができ、又は第１のモデルの第１の学習ターゲット・パラメータＷＶＨは、第２のモデルの第１の学習ターゲット・パラメータＷＶＨに変換するように動作可能である。従って、このパラメータを正確に学習できる第２のモデルを用いて第１の学習ターゲット・パラメータＷＶＨを学習することによって、学習装置１００は、第１のモデルを用いて算出するのが困難であり得る第１の学習ターゲット・パラメータＷＶＨを容易に算出することができる。
【０１２３】
同様に、第１のモデルの第２の学習ターゲット・パラメータＷＨＶは、過去の隠れ層１６と将来の入力層１４との間の重みパラメータとして相対的に表すことができる。第２のモデルの第２の学習ターゲット・パラメータＷＨＶも、過去の隠れ層１６と将来の入力層１４との間の重みパラメータとして相対的に表すことができる。従って、第１のモデルの第２の学習ターゲット・パラメータＷＨＶ及び第２のモデルの第２の学習ターゲット・パラメータＷＨＶは、共通のパラメータとすることができ、又は第１のモデルの第２の学習ターゲット・パラメータＷＨＶは、第２のモデルの第２の学習ターゲット・パラメータＷＨＶに変換するように動作可能である。従って、このパラメータを正確に学習できる第１のモデルを用いて第２の学習ターゲット・パラメータＷＨＶを学習することによって、学習装置１００は、第２のモデルを用いて算出するのが困難であり得る第２の学習ターゲット・パラメータＷＨＶを容易に算出することができる。
【０１２４】
このように、学習装置１００は、モデルの一方にとって困難なパラメータを学習し、他方のモデルによって正確に学習できるパラメータを用いて学習するように第１のモデル及び第２のモデルを用いることによって効率的な学習を実行するように動作可能である。以下に、こうした学習装置１００の学習動作について説明する。
【０１２５】
図１１は、学習装置１００によって実行される第１のモデル及び第２のモデルを用いる学習プロセスの動作フローを示す。学習装置１００は、Ｓ４１０乃至Ｓ４７０のプロセスを実行することによって、時系列入力データに対応するモデル１０を正確に学習するように動作可能である。
【０１２６】
最初に、取得セクション１１０が、時系列入力データ・シーケンスを取得することができる（Ｓ４１０）。取得セクション１１０が、時系列入力データ・シーケンスとして、学習の１つのインスタンスに用いられる時系列データの間隔Ｔより長い間隔Ｌにおける時系列データを取得する例を説明する。取得セクション１１０は、例えば、動画データを形成するように時系列に配置されたＬ個の画像データを取得する。
【０１２７】
次に、学習装置１００は、第１のモデル学習プロセスを用いて、各入力値と第１のモデルにおける複数の入力ノードに対応する時点より前の時点に対応する各隠れノードとの間の重みパラメータを学習することができる（Ｓ４２０）。具体的には、供給セクション１２０は、古い入力データから順番に時系列入力データ・シーケンスをモデル１０に順次入力することができ、ストレージ・セクション１３０は、それぞれの時点に対応する複数の隠れノードの値をサンプリングし、その値をそれぞれ、対応する複数の隠れノードに格納することができる。
【０１２８】
学習装置１００は、第１のモデルを用いてこの学習を実行することができる。具体的には、計算セクション１４０は、一時点の入力ノードの各入力値の条件付き確率を算出し、学習処理セクション１５０は、パラメータθを更新することができる。さらに、更新セクション１７０は、更新パラメータを更新することができる。学習装置１００の学習動作は上で既に説明したので、ここでは説明しない。学習装置１００は、第１のモデルを用いて所定の回数、学習プロセスを実行するように動作可能である。
【０１２９】
次に、学習装置１００は、第１のモデルを用いて学習したパラメータを、第２のモデルに対応するパラメータに変換することができる（Ｓ４３０）。この場合、更新セクション１７０は、変換セクションを含み、変換セクションは、第１のモデルのパラメータを第２のモデルのパラメータに変換するように動作可能である。変換セクションは、転置、要素の置換等を実行することによって、パラメータを変換することができる。
【数２１】
2020505672.tif 000023
【０１３０】
次に、学習装置１００は、変換したパラメータを用いる第２のモデルを用いた学習プロセスを用いることによって、第２のモデルにおける複数の隠れノードの各々と複数の入力ノードに対応する時点より後の時点に対応する各入力ノードとの間の重みパラメータを学習することができる（Ｓ４４０）。具体的には、供給セクション１２０は、時系列入力データ・シーケンスを、より新しい入力データから順番にモデル１０に順次入力することができ、ストレージ・セクション１３０は、各時点に対応する複数の隠れノードの値をサンプリングし、サンプリング値をそれぞれ対応する複数の隠れノードに格納することができる。
【０１３１】
供給セクション１２０及びストレージ・セクション１３０は、各データを、第１のモデルによる学習に用いられるＦＩＦＯメモリ１６０とは異なる、第２のモデルによる学習に用いられるＦＩＦＯメモリ１６０に格納することができる。学習装置１００は、第２のモデルを用いて学習プロセスを所定の回数実行するように動作可能である。
【０１３２】
次に、学習装置１００は、第２のモデルを用いて学習したパラメータを第１のモデルに対応するパラメータに変換することができる（Ｓ４５０）。この場合、変換セクションは、第２のモデルのパラメータを第１のモデルのパラメータに変換するように動作可能である。変換セクションは、転置、要素の置換等を用いて、パラメータを変換することができる。
【数２２】
2020505672.tif 000024
【０１３３】
学習装置１００は、学習を継続すべきかどうかを判定することができる（Ｓ４６０）。学習装置１００は、学習プロセスが所定の回数実行されるまで、学習を継続することができ、又は代わりに、ユーザからの停止コマンドが入力されるまで、学習を継続することができる。別の例として、学習装置１００は、時系列入力データ・シーケンスにおいて入力できるデータがそれ以上なくなるまで、学習を継続することができる。
【０１３４】
学習を継続する場合（Ｓ４６０：イエス）、学習装置１００は、ステップＳ４１０に戻り、モデル１０に供給される時系列データがそれ以上ない場合、取得セクション１１０は、時系列データ・シーケンスにおける次のデータを取得することができる。学習装置１００は、次の時系列データに基づいて、第１のモデル及び第２のモデルを用いて学習を順次実行することができる。
【０１３５】
学習が終了した場合（Ｓ４６０：ノー）、学習処理セクション１５０は、第１のモデルを用いて最終学習プロセスを実行することができる（Ｓ４７０）。学習処理セクション１５０は、１回又は複数回、第１のモデルを用いて学習プロセスを実行した後、学習した第１のモデルを取得するように動作可能である。学習処理セクション１５０は、学習した第１のモデルをデータベース１０００等に出力するように動作可能である。学習処理セクション１５０は、第１のモデルを出力し、学習プロセスを終了することができる。
【０１３６】
このように、学習装置１００は、第１のモデル及び第２のモデルの中から出力すべきモデルに対応する最後の学習インスタンスを実行するために用いられるモデルを、学習したモデルとして出力することができる。具体的には、図１１は、学習した第１のモデルが出力されるが、学習した第２のモデルが出力される場合、パラメータを変換するためのＳ４５０のプロセスを実行することなく、学習した第２のモデルを出力することができる。
【０１３７】
学習装置１００は、第１のモデル及び第２のモデルの中から出力すべきモデルに対応する学習により大きく重点を置きながら、学習を継続することができる。例えば、学習装置１００は、第２のモデルを用いる学習プロセスよりも多くの回数、第１のモデルを用いる学習プロセスを実行することができる。さらに、学習装置１００は、係数等を調整することによって、第２のモデルを用いる学習プロセスにおけるよりも第１のモデルを用いる学習プロセスにおいて、高い学習速度を用いる学習を実行するように動作可能である。このように、学習装置１００は、出力すべきモデルに対応する、重点を置いた方法で学習を実行し、従って、このモデルを用いてより適切な学習パラメータ・モデルを出力することができる。
【０１３８】
上述のように、学習装置１００の学習プロセスは、共通のパラメータを用いて、第１のモデル及び第２のモデルを用いた双方向（bidirectional）学習プロセスを実行する。従って、学習の方向に応じて変動する学習精度を有するパラメータが含まれる場合でも、学習装置１００は、これらのパラメータをより高い精度で学習することができる。さらに、双方向学習を実行することによって、学習装置１００は、第１のモデル及び第２のモデルの一方のみを用いてモデル学習が実行されたときに生じる過剰適合の発生を防止することができる。
【０１３９】
上述した学習装置１００の学習プロセスは、順方向モデル及び逆方向モデルを用いて実行される双方向学習プロセスの例である。これに加えて、学習装置１００は、モデルに応じて学習されるパラメータを区別することができる。
【０１４０】
図９及び図１０に説明されるように、第１のモデルの第１の学習ターゲット・パラメータＷＶＨは、第１のモデルを用いる学習よりも第２のモデルを用いる学習において、より高い精度で学習されるように動作可能である。さらに、第１のモデルの第２の学習ターゲット・パラメータＷＨＶは、第２のモデルを用いる学習よりも第１のモデルを用いる学習においてより高い精度で学習されるように動作可能である。
【０１４１】
この場合、学習装置１００により実行される第１のモデルを用いる学習は、第１の学習ターゲット・パラメータＷＶＨを変更することなく、第２の学習ターゲット・パラメータＷＨＶを学習するように動作可能である。言い換えれば、第１のモデルを用いて学習するとき、学習装置１００は、第１の学習ターゲット・パラメータＷＶＨを更新することなく、第２の学習ターゲット・パラメータＷＨＶを更新することができる。さらに、学習装置１００により実行される第２のモデルを用いる学習は、第２の学習ターゲット・パラメータＷＨＶを変更することなく、第１の学習ターゲット・パラメータＷＶＨを学習するように動作可能である。言い換えれば、第２のモデルを用いて学習するとき、学習装置１００は、第１の学習ターゲット・パラメータＷＶＨを更新できるが、第２の学習ターゲット・パラメータＷＨＶを更新する必要はない。
【０１４２】
この代わりに、学習装置１００は、学習に用いられるモデルに応じて、更新量を増減することができる。例えば、第１のモデルを用いる学習の場合、学習装置１００は、第１の学習ターゲット・パラメータＷＶＨの更新量に係数ρを乗算し、第２の学習ターゲット・パラメータＷＨＶの更新量に（１−ρ）を乗算することによって、更新を実行することができる。ここで、係数ρは、０．５より小さい正の値とすることができる。このように、第２のモデルを用いる学習の場合、学習装置１００は、第１の学習ターゲット・パラメータＷＶＨの更新量に（１−ρ）を乗算し、かつ、第２の学習ターゲット・パラメータＷＨＶの更新量に係数ρを乗算することによって、更新を実行することができる。
【０１４３】
このように、学習装置１００は、学習に用いられるモデルに応じて、学習に適切なパラメータ更新を促すことによって、学習プロセスをより正確に実行することができる。従って、隠れノードを含ませることにより、学習装置１００は、表現力、学習力等を改善することができ、双方向学習プロセスを実行することによって、学習をより正確に実行することができる。
【０１４４】
上述した学習装置１００は、学習装置１００が時系列入力データ・シーケンスを取得し、学習する例であるが、本発明は、時系列データに限定されない。例えば、垂直方向にｎ個のピクセルを有し、水平方向にｍ個のピクセルを有する２次元画像において、列方向に配置されたｎ個のピクセル列データを、一時点の入力データに対応するデータとして用いることができる。この場合、行方向に配置された複数の列データは、一時点より前又は後の入力データに対応するデータであり得る。この場合、学習装置１００は、複数の列データが１つの行方向においてモデル１０に入力される場合、及び、複数の列データが他の行方向においてモデル１０に入力される場合、双方向学習を実行することができる。学習装置１００は、波形データ、画像パターン・データ、言語データ等についても同様に双方向学習を実行することができる。
【０１４５】
上述した本実施形態による学習装置１００は、学習装置１００が１つの入力データ・シーケンスを取得し、この１つの入力データ・シーケンスに基づき双方向学習のための訓練データを生成するが、本発明において取得されるデータは、１つの入力データ・シーケンスに限定されない。学習装置１００は、複数のデータ・シーケンスを取得することができる。この場合、学習装置１００は、第１の入力データ・シーケンスに対して、第１のモデルを用いる学習を使用し、第１の入力データ・シーケンスとは異なる第２の入力データ・シーケンスに対して、第２のモデルを用いる学習を用いることができる。
【０１４６】
この場合、第１の入力データ・シーケンス及び第２の入力データ・シーケンスは、少なくとも部分的に関連していることが好ましい。さらに、データ・シーケンスが同じタイプのものであるか又は実質的に同じ傾向を有する場合、第１の入力データ・シーケンス及び第２の入力データ・シーケンスは、互いに異なる学習のための入力データ・シーケンスとすることができ、学習のための複数の入力データ・シーケンス内に含まれる。
【０１４７】
この場合、学習装置１００は、第１のモデルに基づいて、複数の入力値を含む入力データが配置された第１の入力データ・シーケンスからの入力データの各々をモデル１０の入力ノードに順次入力し、第１のモデルを用いる学習プロセスを実行するように動作可能である。学習装置１００は、複数の入力値を含む入力データが配置された第２の入力データ・シーケンスからの入力データの各々を、第１のモデルにおけるものとは異なる順序でモデル１０の入力ノードに入力し、第１のモデル内に含まれる第１の学習ターゲット・パラメータを学習するための第２のモデルを生成するように動作可能である。
【０１４８】
学習装置１００は、第２の入力データ・シーケンスからの入力データの各々を、逆方向の順序で入力し、学習ターゲット・パラメータを学習するための第２のモデルを生成するように動作可能である。第１及び第２の入力データ・シーケンスは、時系列入力データ・シーケンスとすることができる。この場合、第１のモデルは、第１の入力データ・シーケンスを、より古い入力データから順番に入力することができ、第２のモデルは、第２の入力データ・シーケンスを、より新しい入力データから順番に入力することができる。
【０１４９】
学習装置１００は、第１のモデル及び第２のモデルの両方を用いて学習プロセスを実行するように動作可能である。学習装置１００は、第１のモデル及び第２のモデルを用いる双方向学習を実行した後、学習した第１のモデルを出力するように動作可能である。学習装置１００は、学習した第２のモデルを削除し、入力データ・シーケンスに基づいて、学習した第１のモデルを予測モデルとして出力するように動作可能である。このように、学習装置１００は、学習のための複数の入力データ・シーケンスを取得し、学習プロセスを実行するように動作可能である。
【０１５０】
上述した学習装置１００は、学習装置１００が、第１の学習ターゲット・パラメータ及び第２の学習ターゲット・パラメータに実質的に同じ学習プロセスを適用することによって学習する例である。この代わりに、学習装置１００は、異なる学習プロセスを第１の学習ターゲット・パラメータ及び第２の学習ターゲット・パラメータにそれぞれ適用することによって学習することができる。言い換えれば、学習装置１００は、学習するのが困難であり得るパラメータについての更新量を減らすことによって更新を実行するように動作可能である。
【０１５１】
この際、第１のモデル及び第２のモデルを用いて学習する場合、学習装置１００は、それぞれの更新パラメータとしてθＶ＝（ｂＶｊ，ＷＨＶ，ＷＶＶ）及びθＨ＝（ｂＨｊ，ＷＶＨ，ＷＨＨ）を用いて更新を実行することができる。言い換えれば、学習装置１００は、正確に更新できる更新パラメータとしてθＶを用い、学習するのが困難であり得る更新パラメータとしてθＨを用いて学習を独立して実行することができる。ここで、ｂＶｊは、入力層１４の各ノードに対応するバイアス・パラメータを示す。さらに、ｂＨｊは、隠れ層１６の各ノードに対応するバイアス・パラメータを示す。
【０１５２】
一例として、全尤度についての下限は、ジェンセンの不等式から次式に示されるように表すことができる。ここで、隠れノードの値
【数２３】
2020505672.tif 000025
は、
【数２４】
2020505672.tif 000026
に対応してサンプリングすることができる。
【数２５】
2020505672.tif 000027
【０１５３】
式２３から、確率的勾配は、更新されるべきパラメータに従って、次式に示されるように算出することができる。
【数２６】
2020505672.tif 000028
【０１５４】
学習装置１００は、第１のモデルを用いて学習する場合、上述のように正確に学習できるパラメータθＶを更新するように動作可能である。この場合、パラメータθＶの更新は、以下の式に示されるように表すことができる。
【数２７】
2020505672.tif 000029
【０１５５】
さらに、学習装置１００は、第１のモデルを用いて学習する場合、緩やかな勾配を用いて、学習するのが困難であり得るパラメータθＨを徐々に更新することができる。この場合、パラメータθＨの更新は、以下の式に示されるように表すことができる。パラメータｇは、勾配の方向を示す勾配パラメータである。定数εは、例えば、１より小さい値であっても、０に近い値であってもよい。θＨを更新するための式中のηｇに対して演算するｌｏｇｐθを含ませる必要はない。さらに、η１と同様に、ηは、更新量を調整するための定数、又は更新数の増大に従って値が小さくなる係数とすることができる。
【数２８】
2020505672.tif 000030
【０１５６】
同様に、学習装置１００は、第２のモデルを用いて学習する場合、次式に示されるように、正確に学習できるパラメータθＶを更新するように動作可能である。
【数２９】
2020505672.tif 000031
【０１５７】
学習装置１００は、第２のモデルを用いて学習する場合、次式に示されるように、学習するのが困難であり得るパラメータθＨを更新するように動作可能である。θＨを更新するための式中のηｇに対して演算するｌｏｇｐθを含ませる必要はない。
【数３０】
2020505672.tif 000032
【０１５８】
上述のように、学習装置１００は、パラメータの学習しやすさに応じて用いる方法を変えることにより、学習プロセスをより正確に実行することができる。
【０１５９】
上述した学習装置１００の双方向学習プロセスは、ボルツマン・マシンに適した例であるが、本発明はこれに限定されるものではない。本発明は、データ系列を双方向学習するように動作可能であり、学習方向に応じて学習しやすさを変え得るあらゆる学習装置に適用することができる。
【０１６０】
図１２は、本発明の態様を全体的又は部分的に具体化できるコンピュータ８００の例を示す。コンピュータ８００にインストールされたプログラムにより、コンピュータ８００が、本発明の実施形態の装置、又はその１つ又は複数のセクション（モジュール、コンポーネント、要素等を含む）と関連した動作の役割を果たすこと又は動作を実行することができ、及び／又はコンピュータ８００が、本発明の実施形態のプロセス又はそのステップを実行することができる。こうしたプログラムは、ＣＰＵ  ８００−１２により実行され、コンピュータ８００に、本明細書で説明されるフローチャート及びブロック図のブロックの一部又は全てと関連した特定の動作を実行させることができる。
【０１６１】
コンピュータ８００は、ホスト・コントローラ８００−１０により互いに接続される、ＣＰＵ８００−１２、ＲＡＭ８００−１４、グラフィックス・コントローラ８００−１６、及びディスプレイ・デバイス８００−１８を含む。コンピュータ８００は、入力／出力コントローラ８００−２０を介してホスト・コントローラ８００−１０に接続される、通信インターフェース８００−２２、ハードディスク・ドライブ８００−２４、ＤＶＤ−ＲＯＭドライブ８００−２６、及びＩＣカード・ドライブなどの入力／出力ユニットも含む。コンピュータは、入力／出力チップ８００−４０を通じて入力／出力コントローラ８００−２０に接続される、ＲＯＭ８００−３０及びキーボード８００−４２などのレガシー入力／出力ユニットも含む。
【０１６２】
ＣＰＵ８００−１２は、ＲＯＭ８００−３０及びＲＡＭ８００−１４内に格納されるプログラムに従って動作し、それにより、各ユニットを制御する。グラフィックス・コントローラ８００−１６は、ＲＡＭ８００−１４内又はそれ自体で提供されるフレーム・バッファ等上のＣＰＵ８００−１２により生成される画像データを取得し、画像データをディスプレイ・デバイス８００−１８上に表示させる。
【０１６３】
通信インターフェース８００−２２は、ネットワーク８００−５０を介して他の電子デバイスと通信する。ハードディスク・ドライブ８００−２４は、コンピュータ８００内のＣＰＵ８００−１２により用いられるプログラム及びデータを格納する。ＤＶＤ−ＲＯＭドライブ８００−２６は、ＤＶＤ−ＲＯＭ８００−０１からプログラム又はデータを読み取り、ＲＡＭ８００−１４を介して、ハードディスク・ドライブ８００−２４にプログラム又はデータを提供する。ＩＣカード・ドライブは、ＩＣカードからプログラム及びデータを読み取り、及び／又はプログラム及びデータをＩＣカードに書き込む。
【０１６４】
ＲＯＭ８００−３０は、起動時にコンピュータ８００により実行されるブート・プログラム、及び／又はコンピュータ８００のハードウェアに依存するプログラムを内部に格納する。入力／出力チップ８００−４０は、パラレル・ポート、シリアル・ポート、キーボード・ポート、マウス・ポート等を介して種々の入力／出力ユニットを入力／出力コントローラ８００−２０に接続することもできる。
【０１６５】
ＤＶＤ−ＲＯＭ８００−０１又はＩＣカードのようなコンピュータ可読媒体により、プロが提供される。プログラムは、コンピュータ可読媒体から読み取られ、同じくコンピュータ可読媒体の例であり、ＣＰＵ８００−１２により実行される、ハードディスク・ドライブ８００−２４、ＲＡＭ８００−１４、又はＲＯＭ８００−３０にインストールされる。これらのプログラム内に記述される情報処理をコンピュータ８００内に読み取り、結果としてプログラムと上述の種々のタイプのハードウェア・リソースとの間の協働がもたらされる。装置又は方法は、コンピュータ８００の使用による動作又は情報の処理を実現することによって構成することができる。
【０１６６】
例えば、コンピュータ８００と外部デバイスとの間で通信が行われる場合、ＣＰＵ８００−１２は、ＲＡＭ８００−１４にロードされた通信プログラムを実行し、通信プログラム内に記述される処理に基づいて、通信インターフェース８００−２２に通信処理を指示することができる。ＣＰＵ８００−１２の制御下の通信インターフェース８００−２２は、ＲＡＭ８００−１４、ハードディスク・ドライブ８００−２４、ＤＶＤ−ＲＯＭ８００−０１、又はＩＣカードのような記録媒体内に提供される伝送バッファ領域上に格納される伝送データを読み取り、読み取った伝送データをネットワーク８００−５０に伝送するか、ネットワーク８００−５０から受け取った受信データを、記録媒体上に提供される受信バッファ領域等に書き込む。
【０１６７】
さらに、ＣＰＵ８００−１２は、ＲＡＭ８００−１４、ハードディスク・ドライブ８００−２４、ＤＶＤ−ＲＯＭドライブ８００−２６（ＤＶＤ−ＲＯＭ８００−０１）、ＩＣカード等のような外部記録媒体内に格納されたファイル又はデータベースの全て又は必要な部分を、ＲＡＭ８００−１４に読み取らせ、ＲＡＭ８００−１４上のデータに対して種々のタイプの処理を実行することができる。次に、ＣＰＵ８００−１２は、処理されたデータを外部記録媒体にライトバックすることができる。
【０１６８】
情報処理を行うために、種々のタイプのプログラム、データ、テーブル及びデータベースのような種々のタイプの情報を記録媒体内に格納することができる。ＣＰＵ８００−１２は、ＲＡＭ８００−１４から読み取られたデータに対して、本開示全体を通して説明され、プログラムの命令シーケンスにより示されるような、種々のタイプの動作、情報の処理、条件判断、条件付き分岐、条件なし分岐、情報の検索／置換等を含む種々のタイプの処理を実行し、結果をＲＡＭ８００−１４にライトバックすることができる。さらに、ＣＰＵ８００−１２は、記録媒体のファイル、データベース等内の情報を検索することができる。例えば、各々が第１の属性の属性値を有する複数のエントリが第２の属性の属性値と関連付けられ、記録媒体内に格納されるとき、ＣＰＵ８００−１２は、複数のエントリの中から、第１の属性の属性値が指定される条件に合致するエントリを検索し、エントリ内に格納される第２の属性の属性値を読み取り、それにより、所定の条件を満たす第１の属性と関連した第２の属性の属性値を得ることができる。
【０１６９】
上で説明したプログラム又はソフトウェア・モジュールは、コンピュータ８００上又はその近くのコンピュータ可読媒体に格納することができる。さらに、専用通信ネットワーク又はインターネットに接続されるサーバ・システム内に提供される、ハードディスク又はＲＡＭなどの記録媒体をコンピュータ可読媒体として用いて、これにより、ネットワークを介してプログラムをコンピュータ８００に提供することができる。
【０１７０】
本発明は、システム、方法、及び／又はコンピュータ・プログラム製品とすることができる。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令をその上に有するコンピュータ可読ストレージ媒体（単数又は複数）を含むことができる。
【０１７１】
コンピュータ可読ストレージ媒体は、命令実行デバイスにより使用される命令を保持及び格納できる有形デバイスとすることができる。コンピュータ可読ストレージ媒体は、例えば、これらに限定されるものではないが、電子記憶装置、磁気記憶装置、光学記憶装置、電磁気記憶装置、半導体記憶装置、又は上記のいずれかの適切な組み合わせとすることができる。コンピュータ可読ストレージ媒体のより具体的な例の非網羅的なリストとして、以下のもの：すなわち、ポータブル・コンピュータ・ディスケット、ハードディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、消去可能プログラム可能読み出し専用メモリ（ＥＰＲＯＭ又はフラッシュメモリ）、スタティック・ランダム・アクセス・メモリ（ＳＲＡＭ）、ポータブル・コンパクト・ディスク読み出し専用メモリ（ＣＤ−ＲＯＭ）、デジタル多用途ディスク（ＤＶＤ）、メモリ・スティック、フロッピー・ディスク、パンチカード若しくは命令がそこに記録された溝内の隆起構造のような機械的にエンコードされたデバイス、及び上記のいずれかの適切な組み合わせが挙げられる。本明細書で使用される場合、コンピュータ可読ストレージ媒体は、電波、又は他の自由に伝搬する電磁波、導波管若しくは他の伝送媒体を通じて伝搬する電磁波（例えば、光ファイバ・ケーブルを通る光パルス）、又はワイヤを通って送られる電気信号などの、一時的信号自体として解釈されない。
【０１７２】
本明細書で説明されるコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体からそれぞれのコンピューティング／処理デバイスに、又は、例えばインターネット、ローカル・エリア・ネットワーク、広域ネットワーク、及び／又は無線ネットワークなどのネットワークを介して外部コンピュータ又は外部ストレージ・デバイスにダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、及び／又はエッジ・サーバを含むことができる。各コンピューティング／処理デバイスにおけるネットワーク・アダプタ・カード又はネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受け取り、コンピュータ可読プログラム命令を転送して、それぞれのコンピューティング／処理デバイス内のコンピュータ可読ストレージ媒体に格納する。
【０１７３】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ（ＩＳＡ）命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、又は、Ｓｍａｌｌｔａｌｋ、Ｃ＋＋などのオブジェクト指向プログラミング言語、及び、「Ｃ」プログラミング言語若しくは類似のプログラミング言語などの通常の手続き型プログラミング言語を含む１つ又は複数のプログラミング言語の任意の組み合わせで記述することができる。コンピュータ可読プログラム命令は、完全にユーザのコンピュータ上で実行される場合もあり、一部がユーザのコンピュータ上で、独立型ソフトウェア・パッケージとして実行される場合もあり、一部がユーザのコンピュータ上で実行され、一部が遠隔コンピュータ上で実行される場合もあり、又は完全に遠隔コンピュータ若しくはサーバ上で実行される場合もある。最後のシナリオにおいて、遠隔コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ）若しくは広域ネットワーク（ＷＡＮ）を含むいずれかのタイプのネットワークを通じてユーザのコンピュータに接続される場合もあり、又は外部コンピュータへの接続がなされる場合もある（例えば、インターネットサービスプロバイダを用いたインターネットを通じて）。幾つかの実施形態において、例えば、プログラム可能論理回路、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）、又はプログラム可能論理アレイ（ＰＬＡ）を含む電子回路は、コンピュータ可読プログラム命令の状態情報を用いて電子回路を個人化することによりコンピュータ可読プログラム命令を実行し、本発明の態様を実施することができる。
【０１７４】
本発明の態様は、本発明の実施形態による方法、装置（システム）及びコンピュータ・プログラム製品のフローチャート図及び／又はブロック図を参照して説明される。フローチャート図及び／又はブロック図の各ブロック、並びにフローチャート図及び／又はブロック図内のブロックの組み合わせは、コンピュータ可読プログラム命令によって実装できることが理解されるであろう。
【０１７５】
これらのコンピュータ可読プログラム命令を、汎用コンピュータ、専用コンピュータ、又は他のプログラム可能データ処理装置のプロセッサに与えてマシンを製造し、それにより、コンピュータ又は他のプログラム可能データ処理装置のプロセッサによって実行される命令が、フローチャート及び／又はブロック図の１つ又は複数のブロック内で指定された機能／動作を実施するための手段を作り出すようにすることができる。これらのコンピュータ・プログラム命令を、コンピュータ、他のプログラム可能データ処理装置、及び／又は他のデバイスを特定の方式で機能させるように指示することができるコンピュータ可読媒体内に格納し、それにより、そのコンピュータ可読媒体内に格納された命令が、フローチャート及び／又はブロック図の１つ又は複数のブロックにおいて指定された機能／動作の態様を実施する命令を含む製品を含むようにすることもできる。
【０１７６】
コンピュータ・プログラム命令を、コンピュータ、他のプログラム可能データ処理装置、又は他のデバイス上にロードして、一連の動作ステップをコンピュータ、他のプログラム可能データ処理装置、又は他のデバイス上で行わせてコンピュータ実施のプロセスを生成し、それにより、コンピュータ又は他のプログラム可能装置上で実行される命令が、フローチャート及び／又はブロック図の１つ又は複数のブロックにおいて指定された機能／動作を実行するためのプロセスを提供するようにすることもできる。
【０１７７】
図面内のフローチャート及びブロック図は、本発明の種々の実施形態による、システム、方法、及びコンピュータ・プログラム製品の可能な実装の、アーキテクチャ、機能及び動作を示す。この点に関して、フローチャート内の各ブロックは、指定された論理機能を実装するための１つ又は複数の実行可能命令を含む、モジュール、セグメント、又はコードの一部を表すことができる。幾つかの代替的な実装において、ブロック内に示される機能は、図に示される順序とは異なる順序で生じることがある。例えば、連続して示される２つのブロックは、関与する機能に応じて、実際には実質的に同時に実行されることもあり、又はこれらのブロックはときとして逆順で実行されることもある。ブロック図及び／又はフローチャート図の各ブロック、及びブロック図及び／又はフローチャート図内のブロックの組み合わせは、指定された機能又は動作を実行する、又は専用のハードウェアとコンピュータ命令との組み合わせを実行する、専用ハードウェア・ベースのシステムによって実装できることにも留意されたい。
【０１７８】
本発明の実施形態を説明したが、本発明の技術的範囲は上述の実施形態に限定されない。本発明の上述の実施形態に、種々の変更又は改良を加えることが可能であることが当業者には明らかである。また、そうした変更又は改良を加えた実施形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲から明らかである。
【０１７９】
特許請求の範囲、実施形態、又は図に示される装置、システム、プログラム、及び方法により実施される各プロセスの動作、手順、ステップ、及び段階は、順番が、「に先立って（prior to）」、「より前に（before）」等により示されず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実施することができる。特許請求の範囲、実施形態、又は図において、プロセス・フローが、「最初に（first）」又は「次に（next）」のような語句を用いて説明されたとしても、これは必ずしも、プロセスをこの順序で実施しなければならないことを意味するものではない。
【０１８０】
上記から明らかにされるように、本発明の実施形態を用いて、過剰適合、データ・シーケンスに基づく予測モデルにおける学習精度の低下を防止しながら学習を実行し、学習装置の表現力及び学習力を改善することが可能である。
【符号の説明】
【０１８１】
１０：モデル
１２：共通層
１４：入力層
１６：隠れ層
２０：ＦＩＦＯシーケンス
１００：学習装置
１１０：取得セクション
１２０：供給セクション
１３０：ストレージ・セクション
１４０：計算セクション
１５０：学習処理セクション
１６０：ＦＩＦＯメモリ
１７０：更新セクション
８００：コンピュータ
【図１】
2020505672.tif 000033
【図２】
2020505672.tif 000034
【図３】
2020505672.tif 000035
【図４】
2020505672.tif 000036
【図５】
2020505672.tif 000037
【図６】
2020505672.tif 000038
【図７】
2020505672.tif 000039
【図８】
2020505672.tif 000040
【図９】
2020505672.tif 000041
【図１０】
2020505672.tif 000042
【図１１】
2020505672.tif 000043
【図１２】
2020505672.tif 000044
【手続補正書】
【提出日】令和1年10月2日(2019.10.2)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数の入力値を含む入力データが配置された第１の入力データ・シーケンスからの各入力データを順次入力することにより学習プロセスを実行するための第１のモデルに基づいて、前記第１のモデルにおける順番とは異なる順番で、複数の入力値を含む入力データが配置された第２の入力データ・シーケンスからの各入力データを入力することによって、前記第１のモデル内に含まれる第１の学習ターゲット・パラメータを学習するための第２のモデルを生成することと、
前記第１のモデル及び前記第２のモデルの両方を用いて学習プロセスを実行することと、
前記学習した第１のモデルを出力することと、
を含む、方法。
【請求項２】
前記学習した第１のモデルを出力することは、前記学習した第２のモデルを削除し、入力データ・シーケンスに基づいて、前記学習した第１のモデルを予測モデルとして出力することを含む、請求項１に記載の方法。
【請求項３】
前記第２のモデルを生成することは、前記第２の入力データ・シーケンスからの各入力データを逆順で入力することにより、前記学習ターゲット・パラメータを学習するための前記第２のモデルを生成することを含む、請求項２に記載の方法。
【請求項４】
前記第１の入力データ・シーケンス及び前記第２の入力データ・シーケンスは、時系列入力データ・シーケンスであり、
前記第１のモデルは、前記第１の入力データ・シーケンスをより古い入力データから順番に入力し、
前記第２のモデルは、前記第２の入力データ・シーケンスをより新しい入力データから順番に入力する、請求項３に記載の方法。
【請求項５】
前記第１のモデル及び前記第２のモデルはそれぞれ、前記第１の学習ターゲット・パラメータ及び第２の学習ターゲット・パラメータを含み、
前記学習プロセスを実行することは、
前記第１の学習ターゲット・パラメータを変更することなく、前記第１のモデルを用いて前記第２の学習ターゲット・パラメータを学習することと、
前記第２の学習ターゲット・パラメータを変更することなく、前記第２のモデルを用いて前記第１の学習ターゲット・パラメータを学習することと、
を含む、請求項３に記載の方法。
【請求項６】
前記第１の学習ターゲット・パラメータは、前記第１のモデルを用いて学習するよりも前記第２のモデルを用いて学習することによって、より高い精度で学習するように動作可能であり、
前記第２の学習ターゲット・パラメータは、前記第２のモデルを用いて学習するよりも前記第１のモデルを用いて学習することによって、より高い精度で学習するように動作可能である、請求項５に記載の方法。
【請求項７】
前記第１の入力データ・シーケンス及び前記第２の入力データ・シーケンスは、少なくとも部分的に同一である、請求項３乃至６のいずれかに記載の方法。
【請求項８】
前記第１の入力データ・シーケンス及び前記第２の入力データ・シーケンスは、互いに異なり、学習のための複数の入力データ・シーケンス内に含まれる、学習のための入力データ・シーケンスである、請求項３乃至７のいずれかに記載の方法。
【請求項９】
前記学習プロセスを実行することは、前記第２のモデルを用いる前記学習プロセスよりも多い回数、前記第１のモデルを用いる前記学習プロセスを実行することを含む、請求項３乃至８のいずれかに記載の方法。
【請求項１０】
前記学習プロセスを実行することは、前記第２のモデルを用いる前記学習プロセスに用いられるよりも大きい学習速度を用いて、前記第１のモデルを用いる前記学習プロセスを実行することを含む、請求項３乃至９のいずれかに記載の方法。
【請求項１１】
前記学習プロセスを実行することは、前記第１のモデルを用いる前記学習プロセスを実行することにより学習した前記第１のモデルを取得することを含む、請求項３乃至１０のいずれかに記載の方法。
【請求項１２】
前記第１のモデルは、前記第１の入力データ・シーケンスの各時点の複数の入力値を順次入力する複数の入力ノードと、各入力ノードと前記複数の入力ノードに対応する時点より前の時点における各入力値との間の重みパラメータとを含み、
前記第２のモデルは、前記第２の入力データ・シーケンスの各時点の複数の入力値を逆順で入力する複数の入力ノードと、各入力ノードと前記複数の入力ノードに対応する前記時点より後の時点における各入力値との間の重みパラメータとを含む、請求項４に記載の方法。
【請求項１３】
前記第１のモデルは、各入力ノードと前記複数の入力ノードに対応する前記時点より前の前記時点に対応する複数の隠れノードの各々との間の重みパラメータと、各隠れノードと前記複数の入力ノードに対応する前記時点より前の前記時点に対応する各入力値との間の重みパラメータとをさらに含み、
前記第２のモデルは、各入力ノードと前記複数の入力ノードに対応する前記時点より後の前記時点に対応する複数の隠れノードの各々との間の重みパラメータと、各隠れノードと前記複数の入力ノードに対応する前記時点より後の前記時点に対応する各入力値との間の重みパラメータとをさらに含む、請求項１２に記載の方法。
【請求項１４】
前記学習プロセスを実行することは、
前記第１のモデルを用いる前記学習プロセスを用いて、前記第１のモデルにおける各隠れノードと前記複数の入力ノードに対応する時点より前の前記時点に対応する各入力値との間の重みパラメータを学習することと、
前記第２のモデルを用いる前記学習プロセスを用いて、前記第２のモデルにおける各入力ノードと前記複数の入力ノードに対応する前記時点より後の前記時点に対応する前記複数の隠れノードの各々との間の重みパラメータを学習することと、
を含む、請求項１３に記載の方法。
【請求項１５】
プログラム命令を含むコンピュータ・プログラムであって、前記プログラム命令は、コンピュータにより実行可能であり、前記コンピュータに前記請求項のいずれかに記載の方法のステップを実行させる、コンピュータ・プログラム。
【請求項１６】
入力データに対応するモデルを学習するための学習装置であって、
プロセッサと、
前記プロセッサにより実行されるとき、前記プロセッサに請求項１〜請求項１４のいずれかに記載の方法のステップを実行させるコンピュータ・プログラムと、
を含む、学習装置。
【国際調査報告】
2020505672.tif 000045
2020505672.tif 000046