JP2015529357A - スパイキングニューロンネットワーク学習のための装置および方法 - Google Patents
スパイキングニューロンネットワーク学習のための装置および方法 Download PDFInfo
- Publication number
- JP2015529357A JP2015529357A JP2015527661A JP2015527661A JP2015529357A JP 2015529357 A JP2015529357 A JP 2015529357A JP 2015527661 A JP2015527661 A JP 2015527661A JP 2015527661 A JP2015527661 A JP 2015527661A JP 2015529357 A JP2015529357 A JP 2015529357A
- Authority
- JP
- Japan
- Prior art keywords
- event
- neuron
- rule
- implementations
- unit
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/10—Interfaces, programming languages or software development kits, e.g. for simulating neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/049—Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- Biophysics (AREA)
- Mathematical Physics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Debugging And Monitoring (AREA)
- User Interface Of Digital Computer (AREA)
- Stored Programmes (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
Description
[0001]本出願は、2011年9月21日に出願された「ELEMENTARY NETWORK DESCRIPTION FOR NEUROMORPHIC SYSTEMS」と題する米国特許出願第13/239,123号[代理人整理番号021672−0399229]、2011年9月21日に出願された「ELEMENTARY NETWORK DESCRIPTION FOR EFFICIENT LINK BETWEEN NEURONAL MODELS AND NEUROMORPHIC SYSTEMS」と題する米国特許出願第13/239,148号[代理人整理番号021672−0399230]、2011年9月21日に出願された「ELEMENTARY NETWORK DESCRIPTION FOR EFFICIENT MEMORY MANAGEMENT IN NEUROMORPHIC SYSTEMS」と題する米国特許出願第13/239,155号[代理人整理番号021672−0399232]、2011年9月21日に出願された「ELEMENTARY NETWORK DESCRIPTION FOR EFFICIENT IMPLEMENTATION OF EVENT-TRIGGERED PLASTICITY RULES IN NEUROMORPHIC SYSTEMS」と題する米国特許出願第13/239,163号[代理人整理番号021672−0399233]、2011年9月21日に出願された「APPARATUS AND METHOD FOR PARTIAL EVALUATION OF SYNAPTIC UPDATES BASED ON SYSTEM EVENTS」と題する米国特許出願第13/239,259号、および2011年9月21日に出願された「APPARATUS AND METHODS FOR SYNAPTIC UPDATE IN A PULSE-CODED NETWORK」と題する米国特許出願第13/239,255号、2012年7月27日に出願された「APPARATUS AND METHODS FOR GENERALIZED STATE-DEPENDENT LEARNING IN SPIKING NEURON NETWORKS」と題する米国特許出願第13/560,902号[代理人整理番号021672−0410044、顧客参照番号BC201212A]、および2012年7月27日に出願された「APPARATUS AND METHODS FOR EFFICIENT UPDATES IN SPIKING NEURON NETWORKS」と題する米国特許出願第13/560,891号[代理人整理番号021672−040936、顧客参照番号BC201221A]に関し、上記の各々は、同時係属であり、同一出願人によって所有され、その全体が参照により本明細書に組み込まれる。
[0002]本特許文献の開示の一部分は、著作権保護を受ける資料を含んでいる。著作権所有者は、米国特許商標局特許ファイルまたは記録中に現れるような、特許文献または特許開示のいずれかによる複製には異議はないが、それ以外は、いかなるすべての著作権をも所有する。
[0087]いくつかの実装形態では、内部イベントの範囲は、それぞれのニューロンを備え得、ネットワークの他のニューロンに拡大しない。逆に、外部イベントの範囲は、たとえば、ポストシナプススパイク送出を介して、ネットワークの他のニューロンに拡大し得る。
unit_id
Initialization
[00110]このクラスは、ニューロンまたはコンパートメントを定義するが、原則として、あらかじめ定義されたモデル実行タイムステップ(たとえば、1ms)でモデルによって実行され得る、任意のニューラルユニットであり得る。このユニットは、モデルタイムステップのうちの個々のステップにおいて実施される動作を指定するオブジェクトユニットクラスのインスタンス化であり得る。unit_classのフィールドは以下のように定義され得る。
は、一意のラベル、たとえば、個々のユニットを識別する番号または文字である。unit_idは、有効なidの範囲を指定するPerlまたはPHPまたはRegEx、またはMATLAB表現であり得、実際のidはモデルビルド中にリンカよって割り当てられ得る。たとえば、‘exc(1:1000)’または‘excl:excl000’。
は、クラスの定義中のデフォルト値とは異なり得るクラスフィールドの初期値を含んでいる構造であり得る。これらの一部または全部は、unit_class中のデフォルト値を用いて宣言され、初期化され得る。
unit_class_id
execution_condition
update_rule
event_condition
after_event_rule
Initialization
は、ニューロンダイナミクスを指定し、ニューロン変数を割り振り、ニューラルモデルクラスに関連するスパイク処理ルール、および/または他の情報を定義する、ニューロンモデルクラスの一般的な定義を与える。クラス<unit_class>は、(オブジェクト指向プログラミングの場合のように)unit_classの別のオブジェクトから派生され得るオブジェクトである。<unit_class>オブジェクトのフィールドは以下のように定義され得る。
は、オブジェクトクラスの一意の名前(ストリング)、たとえば、‘exc’または‘p23soma’または‘p4cmpitinnt3’である。これらのオブジェクト名は、たとえば、バックグラウンドプロセス中にまたはI/Oプロセス中に、ニューロンモデルによって、ユニットを指すためにベクトルの名前として使用され得る。
このクラスのユニットを実行すべきか否かを決定するために個々のモデル実行タイムステップで評価される条件、たとえば、‘now%10==0、または‘DA>0.1’。execution_conditionがない(このフィールドがブランクである)場合、それぞれのユニットが個々のモデルタイムステップ(すなわち、システムクロックステップサイクル)で実行され得る。ベースクラス(スーパークラス)からクラス(サブクラス)が派生され得るとき、派生クラス実行条件はベースクラス実行条件をオーバーライドする。
は、リンカよって実行可能コードに変換されることになるコードストリングを定義する。いくつかの実装形態では、コードストリングは、たとえば、次式など、前進オイラー数値法表記法(forward Euler numerical method notation)を備え得る。
’I+=g*(E−5); g+=tau*(−g)/5;
v+=tau*(2*(v+70)*(v+50)−u+I)/20;
u+=tau*0.1*(2*(v+70)−u);’.
[00111]いくつかの実装形態では、コードストリングは、マッピングx(t+1)=‘x(t)+tau*(f(x(t))’を指定するか、あるいはモデル実行の個々のステップで実施され得るC実行可能コード(関数またはサブルーチン)を指定する。クラスがベースクラスから派生されたとき、サブクラスのオブジェクトupdate_ruleが最初に実行され、続いてベースクラスルールが実行され得、それにより、サブクラスルール実行によるある変数の更新が可能になる。
は、スパイクを検出するために必要とされる論理ステートメントを定義する。たとえば、‘v>30’。これは個々のクロックサイクル(モデルタイムステップ)で実行され得る。このクラスがベースクラスから派生されたとき、サブクラスのevent_conditionがベースクラスのevent_conditionに取って代わる。
スパイクが検出され得るときに実行されるコード。たとえば、‘v=−65;u=u−8;’。派生サブクラスの場合、サブクラスafter_event_ruleはベースクラスのafter_event_ruleの前に実行され得る。
は、ユニットの一部または全部の変数およびパラメータの初期値を設定する。たとえば、‘float v=0;float u=0;float g_AMPA=0;’。異なるユニットクラスは、異なる数のシナプスコンダクタンスタイプ(synaptic conductance type)を有しおよび/または異なる変数名を割り当てられ得る。ビルド中に変数の一部または全部の名前を取得するためにリンカよってパースされる初期化ストリング。派生オブジェクトクラスは新しい変数を追加し得る。派生サブクラスの場合、ベースクラスの初期化が最初に実行され、次いで、デフォルトパラメータのいくつかを変更し得るように、後でこの初期化が実行され得る。この初期化は、ベースクラスから継承されたデフォルトパラメータ値を変更し得る。例として、初期化ストリング‘float g_NMDA=1;g_AMPA=1’は、新しい変数g_NMDAを作成し、既存の変数g_AMPAの値をリセットする。
unit_idl
unit_id2
initialization
は、ユニットのペア間の結合性を与えるニューロンモデルクラスの一般的な定義を与える。フィールドjunction_classは、親オブジェクトクラスの名前、たとえば、「gap_junction」または「dendritic_tree」を参照する。クラスフィールドは以下の通りであり得る。
は、2つの結合されたニューロンユニットのidを指定する。
[00113]パラメータと変数とのための初期値を設定する。クラスjunction_classは、サブクラス<junction_class of (junction_class)>を定義するためのベースとして使用され得、以下のように宣言され得る。
junction_class_id
execution_condition
unit_class_1
unit_class_2
update_rule
initialization
ここで、
junction_class_id
は、別のクラスから派生され得るクラスを指定する一意の識別ラベルである。
[00114]このクラスのユニットを実行すべきか否かを決定するために個々のモデル実行タイムステップで評価される条件、たとえば、‘now%10==0、または‘DA>0.1’。execution_conditionがない(このフィールドがブランクである)場合、それぞれのユニットが個々のモデルタイムステップで実行され得る。ベースクラス(スーパークラス)からクラス(サブクラス)が派生されたとき、派生クラス実行条件はベースクラス実行条件をオーバーライドする。
unit_1のクラス識別子、
unit_class_2
unit_2のクラス識別子。省略された場合、接合は一部または全部のユニットクラスに適用されると仮定され得る。
は、リンカよって実行可能コードに変換されることになるコードストリングを定義する。いくつかの実装形態では、コードストリングは、たとえば、次式など、前進オイラー数値法表記法を備え得る。
[00115]オーミック接合に適用可能ないくつかの実装形態では、_class部分をスキップし、<junction>中のコンダクタンスg_2to1およびg_lto2だけを指定することができる。このクラスがベースクラスから派生されたとき、サブクラスのオブジェクトupdate_ruleが最初に実行され、続いてベースクラスルールが実行され得、それにより、サブクラスルール実行によるある変数の更新が可能になる。
は、もしある場合、update_codeを実行するために使用される変数の初期値を設定する。
pre
post
delay
initialization
ここで、
pre
post
はそれぞれ、プレシナプスユニットの識別子、およびポストシナプスユニットの識別子である。
は、軸索伝導(axonal conduction)遅延値を(シミュレーションタイムステップで)指定する
initialization
は、初期パラメータおよび変数値を設定する。接合クラスと同様に、シナプスクラスはベースから派生され得シナプスクラスは以下のように宣言され得る。
synaptic_class_id
initialization
ここで、
synaptic_class_id
は、(順序はスクランブルされ得るが)バックグラウンドプロセス中に個々のシナプスを参照するためにベクトル識別子として使用され得る、ベースクラスを指定する一意のラベルである。このクラスは別のクラスから派生され得る。
は、個々のシナプスのためのパラメータおよび変数の初期値を設定し、たとえば、‘float w=5;float sd=0;float p=0;’。シナプス変数とpost_unit変数とにアクセスするプレシナプスイベントルールを定義するクラスは、以下のように宣言され得る。
synaptic_class
post_unit_class
ここで、
synaptic_class
は、この可塑性ルールが適用されるシナプスクラスの名前を示す。オブジェクトevent_ruleは、プレシナプスユニットが発火したときに実施されるアクションを指定するために使用され得る。synaptic_classのルールは、プレシナプスニューロン(ユニット)のためのSTDPルールの短期可塑性(STP:short−term plasticity)および長期増強(LTP:long−term potentiation)部分を定義する。
は、ポストシナプスユニットのクラスを指定し、それによってevent_ruleのアクションのドメインを定義し、それによって、STDPルール実行によって必要とされ得る情報(たとえば、ポストシナプス電位(PSP:post−synaptic potential)を送出し、last_spikeなどの変数にアクセスするためのクラス)を与える。クラスpost−synaptic_eventは以下のように宣言され得る。
synaptic_class
post_unit_class
ここで、
synaptic_class
は、この可塑性ルールが適用されるシナプスクラスの名前を指定する。オブジェクトevent_ruleは、(これらのシナプスに関して参照される)ポストシナプスユニットが発火したときにシナプス変数を用いて実施され得るアクションのリストを定義するために使用され得、それによって、ポストシナプスユニットがスパイクを発火させたときはいつでも実行され得るSTDP可塑性ルールのLTP部分を実装する。
は、ポストシナプスユニットのクラスを指定し、それによって、このルールのためのアクションドメインを定義する。一実装形態では、このルールはアクセスシナプス変数に構成され得る。event_ruleクラスはベースクラスから以下のように派生され得る。
event_rule_id
rule
initialization
ここで、
event_rule_id
は、ルールクラスを指定する一意のラベルである。概して、ルールクラスは別のオブジェクトクラスevent_ruleから派生され得る。
は、イベントの発生時に実施されるアクションを指定するコードのストリング表現である。例として、ポストシナプス電位(PSP:post−synaptic potential)の送出が以下のように指定され得る」。
[00117]同様に、presynaptic_eventに関連するアクションが以下として定義され得る。
一方、post−synaptic_eventに関連するアクションは以下として定義され得る。
ここで、
「last_active」は、シナプスがアクティブであった前の時点から経過した時間であり、
last_spikeは、ポストシナプスユニットの最後のスパイクの時間であり、
‘now’は現在時間である。
execution_condition
プロセスを実行すべきか否かを決定するために個々のシミュレーションタイムステップで評価される条件。たとえば、‘now%10==0’または‘DA>0.1’。ない場合、プロセスは個々のタイムステップで実行され得る。それの局所変数がアクセスされ得るunit_classまたはsynaptic_classの名前。以下のコードが、任意の順序で(場合によっては並列に)クラスメンバー内でループ中で実行されることになる。ない場合、このプロセスは‘true’execution_conditionごとに1回実行され、ユニットまたはシナプスクラス名を使用して個々のユニットまたはシナプスがアクセスされ得ると仮定され得る。たとえば、ユニットクラス‘exc’は、順序が場合によっては未知であるユニットexc[i]を含んでおり、その順序は、必ずしも、それらがリストされた順序に対応するとは限らない。
実行されるべきコード、たとえば‘DA*=0.9’、またはsynaptic_classドメイン中で‘w+=DA*sd;sd*=0.995;’、またはドメインなしで単に‘exc[rand()].I=100;’initializationグローバル変数の初期化、たとえば、‘float DA=0’。
unit_class_id=’retina’
after_event_rule //空であり得る
[00123]上記のクラス宣言は、網膜からのスパイクが進むことになる計算エンジンおよび入力ドライバを通知する。入力の構造は、N個の空のユニットの以下の宣言を使用して定義され得る。
unit_id=’retina(1:N)’
[00124]いくつかの実装形態では、個々のネットワークタイムステップで実行されることが必要とされる更新ルールがないことがある。したがって、計算エンジンは、これらの空のユニットに計算リソースを費やさないことがある。しかしながら、‘retina’として宣言された入力チャネルからのスパイクが到達したときはいつでも、入力ドライバは、それがスパイクを実際に発火させたかのように、ユニットインデックスをスパイクキュー中に入れ得る(これは、after_event_ruleが空でない場合、エンジンによるafter_event_rule実行をトリガし得る)。このユニットから他のユニットへのシナプスは、スパイクに対して何をすべきかをネットワークに伝え得る。LGN上の網膜入力の場合、網膜ユニットは、いくつかのLGN細胞上に1〜3個のシナプスを有し得る。
asunit_class_id=’neck_muscles’
initialization=’float I=0;’
[00127]上記の宣言は、電流Iの値の変化についてどのニューロン(ユニット)を監視すべきかを出力ドライバに通知する。それぞれのN個の空のユニットオブジェクトが、次いで、以下のように作成され得る。
unit_id=’neck_muscles’
[0128]モデルの実行中に、計算エンジンは、モーターニューロンが発火したときはいつでも、ユニットオブジェクト内の変数Iが正値に設定され得るように、モーターニューロン(ユニット)頸筋の少なくともいくつかがこれらのニューロンへの非0の(たとえば、正の)シナプス投射を有することを保証する。出力ドライバは、したがって、個々のモデルタイムステップで変数Iを監視し、必要な場合、それをI=0にリセットする。モーター出力インターフェースは(個々のモデル実行タイムステップでの)更新ルールの実行を必要としないので、計算エンジンは、‘neck_musclesユニットを維持することに最小のリソースを費やす。
unit_class_id=’simple_model’
update_rule=’v+=(0.04*v+5).*v+140−u+I; u+=a*(b*v−u);'
event_condition=’v>30’
after_event_rule=’v=−65;u+=d’
initialization=’float v=−65; float u=0; float a=0.1; float b=0.5; float d=8;’
[0131]update_ruleの実装がユニットごとにおよび/またはモデルランごとに変化しないとすれば、update_ruleに関連する計算動作は、たとえば、ASIC、FPGA、または特殊シリコンにおいて実装され得る専用ハードウェアアクセラレータ中によってより効率的に実行され得る。ENDフレームワーク内では、たとえば、上記に記載したupdate_ruleに関連するコードの実行を、ハードウェアアクセラレータインターフェースに対応する適切なロケーションにダイレクトするようにコンパイラに命令するために、‘simple_model’クラスが使用され得る。そのようなマッピングを作成するために、simple_modelクラスのインスタンスは以下のようにインスタンス化され得る。
unit_id=509
initialization ’a=0.01; d=2’
[0132]そのようなハードウェアアクセラレータ(simple_modelオブジェクト)は、ENDによって、より複雑なオブジェクトを構成するためのビルディングブロックとして使用され得る。例として、超低速ニューロン変数‘w’とともに、たとえば、百万個(1M)のsimple_modelユニット(ニューロン)と、たとえば、一千個(1K)のニューロンとをもつニューロンモデルが、クラス継承メカニズムを使用して以下のように宣言され得る。
unit_class_id=’complex_model’
update_rule=’w+=0.001*(0.3*v−w); I−=w’
after_even_rule=’w+=1’
initialization=’float w=0’
[0133]専用ハードウェアに取り付けられた計算エンジン中のプロセッサ(たとえば、ARM(登録商標)チップ)は、変数‘w’のダイナミクスを評価し、それを変数Iの値に組み込むために、上記のタイプの1K個のユニットを処理し得る。次いで、ハードウェアアクセラレータ(アナログまたはデジタル)ハードウェアは、インスタンスのいくつかがより複雑なモデルに対応することを了解することさえなしに、simple_modelの1M+1K個のインスタンスを実行し得る。専用ハードウェアは、ニューロンモデルの最も一般的に使用される実装形態、シナプスダイナミクスを含んでいることがある。ユーザは、自由にこれらのカノニカル能力を混合し、整合させるか、または必要とされ得るどんな追加の機能をもそれらに加え得る。
unit_id=1:800
[0135]次に、Ni個の抑制性ユニットがクラスのレコードであり得、以下のようにポピュレートされる。
unit_id=801:1000
[0136]スプネットクラスが、次いで、以下のリスティング1に示されているように宣言され得る。
unit_class_id=’QIF2’
update_rule=’v+=0.5*((0.04*v+5).*v+140−u+I);
v+=0.5*((0.04*v+5).*v+140−u+I);’
event_condition=’v>30’
after_event_rule=’v=−65;’
initialization=’float v=−65; float u=0.2*v; float 1=0'
<unit_class of (QIF2)>
unit_class_id=’exc’
update_rule=’u+=0.02.*(0.2*v−u);’
after_event_rule=’u+=8; last_spike=now’
initialization=’int last_spike=−1000;’
<unit_class of (QIF2)>
unit_class_id=’inh’
update_rule=’u+=0.1.*(0.2*v−u);’
after_event_rule=’u+=2;’
Ne*M records of the class (exc−>exc)
<synapse of (GLU)>
pre=i // i=1:Ne
post=j //1とNとの間の乱数
delay //1とDとの間の乱数
クラスのNi*M個のレコード
<synapse of (GABA)>
pre=i //i=Ne+1:N
post=j //1とNeとの間の乱数
<synaptic_class>
synaptic_class_id=’GLU’
initialization=’float w=6; float sd=0; int last_active=−1000;’
delay=1 //デフォルト遅延(インスタンス中で指定されていない場合)
<synaptic_class>
synaptic_class id=’GABA’
delay=1 //すべてのシナプスについて同じ
<presynaptic_event of (EPSP_plus_LTD)>
synaptic_class=’GLU’
post_unit_class=’QIF2’ //すなわち、excおよびinh
<presynaptic_event of (Inhibition)>
synaptic_class=’GABA’
post_unit_class=’QIF2’ //すなわち、excおよびinh
<post−synaptic_event of (LTP)>
synaptic_class=’GLU’
post_unit_class=’exc’
<event_rule>
event_rule_id=’EPSP_plus_LTD’
rule=’I+=w; sd−=LTD(now−last_spike); last_event=now’
initialization=’LTD={array};’
//LTP_A=1.2から0への指数関数的減衰、ただしLTD_tau=20ms
<event_rule>
event_rule_id=’LTP’
rule=’sd+=LTP(now−last_active);’
initialization=’LTP={array};’
<event_rule>
event_rule_id=’Inhibition’
rule=’I−=5;’
initialization=’’
<background_process>
id=’Weight_update’;
execution_condition=’now%1000==0’
domain=’GLU’
update_rule=’w+=0.01+sd; if (w<0) w=0; if (w>10) w=10; sd*=0.9’
<background_process>
id=’randominput’
update_rule=’exc[int(floor(rand()/RAND_MAX*N))].v=30;’
リスティング 1
[0137](上記のリスティング1に示されたような)モデルの低レベル記述は、ネットワークアーキテクチャを一意に定義するのに必要である情報を含んでいることがある。リスティング1に示された記述は、個々のユニットのシナプス結合、プレシナプス結合、ポストシナプスターゲット、および/またはモデルシミュレーションを実施するために有用な他の情報のうちの1つまたは複数のための十分なレベルの詳細を与えないことがあるので、とりわけ、モデルシミュレーションを実施するのには好適でないことがある。リンカは、低レベルEND記述を使用し(たとえば、図1のリンカ108)、(i)ユニット間のリンクの一部または全部をポピュレートし、(ii)モデルシミュレーション中の計算エンジンによるデータおよびコードのローディングを可能にするように、コードおよびデータをバイナリまたは何らかの他の低レベル(機械)フォーマットで保存する。シミュレーション実行(ランタイム)中に、エンジンは、任意の保存ポイントからのモデル実行の高速再始動を可能にするために、同じ(または異なる)フォーマットで(たとえば、レジスタおよびメモリ内容、プログラムカウンタ、および/またはエンジン実行状態に関連する情報を備えるエンジン実行状態を保存している)保存ポイントを作成し得る。
unit_id
initialization
<unit_class (of unit_class)>
unit_class_id
initialization
<junction of junction_class>
junction_id
unit_1
unit_2
<junction_class (of junction_class)>
junction_class_id
unit_class_1
unit_class_2
<rule of rule_class>
subject_id
[0146]このルールに従わなければならないユニットまたは接合のid
trigger_id
[0147](イベントベースルールについて)対象に対してルールをトリガするユニットのid。省略された場合、このルールはクロックベースであり得る。
[0148]このルールが実行されるべき遅延。省略された場合、遅延なしであり得る
<rule_class (of rule_class)>
rule_class_id
execution_condition
[0149]たとえば、‘now%10−0’。省略された場合、ルールは個々のタイムステップで実行され得る
subject_class
[0150]このルールが適用され得るクラス。サブジェクトクラス(subject class)はユニットまたは接合であり得ることに気づかれたい
code
event_condition
initialization
例2:スプネット
//最初に、ニューロンのためにメモリを割り振る
<unit_class>
unit_class_id=’neuron’
initialization=’float v=−65; float u=0; float I=0; int last_spike=−1000;’
<unit_class of neuron>
unit_class_id=’exc’
<unit_class of neuron>
unit_class_id=’inh’
<unit of exc>
unit_id=1:800
<unit of inh>
unit_id=1:200
//ここで、ニューロンにダイナミクスを割り当てる(クロックベースルール)
<rule_class>
rule_class_id=’QIF’
subject_class=’neuron’
code=’v+=0.5*((0.04*v+5).*v+140−u+I); v+=0.5*((0.04*v+5).*v+140−u+I);’
event_condition=’v>30’
<rule_class of QIF>
rule_class_id=’RS’
subject_class=’exc’
code=’u+=0.02.*(0.2*v−u);’
<rule of RS>
subject_id=exc(1:800)
<rule_class of QIF>
rule_class_id=’FS’
subject_class=’inh’
code=’u+=0.1.*(0.2*v−u);’
<rule of FS>
subject_id=inh(1:200)
//スパイク後休止を指定する(イベントベースルール)
<rule_class>
rule_class_id=’reset’
code=’v=−65; last_spike=now;’
<rule_class of reset>
rule_class_id=’RS_reset’
subject_class=’exc’
code=’u+=8;’
<rule of RS_reset>
subject_id=exc(1:800)
trigger_id=exc(1:800)
<rule_class of reset>
rule_class_id=’FS_reset’
subject_class=’inh’
code=’u+=2;’
<rule of FS_reset>
subject_id=inh(1:200)
trigger_id=inh(1:200)
//シナプスを指定する。
rule_class_id=’inhibition’
subject_class=’neuron’
rule=’I−=6’
//以下のフォームの200*100個のレコード、各々がinhシナプスを指定する
<rule of inhibition>
subject_id={excまたはinhユニット}
trigger_id={inhユニットのインデックス}
//興奮性シナプスが可塑的であり、したがってそれらの荷重が記憶される
<unit_class>
unit_class_id=’synapse’
initialization=’float w=5; float sd=0; int last_active=−1000;’
<unit of synapse>
unit_id=1:80000
//シナプスごとに、それのターゲットを指定する。これは接合を介して行われる
<junction_class>
junction_class_id=’GLU’
unit_class_1=’synapse’
unit_class_2=’neuron’
//シナプスを割り当てる、すなわち、フォームの80000個のレコードを作成する
<junction of GLU>
junction_id=1:80000
unit_1=1:80000
unit_2={ランダムニューロンインデックス}
//どのシナプス前ニューロンがどのシナプスをトリガするかを指定する
<rule_class>
rule_class_id=’EPSP_plus_LTD’
subject_class=’GLU’
code=’I+=w;sd−=LTD(now−last_spike); last_active=now;’
initialization=’LTD={array}’
<rule of EPSP_plus_LTD>
subject_id=1:80000
trigger_id=exc(rand(800))
delay=rand(20)
//ポストユニットが発火したとき、LTPを指定する
<rule_class>
rule_class_id=’LTP’
subject_class=’synapse’
rule=’sd+=LTP(now−last_active)’
initialization=’LTP={array}’
<rule of LTP>
subject_id=1:80000
trigger_id={対応するシナプス後ニューロン、ただし、これは原則として他のどんなものでもあり得る}
//sd更新を実施する(維持)
<rule_class>
rule_class_id=’synaptic_maintenance’
subject_class=’synapse’
execution_condition=’now%1000==0’
code=’w+=0.01+sd; if (w<0) w=0; if (w>10) w=10; sd*=0.9’
<rule of synaptic_maintenance>
subject_id=1:80000
//最後に、時間ステップのmsごとにニューロンを発火させるランダム視床入力
<rule_class>
rule_class_id=’input’
code=’fire({ランダムニューロン});’
<rule of input> //パラメータなし。これは入力をインスタンス化するためだけに必要である
リスティング 2
[0151]END2.0フォーマットは、上記で説明したEND1.0フォーマットと比較して以下の特徴を備え得る。
・バックグラウンドプロセスなし(代わりにグローバル変数が使用される)、
・別個のプレシナプス/ポストシナプスルールなし(一部または全部がシナプスタイプの一部であり得る)
・個々のルールが他のルールおよびコード文字列、ならびに実行条件を含み得る
<rule>
name
exec_condition
このルールを実行すべきか否かを決定するために個々のステップにおいて評価され得る条件。これは、ストリング、たとえば、‘now%10−0’または‘DA>0.1’であるか、あるいはルール名への参照であり得る(これは、条件がいくつかのグローバルテーブルを必要とする場合に有用である)。ない場合、ルールは個々の実行タイムステップについて適用される。この条件は、以下のコードにおいて定義されているどんな変数にもアクセスし得る。
ルールが発生したときに何を行うべきかを指定するコードストリングまたは他のルール名。たとえば、‘I+=w’または‘v+=tau*(2*(v+70)*(v+50)−u+I)/20;u+=tau*0.1*(2*(v+70)−u);’。さらに、ルールの出力は、スパイク条件において使用され得る論理(真/偽)ステートメントであり得る。ここでは複数のルール名が与えられ得る。それらは与えられた順序で実行され得る。
このルールにおいて使用されるグローバル変数を宣言し、その値を設定する。たとえば、‘STDP=1,..,1;DA=0’または‘STP=1,...,1;LTD={...}’。任意のインスタンス変数がunit_typeおよびsynaptic_typeにおいて定義され得る。リンカは、異なるユニットタイプおよびsynaptic_typeにおいて定義されている個々のデータタイプがルールに関して整合し得ることを検査する。
name
update_rule
個々のタイムステップで実行され得るコードストリングまたはルール名。ここでは複数のルールが与えられ得る。それらは指定された順序で実行され得る。
個々のタイムステップで実行される、スパイクを検出するために必要とされる論理ステートメントまたはルール名、たとえば、‘v>30’
event_rule
スパイクが検出されたときに実行され得るコードまたはルール名。たとえば、‘v=−65;u=u−8;’。
ユニットにおいて使用される個々の変数およびパラメータ(すなわち、インスタンス変数)を宣言し、それらの初期値を設定する。リンカ(コンパイラ)は、これらの変数が、同じルールを使用する個々のユニットタイプの間で整合するデータタイプを有することを検査する、たとえば、‘analog v=0;analog g_AMPA=0;’
<unit of unit_type>
unit_id
init
[0152]タイプの定義におけるデフォルト値とは異なり得るパラメータおよび変数値を設定する。これら、個々のものは、宣言され、unit_typeの定義におけるデフォルト値を用いてすでに初期化されている必要がある
<junction_type>
name
update_rule
init
<junction of junction_type>
unit_1
unit_2
init
<synaptic_type>
type
presynaptic_event_rule
プレシナプスニューロンが発火したときにトリガされ得るコードまたはルール名。これはLTPおよびPSPに対処する
post−synaptic_event_rule
[0153]ポストシナプスユニットの発火によってトリガされるコードまたはルール名。これはSTDPのLTD部分に対処する
update_rule
[0154]個々のタイムステップで実行され得るコードストリングまたはルール名(たとえば、execution_conditionを有し得、まれにしか実行されないことがある)。ここでは複数のルールが与えられ得る。それらは指定された順序で実行され得る。これは、バックグラウンドプロセスの代わりに、シナプス維持のために必要とされ得る。
pre
post
delay
init
<global_variable>
update_rule
[0155]グローバル変数を初期化し、それらを更新するコードを実行するルール名。コードは、ユニット、接合、またはシナプスの特定のインスタンスへのアクセスを有し得る。最も単純な場合、ルールは、単にインスタンスの値に基づくグローバル変数の値の割当てであり得る。
・リンカが変数のデフォルトタイプ、たとえば、「analog」を使用する
・リンカはルールの他の使用を調べるように命令され得、変数がどこかで定義されている場合、リンカはそれの定義を拡張する。
リンカが定義のうちの1つを他の定義に変換する。たとえば、定義の半順序集合、たとえば、int8<int16<int32<int64<analogがあり得、したがって、2つの定義は共通の1つの定義に変換され得る
リンカがルールを、異なるタイプの変数に作用する2つのルールrule_aおよびrule_bに分割する
例2:グローバル変数
<rule>
name=’DA_update’
code=’DA=exc[3].v+inh[1].u’
init=’analog DA=0’
<global_variable>
update_rule=’DA_update’
例3:スプネット
[0159]標準スプネットネットワークはN=1000個のニューロンを有する。それらの中にNe=800個の興奮性ニューロンとNi=200個の抑制性ニューロンとがあり得、ニューロンごとにM=100個のシナプスがある。一部または全部の興奮性シナプスは可塑性(STDP)であり得、ランダム遅延は1msとD=20msとの間である。抑制性−>興奮性シナプスは非可塑性であり得、遅延D=1msを伴う。inh−>inhシナプスはないことがある。モデルの低レベル記述は以下の通りである。
name=’QIF2’//v式のみが定義される
code=’v+=(0.04*v+5).*v+140+I; I=4*rand()//MAX_RAND'
<rule>
name=’spike’
code=’v>30’
<unit_type>
name=’exc’
update_rule=’u+=0.02*(0.2*v−u); I−=u;’
update_rule=’QIF2’
event_condition=’spike’
after_event_rule=’v=−65; u+=8; last_spike=now’
init=’analog v=−70, u=−14, I=0; int last_spike=−1000’
<unit_type>
name=’inh’ //抑制性ニューロン
update_rule=’u+=0.1.*(0.2*v−u); I−=u;’
update_rule=’QIF2’
event_condition=’spike’
after_event_rule=’v=−65; u+=2;’
init=’analog v=−70, u=−14, I=0; int last_spike=−1000’
//クラスのNe個のレコード
<unit of exc>
unit_id=1:800 // i=1:Ne
//クラスのNi個のレコード
<unit of inh>
unit_id=1:200 // i=1:Ni
<rule>
name=’EPSP_plus_LTD’
code=’I+=w; sd−=LTD(now−last_spike); last_active=now’
init=’LTD={array};’
<rule>
name=’LTP’
code=’sd+=LTP(now−last_active);’
init=’LTP={array};’
<rule>
name=’Synaptic_maintenance’
execution_condition=’now%1000==0’
update_rule=’w+=0.01+sd; if (w<0) w=0; if (w>10) w=10; sd*=0.9’
<synaptic_type>
name=’GLU’
presynaptic_event_rule=’EPSP_plus_LTD’
post−synaptic_event_rule=’LTP’
update_rule=’Synaptic_maintenance’
init=’analog w=6, sd=0; int last_active=−1000;’
<synaptic_type>
name=’GABA’
presynaptic_event_rule=’I−=5’
delay=1 //デフォルト遅延、すべてのシナプスについて同じ
//クラス(exc−>excまたはinh)のNe*M個のレコード
<synapse of GLU>
pre=exc[i]// i=1:Ne
post=exc[j] または inh[j] //ランダム、1とNeとの間、または1:Ni
delay //1とDとの間の乱数
//1とDとの間の乱数
<synapse of GABA>
pre=inh[i]// i=1:Ni
post=exc[j] //1とNeとの間の乱数
[0160]ENDフォーマット3.0は、END2.0フォーマットと比較していくつかの大きい変更を実装する。これらは以下を含み得る。
・(接合変数を変更するように構成された)update_rule、および(ポストシナプスユニット変数を構成変更するための)delivery_ruleという、2つのルールへの接合update_ruleの分割
・post−synaptic_event_ruleの削除
・(STDPのLTP部分のための)prepost_ruleと、(STDPのLTD部分のための)postpre_ruleと、(PSPを送出するための)delivery_ruleとへの、presynaptic_event_ruleの分割
・(接合およびシナプスのための)delivery_ruleについてのアトミック加算
・クロックベースシナプス更新ルールの削除(それはpostpre_ruleを介して実装され得る)
・リンクを介してインスタンス変数にグローバル変数を実装すること
[0161]END3.0における個々の名前およびステートメントは、別段に記載されていない限り、END2.0におけるものと同様の意味を有し得る。END3.0では、タイプ‘exc’のインスタンス3を参照するためにシンタックスexc:3が使用され得る。
name
exec_condition
code
init
<unit_type>
name
update_rule
event_condition
after_event_rule
init
<unit of unit_type>
unit_id
init
<junction_type>
name
update_rule
delivery_rule
init
<junction of junction_type>
pre
post
init
<synaptic_type>
type
prepost_rule
リスティング 3
[0166]リスティング3に示されたコードの例では、ルールはt2の前にトリガされ得、それはシナプスを変更する。ルールは、シナプス変数の読取りおよび書込みを行うことができるが、ポストシナプスユニットからのいかなる変数へのアクセスをも有しない。ルールはprepre=t241およびprepost(post spike−t1)へのアクセスを有する。
[0167]11(1対1)および1A(1対全部)という、2つのモードがサポートされ得る。前者はルールをせいぜい1回呼び出すが、後者は、プリユニットの最後のスパイクの後の個々のポストユニットスパイクについて複数回呼び出す。デフォルト:11
prepost_max
は、前後ペアを形成することを考察すべき、プリユニットスパイクの後の時間の範囲を制限する。t1+prepost_max後の一部または全部のポストスパイクは無視され得る。
t2においてトリガされ得、シナプスを変更するコードまたはルール名。それは、シナプス変数の読取りおよび書込みを行うことができ、ポストシナプスユニットからの変数への読取りアクセスを有する。それはprepre、postpre、およびnow=t2へのアクセスを有する。
t2においてトリガされ得、ポストユニットの変数を変更するコードまたはルール名。それはシナプス変数、prepre、postpre、およびnow=t2への読取りアクセスを有する。このコードはアトミック加算であり得る。
pre
post
delay
init
[0168]いくつかの実装形態では、プレシナプススパイクによってトリガされ得る、短期シナプス可塑性をモデル化することが望ましいことがある。しばしば、これは、個々のプレシナプススパイクによって変更され得る変数または変数のベクトルを有することを必要とし得、次いで、何らかの式に従って発展するが、プリパルスの瞬間におけるこの変数の値のみが必要とされ得る。この場合、変数は個々のシナプスの一部であり得る。しかしながら、一部または全部のそのような変数の値がすべてのシナプスについて同じであるので、ENDからエンジンへのコンパイラ(リンカ)は、シナプスからこれらの変数を削除し、代わりに、「プリルール」(pre−rule)に従わなければならない、単一のプレシナプス変数を使用することができる。ENDフォーマットは、シナプスイベントルールまたはプレシナプスユニットイベントルールにおいてそのようなイベント前のトリガされる変数をコンパイラが識別するのを助け得る、特殊タグまたはラベル、またはステートメントを有し得る。
name=’QIF2’ //v式のみが定義される
code=’v+=(0.04*v+5).*v+140+I; I=4*rand()/MAX_RAND’
<rule>
name=’spike’
code=’v>30’
<unit_type>
name=’exc’
update_rule=’u+=0.02*(0.2*v−u); I−=u;’
update_rule=’QIF2’
event_condition=’spike’
after_event_rule=’v=−65; u+=8;’
init=’analog v=−70, u=−14, I=0;’
<unit_type>
name=’inh’ //抑制性ニューロン
update_rule=’u+=0.1.*(0.2*v−u); I−=u;’
update_rule=’QIF2’
event_condition=’spike’
after_event_rule=’v=−65; u+=2;’
init=’analog v=−70, u=−14, I=0;’
//クラスのNe個のレコード
<unit of exc>unit_id=i // i=1:Ne
//クラスのNi個のレコード
<unit of inh>
unit_id=i // i=1:Ni
<rule>
name=’LTD’
code=’sd−=LTD(postpre); w+=0.00001*prepre+sd*10*(1−0.9999^prepre); if (w<0) w=0; if (w>10) w=10; sd*=0.9999^prepre)’
init=’LTD={array};’
//sd’=−sd/10秒;0.9999^x=exp(−x/10000);ルールは0.9999^xが1回のみ計算されるように最適化され得る:w+10*sd;sd*=..;w−=10*sd;’それは、10*が削除されるようにさらに最適化され得る(しかし、LTPおよびLTDテーブルが10だけスケールアップされる)。
name=’LTP’
code=’sd+=LTP(prepost);’
init=’LTP={array};’
<synaptic_type>
name=’GLU’
prepost_rule=’LTP’
postpre_rule=’LTD’
delivery_rule=’I+=w’
init=’analog w=6, sd=0;’
<synaptic_type>
name=’GABA’
delivery_rule=’I−=5’
delay=1 //デフォルト遅延、すべてのシナプスについて同じ
//クラス(exc−>excまたはinh)のNe*M個のレコード
<synapse of GLU>
pre=exc:i// i=1:Ne
post=exc:j または inh:j //ランダム、1とNeとの間、または1:Ni
delay //1とDとの間の乱数
//クラス(inh−>exc)のNi*M個のレコード
<synapse of GABA>
pre=inh:i// i=1:Ni
post=exc:j //1とNeとの間の乱数
リスティング 4
[0171]基本ネットワークインターフェース(ENI:elementary network interface)は、低レベル記述ENDフォーマットで記述される2つのシミュレーション、あるいはシミュレーションに/からデータを送信/受信することを必要とされ得る任意の他のエンティティ(たとえば、入力デバイス、可視化/デバッグツール、および/または他のエンティティ)間のデータ交換を実装する通信プロトコルとして実装され得る。ENIは、END自体と強固に組み合わせられ得、それは、大きいENDファイルをより小さい部片に区分して正しい結果を保証するために使用され得る。ENIのいくつかの部分は、通信イベントのENDエンジン処理の詳細な知識を必要とし得る。
送信側および受信側のクラス、
(クラス内のそれらの数によって数え上げられる)送信側および受信側のクラスインスタンス、
コンテンツ:いくつかのパラメータのイベント/スパイク通知または値、
送られるデータのフォーマット、
動作モード(同期、非同期)およびそれらのパラメータ(周波数、位相シフト、および/または他のパラメータ)、
および/または他のパラメータ
[0176]一実装形態では、ENI通信チャネルは、(i)スパイク(イベント)通知、および(ii)選択されたクラスパラメータ(変数)の値を交換するために使用され得る。これらの2つのコンテンツタイプは、チャネルを通して送られる異なるデータ、すなわち、以下を必要とし得る。
・(チャネルによって送信される一部または全部のインスタンスの)変数の実際値
[0177]一実装形態では、値変数でインターリーブされるネットワークユニットインデックス。そのような実装形態は、イベント(スパイク)を経験したユニットのために、ネットワークトラフィックを最小限に抑えるために値が送られる必要があるときに適用可能であり得る。要約すると、以下のデータフォーマットがサポートされ得る。
[0190]図7Bに、1システムクロックサイクルの位相シフト(シミュレーションステップ)(両方向にS=1)を伴う同期通信の一例を示す。通信チャネルは、(図7Bの垂直矢印752、754によって示されるウィンドウ重複に起因してより一様に使用されるが、スパイクおよび値は1ms/ステップの遅延を伴って到着する。
[0196]例4は、‘Retina’ENDファイルが、発火したクラス‘RGC’から、‘LGN’ENDファイルを実行中のエンジンに、選択されたユニットのインデックスを送る、エンジンシミュレーションを記述している。クラス‘exc’の選択された要素が発火される。通信は同期式であり得、同期ポイントが送信側または受信側の一方または両方の上の個々のサイクルにおいて現れ、チャネルはシフト(遅延)を有しないことがある。
SOURCE_ID=’Retina’
//ソースENDファイル(シミュレーション)のid
TARGET_ID=’LGN’
//ターゲットENDファイル(シミュレーション)のid
MODE=SYNC
T1=1
//送信側同期周波数 − データを(シミュレーションサイクルにおいて)いつ送るべきか
T2=1
//受信側同期周波数 − (シミュレーションサイクルにおいて)データをいつ予想すべきか
S=0
//受信側位相シフト
FORMAT=INDICES
//チャネルによってスパイキングユニットのみが観測される
SENDER_VALUES=NONE
//インデックスのみが送られる、すなわち、チャネルがターゲットユニットを発火する
target units
RECEIVER_VALUES=NONE
SENDER_CLASS=’RGC’
RECEIVER_CLASS=’exc’
NUMBER_OF_UNITS=500
//チャネルによっていくつのユニットが観測されるか?
SENDER_UNITS=84 23 395 39 201 34 ...
RECEIVER_UNITS=33 45 67 98 18 34 19 ...
リスティング 7
例5:
[0197]例5は、‘Camera’ENDが、クラスPixel中の‘R,G,B’変数の値を、Retina ENDファイル中のクラスRGCの変数‘Red,Green,Blue’に非同期的に送り得るエンジンシミュレーションを示している。
SOURCE_ID=’Camera’
//ソースENDファイル(シミュレーション)のid
TARGET_ID=’Retina’
//ターゲットENDファイル(シミュレーション)のid
MODE=ASYNC
STREAM=NO
//受信側がデータを蓄積しない(最新のデータのみがエンジンに送達される)
T1=1
//送信側同期周波数 − データを(シミュレーションサイクルにおいて)いつ送るべきか
T2=2
//受信側同期周波数 − データを(シミュレーションサイクルにおいて)いつ予想すべきか
FORMAT=NOINDICES
//すべての値が毎回送られる
SENDER_VALUES=’R,G,B’
//それらの変数の値が送られる
RECEIVER_VALUES=’Red,Green,Blue’
//それらの変数の値が更新される
SENDER_CLASS=’Pixel’
RECEIVER_CLASS=’RGC’
NUMBER_OF_UNITS=1024
//チャネルによっていくつのユニットが観測されるか?
SENDER_UNITS=1 2 3 4 5 6 7 8 9 10 11
RECEIVER_UNITS=33 45 67 98 18 34 19 .
リスティング 8
[0198]図13に示されているテーブルに、リスティング8において使用される通信パラメータの可能な値をリストする。
・追加のデータフォーマット、たとえば、analogのサポート。
・ENIフォーマットを指定するための便利で直観的な方法
[0203](図9の区分モード900などの)分散モデルシミュレーションに関して上記で説明したように、モデルはいくつかの分割(たとえば、分割910、920)に分けられ得る。個々の分割は単一の計算エンジン(図9のengine1、Engine2上で実行され得る。いくつかの実装形態では、計算エンジンは単一の処理ユニット(CPU)の実装形態を備え得る。個々の計算エンジンは、たとえば、CPU、FPGA、MCUなど、並列に動作する複数の処理ユニット(PU)を備え得る。そのような並列化は、(並列PUの数とともにスケーリングし得る)モデルシミュレーションスループットの大幅な増加を可能にする。並列モデル実行を可能にするために、シミュレーションドメインがいくつかの処理ブロック(処理ドメイン)に分割され得、個々のブロックは個々のPUに割り当てられる。個々の処理ブロックは、(i)局所コンパートメント、局所スパイクキュー、および/または他の局所情報を追跡することと、(ii)(END3.0では適用可能でない)着信「シナプス」のリスト(テーブル)を記憶することと、ロッキング(locking)なしに処理され得る局所接合のsリストを記憶することとを行うように構成され得る。コンペイトメント(compaitment)は、それらがスパイクするときはいつでも通知され得るドメインidでタグ付けされ得る。そのような外部から可視のコンパートメントがスパイクしたときは、適切な情報が隣接ドメインに送られ得、その隣接ドメインが処理の残り(たとえば、シナプスキュー)を行う。
[0216]ダブレットイベントルールは、図11に示すように、いくつかの実装形態ではイベント後ルールとダブレット更新ルールとを含み得る、ダブレットルールのクラスの一部であり得る。イベント後ルールは、ポストシナプスユニットによってトリガされ、そのポストシナプスユニットに結合しているダブレットのために実行されるルールであり得る。いくつかの実装形態では、ダブレットのイベント後ルールは、直前のプレシナプスイベントのタイミングに依存し得る。ダブレット更新ルールは、1つまたは複数のタイムステップで(たとえば、時間期間内のシステムクロックサイクルごとに)個々のダブレットについて実行されるクロックベースルールであり得る。
・トリガユニットから他のユニットにポイントするシナプス(ダブレット)に作用するpresynaptic_event_rule、
・他のユニットからそのユニットをポイントするシナプス(ダブレット)に作用するpost−synaptic_event_rule
[0237]クラスメンバーUpdate_ruleは、ネットワークシミュレーションの個々のタイムステップで実行され得、(場合によってはバックグラウンドプロセスを介して)ユニット、シナプス、および接合中の、すなわち、ユニット、ダブレット、およびトリプレット中の変数を更新する。
・要素中の変数に作用するクロック駆動型ルール(ルール)、および
・いくつかの要素によってトリガされ、他の(ターゲット)要素中の変数に作用する、イベント駆動型ルール(イベント)
[0240]EDA命令セットは、抽象的(シンボル)変数に作用するルールを定義することから開始する。ルールは、サイクルなしでルールの有向グラフを形成するために、前に定義された他のルールを含み得る。要素は、同じまたは他の要素に作用するクロック駆動型ルールによって定義され得る。イベントは、他の要素に適用されるトリガ条件およびターゲットルールによって定義され得る。
code=’....’
code=another_rule_name
init=’....’
リスティング 5
[0242]リスティング5において、識別子「code」は、コードの任意の文字、または前に定義された別のルールの名前を参照することができる。リスティング5ではCコードシンタックスが使用されているが、任意の他の言語記述(たとえば、C#、Python、Perl、および/または他の言語)が本技術に等しく適用可能であることを当業者なら諒解されよう。ルール内に複数のコードおよびルールが含まれることがあり、それらは包含の順序で実行され得る。いくつかの実装形態では、複数の要素タイプにおいて使用されるルールは別々に定義され得、したがって、エンジンはそれのアクセラレーショントリックを使用してそのようなルールを並列に実行することができる。ステートメント「init」は、ルールを実行するために必要とされる静的(ルール内では大域)変数を定義し、たとえば、それはルックアップテーブルを定義する。「code」は、「init」において定義されている静的変数を、要素において定義されているインスタンス変数(下記参照)を、または他の要素タイプにおいて定義されている他のインスタンス変数を参照し得、たとえば、「I+=A.w+B.w」は、インスタンス変数Iを、ならびに要素AおよびBにおいて定義されている変数wを参照する。
rule=rule_name
rank=a number or range of numbers
init=’....’
[0243]上記は要素タイプの定義である。ここで、「rule」は、前に定義されているルールを、またはコードの文字を参照する。パラメータ「rank」は、クロックサイクル内のルールの実行のランク順序を指定する。それは間隔[0 1]からの固定小数点値を取る。たとえば、rank=0.45は、このルールが、より低いランクをもつ個々のルールの後に、およびより高いランクをもつ個々のルールの前に、しかしランク0.45を有するルールと並列に実行され得ることを意味する。ランクが間隔として与えられた、たとえば、rank=min:maxの場合、エンジンは、rank<minである個々のルールの後に、およびrank>maxである個々のルールの前に、任意の時間にこのルールを実行する自由を有する。「rank」が欠落している場合、それはデフォルト値rank=0:1と等価であり、すなわち、エンジンは、このルールをいつ実行すべきかを選択する完全な自由を有する。ランクが1よりも大きい場合、エンジンは、ルールを実行するサイクルをスキップする。たとえば、rank=2.45は、エンジンが、ルールの次の実行まで2サイクルをスキップすることを引き起こし得る。ストリング「init」は、要素のインスタンス(局所)変数の名前を定義し、それらのデフォルト初期値を設定する。
A=other_element_name.id
B=other_element_name.id
variable_name=value
[0244]上記は要素タイプのインスタンスの定義である。ここで、「element_name」は、前に定義されている要素タイプの名前である。ライン‘variable name=value’は、要素定義中の「init」ステートメントにおいて定義されているデフォルト値とは異なるインスタンス変数の値を設定し得る。要素定義中のrule_nameが他の要素を参照する場合(これはダブレットおよびトリプレットについて当てはまる)、これらの要素のidがここで指定され得る。他の要素を参照するために、必ずしもAおよびB(またはENDにおけるUnitiおよびUnit_2)ではなく、いかなる変数名をも使用することができることに気づかれたい。
trigger_condition=rule_name
trigger_rank=number or number range
target_code=rule_name
target_rank=number or number range
[0245]上記はイベントタイプの定義である。ここで、「trigger_condition」は、真/偽を戻すルールの名前またはストリングコードである。(要素に適用される、下記参照)この条件は、「trigger_rank」によって与えられるランクで評価され得る。条件が真であるとき、それは、ランク「target_rank」で(以下で定義される)ターゲット要素における「target_code」の実行をトリガする。
trigger=element_name.id
target=element_name.id
[0246]上記はイベントタイプのインスタンスの定義である。それは、どの要素が「trigger」であり、どの要素がイベントの「target」であるかを指定する。
[0247]ランダムに結合された800個の興奮性ニューロンと200個の抑制性ニューロンとのネットワーク(exc−>allおよびinh−>exc結合のうちの100個)が、STDPと伝導遅延なしとに従わなければならない興奮性シナプスで定義され得る(伝導遅延については、次の例を参照されたい)。
code=’v+=0.5f*((0.04f*v+5.0f)*v+140.0f−u+I); v+=0.5f*((0.04f*v+5.0f)*v+140.0f−u+I); I=0.0f;’
exc=element
code=’u+=0.02f*(0.2f*v−u);’
code=QIF
rank=0
init=’float v=−65.0f; float u=−13.0f; float I=0.0f; int last_spike=−1000’
1:800=exc
inh=element
code=’u+=0.01f*(0.2f*v−u);’
code=QIF
rank=0
init=’float v=−65.0f; float u=−13.0f; float I=0.0f; int last_spike=−1000;’
1:200=inh
spike=rule
code=’v>30’
after_spike_reset_exc=event
trigger_condition=spike
trigger_rank=0.1
target_rule=’u+=8; last_spike=now’
target_rank=0.2
after_spike_reset_exc
trigger=exc.1:800
target=exc.1:800
after_spike_reset_inh=event
trigger_condition=spike
trigger_rank=0.1
target_rule=’u+=2; last_spike=now’
target_rank=0.2
after_spike_reset_inh
trigger=inh.1:200
target=inh.1:200
inh_syn_event=event
trigger_condition=spike
trigger_rank=0.1
target_rule=’I−=5.0f’
target_rank=0.3
//200*100個のそのようなエントリを作る
inh_syn_event
trigger=inh.<random number between 1 and 200>
target=exc.<random number between 1 and 800>
weight update=rule
code=’w+=0.01f+sd; if (w<0.0f) w=0.0f; if (w>10.0f) w=10.0f; sd*=0.9f’
exc_synapse=element
code=weight_update
rank=999:1000//そのサイクル内の任意の時間
init=’float w=6.0f; float sd=0.0f; int last_active−=1000’
id=exc_synapse
post=<either exc.id or inh.id with id=random>
PSP_LTD_rule=rule
code=’post.I+=w; sd−=LTD(now−post.last_spike);
last_active=now’
init=’float LTD={...}’
PSP_LTD_event=event
trigger_condition=spike
trigger_rank=0.1
target_rule=PSP_LTD_rule
target_rank=0.3
PSP_LTD_event
trigger=exc.<each id>
target=exc_synapse.<each corresponding id>
LTP_rule=rule
code=’sd+=LTD(now−last_active)’
init=’float LTP={...}’
LTP_event=event
trigger_condition=spike
trigger_rank=0.1
target_rule=LTP_rule
target_rank=0.4
LTP_event
trigger={各exc.idおよびinh.idについて}
target=exc_synapse.<each corresponding id>
リスティング 6
[0248]リンカは、計算エンジンが個々のユニットについてモデルシミュレーションステップごとに1回‘spike’条件を実行するように、(同じランクをもつ内にある)‘spike’ルールによってトリガされるイベントを単一のイベントにグループ化するように構成され得る。
... members of END 2.0 unit_type definition (e.g. name, update_rule)
dendritic_event_condition
after_dendritic_event_rule
ここで、
dendritic_event_condition
は、樹状突起イベント、たとえば、‘denritic_event_flag==true’を検出するように構成された論理ステートメントを定義する。いくつかの実装形態では、イベントルールは個々のクロックサイクル(モデルタイムステップ)で実行され得る。クラスがベースクラスから派生されたとき、サブクラスの樹状突起イベント条件がベースクラスの樹状突起イベント条件に取って代わる。ユニット定義メンバー
after_dendritic_event_rule
は、樹状突起イベントが検出されたときに実行され得るコードを備え得る。派生サブクラスについて、サブクラスafter_dendritic_event_ruleはベースクラスのafter_dendritic_event_ruleの前に実行され得る。
... members of END 2.0 synapse type (e.g. presynaptic_event_rule)
dendritic_event_rule
ここで、ポストシナプスユニットのdendritic eventを発生することによってトリガされるdendritic_event_ruleのコード。いくつかの実装形態では、それは、調節されたSTDPを実行することができる。
[0275]いくつかの実装形態では、入力結合の可塑性の更新は、2011年6月2日に出願された、「SENSORY INPUT PROCESSING APPARATUS AND METHODS」と題する、同一出願人が所有する同時係属米国特許出願第13/152,119号、2012年5月7日に出願された、「SPIKING NEURAL NETWORK FEEDBACK APPARATUS AND METHODS」と題する、同一出願人が所有する同時係属米国特許出願第13/465,924号、2012年5月7日に出願された、「SENSORY INPUT PROCESSING APPARATUS IN A SPIKING NEURAL NETWORK」と題する、同一出願人が所有する同時係属米国特許出願第13/465,903号、2012年5月7日に出願された、「SPIKING NEURAL NETWORK OBJECT RECOGNITION APPARATUS AND METHODS」と題する、同一出願人が所有する米国特許出願第13/465,918号、および2012年6月4日に出願された、「SPIKING NEURON NETWORK APPARATUS AND METHODS」と題する、同一出願人が所有する米国特許出願第13/488,106号に記載されているものなどのSTDPルールを使用して実現され得、上記の各々の全文は参照により本明細書に組み込まれる。
tout − ニューロンによって生成された直近の出力(ポストシナプススパイク)の時間を示し、
tin j − 結合jを介してニューロンによって受信された1つまたは複数の入力直近の入力((1つまたは複数の)プレシナプススパイク)の時間を示し、
text − 外部(トリガ)信号の時間を示す。
unit_class_id
initialization
execution_condition
update_rule
list of
custom_event_type_id
custom_event_condition
after_custom_event_rule
ここで、
[0291]シナプスクラスは以下のように樹状突起イベントによって増補され得る。
synapse_class_id
initialization
presynaptic_event_rule
update_rule
list of
custom_event_type_id
custom_event_rule
ここで、何らかのidをもつカスタムイベントルールのコードが、同じidをもつポストシナプスユニットのカスタムイベントを発生することによってトリガされる。シナプスは、異なるidをもついくつかのイベントルールを定義することができる。いくつかの実装形態では、それは、調節されたSTDPを実行することができる。
unit_class_id
initialization
execution_condition
update_rule
event_condition
after_event_rule
list of
custom_event_type_id
custom_event_condition
after_custom_event_rule
ここで、
[0296]シナプスクラスは以下のように樹状突起イベントによって増補され得る。
synapse_class_id
initialization
presynaptic_event_rule
post−synaptic_event_rule
update_rule
list of
custom_event_type_id
custom_event_rule
ここで、何らかのidをもつカスタムイベントルールのコードが、同じIDをもつポストシナプスユニットのカスタムイベントを発生することによってトリガされる。シナプスは、異なるidをもついくつかのイベントルールを定義することができる。シナプスクラスは、END2.0との後方互換性のために、(ポストシナプスユニットにおけるカスタムイベントルールではなく)通常通りトリガされるpost−synaptic_event_ruleを依然として有することに気づかれたい。いくつかの実装形態では、それは、調節されたSTDPを実行することができる。
[0329]コンピュータ化スパイキングネットワークを動作させるように(および上記で説明した例示的なイベント駆動型更新方法を実装するように)適応された、コンピュータ化神経形態学的処理システムの特定の一実装形態を図11Aに示す。図11Aのコンピュータ化システム1100は、たとえば、画像センサー、コンピュータ化スパイキング網膜、オーディオアレイ、タッチセンシティブ入力デバイス、および/または他の構成要素など、入力インターフェース1110を備え得る。入力インターフェース1110は、入力通信インターフェース1114を介して処理ブロック(たとえば、シングルまたはマルチプロセッサブロック)に結合され得る。システム1100は、ニューロン状態および結合パラメータ(たとえば、図14の荷重1406)を記憶し、シナプス更新を可能にするように構成された、ランダムアクセスメモリ(RAM)1108を備え得る。いくつかの実装形態では、シナプス更新は、たとえば、参照によって上記に組み込まれる、2011年9月21日に出願された「APPARATUS AND METHODS FOR SYNAPTIC UPDATE IN A PULSE-CODED NETWORK」と題する米国特許出願第13/239,255号において与えられている記載に従って実施され得る。
[0356]本開示の原理の実装形態は、コンピュータと人間の対話(たとえば、ジェスチャー、音声、姿勢、顔の認識、および/または他の適用例)、加工の制御(たとえば、工業用ロボット、自律車両および他の車両)、拡張現実適用例、(たとえば、画像および画像シーケンスのデータベースをインデックス付けするための)情報の編成、アクセス制御(たとえば、ジェスチャーに基づいてドアを開くこと、許可された人物の検出に基づいてアクセス方法を開くこと)、(たとえば、視覚的監視あるいは人間または動物の計数、追跡のための)イベントの検出、データ入力、金融取引(人物または特殊支払いシンボルの認識に基づく支払い処理)、ならびにその他多数を含む、広い組合せの適用例に適用可能であり得る。
Claims (28)
- 入力結合と出力結合とを有する人工スパイキングニューロンを動作させるコンピュータ実装方法であって、前記方法が、コンピュータプログラムモジュールを実行するように構成された1つまたは複数のプロセッサによって実施され、前記方法は、
第1のイベントを含む第1のイベントタイプの1つまたは複数のイベントを与えることと、前記第1のイベントが、前記入力結合の可塑性の更新を実現するように構成され、前記入力結合の前記可塑性が、前記入力結合に関連するパラメータを調整することが可能であり、前記調整が時間期間によって特徴づけられる、
第2のイベントを含む第2のイベントタイプの1つまたは複数のイベントを与えることと、前記第2のイベントが、前記出力結合を介して前記ニューロンの反応の送出を実現するように構成された、
を備える、コンピュータ実装方法。 - 前記第1のイベントが、前記ニューロンに与えられる外部信号に基づき、
前記パラメータが入力結合荷重を備えた、
請求項1に記載の方法。 - 前記入力結合が、前記ニューロンにフィードフォワード刺激を与えるように構成され、
前記ニューロンが、ターゲット結果を生成するように構成された学習プロセスに従って動作可能であり、
前記外部信号が、前記ターゲット結果からの所定の範囲内の前記反応かどうかに基づいて構成された強化信号を備える、
請求項2に記載の方法。 - 前記フィードフォワード刺激が、複数のスパイクの個々の間の間隔を備えるスパイク間間隔(ISI)によって特徴づけられる前記複数のスパイクを備え、
前記タイ期間が、前記複数のスパイクのうちの連続する個々のスパイクについて決定された前記ISIを超える、
請求項3に記載の方法。 - 前記外部信号が、前記第2のイベントタイプの前記1つまたは複数のイベントとは無関係に前記第1のイベントタイプの前記1つまたは複数のイベントを引き起こすように構成された、請求項2に記載の方法。
- 前記第1のイベントタイプの所与のイベントは、前記第1のイベントタイプの前記所与のイベントがトリガされた後に反応なし時間間隔を可能にするために、前記第2のイベントタイプの所与のイベントとは無関係にトリガされるように構成された、請求項2に記載の方法。
- 荷重の前記変更が可塑性時間ウィンドウによって特徴づけられ、前記反応なし時間間隔が、前記可塑性時間ウィンドウを超えて構成された、
請求項2に記載の方法。 - 前記入力結合が、前記ニューロンにフィードフォワード刺激を与えることが可能であり、
前記外部信号が、前記入力結合とは別個に構成されたインターフェースを介して与えられる、
請求項2に記載の方法。 - 前記入力結合の前記可塑性の更新は、前記外部信号が与えられる時間に基づいて構成された、請求項8に記載の方法。
- 前記フィードフォワード刺激が少なくとも1つのスパイクを備え、
前記可塑性の更新が、前記少なくとも1つのスパイクに関連する時間に基づいてさらに構成された、
請求項9に記載の方法。 - 前記可塑性の更新が、前記入力結合を通るデータ送信の確率を調整することを備え、前記調整することが、(i)前記外部信号を前記与えることとニューロン反応時間との間の時間間隔、または(ii)前記少なくとも1つのスパイク前記反応時間の間の時間間隔の一方または両方に基づき、
前記反応時間は、前記外部信号が与えられる前に発生された前記ニューロンの反応に関連付けられる、
請求項9に記載の方法。 - 前記可塑性の更新が、(i)前記外部信号を前記与えることとニューロン反応時間との間の時間間隔、または(ii)前記少なくとも1つのスパイク前記反応時間の間の時間間隔の一方または両方に基づいて決定された前記入力結合に関連する有効性を調整することを備え、
前記反応時間は、前記外部信号が与えられる前に発生された前記ニューロンの反応に関連付けられる、
請求項9に記載の方法。 - 前記可塑性の更新が、(a)通信遅延と、b)前記入力結合に関連する荷重とのいずれかを調整することを備え、前記調整することが、(i)前記外部信号を前記与えることとニューロン反応時間との間の時間間隔、または(ii)前記少なくとも1つのスパイク前記反応時間の間の時間間隔の一方または両方に基づいて決定される、
前記反応時間は、前記外部信号が与えられる前に発生された前記ニューロンの反応に関連付けられる、
請求項9に記載の方法。 - 前記ニューロンが、状態によって特徴づけられるニューロンプロセスに従って動作するように構成され、前記状態が、それに関連付けられた反応発生しきい値を有し、前記反応発生しきい値が、前記反応を発生する前記ニューロンに関連付けられ、
前記反応が、前記ニューロンへの前記入力結合を介して前記ニューロンに与えられる1つまたは複数の入力スパイクに基づき、
前記反応が、前記反応発生しきい値を突破する前記状態によって特徴づけられる、
請求項1に記載の方法。 - 前記ニューロンに関連するメモリロケーションに前記状態の現在値を記憶すること
をさらに備え、
前記第1のイベントタイプの前記1つまたは複数のイベントが、前記入力結合に前記メモリロケーションへの読取り専用アクセスを与えるように構成された、
請求項14に記載の方法。 - 前記第1のイベントが、(i)タイマー満了、(ii)バッファオーバーフロー信号、または(iii)前記ニューロンプロセスに関連するトリガのうちの1つまたは複数に基づいて構成され、
前記バッファが、前記1つまたは複数の入力スパイクの時間履歴を記憶するように構成された、
請求項14に記載の方法。 - 前記第1のイベントタイプの前記1つまたは複数のイベントが、前記入力結合に前記1つまたは複数の入力スパイクの前記時間履歴への読取り専用アクセスを与えるように構成された、請求項14に記載の方法。
- 前記第1のイベントタイプの前記1つまたは複数のイベントが、前記入力結合に前記ニューロンの前記反応のうちの1つまたは複数の時間履歴への読取り専用アクセスを与えるようにさらに構成された、請求項17に記載の方法。
- 前記第1のイベントタイプに関連する供与は、前記可塑性の更新が、前記反応を引き起こすことおよび/または前記反応に関連付けられることなしに実現されることが可能であるように、前記第2のイベントタイプとは無関係に構成された、請求項1に記載の方法。
- 第3のイベントを含む第3のイベントタイプの1つまたは複数のイベントを与えることをさらに備え、前記第3のイベントがプレシナプスイベントに関連付けられ、前記プレシナプスイベントが、前記入力結合の前記可塑性の更新を引き起こすことが可能である、請求項1に記載の方法。
- 前記第1のイベントと前記第2のイベントとが、互いに同時に与えられるように構成された、請求項1に記載の方法。
- 前記第2のイベントが、前記出力結合の可塑性の更新を引き起こすことが可能である、請求項1に記載の方法。
- 人工スパイキングニューロンネットワークのための強化学習のコンピュータ実装方法であって、前記方法が、コンピュータプログラムモジュールを実行するように構成された1つまたは複数のプロセッサによって実施され、前記方法は、
強化学習プロセスに従って前記ニューロンを動作させることと、前記強化学習プロセスが、入力信号と強化信号とに基づいて出力を発生するように構成された、
前記強化信号に基づいて、第1のイベントタイプの第1のイベントを選択的にトリガすることと、前記第1のイベントが、前記ニューロンの結合の可塑性の更新を引き起こすように構成され、ここにおいて、
前記選択的にトリガすることが、前記出力の前記発生とは無関係な前記可塑性の更新の適用を可能にするように構成され、
前記入力信号が、前記ニューロンの外部の環境に関する情報を搬送する、
を備える、コンピュータ実装方法。 - 前記結合が、前記ニューロンに前記入力を与えるように構成され、
前記強化学習プロセスが、ターゲット結果を達成するように構成され、
前記強化信号が、前記所望の結果と前記出力との間の不一致を特徴づける測定に基づく、
請求項23に記載の方法。 - 前記強化信号は、前記不一致が所定の値の外部にあることに基づいて決定された負の報酬を備える、請求項24に記載の方法。
- ネットワークにおいてイベントベース更新を実装するように構成されたコンピュータ化スパイキングニューロンネットワークシステムであって、前記システムが、
コンピュータプログラムモジュールを実行するように構成された1つまたは複数のプロセッサを備え、前記コンピュータプログラムモジュールの前記実行が、前記1つまたは複数のプロセッサに、第1のイベントに基づいて、前記ネットワークの第1のスパイキングニューロンと第2のスパイキングニューロンとにそれぞれ関連する第1のインターフェースと第2のインターフェースとを更新させ、
ここにおいて、前記第1のイベントが、前記イベントに反応して前記第1のスパイキングニューロンと前記第2のスパイキングニューロンとによってそれぞれ発生される第1の出力と第2の出力との不在によって特徴づけられる、
コンピュータ化スパイキングニューロンネットワークシステム。 - 前記コンピュータプログラムモジュールの前記実行が、前記1つまたは複数のプロセッサに、前記第1のスパイキングニューロンと前記第2のスパイキングニューロンとにそれぞれ関連する前記第1の出力のインターフェースまたは前記第2の出力のインターフェースの一方または両方を介して、前記第1の出力または前記第2の出力の一方または両方の送出を引き起こすように構成された第2のイベントを発生させる、請求項26に記載のシステム。
- 前記コンピュータプログラムモジュールの前記実行が、前記1つまたは複数のプロセッサに、前記第1のスパイキングニューロンまたは前記第2のスパイキングニューロンの一方または両方のユーザ定義更新を実行するように構成されたカスタムイベントを発生させる、請求項26に記載のシステム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/588,774 US9460387B2 (en) | 2011-09-21 | 2012-08-17 | Apparatus and methods for implementing event-based updates in neuron networks |
US13/588,774 | 2012-08-17 | ||
PCT/US2013/055381 WO2014028855A1 (en) | 2012-08-17 | 2013-08-16 | Apparatus and methods for spiking neuron network learning |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2015529357A true JP2015529357A (ja) | 2015-10-05 |
JP2015529357A5 JP2015529357A5 (ja) | 2017-01-05 |
JP6169697B2 JP6169697B2 (ja) | 2017-07-26 |
Family
ID=50100807
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015527661A Active JP6169697B2 (ja) | 2012-08-17 | 2013-08-16 | スパイキングニューロンネットワーク学習のための装置および方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9460387B2 (ja) |
EP (1) | EP2885745A4 (ja) |
JP (1) | JP6169697B2 (ja) |
CN (1) | CN104685516B (ja) |
WO (1) | WO2014028855A1 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2022538694A (ja) * | 2019-07-02 | 2022-09-05 | 深▲セン▼▲憶▼▲海▼原▲識▼科技有限公司 | 脳型知能とコグニティブコンピューティングに使用されるスパイキングニューラルネットワーク演算システムおよび方法 |
KR20230004899A (ko) * | 2015-10-23 | 2023-01-06 | 가부시키가이샤 한도오따이 에네루기 켄큐쇼 | 모듈 및 전자 기기 |
Families Citing this family (114)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8648867B2 (en) | 2006-09-25 | 2014-02-11 | Neurala Llc | Graphic processor based accelerator system and method |
US8467623B2 (en) | 2010-03-26 | 2013-06-18 | Brain Corporation | Invariant pulse latency coding systems and methods systems and methods |
US9405975B2 (en) | 2010-03-26 | 2016-08-02 | Brain Corporation | Apparatus and methods for pulse-code invariant object recognition |
US9122994B2 (en) | 2010-03-26 | 2015-09-01 | Brain Corporation | Apparatus and methods for temporally proximate object recognition |
US9311593B2 (en) | 2010-03-26 | 2016-04-12 | Brain Corporation | Apparatus and methods for polychronous encoding and multiplexing in neuronal prosthetic devices |
US9152915B1 (en) | 2010-08-26 | 2015-10-06 | Brain Corporation | Apparatus and methods for encoding vector into pulse-code output |
US8775341B1 (en) | 2010-10-26 | 2014-07-08 | Michael Lamport Commons | Intelligent control with hierarchical stacked neural networks |
US9015093B1 (en) | 2010-10-26 | 2015-04-21 | Michael Lamport Commons | Intelligent control with hierarchical stacked neural networks |
US9566710B2 (en) | 2011-06-02 | 2017-02-14 | Brain Corporation | Apparatus and methods for operating robotic devices using selective state space training |
US9070039B2 (en) | 2013-02-01 | 2015-06-30 | Brian Corporation | Temporal winner takes all spiking neuron network sensory processing apparatus and methods |
US9147156B2 (en) | 2011-09-21 | 2015-09-29 | Qualcomm Technologies Inc. | Apparatus and methods for synaptic update in a pulse-coded network |
US20150127154A1 (en) * | 2011-06-02 | 2015-05-07 | Brain Corporation | Reduced degree of freedom robotic controller apparatus and methods |
US9047568B1 (en) | 2012-09-20 | 2015-06-02 | Brain Corporation | Apparatus and methods for encoding of sensory data using artificial spiking neurons |
US8725658B2 (en) | 2011-09-21 | 2014-05-13 | Brain Corporation | Elementary network description for efficient memory management in neuromorphic systems |
US9104973B2 (en) | 2011-09-21 | 2015-08-11 | Qualcomm Technologies Inc. | Elementary network description for neuromorphic systems with plurality of doublets wherein doublet events rules are executed in parallel |
US8725662B2 (en) | 2011-09-21 | 2014-05-13 | Brain Corporation | Apparatus and method for partial evaluation of synaptic updates based on system events |
US8719199B2 (en) * | 2011-09-21 | 2014-05-06 | Brain Corporation | Systems and methods for providing a neural network having an elementary network description for efficient implementation of event-triggered plasticity rules |
US9098811B2 (en) | 2012-06-04 | 2015-08-04 | Brain Corporation | Spiking neuron network apparatus and methods |
US9117176B2 (en) | 2011-09-21 | 2015-08-25 | Qualcomm Technologies Inc. | Round-trip engineering apparatus and methods for neural networks |
US10210452B2 (en) | 2011-09-21 | 2019-02-19 | Qualcomm Incorporated | High level neuromorphic network description apparatus and methods |
US9224090B2 (en) | 2012-05-07 | 2015-12-29 | Brain Corporation | Sensory input processing apparatus in a spiking neural network |
US9129221B2 (en) | 2012-05-07 | 2015-09-08 | Brain Corporation | Spiking neural network feedback apparatus and methods |
US9208432B2 (en) | 2012-06-01 | 2015-12-08 | Brain Corporation | Neural network learning and collaboration apparatus and methods |
US9412041B1 (en) | 2012-06-29 | 2016-08-09 | Brain Corporation | Retinal apparatus and methods |
US9311594B1 (en) | 2012-09-20 | 2016-04-12 | Brain Corporation | Spiking neuron network apparatus and methods for encoding of sensory data |
US9183493B2 (en) | 2012-10-25 | 2015-11-10 | Brain Corporation | Adaptive plasticity apparatus and methods for spiking neuron network |
US9111226B2 (en) | 2012-10-25 | 2015-08-18 | Brain Corporation | Modulated plasticity apparatus and methods for spiking neuron network |
US9218563B2 (en) | 2012-10-25 | 2015-12-22 | Brain Corporation | Spiking neuron sensory processing apparatus and methods for saliency detection |
US9275326B2 (en) | 2012-11-30 | 2016-03-01 | Brain Corporation | Rate stabilization through plasticity in spiking neuron network |
US9123127B2 (en) | 2012-12-10 | 2015-09-01 | Brain Corporation | Contrast enhancement spiking neuron network sensory processing apparatus and methods |
US9177245B2 (en) | 2013-02-08 | 2015-11-03 | Qualcomm Technologies Inc. | Spiking network apparatus and method with bimodal spike-timing dependent plasticity |
US9262712B2 (en) | 2013-03-08 | 2016-02-16 | International Business Machines Corporation | Structural descriptions for neurosynaptic networks |
US9764468B2 (en) | 2013-03-15 | 2017-09-19 | Brain Corporation | Adaptive predictor apparatus and methods |
US9542643B2 (en) * | 2013-05-21 | 2017-01-10 | Qualcomm Incorporated | Efficient hardware implementation of spiking networks |
EP3000030A4 (en) | 2013-05-22 | 2017-07-05 | Neurala Inc. | Methods and apparatus for iterative nonspecific distributed runtime architecture and its application to cloud intelligence |
EP2999940A4 (en) | 2013-05-22 | 2017-11-15 | Neurala Inc. | Methods and apparatus for early sensory integration and robust acquisition of real world knowledge |
US9242372B2 (en) | 2013-05-31 | 2016-01-26 | Brain Corporation | Adaptive robotic interface apparatus and methods |
US9792546B2 (en) | 2013-06-14 | 2017-10-17 | Brain Corporation | Hierarchical robotic controller apparatus and methods |
US9314924B1 (en) | 2013-06-14 | 2016-04-19 | Brain Corporation | Predictive robotic controller apparatus and methods |
US9239985B2 (en) * | 2013-06-19 | 2016-01-19 | Brain Corporation | Apparatus and methods for processing inputs in an artificial neuron network |
US9436909B2 (en) | 2013-06-19 | 2016-09-06 | Brain Corporation | Increased dynamic range artificial neuron network apparatus and methods |
US9552546B1 (en) | 2013-07-30 | 2017-01-24 | Brain Corporation | Apparatus and methods for efficacy balancing in a spiking neuron network |
US9330355B2 (en) | 2013-08-06 | 2016-05-03 | Qualcomm Incorporated | Computed synapses for neuromorphic systems |
US9579789B2 (en) | 2013-09-27 | 2017-02-28 | Brain Corporation | Apparatus and methods for training of robotic control arbitration |
US10339041B2 (en) | 2013-10-11 | 2019-07-02 | Qualcomm Incorporated | Shared memory architecture for a neural simulator |
US9489623B1 (en) | 2013-10-15 | 2016-11-08 | Brain Corporation | Apparatus and methods for backward propagation of errors in a spiking neuron network |
US9463571B2 (en) | 2013-11-01 | 2016-10-11 | Brian Corporation | Apparatus and methods for online training of robots |
US9597797B2 (en) | 2013-11-01 | 2017-03-21 | Brain Corporation | Apparatus and methods for haptic training of robots |
US9248569B2 (en) | 2013-11-22 | 2016-02-02 | Brain Corporation | Discrepancy detection apparatus and methods for machine learning |
US9460382B2 (en) * | 2013-12-23 | 2016-10-04 | Qualcomm Incorporated | Neural watchdog |
US9358685B2 (en) | 2014-02-03 | 2016-06-07 | Brain Corporation | Apparatus and methods for control of robot actions based on corrective user inputs |
US10552734B2 (en) * | 2014-02-21 | 2020-02-04 | Qualcomm Incorporated | Dynamic spatial target selection |
US9626566B2 (en) | 2014-03-19 | 2017-04-18 | Neurala, Inc. | Methods and apparatus for autonomous robotic control |
EP3120300A4 (en) | 2014-03-19 | 2017-11-22 | Neurala Inc. | Methods and apparatus for autonomous robotic control |
US20150278685A1 (en) * | 2014-03-31 | 2015-10-01 | Qualcomm Incorporated | Probabilistic representation of large sequences using spiking neural network |
US9346167B2 (en) | 2014-04-29 | 2016-05-24 | Brain Corporation | Trainable convolutional network apparatus and methods for operating a robotic vehicle |
WO2016014137A2 (en) * | 2014-05-06 | 2016-01-28 | Neurala, Inc. | Apparatuses, methods, and systems for defining hardware-agnostic brains for autonomous robots |
US9713982B2 (en) | 2014-05-22 | 2017-07-25 | Brain Corporation | Apparatus and methods for robotic operation using video imagery |
US10417554B2 (en) | 2014-05-22 | 2019-09-17 | Lee J. Scheffler | Methods and systems for neural and cognitive processing |
US9939253B2 (en) | 2014-05-22 | 2018-04-10 | Brain Corporation | Apparatus and methods for distance estimation using multiple image sensors |
US10194163B2 (en) | 2014-05-22 | 2019-01-29 | Brain Corporation | Apparatus and methods for real time estimation of differential motion in live video |
US9848112B2 (en) | 2014-07-01 | 2017-12-19 | Brain Corporation | Optical detection apparatus and methods |
US10057593B2 (en) | 2014-07-08 | 2018-08-21 | Brain Corporation | Apparatus and methods for distance estimation using stereo imagery |
US10055850B2 (en) | 2014-09-19 | 2018-08-21 | Brain Corporation | Salient features tracking apparatus and methods using visual initialization |
US9630318B2 (en) | 2014-10-02 | 2017-04-25 | Brain Corporation | Feature detection apparatus and methods for training of robotic navigation |
US9881349B1 (en) | 2014-10-24 | 2018-01-30 | Gopro, Inc. | Apparatus and methods for computerized object identification |
US9852370B2 (en) | 2014-10-30 | 2017-12-26 | International Business Machines Corporation | Mapping graphs onto core-based neuromorphic architectures |
US10679120B2 (en) * | 2014-11-10 | 2020-06-09 | International Business Machines Corporation | Power driven synaptic network synthesis |
RU2598298C2 (ru) * | 2015-02-09 | 2016-09-20 | Михаил Ефимович Мазуров | Импульсный нейрон, близкий к реальному |
US9704094B2 (en) | 2015-02-19 | 2017-07-11 | International Business Machines Corporation | Mapping of algorithms to neurosynaptic hardware |
US9717387B1 (en) | 2015-02-26 | 2017-08-01 | Brain Corporation | Apparatus and methods for programming and training of robotic household appliances |
US9971965B2 (en) | 2015-03-18 | 2018-05-15 | International Business Machines Corporation | Implementing a neural network algorithm on a neurosynaptic substrate based on metadata associated with the neural network algorithm |
US10204301B2 (en) | 2015-03-18 | 2019-02-12 | International Business Machines Corporation | Implementing a neural network algorithm on a neurosynaptic substrate based on criteria related to the neurosynaptic substrate |
US9984323B2 (en) | 2015-03-26 | 2018-05-29 | International Business Machines Corporation | Compositional prototypes for scalable neurosynaptic networks |
US10474948B2 (en) | 2015-03-27 | 2019-11-12 | University Of Dayton | Analog neuromorphic circuit implemented using resistive memories |
CN106250981B (zh) * | 2015-06-10 | 2022-04-01 | 三星电子株式会社 | 减少存储器访问和网络内带宽消耗的脉冲神经网络 |
US10217046B2 (en) * | 2015-06-29 | 2019-02-26 | International Business Machines Corporation | Neuromorphic processing devices |
US10885429B2 (en) | 2015-07-06 | 2021-01-05 | University Of Dayton | On-chip training of memristor crossbar neuromorphic processing systems |
US10197664B2 (en) | 2015-07-20 | 2019-02-05 | Brain Corporation | Apparatus and methods for detection of objects using broadband signals |
US10268949B2 (en) | 2016-03-21 | 2019-04-23 | International Business Machines Corporation | Artificial neuron apparatus |
US10949737B2 (en) | 2016-07-13 | 2021-03-16 | Samsung Electronics Co., Ltd. | Method for neural network and apparatus performing same method |
KR102399548B1 (ko) * | 2016-07-13 | 2022-05-19 | 삼성전자주식회사 | 뉴럴 네트워크를 위한 방법 및 그 방법을 수행하는 장치 |
US10176425B2 (en) | 2016-07-14 | 2019-01-08 | University Of Dayton | Analog neuromorphic circuits for dot-product operation implementing resistive memories |
US11295203B2 (en) | 2016-07-27 | 2022-04-05 | International Business Machines Corporation | Optimizing neuron placement in a neuromorphic system |
EP3516592A4 (en) * | 2016-09-19 | 2020-05-20 | HRL Laboratories, LLC | METHOD FOR OBJECT DETECTION IN DIGITAL IMAGES AND VIDEOS USING PULSED NEURONAL NETWORKS |
US20180144244A1 (en) * | 2016-11-23 | 2018-05-24 | Vital Images, Inc. | Distributed clinical workflow training of deep learning neural networks |
US10679118B2 (en) * | 2016-12-20 | 2020-06-09 | Intel Corporation | Solving matrix inverse problems using neuromorphic computing |
US10878313B2 (en) * | 2017-05-02 | 2020-12-29 | Intel Corporation | Post synaptic potential-based learning rule |
TWI625681B (zh) * | 2017-05-11 | 2018-06-01 | 國立交通大學 | 神經網路處理系統 |
US10540189B2 (en) * | 2017-05-22 | 2020-01-21 | Analytical Graphics Inc. | Formalized execution of model integrated descriptive architecture languages |
CN107612968B (zh) * | 2017-08-15 | 2019-06-18 | 北京小蓦机器人技术有限公司 | 通过智能终端控制其所连接设备的方法、设备与系统 |
TWI684141B (zh) * | 2017-10-12 | 2020-02-01 | 英屬開曼群島商意騰科技股份有限公司 | 人工神經元中以非零封包加速乘法運算的裝置及方法 |
CN111465945B (zh) * | 2018-01-23 | 2024-02-02 | 赫尔实验室有限公司 | 应用于神经形态硬件的用于模式识别的系统、方法与介质 |
US11645501B2 (en) * | 2018-02-28 | 2023-05-09 | International Business Machines Corporation | Distributed, event-based computation using neuromorphic cores |
US11954576B2 (en) | 2018-04-17 | 2024-04-09 | Shenzhen Corerain Technologies Co., Ltd. | Method for implementing and developing network model and related product |
CN108805289B (zh) * | 2018-05-08 | 2020-11-13 | 南京理工大学 | 一种基于基底神经节的电机故障诊断方法 |
US10853725B2 (en) * | 2018-05-18 | 2020-12-01 | Deepmind Technologies Limited | Neural networks with relational memory |
CN108846349A (zh) * | 2018-06-08 | 2018-11-20 | 电子科技大学 | 一种基于动态Spiking神经网络的人脸识别方法 |
WO2019240868A1 (en) * | 2018-06-13 | 2019-12-19 | Hrl Laboratories, Llc | Neuromorphic system for authorized user detection |
CN108920582A (zh) * | 2018-06-25 | 2018-11-30 | 郑州云海信息技术有限公司 | 一种目标服务器绑定存储卷的方法及系统 |
EP3605401A1 (en) * | 2018-07-31 | 2020-02-05 | GrAl Matter Labs S.A.S. | Data processing module, data processing system and data processing method |
EP3640862A1 (en) * | 2018-10-15 | 2020-04-22 | GrAl Matter Labs S.A.S. | Neural network evaluation tool and method |
CN109461173B (zh) * | 2018-10-25 | 2022-03-04 | 天津师范大学 | 一种用于时域视觉传感器信号处理的快速角点检测方法 |
CN111417963B (zh) | 2018-11-01 | 2021-06-22 | P·A·范德梅德 | 改进的尖峰神经网络 |
CN113875156A (zh) | 2019-03-17 | 2021-12-31 | 恩帕博尔有限公司 | 用于交叉相关的方法及设备 |
WO2020247309A1 (en) * | 2019-06-02 | 2020-12-10 | Barton David Carl | Method and apparatus for shared cross-stream event detection |
CN110598847B (zh) * | 2019-08-15 | 2020-08-28 | 阿里巴巴集团控股有限公司 | 处理交互序列数据的方法及装置 |
US10970350B2 (en) | 2019-08-15 | 2021-04-06 | Advanced New Technologies Co., Ltd. | Method and apparatus for processing user interaction sequence data |
US11481627B2 (en) * | 2019-10-30 | 2022-10-25 | Microsoft Technology Licensing, Llc | Distributed learning of composite machine learning models |
WO2021114133A1 (en) * | 2019-12-11 | 2021-06-17 | Autonym Pte. Ltd. | Method and system for informed decision making |
CN111506540B (zh) * | 2020-04-24 | 2021-11-30 | 中国电子科技集团公司第五十八研究所 | 一种硬件可编程异构多核片上系统 |
US11520576B1 (en) * | 2022-01-07 | 2022-12-06 | Plusai, Inc. | Methods and apparatus for automatically labeling data processing events in autonomous driving vehicles via machine learning |
CN114708639B (zh) * | 2022-04-07 | 2024-05-14 | 重庆大学 | 一种基于异构脉冲神经网络的人脸识别的fpga芯片 |
TWI813419B (zh) * | 2022-08-18 | 2023-08-21 | 瑞昱半導體股份有限公司 | 神經網路系統以及神經網路系統運行方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001051968A (ja) * | 1999-08-05 | 2001-02-23 | Fuji Xerox Co Ltd | ニューラルネットワーク構築方法及びニューラルネットワーク処理装置 |
Family Cites Families (71)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5063603A (en) | 1989-11-06 | 1991-11-05 | David Sarnoff Research Center, Inc. | Dynamic method for recognizing objects and image processing system therefor |
US5875108A (en) | 1991-12-23 | 1999-02-23 | Hoffberg; Steven M. | Ergonomic man-machine interface incorporating adaptive pattern recognition based control system |
US5355435A (en) | 1992-05-18 | 1994-10-11 | New Mexico State University Technology Transfer Corp. | Asynchronous temporal neural processing element |
US5673367A (en) | 1992-10-01 | 1997-09-30 | Buckley; Theresa M. | Method for neural network control of motion using real-time environmental feedback |
FI92361C (fi) | 1992-12-14 | 1994-10-25 | Nokia Telecommunications Oy | Menetelmä kehysvälitysverkon ylikuormitustilanteiden hallitsemiseksi sekä kehysvälitysverkon solmu |
RU2108612C1 (ru) | 1994-09-14 | 1998-04-10 | Круглов Сергей Петрович | Адаптивная система управления с идентификатором и неявной эталонной моделью |
US5845271A (en) | 1996-01-26 | 1998-12-01 | Thaler; Stephen L. | Non-algorithmically implemented artificial neural networks and components thereof |
US6009418A (en) | 1996-05-02 | 1999-12-28 | Cooper; David L. | Method and apparatus for neural networking using semantic attractor architecture |
EP0988585A4 (en) | 1997-06-11 | 2007-12-26 | Univ Southern California | DYNAMIC SYNAPSE FOR PROCESSING SIGNALS IN NEURONAL NETWORKS |
JP4131340B2 (ja) | 1997-07-11 | 2008-08-13 | ソニー株式会社 | 制御装置、制御方法、および受信装置 |
US6458157B1 (en) | 1997-08-04 | 2002-10-01 | Suaning Gregg Joergen | Retinal stimulator |
US6581046B1 (en) | 1997-10-10 | 2003-06-17 | Yeda Research And Development Co. Ltd. | Neuronal phase-locked loops |
US6545705B1 (en) | 1998-04-10 | 2003-04-08 | Lynx System Developers, Inc. | Camera with object recognition/data output |
US7526466B2 (en) | 1998-05-28 | 2009-04-28 | Qps Tech Limited Liability Company | Method and system for analysis of intended meaning of natural language |
US6546291B2 (en) | 2000-02-16 | 2003-04-08 | Massachusetts Eye & Ear Infirmary | Balance prosthesis |
US7054850B2 (en) | 2000-06-16 | 2006-05-30 | Canon Kabushiki Kaisha | Apparatus and method for detecting or recognizing pattern by employing a plurality of feature detecting elements |
US6910060B2 (en) | 2001-05-21 | 2005-06-21 | Computational Sensor Corp. | Spatio-temporal filter and method |
US7369686B2 (en) | 2001-08-23 | 2008-05-06 | Sony Corporation | Robot apparatus, face recognition method, and face recognition apparatus |
US8156057B2 (en) * | 2003-03-27 | 2012-04-10 | Knowm Tech, Llc | Adaptive neural network utilizing nanotechnology-based components |
US7426501B2 (en) | 2003-07-18 | 2008-09-16 | Knowntech, Llc | Nanotechnology neural network methods and systems |
US20060161218A1 (en) | 2003-11-26 | 2006-07-20 | Wicab, Inc. | Systems and methods for treating traumatic brain injury |
JP4780921B2 (ja) | 2004-03-17 | 2011-09-28 | キヤノン株式会社 | 並列パルス信号処理装置、及びその制御方法 |
JP2005352900A (ja) | 2004-06-11 | 2005-12-22 | Canon Inc | 情報処理装置、情報処理方法、パターン認識装置、及びパターン認識方法 |
US20060224533A1 (en) | 2005-03-14 | 2006-10-05 | Thaler Stephen L | Neural network development and data analysis tool |
US7420396B2 (en) | 2005-06-17 | 2008-09-02 | Knowmtech, Llc | Universal logic gate utilizing nanotechnology |
US7747070B2 (en) | 2005-08-31 | 2010-06-29 | Microsoft Corporation | Training convolutional neural networks on graphics processing units |
WO2007071070A1 (en) | 2005-12-23 | 2007-06-28 | Universite De Sherbrooke | Spatio-temporal pattern recognition using a spiking neural network and processing thereof on a portable and/or distributed computer |
US7849030B2 (en) | 2006-05-31 | 2010-12-07 | Hartford Fire Insurance Company | Method and system for classifying documents |
RU2406105C2 (ru) | 2006-06-13 | 2010-12-10 | Филипп Геннадьевич Нестерук | Способ обработки информации в нейронных сетях |
JP4087423B2 (ja) | 2006-10-17 | 2008-05-21 | 京セラミタ株式会社 | 携帯通信装置 |
US8103602B2 (en) | 2006-12-29 | 2012-01-24 | Neurosciences Research Foundation, Inc. | Solving the distal reward problem through linkage of STDP and dopamine signaling |
RU2459254C2 (ru) | 2007-04-27 | 2012-08-20 | Сименс Акциенгезелльшафт | Способ компьютеризованного обучения одной или более нейронных сетей |
JPWO2009150920A1 (ja) | 2008-06-09 | 2011-11-10 | 株式会社パイオラックスメディカルデバイス | 管状器官の治療具 |
US20100084472A1 (en) | 2008-10-02 | 2010-04-08 | Silverbrook Research Pty Ltd | Method of distinguishing first coding pattern from second coding pattern |
US8160354B2 (en) | 2008-12-26 | 2012-04-17 | Five Apes, Inc. | Multi-stage image pattern recognizer |
US8250010B2 (en) * | 2009-05-21 | 2012-08-21 | International Business Machines Corporation | Electronic learning synapse with spike-timing dependent plasticity using unipolar memory-switching elements |
US8447714B2 (en) * | 2009-05-21 | 2013-05-21 | International Business Machines Corporation | System for electronic learning synapse with spike-timing dependent plasticity using phase change memory |
US8200593B2 (en) | 2009-07-20 | 2012-06-12 | Corticaldb Inc | Method for efficiently simulating the information processing in cells and tissues of the nervous system with a temporal series compressed encoding neural network |
US8429107B2 (en) | 2009-11-04 | 2013-04-23 | International Business Machines Corporation | System for address-event-representation network simulation |
US8275727B2 (en) | 2009-11-13 | 2012-09-25 | International Business Machines Corporation | Hardware analog-digital neural networks |
US8311965B2 (en) * | 2009-11-18 | 2012-11-13 | International Business Machines Corporation | Area efficient neuromorphic circuits using field effect transistors (FET) and variable resistance material |
US9405975B2 (en) | 2010-03-26 | 2016-08-02 | Brain Corporation | Apparatus and methods for pulse-code invariant object recognition |
US9122994B2 (en) | 2010-03-26 | 2015-09-01 | Brain Corporation | Apparatus and methods for temporally proximate object recognition |
US8467623B2 (en) | 2010-03-26 | 2013-06-18 | Brain Corporation | Invariant pulse latency coding systems and methods systems and methods |
US9311593B2 (en) | 2010-03-26 | 2016-04-12 | Brain Corporation | Apparatus and methods for polychronous encoding and multiplexing in neuronal prosthetic devices |
US9129220B2 (en) * | 2010-07-07 | 2015-09-08 | Qualcomm Incorporated | Methods and systems for digital neural processing with discrete-level synapes and probabilistic STDP |
US8433665B2 (en) | 2010-07-07 | 2013-04-30 | Qualcomm Incorporated | Methods and systems for three-memristor synapse with STDP and dopamine signaling |
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 |
US20120084240A1 (en) * | 2010-09-30 | 2012-04-05 | International Business Machines Corporation | Phase change memory synaptronic circuit for spiking computation, association and recall |
US8510239B2 (en) | 2010-10-29 | 2013-08-13 | International Business Machines Corporation | Compact cognitive synaptic computing circuits with crossbar arrays spatially in a staggered pattern |
CN102226740B (zh) | 2011-04-18 | 2013-05-22 | 中国计量学院 | 基于外加周期信号控制随机共振的轴承故障检测方法 |
US9147156B2 (en) | 2011-09-21 | 2015-09-29 | Qualcomm Technologies Inc. | Apparatus and methods for synaptic update in a pulse-coded network |
US9104973B2 (en) | 2011-09-21 | 2015-08-11 | Qualcomm Technologies Inc. | Elementary network description for neuromorphic systems with plurality of doublets wherein doublet events rules are executed in parallel |
US8725662B2 (en) | 2011-09-21 | 2014-05-13 | Brain Corporation | Apparatus and method for partial evaluation of synaptic updates based on system events |
US8712941B2 (en) | 2011-09-21 | 2014-04-29 | Brain Corporation | Elementary network description for efficient link between neuronal models and neuromorphic systems |
US8719199B2 (en) | 2011-09-21 | 2014-05-06 | Brain Corporation | Systems and methods for providing a neural network having an elementary network description for efficient implementation of event-triggered plasticity rules |
US8725658B2 (en) | 2011-09-21 | 2014-05-13 | Brain Corporation | Elementary network description for efficient memory management in neuromorphic systems |
US9117176B2 (en) | 2011-09-21 | 2015-08-25 | Qualcomm Technologies Inc. | Round-trip engineering apparatus and methods for neural networks |
US10210452B2 (en) | 2011-09-21 | 2019-02-19 | Qualcomm Incorporated | High level neuromorphic network description apparatus and methods |
US9015092B2 (en) | 2012-06-04 | 2015-04-21 | Brain Corporation | Dynamically reconfigurable stochastic learning apparatus and methods |
US20130151449A1 (en) | 2011-12-07 | 2013-06-13 | Filip Ponulak | Apparatus and methods for implementing learning for analog and spiking signals in artificial neural networks |
US9146546B2 (en) | 2012-06-04 | 2015-09-29 | Brain Corporation | Systems and apparatus for implementing task-specific learning using spiking neurons |
US20130325774A1 (en) | 2012-06-04 | 2013-12-05 | Brain Corporation | Learning stochastic apparatus and methods |
US8712939B2 (en) | 2011-09-21 | 2014-04-29 | Brain Corporation | Tag-based apparatus and methods for neural networks |
US9104186B2 (en) | 2012-06-04 | 2015-08-11 | Brain Corporation | Stochastic apparatus and methods for implementing generalized learning rules |
US9098811B2 (en) | 2012-06-04 | 2015-08-04 | Brain Corporation | Spiking neuron network apparatus and methods |
US9129221B2 (en) | 2012-05-07 | 2015-09-08 | Brain Corporation | Spiking neural network feedback apparatus and methods |
US20130297539A1 (en) | 2012-05-07 | 2013-11-07 | Filip Piekniewski | Spiking neural network object recognition apparatus and methods |
US9224090B2 (en) | 2012-05-07 | 2015-12-29 | Brain Corporation | Sensory input processing apparatus in a spiking neural network |
US9256215B2 (en) | 2012-07-27 | 2016-02-09 | Brain Corporation | Apparatus and methods for generalized state-dependent learning in spiking neuron networks |
US9256823B2 (en) | 2012-07-27 | 2016-02-09 | Qualcomm Technologies Inc. | Apparatus and methods for efficient updates in spiking neuron network |
-
2012
- 2012-08-17 US US13/588,774 patent/US9460387B2/en not_active Expired - Fee Related
-
2013
- 2013-08-16 CN CN201380043294.XA patent/CN104685516B/zh active Active
- 2013-08-16 WO PCT/US2013/055381 patent/WO2014028855A1/en active Application Filing
- 2013-08-16 EP EP13829473.1A patent/EP2885745A4/en not_active Ceased
- 2013-08-16 JP JP2015527661A patent/JP6169697B2/ja active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001051968A (ja) * | 1999-08-05 | 2001-02-23 | Fuji Xerox Co Ltd | ニューラルネットワーク構築方法及びニューラルネットワーク処理装置 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20230004899A (ko) * | 2015-10-23 | 2023-01-06 | 가부시키가이샤 한도오따이 에네루기 켄큐쇼 | 모듈 및 전자 기기 |
KR102609997B1 (ko) | 2015-10-23 | 2023-12-06 | 가부시키가이샤 한도오따이 에네루기 켄큐쇼 | 모듈 및 전자 기기 |
US11893474B2 (en) | 2015-10-23 | 2024-02-06 | Semiconductor Energy Laboratory Co., Ltd. | Semiconductor device and electronic device |
JP2022538694A (ja) * | 2019-07-02 | 2022-09-05 | 深▲セン▼▲憶▼▲海▼原▲識▼科技有限公司 | 脳型知能とコグニティブコンピューティングに使用されるスパイキングニューラルネットワーク演算システムおよび方法 |
JP7322273B2 (ja) | 2019-07-02 | 2023-08-07 | 深▲セン▼▲憶▼▲海▼原▲識▼科技有限公司 | 脳型知能とコグニティブコンピューティングに使用されるスパイキングニューラルネットワーク演算システムおよび方法 |
Also Published As
Publication number | Publication date |
---|---|
US20140052679A1 (en) | 2014-02-20 |
EP2885745A4 (en) | 2017-05-17 |
CN104685516A (zh) | 2015-06-03 |
EP2885745A1 (en) | 2015-06-24 |
CN104685516B (zh) | 2018-03-30 |
WO2014028855A1 (en) | 2014-02-20 |
US9460387B2 (en) | 2016-10-04 |
JP6169697B2 (ja) | 2017-07-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6169697B2 (ja) | スパイキングニューロンネットワーク学習のための装置および方法 | |
US9412064B2 (en) | Event-based communication in spiking neuron networks communicating a neural activity payload with an efficacy update | |
US9311596B2 (en) | Methods for memory management in parallel networks | |
US9092738B2 (en) | Apparatus and methods for event-triggered updates in parallel networks | |
US8712941B2 (en) | Elementary network description for efficient link between neuronal models and neuromorphic systems | |
US9104973B2 (en) | Elementary network description for neuromorphic systems with plurality of doublets wherein doublet events rules are executed in parallel | |
US11481621B2 (en) | Unsupervised, supervised and reinforced learning via spiking computation | |
US10891544B2 (en) | Event-driven universal neural network circuit | |
US10282661B2 (en) | Multi-modal neural network for universal, online learning | |
US11070623B2 (en) | Methods and apparatus for iterative nonspecific distributed runtime architecture and its application to cloud intelligence | |
Yu | Concurrent Execution of Spiking Neuron Networks on Neuromorphic Hardware | |
Le Martelot et al. | Exploiting natural asynchrony and local knowledge within systemic computation to enable generic neural structures |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160719 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20160719 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20161006 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20161117 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20161117 |
|
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20161130 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20170110 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170410 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20170530 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20170628 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6169697 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |