(57)【特許請求の範囲】
【請求項１】
時系列入力データに対応するモデルを学習するための学習装置であって、
前記時系列入力データを取得する取得部と、
前記時系列入力データにおける一の時点の入力データに対応する複数の入力値を前記モデルが有する複数のノードに供給する供給部と、
前記時系列入力データにおける前記一の時点より前の入力データ系列と、前記モデルにおける前記入力データ系列中の入力データに対応する複数の入力値のそれぞれと前記複数のノードのそれぞれとの間の重みパラメータとに基づいて、前記入力データ系列が発生した条件下における前記一の時点の各入力値の条件付確率を算出する算出部と、
前記重みパラメータを調整して、前記入力データ系列が発生した条件の下で前記一の時点の入力データが発生する条件付確率をより高める学習処理部と、
を備える学習装置。
【請求項２】
前記時系列入力データにおける前記一の時点より前の入力データ系列に基づく複数の更新パラメータを、それぞれの更新パラメータの値および次に反映すべき入力データにおける対応する入力値に基づいて前の時点における値から前記一の時点の値へと更新する更新部を更に備え、
前記算出部は、前記複数の更新パラメータを用いて前記入力データ系列が発生した条件下における前記一の時点の入力データ値の条件付確率を算出する
請求項１に記載の学習装置。
【請求項３】
前記重みパラメータは、学習対象となる学習パラメータと、前記入力データ系列中の入力データと前記一の時点の入力データとの間の時点差に応じて予め定められた変化をする規定パラメータとに基づく、請求項２に記載の学習装置。
【請求項４】
前記更新パラメータは、前記入力データ系列中の各時点の入力データにおける対応する入力値と、当該入力値と対象とするノードの間の前記重みパラメータにおける前記規定パラメータとに基づく、請求項３に記載の学習装置。
【請求項５】
前記規定パラメータは、予め定められた定数を時点差に基づく数分累乗した値に基づき、
前記更新部は、前記一の時点の前における前記更新パラメータに次に反映すべき入力データにおける対応する入力値を加えてから前記定数を乗じることによって前記更新パラメータを更新する請求項４に記載の学習装置。
【請求項６】
前記重みパラメータは、第１の前記学習パラメータおよび第１の前記規定パラメータの積に基づく正の値と、第２の前記学習パラメータおよび第２の前記規定パラメータの積に基づく負の値とに基づく、請求項５に記載の学習装置。
【請求項７】
前記重みパラメータは、時点差が予め定められた遅延定数以上の場合に前記第１の学習パラメータおよび前記第１の規定パラメータの積に基づく正の値をとり、時点差が前記遅延定数未満かつ０でない場合に前記第２の学習パラメータおよび前記第２の規定パラメータの積に基づく負の値をとる請求項６に記載の学習装置。
【請求項８】
前記重みパラメータは、複数の前記第１の学習パラメータおよび複数の前記第１の規定パラメータにおける複数組の前記第１の学習パラメータおよび前記第１の規定パラメータの積に基づく複数の正の値と、複数の前記第２の学習パラメータおよび複数の前記第２の規定パラメータにおける複数組の前記第２の学習パラメータおよび前記第２の規定パラメータの積に基づく複数の負の値とに基づく、請求項６または７に記載の学習装置。
【請求項９】
前記第１の規定パラメータは、０より大きく１より小さい第１定数を、時点差から予め定められた遅延定数を減じた数分累乗した値をとり、
前記第２の規定パラメータは、０より大きく１より小さい第２定数を、時点差のマイナス値分累乗した値をとる
請求項６から８のいずれか一項に記載の学習装置。
【請求項１０】
前記時系列入力データの新たな入力データにおける対応する入力値を順次格納して予め定められた時点数の後に出力するＦＩＦＯメモリを備え、
前記更新部は、前記ＦＩＦＯメモリから出力された入力値を用いて前記更新パラメータを更新する請求項５から９のいずれか一項に記載の学習装置。
【請求項１１】
複数の前記ＦＩＦＯメモリのそれぞれが、前記時系列入力データにおける過去の入力データに対応する複数の入力値のそれぞれと、前記複数のノードのそれぞれとの間に設けられる請求項１０に記載の学習装置。
【請求項１２】
前記取得部は、前記時系列入力データの新たな入力データを順次取得し、
前記供給部は、前記新たな入力データに応じた複数の入力値を前記複数のノードに順次供給し、
前記算出部は、前記時系列入力データにおける前記新たな入力データより前の入力データ系列が発生した条件下における前記新たな入力データに対応する時点の入力データ値の条件付確率を算出し、
前記学習処理部は、前記重みパラメータを調整して、当該入力データ系列が発生した条件の下で前記新たな入力データが発生する条件付確率を高める
請求項１から１１のいずれか一項に記載の学習装置。
【請求項１３】
前記学習処理部は、新たに複数時点分の入力データが取得されたことに応じて、前記重みパラメータを前記複数時点分まとめて調整する請求項１から１２のいずれか一項に記載の学習装置。
【請求項１４】
前記学習処理部は、前記モデルにおける前記複数のノードのそれぞれに与えられたバイアスパラメータを更に調整する請求項１から１３のいずれか一項に記載の学習装置。
【請求項１５】
時系列入力データに対応するモデルを用いて時系列入力データから次の入力データを予測する処理装置であって、
前記時系列入力データを取得する時系列データ取得部と、
予測対象時点に対応する複数の入力値を前記モデルが有する複数のノードに供給する供給部と、
前記時系列入力データにおける予測対象時点より前の入力データ系列と、前記モデルにおける前記入力データ系列中の入力データに対応する複数の入力値のそれぞれと前記複数のノードのそれぞれとの間の重みパラメータとに基づいて、前記入力データ系列が発生した条件下において前記予測対象時点に対応する各入力値となる条件付確率を算出するノード算出部と、
前記予測対象時点に対応する各入力値の条件付確率に基づいて、前記時系列入力データが発生した条件の下で次の入力データが予め定められた値となる条件付確率を算出するデータ算出部と、
を備える処理装置。
【請求項１６】
前記モデルは、前記複数のノード間に重みパラメータを有さず、
前記データ算出部は、前記時系列入力データが発生した条件の下で次の入力データが前記予め定められた値となる条件付確率として、前記時系列入力データが発生した条件の下で前記複数のノードのそれぞれが前記予測対象時点に当該予め定められた値に対応する値となる条件付確率を前記複数のノードについて乗じた積を算出する請求項１５に記載の処理装置。
【請求項１７】
請求項１から１４のいずれか一項に記載の学習装置と、
請求項１５または１６に記載の処理装置と、
を備える予測システム。
【請求項１８】
時系列入力データに対応するモデルを学習するための学習方法であって、
前記時系列入力データを取得する取得段階と、
前記時系列入力データにおける一の時点の入力データに対応する複数の入力値を前記モデルが有する複数のノードに供給する供給段階と、
前記時系列入力データにおける前記一の時点より前の入力データ系列と、前記モデルにおける前記入力データ系列中の入力データに対応する複数の入力値のそれぞれと前記複数のノードのそれぞれとの間の重みパラメータとに基づいて、前記入力データ系列が発生した条件下における前記一の時点の各入力値の条件付確率を算出する算出段階と、
前記重みパラメータを調整して、前記入力データ系列が発生した条件の下で前記一の時点の入力データが発生する条件付確率をより高める学習処理段階と、
を備える学習方法。
【請求項１９】
時系列入力データに対応するモデルを用いて時系列入力データから次の入力データを予測する処理方法であって、
前記時系列入力データを取得する取得段階と、
予測対象時点に対応する複数の入力値を前記モデルが有する複数のノードに供給する供給段階と、
前記時系列入力データにおける予測対象時点より前の入力データ系列と、前記モデルにおける前記入力データ系列中の入力データに対応する複数の入力値のそれぞれと前記複数のノードのそれぞれとの間の重みパラメータとに基づいて、前記入力データ系列が発生した条件下において前記予測対象時点に対応する各入力値となる条件付確率を算出するノード算出段階と、
前記予測対象時点に対応する各入力値の条件付確率に基づいて、前記時系列入力データが発生した条件の下で次の入力データが予め定められた値となる条件付確率を算出するデータ算出段階と、
を備える処理方法。
【請求項２０】
コンピュータに、請求項１から１４のいずれか一項に記載の学習装置として機能させるプログラム。
【請求項２１】
コンピュータに、請求項１５または１６に記載の処理装置として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、学習装置、処理装置、予測システム、学習方法、処理方法、およびプログラムに関する。
【背景技術】
【０００２】
従来、静止画像の分類等は、ボルツマンマシンを用いて機械学習することで、高い性能を達成できることが知られている（例えば、特許文献１参照）。このようなボルツマンマシンを、時系列データに適用した動的ボルツマンマシンが提案されていた（例えば、非特許文献１〜３参照）。
非特許文献１  G. E. Hinton and A. D. Brown, Spiking Boltzmann machines, In Advances in Neural Information Processing Systems, pages 122-128, 1999
非特許文献２  I. Sutskever and G. E. Hinton, Learning multilevel distributed representations for highdimensional sequences, In International Conference on Artificial Intelligence and Statistics, pages 548-555, 2007
非特許文献３  I. Sutskever, G. E. Hinton, and G. W. Taylor, The recurrent temporal restricted Boltzmann machine, In Advances in Neural Information Processing Systems, pages 1601-1608, 2008
特許文献１  特開平６−１６２２３４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００３】
しかしながら、このような時間発展を考慮するボルツマンマシンは、学習することが困難であり、時系列予測等に応用することができなかった。
【課題を解決するための手段】
【０００４】
本発明の第１の態様においては、時系列入力データに対応するモデルを学習するための学習装置であって、時系列入力データを取得する取得部と、時系列入力データにおける一の時点の入力データに対応する複数の入力値をモデルが有する複数のノードに供給する供給部と、時系列入力データにおける一の時点より前の入力データ系列と、モデルにおける入力データ系列中の入力データに対応する複数の入力値のそれぞれと複数のノードのそれぞれとの間の重みパラメータとに基づいて、入力データ系列が発生した条件下における一の時点の各入力値の条件付確率を算出する算出部と、重みパラメータを調整して、入力データ系列が発生した条件の下で一の時点の入力データが発生する条件付確率をより高める学習処理部と、を備える学習装置、学習方法、およびプログラムを提供する。
【０００５】
本発明の第２の態様においては、時系列入力データに対応するモデルを用いて時系列入力データから次の入力データを予測する処理装置であって、時系列入力データを取得する取得部と、予測対象時点に対応する複数の入力値をモデルが有する複数のノードに供給する供給部と、時系列入力データにおける予測対象時点より前の入力データ系列と、モデルにおける入力データ系列中の入力データに対応する複数の入力値のそれぞれと複数のノードのそれぞれとの間の重みパラメータとに基づいて、入力データ系列が発生した条件下において予測対象時点に対応する各入力値となる条件付確率を算出するノード算出部と、予測対象時点に対応する各入力値の条件付確率に基づいて、時系列入力データが発生した条件の下で次の入力データが予め定められた値となる条件付確率を算出するデータ算出部と、を備える処理装置、処理方法、およびプログラムを提供する。
【０００６】
本発明の第３の態様においては、第１の態様の学習装置と、第２の態様の処理装置と、を備える予測システムを提供する。
【０００７】
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではない。また、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【図面の簡単な説明】
【０００８】
【図１】本実施形態に係る学習装置１００の構成例を示す。
【図２】本実施形態に係るモデル１０の構成例を示す。
【図３】本実施形態に係る学習装置１００の動作フローを示す。
【図４】本実施形態に係る時系列データと、学習に用いる訓練データの構成例を示す。
【図５】本実施形態に係る学習装置１００の変形例を示す。
【図６】本実施形態に係るモデル１０の変形例を示す。
【図７】本実施形態に係る更新パラメータγｉ，ｌの時間的な推移の一例を示す。
【図８】本実施形態に係る更新パラメータαｉ，ｊ，ｋの時間的な推移の一例を示す。
【図９】本実施形態に係る処理装置２００の構成例を示す。
【図１０】本実施形態に係る処理装置２００の動作フローを示す。
【図１１】コンピュータ１９００のハードウェア構成の一例を示す。
【発明を実施するための形態】
【０００９】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【００１０】
図１は、本実施形態に係る学習装置１００の構成例を示す。学習装置１００は、時系列入力データに対応するモデルを学習するための学習装置である。学習装置１００は、時系列データをボルツマンマシンに基づくモデルのノードに供給して、当該モデルを学習する。学習装置１００は、取得部１１０と、供給部１２０と、算出部１３０と、学習処理部１４０と、を備える。
【００１１】
取得部１１０は、時系列入力データを取得する。時系列入力データは、一例として、動画像データ等のように、時間軸に対応した複数のデータが配列されたデータ列である。取得部１１０は、ユーザが操作する装置または時系列データを検出して出力する装置（センサ）等に接続され、時系列入力データを取得してよい。また、取得部１１０は、記憶装置等に予め定められた形式で記憶された時系列入力データを読み出して取得してよい。また、取得部１１０は、ネットワーク等に接続され、当該ネットワークを介して時系列入力データを取得してもよい。また、取得部１１０は、取得した時系列入力データを、学習装置１００内部の記憶装置等に記憶してよい。
【００１２】
供給部１２０は、時系列入力データにおける一の時点の入力データに対応する複数の入力値をモデルが有する複数のノードに供給する。供給部１２０は、取得部１１０に接続され、受けとった時系列入力データのうち、一の時点の入力データを教師データとし、当該一の時点の入力値をモデルの対応するノードに供給する。ここで、一の時点の入力データは、学習に用いる訓練データのうち時間的に最も新しいデータでよい。これに代えて、一の時点の入力データは、学習に用いる訓練データのうち時間的に途中のデータを用いてもよい。即ち、一の時点の入力データは、時系列データの中から任意に選択してよい。
【００１３】
算出部１３０は、入力データ系列が発生した条件下における一の時点の各入力値の条件付確率を算出する。ここで、学習装置１００が用いるモデルは、後述するが、入力データ系列中の入力データに対応する複数の入力値のそれぞれと複数のノードのそれぞれとの間に重みパラメータを有する。算出部１３０は、時系列入力データにおける一の時点より前の入力データ系列と、モデルにおける当該重みパラメータとに基づいて、一の時点の各入力値の条件付確率を算出する。
【００１４】
学習処理部１４０は、算出部１３０に接続され、モデルにおける重みパラメータを調整して、入力データ系列が発生した条件の下で一の時点の入力データが発生する条件付確率をより高める。学習処理部１４０は、モデルにおける複数のノードのそれぞれに与えられたバイアスパラメータを更に調整する。学習処理部１４０は、モデルにおける重みパラメータおよびバイアスパラメータを調節した結果を、外部のデータベース１０００等の記憶装置に供給して記憶させる。
【００１５】
以上の本実施形態に係る学習装置１００は、時系列入力データにおける一の時点の入力データに基づき、モデルの重みパラメータおよびバイアスパラメータを調節して当該モデルを学習する。本実施形態に係るモデルについて、図２を用いて説明する。
【００１６】
図２は、本実施形態に係るモデル１０の構成例を示す。モデル１０は、複数の層を備えるモデルであり、図２は、合計Ｔの層を備える例を示す。モデル１０は、有限の層を有してよく、これに代えて、無限の層を有してもよい。第０層は、時系列データにおける一の時点の入力データに対応する層であり、本実施形態では、当該入力データが有する入力値の数に応じた数のノードを有する例を説明する。なお、入力値の数よりも多くのノードを有するようにして、入力値に対応しないノードを補助的に用いてもよい。
【００１７】
複数の層のうち第０層以外の合計Ｔ−１の層は、時系列入力データのうち、一の時点より前の入力データ系列に対応する層である。例えば、第−１層は、一の時点の入力データよりも時間的に１つ前の時点の入力データに対応し、第−δ層は、一の時点の入力データよりも時間的にδ前の時点の入力データに対応する。即ち、第０層以外の合計Ｔ−１の層は、一例として、第０層と同数のノードをそれぞれ有し、対応する入力データ系列の入力値がそれぞれ供給される。
【００１８】
例えば、時系列入力データが動画像データの場合、第０層には動画像データの最後の画像データが対応し、第０層の複数のノードのそれぞれは、当該画像データのピクセルデータのそれぞれが対応して入力される。また、第−１層には最後から１つ前の画像データが対応して供給され、第−１層の複数のノードのそれぞれは、当該１つ前の画像データのピクセルデータのそれぞれが対応して入力される。同様に、第−δ層の複数のノードのそれぞれは、δ前の画像データのピクセルデータのそれぞれが対応して入力される。
【００１９】
第０層が有する複数のノードは、それぞれバイアスパラメータを有する。例えば、ｊ番目のノードｊは、バイアスパラメータｂｊを有する。また、各層において、複数のノード間には、重みパラメータを有さない。一方、第０層が有する複数のノードは、一の時点より前の入力データ系列に対応する層が有するノードとの間に、重みパラメータを有する。図２は、第０層のノードｊと、第−δ層のノードｉとの間の重みパラメータＷｉｊ［δ］の概念を示した。
【００２０】
重みパラメータＷｉｊ［δ］は、具体的に次式で示される。
【数１】
0005943358.tif 000002
【００２１】
ここで、ｕｉ，ｊ，ｋおよびｖｉ，ｊ，ｌは、学習対象となる学習パラメータである。λｋｔ１およびμｌｔ２は、入力データ系列中の入力データと一の時点の入力データとの間の時点差δに応じて予め定められた変化をする規定パラメータである（ｔ１＝δ−ｄｉｊ、ｔ２＝−δ）。即ち、重みパラメータＷｉｊ［δ］は、学習パラメータｕｉ，ｊ，ｋおよびｖｉ，ｊ，ｌと、規定パラメータλｋｔ１およびμｌｔ２とに基づくパラメータである。
【００２２】
重みパラメータＷｉｊ［δ］は、第１の学習パラメータｕｉ，ｊ，ｋおよび第１の規定パラメータλｋｔ１の積に基づく正の値と、第２の学習パラメータｖｉ，ｊ，ｌおよび第２の規定パラメータμｌｔ２の積に基づく負の値とに基づくパラメータである。具体的には、重みパラメータＷｉｊ［δ］は、時点差δが予め定められた遅延定数ｄｉｊ以上の場合、第１の学習パラメータｕｉ，ｊ，ｋおよび第１の規定パラメータλｋｔ１の積に基づく正の値をとる。また、重みパラメータＷｉｊ［δ］は、当該時点差δが遅延定数ｄｉｊ未満かつ０でない場合に第２の学習パラメータｖｉ，ｊ，ｌおよび第２の規定パラメータμｌｔ２の積に基づく負の値をとる。また、重みパラメータＷｉｊ［δ］は、当該時点差δが０の場合、０となる。
【００２３】
また、重みパラメータＷｉｊ［δ］は、時点差δが予め定められた遅延定数ｄｉｊ以上の場合、複数の第１の学習パラメータｕｉ，ｊ，ｋおよび複数の第１の規定パラメータλｋｔ１における複数組の第１の学習パラメータｕｉ，ｊ，ｋおよび第１の規定パラメータλｋｔ１の積ｕｉ，ｊ，ｋ・λｋｔ１に基づく複数の正の値に基づく。また、重みパラメータＷｉｊ［δ］は、当該時点差δが遅延定数ｄｉｊ未満かつ０でない場合、複数の第２の学習パラメータｖｉ，ｊ，ｌおよび複数の第２の規定パラメータμｌｔ２における複数組の第２の学習パラメータｖｉ，ｊ，ｌおよび第２の規定パラメータμｌｔ２の積ｖｉ，ｊ，ｌ・μｌｔ２に基づく複数の負の値とに基づく。
【００２４】
ここで、規定パラメータは、予め定められた定数を時点差δに基づく数分累乗した値に基づくパラメータである。第１規定パラメータλｋｔ１は、一例として、時点差δが大きくなるにしたがって値が漸減するパラメータである。この場合、第１の規定パラメータλｋｔ１は、０より大きく１より小さい第１定数λｋを、時点差δから予め定められた遅延定数ｄｉｊを減じた数（δ−ｄｉｊ＝ｔ１）分累乗した値をとる。また、第２規定パラメータμｌｔ２は、一例として、時点差δが大きくなるにしたがって値が漸減するパラメータである。この場合、第２の規定パラメータμｌｔ２は、０より大きく１より小さい第２定数μｌを、時点差δのマイナス値（−δ＝ｔ２）分累乗した値をとる。
【００２５】
以上の本実施形態に係るモデル１０は、ボルツマンマシンを構成する。即ち、モデル１０は、時系列データを適用したボルツマンマシンとなる。本実施形態に係る学習装置１００は、モデル１０の第０層に供給された一の時点の入力データを教師データとして、学習パラメータｕｉ，ｊ，ｋおよびｖｉ，ｊ，ｌとバイアスパラメータｂｊとを調節して当該モデル１０を学習する。学習装置１００の学習動作について、図３を用いて説明する。
【００２６】
図３は、本実施形態に係る学習装置１００の動作フローを示す。本実施形態において、学習装置１００は、Ｓ３１０〜Ｓ３５０の処理を実行することにより、時系列入力データに対応するモデル１０を学習して、学習パラメータｕｉ，ｊ，ｋおよびｖｉ，ｊ，ｌとバイアスパラメータｂｊとを決定する。
【００２７】
まず、取得部１１０は、時系列データを取得する（Ｓ３１０）。取得部１１０は、モデル１０の第０層から第−Ｔ＋１層までの合計Ｔ層に相当する期間の時系列データを取得してよい。取得部１１０は、一例として、動画像データを構成する時系列に並ぶＴ個の画像データを取得する。
【００２８】
次に、供給部１２０は、時系列入力データにおける一の時点の入力データに対応する複数の入力値を、モデル１０の対応する第０層が有する複数のノードにそれぞれ供給する（Ｓ３２０）。ここで、第０層に供給される入力データをｘ［０］とする。供給部１２０は、例えば、時系列入力データのうち時間的に最新の時点の入力データｘ［０］に対応する複数の入力値ｘｊ［０］を、第０層の対応するノードｊに供給する。供給部１２０は、一例として、動画像データを構成する時系列に並ぶＴ個の画像データのうち、最後の画像データの複数のピクセルデータを、第０層の複数のノードに供給する。ただし、時系列の長さがＴに満たない場合には、第０層から時系列の長さ分の層にデータを供給し、残りの層のノードには、例えば、値０を供給する。
【００２９】
次に、算出部１３０は、一の時点より前の入力データ系列に対応する複数の入力値を、モデル１０の対応する第−１層から第−Ｔ＋１層がそれぞれ有する複数のノードにそれぞれ供給する。ここで、第−１層から第−Ｔ＋１層に供給される入力データをｘ（−Ｔ，−１］とする。なお、記号（−Ｔ，−１］は、第−Ｔ＋１層から−１層までを意味する。即ち、時系列データにおける入力データｘ（−Ｔ，−１］は、入力データｘ［０］に至るまでの履歴となる。
【００３０】
算出部１３０は、例えば、時系列入力データのうち時間的にδ番目に新しい時点の入力データに対応する複数の入力値を、第−δ層の複数のノードに供給する。算出部１３０は、一例として、動画像データを構成する時系列に並ぶＴ個の画像データのうち、第１番目からＴ−１番目に並ぶ画像データの複数のピクセルデータを、対応する第−Ｔ＋１層から第−１層の複数のノードにそれぞれ供給する。
【００３１】
そして、算出部１３０は、第−Ｔ＋１層から第−１層の複数のノードに供給された入力データ系列に対応する複数の入力値のそれぞれと、重みパラメータＷｉｊ［δ］に基づいて、一の時点の各入力値の条件付確率を算出する（Ｓ３３０）。算出部１３０は、入力データの履歴ｘ（−Ｔ，−１］に基づき、第０層のｊ番目のノードの入力値ｘｊ［０］が１となる確率＜ｘｊ［０］＞θを、次式のｘｊ［０］に１を代入して算出する。なお、本実施形態において、各ノードの入力値ｘｊ［０］は、１または０の２値である例を説明するが、当該入力値ｘｊ［０］の値はこれに限定されない。
【数２】
0005943358.tif 000003
【００３２】
（数２）式は、ボルツマンマシンとして既知の確率式から導かれる。ここで、θは、算出すべきパラメータの集合であり、θ＝（ｂｊ，ｕｉ，ｊ，ｋ，ｖｉ，ｊ，ｌ）である。また、τは、ボルツマンマシンとして既知の「システムの温度」に依存し、ユーザ等によって予め設定されるパラメータである。（数２）式のＥθ，ｊ（ｘｊ［０］｜ｘｊ（−∞，−１］）は、次式を用いて算出される。
【数３】
0005943358.tif 000004
【００３３】
ここで、「Ｔ'」は転置行列を示す。また、「：」は、ノード数をｎとした場合の１からｎを示し、「：，ｊ」は、ｊ列を抜き出すことに相当する。即ち、（数３）式の右辺の第２項は、次式のように示される。
【数４】
0005943358.tif 000005
【００３４】
ここで、αｉ，ｊ，ｋ、βｉ，ｊ，ｌ、およびγｉ，ｌは、次式で示される。
【数５】
0005943358.tif 000006
【数６】
0005943358.tif 000007
【数７】
0005943358.tif 000008
【００３５】
即ち、（数２）式のｘｊ［０］に１を代入したＰθ，ｊ（１｜ｘｊ（−Ｔ，−１］）は、（数３）から（数５）式のｘｊ［０］に１を代入して算出することができる。なお、θ＝（ｂｊ，ｕｉ，ｊ，ｋ，ｖｉ，ｊ，ｌ）は、予め定められた初期値（一例として、０等）を代入してよい。これにより、算出部１３０は、（数２）式で示される一の時点の各入力値ｘｊ［０］の条件付確率＜ｘｊ［０］＞θを算出することができる。
【００３６】
次に、学習処理部１４０は、パラメータθ＝（ｂｊ，ｕｉ，ｊ，ｋ，ｖｉ，ｊ，ｌ）を調整する（Ｓ３４０）。学習処理部１４０は、バイアスパラメータｂｊを調整する場合、当該バイアスパラメータｂｊの変化の方向を次式によって定める。
【数８】
0005943358.tif 000009
【００３７】
ここで、（数８）式の右辺のｘｊ［０］は、教師データとして供給部１２０が供給した入力値であり、右辺の＜ｘｊ［０］＞θは、（数２）式で算出される確率である。（数８）式より、バイアスパラメータｂｊは、次式で示すように調整して更新される。なお、係数ｃは、ユーザ等によって予め定められるパラメータである。
【数９】
0005943358.tif 000010
【００３８】
即ち、学習処理部１４０は、履歴ｘ（−Ｔ，−１］である入力データ系列が発生した条件の下で、第０層のノードの入力値ｘｊ［０］が発生する条件付確率を高めるように、バイアスパラメータｂｊを調整する。学習処理部１４０は、（数９）式に示されたバイアスパラメータｂｊの更新と（数２）式に示された確率＜ｘｊ［０］＞θの算出とを繰り返し、バイアスパラメータｂｊを決定する。学習処理部１４０は、例えば、バイアスパラメータｂｊの更新前と更新後の値の差が、予め定められた閾値以下の場合に、バイアスパラメータｂｊの更新を停止して、バイアスパラメータｂｊを決定する。
【００３９】
また、学習処理部１４０は、予め定められた回数だけバイアスパラメータｂｊの更新を繰り返して、バイアスパラメータｂｊを決定してもよい。なお、学習処理部１４０は、予め定められた回数だけバイアスパラメータｂｊの更新を繰り返しても、バイアスパラメータｂｊの更新前と更新後の値が予め定められた閾値以上の場合、バイアスパラメータｂｊの更新を停止してパラメータが収束しないことをユーザに通知してよい。
【００４０】
同様に、学習処理部１４０は、学習パラメータｕｉ，ｊ，ｋを更新する場合、当該学習パラメータｕｉ，ｊ，ｋの変化の方向を次式によって定める。
【数１０】
0005943358.tif 000011
【００４１】
また、学習処理部１４０は、学習パラメータｖｉ，ｊ，ｌを更新する場合、当該学習パラメータｖｉ，ｊ，ｌの変化の方向を次式によって定める。
【数１１】
0005943358.tif 000012
【００４２】
学習処理部１４０は、バイアスパラメータｂｊの更新と同様に、学習パラメータｕｉ，ｊ，ｋおよびｖｉ，ｊ，ｌの更新と確率＜ｘｊ［０］＞θの算出をそれぞれ繰り返して、学習パラメータｕｉ，ｊ，ｋおよびｖｉ，ｊ，ｌをそれぞれ定めてよい。これに代えて、学習処理部１４０は、パラメータθ＝（ｂｊ，ｕｉ，ｊ，ｋ，ｖｉ，ｊ，ｌ）をそれぞれ更新してから、（数２）式に示された確率＜ｘｊ［０］＞θを算出する動作を繰り返して、パラメータθ＝（ｂｊ，ｕｉ，ｊ，ｋ，ｖｉ，ｊ，ｌ）を定めてもよい。
【００４３】
以上のように、本実施形態に係る学習処理部１４０は、学習パラメータｕｉ，ｊ，ｋおよびｖｉ，ｊ，ｌとバイアスパラメータｂｊとを学習して決定することができる。学習装置１００は、学習を継続するか否かを判断する（Ｓ３５０）。学習装置１００は、予め定められた回数の学習処理に至るまで学習を継続してよく、これに代えて、ユーザの停止命令が入力されるまで学習を継続してよい。また、学習装置１００は、取得できる時系列データがなくなるまで、学習を継続してよい。
【００４４】
学習装置１００は、学習を継続する場合（Ｓ３５０：Ｙｅｓ）、ステップＳ３１０に戻り、取得部１１０が次の時系列データを取得して、当該次の時系列データに基づくモデルの学習を実行する。取得部１１０は、一例として、画像データの次の画像データを取得して０層に供給する。この際、ｔ層（−Ｔ＜ｔ＜０）に保持していた値は、ｔ−１層に供給する。なお、Ｔが有限の場合には、−Ｔ＋１層に保持していた値は削除される。学習装置１００は０層から−Ｔ＋１層に供給された画像データを教師データとして学習する。
【００４５】
このように、取得部１１０は、時系列入力データの新たな入力データを順次取得し、供給部１２０は、新たな入力データに応じた複数の入力値ｘｊ［０］を複数のノードに順次供給する。そして、算出部１３０は、時系列入力データにおける新たな入力データより前の入力データ系列ｘ（−Ｔ，−１］が発生した条件下における新たな入力データに対応する時点の入力値ｘｊ［０］の条件付確率＜ｘｊ［０］＞θを算出する。学習処理部１４０は、重みパラメータを調整して、当該入力データ系列ｘ（−Ｔ，−１］が発生した条件の下で新たな入力データが発生する条件付確率を高める。
【００４６】
学習処理部１４０は、学習を終了する場合（Ｓ３５０：Ｎｏ）、決定した学習パラメータｕｉ，ｊ，ｋおよびｖｉ，ｊ，ｌとバイアスパラメータｂｊとを出力して、外部のデータベース１０００等に記憶する。
【００４７】
以上のように、本実施形態に係る学習装置１００は、時系列に入力される時系列入力データに対して、一の時点を第０層とし、一の時点より前の入力データ系列をＴ−１層とした合計Ｔ層のモデルを適用することで、入力データ系列に基づき一の時点の入力データを予測する時間発展を考慮したボルツマンマシンを構成する。そして、学習装置１００は、当該時間発展を考慮したモデルに対し、履歴である入力データ系列ｘ（−Ｔ，−１］に基づき、一の時点の入力データが発生する条件付確率を算出することで、当該モデルを学習することができる。
【００４８】
以上の本実施形態に係る学習装置１００は、時系列入力データの新たな入力データを順次取得し、取得した入力データ毎に重みパラメータを調整することを説明した。これに代えて、学習装置１００は、予め定められた期間の時系列入力データを取得してから、重みパラメータを調整してもよい。例えば、学習処理部１４０は、Ｄ層分といった新たに複数時点分の入力データが取得されたことに応じて、重みパラメータを当該複数時点分まとめて調整する。
【００４９】
図４は、本実施形態に係る時系列データと、学習に用いる訓練データの構成例を示す。図４の横軸は、時間を示す。図４は、学習装置１００が訓練データとして学習に用いる時系列データｙ［１，Ｔ］の期間Ｔよりも、長い期間Ｌの時系列データｙ［１，Ｌ］を学習装置１００が用いる場合の一例を示す。
【００５０】
学習装置１００は、まず、時系列データのうち、期間１からＴの時系列データを第１訓練データとして、学習する。即ち、学習装置１００は、時点Ｔのデータを一の時点の各入力値ｘｊ［０］とし、期間１からＴ−１の時系列データを入力データ系列ｘ（−Ｔ，−１］（即ち、履歴）として、学習を実行する。
【００５１】
次に、学習装置１００は、時系列データのうち、期間２からＴ＋１の時系列データを第２訓練データとして、学習する。学習装置１００は、時点Ｔ＋Ｄ−１までのＤ個のデータを順次、一の時点の各入力値ｘｊ［０］としてよい。この場合、学習装置１００は、時点１からＴ―１までの期間から、１つずつ時点を将来の方向にずらして、時点ＤからＴ＋Ｄ−２までのＤ個の期間の時系列データを履歴としてよい。学習装置１００は、このように、Ｄ個の各入力値ｘｊ［０］と、対応するＤ個の履歴に対して、Ｄ回のパラメータ調整を実行してよい。即ち、学習装置１００は、ｘ［０］をｙ［Ｔ＋ｔ］とし、ｘ（−Ｔ，−１］をｙ（ｔ，Ｔ＋ｔ−１］として、０からＤ−１までのｔについて、（数８）から（数１１）式で説明した学習方法を実行する確率的勾配法を用いてよい。
【００５２】
また、学習装置１００は、期間Ｄ毎に時系列データを取得して、期間Ｌの時系列データから複数の訓練データを生成して、Ｄ層分の学習をまとめて実行してよい。即ち、学習装置１００は、次式を用い、（数８）から（数１１）式で説明した確率的勾配法をＤ層分まとめて実行してもよい。
【数１２】
0005943358.tif 000013
【００５３】
図５は、本実施形態に係る学習装置１００の変形例を示す。図５に示す学習装置１００において、図１に示された本実施形態に係る学習装置１００の動作と略同一のものには同一の符号を付け、説明を省略する。本変形例の学習装置１００は、図４で説明したように、期間Ｌの時系列データが与えられる場合に、ＦＩＦＯメモリを用いてパラメータの更新を効率的に実行し、時系列入力データに対応するモデルを学習する。本変形例の学習装置１００は、ＦＩＦＯメモリ１５０と、更新部１６０とを更に備える。本実施形態においては、ＦＩＦＯメモリを備えることで、−１層から−Ｔ＋１層までの履歴を保持するノードは不要となる。また、本実施形態ではＴが無限の場合を説明する。
【００５４】
ＦＩＦＯメモリ１５０は、時系列入力データの新たな入力データにおける対応する入力値を順次格納して予め定められた時点数の後に出力する。ＦＩＦＯメモリ１５０は、先に入力されて格納したデータから、先に出力する（ＦＩＦＯ：Ｆｉｒｓｔ  Ｉｎ，  Ｆｉｒｓｔ  Ｏｕｔ）メモリである。学習装置１００は、モデルが有する複数のノードの数ｎ以上の複数のＦＩＦＯメモリ１５０を備える。ＦＩＦＯメモリ１５０は、複数のノードのそれぞれに１対１に対応して複数設けられることが望ましい。即ち、複数のＦＩＦＯメモリ１５０のそれぞれが、時系列入力データにおける過去の入力データに対応する複数の入力値のそれぞれと、複数のノードのそれぞれとの間に設けられる。
【００５５】
複数のＦＩＦＯメモリ１５０は、取得部１１０に接続され、時系列データの新たな入力データの対応する入力値を順次格納する。また、複数のＦＩＦＯメモリは、更新部１６０に接続され、格納したデータを当該更新部１６０に順次供給する。
【００５６】
更新部１６０は、時系列入力データにおける一の時点より前の入力データ系列に基づく複数の更新パラメータを、それぞれの更新パラメータの値および次に反映すべき入力データにおける対応する入力値に基づいて前の時点における値から一の時点の値へと更新する。更新部１６０は、ＦＩＦＯメモリ１５０に入力した入力値と、ＦＩＦＯメモリ１５０から出力された入力値を用いて更新パラメータを更新する。更新部１６０は、取得部１１０に接続され、ＦＩＦＯメモリ１５０に入力した入力値を受け取ってよい。これに代えて、更新部１６０は、供給部１２０を介して、ＦＩＦＯメモリ１５０に入力した入力値を取得部１１０から受け取ってよい。
【００５７】
ここで、更新パラメータは、（数５）および（数７）式に示したαｉ，ｊ，ｋおよびγｉ，ｌである。即ち、更新パラメータは、入力データ系列中の各時点の入力データにおける対応する入力値と、当該入力値と対象とするノードｉの間の重みパラメータＷｉｊ［δ］における規定パラメータλｋｔ１およびμｌｔ２とに基づく。更新パラメータは、取得部１１０による時系列入力データの取得が順次実行される毎に、当該更新パラメータは更新される。以上の本変形例の学習装置１００は、モデル１０の変形例を学習する。モデル１０の変形例について、図６を用いて説明する。
【００５８】
図６は、本実施形態に係るモデル１０の変形例を示す。本変形例のモデル１０は、図２のようなＴ層の層構造を有さない。図６は、１つのＦＩＦＯメモリ１５０に対応するモデルの例を示す。したがって、本変形例のモデル１０の全体構成は、一例として、教師データを格納する図２の第０層に相当する記憶領域と、図６に示す構成をノードの数ｎだけ備えるモデルとなる。本変形例のモデル１０の、ニューロンｉ、ニューロンｊ、およびＦＩＦＯ列２０を説明する。
【００５９】
ニューロンｉは、ＦＩＦＯメモリ１５０の入力側に相当し、入力データ系列中の各時点ｔの入力データにおける各ノードの入力値ｙｉ［ｔ］が、順次入力される。ニューロンｉは、入力された入力値ｙｉ［ｔ］を今回入力された入力値とする。そして次に、時点ｔ＋１において、ニューロンｉは、時点ｔにおいて入力された入力値ｙｉ［ｔ］を更新部１６０に供給するとともに、ＦＩＦＯ列２０に前回の入力値として供給し、時点ｔ＋１の入力値ｙｉ［ｔ＋１］を今回の入力値として保持する。
【００６０】
ＦＩＦＯ列２０は、ニューロンｉから受け取った直近のｄｉｊ−１個の入力値を格納する。ＦＩＦＯ列２０は、格納したｄｉｊ−１個の入力値を更新部１６０に供給する。更新部１６０は、ＦＩＦＯ列から供給された入力値を用いて、（数６）式に示す更新パラメータの値を算出する。ＦＩＦＯ列２０は、ｙｉ［ｔ−１］からｙｉ［ｔ−ｄij＋１］を保持する場合、次式のように示される。
【数１３】
0005943358.tif 000014
【００６１】
即ち、ＦＩＦＯ列２０は、時点ｔ１において入力値ｙｉ［ｔ１］がニューロンｉに入力されると、時点ｔ１の次の時点ｔ２（＝ｔ１＋１）から予め定められた時間間隔ｄｉｊ−１が経過した後の時点ｔ３（＝ｔ１＋ｄｉｊ―１）までの間、入力値ｙｉ［ｔ１］を格納する。ＦＩＦＯ列２０は、次の時点ｔ４（＝ｔ３＋１＝ｔ１＋ｄｉｊ）において、入力値ｙｉ［ｔ１］をニューロンｊに受け渡す。時点ｔ４においてニューロンｊに受け渡された入力値ｙｉ［ｔ１］は、時点ｔ４のうちに直ちに更新部１６０に受け渡される。ただし、時点ｔ４においてニューロンｊがＦＩＦＯ列から受け取った入力値ｙｉ［ｔ１］は、ニューロンｊの入力とはならず、時点ｔ４においてニューロンｊには入力値ｙｉ［ｔ４］が入力される。
【００６２】
ニューロンｊは、ＦＩＦＯメモリ１５０の出力側に相当し、ニューロンｉの時点ｔ１の入力値ｙｉ［ｔ１］を、ＦＩＦＯ列を経由して、時間間隔ｄｉｊの後、すなわち時点ｔ１＋ｄｉｊに受け取る。即ち、ニューロンｉからＦＩＦＯ列２０を介してニューロンｊに達するまでのモデル１０は、ｄｉｊ個の入力データが格納されるＦＩＦＯメモリ１５０に対応することになる。また、本変形例のモデル１０のニューロンｉは、一例として、図２に示したモデル１０の−δ層のノードｉといった、入力データ系列のノードに対応し、ニューロンｊは、一例として、第０層のノードｊに対応する。時点ｔ１＋ｄｉｊにおいて、ニューロンｊは、受け取った入力値ｙｉ［ｔ１］を更新部１６０に供給する。
【００６３】
以上のように、本変形例のモデル１０は、時点ｔにおいて、入力値ｙｉ［ｔ−１］および入力値ｙｉ［ｔ−ｄij］を更新部１６０に供給する。これにより、更新部１６０は、一の時点の前における更新パラメータに、次に反映すべき入力データにおける対応する入力値を加えてから予め定められた定数を乗じることによって、更新パラメータを更新することができる。ただし、（数８）式に示される更新パラメータは、更新部１６０に供給されたＦＩＦＯ列に格納された入力値を用いて、（数８）式に従って算出する。
【００６４】
例えば、（数７）式に示される更新パラメータγｉ，ｌは、更新部１６０に供給される入力値と第２の規定パラメータμｌを用いて更新できる。すなわち、更新部１６０は、時点ｔにおいて、前回の更新パラメータγｉ，ｌと時点ｔにニューロンｉから受け取る入力値ｙｉ［ｔ−１］とを用いて、次式のように計算することで、今回の学習に用いる更新パラメータγｉ，ｌを算出することができる。
【数１４】
0005943358.tif 000015
【００６５】
図７は、本実施形態に係る更新パラメータγｉ，ｌの時間的な推移の一例を示す。図７は、時点ｔ−５、ｔ−２、およびｔ−１において、０より大きい値（例えば１）が入力値としてニューロンｉに入力され、これらの入力値が時点ｔ−４、ｔ−１、およびｔにおい
て更新部１６０に供給された例を示す。第２規定パラメータμｌは、時点差が大きくなるにしたがって値が漸減するパラメータなので、更新部１６０が算出する更新パラメータγｉ，ｌは、入力値１が入力した時点から次の入力がある時点まで、時間の経過と共に減少する傾向が得られる。
【００６６】
また、（数５）式に示される更新パラメータαｉ，ｊ，ｋは、更新部１６０に供給される入力値と第１の規定パラメータλｋを用いて更新できる。すなわち、更新部１６０は、時点ｔにおいて、前回の更新パラメータαｉ，ｊ，ｋと時点ｔにニューロンｊから受け取る入力値ｙｉ［ｔ−ｄij］を用いて、次式のように計算することで、今回の学習に用いる更新パラメータαｉ，ｊ，ｋを算出することができる。
【数１５】
0005943358.tif 000016
【００６７】
図８は、本実施形態に係る更新パラメータαｉ，ｊ，ｋの時間的な推移の一例を示す。図８は、時点ｔ−３、ｔ−１、およびｔにおいて、０より大きい値（例えば１）が入力値としてニューロンｊに受け渡された例を示す。第１規定パラメータλｋは、時点差が大きくなるにしたがって値が漸減するパラメータなので、更新部１６０が算出する更新パラメータαｉ，ｊ，ｋは、入力値１が入力した時点から次の入力がある時点まで、時間の経過と共に減少する傾向が得られる。
【００６８】
以上のように、本変形例に係る学習装置１００は、ＦＩＦＯメモリ１５０および更新部１６０を用い、図６のモデル１０を適用することで、更新パラメータαｉ，ｊ，ｋおよびγｉ，ｌを更新することができる。なお、更新部１６０は、例えば、時点ｔ−１の入力値ｘｉ［ｔ−１］をＦＩＦＯメモリ１５０に入力する入力データから取得し、時点ｔ−ｄｉｊの入力値ｘｉ［ｔ−ｄij］をＦＩＦＯメモリ１５０の出力から取得することで、本変形例のモデル１０を適用することができる。
【００６９】
また、学習装置１００は、パラメータβｉ，ｊ，ｌの更新を、図３で説明した動作と略同一の動作で実行してよい。即ち、算出部１３０は、（数６）式に示されるように、時点ｔ−１から時点ｔ−ｄｉｊ＋１における第２の規定パラメータμｌと入力値ｘｉ（本変形例においてはｙｉ）との積を累積してパラメータβｉ，ｊ，ｌを算出する。
【００７０】
以上より、本変形例の算出部１３０は、複数の更新パラメータを用いて入力データ系列が発生した条件下における一の時点の入力データ値の条件付確率を算出することができる。そして、学習処理部１４０は、図３で説明した動作と略同一の動作を実行することで、学習パラメータｕｉ，ｊ，ｋおよびｖｉ，ｊ，ｌとバイアスパラメータｂｊとを決定することができる。
【００７１】
以上のように、図５に示す本変形例に係る学習装置１００は、図１に示す学習装置１００と比較して、更新パラメータαｉ，ｊ，ｋおよびγｉ，ｌの更新を容易に実行することができ、より記憶容量と計算コストを低減させて本変形例のモデル１０を学習することができる。また、本変形例のモデル１０は、ＦＩＦＯメモリ１５０と容易に対応させることができるので、ハードウエアとして実装させることが容易であり、設計効率を高めることができる。例えば、ハードウェアとして実装する場合、更新部１６０を各ニューロンに分散して持たせることができる。この場合、ニューロンｉに持たされた更新部１６０は、ニューロンｉに入力または供給される入力値だけを用いて、ニューロンｉに関連する更新パラメータを更新することができる。
【００７２】
図９は、本実施形態に係る処理装置２００の構成例を示す。処理装置２００は、時系列データに対応するモデルを用いて時系列入力データから次のデータを予測する。処理装置２００は、取得部２１０と、パラメータ取得部２１２と、供給部２２０と、ノード算出部２３０と、データ算出部２４０と、を備える。
【００７３】
取得部２１０は、時系列入力データを取得する。取得部２１０は、ユーザが操作する装置等に接続され、時系列入力データを取得してよい。また、取得部２１０は、記憶装置等に予め定められた形式で記憶された時系列入力データを読み出して取得してよい。また、取得部２１０は、ネットワーク等に接続され、当該ネットワークを介して時系列入力データを取得してもよい。また、取得部２１０は、取得した時系列入力データを、処理装置２００内部の記憶装置等に記憶してよい。
【００７４】
パラメータ取得部２１２は、予め学習によって決定されたパラメータを取得する。パラメータ取得部２１２は、外部の記憶装置等に接続され、以上で説明した学習装置１００等によって学習により決定された学習パラメータｕｉ，ｊ，ｋおよびｖｉ，ｊ，ｌとバイアスパラメータｂｊとを取得してよい。また、パラメータ取得部２１２は、学習装置１００等に接続されてよく、この場合、パラメータ取得部２１２は、一例として、学習処理部１４０に接続される。
【００７５】
供給部２２０は、対象時点に対応する複数の入力値をモデルが有する複数のノードに供給する。供給部２２０は、取得部２１０に接続され、受けとった時系列入力データにおける予測対象時点よりも前の入力データ系列を、モデルの対応するノードに供給する。
【００７６】
ノード算出部２３０は、時系列入力データにおける予測対象時点より前の入力データ系列と、モデルにおける入力データ系列中の入力データに対応する複数の入力値のそれぞれと複数のノードのそれぞれとの間の重みパラメータとに基づいて、入力データ系列が発生した条件下において予測対象時点に対応する各ノードのとる値に関する条件付確率を算出する。即ち、ノード算出部２３０は、パラメータ取得部２１２に接続され、受け取った学習パラメータｕｉ，ｊ，ｋおよびｖｉ，ｊ，ｌとバイアスパラメータｂｊとに基づき、第０層の各ノードの取る値の条件付確率を算出する。ノード算出部２３０は、算出した条件付確率をデータ算出部２４０に供給する。
【００７７】
データ算出部２４０は、第０層の各ノードのとる値に関する条件付確率に基づいて、第０層がとるベクトル値に関する条件付確率を算出する。データ算出部２４０は、ノード算出部２３０に接続され、受け取った条件付確率に基づき、例えば、次のデータが１または０となる条件付確率を算出する。データ算出部２４０は、算出した条件付確率をデータベース等の外部記憶装置に記憶する。これに代えて、データ算出部２４０は、算出した条件付確率を処理装置２００内部の記憶装置に記憶してよい。
【００７８】
以上の本実施形態に係る処理装置２００は、例えば、時点−１から時点−Ｔ＋１までの入力データ系列を時系列入力データとして取得し、時点０におけるデータを予測する。処理装置２００の予測動作について、図１０を用いて説明する。
【００７９】
図１０は、本実施形態に係る処理装置２００の動作フローを示す。本実施形態において、処理装置２００は、Ｓ４１０〜Ｓ４５０の処理を実行することにより、時系列入力データが発生した条件の下で次のデータの値を予測する。なお、処理装置２００は、図２で示したモデル１０を用いてデータの値を予測する例を説明する。
【００８０】
まず、取得部２１０は、時系列入力データを取得する（Ｓ４１０）。取得部１１０は、モデル１０の第−１層から第−Ｔ＋１層までの合計Ｔ−１層に相当する期間の時系列入力データを取得してよい。取得部１１０は、一例として、動画像データを構成する時系列に並ぶＴ−１個の画像データを取得する。
【００８１】
次に、パラメータ取得部２１２は、予め学習によって決定されたパラメータを取得する（Ｓ４２０）。パラメータ取得部２１２は、取得したパラメータをノード算出部２３０に供給する。
【００８２】
次に、供給部２２０は、入力データ系列のそれぞれの入力値を、データモデル１０の第−１層から第−Ｔ＋１層までの合計Ｔ−１層の対応するノードに供給する（Ｓ４３０）。
【００８３】
次に、ノード算出部２３０およびデータ算出部２４０は、第０層の条件付確率を算出する（Ｓ４４０）。ノード算出部２３０は、パラメータ取得部２１２から受け取った学習パラメータｕｉ，ｊ，ｋおよびｖｉ，ｊ，ｌを（数１）に代入して、重みパラメータＷｉｊ［δ］を算出する。そして、ノード算出部２３０は、受け取ったバイアスパラメータｂｊ、算出した重みパラメータＷｉｊ［δ］、（数２）および（数３）式に基づき、入力データ系列が発生した条件下において第０層の各ノードｊのとる値に関する条件付確率Ｐθ，ｊ（ｘｊ［０］｜ｘ（−∞，−１］）を算出する。
【００８４】
そして、データ算出部２４０は、（数３）式で得られた条件付確率Ｐθ，ｊ（ｘｊ［０］｜ｘ（−∞，−１］）を次式に代入して、時系列入力データが発生した条件の下で第０層がとるベクトル値に関する条件付確率Ｐθ，ｊ（ｘ［０］｜ｘ（−∞，−１］）を算出する。
【数１６】
0005943358.tif 000017
【００８５】
データ算出部２４０は、（数１６）式のように、時系列入力データが発生した条件の下で第０層がとるベクトル値に関する条件付確率Ｐθ（ｘ［０］｜ｘ（−∞，−１］）として、時系列入力データが発生した条件の下で第０層の各ノードｊの値が予測対象時点に当該予め定められた値に対応する値となる条件付確率Ｐθ，ｊ（ｘｊ［０］｜ｘ（−∞，−１］）を複数のノードｊについて乗じた積を算出する。これによって、データ算出部２４０は、第０層のデータの値を予測することができる。処理装置２００は、一例として、時系列に並ぶＴ−１個の画像データに基づき、次の時刻に配列される１つの画像データを予測して、合計Ｔ個の画像を含む動画像を生成できる。
【００８６】
次に、処理装置２００は、予測処理を継続するか否かを判断する（Ｓ４５０）。処理装置２００は、予め定められた回数の予測処理に至るまで予測を継続してよく、これに代えて、ユーザの停止命令が入力されるまで予測を継続してよい。
【００８７】
処理装置２００は、予測を継続する場合（Ｓ４５０：Ｙｅｓ）、ステップＳ４１０の時系列データの取得に戻る。この場合、取得部２１０は、前回の予測結果を新たな時系列データとして取得し、前回の予測における第０層から第−Ｔ＋２層の時系列データを、今回の予測における第−１層から第−Ｔ＋１層の時系列データとする。そして、処理装置２００は、第０層のデータの値を予測する。このように、処理装置２００は、予測した結果に基づき、更に次の時点のデータの値を予測して、将来の時点の時系列データを順次予測する。データ算出部２４０は、予測処理を終了する場合（Ｓ４５０：Ｎｏ）、予測結果を外部のデータベース１０００等に記憶して終了する。
【００８８】
処理装置２００は、一例として、時系列に並ぶＴ−１個の画像データに基づき、次に配列される画像データを順次予測して、予測した回数Ｍに応じた合計Ｔ＋Ｍ−１個の画像を含む動画像を生成できる。これにより、過去の動画像データに基づき、将来の動画像データを予測することができる。この場合、将来の動画像データと、実際に撮像を継続して取得した動画像とを比較することで、予測することが困難な異常画像等の検出を実行することができる。
【００８９】
以上のように、本実施形態に係る処理装置２００は、図２に示すモデル１０の時間発展を考慮したモデルに対し、履歴である入力データ系列ｘ（−∞，−１］と学習装置１００の学習結果とに基づき、一の時点の入力データが発生する条件付確率を算出することができる。このように、処理装置２００は、時間発展を考慮するモデル１０の学習結果に基づき、次の時点の時系列データを予測することができるので、学習装置１００と組み合わせることで、時間発展を考慮するモデルを時系列予測等に応用することができる。
【００９０】
また、以上の本実施形態に係る学習装置１００および処理装置２００は、図２のモデル１０の第０層が有する各ノードの処理を、独立に処理することができる。したがって、当該学習装置１００および処理装置２００を、ハードウェアおよび／またはソフトウェアに実装する場合において、独立に実装させることができ、分散処理および並列処理等をしてより高速に効率よく学習及び予測を実行することができる。
【００９１】
なお、本実施形態において、学習装置１００および処理装置２００は、別個独立に機能する装置である例を説明した。これに代えて、学習装置１００および処理装置２００は、１つの装置に備わってもよい。例えば、学習装置１００と、処理装置２００と、を備える予測システムが構成されてよい。この場合、処理装置２００の取得部２１０は、学習装置１００の学習処理部１４０に接続され、当該学習処理部１４０が学習によって決定したパラメータを取得してよい。
【００９２】
図１１は、本実施形態に係る学習装置１００および処理装置２００として機能するコンピュータ１９００のハードウェア構成の一例を示す。本実施形態に係るコンピュータ１９００は、ホスト・コントローラ２０８２により相互に接続されるＣＰＵ２０００、ＲＡＭ２０２０、グラフィック・コントローラ２０７５、および表示装置２０８０を有するＣＰＵ周辺部と、入出力コントローラ２０８４によりホスト・コントローラ２０８２に接続される通信インターフェイス２０３０、ハードディスクドライブ２０４０、およびＤＶＤドライブ２０６０を有する入出力部と、入出力コントローラ２０８４に接続されるＲＯＭ２０１０、フレキシブルディスク・ドライブ２０５０、および入出力チップ２０７０を有するレガシー入出力部と、を備える。
【００９３】
ホスト・コントローラ２０８２は、ＲＡＭ２０２０と、高い転送レートでＲＡＭ２０２０をアクセスするＣＰＵ２０００およびグラフィック・コントローラ２０７５とを接続する。ＣＰＵ２０００は、ＲＯＭ２０１０およびＲＡＭ２０２０に格納されたプログラムに基づいて動作し、各部の制御を行う。グラフィック・コントローラ２０７５は、ＣＰＵ２０００等がＲＡＭ２０２０内に設けたフレーム・バッファ上に生成する画像データを取得し、表示装置２０８０上に表示させる。これに代えて、グラフィック・コントローラ２０７５は、ＣＰＵ２０００等が生成する画像データを格納するフレーム・バッファを、内部に含んでもよい。
【００９４】
入出力コントローラ２０８４は、ホスト・コントローラ２０８２と、比較的高速な入出力装置である通信インターフェイス２０３０、ハードディスクドライブ２０４０、ＤＶＤドライブ２０６０を接続する。通信インターフェイス２０３０は、ネットワークを介して他の装置と通信する。ハードディスクドライブ２０４０は、コンピュータ１９００内のＣＰＵ２０００が使用するプログラムおよびデータを格納する。ＤＶＤドライブ２０６０は、ＤＶＤ−ＲＯＭ２０９５からプログラムまたはデータを読み取り、ＲＡＭ２０２０を介してハードディスクドライブ２０４０に提供する。
【００９５】
また、入出力コントローラ２０８４には、ＲＯＭ２０１０と、フレキシブルディスク・ドライブ２０５０、および入出力チップ２０７０の比較的低速な入出力装置とが接続される。ＲＯＭ２０１０は、コンピュータ１９００が起動時に実行するブート・プログラム、および／または、コンピュータ１９００のハードウェアに依存するプログラム等を格納する。フレキシブルディスク・ドライブ２０５０は、フレキシブルディスク２０９０からプログラムまたはデータを読み取り、ＲＡＭ２０２０を介してハードディスクドライブ２０４０に提供する。入出力チップ２０７０は、フレキシブルディスク・ドライブ２０５０を入出力コントローラ２０８４へと接続すると共に、例えばパラレル・ポート、シリアル・ポート、キーボード・ポート、マウス・ポート等を介して各種の入出力装置を入出力コントローラ２０８４へと接続する。
【００９６】
ＲＡＭ２０２０を介してハードディスクドライブ２０４０に提供されるプログラムは、フレキシブルディスク２０９０、ＤＶＤ−ＲＯＭ２０９５、またはＩＣカード等の記録媒体に格納されて利用者によって提供される。プログラムは、記録媒体から読み出され、ＲＡＭ２０２０を介してコンピュータ１９００内のハードディスクドライブ２０４０にインストールされ、ＣＰＵ２０００において実行される。
【００９７】
プログラムは、コンピュータ１９００にインストールされ、コンピュータ１９００を取得部１１０、供給部１２０、算出部１３０、学習処理部１４０、ＦＩＦＯメモリ１５０、更新部１６０、取得部２１０、パラメータ取得部２１２、供給部２２０、ノード算出部２３０、およびデータ算出部２４０として機能させる。
【００９８】
プログラムに記述された情報処理は、コンピュータ１９００に読込まれることにより、ソフトウェアと上述した各種のハードウェア資源とが協働した具体的手段である取得部１１０、供給部１２０、算出部１３０、学習処理部１４０、ＦＩＦＯメモリ１５０、更新部１６０、取得部２１０、パラメータ取得部２１２、供給部２２０、ノード算出部２３０、およびデータ算出部２４０として機能する。そして、この具体的手段によって、本実施形態におけるコンピュータ１９００の使用目的に応じた情報の演算または加工を実現することにより、使用目的に応じた特有の学習装置１００および処理装置２００が構築される。
【００９９】
一例として、コンピュータ１９００と外部の装置等との間で通信を行う場合には、ＣＰＵ２０００は、ＲＡＭ２０２０上にロードされた通信プログラムを実行し、通信プログラムに記述された処理内容に基づいて、通信インターフェイス２０３０に対して通信処理を指示する。通信インターフェイス２０３０は、ＣＰＵ２０００の制御を受けて、ＲＡＭ２０２０、ハードディスクドライブ２０４０、フレキシブルディスク２０９０、またはＤＶＤ−ＲＯＭ２０９５等の記憶装置上に設けた送信バッファ領域等に記憶された送信データを読み出してネットワークへと送信し、もしくは、ネットワークから受信した受信データを記憶装置上に設けた受信バッファ領域等へと書き込む。このように、通信インターフェイス２０３０は、ＤＭＡ（ダイレクト・メモリ・アクセス）方式により記憶装置との間で送受信データを転送してもよく、これに代えて、ＣＰＵ２０００が転送元の記憶装置または通信インターフェイス２０３０からデータを読み出し、転送先の通信インターフェイス２０３０または記憶装置へとデータを書き込むことにより送受信データを転送してもよい。
【０１００】
また、ＣＰＵ２０００は、ハードディスクドライブ２０４０、ＤＶＤドライブ２０６０（ＤＶＤ−ＲＯＭ２０９５）、フレキシブルディスク・ドライブ２０５０（フレキシブルディスク２０９０）等の外部記憶装置に格納されたファイルまたはデータベース等の中から、全部または必要な部分をＤＭＡ転送等によりＲＡＭ２０２０へと読み込ませ、ＲＡＭ２０２０上のデータに対して各種の処理を行う。そして、ＣＰＵ２０００は、処理を終えたデータを、ＤＭＡ転送等により外部記憶装置へと書き戻す。このような処理において、ＲＡＭ２０２０は、外部記憶装置の内容を一時的に保持するものとみなせるから、本実施形態においてはＲＡＭ２０２０および外部記憶装置等をメモリ、記憶部、または記憶装置等と総称する。本実施形態における各種のプログラム、データ、テーブル、データベース等の各種の情報は、このような記憶装置上に格納されて、情報処理の対象となる。なお、ＣＰＵ２０００は、ＲＡＭ２０２０の一部をキャッシュメモリに保持し、キャッシュメモリ上で読み書きを行うこともできる。このような形態においても、キャッシュメモリはＲＡＭ２０２０の機能の一部を担うから、本実施形態においては、区別して示す場合を除き、キャッシュメモリもＲＡＭ２０２０、メモリ、および／または記憶装置に含まれるものとする。
【０１０１】
また、ＣＰＵ２０００は、ＲＡＭ２０２０から読み出したデータに対して、プログラムの命令列により指定された、本実施形態中に記載した各種の演算、情報の加工、条件判断、情報の検索・置換等を含む各種の処理を行い、ＲＡＭ２０２０へと書き戻す。例えば、ＣＰＵ２０００は、条件判断を行う場合においては、本実施形態において示した各種の変数が、他の変数または定数と比較して、大きい、小さい、以上、以下、等しい等の条件を満たすかどうかを判断し、条件が成立した場合（または不成立であった場合）に、異なる命令列へと分岐し、またはサブルーチンを呼び出す。
【０１０２】
また、ＣＰＵ２０００は、記憶装置内のファイルまたはデータベース等に格納された情報を検索することができる。例えば、第１属性の属性値に対し第２属性の属性値がそれぞれ対応付けられた複数のエントリが記憶装置に格納されている場合において、ＣＰＵ２０００は、記憶装置に格納されている複数のエントリの中から第１属性の属性値が指定された条件と一致するエントリを検索し、そのエントリに格納されている第２属性の属性値を読み出すことにより、所定の条件を満たす第１属性に対応付けられた第２属性の属性値を得ることができる。
【０１０３】
以上に示したプログラムまたはモジュールは、外部の記録媒体に格納されてもよい。記録媒体としては、フレキシブルディスク２０９０、ＤＶＤ−ＲＯＭ２０９５の他に、ＤＶＤ、Ｂｌｕ−ｒａｙ（登録商標）、またはＣＤ等の光学記録媒体、ＭＯ等の光磁気記録媒体、テープ媒体、ＩＣカード等の半導体メモリ等を用いることができる。また、専用通信ネットワークまたはインターネットに接続されたサーバシステムに設けたハードディスクまたはＲＡＭ等の記憶装置を記録媒体として使用し、ネットワークを介してプログラムをコンピュータ１９００に提供してもよい。
【０１０４】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【０１０５】
特許請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。
【符号の説明】
【０１０６】
１０  モデル、２０  ＦＩＦＯ列、１００  学習装置、１１０  取得部、１２０  供給部、１３０  算出部、１４０  学習処理部、１５０  ＦＩＦＯメモリ、１６０  更新部、２００  処理装置、２１０  取得部、２１２  パラメータ取得部、２２０  供給部、２３０  ノード算出部、２４０  データ算出部、１０００  データベース、１９００  コンピュータ、２０００  ＣＰＵ、２０１０  ＲＯＭ、２０２０  ＲＡＭ、２０３０  通信インターフェイス、２０４０  ハードディスクドライブ、２０５０  フレキシブルディスク・ドライブ、２０６０  ＤＶＤドライブ、２０７０  入出力チップ、２０７５  グラフィック・コントローラ、２０８０  表示装置、２０８２  ホスト・コントローラ、２０８４  入出力コントローラ、２０９０  フレキシブルディスク、２０９５  ＤＶＤ−ＲＯＭ
【図１】
0005943358.tif 000018
【図２】
0005943358.tif 000019
【図３】
0005943358.tif 000020
【図４】
0005943358.tif 000021
【図５】
0005943358.tif 000022
【図６】
0005943358.tif 000023
【図７】
0005943358.tif 000024
【図８】
0005943358.tif 000025
【図９】
0005943358.tif 000026
【図１０】
0005943358.tif 000027
【図１１】
0005943358.tif 000028