新四季網

用於神經網絡的基於標記的裝置和方法與流程

2024-03-05 09:16:15 1


本發明專利申請是國際申請號為pct/us2013/032546,國際申請日為2013年3月15日,進入中國國家階段的申請號為201380025107.5,名稱為「用於神經網絡的基於標記的裝置和方法」的發明專利申請的分案申請。

相關申請的交叉引用

本申請是於2011年9月21日提交的題為「elementarynetworkdescriptionforneuromorphicsystems(用於神經元形態系統的元素式網絡描述)」的美國專利申請no.13/239,123的部分接續案,該申請通過援引明確納入於此。

本申請涉及於2012年1月27日提交的共同擁有的題為「tag-basedapparatusandmethodsforneuralnetworks(用於神經網絡的基於標記的裝置和方法)」的美國專利申請s/n.13/xxx.xxx、於2011年9月21日提交的共同擁有的題為「elementarynetworkdescriptionforefficientimplementationofevent-triggeredplasticityrulesinneuromorphicsystems(用於在神經元形態系統中高效實現事件觸髮式可塑性規則的元素式網絡描述)」的美國專利申請s/n.13/239,163、於2011年9月21日提交的共同擁有的題為「elementarynetworkdescriptionforefficientmemorymanagementinneuromorphicsystems(用於神經元形態系統中的高效存儲器管理的元素式網絡描述)」的美國專利申請s/n.13/239,155、以及於2011年9月21日提交的共同擁有的題為「elementarynetworkdescriptionforefficientlinkbetweenneuronalmodelsneuromorphicsystems(用於神經元形態系統中的神經元模型之間的高效鏈路的元素式網絡描述)」的美國專利申請s/n.13/239,148,上述每一件申請的全部內容通過援引納入於此。

版權

本專利文檔公開的一部分包含受版權保護的資料。版權所有人不反對任何人對該專利文檔或專利公開按照其在專利商標局的專利文件或記錄中的原樣進行複製,但除此以外保留其它所有版權權利。

cd-rom上的電腦程式列表附錄

本專利的文件包括具有呈ascii文件格式的四十六(46)個只讀存儲器文件的壓縮盤(cd-rom)的複製拷貝。文件詳情在下表1中給出。這些ascii文件包含表示用於本公開的電腦程式列表的示例性實現的代碼行。該cd-rom和其上所包含並在表1中列出的每一文件的全部內容通過援引納入於此。

表1

本創新涉及人工神經網絡的高效設計和實現。



背景技術:

絕大多數現有的神經元模型和系統包括具有簡單單元(稱為神經元(neuron))的網絡,這些簡單單元經由稱為突觸的連接彼此交互。此類神經元系統中的信息處理可並行地執行。

有許多專門軟體工具可以幫助神經科學家模擬神經系統的模型。這些工具的示例可包括可能設計成主要供神經科學家使用的高級實現,諸如neuron、genesis、nest、brian、和/或其它高級實現中的一者或多者。此類工具可能通常要求大量專門知識,可能是麻煩的,並且可能要求定製才能在使用特定軟體和硬體引擎來執行的模擬期間達成高效性能(尤其是在要求實時性能時,如在自主機器人應用中)。

類似地,低級實現(諸如彙編語言、低級虛擬機(llvm)語言、java字節碼、因晶片而異的指令集、和/或其它低級實現中的一者或多者)可被設計用於x86、armtm、和/或其它矽晶片上的高效硬體實現。然而,此類實現可能不適合用於神經元系統的並行模擬,這主要是因為矽晶片不是為用於此類並行神經元模擬而設計的。

總體上,現有的辦法具有實質性缺點,因為它們不能提供設計神經網絡中的足夠靈活性,要求專業知識、和/或因平臺而異的定製才能利用專門硬體。

相應地,存在對用於以人類可閱讀且機器可解讀的簡單且無歧義的方式來定義網絡架構的通用高級網絡描述的顯著需求。



技術實現要素:

本發明尤其通過提供用於神經元形態系統的高級網絡描述的裝置和方法等來滿足上述需求。

本發明的一個方面涉及一種實現神經網絡的由計算機實現的方法。在一些實現中,該網絡可包括多個元素。該方法可包括標識這多個元素的子集。該方法可包括向該子集的個體元素指派標記。給定標記的指派可被配置成使得能生成包括該子集的至少一部分元素的新網絡元素。

在一些實現中,該標記可包括被配置成標識一個或多個個體元素的唯一性標識符。

在一些實現中,個體元素可從這多個元素中隨機地選擇。該子集的個體元素可包括單元。該標記可包括串(strng)標識符。

在一些實現中,該標記可包括字母數字標識符,其可被適配成標識該子集的相應各個元素的空間坐標。該子集可包括多個節點。該字母數字標識符可包括這多個節點中的至少一個節點的標識符。

在一些實現中,該新網絡元素可包括連接。該連接可包括以下一者或多者:(i)突觸、(ii)結、和/或與連接相關聯的其它特徵。

本發明的另一方面涉及一種在神經網絡中生成多個連接的由計算機實現的方法。該神經網絡可包括多個元素。在一些實現中,該方法可包括以下一者或多者:(i)執行至少包括第一標記和第二標記的第一邏輯表達式,至少部分地基於該執行,(ii)標識這多個元素的第一子集和第二子集,(iii)生成第一子集的至少一部分與第二子集的至少一部分之間的多個連接,和/或其它操作。在一些實現中,第一子集的一個或多個個體元素可包括第一標記。第二子集的個體元素可包括第二標記。

在一些實現中,第一子集和/或第二子集的個體元素可包括該網絡的節點。該方法可包括向第一子集的一個或多個個體元素指派第一標記。

在一些實現中,第一標記或第二標記中的一者或兩者可由有限生存期來表徵。

本發明的又一方面涉及一種動態劃分計算機化神經網絡的方法。在一些實現中,該方法可包括以下一者或多者:(i)標識該網絡的元素子集、(ii)將標記指派給該子集的每一元素、和/或其它操作。根據一些實現,該標識和該指派可協作以使得能使用單個選擇操作來選擇該子集的一個或多個個體元素。

在一些實現中,該網絡可包括多個元素。該子集可包括這多個元素的多個節點。

在一些實現中,標識該子集可以至少部分地基於執行包括一個或多個關鍵字(包括and(與)、not(非)、or(或)和/或其它關鍵字)的布爾表達式。

在一些實現中,該方法可包括以下一者或多者:(i)標識該網絡的另一元素子集、(ii)將另一標記指派給該另一子集的每一元素、(iii)啟用該子集內的至少一部分元素與該另一子集的元素之間的多個連接、和/或其它操作。

在一些實現中,這多個連接中的一個或多個個體連接可包括突觸和結之一。這多個連接中的一個或多個個體連接可至少部分地基於該標記和該另一標記來啟用。

本發明的又一方面涉及一種處理裝置。在一些實現中,該處理裝置可包括被配置成存儲多個指令的非易失性存儲介質,該多個指令在被執行時可以實行根據一種方法的對神經網絡的動態劃分。該方法可包括以下一者或多者:(i)標識該神經網絡的元素子集、(ii)將標記指派給該元素子集的每一元素、和/或其它操作。該標記可包括被配置成標識一個或多個個體元素的標識符。在一些實現中,指派標記可被配置成使得能生成包括該元素子集的新網絡元素。

在一些實現中,該方法可以利用專用集成電路(asic)使用asic指令集來實現。

在一些實現中,該方法可包括由該處理裝置執行被配置成標識該子集的一個或多個個體元素的數學表達式。該數學表達式可包括布爾運算。

在一些實現中,該子集的一個或多個個體元素可以使用隨機選擇操作來選擇。

在一些實現中,該方法可包括將該標記指派給該新網絡元素。將標記指派給該子集可被配置成使得能將該網絡表示為有向圖。

在一些實現中,該方法可包括將第二標記指派給該子集。第二標記可與前述標記相異。

本發明的進一步方面涉及一種神經元網絡邏輯。在一些實現中,該神經元網絡邏輯可包括在數字處理器上執行的一系列電腦程式步驟和/或指令。在一些實現中,該邏輯可包括硬體邏輯(例如,在asic或fpga中實施)。

本發明的又一方面涉及一種計算機可讀裝置。在一些實現中,該裝置可包括其上存儲有至少一個電腦程式的存儲介質。該程序可被配置成在被執行時實現人工神經元網絡。

本發明的另一方面涉及一種系統。在一些實現中,該系統可包括有多個節點與之相關聯的人工神經元(例如,尖峰)網絡、受控裝置(例如,機器人或假體裝置)、和/或其它組件。

在參照附圖考慮了以下描述和所附權利要求之後,本公開的這些以及其它目的、特徵和特性、以及有關結構元素的操作方法和功能及部件組合和製造的組織體系將變得更為明了,所有附圖構成本說明書的一部分,其中相同的附圖標記在各圖中指示對應部件。然而要清楚理解的是,附圖僅用於解說和描述目的,並且無意作為對本公開的限定的定義。如在本說明書及所附權利要求中使用的,單數形式的「一」、「某」和「該」包括複數指示對象,除非上下文清楚規定並非如此。

附圖說明

圖1是解說根據一個或多個實現的包括多個節點和節點連接的人工神經網絡的框圖。

圖2是解說根據一個或多個實現的作為網絡對象的神經節點類型的框圖。

圖3a是解說根據一個或多個實現的節點互連的框圖。

圖3b是解說根據一個或多個實現的包括均勻樹突的節點互連的框圖。

圖3c是解說根據一個或多個實現的非均勻節點互連的框圖。

圖4是解說根據一個或多個實現的公共多房室神經元(mcn)的框圖。

圖5是解說根據一個或多個實現的公共節點聲明的示例性偽碼。

圖6是解說根據一個或多個實現的使用公共節點定義的公共節點互連的框圖。

圖7是解說根據一個或多個實現的包括兩個輸入接口和單個輸出接口的私有mcn的框圖。

圖8是解說根據一個或多個實現的私有神經元互連的框圖。

圖9是解說根據一個或多個實現的節點子集標記添加的圖形。

圖10是解說根據一個或多個實現的空間標記繼承的框圖。

圖11是解說end引擎的各種示例性實現的框圖。

圖12是解說根據一個或多個實現的使用hlndgui界面進行節點創建的框圖。

圖13是解說根據一個或多個實現的使用hlndgui界面進行節點子集選擇的框圖。

圖13a是解說根據一個或多個實現的使用hlndgui界面進行節點子集選擇的框圖。

圖13b是解說根據一個或多個實現的使用hlndgui界面進行節點子集選擇的框圖。

圖14是解說根據一個或多個實現的使用hlndgui界面進行節點選擇、標記添加和連接生成的框圖。

圖15是解說根據一個或多個實現的使用hlnd和end描述進行神經網絡計算的框圖。

圖16是解說根據一個或多個實現的可與hlnd框架聯用的計算機化裝置的框圖。

圖17是解說根據一個或多個實現的可與hlnd框架聯用的數據流的框圖。

本文公開的所有附圖是版權2013brain公司。保留所有權利。

具體實施方式

現在將參照附圖來詳細描述本公開的實現,提供附圖僅作為解說性示例以便使本領域技術人員能夠實踐本公開。值得注意的是,以下的附圖和示例並不旨在將本公開的範圍限定於單個實現,相反,藉由與一些或全部所描述或所解說的元素的交換或組合,其它實現也是可能的。在任何方便的地方,相同附圖標記將貫穿附圖始終用於指代相同或類似部分。

在這些實現的某些元素可部分或完全使用已知組件來實現的情況下,將僅描述此類已知組件的對於理解本公開所必要的那些部分,並且此類已知組件的其它部分的詳細描述將被省略以便不會混淆本公開。

在本說明書中,示出單數組件的實現不應被認為構成限定;確切而言,本公開旨在涵蓋包括多個相同組件的其它實現,反之亦然,除非本文另外明確聲明。

此外,本公開涵蓋了本文藉由解說所引述的組件的現在和將來已知的等效物。

如本文所使用的,術語「總線」一般意在標示被用於訪問突觸和神經元存儲器的所有類型的互連或通信架構。「總線」可以是光學、無線、紅外、和/或另一類型的通信介質。總線的確切拓撲可以是例如標準「總線」、階層式總線、片上網絡、地址-事件-表示(aer)連接、和/或用於訪問例如基於脈衝的系統中的不同存儲器的其它類型的通信拓撲。

如本文所使用的,術語「計算機」、「計算設備」、和「計算機化設備」可包括以下一者或多者:個人計算機(pc)和/或微型計算機(例如,臺式計算機、膝上型計算機、和/或其它pc)、大型計算機、工作站、伺服器、個人數字助理(pda)、手持式計算機、嵌入式計算機、可編程邏輯器件、個人通信器、平板計算機、可攜式導航輔助、裝備有j2me的設備、蜂窩電話、智慧型電話、個人集成通信和/或娛樂設備、和/或能夠執行指令集並處理傳入數據信號的任何其它設備。

如本文所使用的,術語「電腦程式」或「軟體」可包括執行功能的人類和/或機器可認知步驟的任何序列。此類程序可用包括以下一者或多者的程式語言和/或環境來呈現:c/c++、c#、fortran、cobol、matlabtm、pascal、python、彙編語言、標記語言(例如,html、sgml、xml、voxml)、面向對象的環境(例如,共用對象請求代理架構(corba))、javatm(例如,j2me、javabeans)、二進位運行時環境(例如、brew)、和/或其它程式語言和/或環境。

如本文所使用的,術語「連接」、「鏈路」、「傳輸信道」、「延遲線」、「無線」可包括任何兩個或更多個實體(無論是物理的還是邏輯/虛擬的)之間的因果鏈路,該鏈路可以實現各實體之間的信息交換。

如本文所使用的,術語「存儲器」可包括集成電路和/或適配成用於存儲數位訊號的其它存儲設備。藉由非限定性示例,存儲器可包括以下一者或多者:rom、prom、eeprom、dram、移動dram、sdram、ddr/2sdram、edo/fpms、rldram、sram、「閃」存(例如,nand/nor)、憶阻器存儲器、psram、和/或其它類型的存儲器。

如本文所使用的,術語「微處理器」和「數字處理器」一般意在包括數字處理設備。藉由非限定性示例,數字處理設備可包括以下一者或多者:數位訊號處理器(dsp)、精簡指令集計算機(risc)、通用(cisc)處理器、微處理器、門陣列(例如,現場可編程門陣列(fpga))、pld、可重配置計算機織構(rcf)、陣列處理器、安全微處理器、專用集成電路(asic)、和/或其它數字處理設備。此類數字處理器可被包含在單個酉ic管芯上,或跨多個組件分布。

如本文所使用的,術語「網絡接口」是指與組件、網絡、和/或進程的任何信號、數據、和/或軟體接口。藉由非限定性示例,網絡接口可包括以下一者或多者:火線(例如,fw400、fw800等)、usb(例如usb2)、乙太網(例如,10/100、10/100/1000(千兆比特乙太網)、10-gig-e(10千兆比特乙太網)等)、moca、coaxsys(例如,tvnettm)、射頻調諧器(例如,帶內或oob、電纜數據機等)、wi-fi(802.11)、wimax(802.16)、pan(例如802.15)、蜂窩(例如,3g、lte/lte-a/td-lte、gsm等)、irda族、和/或其它網絡接口。

如本文所使用的,術語「突觸信道」、「連接」、「鏈路」、「傳輸信道」、「延遲線」和「通信信道」包括任何兩個或更多個實體(無論是物理的(有線或無線)、還是邏輯/虛擬的實體)之間的鏈路,該鏈路實現各實體之間的信息交換,並且可由影響此信息交換的一個或多個變量來表徵。

如本文所使用的,術語「wi-fi」包括以下一者或多者:ieee標準802.11、ieee標準802.11的變體、與ieee標準802.11有關的標準(例如,802.11a/b/g/n/s/v)、和/或其它無線標準。

如本文所使用的,術語「無線」意指任何無線信號、數據、通信、和/或其它無線接口。藉由非限定性示例,無線接口可包括以下一者或多者:wi-fi、藍牙、3g(3gpp/3gpp2)、hsdpa/hsupa、tdma、cdma(例如,is-95a、wcdma等)、fhss、dsss、gsm、pan/802.15、wimax(802.16)、802.20、窄帶/fdma、ofdm、pcs/dcs、lte/lte-a/td-lte、模擬蜂窩、cdpd、衛星系統、毫米波或微波系統、聲學、紅外(即,irda)、和/或其它無線接口。

綜覽

本公開尤其提供了可被配置成以簡單和無歧義方式來定義神經元網絡架構的計算機化高級網絡描述裝置和方法等。

在一些實現中,一種計算機化裝置可被配置成實現高級網絡描述(hlnd)內核。該hlnd內核可使用戶能使用人類可閱讀且機器可解讀的統一且無歧義的表示來定義神經元形態網絡架構。

在一些實現中,hlnd格式可被用於定義節點類型、節點至節點連接類型、實例化針對不同節點類型的節點實例、使用標記來動態地標識和/或選擇網絡的子集、使用此類子集來生成這些節點之間的連接的實例、和/或與節點和/或標記相關聯的其它信息。

hlnd格式可以提供計算神經科學家所要求的一些或所有靈活性並且可以向在建模神經元方面經驗有限的用戶提供用戶友好的界面。

在一些實現中,hlnd內核可包括至元素式網絡描述(end)的接口。end引擎可被配置成以獨立於硬體的方式來高效表示神經元系統和/或可以實現hlnd模型描述至用於由各種處理模塊執行的硬體指令的無縫轉譯。

在一些實現中,hlnd框架可包括圖形用戶界面(gui),其被配置成使用戶尤其能創建節點、選擇節點子集、經由gui使用圖形動作來連接選定子集、和/或執行與本公開一致的其它操作等。gui引擎可被配置成生成hlnd語句,其可對應於以上用戶動作,而無需來自用戶的進一步輸入。hlnd框架可被配置成將hlnd語句轉換為經由gui呈現的對網絡的圖形表示。hlnd可包括一個或多個組件,這些組件包括(i)使用gui的網絡圖形描繪、(ii)hlnd語句的對應列表、和/或其它組件。hlnd的一個或多個組件可被配置成一致地表示關於網絡的相同信息,因為一種表示中的變化可被一致地應用於其它表示,藉此來反映對該網絡的一些或所有修改。

在一些實現中,hlnd可應用於任意的圖結構(例如,具有任意複雜架構的神經網絡)。

現在提供本公開的裝置和方法的各個實現的詳細描述。儘管本公開的某些方面可以在用於設計神經網絡架構的高級網絡描述格式的上下文中最好地理解,但本公開並不被如此限定並且本公開的實現可被用於實現為以硬體無關方式來高效表示其它系統(例如,生物或金融)而最優化的指令集。

本公開的實現可以例如部署在神經元形態計算機系統的硬體和/或軟體實現中。在一些實現中,機器人系統可包括實施在專用集成電路中的處理器,該處理器可被適配成或配置成在嵌入式應用(諸如假體設備)中使用。

圖1解說了可用於本公開的神經元網絡配置的一個實現。圖1中示出的網絡100包括不同類型的節點(圖1中的節點類型102、104)。如以下詳細描述的,hlnd框架允許用戶動態地選擇網絡節點的任意子集(圖1中的子集106、108)並經由連接(圖1中的連接110)互連選定子集的節點。網絡100的一些節點(例如,節點104_1)可以接收來自一個以上節點(例如,圖1中的節點102_1、102_2)的輸入。反之,一些節點(諸如,節點102_1、102_2)可以向若干節點遞送輸出,如圖1中所解說的。

hlnd框架設計綜覽

根據一個或多個實現,示例性hlnd框架可被配置成促成神經網絡(諸如圖1的網絡100)的設計。一些實現可以提供描述具有任意複雜性的神經元網絡的能力。一些實現可以促成對網絡生成過程使用預定義節點和/或預定義連接類型。即,不同節點類型的多個實例可以被生成、布局、和/或使用不同連接類型的多個實例來連接。一些實現可以提供對新節點類型的靈活定義,從而新節點類型可包括元素式網絡描述(end)單元類的實現和/或網絡對象(例如,節點布局、連通性集、和/或這些的組合)的實現。新定義的節點類型可在網絡生成過程中使用。end框架在以上納入的題為「elementarynetworkdescriptionforneuromorphicsystems(用於神經元形態系統的元素式網絡描述)」的美國專利申請s/n.13,239,123中描述。一些實現可以提供對連接類型的靈活定義。連接類型可包括end結類、end突觸類、和/或其它類的實現。在一個實現中,新定義的連接類型可在網絡生成過程中使用。一些實現可促成對一些或所有網絡元素(包括節點、連接、節點集合、和/或其它網絡元素)使用通用標記(或標籤)。在一些實現中,標記可被用於標識節點群和/或連接群。標記可被用於動態地選擇網絡的各部分。一個或多個布爾運算,諸如and、or、not、和/或其它布爾運算可被應用於標記。一些實現可以提供使用圖形用戶界面(gui)來實現hlnd網絡的能力。個體描述構造可以對應於gui中的用戶動作。在一些實現中,中等複雜性的模型可以使用hlndgui界面來建成而無需使用鍵盤。在一些實現中,hlndgui可以使用觸控螢幕、光筆輸入設備、和/或其它輸入技術來操作。一些實現可以促成用於定義網絡解剖結構的hlnd語句的呈現。定義網絡解剖結構可包括以用戶可閱讀語言(自然英語)來對節點和/或連接進行布局以便於非計算機專業網絡設計者理解。一些實現可以提供使用hlnd來生成end實例的能力。

網絡定義方法

定義神經網絡可包括定義要創建多少和/或什麼類型的節點、如何布局這些節點、如何連接這些節點實例(例如,圖1的網絡布局)、和/或其它操作。在一些實現中,hlnd定義方法包括(1)定義新節點類型和/或用於這些新節點類型的連接類型,(2)定義網絡內的節點布局(例如,要創建多少和/或什麼類型的節點,以及如何在正被創建的網絡內安排這些節點),(3)定義這些節點如何彼此連接,和/或其它操作。在神經網絡構造期間,以上步驟1-3可個體地和/或順序地重複多次。在一些實現中,以上步驟1可被跳過並且可取而代之在定義網絡時使用預定義類(其定義期望節點類型)。

在一些實現中,專用軟體包可被配置成(i)處理定義網絡的hlnd語句和/或(ii)實例化網絡節點和連接。這一處理和/或實例化可能經受一個或多個約束,包括(i)僅所定義的節點類型和所定義的連接類型可被實例化並在hlnd網絡定義過程中使用,(ii)僅現有節點實例之間的連接可被實例化,和/或其它約束。換句話說,根據一個或多個實現,在定義連接的hlnd過程中僅可使用與所定義的節點實例相對應的連接。在一些實現中,專用軟體包可包括end引擎,其可被配置成生成網絡模型的end實例,如在以上納入的共同擁有的題為「elementarynetworkdescriptionforneuromorphicsystems(用於神經元形態系統的元素式網絡描述)」的美國專利申請s/n.13/239,123中所描述的。

定義節點類型

節點類型的定義可以提供節點的實現指令,這些實現指令可被配置成指令網絡處理裝置根據節點類型在節點實例化期間執行特定步驟。在一些實現中,節點定義可進一步指定節點類型的內部實現(例如,指定神經元類型的動態)。在一個或多個實現中,節點定義可包括該節點的輸入埠和/或輸出埠的定義。

在一些實現中,節點類型可被定義為簡單節點,其中節點定義指定該節點的「內部構造」。節點的內部構造可包括end單元(即,神經元)的實現和/或神經元房室(compartment)的end實現。

在一些實現中,節點類型可被定義為複雜網絡對象,其可以提供關於如何實例化預定義節點類型的指令、關於如何連接各節點的指令、和/或其它指令。關於如何連接各節點的指令可包括對具有任意複雜性的網絡的hlnd描述,被配置成指定節點和/或連接實例生成的細節的算法、和/或其它指令。本領域技術人員將領會,術語「網絡對象」可被用於描述可使用hlnd框架來實現的任何網絡。

在hlnd框架描述內,個體節點類型可包括節點內連接並且可以定義用於傳入連接和/或傳出連接的一個或多個接口。

作為end單元的節點類型

在一些實現中,end單元類可以使用節點實現細節(例如,更新規則、事件規則)來生成。與end單元類相關的附加細節參見例如美國專利申請s/n.13,239,123。

作為網絡對象的節點類型

在一些實現中,網絡對象的定義可以類似於網絡的定義的方式來配置,其中主要區別在於網絡對象是可重用的。即,可以實例化一網絡對象的多個實例。網絡對象的一些或所有元素(例如,單元、標記、和/或其它元素)可以是有範圍的,即,它們可能具有與特定範圍相關聯的有限生命期。在一些實現中,網絡對象可被配置成提供可被用於將該網絡對象與其它節點相連接的i/o接口。網絡對象可以類似於模型中的構件塊(參見例如http://www.mathworks.com/products/simulink/index/html)、計算機輔助設計(cad)軟體中的p-cell(p細胞)、c++語言代碼中的函數/類、和/或其它編程元素。

在一些實現中,網絡對象可被允許使用在外部(即,在這一節點類型的範圍外)定義的預定義節點。因此,父節點(即,網絡對象)和(諸)子節點(即,在網絡對象中使用的節點類型)可能不包括相同類型的節點。換句話說,根據一些實現,『x』類型節點的定義可以不實例化『x』類型節點。

現在參照圖2,網絡對象的一個示例性實現被解說和詳細描述。網絡對象200可包括以下一者或多者:網絡定義、對象輸入/輸出(i/o)接口的規範、和/或其它信息。

網絡定義可以指定對象實例生成的一個或多個步驟。網絡定義可經由標準hlnd網絡定義來實現。標準hlnd網絡定義可包括使用預定義分布函數來指定每一預定義節點的實例數量和/或其空間安排的節點實例化和/或布局。標準hlnd網絡定義可包括連通性描述,其可定義節點之間的連通性。在一些實現中,連通性描述可以定義和/或使用節點的空間突起。作為非限定性示例,定義節點的空間突起可包括定義節點的軸突和/或樹突突起(例如,(i)樹突幅員、(ii)突觸結的分布、(iii)軸突末端的分布),定義節點(例如,模型神經元)的軸突如何連接至另一節點(例如,模型神經元)的樹突、和/或定義與節點的空間突起相關聯的其它信息。

藉由非限定性示例,標準hlnd網絡定義可被用於(i)定義預定義節點的特定布局;(ii)定義多房室神經元(例如,與預定義end結相連接的預定義end單元的集合);(iii)定義包括多個神經元的任意複雜的網絡;和/或定義與標準hlnd網絡定義相關聯的其它信息。在一些實現中,網絡可包括突觸和/或結。

在一些實現中,網絡的定義可包括使用算法的實例生成,該算法可被配置成使用以上對象定義來描述網絡對象實例生成的一個或多個步驟。藉由非限定性示例,該算法可包括以下一者或多者:(i)使用預定義節點類型和/或定義此類節點類型的實例生成過程的算法;(ii)使用預定義節點類型和/或連接類型和/或定義此類節點和/或連接類型的實例生成過程的任意算法;(iii)定義樹突樹的算法;和/或其它算法。

以上示例性算法可以利用實現神經房室的多個預定義end單元類型和/或被設計成以定義各房室的布局和其間的連接的算法將此類房室相連接的預定義end結類型。(參見例如cuntzh.、forstner,f.、borst.a和hausser,m.的(2010)「oneruletogrowthemall:ageneraltheoryofneuronalbranchinganditspracticalapplication.ploscomputationalbiology,6(8)(用一個規則來使之全體生長:神經元分支化的一般理論及其實踐應用,plos計算生物學,6(8))」,其全部內容通過引用納入於此)。i/o接口可以指定為網絡對象實現的輸入/輸出連接。

連接類型的定義

根據一個或多個實現,在hlnd內,連接類型的定義可以提供必要的實現細節(例如,事件前規則、事件後規則、更新規則、和/或其它細節)以生成包括(i)end突觸或(ii)end結中的一者或兩者的連接。

實例化節點

在一些實現中,hlnd可以定義管控節點實例化的規則。hlnd節點實例化指令可隨後被提供給解讀這些指令並實例化適當節點的軟體包(例如,end內核)。根據一些實現,在實例化期間,一些或所有節點類型可被等同對待,不管它們是簡單節點(例如,神經元的end實現)還是網絡對象(例如,整體網絡描述)。在一些實現中,可能需要以下信息來實例化和布局節點:(i)要實例化的節點類型,(ii)要實例化的節點類型的實例數量,和/或其它信息。

以基本形式,hlnd實例化語句可以使用與給定節點類型相對應的默認定義來創建該節點類型的n個實例。在實例化期間,可以使用附加參數以尤其(i)設置用於初始化被實例化的節點類型的參數,(ii)設置被實例化的節點如何在空間中布局(例如,如何指派位置標記),(iii)將附加標記添加至新的節點實例,和/或執行與hlnd實例化相關聯的其它操作。在hlnd內,操作範圍內可用的所定義的節點類型可被無限制地實例化。

在一些實現中,位置坐標(即,空間標記)可在節點實例化期間被指派給所生成的節點實例。為了實現這一功能性,hlnd框架可以支持使用向每一個被實例化的節點指派空間標記的預定義分布函數。此種分布函數可被配置成從給定的概率密度函數採樣n個點。藉由非限定性示例,hlnd語句:

uniform(n,boundaryparameters)

可以描述在由邊界參數(boundaryparameters)自變量所定義的空間範圍內採樣均勻(uniform)分布的n個點。類似地,hlnd語句:

normal(n,sigma,boundaryparameters)

可以描述在由邊界參數(boundaryparameters)所指定的空間範圍內採樣n個正態(normal)分布點。

除了個體生成的節點可以具有的唯一性id標記之外,可在實例化過程期間任選地指派額外標記並且這些額外標記可被用於標識新實例化節點的集合。在一些實現中,特殊的保留標記(例如,「in」(輸入)、「out」(輸出)、或其它特殊的保留標記)可被用於指定所生成的單元是網絡的輸入或輸出接口,因此使得這些節點是從外部可訪問的(可讀和/或可寫)。示例(example)性hlnd調用在以下列表1中示出:

a)創建100個『exc』節點類型(假定『exc』end類/網絡對象存在)

example1_exc_neurons=(100,『exc』)

b)創建200個『exc』節點類型並使用給定pdf(概率分布函數)來分布它們:

example2_exc_neurons=(200,『exc』,_exc_parameters_,pdf)

c)創建實現視網膜(retina)的網絡對象類型的1個節點(假定先前已實現『retina』網絡對象類型):

example3_retina=(1,『retina』,_retina_parameters_)

列表1。

形態/擴展

在一些實現中,在連接實例化期間可以使用形態/擴展。以上關於圖2描述的形態定義指定了被實例化的節點可如何突起和/或擴展到網絡空間中。即,形態可以定義空間延及範圍,其中被實例化的節點被允許(i)「接收」來自該空間擴展的傳入連接,和/或(ii)向該空間擴展「發送」傳出連接。注意,根據一些實現,節點擴展的添加可以不更改該節點的大小和/或位置。取而代之,各擴展可以使節點能在節點互連的實例化期間「搜索」其它節點。換句話說,擴展可以提供節點的附加「視圖」,該視圖可在連接節點的過程期間使用。

在一些實現中,可以僅在各節點交迭的情況下才允許使用空間標記來連接節點。各節點可默認具有零擴展。在一些實現中,僅共處節點可被連接。為了擴展節點連通性,可以定義非零節點輸入(樹突)和節點輸出(軸突)突起。在一些實現中,這些突起可在連接任何兩個節點時使用。例如,一個節點的輸出突起可被連接至另一節點的輸入突起。

為了創建擴展,根據一個或多個實現,可能要求以下信息中的一些或所有:(1)用於標識為其創建擴展的各節點的源標記;(2)被用於標識將創建的擴展的擴展標記;和/或(3)定義i/o點分布以定義在其中節點能接收傳入連接的空間/擴展,並定義在其中節點能具有傳出連接的空間。

對於傳入擴展,可以指定接收末端的分布。接收末端的分布可類似於神經元情形中的樹突(dendrite)幅員、和/或突觸結分布。對於傳出擴展,可以指定突起幅員。突起幅員可以類比於軸突(axon)末端。

對於接收末端和突起幅員的分布,hlnd可以支持預定義函數(例如,有界高斯和/或均勻分布)。一般來說,可以使用任意密度函數。

示例性hlnd調用在以下列表2中示出:

example1_exc_neurons_axon=(『example1_exc_neurons』,pdf1)

example2_exc_neurons_dendrite=(『example2_exc_neurons』,pdf2)

列表2。

在另一辦法中,連接被實例化而不使用形態/擴展。

連接節點

hlnd連接語句可包括被配置成實例化從一個節點集到另一節點集的(給定連接類型的)連接的指令。在一些實現中,可能要求以下信息中的一些或所有以便實現這些節點至節點連接:(1)「來自子集」、(2)「去往子集」、和/或(3)「連接類型」。「來自子集」可包括由唯一性地標識源節點/擴展(例如,連接所將源自的節點/擴展)的標記所選擇的節點子集。「去往子集」可包括由唯一性地標識目的地節點/擴展(例如,連接所將終結於的節點/擴展)的標記所選擇的節點子集。連接類型可包括用於將節點/擴展連接至節點/擴展的連接類型。

在一些實現中,hlnd連接語句可以用從所有可用的節點到所有可用的節點的給定連接類型來指導連接實例化。根據一些實現,連接參數可被用於濾除連接。即,過濾器約束可應用於一些或所有可能的至連接。因此,可能的至連接的子集可被實例化,這可允許從至的任意連接映射的實例化。在一些實現中,連接可被表達為函數調用。在一些實現中,連接可使用表格來表達。在一些實現中,連接過濾器可被配置成生成所有至所有連接,其中所有的被連接至所有的。

順便提及,可在各種實現中使用兩種註記格式和,因為這兩種註記均可以使hlnd為子集生成連接。例如,註記可以描述具有標記『來自標記1』和『來自標記2』兩者的節點的集合(例如,集合1)。相應地,可代替地使用註記:而產生相同結果。

藉由非限定性示例,可以採用以下連接語句:

exc2exc=(pre='example1_exc_neurons_axon',

post='example2_exc_neurons_dendrite',100connections/cell,

syntype='glu',_other_parameters_)。

在一些實現中,hlnd連接語句可被配置成實現參數化的連接建立,從而各參數可傳遞給連接類型以設置連接實例中的連接變量。在一些實現中,連接參數可被用於設置突觸節點連接的權重。在一些實現中,節點信息(例如,「來自節點」和「去往節點」的位置)可被用於基於節點之間的距離來設立連接權重。

藉由非限定性示例,可以採用以下連接語句中的一個或多個:(1)將每一節點連接至n個節點;(2)將n個節點連接至每一節點;和/或(3)從所有可能連接中隨機採樣n個。

在一些實現中,節點可包括位置標記和/或可以具有零默認擴展。此類節點可以連接至共處節點。用空間標記來連接節點可能要求交迭,從而交迭節點可被連接。

現在參照圖3a,示出並詳細描述了hlnd框架節點互連的示例性實現。圖3a的網絡300可包括a節點群302和b節點群304。為了清楚,網絡300可使用一維配置來配置,從而具有匹配的x坐標306(即,圖3a中節點索引i=1:7)的各節點被允許經由連接308來連接。具體地,當i=j時(諸如舉例而言,分別為圖3a中的節點312、314),可以允許來自節點群302的節點a_i連接至節點群304的相應節點b_j。由實線308解說了若干可能連接。

在一些實現中,諸如在圖3b-3c中所解說的,節點擴展可被分別添加至各節點群的節點,以便實現複雜連接並實現更為靈活的連接映射。節點擴展可被尤其用於將源節點(例如,圖3b中的群322的節點a)的空間坐標映射到接收節點(例如,圖3b中的節點324)。這些擴展可被用於定義潛在連接的概率密度函數,諸如在圖3c中解說的示例性實現中那樣。

圖3b解說了包括節點擴展的節點至節點連接配置的示例性實現。圖3b的網絡320可包括a節點a_1:a_7的群322和單個b節點324。圖3b的網絡320可使用單個維度來配置,從而具有匹配的x坐標306的各節點可以形成連接。圖3b的b節點324可包括具有維度332的均勻樹突擴展330。a節點群322的個體節點(諸如節點322_1)可包括具有維度328的均勻軸突擴展326。軸突維度328可小於樹突維度332。術語「均勻擴展」可被用於描述用於實現交迭擴展(這一示例中的軸突或樹突)的連接的均勻概率分布。即,根據一些實現,節點連接可被以均等的可能性提供其擴展交迭。對於一維擴展(例如,圖3b中的擴展330),這可對應於沿擴展330的延及範圍332的均勻連接概率。對於多維擴展,均勻擴展可對應於在所有維度中的均勻連接概率。

當軸突326_i與樹突330的空間維度332交迭時,圖3b中解說的網絡配置可以允許a群322的節點a_i與b_1節點324之間的連接。如圖3b中所解說的,節點a_3、a_4、a_5可經由這些連接來被連接至節點b_1,如圖3b中的實箭頭308所描繪的。其它a節點之間的不活躍(例如,不被允許的)連接318在圖3b中由虛箭頭描繪。標記和可指代節點的另一『視圖』。

如圖3b中所解說的,可以構造以下擴展:(i)至圖3b中的b節點330的均勻圓形擴展(表示為樹突);(ii)至圖3b中的所有a節點的均勻圓形擴展(表示為軸突);和/或(iii)將連接至。a至b節點連接是可能的並且可被實例化,因為發送和接收擴展兩者可以是均勻的。在這一示例中,連接語句正在查找擴展交迭——即,節點的擴展是否與節點的擴展交迭。

在hlnd框架內,各節點可包括不同的視圖,諸如舉例而言,軸突或樹突。節點標記『軸突』或『樹突』可在hlnd中被用於指代同一節點。軸突/樹突可以具有不同的空間性質。

圖3c解說了包括非均勻節點擴展的節點至節點連接配置的示例性實現。圖3c中描繪的網絡338可包括a節點的群322和b節點344。這些a節點中的個體節點可包括均勻擴展326。b節點344可包括非均勻擴展340。術語非均勻擴展可被用於描述跨擴展的至少一個維度具有非均勻連接概率分布的節點擴展(軸突或樹突)。對於一維擴展(例如,圖3c中的擴展340),這對應於沿擴展延及範圍342的非均勻擴展連接概率分布。在一些實現中,擴展連通性參數p可包括連接似然性,其可由作為擴展延及範圍342的函數的概率函數來表徵。

非均勻擴展340的連通性剖視(參見圖3c)可使用高斯分布和/或其它分布的形狀來配置。擴展340可以節點344為中心。擴展340可由特定方差σ2和半徑348來表徵。

經由非均勻擴展的節點連接在圖3c中解說。當軸突326_i與非均勻樹突340的空間維度342交迭時,圖3c中解說的網絡配置可以允許a群322的節點a_i與b節點344之間的連接。網絡338中的可能連接包括a_3、a_4、…、a_10軸突至b樹突,因為a_1軸突、a_2軸突、和a_11軸突不與樹突340空間擴展342交迭。

非均勻擴展(例如,圖3c中的擴展340)可以使連接選擇偏向與非均勻樹突的最高概率區域交迭的軸突。雖然擴展維度交迭可被用於標識所有可能的連接,但對可能的連接的採樣可以遵循擴展的連通性剖視(概率)。當選擇可能的連接的子集時,可能需要考慮該擴展的(描述連接似然性的)連通性剖視(形狀)。藉由非限定性示例,當將單個任意326連接至340時(參見圖3c),最有可能的結果可能是節點a_6與節點344之間的連接,而非節點a_1、a_10與節點344之間的連接。

在一些實現中,用於使用非均勻擴展來連接節點群體的hlnd示例性操作序列可以是:(1)將以節點為中心的具有固定半徑r1的高斯擴展添加至諸b節點並將這些擴展標記為;(2)將具有固定半徑r2的均勻擴展添加至諸a節點並將這些擴展標記為;以及(3)將n個隨機連接至。可能的連接可以是在節點的擴展與節點的擴展交迭之處。被實例化的連接可對應於最高連通性。在一些實現中,最高連通性可基於高斯和均勻函數的乘積來確定。

用於網絡對象的i/o

在hlnd框架的一些實現中,網絡對象可包括一個或多個成員以及輸入/輸出(i/o)接口。該i/o接口可指定如何與網絡的其它元素對接(例如,建立連接)。在一些實現中,網絡對象的成員可包括節點。在一些實現中,網絡對象的成員可包括節點和連接。i/o接口可以定義可如何從網絡對象的範圍的外部訪問對象成員。在定義期間,網絡對象的個體成員(及其值)可被聲明為公共或私有。私有成員可能對於該網絡對象外的外部網絡元素是不可見的(即,不可直接訪問)。私有對象成員可經由為該成員定義的i/o接口來訪問。即,網絡對象的私有成員可能從該網絡對象的範圍外部不可見。在這一情形中,可能要求i/o接口來實現連接。

在一些實現中,網絡對象可被定義為『開放』的。定義為開放的網絡對象的成員可以是公共的並且從該網絡對象的範圍外部可見。這可減輕公布i/o接口的要求。

網絡對象的公共成員可以是由外部元素可見和/或可訪問以用於輸入和/輸出連接。在一些實現中,網絡對象的成員可默認是有範圍的。即,網絡對象內的一些或所有變量的範圍可被限於在該網絡對象內。同一網絡對象類型的多個實例的成員在這些成員使用相同標記時不會產生幹擾。

在一些實現中,網絡對象可被定義為『宏』。定義為宏的網絡對象可以不被作為有範圍的對象來對待。此種宏定義可以允許在宏對象內定義的一些或所有變量由外部元素可訪問和/或可見。

藉由非限定性示例,節點_a可以是網絡對象no1的公共成員,節點_b(其不是no1的成員)可以直接連接至節點_a,和/或接收來自節點_b的連接。可通過使用標記和、和/或用no1.節點_a有範圍註記來訪問no1中的成員節點_a。根據一些實現,作為網絡對象no2的私有成員的節點_c可能從外部不可見和/或不可訪問,除非為no2的節點_c成員定義了i/o接口。外部節點(其不是no2的成員)不可直接連接至節點_a成員和/或直接接收來自節點_a成員的連接。換句話說,可使用標記和/或其它公共可用信息來訪問網絡對象的公共成員。

結合圖4示出並描述了解說公共多房室神經元(mcn)的hlnd網絡對象的示例性實現。mcn神經元400可包括一個或多個公共節點,這一個或多個公共節點可包括樹突房室404和胞體房室402。術語公共可指代網絡對象(例如,房室402、404)的從其定義的範圍外部(例如,mcn400外部)可見的成員。個體房室404可被指派兩個標記,這兩個標記可包括dendrite(樹突)、comp(房室)、和/或其它標記。房室402可被指派三個標記,這三個標記可包括dendrite、comp、soma(胞體)、和/或其它標記。房室402和個體房室404可經由結連接406來連接。

藉由非限定性示例以解說根據一些實現的公共網絡元素的功能性,可以考慮公共mcn神經元400的兩個實例。一個實例可被標記為『神經元a』,而另一實例可被標記為『神經元b』。註記集合可指代神經元_a實例中的具有胞體標記的mcn成員402。集合可指代神經元_b實例中的具有胞體標記的mcn成員402。因為mcn的一些或所有成員402、404可以是公共的,所以它們對於外部實體(例如,mcn)可以是可見的,這可使得能夠實現至的直接連接。

在一些實現中,從至的連接可使用給定的連接類型來實例化。

如將由本領域技術人員領會的,以上註記是示例性的並且可以使用各種其它註記以便使用節點成員的標記來標識、選擇、和/或訪問節點成員。

圖5解說了根據一個或多個實現的公共神經元a和b(在圖5中分別由指示符500和520來標示)之間的連接實例化。節點a的個體成員504和節點b的個體成員b524可以是公共的。個體『a』成員504可被連接至個體『b』成員524。圖5中解說了一示例,其中外突起508可與節點524的多個內突起526交迭,從而可在單個a節點504與一個或多個b節點524之間建立連接508。

圖6中給出了與圖5中解說的實現相對應的示例性偽碼。圖6中的語句600和620可被配置成分別生成圖5的節點實例504和524。圖6中的語句606和626可被配置成分別定義圖5的外突起506和/或內突起526。最後的語句610可被配置成定義連接508。

圖7解說了包括私有多房室神經元的網絡對象的示例性實現。私有mcn神經元700可包括一個或多個私有房室704和/或私有房室702。術語『私有』可指代在相應網絡對象的定義範圍的外部(例如,mcn700的外部)不可見的網絡成員(例如,房室702和704)。個體房室704可被指派兩個標記,這兩個標記可包括dendrite、comp、和/或其它標記。房室702可被指派三個標記,這三個標記可包括dendrite、comp、soma(胞體)、和/或其它標記。

藉由非限定性解說,可以考慮私有mcn700類型的兩個實例。一個實例可被標記為『神經元_a』,而另一實例可被標記為『神經元_b』。因為mcn700類型被定義為私有,所以mcn700成員(例如,<神經元_aand樹突&房室>、、<神經元_b&樹突&房室>、<神經元_b&胞體>、集合)可以是從mcn700的外部不可見的。根據一些實現,對於圖7中解說的節點配置類型,可能不允許直接將連接至。為了實現神經元外部連通性,mcn700定義可包括輸入(in)埠714和716、以及輸出(out)718埠,其可被用於指定針對該mcn節點類型的i/o接口。mcn700的輸入接口可包括至mcn700的私有成員的直接內部連接。至mcn700的私有成員的直接內部連接可包括從輸入接口in1714到具有標記「樹突」和「房室」的私有成員704的連接726、728和730。至mcn700的私有成員的直接內部連接可包括從輸入接口in2716到具有標記「胞體」的私有成員702的連接720。鏈路722可將私有成員702連接至輸出(out)接口718,這可允許節點702被用於傳出連接和/或用於傳入連接。神經元_a.out可被配置成連結/連接至神經元_b.in1。神經元_b.out可被配置成連結/連接至神經元_a.in2。

圖8解說了私有網絡對象a和b(分別由圖8a中的指示符800和820標示)之間的示例性連接實例化。節點a的成員804中的個體成員和/或節點b的成員824中的個體成員可以是私有的,並且因此可能不可由外部實例訪問。即,根據各個實現,『a』節點成員804可以是不可由『b』節點成員824訪問的,反之亦然。為了使節點實例800能生成至節點820的外部連接,可以要求用於私有節點成員的i/o接口。在一些實現中,i/o接口可包括輸入/輸出埠(例如,i/o埠714、716和718,以上關於圖7描述的)。私有節點實例(例如,實例800)可包括大量(例如,數百萬)的其它私有成員。私有節點實例可以為那些成員提供將被用於傳出連接的傳出接口812。

反之,根據一些實現,雖然可保持節點實例820的成員824中的個體成員為私有,但輸入接口822可被用於指定節點成員824如何連接至輸入埠822。儘管圖8a的實現中解說了單個埠,但這並不旨在構成限定,因為可在一些實現中使用多個被唯一性地標記的輸入/輸出埠。

因為節點實例800的輸出接口812和節點實例820的輸入接口822可暴露於外部網絡元素和/或對外部網絡元素可見,所以可以通過使用輸入和輸出接口812和822以類似於以上關於圖5、圖7描述的連接建立的方式在網絡對象的節點實例800和820之間建立鏈路/連接810。

圖8b給出了與圖8a中解說的連接建立實現相對應的示例性偽碼。圖8b中的語句830可以創建圖8a中的節點實例804並且可以暴露輸出埠812。圖8b中的語句850可以創建圖8a中的節點實例824。圖8b中的語句856和852可以分別定義圖8a的『b』節點824的內突起826和/或圖8a的輸入接口822。語句858可以定義該輸入接口與『b』成員之間的連接。

在一些實現中,第三網絡對象860可以分別創建類型a800和b820的實例inst_a和inst_b,和/或可以使用節點實例800的a_輸出埠和節點實例820的輸入埠將inst_a實例連接至inst_b實例。圖8b中示出的示例性hlnd定義步驟可包括(1)創建a的實例(inst_a),(2)創建b的實例(inst_b),和/或將inst_a連接和/或連結到inst_b。

因為節點實例a和b的成員可能是私有的,所以對象c可能無法將實例a的成員直接連接至實例b的成員。取而代之,對象c可以使用暴露的埠inst_a.a_out至inst_b.in。在連接中,聲明868可以使用等號註記來標示inst_b.in被賦給(例如,同於)inst_a.a_out。在一些實現中,hlnd編譯器可以使用定義868和私有節點b成員的定義通過將inst_b.in與節點實例a800的對應(諸)成員連結(即,間接建立(a的)inst_a與(b的)inst_b之間的連接)來解析虛擬b.in埠與節點b820的實際成員之間的連接。如圖8a中所解說的,節點類型800和820可以指定要實行節點至節點連接所可能要求的突起擴展和/或突觸類型(syntype)/連接類型。

標記

根據一些實現,網絡的個體元素(即,節點、擴展、連接、i/o埠)可被指派至少一個唯一性標記以促成hlnd操作和歧義性消除。各標記可被用於標識和/或引述相應的網絡元素(例如,該網絡的在指定區域內的節點子集)。

在一些實現中,標記可被用於形成節點的動態群聚,從而這些動態創建的節點群可被彼此連接。即,節點群標記可被用於標識節點子集和/或創建網絡內的新連接,如以下結合圖9詳細描述的。這些附加標記可以不是創建網絡元素的新實例,而是可以將標記添加至現有實例,從而附加標記被用於標識經標記實例。

圖9解說了使用附加標記來標識經標記實例的示例性實現。網絡節點群體900可包括一個或多個節點902(標記為『我的節點』)、一個或多個節點904(標記為『我的節點』和『子集』)、和/或其它節點。圖9的節點群體900中的暗三角形可標示標記為『我的節點』的節點902,而黑白三角形可對應於標記為『我的節點』和『子集』的節點子集904。

使用標記『我的節點』,就可以選擇節點集合910。節點集合910可包括節點902和/或904中的諸個體節點(參見例如圖9)。節點集合920可以表示標記為的節點。節點集合920可包括節點902中的諸個體節點。節點集合930可以表示標記為『子集』的節點。節點集合930可包括節點904中的諸個體節點(參見,例如圖9)。

在一些實現中,hlnd框架可以使用兩種類型的標記,其可包括串標記、數值標記、和/或其它標記。在一些實現中,各節點可包括任意的由用戶定義的標記。數值標記可包括數字標識符(id)標記、空間標記、和/或其它標記。

在實例化節點之際,被實例化的節點可以具有串標記(節點類型)和唯一性數值標記(唯一性數值標識符)。在一些實現中,位置標記可在實例化過程期間被指派。

對標記的運算

如圖9中所示,各標記可被用於標識網絡的子集。為了實現這一功能性,可以對標記使用一個或多個布爾運算。在一些實現中,數學邏輯運算可與數值標記聯用。註記可以標識網絡的子集,其中由尖括號封裝的串可以定義配置成標識和/或選擇子集的操作。藉由非限定性解說,可以從網絡中選擇具有標記『我的標記』的諸個體節點;可以從網絡中選擇具有標記『我的標記1』和『我的標記2』串標記兩者的諸個體節點;可以從網絡中選擇具有標記『我的標記1』或『我的標記2』串標記的諸個體節點;可以從網絡中選擇具有串標記『我的標記1』但不具有串標記『我的標記2』的諸個體節點;以及<『我的標記1』andmymathfunction(空間標記)可以從網絡中選擇具有串標記『我的標記1』且由mymathfunction(我的數學函數,在被應用該節點的空間坐標時)提供的輸出小於數值1的諸個體節點。注意,根據各個實現,這一示例假定存在空間標記,這不是強制的。

標記繼承

在一些實現中,hlnd框架可包括階層式標記繼承。在一些實現中,在網絡對象內實例化的個體成員可以繼承其父親的串標記。例如,網絡對象的具有標記『父標記1』和『父標記2』的諸個體成員除了例如在成員實例化期間指派的因成員而異的標記外還可包括標記『父標記1』和『父標記2』。

在一些實現中,成員空間標記數據可指代該成員的局部坐標(參照由網絡對象定義的空間)。在一些實現中,全局坐標(參照整個網絡的空間)可以從網絡對象和/或成員的嵌套結構中推斷出來。

圖10解說了空間標記繼承的示例性實現。網絡對象b(未示出)可以實例化類型c的節點的單個實例(例如,在位置(1,1)處的節點_c,其在圖10中被標示為1002)。網絡對象a(未示出)可以實例化節點類型b的兩個實例(例如,在位置(1,1)處的節點_b_1和在位置(1,2)處的節點_b_2,其在圖10中分別被標示為1004和1006)。節點_c的坐標可參照節點_b_1的範圍。節點_b_2的坐標可被設為(1,1)。節點_b_1和節點_b_2的參照節點_a的範圍的坐標可被分別設為(1,1)和(1,2)。節點_b_1中的節點_c的參照節點_a的範圍的坐標可被確定為(1,1)+(1,1)=(2,2)。節點_b_2中的節點_c的參照節點_a的範圍的坐標可被確定為(1,2)+(1,1)=(2,3)。注意,註記節點_c、節點_b_1、節點_b_2和節點_a可被用於分別標識類型c、b和a的被實例化的對象。

根據一個或多個實現,hlnd標記性質和/或特性可被概述為如下:標記類型可包括串標記和數值標記;數值標記可包括數值標識符;布爾運算可被用於標記;對數值標記可允許數學函數;可指派任選的空間標記和串標記;個體節點實例可包括唯一性數值標識符標記;串標記繼承可以是階層式的;空間標記可以指代局部坐標;全局標記坐標可從節點的嵌套結構中推斷出;和/或其它性質和/或特性。

標記實現

在一些實現中,標記的hlnd框架實現可被配置成要求以下功能性:(i)至標記-數據生成器和數據處理機的接口;和(ii)嵌套對象的實現以便使得能從任何數量的現有網絡對象創建複雜網絡對象。

在一些實現中,標記數據處理機可以使用資料庫(諸如舉例而言,mysql)來實現。網絡對象的實例可以使用任意串標記來生成。在一些實現中,網絡對象可以使用位置標記以及串標記來生成。標記數據可被置於資料庫中。可以生成附加網絡數據(例如,連接實例,諸如結、突觸等)。連接的實例化可以取決於位置標記和/或查詢結果。新數據可被存儲在資料庫中。

標記實現配置可以使得能將網絡軟體應用劃分為兩個部分,其可包括數據生成塊、數據存儲塊、和/或其它部分。數據生成塊(例如,用c++實現)可被配置成基於其自身的『智能』和/或通過與資料庫(例如,mysql)交互來生成數據。在一些實現中,數據生成器功能性可被嵌入到資料庫伺服器內。數據生成器可以使用由觸發來激活的伺服器側規程來實現。此類觸發可包括存儲在資料庫伺服器上的插入並連接調用/觸發規程。

在一些實現中,實例化end突觸/結可能要求諸如以下一者或多者之類的信息:突觸前單元1的類和id、突觸後單元2的類和id、突觸前單元1和突觸後單元2的空間位置、以及突觸前單元1.out和突觸後單元2.in的空間突起、和/或其它信息。

可以生成突觸/結實例。在一些實現中,附加的外部參數可被用於end突觸/結的實例化。外部參數的示例可包括突觸權重、突觸延遲、和/或其它外部參數。節點至節點連接中的突觸權重和/或延遲的使用和功能性在於2011年6月2日提交的共同擁有的題為「apparatusandmethodsfortemporallyproximateobjectrecognition(用於時間上接近的對象的識別的裝置和方法)」的美國專利申請no.13/152,105和/或於2011年6月2日提交的共同擁有的題為「apparatusandmethodsforpulse-codeinvariantobjectrecognition(用於脈碼不變對象識別的裝置和方法)」的美國專利申請no.13/215,575中進一步詳細描述,上述每一者的全部內容通過援引納入於此。

為了連接使用不同空間坐標的不同網絡對象,可以公布用於每一網絡對象的坐標系。即,坐標系配置可以對某個範圍內的個體節點可用。

在hlnd框架內,網絡對象之間的連接可按一種或多種方式來建立。在一些實現中,該連接可基於軸突末端分布和突觸結分布之間的交迭來建立。在一些實現中,總體連接映射可以使用軸突末端分布和突觸結分布的聯合概率分布函數(pdf)來獲得。聯合pdf可被用於建立所需的連接(突觸)。在一些實現中,hlnd框架可被配置成分布潛在連接點中的個體連接點。連接點可受制於一個或多個特定條件,諸如空間坐標和/或其它條件。hlnd連接算法可被配置成選擇這些連接點的所有(或子集)。hlnd連接算法可被配置成實例化對應的連接。在一些實現中,hlnd可被配置成生成任意的由用戶定義的連接集。根據一些實現,hlnd可被配置成生成所有至所有連接。

類sql格式

在一些實現中,hlnd可以完全使用sql來實現。根據一些實現,此種sql實現可以使用mysql資料庫和所存儲的函數/規程來實行。hlnd語句可根據英語語言語法來構造。

標記示例

如上所述,hlnd內定義的個體網絡元素(無論它是節點、單元、突觸、或結、或僅是空的佔位符)可包括標記。hlnd網絡描述的這一特性可以允許經標記的元素尤其作為群被尋址和操控。在一些實現中,空間坐標可以使用(x,y,z)形式的標記來實現。

藉由非限定性示例,網絡單元可包括一個或多個標記,其包括單元id數值標識符、『qif』、『胞體』、『稜錐形』、『層2/3』、『v1』、空間坐標標記(0.1,0.3,0.5)、和/或其它標記。突觸可以具有諸如以下標記:ud,分別標示突觸前和突觸後節點id的神經元前、神經元後、和/或其它標記,『頂端』,『exc』,『glu』,和空間坐標標記(0.1,0.3,0.4)。

tagged(經標記)算子和標記過濾器

在一些實現中,將標記存儲在資料庫中可以允許快速訪問元素群。對標記進行運算的個體資料庫查詢語句可充當從資料庫中選擇(匹配於查詢項的)特定元素的標記過濾器(或搜索語句)。例如,在查詢中指定可以導致選擇在其任何標記中包括'v1'的個體元素,例如整個v1子集。指定(<'v1'and'稜錐形'andnot'層2/3')可得到v1中不位於網絡層2和3中的個體稜錐形細胞。

在一些實現中,標記查詢的輸出可被如下地指派其自己的標記:

taggednewtag

列表3

一些實現可以允許尋址滿足標記過濾器(tagfilter)的元素,而無需複製和粘貼過濾器語句。

示例3。

以下語句:

excorinhtaggedall

可以將標記『所有』(all)添加至所有的『exc』和『inh』神經元以易於引用。

示例4。

以下語句:

(excandid<400)or(inhandid<100)taggedfirst_half

可以通過將額外標記指派給第一半(first_half)元素來將網絡切為兩半。

of算子和子集

在一些實現中,表達式

nof

列表4

可以返回滿足標記過濾器(tagfilter)條件的n個隨機元素的列表。如果標記過濾器返回少於n個元素,則一些元素可被複製,從而由列表5的表達式返回的元素的總數量等於n。of算子可以不指派新的標記。of算子可以選擇元素子集。為了向子集的元素指派標記,可以使用tagged算子。表達式

100ofconestaggeds_cones

列表5。

可以從視錐(cone)的節點群體中選擇100個元素並且可以將個體選定元素標記為s_cones。類似地,表達式

300of(conesandnots_cones)taggedm_cones

conesandnotm_conesandnots_conestaggedl_cones

列表6。

可以從(不在子集s_cones中的)視錐的節點群體中選擇300個元素,可以將個體選定元素標記為m_cones,可以從(既不在s_cones子集中也不在m_cones子集中的)視錐的節點群體中選擇個體其餘元素,並可以將每一選定元素標記為l_cones。

示例6。

根據一些實現,包括800個激發性(exc)神經元和200個抑制性(inh)神經元的網絡可被拆分為兩個等同的子網絡,即子網絡1(subnetwork1)和子網絡2(subnetwork2),其各自包括400個exc和100個inh的隨機選定的神經元,如下:

400ofexctaggedsubnetwork1

100ofinhtaggedsubnetwork1

400of(excandnotsubnetwork1)taggedsubnetwork2

100of(inhandnotsubnetwork1)taggedsubnetwork2

列表7。

將列表7的實現與以下語句進行對比:

500of(excorinh)taggedsubnetwork1

500of(excorinh)taggedsubnetwork2。

列表8。

列表8的語句不保證子網絡1和子網絡2中的每一者精確地包括400個激發性神經元和100個抑制性神經元。

put算子和單元的實例化

該put算子可被用於如下地實例化和標記網絡單元:

putnofunit_class

列表9。

put算子可以是創建『單元_類(unit_class)』類型的n個實例並將其標記為(id,unit_class)的指令。附加標記可隨後通過使用tagged算子被添加至這些單元。put算子可以調用單元_類的相應構造器函數以實例化個體單元。在列表10中,of關鍵字可被用於使得通過調用單元_類構造器n次來生成該單元_類的n個副本。

示例8:

根據一些實現,語句

put800ofexc

列表10。

可以創建exc類的800個單元,其中個體實例被標記為(id,exc)。

以下語句

put800ofexctaggedexc_neurons

列表11。

創建exc類的800個單元,其中個體實例被標記為(i)(id,exc);和/或(ii)附加標記exc_neurons,從而個體實例包括兩個標記。

在一些實現中,put算子可被如下地用於通過使用過濾器參數來創建單元實例:

putofunit_class

列表12。

列表12的指令可被配置成創建unit_class的與由(標記過濾器)查詢欄位選定的元素數量相對應的數量的實例。列表12中個體的被實例化的單元可用與單元列表中由該查詢選定的相應元素相對應的標記來標記。當構造函數unit_class被調用時,它可以能夠訪問其實例化的元素的標記(例如,id、坐標等),從而構造器具有充分的信息用於單元構造。

示例9:

語句

800oncircle(l)taggedmy_points//參見以下對on的定義

putmy_pointsofexc

列表13。

可被配置成實例化並在單位圓(circle)上分發exc類的800個單元。可通過使用合成語句put800ofexconcircle(1)來達成相同結果。

connect算子和連接單元

連接(connect)算子可如下被用於突觸連接:

connectpre_tagtopost_tagwithsynapse_class

列表14。

其中參數synapse_class(突觸_類)標示針對突觸連接的類定義,而前標記(pre_tag)和後標記(posttag)標示指定由突觸所連接的突觸前單元和突觸後單元的過濾器掩碼。在一些實現中,多個突觸前和/或突觸後單元可由過濾器掩碼來選擇,藉此導致在滿足過濾器掩碼的單元之間生成多個突觸連接。

在一些實現中,synapse_class可在connect語句中由junction_class(結_類)來代替,從而可以生成突觸結。構造函數synapse_class可以能夠訪問突觸前和/或突觸後元素的個體標記。構造函數synapse_class可以決定延遲和/或其它所需有關參數。

示例9。

一些實現可以提供如下語句:

connectnofpre_tagtopost_tagwithsynapse_class

connectpre_tagtonofpost_tagwithsynapse_class

列表15。

列表15中的第一語句可被配置成生成連接矩陣,從而個體post_tag(後標記)單元被連接至n個突觸前單元。列表15中的第二語句可被配置成生成從個體pre_tag(前標記)單元到n個post_tag單元的n個傳出突觸。

列表15中的語句可以使用隨機選擇的子集。這可通過在所有加了前標記的單元的列表中隨機遊走並隨機選擇子集的元素來實現。

示例10。

一些實現可以提供如下語句:

nof(connectpre_tagtopost_tagwithsynapse_class)

connectpre_tagtonearestpost_tagwithsynapse_class

connectnearestpre_tagtopost_tagwithsynapse_class

列表16。

列表16中的第一語句可被配置成實例化包括前-後突觸的全連通矩陣的隨機子集的突觸。術語全連通矩陣可被用於描述所有突觸前單元被連接至所有突觸後單元的網絡配置。與列表15中示出的示例不同,列表16中的第一語句不保證所有突觸前單元或所有突觸後單元包括相同數量的突觸。

列表16中的第二和/或第三語句可被配置成生成基於突觸前單元和突觸後單元的坐標的突觸連接。第二語句可包括配置成將每一突觸前單元連接至滿足標記掩碼的最靠近的突觸後單元的環。第三語句可以循環遍歷每一post_tag並找到最靠近的(nearest)pre_tag。

在一些實現中,參數nearest1of可被用於代替列表16的語句中的參數nearest。

在一些實現中,個體突觸前單元可以使用如下語句被連接至n個最靠近的突觸後單元:

connectexctonearestnofexcwithglu

列表17。

其可以創建從個體激發性神經元(即,標記為『exc』的單元)至n個最靠近的激發性神經元的『glu』類型突觸,這n個最靠近的激發性神經元包括該個體激發性神經元自身(即,導致一個自突觸)。

推廣的of算子

在一些實現中,推廣形式的of選擇算子可被配置為:

of

列表18。

推廣的of算子可以執行以下一者或多者:(i)創建滿足標記濾波器1(tagfilter1)條件的所有n個元素的列表1(list_1);(ii)創建滿足標記濾波器2(tagfilter2)條件的所有m個元素的列表2(list_2);(iii)通過從列表2中(隨機地)選擇n個元素的子集來創建列表3(list_3),如果n>m,則在列表3中有n-m個元素被重複;(iv)返回合併列表,其中來自列表1的每一元素具有來自列表3中的匹配元素的附加標記;和/或其它動作。如果列表1和列表3兩者都包括坐標標記,則合併列表中的個體元素可包括為對應元素的坐標總和的坐標標記,從而可維持每元素的單個坐標(x,y,z)標記。

示例11。

在一些實現中,單元集可用『視錐(cones)』來標記。隨機坐標集可用『視網膜(retina)』來標記。隨機視網膜坐標可使用以下表達式被指派給視錐:

conesofretina

當視錐的數量大於坐標的數量時,則多個視錐可被指派相同的坐標。

on算子和坐標指派

on算子可被用於如下從由參數pdf定義的概率密度函數返回n點的採樣:

nonpdf,

示例12

一些實現可以提供如下語句:

1000onsegment(0,1)taggedrnd

1000oncircle(1)taggedcones

列表19。

列表19的第一語句可被配置成生成標記為『rnd』的元素的列表。這些標記為『rnd』的元素可被均勻分布在由坐標x=[01]定義的空間段(segment)內。即,元素可以具有標記(rnd,x),其中x值均勻分布在範圍[01]中。列表19中的第二語句可被配置成生成標記為『cones』(視錐)並均勻分布在單位圓上的1000個元素的列表。

在一些實現中,on算子可以使用由函數f返回的個體點:

allonf

per算子和標記組合

算子per可被用於貫穿由例如標記過濾器指定的標記列表(tag_list)進行迭代。對於該列表的個體元素而言,算子per可以調用語句(statement),從而向其傳遞列表元素的所有標記。per算子的格式可以是:

statementpertag_list

per算子可以返回包含描述所生成的網絡元素的數據的表。在一些實現中,per算子可被用於創建每神經元的多個突觸。在一些實現中,per算子可被用於創建每位置(location)的多個神經元。在一些實現中,per算子可被用於創建每皮層表面的多個皮層列。

示例13

一些實現提供如下語句:

1000onsegmentperneuron

1000oflocationsperneuron

列表20。

spnet

在可以適用於spnet的一些實現中,單元類exc和inh以及突觸類glu和gaba可在spnet定義內來定義。

put800ofexc

put200ofinh

connectexcto100ofexcorinhwithglu

connectinhto100ofexcwithgaba

列表21。

列表21的第一行可被配置成生成exc類型的800個單元。列表21的第二行可被配置成生成inh類型的200個單元。列表21的第三行可被配置成用連接類型glu將具有標記『exc』(注意,類類型可自動被用作標記)的個體單元連接至具有標記『exc』或『inh』的100個隨機選擇的單元。列表21的第四行可被配置成用連接類型gaba將具有標記『inh』的個體單元連接至具有標記『exc』的100個隨機選擇的單元。

視網膜像素至視錐映射

在一些實現中,hlnd描述可被用於描述視網膜像素至視錐映射。一般來說,視錐細胞或視錐可以是或可以指代眼睛視網膜中負責顏色視覺的感光細胞。視錐細胞可以是在中央凹中密集填塞的,但是朝著視網膜的外圍逐漸變得稀疏。以下提供了描述視網膜映射的各個方面的若干示例。

//創建像素(pixel)坐標的100×100正方形網格(squaregrid)

square_grid(100,100)taggedpixels

//在每一像素坐標處創建像素單元(pixelunit)

putpixelsofpixel_unit

//創建視錐坐標的六邊形網格(hexagonalgrid)

hexagonal_grid(100,100)taggedcones

//將具有其10%的隨機子集標為s視錐

//以及創建適當的s_unit(s_單元)

size(cones)*0.1ofconestaggeds_cones

puts_conesofs_unit

//將具有其餘視錐中的30%的隨機子集標記為m視錐

size(cones)*0.3ofconesandnots_conestaggedm_cones

putm_conesofm_unit

//其餘視錐是l視錐

conesandnots_conesandnotm_conestaggedl_cones

putl_conesofl_unit

//藉由結(junction)將每一像素連接至一個最靠近(nearest)的s視錐

connectpixelstonearests_coneswithp2s_junction

//同樣處理m視錐

connectpixelstonearestm_coneswithp2m_junction

//同樣處理l視錐

connectpixelstonearestl_coneswithp2l_junction

列表22。

有向圖

在一些實現中,標記網絡子集的指派可被配置成使得能將網絡表示為有向圖。有向圖或即定向圖可包括元素對g=(v,a),其中集合v的元素可被稱為頂點或節點,而集合a為有序頂點對、稱為弧、有向邊、或箭頭。在hlnd中,術語節點可被用於頂點,並且連接是邊。

hlnd和gui

在一些實現中,hlnd可包括圖形用戶界面(gui)。gui可被配置成使用適當的句法將用戶動作(例如,命令、選擇等)轉譯成hlnd語句。gui可被配置成響應於hlnd語句而更新gui以顯示網絡的變化。gui可以提供gui中的用戶動作與hlnd語句之間的一對一映射。此種功能性可以使用戶能尤其通過顯示響應於用戶動作而創建的hlnd語句等以虛擬方式來設計網絡。gui可以反映例如使用gui的文本編輯器模塊輸入到網絡的圖形表示中的hlnd語句。

該「一對一映射」可以允許相同或類似的信息以多種格式(例如,gui和hlnd語句)被無歧義地表示,因為不同的格式被一致地更新以反映網絡設計中的變化。此開發辦法可被稱為「往返工程設計」。

hlnd中的用戶動作

在一些實現中,gui可以支持用戶動作,其包括創建節點、選擇網絡的一個或多個子集、連接節點、標記選定子集內的節點、和/或其它用戶動作。在一些實現中,gui可以支持網絡對象的定義。以下詳細描述一些示例性用戶動作。

創建節點

現在參照圖12,解說了根據一個或多個實現的使用gui的節點創建。在一些實現中,創建神經網絡的節點可能要求包括要實例化和/或生成的節點的類型、要創建的節點的數量、和/或其它信息的信息。在一些實現中,用戶可以提供包括要指派給所創建的節點的列表標記、用於實例化和/或初始化節點的附加參數、和/或其它信息的信息。用於實例化和/或初始化節點的附加參數可以取決於特定的網絡實現,諸如舉例而言,關於如何布局要實例化的節點(即如何指派數值空間標記)的指令。

以上gui節點創建功能性可由hlnd內核的實現節點生成的一個或多個適當的指令來支持。更多細節參見例如以上列表10。當用戶輸入hlnd節點生成指令(語句)時,gui可以在圖形編輯器中生成與相應(諸)節點相對應的圖形表示(例如,唯一性符號、象形圖、和/或圖標)。用戶對hlnd語句的輸入可通過各種手段來實行,包括但不限於,文本輸入、語音、軟鍵(圖標)、和/或配置用於hlnd語句輸入的其它手段。

用戶可以採用圖12的gui1200來執行節點創建。根據一些實現,用戶可以從節點類型的可用列表(圖12中的列表1210)中選擇節點類型;將選定的節點類型(例如,圖12中的類型1216)拖放(如經由圖12中的箭頭1204所解說的)進編輯器面板1202中,其中該節點用唯一性節點符號1208來表示;經由與特定節點類型1216相關聯的補充輸入手段(諸如舉例而言,圖12中的彈出菜單1220)提供附加參數(如果需要);和/或執行用於創建節點的其它動作。

搜索框1242可以允許用戶使用一個或多個關鍵字來過濾所顯示的節點類型1212、1214和1216的列表。這可促成存在有大量節點類型可用情況下的節點類型選擇。彈出菜單1220可以使用戶能圖形地指定節點的數量1226、用於節點實例化的參數1224、布局過程1230、附加標記1232、和/或與節點創建相關聯的其它信息。

gui可以允許用戶在文本編輯器(hlnd語句1240)與gui節點創建之間來回切換。藉由非限定性示例,在gui中選擇用於節點布局的不同參數/選項可以更新hlnd語句。改變指派給在hlnd語句中創建的節點的附加標記可以更新gui中的這一信息。

圖12中示出的gui界面並不旨在構成限定,因為其它實現被構想並落在本公開的範圍內。例如,在一些實現中,gui可包括下拉列表、單選按鈕、和/或其它元素。

選擇網絡子集

現在參照圖13、13a和13b,示出並詳細描述了節點子集選擇的不同示例性實現。圖13的gui1300可包括網絡布局面板1302、兩個或更多個選擇描述面板1304和1306、和/或其它組件。面板1302中示出的網絡可包括具有分別被描繪為『□』、『δ』、『○』的不同標記1305、1308和1310的多個節點。選擇描述面板1304和1306可包括hlnd語句的布爾部分,其對應於相應子集。

在一些實現中,「選擇網絡子集」用戶動作可對應於使用gui編輯器(例如,圖13的gui)來選擇網絡的成員。用戶可以例如通過使用滑鼠(或其它定點設備,諸如軌跡球、類觸摸墊設備和來自apple的ipad上的手指、光筆、和/或其它技術)來選擇網絡的子集。使用gui的子集選擇可以經由選擇性地點擊/輕叩與網絡的期望成員相對應的圖形符號、點擊並拖曳以選擇網絡的區域、其組合、和/或用於選擇子集的其它動作來達成。gui的子集選擇動作可由hlnd內核的實現子集選擇的相應指令來支持。更多細節參見例如以上列表6-7。

如圖13中所示,節點子集1312可包括包含標記1305的節點,而子集1314可包括具有標記1308和1310兩者的節點。一旦子集1312和1314被選定,面板1304和1306中的布爾表達式就可被相應地更新。

在一些實現中,圖13的gui1320中示出的網絡包括兩個子集,其包括包含標記1305和1308的子集1322、包含標記1310的子集1314、和/或其它子集。選擇描述面板1324可被更新以反映與子集1322的標記內容相對應的布爾表達式。在一些實現中,可以通過形成包括子集1322與1314之間的交集(如由布爾表達式1328所指示)的子集1326來生成附加子集。

藉由非限定性示例,響應於用戶輸入用於子集選擇語句的布爾表達式(例如,圖13中的表達式1306),gui可以在圖形編輯器中顯示(例如,使用圖13中的陰影矩形來顯示)該子集的對應選定成員。在一些實現中,gui可以在圖形編輯器中生成與(諸)子集選擇相對應的圖形表示,如以下關於圖13a-13b所解說的。圖形表示的示例可包括唯一性符號、象形圖、圖標、和/或其它圖形表示中的一者或多者。在一些實現中,圖形表示可包括圖形屬性的變化(包括顏色、陰影模式、和/或其它圖形屬性中的一者或多者的變化)。

圖13a解說了節點子集選擇的示例性實現,其可被應用於包括大量節點的網絡子集,其中個體節點的描繪並非總是切合實際的。圖13a的gui實現1330中示出的網絡可包括兩個子集1332和1334,其可使用不同陰影的矩形來描繪。圖13a的gui實現1340中示出的網絡可包括子集,其可由具有不同填充圖案的形狀來描繪(參見例如,圖13a中的矩形1342和1344)。圖13a中的子集1346可被選擇為1342i1344。

在一些實現中,gui用戶動作可使用唯一性符號1362和1368來表示,如在圖13b中示出的網絡1360中所解說的。唯一性符號1362和1368可以分別表示子集1304和1306,並且可以是因子集而異的。藉由非限定性示例,唯一性符號的顏色和/或其它標識質量可根據用於標識子集的標記來配置。圖形編輯器面板1302中的符號的形狀和位置可根據子集的成員的空間標記來配置。這可由符號1362、1368、1372、1376、1378、1382和1388來解說,其可以描繪gui實現1360、1370和1380解說的網絡的子集。在一些實現中,符號可基於元素類型來配置。在一些實現中,符號選取可取決於該子集是包括(i)僅節點、(ii)僅連接、還是(iii)節點和連接。

在一些實現中,相同的網絡配置(例如,圖13的子集1312)可以使用不同符號/圖標在gui圖形面板(例如,圖13的面板1302)內表示。在可以對應於低程度細節網絡視圖(對應於例如無縮放或低縮放)的一些實現中,子集可以使用符號(圖13b的符號1362)來表示,而無需顯示該子集的個體元素。

在可對應於例如具有有限處理能力的網絡或配置用於批量更新的網絡的一些實現中,子集可以使用符號來表示而無需顯示該子集的個體元素。

在可與高程度細節網絡視圖相關聯的一些實現中(對應於例如高縮放程度、和/或當有處理資源可用於處理與子集的個體元素有關的信息時),該子集可使用提供該子集的進一步細節的圖形描繪來表示(例如,圖13的將個體子集元素解說在其適當位置處的表示1312)。

在一些實現中,可以執行hlnd框架選擇操作以將附加標記指派給選定的成員,在連接語句中使用選定成員(在這一情形中為節點)和/或執行其它動作。

gui可以允許用戶在文本編輯器(hlnd語句)與gui子集選擇之間來回切換。藉由非限定性示例,使用gui來選擇不同的節點成員可以使得更新相應的hlnd語句。改變文本編輯器中的選擇可以更新圖形編輯器中的選擇。在一些實現中,更新選擇可包括高亮顯示和/或另行視覺地強調選定的成員。

連接節點

「節點連接」用戶動作可對應於創建網絡節點之間的連接。根據一些實現,在創建結點間連接時,hlnd內核可能要求以下一者或多者:第一子集選擇(例如,連接將源自的節點子集)、第二子集選擇(例如,連接將終結於的節點子集)、用於將第一子集連接至第二子集的連接類型、和/或與連接節點相關聯的其它信息。

在一些實現中,可向hlnd內核提供一個或多個附加參數,包括以下一者或多者:用於設置連通性映射(例如,所有對所有、一對一、一對最靠近、和/或其它由用戶定義的連接映射)的參數、用於實例化和/或初始化連接實例(例如,初始化突觸權重)的參數、要指派給所創建的連接實例的列表標記、和/或其它參數。

hlnd內核可以實現配置成連接網絡中的節點的指令。(更多細節參見例如以上列表16-17)。藉由非限定性示例,當用戶輸入連接指令時,gui可以在圖形編輯器中創建對應的圖形表示(例如,畫出從源到目的地節點選擇的鏈路/箭頭)以解說這些連接。

根據一個或多個實現,用戶可以使用gui來選擇網絡成員的源子集選擇,選擇網絡成員的目的地選擇,將源選擇拖放到目的地選擇上以將第一選擇連接至第二選擇,和/或執行其它動作。gui可以在圖形視圖中生成表示源成員與目標成員之間的相應連接的鏈路/箭頭元素。

在一些實現中,與連接元素(鏈路/箭頭)相關聯的彈出菜單可以允許用戶從連接類型的可用列表中選擇連接類型。在一些實現中,彈出菜單可以允許用戶提供用於實例化和/或初始化連接實例的附加參數。在一些實現中,彈出菜單可以允許用戶設置用於設置連通性映射的參數。

gui可以允許用戶在文本編輯器(hlnd語句)與gui連接創建之間來回切換。藉由非限定性示例,使用gui來選擇不同的節點成員可以使得更新與節點描述相關聯的hlnd語句。改變文本編輯器中的選擇可以更新圖形編輯器中的選擇(例如,高亮顯示選定的成員)。

圖14解說了使用gui來連接兩個節點集合的示例性實現。gui1400可包括網絡節點視圖面板1402、一個或多個節點集合選擇域1406和1404、hlnd語句域1442和1444、和/或其它組件。當在hlndgui域1402中使用例如滑鼠點擊並拖曳動作來選擇節點集合1412和1414時,節點集合選擇域1404和1406可被更新以反映選定的集合。如圖14中所解說的,集合1412可包括具有標記1405(描繪為『正方形』)的節點。集合1414可包括具有標記1408(描繪為『三角形』)和具有標記1410(描繪為『圓形』)的節點。節點集合選擇域1404和1406可被更新以分別用與集合1412和1414相對應的標記來顯示選定節點。

根據一些實現,可通過在一選擇上調用例如右擊以便為網絡的選定成員指派新標記來向集合1412和1414指派附加標記。用於標記添加的hdln語句可以被自動生成。

在一些實現中,可使用例如右擊(如線1418所解說的)來調用補充圖形數據輸入手段(例如,圖14中的彈出菜單1430)。菜單1430可被用於尤其將附加標記1432或新標記1434指派給選定的節點等。

在一些實現中,如由圖14中在gui域1402中的箭頭1416所解說的,通過使用拖放動作、使用滑鼠和/或觸摸墊設備上的手指,第一選擇可被『放』到第二選擇上,這可指令hlnd引擎創建集合1412的節點1405與集合1414的節點1408和1410之間的連接。

附加的補充圖形數據鍵入手段(例如,圖14中的彈出菜單1420)可被尤其用於指定用於連接的參數。指定用於連接的參數可包括以下一者或多者:設置連接類型1422、初始化用於連接類型的參數1424、指定連通性模式1426、將標記指派給連接1428、和/或其它動作。

對於使用gui1400用節點選擇1412和1414執行的一個或多個用戶動作,對應的hlnd語句可被自動生成並分別在語句域1442和1444中被顯示。

圖12-14中示出的gui界面並不旨在構成限定,因為其它實現被構想且落在本公開的範圍內。例如,一些實現可包括下拉列表、單選按鈕、和/或其它組件。

hlnd與end格式的關係

hlnd格式可被設計成與元素式網絡描述(end)格式兼容和/或與其結合使用,end格式在以上納入的於2011年9月21日提交的題為「elementarynetworkdescriptionforneuromorphicsystems(用於神經元形態系統的元素式網絡描述)」的美國專利申請s/n.13/239,123中描述。在一些實現中,可以基於hlnd描述(例如,模型神經元的end實現)來生成end單元的實例。end結和/或end突觸的實例可有向地連接各單元。hlnd可以定義解剖結構,而神經和突觸動態可在所應用的end類中定義。hlnd可以隱藏end的複雜性和/或低級難度,並且可以使網絡設計是簡單過程。

所生成的end實例可被用於生成實現和/或運行指定模型的神經網絡引擎。即,end實例可被用於生成實現由hlnd描述和/或所應用的end類定義的網絡的引擎。該引擎可在來自pc、fpga、任何專用end兼容硬體、和/或其它計算機硬體的任意硬體平臺上執行。

圖11解說了end引擎的三種基本結構,其可在通用risc/cisc中央處理單元(cpu)、圖形處理單元(gpu)、集成電路(例如,asic)、和/或其它處理器上實現。end引擎的結構可以對應於圖11中的『單元』1101、『雙聯體』1111、和/或『三聯體』1121。end引擎可被配置成執行單元、雙聯體和三聯體規則、和/或訪問這些元素的存儲器。end格式可被當作將配置具有執行指定神經元網絡的此類單元、雙聯體和三聯體的半導體電路的硬體規範語言來對待。

在一些實現中,個體基本結構(例如,單元、雙聯體、和/或三聯體)可被實現為多線程處理器上的單個線程。在一些實現中,個體結構可被實現為超單元、超雙聯體、和/或超三聯體,其可包括配置成分別使用時間復用來處理單元、雙聯體、和/或三聯體的專用電路。一些實現可包括三個不同電路:單元、雙聯體、和三聯體中的每一者有一個電路。

在一些實現中,單元1101可以表示神經元和/或神經元的部分(例如,樹突房室)。在另一示例中,單元1101可以表示神經元的群體。神經元的活動可以表示該群體的「平均激發率」活動和/或該群體的活動的其它平均場近似。個體單元可以與存儲器變量和描述對其存儲器可以執行什麼操作的更新規則相關聯。各操作可以是基於時鐘的(即,在模擬的每個時間步執行)或者它們可以是基於事件的(即,在某些事件被觸發時執行)。

取決於單元變量的值,這些單元可以生成經由雙聯體來觸發其它單元中的突觸事件的事件(例如,脈衝或尖峰)。例如,圖11中的單元1102可以經由雙聯體1111來影響單元1103,雙聯體1111可以表示從突觸前神經元(突觸前單元1102)到突觸後神經元(突觸後單元1103)的突觸。

個體單元可以具有事件後更新規則,該規則可在事件被觸發之後得以被觸發。這些規則可以負責單元變量因事件引起的修改,例如,電壓變量的尖峰後重置。

個體的雙聯體可以與存儲器變量相關聯。個體的雙聯體可以訪問突觸後單元的變量。此種訪問可包括讀、寫、和/或訪問機制。個體的雙聯體可以與對雙聯體存儲器作出改變以實現突觸可塑性的雙聯體事件規則相關聯。個體的雙聯體可以與對突觸後單元存儲器作出改變以實現脈衝遞送的雙聯體事件規則相關聯。雙聯體事件規則可以涵蓋以上在end格式中描述的一些或所有突觸規則。

因為多個雙聯體(例如,圖11中的1116-1118)可以將對應的多個突觸前單元1106-1108連接至單個突觸後單元1109,所以雙聯體可以並行和/或以任意次序來修改突觸後單元存儲器。結果可以是與次序無關的。這可以在對突觸後單元存儲器的操作是原子加法(如在gpu中那樣)、原子乘法(其等同於經由對數變換的加法)、和/或重置為一值(其中所有雙聯體嘗試重置為同一值)時達成。正由雙聯體事件規則修改的突觸後單元變量不可以在該規則中使用。否則,結果可能取決於雙聯體事件規則的執行次序。

現在參照圖15,示出並詳細描述了包括hlnd內核和end描述的神經網絡定義系統的示例性實現。在圖15中,圓形1504、1502和1506可以表示不同的較高級網絡描述方法或格式。圓形1510可以表示網絡的end描述。來自1504、1502和1506的箭頭可以標示至end描述的轉換過程。例如,處理網絡的hlnd描述(例如,hlnd語句)的軟體可以生成同一網絡的end描述。圖15中的矩形1512、1515、1516和1518可以標示由end描述1510定義的網絡的各種硬體平臺實現。圓形1510與矩形1512、1515、1516和1518之間的箭頭可以標示引擎生成過程。藉由非限定性示例,end描述1510與矩形1512之間的箭頭可以表示生成實現end網絡並被配置成在cpu上運行的可執行件的過程。hlnd定義1502可被處理並轉換為end描述1510。end描述可被配置成被處理(例如,由各個軟體應用處理)以生成因平臺而異的機器可執行指令。這些因平臺而異的機器可執行指令可被配置成在各種硬體平臺上執行,這些硬體平臺包括但不限於元素通用處理器1512、圖形處理單元1514、asic1516、fpga1518、和/或其它硬體平臺。

其它網絡描述格式可與過程1500聯用,諸如舉例而言,brian1504和/或配置成生成網絡的end描述的其它神經元形態網絡描述格式1506(例如,neuron(神經元)),如圖15中所解說的。

計算機化的hlnd裝置的示例性實現

關於圖16示出並描述了配置成在設計神經網絡(例如,圖15的網絡1500)中利用hlnd框架的計算機化網絡處理裝置的示例性實現。計算機化裝置1600可包括處理塊(例如,處理器)1602,其耦合至非易失性存儲設備1606、隨機存取存儲器(ram)1608、用戶輸入/輸出接口1610、和/或其它組件。用戶輸入/輸出接口可包括以下一者或多者:鍵盤/滑鼠、圖形顯示器、觸控螢幕輸入輸出設備、和/或配置成從用戶接收輸入和/或向用戶輸出信息的其它組件。

在一些實現中,計算機化裝置1600可以經由i/o接口1620(諸如,計算機i/o總線(pci-e)、有線(例如,乙太網)或無線(例如,wifi)網絡連接)耦合至一個或多個外部處理/存儲設備。

在一些實現中,輸入/輸出接口可包括配置成從用戶接收人聲命令的語音輸入設備(例如,話筒)。輸入/輸出接口可包括配置成從用戶接收並識別人聲命令的語音識別模塊。語音識別的各種方法被認為是落在本公開的範圍內。語音識別的示例可包括以下一者或多者:在處理器上運行的基於線性預測編碼(lpc)的頻譜分析算法、包括梅爾倒頻譜係數(mfcc)的頻譜分析、耳蝸建模、和/或用於語音識別的其它辦法。音素/字識別可以基於hmm(隱式馬爾科夫建模)、dtw(動態時間翹曲)、nn(神經網絡)、和/或其它過程。

end引擎1510可被配置成將網絡的hlnd描述轉換為機器可執行格式,該機器可執行格式可以是針對特定硬體或軟體實現被最優化的。機器可執行格式可包括可由處理塊1602執行的多個機器可執行指令。

本領域技術人員將領會,各種處理設備可與各種實現聯用,包括但不限於單核/多核cpu、dsp、fpga、gup、asic、其組合、和/或其它處理器。各種用戶輸入/輸出接口可應用於各種實現,包括但不限於,lcd/led監視器、觸控螢幕輸入和顯示設備、語音輸入設備、指示筆、光筆、軌跡球、和/或其它用戶接口。

gui用戶動作的執行

在一些實現中,網絡設計系統(例如,圖16的系統1600)可以自動將gui動作轉換為hlnd指令和/或轉換成end語句。hlnd指令可以致使自動更新gui表示和/或end描述。

圖17解說了執行與同一網絡設計元素相對應的不同表示的無縫更新的一種辦法。網絡描述1702(例如,節點、連接、子集等)可包含定義網絡所必需的信息。在一些實現中,網絡描述(1702)可包括節點類型、節點類型參數、節點布局參數、標記、和/或其它信息中的一者或多者。在一些實現中,網絡描述(1702)可包括連接類型、連接類型參數、連接模式、標記、和/或其它信息中的一者或多者。可以存在各種其它描述類型(例如,子集),其可包括與之相關聯的恰適信息。

如圖17中所解說的,單個對象(例如對象1702)可以具有與之有關的一個或多個表示,這些表示可包括gui表示1712(例如,使用圖13的gui編輯器1302)、hlnd表示1714(例如,使用以上關於圖14描述的hlnd語句)、end表示1716(參見例如圖15)、和/或其它表示(由矩形1718來描繪)。響應於正被生成和/或更新的對象性質(即,對象數據元素),該對象的對應表示(例如,表示1712、1714、1716和1718)可以分別使用雙向路徑1720、1722、1724和1726來更新。

在一些實現中,響應於修改一選擇的用戶gui動作,對應的(諸)hlnd語句(例如,圖17中的hlnd表示1714)可被更新。在一些實現中,end指令(例如,圖17中的end表示1722)可被更新。

在一些實現中,end指令可由裝置來執行,藉此能夠實現對網絡的更為詳細和準確的表示。

在一些實現中,當創建單元的語句在網絡描述框架內可用時,可以使用唯一性彩色符號在gui內呈現節點。

在一些實現中,響應於節點的坐標可用——即當連接語句至少部分地得到處理時,可用唯一性(針對整個子集而言)的符號在gui內將各節點呈現在其正確位置處。

在一些實現中,當連接指令在網絡描述框架中可用時,可由gui使用例如單條線來呈現兩個子集之間的連接。

在一些實現中,一旦針對連接實例的節點前和節點後信息可用(即,先前已經生成)——即,一旦連接語句至少部分地得到處理,則兩個子集之間的連接就可以示出詳細連通性結構。

在一些實現中,響應於針對連接實例的節點前信息、節點後信息、和/或初始權重可用——即,一旦連接語句至少部分地得到處理,則兩個子集之間的連接就可以用每連接唯一性的性質(例如,表示連接的線寬)來示出詳細連通性結構。

如由本領域技術人員所領會的,其它表示(例如,圖17中的矩形1718所描繪的)可以存在並可與各種實現兼容,前提是它們符合本文描述的更新框架。

在一些實現中,不同表示(例如,圖17中的表示1712、1714、1716和1718)之間的數據交換可以經由通過圖17中的箭頭1730、1732、1734、1736、1738和1739標示的直接鏈路來實現。為了清楚起見,圖17中並未示出表示1712、1714、1716和1718之間的所有直接連接。

將認識到,儘管按照方法的具體步驟順序描述了本公開的某些方面,但這些描述僅解說了本公開的較廣泛方法,並且可如特定應用所需地進行修改。在某些情況下,可導致某些步驟不必要或者可任選。另外,某些步驟或功能性可被添加至所公開的實現,或者兩個或更多個步驟的執行次序可以置換。所有此類變體被認為是被涵蓋在本文中所公開和要求保護的本公開內的。

儘管出於解說目的基於當前認為的最實際和優選的實現來詳細描述了本公開,但將理解,此類細節僅用於該目的且本公開並不限於所公開的實現,而是相反,本公開旨在涵蓋落在所附權利要求的精神和範圍內的修改和等效布置。例如,將理解,本公開在儘可能的程度上構想了任何實現的一個或多個特徵可與任何其它實現的一個或多個特徵結合。

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀