TW201329743A - 用於仿神經系統之基本網路描述 - Google Patents
用於仿神經系統之基本網路描述 Download PDFInfo
- Publication number
- TW201329743A TW201329743A TW101133859A TW101133859A TW201329743A TW 201329743 A TW201329743 A TW 201329743A TW 101133859 A TW101133859 A TW 101133859A TW 101133859 A TW101133859 A TW 101133859A TW 201329743 A TW201329743 A TW 201329743A
- Authority
- TW
- Taiwan
- Prior art keywords
- unit
- binary
- event
- rule
- memory
- Prior art date
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/04—Architecture, e.g. interconnection topology
- G06N3/049—Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
-
- 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/045—Combinations of 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/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- 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/08—Learning methods
- G06N3/088—Non-supervised learning, e.g. competitive learning
-
- 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
- G06N3/105—Shells for specifying net layout
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N99/00—Subject matter not provided for in other groups of this subclass
- G06N99/007—Molecular computers, i.e. using inorganic molecules
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Molecular Biology (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Devices For Executing Special Programs (AREA)
- Debugging And Monitoring (AREA)
- Logic Circuits (AREA)
Abstract
本發明揭示一種簡單格式且該簡單格式稱為基本網路描述(END)。該格式可完全描述一大尺度神經元模型及用以高效地模擬此一模型之軟體或硬體引擎之實施例。此等仿神經引擎之架構對於具有尖峰時序相依可塑性之尖峰網路之高效能並行處理而言係最佳的。神經元網路及用於操作神經元網路之方法包括:複數個單元,其中每一單元具有一記憶體;及複數個二元體,每一二元體連接至該複數個單元中之一對單元。該複數個單元之單元更新規則之執行係次序獨立的,且該複數個二元體之二元體事件規則之執行係次序獨立的。
Description
本發明一般而言係關於用於模擬執行神經計算(諸如視覺感知及運動控制)之神經元網路之並行分散式電腦系統。
本申請案係關於與本發明同時提出申請且標題為「Elementary Network Description For Efficient Link Between Neuronal Models And Neuromorphic Systems」之第13/239,148號美國專利申請案、與本發明同時提出申請且標題為「Elementary Network Description For Efficient Memory Management In Neuromorphic Systems」之第13/239,155號美國專利申請案、與本發明同時提出申請且標題為「Elementary Network Description For Efficient Implementation Of Event-Triggered Plasticity Rules In Neuromorphic Systems」之第13/239,163號美國專利申請案、與本發明同時提出申請且標題為「Apparatus And Methods For Synaptic Update In A Pulse-Coded Network」之第13/239,255號美國專利申請案且係關於與本發明同時提出申請且標題為「Apparatus And Methods For Partial Evaluation Of Synaptic Updates Based On System Events」之第13/239,259號美國專利申請案,上述申請案中之每一者係共同擁有的且其全文以引用之方式併入本文中。
本專利文件之揭示內容之一部分含有受版權保護之材
料。如美國專利與商標局專利檔案或記錄中所顯現,版權所有者不反對任何人對本專利文件或本專利揭示內容進行拓製,但另外保留所有版權。
大多數神經元模型及系統由簡單單元(稱為神經元)之網路組成,該等簡單單元彼此交互作用且經由連接(稱為突觸)與外部世界交互作用。在此等神經元系統中並行實施資訊處理。
存在幫助神經系統科學家模擬神經系統之模型之諸多專門軟體工具。此等工具包含NEURON、GENESIS、NEST、BRIAN及模擬在生物學上相似但不相同且在解剖學上現實之模型之諸多其他免費軟體工具。設計此等工具意在使此等模型之設計便利於神經系統科學家。然而,對於用以設計經最佳化軟體或硬體引擎以高效模擬此等模型(尤其當需要即時效能時,如在自主機器人應用中)而言,該等工具係麻煩的。
相比而言,存在經設計以用於對x86、ARM及其他矽晶片之高效硬體實施方案之諸多低階語言(諸如組譯語言、LLVM(低階虛擬機器)語言、Java位元組碼、晶片指令集等)。然而,此等語言幾乎不適用於神經元系統之並行模擬,此主要因為矽晶片並非針對此等並行神經元模擬而設計。
顯而易見,需要具有經最佳化以用於神經元模型之並行執行及模擬之並行硬體架構及對應語言。
本發明藉由提供(尤其)用於仿神經系統之基本網路描述之設備及方法來滿足上述需要。
本發明之某些實施例提供神經元網路,該等神經元網路包括:複數個單元,其中每一單元具有根據一單元更新規則更新之一記憶體;及複數個二元體,其中每一二元體連接至連接至該複數個單元中之一對單元且經組態以根據一個二元體事件規則回應於自該對單元中之一突觸前單元接收之一事件而更新該對單元中之另一突觸後單元之該記憶體。該複數個單元之單元更新規則之執行係次序獨立的,且該複數個二元體之二元體事件規則之執行係次序獨立的。該等二元體事件規則可並行執行,且其中該等單元更新規則可並行執行。針對每一二元體,該對應二元體事件規則之該執行係回應於該突觸前單元之該記憶體之一改變而觸發,且在其對應突觸前單元之該記憶體之改變之發生與對其對應突觸後單元之該記憶體之更新之間存在一延遲。每一二元體之該二元體事件規則係在其對應突觸前單元將一事件傳輸至該每一二元體時觸發。
本發明之某些實施例提供藉由以下各項實施神經元網路之方法:使用經組態以回應於自一突觸前單元接收之一事件而修改一突觸後單元之一記憶體之二元體互連複數個單元;及組態判定該等二元體如何回應於事件之二元體事件規則。某些實施例包括針對每一單元組態控制該每一單元對由一個二元體起始之記憶體更新之回應之一單元更新規
則。該等二元體事件規則之執行係次序獨立的,且該等單元更新規則之執行係次序獨立的。組態二元體事件規則可包含:組態該等二元體事件規則中之每一者以在於具有由一系統時脈判定之一持續時間之一時間步階期間接收一事件之後在該時間步階內執行。每一突觸前單元可維持控制將事件傳輸至一個二元體之一事件條件。可針對每一突觸前單元組態一事件後單元更新規則以與該等事件之該傳輸相關聯地執行,其中該事件後單元更新規則致使該每一突觸前單元之記憶體之修改。
自隨附圖式及以下詳細描述將更加顯而易見本發明之其他特徵、其本質及各種優點。
本文中所揭示之所有圖© Brain公司2011年版權。保留所有權利。
現在將參考圖式詳細描述本發明之實施例,該等圖式經提供作為圖解說明性實例以便使得熟習此項技術者能夠實踐本發明。應注意,下文之圖及實例並不意欲將本發明之範疇限於一單項實施例,而是藉由與某些或所有所描述或所圖解說明元件互換或組合,其他實施例係可能的。在所有圖式中,將在方便之情況下使用相同元件符號來指代相同或相似部件。
在可使用已知組件部分或完全地實施此等實施例之某些元件之情況下,將僅描述對於對本發明之一理解而言必要的此等已知組件之彼等部分,且將省略對此等已知組件之
其他部分之詳細描述以便不使本發明模糊。
在本發明說明書中,不應將展示一單數組件之一實施例視為限制性;而是,本發明意欲囊括包含複數個相同組件之其他實施例,且反之亦然,除非本文中另有明確陳述。
此外,本發明囊括本文中藉由圖解說明提及之組件之目前及將來已知等效物。
如本文中所使用,術語「電腦」、「計算裝置」及「經電腦化裝置」包含但不限於個人電腦(PC)及迷你電腦(無論桌上型、膝上型或其他)、主機電腦、工作站、伺服器、個人數位助理(PDA)、手持式電腦、嵌入式電腦、可程式化邏輯裝置、個人通信器、平板電腦、可攜式導航設施、配備有J2ME之裝置、蜂巢式電話、智慧電話、個人整合式通信或娛樂裝置或者能夠執行一指令集及處理一傳入資料信號之幾乎任何其他裝置。
如本文中所使用,術語「電腦程式」或「軟體」意在包含執行一功能之任何序列或者人類或機器可辨識步階。可虛擬地以任何程式設計語言或環境轉譯此程式,包含(舉例而言)C/C++、C#、Fortran、COBOL、MATLABTM、PASCAL、Python、組譯語言、標記語言(例如,HTML、SGML、XML、VoXML)及諸如此類以及物件導向環境(諸如共同物件請求代理人架構(CORBA)、JavaTM(包含J2ME、Java Beans等)、二進制運行時間環境(例如,BREW)及諸如此類。
如本文中所使用,術語「連接」、「連結」、「傳輸通
道」、「延遲線」、「無線」意指實現任何兩個或兩個以上實體(無論是實體還是邏輯/虛擬)之間的資訊交換的該等實體之間的一因果連結。
如本文中所使用,術語「記憶體」包含任何類型之積體電路或經調適以用於儲存數位資料之其他儲存裝置,包含(但不限於)ROM、PROM、EEPROM、DRAM、SDRAM、DDR/2 SDRAM、EDO/FPMS、RLDRAM、SRAM、「快閃」記憶體(例如,NAND/NOR)、憶阻器記憶體及PSRAM。
如本文中所使用,術語「微處理器」及「數位處理器」一般意欲包含所有類型之數位處理裝置,包含(但不限於)數位信號處理器(DSP)、精簡指令集電腦(RISC)、一般用途(CISC)處理器、微處理器、閘陣列(例如,FPGA)、PLD、可重組電腦織物(RCF)、陣列處理器、安全微處理器及特殊應用積體電路(ASIC)。此等數位處理器可組合於一單個整體IC晶粒上或跨越多個組件分佈。
如本文中所使用,術語「事件」、「動作電位」、「脈衝」、「尖峰」、「尖峰叢發」及「脈衝串」一般意欲指代(但不限於)任何類型之一脈衝信號(例如,一信號之某一特性(例如,振幅、強度、相位或頻率)自一基線值至一較高或較低值之一迅速改變後續接著至該基線值之一迅速返回),且可指代一單個尖峰、若干尖峰之一叢發、一電脈衝、一電壓中脈衝、一電流中脈衝、一脈衝及/或脈衝叢發之一軟體表示、脈衝之一延時或時序之一軟體表示中之
任一者及任何其他脈衝或與一脈衝傳輸系統或機構相關聯之脈衝類型。如本文中所使用,術語「spnet」包含在2006年的且標題為「Polychronization:Computation with Spikes」之Izhikevich出版物中描述之尖峰網路。
本文中揭示對本發明之某些實施例(包含系統、設備及方法)之詳細描述。雖然本發明之某些態樣可在以可高效地模擬大尺度神經元系統之軟體及硬體實施之並行模擬引擎架構之上下文中最佳理解,但本發明之實施例亦可用於實施經最佳化以用於以硬體獨立方式高效表示神經元系統之一指令集-基本網路描述(END)格式。
舉例而言,某些實施例可部署於一仿神經電腦系統之一硬體及/或軟體實施方案中。在一個此種實施方案中,一影像處理系統可包含在一特殊應用積體電路(「ASIC」)中體現之一處理器,該處理器可經調適或組態以供在一嵌入式應用(諸如一假肢裝置)中使用。
現在參考圖1中所繪示之實例,其展示及詳細描述了一神經模擬器開發環境100之一種組態。在此實例中,網路設計、連接性擴充、監視與視覺化、引擎特定初始化及引擎區塊可包括軟體工具,而帶標籤程式庫、高階描述、除錯表、低階描述及引擎特定資料格式區塊可實施為本文中更詳細地描述之呈特定格式之資料結構。
圖1之神經模擬器開發環境允許一使用者定義一任意神經系統模型且在一任意計算平臺(引擎)上執行該模型。神
經模擬器開發100可包括經由以某些格式組態之資料結構彼此互動之若干個軟體工具(圖1中之透明區塊)及可以一單個電腦、一電腦叢集、GPU或一專門化硬體體現之一計算引擎104。在某些實施例中,計算引擎104可係經電腦化控制/感覺輸入處理設備之一部分且經由圖1中之一對箭頭102與該設備之剩餘部分交換資料。藉由實例方式,計算引擎104經由輸入102自「真實世界」接收感覺資訊且經由輸出103將運動命令發送至控制設備之任何適當致動器(未展示)從而經由一組驅動器實現對該等感覺輸入之控制/處理回應。
通常,一使用者使用一GUI網路設計工具(例如,類似於Microsoft Visual StudioTM)規定神經模擬器100之所期望網路佈局。在一項實例中,神經模擬器採用經組態以實施各種專門化功能之專門化程式庫。舉例而言,某些特定程式庫模組可簡要地描述為「視網膜+視丘+具有1M神經元之V1」。在另一實施例中,可更詳細地描述該等程式庫模組,從而提供定義(例如)可塑性、神經元動態、皮質微電路等之各種預設參數(如適當)之初始化。GUI網路設計工具保存呈一「高階描述」格式之神經模擬器100之網路佈局。在一項實例中,GUI網路設計工具經組態以修改圖1中之程式庫106。
使用程式庫106將網路佈局之高階描述編譯成一低階描述(基本網路描述-END)108。舉例而言,高階描述可包括對皮質區域V1及V2(未展示)之描述且需要根據儲存於程式
庫106中之一適當連接性規則將其連接。編譯器分配神經元、建立該等神經元之間的連接等,且以類似於一組譯語言之一低階描述保存網路佈局100。在一項實例中,編譯器可提供在除錯期間用於監視與視覺化工具之適當表。
基本網路描述(END)表示充當模擬器工具與硬體平臺實施方案之間的一中間瓶頸(亦即,一連結),如圖2中所圖解說明。END表示提供將開發環境與下伏硬體隔離之一抽象層。END之一個目標係隔離開發神經網路模型之步階與硬體模擬工具,如圖2中所圖解說明。END方法可操作以將神經模型(諸如圖1之模型)之實施方案分割成兩個步驟。在第一步驟處,神經系統科學家使用高階描述語言及END表示形成不同複雜性之神經模型。在第二步驟處,開發者(程式員及硬體工程師)修改且調適下伏實施方案區塊以調適及最佳化用於一特定硬體/軟體平臺之模型操作等。在此架構中,END格式執行與LLVM(低階虛擬機器)或Java位元組碼相同之服務;然而,END格式可經最佳化以用於神經元系統之並行表示及執行。
將模型之低階描述轉換為適合於上載至計算引擎104之引擎特定二進制形式,如圖1中所展示。該計算引擎能夠以與用於後續重新上載相同之格式保存其電流狀態。在計算結果之除錯及視覺化以及對系統之監視期間圖1之監視與視覺化區塊110使用二進制資料。如上文所描述,計算引擎經由感測器及致動器(藉由驅動器連接至硬體)與真實世界互動,如藉由圖1中之箭頭102所繪示。
網路之基本網路描述(END)包括最低階平臺獨立模型繪示。在一項實施方案中,此描述類似於通常在電腦程式化技藝中使用之組譯語言描述地組態。然而,儘管多數現有電腦組譯語言實施方案係處理器依賴的,但END描述係硬體不可知的。
END描述亦可操作為一高階描述與神經模型之平臺特定實施方案之間的一平臺獨立連結,如圖2中所圖解說明。在圖2中,區塊210(神經模擬器1至3)表示各種網路開發工具(諸如NEURON、GENESIS、NEST),而區塊220(硬體平臺1至3)表示用以執行各別神經模擬器模型之不同硬體實施方案(例如,CPU、多處理器電腦(工作站、桌上型電腦、伺服器、大型主機、ASIC、FPGA等)。
在END實施方案之一項實施例中,以一XML格式(或任何其他方便結構化資料格式)或以旨在提供足以確切且完整地規定神經模擬模型之每一態樣(包含(但不限於)每一神經元、樹突狀樹、突觸、神經元及突觸類別、可塑性規則、神經元動態等)之最小輸入資料集之一相關資料庫正規形式提供輸入神經模擬器模型資料。此輸入資料集經由上文物項之間的多種關係來組態。此輸入資料集可以多種方式組態:(i)各自描述一單個資料結構(例如,一神經元)之多個檔案之一集合;(ii)一單個檔案(可係經壓縮的);或(iii)階層式目錄/資料夾/檔案結構;或其一組合。
在一項實例中,網路模擬模型之基礎(不可部分完成
(atomic))計算單元係一神經元,稱為一「單元」。在另一實例中,該單元包括其中單元藉由接點連結以形成樹突狀樹(形成神經元)之一神經元隔室。在此等實例中,突觸包括自一個單元至另一單元之連接,藉此實現經由一連接性圖形描述單元(節點)互連。此等圖形不必包括透過來自體細胞之突觸連接至樹之樹。
為了獲得操作網路描述,每一單元(例如,神經元、隔室)及每一突觸經受掌管其動態之一組規則。在一項實例中,此等規則中之某些規則包括應用於神經元單元及接點之基於時脈之規則,而其他規則係基於事件的且僅應用於突觸。
藉由實例方式,每一神經元單元可經受描述彼單元之尖峰產生機制之一組規則,包括:(i)用於引發一尖峰之條件;及(ii)在引發尖峰之後應用於單元動態狀態變數之一組修改。類似地,每一突觸經受判定當一突觸前單元引發時對突觸執行之一組動作及當一突觸後單元引發時對突觸執行之一組動作之尖峰規則。
在一項實施例中,END格式用以產生實施計算引擎(例如,圖1中之引擎104)之一C碼。在本文中稱為END 1.0之此實施例中,對規則之描述包括插入至一C碼樣板中以提供具有二進制可擴充功能性之神經元模型之碼字串,如由下文實例所說明。
END 1.0通常實施包括具有可能子類別之unit_class、junction_class、synaptic_class及event_rule之物件類別之
一物件繼承結構。每一此類別具有例項,亦即,單元、接點、突觸及規則。
END 1.0可經組態以將資料(單元、接點、突觸)與方法(更新及尖峰規則)分離,藉此啟用計算引擎(例如,圖1中之引擎104之連結器112)以實施資料方法互連。在計算引擎之某些實施方案中,按資料將計算操作分組(例如,對於每一突觸,針對彼突觸執行所有動作(規則))。在計算引擎之其他常用實施方案(例如,有用於GPU硬體)中,按方法將計算操作分組(例如,對於每一更新規則,針對經受彼更新規則之所有突觸執行未完成請求)。END可經組態以與上文操作分組組態中之任一者相等地良好操作。
當實施複雜現實系統(例如,一哺乳動物類視覺系統)之大規模模型時,由END格式所描述的某些資料結構可消耗網路模型資源(記憶體或CPU或兩者)中之大多數(在一項實例中,高達99%)。此等資料結構(通常稱為「正準結構」)之實施方案極大地受益於專門化硬體(諸如經最佳化以模擬此等正準結構之一ASIC或FGPA)之使用。類似地,在其中某些規則及方法消耗CPU處理資源中之大多數(例如,花費最多時間來執行)之某些實施方案中,專門化硬體加速器之開發提供正準方法之處理之一實質增加。不同硬體實施方案可硬線連接不同方法,從而導致多種多樣之硬體平臺。
藉助END描述得到之目標中之一者係提供足以用於描述任意複雜性之神經元模型之最小指令集。本文中,在描述
END格式時使用以下標記法:類別或定義類型包封於尖括弧<...>中;相對於類別定義,類別(或類型)內之欄位係縮排的,如下文實例之定義1中所展示。
在上文定義中,陳述<unit of(unit_class)>表示具有欄位「unit_id」及「Initialization」之類別「unit_class」之一例項之定義,如下:<unit of(unit_class)> unit_id Initialization 此類別定義一神經元或一隔室,但在原理上,可係由模型在一預定義模型執行時間步階(例如,1毫秒)處執行之任何神經單元。該單元係規定在模型時間步階中之每一者處執行之操作的物件unit_class之一例示。unit_class之欄位定義為如下:unit_id 係識別每一單元之一唯一標籤(若干或一字串)。另一選擇係,unit_id係一Per1或PHP或RegEx或者規定一有效識別碼範圍之MATLAB表達,且實際識別碼在由連結器建置之模型期間被指派。舉例而言,「exc(1:1000)」或「exc1:exc1000」。
Initialization 係含有不同於類別之定義中之預設值的類別欄位之初始值之一結構。必須宣告且已用unit_class中之預設值初始化所
有此等值。
<unit_class of(unit_class)> unit_class_id execution_condition update_rule event_condition after_event_rule initialization 提供規定神經元動態、分配神經元變數、定義尖峰處理規則等之一神經元模型類別之一泛用定義。類別<unit_class>係可自unit_class之另一物件衍生之一物件(如在物件導向程式化中)。<unit_class>物件之欄位係定義為如下:unit_class_id 係物件類別(字串)之一唯一名稱,例如,「exc」或「p23soma」或「p4cmprtmnt3」。此等物件名稱由神經元模型用作向量名稱以指代單元,例如,在背景處理程序中或在I/O處理程序中。
execution_condition 在每一模型執行時間步階處評估以判定是否執行此類別之單元之條件,舉例而言:「now%10==0」;或「DA>0.1」。若execution_condition不存在(欄位係空白),則在每一模型時間步階(亦即,系統時脈步階循環)處執行各別單元。當自一基底類別(超級類別)衍生一類別(子類別)時,則所衍生類別執行條件更動控制基底類別執行條件。
update_rule
定義將由連結器轉換為可執行碼之一碼字串。在一項實例中,該碼字串包括一向前歐拉(Euler)數值方法標記法,例如:`x(t+1)=x(t)+tau*(F(x(t))).‘I+=g*(E-V);g+=tau*(-g)/5;v+=tau*(2*(v+70)*(v+50)-u+I)/20;u+=tau*0.1*(2*(v+70)-u);`. 在另一實例中,該碼字串規定在每一模型執行步驟處執行之映射x(t+1)=「x(t)+tau*(f(x(t))」或一C可執行碼(函數或副程式)。當自一基底類別衍生該類別時,則首先執行子類別之物件update_rule,後續接著基底類別規則,藉此允許藉由子類別規則執行之某一變數之更新。
event_condition 定義偵測尖峰所需之一邏輯陳述。例如「v>30」。執行每一時脈循環(模型時間步階)。當自一基底類別衍生該類別時,則子類別之event_condition替換基底類別之event_condition。
after_event_rule 當偵測到一尖峰時執行之碼。例如「v=-65;u=u-8」;對於一所衍生子類別,在基底類別之after_event_rule之前執行子類別after_event_rule。
initialization 設定所有變數之初始值及單元之參數。例如,「float v=0;float u=0;float g_AMPA=0;」。不同單元類別可具有不同數目個突觸傳導及不同變數名稱。初始化字串由連
結器剖析以在建置期間獲得所有變數之名稱。所衍生物件類別可添加新變數。對於一所衍生子類別,首先執行基底類別之初始化,且然後稍後執行此初始化,此乃因此初始化可改變預設參數中之某些參數。該初始化亦可改變自基底類別繼承之預設參數值。藉由實例方式,初始化字串「float g_NMDA=1;g_AMPA=1」形成一新變數g_NMDA且重設現有變數g_AMPA之值。
類似地,可使用與上文相同之方法學描述接點及突觸。
<junction of(junction_class)> unit_id1 unit_id2 initialization 提供一神經元模型類別之一泛用定義,該泛用定義提供若干對單元之間的連接性。欄位junction_class指代父物件類別(舉例而言,「gap_junction」或「dendritic_tree」)之名稱。類別欄位係如下:unit_id1,unit_id2 規定兩個經連接神經元單元之識別碼。
initialization 設定參數及變數之初始值。類別junction_class可用作基底以定義一子類別<junction_class of(junction_class)>且宣告為如下:<junction_class of(junction_class)> junction_class_id
execution_condition unit_class_1 unit_class_2 update_rule initialization 其中junction_class_id 係規定可自另一類別衍生之類別之一唯一識別標籤。
execution_condition 在每一模型執行時間步階處評估以判定是否執行此類別之單元之條件,舉例而言:「now%10==0」;或「DA>0.1」。若execution_condition不存在(欄位係空白),則在每一模型時間步階處執行各別單元。當自一基底類別(超級類別)衍生一類別(子類別)時,則所衍生類別執行條件更動控制基底類別執行條件。
unit_class_1 unit_1之類別識別符;unit_class_2 unit_2之類別識別符;若省略,則假定接點應用於所有單元類別。
update_rule 定義將由連結器轉換為可執行碼之一碼字串。在一項實例中,該碼字串包括一向前歐拉數值方法標記法,例如:'g_2to1*(V2-V1),g_1to2*(V1-V2)'。
在另一實例中,可適用於歐姆接點,可跳過_class部分
且僅規定<junction>中之傳導g_2to1及g_1to2。當自一基底類別衍生該類別時,則首先執行子類別之物件update_rule,後續接著基底類別規則,藉此允許藉由子類別規則執行之某一變數之更新。
Initialization 設定(若存在)用以執行update_code之變數之初始值。
該類別突觸係宣告為如下:<synapse of(synaptic_class)> pre post delay initialization 其中pre post 分別係突觸前單元與突觸後單元之識別符。
delay 規定軸突傳導延遲值(在模擬時間步階中)。
initialization 設定初始參數及變數值。類似於接點類別,可自一基底突觸類別衍生之突觸類別係宣告為如下:<synaptic_class of(synaptic_class)> synaptic_class_id initialization
其中synaptic_class_id 係規定基底類別之唯一標籤,該基底類別用作一向量識別符以指代背景處理程序中之個別突觸(但可置亂次序)。此類別可自另一類別衍生。
initialization 設定每一突觸之參數及變數之初始值,例如,「float w=5;float sd=0;float p=0;」。定義存取突觸變數及post_unit變數之一突觸前事件規則之類別係宣告為如下:<presynaptic_event of(event_rule)> synaptic_class post_unit_class 其中synaptic_class 表示此可塑性規則應用於其之突觸類別之名稱。物件event_rule用以規定當突觸前單元引發時執行之動作。synaptic_class之規則定義一突觸前神經元(單元)之STDP規則之短期可塑性(STP)及長期增效(LTP)部分。
post_unit_class 規定突觸後單元之類別,藉此定義event_rule之動作之域,藉此提供STDP規則執行所需之資訊(例如,用以遞送突觸後電位(PSP)及用以存取變數(諸如last_spike)之類別)。類別postsynaptic_event係宣告為如下:<postsynaptic_event of(event_rule)>
synaptic_class post_unit_class 其中synaptic_class 規定此可塑性規則應用於其之突觸類別之名稱。物件event_rule用以定義當突觸後單元(以此等突觸為基準)引發時藉助突觸變數執行之一動作列表,藉此實施每當突觸後單元引發一尖峰時執行之STDP可塑性規則之LTP部分。
post_unit_class 規定突觸後單元之類別,藉此定義此規則之一動作域。在一項實施例中,此規則經組態以僅存取突觸變數。event_rule類別亦可自一基底類別衍生,如下:<event_rule of(event_rule)> event_rule_id rule initialization 其中event_rule_id 係規定規則類別之一唯一標籤。一般而言,該規則類別可自另一物件類別event_rule衍生。
Rule 係規定當發生一事件時旋即執行之動作之一碼之一字串表示。藉由實例方式,突觸後電位(PSP)之遞送可規定為:「g+=w」或「I+=w」或「g+=g*p」。
類似地,與一presynaptic_event相關聯之動作可定義
為:「p*=STP(現在-last_active);w-=LTD(現在-last_spike)」;而與一postsynaptic_event相關聯之動作可定義為:「w+=STDP(現在-last_active)」其中:「last_active」係自當突觸係作用中時之一先前時刻經過之時間;last_spik係突觸後單元之最後尖峰之時間,且「現在」係當前時間。
另外,event_rule類別可規定若干表,例如,STDP、LTP或其他生物動機之表。
initialization 將該等表之初始值設定為,舉例而言:「STDP={,..,}」;或「STP={,...,};LTD={...}」。
<background_process> execution_condition 每一模擬時間步階評估以判定是否運行處理程序之條件。例如,「now%10==0」或「DA>0.1」。如不存在,則每一時間步階運行處理程序。可存取其區域變數之unit_class或synaptic_class之名稱。下文之碼將運行於具有一任意次序(可能並行)之類別成員內之一迴圈中。若不存在,則假定處理程序每「真實」execution_condition運行一次,且每一單元或突觸可使用單元或突觸類別名稱存取。例如,單
元類別「exc」含有具有不必對應於列示其所按之次序之可能未知之次序之單元exc[i]。
update_rule 將執行之碼,例如「DA*=0.9」或在synaptic_class域中「w+=DA*sd;sd*=0.995」;或不具有域僅「exc[rand()].I=100」;initialization 全域變數之初始化,例如,「float DA=0」。
可規定模擬時間步階及其他運行時間參數。存在每人可存取之幾個全域變數,例如「現在」-目前時間。
相差一參數之類別應宣告為一單個類別且參數值應在例示中規定。若存在僅少數(例如兩個)不同參數值,則規定兩個不同類別(每一類別具有在方程式中硬線連接之參數)可有意義。
END框架之外部介面描述外部感覺輸入至神經元網路(例如,圖1之網路100)中之提供及輸出(經由(舉例而言)圖1之路徑102)至外部機器人設備之遞送。END外部介面包括兩個主要邏輯區塊:下文詳細描述之感覺輸入區塊及輸出與監視區塊。
此區塊定義外部輸入至網路模型之各種單元之連接。藉由實例方式,一N通道(編號1至N)尖峰視網膜輸入之感覺類別可宣告為如下:
<unit_class> unit_class_id='retina' after_event_rule //may be empty
上文類別宣告通知輸入驅動器及計算引擎來自視網膜之尖峰將到之處。輸入之結構進一步使用以下N空單元之宣告定義:<unit> unit_id='retina(1:N)' 在一項實例中,不存在在每一網路時間步階處執行所需之更新規則。因此,計算引擎將不在此等空單元上花費計算資源。然而,每當來自輸入通道之尖峰宣告為「視網膜」到達時,輸入驅動器將使單元索引排列成一尖峰序列,猶如其實際上引發一尖峰(若其並非空的,則此將觸發藉由引擎之after_event_rule執行)。自該單元至其他單元之突觸將告知網路如何處置尖峰。在視網膜輸入於LGN上之情形中,視網膜單元將具有至某些LGN細胞上之1至3個突觸。
若輸入通道饋送連續信號,則信號將每一毫秒更新每一單元中之變數「I」。在此情形中,需要規定更新規則及event_condition。當然,引擎將每一毫秒執行此碼。
輸出與監視區塊針對網路模式提供一輸出介面。在一項實施方案中,適用於來自模型之運動輸出,該輸出區塊規定網路單元與外部運動介面或某些其他致動器之間的連
接。在一項實例中,運動介面包括肌肉介面。在另一實例中,運動介面包括經組態以控制一外部機器人設備之一運動介面。包括用於與(舉例而言)頸肌肉介接之一N通道運動輸出物件之一單元「neck_muscles」使用END框架宣告為如下:<unit_class> asunit_class_id='neck_muscles' initialization='float I=0;' 上文宣告通知輸出驅動器應針對電流I之值之改變監視哪些神經元(單元)。然後,如下形成各別N空單元物件:<unit> unit_id='neck_muscles'
在模型之執行期間,計算引擎確保至少某些運動神經元(單元)neck_muscles具有至此等神經元之非零(例如,正)突觸投影,以使得每當運動神經元引發時,單元物件內之變數I設定為一正值。因此,輸出驅動器在每一模型時間步階處監視變數I,且若需要則將其設定為I=0。由於運動輸出介面不需要執行更新規則(在每一模型執行時間步階處),因此計算引擎在維持「neck_muscles」單元上花費最小資源。
在另一實施方案中,可適用於監視神經網路執行,輸出區塊規定網路單元與外部監視介面之間的連接。
如上文所描述,神經元模型之某些元件受益於由特定硬
體區塊(硬體加速器)執行之計算。藉由實例方式,考量一種消耗引擎計算資源中之一大部分(例如,99%)之單元unit_class之方法update_rule。
<unit_class> 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;' 假設update_rule之實施方案不自單元至單元及/或自一個模型運行至另一模型運行改變,則與update_rule相關聯之計算操作可藉由以一專門化硬體加速器更高效地執行,該專門化硬體加速器可以(舉例而言)一ASIC、FPGA或專門化矽實施。在END框架內,一「simple_model」類別用以指示編譯器將與(舉例而言)上文所列示之update_rule相關聯之碼之執行引導至對應於硬體加速器介面之適當位置。為形成此等映射,將simple_model類別之例項例示化為如下:<unit of(simple_model)> unit_id=509 initialization 'a=0.01;d=2'
此等硬體加速器(simple_model物件)可由END用作用於建構更多複雜物件之建置區塊。藉由實例方式,具有(舉例而言)一百萬個(1M)simple_model單元(神經元)及(舉例
而言)帶有一額外緩慢神經元變數「w」之一千個(1K)神經元之神經元模型可使用類別繼承機制宣告為如下:<unit_class of(simple_model)> 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'
附接至專門化硬體之計算引擎(例如,一ARM晶片)中之一處理器將通常處理上文類型之1K單元以評估變數「w」之動態且將其併入至變數I之值中。然後,甚至在不實現例項中之某些例項對應於一更複雜模型之情況下,硬體加速器(類比或數位)硬體可執行simple_model之1M+1K例項。理想地,專門化硬體將含有神經元模型、突觸動態等之最常用之實施方案,且使用者免費混合及匹配此等正準能力或將所需之任何額外功能性添加至其。
spnet通常包括N=Ne+Ni=1000個神經元,其中Ne=800個興奮性神經元及Ni=200個抑制性神經元。每一神經元通常包括每神經元M=100個突觸。所有興奮性突觸係可塑的(STDP),其具有介於1毫秒與D=20毫秒之間的範圍內之一隨機延遲。抑制性→興奮性突觸係不可塑的,其具有D=1毫秒之一延遲。不存在抑制性→抑制性突觸。模型之低階END描述係表達為如下。第一Ne單元由Ne興奮性單元填充:<unit of(exc)>
unit_id=1:800 接下來,記錄類別之Ni抑制性單元係填充為:<unit of(inh)> unit_id=801:1000 spnet類別然後宣告為如下文列表1中所展示:
模型之低階描述(諸如上文列表1中所展示)僅含有唯一地定義網路架構所必需之最小資訊。列表1中所展示之描述可不適合於(尤其)執行模型模擬,此乃因其不提供充分位準之細節,例如,每一單元之突觸連接、突觸前連接、突觸後目標等。一連結器(例如,圖1中之連結器108)使用低階END描述且(i)填充單元之間的所有連結;(ii)保存呈二進制或某一其他低階(機器)格式之碼及資料以使得在模型模擬期間促進藉由計算引擎之資料及碼載入。在模擬執行(運行時間)期間,引擎可形成呈相同(或一不同)格式之保存點(其保存引擎執行狀態,包括(舉例而言)暫存器及記
憶體內容、程式計數器等),以便自任何保存點實現模型執行之一迅速重新開始。
在一項實施例中,計算引擎包括一單處理器電腦。該引擎在預定時間步階處執行若干個計算循環(透過網路之步階)。在一項實例中,將時間步階設定為一毫秒。
在某些實施例中,計算引擎可實施於一多核心處理平臺、一單/多核心處理器陣列、一FPGA或具有一或多個嵌入式處理器核心之一可程式化邏輯織物上。
通常,低階END描述中之每一<_class>例項對應於一單獨迴圈執行迴圈。每一執行迴圈/循環內之計算可以經最佳化以用於多核心實施方案之一次序並行執行。某些循環亦可與其他循環並行執行。每一_code應係「預編譯」且包含至引擎中之適當地方中。
為了在模型模擬期間達成執行效率,實施計算引擎之仿神經硬體通常具有以下特徵:(i)神經元動態及基礎突觸事件(諸如突觸釋放)之快速高度專門化處理;及(ii)用於執行計算背景處理程序(諸如慢突觸更新、流動、重新佈線、短期可塑性等)之一一般用途處理器(例如,一ARM核心)。此組態實現突觸中之大多數之基礎突觸處理(其較不可能需要藉由使用者之頻繁修改)之快速執行,同時允許實施突觸之一較小部分之專利精品處理。
一「最小指令集」實施例之一個目標係提供一低階描述格式,該低階描述格式包括:(i)單元(神經元)定義,其宣
告記憶體分配但不含有動作;(ii)接點,其耦合單元但不分配其自身之記憶體;及(iii)規則,其連結動作與單元或接點。在一項實例中,動作係時脈驅動的(亦即,在神經元模式模擬執行之每一時間步階處針對適當單元執行)。在另一實例中,動作係事件驅動的(亦即,動作由單元經由(舉例而言)針對單元類別宣告之一event_condition觸發,單元類別通知模擬器關於在單元引發一尖峰時旋即執行之動作)。因此,此等事件(尖峰)觸發可適用於其他單元或接點之基於事件之規則之執行。
在END框架內,一突觸可宣告為包括經組態以儲存與突觸功能性(諸如突觸權重、延遲、目標目的地等)相關聯之各種變數之記憶體之一單元。一突觸可視為準備就緒以釋放傳輸物之突觸前機器。如同單元更新,突觸更新規則(例如,維護「w+=sd;sd*=0.9」)可係基於時脈或基於事件的。突觸動作(例如,神經傳輸物之釋放)可藉由對應於突觸前神經元之單元處之一尖峰事件觸發。描述該釋放之規則亦可執行STDP之抑制部分及短期可塑性處理程序中之任一者。STDP之LTP部分可受可藉由對應於突觸後神經元之單元觸發之一單獨其他規則影響。一接點規定一突觸與一突觸後單元之間的一連接。
END之最小指令集實例實現具有足夠描述性容量以定義一任意神經網路之一簡單基於事件之電腦之建構。
下文所描述之END之最小指令集實例之類別及變數之語法及結構類似於描述前文之END 1.0格式。
<unit of unit_class> 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
經受此規則之一單元或接點之識別碼trigger_id
觸發主題規則(針對基於事件之規則)之單元之識別碼。若省略,則此規則係基於時脈的。
Delay 此規則必須藉助其執行之延遲。若省略,則不存在延遲<rule_class(of rule_class)> rule_class_id execution_condition
例如,「now%10==0」。若省略,則每一時間步階執行該規則subject_class
此規則可適用於其之類別。注意,主題類別可係一單元或一接點code event_condition initialization
當與前文所描述之END 1.0格式相比時,END 2.0格式包括以下特徵。
‧無繼承性(無物件類別);‧無背景處理程序(替代使用全域變數);‧無單獨突觸前/突觸後規則(所有皆係突觸類型之部分)‧每一規則可包含其他規則及碼字串以及執行條件。
<rule> name exec_condition 每一步階評估以判定是否執行此規則之條件。此可係一字串(例如,「now%10==0」或「DA>0.1」)或對一規則名稱
(若該條件需要某些全域表則其有用)之一參考。若不存在,則該規則適用於每一執行時間步階。此條件可存取在下文之碼中定義之任何變數。
Code
規定當規則發生時進行何種操作之碼字串或其他規則名稱。例如,「I+=w」或「v+=tau*(2*(v+70)*(v+50)-u+I)/20;u+=tau*0.1*(2*(v+70)-u);」。另外,規則之輸出可係在尖峰條件等中使用之一邏輯(真/假)陳述。此處可提供多個規則名稱;其將以所提供次序執行。
init
宣告且設定在此規則中使用之全域變數之值。例如,「STDP={,..,};DA=0」或「STP={,...,};LTD={...}」。任何例項變數以unit_type及synaptic_type定義;連結器檢查以不同unit_types及synaptic_types定義之所有資料類型關於該規則一致。
<unit_type> name update_rule
每一時間步階執行之碼字串或規則名稱。此處可提供多個規則;其將以所規定之次序執行。
event_condition
偵測尖峰所需之邏輯陳述或規則名稱。例如,「v>30」。每一時間步階執行
event_rule
當偵測到一尖峰時執行之碼或規則名稱。例如,「v=-65;u=u-8」;Init
選告且設定在單元中使用之所有變數及參數(亦即,例項變數)之初始值。連結器(編譯器)檢查此等變數在使用相同規則(舉例而言,「analog v=0;analog g_AMPA=0」)之所有單元類型當中具有一致資料類型;<unit of unit_type> unit_id init
設定不同於類型之定義中之預設值之參數及變數值。必須宣告且已用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。
postsynaptic_event_rule
藉由引發突觸後單元觸發之碼或規則名稱。此負責STDP之LTD部分。
update_rule
每一時間步階(有希望地,其具有execution_condition且因此極少執行)執行之碼字串或規則名稱。此處可提供多個規則;其將以所規定之次序執行。代替背景處理程序,此係突觸維護所需的。
<synapse of synaptic_type> pre post delay init
<global_variable> update_rule
初始化全域變數且執行更新該等全域變數之碼之規則名稱。該碼可存取特定單元、接點或突觸例項。在最簡單情形中,該規則可僅係基於一例項之一值之全域變數之值之一指派。
注意,例項變數用於以<unit_type>、<junction_type>及<synaptic_type>定義之<rules>中。假定例項變數之所有宣告與所有規則一致。可存在兩個問題:如下處置其中一變數在一規則中使用但未以unit_type或junction_type或synaptic_type定義之情況:
‧連結器可產生一誤差
‧連結器使用一預設變數類型(例如,「analog」)
‧連結器經指示以觀察規則之其他使用且若在其他處定義變數,則其擴展其定義。
在某些實施例中,可以使用相同規則之一或多個unit_types定義一變數。同樣,存在對此之多種可能解決方案:
‧連結器產生一誤差
‧連結器將定義中之一者轉換為另一者。舉例而言,可存在一部分有序之定義集(例如,int8<int16<int32<int64<analog),以使得兩個定義被轉化為共同者
‧連結器將規則分裂成作用於不同類型之變數上之兩個規則,rule_a及rule_b
<rule> name='DA_update' code='DA=exc[3].v+inh[1].u' init='analog DA=0'
<global_variable> update_rule='DA_update'
標準spnet網路具有N=1000個神經元;在該等神經元當中有Ne=800個興奮性神經元及Ni=200個抑制性神經元,其中每神經元有M=100個突觸。所有興奮性突觸係可塑的
(STDP),其具有在1毫秒與D=20毫秒之間的隨機延遲。抑制性→興奮性突觸係不可塑的,其具有D=1毫秒之延遲。不存在抑制性→抑制性突觸。下文係模型之低階描述。
當與END 2.0格式相比時,END格式3.0實施數種主要改變。此等改變包含:
‧單向接點之引入
‧接點update_rule分裂成兩個規則:update_rule(經組態以修改接點變數);及delivery_rule(經組態以修改突觸後單元變數)
‧postsynaptic_event_rule之移除
‧presynaptic_event_rule分裂成:prepost_rule(用於STDP之LTP部分);postpre_rule(用於STDP之LTD部分);及delivery_rule(用於遞送PSP)
‧delivery_rule之不可部分完成加法(用於接點及突觸)
‧基於時脈之突觸更新規則之移除(其可經由
postpre_rule實施)
‧經由至例項變數之連結實施全域變數。
除非另外陳述,否則END 3.0中之所有名稱及陳述具有類似於END 2.0中之彼等之意義。對於END 3.0,語法exc:3用以指代類型「exc」之例項3。
presynaptic_event_rule可包括多個獨立規則。出於此描述之目的,指示項t1及t2表示到達突觸後單元之突觸前神經元之尖峰之時間(亦即,傳導延遲已併入至t1及t2中),其中t2對應於當前模擬時間(亦稱為「現在」)。
prepost_rule可在t1之前的任何時間處執行以實施將對應於具有在t1處引發之突觸前神經元及在t1之後但在t2之前或在t2處引發之一後續突觸後神經元之一對脈衝的STDP之LTP部分。儘管prepost_rule規則存取系統變數前前(現在-t1)及前後(post_spike-t1),但其不在時間t2(「現在」)處存取任何後置單元變數或系統變數,此乃因其不清楚調用此規則之時間。若prepost_mode=11(1至1),則每一突觸前尖峰觸發prepost_rule之僅1調用。若prepost_mode=1A(1至所有),則每一突觸前尖峰觸發所有後續突觸後尖峰(具有其自身前後變數)之prepost_rule直至下一突觸前尖峰之時刻。在考量prepost_rule之突觸後尖峰期間,參數prepost_max(若給出)進一步將時間跨度限於在突觸前尖峰之後。舉例而言,若STDP之LTP窗係僅50,則考量具有大於50之間隔之前置-後置尖峰對係無意義的。在另一實施
例中,可當t1之後的最早後置尖峰在t1+prepost_max之後發生時調用prepost_rule。在某些實施例中,若在t1與t2之間的週期期間後置尖峰從未發生則不調用該規則。
postpre_rule通常在恰在時間t1之前執行以基於先前突觸前尖峰(前前=t2-t1)及最後post_synaptic尖峰(後前)之時序更新突觸變數。甚至若自先前後置尖峰發生已經過一長時間週期,亦通常提供後一種變數。變數「現在」指向當前時間,且來自突觸後單元之所有變數可用於讀取。
delivery_rule通常在時間t1處調用,但在postpre_rule之後更新突觸權重。delivery_rule存取後一種規則之所有變數,且具有對後置單元之變數之不可部分完成加法之寫入存取。
在列表3中所展示之碼實例中,規則在t2之前觸發且其修改突觸。該規則可讀取及寫入突觸變數但不自突觸後單元存取任何變數。該規則存取前前=t2-t1及前後(後置尖峰-t1)。
prepost_mode
支援兩種模式,11(1至1)及1A(1至所有)。前者最多一次調用規則,而後者針對前置單元最後尖峰之後的每一後置單元尖峰多次調用規則。預設:11
prepost_max
限制考量之前置單元尖峰之後的時間範疇以形成前置-
後置對。將忽略t1+prepost_max之後的所有後置尖峰。
postpre_rule
在t2處觸發且修改突觸之碼或規則名稱。其可讀取及寫入突觸變數且讀取存取來自突觸後單元之變數。其存取前前、後前及現在=t2。
delivery_rule
在t2處觸發且修改後置單元之變數之碼或規則名稱。其讀取存取突觸變數(前前、後前及現在=t2)。此碼係不可部分完成加法。
<synapse of synaptic_type>
pre
post
delay
init
在某些實施例中,可期望將藉由突觸前尖峰觸發之短期突觸可塑性模型化。此經常需要具有藉由每一突觸前尖峰修改且然後根據某一方程式演進之一變數或一變數向量,但在預脈衝之時刻僅需要此變數之值。在此情形中,該變數可係每一突觸之部分。然而,由於所有此等變數之值係針對所有突觸相同的,因此自END至一引擎之一編譯器(連結器)可自突觸移除此等變數且替代使用經受一「預先規則」之一單個突觸前變數。另一選擇係,END格式可具有將幫助編譯器識別突觸事件規則或突觸前單元事件規則中之此等前置事件觸發之變數之一特定標記或一標籤或一
陳述。
若END程式分散於多個引擎當中,則每一引擎可藉助每一突觸前尖峰轉化此等變數之值。另一選擇係,自此突觸前單元接納突觸之每一引擎可保持該變數之一邏輯複本,從而以與該變數在裝載突觸前單元之引擎中更新相同之方式更新該變數。
spnet網路通常包括N=Ne+Ni=1000個神經元,其中Ne=800個興奮性神經元及Ni=200個抑制性神經元。每一神經元通常包括每神經元M=100個突觸。所有興奮性突觸係可塑的(STDP),其具有介於1毫秒與D=20毫秒之間的範圍內之一隨機延遲。抑制性→興奮性突觸係不可塑的,其具有D=1毫秒之一延遲。不存在抑制性→抑制性突觸。模型之低階END 3.0描述係表達為如下。
一事件驅動之架構(EDA)可定義為充當經組態以隔離模
型之計算描述與神經系統科學描述之一抽象層之END格式之一一般化。EDA定義記憶體管理、並行性及藉由事件觸發之規則且實現將END碼直接編譯成EDA碼。
END格式及EDA架構中之事件對應於脈衝(無論是實體還是虛擬)、脈衝之軟體表示、脈衝之陳規叢發或其他離散暫時事件。
EDA記憶體管理不同(自變數之擁有權之立場)於END框架之處在於以下:單元擁有其自身之變數。當針對一單元A執行一更新規則時,單元A不需要存取網路之任何其他單元之變數。相比而言,藉由其他單元執行之規則不需要存取單元A之變數。
突觸擁有其自身之「突觸」變數(諸如權重、諸如last_activ之變數等)且其可參考突觸後單元中之某些變數(自該等變數讀取及寫入至該等變數)。當執行presynaptic_rule或postsynaptic_rule時,兩個或兩個以上突觸可試圖存取及修改突觸後單元之相同變數。然而,突觸不爭用其自身之突觸變數。
接點擁有其「接點」變數,但其存取及修改unit_1及unit_2中之變數。當執行接點時,不存在對其接點變數之並行存取之爭用,但可存在對unit_1及unit_2變數之存取之爭用。
因此,單元、突觸及接點就變數之擁有權而言可視為單
元、二元體及三元體。單元擁有一組變數,突觸擁有一組變數且參考由單元擁有之另一組。接點擁有一組變數且參考由兩個單元擁有之兩外兩組變數。此命名法可適用於描述END 1.0、2.0及3.0格式以及下文之例示性實施例。
類別成員Event_condition觸發以下規則之執行:‧作用於已觸發事件之單元(觸發器單元)上之After_event_rule;‧作用於自觸發器單元指向其他單元之突觸(二元體)上之presynaptic_event_rule;‧作用於自其他單元指向該單元之突觸(二元體)上之postsynaptic_event_rule
類別成員Update_rule在網路模擬之每一時間步階處執行且其更新單元、突觸(可能經由一背景處理程序)及接點中(亦即,單元、二元體及三元體中)之變數。
單元、二元體及三元體作為元件可稱為網路元件。因此,END格式定義:(i)元件;(ii)作用於元件上之規則;及(iii)藉由元件觸發且致使作用於其他(目標)元件上之其他規則之執行之事件。
根據本發明之某些態樣之開發EDA框架背後之目標包含:‧具有其自身之變數且另外可參考其他元件中之變數之元件(單元、二元體、三元體等);
‧作用於元件中之變數上之時脈驅動之規則(時脈);及‧藉由某些元件觸發且作用於其他(目標)元件中之變數上之事件驅動之規則(事件)。
EDA指令集以定義作用於抽象(符號)變數上之規則開始。規則可包含較早定義之其他規則,以便形成不具有循環之規則之一有向圖。元件藉由作用於相同或其他元件上之時脈驅動之規則定義。事件藉由適用於其他元件之觸發器條件及目標規則定義。
一EDA指令集之一項實例係展示於下文列表5中。列表5中之粗體關鍵詞表示END指令集之分量,而非粗體字詞表示使用者定義之名稱及值。
在列表5中,識別符「碼」可指代任何碼字串或先前定義之另一規則之名稱。儘管在列表5中使用C碼語法,但熟習此項技術者將瞭解任何其他語言描述(包含(舉例而言)C#、Python、Perl等)相等地適用於本發明。可存在包含於可按包含物之次序執行之一規則內之多種碼及規則。在某些實施例中,在多種元件類型中使用之規則可單獨定義,以使得引擎可使用其加速技巧來並行執行此等規則。陳述「init」定義執行規則所需之靜態(在規則內之全域)變數,
例如,其定義查找表。「碼」可指代在「init」中定義之靜態變數、指代在元件(參見下文)中定義之例項變數或者指代在其他元件類型中定義之其他例項變數,例如,「I+=A.w+B.w」指代一例項變數I,且指代在元件A及B中定義之變數w。
element_name=element
rule=rule_name
rank=a number or range of numbers
init='....'
後者係一元件類型之一定義。此處,「規則」指代較早定義之一規則或一碼字串。參數「rank」規定一時脈循環內之規則之執行之等級次序。其採取自間隔[0 1]之固定點之值。例如,rank=0.45意指此規則將在具有較低等級之所有規則之後且在具有較高等級之所有規則之前但與具有等級0.45之規則並行地執行。若等級被賦予為一間隔(例如,等級=最小值:最大值),則引擎具有在具有等級<最小值之所有規則之後且在具有等級>最大值之所有規則之前的任何時間執行此規則之自由。若「等級」丟失,則其等效於預設值等級=0:1(亦即,引擎具有選擇何時執行此規則之完全自由)。若等級大於1,則引擎跳過循環來執行該規則。舉例而言,等級=2.45將致使引擎跳過2個循環直至該規則之下一次執行為止。字串「init」定義元件之例項(區域)變數之名稱且設定其預設初始值。
id=element_name
A=other_element_name.id
B=other_element_name.id
variable_name=value
後者係元件類型之一例項之一定義。此處,「element_name」係較早定義之一元件類型之名稱。線「variable_name=value」可設定不同於在元件定義中之「init」陳述中定義之預設值之例項變數之值。若元件定義中之rule_name指代其他元件(其係針對二元體及三元體之情形),則此處必須規定此等元件之識別碼。注意,可使用任何變數名稱(不必係A及B(或END中之Unit_1及Unit_2))來指代其他元件。
event_name=event
trigger_condition=rule_name
trigger_rank=number or number range
target_code=rule_name
target_rank=number or number range
後者係一事件類型之一定義。此處,「trigger_condition」係返回真/假值之一規則或一字串碼之一名稱。此條件(適用於元件;參見下文)在由「trigger_rank」賦予之等級處評估。當該條件係真時,其觸發在等級「target_rank」處執行目標元件(下文所定義)中之「target_code」。
event_name
trigger=element_name.id
target=element_name.id
後者係事件類型之一例項之一定義。其規定哪一元件係事件之「觸發器」及哪一元件係「目標」。
隨機地連接之800個興奮性神經元與200個抑制性神經元(興奮性→所有及抑制性→興奮性連接中之100個)之一網路可經定義以具有經受STDP且無傳導延遲(對於傳導延遲,參見下一實例)之興奮性突觸。
連結器通常經組態以將藉由「尖峰」規則觸發之所有事件(其在相同等級內)分組成一單個事件,以使得計算引擎執行「尖峰」條件僅針對每一單元每模型模擬步驟一次。
在某些實施例中,在規則之定義中提供等級資訊,以此方式,不必在事件之定義中重複等級。
基本網路介面(ENI)可實施為實施以低階描述END格式描述之兩個模擬之間的交換資料之一通信協定或將資料發送至一模擬(例如,輸入裝置、視覺化/除錯工具等)/自該模擬接收資料所需之任何其他實體。ENI與END自身強烈地結合,且其可用以將大END檔案分割成較小件從而確保正確結果。因此,ENI之某些部分需要通信事件之END引擎處置之詳細知識。
現在參考圖3,其展示及描述了兩個計算引擎302(各自運行一END模型模擬)之間的一一般化通信框架300。ENI
通信協定實施於某一通信實體構件(例如,用於周邊裝置之USB/藍芽或用於較多需求情況之乙太網路/無限頻帶)中。需要每一計算引擎302來在可用運輸層(在圖3中表示為308之通信管)之頂部上實施ENI(在圖3中表示為306之通信管)。注意,ENI在藉由END描述之模型之間且不在引擎302自身之間形成一通信層。
在某些實施例中,由低層級運輸層連接之引擎302可發現彼此且自動成對。人工設置亦係可能的(例如,針對經由IP協定連接之引擎)。通信規範檔案(ENI檔案)與END檔案一起供應至引擎。一旦引擎發現其與運行右邊END檔案之另一引擎成對,便協商且建立ENI通道(圖3中之綠色管)。ENI通信規範檔案可視為一映射,該映射幫助雙方彼此理解且靶向右邊類別之右邊單元。
圖4展示圖3之ENI通信通道306之一方塊圖。通道306由其端點(低階END描述之ID,諸如圖3中之END A及ENDB)及描述如何執行通信及傳遞何種類型之資訊之一組參數定義。通信通道306係單向的(由左向右方向行進),且由發送實體402及接收實體404定義。資料傳送係單向(但運輸層中之協商及後設(meta)資訊不受拘限)。
通常,ENI通道參數包含:
‧發送器及接收器END ID及唯一地識別通道之一識別符
‧發送器及接收器類別
‧發送器及接收器類別例項(由其在類別內之數目列舉)
‧內容:事件/尖峰通告或某些參數之值
‧資料發送之格式
‧操作模式(同步、非同步)及其參數(頻率、相移等)。
在一項實施方案中,ENI通信通道用以交換(i)尖峰(事件)通告及(ii)選定類別參數(變數)之值。此兩種內容類型需要透過通道之不同資料發送,即:
‧單元索引(針對尖峰通告)
‧變數(藉由通道傳輸之所有例項之變數)之實際值
在一項實施方案中,網路單元索引與值變數間隔。此實施方案在該等值需要僅針對經歷一事件(尖峰)之單元發送時適用,以便最小化網路訊務。概言之,支援以下資料格式:
‧具有值或不具有值之索引(某些單元)。若該等值丟
失,則將資料解譯為一尖峰通告。
‧無索引(所有單元)但僅具有值。(若該等值丟失,則將
資料解譯為所有所涉及單元之一尖峰通告;此係一不
可能情形,留下一致性)。
通常,此兩種內容類型(亦即,事件及資料)不混合於一單個ENI通道例項中。在某些實施例中,每當ENI通道經設定以傳輸事件/尖峰通告時,便(「人工地」)引發目標單元;亦即,事件排程於接收器尖峰序列上但不執行任何後置事件動作(如LTP或重設)。在一項實例中,可外部地引發之單元不具有經受可塑性規則(例如,LTP)之任何區域
傳入突觸。在另一實例中,該等單元經組態以回應於外部引發觸發器及可塑性規則兩者以使得每當外部地引發該等單元時不調用後置事件規則。此組態確保模擬一致性且使得分裂模擬作為一「單個模擬」能夠產生相同後果。因此,當適當地分割時,總是(考量上文拘限)可能藉助分裂模擬(如同單個模擬)獲得相同結果。在一項實例中,模型分割經由如所需之特殊假/接收單元之一引入促進。
圖4圖解說明ENI通信通道中之內容、格式及所預期行為。在傳輸變數值之情形中,通道描述規定發送器及接收器類別之變數之設定。換言之,ENI規定源類別內之哪些變數將被映射至目標類別中之哪些變數。一致性要求係透過通道發送之變數之內在表示可在發送器與接收器之間相容或通信通道執行所有必需轉換。在每一通信事件之後,目標類別中之值經更新為新值。
在某些實施例中,ENI通道傳輸與呈END格式之單元相關之資料。在某些實施例中,傳輸與突觸或接點相關之資料(例如,突觸權重或其他變數)。
ENI通道可引入自呈END格式之源單元類別之某些元件至目標類別之某些元件之一映射。每一通道建立一個發送器類別與一個接收器類別之間的通信。若正發送尖峰通告,則映射建立將透過線發送之索引(參考圖4),或者若傳遞參數值,則映射建立值之次序。
ENI通道不必在每一模型模擬循環處發送資訊。ENI檔案規定發送/接收之週期T1、T2(在引擎模型模擬循環中表達)。指示項T1對應於發送側週期(因此將僅每一T1循環發送資料),T2描述接收器側(預期資料已每一T2循環遞送至模擬)。資料可遞送至在任何點處之引擎,但引擎將保持(緩衝)資料且將使其可用於在適當接收點處之運行之模擬。
ENI通信通道通常可組態以在兩種模式中操作-同步及異步。在同步模式中,傳輸及遞送與最近模擬循環同步。在異步模式中,(輸入)資料連續地提供至計算引擎且遞送至模擬例項(每當其準備就緒時)之各別單元。儘管同步模式確保資料之即時遞送,但其可致使高輸入資料速率之嚴重效能瓶頸。相比而言,非同步模式可由於變數資料遞送時間而致使未經定義之模型行為。
圖5呈現ENI之操作模式(方案)之實例。經組合兩種格式、兩種內容類型及兩種操作模式形成一立方體,如在圖6之實施例中所圖解說明。在某些實施例中,ENI就可能資料格式擴展且在未來可包含通曉內容之壓縮等。
在同步模式之一項實施方案中,假定除非必需資料已到達(因此接收器與發送器同步)否則接收引擎無法透過資料接收點繼續進行。彼模式中之通道規定額外性質-即相移S。若移位S>0,若資料封包發送在S個循環以前已到達(由
於引擎係同步的,因此此等循環是發送器還是接收器循環無關緊要),則引擎將繼續進行模擬。每當神經模擬之實際結構允許其時(亦即,透過ENI通道發送之某些發射具有可用以放鬆對通道之要求且引入移位之延遲,參見圖7A及圖7B),相移允許通信通道之較佳利用。底層運輸可基於通道之相移(遞送資料所需之時間)引入通道之優先權。
在發送資料之後發送器可在不等待任何遞送通告之情況下繼續進行其他任務,然而若不遞送訊息,則經由通道發送資料之下一次嘗試將保持模擬。(若S個以上未經確認之遞送發生於具有相移S之一同步通道中,則發送引擎將不繼續進行)。
在特定而言其中適用於非同步(亦即,異步)模式之某些實施例中,規定了發送及接收資料之頻率,但引擎不停止其執行直至資料被發送為止。在接收側上,異步模式不強加任何資料遞送時序拘限。在一項實例中,計算引擎經組態以接收到達不可劃分組塊之資料(區塊傳送)。在另一實例中,資料經由一串流傳送(串流傳送)。其他實例係可能的(例如,區塊與串流傳送之一組合)。在區塊傳送子模式中,假定經傳輸訊息僅在區塊內之所有資料已遞送至接收器(例如,圖4中之接收器404)且通信交易完成之後遞送。在串流子模式中,變得可用於接收器處之資料逐漸傳輸至引擎而無論傳輸交易是否已完成。
在異步區塊模式中,可假定僅將最新訊息實際上遞送至
引擎,而丟棄在引擎遇到接收點之前接收之其他訊息(當一即時輸入裝置(如一相機)正在快於引擎可處置之非同步模式中發送資料時,其可係有用的)。異步串流模式累積所有資料,且將其遞送於最近接收點處。
圖7A圖解說明兩個計算引擎702、704之間的全同步通信之一項實例。圖7A之實施例可確保引擎702、704之間的即時資料交換且可減少通信延遲,藉此最小化由於可與大的即時神經元模型模擬運行中之重且不均勻資料流相關聯之延遲所致之潛在通信通道堵塞。在一項實例中,使用顯著擴充通信頻寬之各種資料傳送最佳化。在圖7A中,事件索引及資料值透過單獨ENI通道(分別由圖7A中之深色及淺色箭頭706、708表示)發送且具有單獨接收點。
圖7B圖解說明具有一個系統時脈循環(模擬步階)(在兩個方向上S=1)之一相移之同步通信之一項實例。通信通道由於窗重疊(如由圖7B中之垂直箭頭752、754指示)更均勻地使用,但尖峰及值在1毫秒/步階之一延遲之情況下到達。
發送點指代用以描述在藉由計算引擎之模型執行期間處理單元之後立即變得可用之資料及事件之模擬模型之一邏輯收縮。類似地,接收點用以描述在每一模擬循環期間處理接點之前使用之資料分級容器。此一配置留下一短通信窗,但以下選項最佳化可係可能的:發送驅動器以一優先權次序處理單元且資料一變得可用
就發出資料,而其他單元仍由引擎並行處理。
接收驅動器執行區域接點同時仍等待必需資料到達。
若通道發送尖峰通告,則計算引擎可在接收關於來自非區域單元之尖峰之資料之前處理來自區域單元之突觸。
在此一情形中,通信窗可顯著擴充(如由圖7B中之點箭頭表示)。
列表7圖解說明用於使用END之一網路模擬中之一ENI定義檔案(發送器/接收器驅動器已知)之一項實例。熟習此項技術者將瞭解,儘管下文之實例展示設置一通道所需之資料,但彼檔案之實際格式可改變為XML或某一其他格式。
實例4描述其中「Retina」END檔案將來自經引發之類別「RGC」之選定單元之索引發送至運行「LGN」END檔案之引擎之引擎模擬。引發類別「exc」之選定元件。通信通常係同步的,同步點每一循環出現於發送器及接收器兩者上且通道不具有移位(延遲)。
實例5圖解說明其中「Camera」END將異步地發送類別Pixel中之「R,G,B」變數之值至Retina END檔案中之類別RGC之變數「Red,Green,Blue」之引擎模擬。
圖13中所展示之表列示列表8中所使用之通信參數之可能值:
在某一實施例中,存在用以處置一大神經模擬模型(舉
例而言,使用一高階描述格式定義)之諸多方式。在一種方法中,由一單個處理計算引擎執行處理。在另一種方法中,該處理分散於一組數個計算引擎(計算節點)內。為達成高效工作負載分散,需要將模型分割。在一項實例中,由分散式計算引擎執行產生且分割模型之一項大低階描述(END檔案)。此實例提供即時負載調整及重新平衡之益處,但係技術更複雜的且需要一先進分散式負載控制器。在另一實例中,將模型分割成彼此單獨地執行之一組END檔案及ENI通信通道。總存在用以可能藉由引入額外「假」單元使用ENI將一神經模擬分裂成若干部分之一方式。
圖8及圖9圖解說明根據本發明之某些態樣之模型分割之一項實例。圖8展示包括數個單元802、突觸804及接點806且使用END檔案END 0描述之END模型800。沿突觸804之編號表示突觸延遲。模型800模擬使用一單個計算引擎0執行。
圖9圖解說明模型800劃分成分別使用END檔案END 1、END 2描述之兩部分910及920。部分910使用在圖9中分別表示為912、914、916之三個ENI介面互連:ENI 1、ENI 2、ENI 3。已引入某些額外「假」單元(標示為902之矩形)。由於ENI 1通道具有一相移S=2,因此通道通信延遲藉由使用目標突觸之較小延遲補償,如藉由分別在圖8與圖9中之突觸804與突觸904之間的一比較所圖解說明。注意,當在原始模型(模型800)中沿分割線不存在由一ENI通
道替換的最小延遲(例如,0)之突觸時,此實施方案係可能的。來自一高階定義語言之編譯器可計及延遲同時將模擬分裂以最佳化通信(例如,放大通信窗、平衡所發送之資料量等)。模型900之模擬使用如圖9中所圖解說明之兩個計算引擎執行:引擎1及引擎2。與單分割區模擬實施方案800相比,多分割區模擬900能夠產生相同模擬結果,從而提供具有充分數值精度以避免進位誤差之分散式計算引擎1/引擎2。
在經分割模型(未展示)之其他實施例中,可實施以下特徵:
‧即時ENI通道設置及連結協商(針對動態除錯及監視);
‧支援額外資料格式,例如,類比。
‧支援用以運行ENI之專用硬體設施;
‧用以規定ENI格式之一方便及直觀方式。
如上文關於分散式模型模擬(諸如圖9之經分割模式900)所描述,可將模型分裂成數個分割區(例如,分割區910、920)。每一分割區在一單個計算引擎(圖9之引擎1、引擎2)上執行。在一項實例中,計算引擎包括一單個處理單元(CPU)實施方案。在另一實例中,每一計算引擎包括全部並行運行之多個處理單元(PU),例如CPU、FPGA、MCU。此並行化實現模型模擬通量(通常隨並行PU之數目比例變化)之一實質增加。為實現並行模型執行,將模擬
域劃分成數個處理區塊(處理域),每一區塊被指派給一個PU。每一處理區塊經組態以(i)追蹤區域隔室、區域尖峰序列等;(ii)儲存傳入「突觸」之列表(表)(不適用於END 3.0);及儲存可在不鎖定之情況下處理之區域接點之一列表。隔室標記有每當其形成尖峰時必須通知之域識別碼。當此一外部可見隔室形成尖峰時,將適當資訊發送至進行剩餘處理(突觸隊列等)之鄰近域。
針對每一步驟,將經由外部(遠端)接點連接之隔室之電壓發送至其目標域。所接收電壓分別用以計算接點電流。
僅處理域正交換之資料係:(i)尖峰;(ii)接點電壓(或跨越接點傳輸之某些其他變數)。由於多數接點將係為樹突狀類型(區域),因此每一交換中之資料量通常不大(若域劃分計及樹突狀接點)。
在另一實施例中,一異質並行化計算引擎使用多核心對稱多處理器(SMP)硬體實施。在一項實例中,SMP實施方案亦含有用以實施之一圖形處理單元。
圖10至圖12描述不取決於END語言之語法之本發明之不同例示性實施例。圖10圖解說明可實施於一標準CPU、GPU上或一積體電路(例如,一ASIC)中之END引擎之三個基礎結構。此等基礎結構係「單元」1001、「二元體」1011及「三元體」1021。END引擎處置單元、二元體及三元體規則之執行且存取此等元件之記憶體。上文END格式可視為將組態執行一所規定神經元網路之具有此等單元、
二元體及三元體之一半導體電路之硬體規範語言。
在一項實例中,每一基礎結構(單元、二元體及三元體)作為一單個執行緒實施於一多執行緒處理器上。在另一實例中,每一結構實施為包括經組態以使用時間多工分別處理單元、二元體及三元體之專用電路(可能地,用於單元、二元體及三元體之三個不同電路)之一超級單元、超級二元體及超級三元體。
在一項實例中,單元1001表示一神經元或一神經元之一部分,例如,一樹突狀隔室。在另一實例中,單元1001表示一神經元群體,其中神經元之活動表示該群體之一「平均引發率」活動或該群體之活動之某一其他平均場近似。每一單元可具有其自身記憶體變數及描述必須對其記憶體執行何種操作之一更新規則。該等操作可係基於時脈的(亦即,每一模擬時間步階執行),或者其可係基於事件的(亦即,當觸發某些事件時執行)。單元更新規則通常不涉及屬於其他單元之變數。因此,單元更新規則之執行獨立於其他單元之單元更新規則之執行之次序,藉此實現若干單元更新規則之並行執行。
取決於單元變數之值,單元可產生事件-經由二元體觸發其他單元中之突觸事件之脈衝或尖峰。舉例而言,圖10中之一單元1002可經由二元體1011影響單元1003,二元體1011表示自突觸前神經元(突觸前單元1002)至突觸後神經元(突觸後單元1003)之一突觸。
單元亦可具有在觸發事件之後觸發之事件後更新規則。
此等規則負責由於事件所致之單元變數之修改,例如,電壓變數之尖峰後重設。
每一二元體通常具有其自身之記憶體變數,且其可存取突觸後單元之變數。該存取包含讀取及寫入。每一二元體具有對二元體記憶體做出一改變以實施突觸可塑性及對突觸後單元記憶體做出一改變以實施脈衝之遞送之一個二元體事件規則。二元體事件規則囊括上文在END格式中描述之所有突觸規則。
由於多個二元體(例如,圖10中之1016至1018)可將對應多個突觸前單元1006至1008連接至一單個突觸後單元1009,因此期望二元體並行或以任意次序修改突觸後單元記憶體且結果係次序獨立的。若對突觸後單元記憶體之操作係不可部分完成加法(如在GPU中)、不可部分完成乘法(其等效於經由對數轉化之加法)或重設為一值(其中所有二元體試圖重設為同一值),則此係容易達成的。亦期望藉由二元體事件規則修改之突觸後單元變數不用於該規則中。否則,結果可取決於二元體事件規則之執行之次序。
在神經計算之上下文中,經常期望具有一軸突傳導延遲,以使得在藉由一突觸前單元產生之一事件與藉由該單元觸發之二元體事件規則之執行之間存在一時間延遲。該延遲可實施為一緩衝器,以使得每一二元體接收具有某種延遲之事件。亦即,END引擎登記藉由一突觸前單元產生之一事件且取決於延遲之量值將一特殊標記放入至一延遲線隊列中。下數計數該延遲且將該事件傳輸至二元體以供
執行二元體事件規則。
在某些實施例中,二元體不存取突觸前單元變數。然而,在某些實施例中,二元體可存取某些突觸前單元變數。在一項實例中,突觸前單元可具有僅在藉由單元(亦即,基於事件之記憶體)觸發之事件期間修改之變數,且該修改不取決於其他突觸前單元變數之值。在此一實例中,此基於事件之記憶體可駐存於突觸前單元記憶體中或等效地,其可視為猶如駐存於每一二元體處之事件觸發之變數之一複本或在二元體當中共用。
二元體事件規則係一個二元體規則類別之部分,該二元體規則類別在某些實施例中亦可包含後置事件規則及二元體更新規則,如圖11中所圖解說明。後置事件規則係藉由一突觸後單元觸發且針對連接至該突觸後單元之所有二元體執行之一規則。在某些實施例中,一個二元體之後置事件規則通常取決於緊接在前突觸前事件之時序。二元體更新規則係針對每一二元體每一時間步階(亦即,每一系統時脈循環)執行之一基於時脈之規則。
在圖12中所圖解說明之實施例中,二元體事件規則進一步包括(i)基於突觸前及突觸後單元之事件之時序組態;及(ii)控制二元體記憶體變數之修改之一時序事件規則。圖12中所圖解說明之更新規則致力於實施尖峰時序相依可塑性(STDP)-尖峰網路中之可塑性之標準形式。
時序事件規則可進一步包括一前置-後置事件規則,該前置-後置事件規則實施對應於首先突觸前神經元引發(或
首先來自突觸前神經元之尖峰)及然後在此之後突觸後神經元引發(例如,在脈衝1213、1214之前產生之脈衝1202)的STDP之部分。在經典STDP中,此將對應於STDP曲線之長期增效(LTP)部分。此規則基於突觸前及至少一個後續突觸後引發(例如,對1202、1213(由線1223表示))之時序修改二元體之記憶體;其通常僅取決於時間差異。
時序事件規則可進一步包括一後置-前置事件規則,該後置-前置事件規則實施當突觸後單元首先引發且然後突觸前單元在彼之後引發(例如,如在脈衝1202之前產生之脈衝1211、1212)時發生的經典STDP之長期抑制部分。此規則基於突觸前及突觸後引發之相對時序修改二元體記憶體;其通常僅取決於時間差異(亦即,脈衝1212、1202之時序之間的差異)。
前置-後置事件規則及後置-前置事件規則兩者可取決於突觸後單元記憶體中之變數之值。
在某些實施例中,可期望根據二元體之突觸前單元分配二元體之記憶體,以使得具有一共同突觸前單元之所有二元體分組在一起且因此分配於系統記憶體中。此方法可最小化對系統記憶體之隨機存取。
二元體事件規則亦可包括基於二元體記憶體及突觸後單元記憶體之值修改突觸後單元之變數之值之一脈衝遞送規則。
二元體之描述可藉由突觸變數之描述及END格式中之規則提供。
如前文圖10中所繪示,三元體1021連接兩個單元1004與1005。此一個三元體表示END格式中之一接點。在一項實例中,三元體1021包括兩個神經元之間的一間隙-接點連接。在另一實例中,三元體1021對應於連接一神經元之兩個毗鄰樹突狀隔室之一電阻連接。在另一實例中,三元體1021係兩個接點類型之一組合。三元體包括其自身之記憶體且其存取兩個單元之記憶體。三元體進一步包括每一模擬時間步階執行之一個三元體更新規則。三元體更新規則可更新每一三元體之記憶體及至少一個單元之記憶體。在某些實施例中,三元體更新規則可更新兩個單元之記憶體。由於期望此一更新係次序獨立的,因此至少一個單元之記憶體更新通常經由至不參與三元體更新規則之一單元變數之不可部分完成加法執行。
三元體之描述可藉由END格式中之接點之描述提供。
某些實施例可僅僅實施其中不存在事件但其中每一單元經由三元體更新規則將一信號傳輸至其他單元之平均引發率模型。
三元體可根據突觸前單元分配於系統記憶體中,以使得源自一共同突觸前單元之所有三元體分組在一起。三元體亦可根據突觸後單元分配。在某些實施例中,三元體可根據神經網路之結構分配於系統記憶體中。舉例而言,若神經網路具有多隔室樹突,則負責連接樹突狀隔室之所有三元體可經最佳分配以便當在系統時脈循環期間評估樹突狀樹上之動態時使記憶體存取免疫。
某些實施例可僅僅實施其中單元觸發經由二元體將脈衝遞送至突觸後單元之事件之事件驅動之架構。針對一事件條件測試在時脈循環期間接收到至少一單個脈衝之彼等單元,且若滿足該事件條件,則執行事件後規則且執行對應二元體事件規則,以使得將脈衝遞送至其他單元。
本發明之上述描述意欲係圖解說明性而非限制性。舉例而言,熟習此項技術者將瞭解,本發明可在具有上文所描述之功能性及能力之各種組合之情況下實踐且可包含比上文所描述較少或額外組件。本發明之某些額外態樣及特徵在下文進一步陳述且可使用上文更詳細地描述之功能性及組件獲得,如熟習此項技術者在受本發明教示之後將瞭解。
本發明之某些實施例提供神經元網路。某些實施例包括複數個單元,每一單元具有根據一單元更新規則更新之一記憶體。某些實施例包括複數個二元體,每一二元體連接至該複數個單元中之一對單元且經組態以根據一個二元體事件規則回應於自該對單元中之一突觸前單元接收之一事件而更新該對單元中之另一突觸後單元之該記憶體。在某些實施例中,該複數個單元之單元更新規則之執行係次序獨立的,且該複數個二元體之二元體事件規則之執行係次序獨立的。在某些實施例中,該等二元體事件規則可並行執行,且其中該等單元更新規則可並行執行。在某些實施例中,針對該每一二元體,該對應二元體事件規則之該執
行係回應於該突觸前單元之該記憶體之一改變而觸發。在某些實施例中,針對至少一個二元體,在其對應突觸前單元之該記憶體之改變之發生與對其對應突觸後單元之該記憶體之更新之間存在一延遲。在某些實施例中,每一二元體之該二元體事件規則係在其對應突觸前單元將一事件傳輸至該每一二元體時觸發。
在某些實施例中,每一二元體具有回應於自其對應突觸前單元接收之事件而更新之一記憶體。在某些實施例中,對應於該每一二元體之該突觸後單元之該記憶體係基於該每一二元體之該記憶體之內容而更新。在某些實施例中,對單元記憶體及二元體記憶體之更新係在由一系統時脈判定之一時間之一週期內執行。在某些實施例中,所有該等更新係在該時間週期期滿之前完成。在某些實施例中,每一二元體之該二元體事件規則包含控制該每一二元體之該記憶體之修改之一時序事件規則。在某些實施例中,該時序事件規則包括前置-後置事件規則,該前置-後置事件規則控制該每一二元體之記憶體之修改且取決於由該突觸前單元傳輸之事件之時序與由該突觸後單元傳輸之至少一個後續事件之時序之間的差異。在某些實施例中,該時序事件規則包括後置-前置事件規則,該後置-前置事件規則控制該每一二元體之記憶體之修改且取決於由該突觸前單元傳輸之事件之該時序與由該突觸後單元傳輸之至少一個在前脈衝之時序之間的差異。
在某些實施例中,每一單元之該記憶體係藉由不可部分
完成加法更新。某些實施例包括複數個三元體,每一三元體具有一記憶體,每一三元體經組態以存取該複數個單元中之兩者之該記憶體。在某些實施例中,每一三元體可操作以根據一個三元體規則更新其自身之三元體記憶體及該兩個單元中之至少一者之該記憶體。在某些實施例中,該複數個三元體之三元體更新規則之執行係次序獨立的。在某些實施例中,該神經元網路係表示為一有向圖。在某些實施例中,一神經元網路之該表示係獨立以下各項而映射至該複數個互連之單元:該等單元、該等二元體及該等三元體之實體及電結構。在某些實施例中,該神經元網路表達於提供於非暫時性儲存器中且根據一硬體描述語言編碼之一規範中。在某些實施例中,該規範可操作以重新組態一半導體積體電路。在某些實施例中,每一二元體經組態以根據由其對應突觸後單元觸發之一預定義後置事件規則更新其記憶體。在某些實施例中,該後置事件規則取決於該突觸後單元之脈衝之時序與該突觸前單元之至少一個在前脈衝之時序之間的差異。
本發明之某些實施例提供實施神經元網路之方法。某些實施例包括使用經組態以回應於自一突觸前單元接收之一事件而修改一突觸後單元之一記憶體之二元體將複數個單元互連。某些實施例包括組態判定該等二元體如何回應於事件之二元體事件規則。某些實施例包括針對每一單元組態控制該每一單元對由一個二元體起始之記憶體更新之回應之一單元更新規則。在某些實施例中,該等二元體事件
規則之執行係次序獨立的,且該等單元更新規則之執行係次序獨立的。
在某些實施例中,組態二元體事件規則包含:組態該等二元體事件規則中之每一者以在於具有由一系統時脈判定之一持續時間之一時間步階期間接收一事件之後在該時間步階內執行。在某些實施例中,每一突觸前單元維持控制將事件傳輸至一個二元體之一事件條件。某些實施例包括針對每一突觸前單元組態一事件後單元更新規則以與該等事件之該傳輸相關聯地執行。在某些實施例中,該事件後單元更新規則致使該每一突觸前單元之記憶體之修改。在某些實施例中,每一二元體藉由不可部分完成加法修改該突觸後單元記憶體之該記憶體。在某些實施例中,每一二元體之該二元體事件規則包含基於與該複數個單元中之一或多者相關聯之脈衝之時序而控制該每一二元體之一記憶體之修改之一時序事件規則。
在某些實施例中,該時序事件規則包括前置-後置事件規則,該前置-後置事件規則控制該每一二元體之記憶體之修改且取決於一突觸前單元之脈衝之時序與該突觸後單元之至少一個後續脈衝中之若干脈衝之時序之間的差異。在某些實施例中,該時序事件規則包括後置-前置事件規則,該後置-前置事件規則控制該每一二元體之記憶體之修改且取決於該突觸前單元之脈衝之該時序與該突觸後單元之至少一個在前脈衝中之若干脈衝之時序之間的差異。在某些實施例中,藉由自一突觸前單元接收之一事件觸發
每一二元體之該二元體事件規則之執行。
某些實施例包括使用經組態以存取一對經三元體連接單元之記憶體之三元體互連第二複數個單元。某些實施例包括針對每一三元體組態控制對該等每一三元體之該記憶體及其對應對經三元體連接單元中之至少一者之該記憶體之更新之一個三元體更新規則。在某些實施例中,該等三元體更新規則之執行係次序獨立的。在某些實施例中,每一三元體之該更新規則回應於維持於由該每一三元體連接之該對單元之記憶體中之資訊。在某些實施例中,三元體藉由不可部分完成加法更新單元之記憶體。在某些實施例中,根據一所期望神經元網路之一表示執行互連複數個單元之每一步驟及組態規則之每一步驟。在某些實施例中,將該所期望神經元網路表示為一有向圖。在某些實施例中,獨立於該複數個單元之實體及電結構而將一神經元網路之該表示映射至該複數個互連之單元。在某些實施例中,獨立於用以連接該複數個單元之二元體之實體及電結構而將一神經元網路之該表示映射至該複數個互連之單元。在某些實施例中,獨立於用以連接該複數個單元之該等三元體之實體及電結構而將一神經元網路之該表示映射至該複數個互連之單元。
在某些實施例中,將該複數個單元、該等二元體及該等三元體體現於一半導體積體電路中。某些實施例包括使用一硬體描述語言在一規範中表達該神經元網路。在某些實施例中,該規範可操作以重新組態一半導體積體電路。在
某些實施例中,使用該規範用來製造一半導體積體電路。在某些實施例中,第一數目個單元包含第二數目個單元中之某些單元。在某些實施例中,該等二元體事件規則可並行執行,該等三元體更新規則可並行執行且該等單元更新規則可並行執行。在某些實施例中,在具有由一系統時脈判定之一持續時間之一時間步階內一次執行該等三元體更新規則及該等單元更新規則。在某些實施例中,該二元體事件規則包括基於突觸後單元記憶體之相關聯二元體記憶體之內容而修改該突觸後單元記憶體之脈衝遞送規則。在某些實施例中,每一二元體經組態以回應於由其對應突觸後單元傳遞之事件而根據針對該每一二元體組態之一預定義後置事件規則起始二元體記憶體之更新。在某些實施例中,該後置事件規則取決於該突觸後單元之脈衝之時序與該突觸前單元之至少一個在前脈衝之時序之間的差異。
儘管就一方法之步驟之一特定序列描述了本發明之某些態樣,但此等描述僅係本發明之較寬廣方法之說明且可按照特定應用所需修改。某些步驟可在某些情景下變得不必要或可選。另外,可將某些步驟或功能性添加至所揭示實施例中,或者排列兩個或兩個以上步驟之執行次序。所有此等變化形式皆視為囊括於本文中所揭示及所主張之本發明內。
儘管上文詳細描述已展示、描述及指出了如適用於各種實施例之本發明之新穎特徵,但應瞭解,熟習此項技術者可在不背離本發明之情況下在形式及細節上對所圖解說明
之裝置或處理程序做出各種省略、替代及改變。上述描述係為實施本發明所目前涵蓋之最佳模式。本說明書絕不意欲係限制性,而是應視為對本發明之一般原理之說明。本發明之範疇應參考申請專利範圍判定。
100‧‧‧神經模擬器開發環境/神經模擬器開發/神經模擬器/網路佈局/網路
102‧‧‧輸入/路徑/箭頭
104‧‧‧計算引擎/引擎
106‧‧‧程式庫
108‧‧‧低階描述/基本網路描述/連結器
110‧‧‧監視與視覺化區塊
300‧‧‧一般化通信框架
302‧‧‧計算引擎/引擎
306‧‧‧通信管/通信通道/通道
308‧‧‧通信管
402‧‧‧發送實體
404‧‧‧接收實體/接收器
702‧‧‧計算引擎/引擎
704‧‧‧計算引擎/引擎
706‧‧‧單獨基本網路介面通道/箭頭
708‧‧‧單獨基本網路介面通道/箭頭
752‧‧‧窗重疊/垂直箭頭
754‧‧‧窗重疊/垂直箭頭
800‧‧‧基本網路描述模型/模型/單分割區模擬實施方案
802‧‧‧單元
804‧‧‧突觸
806‧‧‧接點
900‧‧‧模型/多分割區模擬/經分割模擬
902‧‧‧「假」單元
904‧‧‧突觸
910‧‧‧分割區/部分
912‧‧‧基本網路介面
914‧‧‧基本網路介面
916‧‧‧基本網路介面
920‧‧‧分割區/部分
1001‧‧‧單元
1002‧‧‧單元/突觸前單元
1003‧‧‧單元/突觸後單元/突觸後神經元
1004‧‧‧單元
1005‧‧‧單元
1006-1008‧‧‧突觸前單元
1009‧‧‧突觸後單元
1011‧‧‧二元體
1016-1018‧‧‧二元體
1021‧‧‧三元體
1202‧‧‧脈衝/突觸前引發
1211‧‧‧脈衝
1212‧‧‧脈衝
1213‧‧‧脈衝/突觸後引發
1214‧‧‧脈衝
1223‧‧‧線/脈衝對
END‧‧‧基本網路描述
ENI‧‧‧基本網路介面
圖1係繪示根據本發明之一項實施例之神經模擬器之一方塊圖。
圖2係圖解說明根據本發明之模型開發工作流程之一項實施方案之一方塊圖。
圖3係圖解說明根據本發明之包括ENI通信通道之END模擬之一項實施例之一方塊圖。
圖4係圖解說明本發明之ENI通信通道之一項實施例之一方塊圖。
圖5係詳細描述根據本發明之一項實施例之ENI中之內容、格式及所預期行為之一方塊圖。
圖6係繪示根據本發明之一項實施例之ENI之操作模式(方案)之一圖形圖解。
圖7A係圖解說明根據本發明之一項實施例之經由ENI通道之完全同步通信之一項實施例之一方塊圖。
圖7B係圖解說明根據本發明之一項實施例之具有一移位(在兩個方向上S=1)之圖7A之實施例之同步通信之一項實施例的一方塊圖。
圖8係圖解說明根據本發明之一項實施例之具有帶有延遲之接點及突觸之樣本通信模型之一方塊圖。
圖9係圖解說明根據本發明之一項實施例之包括ENI通道之通信模型之一項實施例之一方塊圖。
圖10係圖解說明根據本發明之一項實施例之各種例示性END引擎之一方塊圖。
圖11係圖解說明根據本發明之一項實施例之二元體事件規則之邏輯流之一方塊圖。
圖12係圖解說明根據本發明之一項實施例之實施尖峰時序相依可塑性(STDP)之二元體事件規則之一項實施例之一方塊圖。
圖13包括列示通信參數之可能值之一表。
100‧‧‧神經模擬器開發環境/神經模擬器開發/神經模擬器/網路佈局/網路
102‧‧‧輸入/路徑/箭頭
104‧‧‧計算引擎/引擎
106‧‧‧程式庫
108‧‧‧低階描述/基本網路描述/連結器
110‧‧‧監視與視覺化區塊
Claims (70)
- 一種神經元網路,其包括:複數個單元,每一單元具有根據一單元更新規則更新之一記憶體;複數個二元體,每一二元體連接至該複數個單元中之一對單元且經組態以根據一個二元體事件規則回應於自該對單元中之一突觸前單元接收之一事件而更新該對單元中之另一突觸後單元之該記憶體;其中該複數個單元之單元更新規則之執行係次序獨立的,且該複數個二元體之二元體事件規則之執行係次序獨立的。
- 如請求項1之神經元網路,其中該等二元體事件規則可並行執行,且其中該等單元更新規則可並行執行。
- 如請求項1之神經元網路,其中針對該每一二元體,該對應二元體事件規則之該執行係回應於該突觸前單元之該記憶體之一改變而觸發。
- 如請求項3之神經元網路,其中針對至少一個二元體,在其對應突觸前單元之該記憶體之改變之發生與對其對應突觸後單元之該記憶體之更新之間存在一延遲。
- 如請求項3之神經元網路,其中每一二元體之該二元體事件規則係在其對應突觸前單元將一事件傳輸至該每一二元體時觸發。
- 如請求項1之神經元網路,其中每一二元體具有回應於自其對應突觸前單元接收之事件而更新之一記憶體,且 其中對應於該每一二元體之該突觸後單元之該記憶體係基於該每一二元體之該記憶體之內容而更新。
- 如請求項6之神經元網路,其中對單元記憶體及二元體記憶體之更新係在由一系統時脈判定之一時間之一週期內執行,且其中所有該等更新係在該時間週期期滿之前完成。
- 如請求項6之神經元網路,其中每一二元體之該二元體事件規則包含控制該每一二元體之該記憶體之修改之一時序事件規則。
- 如請求項8之神經元網路,其中該時序事件規則包括前置-後置事件規則,該前置-後置事件規則控制該每一二元體之記憶體之修改且取決於由該突觸前單元傳輸之事件之時序與由該突觸後單元傳輸之至少一個後續事件之時序之間的差異。
- 如請求項8之神經元網路,其中該時序事件規則包括後置-前置事件規則,該後置-前置事件規則控制該每一二元體之記憶體之修改且取決於由該突觸前單元傳輸之事件之該時序與由該突觸後單元傳輸之至少一個在前脈衝之時序之間的差異。
- 如請求項1之神經元網路,其中每一單元之該記憶體係藉由不可部分完成加法更新。
- 如請求項1之神經元網路,其進一步包括複數個三元體,每一三元體具有一記憶體,每一三元體經組態以存取該複數個單元中之兩者之該記憶體,其中每一三元體 可操作以根據一個三元體規則更新其自身之三元體記憶體及該兩個單元中之至少一者之該記憶體,其中該複數個三元體之三元體更新規則之執行係次序獨立的。
- 如請求項12之神經元網路,其中該神經元網路係表示為一有向圖。
- 如請求項13之神經元網路,其中一神經元網路之該表示係獨立於以下各項而映射至該複數個互連之單元:該等單元、該等二元體及該等三元體之實體及電結構。
- 如請求項14之神經元網路,其中該神經元網路表達於提供於非暫時性儲存器中且根據一硬體描述語言編碼之一規範中。
- 如請求項15之神經元網路,其中該規範可操作以重新組態一半導體積體電路。
- 如請求項6之神經元網路,其中每一二元體經組態以根據由其對應突觸後單元觸發之一預定義後置事件規則更新其記憶體。
- 如請求項17之神經元網路,其中該後置事件規則取決於該突觸後單元之脈衝之時序與該突觸前單元之至少一個在前脈衝之時序之間的差異。
- 一種實施神經元網路之方法,該方法包括:使用經組態以回應於自一突觸前單元接收之一事件而修改一突觸後單元之一記憶體之二元體互連複數個單元;及組態判定該等二元體如何回應於事件之二元體事件規 則;針對每一單元組態控制該每一單元對由一個二元體起始之記憶體更新之回應之一單元更新規則,其中該等二元體事件規則之執行係次序獨立的,且該等單元更新規則之執行係次序獨立的。
- 如請求項19之方法,其中組態二元體事件規則包含:組態該等二元體事件規則中之每一者以在於具有由一系統時脈判定之一持續時間之一時間步階期間接收一事件之後在該時間步階內執行。
- 如請求項19之方法,其中每一突觸前單元維持控制將事件傳輸至一個二元體之一事件條件。
- 如請求項19之方法,其進一步包括:針對每一突觸前單元組態一事件後單元更新規則以與該等事件之該傳輸相關聯地執行,其中該事件後單元更新規則致使該每一突觸前單元之記憶體之修改。
- 如請求項19之方法,其中每一二元體藉由不可部分完成加法修改該突觸後單元記憶體之該記憶體。
- 如請求項19之方法,其中每一二元體之該二元體事件規則包含基於與該複數個單元中之一或多者相關聯之脈衝之時序而控制該每一二元體之一記憶體之修改之一時序事件規則。
- 如請求項24之方法,其中該時序事件規則包括前置-後置事件規則,該前置-後置事件規則控制該每一二元體之記憶體之修改且取決於一突觸前單元之脈衝之時序與該突 觸後單元之至少一個後續脈衝中之若干脈衝之時序之間的差異。
- 如請求項24之方法,其中該時序事件規則包括後置-前置事件規則,該後置-前置事件規則控制該每一二元體之記憶體之修改且取決於該突觸前單元之脈衝之該時序與該突觸後單元之至少一個在前脈衝中之若干脈衝之時序之間的差異。
- 如請求項24之方法,其中藉由自一突觸前單元接收之一事件觸發每一二元體之該二元體事件規則之執行。
- 如請求項19之方法,其進一步包括使用經組態以存取一對經三元體連接單元之記憶體之三元體互連第二複數個單元;及針對每一三元體組態控制對該等每一三元體之該記憶體及其對應對經三元體連接單元中之至少一者之該記憶體之更新之一個三元體更新規則,其中三元體更新規則之執行係次序獨立的。
- 如請求項28之方法,其中每一三元體之該更新規則回應於維持於由該每一三元體連接之該對單元之記憶體中之資訊。
- 如請求項28之方法,其中三元體藉由不可部分完成加法更新單元之記憶體。
- 如請求項28之方法,其中根據一所期望神經元網路之一表示執行互連複數個單元之每一步驟及組態規則之每一步驟。
- 如請求項31之方法,其中將該所期望神經元網路表示為一有向圖。
- 如請求項31之方法,其中獨立於以下各項而將一神經元網路之該表示映射至該複數個互連之單元:該複數個單元之實體及電結構;用以連接該複數個單元之二元體之實體及電結構;及用以連接該複數個單元之該等三元體之實體及電結構。
- 如請求項31之方法,其中將該複數個單元、該等二元體及該等三元體體現於一半導體積體電路中。
- 如請求項34之方法,其進一步包括:使用一硬體描述語言在一規範中表達該神經元網路。
- 如請求項35之方法,其中該規範可操作以重新組態一半導體積體電路。
- 如請求項35之方法,其中使用該規範來製造一半導體積體電路。
- 如請求項37之方法,其中第一數目個單元包含第二數目個單元中之某些單元。
- 如請求項38之方法,其中該等二元體事件規則可並行執行,該等三元體更新規則可並行執行且該等單元更新規則可並行執行。
- 如請求項39之方法,其中在具有由一系統時脈判定之一持續時間之一時間步階內一次執行該等三元體更新規則及該等單元更新規則。
- 如請求項38之方法,其中該二元體事件規則包括基於突觸後單元記憶體之相關聯二元體記憶體之內容而修改該突觸後單元記憶體之脈衝遞送規則。
- 如請求項38之方法,其中每一二元體經組態以回應於由其對應突觸後單元傳遞之事件而根據針對該每一二元體組態之一預定義後置事件規則起始二元體記憶體之更新。
- 如請求項42之方法,其中該後置事件規則取決於該突觸後單元之脈衝之時序與該突觸前單元之至少一個在前脈衝之時序之間的差異。
- 一種神經元網路,其包括:複數個單元,每一單元包括根據與該每一單元相關聯之一單元更新規則週期性地更新之一非暫時性單元記憶體;複數個二元體,每一二元體連接一對單元,其中每一二元體經組態以回應於該對單元中之一者之一模擬而根據與該每一二元體相關聯之一預定義二元體事件規則起始另一單元之該記憶體之更新;且其中對單元記憶體之更新係在由一系統時脈判定之一時間之一週期內執行,且其中所有該等更新係在該時間週期期滿之前完成。
- 如請求項44之神經元網路,其中由一個二元體連接之每一對單元包括一突觸前單元及一突觸後單元,其中該連接二元體經組態以藉由不可部分完成加法修改該突觸後 單元之該記憶體。
- 如請求項45之神經元網路,其中該二元體事件規則包括基於該連接二元體之一記憶體之內容而修改突觸後單元記憶體之一脈衝遞送規則。
- 如請求項45之神經元網路,其中該連接二元體之該二元體事件規則之執行係藉由由該突觸前單元產生之一事件觸發。
- 如請求項44之神經元網路,其中至少兩個二元體之該等二元體事件規則可並行執行,且其中該等單元中之至少兩者之該等單元更新規則可並行執行。
- 如請求項44之神經元網路,其中針對至少一個二元體,在該對單元中之該一者之模擬與該另一單元之該記憶體更新之該起始之間存在一延遲。
- 如請求項44之神經元網路,其中該複數個單元中之每一單元經組態以基於該每一單元之記憶體之內容而產生一事件,且其中每一單元進一步經組態以將該事件傳遞至連接至該每一單元之一個二元體。
- 如請求項50之神經元網路,其中針對該複數個單元中之每一者組態在已產生該事件之後執行之一事件後單元更新規則,其中該事件後單元更新規則修改該每一單元之記憶體。
- 如請求項44之神經元網路,其中每一二元體包括一記憶體,且其中每一二元體之該二元體事件規則包含基於與該複數個單元中之一或多者相關聯之事件之時序而控制 該每一二元體之一記憶體之修改之一時序事件規則。
- 如請求項52之神經元網路,其中該時序事件規則包括前置-後置事件規則,該前置-後置事件規則控制該二元體之記憶體之修改且取決於該突觸前單元之脈衝之時序與該突觸後單元之至少一個後續脈衝中之若干脈衝之時序之間的差異。
- 如請求項52之神經元網路,其中該時序事件規則包括後置-前置事件規則,該後置-前置事件規則控制該二元體之記憶體之修改且取決於該突觸前單元之脈衝之該時序與該突觸後單元之至少一個在前脈衝中之若干脈衝之時序之間的差異。
- 如請求項44之神經元網路,其進一步包括複數個三元體,每一三元體經組態以存取該等單元中之兩者之該記憶體,其中每一三元體經組態以根據與該每一三元體相關聯之一個三元體更新規則起始該兩個單元中之至少一者之該記憶體之更新。
- 如請求項55之神經元網路,其中該複數個單元中之一或多者連接至一個二元體及一個三元體兩者。
- 如請求項55之神經元網路,其中該等單元中之至少一者具有可與另一單元之該三元體更新規則並行執行之一個三元體更新規則。
- 如請求項55之神經元網路,其中由一個三元體連接之每一對單元包括一突觸前單元及一突觸後單元,其中該連接三元體經組態以藉由不可部分完成加法修改該突觸前 單元及該突觸後單元中之至少一者之該記憶體。
- 如請求項58之神經元網路,其中該連接三元體之該三元體更新規則基於維持於該突觸前單元及該突觸後單元之該等記憶體中之資訊操作。
- 如請求項59之神經元網路,其中該連接三元體之該三元體更新規則經組態以致使該連接三元體之一記憶體之修改。
- 如請求項59之神經元網路,其中該連接三元體經組態以藉由不可部分完成加法修改該突觸前單元及該突觸後單元中之一或多者之該等記憶體。
- 如請求項55之神經元網路,其中該神經元網路係表示為一有向圖。
- 如請求項62之神經元網路,其中一神經元網路之該表示係獨立於以下各項而映射至該複數個互連之單元:該等單元、該等二元體及該等三元體之實體及電結構。
- 如請求項63之神經元網路,其中該神經元網路表達於提供於非暫時性儲存器中且根據一硬體描述語言編碼之一規範中。
- 如請求項64之神經元網路,其中該規範可操作以重新組態一半導體積體電路。
- 如請求項64之神經元網路,其中該規範控制一半導體積體電路之製造。
- 如請求項63之神經元網路,其中該神經元網路表達於提供於非暫時性儲存器中且以一程式設計語言編碼之一規 範中。
- 如請求項45之神經元網路,其中每一二元體經組態以回應而根據與該每一二元體相關聯之由一事件觸發之一預定義後置事件規則起始二元體記憶體之更新,該事件由該突觸後單元傳遞。
- 如請求項48之神經元網路,其中該後置事件規則取決於該突觸後單元之脈衝之時序與該突觸前單元之至少一個在前脈衝之時序之間的差異。
- 如請求項44之神經元網路,其中該等事件模仿興奮性神經元之脈衝。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/239,123 US9104973B2 (en) | 2011-09-21 | 2011-09-21 | Elementary network description for neuromorphic systems with plurality of doublets wherein doublet events rules are executed in parallel |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201329743A true TW201329743A (zh) | 2013-07-16 |
TWI514164B TWI514164B (zh) | 2015-12-21 |
Family
ID=47881608
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW101133859A TWI514164B (zh) | 2011-09-21 | 2012-09-14 | 用於仿神經系統之基本網路描述 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9104973B2 (zh) |
TW (1) | TWI514164B (zh) |
WO (1) | WO2013043610A1 (zh) |
Families Citing this family (93)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
US8315305B2 (en) | 2010-03-26 | 2012-11-20 | Brain Corporation | Systems and methods for invariant pulse latency coding |
US9405975B2 (en) | 2010-03-26 | 2016-08-02 | Brain Corporation | Apparatus and methods for pulse-code invariant object recognition |
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 |
US9152915B1 (en) | 2010-08-26 | 2015-10-06 | Brain Corporation | Apparatus and methods for encoding vector into pulse-code output |
US9015093B1 (en) | 2010-10-26 | 2015-04-21 | Michael Lamport Commons | Intelligent control with hierarchical stacked neural networks |
US8775341B1 (en) | 2010-10-26 | 2014-07-08 | Michael Lamport Commons | Intelligent control with hierarchical stacked neural networks |
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 |
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 |
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 |
US9460387B2 (en) | 2011-09-21 | 2016-10-04 | Qualcomm Technologies Inc. | Apparatus and methods for implementing event-based updates in neuron networks |
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 |
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 |
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 |
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 |
US9224090B2 (en) * | 2012-05-07 | 2015-12-29 | Brain Corporation | Sensory input processing apparatus in a spiking neural network |
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 |
US9256823B2 (en) | 2012-07-27 | 2016-02-09 | Qualcomm Technologies Inc. | Apparatus and methods for efficient updates in spiking neuron network |
US9159020B2 (en) | 2012-09-14 | 2015-10-13 | International Business Machines Corporation | Multiplexing physical neurons to optimize power and area |
US9311594B1 (en) | 2012-09-20 | 2016-04-12 | Brain Corporation | Spiking neuron network apparatus and methods for encoding of sensory data |
US9218563B2 (en) | 2012-10-25 | 2015-12-22 | Brain Corporation | Spiking neuron sensory processing apparatus and methods for saliency detection |
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 |
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 |
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 |
US9579789B2 (en) | 2013-09-27 | 2017-02-28 | Brain Corporation | Apparatus and methods for training of robotic control arbitration |
US9296101B2 (en) | 2013-09-27 | 2016-03-29 | Brain Corporation | Robotic control arbitration apparatus and methods |
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 |
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 |
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 |
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 |
US9613308B2 (en) | 2014-04-03 | 2017-04-04 | Brain Corporation | Spoofing remote control apparatus and methods |
US9630317B2 (en) | 2014-04-03 | 2017-04-25 | Brain Corporation | Learning apparatus and methods for control of robotic devices via spoofing |
US9346167B2 (en) | 2014-04-29 | 2016-05-24 | Brain Corporation | Trainable convolutional network apparatus and methods for operating a robotic vehicle |
US10650301B2 (en) | 2014-05-08 | 2020-05-12 | International Business Machines Corporation | Utilizing a distributed and parallel set of neurosynaptic core circuits for neuronal computation and non-neuronal computation |
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 |
US9713982B2 (en) | 2014-05-22 | 2017-07-25 | Brain Corporation | Apparatus and methods for robotic operation using video imagery |
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 |
US10410109B2 (en) | 2014-08-25 | 2019-09-10 | International Business Machines Corporation | Peripheral device interconnections for neurosynaptic systems |
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 |
US9821470B2 (en) | 2014-09-17 | 2017-11-21 | Brain Corporation | Apparatus and methods for context determination using real time sensor data |
US9579790B2 (en) | 2014-09-17 | 2017-02-28 | Brain Corporation | Apparatus and methods for removal of learned behaviors in robots |
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 |
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 |
US10197664B2 (en) | 2015-07-20 | 2019-02-05 | Brain Corporation | Apparatus and methods for detection of objects using broadband signals |
KR102477518B1 (ko) | 2015-10-23 | 2022-12-15 | 가부시키가이샤 한도오따이 에네루기 켄큐쇼 | 반도체 장치 및 전자 기기 |
US10671910B2 (en) | 2015-12-07 | 2020-06-02 | International Business Machines Corporation | Space-efficient dynamic addressing in very large sparse networks |
US10650045B2 (en) | 2016-02-05 | 2020-05-12 | Sas Institute Inc. | Staged training of neural networks for improved time series prediction performance |
US10346211B2 (en) * | 2016-02-05 | 2019-07-09 | Sas Institute Inc. | Automated transition from non-neuromorphic to neuromorphic processing |
US10650046B2 (en) | 2016-02-05 | 2020-05-12 | Sas Institute Inc. | Many task computing with distributed file system |
US10642896B2 (en) | 2016-02-05 | 2020-05-05 | Sas Institute Inc. | Handling of data sets during execution of task routines of multiple languages |
US10795935B2 (en) | 2016-02-05 | 2020-10-06 | Sas Institute Inc. | Automated generation of job flow definitions |
US10295972B2 (en) | 2016-04-29 | 2019-05-21 | Brain Corporation | Systems and methods to operate controllable devices with gestures and/or noises |
US11270198B2 (en) | 2017-07-31 | 2022-03-08 | Syntiant | Microcontroller interface for audio signal processing |
US11373091B2 (en) * | 2017-10-19 | 2022-06-28 | Syntiant | Systems and methods for customizing neural networks |
WO2019133834A1 (en) * | 2017-12-28 | 2019-07-04 | Syntiant | Always-on keyword detector |
US11645501B2 (en) | 2018-02-28 | 2023-05-09 | International Business Machines Corporation | Distributed, event-based computation using neuromorphic cores |
US11315020B2 (en) | 2018-09-24 | 2022-04-26 | International Business Machines Corporation | Optimized partitioning of multi-layer networks in core-based neurosynaptic architectures |
Family Cites Families (82)
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 |
GB9205587D0 (en) * | 1992-03-13 | 1992-04-29 | Pilkington Micro Electronics | Improved artificial digital neuron,neuron network and network algorithm |
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 |
BR9810103A (pt) | 1997-06-11 | 2000-08-08 | Univ Southern California | Sinapse dinâmica para processamento de sinal em redes neurais |
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 |
US20070094224A1 (en) | 1998-05-28 | 2007-04-26 | Lawrence Au | Method and system for determining contextual meaning for network search applications |
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 |
KR100941209B1 (ko) | 2001-08-23 | 2010-02-10 | 소니 주식회사 | 로봇 장치, 얼굴 인식 방법 및 얼굴 인식 장치 |
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 |
EP1964036A4 (en) | 2005-12-23 | 2010-01-13 | Univ Sherbrooke | ROOM-TIME PATTERN RECOGNITION USING A NEURONAL SPIKING NETWORK AND PROCESSING THEREOF FOR 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 | 株式会社パイオラックスメディカルデバイス | 管状器官の治療具 |
US20100086209A1 (en) | 2008-10-02 | 2010-04-08 | Silverbrook Research Pty Ltd | Method of imaging position-coding pattern having tag coordinates encoded by bit-shifted 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 |
US9311593B2 (en) | 2010-03-26 | 2016-04-12 | Brain Corporation | Apparatus and methods for polychronous encoding and multiplexing in neuronal prosthetic devices |
US8315305B2 (en) | 2010-03-26 | 2012-11-20 | Brain Corporation | Systems and methods for invariant pulse latency coding |
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 |
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 | 中国计量学院 | 基于外加周期信号控制随机共振的轴承故障检测方法 |
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 |
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 |
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 |
US8725662B2 (en) | 2011-09-21 | 2014-05-13 | Brain Corporation | Apparatus and method for partial evaluation of synaptic updates based on system events |
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 |
US10210452B2 (en) | 2011-09-21 | 2019-02-19 | Qualcomm Incorporated | High level neuromorphic network description apparatus and methods |
US8712939B2 (en) | 2011-09-21 | 2014-04-29 | Brain Corporation | Tag-based 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 |
US9146546B2 (en) | 2012-06-04 | 2015-09-29 | Brain Corporation | Systems and apparatus for implementing task-specific learning using spiking neurons |
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 |
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 |
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 |
US9015092B2 (en) | 2012-06-04 | 2015-04-21 | Brain Corporation | Dynamically reconfigurable stochastic learning apparatus and methods |
US20130325774A1 (en) | 2012-06-04 | 2013-12-05 | Brain Corporation | Learning stochastic 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 |
US20130297539A1 (en) | 2012-05-07 | 2013-11-07 | Filip Piekniewski | Spiking neural network object recognition apparatus and methods |
US9111215B2 (en) | 2012-07-03 | 2015-08-18 | Brain Corporation | Conditional plasticity spiking neuron network 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 |
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 |
US9183493B2 (en) | 2012-10-25 | 2015-11-10 | Brain Corporation | Adaptive 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 |
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 |
-
2011
- 2011-09-21 US US13/239,123 patent/US9104973B2/en not_active Expired - Fee Related
-
2012
- 2012-09-14 TW TW101133859A patent/TWI514164B/zh not_active IP Right Cessation
- 2012-09-18 WO PCT/US2012/055933 patent/WO2013043610A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
TWI514164B (zh) | 2015-12-21 |
US9104973B2 (en) | 2015-08-11 |
WO2013043610A1 (en) | 2013-03-28 |
US20130073495A1 (en) | 2013-03-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI514164B (zh) | 用於仿神經系統之基本網路描述 | |
US9092738B2 (en) | Apparatus and methods for event-triggered updates in parallel networks | |
US9311596B2 (en) | Methods for memory management in parallel networks | |
US8712941B2 (en) | Elementary network description for efficient link between neuronal models and neuromorphic systems | |
US9412064B2 (en) | Event-based communication in spiking neuron networks communicating a neural activity payload with an efficacy update | |
CN104685516B (zh) | 用于在尖峰神经元网络中实现基于事件的更新的装置和方法 | |
Rhodes et al. | sPyNNaker: a software package for running PyNN simulations on SpiNNaker | |
US20200042856A1 (en) | Scheduler for mapping neural networks onto an array of neural cores in an inference processing unit | |
Walter et al. | Neuromorphic implementations of neurobiological learning algorithms for spiking neural networks | |
US11070623B2 (en) | Methods and apparatus for iterative nonspecific distributed runtime architecture and its application to cloud intelligence | |
WO2020173237A1 (zh) | 一种类脑计算芯片及计算设备 | |
US20210326189A1 (en) | Synchronization of processing elements that execute statically scheduled instructions in a machine learning accelerator | |
CN108985459A (zh) | 训练模型的方法和装置 | |
Barchi et al. | Flexible on-line reconfiguration of multi-core neuromorphic platforms | |
Davies | Learning in spiking neural networks | |
King et al. | A component-based extension framework for large-scale parallel simulations in NEURON | |
Haider et al. | Is Neuromorphic Computing the Key to Power-Efficient Neural Networks: A Survey | |
Rast et al. | Managing burstiness and scalability in event-driven models on the SpiNNaker neuromimetic system | |
Patterson | Managing a real-time massively-parallel neural architecture | |
Stromatias | Scalability and robustness of artificial neural networks | |
Nevarez et al. | Accelerator framework of spike-by-spike neural networks for inference and incremental learning in embedded systems | |
Yu | Concurrent Execution of Spiking Neuron Networks on Neuromorphic Hardware | |
CN115293325A (zh) | 模拟装置及模拟方法 | |
King | Brain communication server: A dynamic data transferal system for a parallel brain simulator | |
Dugan | Non-neural computing on the SpiNNaker neuromorphic computer |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |