TW201322150A - 用於在脈波編碼的網路中的突觸更新的裝置和方法 - Google Patents

用於在脈波編碼的網路中的突觸更新的裝置和方法 Download PDF

Info

Publication number
TW201322150A
TW201322150A TW101134775A TW101134775A TW201322150A TW 201322150 A TW201322150 A TW 201322150A TW 101134775 A TW101134775 A TW 101134775A TW 101134775 A TW101134775 A TW 101134775A TW 201322150 A TW201322150 A TW 201322150A
Authority
TW
Taiwan
Prior art keywords
synaptic
post
channel
pulse
update
Prior art date
Application number
TW101134775A
Other languages
English (en)
Other versions
TWI503761B (zh
Inventor
Eugene M Izhikevich
Filip Piekniewski
Jayram Moorkanikara Nageswaran
Original Assignee
Brain Corp
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 Brain Corp filed Critical Brain Corp
Publication of TW201322150A publication Critical patent/TW201322150A/zh
Application granted granted Critical
Publication of TWI503761B publication Critical patent/TWI503761B/zh

Links

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Molecular Biology (AREA)
  • Artificial Intelligence (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Electrotherapy Devices (AREA)
  • Computer And Data Communications (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本發明提供一種用於在諸如尖脈衝神經網路之網路中的有效突觸更新的裝置及方法。在一個實施例中,回應於由後突觸單元產生後突觸脈波,延遲後突觸更新直到由單元接收後續前突觸脈波。首先執行前突觸更新,然後執行後突觸更新,從而確保突觸連接狀態是最新的。結合系統「沖洗」事件使用延遲更新機制,以確保精確的網路操作,並防止各種前突觸及後突觸單元衝動頻率下的資訊丟失。大型網路分區機制用於具有網路處理裝置的一個變體中以賦能在受限制的功能嵌入式硬體環境中處理網路訊號。

Description

用於在脈波編碼的網路中的突觸更新的裝置及方法 相關申請案之優先權及交叉引用
本申請案主張以相同標題於2011年9月21日提出申請之美國專利申請案第13/239,255號的優先權,該申請案以引用之方式整體併入本文。本申請案係關於共同擁有的於2011年9月21日提出申請的標題為「APPARATUS AND METHODS FOR PARTIAL EVALUATION OF SYNAPTIC UPDATES BASED ON SYSTEM EVENTS」之美國專利申請案第13/239,259號、於2011年9月21日提出申請的標題為「ELEMENTARY NETWORK DESCRIPTION FOR NEUROMORPHIC SYSTEMS」之美國專利申請案第13/239,123號、於2011年9月21日提出申請的標題為「ELEMENTARY NETWORK DESCRIPTION FOR EFFICIENT LINK BETWEEN NEURONAL MODELS AND NEUROMORPHIC SYSTEMS」之美國專利申請案第13/239,148號、於2011年9月21日提出申請的標題為「ELEMENTARY NETWORK DESCRIPTION FOR EFFICIENT MEMORY MANAGEMENT IN NEUROMORPHIC SYSTEMS」之美國專利申請案第13/239,155號、於2011年9月21日提出申請的標題為「ELEMENTARY NETWORK DESCRIPTION FOR EFFICIENT IMPLEMENTATION OF EVENT-TRIGGERED PLASTICITY RULES IN NEUROMORPHIC SYSTEMS」之美國專利申請案第13/239,163號,上述申請案之每一者以引用之方式整體併入本文。
本發明大體係關於人工神經網路,且更特定地在一個示例性態樣中係關於用於尖脈衝神經網路之有效操作的電腦裝置及方法。
人工尖脈衝神經網路頻繁用於獲得對生物神經網路的理解,以及用於解決人工智慧問題。此等網路通常採用脈波編碼的機制,此機制依賴於使用脈波之時序的編碼資訊。此類脈波(亦被稱為「尖脈衝」或「脈衝」)為持續時間短的(通常為大約1-2 ms)離散暫態事件且尤其用於編碼資訊。此類編碼之若干示例性實施例係描述在共同擁有且共同待決的標題為「APPARATUS AND METHODS FOR PULSE-CODE INVARIANT OBJECT RECOGNITION」的美國專利申請案第13/152,084號以及標題為「SENSORY INPUT PROCESSING APPARATUS AND METHODS」的美國專利申請案第13/152,119號中,該等申請案之每一申請案以引用之方式整體併入本文。
典型的人工尖脈衝神經網路包含複數個單元(或節點),該等單元(或節點)對應於生物神經網路中的神經 元。單個單元可經由連接(亦被稱為通訊通道或突觸連接)連接至許多其他單元。提供輸入至任一給定單元的彼等單元通常被稱為前突觸單元,而自突觸連接接收輸入的單元被稱為後突觸單元。
單元至單元連接中之每一者尤其分配有連接強度(亦被稱為突觸權重)。在脈波編碼的網路之操作期間,使用所謂的尖脈衝時序依賴的可塑性(STDP)動態地調整突觸權重以實施網路學習及其他一些功能。通常而言,每一單元可接收來自大量(高達10000)具有相關的前突觸權重之前突觸單元的輸入,並經由後突觸連接(具有相關的後突觸權重)提供到類似數目的下游單元的輸出。此類網路構形因此包含數百萬個連接(通道),故需要為每一單元存取、修改及儲存大量突觸變數以處理經由單元的傳入及傳出脈波中之每一脈波。
存在用於自突觸記憶體存取突觸變數的各種技術。通常使用以下兩種方法將突觸權重儲存在突觸記憶體中:(i)以後突觸方式編入索引:亦即,基於目的地單元(例如後突觸單元)的識別(ID);及(ii)以前突觸方式編入索引:亦即,基於源單元(例如前突觸單元)的識別。
當根據前突觸索引儲存突觸資料時,則基於後突觸索引的存取係低效的。亦即,自m個前突觸單元接收輸入並經由n個後突觸通道提供n個輸出的單元需要一權重之方塊的n次讀取及n次寫入(分散的存取)來處理前突觸輸入,並需要m權重之方塊的一次讀取、一次寫入 來處理後突觸輸出。類似地,基於後突觸索引的儲存方案引起m權重之方塊的一次讀取、一次寫入以處理前突觸輸入,並引起一權重之方塊的n次讀取及n次寫入以處理後突觸輸出,因為一個或另一查找將需要突觸記憶體之非鄰接區的分散橫貫。
一種實施前突觸權重及後突觸權重兩者的有效記憶體存取的方法係由Jin等人提出,且該方法被稱為「具有相關的延遲事件驅動的模型之前突觸敏感方案」。在Jin之模型中,在前突觸尖脈衝事件期間觸發突觸變數修改(在後突觸尖脈衝事件期間無突觸變數存取),且因此僅基於前突觸索引儲存突觸資訊(參見Jin,X.、Rast,A.、F.Galluppi,F.、S.Davies.,S.及Furber,S.(2010)「Implementing Spike-Timing-Dependent Plasticity on SpiNNaker Neuromorphic Hardware」,WCCI 2010,IEEE World Congress on Computational Intelligence),該文獻以引用之方式整體併入本文。另外,延遲突觸變數之實際更新直到某一時間窗口期滿。
儘管如此,此方法具有若干侷限性。對於100 ms之典型的STDP窗口,用於Jin等人(2010)的方案的前突觸神經元之對應的衝動(firing)頻率需大於10 Hz才能正常工作。此外,Jin等人(2010)的延遲方法未提供用於突觸權重的即時更新,因為該方法在修改突觸權重之前等待時間窗口期滿,進而不利地影響由單元之後突觸脈波產生之準確性。
現有的突觸更新方法不提供對大範疇的尖脈衝神經網路有效的突觸記憶體存取機制。此等方法亦不為不同種類的學習規則提供最新的突觸變數,且該等方法受限於前突觸單元及後突觸單元的衝動頻率。
此外,現有的突觸權重更新方案不適用於諸如最接近的相鄰模型、全部到全部的模型等不同的可塑性模型。參見關於諸如STDP、逆STDP及「凸出」STDP之各種可塑性規則的Izhikevich及Desai 2003,標題為「Relating STDP to BCM」,Neural Computation 15,1511-1523,該文獻以引用之方式整體併入本文。亦參見Abbott L.F.及Nelson S.B.(2000),「Synaptic plasticity:taming the beast」,Nature Neuroscience,3,1178-1183,該文獻亦以引用之方式整體併入本文。
因此,存在對可適用於許多不同類型之可塑性模型及不同的可塑性規則的更有效、及時且可擴展的突觸變數更新機制的突出需求。
在本揭示案之第一態樣中,揭示電腦化尖脈衝網路裝置。在一個實施例中,裝置包括經由通訊通道連接至後突觸單元的前突觸單元。
在本揭示案之第二態樣中,揭示更新通訊通道之方法。在一個實施例中,更新基於經由通道傳遞的第一與第二觸發脈波,且該方法包括以下步驟:基於在第一觸 發脈波及與後突觸單元相關的最早後續脈波之間的第一間隔提供第一更新;及基於在第二觸發脈波及與後突觸單元相關的最近脈波之間的第二間隔提供第二更新。
在一個變體中,回應於第二觸發脈波評估第一更新及第二更新;且第一更新先於第二更新。
在另一變體中,該方法進一步包括以下步驟:在第二觸發脈波之前,儲存與複數個輸出脈波中之至少一個輸出脈波有關的資訊,該複數個輸出脈波由後突觸單元於第一時間產生;及在第一時間之前,儲存與在後突觸單元於第二時間接收的第二輸入脈波有關的資訊。
在又一變體中,該方法進一步包括以下步驟:至少部分地基於更新修改與後突觸單元相關之狀態;在第一更新之後且在修改狀態之步驟之前執行第二更新。
在本揭示案之第三態樣中,揭示在電腦化尖脈衝神經元網路中操作通訊通道的電腦實施的方法。在一個實施例中,該方法包括以下步驟:基於在當前觸發及與耦接至通道的後突觸單元相關的最近先行脈波之間的間隔修改通道;及使通道在當前觸發與緊接的先行觸發之間保持實質上未經修改。經由通道傳遞緊接的先行觸發及當前觸發。
在一個變體中,該方法進一步包括以下步驟:在修改通道之後至少部分地基於當前觸發調整後突觸單元之狀態。修改通道之步驟包括以下步驟:決定經更新的通道權重;及調整狀態之步驟使用經更新的通道權重。
在本揭示案之第四態樣中,揭示在神經元網路中操作將觸發脈波從前突觸單元傳送到後突觸單元的通訊通道之電腦實施的方法。在一個實施例中,該方法包括以下步驟:基於在觸發及與耦接至通道的後突觸單元相關的最早後續脈波之間的第一間隔執行第一更新;及在執行第一更新之後,基於在觸發及與後突觸單元相關的最近先行脈波之間的第二間隔執行第二更新。
在一個變體中,該方法進一步包括以下步驟:至少部分地基於當前觸發調整後突觸單元之狀態;第二間隔基於當前觸發。回應於觸發評估第一更新及第二更新兩者。
在本揭示案之第五態樣中,揭示減少與通道更新相關之記憶體匯流排額外負擔的方法。在一個實施例中,通道更新供包含耦接至通道的至少一個節點的電腦化網路裝置使用,且該方法包括以下步驟:基於在當前觸發及與至少一個節點相關的最近先行脈波之間的間隔更新通道;及使通道在當前觸發及緊接的先行觸發之間保持實質上未經修改。
在一個變體中,經由通道傳遞當前觸發及最近先行觸發;且經由記憶體匯流排之單個異動實現更新,單個異動實現減少記憶體匯流排額外負擔。
在本揭示案之第六態樣中,揭示在電腦化尖脈衝神經元網路中更新耦接至前突觸單元的第一通道及第二通道之方法。在一個實施例中,該方法包括以下步驟:基於在第一觸發及與耦接至第一通道的第一後突觸單元相關 的第一最早後續脈波之間的第一間隔執行第一更新;基於在第二觸發脈波及與第一後突觸單元相關的第一最近先行脈波之間的第二間隔執行第二更新;基於在第一觸發及與耦接至第二通道的第二後突觸單元相關的第二最早後續脈波之間的第三間隔執行第三更新;及基於在第二觸發脈波及與第二後突觸單元相關的第二最近先行脈波之間的第四間隔執行第四更新。
在本揭示案之第七態樣中,揭示電腦化神經元系統。在一個實施例中,系統包括尖脈衝神經元網路,以及至少部分地由神經元網路控制的裝置。
在本揭示案之第八態樣中,揭示突觸記憶體架構。
在本揭示案之第九態樣中,揭示電腦可讀取裝置。在一個實施例中,裝置包括具有至少一個電腦程式儲存於上的儲存媒體,該至少一個程式經配置以在被執行時實施尖脈衝神經元網路操作。
在第十態樣中,揭示實施尤其對突觸更新機制有用的突觸記憶體匯流排異動的方法。
在第十一態樣中,揭示電腦化尖脈衝網路裝置。在一個實施例中,裝置包括:儲存裝置;及經由通訊通道與後突觸單元通訊的前突觸單元。在一個變體中,裝置經配置以藉由以下步驟操作:將與複數個脈波有關之資訊儲存在儲存裝置中,由後突觸單元以觸發脈波與系統事件之間的複數個產生時間產生該複數個輸出脈波;及基於在觸發脈波與複數個產生時間中之每一產生時間之間 的複數個間隔評估複數個更新。系統事件賦能自儲存裝置移除與複數個脈波有關之資訊的至少一部分。
在另一變體中,藉由前突觸單元產生觸發脈波,且經由通道傳遞該觸發脈波。
在第十二態樣中,揭示在電腦化尖脈衝神經元網路中操作耦接至後突觸單元的通訊通道之方法。在一個實施例中,該方法包括以下步驟:基於與後突觸單元相關之第一組脈波修改通道,該第一組脈波發生在經由通道傳遞的先行觸發與系統事件之間;及使通道在系統事件與先行觸發之間保持實質上未修改。
在一個變體中,該方法進一步包括以下步驟:將與第一組脈波及第二組脈波有關之資訊儲存於儲存裝置之共享記憶體區塊中,該第二組脈波與另一個後突觸單元相關。由與後突觸單元處於資料通訊的網路實體產生系統事件且該系統事件至少部分地基於儲存於共享記憶體區塊中之資訊之一部分,該部分與第一組脈波中之至少一個脈波有關。
在另一變體中,該方法進一步包括以下步驟:將與第一組脈波有關之資訊儲存於移位暫存器中。
在第十三態樣中,揭示操作尖脈衝網路之節點之方法。在一個實施例中,該方法包括以下步驟:回應於系統事件,將在第一觸發及由節點產生之複數個脈波之間的複數個間隔儲存在儲存設備中。在系統事件之前經由通道將第一觸發傳遞至節點。
在一個變體中,先於系統事件產生複數個脈波中之每一脈波;且基於與複數個脈波有關之資訊配置複數個間隔。
在另一變體中,該方法進一步包括以下步驟:至少部分地基於複數個間隔執行通道之第一更新。
在又一變體中,該方法進一步包括以下步驟:基於複數個間隔之第一間隔執行通道之第一更新;及在執行第一更新後,基於第二觸發及由節點產生之複數個脈波中之最近脈波之間的第二間隔執行通道之第二更新。第一更新與第二更新共同決定經更新的通道權重;及在系統事件之後經由通道傳遞第二觸發。
在第十四態樣中,揭示最佳化電腦化網路裝置之共享儲存器之操作的方法。在一個實施例中,裝置包括耦接至通道的至少一個節點,且方法包括以下步驟:將與和至少一個節點相關的複數個脈波有關的資訊儲存在共享儲存設備中;及至少藉由複數個更新回應於系統事件而更新通道,該複數個更新基於經由通道傳遞的觸發與複數個脈波之間的複數個間隔。通道之更新賦能自共享儲存設備移除資訊之至少一部分。
在一個變體中,該方法進一步包括以下步驟:將與和另一個節點相關的脈波之群組有關之資訊儲存在共享儲存設備中;其中:至少一個節點之特徵在於第一輸出脈波速率;另一個節點之特徵在於第二輸出脈波速率,且第二輸出脈波速率低於第一輸出脈波速率。在另一變體 中,共享儲存設備包括:第一記憶體部分,該第一記憶體部分經配置以儲存與和至少一個節點相關之複數個脈波有關的資料;及至少一第二記憶體部分,該第二記憶體部分經配置以儲存與和另一個節點相關之脈波之群組有關的資料。第二部分小於第一部分。
參閱下文給出之示例性實施例之隨附圖式與詳細描述,一般技術者將即刻認識到本揭示案之其他特徵及優點。
現將參閱圖式詳細描述本揭示案之實施例,提供該等實施例作為說明性實例以使得熟習此項技術者能夠實踐本揭示案之各個態樣。值得注意的是,下文諸圖及實例並非意欲將本揭示案之範疇侷限於單個實施例,而是經由互換或組合所描述或圖示之一些或所有元件之方式的其他實施例係可能的。只要方便,即在所有圖式中使用相同元件符號代表相同或相似部分。
在可使用已知組件部分地或全部地實施此等實施例之某些元件處,僅描述對理解本揭示案所必需的此類已知組件之彼等部分,且省略對此類已知組件之其他部分的詳細描述以免混淆本揭示案之各個態樣。
在本說明書中,圖示單一組件的實施例不應被認為是侷限性的;相反地,除非在本文中另有明確說明,否則本揭示案意欲涵蓋包括複數個相同組件的其他實施例, 且反之亦然。
此外,本揭示案經由說明之方式涵蓋本文提及之組件之目前及未來已知的等效物。
如本文所使用,術語「匯流排」大體意欲指示用於存取突觸及神經元記憶體之所有類型的互連或通訊架構。「匯流排」可為光學、無線、紅外或另一類型之通訊媒體。匯流排之精確拓撲可為(例如)標準「匯流排」、階層式匯流排、晶片上網路、位址事件表示(AER)連接或用於存取之其他類型之通訊拓樸(例如,基於脈波的系統中之不同記憶體)。
如本文所使用,術語「電腦」、「計算設備」及「電腦化設備」包括(但不限於)個人電腦(PCs)及微型電腦,無論是桌上型電腦、膝上型電腦,或者大型電腦、工作站、伺服器、個人數位助理(PDAs)、手持型電腦、嵌入式電腦、可程式化邏輯設備、個人通訊器、平板電腦、攜帶型導航輔助設備、有J2ME功能的設備、蜂巢式電話、智慧型手機、個人整合通訊或娛樂設備,或是能夠執行指令集合及處理傳入資料訊號的幾乎任一其他設備皆包括。
如本文所使用,術語「電腦程式」或「軟體」意欲包括任一序列或者執行功能的人或機器可認知的步驟。此類程式可提供於幾乎任一程式設計語言或環境以及物件導向式環境中,該等程式設計語言或環境包括(例如)C/C++、C#、Fortran、COBOL、MATLABTM、PASCAL、 Python、組合語言、標示語言(例如,HTML、SGML、XML、VoXML)及類似者,該等物件導向式環境諸如一般物件請求代理架構(CORBA)、JavaTM(包括J2ME、Java Bean等)、二進位執行環境(例如,BREW)、Java Bytecode、低階虛擬機(LLVM)及類似者。
如本文所使用,術語「記憶體」包括任一類型之積體電路或適合於儲存包括(但不限於)ROM、PROM、EEPROM、DRAM、SDRAM、DDR/2 SDRAM、EDO/FPMS、RLDRAM、SRAM、「快閃」記憶體(例如,NAND/NOR)、憶阻器記憶體及PSRAM之其他儲存設備。
如本文所使用,術語「微處理器」及「數位處理器」大體意欲包括所有類型之數位處理設備,該等數位處理設備包括(但不限於)數位訊號處理器(DSPs)、精簡指令集電腦(RISC)、通用(CISC)處理器、微處理器、閘陣列(例如,FPGAs)、PLD、可重配置電腦構造(RCFs)、陣列處理器、串流處理器(例如,GPU)、安全微處理器及特殊應用積體電路(ASICs)。此類數位處理器可包含在單個整體IC晶粒上,或分佈在多個組件上。
如本文所使用,術語「脈波」、「尖脈衝」、「尖脈衝叢發」及「脈波列」大體意欲表示(但不限於)任一類型之脈波訊號,例如,諸如振幅、強度、相位或頻率之訊號的一些特徵自基線值至較高或較低值且隨後快速返回至基線值或其他值的快速變化,且術語「脈波」、「尖脈衝」、「尖脈衝叢發」及「脈波列」可指單個尖脈波、尖 脈衝叢發、電子脈波、電壓脈波、電流脈波、脈波及/或脈波叢發之軟體表示、脈波之等待時間或時序之軟體表示,以及與脈波傳輸系統或機制相關之任一其他脈波或脈波類型。
如本文所使用,術語「脈波編碼的」大體意欲將資訊編碼指示為(但不限於)沿單個脈波通道的脈波(或脈波等待時間)或沿多個通道的相關脈波等待時間之圖案。
如本文所使用,術語「脈波輸送」、「尖脈衝輸送」及「脈波應用程式」大體意欲指示(但不限於)回應於來自發送單元之脈波經由連接將與連接(例如,連接到突觸通道)有關之連接資訊傳送至目的地單元。
如本文所使用,術語「接收脈波」及「送達脈波」大體意欲指示(但不限於)指出與從一個實體到另一實體之資訊傳輸相關之觸發事件的實體訊號(電壓、燈光或電流)或邏輯觸發(記憶體值)之接收。
如本文所使用,術語「突觸通道」、「連接」、「鏈路」、「傳輸通道」、「延遲線」及「通訊通道」大體意欲指示(但不限於)任何兩個或兩個以上實體(無論是實體的(有線的或無線的)還是邏輯的/虛擬的)之間的鏈路,該鏈路賦能實體之間的資訊交換且該鏈路之特徵在於影響資訊交換的一或更多個變數。
如本文所使用,術語「尖脈衝時序依賴的可塑性」或STDP大體意欲指示(但不限於)活動依賴的學習規則,其中輸入及輸出活動(尖脈衝)之精準時序決定連接權 重之變化速率。
概述
本揭示案在一個突出態樣中提供用於在用於實施突觸可塑性及學習之尖脈衝神經網路中之突觸變數更新期間的有效記憶體存取之裝置及方法。
在一個實施例中,揭示包含多個前突觸單元(或節點)以及儲存設備的電腦化網路裝置,該等前突觸單元(或節點)經由通訊鏈路(突觸連接)連接至後突觸單元(或節點),該儲存設備經配置以儲存與連接有關之資訊。為了實施突觸可塑性及學習,基於(i)由前突觸節點產生且由後突觸節點接收之前突觸脈波(前突觸更新)及(ii)在前突觸脈波之後由後突觸節點產生之後突觸脈波(後突觸更新),更新與突觸連接相關之一或更多個參數。在一個實施例中,延遲後突觸更新直至後突觸節點收到下一個後續前突觸脈波。首先執行前突觸更新,然後執行後突觸更新,從而確保突觸連接狀態是最新的。
在另一實施例中,只要接收到前突觸脈波就僅執行連接更新,同時使連接狀態在鄰近的前突觸脈波之間保持不變。
結合系統「沖洗」事件(亦即,經配置以致使移除(沖洗)與一些後突觸脈波有關之資料之一部分的事件)使用延遲更新機制以確保網路精確操作,並防止各種前突觸及後突觸單元衝動頻率下的資訊丟失。大型網路分區機制用於具有網路處理裝置的一個實施例中以賦能在有 限功能嵌入式硬體環境中處理網路訊號。
使用延遲的連接更新有利地減少記憶體存取破片並改良記憶體頻寬利用。此等改良可獲得額外脈波(增加的脈波速率)、額外節點(較高的網路密度)之處理,或用於操作網路之較簡單及較少成本之電腦化硬體之使用。
示例性實施例之詳細描述
現提供本揭示案之裝置及方法之各個實施例及變體之詳細描述。本揭示案之實施例可(例如)佈署在提供於義肢、機器人設備及專業化視覺系統中之一或更多者之電腦視覺系統之硬體及/或軟件實施中。在一個此類實施中,影像處理系統可包括體現在特殊應用積體電路(「ASIC」)、中央處理單元(CPU)、圖形處理單元(GPU)、數位訊號處理器(DSP)或特殊應用處理器(ASIP)或其他通用多處理器中之處理器,該處理器可經調適或配置用於諸如義肢之嵌入式應用程式中。
示例性網路架構
典型的脈波編碼的人工尖脈衝神經網路(諸如第1A圖中所圖示之網路100)包含對應於生物神經網路中之神經元之複數個單元102、122、132。單個單元102可經由連接108、114(亦被稱為通訊通道或突觸連接)連接至許多其他單元。
每一突觸連接之特徵在於一或更多個突觸變數,該等突觸變數包含一或更多個突觸(通道)權重、通道延遲及後突觸單元識別(亦即,目標單元ID)。突觸權重描 述在兩個單元之間的連接的強度或振幅(尤其影響由彼連接傳輸的脈波之振幅),該強度或振幅在生物學中對應於一個神經元之衝動對另一神經元的影響量。由在第1A圖中之圓圈116指示之突觸變數(亦被稱為突觸節點)類似於允許資訊從一個神經元流通到另一神經元的神經系統之突觸。
使用前饋架構實施第1A圖中所圖示之網路100,其中資訊經由網路自最左側單元(例如,最左側單元102)傳播到最右側單元(例如,最右側單元132),如連接箭頭108、114所指示。在一個變體(未圖示)中,單獨的反饋通道可用於實施反饋機制,諸如描述於共同擁有且共同待決的標題為「APPARATUS AND METHODS FOR PULSE-CODE TEMPORALLY PROXIMATE OBJECT RECOGNITION」的美國專利申請案第13/152,105號中之彼等反饋機制,該申請案以引用之方式整體併入本文。在另一變體中,網路包含實施由網路內某一單元集合提供之反饋機制的重複網路架構。在此類重複網路架構中,連接不但退回到較高層,而且退回到當前層內之單元。熟習該等技術者將領會,本文描述之示例性突觸更新機制適用於幾乎任一類型的脈波編碼的尖脈衝神經網路。
提供輸入到任一給定單元(諸如第1A圖中單元122_3)之單元被稱為前突觸或上游單元(例如,位於單元122左側的單元102_1、102_m),而自單元122_1接 收輸出的單元(例如,位於單元122右側的單元132_1、132_2、132_3)被稱為後突觸或下游單元。成組的單元102{102_1...102_m}、122{122_1...122_k}、132{132_1...32_n}形成單元之連續級聯,以使一個級聯內之任一給定單元(例如,單元122_3)包含來自先行級聯之單元(例如,單元102_1)的後突觸單元,而同時上述的單元122_3包含後續級聯之單元132_3之前突觸單元。
類似地,輸送輸入到單元的連接被稱為彼單元之輸入通道(或前突觸)連接(例如,單元122_3之通道108),而自單元輸送輸出之連接(諸如通道114)被稱為彼單元122_3之輸出通道(或後突觸)連接。如自第1A圖所見,相同連接(例如,通道114)用作單元1223之輸出(後突觸)連接並用作單元132_2之輸入連接。
任一給定單元(例如,單元122_3)可接收來自m個前突觸單元之輸入,且提供到n個下游單元之輸出。在尖脈衝神經網路100之操作期間,只要單元(例如,單元122_3)處理突觸事件(例如,產生輸出脈波),則尤其基於由單元122_3處理的輸入脈波與輸出脈波之間的時序差異使用如下所描述之各種機制動態地調整前突觸連接及後突觸連接之突觸變數。
通常而言,給定網路構形100包含數百萬或數十億個連接,每一連接之特徵在於突觸變數(例如,權重)。因此,此類脈波編碼的網路需要存取、修改及儲存大量突 觸變數(通常為n、m至1000之數百萬至數十億個)以在網路100之每個單元處處理傳入訊號及傳出訊號時實施學習機制。
可使用前突觸索引(如第1A圖之網路實施例所圖示)儲存及定址尖脈衝網路之突觸變數或如下文描述之第1B圖之網路實施例所圖示以後突觸方式為尖脈衝網路之突觸變數編索引。在第1A圖之以前突觸方式編索引的網路中,如第1A圖中虛線矩形120所指示,將對應於自相同前突觸單元(諸如第1A圖中之單元102_1)輸送輸出之突觸連接的突觸變數(由第1A圖中的灰色圓圈指示)儲存於單個以前突觸方式編索引的記憶體方塊中(亦即,(例如)基於發送單元ID)。
在諸如第1B圖的彼網路之以後突觸方式編索引的網路101中,對應於提供輸入至給定單元(諸如第1B圖中之單元132_3)中的突觸連接的突觸變數儲存在單個以後突觸方式編索引的記憶體方塊中(亦即,(例如)基於目標單元ID),如第1B圖中之虛線矩形118所指示。
如上所描述,在第1A圖中由圓圈116所指示之突觸節點類似於真實的生物神經系統之突觸。在一個實施例中,突觸節點經配置以作為如第1C圖中之配置160所圖示之網路的獨立邏輯實體。在此實施例中,突觸節點116耦接於前突觸單元102(經由前突觸通道108)與後突觸單元122(經由脈波輸送路徑110)之間。第1C圖之網路配置160與脊椎動物神經系統之神經元互連結構 非常相似。
在另一實施例中,如第1C圖中之配置162所圖示,節點實體121包含突觸節點116及後突觸單元122。在一個變體中,在電腦化尖脈衝網路中特別有用的是突觸節點包含記憶體位置(例如,暫存器或記憶體單元等)。
在本文中關於第1D圖描述與自前突觸單元至後突觸單元之尖脈衝傳播相關之各個概念。當前突觸單元(例如,第1C圖中之單元102)在時間T pre_fire145處產生(衝動)脈波時,在有限傳播延遲(Tdelay)164後,產生的脈波144在時間Tpre1處到達突觸節點116(或節點實體121)。在一個變體中,延遲164包含與通訊通道108相關之傳導延遲。在另一變體中,延遲164為分配給通訊鏈路108尤其用於控制脈波同步性的值,如(例如)在共同擁有且共同待決的標題為「APPARATUS AND METHODS FOR PULSE-CODE INVARIANT OBJECT RECOGNITION」之美國專利申請案第13/152,084號中所描述,且該申請案在上文以引用之方式併入。
在時間144處到達突觸節點116(或實體122)之脈波被稱為前突觸脈波。在前突觸脈波到達突觸節點116後,在時間T pre1+T delivery處將與突觸節點116相關之突觸變數載入(輸送)至後突觸單元122。在一個變體中,輸送為即時的(Tdelivery=0)。後突觸單元122根據節點動態模型操作,例如在標題為「APPARATUS AND METHODS FOR PULSE-CODE TEMPORALLY PROXIMATE OBJECT RECOGNITION」的在上文被併入的美國專利申請案第13/152,105號中所描述。在接收到前突觸脈波144之後,單元121可在時間Tpost處產生(根據節點模型狀態)後突觸脈波140。在一個變體中,後突觸脈波產生時間Tpost(亦被稱為後突觸單元脈波歷史)內部地儲存(在單元121中)作為單元變數。在另一實施例中,後突觸單元脈波歷史儲存在單元外部的專屬記憶體陣列中。
類似地,單元122在時間Tpre2處接收另一輸入,亦即以類似於在上文描述的前突觸脈波144之輸送的方式處理的前突觸脈波146。前突觸脈波144、146各自的到達時間Tpre1、Tpre2及後突觸脈波140的產生時間Tpost用於使用各種尖脈衝可塑性機制中之任一或更多者更新(調整)節點116之突觸變數或狀態。在本文中關於第1D圖圖示及描述對脈波編碼的網路100中之模型化學習有用的一個此類機制之實施例。尖脈衝時序依賴的可塑性(STDP)方法150使用脈波時序資訊以調整單元至單元連接之突觸變數(例如,權重)。描述用於第1A圖之前突觸單元102_1與後突觸單元122_3之間的單個突觸連接108(特徵在於(例如)第1A圖之突觸權重116)的第1D圖之STDP方法。基於各自的後突觸單元(例如,單元121)與前突觸單元(例如,單元102)之間的衝動之時序,將類似機制應用於第1A圖中所圖示之每隔一個連接。在一個實施例中執行第1D圖之STDP調整如 下:(i)在由單元122_3接收前突觸脈波144時,儲存到達時間T pre1;及(ii)在單元隨後產生後突觸脈波140時,計算前-後窗口(對應於Tpost與Tpre1之間的時間間隔148)。在第1D圖之實施例中,前-後窗口148為負,如△t=rpre1-Tpost且Tpost>Tpre1。經由具有相關的後突觸變數(諸如第1B圖中的通道群組118之變數)之後突觸通道114將後突觸脈波140輸出至下游單元132。
在單元隨後接收另一前突觸脈波146(由相同的單元102_1產生)時,計算對應於Tpost與Tpre2之間的時間間隔142之後-前窗口。在第1D圖之實施例中,後-前窗口142為正,如△t=Tpre2-Tpost且Tpre2>Tpost。相應地,在收到前突觸脈波(例如,脈波146)後所使用的可塑性規則被稱為後-前突觸STDP規則(或被稱為「後-前規則」),且該可塑性規則使用後-前窗口142。在後突觸脈波140產生之後所使用的可塑性規則使用時間間隔148,且該可塑性規則被稱為前-後突觸STDP規則(或被稱為「前-後規則」)。
在一個變體中,在衝動脈波140之前由後突觸單元接收到前突觸脈波(諸如脈波144)時,前-後規則加強突觸連接。相反地,在產生脈波140之後由後突觸單元接收到前突觸脈波(諸如脈波146)時,後-前STDP規則減弱突觸連接。此類規則通常分別被稱為長期增強(LTP)規則及長期減弱(LTD)規則。存在各個增強及減弱實施,例如定義如下的指數規則: 其中:A 1A 2分別為前突觸修改及後突觸修改之最大調整幅度;t 1t 2分別為前突觸修改及後突觸修改之時間窗口;△t=Tpre-Tpost;及Tpre、Tpost分別為前突觸脈波時間戳記及後突觸脈波時間戳記。
因此,在STDP規則之典型實現中,對網路單元(例如,第1A圖中之單元122_3)執行以下步驟以用於調整突觸變數(諸如第1A圖中之前突觸連接群組120之變數)以實現尖脈衝神經網路100之學習機制:
前突觸脈波規則:對於後突觸單元之群組接收到的每個前突觸脈波(在第1A圖中由後突觸單元122_1、122_3、122_k自單元102_1接收的脈波),基於後-前規則更新對應於突觸連接(第1A圖中之連接群組120)之突觸變數。在更新突觸變數之後,將經更新的突觸變數(例如,突觸權重)應用(輸送)至各自的後突觸單元。
後突觸脈波規則:對於由單元(例如,第1A圖中之單元122_3)產生的每個後突觸脈波,基於前-後規則調整對應於輸入通道(群組120)之突觸變數。使用脈波產生單元(例如單元122_3)之後突觸索引存取輸入通道群組。由單元122_3(關於群組120)產生之後突觸脈 波變為下游單元之群組(亦即第1B圖中之群組118及單元132_1、132_2、132_n)之前突觸脈波。
例如根據上述方程式1-2執行上述LTP更新及LTD更新,該等更新圖示於第2A圖中。第2A圖中之曲線202描繪在輸入脈波在後突觸脈波之前到達時突觸權重w(△t)的變化,且曲線206描繪在脈波在後突觸脈波之後到達時的權重之變化。第2A圖中圖示之調整實施之特徵在於分別由箭頭204、208指示之最大調整幅度A 1A 2。隨著|△t|增加,調整量值w(△t)變小且接近零。曲線202之累加效果為突觸權重之長期增強(LTP),且曲線206之累加效果為突觸權重之長期減弱(LTD)。
各種其他STDP實施(諸如凸出STDP規則)可用於第2B圖中所圖示之本揭示案。凸出STDP前-後調整及後-前調整曲線222、228之特徵在於當△t=0且有限減弱值(由第2B圖中之箭頭228指示)為|△t|>>0時的最大增強量(由箭頭224指示)。箭頭230、232指示最大增強間隔Tmax,基於(例如)由設計師指定的時間限制配置該最大增強間隔Tmax。可按照本揭示案使用更多類型之STDP規則,例如在Abbott,L.F.及Nelson,S.B.(2000),「Synaptic plasticity:taming the beast」,Nature Neuroscience,3,1178-1183中所描述之彼等STDP規則,該文獻以引用之方式整體併入本文。
尖脈衝網路架構之示例性實施
在本揭示案之一個態樣中,尖脈衝時序依賴的可塑性 規則之計算係基於前突觸脈波與後突觸脈波之間的相對時間差。實施(例如)第1A圖之尖脈衝神經網路之電腦化網路裝置可在各種模式中操作以計算此等時間差。
在一個實施例中,電腦化網路裝置包含同步實施,其中網路之操作由提供時間(時脈)步長的集中化實體(在網路裝置內)控制,且該網路之操作促進單元之間的資料交換。前突觸脈波之到達時間源自於可為網路內之所有單元及突觸所用的同步化時間步長。可使用(例如)直接的點到點連接、共享記憶體或分散式記憶體通訊或將由考慮到本揭示案之神經學模型化科學界之一般技術者認識的其他通訊機制執行網路中不同單元之間的尖脈衝傳輸。
在另一實施例中,將電腦化網路裝置實施為單元之異步網路,其中該等單元獨立於彼此且包含各自的內部計時機制。在異步網路之一個變體中,使用時間戳記獲得與每一脈波之接收相關的前突觸脈波時序。時間戳記源自於已接收到前突觸脈波之後突觸單元的本端時脈。在異步網路之另一變體中,使用與出現前突觸脈波有關之資訊(諸如前突觸單元之時間戳記、通道延遲及時脈偏移)獲得前突觸脈波時序,在需要時可能要求該脈波時序獲得脈波衝動時間。一種有用的技術為包括具有每一尖脈衝之發送(前突觸)單元之參考時脈。接收單元可因此基於此額外時序資訊調整時間差異。
示例性更新方法
現參閱第3圖至第9C圖,描述用於基於脈波的學習尖脈衝神經網路中有效突觸計算之各種方法之示例性實施例。
第3圖提供對執行在上文描述的網路100內之突觸更新有用的示例性尖脈衝神經網路處理架構300之高階方塊圖。突觸變數(諸如突觸權重、延遲及後突觸神經元識別(ID))儲存在被稱為突觸記憶體310的專屬記憶體中。每當需要突觸變數資料來實施如上所述之後突觸更新時,由突觸計算方塊302經由突觸記憶體匯流排308擷取突觸記憶體310之內容(通常對於1000單元深的網路級聯配置為大約數百的百萬位元組(MB)至數十億位元組)。雖然可使用其他值,但是匯流排308寬度nB通常介於n1個位元組與n2個位元組之間。雖然突觸記憶體可實施為與突觸計算方塊302相同的積體電路(IC)晶粒(晶片上)的一部分,但是該突觸記憶體通常實施為晶片外(off-chip)記憶體。突觸計算方塊302使用不同類型之尖脈衝時序依賴的可塑性規則實施對更新突觸變數(諸如突觸變數118、突觸變數120)必需的計算。
尖脈衝神經網路處理架構進一步包含經由神經元匯流排306與突觸計算方塊通訊的神經元計算方塊312(在與方塊302相同的IC上,或是在獨立的IC上)。神經元計算方塊實施描述網路100內的單元之動態行為的各種計算。存在(例如)在以引用之方式整體併入本文的Izhikevich,E.(2003),「Simple Model of Spiking Neurons」(標題),IEEE Transactions on Neural Networks,14,1569-1572中描述的不同神經元動態模型。在一個變體中,神經元計算方塊312包含用於儲存單元資訊(諸如衝動之新近歷史及單元內狀態)的記憶體。單元亦儲存最近脈波之衝動時間。在另一實施例中,包含神經元狀態之神經元記憶體為互連至神經元計算方塊312的獨立記憶體方塊313。
為了提高突觸資料存取效率及最佳化基於脈波的網路之效能,應有效利用突觸記憶體310之大小及匯流排308之頻寬。如上所述,可使用以下兩種方法將突觸變數儲存於突觸記憶體310中:(i)以後突觸方式編索引,亦即基於目的地單元ID;或(ii)以前突觸方式編索引,亦即基於源單元ID。當使用上述索引方法中之一者(例如,以後突觸方式編索引)儲存資料時,使用另一索引方法(例如,以前突觸方式編索引)的記憶體存取為低效的,反之亦然。
第3A圖圖示使用前突觸索引的突觸權重儲存架構之一個實施例。舉例而言,用於自第1A圖中之單元102_1傳遞輸出的通道之所有突觸變數儲存在前突觸記憶體方塊314中。方塊314為以前突觸方式編索引的且因此包含如第3A圖中所圖示之單個鄰近記憶體結構。雖然方塊314圖示為第3A圖中之列,但是方塊314亦包含成行地或多維地編索引的儲存方塊。
用於第1B圖中自各個單元(諸如單元122_2、122_3、 122_k)傳送輸出的通道群組118之突觸變數儲存在記憶體方塊316中。因為記憶體310為以前突觸方式編索引的,所以基於源單元(諸如單元122_2至122_k)而非目的地單元(諸如單元122_2)將記憶體方塊316內之每一列編索引。因此,群組118內之個別通道屬於不同的前突觸單元122_2、122_3、122_k,如第1B圖中所圖示。因此,對應於群組118之突觸變數分佈在n×m記憶體結構中,以使方塊316之每一列(或行)包含儲存來自群組118之突觸變數的單個元件,如第3A圖中所圖示。
因此,為了回應於由單元102_1產生的前突觸脈波實施群組120之突觸變數之基於前突觸脈波的突觸更新,突觸計算方塊302之示例性實施例需要執行以下操作:(□)自來自突觸記憶體310的記憶體方塊314擷取(n個元件之單次讀取操作)群組120之突觸變數;(□)使用後-前STDP規則更新群組120之突觸變數;(□)將記憶體方塊314中之突觸變數儲存(m個元件之單次寫入操作)至突觸記憶體310;及(□)將前突觸脈波輸送至後突觸單元(122_2、122_3...122_k),該等後突觸單元基於在步驟(ii)中之經更新的突觸變數調整脈波振幅(及/或延遲)。
類似地,為了針對由單元122_3產生的後突觸脈波實施群組118之突觸變數之前-後STDP更新,示例性突觸計算方塊需要執行以下操作: (□)自來自突觸記憶體310的記憶體方塊316擷取(m次單個元件讀取操作)突觸變數118;(□)使用前後STDP規則更新突觸變數118;及(□)將記憶體方塊316中之突觸變數儲存(m次單個元件寫入操作)至突觸記憶體310。
在一個實施例中(如在第3B圖中所圖示),每個突觸連接(諸如第1A圖中之連接108)之突觸變數用於描述各個連接性質(諸如一或更多個連接權重322、332、連接延遲324、334、目標節點(單元)識別326、可塑性變數328、330(諸如由(例如)關於上文的第2圖描述的STDP規則使用之參數),以及可用於在網路修正期間之相容性的備用記憶體340)。在用於如尖脈衝輸送或擷取神經狀態資訊之操作的突觸計算期間,使用後神經元識別存取神經元狀態。在神經元匯流排(諸如第3圖之匯流排306)上之記憶體異動期間,存取或更新若干不同的神經元變數。
在另一實施例中(在第3C圖中所圖示),每個突觸連接(諸如第1圖中之連接108)之突觸變數分組成兩大類:永久性突觸變數345及暫時性突觸變數346。在多數基於尖脈衝之學習系統中,在學習或培訓階段使用突觸可塑性規則更新連接變數。在主動學習階段更新暫時性變數及永久性變數兩者。一旦學習階段結束,就不再將暫時性變數用於計算。在突觸連接之整個壽命中存取或使用永久性變數(例如,源及目的地單元ID、突觸權 重);該突觸連接之壽命亦即連接108配置在其間保持不變的時間跨距。在第3C圖之示例性實施例中,此等兩個類型的域獨立地儲存在記憶體中作為永久性域345及暫時性域346。一旦學習階段飽和,就不再更新暫時性突觸變數,且因此不擷取該等暫時性突觸變數,進而減少匯流排308異動負載。若暫時性域及永久性域並非區別地分開於記憶體中(第3B圖),則在計算結果僅需要永久性變數時會不當地自突觸記憶體提取暫時性變數。若給定的網路具有平均M個連接且每一突觸連接由P個永久性變數及T個暫時性變數表示,則如上所描述之方法將需要的總頻寬減少到1/(1+T/P)。
在第4圖中圖示與前突觸更新及後突觸更新相關之以前突觸方式編索引的突觸記憶體實施之一個實施例,該實施例描繪針對單個前突觸通道408及單個後突觸通道414之突觸記憶體匯流排308活動。當後突觸單元(例如,第1A圖中之後突觸單元122_2、122_3...122_k)接收前突觸脈波402(例如,由第1A圖中之單元102_1產生)時,更新通道群組(例如,第1圖中之通道群組120)之突觸變數,如第4圖中之匯流排異動406所圖示。當單元122_3產生後突觸脈波410時,更新通道群組之突觸變數(連接至單元132_2之前突觸變數),如第2A圖中之匯流排308異動418所圖示。更新異動418包含基於前突觸脈波402與後突觸脈波410之間的時間窗口448計算之突觸變數調整,如在上文關於第1D圖所描 述。
類似地,當由各個單元接收另一前突觸脈波404(由單元102_1產生)時,更新通道群組(諸如第1A圖中之群組120)之突觸變數,引發另一匯流排異動406_1。更新異動406_1包含基於前突觸脈波404與後突觸脈波410之間的時間窗口442計算之突觸變數調整。
前突觸匯流排異動406及後突觸匯流排異動418之詳細結構圖示於第4A圖中。因為突觸記憶體(例如,第3A圖中之記憶體310)以前突觸方式編索引,所以以有效的方式有利地執行前突觸資料異動406。亦即,對於每一更新,突觸處理單元在包含讀取m個元件432之方塊的單次讀取操作438中讀取前突觸變數方塊(諸如第3A圖中之後突觸方塊314之元件120),該m個元件432之每一元件包含用於特定前突觸連接的突觸變數資料。在執行所需更新計算之後,突觸處理單元(例如,第3圖中之單元302)在包含m個經更新的元件434之方塊之單次寫入操作440的單次寫入異動中寫入經更新的前突觸變數。每一讀取/寫入傳送438、440包含與低階記憶體存取操作相關之額外負擔部分,該等操作尤其包括開啟記憶體組、列預填充等。因此,前突觸更新記憶體異動406包含兩個記憶體存取操作:一次讀取及一次寫入。
對比第4A圖中所圖示之異動406與後突觸更新異動418、428。因為記憶體(諸如第3A圖中之突觸記憶體 陣列310)以前突觸方式編索引,所以對後突觸變數(第3A圖中之此後突觸方塊316)的存取以一次一列的方式發生。亦即,以連續方式(一次一個)存取陣列316元件中之每一者,從而引起如第4A圖中所圖示之m次讀取存取444及n次寫入存取450。因此,後突觸更新記憶體異動418包含2×n次記憶體存取操作:n次讀取及n次寫入。雖然可如第4A圖中之記憶體異動418所圖示交插讀取/寫入操作,或者如記憶體異動428之m次寫入操作前的m次讀取操作所圖示面向方塊取向讀取/寫入操作,但是假定每一讀取/寫入存取包含額外負擔部分436(該部分436可能花費比用於每一元件之記憶體存取時間432、434更長的時間),則後突觸更新為非常低效之後突觸記憶體方塊316之不連續區域之分散橫貫,且導致記憶體頻寬的大量浪費。
後突觸記憶體方塊之此類片斷存取在如第4B圖中所圖示由不同的後突觸單元(諸如,第1圖中之單元122_1、122_2、122_k)產生多個後突觸脈波時變得更加低效。每一後突觸脈波410、412_1、412_2(在通道414_1、414_k上)引起後突觸更新異動418、418_1、418_2。
通常而言,記憶體匯流排(第3圖中之記憶體匯流排308)支援大量資料之有效傳送(稱為記憶體存取之叢發)。記憶體匯流排可為寬匯流排(例如512-位元寬)且可同時傳送大量連續資料。若記憶體匯流排用於傳送 一個64位元資料元件,則記憶體匯流排中剩餘的位元為無效的(未使用的),且有效資料傳送僅為最大頻寬之64/512。
關於第4A圖描述之後突觸更新期間的記憶體存取包含許多較小大小的存取(對於每一突觸之一個記憶體存取),與每一記憶體存取相關之額外負擔造成大部分記憶體匯流排頻寬浪費在非生產活動上,進而減少匯流排308傳輸量。隨著後突觸脈波之數目增加(如第4B圖中之脈波412所圖示),突觸記憶體之此類片斷存取進一步減少匯流排使用效率。當產生回應於後突觸脈波416之匯流排資料傳送請求419而歸因於先前脈波412_2之匯流排異動418_2仍在進行中時,多個片斷記憶體存取(由後突觸脈波更新引起)減少匯流排可用性並可能引起匯流排衝突狀況(如第4B圖中之圓圈421所指示)。
在第5A圖中圖示根據本揭示案之記憶體存取架構之一個實施例,該實施例被稱為「懶惰突觸更新」,用於脈波編碼的人工尖脈衝神經網路。類似於在上文關於第4圖所描述之記憶體存取方案,當由單元(例如,第1A圖中之單元122_3)接收第5A圖中之前突觸脈波502時,更新突觸變數,如第5A圖中之匯流排308異動506_1所圖示。儘管如此,在通道514_1上產生後突觸脈波510之後並不立即執行後突觸更新,而是延遲該更新直到由後突觸單元(例如,第1A圖中之單元122_3)接收到下一個前突觸脈波504,如第5A圖中缺失對應於脈波510 的匯流排308異動活動所指示。類似地,延遲對應於通道514_3、514_n上之後突觸脈波之突觸更新直到由單元收到下一個前突觸脈波504,在此時執行前-後突觸更新及後-前突觸更新。
在執行基於第一前突觸的更新異動506_1時,第5A圖中之脈波510、512、516之後突觸時序資訊不可用。因此,第二突觸更新異動506_2需要執行用於在時間窗口528內產生之每一先行後突觸脈波之兩個更新:(i)前-後更新,及(ii)後-前更新。前突觸變數更新構造如下:針對每個前突觸脈波(例如,前突觸脈波504),首先評估前-後更新規則(亦即,使用第5A圖中之時間窗口548_1及方程式1),隨後評估後-前更新規則(亦即,使用第5A圖中之時間窗口542_1及方程式2)。
為了賦能經延遲的後突觸更新,記錄所有後突觸脈波之產生時間。在一個變體中,將每個後突觸脈波之精確時序儲存在各自的後突觸單元之記憶體緩衝器中(例如,第1A圖之單元122_3儲存第5A圖之脈波512_1至512_k之時序)。在後續前突觸脈波504到達單元122_3時,將此時序資訊提供至突觸處理器(例如,第3圖中之處理器302)。
在一個變體中,使用脈波中之每一者之絕對時間儲存單元衝動時間資訊。在另一變體中,使用相對於參考事件的偏移儲存時序資訊以減少儲存脈波衝動時序資訊所需的記憶體。在又一變體(對同步迭代網路處理實施特 別有用)中,循環式位元向量用於儲存新近的衝動歷史,其中每一位元對應於網路計算之處理反覆(步驟),且位元值指示單元衝動狀態(「0」單元不衝動,而「1」單元衝動)。
與匯流排異動406類似地構造前突觸異動506之記憶體存取,如在上文關於第4A圖詳細描述。突觸記憶體(諸如第3A圖中之記憶體310)之前突觸索引及上文所述之第5A圖中之方法之突觸更新的順序允許使用單次讀取及單次寫入記憶體操作(例如,第4A圖中之操作438、440)執行更新異動506。亦即,在單次方塊讀取/寫入中針對兩個連續的前突觸脈波502及504之間的時間窗口528內之所有後突觸脈波更新突觸變數,從而有利地使全部異動僅有很小的額外負擔。因此,第5A圖中圖示之突觸變數方法僅需要針對每一窗口528之突觸變數之單次讀取/寫入記憶體操作(自外部記憶體至本端記憶體),且此方法因使用鄰近方塊438、440執行所有記憶體異動506而有利地減少記憶體存取破片,進而減少與多個記憶體存取相關之額外負擔量。
與第5A圖及第4B圖中所圖示之匯流排異動308活動相比,當產生大量後突觸脈波時,第5A圖之實施例之尖脈衝神經網路更新方法之優點更加明顯。第5A圖之更新實施例有利地:(i)將第4B圖中之所有中間的後突觸更新異動418合併至第5A圖中之單個異動506中;及(ii)在執行更新異動時使用單次方塊存取438、440。 由突觸記憶體方塊310之前突觸索引架構賦能此類單個方塊存取。總體而言,第5A圖中圖示之更新方法減少突觸記憶體匯流排異動之數目且因此減少總的異動額外負擔。舉例而言,當S為用於自一個突觸(無額外負擔)傳送變數之匯流排週期之數目,M為一個群組內之突觸之數目,以及BO為用於每一傳送之額外匯流排額外負擔週期(BO)之數目時,執行每一前突觸脈波之突觸更新所需的匯流排308週期之總數(NC)在使用第5A圖中所圖示之方法時近似等於NC=(S×M+BO)。將此總數與使用方法(諸如在408中圖示之方法)執行突觸更新時的匯流排週期之總數(NC0)相對比,NC0=(S+OM。當與先前技術之片斷或未結合的記憶體異動相比較時,根據第5A圖中圖示之本揭示案之實施例使用突觸更新方法之匯流排利用率(BU)之整體改良由下式給出:I=(S+O)×M(S×M+O)。 (方程式3)
對於S=10個週期,BO=10個週期,且M=100個節點,改良大約為二。與先前技術相比較,此類實質改良有利地允許額外脈波之處理及與相同硬體之額外連接。或者,本發明之匯流排使用改良允許使用較不複雜(且較低成本)的硬體來實施與先前技術之解決方案相同的功能。
允許如第5A圖中所圖示之後突觸更新之經延遲的實施的根本原因為經由尖脈衝神經網路自前突觸單元到後突觸單元的資訊傳播之不對稱性。基於相對時序,突觸 權重由於前脈波及後脈波兩者而變化。對於每個前脈波,隨著權重變化,突觸權重需要被輸送至後突觸單元。與此相反,對於給定的後突觸脈波,需要基於脈波時序改變突觸權重,但是不必將突觸權重輸送至任一其他單元。因為資訊流自前突觸單元至後突觸單元流經網路,所以由於前突觸通道連續地提供輸入到單元(例如,單元122_3)且前突觸通道變數之不及時更新歸因於後續輸入(例如,第5A圖中之前突觸脈波504)而不利地影響更新之準確性,正確的網路操作需要在每一前突觸脈波到達之後立即執行所有通道前突觸更新。另一方面,後突觸變數更新(例如,歸因於脈波510)可推遲到單元需要該後突觸變數更新時(亦即,傳遞經更新的變數之下一個前突觸脈波之時間)而不引起網路資料傳播之準確性的任何退化。
雖然根據本揭示案之示例性實施例之後突觸更新之延期需要用於儲存後突觸脈波產生時間之額外記憶體,但是額外儲存量係由預期的後突觸脈波之最大數目決定且可由儲存剩餘神經元狀態變數的神經元記憶體方塊容易地容納。後突觸更新之延期有利地避免突觸記憶體匯流排異動(與後突觸脈波產生相關),因為單元不再需要讀取及寫入突觸變數。
在另一實施例中,如在第5B圖中所圖示,藉由使用被稱為「最近鄰更新」的技術進一步最佳化突觸記憶體方塊存取。具體而言,前-後突觸更新規則(諸如第1D 圖中之更新148)僅適用於第一後突觸脈波522_1,如第5B圖中之箭頭568所指示。類似地,僅對最新的後突觸脈波522_k執行後-前更新(諸如第1D圖中之更新142),如第5B圖中之箭頭562所指示。
基於系統事件之突觸更新方法
關於第5A-5B圖描述之在突觸更新期間之記憶體存取之前述實施例需要每一後突觸單元使後突觸活動時序之有限歷史保持在兩個連續的前突觸脈波(諸如,脈波502、504)之間的時間窗口528內。由每一單元(例如,第1A圖中之單元122_3)保持後突觸歷史,並在每個衝動操作後更新該後突觸歷史。假定第1A圖之典型的網路100包含數百萬個單元,則希望使用例如介於10位元與1000位元之間的最小實際記憶體緩衝器大小Nbuf來實施每一單元。在與後突觸單元活動相比前突觸活動慢很多的情形下可在後突觸脈波(例如,第5A圖中之脈波512)之數目大於緩衝器大小Nbuf允許的最大數時產生脈波歷史緩衝器之溢流。在下一個前突觸脈波到達單元時,此情況轉而引起單元122對突觸變數的錯誤更新。
在單元之一個此類實施中,使用大小606(如第6A圖中所圖示)之循環式緩衝器將後突觸脈波歷史本端地儲存在每一單元上。緩衝器600包含元件604之集合,該等元件604中之每一者儲存連續的後突觸脈波608之產生時間。在緩衝器由一連串後突觸脈波622填滿(如第6A圖中之板620所指示)時,下一個後突觸脈波626 覆寫對應於先前後突觸脈波中之一者的記憶體位置,如第6A圖中之箭頭628所描繪。因此,丟失一部分後突觸脈波歷史。
現參閱第6B-6C圖,圖示及描述方法之各個實施例,該方法經配置以賦能前突觸脈波率及後突觸脈波率實質上彼此不同時的尖脈衝神經網路操作。方法大體利用系統事件,該等系統事件經配置以確保實現及時的突觸更新且經配置以防止歸因於歷史緩衝器溢流的後突觸脈波歷史丟失。如下文所描述,歸因於依賴具體實施的各種情況而觸發系統事件。
第6B圖圖示利用緩衝器溢流系統事件之方法之一個實施例。該方法630包含以下步驟:在步驟636處監視儲存最近使用的緩衝器元件632之位置(對應於自從最近突觸更新後單元產生的後突觸脈波之數目)的計數器。在一個變體中,最近突觸更新由在上文關於第5A圖詳細描述之前突觸脈波之接收實現。在另一變體中,最近突觸更新由前述系統事件(諸如如下所描述之系統事件634)實現。在步驟638處,在計數器等於緩衝區大小606(指示到達緩衝器633之末端)時,產生系統事件(由箭頭634描繪)。回應於系統事件634,在步驟640處執行突觸更新,且重設計數器至緩衝器之起始處。
第2A圖所圖示之標準可塑性規則具有有限時間窗口214、212,且落在此窗口內的前-後脈波對基於兩個脈波之間的時間差(△t)改變突觸變數。若產生後脈波以使△t 大於時間窗口,則直到出現下一個前突觸脈波前不需要執行突觸變數更新。
在某些應用中,需要對每個後突觸脈波執行突觸更新。此類機制對甚至長期可塑性時標繼續調適突觸變數的突觸可塑性規則(諸如第2B圖中所圖示之凸出STDP規則)特別有用。凸出STDP更新量值收斂至甚至如第2B圖中所圖示之大值△t的非零值。因此,每個後突觸尖脈衝引起突觸權重之增加或降低(第2B圖僅圖示突觸權重之降低部分),且此情況被稱為「長尾可塑性規則(long-tail plasticity rule)」。在使用懶惰更新方案及長尾可塑性規則(諸如第2B圖)時,需要強加週期性的突觸權重更新以將直到下一個前突觸脈波為止的所有後突觸脈波考慮在內。
第6C圖圖示利用系統沖洗事件以在給定單元未針對N fire時間步長衝動時強迫突觸變數更新的網路操作方法650之一個實施例。
在方法650之步驟652處,單元決定是否已衝動。若單元已衝動,則由單元產生前突觸脈波,且方法650經由路徑654繼續進行且使前尖脈衝調用必要的後-前STDP更新規則656。在一個變體中,突觸記憶體更新包含在上文關於第5A圖所描述之突觸匯流排異動506。單元然後更新在衝動尖脈衝之後發生的內狀態(此舉被稱為「重設規則」)。其次,在方法650之步驟658處,將脈波計數器初始化至對應於時間步長之最大容許數目的 值Nfire,在該時間步長後將調用後突觸更新(否則,歸因於溢流將丟失儲存在後突觸側中的時序資訊)。
若檢查步驟652決定單元未產生脈波,則方法650在步驟660處減縮事件計數器。在步驟662處,執行檢查以決定事件計數器是否大於零。若大於零,則單元操作繼續到步驟652。若脈波計數器等於零(指示Nfire時間步長自最近更新後已消逝),則產生沖洗系統事件664且單元/網路操作繼續到步驟656,如第6B圖中所圖示。沖洗系統事件觸發突觸更新計算,並確保後突觸神經元之所有時序資訊在自緩衝器歷史移除前被考慮到。在接收到沖洗系統事件之後,僅對應於發生在時間間隔T flush -T pre1 (參見下文論述的第7A圖)中的所有後突觸脈波執行前-後STDP更新規則。不必應用後-前STDP更新規則,因為還未產生前突觸脈波。
如在上文關於第5A圖所描述,為了保持精確的懶惰更新,在連續的前突觸脈波之間不應丟失後突觸脈波產生(衝動)時間歷史。為了防止衝動歷史丟失,若前突觸神經元未針對N fire步長而衝動,則由前突觸單元產生沖洗系統事件。
第7A圖圖示由脈波編碼的網路100之單元執行的突觸記憶體更新存取序列之一個實施例,該脈波編碼的網路100使用關於第6A圖及第6B圖所描述的系統事件。在經由前突觸通道708收到前突觸脈波702之後,單元(例如,單元122_3)在匯流排308上執行更新異動706 並初始化脈波計數器730至初始值N,如由第7A圖中之方塊732_1所描繪。在一個變體中,諸如用於第6A圖之緩衝器溢流系統事件之實施例,初始值N等於緩衝器長度606。諸如對應於預定時間週期等的計數器值之其他實施與本揭示案相容。
在由一或更多個單元122_2,...122_k產生後續的後突觸脈波710、712-1、712_k、716時,不執行突觸更新(如匯流排308上的活動缺失所指示)。相反,將後突觸脈波時間記錄在脈波緩衝器(諸如第6A圖之緩衝器618)中且如第7A圖中之方塊732_2至方塊732_5所指示減縮脈波計數器730。在如方塊732-6所指示,脈波計數器達到零(回應於後突觸脈波711)時,產生系統事件724且執行突觸更新異動726。在一個變體中,系統事件724包含(在上文關於第6A-6B圖所描述的)緩衝器溢流事件634,而在另一變體中,系統事件724包含(在上文關於第6A-6B圖所描述的)系統沖洗事件664。
在第7A圖之實施例中,系統事件724之時序對應於T flush 且系統事件724用作計算STDP窗口中的參照,以將由箭頭748所指示的所有後突觸時間間隔納入考慮以用於前-後STDP計算。時間T flush 在由網路產生下一個前突觸脈波時有用(在第7A圖中未圖示),且將在T flush 之後發生的後突觸脈波納入考慮以用於前-後STDP計算。
在一個變體中,每一單元包含經配置以儲存後突觸脈 波歷史(衝動位元)的固定大小的緩衝器,進而使得個別單元能夠產生互相獨立的系統事件。
在另一實施例中,結合基於前突觸脈波的更新706使用由第7B圖中之系統事件754啟動的突觸更新726。在一個變體中,系統事件754為沖洗事件664。在另一變體中,系統事件754為緩衝器溢流事件634。在又一變體(諸如第7B圖中所圖示)中,並非回應於後突觸脈波立即產生系統事件754,而是由各種適當的機制(諸如計時器之期滿)產生系統事件754。
在第7B圖之實施例中之系統事件754之時序確保對應於沖洗事件754在前-後STDP更新期間(由匯流排異動726指示)考慮發生在時間窗口747(在前突觸脈波702與沖洗事件754之間)內的所有後突觸脈波(亦即,脈波710_1、712_1、716_1)。類似地,當在時間Tpre2處發生後續突觸脈波704時,僅需將在沖洗事件754之後發生的後突觸脈波(亦即,脈波710_2、712_2)納入考慮以用於計算由匯流排異動706_2所指示的前-後STDP更新。對於沖洗事件之典型的實施,選定Tflush與Tpre之間的時間差等於STDP窗口214,以使在Tflush之後發生的任一後突觸尖脈衝落在STDP窗口之外(Tpost-Tpre>第2A圖之214)。此類配置確保當此類配置不變化時,可忽略歸因於脈波710_2、750_2之突觸變數變化(如第2A圖中所圖示)且因此消除對將前-後STDP規則應用於此等脈波的需要。
每當產生沖洗系統事件754時,則前-後突觸更新(對應於時間窗口)748適用於在第7B圖中之時間窗口747(計算為T flush-T pre1)內產生的所有後突觸脈波710、712、716。後突觸脈波710、712、716之後-前更新取決於所使用的突觸可塑性規則之類型。在基於最近鄰的STDP規則之情況下,僅需考慮在前述前脈波之後的第一尖脈衝與在下一個前脈波之前的最近尖脈衝。
在接收到下一個前突觸脈波704時,突觸變數更新只須考慮自從最近沖洗事件754之後在時間窗口746內產生的後突觸脈波。因此,關於發生在T pre處的前脈波702使用時間差750_1、750_2針對後尖脈衝710_2、712_2評估前-後STDP。關於發生在T pre2處的當前的前脈波704使用時間差742_5、742_6將後-前STDP規則應用於發生在710_2、712_2處的脈波。此方法可適用於基於最近鄰的STDP更新規則。從而,每一後突觸脈波(例如710_1、710_2、712_1、712_2)不會在用於更新傳入的突觸變數之突觸匯流排中引起任一記憶體異動。如在流程圖6C中所圖示,僅針對每個後突觸脈波更新尖脈衝歷史。對於其他類型之STDP規則,在下一段落所描述之基於追蹤的機制歸因於後突觸脈波712_1、716_1及當前的前脈波704而為考慮後-前STDP規則所必需。
對於需要在STDP計算中考慮每個後突觸脈波的其他種類之可塑性規則,使用基於後突觸追蹤的機制。在尖脈衝神經網路中,每一後突觸節點可含有以一定數量用 每一後突觸尖脈衝更新並基於突觸可塑性規則以固定時間常量在尖脈衝之間衰減的內部追蹤變數。每一突觸可使用儲存在後突觸單元中的此內部追蹤變數來計算實際輸送之前突觸變數的總體變化。
在第7C圖中圖示基於追蹤的後突觸機制之一個示例性實施例,該基於追蹤的後突觸機制考慮基於系統事件沖洗的後突觸脈波。在上文描述用於沖洗事件的前-後STDP規則評估機制。當在第7C圖中之時間T pre2處接收下一個前突觸脈波704時,需要在基於後突觸脈波780_1、780_2、780_3之後-前突觸更新期間考慮所有後-前時間間隔781_1、781_2、781_3。當脈波704在沖洗事件之前出現時(T pre2<T flush),脈波(例如,脈波780_1)之時序(尖脈衝歷史)為已知的。儘管如此,在第7C圖中所圖示之實施例中,沖洗事件T flush引起與一些後突觸脈波(例如,脈波780_1、780_2)相關之尖脈衝時序歷史之沖洗(亦即,移除)。因此,在由後突觸節點接收到後續的後突觸脈波(例如,脈波704)時,無法評估對應於已移除的脈波之可塑性規則(例如,由第7C圖中之782_1、782_2所指示之追蹤描繪的規則)。為了獲得精確的通道更新(利用經沖洗的脈波780_1、780_2之STDP更新),第7C圖之實施例在後突觸單元中使用額外儲存器(被稱為追蹤),該額外儲存器儲存與所有經沖洗的後突觸脈波之累加效果有關的資訊(例如,由782_1、782_2所指示之追蹤資訊)。儲存的追蹤資料賦 能當在時間T pre2處接收前突觸脈波704時各自的後-前STDP規則之評估。舉例而言,第7C圖中之追蹤變數782保持對源於每一後突觸脈波780_1、780_2、780_3之後-前STDP更新之組合效果的追蹤,如曲線782_1、782_2、782_3所分別描繪。當在T pre2處接收下一個前突觸脈波時,後突觸節點讀取追蹤變數以獲得分別歸因於先前沖洗的脈波780_1、780_2、780_3之累加的後-前STDP調整(由第7C圖中之箭頭784所指示)。
在基於系統事件的突觸更新方法(未圖示)之另一實施例中,在觸發沖洗系統事件時僅針對每一突觸(例如,時間748_1)儲存最近前突觸脈波(例如,第7B圖中之脈波702)與下一個後突觸脈波(例如,第7B圖中之脈波710_1)之間的時間差(△t=T post-T pre)。此方法使用用於儲存關於每一突觸之時間差的短讀取/寫入對,並將突觸變數之實際更新推遲到下一個前突觸尖脈衝。此機制僅適用於某類突觸更新,此機制被稱為最近鄰STDP規則(參見在上文以引用之方式併入的Izhikevich E.M.及Desai N.S.(2003))。舉例而言,當在754處產生系統事件T flush時,藉由小於726之記憶體異動將在前脈波702與所有後脈波(710_1、712_1、716_1)之間的時間差儲存在突觸記憶體中。此時間差足以在產生下一個前脈波704時更新突觸變數。
在另一實施例中,針對每個N fire後突觸脈波產生連續的沖洗事件。此類更新機制對針對每個後突觸脈波調整 突觸變數的突觸可塑性規則特別地有用。在第2B圖中圖示此類可塑性規則之一個具體實例(凸出STDP),其中即使在△t=T pre-T post變大時,調整振幅228仍然有限。因為「長尾」可塑性規則(諸如在第2B圖中所圖示)針對每個後突觸脈波引起可量測的突觸權重增大或降低,所以任一突觸脈波歷史丟失將不利地影響尖脈衝網路操作。為了防止在結合長尾可塑性規則(諸如第2B圖)使用懶惰更新方法時的歷史丟失,針對每個N fire後突觸脈波產生週期性的沖洗系統事件。
在另一方法中,當額外後突觸脈波不顯著影響網路內的資料傳播準確性時,在一定數目N stop之後突觸脈波後停止產生沖洗系統事件。舉例而言,在時間間隔△t超過第2A圖中之箭頭214、214所指示之時間窗口時,諸如第2A圖中所圖示之可塑性規則引起極微的突觸權重調整。因此,可不考慮在此等窗口212、214之外產生的後突觸脈波,且可方便地停止產生沖洗系統事件。精確的停止點取決於可塑性曲線202、206之精確形狀與寬度以及單元後突觸脈波產生頻率。
在不同的方法中,基於各個參數在網路裝置(諸如裝置300)之執行時間處決定沖洗系統事件產生之實際機制,該等參數由應用程式開發者開發的應用程式決定。在一個變體中,此等參數包含可塑性窗口之寬度及/或網路錯誤容差。在另一變體中,使用隨機模型產生沖洗事件,其中網路效能之精確性的一些損失換取網路裝置之 簡單性。此等機制形成一種減少沖洗系統事件之整體數目及頻率而不使模擬之準確性或效能退化的技術。
現參閱第8圖,圖示及詳細描述經配置用於儲存後突觸單元脈波歷史的包含共享堆記憶體架構的裝置之一個實施例。架構800包含經由突觸匯流排808與突觸記憶體810通訊及經由神經元匯流排804與神經元計算方塊806通訊的突觸計算方塊802。共享脈波堆記憶體方塊820分別經由匯流排822、824耦接至突觸計算方塊802及神經元計算方塊806。
共享記憶體方塊由許多後突觸單元(諸如第1A圖中之單元122)存取及共享,該等後突觸單元儲存各自的個別後突觸脈波產生(衝動)之歷史。此共享記憶體機制允許高衝動單元(諸如對應於第8B圖中之通道814-3、814-n之單元)與低衝動單元(諸如對應於第8B圖中之通道814_1、814_2之單元)共享記憶體緩衝器或堆空間,進而降低系統事件之產生頻率。
第8B圖之實施例僅在脈波811之後突觸時序資料不能由共享緩衝器820容納時產生緩衝器溢流事件。每當產生溢流事件824時,從最舊的未更新後突觸脈波(諸如最近尖脈衝)開始,藉由計算新的突觸變數來執行後突觸脈波STDP調整。共享共用堆緩衝器允許高衝動單元使用低衝動單元之記憶體分配,進而減少沖洗事件之數目(及頻率)。
分區網路裝置
通常而言,針對接收前突觸脈波的每一後突觸單元執行以下突觸計算:(a)自突觸記憶體讀取單元之突觸變數及連接資訊(後神經元ID及延遲等);(b)自神經元記憶體讀取後突觸脈波時序及後突觸神經元變數(例如,後突觸電流);(c)基於連接資訊更新神經元變數;(d)基於後突觸脈波時序更新突觸變數(包括突觸權重);及(e)將經更新的突觸變數儲存至突觸記憶體。
在上文描述之懶惰突觸更新機制引起突觸記憶體方塊310之有效存取,且改良上述步驟(a)、(d)及(e)。包含大量單元及連接的網路需要針對每個前突觸脈波之大量後突觸神經元更新(上述步驟(b)及(c))。如下所描述本揭示案之更新方法藉由提供用於神經元狀態資訊(後突觸神經元時序及後突觸神經元變數)的有效存取機制有利地改良步驟(b)及(c)之效能。
第9-9A圖圖示對在硬體平臺上實施大型尖脈衝神經網路有用的分區網路架構900及網路裝置910之一個實施例,該硬體平臺具有受限制的晶片上記憶體(亦即,在代管突觸處理方塊及神經處理方塊之相同積體電路或積體電路晶粒內可用的記憶體)。第9圖之網路900包含大量(通常在103與107之間)單元(諸如第1A圖之單元102、122、132),以及甚至更大數目(通常在106與 1010之間)之突觸連接(諸如第1A圖中之連接108、114)。為了藉由處理裝置910(單元、突觸連接)賦能用於此類大量網路實體之資料處理,將網路900分區成多個被稱為網路分區的較小網路方塊902。每一分區902可通訊地耦接至網路處理裝置910。
在示例性非分區網路中,每個單元儲存描述網路內之所有單元連接(例如,第1A圖中之連接114)的單個連接表。在分區網路中(諸如第9圖之網路900),在網路中之任一單元可連接至在整個不同網路分區902上分佈的多個單元。因此,單元連接表被分成多個子表以使每一單元可個獨立地定址屬於每個分區的單元且因此一次對一個分區執行突觸計算。此等計算包含以下步驟:(a)載入分區內所有單元的連接資訊;(b)自全局記憶體載入分區內單元之神經元狀態(脈波時序及內狀態);(c)對由網路產生之所有前突觸脈波執行突觸計算並更新單元之神經元狀態;及(d)將分區單元之後突觸神經元狀態儲存回總體記憶體,並對下一分區繼續進行步驟(a)。
從而,在執行之任一點處,儲存神經元狀態資訊的晶片上記憶體需要僅儲存整個網路神經元狀態之小子集(N/P),其中N為單元之總數,且P為分區之總數。
本文關於第9A圖圖示及描述網路處理裝置910之一個特定實施例。網路裝置910包含突觸方塊920、突觸 記憶體918及神經元方塊914。
突觸方塊包含評估許多突觸之並行突觸計算之多個突觸計算執行實體922。雖然第9A圖僅圖示三個執行實體922,但熟習該等技術者將理解由具體的實施決定執行實體之數目。在一個變體中,將每一執行實體922實施為具有由相同的處理設備(諸如FPGA或多核心CPU)執行的多個線程之各別的軟體線程或程序。在另一變體中,由專用處理邏輯或單元(諸如閘邏輯、FPGA、處理器或處理器核心)執行每一執行實體922。在另一變體中,每一執行實體包含FPGA晶片(slice)等。
突觸計算方塊包含如第9A圖中所圖示由多個執行實體922共享的分區快取記憶體924。在一個變體中,分區快取記憶體924包含在上文關於第8圖描述的堆緩衝器820。突觸連接性亦需要被分段以獨立地定址每一分區。
突觸計算方塊經由突觸記憶體匯流排912耦接至突觸記憶體918並經由匯流排916耦接至神經元方塊。神經元方塊914包含神經元處理單元926及神經元記憶體928,神經元記憶體928儲存與單元(在網路900內)有關之資訊(諸如尖脈衝時序、單元內狀態等)。
在第9A圖之實施例中,將突觸方塊920實施在單個晶片(IC)上,如箭頭932標記的虛線矩形所指示。
在另一實施例中(第9B圖中所圖示),網路處理裝置940包含實施在相同染色(IC)晶片上的突觸方塊920及 神經方塊914,如第9B圖中之箭頭942標記的虛線矩形所指示。
在第9C圖中所圖示之不同的實施例中,網路處理裝置950包含實施在相同染色(IC)晶片上的突觸方塊920及神經元處理單元956,如第9B圖中之箭頭952標記的虛線矩形所指示。神經元處理單元956經由匯流排954耦接至分區快取記憶體924並經由匯流排955耦接至晶片外神經元記憶體958。
將理解,第9A-9C圖中所圖示之實施例用來說明本揭示案之原理,且種種其他網路處理裝置實施可用於分區網路900,與本揭示案有關之技術領域之一般技術者可容易地識別此類其他實施。
在示例性網路900之操作期間,直接地或藉由快取機制將每一分區資料(包含彼分區之神經元資料)儲存在共享的快取記憶體924中,並依次更新該等分區資料。整個狀態駐留在晶片外整體狀態記憶體300中。連接表亦被分解為P個連接子表,其中每一子表儲存用於一個特定分區的所有傳入連接。以預定的分區序列一次一個分區地執行網路突觸更新計算。在突觸更新階段中,經由匯流排912將突觸變數串流傳輸至突觸記憶體918/自突觸記憶體918串流傳輸突觸變數,且各個後突觸更新同時被應用於分區緩衝器或快取記憶體924內之資料。亦即,每一突觸計算方塊922自突觸記憶體918讀取與給定的前突觸脈波相關之突觸變數,檢查儲存在本端分 區快取記憶體924中的後突觸神經元狀態之脈波時序,計算新的突觸變數(包括突觸權重),使用經更新的突觸變數更新後突觸神經元狀態,以及將經修改的突觸變數(包括突觸權重)儲存回突觸記憶體918中。
具有較小分區大小(例如,每一分區902內具有較少的單元)降低晶片上記憶體924要求但增加分區數。此外,若分區內的後突觸單元之數目小,則每一前突觸脈波將僅需要分區之後突觸神經元狀態之小子集之更新。因此,當使用較小分區時,減少經由記憶體匯流排912串流傳輸的資料量,造成由於與多個記憶體異動相關之額外負擔(諸如在上文描述之第4A圖中之額外負擔方塊436)增大,記憶體匯流排912之使用效率降低。
包含更多單元的更大分區需要更大晶片上記憶體924以儲存用於單元之突觸連接資料。因此,存在分區數目、串流傳輸突觸記憶體頻寬之有效使用及模擬網路之大小之間的權衡。
在前突觸神經元衝動時,產生的前突觸脈波可影響大量(取決於具體的網路拓撲)之後突觸神經元。如上關於突觸變數更新所論述,在以前突觸方式編索引的記憶體模型中,對以後突觸方式編索引的單元的存取為低效的。從而每一前脈波在更新後突觸神經元狀態時將產生神經元記憶體之多次存取。此類片斷存取結果導致記憶體匯流排頻寬之低效利用。舉例而言,考慮實施具有16字的最低異動大小之神經元匯流排916的網路處理裝置 (諸如裝置910)之一個變體。亦即,在單次異動中自給定記憶體位址範圍擷取16個連續的神經元單元資料項目(包含例如單元狀態、新近衝動時間及衝動歷史)或將該等項目儲存至給定記憶體位址範圍。考慮神經元更新適用於在<40>、<4000>,...<52>、<4010>、<5000>等處的記憶體位置。藉由將記憶體請求排序(分類)為{<40>,<52>,<4000>,<4010>,<5000>},減少在神經元匯流排916上的記憶體異動總數,因為可在一個異動內同時讀取或儲存多個神經元狀態。在上述實例中,在單個匯流排異動內存取在位址<40>及<52>、<4000>及<4010>處的資料,進而減少匯流排916異動之數目(且由此減少匯流排額外負擔)並改良匯流排利用率。應注意,假若鄰近的位址在最低異動大小位址範圍(在上述實例中的16個字)內,則記憶體異動之上述分組提高匯流排使用效率。
對於重新排序記憶體異動,可基於後突觸神經元位址之記憶體位址(如(例如)由第3B圖中之目標單元ID326所指示)重新排列用於給定的前突觸神經元之突觸連接。若基於神經元ID之記憶體位址或位址對後突觸連接分類,則可於單個記憶體異動(諸如第4圖中之異動406_1)內潛在地擷取多個神經元狀態。與後突觸單元ID之隨機定址相比較,此機制可潛在地減少神經元記憶體異動數目。此重新排序機制改良連續的異動之記憶體本端性,並受益於各種快取技術。此情況實質上意指若 快取匯流排306上的記憶體請求,則如上所描述經重新排序的神經元記憶體請求機制比任意排序的記憶體請求更佳地執行。
本揭示案之某些態樣之示例性使用及應用
用於在脈波編碼的網路中實施懶惰最新突觸更新之裝置及方法提供與先前使用的未結合的記憶體異動相比實質上改良突觸記憶體存取效率的機制。此經改良的記憶體存取可有利地用於處理更大數目之突觸連接(針對相同匯流排傳輸量)或用於實現使用較低成本的記憶體匯流排實施(亦即,較低速度及/或較小匯流排寬度)之脈波編碼的網路。
此外,基於前突觸脈波產生/接收的突觸記憶體更新機制提供最新的突觸連接資訊且因此改良網路準確性。
本揭示案中所描述之機制可用於實施在文獻(參見在上文以引用之方式併入本文的Izhikevich E.M.及Desai N.S.(2003))中描述之許多不同類型之突觸可塑性模型。
本揭示案中所描述之方法及機制適用於包括圖形處理器、場可程式化閘陣列及專用ASIC之各種硬體平臺。
此外,系統事件之使用進一步改良突觸更新之時效性及允許具有減少單元記憶體大小的更簡單的網路實施。
如上文所指出,在本文關於第5A圖至第7A圖所描述之實施懶惰更新方案之有效突觸變數更新方法有利地減少突觸匯流排額外負擔。在一個變體中,此改良允許針對相同匯流排頻寬(諸如匯流排速度及/或寬度)處理與 現有的更新技術相比更大之單元群。此改良允許利用較低頻寬匯流排存取之更簡單的網路處理裝置實施(諸如第9A圖之裝置910)。更簡單的匯流排架構(歸因於更慢及/或更小寬度匯流排)又降低網路處理裝置成本及改良可靠性。
有利地,本揭示案之示例性實施例可被構建成對包括(但不限於)義肢、自主及機器人裝置以及需要物件辨識功能之其他機電設備之各種裝置有用的任一類型之尖脈衝神經網路模型。此類機器人設備之實例為製造業機器人(例如,汽車製造用的)、軍用機器人、醫用機器人(例如,顯微術、X光、超音波檢查術、斷層攝影術之處理)。自主載具之實例包括飛船(rover)、無人駕駛飛行器、水下載具、智慧家電(例如ROOMBA®)等。
本揭示案之實施例進一步可適用於包括以下之各類應用程式:電腦與人的互動(例如,手勢、語音、姿勢、臉部等之辨識)、控制程序(例如,工業機器人、自主載具及其他載具)、增強現實應用程式、資訊組織(例如,用於索引影像及影像序列之資料庫)、存取控制(例如,基於手勢打開門、基於對獲得授權的人之偵測打開進出通道)、偵測事件(例如,用於視覺監視或人或動物計數、追蹤)、資料輸入、財務交易(基於對人或特殊支付符號之識別的支付處理)及許多其他應用程式。
將認識到,儘管按照方法之步驟之具體序列描述本揭示案之某些態樣,但是此等描述僅是對本揭示案之更廣 泛方法的說明,且可按照特定應用程式的要求修改此等描述。在某些情況下可不必呈現某些步驟或可選地呈現某些步驟。另外,某些步驟或功能可被增加至揭示的實施例,或改變兩個或兩個以上步驟之執行的順序。認為所有此類變化被涵蓋在本文所揭示及主張之揭示案內。
儘管上述詳細描述已圖示、描述及指出適用於各種實施例之本揭示案之新穎特徵結構,但是將理解,熟習此項技術者可對圖示的裝置或程序之形式或細節作出各種刪減、置換及變化而不脫離本揭示案。先前描述具有目前設想的最佳模式。此描述不意欲以任何方式限制本揭示案,而是應作為對本揭示案之總則的說明。應參閱申請專利範圍決定本揭示案之範圍。
100‧‧‧網路
101‧‧‧網路
102‧‧‧前突觸單元
102_1‧‧‧單元
102_m‧‧‧單元
108‧‧‧箭頭/連接/通道
110‧‧‧脈波輸送路徑
114‧‧‧箭頭/連接/通道
116‧‧‧圓圈/突觸節點
118‧‧‧通道群組/突觸變數
120‧‧‧前突觸連接群組
120_1‧‧‧單元
120(m)‧‧‧單元
121‧‧‧節點實體
122‧‧‧後突觸單元
122_1‧‧‧單元
122_2‧‧‧單元
122_3‧‧‧單元
122_k‧‧‧單元
132‧‧‧單元
132_1‧‧‧單元
132_2‧‧‧單元
132_3‧‧‧單元
132_n‧‧‧單元
140‧‧‧後突觸脈波
142‧‧‧時間間隔/後-前窗口/更新
144‧‧‧前突觸脈波
145‧‧‧時間T pre_fire
146‧‧‧前突觸脈波
148‧‧‧時間間隔/前-後窗口
150‧‧‧方法
160‧‧‧網絡配置
162‧‧‧配置
164‧‧‧有限傳播延遲
202‧‧‧曲線
204‧‧‧箭頭
206‧‧‧曲線
208‧‧‧箭頭
212‧‧‧時間窗口
214‧‧‧時間窗口
222‧‧‧曲線
224‧‧‧箭頭
228‧‧‧曲線
230‧‧‧箭頭
232‧‧‧箭頭
300‧‧‧尖脈衝神經網路處理架構
302‧‧‧突觸計算方塊
306‧‧‧神經元匯流排
308‧‧‧突觸記憶體匯流排
310‧‧‧突觸記憶體
312‧‧‧神經元計算方塊
324‧‧‧連接延遲
313‧‧‧記憶體方塊
314‧‧‧前突觸記憶體方塊
316‧‧‧記憶體方塊
322‧‧‧連接權重
326‧‧‧目標節點(單元)識別
345‧‧‧永久性域
328‧‧‧可塑性變數
330‧‧‧可塑性變數
332‧‧‧連接權重
334‧‧‧連接延遲
340‧‧‧備用記憶體
346‧‧‧暫時性域
402‧‧‧前突觸脈波
404‧‧‧前突觸脈波
406‧‧‧匯流排異動
407‧‧‧異動
406_1‧‧‧更新異動
414_k‧‧‧通道
408‧‧‧前突觸通道
410‧‧‧後突觸脈波
412_1‧‧‧後突觸脈波
412_2‧‧‧後突觸脈波
414‧‧‧後突觸通道
414_1‧‧‧後突觸通道
414_3‧‧‧通道
416‧‧‧後突觸脈波
418‧‧‧突觸更新異動
418_1‧‧‧突觸更新異動
418_2‧‧‧突觸更新異動
419‧‧‧匯流排資料傳送請求
421‧‧‧圓圈
428‧‧‧異動
432‧‧‧元件/記憶體存取時 間
414_2‧‧‧通道
434‧‧‧元件/記憶體存取時間
436‧‧‧額外負擔方塊
438‧‧‧讀取/寫入傳送
440‧‧‧寫入操作/讀取/寫入傳送
442‧‧‧時間窗口
444‧‧‧讀取存取
448‧‧‧時間窗口
450‧‧‧寫入存取
502‧‧‧前突觸脈波
504‧‧‧前突觸脈波
506‧‧‧前突觸異動/匯流排異動
506_1‧‧‧更新異動
506_2‧‧‧第二突觸更新異動
510‧‧‧後突觸脈波
512_1‧‧‧脈波
512_k‧‧‧脈波
514_1‧‧‧通道
514_3‧‧‧通道
514_n‧‧‧通道
512‧‧‧脈波
516‧‧‧脈波
522_1‧‧‧第一後突觸脈波
522_k‧‧‧後突觸脈波
528‧‧‧時間窗口
542_1‧‧‧時間窗口
562‧‧‧箭頭
548_1‧‧‧時間窗口
568‧‧‧箭頭
600‧‧‧緩衝器
604‧‧‧元件
606‧‧‧大小/緩衝器長度
608‧‧‧後突觸脈波
618‧‧‧緩衝器
622‧‧‧後突觸脈波
620‧‧‧板
626‧‧‧後突觸脈波
628‧‧‧箭頭
630‧‧‧方法
632‧‧‧緩衝器元件
633‧‧‧緩衝器
634‧‧‧系統事件
636‧‧‧步驟
638‧‧‧步驟
640‧‧‧步驟
650‧‧‧方法
652‧‧‧步驟
654‧‧‧路徑
656‧‧‧更新規則/步驟
658‧‧‧步驟
660‧‧‧步驟
662‧‧‧步驟
664‧‧‧沖洗系統事件
702‧‧‧前突觸脈波
704‧‧‧後續突觸脈波
706‧‧‧更新異動
708‧‧‧前突觸通道
706_2‧‧‧匯流排異動
710‧‧‧後突觸脈波
710_1‧‧‧脈波
710_2‧‧‧脈波
711‧‧‧後突觸脈波
712_1‧‧‧後突觸脈波
712_2‧‧‧脈波
712_k‧‧‧後突觸脈波
716‧‧‧後突觸脈波
716_1‧‧‧後突觸脈波
724‧‧‧系統事件
726‧‧‧突觸更新異動
730‧‧‧脈波計數器
732_1‧‧‧方塊
732_2‧‧‧方塊
732_3‧‧‧方塊
732_4‧‧‧方塊
732_5‧‧‧方塊
732_6‧‧‧方塊
742_5‧‧‧時間差
742_6‧‧‧時間差
746‧‧‧時間窗口
747‧‧‧時間窗口
748‧‧‧箭頭/前-後突觸更新
781_3‧‧‧後-前時間間隔
748_1‧‧‧時間
750_1‧‧‧時間差
750_2‧‧‧時間差
754‧‧‧系統事件
754‧‧‧沖洗事件
780_1‧‧‧後突觸脈波
780_2‧‧‧後突觸脈波
780_3‧‧‧後突觸脈波
781_1‧‧‧時間間隔
781_2‧‧‧時間間隔
782‧‧‧追蹤變數
782_1‧‧‧曲線
782_2‧‧‧曲線
782_3‧‧‧曲線
784‧‧‧箭頭
800‧‧‧架構
802‧‧‧突觸計算方塊
804‧‧‧神經元匯流排
806‧‧‧神經元計算方塊
808‧‧‧突觸匯流排
810‧‧‧突觸記憶體
811‧‧‧脈波
814_1‧‧‧通道
814_2‧‧‧通道
814_3‧‧‧通道
814_n‧‧‧通道
820‧‧‧記憶體方塊/共享緩衝器
822‧‧‧匯流排
824‧‧‧匯流排/溢流事件
900‧‧‧分區網路架構
902‧‧‧網路方塊/分區
910‧‧‧網路裝置/處理裝置
912‧‧‧突觸記憶體匯流排
914‧‧‧神經元方塊
916‧‧‧匯流排
918‧‧‧突觸記憶體
920‧‧‧突觸方塊
922‧‧‧執行實體
924‧‧‧分區快取記憶體
926‧‧‧神經元處理單元
932‧‧‧箭頭
928‧‧‧神經元記憶體
940‧‧‧網路處理裝置
942‧‧‧箭頭
950‧‧‧網路處理裝置
952‧‧‧箭頭
954‧‧‧匯流排
955‧‧‧匯流排
956‧‧‧神經元處理單元
958‧‧‧晶片外神經元記憶體
第1A圖為圖示人工尖脈衝神經網路中前突觸索引之一個實施例的方塊圖。
第1B圖為圖示人工尖脈衝神經網路中後突觸索引之一個實施例的方塊圖。
第1C圖為圖示在第1A-1B圖之人工尖脈衝神經網路內有用的網路單元之不同實施例之方塊圖。
第1D圖為圖示對第1A-1B圖之網路有用的概括突觸更新機制之一個實施例的圖解說明。
第2A圖為圖示對第1D圖之突觸更新機制有用的尖脈衝時間依賴的可塑性規則之一個示例性實施的曲線圖。
第2B圖為對第1D圖之突觸更新機制有用的尖脈衝時間依賴的可塑性規則之另一示例性實施的曲線圖。
第3圖為圖示神經突觸網路裝置架構之一個實施例的方塊圖。
第3A圖為圖示供第3圖之網路裝置使用的突觸記憶體架構之一個實施例的方塊圖。
第3B圖為圖示供第3圖之網路裝置使用的突觸元件結構之一個實施例的方塊圖。
第3C圖為圖示供第3圖之網路裝置使用的突觸元件結構之另一實施例的方塊圖。
第4圖為圖示對第1D圖之突觸更新機制有用的突觸記憶體匯流排異動之一個實施例的圖解說明。
第4A圖為圖示第4圖之匯流排異動封包之結構的圖解說明。
第4B圖為圖示產生用於大量後突觸更新之突觸記憶體匯流排異動活動之一個實施例的圖解說明。
第5A圖為圖示根據本揭示案之懶惰突觸更新方法之一個實施例的圖解說明。
第5B圖為圖示本揭示案用於大量後突觸脈波之懶惰突觸更新方法之一個實施例的圖解說明。
第6A圖為圖示對第5A圖之懶惰突觸更新機制有用的脈波緩衝器之一個實施例的圖解說明。
第6B圖為圖示本揭示案之緩衝器溢流系統事件產生方法之一個實施例的圖解說明。
第6C圖為圖示根據本揭示案之沖洗系統事件產生方法之一個實施例的圖解說明。
第7A圖為圖示本揭示案之懶惰突觸更新方法之一個實施例的圖解說明,該實施例包含緩衝器溢流系統事件。
第7B圖為圖示本揭示案之懶惰突觸更新方法之一個實施例的圖解說明,該實施例包含沖洗系統事件。
第7C圖為圖示本揭示案之懶惰突觸更新方法之一個實施例的方塊圖,該實施例包含追蹤變數及沖洗系統事件。
第8圖為圖示根據本揭示案包含共享堆記憶體的神經突觸執行網路裝置之一個實施例的方塊圖。
第8A圖為圖示對第8圖之共享堆記憶體網路裝置有用的本揭示案之懶惰突觸更新方法之一個實施例的圖解說明。
第9圖為圖示根據本揭示案之多分區人工神經突觸網路架構之一個實施例的方塊圖。
第9A圖為圖示用於實施第9圖之多分區網路的電腦化神經突觸執行裝置之第一實施例的方塊圖。
第9B圖為圖示用於實施第9圖之多分區網路的電腦化神經突觸執行裝置之第二實施例的方塊圖。
第9C圖為圖示用於實施第9圖之多分區網路的電腦化神經突觸執行裝置之第三實施例的方塊圖。
本文所揭示之所有圖式為Brain Corporation 2011年版權©。保留所有權利。
100‧‧‧網路
102_1‧‧‧單元
102_m‧‧‧單元
108‧‧‧箭頭/連接/通道
110‧‧‧脈波輸送路徑
114‧‧‧箭頭/連接/通道
116‧‧‧圓圈/突觸節點
120‧‧‧前突觸連接群組
122_1‧‧‧單元
122_2‧‧‧單元
122_3‧‧‧單元
122_k‧‧‧單元
132_1‧‧‧單元
132_2‧‧‧單元
132_n‧‧‧單元

Claims (34)

  1. 一種供一電腦化尖脈衝網路裝置使用的基於經由該通道傳遞的一第一觸發脈波及一第二觸發脈波更新該通訊通道之方法,該電腦化尖脈衝網路裝置包含藉由一通訊通道連接至一後突觸單元之一前突觸單元,該方法包含以下步驟:基於該第一觸發脈波及與該後突觸單元相關的一最早後續脈波之間的一第一間隔提供一第一更新;基於該第二觸發脈波及與該後突觸單元相關之一最近脈波之間的一第二間隔提供一第二更新。
  2. 如請求項1所述之方法,其中回應於該第二觸發脈波評估該第一更新及該第二更新;及該第一更新先於該第二更新。
  3. 如請求項1所述之方法,該方法進一步包含以下步驟:儲存與複數個輸出脈波中之至少一個輸出脈波有關之資訊,該複數個輸出脈波先於該第二觸發脈波由該後突觸單元在一第一時間處產生;及在該第一時間之前,儲存與在該後突觸單元於一第二時間處接收的一第二輸入脈波有關的資訊。
  4. 如請求項1所述之方法,該方法進一步包含以下步驟:至少部分地基於該更新修改與該後突觸單元相關之一狀態;及其中在該第一更新之後且在修改該狀態之該步驟之前執 行該第二更新。
  5. 如請求項1所述之方法,該方法進一步包含以下步驟:儲存與由該後突觸單元產生之複數個輸出脈波有關之資訊,該複數個輸出脈波包含該最早後續脈波。
  6. 如請求項5所述之方法,其中:將與該複數個輸出脈波有關之該資訊儲存在一第一記憶體設備中;將與該通訊通道有關之資訊儲存在一第二記憶體設備中;及該第二記憶體設備之特徵在於大於該第一記憶體設備之存取時間之一存取時間。
  7. 如請求項5所述之方法,其中:一第一複數個更新基於該第一觸發脈波與該複數個輸出脈波之間的一第一複數個間隔;及一第二複數個更新基於該第二觸發脈波與該複數個輸出脈波之間的一第二複數個間隔。
  8. 如請求項7所述之方法,其中:更新該通訊通道之該步驟包含以下步驟:修改與該通道相關之一參數;該第一複數個更新及第二複數個更新之每一者包含該參數之修改;及該方法進一步包含以下步驟:經由與一第二記憶體設備之一單個異動將該參數儲存在該第二記憶體設備中。
  9. 如請求項8所述之方法,其中該參數包含一通道權重; 及該單個異動經配置以減少該第二記憶體設備之匯流排額外負擔。
  10. 一種在一電腦化尖脈衝神經元網路中操作一通訊通道之電腦實施的方法,該方法包含以下步驟:基於一當前觸發及與耦接至該通道的一後突觸單元相關的一最近先行脈波之間的一間隔修改該通道;及使該通道在該當前觸發與一緊接的先行觸發之間保持實質上未修改;其中,經由該通道傳遞該緊接的先行觸發及該當前觸發。
  11. 如請求項10所述之方法,該方法進一步包含以下步驟:在修改該通道之該步驟之後至少部分地基於該當前觸發調整該後突觸單元之一狀態。
  12. 如請求項11所述之方法,其中:修改該通道之該步驟包含以下步驟:決定一經更新的通道權重;及調整該狀態之步驟使用該經更新的通道權重。
  13. 如請求項11所述之方法,其中該方法進一步包含以下步驟:在調整該狀態之前,基於該緊接的先行觸發及與該後突觸單元相關之一最早後續脈波之間的一第二間隔調適該通道。
  14. 如請求項13所述之方法,其中調適及修改該通道之該等步驟共同決定一經更新的通道權重,且該方法進一步包含以下步驟:至少部分地基於該經更新的通道權重調 整該後突觸單元之一狀態,延遲調適該通道之該步驟直到該狀態之該調整步驟。
  15. 如請求項14所述之方法,該方法進一步包含以下步驟:將該緊接的先行觸發及該最早後續脈波之間的該間隔儲存在一第一記憶體設備中;及經由一單個記憶體異動將該經更新的通道權重儲存在一第二記憶體設備中;其中該第二記憶體設備之特徵在於大於該第一記憶體設備之存取時間之存取時間。
  16. 如請求項15所述之方法,其中該通道之特徵在於一傳導延遲;及至少部分地基於該傳導延遲將該經更新的通道權重儲存在該第二記憶體設備中。
  17. 一種在一電腦化尖脈衝神經元網路中操作將觸發脈波自一前突觸單元傳輸至一後突觸單元之一通訊通道的電腦實施的方法,該方法包含以下步驟:基於一觸發及與耦接至該通道的該後突觸單元相關的一最早後續脈波之間的一第一間隔執行一第一更新;及在執行該第一更新後,基於一觸發及與該後突觸單元相關的一最近先行脈波之間的一第二間隔執行一第二更新。
  18. 如請求項17所述之方法,該方法進一步包含以下步驟:至少部分地基於一當前觸發調整該後突觸單元之一狀態;該第二間隔基於該當前觸發;及 其中回應於該觸發評估該第一更新及該第二更新兩者。
  19. 如請求項18所述之方法,其中在調整該狀態之該步驟之前評估該第一更新及該第二更新兩者。
  20. 如請求項18所述之方法,其中在與該當前觸發相關之一時間處評估該第一更新及該第二更新。
  21. 如請求項18所述之方法,其中:該第一間隔基於一第一觸發及與該後突觸單元相關之該最早後續脈波;該第二間隔基於一第二觸發及與該後突觸單元相關之該最近先行脈波;及該第一觸發包含在該第二觸發之前緊接的一觸發。
  22. 如請求項21所述之方法,該方法進一步包含以下步驟:將該第一間隔儲存在一儲存裝置中,該儲存步驟在一第三觸發之前實現,該第三觸發出現在該第一觸發之後。
  23. 如請求項22所述之方法,其中:該第一更新及該第二更新共同決定一經更新的通道參數;及經由一單個記憶體匯流排異動將該經更新的通道參數儲存在一記憶體設備中,該單個異動經配置以減少記憶體存取額外負擔。
  24. 如請求項17所述之方法,其中該最早後續脈波包含該最近先行脈波。
  25. 一種減少與供包含耦接至一通道之至少一個節點之一電腦化網路裝置使用之該通道更新相關之記憶體匯流排 額外負擔之方法,該方法包含以下步驟:基於一當前觸發及與該至少一個節點相關的一最近先行脈波之間的一間隔更新該通道;及使該通道在該當前觸發與一緊接的先行觸發之間保持實質上未修改;其中:經由該通道傳遞該當前觸發及該最近先行觸發;及經由該記憶體匯流排之一單個異動實現該更新步驟,該單個異動實現減少記憶體匯流排額外負擔。
  26. 如請求項25所述之方法,其中更新該通道之該方法基於與該至少一個節點相關之複數個脈波。
  27. 如請求項25所述之方法,該方法進一步包含以下步驟:基於該當前觸發及與另一個節點相關之另一個最近先行脈波之間的另一個間隔更新另一個通道;其中:該通道及該另一個通道中之每一通道傳遞該當前觸發;及經由該記憶體匯流排之單個異動實現更新該通道及更新該另一個通道之步驟。
  28. 一種在一電腦化尖脈衝神經元網路中更新耦接至一前突觸單元之第一通道及第二通道之方法,該方法包含以下步驟:基於一第一觸發及與耦接至該第一通道的一第一後突觸單元相關的一第一最早後續脈波之間的一第一間隔執行一第一更新; 基於一第二觸發脈波及與該第一後突觸單元相關的一第一最近先行脈波之間的一第二間隔執行一第二更新;基於該第一觸發及與耦接至該第二通道的一第二後突觸單元相關的一第二最早後續脈波之間的一第三間隔執行一第三更新;及基於該第二觸發脈波及與該第二後突觸單元相關的一第二最近先行脈波之間的一第四間隔執行一第四更新。
  29. 如請求項28所述之方法,其中,經由該第一通道及該第二通道中之每一通道傳遞該第一觸發及該第二觸發。
  30. 如請求項29所述之方法,該方法進一步包含以下步驟:將與由該第一後突觸單元及該第二後突觸單元中之至少一者產生之複數個輸出脈波有關之資訊儲存在一第一儲存裝置中,該複數個輸出脈波包含該第一最早後續脈波及該第二最早後續脈波中之至少一者。
  31. 如請求項30所述之方法,其中:該第一更新及該第二更新共同決定與該第一通道相關之一第一經更新的參數;該第三更新及該第四更新共同決定與該第二通道相關之一第二經更新的參數;及該方法進一步包含以下步驟:經由該第二儲存裝置之一單個匯流排異動將該第一經更新的參數及該第二經更新的參數儲存在一第二儲存裝置中。
  32. 如請求項31所述之方法,其中:該第一經更新的參數包含一第一通道權重且該第二經更 新的參數包含一第二通道權重;及該單個匯流排異動經配置以減少該第二儲存裝置之匯流排存取額外負擔。
  33. 如請求項31所述之方法,其中該第二儲存裝置之特徵在於大於該第一儲存裝置之存取時間之一存取時間。
  34. 如請求項31所述之方法,其中:該第一通道及該第二通道之特徵在於傳導延遲;及至少部分地基於該等傳導延遲將該第一經更新的參數及該第二經更新的參數儲存在該第二儲存裝置中。
TW101134775A 2011-09-21 2012-09-21 用於在脈波編碼的網路中的突觸更新的裝置和方法 TWI503761B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US13/239,255 US9147156B2 (en) 2011-09-21 2011-09-21 Apparatus and methods for synaptic update in a pulse-coded network

Publications (2)

Publication Number Publication Date
TW201322150A true TW201322150A (zh) 2013-06-01
TWI503761B TWI503761B (zh) 2015-10-11

Family

ID=47881604

Family Applications (1)

Application Number Title Priority Date Filing Date
TW101134775A TWI503761B (zh) 2011-09-21 2012-09-21 用於在脈波編碼的網路中的突觸更新的裝置和方法

Country Status (3)

Country Link
US (1) US9147156B2 (zh)
TW (1) TWI503761B (zh)
WO (1) WO2013043903A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107194462A (zh) * 2016-03-15 2017-09-22 清华大学 三值神经网络突触阵列及利用其的神经形态计算网络

Families Citing this family (127)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US8467623B2 (en) 2010-03-26 2013-06-18 Brain Corporation Invariant pulse latency coding systems and methods systems and methods
US9906838B2 (en) 2010-07-12 2018-02-27 Time Warner Cable Enterprises Llc Apparatus and methods for content delivery and message exchange across multiple content delivery networks
US9193075B1 (en) 2010-08-26 2015-11-24 Brain Corporation Apparatus and methods for object detection via optical flow cancellation
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
US9070039B2 (en) 2013-02-01 2015-06-30 Brian Corporation Temporal winner takes all spiking neuron network sensory processing apparatus and methods
US8990133B1 (en) 2012-12-20 2015-03-24 Brain Corporation Apparatus and methods for state-dependent learning in spiking neuron networks
US9566710B2 (en) 2011-06-02 2017-02-14 Brain Corporation Apparatus and methods for operating robotic devices using selective state space training
US9047568B1 (en) 2012-09-20 2015-06-02 Brain Corporation Apparatus and methods for encoding of sensory data using artificial spiking neurons
US9147156B2 (en) 2011-09-21 2015-09-29 Qualcomm Technologies Inc. Apparatus and methods for synaptic update in a pulse-coded network
US9053428B2 (en) 2011-07-21 2015-06-09 Qualcomm Incorporated Method and apparatus of robust neural temporal coding, learning and cell recruitments for memory using oscillation
US9147155B2 (en) 2011-08-16 2015-09-29 Qualcomm Incorporated Method and apparatus for neural temporal coding, learning and recognition
US8725658B2 (en) 2011-09-21 2014-05-13 Brain Corporation Elementary network description for efficient memory management in neuromorphic systems
US9460387B2 (en) 2011-09-21 2016-10-04 Qualcomm Technologies Inc. Apparatus and methods for implementing event-based updates in neuron networks
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
US9412064B2 (en) 2011-08-17 2016-08-09 Qualcomm Technologies Inc. Event-based communication in spiking neuron networks communicating a neural activity payload with an efficacy update
US8725662B2 (en) 2011-09-21 2014-05-13 Brain Corporation Apparatus and method for partial evaluation of synaptic updates based on system events
US20150074026A1 (en) * 2011-08-17 2015-03-12 Qualcomm Technologies Inc. Apparatus and methods for event-based plasticity in spiking neuron networks
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
US9117176B2 (en) 2011-09-21 2015-08-25 Qualcomm Technologies Inc. Round-trip engineering apparatus and methods for neural networks
US9156165B2 (en) 2011-09-21 2015-10-13 Brain Corporation Adaptive critic apparatus and methods
US9092735B2 (en) 2011-09-21 2015-07-28 Qualcomm Incorporated Method and apparatus for structural delay plasticity in spiking neural networks
US10210452B2 (en) 2011-09-21 2019-02-19 Qualcomm Incorporated High level neuromorphic network description apparatus and methods
US9146546B2 (en) 2012-06-04 2015-09-29 Brain Corporation Systems and apparatus for implementing task-specific learning using spiking neurons
US9213937B2 (en) 2011-09-21 2015-12-15 Brain Corporation Apparatus and methods for gating analog and spiking signals in artificial neural networks
US9104186B2 (en) 2012-06-04 2015-08-11 Brain Corporation Stochastic apparatus and methods for implementing generalized learning rules
US9015092B2 (en) 2012-06-04 2015-04-21 Brain Corporation Dynamically reconfigurable stochastic learning apparatus and methods
US9098811B2 (en) 2012-06-04 2015-08-04 Brain Corporation Spiking neuron network apparatus and methods
US9111224B2 (en) * 2011-10-19 2015-08-18 Qualcomm Incorporated Method and apparatus for neural learning of natural multi-spike trains in spiking neural networks
US8909575B2 (en) 2012-02-29 2014-12-09 Qualcomm Incorporated Method and apparatus for modeling neural resource based synaptic placticity
US8977583B2 (en) * 2012-03-29 2015-03-10 International Business Machines Corporation Synaptic, dendritic, somatic, and axonal plasticity in a network of neural cores using a plastic multi-stage crossbar switching
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
US20130297539A1 (en) * 2012-05-07 2013-11-07 Filip Piekniewski Spiking neural network object recognition apparatus and methods
US9208432B2 (en) 2012-06-01 2015-12-08 Brain Corporation Neural network learning and collaboration apparatus and methods
US9064215B2 (en) 2012-06-14 2015-06-23 Qualcomm Incorporated Learning spike timing precision
US9412041B1 (en) 2012-06-29 2016-08-09 Brain Corporation Retinal apparatus and methods
US9256823B2 (en) 2012-07-27 2016-02-09 Qualcomm Technologies Inc. Apparatus and methods for efficient updates in spiking neuron network
US9256215B2 (en) 2012-07-27 2016-02-09 Brain Corporation Apparatus and methods for generalized state-dependent learning in spiking neuron networks
US9440352B2 (en) 2012-08-31 2016-09-13 Qualcomm Technologies Inc. Apparatus and methods for robotic learning
US9186793B1 (en) 2012-08-31 2015-11-17 Brain Corporation Apparatus and methods for controlling attention of a robot
US9159020B2 (en) 2012-09-14 2015-10-13 International Business Machines Corporation Multiplexing physical neurons to optimize power and area
US9189730B1 (en) 2012-09-20 2015-11-17 Brain Corporation Modulated stochasticity spiking neuron network controller apparatus and methods
US9367798B2 (en) 2012-09-20 2016-06-14 Brain Corporation Spiking neuron network adaptive control apparatus and methods
US8793205B1 (en) 2012-09-20 2014-07-29 Brain Corporation Robotic learning and evolution apparatus
US9311594B1 (en) 2012-09-20 2016-04-12 Brain Corporation Spiking neuron network apparatus and methods for encoding of sensory data
US9082079B1 (en) 2012-10-22 2015-07-14 Brain Corporation Proportional-integral-derivative controller effecting expansion kernels comprising a plurality of spiking neurons associated with a plurality of receptive fields
US9183493B2 (en) 2012-10-25 2015-11-10 Brain Corporation Adaptive 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
US9111226B2 (en) 2012-10-25 2015-08-18 Brain Corporation Modulated plasticity apparatus and methods for spiking neuron network
US8990130B2 (en) 2012-11-21 2015-03-24 International Business Machines Corporation Consolidating multiple neurosynaptic cores into one memory
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
US9239984B2 (en) * 2012-12-21 2016-01-19 International Business Machines Corporation Time-division multiplexed neurosynaptic module with implicit memory addressing for implementing a neural network
US9373073B2 (en) 2012-12-21 2016-06-21 International Business Machines Corporation Time-division multiplexed neurosynaptic module with implicit memory addressing for implementing a universal substrate of adaptation
US9195934B1 (en) 2013-01-31 2015-11-24 Brain Corporation Spiking neuron classifier apparatus and methods using conditionally independent subsets
US9177245B2 (en) 2013-02-08 2015-11-03 Qualcomm Technologies Inc. Spiking network apparatus and method with bimodal spike-timing dependent plasticity
US9764468B2 (en) 2013-03-15 2017-09-19 Brain Corporation Adaptive predictor apparatus and methods
US8996177B2 (en) 2013-03-15 2015-03-31 Brain Corporation Robotic training apparatus and methods
US9008840B1 (en) 2013-04-19 2015-04-14 Brain Corporation Apparatus and methods for reinforcement-guided supervised learning
US9542643B2 (en) 2013-05-21 2017-01-10 Qualcomm Incorporated Efficient hardware implementation of spiking networks
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
US9384443B2 (en) 2013-06-14 2016-07-05 Brain Corporation Robotic training apparatus and methods
US9314924B1 (en) * 2013-06-14 2016-04-19 Brain Corporation Predictive robotic controller apparatus and methods
US9436909B2 (en) 2013-06-19 2016-09-06 Brain Corporation Increased dynamic range artificial neuron network apparatus and methods
US9239985B2 (en) 2013-06-19 2016-01-19 Brain Corporation Apparatus and methods for processing inputs in an artificial neuron network
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
US9296101B2 (en) 2013-09-27 2016-03-29 Brain Corporation Robotic control arbitration apparatus and methods
US9579789B2 (en) 2013-09-27 2017-02-28 Brain Corporation Apparatus and methods for training of robotic control arbitration
US9886663B2 (en) 2013-10-08 2018-02-06 Qualcomm Incorporated Compiling network descriptions to multiple platforms
US9489623B1 (en) 2013-10-15 2016-11-08 Brain Corporation Apparatus and methods for backward propagation of errors in a spiking neuron network
US9536190B2 (en) 2013-10-17 2017-01-03 Qualcomm Incorporated Dynamically assigning and examining synaptic delay
US9597797B2 (en) 2013-11-01 2017-03-21 Brain Corporation Apparatus and methods for haptic training of robots
US9463571B2 (en) 2013-11-01 2016-10-11 Brian Corporation Apparatus and methods for online training of robots
US9248569B2 (en) 2013-11-22 2016-02-02 Brain Corporation Discrepancy detection apparatus and methods for machine learning
US9460384B2 (en) 2013-12-11 2016-10-04 Qualcomm Incorporated Effecting modulation by global scalar values in a spiking neural network
US20150212861A1 (en) * 2014-01-24 2015-07-30 Qualcomm Incorporated Value synchronization across neural processors
US9358685B2 (en) 2014-02-03 2016-06-07 Brain Corporation Apparatus and methods for control of robot actions based on corrective user inputs
US9342782B2 (en) 2014-02-21 2016-05-17 Qualcomm Incorporated Stochastic delay plasticity
US9533413B2 (en) 2014-03-13 2017-01-03 Brain Corporation Trainable modular robotic apparatus and methods
US9987743B2 (en) 2014-03-13 2018-06-05 Brain Corporation Trainable modular robotic apparatus and methods
US20150278684A1 (en) * 2014-03-26 2015-10-01 Qualcomm Incorporated Time synchronization of spiking neuron models on multiple nodes
US9852006B2 (en) 2014-03-28 2017-12-26 International Business Machines Corporation Consolidating multiple neurosynaptic core circuits into one reconfigurable memory block maintaining neuronal information for the core circuits
US9630317B2 (en) 2014-04-03 2017-04-25 Brain Corporation Learning apparatus and methods for control of robotic devices via spoofing
US9613308B2 (en) 2014-04-03 2017-04-04 Brain Corporation Spoofing remote control apparatus and methods
US9992057B2 (en) 2014-04-25 2018-06-05 International Business Machines Corporation Yield tolerance in a neurosynaptic system
US9346167B2 (en) 2014-04-29 2016-05-24 Brain Corporation Trainable convolutional network apparatus and methods for operating a robotic vehicle
US10194163B2 (en) 2014-05-22 2019-01-29 Brain Corporation Apparatus and methods for real time estimation of differential motion in live video
US9713982B2 (en) 2014-05-22 2017-07-25 Brain Corporation Apparatus and methods for robotic operation using video imagery
US9939253B2 (en) 2014-05-22 2018-04-10 Brain Corporation Apparatus and methods for distance estimation using multiple image sensors
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
US9579790B2 (en) 2014-09-17 2017-02-28 Brain Corporation Apparatus and methods for removal of learned behaviors in robots
US9821470B2 (en) 2014-09-17 2017-11-21 Brain Corporation Apparatus and methods for context determination using real time sensor data
US9860077B2 (en) 2014-09-17 2018-01-02 Brain Corporation Home animation apparatus and methods
US9849588B2 (en) 2014-09-17 2017-12-26 Brain Corporation Apparatus and methods for remotely controlling robotic devices
US10032280B2 (en) 2014-09-19 2018-07-24 Brain Corporation Apparatus and methods for tracking salient features
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
US10679120B2 (en) * 2014-11-10 2020-06-09 International Business Machines Corporation Power driven synaptic network synthesis
US9426946B2 (en) 2014-12-02 2016-08-30 Brain Corporation Computerized learning landscaping apparatus and methods
US9717387B1 (en) 2015-02-26 2017-08-01 Brain Corporation Apparatus and methods for programming and training of robotic household appliances
US10169701B2 (en) * 2015-05-26 2019-01-01 International Business Machines Corporation Neuron peripheral circuits for neuromorphic synaptic memory array based on neuron models
US9840003B2 (en) 2015-06-24 2017-12-12 Brain Corporation Apparatus and methods for safe navigation of robotic devices
US10197664B2 (en) 2015-07-20 2019-02-05 Brain Corporation Apparatus and methods for detection of objects using broadband signals
KR102609997B1 (ko) 2015-10-23 2023-12-06 가부시키가이샤 한도오따이 에네루기 켄큐쇼 모듈 및 전자 기기
KR102565273B1 (ko) * 2016-01-26 2023-08-09 삼성전자주식회사 뉴럴 네트워크에 기초한 인식 장치 및 뉴럴 네트워크의 학습 방법
US20170223589A1 (en) * 2016-02-01 2017-08-03 Qualcomm Incorporated Managing Data Reception Following a Tune-Away
US10295972B2 (en) 2016-04-29 2019-05-21 Brain Corporation Systems and methods to operate controllable devices with gestures and/or noises
US11238337B2 (en) * 2016-08-22 2022-02-01 Applied Brain Research Inc. Methods and systems for implementing dynamic neural networks
US11281963B2 (en) * 2016-09-26 2022-03-22 Intel Corporation Programmable neuron core with on-chip learning and stochastic time step control
US11270193B2 (en) * 2016-09-30 2022-03-08 International Business Machines Corporation Scalable stream synaptic supercomputer for extreme throughput neural networks
US10748060B2 (en) * 2016-10-14 2020-08-18 Intel Corporation Pre-synaptic learning using delayed causal updates
US11037054B2 (en) * 2016-12-20 2021-06-15 Intel Corporation Trace-based neuromorphic architecture for advanced learning
US10922607B2 (en) * 2016-12-30 2021-02-16 Intel Corporation Event driven and time hopping neural network
US11100385B2 (en) * 2016-12-30 2021-08-24 Intel Corporation Scalable free-running neuromorphic computer
CN106897769A (zh) * 2017-01-20 2017-06-27 清华大学 具有深度时间划窗的神经元信息处理方法和系统
US11455519B2 (en) * 2017-06-09 2022-09-27 University Of Southern California Method for estimating output neuron spikes based on input-output spike data
US11521045B2 (en) * 2017-06-14 2022-12-06 Knowm, Inc. Anti-Hebbian and Hebbian (AHAH) computing
CN109491784B (zh) * 2018-10-18 2021-01-22 北京旷视科技有限公司 降低内存占用量的方法、装置、电子设备、可读存储介质
CN109635938B (zh) * 2018-12-29 2022-05-17 电子科技大学 一种自主学习脉冲神经网络权值量化方法
CN114970829B (zh) * 2022-06-08 2023-11-17 中国电信股份有限公司 脉冲信号处理方法、装置、设备及存储

Family Cites Families (81)

* Cited by examiner, † Cited by third party
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 Круглов Сергей Петрович Адаптивная система управления с идентификатором и неявной эталонной моделью
US5980096A (en) 1995-01-17 1999-11-09 Intertech Ventures, Ltd. Computer-based system, methods and graphical interface for information storage, modeling and stimulation of complex systems
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
HUP0003927A2 (hu) 1997-06-11 2001-02-28 University Of Southern California Dinamikus szinapszis neuronhálózatokban történő jelfeldolgozáshoz
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
US7536374B2 (en) 1998-05-28 2009-05-19 Qps Tech. Limited Liability Company Method and system for using voice input for performing device functions
AU2001249990A1 (en) 2000-02-16 2001-08-27 Charles Stark Draper Laboratory 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
JP4333364B2 (ja) 2001-08-23 2009-09-16 ソニー株式会社 ロボット装置、顔認識方法及び顔認識装置
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 情報処理装置、情報処理方法、パターン認識装置、及びパターン認識方法
WO2006099429A2 (en) 2005-03-14 2006-09-21 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
CA2642041C (en) 2005-12-23 2014-07-15 Le Tan Thanh Tai 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 Сименс Акциенгезелльшафт Способ компьютеризованного обучения одной или более нейронных сетей
CN102056554A (zh) 2008-06-09 2011-05-11 百乐仕医疗器械有限公司 用于管状器官的医疗工具
US8282016B2 (en) 2008-10-02 2012-10-09 Silverbrook Research Pty Ltd Position-coding pattern having tag coordinates encoded by successive subsequences of cyclic position code
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
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
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
US9122994B2 (en) 2010-03-26 2015-09-01 Brain Corporation Apparatus and methods for temporally proximate object recognition
US9405975B2 (en) 2010-03-26 2016-08-02 Brain Corporation Apparatus and methods for pulse-code invariant object recognition
US8433665B2 (en) * 2010-07-07 2013-04-30 Qualcomm Incorporated Methods and systems for three-memristor synapse with STDP and dopamine signaling
US8942466B2 (en) 2010-08-26 2015-01-27 Brain Corporation Sensory input processing apparatus and methods
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
US9070039B2 (en) 2013-02-01 2015-06-30 Brian Corporation Temporal winner takes all spiking neuron network sensory processing apparatus and methods
US8712941B2 (en) 2011-09-21 2014-04-29 Brain Corporation Elementary network description for efficient link between neuronal models and 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
US8725658B2 (en) 2011-09-21 2014-05-13 Brain Corporation Elementary network description for efficient memory management in 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
US8725662B2 (en) 2011-09-21 2014-05-13 Brain Corporation Apparatus and method for partial evaluation of synaptic updates based on system events
US9460387B2 (en) 2011-09-21 2016-10-04 Qualcomm Technologies Inc. Apparatus and methods for implementing event-based updates in neuron networks
US9098811B2 (en) 2012-06-04 2015-08-04 Brain Corporation Spiking neuron network apparatus and methods
US9015092B2 (en) 2012-06-04 2015-04-21 Brain Corporation Dynamically reconfigurable stochastic learning apparatus and methods
US10210452B2 (en) 2011-09-21 2019-02-19 Qualcomm Incorporated High level neuromorphic network description apparatus and methods
US9146546B2 (en) 2012-06-04 2015-09-29 Brain Corporation Systems and apparatus for implementing task-specific learning using spiking neurons
US8712939B2 (en) 2011-09-21 2014-04-29 Brain Corporation Tag-based apparatus and methods for neural networks
US20130325774A1 (en) 2012-06-04 2013-12-05 Brain Corporation Learning stochastic apparatus and methods
US9104186B2 (en) 2012-06-04 2015-08-11 Brain Corporation Stochastic apparatus and methods for implementing generalized learning rules
US8943008B2 (en) 2011-09-21 2015-01-27 Brain Corporation Apparatus and methods for reinforcement learning in artificial neural networks
US9117176B2 (en) 2011-09-21 2015-08-25 Qualcomm Technologies Inc. Round-trip engineering apparatus and methods for neural networks
US9213937B2 (en) 2011-09-21 2015-12-15 Brain Corporation Apparatus and methods for gating analog and spiking signals in artificial neural networks
US20130151450A1 (en) 2011-12-07 2013-06-13 Filip Ponulak Neural network apparatus and methods for signal conversion
US9224090B2 (en) 2012-05-07 2015-12-29 Brain Corporation Sensory input processing apparatus in a spiking neural network
US20130297539A1 (en) 2012-05-07 2013-11-07 Filip Piekniewski Spiking neural network object recognition apparatus and methods
US9129221B2 (en) 2012-05-07 2015-09-08 Brain Corporation Spiking neural network feedback apparatus and methods
US9111215B2 (en) 2012-07-03 2015-08-18 Brain Corporation Conditional plasticity spiking neuron network apparatus and methods
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
US9367798B2 (en) 2012-09-20 2016-06-14 Brain Corporation Spiking neuron network adaptive control apparatus and methods
US9111226B2 (en) 2012-10-25 2015-08-18 Brain Corporation Modulated plasticity apparatus and methods for spiking neuron network
US8972315B2 (en) 2012-10-25 2015-03-03 Brain Corporation Apparatus and methods for activity-based plasticity in a spiking neuron network
US9183493B2 (en) 2012-10-25 2015-11-10 Brain Corporation Adaptive plasticity apparatus and methods for spiking neuron network
US9275326B2 (en) 2012-11-30 2016-03-01 Brain Corporation Rate stabilization through plasticity in spiking neuron network
US9177245B2 (en) 2013-02-08 2015-11-03 Qualcomm Technologies Inc. Spiking network apparatus and method with bimodal spike-timing dependent plasticity
US9436908B2 (en) 2013-02-22 2016-09-06 Qualcomm Technologies Inc. Apparatus and methods for rate-modulated plasticity in a neuron network

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107194462A (zh) * 2016-03-15 2017-09-22 清华大学 三值神经网络突触阵列及利用其的神经形态计算网络
CN107194462B (zh) * 2016-03-15 2020-05-19 清华大学 三值神经网络突触阵列及利用其的神经形态计算网络系统

Also Published As

Publication number Publication date
US9147156B2 (en) 2015-09-29
TWI503761B (zh) 2015-10-11
US20130073491A1 (en) 2013-03-21
WO2013043903A1 (en) 2013-03-28

Similar Documents

Publication Publication Date Title
TWI503761B (zh) 用於在脈波編碼的網路中的突觸更新的裝置和方法
US9165245B2 (en) Apparatus and method for partial evaluation of synaptic updates based on system events
KR102592146B1 (ko) 시냅스 가중치 학습을 위한 뉴런 회로, 시스템 및 방법
Walter et al. Neuromorphic implementations of neurobiological learning algorithms for spiking neural networks
US10282661B2 (en) Multi-modal neural network for universal, online learning
US9256215B2 (en) Apparatus and methods for generalized state-dependent learning in spiking neuron networks
KR101793011B1 (ko) 스파이킹 네트워크들의 효율적인 하드웨어 구현
US9256823B2 (en) Apparatus and methods for efficient updates in spiking neuron network
US9129221B2 (en) Spiking neural network feedback apparatus and methods
US8990133B1 (en) Apparatus and methods for state-dependent learning in spiking neuron networks
US9224090B2 (en) Sensory input processing apparatus in a spiking neural network
TWI515670B (zh) 用以強化學習之裝置、系統及電腦程式產品
Rao et al. Neural networks: algorithms and applications
US20210304005A1 (en) Trace-based neuromorphic architecture for advanced learning
US20140012788A1 (en) Conditional plasticity spiking neuron network apparatus and methods
Marhon et al. Recurrent neural networks
US20130073493A1 (en) Unsupervised, supervised, and reinforced learning via spiking computation
US20130297539A1 (en) Spiking neural network object recognition apparatus and methods
KR20160076520A (ko) 인과적 현출성 시간 추론
EP3055812A2 (en) Shared memory architecture for a neural simulator
US9959499B2 (en) Methods and apparatus for implementation of group tags for neural models
US20150074026A1 (en) Apparatus and methods for event-based plasticity in spiking neuron networks
EP3537344B1 (en) Signal processing method and device based on spiking neural network
Bieszczad Neurosolver: a neural network based on a cortical column
KR101782760B1 (ko) 시냅스 지연의 동적 할당 및 검사

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees