(57)【要約】  分散計算の方法は、処理ノードの第１の集団で第１の計算チェーンにおける結果の第１のセットを計算することと、結果の第１のセットを処理ノードの第２の集団に渡すこととを含む。本方法はまた、結果の第１のセットを渡した後、処理ノードの第１の集団で第１の休止状態に入ることと、結果の第１のセットに基づいて、処理ノードの第２の集団で第１の計算チェーンにおける結果の第２のセットを計算することとを含む。本方法は、結果の第２のセットを処理ノードの第１の集団に渡すことと、結果の第２のセットを渡した後、処理ノードの第２の集団で第２の休止状態に入ることと、第１の計算チェーンをオーケストレートすることとをさらに含む。
2017513127.tif 000002
【特許請求の範囲】
【請求項１】
分散計算の方法であって、
処理ノードの第１の集団で第１の計算チェーンにおける結果の第１のセットを計算することと、
結果の前記第１のセットを処理ノードの第２の集団に渡すことと、
結果の前記第１のセットを渡した後、処理ノードの前記第１の集団で第１の休止状態に入ることと、
結果の前記第１のセットに少なくとも部分的に基づいて、処理ノードの前記第２の集団で前記第１の計算チェーンにおける結果の第２のセットを計算することと、
結果の前記第２のセットを処理ノードの前記第１の集団に渡すことと、
結果の前記第２のセットを渡した後、処理ノードの前記第２の集団で第２の休止状態に入ることと、
前記第１の計算チェーンをオーケストレートすることと
を備える、方法。
【請求項２】
前記第１の休止状態中に、処理ノードの前記第１の集団によって、追加の計算を実行し、並列計算チェーンを作成することをさらに備える、請求項１に記載の方法。
【請求項３】
前記並列計算チェーンが、永続的なコンストラスティブダイバージェンス（ＣＤ）を使用して学習するために、永続チェーンとデータチェーンとを繰り返す隠れニューロンおよび可視ニューロンをともなった、前記永続チェーンおよび前記データチェーンを備える、請求項２に記載の方法。
【請求項４】
前記第１の休止状態が、前記並列チェーンにわたって平均化される重み更新のためにおよび複数の永続チェーンを並列に操作するために使用される増加したシナプス遅延ならびにシナプス遅延、を備える請求項１に記載の方法。
【請求項５】
前記オーケストレートすることが、結果の前記第１および第２のセットを渡すタイミング、前記第１の休止状態のタイミング、前記第２の休止状態のタイミング、結果の前記第１のセットを計算するまたは結果の前記第２のセットを計算するタイミング、を制御することを備える、請求項１に記載の方法。
【請求項６】
前記オーケストレートすることが、外部入力を介して行われる、請求項１に記載の方法。
【請求項７】
前記外部入力が興奮性である、請求項６に記載の方法。
【請求項８】
前記外部入力が抑制性である、請求項６に記載の方法。
【請求項９】
前記オーケストレートすることが、帯域内メッセージトークンパッシングを介して行われる、請求項１に記載の方法。
【請求項１０】
帯域内メッセージトークンパッシングまたは外部入力を介して、オーケストレーションで前記第１の計算チェーンをリセットすることをさらに備える、請求項１に記載の方法。
【請求項１１】
処理ノードの前記第１の集団と処理ノードの前記第２の集団とがニューロンを備える、請求項１に記載の方法。
【請求項１２】
前記第１の計算チェーンがスパイキングニューラルネットワークを備える、請求項１に記載の方法。
【請求項１３】
前記第１の計算チェーンが深層信念ネットワーク（ＤＢＮ）を備える、請求項１に記載の方法。
【請求項１４】
前記ＤＢＮの層が、スパイクタイミング依存可塑性（ＳＴＤＰ）を使用してトレーニングされる、請求項１３に記載の方法。
【請求項１５】
前記第１の計算チェーンが深層ボルツマンマシンを備える、請求項１に記載の方法。
【請求項１６】
少なくとも１つの内部ノード状態またはノードスパイクが、一連の計算の開始または停止をトリガする、請求項１に記載の方法。
【請求項１７】
分散計算のための装置であって、
メモリと、
前記メモリに結合された少なくとも１つのプロセッサとを備え、前記少なくとも１つのプロセッサが、
処理ノードの第１の集団で第１の計算チェーンにおける結果の第１のセットを計算して、
結果の前記第１のセットを処理ノードの第２の集団に渡して、
結果の前記第１のセットを渡した後、処理ノードの前記第１の集団で第１の休止状態に入って、
結果の前記第１のセットに少なくとも部分的に基づいて、処理ノードの前記第２の集団で前記第１の計算チェーンにおける結果の第２のセットを計算して、
結果の前記第２のセットを処理ノードの前記第１の集団に渡して、
結果の前記第２のセットを渡した後、処理ノードの前記第２の集団で第２の休止状態に入って、
前記第１の計算チェーンをオーケストレートする
ように構成される、装置。
【請求項１８】
前記少なくとも１つのプロセッサが、前記第１の休止状態中に、処理ノードの前記第１の集団によって、追加の計算を実行し、並列計算チェーンを作成するようにさらに構成される、請求項１７に記載の装置。
【請求項１９】
前記並列計算チェーンが、永続的なコンストラスティブダイバージェンス（ＣＤ）を使用して学習するために、永続チェーンとデータチェーンとを繰り返す隠れニューロンおよび可視ニューロンをともなった、前記永続チェーンおよび前記データチェーンを備える、請求項１８に記載の装置。
【請求項２０】
前記第１の休止状態が、前記並列チェーンにわたって平均化される重み更新のためにおよび複数の永続チェーンを並列に操作するために使用される増加したシナプス遅延ならびにシナプス遅延、を備える請求項１７に記載の装置。
【請求項２１】
前記少なくとも１つのプロセッサが、結果の前記の第１のセットおよび結果の前記第２のセットを渡すタイミング、前記第１の休止状態のタイミング、前記第２の休止状態のタイミング、結果の前記第１のセットを計算するまたは結果の前記第２のセットを計算するタイミング、を制御することによって、前記第１の計算チェーンをオーケストレートするようにさらに構成される、請求項１７に記載の装置。
【請求項２２】
前記少なくとも１つのプロセッサが、外部入力を介して前記第１の計算チェーンをオーケストレートするようにさらに構成される、請求項１７に記載の装置。
【請求項２３】
前記外部入力が興奮性である、請求項２２に記載の装置。
【請求項２４】
前記外部入力が抑制性である、請求項２２に記載の装置。
【請求項２５】
前記少なくとも１つのプロセッサが、帯域内メッセージトークンパッシングを介して前記第１の計算チェーンをオーケストレートするようにさらに構成される、請求項１７に記載の装置。
【請求項２６】
前記少なくとも１つのプロセッサが、帯域内メッセージトークンパッシングまたは外部入力を介して、オーケストレーションで前記第１の計算チェーンをリセットするようにさらに構成される、請求項１７に記載の装置。
【請求項２７】
処理ノードの前記第１の集団と処理ノードの前記第２の集団とがニューロンを備える、請求項１７に記載の装置。
【請求項２８】
前記第１の計算チェーンがスパイキングニューラルネットワークを備える、請求項１７に記載の装置。
【請求項２９】
前記第１の計算チェーンが深層信念ネットワーク（ＤＢＮ）を備える、請求項１７に記載の装置。
【請求項３０】
前記ＤＢＮの層が、スパイクタイミング依存可塑性（ＳＴＤＰ）を使用してトレーニングされる、請求項２９に記載の装置。
【請求項３１】
前記第１の計算チェーンが深層ボルツマンマシンを備える、請求項１７に記載の装置。
【請求項３２】
前記少なくとも１つのプロセッサが、少なくとも１つの内部ノード状態またはノードスパイクに少なくとも部分的に基づいて、一連の計算の開始または停止をトリガするようにさらに構成される、請求項１７に記載の装置。
【請求項３３】
分散計算のための装置であって、
処理ノードの第１の集団で第１の計算チェーンにおける結果の第１のセットを計算するための手段と、
結果の前記第１のセットを処理ノードの第２の集団に渡すための手段と、
結果の前記第１のセットを渡した後、処理ノードの前記第１の集団で第１の休止状態に入るための手段と、
結果の前記第１のセットに少なくとも部分的に基づいて、処理ノードの前記第２の集団で前記第１の計算チェーンにおける結果の第２のセットを計算するための手段と、
結果の前記第２のセットを処理ノードの前記第１の集団に渡すための手段と、
結果の前記第２のセットを渡した後、処理ノードの前記第２の集団で第２の休止状態に入るための手段と、
前記第１の計算チェーンをオーケストレートするための手段と
を備える、装置。
【請求項３４】
分散計算のためのコンピュータプログラム製品であって、
プログラムコードを符号化した非一時的コンピュータ可読媒体を備え、前記プログラムコードが、
処理ノードの第１の集団で第１の計算チェーンにおける結果の第１のセットを計算するためのプログラムコードと、
結果の前記第１のセットを処理ノードの第２の集団に渡すためのプログラムコードと、
結果の前記第１のセットを渡した後、処理ノードの前記第１の集団で第１の休止状態に入るためのプログラムコードと、
結果の前記第１のセットに少なくとも部分的に基づいて、処理ノードの前記第２の集団で前記第１の計算チェーンにおける結果の第２のセットを計算するためのプログラムコードと、
結果の前記第２のセットを処理ノードの前記第１の集団に渡すためのプログラムコードと、
結果の前記第２のセットを渡した後、処理ノードの前記第２の集団で第２の休止状態に入るためのプログラムコードと、
前記第１の計算チェーンをオーケストレートするためのプログラムコードと
を備える、コンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
[0001]本出願は、２０１４年３月２６日に出願された「ＴＲＡＩＮＩＮＧ，ＲＥＣＯＧＮＩＴＩＯＮ，ＡＮＤ  ＧＥＮＥＲＡＴＩＯＮ  ＩＮ  Ａ  ＳＰＩＫＩＮＧ  ＤＥＥＰ  ＢＥＬＩＥＦ  ＮＥＴＷＯＲＫ（ＤＢＮ）」と題する米国仮特許出願第６１／９７０，８０７号の利益を主張し、その開示は、参照によりその全体が本明細書に明示的に組み込まれる。
【０００２】
[0002]本開示のいくつかの態様は、一般に計算ノードに関し、より詳細には、分散計算のためのシステムおよび方法に関する。
【背景技術】
【０００３】
[0003]人工ニューロン（すなわち、ニューロンモデル）の相互結合されたグループを備え得る人工ニューラルネットワークは、計算デバイスであるか、または計算デバイスによって実行される方法を表す。人工ニューラルネットワークは、生物学的ニューラルネットワークにおける対応する構造および／または機能を有し得る。しかしながら、人工ニューラルネットワークは、従来の計算技法が厄介、実行不可能または不適切であるいくつかの適用例に革新的で有用な計算技法を提供することができる。人工ニューラルネットワークは観測から関数を推測することができるので、そのようなネットワークは、タスクまたはデータの複雑さが従来の技法による関数の設計を煩わしくする用途において、特に有用である。
【発明の概要】
【０００４】
[0004]本開示のある態様では、分散計算の方法が提示される。本方法は、処理ノードの第１の集団で第１の計算チェーンにおける結果の第１のセットを計算することと、結果の第１のセットを処理ノードの第２の集団に渡すこととを含む。本方法はまた、結果の第１のセットを渡した後、処理ノードの第１の集団で第１の休止状態に入ることと、結果の第１のセットに基づいて、処理ノードの第２の集団で第１の計算チェーンにおける結果の第２のセットを計算することとを含む。本方法は、結果の第２のセットを処理ノードの第１の集団に渡すことと、結果の第２のセットを渡した後、処理ノードの第２の集団で第２の休止状態に入ることと、第１の計算チェーンをオーケストレートすること（orchestrating）とをさらに含む。
【０００５】
[0005]本開示の別の態様では、分散計算のための方法が提示される。本装置は、メモリと、メモリに結合された少なくとも１つのプロセッサとを含む。１つまたは複数のプロセッサは、処理ノードの第１の集団で第１の計算チェーンにおける結果の第１のセットを計算して、結果の第１のセットを処理ノードの第２の集団に渡すように構成される。本プロセッサはまた、結果の第１のセットを渡した後、処理ノードの第１の集団で第１の休止状態に入って、結果の第１のセットに基づいて、処理ノードの第２の集団で第１の計算チェーンにおける結果の第２のセットを計算するように構成される。本プロセッサは、結果の第２のセットを処理ノードの第１の集団に渡して、結果の第２のセットを渡した後、処理ノードの第２の集団で第２の休止状態に入って、第１の計算チェーンをオーケストレートするようにさらに構成される。
【０００６】
[0006]本開示の別の態様では、分散計算のための装置が提示される。本装置は、処理ノードの第１の集団で第１の計算チェーンにおける結果の第１のセットを計算するための手段と、結果の第１のセットを処理ノードの第２の集団に渡すための手段とを含む。本装置はまた、結果の第１のセットを渡した後、処理ノードの第１の集団で第１の休止状態に入るための手段と、結果の第１のセットに基づいて、処理ノードの第２の集団で第１の計算チェーンにおける結果の第２のセットを計算するための手段とを含む。本装置は、結果の第２のセットを処理ノードの第１の集団に渡すための手段と、結果の第２のセットを渡した後、処理ノードの第２の集団で第２の休止状態に入るための手段と、第１の計算チェーンをオーケストレートするための手段とをさらに含む。
【０００７】
[0007]本開示の別の態様では、分散計算のためのコンピュータプログラム製品が提示される。本コンピュータプログラム製品は、プログラムコードを符号化した非一時的コンピュータ可読媒体を含む。本プログラムコードは、処理ノードの第１の集団で第１の計算チェーンにおける結果の第１のセットを計算して、結果の第１のセットを処理ノードの第２の集団に渡すためのプログラムコードを含む。本プログラムコードはまた、結果の第１のセットを渡した後、処理ノードの第１の集団で第１の休止状態に入って、結果の第１のセットに基づいて、処理ノードの第２の集団で第１の計算チェーンにおける結果の第２のセットを計算するためのプログラムコードを含む。本プログラムコードは、結果の第２のセットを処理ノードの第１の集団に渡して、結果の第２のセットを渡した後、処理ノードの第２の集団で第２の休止状態に入って、第１の計算チェーンをオーケストレートするためのプログラムコードをさらに含む。
【０００８】
[0008]これは、以下の詳細な説明がより良く理解され得るように、本開示の特徴および技術的利点をかなり広く概説したものである。本開示の追加の特徴および利点は、以下で説明される。この開示は、本開示と同じ目的を実行するための他の構造を修正または設計するための基礎として容易に変更され得ることが、当業者によって理解されるべきである。また、添付の特許請求の範囲に記載されるように、そのような等価な構成は本開示の教示から逸脱しないことが、当業者によって理解されるべきである。本開示の特徴と考えられる新規な特徴は、その構成と動作の方法との両方に関して、さらなる目的および利点とともに、添付の図面と関連して考慮されるとき以下の説明からより良く理解されるであろう。しかしながら、図面の各々は単に例示および説明の目的のために提供されているにすぎず、本開示の制限の定義として意図されていないことが、明確には理解されるべきである。
【０００９】
[0009]本開示の特徴、性質、および利点は、同様の参照文字が全体を通して相応して識別する図面を考慮した場合、以下に示される詳細な説明から、より明らかになるだろう。
【図面の簡単な説明】
【００１０】
【図１】[0010]本開示のいくつかの態様によるニューロンの例示的なネットワークを示す図。
【図２】[0011]本開示のいくつかの態様による、計算ネットワーク（ニューラルシステムまたはニューラルネットワーク）の処理ユニット（ニューロン）の一例を示す図。
【図３】[0012]本開示のいくつかの態様によるスパイクタイミング依存可塑性（ＳＴＤＰ）曲線の一例を示す図。
【図４】[0013]本開示のいくつかの態様による、ニューロンモデルの挙動を定義するための正レジームおよび負レジームの一例を示す図。
【図５】[0014]本開示のある態様による、汎用プロセッサを使用してニューラルネットワークを設計することの例示的な実装形態を示す図。
【図６】[0015]本開示のいくつかの態様による、メモリが個々の分散処理ユニットとインターフェースされ得るニューラルネットワークを設計する例示的な実装形態を示す図。
【図７】[0016]本開示のいくつかの態様による、分散メモリおよび分散処理ユニットに基づいてニューラルネットワークを設計する例示的な実装形態を示す図。
【図８】[0017]本開示のいくつかの態様による、ニューラルネットワークの例示的な実装形態を示す図。
【図９】[0018]本開示の態様による、例示的なＲＢＭを示すブロック図。
【図１０】[0019]本開示の態様による、例示的なＤＢＮを示すブロック図。
【図１１】[0020]本開示の態様による、ＲＢＭにおける並列サンプリングチェーンを示すブロック図。
【図１２】[0021]本開示の態様による、オーケストレータニューロンを有するＲＢＭを示すブロック図。
【図１３Ａ】[0022]本開示の態様による、分類、認識、および生成のためにトレーニングされた例示的なＤＢＮを示すブロック図。
【図１３Ｂ】本開示の態様による、分類、認識、および生成のためにトレーニングされた例示的なＤＢＮを示すブロック図。
【図１３Ｃ】本開示の態様による、分類、認識、および生成のためにトレーニングされた例示的なＤＢＮを示すブロック図。
【図１３Ｄ】本開示の態様による、分類、認識、および生成のためにトレーニングされた例示的なＤＢＮを示すブロック図。
【図１３Ｅ】本開示の態様による、分類、認識、および生成のためにトレーニングされた例示的なＤＢＮを示すブロック図。
【図１３Ｆ】本開示の態様による、分類、認識、および生成のためにトレーニングされた例示的なＤＢＮを示すブロック図。
【図１４】[0023]本開示の態様による、分散計算のための方法を示す図。
【図１５】本開示の態様による、分散計算のための方法を示す図。
【発明を実施するための形態】
【００１１】
[0024]添付の図面に関連して以下に示される詳細な説明は、様々な構成の説明として意図されたものであり、本明細書において説明される概念が実現され得る唯一の構成を表すことを意図されるものではない。詳細な説明は、様々な概念の完全な理解を提供する目的で、具体的な詳細を含む。しかしながら、これらの概念がこれらの具体的な詳細なしで実施され得ることは、当業者にとっては明らかであろう。いくつかの事例では、よく知られている構造および構成要素が、そのような概念を曖昧にするのを避けるために、ブロック図形式で示される。
【００１２】
[0025]本教示に基づいて、本開示の範囲は、本開示の任意の他の態様とは無関係に実装されるにせよ、本開示の任意の他の態様と組み合わされるにせよ、本開示のいかなる態様をもカバーするものであることを、当業者なら諒解されたい。たとえば、記載される態様をいくつ使用しても、装置は実装され得、または方法は実施され得る。さらに、本開示の範囲は、記載される本開示の様々な態様に加えてまたはそれらの態様以外に、他の構造、機能、または構造および機能を使用して実施されるそのような装置または方法をカバーするものとする。開示する本開示のいずれの態様も、請求項の１つまたは複数の要素によって実施され得ることを理解されたい。
【００１３】
[0026]「例示的」という単語は、本明細書では「例、事例、または例示の働きをすること」を意味するために使用される。「例示的」として本明細書で説明するいかなる態様も、必ずしも他の態様よりも好ましいまたは有利であると解釈されるべきであるとは限らない。
【００１４】
[0027]本明細書では特定の態様について説明するが、これらの態様の多くの変形および置換は本開示の範囲内に入る。好ましい態様のいくつかの利益および利点が説明されるが、本開示の範囲は特定の利益、使用、または目的に限定されるものではない。むしろ、本開示の態様は、様々な技術、システム構成、ネットワーク、およびプロトコルに広く適用可能であるものとし、そのうちのいくつかを例として図および好ましい態様についての以下の説明で示す。発明を実施するための形態および図面は、本開示を限定するものではなく説明するものにすぎず、本開示の範囲は添付の特許請求の範囲およびそれの均等物によって定義される。
例示的なニューラルシステム、トレーニングおよび動作
[0028]図１は、本開示のいくつかの態様による、複数のレベルのニューロンをもつ例示的な人工ニューラルシステム１００を示す。ニューラルシステム１００は、シナプス結合のネットワーク１０４（すなわち、フィードフォワード結合）を介してニューロンの別のレベル１０６に結合されたニューロンのあるレベル１０２を有し得る。簡単のために、図１には２つのレベルのニューロンのみが示されているが、ニューラルシステムには、より少ないまたはより多くのレベルのニューロンが存在し得る。ニューロンのいくつかは、ラテラル結合を介して同じ層の他のニューロンに結合し得ることに留意されたい。さらに、ニューロンのいくつかは、フィードバック結合を介して前の層のニューロンに戻る形で結合し得る。
【００１５】
[0029]図１に示すように、レベル１０２における各ニューロンは、前のレベル（図１に図示せず）のニューロンによって生成され得る入力信号１０８を受信し得る。信号１０８は、レベル１０２のニューロンの入力電流を表し得る。この電流は、膜電位を充電するためにニューロン膜上に蓄積され得る。膜電位がそれのしきい値に達すると、ニューロンは、発火し、ニューロンの次のレベル（たとえば、レベル１０６）に転送されるべき出力スパイクを生成し得る。いくつかのモデリング手法では、ニューロンは、信号をニューロンの次のレベルに継続的に転送し得る。この信号は、典型的には膜電位の関数である。そのような挙動は、以下で説明するものなどのアナログおよびデジタル実装形態を含むハードウェアおよび／またはソフトウェアでエミュレートまたはシミュレートされ得る。
【００１６】
[0030]生物学的ニューロンでは、ニューロンが発火するときに生成される出力スパイクは、活動電位と呼ばれる。電気信号は、約１００ｍＶの振幅と約１ｍｓの持続時間とを有する比較的急速で、一時的な神経インパルスである。一連の結合されたニューロンを有するニューラルシステムの特定の実施形態（たとえば、図１におけるあるレベルのニューロンから別のレベルのニューロンへのスパイクの転送）では、あらゆる活動電位が基本的に同じ振幅と持続時間とを有するので、信号における情報は、振幅によってではなく、スパイクの周波数および数、またはスパイクの時間によってのみ表され得る。活動電位によって搬送される情報は、スパイク、スパイクしたニューロン、および他の１つまたは複数のスパイクに対するスパイクの時間によって決定され得る。以下で説明するように、スパイクの重要性は、ニューロン間の接続に適用される重みによって決定され得る。
【００１７】
[0031]図１に示されるように、ニューロンのあるレベルから別のレベルへのスパイクの移動は、シナプス結合（または、単純に「シナプス」）１０４のネットワークを介して達成され得る。シナプス１０４に関して、レベル１０２のニューロンはシナプス前ニューロンと考えられ得、レベル１０６のニューロンはシナプス後ニューロンと考えられ得る。シナプス１０４は、レベル１０２のニューロンから出力信号（すなわち、スパイク）を受信して、調整可能なシナプスの重み
【００１８】
【数１】
2017513127.tif 000003
【００１９】
に応じてそれらの信号をスケーリングすることができ、上式で、Ｐはレベル１０２のニューロンとレベル１０６のニューロンとの間のシナプス結合の総数であり、ｉはニューロンレベルの指標である。図１の例では、ｉはニューロンレベル１０２を表し、ｉ＋１は、ニューロンレベル１０６を表す。さらに、スケーリングされた信号は、レベル１０６における各ニューロンの入力信号として合成され得る。レベル１０６におけるあらゆるニューロンは、対応する合成された入力信号に基づいて、出力スパイク１１０を生成し得る。出力スパイク１１０は、シナプス結合の別のネットワーク（図１には図示せず）を使用して、別のレベルのニューロンに転送され得る。
【００２０】
[0032]生物学的シナプスは、シナプス後ニューロンにおける興奮性活動または抑制性（過分極化）活動のいずれかを調停することができ、ニューロン信号を増幅する役目を果たすことができる。興奮性信号は、膜電位を脱分極する（すなわち、静止電位に対して膜電位を増加させる）。しきい値を超えて膜電位を脱分極するために十分な興奮性信号が一定の時間期間内に受信された場合、シナプス後ニューロンに活動電位が生じる。対照的に、抑制性信号は一般に、膜電位を過分極する（すなわち、低下させる）。抑制性信号は、十分に強い場合、興奮性信号のすべてを相殺し、膜電位がしきい値に達するのを防止することができる。シナプス興奮を相殺することに加えて、シナプス抑制は、自然に活発なニューロンに対して強力な制御を行うことができる。自然に活発なニューロンは、たとえば、それのダイナミクスまたはフィードバックに起因するさらなる入力なしにスパイクするニューロンを指す。これらのニューロンにおける活動電位の自然な生成を抑圧することによって、シナプス抑制は、一般にスカルプチャリングと呼ばれる、ニューロンの発火のパターンを形成することができる。様々なシナプス１０４は、望まれる挙動に応じて、興奮性シナプスまたは抑制性シナプスの任意の組合せとして働き得る。
【００２１】
[0033]ニューラルシステム１００は、汎用プロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）もしくは他のプログラマブル論理デバイス（ＰＬＤ）、個別ゲートもしくはトランジスタ論理、個別ハードウェア構成要素、プロセッサによって実行されるソフトウェアモジュール、またはそれらの任意の組合せによってエミュレートされ得る。ニューラルシステム１００は、たとえば画像およびパターン認識、機械学習、モータ制御、および似ているなど、かなりの適用範囲において利用され得る。ニューラルシステム１００における各ニューロンは、ニューロン回路として実装され得る。出力スパイクを開始するしきい値まで充電されるニューロン膜は、たとえば、そこを通って流れる電流を積分するキャパシタとして実装され得る。
【００２２】
[0034]一態様では、キャパシタは、ニューロン回路の電流積分デバイスとして除去され得、その代わりにより小さいメモリスタ（memristor）要素が使用され得る。この手法は、ニューロン回路において、ならびにかさばるキャパシタが電流積分器として利用される様々な他の適用例において適用され得る。さらに、シナプス１０４の各々は、メモリスタ要素に基づいて実装され得、シナプス重みの変化は、メモリスタ抵抗の変化に関係し得る。ナノメートルの特徴サイズのメモリスタを用いると、ニューロン回路およびシナプスの面積が大幅に低減され得、それによって、大規模なニューラルシステムハードウェア実装形態の実装がより実用的になり得る。
【００２３】
[0035]ニューラルシステム１００をエミュレートするニューラルプロセッサの機能は、ニューロン間の結合の強さを制御し得る、シナプス結合の重みに依存し得る。シナプス重みは、パワーダウン後にプロセッサの機能を維持するために、不揮発性メモリに記憶され得る。一態様では、シナプス重みメモリは、主たるニューラルプロセッサチップとは別個の外部チップ上に実装され得る。シナプス重みメモリは、交換可能メモリカードとしてニューラルプロセッサチップとは別個にパッケージ化され得る。これは、ニューラルプロセッサに多様な機能を提供することができ、特定の機能は、ニューラルプロセッサに現在取り付けられているメモリカードに記憶されたシナプス重みに基づき得る。
【００２４】
[0036]図２は、本開示のいくつかの態様による、計算ネットワーク（たとえば、ニューラルシステムまたはニューラルネットワーク）の処理ユニット（たとえば、ニューロンまたはニューロン回路）２０２の例示的な図２００を示す。たとえば、ニューロン２０２は、図１のレベル１０２のニューロンおよび１０６のニューロンのうちのいずれかに対応し得る。ニューロン２０２は、ニューラルシステムの外部にある信号、または同じニューラルシステムの他のニューロンによって生成された信号、またはその両方であり得る、複数の入力信号２０４1〜２０４Nを受信し得る。入力信号は、電流、コンダクタンス、電圧、実数値および／または複素数値であり得る。入力信号は、固定小数点表現または浮動小数点表現をもつ数値を備え得る。これらの入力信号は、調整可能なシナプス重み２０６1〜２０６N（ｗ1〜ｗN）に従って信号をスケーリングするシナプス結合を通してニューロン２０２に伝えられ得、Ｎはニューロン２０２の入力接続の総数であり得る。
【００２５】
[0037]ニューロン２０２は、スケーリングされた入力信号を合成し、合成された、スケーリングされた入力を使用して、出力信号２０８（すなわち、信号ｙ）を生成し得る。出力信号２０８は、電流、コンダクタンス、電圧、実数値および／または複素数値であり得る。出力信号は、固定小数点表現または浮動小数点表現をもつ数値であり得る。出力信号２０８は、次いで、同じニューラルシステムの他のニューロンへの入力信号として、または同じニューロン２０２への入力信号として、またはニューラルシステムの出力として伝達され得る。
【００２６】
[0038]処理ユニット（ニューロン）２０２は電気回路によってエミュレートされ得、それの入力接続および出力接続は、シナプス回路をもつ電気接続によってエミュレートされ得る。処理ユニット２０２ならびにそれの入力接続および出力接続はまた、ソフトウェアコードによってエミュレートされ得る。処理ユニット２０２はまた、電気回路によってエミュレートされ得るが、それの入力接続および出力接続はソフトウェアコードによってエミュレートされ得る。一態様では、計算ネットワーク中の処理ユニット２０２はアナログ電気回路であり得る。別の態様では、処理ユニット２０２はデジタル電気回路であり得る。さらに別の態様では、処理ユニット２０２は、アナログ構成要素とデジタル構成要素の両方をもつ混合信号電気回路であり得る。計算ネットワークは、上述の形態のいずれかにおける処理ユニットを含み得る。そのような処理ユニットを使用した計算ネットワーク（ニューラルシステムまたはニューラルネットワーク）は、たとえば画像およびパターン認識、機械学習、モータ制御など、かなりの適用範囲において利用され得る。
【００２７】
[0039]ニューラルネットワークをトレーニングする過程で、シナプス重み（たとえば、図１の重み
【００２８】
【数２】
2017513127.tif 000004
【００２９】
および／または図２の重み２０６1〜２０６N）がランダム値により初期化され得、学習ルールに従って増加または減少し得る。学習ルールの例は、これに限定されないが、スパイクタイミング依存可塑性（ＳＴＤＰ）学習ルール、Ｈｅｂｂ則、Ｏｊａ則、Ｂｉｅｎｅｎｓｔｏｃｋ−Ｃｏｐｐｅｒ−Ｍｕｎｒｏ（ＢＣＭ）則等を含むことを当業者は理解するだろう。いくつかの態様では、重みは、２つの値のうちの１つに安定または収束し得る（すなわち、重みの双峰分布）。この効果が利用されて、シナプス重みごとのビット数を低減し、シナプス重みを記憶するメモリとの間の読取りおよび書込みの速度を上げ、シナプスメモリの電力および／またはプロセッサ消費量を低減し得る。
シナプスタイプ
[0040]ニューラルネットワークのハードウェアおよびソフトウェアモデルでは、シナプス関係機能の処理がシナプスタイプに基づき得る。シナプスタイプは、非塑性シナプス（non-plastic synapse）（重みおよび遅延の変化がない）、可塑性シナプス（重みが変化し得る）、構造遅延可塑性シナプス（重みおよび遅延が変化し得る）、完全可塑性シナプス（重み、遅延および結合性が変化し得る）、およびそれの変形（たとえば、遅延は変化し得るが、重みまたは結合性の変化はない）であり得る。複数のタイプの利点は、処理が再分割され得ることである。たとえば、非塑性シナプスは、可塑性機能を必要としないで実行される場合がある（またはそのような機能が完了するのを待つ）。同様に、遅延および重み可塑性は、一緒にまたは別々に、順にまたは並列に動作し得る動作に再分割され得る。異なるタイプのシナプスは、適用される異なる可塑性タイプの各々の異なるルックアップテーブルまたは式およびパラメータを有し得る。したがって、本方法は、シナプスのタイプについての関連する表、式、またはパラメータにアクセスする。
【００３０】
[0041]スパイクタイミング依存構造可塑性がシナプス可塑性とは無関係に実行され得るという事実のさらなる含意がある。構造可塑性は、重みの大きさに変化がない場合（たとえば、重みが最小値または最大値に達したか、あるいはそれが何らかの他の理由により変更されない場合）ｓ構造可塑性（すなわち、遅延量の変化）は前後スパイク時間差（pre-post spike time difference）の直接関数であり得ても実行され得る。代替的に、構造可塑性は、重み変化量に応じて、または重みもしくは重み変化の限界に関係する条件に基づいて設定され得る。たとえば、重み変化が生じたとき、または重みが最大値になるのではなく、重みがゼロに達した場合のみ、シナプス遅延が変化し得る。しかしながら、これらのプロセスが並列化され、メモリアクセスの数および重複を低減し得るように、独立した機能を有することが有利であり得る。
シナプス可塑性の決定
[0042]神経可塑性（または単に「可塑性」）は、脳内のニューロンおよびニューラルネットワークがそれらのシナプス結合と挙動とを新しい情報、感覚上の刺激、発展、損傷または機能不全に応答して変える能力である。可塑性は、生物学における学習および記憶にとって、また計算論的神経科学およびニューラルネットワークにとって重要である。（たとえば、Ｈｅｂｂ則理論による）シナプス可塑性、スパイクタイミング依存可塑性（ＳＴＤＰ）、非シナプス可塑性、活性依存可塑性、構造可塑性および恒常的可塑性など、様々な形の可塑性が研究されている。
【００３１】
[0043]ＳＴＤＰは、ニューロン間のシナプス結合の強さを調整する学習プロセスである。結合強度は、特定のニューロンの出力スパイクおよび受信入力スパイク（すなわち、活動電位）の相対的タイミングに基づいて調整される。ＳＴＤＰプロセスの下で、あるニューロンに対する入力スパイクが、平均して、そのニューロンの出力スパイクの直前に生じる傾向がある場合、長期増強（ＬＴＰ）が生じ得る。その場合、その特定の入力はいくらか強くなる。一方、入力スパイクが、平均して、出力スパイクの直後に生じる傾向がある場合、長期抑圧（ＬＴＤ）が生じ得る。その場合、その特定の入力はいくらか弱くなるので、「スパイクタイミング依存可塑性」と呼ばれる。したがって、シナプス後ニューロンの興奮の原因であり得る入力は、将来的に寄与する可能性がさらに高くなる一方、シナプス後スパイクの原因ではない入力は、将来的に寄与する可能性が低くなる。結合の初期セットのサブセットが残る一方で、その他の部分の影響がわずかなレベルまで低減されるまで、このプロセスは続く。
【００３２】
[0044]ニューロンは一般に出力スパイクを、それの入力の多くが短い期間内に生じる（すなわち、出力をもたらすのに十分な累積がある）ときに生成するので、通常残っている入力のサブセットは、時間的に相関する傾向のあった入力を含む。さらに、出力スパイクの前に生じる入力は強化されるので、最も早い十分に累積的な相関指示を提供する入力は結局、ニューロンへの最終入力となる。
【００３３】
[0045]ＳＴＤＰ学習ルールは、シナプス前ニューロンのスパイク時間ｔpreとシナプス後ニューロンのスパイク時間ｔpostとの間の時間差（すなわち、ｔ＝ｔpost−ｔpre）に応じて、シナプス前ニューロンをシナプス後ニューロンに結合するシナプスのシナプス重みを効果的に適合させ得る。ＳＴＤＰの通常の公式化は、時間差が正である（シナプス前ニューロンがシナプス後ニューロンの前に発火する）場合にシナプス重みを増加させ（すなわち、シナプスを増強し）、時間差が負である（シナプス後ニューロンがシナプス前ニューロンの前に発火する）場合にシナプス重みを減少させる（すなわち、シナプスを抑制する）ことである。
【００３４】
[0046]ＳＴＤＰプロセスでは、経時的なシナプス重みの変化は通常、以下の式によって与えられるように、指数関数的減衰を使用して達成され得る。
【００３５】
【数３】
2017513127.tif 000005
【００３６】
ここで、ｋ+およびｋ-τsign(Δt)はそれぞれ、正の時間差および負の時間差の時間定数であり、ａ+およびａ-は対応するスケーリングの大きさであり、μは正の時間差および／または負の時間差に適用され得るオフセットである。
【００３７】
[0047]図３は、ＳＴＤＰによる、シナプス前スパイクおよびシナプス後スパイクの相対的タイミングに応じたシナプス重み変化の例示的な図３００を示す。シナプス前ニューロンがシナプス後ニューロンの前に発火する場合、グラフ３００の部分３０２に示すように、対応するシナプス重みは増加し得る。この重み増加は、シナプスのＬＴＰと呼ばれ得る。グラフ部分３０２から、シナプス前スパイク時間とシナプス後スパイク時間との間の時間差に応じて、ＬＴＰの量がほぼ指数関数的に減少し得ることが観測され得る。グラフ３００の部分３０４に示すように、発火の逆の順序は、シナプス重みを減少させ、シナプスのＬＴＤをもたらし得る。
【００３８】
[0048]図３のグラフ３００に示すように、ＳＴＤＰグラフのＬＴＰ（原因）部分３０２に負のオフセットμが適用され得る。ｘ軸の交差３０６のポイント（ｙ＝０）は、層ｉ−１からの原因入力の相関を考慮して、最大タイムラグと一致するように構成され得る。フレームベースの入力（すなわち、スパイクまたはパルスを備える特定の持続時間のフレームの形態である入力）の場合、オフセット値μは、フレーム境界を反映するように計算され得る。直接的にシナプス後電位によってモデル化されるように、またはニューラル状態に対する影響の点で、フレームにおける第１の入力スパイク（パルス）が経時的に減衰することが考慮され得る。フレームにおける第２の入力スパイク（パルス）が特定の時間フレームの相関したまたは関連したものと考えられる場合、フレームの前および後の関連する時間は、その時間フレーム境界で分離され、関連する時間の値が異なり得る（たとえば、１つのフレームよりも大きい場合は負、１つのフレームよりも小さい場合は正）ように、ＳＴＤＰ曲線の１つまたは複数の部分をオフセットすることによって、可塑性の点で別様に扱われ得る。たとえば、曲線が、フレーム時間よりも大きい前後の時間で実際にゼロよりも下になり、結果的にＬＴＰの代わりにＬＴＤの一部であるようにＬＴＰをオフセットするために負のオフセットμが設定され得る。
ニューロンモデルおよび演算
[0049]有用なスパイキングニューロンモデルを設計するための一般的原理がいくつかある。良いニューロンモデルは、２つの計算レジーム、すなわち、一致検出および関数計算の点で豊かな潜在的挙動を有し得る。その上、良いニューロンモデルは、時間コーディングを可能にするための２つの要素を有する必要がある：入力の到着時間は出力時間に影響を与え、一致検出は狭い時間ウィンドウを有し得る。最終的に、計算上魅力的であるために、良いニューロンモデルは、連続時間に閉形式解と、ニアアトラクター（near attractor）と鞍点とを含む安定した挙動とを有し得る。言い換えれば、有用なニューロンモデルは、実用的なニューロンモデルであり、豊かで、現実的で、生物学的に一貫した挙動をモデル化するために使用され得、神経回路のエンジニアリングとリバースエンジニアリングの両方を行うために使用され得るニューロンモデルである。
【００３９】
[0050]ニューロンモデルは事象、たとえば入力の到着、出力スパイク、または内部的であるか外部的であるかを問わず他の事象に依存し得る。豊かな挙動レパートリーを実現するために、複雑な挙動を示すことができる状態機械が望まれ得る。入力寄与（ある場合）とは別個の事象の発生自体が状態機械に影響を与え、事象の後のダイナミクスを制限し得る場合、システムの将来の状態は、単なる状態および入力の関数ではなく、むしろ状態、事象および入力の関数である。
【００４０】
[0051]一態様では、ニューロンｎは、下記のダイナミクスによって決定される膜電圧ｖn（ｔ）によるスパイキングリーキー積分発火ニューロンとしてモデル化され得る。
【００４１】
【数４】
2017513127.tif 000006
【００４２】
ここでαおよびβは、パラメータであり、ｗm,nは、シナプス前ニューロンｍをシナプス後ニューロンｎに結合するシナプスのシナプス重みであり、ｙm（ｔ）は、ニューロンｎの細胞体に到着するまでΔｔm,nに従って樹状遅延または軸索遅延によって遅延し得るニューロンｍのスパイキング出力である。
【００４３】
[0052]シナプス後ニューロンへの十分な入力が達成された時間からシナプス後ニューロンが実際に発火する時間までの遅延があることに留意されたい。イジケヴィッチの単純モデルなど、動的スパイキングニューロンモデルでは、脱分極しきい値ｖtとピークスパイク電圧ｖpeakとの間に差がある場合、時間遅延が生じ得る。たとえば、単純モデルでは、電圧および復元のための１対の微分方程式、すなわち、
【００４４】
【数５】
2017513127.tif 000007
【００４５】
【数６】
2017513127.tif 000008
【００４６】
によってニューロン細胞体ダイナミクス（neuron soma dynamics）が決定され得る。ここでｖは膜電位であり、ｕは、膜復元変数であり、ｋは、膜電位ｖの時間スケールを記述するパラメータであり、ａは、復元変数ｕの時間スケールを記述するパラメータであり、ｂは、膜電位ｖのしきい値下変動に対する復元変数ｕの感度を記述するパラメータであり、ｖrは、膜静止電位であり、Ｉは、シナプス電流であり、Ｃは、膜のキャパシタンスである。このモデルによれば、ニューロンはｖ＞ｖpeakのときにスパイクすると定義される。
Ｈｕｎｚｉｎｇｅｒ  Ｃｏｌｄモデル
[0053]Ｈｕｎｚｉｎｇｅｒ  Ｃｏｌｄニューロンモデルは、豊かな様々な神経挙動を再生し得る最小二重レジームスパイキング線形動的モデルである。モデルの１次元または２次元の線形ダイナミクスは２つのレジームを有することができ、時間定数（および結合）はレジームに依存し得る。しきい値下レジームでは、時間定数は、慣例により負であり、一般に生物学的に一貫した線形方式で静止状態に細胞を戻す役目を果たすリーキーチャネルダイナミクスを表す。しきい値上レジームにおける時間定数は、慣例により正であり、一般にスパイク生成のレイテンシを生じさせる一方でスパイク状態に細胞を駆り立てる反リーキーチャネルダイナミクスを反映する。
【００４７】
[0054]図４に示すように、モデル４００のダイナミクスは２つの（またはそれよりも多くの）レジームに分割され得る。これらのレジームは、負のレジーム（ｎｅｇａｔｉｖｅ  ｒｅｇｉｍｅ）４０２（ｌｅａｋｙ−ｉｎｔｅｇｒａｔｅ−ａｎｄ−ｆｉｒｅ（ＬＩＦ）ニューロンモデルと混同されないように、交換可能にＬＩＦレジームとも呼ばれる）、および正のレジーム（ｐｏｓｉｔｉｖｅ  ｒｅｇｉｍｅ）４０４（ａｎｔｉ−ｌｅａｋｙ−ｉｎｔｅｇｒａｔｅ−ａｎｄ−ｆｉｒｅ（ＡＬＩＦ）ニューロンモデルと混同されないように、交換可能にＡＬＩＦレジームとも呼ばれる）と呼ばれ得る。負レジーム４０２では、状態は将来の事象の時点における静止（ｖ-）の傾向がある。この負レジームでは、モデルは一般に、時間的入力検出特性と他のしきい値下挙動とを示す。正レジーム４０４では、状態はスパイキング事象（ｖs）の傾向がある。この正レジームでは、モデルは、後続の入力事象に応じてスパイクにレイテンシを生じさせるなどの計算特性を示す。事象の点からのダイナミクスの公式化およびこれら２つのレジームへのダイナミクスの分離は、モデルの基本的特性である。
【００４８】
[0055]線形二重レジーム２次元ダイナミクス（状態ｖおよびｕの場合）は、慣例により次のように定義され得る。
【００４９】
【数７】
2017513127.tif 000009
【００５０】
【数８】
2017513127.tif 000010
【００５１】
ここでｑρおよびｒは、結合のための線形変換変数である。
【００５２】
[0056]シンボルρは、ダイナミクスレジームを示すためにここで使用され、特定のレジームの関係を論述または表現するときに、それぞれ負レジームおよび正レジームについて符号「−」または「＋」にシンボルρを置き換える慣例がある。
【００５３】
[0057]モデル状態は、膜電位（電圧）ｖおよび復元電流ｕによって定義される。基本形態では、レジームは基本的にモデル状態によって決定される。正確で一般的な定義の微妙だが重要な側面があるが、差し当たり、モデルが、電圧ｖがしきい値（ｖ+）を上回る場合に正レジーム４０４にあり、そうでない場合に負レジーム４０２にあると考える。
【００５４】
[0058]レジーム依存時間定数は、負レジーム時間定数であるτ-と正レジーム時間定数であるτ+とを含む。復元電流時間定数τuは通常、レジームから独立している。便宜上、τuと同様に、指数およびτ+が一般に正となる正レジームの場合に、電圧発展（voltage evolution）に関する同じ表現が使用され得るように、減衰を反映するために負の量として負レジーム時間定数τ-が一般に指定される。
【００５５】
[0059]２つの状態要素のダイナミクスは、事象において、ヌルクラインから状態をオフセットする変換によって結合され得、ここで変換変数は、
【００５６】
【数９】
2017513127.tif 000011
【００５７】
【数１０】
2017513127.tif 000012
【００５８】
であり、δ、ε、βおよびｖ-、ｖ+はパラメータである。ｖρのための２つの値は、２つのレジームのための参照電圧のベースである。パラメータｖ-は、負レジームのためのベース電圧であり、膜電位は一般に、負レジームにおいてｖ-に減衰する。パラメータｖ+は、正レジームのためのベース電圧であり、膜電位は一般に、正レジームにおいてｖ+から離れる傾向となる。
【００５９】
[0060]ｖおよびｕのためのヌルクラインは、それぞれ変換変数ｑρおよびｒの負によって与えられる。パラメータδは，ｕヌルクラインの傾きを制御するスケール係数である。パラメータεは通常、−ｖ-に等しく設定される。パラメータβは、両方のレジームにおいてｖヌルクラインの傾きを制御する抵抗値である。τρ時間定数パラメータは、指数関数的減衰だけでなく、各レジームにおいて別個にヌルクラインの傾きを制御する。
【００６０】
[0061]モデルは、電圧ｖが値ｖsに達したときにスパイクするように定義され得る。続いて、状態は（スパイク事象と同じ１つのものであり得る）リセット事象でリセットされ得る。
【００６１】
【数１１】
2017513127.tif 000013
【００６２】
【数１２】
2017513127.tif 000014
【００６３】
ここで、
【００６４】
【数１３】
2017513127.tif 000015
【００６５】
およびΔｕはパラメータである。リセット電圧
【００６６】
【数１４】
2017513127.tif 000016
【００６７】
は通常、ｖ-にセットされる。
【００６８】
[0062]瞬時結合（momentary coupling）の原理によって、状態について（また、単一の指数項による）だけではなく、特定の状態に到達するのに必要な時間についても、閉形式解が可能である。近い形式状態解は、次のとおりである。
【００６９】
【数１５】
2017513127.tif 000017
【００７０】
【数１６】
2017513127.tif 000018
【００７１】
[0063]したがって、モデル状態は、入力（シナプス前スパイク）または出力（シナプス後スパイク）などの事象に伴ってのみ更新され得る。また、演算が（入力があるか、出力があるかを問わず）任意の特定の時間に実行され得る。
【００７２】
[0064]その上、瞬時結合原理によって、反復的技法または数値解法（たとえば、オイラー数値解法）なしに、特定の状態に到達する時間が事前に決定され得るように、シナプス後スパイクの時間が予想され得る。前の電圧状態ｖ0を踏まえ、電圧状態ｖfに到達するまでの時間遅延は、次の式によって与えられる。
【００７３】
【数１７】
2017513127.tif 000019
【００７４】
[0065]スパイクが、電圧状態ｖがｖsに到達する時間に生じると定義される場合、電圧が所与の状態ｖにある時間から測定されたスパイクが生じるまでの時間量、または相対的遅延に関する閉形式解は、次のとおりである。
【００７５】
【数１８】
2017513127.tif 000020
【００７６】
ここで、
【００７７】
【数１９】
2017513127.tif 000021
【００７８】
は通常、パラメータｖ+にセットされるが、他の変形も可能であり得る。
【００７９】
[0066]モデルダイナミクスの上記の定義は、モデルが正レジームにあるか、それとも負レジームにあるかに依存する。上述のように、結合およびレジームρは、事象に伴って計算され得る。状態の伝搬のために、レジームおよび結合（変換）変数は、最後の（前の）事象の時間における状態に基づいて定義され得る。続いてスパイク出力時間を予想するために、レジームおよび結合変数は、次の（最新の）事象の時間における状態に基づいて定義され得る。
【００８０】
[0067]Ｃｏｌｄモデルの、適時にシミュレーション、エミュレーションまたはモデルを実行するいくつかの可能な実装形態がある。これは、たとえば、事象更新モード、ステップ事象更新モード、およびステップ更新モードを含む。事象更新は、（特定の瞬間における）事象または「事象更新」に基づいて状態が更新される更新である。ステップ更新は、間隔（たとえば、１ｍｓ）をおいてモデルが更新される更新である。これは必ずしも、反復的技法または数値解法を必要とするとは限らない。また、事象がステップもしくはステップ間で生じる場合または「ステップ事象」更新によってモデルを更新するのみによって、ステップベースのシミュレータにおいて限られた時間分解能で事象ベースの実装形態が可能である。
分散計算
[0068]本開示の態様は、分散計算を対象とする。計算は処理ノードの集団（population）を介して分散され得、いくつかの態様では、処理ノードの集団は、１つまたは複数の計算チェーンにおいて構成され得る。１つの例示的な構成では、分散計算は深層信念（Belief）ネットワーク（ＤＢＮ）を介して実装される。いくつかの態様では、ＤＢＮは、制限ボルツマンマシン（ＲＢＭ）の層を積み重ねることによって取得され得る。ＲＢＭは、入力のセットの確率分布を学習することができる人工ニューラルネットワークの一種である。ＤＢＮの下部ＲＢＭは特徴抽出器として機能し得、上部ＲＢＭは分類器として機能し得る。
【００８１】
[0069]いくつかの態様では、ＤＢＮは、スパイキングニューラルネットワーク（ＳＮＮ）を使用して構築されてもよく、バイナリであってもよい。スパイキングＤＢＮは、スパイキングＲＢＭを積み重ねることによって取得され得る。一例では、ＤＢＮは、スパイキングＲＢＭを特徴抽出器として、およびスパイキングＲＢＭを分類器として積み重ねることによって取得される。
【００８２】
[0070]ＤＢＮは、たとえば、コンストラスティブダイバージェンス（Contrastive-Divergence）（ＣＤ）などのトレーニングプロセスを介してトレーニングされ得る。いくつかの態様では、ＤＢＮの各ＲＢＭは別々にトレーニングされ得る。
【００８３】
[0071]事前トレーニングされたＲＢＭがあれば、スパイキングニューラルネットワークまたは他のネットワークは、サンプリング動作を実行するように構成され得る。１つの例示的な構成では、ＳＮＮはギブスサンプリング（Gibbs sampling）を実行し得る。さらに、ＳＮＮは、事前トレーニングされたＲＢＭの重み値をＳＮＮに移植し（port）得る。
【００８４】
[0072]複数の並列サンプリングチェーン（たとえば、ギブスサンプリングチェーン）は、スパイキングニューラルネットワーク内で実行しているＲＢＭに含まれ得る。いくつかの態様では、並列サンプリングチェーンの数は、チェーンに関連付けられるシナプス遅延に対応し得る。たとえば、いくつかの構成では、並列サンプリングチェーンの数はｄf＋ｄrの値と等しくてよく、ｄfおよびｄrは、それぞれフォワードシナプス遅延およびリバースシナプス遅延を表す。さらに、ＲＢＭ内のサンプリングチェーンのうちの１つまたは複数は、選択的に停止または抑制され得る。たとえば、いくつかの態様では、サンプリングチェーンは、外部入力を介して抑制され得る。他の態様では、サンプリングチェーンは、サンプリングチェーンのノード間で帯域内メッセージトークン内で渡すことによって抑制され得る。
特徴抽出器としてのスパイキングＲＢＭ
[0073]トレーニングされたＲＢＭは、サンプリング（たとえば、ギブスサンプリング）を通じて生成モデルとして、特徴抽出器として、または分類器として使用され得る。
【００８５】
[0074]一構成では、ＲＢＭのノードはニューロンを備え得る。この構成では、ＲＢＭが特徴抽出器として使用される場合、スパイクは順方向に（すなわち、可視層から隠れ層に）伝搬し得る。いくつかの態様では、ＲＢＭは、スパイクが順方向だけに伝搬するように操作され得る。この場合、ＲＢＭはフォワードシナプスを使用して操作され得る。さらに、いくつかの態様では、リバースシナプスは、隠れ層ニューロンから可視層ニューロンに無効にされ得る。
【００８６】
[0075]特徴ベクトルを計算するために、スパイクは、入力パターン（または機能）ｘに基づいて、外因性の軸索を通じて可視層ニューロンに入力され得る。スパイクは、たとえばｘi＝１の場合、可視層ニューロンｖiに入力され得る。これは、何らかの時間に可視層ニューロン内にスパイクパターンｘ（すなわち、ｖ(t)＝ｘ）を作成する。さらに、正の電流は、同じ時間ｔにバイアスニューロンスパイクを作るためにバイアスニューロンｖ0に入力され得る。
【００８７】
[0076]これらのスパイクは、隠れ状態ベクトルｈ(t+df)をもたらすｄf  ｔａｕの伝搬遅延の後、隠れニューロンに伝搬され得、入力ｘに対応する特徴ベクトルとして機能し得る。
分類器としてのスパイキングＲＢＭ
[0077]いくつかの態様では、スパイキングＲＢＭは、分類器として構成され得る。この構成では、ｘは分類されるべき入力（または、特徴）ベクトルを表し得、また、ｙはクラスレベルを表すバイナリインデックスベクトルを表し得る。スパイキングＲＢＭは、ｖ＝［ｘ；ｙ］として入力ベクトルとラベルベクトルとを追加することによって、間接（joint）ベクトル上でトレーニングされ得る。したがって、隠れ層ニューロンは、トレーニングセットから入力ベクトルとラベルベクトルとの間の相関関係を学習し得る。
【００８８】
[0078]いくつかの態様では、所与の入力ベクトルｘのラベルベクトルｙを推定することが望ましい場合がある。ＲＢＭ分類器は、たとえば、条件付きギブスサンプリング、または他のサンプリングプロセスを通じてこれを達成し得る。条件付きギブスサンプリングでは、入力ニューロン状態は、パターンｘにクランプ（clamp）され得る。入力パターンがｘにクランプされると、スパイキングＲＢＭは、条件付き確率分布関数Ｐ（ｙ｜ｘ）に応じて異なるラベルベクトルパターンを生成し得る。最も頻度の高いラベルベクトルパターンが、最良の推定値
【００８９】
【数２０】
2017513127.tif 000022
【００９０】
を提供し得る。
入力スパイクパターンのクランピング
[0079]ギブスサンプリングチェーンは、すべてのｄf＋ｄr  ｔａｕの後、入力ニューロンを訪問して（visit）更新し得る。しかしながら、推論のために、入力されたスパイクパターンが更新されない場合がある。代わりに、いくつかの態様では、入力スパイクパターンは固定されたパターンｘに応じてクランプされ得る。これは、隠れ層から入力ニューロンへの逆シナプスを無効にして、ｄf＋ｄr  ｔａｕの遅延およびＷrecの増加した重みとともに入力ニューロンからそれら自体に再発性（recurrent）シナプスを追加することによって達成され得る。この修正によって、入力スパイクパターンｘは、ギブスサンプリングチェーンに一度入力され得る。したがって、すべてのｄf＋ｄr  ｔａｕの後に同じスパイクパターンが繰り返す。
ラベルニューロンスパイクのカウンティング
[0080]スパイキングＲＢＭが条件付きギブスサンプリングを実行するときに、各ラベルニューロンからスパイクの数をカウントして、分類決定を行うためにカウントを使用することが望ましい場合がある。カウンタニューロンは、各ラベルニューロンから対応するカウンタニューロンへのシナプスを有するラベルニューロンごとに含まれ得る。１つの例示的な態様では、シナプスは、単位遅延および／または単位重みで構成され得る。
【００９１】
[0081]カウンタニューロンは、リーキー積分発火（ＬＩＦ）ニューロン、確率的リーキー積分発火（ＳＬＩＦ）、および同等物などの積分発火ニューロンを備え得る。もちろん、これは単なる例示であり、他のタイプのモデルニューロンも使用され得る。ラベルカウンタニューロンからのスパイクは、スパイキングＲＢＭ分類器からの出力スパイクである。いくつかの構成では、カウンタニューロンは、しきい値（たとえば、リングしきい値）で構成され得る。分類のために要する時間は、カウンタニューロンのしきい値に応じて設定され得る。
ネットワークリセット
[0082]いくつかの構成では、分散計算システムはリセット操作を実行するように構成され得る。たとえば、複数の出力スパイクを回避するために、ネットワークから出力スパイクが発送された（dispatched）後、スパイキングニューラルネットワークがリセットされ得る。別の例では、ネットワークは、分類のための新たな入力ベクトルを供給する前にリセットされ得る。さらなる例では、ネットワークリセットは、ｄf＋ｄrサンプリングチェーンのすべてを抑制して、カウンタニューロンの膜電位をリセットすることによって実装され得る。
【００９２】
[0083]図５は、本開示のいくつかの態様による、上述の、汎用プロセッサ５０２を使用する分散計算の例示的な実装形態５００を示す。計算ネットワーク（ニューラルネットワーク）、遅延、および周波数ビン情報に関連付けられる変数（ニューラル信号）、シナプス重み、システムパラメータは、メモリブロック５０４に記憶され得、汎用プロセッサ５０２で実行される命令は、プログラムメモリ５０６からロードされ得る。本開示のある態様では、汎用プロセッサ５０２にロードされた命令は、処理ノードの第１の集団で第１の計算チェーンにおける結果の第１のセットを計算して、結果の第１のセットを処理ノードの第２の集団に渡して、結果の第１のセットを渡した後、処理ノードの第１の集団で第１の休止状態に入るためのコードを備え得る。本命令はまた、結果の第１のセットに基づいて、処理ノードの第２のセットで第１の計算チェーンにおける結果の第２のセットを計算して、結果の第２のセットを処理ノードの第１の集団に渡して、結果の第２のセットを渡した後、処理ノードの第２の集団で第２の休止状態に入って、第１の計算チェーンをオーケストレートするためのコードを備え得る。
【００９３】
[0084]図６は、本開示のいくつかの態様による、上述の分散計算の例示的な実装形態６００を示し、メモリ６０２は、相互接続ネットワーク６０４を介して、計算ネットワーク（ニューラルネットワーク）の個々の（分散された）処理ユニット（ニューラルプロセッサ）６０６とインターフェースされ得る。計算ネットワーク（ニューラルネットワーク）、遅延、周波数ビン情報に関連付けられる変数（ニューラル信号）、シナプス重み、システムパラメータは、メモリ６０２に記憶され得、また相互接続ネットワーク６０４の接続を介してメモリ６０２から各処理ユニット（ニューラルプロセッサ）６０６にロードされ得る。本開示のある態様では、処理ユニット６０６は、処理ノードの第１の集団で第１の計算チェーンにおける結果の第１のセットを計算して、結果の第１のセットを処理ノードの第２の集団に渡して、結果の第１のセットを渡した後、処理ノードの第１の集団で第１の休止状態に入るように構成され得る。処理ユニット６０６はまた、結果の第１のセットに基づいて、処理ノードの第２のセットで第１の計算チェーンにおける結果の第２のセットを計算して、結果の第２のセットを処理ノードの第１の集団に渡して、結果の第２のセットを渡した後、処理ノードの第２の集団で第２の休止状態に入って、第１の計算チェーンをオーケストレートするように構成され得る。
【００９４】
[0085]図７は、上述の分散計算の例示的な実装形態７００を示している。図７に示されるように、１つのメモリバンク７０２は、計算ネットワーク（ニューラルネットワーク）の１つの処理ユニット７０４に直接インターフェースされ得る。各メモリバンク７０２は、対応する処理ユニット（ニューラルプロセッサ）７０４遅延、周波数ビン情報に関連付けられる変数（ニューラル信号）、シナプス重み、および／またはシステムパラメータを記憶し得る。本開示のある態様では、処理ユニット７０４は、処理ノードの第１の集団で第１の計算チェーンにおける結果の第１のセットを計算して、結果の第１のセットを処理ノードの第２の集団に渡して、結果の第１のセットを渡した後、処理ノードの第１の集団で第１の休止状態に入るように構成され得る。処理ユニット７０４はまた、結果の第１のセットに基づいて、処理ノードの第２のセットで第１の計算チェーンにおける結果の第２のセットを計算して、結果の第２のセットを処理ノードの第１の集団に渡して、結果の第２のセットを渡した後、処理ノードの第２の集団で第２の休止状態に入って、第１の計算チェーンをオーケストレートするように構成され得る。
【００９５】
[0086]図８は、本開示のいくつかの態様による、ニューラルネットワーク８００の例示的な実装形態を示す。図８に示すように、ニューラルネットワーク８００は、本明細書に記載した方法の様々な動作を実行し得る複数のローカル処理ユニット８０２を有することができる。各ローカル処理ユニット８０２は、ニューラルネットワークのパラメータを記憶する、ローカルステートメモリ８０４およびローカルパラメータメモリ８０６を備え得る。また、ローカル処理ユニット８０２は、ローカルモデルプログラムを記憶するためのローカル（ニューロン）モデルプログラム（ＬＭＰ）メモリ８０８、ローカル学習プログラムを記憶するためのローカル学習プログラム（ＬＬＰ）メモリ８１０、およびローカル接続メモリ８１２を有し得る。さらに、図８に示されるように、各ローカル処理ユニット８０２は、ローカル処理ユニットのローカルメモリの構成を提供するための設定プロセッサユニット８１４と、またローカル処理ユニット８０２間のルーティングを提供するルーティング接続処理ユニット８１６とインターフェースされ得る。
【００９６】
[0087]一構成では、ニューロンモデルは、分散計算のために構成される。本ニューロンモデルは、結果の第１のセットを計算するための手段と、結果の第１のセットを渡すための手段と、第１の休止状態に入るための手段と、結果の第２のセットを計算するための手段と、結果の第２のセットを渡すための手段と、第２の休止状態に入るための手段と、オーケストレート手段とを含む。一態様では、結果の第１のセットを計算するための手段、結果の第１のセットを渡すための手段、第１の休止状態に入るための手段、結果の第２のセットを計算するための手段、結果の第２のセットを渡すための手段、第２の休止状態に入るための手段、および／またはオーケストレート手段は、記載された機能を実行するように構成された汎用プロセッサ５０２、プログラムメモリ５０６、メモリブロック５０４、メモリ６０２、相互接続ネットワーク６０４、処理ユニット６０６、処理ユニット７０４、ローカル処理ユニット８０２、およびまたはルーティング接続処理要素８１６であり得る。
【００９７】
[0088]別の構成では、上述の手段は、上記の手段によって記載された機能を実行するように構成された任意のモジュールまたは任意の装置であり得る。
【００９８】
[0089]本開示のいくつかの態様によれば、各ローカル処理ユニット８０２は、ニューラルネットワークの所望の１つまたは複数の機能的特徴に基づいて、ニューラルネットワークのパラメータを決定して、決定されたパラメータがさらに適応され、同調され、更新されるにつれて、所望の機能的特徴に向けて１つまたは複数の機能的特徴を開発するように構成され得る。
【００９９】
[0090]図９は、本開示の態様による、例示的なＲＢＭ９００を示すブロック図である。図９を参照すると、例示的なＲＢＭ９００は、典型的に可視（９０４ａおよび９０４ｂ）および隠れ（９０２ａ、９０２ｂ、および９０２ｃ）と呼ばれるニューロンの２つの層を含む。２つのニューロンは可視層内に示されており、３つは隠れ層内に示されているが、各層内のニューロンの数は単なる例示であり、また図示および説明を容易にするためであり、限定するものではない。
【０１００】
[0091]可視層のニューロンの各々は、シナプス接続９０６によって隠れ層内のニューロンの各々に接続され得る。しかしながら、この例示的なＲＢＭでは、同じ層のニューロン間にどの接続も提供されない。
【０１０１】
[0092]可視ニューロン状態および隠れニューロン状態は、それぞれＶ∈｛０，１｝nおよびｈ∈｛０，１｝mによって表され得る。いくつかの態様では、ＲＢＭ９００は、可視ベクトルおよび隠れベクトルのパラメトリック同時（joint）分布をモデル化し得る。たとえば、ＲＢＭ９００は、間接状態ベクトル（ｖ；ｈ）に
【０１０２】
【数２１】
2017513127.tif 000023
【０１０３】
の確率を割り当て得、上式で、Ｚは正規化因子であり、Ｅ（ｖ、ｈ）はエネルギー関数である。エネルギー関数Ｅ（ｖ、ｈ）は、たとえば、
【０１０４】
【数２２】
2017513127.tif 000024
【０１０５】
として定義され得、上式で、ｗijは重みであり、ａiおよびｂjはパラメータである。
【０１０６】
[0093]したがって、ＲＢＭ９００が可視状態ベクトル（ｖ）に割り当てる確率は、すべての可能な隠れ状態を合計することによって計算され得る。
【０１０７】
【数２３】
2017513127.tif 000025
【０１０８】
ＲＢＭのトレーニング
[0094]いくつかの態様では、トレーニングデータは、パラメータａ、ｂ、およびＷを選択するために使用され得る。たとえば、トレーニングデータは、ＲＢＭ９００がトレーニングデータセット内のベクトル（ｖ）により高い確率を割り当てるようにパラメータを選択するために使用され得る。より具体的には、パラメータは、すべてのトレーニングベクトルの対数確率の合計を増加させるように選択され得る。
【０１０９】
【数２４】
2017513127.tif 000026
【０１１０】
[0095]一構成では、コンストラスティブダイバージェンス（ＣＤ）は、ＲＢＭ９００のパラメータを近似するために使用され得る。ＣＤ−ｋとも呼ばれるコンストラスティブダイバージェンスは、解を近似するための技法であり、「ｋ」はサンプリングチェーン内の「アップダウン」サンプリングイベントの数を示す。
【０１１１】
[0096]トレーニングベクトルごとに、ＣＤプロセスはＲＢＭの重みを更新する。１つの例示的な態様では、ＣＤ−１はＲＢＭの重みを更新するために使用され得る。可視層ニューロンは、ｖ(0)＝ｖであるように、トレーニングベクトルを用いて刺激され得、ｖはトレーニングベクトルである。ｖ(0)に基づいて、バイナリ隠れ状態ベクトルｈ(1)は、たとえば以下のように生成され得る。
【０１１２】
【数２５】
2017513127.tif 000027
【０１１３】
[0097]隠れ状態ベクトルｈ(1)に基づいて、バイナリ可視状態ベクトルｖ(2)は以下のように再構築され得る。
【０１１４】
【数２６】
2017513127.tif 000028
【０１１５】
[0098]可視状態ベクトルｖ(2)を使用して、バイナリ隠れ状態ベクトルｈ(3)は、式１９に従って生成され得る。
【０１１６】
[0099]したがって、この例における重みは以下のように更新され得る。
【０１１７】
【数２７】
2017513127.tif 000029
【０１１８】
【数２８】
2017513127.tif 000030
【０１１９】
【数２９】
2017513127.tif 000031
【０１２０】
上式で、ηは学習率である。いくつかの態様では、重みは、同じ画像を２回提示して（たとえば、ｖ(1)＝ｖ(0)）、次いで、重み更新を学習するためにＳＴＤＰを適用することによって更新され得る。
【０１２１】
[00100]いくつかの態様では、ＲＢＭ９００は重み共有のために構成され得る。すなわち、対称的な重み更新は、フォワードシナプスとリバースシナプスとの両方が式（２１）に従って更新され得るように実行され得る。
トレーニングされたＲＢＭの使用
[00101]一旦ＲＢＭ９００がトレーニングされると、それは多くの方法で有利に適用され得る。一例では、トレーニングされたＲＢＭは、サンプリングのための生成モデルとして使用され得る。いくつかの態様では、トレーニングされたＲＢＭはギブスサンプリングを実装し得る。もちろん、これは単なる例示であり、限定するものではない。ギブスサンプリングでは、サンプルは、条件付き分布を反復してサンプリングすることによって、同時確率分布から生成される。この例では、トレーニングされたＲＢＭは、式１７の周辺分布に従って可視状態をサンプリングするために使用され得る。
【０１２２】
[00102]一構成では、任意の可視状態ｖ(0)が初期化される。次いで、隠れ状態および可視状態は、式１９および２０の条件付き分布から代替的にサンプリングされ得る（たとえば、ｖ(0)→ｈ(1)→ｖ(2)→ｈ(3)→ｖ(4)．．．）。
【０１２３】
[00103]トレーニングされたＲＢＭの別の例示的な使用は、特徴抽出のためのものである。すなわち、ＲＢＭは、入力ベクトルｘに特徴抽出を実行するように構成された特徴抽出器として機能し得る。たとえば、可視状態ベクトルｖはｘに等しくてよく、対応する隠れ状態ベクトルｈを生成して、隠れ状態ベクトルを特徴ベクトルとして使用し得る。
【０１２４】
[00104]隠れニューロン（たとえば、９０２ａ、９０２ｂ、９０２ｃ）は、可視ニューロン（たとえば、９０４ａ、９０４ｂ）間の相関関係を符号化し得る。さらに、隠れ状態ベクトルは、トレーニングによってベースされる元の可視状態ベクトルと比較して改善された分類を有し得る。
【０１２５】
[00105]いくつかの構成では、追加のＲＢＭは、第１のＲＢＭ（たとえば、９００）から取得された特徴ベクトル上でトレーニングされ得、したがって、様々なレベルの抽出（たとえば、特徴、特徴の特徴、特徴の特徴の特徴等）を有する特徴の階層を取得する。ＲＢＭは、ニューロンのネットワークを形成するために積み重ねられ得る。積み重ねられたＲＢＭは、深層信念ネットワーク（ＤＢＮ）と呼ばれ得る。
【０１２６】
[00106]図１０は、本開示の態様による、例示的なＤＢＮ１０００を示すブロック図である。図１０に示されるように、ＤＢＮ１０００はＲＢＭ１、ＲＢＭ２、およびＲＢＭ３を含む。この例では、ＲＢＭ（たとえば、ＲＢＭ３）は分類器として使用され得る。ＲＢＭの各々は個別にトレーニングされ得、次いでＤＢＮ１０００を形成するために積み重ねられ得る。図１０の例では、分類されるべき入力（または特徴）ベクトル１００２はｘで表され得る。一方、ｙはクラスラベルを表すバイナリインデックスベクトルを表し得る。このように、ＲＢＭ（たとえば、９００）は、間接トレーニングベクトル（すなわち、ｖ＝［ｘ；ｙ］）上でトレーニングすることによって分類器として使用され得る。言い換えれば、入力ニューロン１００２およびラベルニューロン１０１０はグループ化されて、可視ニューロンと呼ばれ得る。
【０１２７】
[00107]入力ニューロン１００２の状態をｘに固定して、残りのニューロン状態にサンプリング（たとえば、条件付きギブスサンプリング）を実行することによって、推論が行われ得る。サンプリングが進むにつれて、ＲＢＭは、（たとえば、入力ニューロン状態上で調整されたラベルニューロン状態ｙのその推定値を生成する。
【０１２８】
[00108]いくつかの態様では、ＲＢＭの層（たとえば、ＲＢＭ１、ＲＢＭ２、およびＲＢＭ３）がＤＢＮ１０００を形成するために積み重ねられている場合、下層（たとえば、ＲＢＭ１、ＲＢＭ２）は特徴抽出器として使用され得、上層（ＲＢＭ３）は分類器として使用され得る。
【０１２９】
[00109]いくつかの態様では、ＲＢＭはスパイキングニューロンを使用することによって生成され得る。スパイキングニューロンモデルおよびネットワークモデルは、式（１９）および（２０）に従って可視状態および隠れ状態のサンプルを生成するためにサンプリング（たとえば、ギブスサンプリング）を実行するために使用され得る。
【０１３０】
[00110]一構成では、ＲＢＭは、ｎ個のスパイキングニューロンにｎ次元の可視状態ベクトルｖを表させ、ｍ個のスパイキングニューロンにｍ次元の隠れ状態ベクトルｈを表させることによって取得され得る。可視ニューロンｖiは、フォワードシナプスとリバースシナプスとを使用することによって隠れニューロンｈjに結合され得る。もちろん、２つのシナプスの使用は単なる例示であり、限定するものではない。フォワードシナプスは可視ニューロンから隠れニューロンにスパイクを伝搬して、リバースシナプスは隠れニューロンから可視ニューロンにスパイクを伝搬する。いくつかの態様では、フォワードシナプスとリバースシナプスの両方のシナプス重みは同じ値（ｗij）に設定される。
【０１３１】
[00111]バイアスニューロンは、ニューロンの各層に追加され得る。バイアスニューロンは、可視ニューロンと隠れニューロンとがより高い／低い確率でスパイクするように、可視ニューロンと隠れニューロンとにバイアスをかけるために使用され得る。可視層および隠れ層内のバイアスニューロンは、それぞれ表記ｖ0およびｈ0によって表され得る。いくつかの態様では、フォワードシナプスは、可視層ｖ0内のバイアスニューロンから、ｂjの重みを有する各隠れ層ニューロンｈjに提供され得る。リバースシナプスは、隠れ層ｈ0内のバイアスニューロンから、ａiの重みを有する各可視ニューロンｖiへの間に結合され得る。さらに、いくつかの態様では、フォワードシナプスおよびリバースシナプスは、Ｗb2bの正の重みを有するｈ0とバイアスニューロンｖ0との間に提供され得る。
【０１３２】
[00112]フォワードシナプスはｄfの遅延を有し得、リバースシナプスはｄrの遅延を有し得る。一構成では、フォワードシナプスの遅延ｄfは、リバースシナプスの遅延ｄrと等しくてよい。いくつかの構成では、フォワードシナプスとリバースシナプスとの両方は、単位遅延（すなわち、ｄf＝ｄr＝１）を有し得る。
可視ニューロン／隠れニューロン
[00113]本開示の態様は、バイナリＲＢＭを生成することを対象とする。これは、たとえば、非バイナリ値はバイナリスパイクを用いて符号化されていないので、有益であり得る。むしろ、バイナリＲＢＭは、スパイクすることによって１のバイナリ状態を表し、スパイクしないことによって０のバイナリ状態を表す。
【０１３３】
[00114]各時間ステップ（タウ）で、隠れ層ニューロン（たとえば、９０２ａ、９０２ｂ、９０２ｃ）は、可視層内のバイアスニューロンと可視ニューロンのスパイク活動によるシナプス電流とを受信し得る。同様に、可視ニューロンは、隠れ層内のバイアスニューロンと隠れ層ニューロンのスパイク活動によるシナプス電流とを受信する。表記ｖ(t)およびｈ(t)は、時間ｔにおける可視ニューロン状態ベクトルおよび隠れニューロンの状態ベクトルを表し得る。
【０１３４】
[00115]一構成では、バイアスニューロンはいつでもスパイクし得る。この構成では、時間ｔにおける隠れニューロンｈjへの全体的なシナプス電流は、次式で与えられ得る。
【０１３５】
【数３０】
2017513127.tif 000032
【０１３６】
[00116]式（１９）によれば、隠れニューロンｈjはシグマ（ｉs）の確率でスパイクすることが望ましい場合がある。これは、たとえば、シグモイド活性化関数を使用してＲＢＭを実装することによって達成され得る。すなわち、一様分布（Ｕｎｉｆ［０，１］）がシグマ（ｉs）よりも大きい場合、隠れ層ニューロンがスパイクし得る。
【０１３７】
[00117]いくつかの態様では、ＲＢＭは、任意の状態変数（たとえば、膜電位）なしで構成され得る。代わりに、隠れ層ニューロンは、過去の活動にかかわらず入力シナプス電流に反応し得る。
【０１３８】
[00118]同様に、可視ニューロンもシグマ（ｉs）の確率でスパイクするためにモデル化され得る。言い換えれば、一様分布（Ｕｎｉｆ［０，１］）がシグマ（ｉs）よりも大きい場合、可視層ニューロンがスパイクし得る。
【０１３９】
[00119]具体的には、時間ｔにおける可視層ニューロンｖiへの全体的なシナプス電流は次式で与えられ得る。
【０１４０】
【数３１】
2017513127.tif 000033
【０１４１】
可視層ニューロンｖiは、式（２０）で述べたように、シグマ（ｉs）の確率でスパイクし得る。
【０１４２】
[00120]したがって、可視ニューロン状態と隠れニューロン状態とは以下のように更新され得る。
【０１４３】
【数３２】
2017513127.tif 000034
【０１４４】
【数３３】
2017513127.tif 000035
【０１４５】
[00121]たとえば、フォワードシナプス遅延ｄfとリバースシナプス遅延ｄrの両方が単位遅延に設定された場合、２つの並列サンプリングチェーン（たとえば、ギブスサンプリングチェーン）は、相互に独立していると指定され得る。
【０１４６】
【数３４】
2017513127.tif 000036
【０１４７】
[00122]いくつかの態様では、サンプリングチェーン（たとえば、ギブスサンプリングチェーン）の数は、フォワードシナプス遅延とリバースシナプス遅延とに依存し得、またラウンドトリップ遅延に等しいｄf＋ｄrによって与えられ得る。
【０１４８】
【数３５】
2017513127.tif 000037
【０１４９】
上式で、ｋは０からｄf＋ｄr−１に実行されるサンプリングチェーンのインデックスである。
【０１５０】
[00123]たとえば、フォワードシナプス遅延がｄf＝１に設定され、リバースシナプス遅延がｄr＝２に設定されると、３つのサンプリングチェーンは以下のように指定され得る。
【０１５１】
【数３６】
2017513127.tif 000038
【０１５２】
[00124]いくつかの態様では、上述のシグモイド活性化関数は、指数関数を用いて近似され得る。
【０１５３】
【数３７】
2017513127.tif 000039
【０１５４】
上式で、およびｂは近似エラーを減少または最小化するために選択されたパラメータである。
【０１５５】
[00125]他の態様では、シグモイド活性化関数はガウス雑音を用いて近似され得る。上述のように、所与のｉsのために、ニューロン（たとえば、隠れニューロンまたは可視ニューロン）は、シグマ（ｉs）の確率で確率的にスパイクし得る。シグモイド関数を計算して一様確率変数を生成する代わりに、シグモイド関数は、たとえば、ガウス確率変数をｉsに追加して、合計としきい値とを比較することによって近似され得る。
【０１５６】
【数３８】
2017513127.tif 000040
【０１５７】
上式で、ａおよびｂは近似エラーを減少させるために選択されたパラメータである。
バイアスニューロン
[00126]一構成では、所与のニューロンの集団（たとえば、ニューロンの層）に関連付けられるバイアスニューロンは、その集団内に活動がある時はいつでもスパイクし得る。これは、たとえば、単純なしきい値ニューロンモデルを使用して、正の重みを有するリバースシナプスおよびフォワードシナプスを使用して可視層および隠れ層におけるバイアスニューロンを接続することによって達成され得る。したがって、ニューロンの集団（たとえば、隠れ層ニューロン）が別の集団（たとえば、可視層ニューロン）からピックアップする場合、対応するバイアスニューロンもまた、活動およびスパイクをピックアップする。たとえば、バイアスニューロンは、入力電流（ｉs）がゼロよりも大きい場合にスパイクし得る。このように、可視層スパイクにおけるバイアスニューロンが時間ｔにスパイクする場合、隠れ層内のバイアスニューロンは時間ｔ＋ｄfでスパイクし得、次に、可視層内のバイアスニューロンをｔ＋ｄf＋ｄrでスパイクさせる。別の例では、ニューロンの各集団内の活動は追跡され得る。バイアスニューロンがスパイクすることを保証するために、追跡された活動に基づいて、適切な時間に外部信号がバイアスニューロンに送信され得る。
【０１５８】
[00127]いくつかの態様では、バイアスニューロン活動は、第１のｄf＋ｄr  ｔａｕのために正の電流を注入することによって開始され（initiated）得る。すなわち、バイアスニューロンは、相互に活動をピックアップするように設定され得る。しかしながら、いくつかの態様では、活動は、バイアスニューロン活動を開始するために、外部電流をバイアスニューロンに注入することによって（たとえば、活動がないときに）開始またはジャンプスタートされ得る。活動は、並列チェーンごとに別々にジャンプスタートされ得る。ｄf＋ｄr並列チェーンがあるので、ジャンプスタートが実行され得る回数は、活性化されるべきチェーンの数に依存し得る。
サンプリングチェーンの選択的な抑制
[00128]本開示の態様によれば、事前にトレーニングされたＲＢＭは、サンプリングチェーン（たとえば、並列ギブスサンプリングチェーン）を通じて変化する（evolving）状態を観察するためにロードされ得る。トレーニングおよび推論の目的のために、サンプリングチェーンのうちの１つまたは複数を選択的に停止することが望ましい場合がある。したがって、一構成では、ＲＢＭ（たとえば、９００）は、１つまたは複数のチェーンを選択的に停止することを可能にするために修正され得る。
【０１５９】
[00129]図１１は、ＲＢＭにおける並列サンプリングチェーン１１００を示すブロック図である。一例では、ネットワーク内でアクティブである２つのギブスサンプリングチェーン（１１１０および１１２０）が指定される、ｄf＝ｄr＝１のケースを考慮する。第１のサンプリングチェーン１１１０はｖ(0)→ｈ(1)→ｖ(2)→ｈ(3)であり、第２のサンプリングチェーン１１２０はｈ(0)→ｖ(1)→ｈ(2)→ｖ(3)と指定され得る。いくつかの態様では、第１のサンプリングチェーン１１１０がアクティブなままで、第２のサンプリングチェーン１１２０を停止することが望ましい場合がある。
【０１６０】
[00130]時間ｔ＝０での（隠れ層内のバイアスニューロン活動を含む）隠れニューロン活動が停止されると、時間ｔ＝１での可視ニューロン（ｖ(1)）はどのような入力電流も受信しない場合がある。一例では、シグマ（０）＝０．５の場合、可視ニューロン（たとえば、ｖ(0)）は、０．５の確率でスパイクし得、新しいチェーンが開始または起動（initiate）され得る。したがって、アクティブなギブスサンプリングチェーンを停止する機能とともに、新しいチェーンがそれ自体によって開始する可能性を減少させることが望ましい場合がある。
【０１６１】
[00131]１つの例示的な構成では、ＲＢＭニューロンモデルは、入力シナプス電流がゼロに等しい場合はスパイクしないように修正され得る。すなわち、ＲＢＭは、入力電流（ｉs）がゼロに等しくなく、シグマ（ｉs）が一様分布（Ｕｎｉｆ［０，１］）よりも小さい場合にスパイクが出力されるように定義され得る。
【０１６２】
[00132]第２のチェーン（たとえば、ｈ(0)→ｖ(1)→ｈ(2)→ｖ(3)→ｈ(4)・・・）を選択的に抑制するために、可視層／隠れ層内のニューロン（たとえば、ｈ(0)、ｖ(1)）は適切な時間に停止され得る。チェーンを停止することは、層ごとに抑制性ニューロンまたはオーケストレータニューロンを追加することによって達成され得る。すなわち、オーケストレータニューロンは、適切な時間（たとえば、ｔ＝０）にチェーンを抑制するために負の電流を注入することによって、可視層ニューロン集団／隠れ層ニューロン集団と相互作用する（interact with）。これは、図１２に一例として示されている。図１２に示されるように、オーケストレータニューロン１２０２ａおよび１２０２ｂは、ＲＢＭ１２００の隠れ層および可視層に追加される。図１１の例を参照すると、オーケストレータニューロン１２０２ａ（Ｉｎｈ  １）は、（図１１に示される）隠れ層活動ｈ(0)を抑制するために、時間ｔ＝０に隠れ層に到着する負の電流を注入する。同様に、オーケストレータニューロン１２０２ｂ（Ｉｎｈ  ０）は、（図１１に示される）可視層活動ｖ(1)を抑制するために、時間ｔ＝１に可視層に到着する負の電流を注入する。
【０１６３】
[00133]第２のチェーン１１２０上のサンプリングが停止されると、第２のサンプリングチェーン１１２０は休止状態になるが、サンプリングは第１のサンプリングチェーン１１１０上で実行され続ける。いくつかの態様では、バイアスニューロン（たとえば、バイアス０およびバイアス１）はまた、スパイク確率を調節するために隠れ層および可視層に追加され得る。
【０１６４】
[00134]サンプリングチェーンを抑制することをさらに助けるために、ＲＢＭ１２００は、層内の、抑制性ニューロンと他のニューロンとの間の増加した負の重み（−Ｗinh）を有するシナプス（たとえば、１２０４ａ、１２０４ｂ）で構成され得る。いくつかの態様では、増加した負の重みを有するシナプスはまた、層内で抑制性ニューロンからバイアスニューロンに提供され得る。
【０１６５】
[00135]いくつかの態様では、抑制性重み値（Ｗinh）は、他のシナプスからの可能な興奮性寄与にもかかわらず、シグマ（ｉs）が実質的にゼロに近いように定義され得る。
シグモイド活性化関数をシフトする
[00136]別の構成では、第２のチェーンは、シグモイド活性化関数をシフトすることによって抑制され得る。シグモイド活性化関数は、オフセット電流（ｉ0）を使用してシフトされ得る。この構成では、可視ニューロン／隠れニューロンはゼロシナプス電流を受信するやいなやスパイクしない。したがって、オフセット値ｉ0は、σ（−ｉ0）が実質的にゼロに近くなるような値に設定され得る。すなわち、第２のチェーン内のニューロンは、一様分布（たとえば、Ｕｎｉｆ［０，１］）がシフトされたシグモイド活性化関数（ｓｉｇｍａ（ｉs−ｉ0））よりも大きい場合にスパイクし得る。そうではない場合、第２のチェーン内のニューロンはスパイクしないだろう。
【０１６６】
[00137]いくつかの態様では、アクティブなギブスサンプリングチェーン内のこのシフトを考慮するために、同じオフセット値（ｉ0）が、バイアスニューロンから可視ニューロン／隠れニューロンへのシナプスの重みに追加され得る。バイアスニューロンはアクティブなチェーン内で常にスパイクし得るので、オフセットの影響が減少され得る。
【０１６７】
[00138]上記に示したように、第２のサンプリングチェーン１１２０の抑制は、層ごとに抑制性ニューロンまたはオーケストレータニューロン（たとえば、１２０２ａ、１２０２ｂ）を追加して、その層内の抑制性ニューロンから他のニューロンへの強力な負の重み（−Ｗinh）を有するシナプスを使用することによって達成され得る。
チャネルアプローチの制御
[00139]別の構成では、第２のチェーン（たとえば、１１２０）は、バイアスニューロンと可視ニューロンおよび隠れニューロンとの間のオーケストレータシナプスなどのシナプスを追加することによって抑制され得る。いくつかの態様では、フォワードシナプスは、可視層（ｖ0）内のバイアスニューロンから隠れニューロンに追加され得、リバースシナプスは、隠れ層内（ｈ0）のバイアスニューロンから可視ニューロンに追加され得る。
【０１６８】
[00140]バイアスニューロンがスパイクすると、オーケストレータシナプスは、制御チャネル（シナプス電流を搬送する通常のチャネルと比較して異なるチャネル）に電流を注入し得る。このように、ＲＢＭは、制御チャネルに沿って入力電流を受信する時だけにスパイクするために修正され得る（すなわち、ｉc＞０，およびＵｎｉｆ［０，１］＞シグマ（ｉs），上式で、ｉcは制御チャネル内の全体的な電流を表す）。
【０１６９】
[00141]いくつかの態様では、第２のチェーン（たとえば、ｈ(0)→ｖ(1)→ｈ(2)→ｖ(3)→ｈ(4)・・・）は、適切な時間に可視層／隠れ層内のバイアスニューロン（たとえば、図１２におけるバイアス０およびバイアス１）を抑制することによって選択的に抑制され得る。この構成では、サンプリングチェーンは終了され得、またそれ自体によって開始しない場合がある。新しいチェーンを開始させるために、適切な時間にバイアスニューロンのうちの１つ（たとえば、図１２におけるバイアス０およびバイアス１）に正の電流が入力され得る。
【０１７０】
[00142]図１３Ａ〜図１３Ｆは、本開示の態様による、分類、認識、および生成のためにトレーニングされた例示的なＤＢＮを示すブロック図である。例示的なＤＢＮのＲＢＭは、順番に別々にトレーニングされ得る。図１３Ａは、１つの可視層と３つの隠れ層とを含むＤＢＮ１３００を示す。この例では、ＤＢＮ１３００の各層は、ＳＬＩＦニューロンで構成される。オーケストレータニューロンは、各層で提供され、設計嗜好に従ってサンプリングチェーンを停止および／または開始するように構成される。図１３Ａでは、可視層を隠れ層１に接続する第１のＲＢＭが、たとえばＣＤなどのトレーニング技法を使用してトレーニングされる。可視層は、サンプリングを開始する（initiate）ために、外因性の軸索（ＥＡ）を介して可視刺激（たとえば、スパイク）を受信する。フォワードシナプスは単位遅延（Ｄ＝１）で構成され、リバースシナプスは２の遅延（Ｄ＝２）で構成される。オーケストレータニューロン（たとえば、Ｉｎｈ０およびＩｎｈ１）は、トレーニング中にＤＢＮの後続の層へのサンプリングを抑制する。
【０１７１】
[00143]図１３Ｂでは、隠れ層１を隠れ層２に接続する第２のＲＢＭがトレーニングされる。いくつかの態様では、トレーニングされた隠れ層１は、隠れ層２をトレーニングするための可視層として機能し得る。図１３Ｃでは、隠れ層２およびラベルを隠れ層に接続する第３のＲＢＭがトレーニングされ得る。トレーニングされたＤＢＮは、次に、図１３Ｄに示されるように推論のために使用され得る。入力が入力刺激軸索を通じて送信され得、次に、出力がＬａｂｅｌ＿Ｏｕｔｐｕｔニューロンから読み出される。図１３Ｅに示されるように、ＤＢＮは生成モデルとして実行され得る。生成モデルでは、ＤＢＮは、ラベルをＬａｂｅｌ＿Ｓｔｉｍｕｌｕｓ軸索を通じた入力として受け取る。対応する生成されたサンプルは、可視ニューロン内のスパイクパターンを可視化することにより見られ得る。図１３Ｆは、例示的なＤＢＮ１３５０を示す。図１３Ｆに示されるように、図１３Ａ〜図１３Ｅにおけるシナプス接続のオーバーレイは、例示的なＤＢＮ１３５０に含まれる。したがって、例示的なＤＢＮ１３５０は、図１３Ａ〜図１３Ｅに示されるように、特定の接続をオフに切り替えることによって、特定のモードの動作（たとえば、手書きの（handwriting）分類）のために構成され得る。
【０１７２】
[00144]図１４は、分散計算のための方法１４００を示す。ブロック１４０２で、ニューロンモデルは、オーケストレータノードを処理ノードに接続する。ブロック１４０４で、ニューロンモデルは、オーケストレータノードで計算の開始および停止を制御する。さらに、ブロック１４０６で、ニューロンモデルは、処理ノードの集団間で中間計算を渡す。
【０１７３】
[00145]図１５は、分散計算のための方法１５００を示す。ブロック１５０２で、ニューロンモデルは、処理ノードの第１の集団で、第１の計算チェーンにおける結果の第１のセットを計算する。第１の計算チェーンは、たとえば、ＳＮＮ、ＤＢＮ、または深層ボルツマンマシンを備え得る。第１の計算チェーン（たとえば、ＤＢＮ）は、ＳＴＤＰ、または他の学習技法を介してトレーニングされ得る。
【０１７４】
[00146]ブロック１５０４で、ニューロンモデルは、結果の第１のセットを処理ノードの第２の集団に渡す。ブロック１５０６で、ニューロンモデルは、結果の第１のセットを渡した後、処理ノードの第１の集団で第１の休止状態に入る。いくつかの態様では、第１の休止状態は、複数の永続チェーンを並列に操作するためにおよび並列チェーンにわたって平均化される重み更新のために使用される増加したシナプス遅延およびシナプス遅延、を含み得る。
【０１７５】
[00147]ブロック１５０８で、ニューロンモデルは、結果の第１のセットに基づいて、処理ノードの第２のセットで第１の計算チェーンにおける結果の第２のセットを計算する。ブロック１５１０で、ニューロンモデルは、結果の第２のセットを処理ノードの第１の集団に渡す。ブロック１５１２で、ニューロンモデルは、結果の第２のセットを渡した後、処理ノードの第２の集団で第２の休止状態に入る。
【０１７６】
[00148]ブロック１５１４で、ニューロンモデルは、第１の計算チェーンをオーケストレートする。オーケストレートすることは外部入力を介して行われ得、外部入力は興奮性でもよく、抑制性でもよい。オーケストレートすることはまた、帯域内（in-band）メッセージトークンを渡すことによって行われ得る。
【０１７７】
[00149]いくつかの態様では、処理ノードはニューロンを備え得る。ニューロンはＬＩＦニューロン、ＳＬＩＦニューロン、または他のタイプのモデルニューロンであり得る。
【０１７８】
[00150]いくつかの態様では、第１の計算チェーンをオーケストレートすることは、処理ノードの集団間に結果を渡すタイミングを制御することを含み得る。他の態様では、オーケストレートすることは、休止状態のタイミングを制御することを含む。さらなる態様では、オーケストレートすることは、結果のセット（a set of results）を計算するタイミングを制御することを含む。
【０１７９】
[00151]いくつかの態様では、本方法は、第１の休止状態中に、処理ノードの第１の集団によって、追加の計算を実行し、並列計算チェーンを作成することをさらに含み得る。並列計算チェーンは、永続チェーンとデータチェーンとを備え得る。隠れニューロンおよび可視ニューロンは、永続的なコンストラスティブダイバージェンス（ＣＤ）または他の学習技法を使用して学習するために、永続チェーンとデータチェーンとの間の交互配列を有し得る。
【０１８０】
[00152]いくつかの態様では、本方法は、帯域内メッセージトークンパッシングまたは外部入力を介して、オーケストレーション（orchestration）で第１の計算チェーンをリセットすることをさらに含み得る。
【０１８１】
[00153]いくつかの態様では、少なくとも１つの内部ノード状態またはノードスパイクが、一連の（a round of）計算の開始および／または停止をトリガし得る。
【０１８２】
[00154]上述した方法の様々な動作は、対応する機能を実行することが可能な任意の好適な手段によって実行され得る。それらの手段は、限定はしないが、回路、特定用途向け集積回路（ＡＳＩＣ）、またはプロセッサを含む、様々なハードウェアおよび／またはソフトウェア構成要素および／またはモジュールを含み得る。概して、図に示されている動作がある場合、それらの動作は、同様の番号をもつ対応するカウンターパートのミーンズプラスファンクション構成要素を有し得る。本開示は、スパイキングニューラルネットワークに関連して説明されたが、本開示は、自律神経ニューロンを有する任意の分散型実装形態に等しく適用される。
【０１８３】
[00155]本明細書で使用する「決定」という用語は、多種多様なアクションを包含する。たとえば、「決定」は、計算すること、算出すること、処理すること、導出すること、調査すること、ルックアップすること（たとえば、テーブル、データベースまたは別のデータ構造においてルックアップすること）、確認することなどを含み得る。さらに、「決定」は、受信すること（たとえば、情報を受信すること）、アクセスすること（たとえば、メモリ中のデータにアクセスすること）などを含み得る。さらに、「決定」は、解決すること、選択すること、選定すること、確立することなどを含み得る。
【０１８４】
[00156]本明細書で使用する、項目のリスト「のうちの少なくとも１つ」を指す句は、単一のメンバーを含む、それらの項目の任意の組合せを指す。一例として、「ａ、ｂ、またはｃのうちの少なくとも１つ」は、ａ、ｂ、ｃ、ａ−ｂ、ａ−ｃ、ｂ−ｃ、およびａ−ｂ−ｃを包含するものとする。
【０１８５】
[00157]本開示に関連して説明した様々な例示的な論理ブロック、モジュール、および回路は、汎用プロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ信号（ＦＰＧＡ）または他のプログラマブル論理デバイス（ＰＬＤ）、個別ゲートまたはトランジスタ論理、個別ハードウェア構成要素、あるいは本明細書で説明した機能を実行するように設計されたそれらの任意の組合せを用いて実装または実行され得る。汎用プロセッサはマイクロプロセッサであり得るが、代替として、プロセッサは、任意の市販のプロセッサ、コントローラ、マイクロコントローラまたは状態機械であり得る。プロセッサはまた、コンピューティングデバイスの組合せ（たとえば、ＤＳＰとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、ＤＳＰコアと連携する１つまたは複数のマイクロプロセッサ、あるいは任意の他のそのような構成）として実装され得る。
【０１８６】
[00158]本開示に関連して説明した方法またはアルゴリズムのステップは、ハードウェアで直接実施されるか、プロセッサによって実行されるソフトウェアモジュールで実施されるか、またはその２つの組合せで実施され得る。ソフトウェアモジュールは、当技術分野で知られている任意の形式の記憶媒体で存在し得る。使用され得る記憶媒体のいくつかの例は、ランダムアクセスメモリ（ＲＡＭ）、読出し専用メモリ（ＲＯＭ）、フラッシュメモリ、消去可能プログラマブル読出し専用メモリ（ＥＰＲＯＭ）、電気的消去可能プログラマブル読出し専用メモリ（ＥＥＰＲＯＭ（登録商標））、レジスタ、ハードディスク、リムーバブルディスク、ＣＤ−ＲＯＭなどを含む。ソフトウェアモジュールは、単一の命令、または多数の命令を備えることができ、いくつかの異なるコードセグメント上で、異なるプログラム間で、複数の記憶媒体にわたって分散され得る。記憶媒体は、プロセッサがその記憶媒体から情報を読み取ることができ、その記憶媒体に情報を書き込むことができるように、プロセッサに結合され得る。代替として、記憶媒体はプロセッサと一体化され得る。
【０１８７】
[00159]本明細書で開示する方法は、説明した方法を達成するための１つまたは複数のステップまたはアクションを備える。本方法のステップおよび／またはアクションは、特許請求の範囲から逸脱することなく互いに交換され得る。言い換えれば、ステップまたはアクションの特定の順序が指定されない限り、特定のステップおよび／またはアクションの順序および／または使用は、特許請求の範囲から逸脱することなく変更され得る。
【０１８８】
[00160]説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ハードウェアで実装される場合、例示的なハードウェア構成はデバイス中に処理システムを備え得る。処理システムは、バスアーキテクチャを用いて実装され得る。バスは、処理システムの特定の適用例および全体的な設計制約に応じて、任意の数の相互接続バスとブリッジとを含み得る。バスは、プロセッサと、機械可読媒体と、バスインターフェースとを含む様々な回路を互いにリンクし得る。バスインターフェースは、ネットワークアダプタを、特に、バスを介して処理システムに接続するために使用され得る。ネットワークアダプタは、信号処理機能を実装するために使用され得る。いくつかの態様では、ユーザインターフェース（たとえば、キーパッド、ディスプレイ、マウス、ジョイスティックなど）もバスに接続され得る。バスはまた、タイミングソース、周辺機器、電圧調整器、電力管理回路などの様々な他の回路にリンクし得るが、それらは当技術分野でよく知られており、したがってこれ以上は説明されない。
【０１８９】
[00161]プロセッサは、機械可読媒体に記憶されたソフトウェアの実行を含む、バスおよび一般的な処理を管理することを担当し得る。プロセッサは、１つまたは複数の汎用および／または専用プロセッサを用いて実装され得る。例としては、マイクロプロセッサ、マイクロコントローラ、ＤＳＰプロセッサ、およびソフトウェアを実行し得る他の回路を含む。ソフトウェアは、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語などの名称にかかわらず、命令、データ、またはそれらの任意の組合せを意味すると広く解釈されたい。機械可読媒体は、一例として、ランダムアクセスメモリ（ＲＡＭ）、フラッシュメモリ、読出し専用メモリ（ＲＯＭ）、プログラマブル読出し専用メモリ（ＰＲＯＭ）、消去可能プログラマブル読出し専用メモリ（ＥＰＲＯＭ）、電気的消去可能プログラム可能読出し専用メモリ（ＥＥＰＲＯＭ）、レジスタ、磁気ディスク、光ディスク、ハードドライブ、または他の任意の適切な記憶媒体、あるいはそれらの任意の組合せを含み得る。機械可読媒体はコンピュータプログラム製品において実施され得る。コンピュータプログラム製品はパッケージング材料を備え得る。
【０１９０】
[00162]ハードウェア実装形態では、機械可読媒体は、プロセッサとは別個の処理システムの一部であり得る。しかしながら、当業者なら容易に理解するように、機械可読媒体またはその任意の部分は処理システムの外部にあり得る。例として、機械可読媒体は、すべてバスインターフェースを介してプロセッサによってアクセスされ得る、伝送線路、データによって変調された搬送波、および／またはデバイスとは別個のコンピュータ製品を含み得る。代替的に、または追加で、機械可読媒体またはその任意の部分は、キャッシュおよび／または汎用レジスタファイルがそうであり得るように、プロセッサに統合され得る。論じた様々な構成要素は、ローカル構成要素などの特定の位置を有するものとして説明され得るが、それらはまた、分散コンピューティングシステムの一部として構成されているいくつかの構成要素などの様々な方法で構成され得る。
【０１９１】
[00163]処理システムは、すべて外部バスアーキテクチャを介して他のサポート回路と互いにリンクされる、プロセッサ機能を提供する１つまたは複数のマイクロプロセッサと、機械可読媒体の少なくとも一部分を提供する外部メモリとをもつ汎用処理システムとして構成され得る。あるいは、処理システムは、本明細書に記載のニューロンモデルとニューラルシステムのモデルとを実装するための１つまたは複数のニューロモーフィックプロセッサを備え得る。別の代替として、処理システムは、プロセッサを有する特定用途向け集積回路（ＡＳＩＣ）と、バスインターフェースと、ユーザインターフェースと、サポート回路と、単一のチップに統合された機械可読媒体の少なくとも一部とを用いて、あるいは１つまたは複数のフィールドプログラマブルゲートアレイ（ＦＰＧＡ）、プログラマブル論理デバイス（ＰＬＤ）、コントローラ、状態機械、ゲート論理、個別ハードウェア構成要素、または他の任意の適切な回路、あるいは本開示全体を通じて説明した様々な機能を実行し得る回路の任意の組合せを用いて実装され得る。当業者なら、特定の適用例と、全体的なシステムに課される全体的な設計制約とに応じて、どのようにしたら処理システムについて説明した機能を最も良く実装し得るかを理解されよう。
【０１９２】
[00164]機械可読媒体はいくつかのソフトウェアモジュールを備え得る。ソフトウェアモジュールは、プロセッサによって実行されたときに、処理システムに様々な機能を実行させる命令を含む。ソフトウェアモジュールは、送信モジュールと受信モジュールとを含み得る。各ソフトウェアモジュールは、単一の記憶デバイス中に常駐するか、または複数の記憶デバイスにわたって分散され得る。例として、トリガイベントが発生したとき、ソフトウェアモジュールがハードドライブからＲＡＭにロードされ得る。ソフトウェアモジュールの実行中、プロセッサは、アクセス速度を高めるために、命令のいくつかをキャッシュにロードし得る。次いで、１つまたは複数のキャッシュラインが、プロセッサによる実行のために汎用レジスタファイルにロードされ得る。以下でソフトウェアモジュールの機能に言及する場合、そのような機能は、そのソフトウェアモジュールからの命令を実行したときにプロセッサによって実装されることが理解されよう。さらに、本開示の態様は、そのような態様を実装するプロセッサ、コンピュータ、マシン、または他のシステムの機能の改善をもたらすことを理解されたい。
【０１９３】
[00165]ソフトウェアで実装される場合、機能は、１つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるか、あるいはコンピュータ可読媒体を介して送信され得る。コンピュータ可読媒体は、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含む、コンピュータ記憶媒体と通信媒体の両方を含む。記憶媒体は、コンピュータによってアクセスされ得る任意の利用可能な媒体であり得る。限定ではなく例として、そのようなコンピュータ可読媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭまたは他の光ディスクストレージ、磁気ディスクストレージまたは他の磁気記憶デバイス、あるいは命令またはデータ構造の形態の所望のプログラムコードを搬送または記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を備えることができる。さらに、いかなる接続もコンピュータ可読媒体を適切に名づけられる。たとえば、ソフトウェアが、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線（ＤＳＬ）、または赤外線（ＩＲ）、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、ＤＳＬ、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。本明細書で使用するディスク（disk）およびディスク（disc）は、コンパクトディスク（disc）（ＣＤ）、レーザーディスク（登録商標）（disc）、光ディスク（disc）、デジタル多用途ディスク（disc）（ＤＶＤ）、フロッピー（登録商標）ディスク（disk）、およびＢｌｕ−ｒａｙ（登録商標）ディスク（disc）を含み、ディスク（disk）は、通常、データを磁気的に再生し、ディスク（disc）は、データをレーザーで光学的に再生する。したがって、いくつかの態様では、コンピュータ可読媒体は非一時的コンピュータ可読媒体（たとえば、有形媒体）を備え得る。さらに、他の態様では、コンピュータ可読媒体は一時的コンピュータ可読媒体（たとえば、信号）を備え得る。上記の組合せもコンピュータ可読媒体の範囲内に含まれるべきである。
【０１９４】
[00166]したがって、いくつかの態様は、本明細書で提示する動作を実行するためのコンピュータプログラム製品を備え得る。たとえば、そのようなコンピュータプログラム製品は、本明細書で説明する動作を実行するために１つまたは複数のプロセッサによって実行可能である命令を記憶した（および／または符号化した）コンピュータ可読媒体を備え得る。いくつかの態様では、コンピュータプログラム製品はパッケージング材料を含み得る。
【０１９５】
[00167]さらに、本明細書で説明した方法および技法を実行するためのモジュールおよび／または他の適切な手段は、適用可能な場合にユーザ端末および／または基地局によってダウンロードされ、および／または他の方法で取得され得ることを諒解されたい。たとえば、そのようなデバイスは、本明細書で説明した方法を実施するための手段の転送を可能にするためにサーバに結合され得る。代替的に、本明細書で説明した様々な方法は、ユーザ端末および／または基地局が記憶手段をデバイスに結合または提供すると様々な方法を得ることができるように、記憶手段（たとえば、ＲＡＭ、ＲＯＭ、コンパクトディスク（ＣＤ）またはフロッピーディスクなどの物理記憶媒体など）によって提供され得る。その上、本明細書で説明した方法および技法をデバイスに与えるための任意の他の好適な技法が利用され得る。
【０１９６】
[00168]特許請求の範囲は、上記で示した厳密な構成および構成要素に限定されないことを理解されたい。上記で説明した方法および装置の構成、動作および詳細において、特許請求の範囲から逸脱することなく、様々な改変、変更および変形が行われ得る。
【図１】
2017513127.tif 000041
【図２】
2017513127.tif 000042
【図３】
2017513127.tif 000043
【図４】
2017513127.tif 000044
【図５】
2017513127.tif 000045
【図６】
2017513127.tif 000046
【図７】
2017513127.tif 000047
【図８】
2017513127.tif 000048
【図９】
2017513127.tif 000049
【図１０】
2017513127.tif 000050
【図１１】
2017513127.tif 000051
【図１２】
2017513127.tif 000052
【図１３Ａ】
2017513127.tif 000053
【図１３Ｂ】
2017513127.tif 000054
【図１３Ｃ】
2017513127.tif 000055
【図１３Ｄ】
2017513127.tif 000056
【図１３Ｅ】
2017513127.tif 000057
【図１３Ｆ】
2017513127.tif 000058
【図１４】
2017513127.tif 000059
【図１５】
2017513127.tif 000060
【手続補正書】
【提出日】平成28年12月1日(2016.12.1)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
人工ニューラルネットワークを介した分散計算の方法であって、
処理ノードの第１の集団で第１の計算チェーンにおける結果の第１のセットを計算することと、
結果の前記第１のセットを処理ノードの第２の集団に渡すことと、
結果の前記第１のセットを渡した後、処理ノードの前記第１の集団で第１の休止状態に入ることと、
結果の前記第１のセットに少なくとも部分的に基づいて、処理ノードの前記第２の集団で前記第１の計算チェーンにおける結果の第２のセットを計算することと、
結果の前記第２のセットを処理ノードの前記第１の集団に渡すことと、
結果の前記第２のセットを渡した後、処理ノードの前記第２の集団で第２の休止状態に入ることと、
前記第１の計算チェーンをオーケストレートすることと
を備える、方法。
【請求項２】
前記第１の休止状態中に、処理ノードの前記第１の集団によって、追加の計算を実行するために、処理ノードの前記第１の集団で処理することを再開し、並列計算チェーンを作成することをさらに備える、請求項１に記載の方法。
【請求項３】
前記並列計算チェーンが、永続的なコンストラスティブダイバージェンス（ＣＤ）を使用して学習するために、永続チェーンとデータチェーンとを繰り返す隠れニューロンおよび可視ニューロンをともなった、前記永続チェーンおよび前記データチェーンを備える、請求項２に記載の方法。
【請求項４】
前記第１の休止状態が、前記並列チェーンにわたって平均化される重み更新のためにおよび複数の永続チェーンを並列に操作するために使用される増加したシナプス遅延ならびにシナプス遅延、を備える請求項１に記載の方法。
【請求項５】
前記オーケストレートすることが、結果の前記第１および第２のセットを渡すタイミング、前記第１の休止状態のタイミング、前記第２の休止状態のタイミング、結果の前記第１のセットを計算するまたは結果の前記第２のセットを計算するタイミング、を制御することを備える、請求項１に記載の方法。
【請求項６】
前記オーケストレートすることが、外部入力を介して行われる、請求項１に記載の方法。
【請求項７】
前記外部入力が興奮性である、請求項６に記載の方法。
【請求項８】
前記外部入力が抑制性である、請求項６に記載の方法。
【請求項９】
前記オーケストレートすることが、帯域内メッセージトークンパッシングを介して行われる、請求項１に記載の方法。
【請求項１０】
帯域内メッセージトークンパッシングまたは外部入力を介して、オーケストレーションで前記第１の計算チェーンをリセットすることをさらに備える、請求項１に記載の方法。
【請求項１１】
処理ノードの前記第１の集団と処理ノードの前記第２の集団とがニューロンを備える、請求項１に記載の方法。
【請求項１２】
前記第１の計算チェーンがスパイキングニューラルネットワークを備える、請求項１に記載の方法。
【請求項１３】
前記第１の計算チェーンが深層信念ネットワーク（ＤＢＮ）を備える、請求項１に記載の方法。
【請求項１４】
前記ＤＢＮの層が、スパイクタイミング依存可塑性（ＳＴＤＰ）を使用してトレーニングされる、請求項１３に記載の方法。
【請求項１５】
前記第１の計算チェーンが深層ボルツマンマシンを備える、請求項１に記載の方法。
【請求項１６】
少なくとも１つの内部ノード状態またはノードスパイクが、一連の計算の開始または停止をトリガする、請求項１に記載の方法。
【請求項１７】
人工ニューラルネットワークを介した分散計算のための装置であって、
メモリと、
前記メモリに結合された少なくとも１つのプロセッサとを備え、前記少なくとも１つのプロセッサが、
処理ノードの第１の集団で第１の計算チェーンにおける結果の第１のセットを計算して、
結果の前記第１のセットを処理ノードの第２の集団に渡して、
結果の前記第１のセットを渡した後、処理ノードの前記第１の集団で第１の休止状態に入って、
結果の前記第１のセットに少なくとも部分的に基づいて、処理ノードの前記第２の集団で前記第１の計算チェーンにおける結果の第２のセットを計算して、
結果の前記第２のセットを処理ノードの前記第１の集団に渡して、
結果の前記第２のセットを渡した後、処理ノードの前記第２の集団で第２の休止状態に入って、
前記第１の計算チェーンをオーケストレートする
ように構成される、装置。
【請求項１８】
前記少なくとも１つのプロセッサが、前記第１の休止状態中に、処理ノードの前記第１の集団によって、追加の計算を実行するために、処理ノードの前記第１の集団で処理することを再開し、並列計算チェーンを作成するようにさらに構成される、請求項１７に記載の装置。
【請求項１９】
前記並列計算チェーンが、永続的なコンストラスティブダイバージェンス（ＣＤ）を使用して学習するために、永続チェーンとデータチェーンとを繰り返す隠れニューロンおよび可視ニューロンをともなった、前記永続チェーンおよび前記データチェーンを備える、請求項１８に記載の装置。
【請求項２０】
前記第１の休止状態が、前記並列チェーンにわたって平均化される重み更新のためにおよび複数の永続チェーンを並列に操作するために使用される増加したシナプス遅延ならびにシナプス遅延、を備える請求項１７に記載の装置。
【請求項２１】
前記少なくとも１つのプロセッサが、結果の前記の第１のセットおよび結果の前記第２のセットを渡すタイミング、前記第１の休止状態のタイミング、前記第２の休止状態のタイミング、結果の前記第１のセットを計算するまたは結果の前記第２のセットを計算するタイミング、を制御することによって、前記第１の計算チェーンをオーケストレートするようにさらに構成される、請求項１７に記載の装置。
【請求項２２】
前記少なくとも１つのプロセッサが、外部入力を介して前記第１の計算チェーンをオーケストレートするようにさらに構成される、請求項１７に記載の装置。
【請求項２３】
前記外部入力が興奮性である、請求項２２に記載の装置。
【請求項２４】
前記外部入力が抑制性である、請求項２２に記載の装置。
【請求項２５】
前記少なくとも１つのプロセッサが、帯域内メッセージトークンパッシングを介して前記第１の計算チェーンをオーケストレートするようにさらに構成される、請求項１７に記載の装置。
【請求項２６】
前記少なくとも１つのプロセッサが、帯域内メッセージトークンパッシングまたは外部入力を介して、オーケストレーションで前記第１の計算チェーンをリセットするようにさらに構成される、請求項１７に記載の装置。
【請求項２７】
処理ノードの前記第１の集団と処理ノードの前記第２の集団とがニューロンを備える、請求項１７に記載の装置。
【請求項２８】
前記第１の計算チェーンがスパイキングニューラルネットワークを備える、請求項１７に記載の装置。
【請求項２９】
前記第１の計算チェーンが深層信念ネットワーク（ＤＢＮ）を備える、請求項１７に記載の装置。
【請求項３０】
前記ＤＢＮの層が、スパイクタイミング依存可塑性（ＳＴＤＰ）を使用してトレーニングされる、請求項２９に記載の装置。
【請求項３１】
前記第１の計算チェーンが深層ボルツマンマシンを備える、請求項１７に記載の装置。
【請求項３２】
前記少なくとも１つのプロセッサが、少なくとも１つの内部ノード状態またはノードスパイクに少なくとも部分的に基づいて、一連の計算の開始または停止をトリガするようにさらに構成される、請求項１７に記載の装置。
【請求項３３】
人工ニューラルネットワークを介した分散計算のための装置であって、
処理ノードの第１の集団で第１の計算チェーンにおける結果の第１のセットを計算するための手段と、
結果の前記第１のセットを処理ノードの第２の集団に渡すための手段と、
結果の前記第１のセットを渡した後、処理ノードの前記第１の集団で第１の休止状態に入るための手段と、
結果の前記第１のセットに少なくとも部分的に基づいて、処理ノードの前記第２の集団で前記第１の計算チェーンにおける結果の第２のセットを計算するための手段と、
結果の前記第２のセットを処理ノードの前記第１の集団に渡すための手段と、
結果の前記第２のセットを渡した後、処理ノードの前記第２の集団で第２の休止状態に入るための手段と、
前記第１の計算チェーンをオーケストレートするための手段と
を備える、装置。
【請求項３４】
人工ニューラルネットワークを介した分散計算のためのプログラムコードを符号化した非一時的コンピュータ可読媒体であって、前記プログラムコードが、
処理ノードの第１の集団で第１の計算チェーンにおける結果の第１のセットを計算するためのプログラムコードと、
結果の前記第１のセットを処理ノードの第２の集団に渡すためのプログラムコードと、
結果の前記第１のセットを渡した後、処理ノードの前記第１の集団で第１の休止状態に入るためのプログラムコードと、
結果の前記第１のセットに少なくとも部分的に基づいて、処理ノードの前記第２の集団で前記第１の計算チェーンにおける結果の第２のセットを計算するためのプログラムコードと、
結果の前記第２のセットを処理ノードの前記第１の集団に渡すためのプログラムコードと、
結果の前記第２のセットを渡した後、処理ノードの前記第２の集団で第２の休止状態に入るためのプログラムコードと、
前記第１の計算チェーンをオーケストレートするためのプログラムコードと
を備える、非一時的コンピュータ可読媒体。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０１９６
【補正方法】変更
【補正の内容】
【０１９６】
[00168]特許請求の範囲は、上記で示した厳密な構成および構成要素に限定されないことを理解されたい。上記で説明した方法および装置の構成、動作および詳細において、特許請求の範囲から逸脱することなく、様々な改変、変更および変形が行われ得る。
以下に本願発明の当初の特許請求の範囲に記載された発明を付記する。
［Ｃ１］
分散計算の方法であって、
処理ノードの第１の集団で第１の計算チェーンにおける結果の第１のセットを計算することと、
結果の前記第１のセットを処理ノードの第２の集団に渡すことと、
結果の前記第１のセットを渡した後、処理ノードの前記第１の集団で第１の休止状態に入ることと、
結果の前記第１のセットに少なくとも部分的に基づいて、処理ノードの前記第２の集団で前記第１の計算チェーンにおける結果の第２のセットを計算することと、
結果の前記第２のセットを処理ノードの前記第１の集団に渡すことと、
結果の前記第２のセットを渡した後、処理ノードの前記第２の集団で第２の休止状態に入ることと、
前記第１の計算チェーンをオーケストレートすることと
を備える、方法。
［Ｃ２］
前記第１の休止状態中に、処理ノードの前記第１の集団によって、追加の計算を実行し、並列計算チェーンを作成することをさらに備える、Ｃ１に記載の方法。
［Ｃ３］
前記並列計算チェーンが、永続的なコンストラスティブダイバージェンス（ＣＤ）を使用して学習するために、永続チェーンとデータチェーンとを繰り返す隠れニューロンおよび可視ニューロンをともなった、前記永続チェーンおよび前記データチェーンを備える、Ｃ２に記載の方法。
［Ｃ４］
前記第１の休止状態が、前記並列チェーンにわたって平均化される重み更新のためにおよび複数の永続チェーンを並列に操作するために使用される増加したシナプス遅延ならびにシナプス遅延、を備えるＣ１に記載の方法。
［Ｃ５］
前記オーケストレートすることが、結果の前記第１および第２のセットを渡すタイミング、前記第１の休止状態のタイミング、前記第２の休止状態のタイミング、結果の前記第１のセットを計算するまたは結果の前記第２のセットを計算するタイミング、を制御することを備える、Ｃ１に記載の方法。
［Ｃ６］
前記オーケストレートすることが、外部入力を介して行われる、Ｃ１に記載の方法。
［Ｃ７］
前記外部入力が興奮性である、Ｃ６に記載の方法。
［Ｃ８］
前記外部入力が抑制性である、Ｃ６に記載の方法。
［Ｃ９］
前記オーケストレートすることが、帯域内メッセージトークンパッシングを介して行われる、Ｃ１に記載の方法。
［Ｃ１０］
帯域内メッセージトークンパッシングまたは外部入力を介して、オーケストレーションで前記第１の計算チェーンをリセットすることをさらに備える、Ｃ１に記載の方法。
［Ｃ１１］
処理ノードの前記第１の集団と処理ノードの前記第２の集団とがニューロンを備える、Ｃ１に記載の方法。
［Ｃ１２］
前記第１の計算チェーンがスパイキングニューラルネットワークを備える、Ｃ１に記載の方法。
［Ｃ１３］
前記第１の計算チェーンが深層信念ネットワーク（ＤＢＮ）を備える、Ｃ１に記載の方法。
［Ｃ１４］
前記ＤＢＮの層が、スパイクタイミング依存可塑性（ＳＴＤＰ）を使用してトレーニングされる、Ｃ１３に記載の方法。
［Ｃ１５］
前記第１の計算チェーンが深層ボルツマンマシンを備える、Ｃ１に記載の方法。
［Ｃ１６］
少なくとも１つの内部ノード状態またはノードスパイクが、一連の計算の開始または停止をトリガする、Ｃ１に記載の方法。
［Ｃ１７］
分散計算のための装置であって、
メモリと、
前記メモリに結合された少なくとも１つのプロセッサとを備え、前記少なくとも１つのプロセッサが、
処理ノードの第１の集団で第１の計算チェーンにおける結果の第１のセットを計算して、
結果の前記第１のセットを処理ノードの第２の集団に渡して、
結果の前記第１のセットを渡した後、処理ノードの前記第１の集団で第１の休止状態に入って、
結果の前記第１のセットに少なくとも部分的に基づいて、処理ノードの前記第２の集団で前記第１の計算チェーンにおける結果の第２のセットを計算して、
結果の前記第２のセットを処理ノードの前記第１の集団に渡して、
結果の前記第２のセットを渡した後、処理ノードの前記第２の集団で第２の休止状態に入って、
前記第１の計算チェーンをオーケストレートする
ように構成される、装置。
［Ｃ１８］
前記少なくとも１つのプロセッサが、前記第１の休止状態中に、処理ノードの前記第１の集団によって、追加の計算を実行し、並列計算チェーンを作成するようにさらに構成される、Ｃ１７に記載の装置。
［Ｃ１９］
前記並列計算チェーンが、永続的なコンストラスティブダイバージェンス（ＣＤ）を使用して学習するために、永続チェーンとデータチェーンとを繰り返す隠れニューロンおよび可視ニューロンをともなった、前記永続チェーンおよび前記データチェーンを備える、Ｃ１８に記載の装置。
［Ｃ２０］
前記第１の休止状態が、前記並列チェーンにわたって平均化される重み更新のためにおよび複数の永続チェーンを並列に操作するために使用される増加したシナプス遅延ならびにシナプス遅延、を備えるＣ１７に記載の装置。
［Ｃ２１］
前記少なくとも１つのプロセッサが、結果の前記の第１のセットおよび結果の前記第２のセットを渡すタイミング、前記第１の休止状態のタイミング、前記第２の休止状態のタイミング、結果の前記第１のセットを計算するまたは結果の前記第２のセットを計算するタイミング、を制御することによって、前記第１の計算チェーンをオーケストレートするようにさらに構成される、Ｃ１７に記載の装置。
［Ｃ２２］
前記少なくとも１つのプロセッサが、外部入力を介して前記第１の計算チェーンをオーケストレートするようにさらに構成される、Ｃ１７に記載の装置。
［Ｃ２３］
前記外部入力が興奮性である、Ｃ２２に記載の装置。
［Ｃ２４］
前記外部入力が抑制性である、Ｃ２２に記載の装置。
［Ｃ２５］
前記少なくとも１つのプロセッサが、帯域内メッセージトークンパッシングを介して前記第１の計算チェーンをオーケストレートするようにさらに構成される、Ｃ１７に記載の装置。
［Ｃ２６］
前記少なくとも１つのプロセッサが、帯域内メッセージトークンパッシングまたは外部入力を介して、オーケストレーションで前記第１の計算チェーンをリセットするようにさらに構成される、Ｃ１７に記載の装置。
［Ｃ２７］
処理ノードの前記第１の集団と処理ノードの前記第２の集団とがニューロンを備える、Ｃ１７に記載の装置。
［Ｃ２８］
前記第１の計算チェーンがスパイキングニューラルネットワークを備える、Ｃ１７に記載の装置。
［Ｃ２９］
前記第１の計算チェーンが深層信念ネットワーク（ＤＢＮ）を備える、Ｃ１７に記載の装置。
［Ｃ３０］
前記ＤＢＮの層が、スパイクタイミング依存可塑性（ＳＴＤＰ）を使用してトレーニングされる、Ｃ２９に記載の装置。
［Ｃ３１］
前記第１の計算チェーンが深層ボルツマンマシンを備える、Ｃ１７に記載の装置。
［Ｃ３２］
前記少なくとも１つのプロセッサが、少なくとも１つの内部ノード状態またはノードスパイクに少なくとも部分的に基づいて、一連の計算の開始または停止をトリガするようにさらに構成される、Ｃ１７に記載の装置。
［Ｃ３３］
分散計算のための装置であって、
処理ノードの第１の集団で第１の計算チェーンにおける結果の第１のセットを計算するための手段と、
結果の前記第１のセットを処理ノードの第２の集団に渡すための手段と、
結果の前記第１のセットを渡した後、処理ノードの前記第１の集団で第１の休止状態に入るための手段と、
結果の前記第１のセットに少なくとも部分的に基づいて、処理ノードの前記第２の集団で前記第１の計算チェーンにおける結果の第２のセットを計算するための手段と、
結果の前記第２のセットを処理ノードの前記第１の集団に渡すための手段と、
結果の前記第２のセットを渡した後、処理ノードの前記第２の集団で第２の休止状態に入るための手段と、
前記第１の計算チェーンをオーケストレートするための手段と
を備える、装置。
［Ｃ３４］
分散計算のためのコンピュータプログラム製品であって、
プログラムコードを符号化した非一時的コンピュータ可読媒体を備え、前記プログラムコードが、
処理ノードの第１の集団で第１の計算チェーンにおける結果の第１のセットを計算するためのプログラムコードと、
結果の前記第１のセットを処理ノードの第２の集団に渡すためのプログラムコードと、
結果の前記第１のセットを渡した後、処理ノードの前記第１の集団で第１の休止状態に入るためのプログラムコードと、
結果の前記第１のセットに少なくとも部分的に基づいて、処理ノードの前記第２の集団で前記第１の計算チェーンにおける結果の第２のセットを計算するためのプログラムコードと、
結果の前記第２のセットを処理ノードの前記第１の集団に渡すためのプログラムコードと、
結果の前記第２のセットを渡した後、処理ノードの前記第２の集団で第２の休止状態に入るためのプログラムコードと、
前記第１の計算チェーンをオーケストレートするためのプログラムコードと
を備える、コンピュータプログラム製品。
【手続補正書】
【提出日】平成28年12月2日(2016.12.2)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
人工ニューラルネットワークでの分散計算の方法であって、
処理ノードの第１の集団で第１の計算チェーンにおける結果の第１のセットを計算することと、
結果の前記第１のセットを処理ノードの第２の集団に渡すことと、
結果の前記第１のセットを渡した後、処理ノードの前記第１の集団で第１の休止状態に入ることと、
結果の前記第１のセットに少なくとも部分的に基づいて、処理ノードの前記第２の集団で前記第１の計算チェーンにおける結果の第２のセットを計算することと、
結果の前記第２のセットを処理ノードの前記第１の集団に渡すことと、
結果の前記第２のセットを渡した後、処理ノードの前記第２の集団で第２の休止状態に入ることと、
前記第１の計算チェーンをオーケストレートすることと
を備える、方法。
【請求項２】
前記第１の休止状態中に、処理ノードの前記第１の集団によって、追加の計算を実行するために、処理ノードの前記第１の集団で処理することを再開し、並列計算チェーンを作成することをさらに備える、請求項１に記載の方法。
【請求項３】
前記並列計算チェーンが、永続的なコンストラスティブダイバージェンス（ＣＤ）を使用して学習するために、永続チェーンとデータチェーンとを繰り返す隠れニューロンおよび可視ニューロンをともなった、前記永続チェーンおよび前記データチェーンを備える、請求項２に記載の方法。
【請求項４】
前記第１の休止状態が、前記並列チェーンにわたって平均化される重み更新のためにおよび複数の永続チェーンを並列に操作するために使用される増加したシナプス遅延ならびにシナプス遅延、を備える請求項１に記載の方法。
【請求項５】
前記オーケストレートすることが、結果の前記第１および第２のセットを渡すタイミング、前記第１の休止状態のタイミング、前記第２の休止状態のタイミング、結果の前記第１のセットを計算するまたは結果の前記第２のセットを計算するタイミング、を制御することを備える、請求項１に記載の方法。
【請求項６】
前記オーケストレートすることが、外部入力を介して行われる、請求項１に記載の方法。
【請求項７】
前記外部入力が興奮性である、請求項６に記載の方法。
【請求項８】
前記外部入力が抑制性である、請求項６に記載の方法。
【請求項９】
前記オーケストレートすることが、帯域内メッセージトークンパッシングを介して行われる、請求項１に記載の方法。
【請求項１０】
帯域内メッセージトークンパッシングまたは外部入力を介して、オーケストレーションで前記第１の計算チェーンをリセットすることをさらに備える、請求項１に記載の方法。
【請求項１１】
処理ノードの前記第１の集団と処理ノードの前記第２の集団とがニューロンを備える、請求項１に記載の方法。
【請求項１２】
前記第１の計算チェーンがスパイキングニューラルネットワークを備える、請求項１に記載の方法。
【請求項１３】
前記第１の計算チェーンが深層信念ネットワーク（ＤＢＮ）を備える、請求項１に記載の方法。
【請求項１４】
前記ＤＢＮの層が、スパイクタイミング依存可塑性（ＳＴＤＰ）を使用してトレーニングされる、請求項１３に記載の方法。
【請求項１５】
前記第１の計算チェーンが深層ボルツマンマシンを備える、請求項１に記載の方法。
【請求項１６】
少なくとも１つの内部ノード状態またはノードスパイクが、一連の計算の開始または停止をトリガする、請求項１に記載の方法。
【請求項１７】
人工ニューラルネットワークでの分散計算のための装置であって、
メモリと、
前記メモリに結合された少なくとも１つのプロセッサとを備え、前記少なくとも１つのプロセッサが、
処理ノードの第１の集団で第１の計算チェーンにおける結果の第１のセットを計算して、
結果の前記第１のセットを処理ノードの第２の集団に渡して、
結果の前記第１のセットを渡した後、処理ノードの前記第１の集団で第１の休止状態に入って、
結果の前記第１のセットに少なくとも部分的に基づいて、処理ノードの前記第２の集団で前記第１の計算チェーンにおける結果の第２のセットを計算して、
結果の前記第２のセットを処理ノードの前記第１の集団に渡して、
結果の前記第２のセットを渡した後、処理ノードの前記第２の集団で第２の休止状態に入って、
前記第１の計算チェーンをオーケストレートする
ように構成される、装置。
【請求項１８】
前記少なくとも１つのプロセッサが、前記第１の休止状態中に、処理ノードの前記第１の集団によって、追加の計算を実行するために、処理ノードの前記第１の集団で処理することを再開し、並列計算チェーンを作成するようにさらに構成される、請求項１７に記載の装置。
【請求項１９】
前記並列計算チェーンが、永続的なコンストラスティブダイバージェンス（ＣＤ）を使用して学習するために、永続チェーンとデータチェーンとを繰り返す隠れニューロンおよび可視ニューロンをともなった、前記永続チェーンおよび前記データチェーンを備える、請求項１８に記載の装置。
【請求項２０】
前記第１の休止状態が、前記並列チェーンにわたって平均化される重み更新のためにおよび複数の永続チェーンを並列に操作するために使用される増加したシナプス遅延ならびにシナプス遅延、を備える請求項１７に記載の装置。
【請求項２１】
前記少なくとも１つのプロセッサが、結果の前記の第１のセットおよび結果の前記第２のセットを渡すタイミング、前記第１の休止状態のタイミング、前記第２の休止状態のタイミング、結果の前記第１のセットを計算するまたは結果の前記第２のセットを計算するタイミング、を制御することによって、前記第１の計算チェーンをオーケストレートするようにさらに構成される、請求項１７に記載の装置。
【請求項２２】
前記少なくとも１つのプロセッサが、外部入力を介して前記第１の計算チェーンをオーケストレートするようにさらに構成される、請求項１７に記載の装置。
【請求項２３】
前記外部入力が興奮性である、請求項２２に記載の装置。
【請求項２４】
前記外部入力が抑制性である、請求項２２に記載の装置。
【請求項２５】
前記少なくとも１つのプロセッサが、帯域内メッセージトークンパッシングを介して前記第１の計算チェーンをオーケストレートするようにさらに構成される、請求項１７に記載の装置。
【請求項２６】
前記少なくとも１つのプロセッサが、帯域内メッセージトークンパッシングまたは外部入力を介して、オーケストレーションで前記第１の計算チェーンをリセットするようにさらに構成される、請求項１７に記載の装置。
【請求項２７】
処理ノードの前記第１の集団と処理ノードの前記第２の集団とがニューロンを備える、請求項１７に記載の装置。
【請求項２８】
前記第１の計算チェーンがスパイキングニューラルネットワークを備える、請求項１７に記載の装置。
【請求項２９】
前記第１の計算チェーンが深層信念ネットワーク（ＤＢＮ）を備える、請求項１７に記載の装置。
【請求項３０】
前記ＤＢＮの層が、スパイクタイミング依存可塑性（ＳＴＤＰ）を使用してトレーニングされる、請求項２９に記載の装置。
【請求項３１】
前記第１の計算チェーンが深層ボルツマンマシンを備える、請求項１７に記載の装置。
【請求項３２】
前記少なくとも１つのプロセッサが、少なくとも１つの内部ノード状態またはノードスパイクに少なくとも部分的に基づいて、一連の計算の開始または停止をトリガするようにさらに構成される、請求項１７に記載の装置。
【請求項３３】
人工ニューラルネットワークでの分散計算のための装置であって、
処理ノードの第１の集団で第１の計算チェーンにおける結果の第１のセットを計算するための手段と、
結果の前記第１のセットを処理ノードの第２の集団に渡すための手段と、
結果の前記第１のセットを渡した後、処理ノードの前記第１の集団で第１の休止状態に入るための手段と、
結果の前記第１のセットに少なくとも部分的に基づいて、処理ノードの前記第２の集団で前記第１の計算チェーンにおける結果の第２のセットを計算するための手段と、
結果の前記第２のセットを処理ノードの前記第１の集団に渡すための手段と、
結果の前記第２のセットを渡した後、処理ノードの前記第２の集団で第２の休止状態に入るための手段と、
前記第１の計算チェーンをオーケストレートするための手段と
を備える、装置。
【請求項３４】
人工ニューラルネットワークでの分散計算のためのプログラムコードを符号化した非一時的コンピュータ可読媒体であって、前記プログラムコードが、プロセッサによって実行され、
処理ノードの第１の集団で第１の計算チェーンにおける結果の第１のセットを計算するためのプログラムコードと、
結果の前記第１のセットを処理ノードの第２の集団に渡すためのプログラムコードと、
結果の前記第１のセットを渡した後、処理ノードの前記第１の集団で第１の休止状態に入るためのプログラムコードと、
結果の前記第１のセットに少なくとも部分的に基づいて、処理ノードの前記第２の集団で前記第１の計算チェーンにおける結果の第２のセットを計算するためのプログラムコードと、
結果の前記第２のセットを処理ノードの前記第１の集団に渡すためのプログラムコードと、
結果の前記第２のセットを渡した後、処理ノードの前記第２の集団で第２の休止状態に入るためのプログラムコードと、
前記第１の計算チェーンをオーケストレートするためのプログラムコードと
を備える、非一時的コンピュータ可読媒体。
【国際調査報告】
2017513127.tif 000061
2017513127.tif 000062
2017513127.tif 000063
2017513127.tif 000064
2017513127.tif 000065