(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-12
(45)【発行日】2024-07-23
(54)【発明の名称】レジリエントニューラルネットワーク
(51)【国際特許分類】
G06N 3/049 20230101AFI20240716BHJP
G06N 3/047 20230101ALI20240716BHJP
G06N 3/063 20230101ALI20240716BHJP
【FI】
G06N3/049
G06N3/047
G06N3/063
(21)【出願番号】P 2021527142
(86)(22)【出願日】2019-11-18
(86)【国際出願番号】 EP2019081662
(87)【国際公開番号】W WO2020099680
(87)【国際公開日】2020-05-22
【審査請求日】2022-10-25
(32)【優先日】2018-11-18
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】521211620
【氏名又は名称】インナテラ・ナノシステムズ・ビー.ブイ.
【氏名又は名称原語表記】INNATERA NANOSYSTEMS B.V.
【住所又は居所原語表記】Patrijsweg 20,2289 EX,RIJSWIJK,Netherlands
(74)【代理人】
【識別番号】110003708
【氏名又は名称】弁理士法人鈴榮特許綜合事務所
(74)【代理人】
【識別番号】100108855
【氏名又は名称】蔵田 昌俊
(74)【代理人】
【識別番号】100103034
【氏名又は名称】野河 信久
(74)【代理人】
【識別番号】100179062
【氏名又は名称】井上 正
(74)【代理人】
【識別番号】100199565
【氏名又は名称】飯野 茂
(74)【代理人】
【識別番号】100219542
【氏名又は名称】大宅 郁治
(74)【代理人】
【識別番号】100153051
【氏名又は名称】河野 直樹
(74)【代理人】
【識別番号】100162570
【氏名又は名称】金子 早苗
(72)【発明者】
【氏名】ズジャージョ、アミール
(72)【発明者】
【氏名】クマール、スメート・スシェール
【審査官】児玉 崇晶
(56)【参考文献】
【文献】特開平04-007660(JP,A)
【文献】特表2017-509978(JP,A)
【文献】米国特許出願公開第2015/0242745(US,A1)
【文献】米国特許出願公開第2018/0322384(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/04
G06N 3/063
(57)【特許請求の範囲】
【請求項1】
入力信号を分類するためのスパイキングニューラルネットワーク(110)であって、ハードウェアまたはハードウェアとソフトウェアの組合せにインプリメントされた複数のスパイキングニューロン(1)と、前記ネットワーク(110)を形成するように前記スパイキングニューロン(1)を相互接続する複数のシナプス素子(2)とを備え、
各シナプス素子(2)は、シナプス入力信号を受信し、シナプス出力信号を生成するように前記シナプス入力信号に重みを適用するように適応されており、前記シナプス素子(2)は、各シナプス素子(2)によって適用された前記重みを調整するように構成可能であり、
前記スパイキングニューロン(1)の各々は、前記シナプス素子(2)の1つまたは複数から前記シナプス出力信号の1つまたは複数を受信し、前記受信された1つまたは複数のシナプス出力信号に応答して時空間スパイク列出力信号を生成するように適応されており、
前記シナプス素子(2)の前記重みは、境界値によって境界付けられ、前記境界値は確率値である、スパイキングニューラルネットワーク(110)。
【請求項2】
前記シナプス素子(2)の前記重みは、確率的重み更新を使用して構成され
、前記スパイキングニューラルネットワーク(110)における前記確率的重み更新を設定するために使用されるランダム変数は、独立しており、全く同様に分布している、請求項1に記載のスパイキングニューラルネットワーク(110)。
【請求項3】
すべてのシナプス素子(2)は、その出力、すなわち、ポストシナプスニューロン(1)が発火した場合、その入力、すなわち、プレシナプスニューロン(1)の活性化統計値を集め、前記活性化統計値は、入力分布のサンプルから実行時に収集され、および/または、前記重みは、
【数1】
によって与えられるスパイクイベントトリガ確率的オンライン学習ルールにしたがって更新され、ここで、w
ijは、前記スパイキングニューラルネットワーク(110)の入力ニューロンiから出力ニューロンjへのシナプス素子(2)の古い重みであり、η
ijは、ローカル学習率であり、y
iは、プレシナプス入力ニューロンiの前記入力であり、z
iは、ニューロンiのスパイキング時間における出力である、請求項1または2に記載のスパイキングニューラルネットワーク(110)。
【請求項4】
スパイキングニューロンi内に接続されたシナプス素子(2)の前記重みは、前記スパイキングニューラルネットワーク(110)における前記スパイキングニューロンiのシナプス駆動Γ
iを境界付けることよって境界付けられ、
前記スパイキングニューラルネットワーク(110)内の前記スパイキングニューロンiのうちの1つのスパイキングニューロンのシナプス駆動Γ
iは、前記ニューロン内に接続されたすべてのシナプス素子(2)の総伝達関数を記述する時間依存関数である、請求項1~3のいずれか一項に記載のスパイキングニューラルネットワーク(110)。
【請求項5】
分散は、前記シナプス駆動Γ
iの各シナプス駆動の分散の式を取得することによって調整可能であり、前記分散の式は、制御パラメータに依存し、前記シナプス駆動Γ
iの各シナプス駆動の前記分散は、前記制御パラメータを調整することによって調整可能であり、好ましくは、
前記制御パラメータは、前記シナプス駆動Γ
iの各シナプス駆動の前記分散が所定の値を下回るように調整され、それにより、前記スパイキングニューラルネットワーク(110)内
のニューロンiの各ニューロンの前記シナプス駆動Γ
iは、雑音効果が最小である前記シナプス駆動Γ
iの平衡点Γ
i
*の周りに境界付けられ、さらに好ましくは、
前記シナプス駆動Γ
iの前記平衡点Γ
i
*は、前記スパイキングニューラルネットワーク(110)内のすべてのニューロンについてベクトル形式で、Γ
*=(Γ
1
*,...,Γ
n
*)
Tと書くことができ、ここで、雑音行列σはゼロであり、すなわちσ(Γ
*)=0である、請求項4に記載のスパイキングニューラルネットワーク(110)。
【請求項6】
前記スパイキングニューラルネットワーク(110)内の前記スパイキングニューロンiの前記シナプス駆動Γ
iは、Γ=(Γ
1,...,Γ
n)
Tとして前記スパイキングニューラルネットワーク(110)内のすべてのニューロンについてベクトル形式で書くことができ、ここで、nは、前記スパイキングニューラルネットワーク(110)内のニューロンの数であり、Γは次式を満たし、
dΓ=N(Γ(t))dt+σ(Γ(t))dω(t)、
ここで、N(Γ(t))は名義行列部分であり、σ(Γ)はガウス白色雑音過程dω(t)に対する状態依存雑音行列であり、ωは、前記スパイキングニューラルネットワーク(110)における雑音を記述するウィーナー過程であり、
dΓの式は、以下の連続時間代数リアプノフ方程式を満たすΓ(t)の分散共分散行列K(t)に関して書き換え可能であり、
N(Γ(t))K(t)+K(t)[N(Γ(t))]
T+σ(Γ(t))[σ(Γ(t))]
T=0、
前記シナプス駆動Γ
iの各シナプス駆動の前記分散についての式を取得するステップは、前記分散共分散行列K(t)の対角値を決定することを備える、請求項5に記載のスパイキングニューラルネットワーク。
【請求項7】
前記スパイキングニューラルネットワーク(110)は、マルチコアソリューション内のコアアレイの特定のコア内にあり、各コアは、ハードウェアまたはハードウェアとソフトウェアの組合せにインプリメントされたスパイキングニューロン(1)のプログラマブルネットワーク(110)からなり、前記コアアレイ内のコア間の通信は、プログラマブル相互接続構造を介して配置される、請求項1~6のいずれか一項に記載のスパイキングニューラルネットワーク(110)。
【請求項8】
前記スパイキングニューラルネットワーク(110)は、より大きいスパイキングニューラルネットワーク(110)を、複数のサブネットワークに区分したサブネットワークであり、各サブネットワークは、前記シナプス素子(2)のサブセットからシナプス出力信号を受信するように接続された前記スパイキングニューロン(1)のサブセットを備え、前記サブネットワークは、前記サブネットワークに印加されたサブネットワーク入力パターン信号に応答して、サブネットワーク出力パターン信号を生成するように適応され、各サブネットワークは、コアのアレイ内の1つまたは複数のコアの一部を形成し、各コアは、ハードウェアまたはハードウェアとソフトウェアの組合せにインプリメントされたスパイキングニューロン(1)のプログラマブルネットワークからなり、前記コアアレイ内のコア間の通信は、プログラマブル相互接続構造を介して配置される、請求項1~6のいずれか一項に記載のスパイキングニューラルネットワーク(110)。
【請求項9】
請求項1~8のいずれか一項に記載の前記スパイキングニューラルネットワーク(110)備える、集積回路。
【請求項10】
スパイキングニューラルネットワーク(110)における雑音効果を減少させるように前記スパイキングニューラルネットワーク(110)を構成するための方法であって、
前記スパイキングニューラルネットワーク(110)は、ハードウェアまたはハードウェアとソフトウェアの組合せにインプリメントされた複数のスパイキングニューロン(1)と、前記ネットワーク(110)を形成するように前記スパイキングニューロン(1)を相互接続する複数のシナプス素子(2)とを備え、
各シナプス素子(2)は、シナプス入力信号を受信し、シナプス出力信号を生成するように前記シナプス入力信号に重みを適用するように適応されており、前記シナプス素子(2)は、各シナプス素子(2)によって適用された前記重みを調整するように構成可能であり、
前記スパイキングニューロン(1)の各々は、前記シナプス素子(2)の1つまたは複数から前記シナプス出力信号の1つまたは複数を受信し、前記受信された1つまたは複数のシナプス出力信号に応答して時空間スパイク列出力信号を生成するように適応されており、前記方法は、
境界値によって前記シナプス素子(2)の前記重みを境界付けることを備え、前記境界値は確率値である、方法。
【請求項11】
前記シナプス素子(2)の前記重みは、確率的重み更新を使用して構成され
、前記スパイキングニューラルネットワーク(110)における前記確率的重み更新を設定するために使用されるランダム変数は、独立しており、全く同様に分布している、請求項10に記載の方法。
【請求項12】
すべてのシナプス素子(2)は、その出力、すなわち、ポストシナプスニューロンが発火した場合、その入力、すなわち、プレシナプスニューロンの活性化統計値を集め、前記活性化統計値は、入力分布のサンプルから実行時に収集され、および/または、前記重みは、
【数2】
によって与えられるスパイクイベントトリガ確率的オンライン学習ルールにしたがって更新され、ここで、w
ijは、前記スパイキングニューラルネットワーク(110)の入力ニューロンiから出力ニューロンjへのシナプスの古い重みであり、η
ijは、ローカル学習率であり、y
iは、プレシナプス入力ニューロンiの前記入力であり、z
iは、ニューロンiのスパイキング時間における出力である、請求項10または11に記載の方法。
【請求項13】
スパイキングニューロンi内に接続されたシナプス素子(2)の前記重みは、前記スパイキングニューラルネットワーク(110)における前記スパイキングニューロンiのシナプス駆動Γ
iを境界付けることよって境界付けられ、前記スパイキングニューロンiのうちの1つのスパイキングニューロンのシナプス駆動Γ
iは、前記ニューロン内に接続されたすべてのシナプス素子(2)の総伝達関数を記述する時間依存関数である、請求項10~12のいずれか一項に記載の方法。
【請求項14】
分散は、前記シナプス駆動Γ
iの各シナプス駆動の分散の式を取得することによって調整可能であり、前記分散の式は、制御パラメータに依存し、前記シナプス駆動Γ
iの各シナプス駆動の前記分散は、前記制御パラメータを調整することによって調整可能であり、好ましくは、
前記制御パラメータは、前記シナプス駆動Γ
iの各シナプス駆動の前記分散が所定の値を下回るように調整され、それにより、前記スパイキングニューラルネットワーク(110)内
のニューロンiの各ニューロンの前記シナプス駆動Γ
iは、雑音効果が最小である前記シナプス駆動Γ
iの平衡点Γ
i
*の周りに境界付けられ、さらに好ましくは、
前記シナプス駆動Γ
iの前記平衡点Γ
i
*は、前記スパイキングニューラルネットワーク(110)内のすべてのニューロンについてベクトル形式で、Γ
*=(Γ
1
*,...,Γ
n
*)
Tと書くことができ、ここで、雑音行列σはゼロであり、すなわちσ(Γ
*)=0である、請求項13に記載の方法。
【請求項15】
前記スパイキングニューラルネットワーク(110)内の前記スパイキングニューロンiの前記シナプス駆動Γ
iは、Γ=(Γ
1,...,Γ
n)
Tとして前記スパイキングニューラルネットワーク(110)内のすべてのニューロンについてベクトル形式で書くことができ、ここで、nは、前記スパイキングニューラルネットワーク(110)内のニューロンの数であり、Γは次式を満たし、
dΓ=N(Γ(t))dt+σ(Γ(t))dω(t)、
ここで、N(Γ(t))は名義行列部分であり、σ(Γ)はガウス白色雑音過程dω(t)に対する状態依存雑音行列であり、ωは、前記スパイキングニューラルネットワーク(110)における雑音を記述するウィーナー過程であり、
dΓの式は、以下の連続時間代数リアプノフ方程式を満たすΓ(t)の分散共分散行列K(t)に関して書き換え可能であり、
N(Γ(t))K(t)+K(t)[N(Γ(t))]
T+σ(Γ(t))[σ(Γ(t))]
T=0、
前記シナプス駆動Γ
iの各シナプス駆動の前記分散についての式を取得するステップは、前記分散共分散行列K(t)の対角値を決定することを備える、請求項14に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
[0001] 本開示は、概して、自動信号認識技法に関し、より具体的には、スパイキングニューロンを使用するハードウェアレジリエント(hardware-resilient)深層学習推論アクセラレータのためのシステムおよび方法に関する。
【背景技術】
【0002】
[0002] 自動信号認識(ASR)は、信号の構成特徴の識別を通した信号の認識を指す。ASRは、例えば、とりわけ、音声/発話認識システムにおいて話者の音声および話された単語を認識するため、心電図(ECG)において不整脈を認識するため、モーション制御システムにおいてジェスチャの形状を決定するためなど、様々な用途で利用されている。ASRは、典型的には、入力信号の短いサンプル中に存在するパターンを特徴付けることによって実行され、したがって、正確なパターン認識能力が、効果的なASRシステムにとって必須である。
【0003】
[0003] ASRシステムのための入力信号を導出するためにいくらかの物理量を測定することは、複数のタイプのセンサからのデータの融合を必要とし得る。例えば、ハンドヘルド入力デバイスを使用して手のジェスチャを認識することは、動きを測定するための加速度計からのデータと、向きを測定するためのジャイロスコープからのデータとの融合を必要とし得る。両方のセンサからのデータを組み合わせることにより、3次元空間におけるジェスチャの検出が可能となる。
【0004】
[0004] 一般に、データ融合とは、個々のソースからのデータの解釈における不確実性を減らすために、異なる潜在的に異種(heterogeneous)のソースから収集されたデータを統合することを指す。融合プロセス中に、異なる入力信号における本質的特徴が融合信号において適切に表現されることが重要である。
【0005】
[0005] パターン認識および融合は、典型的には、マイクロプロセッサおよび/またはデジタルシグナルプロセッサを使用して実行され、その両方は、記憶されたプログラムアーキテクチャをインプリメントする。このアーキテクチャは、ストリーミングデータの分析には本質的に非効率的である。単一のプロセッサ上で、パターンの抽出および認識が順次実施される。これは、パターン抽出および識別が、一般的な単純化した命令セット(例えば、RISCまたはCISC命令セット)に関して実現され、信号サンプル中のすべてのパターンに対して長い実行シーケンスをもたらすからである。入力信号における複雑なパターンは、より複雑な信号処理アルゴリズムの使用を必要とし、パターン認識エンジンからのリアルタイム応答を必要とするシステムでは、プロセッサのためのより高いクロック周波数の使用をさらに必要とする。電力制約デバイス(例えば、ポータブル電子デバイス、ウェアラブルデバイス等)では、これは実現可能でない。さらに、順次実行パラダイムに起因して、マイクロプロセッサ上のパターン認識動作の待ち時間および電力損失が、パターンの複雑さおよびレパートリーが増大するにつれて大幅に増大する。入力信号に雑音があると、分析の複雑さがさらに増大し、パフォーマンスおよび効率に悪影響を及ぼす。
【0006】
[0006] データ融合は、マイクロプロセッサのための非ネイティブ動作である。これは、入力信号またはデータストリームが融合され得る前に、それらの情報コンテンツが抽出されなければならず、その後に他のストリームからの対応するコンテンツと組み合わされなければならないことを意味する。その結果、マイクロプロセッサインプリメンテーションでは、融合のための各入力信号/データソースは、独立したパターン認識パイプラインによって別個に処理され、ルールベースのフレームワークが続いて異なるパターン認識結果を組み合わせる。このアプローチは、入力信号またはデータストリームごとに、パターン認識インフラストラクチャの複数の呼び出しを必要とし、電力損失の増大につながる。さらに、パターン認識のためのロード・ストアアーキテクチャのマイクロプロセッサおよびデジタルシグナルプロセッサ(DSP)の制限は、パターンの複雑さが増大するにつれて、これらのパターンを認識する電力および待ち時間コストも増大することを意味する。待ち時間コストはクロック周波数を増加させることによって軽減することができるが、これは電力損失のさらなる増大という犠牲を払って達成される。同様に、融合の質は、入力信号に対して実施される処理およびASRの複雑さ、融合される信号の数、およびマイクロプロセッサまたはDSPの電算能力によって制限される。処理の順次性は、融合ベースのASRのスループットを低減し、したがって、信号におけるパターンの複雑さが増大するにつれて、マイクロプロセッサまたはDSPを使用して融合され得る入力信号の数が減少する。
【0007】
[0007] ディープニューラルネットワーク(DNN:Deep neural network)の形態の人工ニューラルネットワークが、マイクロプロセッサインプリメンテーションの代替として提案されている。DNNは、多数の機械学習アプリケーションの基礎を形成しており、発話および画像認識を始めとして、DNNを利用するアプリケーションの数は指数関数的に増加しているが、これらは、主に大量のデータの処理、または変化する環境への高速適応のために、本質的な制限を受ける。
【0008】
[0008] 最初に、ハードウェアディープネットワークアクセラレータが標準同期デジタル論理上にインプリメントされた。ニューラルネットワークの高レベルの並列性は、デジタルシステムにおける(典型的な)直列および時間多重化処理において複製されず、反対に、メモリおよび処理要素が共局在化されたアナログ電算ノードとして実現されるハードウェアDNNエミュレータの電算プリミティブが、速度、サイズ、および消費電力に関して著しい改善を提供する。
【0009】
[0009] 生物学的神経回路網モデルでは、個々の各ニューロンは、非同期に、スパース(sparse)イベントまたはスパイクを介して通信する。このようなイベントベースのスパイキングニューラルネットワーク(SNN:spiking neural network)では、状態を変化させるニューロンのみがスパイクを生成し、後続の層における信号処理をトリガし得、その結果、電算リソースを節約する。スパイキングニューラルネットワーク(SNN)は、多くの異なる用途のためのASRを実現する有望な手段である。
【0010】
[0010] SNNは、整数または実数値ベクトルとしてではなくむしろ、1つまたは複数の正確に調時された(電圧)スパイクの形態で情報を符号化する。推論(すなわち、ある特徴が入力信号に存在することを推論すること)のための電算が、アナログ領域および時間領域において効果的に実行される。この理由から、SNNは、典型的には、フルカスタム混合信号集積回路としてハードウェアにおいて実現されている。これにより、より小さいネットワークサイズを有することに加えて、人工ニューラルネットワークの相当物よりも数桁低いエネルギー消費で推論機能を実行することが可能になる。
【0011】
[0011] SNNは、スパイキングニューロン間の接続の強度を決定付けるシナプスによって相互接続されたスパイキングニューロンのネットワークからなる。この強度は重みとして表され、これは、プレシナプスニューロンの出力の、ポストシナプスニューロンへの入力に対する影響を緩和する。典型的には、これらの重みは、ネットワークを大量のラベル付けされた入力データにさらし、所望のネットワーク出力が達成されるまでシナプスの重みを徐々に調整することを伴うトレーニングプロセスにおいて設定される。
【0012】
[0012] SNNは、入力信号における増幅領域、時間領域、および周波数領域の特徴を一意の空間的および時間的のコード化されたスパイクシーケンスに符号化することができるという原理に依拠して、パターン認識およびセンサデータ融合に直接適用され得る。
【0013】
[0013] これらのシーケンスの生成は、スパイキングニューロンの1つまたは複数のアンサンブルの使用に依拠し、アンサンブルはニューロンの協働グループである。各アンサンブルは、特定の信号処理機能、すなわち、例えば特徴符号化、調節、フィルタリング、データ融合、分類を実行する。各アンサンブルは、スパイキングニューロンの1つまたは複数の相互接続層からなり、層内および層間の接続性は、特定のトポロジに従う。各アンサンブルのサイズ(ニューロンの数)、それらの接続性(シナプスのトポロジおよび数)、およびそれらの構成(層の数および重み)は、入力信号の特性、例えば、ダイナミックレンジ、帯域幅、タイムスケール、または入力信号中の特徴の複雑さに依存する。その結果、音声パターンマッチングシステムの場合に使用されるアンサンブルは、手書き認識システムで使用されるものとは異なる可能性が高い。
【0014】
[0014] 一般に、入力信号における認識されることになる特徴の複雑さが増大するにつれて、それらを処理するのに必要なアンサンブルのサイズも増加する。スパイキングニューラルネットワークハードウェアは、任意の接続トポロジのインプリメンテーションを容易にするプログラマブル相互接続構造(programmable interconnect structure)を使用して接続されたスパイキングニューロン、シナプスの構成可能アレイを利用することができる。しかしながら、大きいアンサンブルをインプリメントするためには、根底にあるSNNハードウェアが少なくとも必要な数のニューロンおよびシナプスを有することが必要である。
【0015】
[0015] SNNが必要とする基本動作はアナログ電子回路によって非常に効率的に実現されるが、製造プロセスに起因するマイクロ電子回路における不可避の変動が、それらの機能的特性、例えば抵抗、キャパシタンス、利得、時間応答等における歪みを誘発する。特に、より小さい製造プロセスジオメトリおよびより低い動作電流では、これらの回路は、量子効果および外部雑音にますます影響されやすく、信号対雑音比を事実上低減し、処理パフォーマンスを制限する。これらの非理想性の影響は、ドライバ、バイアス、エンコーダ/デコーダ回路がより長い相互接続にわたってより多数のデバイスによって共有される大型アレイの場合に増大する。
【発明の概要】
【0016】
[0016] 上述の先行技術の欠点に対処するために、本開示の第1の態様によれば、入力信号を分類するためのスパイキングニューラルネットワークが提案される。スパイキングニューラルネットワークは、複数のスパイキングニューロンと、ネットワークを形成するようにスパイキングニューロンを相互接続する複数のシナプス素子(synaptic element)とを備え、各シナプス素子は、シナプス入力信号を受信し、シナプス出力信号を生成するようにシナプス入力信号に重みを適用するように適応されており、シナプス素子は、各シナプス素子によって適用された重みを調整するように構成可能である。スパイキングニューロンの各々は、シナプス素子の1つまたは複数からシナプス出力信号の1つまたは複数を受信し、受信された1つまたは複数のシナプス出力信号に応答して時空間スパイク列(spatio-temporal spike train)出力信号を生成するように適応されている。ネットワークは、複数のサブネットワークに区分され、各サブネットワークは、シナプス素子のサブセットからシナプス出力信号を受信するように接続されたスパイキングニューロンのサブセットを備える。サブネットワークは、サブネットワークに印加されたサブネットワーク入力パターン信号に応答してサブネットワーク出力パターン信号を生成するように適応されている。さらに、各サブネットワークは、コアのアレイ内の1つまたは複数のコアの一部を形成し、各コアは、ハードウェアまたはハードウェアとソフトウェアの組合せにインプリメントされたスパイキングニューロンのプログラマブルネットワークからなり、コアアレイ内のコア間の通信は、プログラマブル相互接続構造を介して配置される。
【0017】
[0017] 一実施形態では、プログラマブル相互接続構造は、切り替え可能な行列を備える。
【0018】
[0018] 一実施形態では、切り替え可能な行列は、複数の出力信号を、コアアレイ内の第1のコアからコアアレイ内の第2のコアの複数の入力にルーティングするように適応された複数のルータを備える。
【0019】
[0019] 一実施形態では、プログラマブル相互接続構造は、コアアレイ内のコア間にパケット交換ネットワークを形成する。一実施形態では、プログラマブル相互接続構造はアドレスイベント表現を使用する。一実施形態では、プログラマブル相互接続構造は同期または非同期通信を使用する。一実施形態では、コアアレイは集積回路にインプリメントされ、プログラマブル相互接続構造はネットワークオンチップを備える。
【0020】
[0020] 一実施形態では、ネットワークオンチップはリアルタイムで構成可能である。
【0021】
[0021] 一実施形態では、シナプス素子に対する学習ルール、重み記憶機構(weight storage mechanism)、または通信プロトコルのいずれかは、コアアレイの単一のコアにおいて不均一に(heterogeneously)適用される。一実施形態では、シナプス素子に対する学習ルール、重み記憶機構、または通信プロトコルのいずれかは、コアアレイ内の複数のコアにわたって不均一に適用される。一実施形態では、コアアレイ内のコアのうちの1つまたは複数のコアの学習ルール構成は、学習ルールブロックを使用してインプリメントされる。一実施形態では、同じ学習ルールを使用するコアは、学習ルールをインプリメントする共通学習ルールブロックを使用する。
【0022】
[0022] 一実施形態では、コアアレイ内の各コア内および/またはコアにわたる学習ルールの分布は、実行時に動的に構成可能である。
【0023】
[0023] 一実施形態では、サブネットワークのうちの1つは、サブネットワークの入力信号を分類するための分類器の一部である。
【0024】
[0024] 一実施形態では、サブネットワークのうちの1つは、そのサブネットワークへの入力信号を分類するための分類器のアンサンブルの一部である。一実施形態では、シナプス素子の重みは、確率的重み更新(stochastic weight updates)を使用して構成される。
【0025】
[0025] 一実施形態では、シナプス素子の重みは、境界値(bound values)によって境界付けられ、境界値は確率値(stochastic values)である。
【0026】
[0026] 本開示の第2の態様によれば、本開示の第1の態様のコアアレイにインプリメントされるスパイキングニューラルネットワークを備える集積回路が開示される。
【0027】
[0027] 本開示の第3の態様によれば、スパイキングニューラルネットワークを区分し、コアアレイ上にマッピングする方法が開示される。ここで、スパイキングニューラルネットワークは、複数のスパイキングニューロンと、ネットワークを形成するようにスパイキングニューロンを相互接続する複数のシナプス素子とを備え、各シナプス素子は、シナプス入力信号を受信し、シナプス出力信号を生成するようにシナプス入力信号に重みを適用するように適応されており、シナプス素子は、各シナプス素子によって適用された重みを調整するように構成可能であり、スパイキングニューロンの各々は、シナプス素子の1つまたは複数からシナプス出力信号の1つまたは複数を受信し、受信された1つまたは複数のシナプス出力信号に応答して時空間スパイク列出力信号を生成するように適応されている。さらに、コアアレイは、複数のコアを備え、各コアは、ハードウェアまたはハードウェアとソフトウェアの組合せにインプリメントされたスパイキングニューロンのプログラマブルネットワークからなり、コアアレイ内のコア間の通信は、プログラマブル相互接続構造を介して配置される。ここで、本方法は、ネットワークが複数のサブネットワークに区分されることを備え、ここにおいて、各サブネットワークは、シナプス素子のサブセットからシナプス出力信号を受信するように接続されたスパイキングニューロンのサブセットを備える。サブネットワークは、シナプス素子のサブセットに印加されたサブネットワーク入力パターン信号に応答して、スパイキングニューロンのサブセットからサブネットワーク出力パターン信号を生成するように適応されており、各サブネットワークは1つまたは複数のコア上にマッピングされる。
【0028】
[0028] 一実施形態では、スパイキングニューラルネットワークを、1つまたは複数のコアにインプリメントされたサブネットワークに区分することは、マッピング方法によって決定される。マッピング方法は、制約駆動区分(constraint-driven partitioning)を備える。制約は、各それぞれのサブネットワークの関数にリンクされたパフォーマンスメトリック(performance metric)である。
【0029】
[0029] 本開示の第4の態様によれば、スパイキングニューラルネットワークが開示される。スパイキングニューラルネットワークは、ハードウェアまたはハードウェアとソフトウェアの組合せにインプリメントされた複数のスパイキングニューロンと、ネットワークを形成するようにスパイキングニューロンを相互接続する複数のシナプス素子とを備え、各シナプス素子は、シナプス入力信号を受信し、シナプス出力信号を生成するようにシナプス入力信号に重みを適用するように適応されており、シナプス素子は、各シナプス素子によって適用された重みを調整するように構成可能であり、スパイキングニューロンの各々は、シナプス素子の1つまたは複数からシナプス出力信号の1つまたは複数を受信し、受信された1つまたは複数のシナプス出力信号に応答して時空間スパイク列出力信号を生成するように適応されている。さらに、学習ルール、重み記憶機構、および/または通信プロトコルが、スパイキングニューラルネットワーク内のニューロンおよび/またはシナプス素子にわたって不均一に適用される。
【0030】
[0030] 本開示の第5の態様によれば、スパイキングニューロンと、スパイキングニューロンに接続されたシナプス素子とを備えるスパイキングニューラルネットワークが開示される。ここで、シナプス素子は、シナプス入力信号を受信するように適応された第1および第2の受容体を備え、第1および第2の受容体は、それぞれ、シナプス入力信号に基づいて第1および第2の受容体信号を生成する。シナプス素子は、シナプス出力信号を生成するように第1の受容体信号に重みを適用し、シナプス素子は、第2の受容体信号に少なくとも基づいてシナプス素子によって適用された重みを調整するように構成可能である。スパイキングニューロンは、シナプス素子からシナプス出力信号を受信し、受信されたシナプス出力信号に少なくとも応答して時空間スパイク列出力信号を生成するように適応されている。
【0031】
[0031] 一実施形態では、ニューロンは制御信号を放出し、制御信号は、第2の受容体信号と共に、シナプス素子によって適用された重みを調整する。
【0032】
[0032] 一実施形態では、制御信号は誤差逆伝播信号である。
【0033】
[0033] 一実施形態では、ニューロンは、樹状突起、軸索、および細胞体を備え、制御信号は、ニューロンの樹状突起および/または軸索および/または細胞体から生じる。
【0034】
[0034] 一実施形態では、制御信号は、ニューロンの活動電位によって生成される1つまたは複数のスパイクを備える。一実施形態では、第1の受容体の減衰時間は、第2の受容体の減衰時間よりも速い。一実施形態では、第1の受容体は、スパイキングニューロンのためのソース電流またはシンク電流を生成する。
【0035】
[0035] 一実施形態では、第1の受容体はローパスフィルタを備える。一実施形態では、第2の受容体は電位依存性受容体(voltage-gated receptor)を形成する。一実施形態では、第2の受容体は、ローパスフィルタ、バンドパスフィルタ、ハイパスフィルタ、および/または増幅器を備える。一実施形態では、第1の受容体はAMPA受容体、またはGABA受容体、またはNMDA受容体である。
【0036】
[0036] 本開示の第6の態様によれば、スパイキングニューラルネットワーク内のシナプス素子の重みを調整するための方法が開示され、スパイキングニューラルネットワークは、シナプス素子に接続されたスパイキングニューロンを備える。シナプス素子は、シナプス入力信号を受信するように適応された第1および第2の受容体を備え、第1および第2の受容体は、シナプス入力信号を受信し、それぞれ、シナプス入力信号に基づいて第1および第2の受容体信号を生成する。シナプス素子は、シナプス出力信号を生成するように第1の受容体信号に重みを適用する。少なくとも第2の受容体信号に基づいて、シナプス素子の重みが調整され、スパイキングニューロンは、シナプス素子からシナプス出力信号を受信し、受信されたシナプス出力信号に少なくとも応答して時空間スパイク列出力信号を生成する。
【0037】
[0037] 一実施形態では、ニューロンは制御信号を放出し、制御信号は、第2の受容体信号と共に、シナプス素子によって適用された重みを調整する。
【0038】
[0038] 一実施形態では、制御信号は誤差逆伝播信号である。
【0039】
[0039] 一実施形態では、ニューロンは、樹状突起、軸索、および細胞体を備え、制御信号は、ニューロンの樹状突起および/または軸索および/または細胞体から生じる。
【0040】
[0040] 一実施形態では、制御信号は、ニューロンの活動電位によって生成される1つまたは複数のスパイクを備える。一実施形態では、第1の受容体の減衰時間は、第2の受容体の減衰時間よりも速い。一実施形態では、第1の受容体は、スパイキングニューロンのためのソース電流またはシンク電流を生成する。
【0041】
[0041] 一実施形態では、第1の受容体はローパスフィルタを備える。一実施形態では、第2の受容体は電位依存性受容体を形成する。一実施形態では、第2の受容体は、ローパスフィルタ、バンドパスフィルタ、ハイパスフィルタ、および/または増幅器を備える。一実施形態では、第1の受容体はAMPA受容体、またはGABA受容体、またはNMDA受容体である。
【0042】
[0042] 本開示の第7の態様によれば、本開示の第5の態様のスパイキングニューラルネットワークを備える集積回路が開示される。
【0043】
[0043] 本開示の第8の態様によれば、スパイキングニューラルネットワークにおける雑音効果を減少させるようにスパイキングニューラルネットワークを構成するための方法が開示される。スパイキングニューラルネットワークは、ハードウェアまたはハードウェアとソフトウェアの組合せにインプリメントされた複数のスパイキングニューロンと、ネットワークを形成するようにスパイキングニューロンを相互接続する複数のシナプス素子とを備える。各シナプス素子は、シナプス入力信号を受信し、シナプス出力信号を生成するようにシナプス入力信号に重みを適用するように適応されており、シナプス素子は、各シナプス素子によって適用された重みを調整するように構成可能である。スパイキングニューロンの各々は、シナプス素子の1つまたは複数からシナプス出力信号の1つまたは複数を受信し、受信された1つまたは複数のシナプス出力信号に応答して時空間スパイク列出力信号を生成するように適応されている。スパイキングニューラルネットワーク内のスパイキングニューロンiのうちの1つのスパイキングニューロンのシナプス駆動(synaptic drive)Γ
iは、ニューロン内に接続されたすべてのシナプス素子の総伝達関数(total transfer function)を記述する時間依存関数である。本方法は、シナプス駆動Γ
iの各シナプス駆動の分散の式を取得することを備え、分散の式は、制御パラメータに依存する。シナプス駆動Γ
iの各シナプス駆動の分散は、制御パラメータを調整することによって調整可能である。制御パラメータは、シナプス駆動Γ
iの各シナプス駆動の分散が所定の値を下回るように調整され、それにより、スパイキングニューラルネットワーク内のニューロンiの各ニューロンのシナプス駆動Γ
iが、雑音効果が最小であるシナプス駆動Γ
iの平衡点(equilibrium point)
【数1】
(以下、便宜上「Γ
i
*」と表記する)の周りに境界付けられる(bound around)。
【0044】
[0044] 一実施形態では、スパイキングニューラルネットワーク内のスパイキングニューロンiのシナプス駆動Γiは、Γ=(Γ1,...,Γn)Tとしてスパイキングニューラルネットワーク内のすべてのニューロンについてベクトル形式で書くことができ、ここで、nは、スパイキングニューラルネットワーク内のニューロンの数であり、Γは次式を満たし、
dΓ=N(Γ(t))dt+σ(Γ(t))dω(t)
[0045] ここで、N(Γ(t))は名義行列(nominal matrix)部分であり、σ(Γ)はガウス白色雑音過程(Gaussian white noise process)dω(t)に対する状態依存雑音行列であり、ωは、スパイキングニューラルネットワークにおける雑音を記述するウィーナー過程であり、ここにおいて、dΓの式は、以下の連続時間代数リアプノフ方程式(continuous-time algebraic Lyapunov equation)を満たすΓ(t)の分散共分散行列K(t)に関して書き換え可能であり、
N(Γ(t))K(t)+K(t)[N(Γ(t))]T+σ(Γ(t))[σ(Γ(t))]T=0
[0046] シナプス駆動Γiの各シナプス駆動の分散についての式を取得するステップは、分散共分散行列K(t)の対角値を決定することを備える。
【0045】
[0047] 一実施形態では、シナプス駆動Γ
iの平衡点Γ
i
*は、スパイキングニューラルネットワーク内のすべてのニューロンについてベクトル形式で、
【数2】
(以下、便宜上「Γ
*=(Γ
1
*,...,Γ
n
*)
T」と表記する)と書くことができ、ここで、雑音行列σはゼロであり、すなわちσ(Γ
*)=0である。
【0046】
[0048] 一実施形態では、制御パラメータはコンピュータシミュレーションによって調整される。
【0047】
[0049] 本開示の第9の態様によれば、ハードウェアまたはハードウェアとソフトウェアの組合せにインプリメントされた複数のスパイキングニューロンと、ネットワークを形成するようにスパイキングニューロンを相互接続する複数のシナプス素子とを備えるスパイキングニューラルネットワークが開示される。各シナプス素子は、シナプス入力信号を受信し、シナプス出力信号を生成するようにシナプス入力信号に重みを適用するように適応されており、シナプス素子は、各シナプス素子によって適用された重みを調整するように構成可能である。スパイキングニューロンの各々は、シナプス素子の1つまたは複数からシナプス出力信号の1つまたは複数を受信し、受信された1つまたは複数のシナプス出力信号に応答して時空間スパイク列出力信号を生成するように適応されている。スパイキングニューラルネットワーク内のスパイキングニューロンiのうちの1つのスパイキングニューロンのシナプス駆動Γiは、ニューロン内に接続されたすべてのシナプス素子の総伝達関数を記述する時間依存関数である。シナプス駆動Γiの各シナプス駆動の分散は、スパイキングニューラルネットワーク内のニューロンiの各ニューロンのシナプス駆動Γiが、雑音効果が最小であるシナプス駆動Γiの平衡点Γi
*の周りに境界付けられるように、所定の値を下回る。
【0048】
[0050] 実施形態について、次に添付の概略図面を参照してほんの一例として説明し、ここで対応する参照記号が対応する部分を示す。
【図面の簡単な説明】
【0049】
【
図1】[0051] ニューロンおよびシナプス素子からなる例示的なニューラルネットワークを示す。
【
図2】[0052] マイクロコントローラ集積回路内のスパイキングニューラルネットワークを概略的に示す。
【
図3】[0053] ニューロモルフィック(neuromorphic)コアのアレイを有する学習システムのための高レベルアーキテクチャを示す。
【
図4】[0054] 単一のコア内のブースティングアルゴリズムのグラフィカル表現を示す。
【
図5】[0055] 単一のコア内で複数のアンサンブルシステムを組み合わせることのグラフィカル表現を示す。
【
図6】[0056] マルチコアインプリメンテーションにおいて複数のコアにわたる複数のアンサンブルシステムを組み合わせることのグラフィカル表現を示す。
【
図7A】[0057] シナプス構造の概念図を示す。
【
図7B】[0058] ニューロシナプス構造の概念図を示す。
【
図8】[0059] 無限ネットワークの正味活動(net activity)を示す。
【
図9】[0060] 有限ネットワークの正味活動を示す。
【0050】
[0061] 図は例示目的のためだけに意図され、特許請求の範囲によって策定される範囲または保護の限定としての役割をしない。
【実施形態の説明】
【0051】
[0062] 以下、特定の実施形態についてさらに詳細に説明する。しかしながら、これらの実施形態が本開示の保護の範囲を制限するものとして解釈されてはならないことを理解されたい。
【0052】
[0063]
図1は、ニューラルネットワーク10の簡略図である。ニューロン1はシナプス素子2を介して互いに接続されている。図面が乱雑にならないように、少数のニューロンおよびシナプス素子しか図示していない(また一部にしか参照番号を付していない)。
図1に示す接続トポロジ、すなわちシナプス素子2がニューロン1を互いに接続する方法は、単に例にすぎず、多くの他のトポロジを採用してもよい。各シナプス素子2が、ニューロン1の入力に信号を送信することができ、信号を受信した各ニューロン1が、信号を処理し、続いて出力を生成することができ、この出力は、さらなるシナプス素子2を介して他のニューロン1に送信される。各シナプス素子2は、特定の重みが割り当てられており、この重みは、重み付けされたシナプス出力信号を生成するように、シナプス素子が送受信する各シナプス入力信号に適用される。したがって、シナプス素子の重みは、シナプス素子2によって接続される2つのニューロン1間の因果関係の種類の尺度である。この関係は、因果的(正の重み)、反因果的(負の重み)、または非存在(ゼロ重み)であり得る。
【0053】
[0064] ニューロン1およびシナプス素子2は、例えばアナログ回路要素またはデジタルハードワイヤード論理回路を使用して、ハードウェアにインプリメントされ得る。それらはまた、部分的にハードウェアかつ部分的にソフトウェアに、または完全にソフトウェアにインプリメントされ得る。ハードウェアまたは少なくとも部分的なハードウェアへのインプリメンテーションが好ましく、すなわち、ソフトウェアが個々のニューロンを模倣するソフトウェアを実行する大型プロセッサを使用するのではなくむしろ、個々のニューロンの機能を実行するためにハードウェア回路または要素が使用される。これらの(部分)ハードウェアインプリメンテーションは、より高速の処理を達成し、例えば、はるかに高速なパターン認識と、ニューロンおよびシナプス素子のブロックが必要なときにのみ活性化されるイベント駆動型処理とを可能にする。
【0054】
[0065] ニューラルネットワーク10は、スパイキングニューラルネットワークであり得る。この場合、ニューロン1は、1つまたは複数のスパイクまたはニューロン生成イベントの形態でニューロン出力信号を生成するスパイキングニューロンである。スパイキングニューロン1は、ニューロン内の膜電位(例えば、エネルギー電位、または電圧もしくは電流レベル)が所定のしきい値に達したときにのみ発火する(すなわち、出力スパイクを生成する)ように構成され得る。スパイキングニューロンの膜電位は、受信された入力信号の結果として変化し、すなわち、シナプス素子からニューロンが受信したシナプス出力信号は、蓄積、積分、またはそうでない場合処理されて膜電位を変更する。シナプス素子2の重みが正であるとき、そのシナプス素子から受信されたシナプス出力信号は、信号を受信するスパイキングニューロン1を興奮させ、それらの膜電位を上昇させる。シナプス素子2の重みが負であるとき、そのシナプス素子から受信されたシナプス出力信号は、信号を受信するスパイキングニューロン1を抑制し、それらの膜電位を低下させる。シナプス素子2の重みがゼロであるとき、そのシナプス素子から受信されたシナプス出力信号は、信号を受信するスパイキングニューロン1に対していかなる影響も及ぼさない。
【0055】
[0066] スパイキングニューロン1の膜電位がしきい値に達すると、ニューロンが発火し、発火時にスパイクを生成し、発火の結果として膜電位が減少する。その後膜電位が再びしきい値に達した場合、ニューロンは再び発火し、第2のスパイクを生成する。したがって、各スパイキングニューロン1は、接続されたシナプス素子2から受信した入力信号に応答して1つまたは複数のスパイクを生成するように構成され、スパイクは時空間スパイク列(spatio-temporal spike train)を形成する。スパイキングニューロン1は、その膜電位が所定のしきい値に達したときにのみ発火するので、時間情報のコード化および処理がニューラルネットワーク10に組み込まれる。このようにして、時空間スパイク列が、スパイキングニューラルネットワーク110において生成され、この時空間スパイク列は、ネットワーク10のスパイキングニューロン1によって生成されたスパイクの時間的シーケンスである。
【0056】
[0067] スパイク列の時間的特性は、入力信号の振幅および周波数特徴を符号化する。時間的特性は、刺激(例えば、シナプス素子からの入力信号)の開始とニューロンの出力時のスパイクの生成との間の待ち時間と、同じニューロンからの連続するスパイク間の待ち時間と、入力刺激が適用される持続時間中にニューロンによって発火されるスパイクの数とを備える。
【0057】
[0068] シナプス素子2は、例えば、シナプス素子のそれぞれの重みが、例えばニューラルネットワーク10をトレーニングすることによって変化することができるように構成可能であり得る。ニューロン1は、シナプス素子からの信号に応答するように構成可能であり得る。例えば、スパイキングニューラルネットワークの場合、ニューロン1は、特定の信号が、膜電位、膜電位が静止膜電位に向かって自然に減衰するのにかかる時間、静止膜電位の値、スパイキングニューロン1のスパイクをトリガするしきい値を増加または減少させるように構成され得る。ニューロン1の構成は、例えば、トレーニング中に一定に保たれ得るか、または可変であり得、特定のトレーニングセットについてのニューラルネットワーク10のトレーニングにおいて設定され得る。
【0058】
[0069] 入力信号11は、例えば、複数の異なるサンプリングされた入力信号、または時空間スパイク列である。入力は、信号サンプルのアナログ・デジタル変換値、または例えばアナログもしくはデジタル積分器の場合サンプルのデジタル値、またはアナログ積分器の場合サンプルのアナログ値であり得る。
【0059】
[0070] ニューラルネットワーク10の出力信号12は、例えば、時空間スパイク列であり、これは、出力ニューロン1から読み出され、さらに分類され、出力変換段階によって、ユーザが選択した出力コードのタイプに対応するデジタル値のセットに変換され得る。
【0060】
[0071]
図2は、スパイキングニューラルネットワーク110を備えるマイクロコントローラ集積回路100の高レベルアーキテクチャの1つの実施形態を例示する。このコンテキストでは、マイクロコントローラ100は、データ収集、感知、パターン認識、および物理信号の作動の経済的な手段である。
【0061】
[0072] スパイキングニューラルネットワーク110は、1つまたは複数のストリーミング入力データポート111に接続され、このストリーミング入力データポート111は、時空間スパイク列に変換されることになる入力をスパイキングニューラルネットワーク110に提供する。スパイキングニューラルネットワーク110は、1つまたは複数の出力ポート112に接続される。メモリマップ制御および構成インターフェース113は、スパイキングニューラルネットワーク110の構成パラメータ、例えばシナプス重みおよび/またはニューロン構成を制御し、とりわけ、周辺機器(例えば、A/D変換器、D/A変換器、バンドギャップ、PLL)と、ニューロン、シナプス、および可塑性(学習)回路の制御および適応のための回路とをさらに含み得る。インターフェース113は、スパイキングニューラルネットワーク110の設定が保存されるメモリデバイス102を読み出し、スパイキングニューラルネットワーク110に信号を送り、それに応じてハードウェアを設定する。インターフェース113は、アナログ信号をスパイキングニューラルネットワーク110に送り得る。設定は、スパイキングニューラルネットワーク110の各ニューロン1もしくはシナプス素子2の構成パラメータ、またはネットワークトポロジを含み得る。
【0062】
[0073] 各ニューロン1は、そのニューロン1の正確な発火挙動を制御する構成パラメータのセットを有し得る。例えば、ニューロンは、発火しきい値を用いて設計され得、この発火しきい値は、入力を受信した結果としてニューロンに蓄積する電圧、エネルギー、または他の変数のしきい値を表し、ニューロンは、蓄積された変数が発火しきい値を満たすかまたは超えると出力スパイク(電圧、電流、またはエネルギースパイクなど)を生成する。ニューロンは、蓄積された変数に対する調整を決定するために、ニューロンへの入力を積分する積分関数をインプリメントし得る。さらに、ニューロンはまた、(a)ニューロン内の蓄積変数が時間とともに減衰する割合を表す漏れ率(leakage rate)、(b)ニューロンへの入力信号がないときに蓄積変数が時間とともに減衰する値を表す蓄積変数の静止値、(c)ニューロン内の蓄積変数の増加を決定するために入力信号が積分される時間を表す積分時定数、(d)ニューロンの発火直後のニューロン内の蓄積変数の値を表す不応レベル、(e)ニューロン内の蓄積変数がニューロンの発火後に静止値まで上昇するのに必要な時間期間を表す不応期、を用いて設計され得る。これらのパラメータは、ニューロンごとに予め決定され、および/または構成可能であり、および/または調整可能であり得る。例えば、臨界入力信号特徴のエネルギー含量に一致するようにニューロンの発火しきい値、漏れ率、積分時定数、および不応期を調整することによって、ニューロン1は、その特徴を含む入力信号で刺激されたときに1つまたは複数の正確に調時されたスパイクを生成する。
【0063】
[0074] シナプス素子2の構成パラメータは、シナプス素子2の重みおよび利得を含む。シナプス素子2の重みは、典型的には、シナプス素子2を調整するために使用され、一方、シナプス素子2の利得は、ハードウェアにおける信号の増幅のために使用され、典型的には、ローパスフィルタのインプリメンテーションに関係する。典型的には、利得はネットワーク110の初期化時に固定されるが、重みはスパイキングニューラルネットワーク110の進化/トレーニングに基づいて変化し得る。
【0064】
[0075] マイクロコントローラ集積回路100はさらに、集積回路100の電算および制御を実行するためのマイクロプロセッサコア101を備える。例えば、マイクロプロセッサコア101は、メモリマップ制御および構成インターフェース113とメモリデバイス102との間の通信を監視することができる。
【0065】
[0076] メモリデバイス102は、任意のコンピュータ可読記憶媒体であり得る。メモリデバイス102は、非一時的記憶媒体であり得る。例示的なコンピュータ可読記憶媒体は、(i)情報が永続的に記憶され得る書込み不可記憶媒体(例えば、CD-ROMドライブによって読取り可能なCD-ROMディスク、ROMチップ、または任意のタイプのソリッドステート不揮発性半導体メモリなどのコンピュータ内の読取り専用メモリデバイス)、および(ii)変更可能な情報が記憶され得る書込み可能記憶媒体、例えば、ハードディスクドライブまたは任意のタイプのソリッドステートランダムアクセス半導体メモリ、フラッシュメモリを含むが、それらに制限されない。
【0066】
[0077] 外部バス104が、1つまたは複数のセンサまたは他のデータソース103に接続される。マイクロコントローラ集積回路100は、センサ105に直接取り付けることもできる。センサは、最初にアナログ・デジタル変換器106を通過し得る。1つまたは複数のシリアル入力/出力ポート107、および汎用入力/出力ポート108が、マイクロコントローラ集積回路100上に存在し得る。外部機器の直接アクセスが、ダイレクトメモリアクセス(DMA)109によってマイクロコントローラ集積回路100のメモリに配置され得る。
【0067】
[0078]
図3は、コア200のアレイに配置された複数のニューロシナプス(neuro-synaptic)コア210を有する学習システムのための高レベルアーキテクチャを示す。各コア210は、ハードウェアにインプリメントされたニューロン1のネットワークを備え、ニューロンはシナプス素子2によって相互接続されている。単一のコア210は、完全なスパイキングニューラルネットワーク、または別個のサブネットワークを形成するスパイキングニューラルネットワークの一部分をインプリメントし得る。このようにして、大きいスパイキングニューラルネットワークが、いくつかのより小さいサブネットワークに区分され得、各サブネットワークは、アレイ200のコア210のうちの1つにインプリメントされる。1つの実施形態では、コア210は、
図2に示す、入力データポート111、出力ポート112、および/または制御および構成インターフェース113が関連付けられたスパイキングニューラルネットワーク110をインプリメントし得る。
【0068】
[0079] 大きいスパイキングニューラルネットワーク110をより小さいサブネットワークに区分し、各々がそれら自体の必須回路を有する1つまたは複数のコア210上にサブネットワークの各々をインプリメントすることによって、特に大型アレイの場合、より小さいプロセスジオメトリおよびより低い動作電流で動作する回路の非理想性の一部が緩和される。したがって、コアベースのインプリメンテーションアプローチは、物理的な非理想性の影響を低減する。
【0069】
[0080] 協働グループを形成するニューロンのサブネットワークまたはアンサンブルは、例えば、データ変換、特徴符号化、または分類のみを扱う、分類器、分類器のアンサンブル、ニューロンのグループ等を形成することができる。
【0070】
[0081] そのようなレジームでは、アンサンブルの大きいネットワークが区分され、コアのアレイ上にマッピングされ、その各々は、スパイキングニューロンのプログラマブルネットワークを含む。結果として、各コアは、単一のアンサンブル、または複数の小さいアンサンブル(コア内のニューロンおよびシナプスの数に関連して)をインプリメントするか、または大きいアンサンブルの場合には単一のアンサンブルの一部のみをインプリメントし、他の部分はアレイの他のコア上にインプリメントされる。アンサンブルがどのように区分されてコアにマッピングされるかの様式は、マッピング方法によって決定される。マッピング方法は、制約駆動区分を備えることができる。制約は、それぞれの各サブネットワークの機能にリンクされたパフォーマンスメトリックであり得る。パフォーマンスメトリックは、電力領域制限、メモリ構造、メモリアクセス、時定数、バイアス、技術限定、レジリエンス(resilience)、許容される不一致のレベル、およびネットワークまたは物理的アーチファクトに依存し得る。
【0071】
[0082]
[0083] アレイ200の周囲は、生体ニューロンの細胞体および軸索小丘の作用を模したシナプス回路の行を含む。さらに、アレイ200内の各ニューロシナプスコア210は、ローカルルータ202を有し、これは、専用のリアルタイムで再構成可能なネットワークオンチップ内の他のコア210のルータ202と通信する。
【0072】
[0084] ローカルルータ202およびそれらの接続201は、コアアレイ200のコア210間にプログラマブル相互接続構造を形成する。コア210は、切り替え可能な行列を通して接続される。したがって、コアアレイ200の異なるコア210が、プログラマブル相互接続構造を介して接続される。特に、コアアレイ200の異なるコア210上にインプリメントされたスパイキングニューラルネットワークの異なる部分が、プログラマブル相互接続構造を介して相互接続される。このように、量子効果および外部雑音が、各コアに個別に作用するだけであり、ネットワーク全体には作用しない。したがって、これらの影響が軽減される。
【0073】
[0085] コアアレイ200上のインプリメントされたスパイキングニューラルネットワーク110は、スパイキングニューラルネットワーク110がコア210内のニューロン間の密な接続を有するが、異なるコア210間の疎な接続を有するという意味で、高いモジュール性を有し得る。このようにして、雑音および量子効果がコア間でさらに低減され、それでもなお、サブネットワークが、例えば、高い複雑性を可能にすることによって分類精度を増加させることを可能にする。
【0074】
[0086] プログラマブル相互接続構造は、コアアレイ200内のコア210間にパケット交換ネットワークを形成することができる。例えば、ローカルルータ202は、データをパケットにグループ化することができ、パケットは次いで、接続201を介して送信される。これらの接続201は、デジタルネットワークを形成することができる。パケットは、ヘッダとペイロードから構成され得る。パケット内のペイロードが抽出されて使用される宛先コア210にパケットを方向付けるために、ヘッダ内のデータがローカルルータ202によって使用される。データは、例えば、コアアレイ200の1つまたは複数のコア210上で区分およびインプリメントされたスパイキングニューラルネットワークのサブネットワークのうちの1つのサブネットワークの出力であり得る。データはまた、センサまたは別の外部デバイスから入力され得る。
【0075】
[0087] プログラマブル相互接続構造はまた、接続されることになるニューロンのアドレスが異なるコアに送られるアドレスイベント表現(address-event representation)も使用し得る。
【0076】
[0088] さらに、同期通信または非同期通信のいずれかが使用され得る。同期通信の例は、任意のクロックベースの通信であり、非同期通信の例は、例えばハンドシェイクプロトコルである。
【0077】
[0089] コアアレイ内のコアは、マイクロコントローラ集積回路100上にネットワークオンチップを形成することができる。ネットワークオンチップは、マイクロコントローラ集積回路100のスケーラビリティおよび電力効率を改善する。
【0078】
[0090] ネットワークオンチップのトポロジ、例えば、メッシュ、トーラス、ツリー、リング、スターは、システムのパラメータに基づいて選択される。使用されるルーティングアルゴリズムは、ネットワーク110のトポロジおよび特性の両方に依存する。ルーティングアルゴリズムの複雑さは、例えば、ターゲットへの複数の最短経路を考慮し、その後、フリットごとにこれらの経路のうちの1つをランダムに選択することによって増大し得る(その結果、より良好なネットワーク負荷をもたらす)。任意の所与の時間におけるネットワーク負荷についての情報およびヒューリスティックを使用することによって、さらなる効率を得ることができる。静的ルーティングテーブルまたはソースベースのルーティングを含む他のタイプのルーティングアプローチが存在する。
【0079】
[0091] ネットワークオンチップは、リアルタイムで再構成可能であり得るか、または生産段階中に静的に定義され得る。ネットワークオンチップがリアルタイムで再構成可能であるとき、コアアレイ200内のコア210の設定およびそれらの相互接続構造設定を変更することができる。この変更は、例えば、マイクロコントローラ集積回路の入力または出力の変化、分類の精度または安定性に対する異なる要求、その学習ルールに基づくネットワークの進化、および通信プロトコルの変化に基づいて行うことができる。
【0080】
[0092] 本発明は、ニューロシナプスコア210が同種の学習ルール、重み記憶タイプ(weight storage type)、および/または通信プロトコルをシナプス行列に適用することができることを包含する。換言すれば、1つのコア内で、同種の学習ルール、重み記憶タイプ、および/または通信プロトコルを設定することができる。
【0081】
[0093] スパイキングニューラルネットワーク110全体は、1つのコア210内にインプリメントされた1つの単一エンティティとして(例えば、任意の再帰型ニューラルネットワーク構造(またはフィードバック信号のない単純なフィードフォーワードネットワーク)をインプリメントするためにすべてのフィードバック接続が適所にあるニューロン1およびシナプス2のクロスバー構造として)インプリメントされ得る。代替的に、スパイキングニューラルネットワーク110全体は、複数のコア210にわたって拡がり得、ここで、各コア210は、例えば、ディープニューラルネットワークのコンテキストにおいて、特定の層(単数または複数)、または層の一部をインプリメントする。ネットワークをどのように分割するかについての判定は、適用事例(例えば、レーダ、ライダー、画像、超音波、生体電位感知)に完全に基づく。
【0082】
[0094] 一実施形態では、すべてのニューロシナプスコア210は、それらのシナプス行列の各々に同じ学習ルール、重み記憶タイプ、および/または通信プロトコルを適用し得る。
【0083】
[0095] 一実施形態では、ニューロシナプスコア210は、それらのシナプス行列の各々に異なる学習ルール、重み記憶タイプ、および/または通信プロトコルを適用し得る。
【0084】
[0096] 一実施形態では、スパイキングニューラルネットワーク110全体のニューロシナプスアレイは、最適な性能・電力・面積のトレードオフに依存して異種学習ルールをインプリメントする単一のコア210として編成され得る。
【0085】
[0097] 別の実施形態では、コア210内のシナプス行列の異なる領域は、同じ構成レジスタによって駆動される共通の学習ルールブロックによってインプリメントされ得る同じ学習ルールを用いて構成され得る。コア210内のシナプス行列のこの領域のサイズは、特殊回路を作るために設計時に構成可能であり得るか、または実行時に動的に構成可能であり得、コア210内のシナプス行列がシナプス回路の異種クラスタリングを有し、各クラスタが異なる学習ルールをインプリメントする。この異種クラスタリングは、適用された学習ルールに基づいて、各ニューロンユニットをコア210内のシナプス行列の決定されたクラスタにマッピングするために、特別なマッピングまたは合成アルゴリズムを必要とし得る。
【0086】
[0098] 学習ルールブロックは、シナプス素子ごとに、シナプス素子のグループごとに、またはコアアレイ200のコア210ごとにインプリメントされ得る。学習ルールブロックは、例えば構成インターフェース113にインプリメントされた回路からなることができる。
【0087】
[0099] 別の実施形態では、コアアレイ200内の1つまたは複数のコア210の異なるセットが、同じ構成レジスタによって駆動される共通の学習ルールブロックによってインプリメントされ得る同じ学習ルールを用いて構成され得る。コアアレイ200内のコア210のこのセットのサイズは、コア210の特殊セットを作成するために設計時に構成可能であり得るか、または実行時に動的に構成可能であり得、コアアレイ200がコア210の異種クラスタリングを有し、各クラスタが異なる学習ルールをインプリメントする。この異種クラスタリングもまた、適用された学習ルールに基づいて、各ニューロンユニットをコア210の決定されたクラスタにマッピングするために、特別なマッピングまたは合成アルゴリズムを必要とし得る。
【0088】
[00100] コア210にわたってだけでなく、単一のコア210内でも異なる/異種学習ルールをインプリメントすることが可能である。
【0089】
[00101] コアアレイ200のコア210の異なるセット、およびコア210内のシナプス行列の異なる領域が異なる学習ルールをインプリメントすることができるので、設計はより柔軟である。さらに、異なる学習ルールを適用することによって、特定の入力が、コアアレイ200の特定の領域に対して異なる影響を有することになる。このようにして、異なる学習ルールがインプリメントされた異なる領域にわたって最適化を行うことができ、その結果、ネットワーク110全体がより良好に機能するようになる。最後に、異なる学習ルールが異なる入力信号に対してより良好に機能することができ、その結果、ネットワークを、ネットワークのどの部分においてどの学習ルールが必要とされるかに合わせることができる。
【0090】
[00102] さらに、一実施形態では、コアアレイ200内の1つのコア210、または1つまたは複数のコア210のセット内のシナプス行列の各領域はまた、デジタルメモリ、容量記憶、双安定機構などの異なる重み記憶機構をインプリメントすることができ、各領域は異なる電力要件を有する。
【0091】
[00103] コアアレイ200内のコア210のセットは、異なる通信プロトコルをインプリメントすることができる。これは、設計をより柔軟にする。したがって、コアアレイ200のコア210は、特に、同じまたは異なる学習ルール、重み記憶タイプ、および/または通信プロトコルがそれらのシナプス行列の各々に適用されるのを可能にするので、ハードウェアへのスパイキングニューラルネットワーク110の実用的かつ柔軟なインプリメンテーションが可能となる。
【0092】
[00104] 脳の認知能力が、アンサンブルニューロン活動または電算の合同形態から現れ、すなわち、ニューロンの協働グループ(サブネットワークまたはアンサンブル)は、学習をトリガし、包括的知覚能力を強め、感覚モダリティの減少を補償する機能的神経状態をつくり、ニューロンのグループの合同活動は、単一のニューロン発火の信頼できない確率的性質を克服する。
【0093】
[00105] その後、生物学の様相を反映しようとする多数のアーキテクチャ、すなわち、複数の(並列)分類器を使用することができ、同じ刺激に対して、または刺激の様々な部分もしくは特徴に対して機能して、例えば、特徴選択、信頼度推定、欠落特徴、増分学習、誤り訂正等の様々な機械学習複雑性を改善する。入力信号の特徴空間は、複数の分類器を使用して区分され得る。同様に構成されたニューラルネットワークのアンサンブルが、分類パフォーマンスを改善するために利用され得る。ブースティング手順を用いて、強力な分類器(バイナリ分類問題について任意に低い誤差を有する)を分類器のアンサンブルから構築することができ、アンサンブルを構成するこれらの分類器の任意のものの誤差は、ランダム推測の誤差よりも単に良好である。
【0094】
[00106] 結果として、(i)個々の分類器のためのトレーニングデータの選択、(ii)アンサンブルメンバを生成するために使用される特定の手順、および/または(iii)アンサンブル判定を取得するための組み合わせルールに基づいて、例えば、バギング、ランダムフォレスト(決定木のアンサンブル)、複合分類器システム、混合エキスパート(MoE:mixture of experts)、スタック一般化(stacked generalization)、コンセンサス集合(consensus aggregation)、複数の分類器の組合せ、動的分類器選択、分類器融合、ニューラルネットワークのコミッティ、および分類器アンサンブルを含む複数のアンサンブルシステムを考案することができる。
【0095】
[00107]
図4は、コアアレイ200の単一のコア210内のブースティングアルゴリズムのグラフィカル表現を示す。
図4では、コアアレイ200の単一のコア210内にインプリメントされた複数の分類器300が示されている。分類器300は、分類器300のアンサンブルを形成する。
【0096】
[00108] 分類器300のアンサンブルは、コアアレイ200の単一のコア210上にインプリメントされ得るスパイキングニューラルネットワーク110のサブネットワークの一例である。
【0097】
[00109] 分類器300は、出力ニューロンのセットを有し(各クラスに対して1つ)、その各々が、その発火確率分布にしたがってイベント(スパイク)を発火させると仮定される。特定の分類器300が、シナプス素子2によって接続されたニューロン1(またはニューロン1およびシナプス素子2)の異なる層301、302、303を備え得る。各層は異なる機能性を有し得、例えば、層301はデータ変換を実行することができ、層302は特徴符号化を実行することができ、層303は分類を実行することができる。各分類器300内に存在する出力層も存在し得る。出力層は、コアアレイ200の特定のコア210のローカルルータ202に接続され得る。ローカルルータ202間の接続201を使用して、特定の分類器300または分類器300のアンサンブルの出力は、コアアレイ200内の他のコア210に方向付けられ得、このようにしてスパイキングニューラルネットワーク110の他のサブネットワークに方向付けられ得る。
【0098】
[00110]
図5は、コアアレイ200の単一のコア210内で複数のアンサンブル分類器システムを組み合わせることのグラフィカル表現を示す。
【0099】
[00111] 最初に、ブースティングアルゴリズムに基づいてインプリメントされる分類器300のアンサンブル401は、入力404を受信し、その後、その出力を、混合エキスパートアルゴリズムに基づいてインプリメントされる第2のアンサンブル402に送る。層間のシナプス素子410は、学習ルールとしてトリプルベースのスパイクタイミング依存可塑性(T-STDP:tripled-based spike timing dependent plasticity)を使用してトレーニングされ得る。STDPでは、ニューロン1への入力スパイクが、平均してそのニューロン1の出力スパイクの直前に発生する傾向がある場合、その特定の入力は幾分強くされる。入力スパイクが平均して出力スパイクの直後に発生する傾向がある場合、その特定の入力は重みを調整することによって幾分弱くされる。したがって、ポストシナプスニューロン1の興奮の原因であり得る入力は、特定のシナプス素子2の重みを上げて調整することによって将来的に寄与する可能性がさらに高くなるが、ポストシナプススパイクの原因ではない入力は、特定のシナプス素子2の重みを下げることによって将来的に寄与する可能性が低くなる。このSTDP方法は、一対のスパイクを使用するので、対ベースである。T-STDPは、スパイクのトリプレットが使用される点で通常のSTDPとは異なる。
【0100】
[00112] ゲーティングネットワーク(gating network)408を使用して、トレーニング中にエキスパート間でデータ区分が設定され、出力を結合する。ゲーティングネットワーク408は、いわゆる「ゴールデンリファレンス(golden reference)」としてトレーニング中に使用することができ、異なるエキスパート結果をプールするためのフィルタまたは伝達関数を定義し、教師信号として機能する。エキスパートはトレーニングパターンを学習するために競争し、ゲーティングネットワーク408はその競争を仲介する。プーリングおよび結合システム409は、すべての異なるエキスパートの出力をプールして1つの出力406に結合し、混合エキスパート層の出力406を、ブースティングアルゴリズムに基づいてインプリメントされた分類器300の第3のアンサンブル403への入力として出力する。第3のアンサンブル403の出力407は、コア210のローカルルータ202に出力され得、相互接続201を介して、コアアレイ200の他のコア210またはスパイキングニューラルネットワーク110の出力ポート112に送られ得る。
【0101】
[00113]
図6は、マルチコアインプリメンテーションにおいて複数のコアにわたって複数のアンサンブルシステムを組み合わせることのグラフィカル表現を示す。
【0102】
[00114] 最初に、第1のコア510Aにおいて、ブースティングアルゴリズムに基づいてインプリメントされる分類器300のアンサンブル401は、入力404を受信し、その後、その出力を、混合エキスパートアルゴリズムに基づいてインプリメントされる第2のアンサンブル402に送る。第2のアンサンブル402のプーリングおよび結合システム409は、その出力を第1のコア510Aの第1のローカルルータ502Aに出力し、次いで、この第1のコア510Aは、この出力を、相互接続501A、501Bを介して第2のコア510Bの第2のローカルルータ502Bに向けて送る。次いで、このデータは、第2のコア510B上に存在する第3のアンサンブル403に対する入力として使用される。したがって、このシステムは、スパイキングニューラルネットワーク110がある方法で区分され、異なる方法でコアアレイ200上にマッピングされるという点で、
図5に示すシステムとは異なる。すなわち、この実施形態では、アンサンブルは2つの異なるコア510A、510Bに分割され、各々がそれ自体の必須回路を有する。
【0103】
[00115] 分類器出力の後続のマージを表す動的モデルを考案することは、特有のラベル付けされていない各パターンを最良適合分類器に割り振るための方式を強要する。分類器は、確率的winner-takes-allとして定義され、ここでは、単一のニューロンのみが、入力において提示された任意のデータに対してスパイクすることができる。トレーニング可能な結合器は、どの分類器が特徴空間のどの部分において正確であり、その後、それに応じて結合されることができるかを決定することができる。
【0104】
[00116] 一般性を失うことなく、ブースティングアルゴリズムにおいて、弱および強の確率的で近似的に正しい(PAC:probably approximately correct)学習モデルの同等性が前提条件であり、すなわち、同じでないサブ仮説がトレーニングされる、異なる分布を生成する。確率的で近似的に正しい(PAC)学習は、機械学習における電算学習理論における数学的解析のためのフレームワークである。ここで、学習者はサンプルを受信し、あるクラスの可能な関数から一般化関数を選択しなければならない。目標は、高い確率(「確率的」の部分)で、選択された関数が低い一般化誤差(「近似的に正しい」の部分)を有することである。
【0105】
[00117] 対照的に、適応型混合エキスパートは、異なるサブタスクを多様な学習者に割り振ることによってパフォーマンスの向上を得る。アンサンブル学習アルゴリズムの大部分、例えばスタッキングは、最初に基本予測子をトレーニングし、その後、結合モデルを調整しようと試みる。
【0106】
[00118] 混合エキスパートおよびブースティングは、異なるカテゴリの問題のために意図されたものであり、これは特有の利点および欠点をもたらす。ブースティングでは、分布は、主に、個々の分類器が、前者の分類器が誤っているまたは一致していないデータパターンについてのエキスパートとして進行することを可能にするように指定される。しかしながら、混合エキスパートでは、データパターンは、基本的であるが一貫したサブセットに分離され、その後、個々のサブセットに必要な学習プロセスは、元のデータパターンほど複雑ではない。
【0107】
[00119] トレーニング中にエキスパート間でデータ区分を設定することと、出力を結合することの両方のために、同一のゲーティング関数(gating functions)が用いられる。ゲーティングネットワークは、典型的には、元のトレーニングデータに対して期待値最大化(EM:expectation-maximization)アルゴリズムを使用してトレーニングされる。
【0108】
[00120] 各アンサンブルまたはアンサンブルの組合せは、1つまたは複数のコア210にインプリメントされ得る。
【0109】
[00121]
図7Aに示す一実施形態では、コア210内にシナプス素子652A~Dを有するシナプス行列のハードウェアインプリメンテーションが示されている。シナプス素子652A~Dの各々には、それぞれの重み653A~Dが帰属している。第1の重み653Aについてw
2,1、第2の重み653Bについてw
1,1、第3の重み653Cについてw
2,2、第4の重み653Dについてw
1,2と書くことができる。
【0110】
[00122] シナプス素子652A、652Bへの入力信号650AはX1と書くことができ、シナプス素子652C、652Dへの入力信号650BはX2と書くことができる。これは、時空間スパイク列の一部としての電圧スパイクであり得る。各シナプス素子652A、652Bにおいて、入力信号650Aは、それぞれの重み653A、653Bで乗算される。各シナプス素子652C、652Dにおいて、入力信号650Bは、それぞれの重み653C、653Dで乗算される。出力信号651Aは、Σiw1,iXiと書くことができ、出力信号651Bは、Σiw2,iXiと書くことができる。これらの出力信号651A、651Bは、1つまたは複数のニューロンに送られ得る。
【0111】
[00123] シナプス素子652A~Dの重み653A~Dは、1つまたは複数のイネーブルライン654とエラーライン655とを使用することによって設定され得る。イネーブルライン654は、重み653A~Dをイネーブルし、システムに知られている正しい値を設定するが、エラーライン655は、重み設定における知覚された誤差に基づいて重み653A~Dを更新する。これらの信号はアナログまたはデジタルであり得る。
【0112】
[00124] 別の実施形態では、ニューロシナプスアンサンブルの各々は、生体ニューロンの複数の(シナプス)受容体と、樹状突起(入力)および軸索細胞体(出力)の組合せとしてインプリメントされ得る。これについて
図7Bに示す。
【0113】
[00125]
図7Bは、1つまたは複数のシナプス素子602を示す。時空間スパイク列のスパイク606部分が、シナプス素子602に入る。電算素子の入力において、3つの受容体がアクセス可能であり、NMDA受容体(rNMDA)607Aが、シナプス重みwの活動依存性(activity-dependent)修正を提供し、AMPA受容体(rAMPA)607Bが、ソース電流で細胞体を駆動するための高速シナプス電流を促進し、最終的に、GABA受容体(rGABA)607Cが、GABAAまたはGABAB受容体が使用されるかどうかに依存して、シンク電流で高速または低速抑制性シナプス電流を促進することができる。rAMPA607Aおよび/またはrGABA607Cの出力は、増幅器608への入力として使用され得る。
【0114】
[00126] この実施形態では、rNMDA607Aと、rAMPA607BまたはrGABA607Cのいずれかも有することもできる。重要なことに、異なる時間成分を有する受容体607A~Cを使用することができる。rAMPA607BおよびrGABA607Cは、ローパスフィルタとしてインプリメントされ得る。一方、rNMDA607Aは、インプリメントされた学習ルールのプレシナプス回路に接続された、増幅およびフィルタリングの両方を有する電位依存性受容体としてインプリメントされ得る。フィルタリングは、バンドパスフィルタ、ローパスフィルタ、およびハイパスフィルタからなることができる。
【0115】
[00127] 増幅器608の出力は、シナプス素子602に接続されたニューロンの一部を形成する樹状突起601Aに送られる。すべてのシナプス素子602からの出力は、次いで、積分器609によって時間にわたって積分される。積分された信号は、受容体610を介して、軸索603および細胞体604からなるニューロンの軸索細胞体601Bに送られる。シナプス素子の他のクラスタ605、606からの信号も、この時点で軸索細胞体601Bに入り得る。異なる積分器611を軸索細胞体601Bに配置することができる。スパイクが、活動電位を生成する軸索603によって解放されると、それは軸索細胞体601Bを離れ、例えば、時空間スパイク列におけるスパイクとして他のシナプス素子に向かって送られ得る。
【0116】
[00128] 受容体612および613は、それぞれ樹状突起601Aおよび軸索細胞体601Bから誤差逆伝播信号(back-propagated signals)を取得する。これらは、例えばシナプス素子に加算され、時間導出614が行われ、結果として生じる信号がrNMDA607A信号と乗算されて、増幅器608を、したがって各シナプス素子602の重みを修正する。
【0117】
[00129] この次元数の増加は、より多くの状態および遷移(および時定数)を可能にし、恒常的可塑性(homeostatic plastic)およびメタ可塑性(metaplastic)の相互作用のインプリメンテーションにおいてより柔軟性を提供し、すなわち、環境変化への適応のための機構を提供し、その結果、ロバストなニューラル電算を実現および維持する手段を提供する。
【0118】
[00130] 工学用語では、恒常的可塑性は、外部条件の変化または温度変動の結果としてのニューロン活動または内部接続性におけるドリフトの影響のバランスをとる誤差逆伝播信号制御の一形態である。
【0119】
[00131] この概念は、動作条件の変動に対するロバスト性を提供するので、スパイキングニューラルネットワーク110のハードウェア設計において重要な役割を有するが、限られた数の以前のインプリメンテーションは、主に、シリコンにおける長時定数の実現に関与する技術的制約の結果としての恒常的可塑性を含む。
【0120】
[00132] インプリメントされたシナプス素子602は、多数の電算能力、例えば、広範囲の受容体時定数およびコンダクタンス値gm、軸索および樹状突起遅延、最適なシナプス伝達関数の実現を可能にする。
【0121】
[00133] 学習およびメモリの根底にあるシナプス伝達の活動依存可塑性は、主に、受容体の生物物理学的特性におけるポストシナプス変化に起因する。
【0122】
[00134] シナプス電流の流れを調節するために、各受容体は、神経伝達物質の受容体への多重結合協同性(multi-binding cooperativity)などの非線形特性をモデリングする多重(トランス)コンダクタンスチャネルとして指定される。NMDA受容体607Aによって媒介されるシナプス電流は、シナプス活動によって調節される。シナプス素子602における受容体数の高速修正は、シナプス接触の形成、安定性、形態、および密度を通じたシナプス有効性における活動依存性変化のための制御機構として機能している。樹状突起スパイクのグループ(バースト)がしきい値を超えるのに十分である場合、軸索603は活動電位を生成し、その後のスパイクは樹状突起601A内に誤差逆伝播され、細胞体604信号と共に乗算され、NMDA受容体607A信号に加算され、その後、重み制御を生成する。この準局所恒常性フレームワークは、ヘッブ型可塑性(Hebbian plasticity)を妨害することなく正規化関数を提供し、ポストシナプス強度の段階的調整を通して正味シナプス活性化を効果的に一定に保つ。
【0123】
[00135]
図7Aおよび
図7Bの両方のハードウェアインプリメンテーションは、必ずしも本発明のマルチコアインプリメンテーション内で使用される必要はないが、任意のスパイキングニューラルネットワーク110は、このようにして任意のハードウェアにインプリメントされ得る。
【0124】
[00136] 組み合わされたアンサンブルシステムの各々は、生物学的に妥当な機構にしたがって動作し、例えば、混合エキスパート非線形ゲーティング機構が、スパイクタイミング依存可塑性(STDP)に基づき、STDPとニューロンの興奮性における活動依存性変化との組合せは、ベイズ情報処理(スパイキング期待値最大化(SEM:spiking expectation-maximization)ネットワークと呼ばれる)を誘発する。
【0125】
[00137] 提案されたアンサンブルアーキテクチャは、個々のアンサンブルユニット(分類器)としてそのようなSEMネットワークを利用することができる。SEMで使用される学習ルールは、重み依存ヘッブトリプレットTSTDPルールである。分類器は、出力ニューロンのセットを有し(各クラスに対して1つ)、その各々が、その発火確率分布にしたがってイベント(スパイク)を発火させると仮定される。分類器は、確率的winner-takes-all(sWTA)機構に従い、単一のニューロン1のみが、任意の提示された入力データに対して発火することができる。
【0126】
[00138] すべてのシナプスwijは、その出力(ポストシナプスニューロン)が発火した場合、その入力yi(プレシナプスニューロン)の活性化統計値を集める。これらの統計値は、増補入力分布のサンプルから実行時に収集することができる。このデータから、各重みは、各シナプスにおける2つのローカル仮想カウンタの対数積として解釈することができ、すなわち、一方はイベントの数を表し、一方はローカル学習率ηijを表す。
【0127】
[00139] 結果として、スパイクイベントトリガ確率的オンライン学習ルールを導出することができる。
【数3】
【0128】
[00140] これは、シナプスwijにおいて、ニューロンziのスパイキング時間における出力の移動平均の対数を近似する。
【0129】
[00141] スパイキングニューラルネットワーク110における確率的重み更新を設定するために使用される(ランダム)変数は、独立しており、全く同様に分布している。遷移に導入された確率性に起因して、分類器は、ターゲットクラスの様々な表現を学習する。その後、分類器応答は、集約された改善された分類器に組み合わされる。さらに、シナプス重みの境界値(bound values)に不確実性を加えることによって、分類器判定が活性化されるレベルを制御することができる。
【0130】
[00142] ニューロン1は、主として高速の全か無か(all-or-none)のイベント、すなわち、その膜電位におけるスパイクを通して、スパイキングニューラルネットワーク110において通信する。ニューロン集団における相対的スパイク発火時間は情報コードとして仮定され、ニューロン集団間の同期は情報を符号化および復号するための信号として仮定される。その結果、興奮性および抑制性ニューロンネットワークの神経電気特性は、次式のように表すことができる。
【数4】
【0131】
[00143] ここで、Γi(t)は、本質的にシナプス強度を示す、時間tにおけるi番目のシナプス駆動であり、シナプス重みおよび利得関数に関して定義され、λiは、シナプス電圧の指数関数的減衰を調節し、入力コンダクタンスのスパイク時間依存スケーリングを模倣する利得であり、関数fi(...)は、i番目のニューロン発火率を表し、wjiは、i番目のニューロン上のj番目のニューロン間の連結を指定する定数であり、vr,i(t)は、i番目のニューロンへの入力電圧、例えば、感覚受容体からの神経インパルスを示す。重みwjiを有する接続シナプス素子に対して、i番目のニューロンはポストシナプスニューロンであり、j番目のニューロンはプレシナプスニューロンである。ニューロンiのシナプス駆動Γiは、ニューロンiを駆動するすべてのシナプス素子の総伝達関数と見なすことができ、例えば、ニューロンi等を駆動するシナプス素子の指数関数的減衰値、重み、および利得の関数であり得る。
【0132】
[00144] しかしながら、ニューロンは、スパイクの生成およびシナプス信号の伝達の両方において雑音が多い。雑音は、神経伝達物質の量子的放出、イオンチャネルのランダムな開口、バックグラウンド神経活動の連結等から生じる。
【0133】
[00145] その後、雑音は、ニューロン変動性を誘発し、環境刺激に対するニューロン感応性を増加させ、ニューロン間の同期に影響を及ぼし、確率的推論を容易にする。
【0134】
[00146] 不確実性モデルをマルコフ過程(Markov process)として導出し、ここで、確率積分は伊藤型確率微分方程式系として解釈され、その結果、時間的に変化する遅延および確率入力不確実性を用いて上式(1)を拡張する。
【数5】
【0135】
[00147] 式(2)の右側の最初の2つの項は、それぞれ、確率微分方程式の確定的ドリフト(deterministic drift)部分および確率的拡散部分であり、ここで、
【数6】
、および、
【数7】
と定義する。
【0136】
[00148] ここで、ω(t)=[ω1(t),ω2(t),...,ωn(t)]Tは、入力電圧における雑音を記述し、ブラウン運動、すなわちn次元標準ウィーナー過程(n-dimensional standard Wiener process)によって表され、σ(Γ)=diag([σ1(Γ1),σ2(Γ2),...,σn(Γn)]T)は、ガウス白色雑音過程dω(t)に対する状態依存雑音行列を表す。時間依存関数δji(t)は、時間tにおけるj番目のニューロンからi番目のニューロンへの信号の連続的な時間的に変化する時間遅延を示し、δji(t)≧0,t≧0である。
【0137】
[00149] 平均ダイナミクスの行列Ψおよびwのすべてのエントリが、例えば(vr,i(t)=0で)同期的に摂動されるという仮定がなされる。
【0138】
[00150] 仮定は、シナプス入力がデルタ様電流パルスに類似しており、その後、ガウス白色雑音が高速AMPA電流(2ms程度の減衰)およびGABAA電流(5~10ms程度の減衰)に対して有効であるとしてモデリングされ得るというものであるが、NMDA電流またはGABAB電流(50~100ms程度の減衰)のような低速の電流に対しては、この仮定は当てはまらない場合がある。その結果、それらは、有色雑音としてモデリングされ、定常状態発火率内の非ゼロシナプス時定数が複雑な3Dフォッカー・プランク式(3-D Fokker-Planck expressions)を必要とすることを含む。
【0139】
[00151] このような方法論は実現可能であるが、より効果的なアプローチは、再スケーリングされた分散によって分散を置き換えること、すなわち、シナプス時定数τ
sが主として変動の振幅に影響を及ぼすことに注目することからなる。したがって、有色雑音および白色雑音の電圧分散の比から、シナプス時定数依存低減係数
【数8】
を、
【数9】
で演繹することができ、ここで、τ
mは膜時定数であり、
【数10】
(以下、便宜上、「σ
Isyn」と表記する)はシナプス電流の標準偏差である。したがって、ガウス白色雑音理論は依然として有効であり、分散σ
Isynをσ
redで置き換えるだけである。
【0140】
[00152] 目標は、Γ(t)の分散共分散行列を求めることである。式2は、(伊藤の)確立微分方程式のセットである。そこから、Γ(t)の分散共分散行列を導出し、これは本質において、時変係数を有する線形の通常の微分方程式系である。解を求めるために、後退オイラー法(backward Euler)を用いて離散化を適用し、その結果、以下の式5に示す連続時間代数リアプノフに達する。これらは反復アプローチによって解かれ、解は式6で与えられる。
【0141】
[00153] 目標は、すべてのニューロンiについてのシナプス駆動Γi(t)の分散の式を求めることであり、これは、Γi(t)のランダム値がそれらの平均値からどれだけ遠くに拡がっているかを測定するからである。シナプス駆動の分散は、シナプス駆動のその平均からの二乗偏差の期待値である。このような式を求めることによって、スパイキングニューラルネットワークを境界付けることができる。すなわち、スパイキングニューラルネットワークにおける雑音から生じるシナプス駆動の値の拡がりは、分散がより小さくなるように、特に分散が特定のハードウェアインプリメンテーションにおいて最小化されるように、分散の式を作るパラメータを微調整することによって制限され得る。
【0142】
[00154] Γ(t)の分散共分散行列K(t)の対角要素Ki,i(t)は、それぞれ、シナプス駆動Γi(t)の分散によって与えられる。したがって、Γ(t)の分散共分散行列K(t)を解くことにより、すべてのニューロンiについてのシナプス駆動Γi(t)の分散の式が得られる。
【0143】
[00155] (2)を解くには、最初にσ(Γ)を求め、次いでその行列の平方根を得ることが必要である。マルコフチャネルモデルにおけるオープンチャネルの定常統計を使用して、コンダクタンスモデルにおける雑音過程を定義する。確定的ドリフトおよびゴールドウィン法によるM個のイオンチャネル(またはスパイキングニューラルネットワークにおけるシナプス素子の数)からσ(Γ)を構築するための一般的方法は、以下のように表すことができる。
【数11】
【0144】
[00156] ここで、Nは状態の数であり、IN×1は、すべてのエントリが1に等しいN×1列ベクトルであり、IN×Nは、N×N単位行列である。σ(Γ*)=0である平衡点Γ*において、式(2)の雑音部分はゼロである。上式(4)を使用して、系の平衡点Γ*を求めることができる。平衡点Γ*では、スパイキングニューラルネットワークは安定し、すなわち、雑音はスパイキングニューラルネットワークの挙動に影響を及ぼさない。次に、ネットワークの境界が、すべてのニューロンiに対するシナプス駆動Γi(t)の分散の式を求めることによって決定される。
【0145】
[00157] 確率微分に伊藤の定理を適用し、続いて後退オイラー法を適用すると、Γ(t)の分散共分散行列K(t)(初期値K(0)=E[ΓΓ
T]である)は、連続時間代数リアプノフ方程式として表すことができる。
【数12】
【0146】
[00158] 特定の時間t
rにおけるK(t)は、(5)における系を解くことによって電算される。小さく密なリアプノフ方程式が、Bartels-Stewart法またはHammarling法によって効率的に計算される。代替的に、符号関数ベースの技法によって、大きく密なリアプノフ方程式を電算することができる。一般に、ニューラルネットワークにおける確定的ドリフトの行列は、フルランク行列ではなく、その結果、(5)を標準形式の疎線形行列ベクトル系として書き換え、調整された交互方向法で解く。
【数13】
【0147】
[00159] ここで、Kjは、反復j=1、2、...に対するj×nのランクを有し、nは、[σ(Γ)]rにおけるベクトルの数である。
【0148】
[00160] (2)においてネットワークを、確率的摂動が減少する、平衡点Γ
*、例えば点σ(Γ
*)=0に安定させるために、変換Θ(t)=Γ(t)-Γ
*を用いて平衡点Γ
*を原点にシフトし、
【数14】
[00161] ここで、g(Θ(t))=f(Γ(t)+Γ
*)-f(Γ(t))であり、コントローラu(t)は、
【数15】
として設定され、
[00162] ここで、
【数16】
であり、φ1、φ2は利得係数であり、γは0<γ<1を満たす。γ=0の場合、u(t)は不連続であり、0<γ<1のとき、コントローラはΘに関して連続関数であり、γ=1の場合、u(t)は漸近安定化として設定される。
【0149】
[00163] 一般性を失うことなく、
図8および
図9は、ネットワーク活動を例示しており、その結果、それぞれ、無限(unbounded)ネットワークおよび有限ネットワーク(bounded network)の平均ネットワーク活動ヒストグラムを例示する。
【0150】
[00164] 両方の図において、スパイキングニューラルネットワーク110への入力信号は同じである。しかしながら、スパイキングニューラルネットワーク110内のすべてのニューロンiのシナプス駆動Γi(t)を平衡点Γi
*の周りの特定の範囲内に入れることでネットワークを境界付けることによって、有限ニューラルネットワークは、無限ネットワークほど雑音を受けない。平衡点Γi
*の周りの特定の範囲は、シナプス駆動Γi(t)の分散の式に生じるパラメータを選択することによって設定される。各シナプス駆動Γiの分散は、ネットワーク110における雑音の量に対する最大許容値に依存する特定の値を下回る。この値は、予め定義することができ、特定の用途、入力信号、スパイキングニューラルネットワーク110によって行われる分類の精度要求等に依存する。
【0151】
[00165] 実際には、例えば、ハードウェアまたはソフトウェアのいずれかでネットワークをシミュレーションし、その後、上述したようにネットワークを境界付け、効果を評価することによって、ネットワーク110を境界付けることができる。ネットワーク110の境界付けは、重みが設定される学習プロセス中に実行され得る。雑音は、雑音によって影響を受けたときのネットワークの安定性をテストするために、人工的に付加またはシミュレーションされ得る。
【0152】
[00166] 上記は、コアアレイ200内の1つの特定のコア210内のマルチコアソリューション、またはスパイキングニューラルネットワーク110の汎用ハードウェアインプリメンテーション内のいずれかにインプリメントされる、任意のスパイキングニューラルネットワーク110にインプリメントされ得る。
【0153】
[00167] 本発明は、各アンサンブルが特有の入出力伝達関数、例えばフィルタリング、増幅、乗算、加算を実現するマルチ受容体マルチ樹状突起のニューロシナプス構造のアンサンブルとしての再構成可能な多層電算ネットワークのインプリメンテーションとして実現することができる。
【0154】
[00168] 一実施形態では、分類器応答および活性化関数の制御および適応性のために、ニューロシナプス構造またはそのような構造のアンサンブルに対する信頼性および不確実性の境界を設定するための方法が考案されている。
【0155】
[00169] 一実施形態では、ニューロシナプス構造の次元数の増加が実現され、より多くの状態および遷移を可能にし、可塑性およびメタ可塑性相互作用のインプリメンテーション、ならびに様々なニューロン特性、例えば遅延またはシナプス伝達関数においてより柔軟性を提供する。
【0156】
[00170] 一実施形態では、アンサンブルまたはアンサンブルのセットにおける各ニューロシナプス構造が、一意の学習ルールをインプリメントする場合、複数の学習ルールがインプリメントされ得る。
【0157】
[00171] 一実施形態では、電荷または代表的な化学物質、例えばカルシウム、カリウム、ナトリウムの量の適応制御によって、特有の入出力伝達関数を生成することができる。
【0158】
[00172] 一実施形態では、正確な学習挙動を駆動し、ニューロシナプス構造の学習能力を改善するために、きめ細かい時間精度を実現することができる。
【0159】
[00173] 一実施形態では、結果として得られるネットワークにおける恒常的調節のインプリメンテーションを可能にするために、複数の時間的制御機構を実現することができる。
【0160】
[00174] 一実施形態では、局所的および大域的なポストシナプスの影響をモデリングするために複数の信号をインプリメントすることができる。
【0161】
[00175] 一実施形態では、アンサンブルのセットを、再構成可能なニューロシナプスアレイとして編成することができる。
【0162】
[00176] 一実施形態では、再構成可能なニューロシナプス構造を電算/信号処理コアとして編成することができ、各コアは、最適な性能・電力・面積のトレードオフに依存して、特定の学習ルール、重み記憶等をインプリメントする単一の異種または同種のタイプとして編成することができる。
【0163】
[00177] 生物学的神経系および従来の電算のエネルギー効率および認知パフォーマンスにおける大きい不一致が、特に制御されていないまたは雑音の多い感覚入力が存在するとき、物理的周囲とのリアルタイム相互作用に関連するタスクを用いて大いに例証される。しかしながら、ニューロモルフィックイベントベースのニューロンネットワークは、例によって学習する能力、動作の並列性、連想メモリ、多因子最適化、および拡張可能性に起因して、複雑な感覚信号の統計値の変化を学習し、それに適応する小型で低電力の認知システムのための固有の選択肢である。このニューロモルフィックネットワークのための新たなハードウェアレジリエント方法論は、生物医学的信号のパターンを検出すること(例えば、スパイク分類、発作検出等)、発話コマンド、画像(例えば手書き数字)の分類に及ぶ用途に対してエネルギー効率のよいソリューションを提供する設計を可能とし、サイバー物理システムおよびモノのインターネットにおけるスマートセンサまたはウェアラブルデバイスを含む、広範囲のデバイスにおいて適用されることができる。
【0164】
[00178] 1つまたは複数の実施形態が、コンピュータシステムとの使用のためのコンピュータプログラム製品としてインプリメントされ得る。プログラム製品のプログラム(単数または複数)は、実施形態の機能(本明細書で説明した方法を含む)を定義し得、様々なコンピュータ可読記憶媒体上に含まれ得る。コンピュータ可読記憶媒体は、非一時的記憶媒体であり得る。例示的なコンピュータ可読記憶媒体は、(i)情報が永続的に記憶され得る書込み不可記憶媒体(例えば、CD-ROMドライブによって読取り可能なCD-ROMディスク、ROMチップ、または任意のタイプのソリッドステート不揮発性半導体メモリなどのコンピュータ内の読取り専用メモリデバイス)、および(ii)変更可能な情報が記憶され得る書込み可能記憶媒体、例えば、ハードディスクドライブまたは任意のタイプのソリッドステートランダムアクセス半導体メモリ、フラッシュメモリを含むが、それらに制限されない。
【0165】
[00179] 上記の実施形態のうちの2つ以上を、任意の適切な方法で組み合わせてもよい。
以下に、出願当初の特許請求の範囲に記載の事項を、そのまま、付記しておく。
[C1]
入力信号を分類するためのスパイキングニューラルネットワークであって、複数のスパイキングニューロンと、前記ネットワークを形成するように前記スパイキングニューロンを相互接続する複数のシナプス素子とを備え、
各シナプス素子は、シナプス入力信号を受信し、シナプス出力信号を生成するように前記シナプス入力信号に重みを適用するように適応されており、前記シナプス素子は、各シナプス素子によって適用された前記重みを調整するように構成可能であり、
前記スパイキングニューロンの各々は、前記シナプス素子の1つまたは複数から前記シナプス出力信号の1つまたは複数を受信し、前記受信された1つまたは複数のシナプス出力信号に応答して時空間スパイク列出力信号を生成するように適応されており、
前記ネットワークは、複数のサブネットワークに区分され、
各サブネットワークは、前記シナプス素子のサブセットからシナプス出力信号を受信するように接続された前記スパイキングニューロンのサブセットを備え、
前記サブネットワークは、前記サブネットワークに印加されたサブネットワーク入力パターン信号に応答してサブネットワーク出力パターン信号を生成するように適応されており、
各サブネットワークは、コアのアレイ内の1つまたは複数のコアの一部を形成し、各コアは、ハードウェアまたはハードウェアとソフトウェアの組合せにインプリメントされたスパイキングニューロンのプログラマブルネットワークからなり、
前記コアアレイ内のコア間の通信は、プログラマブル相互接続構造を介して配置される、スパイキングニューラルネットワーク。
[C2]
前記プログラマブル相互接続構造は、切り替え可能な行列を備える、C1に記載のスパイキングニューラルネットワーク。
[C3]
前記切り替え可能な行列は、複数の出力信号を、前記コアアレイ内の第1のコアから前記コアアレイ内の第2のコアの複数の入力にルーティングするように適応された複数のルータを備える、C2に記載のスパイキングニューラルネットワーク。
[C4]
前記プログラマブル相互接続構造は、前記コアアレイ内の前記コア間にパケット交換ネットワークを形成する、C1~3のいずれか一項に記載のスパイキングニューラルネットワーク。
[C5]
前記プログラマブル相互接続構造は、アドレスイベント表現を使用する、C1~4のいずれか一項に記載のスパイキングニューラルネットワーク。
[C6]
前記プログラマブル相互接続構造は、同期または非同期通信を使用する、C1~5のいずれか一項に記載のスパイキングニューラルネットワーク。
[C7]
前記コアアレイは集積回路にインプリメントされ、前記プログラマブル相互接続構造は、ネットワークオンチップを備える、C1~6のいずれか一項に記載のスパイキングニューラルネットワーク。
[C8]
前記ネットワークオンチップは、リアルタイムで構成可能である、C7に記載のスパイキングニューラルネットワーク。
[C9]
前記シナプス素子に対する学習ルール、重み記憶機構、または通信プロトコルのいずれかは、前記コアアレイの単一のコアにおいて不均一に適用される、C1~8のいずれか一項に記載のスパイキングニューラルネットワーク。
[C10]
前記シナプス素子に対する学習ルール、重み記憶機構、または通信プロトコルのいずれかは、前記コアアレイ内の複数の前記コアにわたって不均一に適用される、C1~9のいずれか一項に記載のスパイキングニューラルネットワーク。
[C11]
前記コアアレイ内の前記コアのうちの1つまたは複数のコアの学習ルール構成は、学習ルールブロックを使用してインプリメントされる、C1~10のいずれか一項に記載のスパイキングニューラルネットワーク。
[C12]
同じ学習ルールを使用する前記コアは、前記学習ルールをインプリメントする共通学習ルールブロックを使用する、C11に記載のスパイキングニューラルネットワーク。
[C13]
前記コアアレイ内の各コア内および/または前記コアにわたる学習ルールの分布は、実行時に動的に構成可能である、C1~12のいずれか一項に記載のスパイキングニューラルネットワーク。
[C14]
前記サブネットワークのうちの1つは、前記サブネットワークの入力信号を分類するための分類器の一部である、C1~13のいずれか一項に記載のスパイキングニューラルネットワーク。
[C15]
前記サブネットワークのうちの1つは、そのサブネットワークへの入力信号を分類するための分類器のアンサンブルの一部である、C1~14のいずれか一項に記載のスパイキングニューラルネットワーク。
[C16]
前記シナプス素子の前記重みは、確率的重み更新を使用して構成される、C1~15のいずれか一項に記載のスパイキングニューラルネットワーク。
[C17]
前記シナプス素子の前記重みは、境界値によって境界付けられ、前記境界値は確率値である、C1~16のいずれか一項に記載のスパイキングニューラルネットワーク。
[C18]
C1~17のいずれか一項に記載の前記コアアレイにインプリメントされた前記スパイキングニューラルネットワークを備える、集積回路。
[C19]
スパイキングニューラルネットワークを区分し、コアアレイ上にマッピングする方法であって、前記スパイキングニューラルネットワークは、複数のスパイキングニューロンと、前記ネットワークを形成するように前記スパイキングニューロンを相互接続する複数のシナプス素子とを備え、
各シナプス素子は、シナプス入力信号を受信し、シナプス出力信号を生成するように前記シナプス入力信号に重みを適用するように適応されており、前記シナプス素子は、各シナプス素子によって適用された前記重みを調整するように構成可能であり、
前記スパイキングニューロンの各々は、前記シナプス素子の1つまたは複数から前記シナプス出力信号の1つまたは複数を受信し、前記受信された1つまたは複数のシナプス出力信号に応答して時空間スパイク列出力信号を生成するように適応されており、
前記コアアレイは、複数のコアを備え、
各コアは、ハードウェアまたはハードウェアとソフトウェアの組合せにインプリメントされたスパイキングニューロンのプログラマブルネットワークからなり、
前記コアアレイ内のコア間の通信は、プログラマブル相互接続構造を介して配置され、
前記方法は、
前記ネットワークを複数のサブネットワークに区分することと、ここにおいて、各サブネットワークは、前記シナプス素子のサブセットからシナプス出力信号を受信するように接続されたスパイキングニューロンのサブセットを備え、前記サブネットワークは、シナプス素子の前記サブセットに印加されたサブネットワーク入力パターン信号に応答して、スパイキングニューロンの前記サブセットからサブネットワーク出力パターン信号を生成するように適応されており、
各サブネットワークを前記1つまたは複数のコア上にマッピングすることと
を備える、方法。
[C20]
前記スパイキングニューラルネットワークを、前記1つまたは複数のコアにインプリメントされた前記サブネットワークに前記区分することは、マッピング方法によって決定され、
前記マッピング方法は、制約駆動区分を備え、
前記制約は、各それぞれのサブネットワークの関数にリンクされたパフォーマンスメトリックである、C19に記載の方法。
[C21]
スパイキングニューラルネットワークであって、
ハードウェアまたはハードウェアとソフトウェアの組合せにインプリメントされた複数のスパイキングニューロンと、前記ネットワークを形成するように前記スパイキングニューロンを相互接続する複数のシナプス素子と
を備え、
各シナプス素子は、シナプス入力信号を受信し、シナプス出力信号を生成するように前記シナプス入力信号に重みを適用するように適応されており、前記シナプス素子は、各シナプス素子によって適用された前記重みを調整するように構成可能であり、
前記スパイキングニューロンの各々は、前記シナプス素子の1つまたは複数から前記シナプス出力信号の1つまたは複数を受信し、前記受信された1つまたは複数のシナプス出力信号に応答して時空間スパイク列出力信号を生成するように適応されており、
学習ルール、重み記憶機構、および/または通信プロトコルは、前記スパイキングニューラルネットワーク内の前記ニューロンおよび/または前記シナプス素子にわたって不均一に適用される、スパイキングニューラルネットワーク。
[C22]
スパイキングニューロンと、前記スパイキングニューロンに接続されたシナプス素子とを備える、スパイキングニューラルネットワークであって、
前記シナプス素子は、シナプス入力信号を受信するように適応された第1および第2の受容体を備え、
前記第1および第2の受容体は、それぞれ、前記シナプス入力信号に基づいて第1および第2の受容体信号を生成し、
前記シナプス素子は、シナプス出力信号を生成するように前記第1の受容体信号に重みを適用し、
前記シナプス素子は、前記第2の受容体信号に少なくとも基づいて、前記シナプス素子によって適用された前記重みを調整するように構成可能であり、
前記スパイキングニューロンは、前記シナプス素子から前記シナプス出力信号を受信し、前記受信されたシナプス出力信号に少なくとも応答して時空間スパイク列出力信号を生成するように適応されている、スパイキングニューラルネットワーク。
[C23]
前記ニューロンは制御信号を放出し、前記制御信号は、前記第2の受容体信号と共に、前記シナプス素子によって適用された前記重みを調整する、C22に記載のスパイキングニューラルネットワーク。
[C24]
前記制御信号は誤差逆伝播信号である、C23に記載のスパイキングニューラルネットワーク。
[C25]
前記ニューロンは、樹状突起、軸索、および細胞体を備え、前記制御信号は、前記ニューロンの前記樹状突起および/または軸索および/または細胞体から生じる、C23または24に記載のスパイキングニューラルネットワーク。
[C26]
前記制御信号は、前記ニューロンの活動電位によって生成される1つまたは複数のスパイクを備える、C23~25のいずれか一項に記載のスパイキングニューラルネットワーク。
[C27]
前記第1の受容体の減衰時間は、前記第2の受容体の減衰時間よりも速い、C22~26のいずれか一項に記載のスパイキングニューラルネットワーク。
[C28]
前記第1の受容体は、前記スパイキングニューロンのためのソース電流またはシンク電流を生成する、C22~27のいずれか一項に記載のスパイキングニューラルネットワーク。
[C29]
前記第1の受容体はローパスフィルタを備える、C22~28のいずれか一項に記載のスパイキングニューラルネットワーク。
[C30]
前記第2の受容体は電位依存性受容体を形成する、C22~29のいずれか一項に記載のスパイキングニューラルネットワーク。
[C31]
前記第2の受容体は、ローパスフィルタ、バンドパスフィルタ、ハイパスフィルタ、および/または増幅器を備える、C22~30のいずれか一項に記載のスパイキングニューラルネットワーク。
[C32]
前記第1の受容体はAMPA受容体である、C22~31のいずれか一項に記載のスパイキングニューラルネットワーク。
[C33]
前記第1の受容体はGABA受容体である、C22~31のいずれか一項に記載のスパイキングニューラルネットワーク。
[C34]
前記第2の受容体はNMDA受容体である、C22~33のいずれか一項に記載のスパイキングニューラルネットワーク。
[C35]
スパイキングニューラルネットワーク内のシナプス素子の重みを調整するための方法であって、前記スパイキングニューラルネットワークは、前記シナプス素子に接続されたスパイキングニューロンを備え、
前記シナプス素子は、シナプス入力信号を受信するように適応された第1および第2の受容体を備え、
前記第1および第2の受容体は、前記シナプス入力信号を受信し、それぞれ、前記シナプス入力信号に基づいて第1および第2の受容体信号を生成し、
前記シナプス素子は、シナプス出力信号を生成するように前記第1の受容体信号に重みを適用し、
少なくとも前記第2の受容体信号に基づいて、前記シナプス素子の前記重みが調整され、
前記スパイキングニューロンは、前記シナプス素子から前記シナプス出力信号を受信し、前記受信されたシナプス出力信号に少なくとも応答して時空間スパイク列出力信号を生成する、方法。
[C36]
前記ニューロンは制御信号を放出し、前記制御信号は、前記第2の受容体信号と共に、前記シナプス素子によって適用された前記重みを調整する、C35に記載の方法。
[C37]
前記制御信号は誤差逆伝播信号である、C36に記載の方法。
[C38]
前記ニューロンは、樹状突起、軸索、および細胞体を備え、前記制御信号は、前記ニューロンの前記樹状突起および/または軸索および/または細胞体から生じる、C36または37に記載の方法。
[C39]
前記制御信号は、前記ニューロンの活動電位によって生成される1つまたは複数のスパイクを備える、C36~38のいずれか一項に記載の方法。
[C40]
前記第1の受容体の減衰時間は、前記第2の受容体の減衰時間よりも速い、C35~39のいずれか一項に記載の方法。
[C41]
前記第1の受容体は、前記スパイキングニューロンのためのソース電流またはシンク電流を生成する、C35~40のいずれか一項に記載の方法。
[C42]
前記第1の受容体はローパスフィルタを備える、C35~41のいずれか一項に記載の方法。
[C43]
前記第2の受容体は電位依存性受容体を形成する、C35~42のいずれか一項に記載の方法。
[C44]
前記第2の受容体は、ローパスフィルタ、バンドパスフィルタ、ハイパスフィルタ、および/または増幅器を備える、C35~43のいずれか一項に記載のスパイキングニューラルネットワーク。
[C45]
前記第1の受容体はAMPA受容体である、C35~44のいずれか一項に記載の方法。
[C46]
前記第1の受容体はGABA受容体である、C35~44のいずれか一項に記載の方法。
[C47]
前記第2の受容体はNMDA受容体である、C35~46のいずれか一項に記載の方法。
[C48]
C22~34のいずれか一項に記載のスパイキングニューラルネットワークを備える集積回路。
[C49]
スパイキングニューラルネットワークにおける雑音効果を減少させるように前記スパイキングニューラルネットワークを構成するための方法であって、
前記スパイキングニューラルネットワークは、ハードウェアまたはハードウェアとソフトウェアの組合せにインプリメントされた複数のスパイキングニューロンと、前記ネットワークを形成するように前記スパイキングニューロンを相互接続する複数のシナプス素子とを備え、
各シナプス素子は、シナプス入力信号を受信し、シナプス出力信号を生成するように前記シナプス入力信号に重みを適用するように適応されており、前記シナプス素子は、各シナプス素子によって適用された前記重みを調整するように構成可能であり、
前記スパイキングニューロンの各々は、前記シナプス素子の1つまたは複数から前記シナプス出力信号の1つまたは複数を受信し、前記受信された1つまたは複数のシナプス出力信号に応答して時空間スパイク列出力信号を生成するように適応されており、
前記スパイキングニューラルネットワーク内の前記スパイキングニューロンiのうちの1つのスパイキングニューロンのシナプス駆動Γ
i
は、前記ニューロン内に接続されたすべてのシナプス素子の総伝達関数を記述する時間依存関数であり、前記方法は、
前記シナプス駆動Γ
i
の各シナプス駆動の分散の式を取得することを備え、前記分散の式は、制御パラメータに依存し、
前記シナプス駆動Γ
i
の各シナプス駆動の前記分散は、前記制御パラメータを調整することによって調整可能であり、
前記制御パラメータは、前記シナプス駆動Γ
i
の各シナプス駆動の前記分散が所定の値を下回るように調整され、それにより、前記スパイキングニューラルネットワーク内の前記ニューロンiの各ニューロンの前記シナプス駆動Γ
i
は、雑音効果が最小である前記シナプス駆動Γ
i
の平衡点Γ
i
*
の周りに境界付けられる、方法。
[C50]
前記スパイキングニューラルネットワーク内の前記スパイキングニューロンiの前記シナプス駆動Γ
i
は、Γ=(Γ
1
,...,Γ
n
)
T
として前記スパイキングニューラルネットワーク内のすべてのニューロンについてベクトル形式で書くことができ、ここで、nは、前記スパイキングニューラルネットワーク内のニューロンの数であり、Γは次式を満たし、
dΓ=N(Γ(t))dt+σ(Γ(t))dω(t)、
ここで、N(Γ(t))は名義行列部分であり、σ(Γ)はガウス白色雑音過程dω(t)に対する状態依存雑音行列であり、ωは、前記スパイキングニューラルネットワークにおける雑音を記述するウィーナー過程であり、
dΓの式は、以下の連続時間代数リアプノフ方程式を満たすΓ(t)の分散共分散行列K(t)に関して書き換え可能であり、
N(Γ(t))K(t)+K(t)[N(Γ(t))]
T
+σ(Γ(t))[σ(Γ(t))]
T
=0、
前記シナプス駆動Γ
i
の各シナプス駆動の前記分散についての式を取得するステップは、前記分散共分散行列K(t)の対角値を決定することを備える、C49に記載の方法。
[C51]
前記シナプス駆動Γ
i
の前記平衡点Γ
i
*
は、前記スパイキングニューラルネットワーク内のすべてのニューロンについてベクトル形式で、Γ
*
=(Γ
1
*
,...,Γ
n
*
)
T
と書くことができ、ここで、前記雑音行列σはゼロであり、すなわちσ(Γ
*
)=0である、C50に記載の方法。
[C52]
前記制御パラメータはコンピュータシミュレーションによって調整される、C49~51のいずれか一項に記載の方法。
[C53]
スパイキングニューラルネットワークであって、
ハードウェアまたはハードウェアとソフトウェアの組合せにインプリメントされた複数のスパイキングニューロンと、前記ネットワークを形成するように前記スパイキングニューロンを相互接続する複数のシナプス素子と
を備え、
各シナプス素子は、シナプス入力信号を受信し、シナプス出力信号を生成するように前記シナプス入力信号に重みを適用するように適応されており、前記シナプス素子は、各シナプス素子によって適用された前記重みを調整するように構成可能であり、
前記スパイキングニューロンの各々は、前記シナプス素子の1つまたは複数から前記シナプス出力信号の1つまたは複数を受信し、前記受信された1つまたは複数のシナプス出力信号に応答して時空間スパイク列出力信号を生成するように適応されており、
前記スパイキングニューラルネットワーク内の前記スパイキングニューロンiのうちの1つのスパイキングニューロンのシナプス駆動Γ
i
は、前記ニューロン内に接続されたすべてのシナプス素子の総伝達関数を記述する時間依存関数であり、
前記シナプス駆動Γ
i
の各シナプス駆動の分散は、前記スパイキングニューラルネットワーク内の前記ニューロンiの各ニューロンの前記シナプス駆動Γ
i
が、雑音効果が最小である前記シナプス駆動Γ
i
の平衡点Γ
i
*
の周りに境界付けられるように、所定の値を下回る、スパイキングニューラルネットワーク。