(57)【要約】【課題】新規なアーキテクチャのＤｙＢＭに起因し、既存の正則化方法を適用することが、困難となる。【解決手段】各ＦＩＦＯキューが元のニューラルネットワークの複数のノードのうちの一対のノードの間に位置する、複数の先入れ先出し（ＦＩＦＯ）キューを有する元のニューラルネットワークを取得することと、長さが変更された少なくとも１つのＦＩＦＯキューを有する元のニューラルネットワークに等しい少なくとも１つの変更されたニューラルネットワークを生成することと、元のニューラルネットワーク及び少なくとも１つの変更されたニューラルネットワークのうちの各ニューラルネットワークを評価することと、当該評価に基づき、元のニューラルネットワーク及び少なくとも１つの変更されたニューラルネットワークのうちのどのニューラルネットワークが最も正確であるかを判断することとにより、ニューラルネットワークが正則化され得る。【選択図】図１
2018041367.tif 000002
【特許請求の範囲】
【請求項１】
複数の先入れ先出し（ＦＩＦＯ）キューを有する元のニューラルネットワークを取得する段階であって、各ＦＩＦＯキューは、前記元のニューラルネットワークの複数のノードのうちの一対のノードの間に位置する、段階と、
少なくとも１つの変更されたニューラルネットワークを生成する段階であって、前記変更されたニューラルネットワークは、長さが変更された少なくとも１つのＦＩＦＯキューを有する前記元のニューラルネットワークに等しい、段階と、
前記元のニューラルネットワーク及び前記少なくとも１つの変更されたニューラルネットワークのうちの各ニューラルネットワークを評価する段階と、
前記評価に基づき、前記元のニューラルネットワーク及び前記少なくとも１つの変更されたニューラルネットワークのうちのどのニューラルネットワークが最も正確かを判断する段階と
を備える
方法。
【請求項２】
前記元のニューラルネットワークは、
前記複数のノードのうちの複数のノードで構成された複数のレイヤであって、各レイヤは、データセットの時間枠の入力値を前記複数のレイヤのうちの後続レイヤに連続して転送し、前記データセットは、時系列のものであり、前記複数のノードで構成された複数のレイヤは、
前記複数のノードのうちの入力ノードの第１レイヤであって、前記入力ノードは、前記データセットの現在の時間枠の入力値を受信する、入力ノードの第１レイヤと、
複数の中間レイヤであって、各中間レイヤにおける各ノードは、前のレイヤからの値を、後続又は共有レイヤにおけるノードに転送する、複数の中間レイヤとを含む、複数のノードで構成された複数のレイヤと、
各ＦＩＦＯキューに対応する複数の重み値であって、各重み値は、シナプス前のノードからシナプス後のノードへ伝播する値を取得するよう、前記対応するＦＩＦＯキューにおける各値に適用される、複数の重み値と
を含む、請求項１に記載の方法。
【請求項３】
前記生成する段階は、前記元のニューラルネットワークにおける複数の前記ＦＩＦＯキューのうちから、変更させる少なくとも１つのＦＩＦＯキューを選択する段階を含む、請求項１に記載の方法。
【請求項４】
前記生成する段階は、前記少なくとも１つのＦＩＦＯキューを指定された長さに切り捨てる段階をさらに含む、請求項３に記載の方法。
【請求項５】
前記選択する段階は、確率変数に基づく、請求項３に記載の方法。
【請求項６】
前記元のニューラルネットワーク及び前記少なくとも１つの変更されたニューラルネットワークのうちの各ニューラルネットワークを訓練する段階をさらに備える請求項１に記載の方法。
【請求項７】
前記訓練する段階は、データセットの各サンプルに対する訓練フェーズを含む、請求項６に記載の方法。
【請求項８】
前記データセットは、時系列のものであり、各訓練フェーズは、前記時系列における少なくとも１つの時間枠に対応する、請求項７に記載の方法。
【請求項９】
前記生成する段階は、各訓練フェーズ中に前記少なくとも１つの変更されたニューラルネットワークのうちの変更されたニューラルネットワークを生成する段階を含む、請求項８に記載の方法。
【請求項１０】
前記評価する段階及び前記判断する段階は、訓練フェーズの閾値の後に実行される、請求項９に記載の方法。
【請求項１１】
前記元のニューラルネットワークを、前記最も正確なニューラルネットワークに置換する段階をさらに備え、
前記元のニューラルネットワークが一旦、前記最も正確なニューラルネットワークに置換されたら、後続の生成、評価、及び判断する動作は、前記元のニューラルネットワークの代わりに、前記最も正確なニューラルネットワークに対して実行される、請求項１０に記載の方法。
【請求項１２】
前記元のニューラルネットワーク及び前記少なくとも１つの変更されたニューラルネットワークのうちの各ニューラルネットワークを評価する前記段階は、
データセットを前記ニューラルネットワークに入力する段階と、
前記ニューラルネットワークの出力の分布と前記データセットの真の分布との間の差を計算する段階とを含む、請求項１に記載の方法。
【請求項１３】
前記ニューラルネットワークの前記出力の分布と前記データセットの前記真の分布との間の前記差を計算する前記段階は、前記出力の分布及び前記真の分布の負の対数尤度を計算する段階を含む、請求項１２に記載の方法。
【請求項１４】
前記元のニューラルネットワークを前記最も正確なニューラルネットワークに置換する段階をさらに備える請求項１に記載の方法。
【請求項１５】
前記生成する段階は、前記少なくとも１つの変更されたニューラルネットワークにおける複数の前記ＦＩＦＯキューのうちから、変更させる少なくとも１つのＦＩＦＯキューを選択する段階を含む、請求項１に記載の方法。
【請求項１６】
コンピュータに動作を実行させるコンピュータ・プログラムであり、前記動作は、
複数の先入れ先出し（ＦＩＦＯ）キューを有する元のニューラルネットワークを取得することであって、各ＦＩＦＯキューは、前記元のニューラルネットワークの複数のノードのうちの一対のノードの間に位置する、元のニューラルネットワークを取得することと、
少なくとも１つの変更されたニューラルネットワークを生成することであって、前記変更されたニューラルネットワークは、長さが変更された少なくとも１つのＦＩＦＯキューを有する前記元のニューラルネットワークに等しい、少なくとも１つの変更されたニューラルネットワークを生成することと、
前記元のニューラルネットワーク及び前記少なくとも１つの変更されたニューラルネットワークのうちの各ニューラルネットワークを評価することと、
前記評価に基づき、前記元のニューラルネットワーク及び前記少なくとも１つの変更されたニューラルネットワークのうちのどのニューラルネットワークが最も正確であるかを判断することと
を含む、
コンピュータプログラム。
【請求項１７】
前記元のニューラルネットワークは、
前記複数のノードのうちの複数のノードで構成された複数のレイヤであって、各レイヤは、データセットの時間枠の入力値を、前記複数のレイヤのうちの後続レイヤに連続して転送し、前記データセットは、時系列のものであり、前記複数のノードで構成された複数のレイヤは、
前記複数のノードのうちの入力ノードの第１レイヤであって、前記入力ノードは、前記データセットの現在の時間枠の入力値を受信する、入力ノードの第１レイヤと、
複数の中間レイヤであって、各中間レイヤにおける各ノードは、前のレイヤからの値を、後続又は共有レイヤにおけるノードに転送する、複数の中間レイヤとを含む、複数のノードで構成された複数のレイヤと、
各ＦＩＦＯキューに対応する複数の重み値であって、各重み値は、シナプス前のノードからシナプス後のノードへ伝播する値を取得するよう、前記対応するＦＩＦＯキューにおける各値に適用される、複数の重み値と
を含む、請求項１６に記載のコンピュータプログラム。
【請求項１８】
前記動作は、前記元のニューラルネットワークを前記最も正確なニューラルネットワークに置換することをさらに含む、請求項１６に記載のコンピュータプログラム。
【請求項１９】
複数の先入れ先出し（ＦＩＦＯ）キューを有する元のニューラルネットワークを取得するよう動作可能な取得部であって、各ＦＩＦＯキューは、前記元のニューラルネットワークの複数のノードのうちの一対のノードの間に位置する、取得部と、
少なくとも１つの変更されたニューラルネットワークを生成するよう動作可能な生成部であって、前記変更されたニューラルネットワークは、長さが変更された少なくとも１つのＦＩＦＯキューを有する元のニューラルネットワークに等しい、生成部と、
前記元のニューラルネットワーク及び前記少なくとも１つの変更されたニューラルネットワークのうちの各ニューラルネットワークを評価するよう動作可能な評価部と、
前記評価に基づき、前記元のニューラルネットワーク及び前記少なくとも１つの変更されたニューラルネットワークのうちのどのニューラルネットワークが最も正確であるかを判断するよう動作可能な判断部と
を備える
装置。
【請求項２０】
前記元のニューラルネットワークは、
前記複数のノードのうちの複数のノードで構成された複数のレイヤであって、各レイヤは、データセットの時間枠の入力値を、前記複数のレイヤのうちの後続レイヤに連続して転送し、前記データセットは、時系列のものであり、前記複数のノードで構成された複数のレイヤは、
前記複数のノードのうちの入力ノードの第１レイヤであって、前記入力ノードは、前記データセットの現在の時間枠の入力値を受信する、入力ノードの第１レイヤと、
複数の中間レイヤであって、各中間レイヤにおける各ノードは、前のレイヤからの値を、後続又は共有レイヤにおけるノードに転送する、複数の中間レイヤとを含む、複数のノードで構成された複数のレイヤと、
各ＦＩＦＯキューに対応する複数の重み値であって、各重み値は、シナプス前のノードからシナプス後のノードへ伝播する値を取得するよう、前記対応するＦＩＦＯキューにおける各値に適用される、複数の重み値と
を含む、請求項１９に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ニューラルネットワークの正則化に関する。
【０００２】
より具体的には、本発明は、先入れ先出し（ＦＩＦＯ）キューを有するニューラルネットワークの正則化に関する。
【０００３】
ディープニューラルネットワークは、多数の画像認識及び他の機械学習タスクにおける学習のために成功に適用されてきた。
【０００４】
しかしながら、ニューラルネットワークベースのモデルは概して、大量の利用可能なラベル付きのデータセットを有するシナリオによく適している。レイヤの大きさ又は数の面でニューラルネットワークの複雑さを増大することによって、優れたレベルの能力が達成できる。限られた量の訓練サンプルの存在下で訓練が行われた場合、このことは全般的な過学習又は汎化の問題をもたらし得るという警告がされている。結果として、Ｌ２罰則項の追加、ベイジアン法、訓練データへのノイズの追加などのような、ニューラルネットワークの正則化のための広範囲の技術が、開発されてきた。
【０００５】
より近年では、ディープアーキテクチャを有するニューラルネットワークを中心とした、Ｎ．Ｓｒｉｖａｓｔａｖａ，Ｇ．Ｈｉｎｔｏｎ，Ａ．Ｋｒｉｚｈｅｖｓｋｙ，Ｉ．Ｓｕｔｓｋｅｖｅｒ，ａｎｄ  Ｒ．Ｓａｌａｋｈｕｔｄｉｎｏｖ，"Ｄｒｏｐｏｕｔ：Ａ  ｓｉｍｐｌｅ  ｗａｙ  ｔｏ  ｐｒｅｖｅｎｔ  ｎｅｕｒａｌ  ｎｅｔｗｏｒｋｓ  ｆｒｏｍ  ｏｖｅｒｆｉｔｔｉｎｇ"，Ｔｈｅ  Ｊｏｕｒｎａｌ  ｏｆ  Ｍａｃｈｉｎｅ  Ｌｅａｒｎｉｎｇ  Ｒｅｓｅａｒｃｈ，ｖｏｌ．１５，ｎｏ．１，ｐｐ．１９２９−１９５８，２０１４に開示されたようなドロップアウト技術、及び、Ｌ．Ｗａｎ，Ｍ．Ｚｅｉｌｅｒ，Ｓ．Ｚｈａｎｇ，Ｙ．Ｌ．Ｃｕｎ，ａｎｄ  Ｒ．Ｆｅｒｇｕｓ，"Ｒｅｇｕｌａｒｉｚａｔｉｏｎ  ｏｆ  ｎｅｕｒａｌ  ｎｅｔｗｏｒｋｓ  ｕｓｉｎｇ  ｄｒｏｐｃｏｎｎｅｃｔ，"ｉｎ  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ３０ｔｈ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｍａｃｈｉｎｅ  Ｌｅａｒｎｉｎｇ（ＩＣＭＬ−１３），２０１３，ｐｐ．１０５８−１０６６に開示されたようなドロップコネクト技術が、各訓練サンプル上の特徴検出子の一部をランダムに省略することにより過学習を防止する方法として、提案されてきた。具体的には、ドロップアウトは、フォワードパス中に各レイヤにおける活性化（又はユニット）の半分をランダムに削除し、次に、残りのユニットのみを通して誤差を逆伝播することを含む。これについて、ドロップコネクトは、活性化（ユニット）よりも、重みをランダムに省略することに汎化する。これらの技術は両方、完全に接続された標準ディープニューラルネットワークアーキテクチャの能力の著しく改善するものとして示されている。
【０００６】
近年、動的ボルツマンマシン（ＤｙＢＭ）と呼ばれる生成モデルが、２０１４年９月３０日に出願された日本特許番号第５９４３３５８号において紹介された。静的パターンの集合で訓練される従来のボルツマンマシンと違って、ＤｙＢＭは、時間的パターンシーケンスの教師なし学習のために設計されている。ＤｙＢＭは、生体のニューラルネットワークから、仮説及び観察により動機付けられ、スパイクタイミング（スパイク時間依存可塑性（ＳＴＤＰ））に基づき、的確な影響及び重み学習を可能にする。制限付きボルツマンマシン（ＲＢＭ）と違って、ＤｙＢＭは概して、具体的な隠れユニットを有しておらず、そのネットワークは、時間にわたっても展開されることができ、無限に多くのレイヤを可能にする。特定の環境において、ＤｙＢＭは、時間的パターンシーケンスを処理するレイヤにそれぞれが対応する隠れユニットのレイヤなどの隠れユニットを有してよい。さらに、ＤｙＢＭは、メモリユニットを有し、固定の長さの先入れ先出し（ＦＩＦＯ）キューの形態で実装されたユニット間で伝導遅延を有する、完全に接続された再帰型ニューラルネットワークとして、みなされ得る。シナプス前のニューロンに始まるスパイクが、このＦＩＦＯキューに沿って移動し、固定遅延後に、シナプス後のニューロンに到達する。ＦＩＦＯキューの長さは、最大遅延値を引いたものに等しい。この全く新規なアーキテクチャのＤｙＢＭに起因し、既存の正則化方法を適用することが、困難となり、又は、より良好な汎化能力をもたらさない。
【発明の概要】
【０００７】
本発明の第１の態様によると、複数の先入れ先出し（ＦＩＦＯ）キューを有する元のニューラルネットワークを取得する段階であって、各ＦＩＦＯキューが、元のニューラルネットワークの複数のノードのうちの一対のノード（本明細書においてはニューロン又はユニットとも称される）の間に位置する、元のニューラルネットワークを取得する段階と、少なくとも１つの変更されたニューラルネットワークを生成する段階であって、変更されたニューラルネットワークは、長さが変更された少なくとも１つのＦＩＦＯキューを有する元のニューラルネットワークに等しい、少なくとも１つの変更されたニューラルネットワークを生成する段階と、元のニューラルネットワーク及び少なくとも１つの変更されたニューラルネットワークのうちの各ニューラルネットワークを評価する段階と、当該評価に基づき、元のニューラルネットワーク及び少なくとも１つの変更されたニューラルネットワークのうちのどのニューラルネットワークが最も正確であるかを判断する段階とを備える方法が、提供される。
【０００８】
第１の態様は、任意のニューラルネットワークが、より良い予期精度を産み出すこと、及びＦＩＦＯキューに必要とされるメモリ容量を低減することによってより少ない計算資源を使用することを可能にしてよい。第１の態様はまた、当該方法を実装するプログラムと、当該プログラムを実行するコンピュータと、当該方法を実行する装置とを含む。
【０００９】
上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではない。これらの特徴群のサブコンビネーションもまた発明となり得る。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施形態に係る、ニューラルネットワーク正則化のための装置を示す。
【００１１】
【図２】本発明の実施形態に係る、動的ボルツマンマシン（ＤｙＢＭ）をニューラルネットワークの例として示す。
【００１２】
【図３】本発明の実施形態に係る、ＦＩＦＯキューを介してシナプス前のニューロンとシナプス後のニューロンとの間の接続を示す。
【００１３】
【図４】本発明の実施形態に係る、時系列データセット及び訓練データの例を示す。
【００１４】
【図５】本発明の実施形態に係る、ニューラルネットワークを正則化するための動作フローを示す。
【００１５】
【図６】本発明の実施形態に係る、変更されたニューラルネットワークを生成するための動作フローを示す。
【００１６】
【図７】本発明の実施形態に係る、ニューラルネットワークを評価するための動作フローを示す。
【００１７】
【図８】本発明の実施形態に係る、クラウドサービス利用のために構成されたコンピュータの例示的なハードウェア構成を示す。
【発明を実施するための形態】
【００１８】
以下、本発明の例示的な実施形態を説明する。例示的な実施形態は、特許請求の範囲に係る本発明を限定するものではなく、実施形態において説明されている特徴の組み合わせは、必ずしも本発明に不可欠なものとは限らない。
【００１９】
本発明の実施形態は、ＦＩＦＯキューを有するニューラルネットワークなどのニューラルネットワークの正則化された訓練を可能にしてよい。いくつかの実施形態において、訓練中に、ランダムなＦＩＦＯキューの長さが、ゼロに切り捨てられる。
【００２０】
図１は、本発明の実施形態に係る、ニューラルネットワーク正則化のための装置１００を示す。装置１００は、オンプレミス型アプリケーションを実行してそれを使用するクライアントコンピュータをホストするサーバコンピュータ又はメインフレームコンピュータなどのホストコンピュータであってよい。装置１００は、２つ以上のコンピュータを含むコンピュータシステムであってよい。代替的に、装置１００は、装置１００のユーザのためにアプリケーションを実行するパーソナルコンピュータであってよい。装置１００は、変更されたニューラルネットワークを生成し、かつ、ニューラルネットワークを評価することによって、ニューラルネットワークを正則化してよく、元のニューラルネットワーク及び変更されたニューラルネットワークのうちの最も正確なニューラルネットワークを判断する。
【００２１】
装置１００は、取得部１０２と、選択部１０６と切り捨て部１０７とを含み得る生成部１０４と、訓練部１０９と、入力部１１３と計算部１１４とを含み得る評価部１１１と、判断部１１６と、置換部１１８とを備えてよい。装置１００は、具現化されたプログラム命令を有するコンピュータ可読記憶媒体を備えるコンピュータプログラム製品であってよく、当該プログラム命令は、コンピュータにそれらの様々な部の動作を実行させるようにコンピュータにより実行可能である。代替的に、装置１００は、アナログ又はデジタルのプログラマブル回路、又はそれらの任意の組み合わせであってよい。装置１００は、通信を通して相互作用する物理的に分離されたストレージ又は回路から構成されてよい。
【００２２】
取得部１０２は、装置１００と通信するデータ格納からデータを受信してよい。例えば、取得部１０２は、複数の先入れ先出し（ＦＩＦＯ）キューを有する元のニューラルネットワークを取得するよう動作可能でよく、各ＦＩＦＯキューは、元のネットワーク１２０Ａのような元のニューラルネットワークの複数のノードのうちの一対のノードの間に位置する。取得部１０２は、そのようなデータ格納と直接通信してよく、又は、ネットワークにわたって有線又は無線通信を通して、コンピュータと通信するようにトランシーバを利用してよい。
【００２３】
生成部１０４は、元のニューラルネットワークから変更されたニューラルネットワークを生成してよい。例えば、生成部１０４は、少なくとも１つの変更されたニューラルネットワークを生成するよう動作可能でよく、変更されたニューラルネットワークは、変更されたニューラルネットワーク１２０Ｂのような、長さが変更された少なくとも１つのＦＩＦＯキューを有する元のニューラルネットワークに等しい。そのような例において、選択部１０６は、変更させる少なくとも１つのＦＩＦＯキューを選択してよく、切り捨て部１０７は、そのＦＩＦＯキューを指定された長さに切り捨ててよい。
【００２４】
訓練部１０９は、ニューラルネットワークの重みを調整し、又はその調整の補助をするよう、訓練サンプルを用いてニューラルネットワークを訓練してよい。
【００２５】
評価部１１１は、元のニューラルネットワーク及び少なくとも１つの変更されたニューラルネットワークのうちの各ニューラルネットワークを評価するよう動作可能でよい。例えば、評価部１１１は、その評価に基づき、各ニューラルネットワークに値を割り当ててよく、他のニューラルネットワークに割り当てられた値と比較する。入力部１１３は、テストデータセットを各ニューラルネットワークに入力してよく、計算部１１４は、予期される又は理想的な出力と比較された、ニューラルネットワークの実際の出力に基づき、割り当てられるべき値を計算してよい。
【００２６】
判断部１１６は、その評価に基づき、元のニューラルネットワーク及び少なくとも１つの変更されたニューラルネットワークのうちのどのニューラルネットワークが最も正確であるかを判断するよう動作可能でよい。例えば、判断部１１６は、元のニューラルネットワーク及び変更されたニューラルネットワークのうちのどのニューラルネットワークが最も高い割り当て値を有するかを判断してよい。
【００２７】
置換部１１８は、変更されたニューラルネットワークが元のニューラルネットワークより正確であるという判断に応じて、元のニューラルネットワークを変更されたニューラルネットワークに置換してよい。例えば、置換部１１８は、元のニューラルネットワークの代わりに、変更されたニューラルネットワークを指すようにポインタを更新してよい。元のニューラルネットワークが一旦、変更されたニューラルネットワークに置換されると、変更されたニューラルネットワークは、長さが変更された少なくとも２つのＦＩＦＯキューを有するニューラルネットワークのような、さらなる変更されたニューラルネットワークに置換されてよい。
【００２８】
装置１００のような装置が、ＤｙＢＭに有用であり得る。装置１００はまた、発信ノードから目的地ノードへデータを伝播するためのノード間でＦＩＦＯキューを有する任意のニューラルネットワークモデルのために使用され得る。ＤｙＢＭは、時間的シーケンスの教師なし学習のために使用されてよく、当該装置向けの場合により良い汎化された能力を示してよい。標準のボルツマンマシンと違って、ＤｙＢＭは、時系列のパターンを用いて訓練されてよい。具体的には、ＤｙＢＭは、時系列の履歴値があるとし、時系列の次の値（パターン）の条件付き確率を与える。この条件付き確率は、その時系列の履歴全体に依存し得、ＤｙＢＭは従って、時系列の生成モデルとして反復的に使用されてよい。ＤｙＢＭはまた、少なくとも１つの訓練データシーケンスを用いて訓練された後であるとし、時系列のパターンの発生の条件付き確率を推定するために使用され得る。
【００２９】
ＤｙＢＭは、複数のユニットのレイヤを有するＢＭから定義されてよく、ここで、１つのレイヤが、時系列の直近の値を表し、残りのレイヤは、時系列の履歴値を表す。直近の値は、履歴値があるとし、条件付きで互いから独立する。ＤｙＢＭは、無数のレイヤを有するそのようなＢＭに等しくてよく、これにより、直近の値は、時系列の履歴全体に依存し得る。ＤｙＢＭは、履歴値があるとし、次の値の条件付き分布に関して与えられた時系列の尤度が最大化されるそのような方式で訓練されてよい。ＢＭと同様に、ＤｙＢＭは、人工ニューロンのネットワークから構成されてよい。各ニューロンは、ＤｙＢＭのパラメータに依存する確率の分布に従って０又は１の２進値を取り得る。ＢＭと違って、ＤｙＢＭの値は、その前値に依存する方式で、時間にわたって変更してよい。すなわち、ＤｙＢＭは、多次元系列の２進値を確率的に生成してよい。ＤｙＢＭは、時間的パターンシーケンスを処理するレイヤにそれぞれが対応する隠れノードのレイヤのような隠れノードを有してよい。隠れノードはまた、ＦＩＦＯキューを通して他のノードに接続される。各隠れレイヤは、１つ又は複数の隠れノードを含んでよい。入力レイヤにおける各ノードは、時系列入力データを格納してよい。しかしながら、隠れレイヤにおける各隠れノードは、サンプリングされた値を格納してよい。時系列入力データに加えて隠れノードからの入力を用いることによって、表現能力及び学習能力が改善されてよい。そのようなＤｙＢＭにおいて、１つ又は２つの隠れノードの間にある任意のＦＩＦＯキューはまた、正則化処理を通して切り捨ての対象となり得る。
【００３０】
従来のＢＭにおける学習は、ヘブ則（Ｈｅｂｂｉａｎ  ｆｏｒｍｕｌａｔｉｏｎ）に基づき得るが、多くの場合は、コントラスティブダイバージェンス法のようなサンプリングベースの方法に近似する。この則において、時間の概念が大きく欠けている。ＤｙＢＭにおいて、生体のネットワークと同様に、学習は、スパイクタイミングに依存し得る。このことは、スパイク時間依存可塑性又はＳＴＤＰと呼ばれ、シナプス前のニューロンのスパイクがシナプス後のニューロンのスパイクに先立った場合、シナプスが強化され（長期増強（ＬＴＰ））、時間の順序が逆となった場合、シナプスは弱化される（長期抑圧（ＬＴＤ））ことを記述する。ＤｙＢＭは、ＬＴＰ及びＬＴＤの特性を有する的確なオンライン学習則を使用してよい。
【００３１】
図２は、本発明の実施形態に係る、元のニューラルネットワーク１２０Ａのようなニューラルネットワークの例として、動的ボルツマンマシン（ＤｙＢＭ）２２０を示す。ＤｙＢＭ２２０は、複数のノードのうちの複数のノードのレイヤと、各ＦＩＦＯキューに対応する複数の重み値とを含んでよく、各レイヤは、時系列であるデータセットの時間枠の入力値を複数のレイヤのうちの後続レイヤへ連続して転送する。複数のノードのレイヤは、複数のノードのうちの入力ノード２２４のような入力ノードの第１レイヤ２２２と、複数の中間レイヤとを含み、入力ノードは、データセットの現在の時間枠の入力値を受信し、各中間レイヤにおける各ノードは、前のレイヤからの値を後続又は共有レイヤにおけるノードに転送し、各重み値は、シナプス前のノードからシナプス後のノードへ伝播する値を取得するよう、対応するＦＩＦＯキューにおける各値に適用される。
【００３２】
ＤｙＢＭ２２０は、無限に多くのユニットのレイヤを有するＢＭに等しくてよい。ＤｙＢＭは、「０番目」のレイヤにおけるニューロン間に重みを有さない。ＤｙＢＭ２２０の各レイヤは、共通の数のニューロンを有し、ＤｙＢＭ２２０におけるバイアス及び重みは、特定の方式において異なるニューロンの間で共有されてよい。
【００３３】
形式上、ＤｙＢＭ２２０は、−Ｔ＋１から０のＴのレイヤを有するＢＭであってよく、ここで、Ｔは正の整数又は無限大である。
仮に、
【数１】
2018041367.tif 000003
であるとし、ここで、
【数２】
2018041367.tif 000004
は、ｔ番目のレイヤにおけるニューロンの値であり、その値は、時間ｔにおける値とみなされ得る。０番目のレイヤにおけるＮ個のユニットは、関連バイアスｂを有し得る。
任意の、
【数３】
2018041367.tif 000005
に対して、
【数４】
2018041367.tif 000006
は、その（ｉ，ｊ）要素である、
【数５】
2018041367.tif 000007
が、時間−δにおけるｉ番目のユニットと任意のδに対する時間０におけるｊ番目のユニットとの間の重みを示すマトリックスを与える。この重みは順に、ＬＴＰ及びＬＴＤ構成要素に分けられてよい。各ニューロンは、固定常数であるＬ個のニューラル的確度トレースを格納してよい。
【数６】
2018041367.tif 000008
及び、
【数７】
2018041367.tif 000009
に対して、
【数８】
2018041367.tif 000010
は、時間ｔの直前におけるｊ番目のニューロンのｌ番目のニューラル的確度トレースである。これは、下記数式１に従って、より最近の値にはより重い重み付けで、そのニューロンの過去の値の加重和として、計算されてよい。
【００３４】
［数式１］
【数９】
2018041367.tif 000011
【００３５】
ここで、
【数１０】
2018041367.tif 000012
は、ｌ番目のニューラル的確度トレースに対する減衰率である。
各ニューロンはまた、より最近の値にはより重い重み付けで、伝導遅延であるｄｉ，ｊ後にシナプス前のニューロンであるｉからニューロンｊに到達している値の加重和として、シナプス的確度トレースを格納してよい。すなわち、シナプス後のニューロンｊは、シナプス的確度トレースの固定常数であるＫを格納してよい。
【数１１】
2018041367.tif 000013
に対して、
【数１２】
2018041367.tif 000014
は、下記数式２に従って、時間ｔの直前におけるシナプス前のニューロンｉに対するニューロンｊのｋ番目のシナプス的確度トレースであってよい。
【００３６】
［数式２］
【数１３】
2018041367.tif 000015
【００３７】
ここで、
【数１４】
2018041367.tif 000016
は、ｋ番目のシナプスの的確度トレースに対する減衰率である。両方の的確度トレースは、下記数式３及び数式４に従って、以下のように、やがてローカルに更新される。
【００３８】
［数式３］
【数１５】
2018041367.tif 000017
【００３９】
［数式４］
【数１６】
2018041367.tif 000018
【００４０】
【数１７】
2018041367.tif 000019
及び、
【数１８】
2018041367.tif 000020
に対する、並びにｊに接続されるニューロンｉに対するものである。
ＤｙＢＭ２２０に対して、
【数１９】
2018041367.tif 000021
は、
【数２０】
2018041367.tif 000022
があるとし、ｘ（０）の条件付き確率であり得、ここでは、（−Ｔ，−１］のように間隔Ｉに対してｘＩを使用し、
【数２１】
2018041367.tif 000023
を示す。０番目のレイヤにおけるニューロンは、互いに重みを有さないので、この条件付き確率は、制限付きボルツマンマシンに類似する条件付き独立性の特性を有し得る。
【００４１】
ＤｙＢＭ２２０は、以下の意味において時系列のモデルとしてみなされ得る。具体的には、時系列の履歴である、
【数２２】
2018041367.tif 000024
があるとし、ＤｙＢＭ２２０は、時系列のｘ［０］である次の値の確率を、
【数２３】
2018041367.tif 000025
で与えてよい。無限レイヤのＤｙＢＭでは、次の値は、時系列の履歴全体に依存し得る。原則、無限レイヤのＤｙＢＭは、瞬間における時系列の値が、その瞬間に先立ったその値があるとし、条件付きで互いから独立であれば、長期依存性を有する任意の時系列をモデル化し得る。ＤｙＢＭ２２０により与えられた条件付き確率を用いることによって、長さＬのシーケンスの確率である、
【数２４】
2018041367.tif 000026
が、下記数式５により与えられる。
【００４２】
［数式５］
【数２５】
2018041367.tif 000027
【００４３】
ここでは任意に、
【数２６】
2018041367.tif 000028
として、
【数２７】
2018041367.tif 000029
を定義する。すなわち、対応する履歴がない場合、値は、ゼロに設定されてよい。
【００４４】
ＤｙＢＭ２２０のＳＴＤＰベースの学習則は、時系列の与えられたセット（Ｄ）の対数尤度が、
【数２８】
2018041367.tif 000030
の対数尤度の和を最大化することによって、最大化されるように得られる。
上記数式５を用いて、
【数２９】
2018041367.tif 000031
の対数尤度は、下記数式６に従って、以下の勾配を有してよい。
【００４５】
［数式６］
【数３０】
2018041367.tif 000032
【００４６】
概して、この勾配の演算は、大きいＴに関しては処理しにくい場合がある。しかしながら、特定の形式の重み共有を用いるＤｙＢＭ２２０において、的確で効率的な勾配の計算が可能であってよい。具体的には、Ｔ→∞の制限において、ニューラル及びシナプスの的確度トレースの式を用いて、ＤｙＢＭ２２０のパラメータは、下記数式７に従って、与えられたセットＤの対数尤度を最大化するオンラインの確率勾配則を用いて的確に算出されてよい。
【００４７】
［数式７］
【数３１】
2018041367.tif 000033
【００４８】
図３は、本発明の実施形態に係る、ＦＩＦＯキュー３２５を介して、ニューラル的確度トレース３２８を有するシナプス前のニューロン３２６と、シナプス的確度トレース３２９を有するシナプス後のニューロン３２４との間の接続を示す。
【００４９】
ＤｙＢＭの学習則は、シナプス前のニューロン３２６のような伝導遅延及びＦＩＦＯキュー３２５のようなメモリユニットから構成されるその構造に起因してＳＴＤＰの重要な特性の一部を表す。ニューロンは、シナプス前のニューロン３２６であるｉからのスパイクが、軸索に沿って移動し、一定の期間であるｄｉ，ｊからなる遅延後のシナプスを介して、シナプス後のニューロン３２４であるｊに到達するという方式で、別のニューロンに接続されてよい。ＦＩＦＯキュー３２５が、この伝導遅延を引き起こす。ＦＩＦＯキュー３２５は、最後の時間の単位ｄｉ，ｊ−１に対するシナプス前のニューロン３２６の値を格納してよい。各格納された値は、時間が１単位だけ増分した場合、キューの先頭に向けて１位置だけプッシュされてよい。シナプス前のニューロン３２６の値は従って、伝導遅延後に、シナプス後のニューロン３２４に与えられる。さらに、ＤｙＢＭは、過去のスパイクに関する情報を、メモリユニットに格納されるニューラル的確度トレース３２８及びシナプス的確度トレース３２９に集める。各ニューロンは、バイアスと呼ばれる学習可能なパラメータに関連付けられる。シナプス前のニューロン３２６とシナプス後のニューロン３２４との間のシナプスの強度は、ＬＴＰ及びＬＴＤ構成要素にさらに分けられ得る、重みと呼ばれる学習可能なパラメータにより表される。
【００５０】
図４は、本発明の実施形態に係る、時系列のデータセット４３０及び訓練データ４３１−４３３の例を示す。図４において、横軸は、時間を示す。図４は、訓練部１０９のような訓練部が、訓練中にニューラルネットワークにより訓練データとして使用された時系列データの期間より長い期間Ｌを有する時系列データを使用する場合の例を図示する。
【００５１】
訓練部は、時点１から時点Ｔまで、時系列データの時系列データセグメントを第１訓練データとして用いて、第１の訓練フェーズを実行してよい。具体的には、訓練部は、時点Ｔにおけるデータを、１つの時点における各入力値である、
【数３２】
2018041367.tif 000034
として用いて、かつ、時点１から時点Ｔ−１までの時系列データを、入力データシーケンスである、
【数３３】
2018041367.tif 000035
（すなわち、履歴）として用いて、第１の訓練フェーズを実行してよい。
【００５２】
次に、訓練部は、時点２から時点Ｔ＋１までの時系列データの時系列データセグメントを、第２の訓練データとして用いて、第２の訓練フェーズを実行してよい。訓練部は、時点Ｔ＋Ｄ−１までのＤ個のデータ項目のそれぞれを、各時点における入力値である、
【数３４】
2018041367.tif 000036
として、連続して使用してよい。この場合、訓練部は、間隔を、時点１から時点Ｔ−１までの間隔から１つの時点だけシフトすることによって、時点Ｄから時点Ｔ＋Ｄ−２までのＤ個の時系列データセグメントのそれぞれを、履歴として使用してよい。訓練部は、この方式で、Ｄ個の入力値である、
【数３５】
2018041367.tif 000037
及び対応するＤ個の履歴に対して、パラメータをＤ回、調整してよい。すなわち、訓練部は、学習が０からＤ−１の範囲におけるｔに対して実行され得る降下する確率勾配を使用してよい。
【００５３】
代替的に、訓練部は、Ｄ個の時系列データセットを取得し、期間Ｌの時間シーケンスのデータセグメントから複数の訓練データセットを生成し、Ｄのレイヤに対して学習をまとめて実行してよい。
【００５４】
図５は、本発明の実施形態に係る、ニューラルネットワークを正則化するための動作フローを示す。動作フローは、ＤｙＢＭ、ＦＩＦＯキューを有する一般的なニューラルネットワークなどのようなニューラルネットワークを、正則化を用いて訓練し、次に、テストデータセットに対する改善された予期のためにの最良の実行モデルを選択する方法を提供してよい。動作は、装置１００のような装置により実行されてよい。
【００５５】
Ｓ５４０において、取得部１０２のような取得部が、元のニューラルネットワーク１２０Ａのような元のニューラルネットワークを取得し得る。例えば、取得部は、複数の先入れ先出し（ＦＩＦＯ）キューを有する元のニューラルネットワークを取得してよく、各ＦＩＦＯキューは、元のニューラルネットワークの複数のノードのうちの一対のノードの間に位置する。元のニューラルネットワークがＤｙＢＭであるいくつかの実施形態において、動作Ｓ５４０は、特定の範囲内においてランダムに選択されたニューロンを接続するＦＩＦＯキューに対する遅延の長さでＤｙＢＭパラメータを初期化することを含んでよい。各ニューロンは、１つの送出するＦＩＦＯキュー及び１つの到来するＦＩＦＯキューといった２つのＦＩＦＯキューを有する別のニューロンに接続される。元のニューラルネットワークのＦＩＦＯキューの遅延の長さ又は深さは、同一又は異なるサイズであってよく、予め定められた又はランダムなサイズであってよい。元のニューラルネットワークはまた、図５に示されている方法により生成された複数のニューラルネットワークのような複数のニューラルネットワークのうちから選択されるニューラルネットワークであってよい。
【００５６】
Ｓ５５０において、生成部１０４のような生成部が、変更されたニューラルネットワーク１２０Ｂのような１つ又は複数の変更されたニューラルネットワークを生成してよい。例えば、生成部は、少なくとも１つの変更されたニューラルネットワークを生成してよく、変更されたニューラルネットワークは、長さが変更された少なくとも１つのＦＩＦＯキューを有する元のニューラルネットワークに等しい。
【００５７】
Ｓ５４２において、訓練部１０９のような訓練部が、元のニューラルネットワーク及び少なくとも１つの変更されたニューラルネットワークのうちの各ニューラルネットワークを訓練してよい。動作Ｓ５５０及びＳ５４２は両方、訓練フェーズ毎に一度発生してよく、訓練は、データセットの各サンプルに対する訓練フェーズを含む。このことは、元のニューラルネットワークがＤｙＢＭである場合に有用であってよく、データセットが時系列のものであり、各訓練フェーズが、その時系列における少なくとも１つの時間枠に対応する。各訓練フェーズ中、変更されたニューラルネットワークが生成され、各ニューラルネットワークは、訓練サンプルを用いて訓練される。換言すれば、生成する段階は、各訓練フェーズ中、少なくとも１つの変更されたニューラルネットワークのうちの変更されたニューラルネットワークを生成する段階を含む。最終的に、ニューラルネットワークは、最も正確なニューラルネットワークを判断するよう評価されるであろう。しかしながら、評価する段階及び判断する段階は、訓練周期又はエポックとして知られている、訓練フェーズの閾値後に、実行されてよい。
【００５８】
Ｓ５４４において、訓練部は、エポックが完了したかを判断してよい。例えば、エポックが１００個のフェーズである場合、次に訓練部は、訓練の１００個のフェーズが、開始時から又は前の訓練周期の完了から、実行されていたかを判断してよい。エポックの長さは、重みの決定を可能にするために一般的に必要とされる訓練フェーズの数に基づき、判断されてよい。エポックの長さは、平均に基づき固定され得、又は、重みの変更度（ｖｏｌａｔｉｌｉｔｙ）に基づき変動してよい。エポックが完了していない場合、次に処理は、動作Ｓ５５０に戻り、別の変更されたニューラルネットワークを生成し、次に、ニューラルネットワークが次の訓練サンプルを用いて訓練されるＳ５４２に戻る。エポックが完了した場合、次に処理は、Ｓ５６０へと進む。１つより多くの変更されたニューラルネットワークが、各訓練フェーズ中に生成されてよく、各エポックに対してより正確なニューラルネットワークを生成する尤度を増加し得るが、より多くの計算資源を要求してよく、及び／又はより多くの時間を要求してよい。
【００５９】
Ｓ５６０において、評価部１１１のような評価部が、元のニューラルネットワーク及び少なくとも１つの変更されたニューラルネットワークのうちの各ニューラルネットワークを評価してよい。
【００６０】
Ｓ５４６において、判断部１１６のような判断部が、その評価に基づき、元のニューラルネットワーク及び少なくとも１つの変更されたニューラルネットワークのうちのどのニューラルネットワークが最も正確であるかを判断してよい。
【００６１】
Ｓ５４８において、置換部１１８のような置換部が、元のニューラルネットワークを、最も正確なニューラルネットワークに置換してよい。例えば、置換部は、最も正確なニューラルネットワークの位置を識別するよう、ポインタを更新してよい。動作Ｓ５６０、Ｓ５４６、及びＳ５４８は、全ての訓練周期が使い尽くされるまで、全てのエポックにおいて繰り返されてよい。
【００６２】
従って、Ｓ５４９において、訓練部は、全ての訓練周期が完了したかを判断する。訓練周期が完了していない場合、次に処理は、別の変更されたニューラルネットワークが生成され、別のエポックが開始するＳ５５０に戻る。しかしながら、Ｓ５４８において元のニューラルネットワークが変更されたニューラルネットワークに置換された場合、次に、訓練周期では、元のニューラルネットワークの代わりに、その変更されたニューラルネットワークを使用するであろう。換言すれば、元のニューラルネットワークが一旦、最も正確なニューラルネットワークに置換されていたら、後続の生成、評価、及び判断する動作は、元のニューラルネットワークの代わりに、最も正確なニューラルネットワークに対して実行される。場合によっては、最も正確なニューラルネットワークが依然として元のニューラルネットワークであることがあり、又は、前の訓練周期中に最も正確であると発見された同一のニューラルネットワークであることもある。それらの場合、Ｓ５４８において、置換又はポインタの更新は、実際に発生しない場合がある。
【００６３】
この動作フローを適用することによって、正則化された最良の実行ニューラルネットワークは、取得されてよい。この実施形態において、最良の実行ニューラルネットワークは実質的に、切り捨て手順から残存した全てのＦＩＦＯキューから構成されてよい。各訓練周期において、新しい最も正確なニューラルネットワークが、サンプリングされて訓練されてよい。この手順の結果として、装置は、ニューラルネットワークのアンサンブルにわたって訓練してよく、元のニューラルネットワークを有効に正則化してよく、過学習を防止する。他の実施形態において、置換部は、最良の実行モデルを選択する代わりに、アンサンブルにわたってニューラルネットワークを平均してよい。
【００６４】
図６は、本発明の実施形態に係る、変更されたニューラルネットワークを生成するための動作フローを示す。この動作フローは、確率ｐを用いてランダムに選択されたＦＩＦＯキューに対して、それらのそれぞれの遅延値を指定された長さに設定することによって、ＦＩＦＯキューの長さを、指定された長さに切り捨てるための方法を提供してよい。それらの動作は、生成部１０４のような生成部により実行されてよい。
【００６５】
動作フローは、元のニューラルネットワークが取得されると、Ｓ６４０から開始する。
【００６６】
Ｓ６５２において、確率ｐを有する確率変数ｒが、生成部により生成されてよい。
【００６７】
Ｓ６５３において、選択部１０６のような選択部が、与えられたＦＩＦＯキューを選択するかを判断する。換言すれば、生成する段階は、元のニューラルネットワークにおける複数のＦＩＦＯキューのうちから、変更させる少なくとも１つのＦＩＦＯキューを選択する段階を含む。例えば、選択部は、確率ｐを有するベルヌーイ分布から、Ｂｅｒｎｏｕｌｌｉ（ｐ）により確率変数ｒを選択してよい。ｒ＝１の場合、次に処理は、段階６５５を飛ばし、元の最大遅延（ＦＩＦＯキューの長さ）が維持される。そうでなければ、ｒが他の任意の数に等しい場合、次に処理は、Ｓ６５５へ進む。換言すると、選択する段階は、確率変数に基づく。多くの実施形態において、ｐは、各ＦＩＦＯキューが５０％の切り捨てられる確率を有するように、０．５に設定されてよいが、他のｐ値も可能である。切り捨てるようにＦＩＦＯキューをランダムに選択する多くの他の方法が、代わりに使用されてよい。
【００６８】
Ｓ６５５において、切り捨て部１０７のような切り捨て部が、ＦＩＦＯキューを切り捨ててよい。換言すれば、生成する段階は、少なくとも１つのＦＩＦＯキューを、指定された長さに切り捨てる段階をさらに含む。例えば、切り捨て部は、ＦＩＦＯキューの長さをゼロに切り捨ててよい。ＦＩＦＯキューの長さがゼロである場合、的確度トレースは、シナプス前のニューロン（又は発信ノード）の、その前値を含まない現在の値に基づき計算されてよい。別の例において、切り捨て部は、ＦＩＦＯキューの長さが最小サイズ（例えば、０又は１）より小さくならない限り、ＦＩＦＯキューの長さから予め定められたサイズ（例えば、１）を減じることによって、ＦＩＦＯキューの長さを減少させてよい。また別の例において、切り捨て部は、ＦＩＦＯキューの新しい長さをランダムに生成してよい。他の実施形態において、装置は、長さを減少するだけではなく、長さを増加することによっても、ＦＩＦＯキューの長さを変更してよい。
【００６９】
Ｓ６５７において、生成部は、全てのＦＩＦＯキューが選択の対象になっていたかを判断する。最後のＦＩＦＯキューが選択の対象になっていない場合、次に動作フローは、Ｓ６５８へ進み、そこで、生成部は進んで、Ｓ６５２に戻ることによって、ニューラルネットワークにおける次のＦＩＦＯキューを考慮する。最後のＦＩＦＯキューが選択の対象となっていた場合、次に動作フローは、Ｓ６４２へ進み、ニューラルネットワークを訓練する。
【００７０】
いくつかの実施形態において、切り捨て部は、選択されたＦＩＦＯキューを、他の固定された量に、又は可変な量により、切り捨ててよい。他の実施形態において、ｐの値は、訓練フェーズにより、訓練周期により、等など、変動してよい。各訓練フェーズで複数の変更されたニューラルネットワークが生成される実施形態において、与えられたフェーズにおいて生成された各変更されたニューラルネットワークは、異なるｐの値を用いて生成されてよい。変更されたニューラルネットワークを生成する方法により、元のニューラルネットワークの技術的に有限数の可能な変動が存在するので、特定の実施形態は、十分な計算資源及び／又は時間があるとし、各訓練フェーズ又は訓練周期に対して、各可能性を計算し、全ての可能な変更されたニューラルネットワークを生成する。代替的な実施形態は、各訓練フェーズ又は訓練周期に対して、均一に分布する可能な変更されたネットワークの一部を生成してよい。
【００７１】
図７は、本発明の実施形態に係る、ニューラルネットワークを評価するための動作フローを示す。この動作フローは、その精度に対応する値を有する各ニューラルネットワークを提供してよい。この動作フローは、評価部１１１のような評価部により実行されてよい。
【００７２】
動作フローは、エポックが完了しているＳ７４４から開始してよい。Ｓ７６２において、入力部１１３のような入力部が、データセットをニューラルネットワークに入力してよい。入力されているデータセットに応じて、ニューラルネットワークは、データセットを出力してよい。ニューラルネットワークがＤｙＢＭである場合、出力されたデータセットは、入力されたデータセットの前のデータがあるとし、各ノード（又は入力レイヤにおける各ノード）の尤度のセットを含んでよい。Ｓ７６４において、計算部１１４のような計算部が、出力の分布に関する入力されたデータセットの負の対数尤度（ＴＮＬ）を計算してよい。また、入手できない場合、計算部は、訓練サンプルから時間パターンの真の分布に関する負の対数尤度（ＯＮＬ）を計算してよい。換言すれば、ニューラルネットワークの出力の分布とデータセットの真の分布との間の差を計算する段階は、出力の分布及び真の分布の負の対数尤度を計算する段階を含む。Ｓ７６６において、計算部は、ＯＮＬとＴＮＬとの間の差を計算してよい。例えば、ＯＮＬとＴＮＬとの間の差は、他のニューラルネットワークの精度と比較する値を産み出してよい。Ｓ７６８において、評価部は、ＴＮＬがまだ計算されていないいかなるニューラルネットワークが存在するかを判断する。そのようなニューラルネットワークが存在する場合、次に動作フローは、Ｓ７６９へ進み、ここで、評価部は進んで、Ｓ７６２に戻ることによって、次のニューラルネットワークを考慮する。最後のニューラルネットワークにＴＮＬ値が割り当てられていた場合、次に動作フローはＳ７４６へ進み、ニューラルネットワークを訓練する。換言すれば、元のニューラルネットワーク及び少なくとも１つの変更されたニューラルネットワークのうちの各ニューラルネットワークを評価する段階は、データセットをニューラルネットワークに入力する段階と、ニューラルネットワークの出力の分布とデータセットの真の分布との間の差を計算する段階とを含む。
【００７３】
いくつかの実施形態において、各訓練サンプル及び現在の訓練周期に対して、訓練部は、完了していた訓練フェーズ数の閾値後に、時間的シーケンスのパターンを予期するために、前に学習した各ニューラルネットワークを検証してよい。次に、計算部は、訓練されたＤｙＢＭにより定義された分布に関する訓練（又は検証）データの負の対数尤度（ＴＮＬ）を計算してよい。計算部は、ＯＮＬとＴＮＬとの間の差、クロスエントロピー、又は任意の他の適切な能力測定を計算することによって、能力評価測定を更新してよい。置換部は、これまでの最良精度を有する学習されたニューラルネットワークに向けて指すよう、最良のモデルポインタを更新してよい。最終的に、（全てのパラメータが固定された）最良の実行モデルが、最終テストのために、訓練及び検証処理から選択されてよい。
【００７４】
上述した装置は、多次元の時間的パターンシーケンスの生成モデルを学習するために特に適したものであってよい。たとえ比較的小さい訓練及びテストデータセットのものであっても、装置は、良好な汎化された能力を産み出すよう、過学習を防止してよい。特定の応用において、ＤｙＢＭの構造の独自性に起因して、ＦＩＦＯキューの長さをランダムに切り捨てることは、シナプス前のニューロンからシナプス後のニューロンまでのスパイクのメモリを短縮することによって、ＤｙＢＭのスパイクダイナミクスにおける変化をもたらし得る。実験結果は、ＦＩＦＯキューの長さの切り捨ては、任意のニューラルネットワークがより良い予期精度を産み出すことを可能にすること、及び、ＦＩＦＯキューに必要とされるメモリ容量を低減することによってより少ない計算資源を用いることで、他の状態の当技術分野の方法の性能を著しく上回ることを示している。
【００７５】
図８は、本発明の実施形態に係る、クラウドサービス利用のために構成されたコンピュータの例示的なハードウェア構成を示す。コンピュータ８００にインストールされるプログラムが、コンピュータ８００に、本発明の実施形態の複数の装置、又はそれらの１つ又は複数の（モジュール、構成要素、要素等を含む）部に関連付けられる動作を実行させ、又はそれらとして機能させてよく、及び／又は、コンピュータ８００に、本発明の実施形態の複数の処理、又はそれらの複数の段階を実行させてよい。そのようなプログラムは、コンピュータ８００に、本明細書にて説明されているフローチャート及びブロック図のブロックの一部又は全てに関連付けられている特定の動作を実行させるよう、ＣＰＵ８００−１２により実行されてよい。
【００７６】
本実施形態に係るコンピュータ８００は、ＣＰＵ８００−１２と、ＲＡＭ８００−１４と、グラフィックスコントローラ８００−１６と、ディスプレイデバイス８００−１８とを含み、それらは、ホストコントローラ８００−１０により相互に接続される。コンピュータ８００はまた、通信インタフェース８００−２２、ハードディスクドライブ８００−２４、ＤＶＤ−ＲＯＭドライブ８００−２６、及びＩＣカードドライブなどの入出力部を含み、それらは、入出力コントローラ８００−２０を介してホストコントローラ８００−１０に接続される。コンピュータはまた、ＲＯＭ８００−３０及びキーボード８００−４２などのレガシ入出力部を含み、それらは、入出力チップ８００−４０を通して入出力コントローラ８００−２０と接続される。
【００７７】
ＣＰＵ８００−１２は、ＲＯＭ８００−３０及びＲＡＭ８００−１４に格納されるプログラムに従って動作し、それにより、各ユニットを制御する。グラフィックスコントローラ８００−１６は、ＣＰＵ８００−１２により生成された画像データを、ＲＡＭ８００−１４に又はそれ自体に提供されるフレームバッファ又は同様のもの上で取得し、その画像データをディスプレイデバイス８００−１８上で表示させる。
【００７８】
通信インタフェース８００−２２は、ネットワーク８００−５０を介して他の電子デバイスと通信する。ハードディスクドライブ８００−２４は、コンピュータ８００内のＣＰＵ８００−１２により使用されるプログラム及びデータを格納する。ＤＶＤ−ＲＯＭドライブ８００−２６は、ＤＶＤ−ＲＯＭ８００−０１からプログラム又はデータを読み取り、ＲＡＭ８００−１４を介して、それらのプログラム又はデータをハードディスクドライブ８００−２４に提供する。ＩＣカードドライブは、ＩＣカードからプログラム及びデータを読み取り、及び／又は、ＩＣカードにプログラム及びデータを書き込む。
【００７９】
ＲＯＭ８００−３０は、活性化の時間においてコンピュータ８００により実行されるブートプログラム又は同様のもの、及び／又は、コンピュータ８００のハードウェアに依存するプログラムを格納する。入出力チップ８００−４０はまた、パラレルポート、シリアルポート、キーボードポート、マウスポート、及び同様のものを介して、様々な入出力部を入出力コントローラ８００−２０に接続してよい。
【００８０】
プログラムは、ＤＶＤ−ＲＯＭ８００−０１又はＩＣカードなどのコンピュータ可読媒体により提供される。プログラムは、コンピュータ可読媒体から読み取られ、コンピュータ可読媒体の例でもあるハードディスクドライブ８００−２４、ＲＡＭ８００−１４、又はＲＯＭ８００−３０にインストールされ、ＣＰＵ８００−１２により実行される。これらのプログラムにおいて記述される情報処理は、コンピュータ８００に読み取られ、プログラムと上述の様々な種類のハードウェア資源との間の協働をもたらす。装置又は方法は、コンピュータ８００の使用に従って動作又は情報処理を実現することによって構成されてよい。
【００８１】
例えば、コンピュータ８００と外部のデバイスとの間の通信が実行された場合、通信プログラムに記述されている処理に基づき、ＣＰＵ８００−１２は、通信インタフェース８００−２２に通信処理を命令するよう、ＲＡＭ８００−１４上に搭載された通信プログラムを実行してよい。通信インタフェース８００−２２は、ＣＰＵ８００−１２の制御下、ＲＡＭ８００−１４、ハードディスクドライブ８００−２４、ＤＶＤ−ＲＯＭ８００−０１、又はＩＣカードなどの記録媒体に提供されている送信バッファ領域上に格納された送信データを読み取り、その読み取られた送信データをネットワーク８００−５０に送信し、又は、ネットワーク８００−５０から受信された受信データを、記録媒体上に提供されている受信バッファ領域又は同様のものに書き込む。
【００８２】
加えて、ＣＰＵ８００−１２は、ハードディスクドライブ８００−２４、ＤＶＤ−ＲＯＭドライブ８００−２６（ＤＶＤ−ＲＯＭ８００−０１）、ＩＣカードなどのような外部記録媒体に格納されているファイル又はデータベースの全て又は必要な部分を、ＲＡＭ８００−１４に読み取らせてよく、ＲＡＭ８００−１４上でデータに対して様々な種類の処理を実行してよい。ＣＰＵ８００−１２は次に、処理されたデータを外部記録媒体に書き戻してよい。
【００８３】
様々な種類のプログラム、データ、テーブル、及びデータベースなどの様々な種類の情報は、情報処理を行うべく、記録媒体に格納されてよい。ＣＰＵ８００−１２は、ＲＡＭ８００−１４から読み取られたデータに対して、本開示にわたって説明されてプログラムの命令シーケンスにより指定されている様々な種類の動作、情報の処理、条件判断、条件分岐、無条件分岐、情報の検索／置換などを含む様々な種類の処理を実行してよく、その結果をＲＡＭ８００−１４に書き戻す。加えて、ＣＰＵ８００−１２は、記録媒体において、ファイル、データベースなどにおける情報を検索してよい。例えば、第１の属性の属性値を有するそれぞれが第２の属性の属性値に関連付けられている複数のエントリが記録媒体に格納されている場合、ＣＰＵ８００−１２は、複数のエントリのうちから、その第１の属性の属性値が指定された条件に一致するエントリを検索し得、そのエントリに格納されている第２の属性の属性値を読み取り、それにより、予め定められた条件を満たす第１の属性に関連付けられている第２の属性の属性値を取得する。
【００８４】
上述のプログラム又はソフトウェアモジュールは、コンピュータ８００上の又はその付近のコンピュータ可読媒体に格納されてよい。加えて、専用通信ネットワーク又はインターネットに接続されているサーバシステムに提供されるハードディスク又はＲＡＭなどの記録媒体が、コンピュータ可読媒体として、使用されてよく、それにより、ネットワークを介して、プログラムをコンピュータ８００に提供する。
【００８５】
本発明は、システム、方法、及び／又はコンピュータプログラム製品であってよい。コンピュータプログラム製品は、プロセッサに本発明の複数の態様を実行させるコンピュータ可読プログラム命令を有する一（又は複数の）コンピュータ可読記憶媒体を含んでよい。
【００８６】
コンピュータ可読記憶媒体は、命令実行デバイスによる使用のための命令を保持及び格納し得る有形デバイスであってよい。コンピュータ可読記憶媒体は、例えば、電子ストレージデバイス、磁気ストレージデバイス、光学ストレージデバイス、電磁ストレージデバイス、半導体ストレージデバイス、又はそれらの任意の適した組み合わせであってよいが、これらに限定されない。完全に網羅しているわけではないが、コンピュータ可読記憶媒体のより具体的な例のリストは、ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ（ＲＡＭ）、リードオンリメモリ（ＲＯＭ）、消去可能プログラマブルリードオンリメモリ（ＥＰＲＯＭ又はフラッシュメモリ）、スタティックランダムアクセスメモリ（ＳＲＡＭ）、ポータブルコンパクトディスクリードオンリメモリ（ＣＤ−ＲＯＭ）、デジタルバーサタイルディスク（ＤＶＤ）、メモリスティック、フロッピー（登録商標）ディスク、記録された命令を有する溝におけるパンチカード又は隆起構造などの機械的に符号化されたデバイス、及び上述のそれらの任意の適した組み合わせを含む。本明細書に使用されるコンピュータ可読記憶媒体は、それ自体が、電波又は他の自由に伝播する電磁波、導波路又は他の伝送媒体を通して伝播する電磁波（例えば、光ファイバーケーブルを通過する光パルス）、又はワイヤを通して伝送される電子信号などの一時的な信号として解釈されるべきではない。
【００８７】
本明細書にて説明されているコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体から、それぞれの演算／処理デバイスに、又は、例えば、インターネット、ローカルエリアネットワーク、ワイドエリアネットワーク、及び／又は無線ネットワークなどのネットワークを介して、外部コンピュータ又は外部ストレージデバイスに、ダウンロードされてよい。ネットワークは、銅製伝送ケーブル、光伝送ファイバー、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータ、及び／又はエッジサーバを含んでよい。各演算／処理デバイスにおけるネットワークアダプタカード又はネットワークインタフェースが、ネットワークからコンピュータ可読プログラム命令を受信し、それぞれの演算／処理デバイス内のコンピュータ可読記憶媒体に格納するためにコンピュータ可読プログラム命令を転送する。
【００８８】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラー命令、命令セットアーキテクチャ（ＩＳＡ）命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、又は、Ｓｍａｌｌｔａｌｋ、Ｃ＋＋又は同様のものなどのオブジェクト指向のプログラミング言語を含む、１つ又は複数のプログラミング言語の任意の組み合わせに書き込まれたソースコードかオブジェクトコードのいずれか、及び、"Ｃ"プログラミング言語又は同様のプログラミング言語などの従来の手続き型プログラミング言語であってよい。コンピュータ可読プログラム命令は、完全にユーザのコンピュータ上で、スタンドアロンソフトウェアパッケージとして部分的にユーザのコンピュータ上で、部分的にユーザのコンピュータでかつ部分的にリモートコンピュータ上で、又は、完全にリモートコンピュータ又はサーバ上で、実行してよい。後者のシナリオにおいて、リモートコンピュータは、ローカルエリアネットワーク（ＬＡＮ）又はワイドエリアネットワーク（ＷＡＮ）を含む任意の種類のネットワークを通してユーザのコンピュータに接続されてよく、又は、その接続は、（例えば、インターネットサービスプロバイダを用いてインターネットを通して）外部コンピュータとつながってよい。いくつかの実施形態において、例えば、プログラマブルロジック回路、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、又はプログラマブルロジックアレイ（ＰＬＡ）を含む電子回路は、本発明の複数の態様を実行するために、コンピュータ可読プログラム命令の状態情報を利用することによって、電子回路を個別化するべく、コンピュータ可読プログラム命令を実行してよい。
【００８９】
本発明の複数の態様は、本発明の実施形態に係る方法、装置（システム）、及びコンピュータプログラム製品のフロー図及び／又はブロック図を参照して本明細書にて説明されている。フロー図及び／又はブロック図の各ブロック、及びフロー図及び／又はブロック図のブロックの組み合わせは、コンピュータ可読プログラム命令により実装され得ることが理解されたい。
【００９０】
これらのコンピュータ可読プログラム命令は、機械を生成するべく、汎用コンピュータ、専用コンピュータ、又は他のプログラマブルデータ処理装置のプロセッサに提供され得、これにより、コンピュータ又は他のプログラマブルデータ処理装置のプロセッサを介して実行する命令は、フローチャート及び／又はブロック図のブロック（又は複数のブロック）において特定された機能／動作を実装するための手段を生成する。これらのコンピュータ可読プログラム命令はまた、コンピュータ、プログラマブルデータ処理装置、及び／又は他のデバイスに、特定の方式で機能するよう指示し得るコンピュータ可読記憶媒体に格納されてよく、これにより、格納された命令を有するコンピュータ可読記憶媒体は、フローチャート及び／又はブロック図のブロック又は複数のブロックに特定された機能／動作の態様を実装する命令を有する製品を備える。
【００９１】
コンピュータ可読プログラム命令はまた、コンピュータ実装の処理を生成するよう、一連の動作段階が、コンピュータ、他のプログラマブル装置、又は他のデバイス上に実行されることを可能にするべく、そのコンピュータ、他のプログラマブルデータ処理装置、又は他のデバイス上に搭載されてよく、これにより、そのコンピュータ、他のプログラマブル装置、又は他のデバイス上で実行する命令は、フローチャート及び／又はブロック図のブロック又は複数のブロックに特定された機能／動作を実装する。
【００９２】
図面におけるフローチャート及びブロック図は、本発明の様々な実施形態に係るシステム、方法、及びコンピュータプログラム製品の可能な実装のアーキテクチャ、機能、動作を図示する。これについて、フローチャート又はブロック図における各ブロックは、特定された論理関数を実装するための１つ又は複数の実行可能な命令を含むモジュール、セグメント、又は命令の一部を表してよい。いくつかの代替的な実装において、ブロックに記載された機能は、図面に記載されている順序と異なって発生し得る。例えば、連続して示されている２つのブロックは実際に、実質的に同時に実行されてよく、又は、それらのブロックは、場合によって、関連する機能に応じて逆の順序で実行されてよい。ブロック図及び／又はフロー図の各ブロック、及びブロック図及び／又はフロー図のブロックの組み合わせは、特定された機能又は動作を実行し、又は専用ハードウェア及びコンピュータ命令の組み合わせを実現する専用ハードウェアベースのシステムにより実装されてよいことも、留意されたい。
【００９３】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更又は改良を加えることが可能であることが当業者に明らかである。その様な変更又は改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【００９４】
特許請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。
【００９５】
上述により明確されたように、本発明の実施形態は、クラウドサービス利用を実現するために使用できる。
【図１】
2018041367.tif 000038
【図２】
2018041367.tif 000039
【図３】
2018041367.tif 000040
【図４】
2018041367.tif 000041
【図５】
2018041367.tif 000042
【図６】
2018041367.tif 000043
【図７】
2018041367.tif 000044
【図８】
2018041367.tif 000045
【外国語明細書】
2018041367000001.pdf