JP2022509754A - 改良されたスパイキングニューラルネットワーク - Google Patents

改良されたスパイキングニューラルネットワーク Download PDF

Info

Publication number
JP2022509754A
JP2022509754A JP2021524331A JP2021524331A JP2022509754A JP 2022509754 A JP2022509754 A JP 2022509754A JP 2021524331 A JP2021524331 A JP 2021524331A JP 2021524331 A JP2021524331 A JP 2021524331A JP 2022509754 A JP2022509754 A JP 2022509754A
Authority
JP
Japan
Prior art keywords
spike
spiking neuron
value
synapse
spiking
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2021524331A
Other languages
English (en)
Other versions
JPWO2020092691A5 (ja
Inventor
デル メイド,ピーター エージェイ ヴァン
シャムラオ マンカー,アニル
Original Assignee
ブレインチップ,インコーポレイテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ブレインチップ,インコーポレイテッド filed Critical ブレインチップ,インコーポレイテッド
Publication of JP2022509754A publication Critical patent/JP2022509754A/ja
Publication of JPWO2020092691A5 publication Critical patent/JPWO2020092691A5/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/049Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/088Non-supervised learning, e.g. competitive learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computational Linguistics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Neurology (AREA)
  • Image Analysis (AREA)
  • Memory System (AREA)
  • Error Detection And Correction (AREA)
  • Television Systems (AREA)
  • Feedback Control In General (AREA)

Abstract

Figure 2022509754000001
本明細書に開示されるのは、入力ストリームから特徴を学習し、教師なし抽出を実行するように構成された、改良されたスパイキングニューラルネットワーク(SNN)のシステム、方法、及びコンピュータプログラム製品の実施形態が開示される。実施形態は、スパイキングニューロン回路に関連付けられた1組のシナプスに対応する1組のスパイクビットを受信することにより動作する。実施形態は、第1の論理AND関数を1組のスパイクビット内の第1のスパイクビット及び1組のシナプス内の第1のシナプスの第1のシナプス重みに適用する。実施形態は、適用することに基づいて、スパイキングニューロン回路に関連付けられたメンブレン電位値をインクリメントする。実施形態は、スパイキングニューロン回路に関連付けられたメンブレン電位値が学習閾値に達したと判断する。実施形態は次に、スパイキングニューロン回路のメンブレン電位値が学習閾値に達したとの判断に基づいて、スパイク時間依存可塑性(STDP)学習関数を実行する。

Description

関連出願の相互参照
[0001] 本願は、2018年11月1日付けで出願された「An Improved Spiking Neural Network」と題する米国仮特許出願第62/754,348号の利益を主張するものであり、この仮特許出願は全体的に、参照により本明細書に援用される。
分野
[0002] 本手法は、一般的にはニューラル回路エンジニアリングに関し、より詳細には、低電力高密度自律学習人工ニューラルネットワークオンチップのシステム及び方法に関する。
背景
[0003] 人工ニューラルネットワークが生物学的神経回路網(脳)の機能を複製することが、長い間目標であったが、成功は限られてきた。人工ニューラルネットワークの設計へのブルートフォースハードウェア手法は、面倒で不適切であり、人間の脳の機能を複製するという所望の目標から遅れている。したがって、多種多様な可能な入力データ及び/又はセンサソースから高速で推論を行いながら、非常に大規模なネットワークにスケーリングすることができ、それでいてなおチップに収まることができる自律し再構成可能なスパイキングニューラルネットワークを実現できるようにする手法が必要とされている。
概要
[0004] 本明細書には、入力ストリームから特徴を学習し、教師なし抽出を実行するように構成された、改良されたスパイキングニューラルネットワーク(SNN)のシステム、装置、製品、方法、及び/又はコンピュータプログラム製品の実施形態及び/又はその組合せ及び下位組合せが提供される。幾つかの実施形態は、スパイク変換器と、再構成可能神経線維と、メモリと、プロセッサとを備えたニューロモルフィック集積回路を含む。スパイク変換器は、入力データからスパイクを生成するように構成される。再構成可能神経線維は、複数のスパイキングニューロン回路を含むニューラルプロセッサを含む。スパイキングニューロン回路は、スパイク変換器から受信したスパイク及びニューラルネットワーク構成に基づいてタスクを実行するように構成される。メモリは、電位アレイ及び複数のシナプスを含むニューラルネットワーク構成を含む。ニューラルネットワーク構成は、複数のスパイキングニューロン回路と複数のシナプスとの間の接続を更に定義する。プロセッサは、構成ファイルに基づいてニューラルネットワーク構成を変更するように構成される。
[0005] 本明細書には、入力ストリームから特徴を学習し、教師なし抽出を実行する実施形態も記載される。幾つかの実施形態は、スパイキングニューロン回路において、1組のシナプスに対応する1組のスパイクビットを受信するように動作する。スパイキングニューロン回路は、論理AND関数を1組のスパイクビット内のスパイクビット及び1組のシナプス内のシナプスのシナプス重みに適用する。スパイキングニューロン回路は、論理AND関数の適用に基づいてメンブレン電位値をインクリメントする。次に、ニューラルプロセッサは、スパイキングニューロン回路に関連付けられたメンブレン電位値が学習閾値に達したと判断する。次に、ニューラルプロセッサは、スパイキングニューロン回路のメンブレン電位値が学習閾値に達したとの判断に基づいて、スパイク時間依存可塑性(STDP)学習関数を実行する。
[0006] この概要は単に、本明細書に記載される趣旨の理解を提供するために幾つかの実施形態例を示す目的で提供されている。したがって、上記特徴は単なる例であり、本開示の趣旨の範囲又は精神を狭めるものとして解釈されるべきではない。本開示の他の特徴、態様、及び利点も以下の詳細な説明、図、及び特許請求の範囲から明かになろう。
図面の簡単な説明
[0007] 添付図面は、本明細書に組み込まれ、本明細書の一部をなす。
[0008]幾つかの実施形態によるニューラルモデルのブロック図である。 [0009]幾つかの実施形態によるニューロモルフィック集積回路のブロック図である。 [0010]幾つかの実施形態による図2Aのニューロモルフィック集積回路のブロック図である。 [0011]幾つかの実施形態による、入力スパイクのバッファリング、パケット化、及び次の層への出力スパイクのバッファリングの流れ図である。 [0012]幾つかの実施形態によるスパイキング畳み込みニューラルプロセッサとして構成されたニューラルプロセッサのブロック図である。 [0013]幾つかの実施形態によるスパイキング全結合ニューラルプロセッサとして構成されたニューラルプロセッサのブロック図である。 [0014]幾つかの実施形態によるスパイクをスパイクパケットにパケット化する一例である。 [0015]幾つかの実施形態による図6Aのスパイクパケットの表現例である。 [0016]幾つかの実施形態による、ビットがメンブレン電位カウンタをインクリメントするか、それともデクリメントするかを選択する方法の一例である。 [0017]幾つかの実施形態によるSTDP学習法の重み交換ステップを示す。 [0018]幾つかの実施形態によるスパイキング畳み込みニューラルプロセッサで使用される畳み込み法を示す。 [0019]幾つかの実施形態による、深度1のピクセルの8×8行列における畳み込みの象徴的表現を示す。 [0020]幾つかの実施形態による、2つのスパイクチャネル、2つの3×3逆畳み込みカーネル、及び生成されるメンブレン電位値が関わる畳み込みの象徴的表現を示す。 [0021]幾つかの実施形態による図11のチャネル1及びチャネル2のニューロンで生成されたスパイクを示す。 [0022]幾つかの実施形態によるスパイキングニューラルネットワーク畳み込み演算を示す。 [0023]幾つかの実施形態による入力画像に適用されている8つの方向フィルタニューロン畳み込みの結果を示す。 [0024]幾つかの実施形態によるDVSスパイクベースの畳み込みとフレームベースの畳み込みとの類似性を示す。 [0025]幾つかの実施形態によるYAML構成ファイルの一例を示す。 [0026]幾つかの実施形態による、各スパイキングニューロン回路及びスパイキングニューロン回路の各層の構成及び接続を定義するスキャンチェーンを含む構成レジスタを示す。
[0027] 図面中、同様の参照符号は一般に同一又は同様の要素を示す。さらに、一般に、参照符号の左端の桁は、その参照符号が最初に現れた図面を識別する。
詳細な説明
[0028] 本明細書には、入力ストリームからの特徴を学習し、教師なし抽出を実行するように構成された、改良されたスパイキングニューラルネットワーク(SNN)のシステム、装置、デバイス、方法、及び/又はコンピュータプログラム製品の実施形態及び/又はその組合せ及び下位組合せが提供される。本明細書における実施形態は、改良されたSNNを提供するスタンドアロンニューロモルフィック集積回路を含む。ニューロモルフィック集積回路は幾つかの利点を提供する。第1に、ニューロモルフィック集積回路はサイズがコンパクトである。例えば、ニューロモルフィック集積回路は、シリコンダイ上にプロセッサ複合体、1つ又は複数のセンサインターフェース、1つ又は複数のデータインターフェース、スパイク変換器、及びメモリを集積する。これは、ハードウェア実装でのシリコンエリアの効率的な使用を可能にする。第2に、ニューロモルフィック集積回路は、ユーザ定義の構成ファイルを使用して多くの異なるタスクに向けて再プログラムすることができる。例えば、ニューロモルフィック集積回路における層及びニューラルプロセッサ間の接続は、ユーザ定義の構成ファイルを使用して再プログラムすることができる。第3に、ニューロモルフィック集積回路は低待ち時間出力を提供する。第4に、ニューロモルフィック集積回路の消費電力量は小さい。例えば、ニューロモルフィック集積回路は、同じタスクを実行する場合、同等の人工ニューラルネットワーク(ANN)よりも2桁低い電力を消費することができる。さらに、ニューロモルフィック集積回路は、現行水準に近づく又は現行水準に等しい精度を提供することができる。最後に、ニューロモルフィック集積回路は、内蔵ホメオスタシス及び入力データパターンへのシナプス重みの高速収束の両方を示す改良された学習法を提供する。
[0029] ANNは一般に、設計時に決定されるアーキテクチャを特徴とする人工ニューロンからなる。ニューロンは、生物学的脳におけるニューロンを大まかにモデリングすることができる。ニューロンは、ハードウェア回路であってもよく、又はプログラム的に定義してもよい。ANNの機能は、層内のニューロン間の接続、ニューロンの層間の接続、シナプス重み、及び予め定義された入力範囲に適合するような入力データの前処理により定義することができる。
[0030] ANNでは、推論は、積和(MAC)演算を使用して実行することができる。MAC演算では、入力データ値は、メモリに記憶された複数のシナプス重みで乗じることができる。例えば、ANNは、画像当たり多くのMAC演算(例えば、1億5600万ものMAC演算)を実行して、画像内の物体を分類することができる。次に、これらの乗算の結果は、ネットワーク内の各ニューロンにおける加算により積分することができる。MAC演算の実行後、非線形関数をニューロンの積分値に適用して、出力値を生成することができる。出力値は浮動小数点値であることができる。
[0031] 複数の層を使用して、特定のタスクを実行するANNを作成することができる。多くのニューロンは、ANNの各層で並列に使用することができる。プーリング演算を推論層間で実行することもできる。
[0032] ディープANNは、多くの層を有するANNのソフトウェア又はハードウェア実装を指すことができる。ディープANNは、画像分類でかなりの成功を収めることができる。例えば、ディープANNはImageNetにおける画像の画像分類でかなりの成功を収めてきた。ImageNetとは、手動でラベル付けされた画像の大きな集まりである。
[0033] ディープANNは、生物学的ニューロンが、発火率、例えば、電気インパルスがニューロンにより受け取られ生成される率を通してデータを通信するという信念の下で創立された。ディープANNにおけるニューロンは、浮動小数点数又はマルチビット整数で通信することができる。
[0034] 畳み込みニューラルネットワーク(CNN)は、ニューロンが多くのラベル付き例を使用してトレーニングされて、データセット中に発生する特徴を抽出するディープANNの一種である。例えば、データセットは画像であることができる。CNNは畳み込み演算を画像に適用することができる。畳み込み演算は、画像の小さなセクションに作用することができ、画像における特徴の発生を示す値をCNN内の次の層に通信することができる。特徴は、小さな矩形エリアに含まれることができる。この小さな矩形は、より大きな入力画像の周囲をプログラム的に移動することができる。画像内の特徴が、ニューロンのシナプス重みに記憶された特徴情報に一致する場合、値はCNN内の次の層に送られる。CNNでは、シナプス重みは、画像の異なる場所における同様の特徴に応答するニューロン間で共有される。CNN内のニューロンは、定義された特徴のフィルタとして機能することができる。CNNのトレーニングは、バックプロパゲーションとして知られる数学的最適化技法を通して達成することができる。
[0035] CNNは、特徴の検出及び画像の分類では成功してきたが、多くの場合、高計算需要、破滅的な忘却、及び敵対的サンプルの不正確な分類を含む幾つかの技術的問題を有することが多い。CNNは高待ち時間も有する。メニーコアプロセッサ及び超並列処理をCNNで使用して、高計算要件により生じる待ち時間問題を相殺することができるが、これは多くの場合、CNNへの高電力要件を生じさせる。例えば、ImageNet内の画像の分類に使用されるCNNは、2000ワットもの電力を使用することができる。これは、CNNが高電力中央演算処理装置(CPU)及びペリフェラルコンポーネントインターコネクトエクスプレス(PCIe)アドインボードに実装される1つ又は複数のグラフィックス処理ユニット(GPU)を利用する必要があり得るためである。
[0036] SNNは、CNNに関連する技術的問題の幾つかを解決することができる。SNNは、生物学的ニューロンが、感覚器官により発せられるパルスのタイミングにおいてニューラル層間でデータを通信するという生体医学研究における命題に基づく。パルスは、スパイクと呼ばれるエネルギーの短いバーストである。SNNは、ニューロン間の情報がスパイクを使用して表現されるANNの一種である。スパイクは、そのタイミング及び空間分布に基づいて情報を表すことができる。SNNにおけるスパイキングニューロンは、入力における一連のイベントが前に学習したシーケンスとして認識される場合のみ、スパイクし、電気エネルギーを消費し得る。これは、生物学的脳で生じる処理と同様である。SNNにおいて脳の機能を模倣し、画像における物体の分類又はデータストリームにおける特定の特徴の認識等の結果を達成する技術は、ニューロモルフィック計算と呼ぶことができる。
[0037] SNNにおけるニューロンはANNのMAC要件を実行するように常に処理するわけではないため、SNNは、他のタイプのANNよりも数桁低い電力を消費することができる。むしろ、ニューロンは、スパイク発生時のみ電力を消費することができる。SNNでは、ニューラル機能は、入力スパイクが受信される都度、可変非ゼロシナプス重み値をニューロンのシミュレートされるメンブレン電位値(membrane potential value)に追加することによりエミュレートすることができる。次に、シミュレートされるメンブレン電位値は1つ又は複数の閾値と比較することができる。スパイクは、ニューロンのメンブレン電位値が閾値に達するか、又は閾値を超えた場合、生成することができる。SNNは破滅的な忘却を示さず、SNNがトレーニングされた後、学習を続けることができる。さらに、SNNが敵対的サンプルに起因した不正確な分類を受けるという証拠はない。
[0038] しかし、従来のSNNは幾つかの技術問題に悩まされ得る。第1に、従来のSNNは、畳み込み演算と全結合演算とを切り替えることができない。例えば、従来のSNNは、設計時に、全結合フィードフォワードアーキテクチャを使用して特徴を学習し、データを分類するように構成し得る。本明細書における実施形態(例えば、ニューロモルフィック集積回路)は、CNNの特徴とSNNの特徴とを組み合わせて、畳み込み演算と全結合ニューラルネットワーク機能とを切り替えるように構成され得るスパイキング畳み込みニューラルネットワーク(SCNN)にすることにより、この技術的問題を解決する。SCNNは、各ニューロンのシナプス重みの数を低減することもできる。これはまた、各ニューロンでより少ないシナプス重みでSCNNを従来のSNNよりも深くする(例えば、より多くの層を有する)こともできる。本明細書における実施形態は、入力空間の特定の位置におけるフィルタとして機能する各ニューロンの勝者総獲得(WAT)手法を使用することにより畳み込み演算を更に改善する。これは、ネットワークの選択性及び不変性を改善することができる。換言すれば、これは推論演算の精度を改善することができる。
[0039] 第2に、従来のSNNは再構成可能ではない。本明細書における実施形態は、ユーザ定義の構成に基づいてSNNのニューロンとシナプスとの間の接続を再プログラムできるようにすることにより、この技術的問題を解決する。例えば、層とニューラルプロセッサとの間の接続は、ユーザ定義の構成ファイルを使用して再プログラムすることができる。
[0040] 第3に、従来のSNNは、SNNの異なる層間にバッファリングを提供しない。しかし、バッファリングは、出力スパイクを次の層に渡すための時間遅延を可能にすることができる。本明細書における実施形態は、入力スパイクバッファ及び出力スパイクバッファをSCNNの層間に追加することによりこの技術的問題を解決する。
[0041] 第4に、従来のSNNはシナプス重み共有をサポートしない。本明細書における実施形態は、畳み込みを実行するとき、SCNNのカーネルがシナプス重みを共有できるようにすることによりこの技術的問題を解決する。これは、SCNNのメモリ要件を低減することができる。
[0042] 第5に、従来のSNNは多くの場合、1ビットシナプス重みを使用する。しかし、1ビットシナプス重みの使用は、接続を阻止する方法を提供しない。本明細書における実施形態は、三次シナプス重みを使用することによりこの技術的問題を解決する。例えば、本明細書における実施形態は2ビットシナプス重みを使用することができる。これらの三次シナプス重みは正の値、ゼロ、又は負の値を有することができる。負の重みの使用は、接続を阻止する方法を提供することができ、これは選択性を改善することができる。換言すれば、これは推論演算の精度を改善することができる。
[0043] 第6に、従来のSNNはプーリングを実行しない。これは、従来のSNNでのメモリ要件を増大させる。本明細書における実施形態は、前の層の出力に対してプーリングを実行することによりこの技術的問題を解決する。例えば、本明細書における実施形態は、前の層により出力された電位アレイに対してプーリングを実行することができる。このプーリング演算は、最も重要な情報を保持しながら、電位アレイの次元を低減する。
[0044] 第7に、従来のSNNは多くの場合、スパイクをビットアレイに記憶する。本明細書における実施形態は、スパイクを表し処理する改良された方法を提供する。例えば、本明細書における実施形態は、ビットアレイの代わりに接続リストを使用することができる。この接続リストは、各入力層ニューロンが、更新しなければならない1組のオフセットインデックスを有するように最適化される。これにより、本明細書における実施形態は、現在層内の接続ニューロンの全てのメンブレン電位値を更新するのに1つの接続リストのみを考慮するだけでよい。
[0045] 第8に、従来のSNNは多くの場合、スパイク毎に処理する。これとは対照的に、本明細書における実施形態はスパイクのパケットを処理することができる。これは、スパイクが処理されるとすぐに、電位アレイを更新させることができる。これは、より大きなハードウェア並列化を可能にすることができる。
[0046] 最後に、従来のSNNは、外部ソースから学習(例えば、シナプス重み)をインポートする方法を提供しない。例えば、SNNは、バックプロパゲーションを使用してオフラインで実行された学習をインポートする方法を提供しない。本明細書における実施形態は、ユーザがオフラインで実行された学習をニューロモルフィック集積回路にインポートできるようにすることによりこの技術的問題を解決する。
[0047] 幾つかの実施形態では、SCNNは1つ又は複数のニューラルプロセッサを含むことができる。各ニューラルプロセッサは、再プログラム可能な線維を通して相互接続することができる。各ニューラルプロセッサは再構成可能であることができる。各ニューロンプロセッサは、全結合層における畳み込み又は分類を実行するように構成することができる。
[0048] 各ニューラルプロセッサは、複数のニューロン及び複数のシナプスを含むことができる。ニューロンは、簡易化積分発火型(I&F)ニューロンであることができる。ニューロン及びシナプスは、再プログラム可能線維を通して相互接続することができる。ニューラルプロセッサの各ニューロンは、ハードウェア又はソフトウェアで実装することができる。ハードウェアで実装されるニューロンはニューロン回路と呼ぶことができる。
[0049] 幾つかの実施形態では、各ニューロンはインクリメント又はデクリメント関数を使用して、ニューロンのメンブレン電位値を設定することができる。これは、従来のI&Fニューロンの加算関数を使用するよりも効率的であることができる。
[0050] 幾つかの実施形態では、SCNNは異なる学習関数を使用することができる。例えば、SCNNはSTDP学習関数を使用することができる。幾つかの他の実施形態では、SCNNは、シナプス重み交換を使用してSTDP学習関数の改良版を実施することができる。この改良されたSTDP学習関数は、内蔵ホメオスタシス(例えば、安定した学習重み)及び効率改善を提供することができる。
[0051] 幾つかの実施形態では、SCNNへの入力はオーディオストリームから導出される。アナログ/デジタル(A/D)変換器は、オーディオストリームをデジタルデータに変換することができる。A/D変換器は、パルスコード変調(PCM)データの形態のデジタルデータを出力することができる。データ/スパイク変換器は、デジタルデータを、オーディオストリームのスペクトルを表す一連の空間的及び時間的に分布したスパイクに変換することができる。
[0052] 幾つかの実施形態では、SCNNへの入力はビデオストリームから導出される。A/D変換器は、ビデオストリームをデジタルデータに変換することができる。例えば、A/D変換器は、ビデオストリームを、各ピクセルの強度がデジタル値として表されるピクセル情報に変換することができる。デジタルカメラはそのようなピクセル情報を提供することができる。例えば、デジタルカメラは、赤ピクセル、緑ピクセル、及び青ピクセルの3つの8ビット値の形態でピクセル情報を提供することができる。ピクセル情報は捕捉され、メモリに記憶することができる。データ/スパイク変換器は、人間の視覚系の動作を模倣する感覚ニューロンにより、ピクセル情報を空間的及び時間的に分布したスパイクに変換することができる。
[0053] 幾つかの実施形態では、SCNNへの入力は、バイナリ値の形でデータから導出される。データ/スパイク変換器は、ガウス受容野により、バイナリ値の形のデータをスパイクに変換することができる。当業者ならば理解するように、データ/スパイク変換器は、他の手段によりバイナリ値の形のデータをスパイクに変換することもできる。
[0054] 幾つかの実施形態では、デジタルビジョンセンサ(例えば、iniVation AG又は他の製造からにより供給されるダイナミックビジョンセンサ(DVS))がSCNNのスパイク入力インターフェースに接続される。デジタルビジョンセンサは、スパイクの形態のピクセルイベント情報を送信することができる。デジタルビジョンセンサは、アドレスイベント表現(AER)バスを介してスパイクを符号化することができる。ピクセルイベントは、ピクセルの強度が上がる又は下がるとき、生じることができる。
[0055] 幾つかの実施形態では、SCNNの入力フォーマットは空間的及び時間的に分布したスパイクの形である。スパイクは、電気エネルギーの短いバーストとして定義することができる。
[0056] 幾つかの実施形態では、SCNNは、スパイクニューロンの1つ又は複数の層からなることができる。スパイキングニューロンは、ニューロンの機能を模倣することができる。スパイキングニューロンは、シナプスの機能を模倣する回路を通して相互接続することができる。
[0057] スパイキングニューロンは、ハードウェア又はソフトウェアで実装することができる。ハードウェア実装スパイキングニューロンは、スパイキングニューロン回路と呼ぶことができる。しかしながら、当業者ならば理解するように、本明細書における任意の実施形態において、ソフトウェア実装スパイキングニューロンをスパイキングニューロン回路の代わりに使用することも可能である。
[0058] 幾つかの実施形態では、SCNNは、記憶された構成から構成することができる。記憶された構成は、YAML Ain’t Markup Language(YAML)ファイルを使用して変更することができる。YAMLファイルは、神経線維の成分の機能を定義して、特定のタスクに向けられたSCNNを形成することができる。例えば、YAMLファイルは、Canadian Institute For Advanced Research 10(CIFAR-10)データセット(機械学習及びコンピュータビジョンアルゴリズムのトレーニングに一般に使用される画像の集まり)内の画像を分類するようにSCNNを構成することができる。
[0059] 幾つかの実施形態では、SCNN内の各層は、最大プーリング及び共有シナプス重みを有する畳み込み層として又は個々のシナプスを有する全結合層として定義、接続、及び構成することができる。
[0060] 幾つかの実施形態では、畳み込み層は、特定の特徴を抽出し、それらの特徴をメタデータとしてSCNN内の次の層に通信することにより、入力信号の次元低減において1つ又は複数の最大プーリング層と組み合わせて使用することができる。各ニューロンにより渡されるメタデータは、ニューロンメンブレン電位値又はスパイクの形態であることができる。スパイクは、閾値に達したことを示すことができる。スパイクは学習イベント又は出力スパイクをトリガーすることができる。ニューロンメンブレン電位値は、ニューロンの電位値である。ニューロンメンブレン電位値は、閾値から独立して読み取ることができる。
[0061] 幾つかの実施形態では、SCNN内の畳み込みネットワーク層は、複数のスパイキングニューロン回路を含むことができる。各スパイキングニューロン回路は、積分器及び層内の他のニューロンと共有される複数のシナプスを含むことができる。各スパイキングニューロン回路は、特徴検出器として構成することができる。畳み込み層の直後にプーリング層が続くことができる。プーリング層は、当業者ならば理解するように、最大プーリング層、平均プーリング層、又は別のタイプのプーリング層であることができる。最大プーリング層は、スパイキングニューロン回路(例えば、特徴検出器)の出力を受信することができる。最大プーリング層は、最高電位値を有するニューロン出力(例えば、ニューロンメンブレン電位値又はスパイク)のみを次の層に渡すことができる。平均プーリングは、入力を矩形プーリング領域に分割し、各領域の平均値を計算することによりダウンサンプリングを実行することができる。
[0062] 幾つかの実施形態では、SCNN内の全結合層は、分類、自律特徴学習、及び特徴抽出に使用することができる。全結合層は、複数のスパイキングニューロン回路を含むことができる。各スパイキングニューロン回路は、積分器及び複数のシナプスを含むことができる。複数のシナプスは、全結合層内の他のニューロン回路と共有されなくてよい。
[0063] 幾つかの実施形態では、SCNNにおける学習は、スパイクタイミング依存可塑性(STDP)として知られている方法を通して行うことができる。STDP学習では、出力スパイクに先行する入力スパイクは、出力スパイクに寄与した入力スパイクを示す。STDPでは、これはシナプス重みの強化を生じさせることができる。
[0064] 幾つかの実施形態では、STDP学習法は、シナプス重み交換を使用して改良することができる。シナプス重み値はシナプスにわたり交換して、出力スパイクイベントに寄与したシナプス入力を補強し、寄与しなかったシナプスを弱化させることができる。これは、スパイキングニューロン回路を特定の入力特徴にますます選択的にさせることができる。
[0065] 幾つかの実施形態では、STDP学習法は、ターシャリシナプス重みを使用して更に改良することができる。ターシャリシナプス重みは、正の値、ゼロ、又は負の値を有することができる。正の重みを記憶するシナプスは、興奮性シナプスと呼ぶことができる。負の重みを記憶するシナプスは、抑制性シナプスと呼ぶことができる。ゼロの重みを記憶するシナプスは、選択プロセスに寄与しないことができる。
[0066] 幾つかの実施形態では、スパイク入力バッファは、ニューラルネットワークの各層の入力に存在する。スパイク入力バッファは、スパイク情報を受信し記憶することができる。スパイク情報は、デジタルビットとしてスパイク入力バッファに送信することができる。スパイクの存在は「1」を使用して表すことができる。スパイクの不在は「0」を使用して表すことができる。
[0067] 幾つかの実施形態では、パケタイザが、スパイク入力バッファ内のスパイクをソートして1つ又は複数のスパイクパケットにすることができる。スパイクパケットはパケットレジスタに記憶することができる。
[0068] 幾つかの実施形態では、第1の論理AND関数をパケットレジスタに記憶されたビットパターン及びシナプスに記憶された正の重みビットに適用することができる。第1の論理AND関数の出力における論理「1」は、スパイキングニューロン回路のメンブレン電位カウンタをインクリメントする。第2のAND関数を入力スパイクバッファに記憶されたビットパターン及びシナプス内の反転された負の重みビットに適用することができる。第2の論理AND関数の出力における論理「1」は、スパイキングニューロン回路のメンブレン電位カウンタをデクリメントする。
[0069] 幾つかの実施形態では、SCNN内の層は、パラメータを共有するニューロンの集まりである。層は、前の層からスパイク情報を受け取り、スパイク情報を続くレイヤに伝播させることができる。
[0070] 幾つかの実施形態では、SCNNは、フィードフォワード及びフィードバックアーキテクチャをサポートすることができる。これは、各層が入力をローカルバス構造から受け取り、出力を同じローカルバスに渡す接続トポロジであることができる。
[0071] 幾つかの実施形態では、各層は、ヘッダ及びイベントアドレスを含むアドレスイベント表現(AER)式データ構造を送受信することができる。この情報は、スパイク入力バッファにおいて受信することができる。AERイベントは3つの成分:x、y、fを含み、ここで、fは特徴(例えばチャネル)であり、x、yは、スパイクしたスパイキングニューロン回路の座標である。入力スパイクバッファは処理されて、層により処理されるスパイクパケットを作成することができる。層は、スパイクを処理のために次の層への出力スパイクバッファに出力することができる。
[0072] 幾つかの実施形態では、入力層タイプではない全ての層タイプは電位アレイを有することができる。電位アレイは、各スパイキングニューロン回路のメンブレン電位値を記憶することができる。
[0073] 幾つかの実施形態では、各層は、層内のスパイキングニューロン回路とニューロンへの入力との間の接続を記述する2つのデータ構造を含むことができる。第1のデータ構造は、接続リストアレイと呼ぶことができる。接続リストアレイ内のエントリは、特定の入力が接続されるスパイキングニューロン回路のリストに対応することができる。接続リストアレイは、発信元から宛先への接続情報を含むことができる。
[0074] 第2のデータ構造は、重みベクトルアレイと呼ぶことができる。重みベクトルアレイ内の各エントリは、特定のスパイキングニューロン回路が接続される入力のベクトルに対応する。重みベクトルアレイは、宛先から発信元への情報を含むことができる。
[0075] 幾つかの実施形態では、全結合層タイプの各スパイキングニューロン回路は、電位アレイに1つのエントリを有する。これとは対照的に、幾つかの実施形態では、畳み込み層のスパイキングニューロン回路は、あらゆる入力チャネルにわたりx-y座標に適用される1組のシナプス重みを共有することができる。シナプス重みは、重みベクトルアレイ内に宛先-発信元フォーマットで記憶することができる。
[0076] 計算的に導出されるニューロン関数を有するANN、(例えば、ディープラーニングニューラルネットワーク(DNN)では、トレーニング及び推論は、異なる環境又はマシンで行われる2つの別個の演算であることができる。トレーニングフェーズ中、DNNは、バックプロパゲーションによりニューラルネットワークにおいてシナプス重み値を計算することにより、大きなトレーニングデータセットから学習する。これとは対照的に、DNNの推論フェーズ中、学習は行われなくてよい。
[0077] 幾つかの実施形態では、SCNNは、トレーニング演算と推論演算とを明確に区別しない。推論演算は、イベントプロパゲーションをとして動作することができる。イベントプロパゲーションは、電位アレイを更新し、その層で発火するスパイクの出力スパイクバッファを生成するSCNNの層による入力の処理を指すことができる。層内のスパイキングニューロン回路はまず、イベントプロパゲーションステップ(例えば、推論)を実行し、次に学習ステップを実行することができる。幾つかの実施形態では、学習がSCNNの層でディセーブルされている場合、層は、事実上、推論フェーズであるイベントプロパゲーションステップのみを実行し得る。
[0078] 畳み込みが関わる幾つかの実施形態では、スパイキングニューロン回路はシナプス重みを共有することができる。これらのニューロン回路はフィルタと呼ぶことができる。これは、これらのスパイキングニューロン回路が入力ストリームから特定の特徴をフィルタリングすることができるためである。
[0079] 図1は、幾つかの実施形態によるニューラルネットワークモデルのブロック図である。図1では、スパイクはローカルバス101を介して通信することができる。例えば、ローカルバス101はネットワークオンチップ(NoC)バスであることができる。スパイクは、ネットワークパケットの形態で通信することができる。ネットワークパケットは、1つ又は複数のスパイクと、発信元及び宛先のアドレスを示すコードとを含むことができる。
[0080] 図1では、スパイクデコーダ102は、ネットワークパケット内のスパイクを復号化することができる。スパイクデコーダ回路102は、ネットワークパケット内の発信元アドレスに基づいて、スパイクを特定のスパイキングニューロン回路に送信することができる。例えば、スパイクデコーダ回路102は、スパイクを対応するスパイキングニューロン回路のスパイク入力バッファ103に記憶することができる。スパイクデコーダ回路102はまた、対応するニューロン回路のスパイク入力バッファ103に、ビットが行き着くことになるアドレスを記憶することもできる。
[0081] スパイク入力バッファ103は、1つ又は複数のスパイクを記憶することができる。「1」ビットはスパイクの存在を表すことができ、0ビットはスパイクの不在を表すことができる。スパイク入力バッファ103は、ビットが行き着くことになるアドレスを含むこともできる。
[0082] 図1では、パケタイザ114は、スパイク入力バッファ103内のスパイクをソートして、1つ又は複数のスパイクパケットにすることができる。スパイクパケットは、パケットレジスタ104に記憶することができる。例えば、スパイキングニューロン回路が1024個のシナプスを有する場合、パケットレジスタ104は1024ビット長であることができる。パケタイザ114は、スパイク入力バッファ103内のビットを1024ビットパケットレジスタ104に沿った正確な位置にソートすることができる。このソートプロセスについて図6において更に説明する。
[0083] 図1では、シナプス重み値はシナプス重み記憶装置105に記憶することができる。幾つかの実施形態では、シナプス重み記憶装置105は、静的ランダムアクセスメモリ(SRAM)を使用して実施することができる。当業者ならば理解するように、シナプス重み記憶装置105は、種々の他のメモリ技術を使用して実施することもできる。
[0084] シナプス重み記憶装置105内のシナプス重み値は、正又は負であることができる。幾つかの実施形態では、シナプス重み記憶装置105内のシナプス重み値は、処理のために重みレジスタ106に転送することができる。重みレジスタ106内の正のシナプス重み値は、論理AND回路107においてパケットレジスタ104内の対応するビットとAND演算することができる。その結果生成された論理AND回路107の出力は、AND関数の正の結果のそれぞれについて、カウンタ109をインクリメントすることができる。カウンタ109は、ニューロンのメンブレン電位値を表すことができる。
[0085] 重みレジスタ106内の負のシナプス重み値は、論理AND回路108において、パケットレジスタ104内の対応するビットとAND演算することができる。その結果生成される論理AND回路108の出力は、カウンタ109をデクリメントすることができる。このプロセスは、パケットレジスタ104内の全てのビットが処理されるまで続けることができる。
[0086] パケットレジスタ104内の全てのビットが処理された後、カウンタ109は、重みレジスタ106内の正及び負のシナプス重み値に対応するパケットレジスタ104内のビット数を表す値を含むことができる。カウンタ109の値は、閾値比較器110を使用して少なくとも1つの閾値と比較することができる。
[0087] 幾つかの実施形態では、閾値比較器110は、カウンタ109の値を2つの閾値と比較することができる。例えば、閾値比較器回路110は、カウンタ109の値を学習閾値レジスタ111内の値及びスパイキング閾値レジスタ112内の値と比較することができる。
[0088] 幾つかの実施形態では、学習閾値レジスタ111内の値はまず低値に設定することができ、ニューロンが学習できるようにする。学習プロセス中、シナプス重みは、重み交換器113を使用して入力スパイクに割り当てることができる。この方法は図8及び図9に示される。幾つかの実施形態では、ニューロンが学習するにつれて、カウンタ109内の値は増大し、学習閾値レジスタ111内の値も同様に増大する。このプロセスは、ニューロンが特定の学習されたパターンに対して強力な応答を提示するまで続けることができる。
[0089] 図2Aは、幾つかの実施形態によるニューロモルフィック集積回路200のブロック図である。ニューロモルフィック集積回路200は、神経線維201、変換複合体202、センサインターフェース203、プロセッサ複合体204、1つ又は複数のデータインターフェース205、1つ又は複数のメモリインターフェース206、高速チップ間インターフェースを提供することができるマルチチップ拡張インターフェース207、電力管理ユニット213、及び1つ又は複数の直接メモリアクセス(DMA)エンジン214を含むことができる。
[0090] 幾つかの実施形態では、神経線維201は、複数の再構成可能なニューラルプロセッサ208を含むことができる。ニューラルプロセッサ208は、複数のニューロンを含むことができる。例えば、ニューラルプロセッサ208は、複数のスパイキングニューロン回路及び複数のシナプスを含むことができる。上述したように、スパイキングニューロン回路は、入力スパイクバッファ103、パケタイザ114、パケットレジスタ104、論理AND回路107、論理AND回路108、カウンタ109、閾値比較器110、学習閾値111、スパイキング閾値112を使用して実施することができる。複数のシナプスは、重みレジスタ106、シナプス重み記憶装置105、及び重み交換器113を使用して実施することができる。各ニューラルプロセッサ208は、神経線維201の任意の部分に接続することができる複数の再プログラム可能なスパイキングニューロン回路を含むことができる。
[0091] 幾つかの実施形態では、変換複合体202は、ピクセル/スパイク変換器209、オーディオ/スパイク変換器210、ダイナミックビジョンセンサ(DVS)/スパイク変換器211、及びデータ/スパイク変換器212の1つ又は複数を含むことができる。ピクセル/スパイク変換器209は、画像をスパイクイベントに変換することができる。
[0092] 幾つかの実施形態では、センサインターフェース203は、ピクセルデータ、オーディオデータ、アナログデータ、及びデジタルデータの1つ又は複数のインターフェースを含むことができる。センサインターフェース203は、DVSピクセルデータのAERインターフェースを含むこともできる。
[0093] 幾つかの実施形態では、プロセッサ複合体204は、少なくとも1つのプログラマブルプロセッサコア、メモリ、及び入出力周辺機器を含むことができる。プロセッサ複合体204は、ニューロモルフィック集積回路200と同じダイに実装することができる。
[0094] 幾つかの実施形態では、データインターフェース205は、入出力周辺機器の1つ又は複数のインターフェースを含むことができる。1つ又は複数のインターフェースは、ペリフェラルコンポーネントインターコネクトエクスプレス(PCIe)バス規格、ユニバーサルシリアルバス(USB)バス規格、イーサネットバス規格、コントローラエリアネットワーク(CAN)バス規格、及びリアルデータを送受信するための万能非同期送信受信機(UART)を使用することができる。
[0095] 幾つかの実施形態では、メモリインターフェース206は、ダイナミックランダムアクセスメモリ(RAM)拡張のための1つ又は複数のインターフェースを含むことができる。1つ又は複数のインターフェースは、ダブルデータレート同期ダイナミックランダムアクセスメモリ(DDR SDRAM)規格を使用することができる。例えば、1つ又は複数のメモリインターフェースは、DDR3又はDDR4規格を使用することができる。
[0096] 幾つかの実施形態では、マルチチップ拡張インターフェース207は、スパイク情報を搬送することができ、神経線維201を複数のチップに拡張できるようにする。マルチチップ拡張インターフェース207は、AERを使用してスパイク情報を搬送することができる。AERは、システムバスを介してスパイクイベントを送信する規格である。スパイクが発生時にスパイクする特定のニューロンのアドレスが送信される。
[0097] 幾つかの実施形態では、ニューロモルフィック集積回路200は、スパイク情報を入力としてとり、出力としてAERスパイクイベントを生成することができる。SCNNの最後の層からスパイクを出力することに加えて、AERスパイクイベントは、各スパイキングニューロン回路のメンブレン電位値を送信することもできる。
[0098] 幾つかの実施形態では、神経線維201は、フィードフォワード様式でスパイクを処理することができる。スパイクは、AERフォーマットデータを使用して層間を送信することができる。各層は、入力スパイクバッファに記憶されたスパイクを1組のスパイクパケットに変換する入力スパイクバッファ(例えば、入力スパイクバッファ103)を有することができる。あらゆる層は、入力スパイクバッファ内の全てのスパイクを完全に処理してから、その出力スパイクを次の層に送信することができる。
[0099] 図2Bは、幾つかの実施形態による図2Aのニューロモルフィック集積回路200の別のブロック図を示す。図2Bは、ローカルバス220(例えば、NoCバス)を使用したニューロモルフィック集積回路200の構成要素の相互接続を示す。図2Bでは、ニューロモルフィック集積回路200は、図2Aに示されるように、神経線維201、プロセッサ複合体204、1つ又は複数のデータインターフェース205、ピクセル/スパイク変換器209、オーディオ/スパイク変換器210、及びDMAエンジン214を含むことができる。ニューロモルフィック集積回路200は、シナプス重み記憶装置222、メモリ224、シリアル読み取り専用メモリ(ROM)226、構成レジスタ228、PCIeインターフェースブロック230、PCIeバス232、UARTインターフェース234、CANインターフェース236、USBインターフェース238、及びイーサネットインターフェース240を含むこともできる。
[0100] 幾つかの実施形態では、シナプス重み記憶装置222は、図1のシナプス重み記憶装置105と同等であることができる。シナプス重み記憶装置222は、神経線維201に接続することができる。シナプス重み記憶装置222は、全てのシナプスの重み及び全てのスパイキングニューロン回路のメンブレン電位値を記憶することができる。シナプス重み記憶装置222は、PCIeバス232に接続することができるPCIeインターフェースブロック230から1つ又は複数のDMAエンジン214を通して外部からアクセスすることができる。
[0101] 幾つかの実施形態では、構成レジスタ228は神経線維201に接続することができる。神経線維201の初期化中、プロセッサ複合体204はシリアルROM226を読み取り、値を構成レジスタ228及びシナプス重み記憶装置222に書き込むことにより、外部定義の機能に向けて神経線維201を構成することができる。
[0102] 幾つかの実施形態では、プロセッサ複合体204は、PCIeインターフェース230を通して外部から利用可能である。プログラムはメモリ224に記憶することができる。プログラムは、UARTインターフェース234、CANインターフェース236、USBインターフェース238、及びイーサネットインターフェース240の機能を決めることができる。これらのインターフェースの1つ又は複数は、神経線維201、プロセッサ複合体204、又は両方により処理されるデータを送出することができる。
[0103] オーディオ/スパイク変換器210は、神経線維201により処理されるべきスパイクをローカルバス220に直接送出することができる。ピクセル/スパイク変換器209は、外部画像センサに接続することができ、ピクセル情報をスパイクパケットに変換し、スパイクパケットは、神経線維201による処理のためにローカルバス220に配られる。処理されたスパイクはパケット化され(例えば、ネットワークパケットに挿入され)、ローカルバス220に配置される。
[0104] 図3は、幾つかの実施形態による、入力パケットバッファリング、パケット化、及び次の層への出力スパイクバッファリングの流れ図である。図3は、入力スパイクバッファ301、1つ又は複数のスパイクパケット302、神経線維303、及び出力スパイクバッファ304を含む。図3では、入力スパイクバッファ301内のスパイクは、神経線維303内の特定のニューロン(例えば、スパイキングニューロン回路)の1つ又は複数のスパイクパケット302にソートすることができる。神経線維303で処理された後、生成されたあらゆるスパイクは、後続層に送信される出力スパイクバッファ304に記憶することができる。出力スパイクバッファ304内の生成されたスパイクは、後続層による処理のためにパケット化することができる。
[0105] 幾つかの実施形態では、神経線維303内の層は、入力スパイクバッファ301の全体を処理することができる。層は、各スパイクパケット302を順次処理することができる。その結果生成された出力スパイクは、出力スパイクバッファ304に配置することができる。出力スパイクバッファ304は、全てのスパイクパケット302が処理されるまで、処理に向けて次の層に送信されないことがある。幾つかの実施形態では、神経線維303の全ての層はこの作業フローに従うことができる。
[0106] 幾つかの実施形態では、神経線維303は、一度に多くのスパイクを処理することができる。幾つかの実施形態では、異なるスパイクバッファタイプを神経線維303内の層に使用することができる。スパイク入力バッファのタイプは、入力データの性質に依存することができる。スパイクバッファタイプ間の違いは、入力スパイクバッファ301からスパイクパケットをいかに生成するかにあることができる。
[0107] 幾つかの実施形態では、パケット化バッファタイプを使用して、連続又は継続タイプのデータ(例えば、DVSカメラにより生成される一連のスパイク)を処理することができる。ユーザは、このバッファタイプを使用するように神経線維303の異なる層を構成することができる。パケット化バッファタイプは、一度に1つずつ又は非常に大きなバーストでの多くのスパイクの処理を可能にすることができる。パケット化バッファは、スパイク数が構成ファイル(例えば、YAMLファイル)において指定されるパラメータ(例えば、パケットサイズ)により定義されるサイズに達するまで、受信された順にスパイクを記憶することができる。パケット化バッファがそのサイズに達すると、スパイクパケットを処理に向けて神経線維303に渡すことができる。次に、パケット化バッファをクリアすることができる。次に、パケット化バッファはスパイクを引き続き記憶することができる。
[0108] 幾つかの実施形態では、フラッシュバッファタイプを使用して、定義されたサイズ(例えば、従来のビデオイメージフレーム又は定義された組の値)の形態のデータを処理することができる。例えば、ビデオフレームは、640×480ピクセル等の定義されたサイズを有することができる。しかしながら、この場合、一度に送信される多くのスパイクは、1つのパケットとして処理するために即時に送信し得る。スパイクパケットは異なる長さであることができる。
[0109] 幾つかの実施形態では、各層タイプは、まず、スパイク入力バッファからパケットを生成することにより、スパイク入力バッファ(例えば、スパイク入力バッファ301)全体を処理する関数を実施することができる。スパイク入力バッファ全体がパケット化された後、この関数は全てのスパイクパケットを処理することができる。次に、この関数は、処理されたスパイクパケットを削除し、出力スパイクをスパイクパケットから出力スパイクバッファ(例えば、出力スパイクバッファ304)にプッシュすることができる。次に、この関数は、処理する次のスパイクパケットを取得することができる。バッファタイプ間の違いは、入力スパイクバッファからスパイクパケットを生成する方法にあることができる。
[0110] 図4は、幾つかの実施形態による、スパイキング畳み込みニューラルプロセッサとして構成されたニューラルプロセッサ400のブロック図である。ニューラルプロセッサ400は、ローカルバス401(例えば、NoCバス)上のネットワーク、スパイクデコーダ402、シナプス重み記憶装置403、ニューロン位置生成器、プーリング回路404、神経線維405、電位更新及びチェック回路406、並びにスパイク生成器407を含むことができる。神経線維405は、図2の神経線維201と同等であることができる。シナプス重み記憶装置403は、シナプス重み値及びニューロンのメンブレン電位値(例えば、電位アレイ)を記憶することができる。プーリング回路404は、当業者ならば理解するように、最大プーリング演算、平均プーリング演算、又は他のタイプのプーリング演算を実行することができる。1対多スパイク生成器回路407は、ローカルバス401を介して1対多で送信することができるスパイクパケットを生成することができる。
[0111] 図5は、幾つかの実施形態による、スパイキング全結合ニューラルプロセッサとして構成されたニューラルプロセッサ500のブロック図である。ニューラルプロセッサ500は、ローカルバス501(例えば、NoCバス)、スパイクデコーダ502、シナプス重み記憶装置503、ニューロン位置生成器、パケット形成器504、神経線維505、電位更新及びチェック回路506、並びに電位及びスパイク出力回路507を含む。神経線維505は、図2の神経線維201と同等であることができる。シナプス重み記憶装置503は、シナプス重み値及びニューロンのメンブレン電位値(例えば、電位アレイ)を記憶することができる。図5では、スパイクは、スパイク入力バッファで受信し、スパイキングデコーダ502を使用してスパイクパケットとして分配される。
[0112] 幾つかの実施形態では、シナプス重みは三次重みであることができる。これらの三次シナプス重みは2ビット幅であることができる。これらの2ビット幅シナプス重みは、正の値及び負の値の両方を含むことができる。これは従来のSNNと異なる。2ビット幅シナプス重みの正の値は、ニューロンのメンブレン電位値を増大させることができる。2ビット幅シナプス重みの負の値は、ニューロンのメンブレン電位値を低減することができる。
[0113] 幾つかの実施形態では、スパイクパケット内のスパイクは、シナプス宛先数に従って分配することができる。幾つかの実施形態では、処理中、三次シナプス重みは、スパイクパケットにおいて表されるスパイクと論理AND演算される。スパイクパケット内のスパイクは、正のスパイクビットを使用して表すことができる。スパイクパケット内のスパイクの不在は、ゼロを使用して表すことができる。シナプス重みは負又は正であることができる。負のシナプス重みは、ニューロンのカウンタ109(例えば、メンブレン電位レジスタ)をデクリメントすることができる。正のシナプス重みは、ニューロンのカウンタ109(例えば、メンブレン電位レジスタ)をインクリメントすることができる。
[0114] 幾つかの実施形態では、学習プロセスは、ニューロンの学習閾値(例えば、学習閾値レジスタ111内の値)に達した場合、入力を調べることにより実施することができる。ニューロンの学習閾値はまず、非常に低い値に設定することができる。学習閾値は、ニューロンが学習し、より多くのシナプス重みがマッチするにつれて、増大することができる。幾つかの実施形態では、学習プロセスは、未使用シナプス重み(例えば、スパイクが発生しない場所における正のシナプス重み)と未使用スパイク(例えば、値0を有するシナプス重みに対する位置にあるスパイクパケット内のスパイク)の交換を含み得る。未使用シナプス重みは、未使用スパイクを含む場所と交換することができる。
[0115] 幾つかの実施形態では、ニューロンメンブレン電位値(例えば、カウンタ109により表される)がスパイキング閾値(例えば、スパイキング閾値レジスタ112内の値)を超える場合、スパイクが生成される。スパイクはローカルバスに配置される。
[0116] 図6Aは、幾つかの実施形態による、スパイクをパケット化してスパイクパケットにすることの一例である。図6Aでは、スパイク入力バッファ601(例えば、スパイク入力バッファ103と同等)は、スパイク復号化回路により処理されたスパイクをローカルバスから受信する。パケタイザ602は、スパイクのシナプスインデックス数に従ってスパイク入力バッファ601内のスパイクをソートしてスパイクパケット603にすることができる。例えば、図6Aでは、受信されたスパイクシーケンスは1、6、23、1、19、18である。当業者なら理解するように、スパイクシーケンスは、図6Aに示される少数のスパイクよりもはるかに多数であり得る。例えば、スパイクシーケンスは、多数のシナプスに分配される数千のスパイクを含むことができる。
[0117] 図6Bでは、幾つかの実施形態による図6Aのスパイクパケット603の表現の一例である。図6Bでは、スパイクパケット603は、スパイク入力バッファ601からソートされたスパイクを含む。スパイクパケット603では、位置1、6、18、19、及び23は強調表示されて、論理「1」値を含むことを示す。スパイクパケット603内の残りの位置はゼロ(例えば、スパイクの不在を示す)を含む。
[0118] 幾つかの実施形態では、スパイクは、シナプス重みがメモリ(例えば、シナプス重み記憶装置105)に配置されたのと同じ順に編成することができる。これは、シナプス重み値と入力スパイクパケット内のスパイクとの間でAND演算を実行して、メンブレン電位カウンタ(例えば、カウンタ109)がインクリメントされるか、それともデクリメントされるかを判断できるようにすることができる。スパイクが、シナプス重み値がゼロである位置で生じる場合、カウンタはそのビット位置について変更されない。
[0119] 図7は、幾つかの実施形態による、メンブレン電位値(例えば、カウンタ109)がインクリメントされるか、それともデクリメントされるかを選択する方法の一例である。図7では、論理AND演算がスパイクパケット701と重みレジスタ702(例えば、重みレジスタ702は重みレジスタ106と同等である)との間で実行される。図7では、スパイクパケット701のスパイクビット1、6、18、19、及び23は強調表示されて、論理「1」値(例えば、スパイクの存在を示す)を含むことを示す。スパイクパケット701内の残りの位置はゼロ(例えば、スパイクの不在を示す)を含む。
[0120] 重みレジスタ702は、正の値又は負の値の何れか一方を示す論理ビットを含むことができる。図7では、ビット1、4、5、14、及び22は正の値を含み、一方、ビット18は負の値を含む。正の値は興奮作用を示すことができ、一方、負の値は抑制作用を示すことができる。重みレジスタ702内のビットは、興奮性重みの場合、EXCと記し、抑制性重みの場合、INHと記すことができる。論理ANDが、重みレジスタ702内のビットとスパイクパケット701内のビットとの間で実行される。したがって、位置1において生じたスパイクは、ニューロンのメンブレン電位値(例えば、カウンタ109)をインクリメントする。これとは対照的に、位置18で生じたスパイクは、ニューロンのメンブレン電位値(例えば、カウンタ109)をデクリメントする。
[0121] 図7は、幾つかの実施形態による、スパイク時間依存可塑性(STDP)学習法の一例である。STDP学習では、出力イベント/スパイクに寄与するスパイクは、強化された代表的なシナプス重みを有することができ、一方、出力イベント/スパイクに寄与しなかったスパイクは、弱化されたシナプス重みを有することができる。
[0122] 幾つかの実施形態では、STDP学習法は、未使用シナプス重みが、未使用スパイクを含む場所と交換されるように変更される。例えば、ゼロであり、スパイクを受信したシナプス重みは、論理「1」であり、いかなるスパイクも受信しなかったシナプス重みと交換される。
[0123] 幾つかの実施形態では、論理AND演算が、「1」であるスパイクパケット内のスパイクビット及びゼロであるシナプス重みに対して実行される場合、結果はゼロである。これは、「未使用スパイク」と呼ぶことができる。論理AND演算が、「0」であるスパイクパケット内のスパイクビット及び「1」であるシナプス重みに対して実行される場合、結果はゼロである。これは「未使用シナプス重み」と呼ぶことができる。学習回路(例えば、重み交換器113)は、未使用スパイクが生じているランダムに選択された未使用シナプス重みを交換することができる。
[0124] 図7では、スパイクパケット701内の位置1は、使用済みスパイクを含む。シナプス重み702内の位置1は、使用済み重みを含む。これは、ニューロンのメンブレン電位値(例えば、カウンタ109)をインクリメントさせることができる。
[0125] シナプス重み702内の位置4及び5は、未使用シナプス重みを含む。これらのシナプス重みは、交換の候補である。スパイクパケット701内の位置6は、未使用スパイクを含む。換言すれば、スパイクパケット701内の位置6は1を含むが、シナプス重み702の位置6はゼロを含む。未使用シナプス重みはこの位置と交換することができる。シナプス重み702の位置14は、未使用シナプス重みを含む。スパイクパケット701の位置18は、使用済みスパイクを含み、シナプス重み702の位置18は、使用済みシナプス重み(この場合、抑制性)を含む。これは、ニューロンのメンブレン電位値(例えば、カウンタ109)をデクリメントさせることができる。スパイクパケット701の位置19は、未使用スパイクを含む。シナプス重み702の位置22は、未使用シナプス重みを含む。スパイクパケット701の位置23は、未使用スパイクを含む。
[0126] このSTDP学習法は、生物学的脳で行われる学習によりインスパイアされている。幾つかの実施形態では、変更された形態のSTDP学習法は、学習の実行に使用される。この変更された方法は、生物学的ニューロンが学習するメカニズムと同様である。
[0127] 幾つかの実施形態では、スパイキングニューロン回路は、入力がメンブレン電位値(例えば、カウンタ109)を閾値まで駆動したとき、スパイクを発する。これは、ニューロンが閾値まで駆動され、スパイクを生成するとき、その最近活性化された入力からの接続は強化され、一方、幾つかのその他の接続は弱化されることを意味することができる。繰り返し見る入力のパターンに応答してニューロンが学習することになり、それにより、入力データセットを特徴付ける特徴を自動的に学習することができる。
[0128] 幾つかの実施形態では、学習閾値の変更により生じるニューロン間の自然な競合等のこのSTDP法の他の属性に応じて、層内のニューロンの集団は、様々な入力特徴空間を学習する。したがって、所与の入力に対するニューロンの集団の応答は、存在する特徴についての情報を搬送する。
[0129] 脳では、感覚処理は通常、階層的であり、一連の層にわたって行われる。初期層は単純な特徴についての情報を抽出し、上位層ほど、応答がより複雑な形状又は物体に対してより選択的であるとともに、空間位置又は向きに対して不変であるという点でより一般的であるように、それらの特徴の組合せに応答するように学習する。
[0130] 幾つかの実施形態では、この変更されたSTDP学習法は完全に教師なしである。これは、ニューラルネットワークで使用されている従来の多様な教師ありトレーニング法と異なる。これは、本明細書における実施形態にラベルなしデータセットを提示することができ、いかなる追加情報もなく、データに存在する異なる特徴に応答するように学習することができることを意味する。学習は進行中のプロセスであることができる。
[0131] 幾つかの実施形態では、新しいクラスが既にトレーニングされたデータセットに追加される場合、ニューラルネットワーク(例えば、神経線維201)全体を再トレーニングする必要がない。これは、破滅的な忘却性という技術的問題をなくすことができる。学習を継続できるようにすることにより、ネットワークにより既に認識されたネットワークに新しいクラスを追加することができる。
[0132] 教師なし学習は、特徴を抽出することができる。しかしながら、ラベル付きデータがない場合、教師なし学習は出力を直接「ラベル付け」することができない。分類タスクでは、ニューラルネットワーク(例えば、神経線維201)は、刺激データセットに存在するクラスを区別する1組の特徴を学習することができる。次に、特徴を表す応答を入力ラベルにリンクする方法を適用するのはユーザ次第であることができる。
[0133] 図8は、幾つかの実施形態によるSTDP学習法の重み交換ステップを示す。図8は、「未使用シナプス重み」が「未使用入力」と交換され、それにより、将来、同じ又は同様の入力スパイクパターンへのニューロンの応答を強化する、変更されたSTDP学習プロセスにおける次のステップの一例を示す。
[0134] 図8では、スパイクパケット801のスパイクビット1、6、18、19、及び23は強調表示されて、論理「1」値を含む(例えば、スパイクの存在を示す)ことを示す。スパイクパケット801内の残りの位置はゼロを含む(例えば、スパイクの不在を示す)。シナプス重み802のビット1、4、5、14、及び22は「+1」値を含み、一方、ビット18は「-1」値を含む。未使用スパイク801のビット19は、スパイクパケット801内の未使用スパイクを表す。未使用シナプス重み802のビット5及び14は、シナプス重み802内の未使用シナプス重みを表す。図8では、新しいシナプス重み805は、未使用シナプス重み(例えば、スパイクが生じなかった場所における正のシナプス重み)及び未使用スパイク(例えば、ゼロの値を有するシナプス重みに対する位置にあるスパイクパケット内のスパイク)を交換した結果を表す。例えば、新しいシナプス重み805のビット14は、シナプス重み802のビット18の値を含み、この逆も同様である。
[0135] 図9は、幾つかの実施形態による、スパイキング全結合ニューラルプロセッサとして構成されたニューラルプロセッサにおける畳み込みを示す。例えば、図9は、スパイキング全結合ニューラルプロセッサとして構成されたニューラルプロセッサで使用される畳み込み層における重み交換による変更されたSTDP学習法を示す。
[0136] 畳み込みは、データ(例えば、画像)から特徴を抽出する目的を有する数学的演算であることができる。2組のデータ間の畳み込みの結果は、画像データであれ、又は別のデータタイプであれ、第3の組のデータである。
[0137] 幾つかの実施形態では、畳み込みはスパイク及び電位値に対して作用することができる。各ニューラルプロセッサ(例えば、ニューラルプロセッサ208)は、最高電位値を有するニューロンを識別し、それを同じ層内の他のニューラルプロセッサにブロードキャストすることができる。幾つかの実施形態では、ニューロンの電位値が学習閾値(例えば、学習閾値レジスタ111内の値)よりも高い場合、そのニューロンに出力するニューロンの全てのカーネルのシナプス重みは更新される。同じイベントパケットを前の層から再送信することができる。ニューラルプロセッサは、ニューロンの各フィールド内のスパイクのみに影響を及ぼし得る。例えば、図9では、正方形902内のエリアのように。ニューラルプロセッサ208は、各フィールド内で未使用スパイク(Uとして示される)及びカーネル(例えば、カーネル901及び903)内の未使用重み(Uとして示される)を識別した。
[0138] 幾つかの実施形態では、変更されたSTDP学習法は、ルールに従って未使用シナプス重みと好ましいシナプス重みとの間で全てのカーネルにわたり交換されるビットの総数を決定することができる。例えば、ルールは、交換されるビットの数=min(交換数、未使用スパイク数、未使用重み数)であり得、ここで、交換数は構成フィールドであることができる。この例では、min(5,3,4)=3である。次に、変更されたSTDP学習法は、全てのカーネルにわたり「交換されるビット数」のビットをランダムに交換することができる。図9では、3つのビットが交換される。次に、変更されたSTDP学習法は、それに従って同じ層の他の全てのニューラルプロセッサのフィルタのシナプス重みを更新することができる。
[0139] ニューラルネットワークはトレーニングフェーズを有することができる。トレーニングフェーズは、既知の試料を使用することができる。ニューラルネットワークは、前に使用されなかった試料が認識される推論ステージを有することもできる。トレーニングフェーズ中、出力ニューロンは、最も応答する刺激クラスに従ってラベル付けられる。推論フェーズ中、入力は、そのニューロンが最も応答する特徴に従ってラベル付けられる。本明細書における実施形態の教師なし学習法は、小さな部分のみがラベル付けられた相当なデータセットが存在する場合、有用であることができる。この場合、本明細書における実施形態は、データセット全体でトレーニングすることができ、その後、教師ありステージが実行されて、ラベル付けられたより小さなデータセットを使用してネットワーク出力をラベル付ける。
[0140] 幾つかの実施形態では、教師あり学習アルゴリズムを使用することができる。本明細書における実施形態の推論コンポーネントは、高速で効率的な計算という利点を保ちながら、学習アルゴリズムから完全に分離可能であることができる。本明細書における実施形態は、ユーザ選択のアルゴリズムを使用してオフラインで学習されたシナプス重みを容易にアップロードすることができるように設計された。ネットワーク設計は、二次又は三次シナプス重み及び活性化レベルに制限することができる。増え続ける第三者技法が存在し、これらの制約内の教師あり学習に行き着く。
[0141] 教師なし学習は、あるステージでは教師により支援されて、これらのタスクで上手く実行することができるが、教師あり学習法が有利な幾つかの場合がある。しかしながら、その一方で、教師なし学習は、教師あり学習法では不可能なタスク-例えば、教師に使用されるラベル付き結果がない場合、データ内の未知で予期されないパターンを見つけること-を実行する能力を有する。これらの手法は失敗しやすい。
[0142] 図10は、幾つかの実施形態による、深度1のピクセルの8×8行列での畳み込みの象徴的表現を示す。図10では、一例の5×5畳み込みフィルタ1002が適用される。図10では、フィルタ1002は元の入力から「突き出る」ことができる。図10では、これは、元の入力1001をゼロでパディングすることにより行うことができる。
[0143] 4つの畳み込みタイプがサポートされる:有効、同じ、フル、及びパディング。図10は、結果として生成された畳み込みを示す。「フル」畳み込み(例えば、フル畳み込み1003)は、大方、4のパディングを用いて出力畳み込みサイズを増大させることができる。「同じ」畳み込み(例えば、同じ畳み込み1004)は、2のパディングを使用して、元の入力次元(例えば、8×8×1)と同じ出力畳み込みサイズを生成することができる。「有効」畳み込み(例えば、有効畳み込み1005)は、0パディングを使用し、元の入力次元未満の出力畳み込みサイズを生成する。
[0144] 幾つかの実施形態では、SCNNは、フル畳み込み、同じ畳み込み、又は有効畳み込みを使用できるようにすることができる。SCNNはまた、「パディング」と呼ばれるカスタム畳み込みタイプを使用できるようにすることもできる。プログラマは、元の入力1001の各辺の周囲にパディングを指定することによりパディング畳み込みタイプを示すことができる。
[0145] 幾つかの実施形態では、異なるタイプの畳み込みは式2-4により定義することができる。式2-4は、元の入力サイズ及びフィルタサイズの関数として、畳み込まれる入力のサイズを定義することができる。式2-4では、Iは元の入力の幅を表すことができ、Cは畳み込まれる入力(例えば、電位アレイ)の幅を表すことができ、kはフィルタの幅を表すことができる。
有効タイプ:C=I-(k-1) (2)
同じタイプ:C=I (3)
フルタイプ:C=I+(k-1) (4)
[0146] 図11は、幾つかの実施形態による、2チャネルのスパイク、2つの3×3逆畳み込みカーネル、及び生成されるメンブレン電位値が関わる畳み込みの象徴的表現を示す。図11は、スパイクの2つのチャネル1101及び1102を示す。図11は、2つの3×3逆畳み込みカーネル1103及び1104並びに精製されたニューロンメンブレン電位値1105を更に示す。本実施形態の2チャネル例がここに提示され、これらの演算がプログラムされたプロセッサではなくスパイキングニューロン回路を使用して実行されるという変更がなされている。まず、SCNNプロセッサとして講師絵されたニューラルプロセッサ内の全ての電位は、ゼロにクリアされる。スパイクパケットが入力されると、スパイクパケットの処理により、影響を受けるニューロン回路のメンブレン電位値は変更される。
[0147] 図12は、幾つかの実施形態による、図11のチャネル1101及び1102におけるスパイキングニューロン回路で生成されてもたらされたスパイクを示す。チャネル1101は、発火されたスパイキングニューロン回路を行列中の「1」として示す。チャネル1101中の他の全ての場所はゼロで埋められる。スパイクマップは、チャネル1101及び1102について図11に示される2つの逆カーネル1103及び1104を使用して畳み込むことができ、図11に示されるニューロンメンブレン電位値1105が生成される。
[0148] 図13は、幾つかの実施形態によるスパイキングニューラルネットワーク畳み込み演算を示す。図13は、2つのフィルタ(例えば、フィルタ1304及び1305)により処理されている3つのチャネル(例えば、チャネル1301、1302、及び1303)を有する入力(例えば、画像)を示す。フィルタ1304及び1305中の空のエントリは、ゼロ値に対応することができる。
[0149] 図13では、フィルタ1304は5×5×3(例えば、フィルタ幅×フィルタ高さ×チャネル数)という次元を有する。フィルタ1304は、入力画像の座標(2,2)でセンタリングされる。入力画像の左上隅は座標(0,0)を有する。フィルタの幅及び高さは、入力画像よりも小さくてよい。当業者ならば理解するように、フィルタは3×3、5×5、又は7×7構成を有することが多い。
[0150] 幾つかの実施形態では、フィルタは、入力の特定のチャネルに対応する異なる組の重みを有することができる。各組の重みは、フィルタのカーネルと呼ぶことができる。図13では、フィルタ1304は3つのカーネル(例えば、カーネル1306、1307、及び1308)を有する。各フィルタ中のカーネルの数は、入力中のチャネル数に一致することができる。あらゆる入力イベントは、(x,y)座標及びチャネル座標を有することができる。
[0151] 幾つかの実施形態では、畳み込み演算の結果は、電位アレイ中の1つのエントリに合算される。図13では、点線の枠は、フィルタ1304の畳み込みが入力に対して行われる場所を示す。フィルタ1304の電位アレイ1309中のより小さな点線の枠は、これらの入力が合算される場所を示す。
[0152] 図13中、フィルタ1304により実行される畳み込み演算は、3Dドット積として説明することができる。点線の枠は、フィルタ1304が入力と位置合わせされる場所を示す。3Dドット積はx、y及びチャネルにわたり合算し、このスカラー和を電位アレイ(又は活性化マップ)と呼ばれる第3の行列中に配置する。図13では、電位アレイ1309はフィルタ1304の電位アレイを表す。当業者ならば理解するように、電位アレイの各要素は、ニューロン(例えば、スパイキングニューロン回路)のメンブレン電位値として見ることができる。
[0153] 図13では、電位アレイ1309及び1310は、フィルタ1304及び1305に対応する電位アレイを表す。点線の枠は、現在の畳み込みの結果を示す。電位アレイの次元は、ニューロン(例えば、スパイキングニューロン回路)の総数を定義することができる。図13では、フィルタ1304及び1305はそれぞれ9つのニューロンをシミュレートする。各フィルタ1304及び1305は、3つの入力チャネル内の異なるx-y位置でセンタリングすることができる。図13における畳み込みのこの例は、入力画像中の要素並びにフィルタ1304及び1305中の重みの二進値を示す。しかしながら、当業者ならば理解するように、入力画像中の要素並びにフィルタ1304及び1305中の重みは、正及び負の浮動小数点値を含むこともできる。
[0154] 幾つかの実施形態では、離散畳み込みは式1を使用して実行することができる。式1中、fは入力を表すことができ、gはフィルタ(例えば、フィルタ1304)を表すことができる。当業者ならば理解するように、式1は、各値で異なる画像場所でセンタリングされたドット積を計算することと同様である。しかしながら、当業者ならば理解するように、フィルタは、各ドット積の入力上を「滑る」前、「反転」する必要があり得る。畳み込み演算は、有用な数学的属性であるため、フィルタ中でインデックスを反転させる必要があり得る。
Figure 2022509754000002
[0155] 幾つかの実施形態では、畳み込み層のストライドは、フィルタ(例えば、1304)が後続するドット積演算間でシフトされる量として定義することができる。幾つかの実施形態では、畳み込みストライドは1としてハードコードすることができる。
[0156] 図13中、フィルタ1304及び1305は、畳み込み演算中、元の入力画像から「突き出る」ことが全く許されない。このタイプの畳み込みは「有効」畳み込みと呼ぶことができる。このタイプの畳み込みは、元の入力よりも小さな電位アレイ(例えば、電位アレイ1309及び1310)を生じさせることができる。
[0157] 図14は、幾つかの実施形態による、入力画像に適用されている8つの方向フィルタニューロン畳み込みの結果を示す。図14では、1つのチャネルを有する、猫を含む入力画像1401は、チャネル1402、1403、1404、1405、1406、1407、1408、及び1409を有する、元の画像と同じ幅及び高さ次元を有するスパイクマップに変換される。
[0158] 図15は、幾つかの実施形態によるDVSスパイクベースの畳み込みとフレームベースの畳み込みとの類似性を示す。フレームは、標準ビデオカメラにより送信されたフレームを指すことができる。イベント(又はスパイク)は、スパイク又はイベントベースのカメラにより送信される。イベントベースの畳み込みは、各イベント(又はスパイク)において畳み込み演算を実行することができ、結果を出力メンブレン電位アレイに配置する。フレームベースの畳み込み1502は、畳み込みがフル画像にわたり実行される従来のフレームベースの畳み込みを示す。畳み込みのパラメータ及び結果が示されている。イベントベースの畳み込み1504は、(3,3)におけるイベント(又はスパイク)が時間0ナノ秒(ns)において処理され、次に、(2,3)におけるイベントが時間10nsにおいて処理され、次に(3,3)における別のイベントが20nsにおいて処理され、そして最後に(3,2)におけるイベントが30nsにおいて処理されるイベントベースの畳み込み演算を示す。各イベントが処理された後、結果として生成されたアレイは、カーネルの上に示されている。最終結果は同じである。
[0159] 図16は、幾つかの実施形態によるYAML構成ファイル1600の一例を示す。YAMLファイルは、Pythonプログラミング言語の特徴であることができる。幾つかの実施形態では、YAML構成ファイル1600は、ニューロモルフィック集積回路をプログラムし、定義されたアプリケーションでイベント(又はスパイク)を処理するように初期化するのに使用することができる。イベントは、スパイクの発生により示され、画像中の色変換、測定されたアナログ値の増減、コントラストの変化、データパケット中の特定のデータの発生、又は他の現実世界の現象を示し得る。
[0160] 幾つかの実施形態では、ニューロモルフィック集積回路又はそのソフトウェアシミュレーションは、8つの別個のニューラル層を有するSCNNにおいてCIFAR10データセットを処理するようにYAML構成ファイル1600により構成される。第1の層(層1602)は、データセットの解像度に合うように32×32ビット編成を有する入力層として構成される。この層は、ピクセル情報をスパイクに変換することができ、層1604に接続される。
[0161] 層1604は、三次シナプス重みを有する畳み込み層として構成される。層1604は「ConvolutionalTertiary」層タイプとして定義される。重みは、指定されたディレクトリに存在する「scnn_conv2_wts.dat」と呼ばれるファイルから層1604に予めロードすることができる。層1604は「FlushingBuffer」を使用するように定義される。「FlushingBuffer」は、YAML構成ファイル1600の他の箇所で定義される。層1604のスパイクパケットサイズは131,072スパイクとして定義される。これは、深さ8を有する32×32ピクセルの1つのフレーム全体と同等であることができる。層1604は、次の層(例えば、層1606)への128個の出力を有するように定義される。層1604は、2×2フィールドにわたるプーリングを有する3×3ピクセルの畳み込みサイズを有するように定義される。
[0162] SCNN中の各畳み込み層は、同様に構成することができる。最後の層は、層が、三次シナプス重みを有する全結合層であることを示す「FullyConnectedTernary」タイプであることができる。この最後の層は10個の出力を有することができる。これは、CIFAR10データセットに含まれる10個のクラスと同等であることができる。最後の層はパケットサイズ1024を有することができる。これは、前の畳み込み層で返された特徴数と同等であることができる。
[0163] 幾つかの実施形態では、YAML構成ファイル1600は、ニューロモルフィック集積回路の初期化中、処理することができる。コンストラクタタスクは、YAML構成ファイル1600において指定されるパラメータからパラメータオブジェクトを生成することができる。コンストラクタタスクは、YAML構成ファイル1600における各パラメータオブジェクトに1つの層を割り振ることができる。各層は、その特定のパラメータを用いて作成することができる。データ構造を使用して、全層を通して順次繰り返すことができる。バッファリングタイプオブジェクトは、SCNN中の各層に作成し、初期化することができる。各層は初期化され、入力信号に接続することができ、次の層に出力する、入力層を除くスキャンチェーンとして編成されたレジスタを通して前の層に接続することができる。層初期化中、接続リスト、重みベクトルアレイ、及び電位アレイは初期化される。接続リストは、どのニューロン回路が接続されるかについての情報を含むことができる。SCNN中の各ニューロン回路は、シナプス重み値を含む、定義された数のシナプスを有することができる。各ニューロンのメンブレン電位値は、そのニューロン回路に接続され、スパイクパケット中のスパイクにより示される全てのシナプス重みベクトルの和として定義することができる。
[0164] 図17は、幾つかの実施形態による、各ニューロン回路及びニューロン回路の各層の構成及び接続を定義するスキャンチェーンを含む構成レジスタを示す。図17は、幾つかの実施形態による、各ニューロン回路及びニューロン回路の各層の構成及び接続を定義するスキャンチェーンを含む構成レジスタを示す。構成データは、ニューラルプロセッサに順次送信されて、処理シーケンスを構築することができる。

Claims (24)

  1. ニューロモルフィック集積回路であって、
    入力データからスパイクを生成するように構成されたスパイク変換器と、
    前記スパイク及びニューラルネットワーク構成に基づいてタスクを実行するように構成された複数のスパイキングニューロン回路を含むニューラルプロセッサを含む再構成可能神経線維と、
    前記ニューラルネットワーク構成を含むメモリであって、前記ニューラルネットワーク構成は、電位アレイ及び複数のシナプスを含み、前記ニューラルネットワーク構成は、前記複数のスパイキングニューロン回路と前記複数のシナプスとの間の接続を定義し、前記電位アレイは、前記複数のスパイキングニューロン回路のメンブレン電位値を含み、前記複数のシナプスは対応するシナプス重みを有する、メモリと、
    構成ファイルに基づいて前記ニューラルネットワーク構成を変更するように構成されたプロセッサと、
    を備えるニューロモルフィック集積回路。
  2. 前記シナプス重みの各シナプス重みは、-1、0、及び1からなる群から選択される重み値を有する、請求項1に記載のニューロモルフィック集積回路。
  3. 前記ニューロモルフィック集積回路は、
    前記スパイク変換器からの前記スパイクを記憶するように構成されたスパイク入力バッファと、
    前記スパイク入力バッファ内の前記スパイクを表すスパイクビットを含むスパイクパケットを生成するように構成されたパケタイザであって、前記スパイクパケット内の各スパイクビットは前記複数のシナプス内のシナプスに対応する、パケタイザと、
    を更に備える、請求項1に記載のニューロモルフィック集積回路。
  4. 前記スパイクパケット内の各スパイクビットは、デジタルビットを使用して表される、請求項3に記載のニューロモルフィック集積回路。
  5. 前記複数のスパイキングニューロン回路内のスパイキングニューロン回路は、
    第1の論理AND関数を前記スパイクパケット内の第1のスパイクビット及び前記第1のスパイクビットに対応する第1のシナプスの第1のシナプス重みに適用することであって、前記第1のシナプス重みは1の値を有し、前記第1の論理AND関数の適用により、論理1が出力される、適用することと、
    前記第1の論理AND関数を適用して前記論理1が出力されたことに応答して、前記スパイキングニューロン回路に関連付けられたメンブレン電位値をインクリメントすることと、
    を行うように構成される、請求項3に記載のニューロモルフィック集積回路。
  6. 前記複数のスパイキングニューロン回路内のスパイキングニューロン回路は、
    第2の論理AND関数を前記スパイクパケット内の第1のスパイクビット及び前記第1のスパイクビットに対応する第2のシナプス重みに適用することであって、前記第2のシナプス重みは-1の値を有し、前記第2の論理AND関数の適用により、論理1が出力される、適用することと、
    前記第2の論理AND関数を適用して前記論理1が出力されたことに応答して、前記スパイキングニューロン回路に関連付けられたメンブレン電位値をデクリメントすることと、
    を行うように構成される、請求項3に記載のニューロモルフィック集積回路。
  7. 前記ニューラルプロセッサは、
    前記複数のスパイキングニューロン回路の前記メンブレン電位値の中の最高値であるメンブレン電位値を有する前記スパイキングニューロン回路に基づいて、前記複数のスパイキングニューロン回路内のスパイキングニューロン回路を選択することと、
    前記選択されたスパイキングニューロン回路の前記メンブレン電位値が、前記スパイキングニューロン回路に関連付けられた学習閾値に達したと判断することと、
    前記選択されたスパイキングニューロン回路の前記メンブレン電位値が、前記選択されたスパイキングニューロン回路に関連付けられた学習閾値に達したとの判断に基づいて、スパイク時間依存可塑性(STDP)学習関数を実行することと、
    を行うように構成される、請求項3に記載のニューロモルフィック集積回路。
  8. 前記STDP学習関数を実行するために、前記ニューラルプロセッサは、
    前記スパイクパケット内の第1のスパイクビットが未使用スパイクを表すと判断することであって、前記第1のスパイクビットは前記複数のシナプス内の第1のシナプスに対応し、前記第1のスパイクビットは値1を有し、前記第1のシナプスの第1のシナプス重みは値0を有する、判断することと、
    前記複数のシナプス内の第2のシナプスの第2のシナプス重みが未使用シナプス重みであると判断することであって、前記第2のシナプス重みは前記スパイクパケット内の第2のスパイクビットに対応し、前記第2のシナプス重みは値1を有し、前記スパイクパケット内の前記第2のスパイクビットは値0を有する、判断することと、
    前記第2のシナプス重みの値を前記第1のスパイクの値と交換することと、
    を行うように構成される、請求項7に記載のニューロモルフィック集積回路。
  9. 前記複数のスパイキングニューロン回路内のスパイキングニューロン回路は、
    前記スパイキングニューロン回路に関連付けられたメンブレン電位値が前記スパイキングニューロン回路のスパイキング閾値に達したと判断することと、
    前記スパイキングニューロン回路の前記メンブレン電位値が前記スパイキング閾値に達したとの判断に基づいて、出力スパイクを生成することと、
    を行うように構成される、請求項1に記載のニューロモルフィック集積回路。
  10. 出力スパイクバッファ及びネットワークオンチップ(NoC)バスを更に備え、前記複数のスパイキングニューロン回路内の前記スパイキングニューロン回路は、前記NoCバスで送信するために、前記出力スパイクを前記出力スパイクバッファに挿入するように構成される、請求項9に記載のニューロモルフィック集積回路。
  11. 前記再構成可能神経線維は、畳み込み演算を使用して前記タスクを実行するように構成される、請求項1に記載のニューロモルフィック集積回路。
  12. 前記ニューラルネットワーク構成を変更するために、前記プロセッサは、前記構成ファイルに基づいて前記複数のスパイキングニューロン回路と前記複数のシナプスとの間の前記接続を変更するように構成される、請求項1に記載のニューロモルフィック集積回路。
  13. 前記構成ファイルは拡張可能マークアップ言語(XML)を使用して定義される、請求項1に記載のニューロモルフィック集積回路。
  14. 前記ニューロモルフィック集積回路は、
    ユニバーサルシリアルバス(USB)インターフェース、イーサネットインターフェース、コントローラエリアネットワーク(CAN)バスインターフェース、万能非同期送信受信機(UART)を使用したシリアルインターフェース、ペリフェラルコンポーネントインターコネクトエクスプレス(PCIe)インターフェース、又はジョイントテストアクショングループ(JTAG)インターフェースの少なくとも1つを含む複数の通信インターフェースを更に備える、請求項1に記載のニューロモルフィック集積回路。
  15. 前記入力データは、ピクセルデータ、オーディオデータ、又は感覚データを含む、請求項1に記載のニューロモルフィック集積回路。
  16. 前記ニューロモルフィック集積回路は、複数のセンサインターフェースを更に備える、請求項1に記載のニューロモルフィック集積回路。
  17. スパイキングニューロン回路において、前記スパイキングニューロン回路に関連付けられた1組のシナプスに対応する1組のスパイクビットを受信することと、
    前記スパイキングニューロン回路において、第1の論理AND関数を前記1組のスパイクビット内の第1のスパイクビット及び前記1組のシナプス内の第1のシナプスの第1のシナプス重みに適用することであって、前記第1のシナプスは前記第1のスパイクビットに対応する、適用することと、
    前記スパイキングニューロン回路において、前記適用することに基づいて前記スパイキングニューロン回路に関連付けられたメンブレン電位値をインクリメントすることと、
    ニューラルプロセッサにおいて、前記スパイキングニューロン回路に関連付けられた前記メンブレン電位値が、前記スパイキングニューロン回路に関連付けられた学習閾値に達したと判断することと、
    前記ニューラルプロセッサにおいて、前記スパイキングニューロン回路の前記メンブレン電位値が前記スパイキングニューロン回路に関連付けられた前記学習閾値に達したとの判断に基づいて、スパイク時間依存可塑性(STDP)学習関数を実行することと、
    を含む方法。
  18. 前記1組のスパイクビットは、ピクセルデータ、オーディオデータ、又は感覚データを含む入力データを表す、請求項17に記載の方法。
  19. 前記1組のシナプスは対応するシナプス重みを有し、各シナプス重みは、-1、0、及び1からなる値の群から選択される重み値を有する、請求項17に記載の方法。
  20. 前記ニューラルプロセッサにより、前記複数のスパイキングニューロン回路のメンブレン電位値の中から最高値を有する前記スパイキングニューロン回路の前記メンブレン電位値に基づいて、複数のスパイキングニューロン回路から前記スパイキングニューロン回路を選択することを更に含む請求項17に記載の方法。
  21. 前記スパイキングニューロン回路において、第2の論理AND関数を前記1組のスパイクビット内の前記第1のスパイクビット及び前記1組のシナプス内の第2のシナプスの第2のシナプス重みに適用することであって、前記第2のシナプスは前記第1のスパイクビットに対応し、前記第2のシナプス重みは値-1を有し、前記第2の論理AND関数を適用することにより、論理1が出力される、適用することと、
    前記スパイキングニューロン回路において、前記第2の論理AND関数の適用により前記論理1が出力されたことに応答して、前記スパイキングニューロン回路に関連付けられた前記メンブレン電位値をデクリメントすることと、
    を更に含む請求項17に記載の方法。
  22. 前記STDP学習関数を実行することは、
    前記スパイクパケット内の第2のスパイクビットが未使用スパイクを表すと判断することであって、前記第2のスパイクビットは前記複数のシナプス内の第2のシナプスに対応し、前記第2のスパイクビットは値1を有し、前記第2のシナプスの第2のシナプス重みは値0を有する、判断することと、
    前記複数のシナプス内の第3のシナプスの第3のシナプス重みが未使用シナプス重みであると判断することであって、前記第3のシナプスは前記スパイクパケット内の第3のスパイクビットに対応し、前記第3のシナプス重みは値1を有し、前記スパイクパケット内の前記第3のスパイクビットは値0を有する、判断することと、
    前記第3のシナプス重みを前記第2のスパイクビットの値と交換することと、
    を更に含む、請求項17に記載の方法。
  23. 前記スパイキングニューロン回路において、前記スパイキングニューロン回路に関連付けられた前記メンブレン電位値が、前記スパイキングニューロン回路のスパイキング閾値に達したと判断することと、
    前記スパイキングニューロン回路において、前記スパイキングニューロン回路の前記メンブレン電位値が前記スパイキング閾値に達したとの判断に基づいて、出力スパイクを生成することと、
    を更に含む請求項17に記載の方法。
  24. 前記スパイキングニューロン回路により、ネットワークオンチップ(NOC)バスに送信するために、出力スパイクビットを出力スパイクバッファに挿入することを更に含む請求項24に記載の方法。
JP2021524331A 2018-11-01 2019-10-31 改良されたスパイキングニューラルネットワーク Pending JP2022509754A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201862754348P 2018-11-01 2018-11-01
US62/754,348 2018-11-01
PCT/US2019/059032 WO2020092691A1 (en) 2018-11-01 2019-10-31 An improved spiking neural network

Publications (2)

Publication Number Publication Date
JP2022509754A true JP2022509754A (ja) 2022-01-24
JPWO2020092691A5 JPWO2020092691A5 (ja) 2022-11-09

Family

ID=70458523

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021524331A Pending JP2022509754A (ja) 2018-11-01 2019-10-31 改良されたスパイキングニューラルネットワーク

Country Status (7)

Country Link
US (2) US11468299B2 (ja)
EP (1) EP3874411A4 (ja)
JP (1) JP2022509754A (ja)
KR (1) KR20210098992A (ja)
CN (2) CN111417963B (ja)
AU (2) AU2019372063B2 (ja)
WO (1) WO2020092691A1 (ja)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111417963B (zh) 2018-11-01 2021-06-22 P·A·范德梅德 改进的尖峰神经网络
US11204740B2 (en) * 2018-12-04 2021-12-21 Electronics And Telecommunications Research Institute Neuromorphic arithmetic device and operating method thereof
US20200401876A1 (en) * 2019-06-24 2020-12-24 Washington University Method for designing scalable and energy-efficient analog neuromorphic processors
CN112766511A (zh) * 2019-11-01 2021-05-07 伊姆西Ip控股有限责任公司 用于模型自适应的方法、设备以及机程序产品
KR20210063721A (ko) * 2019-11-25 2021-06-02 삼성전자주식회사 뉴로모픽 장치 및 이를 포함하는 뉴로모픽 시스템
EP4081954A4 (en) * 2019-12-27 2023-04-05 Micron Technology, Inc. NEUROMORPHIC STORAGE DEVICE AND METHOD
EP4085458A4 (en) 2019-12-30 2023-05-31 Micron Technology, Inc. STORAGE DEVICE INTERFACE AND METHOD
US11538508B2 (en) 2019-12-31 2022-12-27 Micron Technology, Inc. Memory module multiple port buffer techniques
US11176043B2 (en) * 2020-04-02 2021-11-16 International Business Machines Corporation Distributed memory-augmented neural network architecture
US20220143820A1 (en) * 2020-11-11 2022-05-12 Sony Interactive Entertainment Inc. Domain adaptation for simulated motor backlash
FR3123748A1 (fr) * 2021-06-04 2022-12-09 Commissariat A L'energie Atomique Et Aux Energies Alternatives Apprentissage automatique sans annotation ameliore par regroupements adaptatifs en ensemble ouvert de classes
CN113902106B (zh) * 2021-12-06 2022-02-22 成都时识科技有限公司 脉冲事件决策装置、方法、芯片及电子设备
WO2023158352A1 (en) * 2022-02-21 2023-08-24 Telefonaktiebolaget Lm Ericsson (Publ) Communication of spiking data over a wireless communication network
WO2023163619A1 (en) * 2022-02-22 2023-08-31 Telefonaktiebolaget Lm Ericsson (Publ) Communication of spiking data on radio resources
CN114692681B (zh) * 2022-03-18 2023-08-15 电子科技大学 基于scnn的分布式光纤振动及声波传感信号识别方法
WO2023250093A1 (en) * 2022-06-22 2023-12-28 Brainchip, Inc. Method and system for implementing temporal convolution in spatiotemporal neural networks
WO2023250092A1 (en) * 2022-06-22 2023-12-28 Brainchip, Inc. Method and system for processing event-based data in event-based spatiotemporal neural networks
CN116030535B (zh) * 2023-03-24 2023-06-20 深圳时识科技有限公司 手势识别方法及装置、芯片和电子设备

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10410117B2 (en) * 2008-09-21 2019-09-10 Brainchip, Inc. Method and a system for creating dynamic neural function libraries
US8250011B2 (en) * 2008-09-21 2012-08-21 Van Der Made Peter A J Autonomous learning dynamic artificial neural computing device and brain inspired system
EP2259214B1 (en) * 2009-06-04 2013-02-27 Honda Research Institute Europe GmbH Implementing a neural associative memory based on non-linear learning of discrete synapses
US9129220B2 (en) * 2010-07-07 2015-09-08 Qualcomm Incorporated Methods and systems for digital neural processing with discrete-level synapes and probabilistic STDP
US9269042B2 (en) * 2010-09-30 2016-02-23 International Business Machines Corporation Producing spike-timing dependent plasticity in a neuromorphic network utilizing phase change synaptic devices
US8856055B2 (en) * 2011-04-08 2014-10-07 International Business Machines Corporation Reconfigurable and customizable general-purpose circuits for neural networks
US9460387B2 (en) 2011-09-21 2016-10-04 Qualcomm Technologies Inc. Apparatus and methods for implementing event-based updates in neuron networks
US20130325766A1 (en) * 2012-06-04 2013-12-05 Csaba Petre Spiking neuron network apparatus and methods
US9367798B2 (en) * 2012-09-20 2016-06-14 Brain Corporation Spiking neuron network adaptive control apparatus and methods
US20150134582A1 (en) * 2013-11-08 2015-05-14 Qualcomm Incorporated Implementing synaptic learning using replay in spiking neural networks
US20150269482A1 (en) * 2014-03-24 2015-09-24 Qualcomm Incorporated Artificial neural network and perceptron learning using spiking neurons
US11157800B2 (en) * 2015-07-24 2021-10-26 Brainchip, Inc. Neural processor based accelerator system and method
US20170236027A1 (en) * 2016-02-16 2017-08-17 Brainchip Inc. Intelligent biomorphic system for pattern recognition with autonomous visual feature extraction
US10586147B2 (en) * 2016-09-22 2020-03-10 Intel Corporation Neuromorphic computing device, memory device, system, and method to maintain a spike history for neurons in a neuromorphic computing environment
EP3324343A1 (en) * 2016-11-21 2018-05-23 Centre National de la Recherche Scientifique Unsupervised detection of repeating patterns in a series of events
US10846590B2 (en) * 2016-12-20 2020-11-24 Intel Corporation Autonomous navigation using spiking neuromorphic computers
US10565500B2 (en) 2016-12-20 2020-02-18 Intel Corporation Unsupervised learning using neuromorphic computing
US20180174042A1 (en) 2016-12-20 2018-06-21 Intel Corporation Supervised training and pattern matching techniques for neural networks
US11062203B2 (en) 2016-12-30 2021-07-13 Intel Corporation Neuromorphic computer with reconfigurable memory mapping for various neural network topologies
US10713558B2 (en) * 2016-12-30 2020-07-14 Intel Corporation Neural network with reconfigurable sparse connectivity and online learning
US11295204B2 (en) * 2017-01-06 2022-04-05 International Business Machines Corporation Area-efficient, reconfigurable, energy-efficient, speed-efficient neural network substrate
US11151441B2 (en) 2017-02-08 2021-10-19 Brainchip, Inc. System and method for spontaneous machine learning and feature extraction
US10878313B2 (en) 2017-05-02 2020-12-29 Intel Corporation Post synaptic potential-based learning rule
US11080592B2 (en) * 2017-10-05 2021-08-03 International Business Machines Corporation Neuromorphic architecture for feature learning using a spiking neural network
US11195079B2 (en) * 2017-11-22 2021-12-07 Intel Corporation Reconfigurable neuro-synaptic cores for spiking neural network
WO2019125419A1 (en) 2017-12-19 2019-06-27 Intel Corporation Device, system and method for varying a synaptic weight with a phase differential of a spiking neural network
US20190228285A1 (en) * 2018-01-24 2019-07-25 The Regents Of The University Of Michigan Configurable Convolution Neural Network Processor
CN111417963B (zh) 2018-11-01 2021-06-22 P·A·范德梅德 改进的尖峰神经网络

Also Published As

Publication number Publication date
CN113537471A (zh) 2021-10-22
AU2019372063A1 (en) 2021-06-10
EP3874411A1 (en) 2021-09-08
AU2021254524B2 (en) 2022-07-28
EP3874411A4 (en) 2022-08-03
AU2019372063B2 (en) 2022-12-01
US20230026363A1 (en) 2023-01-26
US11468299B2 (en) 2022-10-11
WO2020092691A1 (en) 2020-05-07
CN111417963A (zh) 2020-07-14
CN111417963B (zh) 2021-06-22
CN113537471B (zh) 2024-04-02
KR20210098992A (ko) 2021-08-11
US11657257B2 (en) 2023-05-23
AU2021254524A1 (en) 2021-11-11
US20200143229A1 (en) 2020-05-07

Similar Documents

Publication Publication Date Title
JP2022509754A (ja) 改良されたスパイキングニューラルネットワーク
CN107563497B (zh) 用于稀疏人工神经网络的计算装置和运算方法
KR102545128B1 (ko) 뉴럴 네트워크를 수반한 클라이언트 장치 및 그것을 포함하는 시스템
JP2022541909A (ja) 再構成可能な時間符号化畳み込みスパイキングニューラルネットワークにおける特徴のイベントベースの分類
KR20210127133A (ko) 탄력적인 뉴럴 네트워크
Koulakov et al. Encoding innate ability through a genomic bottleneck
US10832121B2 (en) Transform for a neurosynaptic core circuit
CN111340194B (zh) 脉冲卷积神经网络神经形态硬件及其图像识别方法
Li et al. Performance analysis of fine-tune transferred deep learning
CN112598119B (zh) 一种面向液体状态机的神经形态处理器片上存储压缩方法
CN114766024A (zh) 用于修剪神经网络的方法和设备
Tareen et al. Convolutional neural networks for beginners
JP2023526915A (ja) アナログ人工知能ネットワーク推論のための行単位畳み込みニューラル・ネットワーク・マッピングのための効率的なタイル・マッピング
AU2022287647B2 (en) An improved spiking neural network
Sugiarto et al. Understanding a deep learning technique through a neuromorphic system a case study with spinnaker neuromorphic platform
Bihl et al. Exploring spiking neural networks (SNN) for low Size, Weight, and Power (SWaP) benefits
Ali et al. FlexPooling with Simple Auxiliary Classifiers in Deep Networks.
Negi et al. Devanagari character recognition using artificial neural network
AU2023214246A1 (en) Event-based extraction of features in a convolutional spiking neural network
Domen et al. Implementation of Massive Artificial Neural Networks with Field-programmable Gate Arrays
Naylor Design and application of neurocomputers
Tien Neural Petri nets and their applications to combinatorial games

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221031

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20221031

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230920

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20231025

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20240517