用于可伸縮神經(jīng)突觸網(wǎng)絡(luò)的方法
【專利摘要】本發(fā)明的實施例提供了一種包括保持一個或者多個組成原型的庫的方法。每個組成原型與神經(jīng)突觸程序關(guān)聯(lián)。該方法還包括根據(jù)一個或者多個搜索參數(shù)搜索庫。選擇滿足搜索參數(shù)的至少一個組成原型。通過應(yīng)用一個或者多個與選擇的組成原型關(guān)聯(lián)的規(guī)則,生成或者延伸神經(jīng)突觸網(wǎng)絡(luò)。
【專利說明】
用于可伸縮神經(jīng)突觸網(wǎng)絡(luò)的方法
[0001 ]本發(fā)明在政府的支持下基于國防部高級研究計劃署(DARPA)授予的皿0011-09-C- 0002做出。在本發(fā)明中,政府具有某些的權(quán)利。
技術(shù)領(lǐng)域
[0002] 本發(fā)明設(shè)及神經(jīng)形態(tài)和神經(jīng)突觸計算,并且特別地,設(shè)及可伸縮(scalable)神經(jīng) 突觸網(wǎng)絡(luò)的組成原型(compositional prototype)。
【背景技術(shù)】
[0003] 神經(jīng)形態(tài)和神經(jīng)突觸計算(也稱為人造神經(jīng)網(wǎng)絡(luò))是由生物大腦啟發(fā)的計算系統(tǒng)。 例如,神經(jīng)形態(tài)和神經(jīng)突觸計算可W包括各種電子電路并且/或者可W在由生物大腦的神 經(jīng)啟發(fā)的處理元素之間創(chuàng)建連接。
[0004] 在生物系統(tǒng)中,神經(jīng)模塊的軸突與另一個神經(jīng)元的樹突之間的接觸點稱為突觸, 并且對于突觸,兩個神經(jīng)元分別稱為前突觸和后突觸。W突觸傳導率方式存儲我們的個體 體驗的實質(zhì)。突觸傳導率可W隨著時間根據(jù)前突觸和后突觸神經(jīng)元的相對棘波時間 (relative spike time)變化。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明的一個實施例提供了一種方法,包括:保持一個或者多個組成原型的庫。每 個組成原型與神經(jīng)突觸程序關(guān)聯(lián)。該方法還包括根據(jù)一個或者多個捜索參數(shù),捜索該庫。選 擇滿足捜索參數(shù)的至少一個組成原型。通過應(yīng)用一個或者多個與選擇的組成原型關(guān)聯(lián)的規(guī) 貝1J,生成或者延伸神經(jīng)形態(tài)網(wǎng)絡(luò)。
[0006] 本發(fā)明的另一個實施例提供了一種方法,該方法包括分析一個或者多個模型文 件。每個模型文件包含與神經(jīng)突觸核屯、有關(guān)的信息。該方法還包括識別模型文件中的一個 或者多個唯一核屯、模式W及分配利用相應(yīng)唯一標識符識別的每個唯一核屯、模式。對于識別 的每個唯一核屯、模式,根據(jù)對唯一核屯、模式的相應(yīng)唯一標識符的重復(fù),在模型文件中定位 唯一核屯、模式的每個實例;W及替換利用對應(yīng)于唯一核屯、模式的組成原型定位的每個實 例。
[0007] 本發(fā)明的另一個實施例提供了一種方法,該方法包括:對核屯、程序組成提供編程 環(huán)境。該方法還包括利用編程環(huán)境,記錄與核屯、程序組成關(guān)聯(lián)的一個或者多個用戶動作。對 于記錄的每個用戶動作,保持包含與用戶動作有關(guān)的元數(shù)據(jù)的相應(yīng)元數(shù)據(jù)記錄,并且使數(shù) 據(jù)庫記錄與類似元數(shù)據(jù)聚類,W識別與核屯、程序組成有關(guān)的一個或者多個模式。
[000引參考下面的描述、所附權(quán)利要求書W及附圖,將理解本發(fā)明的運些W及其他特征、 方案和優(yōu)點。
【附圖說明】
[0009]圖1示出根據(jù)本發(fā)明實施例的示例性神經(jīng)形態(tài)核屯噸路;
[0010] 圖2示出根據(jù)本發(fā)明實施例的具有輸入連接器和輸出連接器的示例性核屯、電路;
[0011] 圖3示出根據(jù)本發(fā)明實施例的包含多個互連核屯、電路的基于神經(jīng)形態(tài)核屯、的示例 性架構(gòu);
[0012]圖4示出根據(jù)本發(fā)明實施例的圖3中基于神經(jīng)形態(tài)核屯、的架構(gòu)的高級方框圖;
[OOU]圖5示出根據(jù)本發(fā)明實施例的示例性粉。程序(corelet);
[0014] 圖6示出根據(jù)本發(fā)明實施例的示例性復(fù)雜核屯、程序;
[0015] 圖7是示出根據(jù)本發(fā)明實施例的用于程序組成的框架的高級方框圖;
[0016] 圖8示出根據(jù)本發(fā)明實施例的示例性網(wǎng)絡(luò)連通性置換;
[0017]圖9示出根據(jù)本發(fā)明實施例的另一個示例性連通性置換;
[0018] 圖10示出根據(jù)本發(fā)明實施例的核屯、程序的輸入連接器的示例性二維區(qū)域;
[0019] 圖11示出根據(jù)本發(fā)明實施例的粉。程序的輸入連接器的另一個示例性二維區(qū)域;
[0020] 圖12示出根據(jù)本發(fā)明實施例的核屯、程序的輸入連接器的另一個示例性二維區(qū)域;
[0021] 圖13示出根據(jù)本發(fā)明實施例的示例性突觸粉。;
[0022] 圖14示出根據(jù)本發(fā)明實施例的示例性交叉開關(guān)陣列(crossbar);
[0023] 圖15示出根據(jù)本發(fā)明實施例添加示例性換能器核屯、程序;
[0024] 圖16示出根據(jù)本發(fā)明實施例的多個示例性核屯、程序組成原型(CCP),每個CCP都具 有作為通用組件的卷積網(wǎng)絡(luò);
[0025] 圖17示出根據(jù)本發(fā)明實施例的示例性專用捜索;
[0026] 圖18示出根據(jù)本發(fā)明實施例的規(guī)則的示例性應(yīng)用;
[0027] 圖19是根據(jù)本發(fā)明實施例的用于生成或者延伸神經(jīng)形態(tài)網(wǎng)絡(luò)的示例性流程圖;W 及
[0028] 圖20是示出用于實現(xiàn)本發(fā)明的一個實施例的信息處理系統(tǒng)的高級方框圖。
【具體實施方式】
[0029] 本發(fā)明設(shè)及可伸縮神經(jīng)突觸網(wǎng)絡(luò)的組成原型。本發(fā)明的一個實施例提供了一種包 括保持一個或者多個組成原型的庫的方法。每個組成原型與神經(jīng)突觸程序關(guān)聯(lián)。該方法還 包括根據(jù)一個或者多個捜索參數(shù)捜索庫。選擇滿足捜索參數(shù)的至少一個組成原型。通過應(yīng) 用一個或者多個與選擇的組成原型關(guān)聯(lián)的規(guī)則,生成或者延伸神經(jīng)形態(tài)網(wǎng)絡(luò)。
[0030] 本發(fā)明的另一個實施例提供了一種包括分析一個或者多個模型文件的方法。每個 模型文件包含與神經(jīng)突觸核屯、有關(guān)的信息。該方法還包括識別模型文件中的一個或者多個 唯一核屯、模式(unique core pattern),并且指定與相應(yīng)唯一標識符關(guān)聯(lián)的每個唯一核屯、 模式。對于識別的每個唯一核屯、模式,根據(jù)唯一核屯、模式的相應(yīng)唯一標識符的重復(fù)定位模 型文件中的唯一核屯、模式的每個實例,并且代替利用對應(yīng)于唯一核屯、模式的組成原型定位 的每個實例。
[0031] 本發(fā)明的另一個實施例提供了一種對核屯、程序組成提供編程環(huán)境的方法。該方法 還包括利用該編程環(huán)境記錄與核屯、程序組成關(guān)聯(lián)的一個或者多個操作。對于記錄的每個用 戶操作,保持包含與用戶操作有關(guān)的元數(shù)據(jù)的相應(yīng)數(shù)據(jù)庫,并且聚類具有相同元數(shù)據(jù)的數(shù) 據(jù)庫記錄,W識別一個或者多個與核屯、程序組成有關(guān)的模式。
[0032] 在本說明書中,可互換地使用術(shù)語神經(jīng)形態(tài)和神經(jīng)突觸。
[0033] 如在此使用的術(shù)語電子神經(jīng)元表示在由生物大腦神經(jīng)的啟發(fā)的處理元之間創(chuàng)建 連接的架構(gòu)。盡管在此利用包括電子電路的電子神經(jīng)元描述了本發(fā)明的特定說明性實施 例,但是本發(fā)明并不局限于電子電路。能夠?qū)⒏鶕?jù)本發(fā)明實施例的神經(jīng)形態(tài)計算實現(xiàn)為包 括電路系統(tǒng)的神經(jīng)形態(tài)和神經(jīng)突觸架構(gòu),并且能夠附加實現(xiàn)為計算機模擬。實際上,本發(fā)明 的實施例能夠取完全硬件實施例、完全軟件實施例或者既含有硬件元件又含有軟件元件的 實施例。
[0034] 如在此使用的術(shù)語神經(jīng)突觸程序表示神經(jīng)突觸網(wǎng)絡(luò)。神經(jīng)突觸程序制定與如下有 關(guān)的信息:神經(jīng)元性能和動態(tài)(例如,闊值參數(shù)、漏泄參數(shù)、延遲參數(shù)、復(fù)位參數(shù)等等),該神 經(jīng)元性能和動態(tài)確定對輸入棘波的電子神經(jīng)元響應(yīng);神經(jīng)元的突觸連接(例如,通過突觸交 叉開關(guān)陣列形成的突觸連接);軸突性能(例如,軸突類型);W及應(yīng)當將神經(jīng)元輸出棘波送 到的一個或者多個目的地。
[0035] 在此使用的術(shù)語神經(jīng)突觸網(wǎng)絡(luò)表示神經(jīng)突觸程序的例示。神經(jīng)突觸網(wǎng)絡(luò)可W是硬 件、模擬或者二者的舉例說明。例如,神經(jīng)突觸程序可W生成神經(jīng)突觸網(wǎng)絡(luò)的一個或者多個 實例,其中該實例可W駐留在單個核屯、中、多個核屯、中或者多個忍片中。
[0036] 如在此使用的術(shù)語神經(jīng)形態(tài)核屯、電路表示由神經(jīng)突觸程序描述的示例性神經(jīng)突 觸網(wǎng)絡(luò)。
[0037] 本發(fā)明的實施例有助于組成神經(jīng)突觸程序。本發(fā)明的實施例還有助于組成神經(jīng)突 觸程序的抽象。軟件的一個實施例提供神經(jīng)突觸程序的抽象。
[0038] 如在此使用的術(shù)語核屯、程序和核屯、程序編程語言表示提供神經(jīng)突觸程序的抽象 的軟件的優(yōu)選實施例。通過組成核屯、程序,可W組成神經(jīng)突觸程序。
[0039] 如在此使用的術(shù)語模型文件表示神經(jīng)突觸程序、神經(jīng)突觸網(wǎng)絡(luò)或者二者的機器可 讀表示(例如,JS0N、二進制等等)。
[0040] 圖1示出根據(jù)本發(fā)明實施例的示例性神經(jīng)形態(tài)核屯、電路10。核屯、電路10包括多個 電子神經(jīng)元("神經(jīng)元")11和多個電子傳入軸突("軸突")15。神經(jīng)元11和軸突15通過包括多 個電子突觸器件("突觸")31的mXn交叉開關(guān)陣列12互連,其中m和n是大于或者等于1的整 數(shù)。交叉開關(guān)陣列12還包含多行/軸突路徑26和多列樹突路徑34。每個軸突15連接到交叉開 關(guān)陣列12的相應(yīng)軸突路徑26。每個神經(jīng)元11連接到交叉開關(guān)陣列12的相應(yīng)樹突路徑34。每 個突觸31使軸突15與神經(jīng)元11互連,其中對于突觸31,軸突15和神經(jīng)元11分別表示前突觸 神經(jīng)元的軸突和后突觸神經(jīng)元的樹突。
[0041 ]每個神經(jīng)元11分別通過互連軸突15接收引發(fā)事件(firing event)(例如,輸入棘 波)。每個神經(jīng)元11都具有相應(yīng)神經(jīng)元狀態(tài)和一組可配置神經(jīng)元性能和/或者動態(tài)。根據(jù)收 到的引發(fā)事件、其當前神經(jīng)元狀態(tài)及其神經(jīng)元性能和動態(tài),神經(jīng)元可W基于神經(jīng)元活化功 能生成引發(fā)事件(例如,輸出棘波)。示例性神經(jīng)元活化功能可W是漏泄積分和引發(fā)(leaky integr曰te-曰nd-f ire)O
[0042]在本說明書中,假定術(shù)語目標目的地指引發(fā)事件的目的地。每個引發(fā)事件都具有 將引發(fā)事件發(fā)送到的相應(yīng)目標目的地。假定術(shù)語目標軸突指作為目標目的地的軸突15。神 經(jīng)元11生成的引發(fā)事件傳播到目標軸突15,其中目標軸突15可W象神經(jīng)元11 一樣駐留于核 屯、電路10中,也可W駐留于包含在包括多個互連屯、電路10的基于神經(jīng)形態(tài)核屯、的架構(gòu)中的 不同核屯、電路10中。
[0043] -個或者多個軸突15可W接收外部輸入,諸如來自一個或者多個感測換能器的感 測輸入,配置該換能器W提供感測輸入。在一個實施例中,每個感測輸入都傳播到目標軸突 15,作為引發(fā)事件。一個或者多個神經(jīng)元11可W生成作為外部輸出提供的引發(fā)事件。在一個 實施例中,外部輸出表示送到一個或者多個效應(yīng)器或者致動器的電動機輸出(例如,電動機 控制系統(tǒng),配置該電動機控制系統(tǒng),W響應(yīng)一個或者多個神經(jīng)元11生成的引發(fā)事件,生成電 動機輸出)。外部雙向通信環(huán)境可W將感測輸入提供到核屯、電路10并且消耗來自核屯、電路 10的電動機輸出。在另一個實施例中,外部輸出代表對一個或者多個軟件模塊、可視化或者 顯示提供的信號(例如,指出在視野內(nèi)存在特定類或者一組輸入的特定模式的信號)。
[0044] 利用接收引發(fā)事件并且根據(jù)神經(jīng)元活化功能生成引發(fā)事件的互補金屬氧化物半 導體(CMOS)邏輯口,實現(xiàn)神經(jīng)元11和軸突15。在一個實施例中,神經(jīng)元11和軸突15包含根據(jù) 神經(jīng)元活化功能生成引發(fā)事件的比較器電路。在一個實施例中,利用一位靜態(tài)隨機存取存 儲器(SRAM)單元實現(xiàn)突觸31。每次選擇一個生成引發(fā)事件的神經(jīng)元11,并且將該引發(fā)事件 傳送到目標軸突15,其中目標軸突15可W駐留于同一個核屯、電路10中或者具有許多核屯、電 路10的較大系統(tǒng)中的某個其他位置(例如,包括多個互連核屯、電路10的基于神經(jīng)形態(tài)核屯、 的架構(gòu))。
[0045] 圖2示出根據(jù)本發(fā)明實施例具有輸入連接器50和輸出連接器60的示例性核屯、電路 10。核屯、電路10通過一個或者多個輸入連接器50接收諸如感測輸入的外部輸入。每個輸入 連接器50包含一個或者多個引腳70。引腳70可W是連接引腳70C或者斷開引腳70D(圖8)。軸 突15通過輸入連接器50的連接引腳70C接收外部輸入。
[0046] 核屯、電路10通過一個或者多個輸出連接器60提供諸如電動機輸出的外部輸出。每 個輸出連接器60包含一個或者多個引腳70。通過輸出連接器60的連接引腳70C,提供神經(jīng)元 11生成的棘波/引發(fā)事件,作為外部輸出。
[0047] 圖3示出根據(jù)本發(fā)明實施例包含多個互連核屯、電路10的基于神經(jīng)形態(tài)核屯、的示例 性架構(gòu)100。每個核屯、電路10采用互聯(lián)網(wǎng)絡(luò)75W將神經(jīng)元引發(fā)事件傳遞到其他核屯、電路10。
[0048] 圖4示出根據(jù)本發(fā)明實施例的圖3所述基于神經(jīng)形態(tài)核屯、的架構(gòu)100的高級方框 圖。在一個實施例中,基于神經(jīng)形態(tài)核屯、的架構(gòu)100包含至少一個存儲單元110。如上所述, 核屯、程序代表提供神經(jīng)突觸程序的抽象的軟件的優(yōu)選實施例。可W解釋或者編譯核屯、程 序,W生成裝載到基于神經(jīng)形態(tài)核屯、的架構(gòu)100的一個或者多個存儲單元110中的神經(jīng)突觸 程序的組成元件(即,神經(jīng)元性能和動態(tài)、突觸連接、軸突性能和目的地等等)。
[0049] 圖5示出根據(jù)本發(fā)明實施例的示例性核屯、程序200。在一個實施例中,核屯、程序200 是描述包含一個或者多個核屯、電路10的神經(jīng)突觸網(wǎng)絡(luò)的神經(jīng)突觸程序的軟件抽象。核屯、程 序200封裝所有網(wǎng)絡(luò)間連通性和所有核屯、間生理過程(例如,神經(jīng)元性能和動態(tài)),而僅暴露 送到網(wǎng)絡(luò)或者來自網(wǎng)絡(luò)的外部輸入和外部輸出。例如,核屯、程序200可W提供網(wǎng)絡(luò)的一個或 者多個核屯、電路10的結(jié)構(gòu)描述。
[0050] 在一個實施例中,核屯、程序200是用于對核屯、電路10的一部分(即,一小部分)、核 屯、電路10、或者代表多個互連核屯、電路10的至少兩個核屯、程序200編程的靜態(tài)配置。例如, 核屯、程序200包含與核屯、程序200收到的輸入220、核屯、程序200提供的輸出230、核屯、程序 200的功能和/或利用核屯、程序200對神經(jīng)網(wǎng)絡(luò)電路的一部分編程的成本有關(guān)的信息。
[0051 ] 核屯、程序200可W應(yīng)用于不同類型的神經(jīng)形態(tài)核屯、電路。在一個實施例中,核屯、程 序200是用于對核屯、電路10的一部分(即,一小部分)或者核屯、電路10編程的靜態(tài)配置文件。 還可W W分層結(jié)構(gòu)方式組成核屯、程序200,使得核屯、程序200可W用于對代表多個互連核屯、 電路10的兩個或者多個核屯、程序200編程。核屯、程序200可W對神經(jīng)網(wǎng)絡(luò)電路100的核屯、電 路10的神經(jīng)元活化編程。核屯、程序200可W對核屯、電路10編程從而執(zhí)行的活化的其他例子 包含圖像/視頻中的邊緣檢測、視頻中的運動歷史軌跡、對象分類、機器人環(huán)境下的感覺響 應(yīng)、W及聲音濾波。
[0052] 在一個實施例中,核屯、程序200可W包括C個組成單元("組成子核屯、程序"),其中C 是大于或者等于1的整數(shù)。每個子核屯、程序定義如下中的一個:核屯、電路10的一部分(即,一 小部分)、核屯、電路10、多個核屯、電路或者反過來定義一個或者多個互連核屯、電路10的一部 分的核屯、程序200。
[0053] 核屯、程序200經(jīng)由輸入連接器50接收一個或者多個輸入220。每個輸入220可W代 表來自另一個核屯、程序200的引發(fā)事件或者來自傳感器單元120的感測輸入(圖4)。在一個 實施例中,輸入連接器50包含輸入映射表,該輸入映射表保持核屯、程序200收到的每個輸入 220的路由信息。根據(jù)該輸入映射表,收到的每個輸入220或者映射到核屯、電路10的目標軸 突15,或者映射到核屯、程序200中的子核屯、程序的輸入連接器50。類似地,核屯、程序200的子 核屯、程序收到的每個輸入又映射到包含在子核屯、程序中的核屯、電路10的目標軸突15或者 映射到其子核屯、程序中的一個子核屯、程序。
[0054] 在另一個實施例中,核屯、程序200可W沒有組成子核屯、程序。例如,橫跨多個互連 核屯、電路10的核屯、程序200可W沒有任何組成子核屯、程序。
[0055] 每個輸出230可W表示神經(jīng)元11生成的引發(fā)事件。在一個實施例中,核屯、程序200 的子核屯、程序提供的每個輸出映射到如下中的一個:核屯、電路10的目標軸突15、核屯、程序 200中的子核屯、程序的輸入連接器50、或者核屯、程序200的輸出連接器60。
[0056] 核屯、程序200提供一個或者多個輸出230。每個輸出230可W通過輸出連接器60路 由到另一個核屯、程序200或者電動機單元130(圖4)。在一個實施例中,輸出連接器60包含輸 出映射表,該輸出映射表保持核屯、程序200提供的每個輸出230的路由信息。根據(jù)該輸出映 射表,每個輸出230映射到如下中的一個:另一個核屯、程序200或者電動機單元130。子核屯、 程序的輸出可W映射到核屯、程序200的輸出(請參見例如圖6)。使用具有映射表的輸入連接 器50和輸出連接器60有助于在許多分層水平W分層核屯、程序組成中的分層連通性映射。
[0057] 圖6示出根據(jù)本發(fā)明實施例的示例性復(fù)雜核屯、程序300。復(fù)雜核屯、程序300是具有 多個子核屯、程序210的組合的核屯、程序200。如圖6所示的核屯、程序C是由兩個子核屯、程序 210構(gòu)成的示例性復(fù)雜核屯、程序300。具體地說,Corelet C是第一子核屯、程序Corelet A和 第二子核屯、程序Corelet B組合。第一子核屯、程序Corelet A通過相應(yīng)輸入連接器50 (Corelet A的輸入連接器)接收第一輸入Iai和第二輸入Ia2,并且通過相應(yīng)輸出連接器60 (Corelet A的輸出連接器)提供第一輸出Oai和第二輸出〇A2。第二子核屯、程序Corelet B通 過相應(yīng)輸入連接器50(Corelet B的輸入連接器)接收第一輸入Ibi和第二輸入Ib2,并且通過 相應(yīng)輸出連接器60(Corelet B的輸出連接器)提供第一輸出化1和第二輸出化2。
[005引復(fù)雜核屯、程序300通過相應(yīng)輸入連接器50接收一個或者多個輸入220。每個輸入 220可W代表來自另一個核屯、程序200的輸出或者來自傳感器單元120的感測輸入。在一個 實施例中,輸入連接器50包括輸入映射表,該輸入映射表保持復(fù)雜核屯、程序200收到的每個 輸入220的路由選擇信息。根據(jù)輸入映射表,收到的每個輸入220作為輸入映射到復(fù)雜核屯、 程序300的子核屯、程序210的輸入連接器50。例如,如圖6所示,Corelet C收到的第一輸入Ii 映射到第二子核屯、程序Corelet B的輸入連接器50,作為第一輸入IbiXoreletC收到的第二 輸入12映射到第一子核屯、程序Corelet A的輸入連接器50,作為第二輸入Ia2。
[0059] 復(fù)雜核屯、程序300通過相應(yīng)輸出連接器60提供一個或者多個輸出230。每個輸出 230代表來自復(fù)雜核屯、程序300的子核屯、程序210的輸出。在一個實施例中,輸出連接器60包 含輸出映射表,該輸出映射表保持復(fù)雜核屯、程序300提供的每個輸出230的路由選擇信息。 根據(jù)輸出映射表,每個輸出230作為輸入映射到另一個核屯、程序200的輸入連接器50,或者 作為外部輸出(例如,作為對外部電動機單元130提供的電動機輸出,或者作為對軟件模塊、 可視化或者顯示提供的信號)。例如,如圖6所示,Core 1 et C通過Core 1 et C的輸出連接器60 提供第一輸出化和第二輸出化。
[0060] 如果子核屯、程序Corelet A和Corelet B是第一核屯、電路10和第二核屯、電路10的 抽象,則Core 1 et C代表兩個互連核屯、電路10的抽象。
[0061] 圖7是示出根據(jù)本發(fā)明實施例用于程序組成的框架400的高級方框圖。通過識別跨 越多個程序遞歸的結(jié)構(gòu),框架400識別共同使用的結(jié)構(gòu)??蚣?00概括該遞歸結(jié)構(gòu)并且將該 遞歸結(jié)構(gòu)表示為組成原型460。組成原型460可W通過神經(jīng)突觸程序的不同抽象運行。每個 組成原型460可W用于生成遞歸結(jié)構(gòu)的多個實例,從而實現(xiàn)有效程序組成。
[0062] 框架400包含庫單元410和填入單元420。配置填入單元420, W識別一個或者多個 遞歸結(jié)構(gòu)。對于識別的每個遞歸結(jié)構(gòu),填入單元420生成相應(yīng)組成原型460。填入單元420可 W W許多方式生成組成原型460。例如,可W利用定義單元421預(yù)定義組成原型460,可W利 用挖掘單元422挖掘組成原型460、可W利用生成單元423有計劃地生成組成原型460、也可 W利用計算單元424參數(shù)化計算組成原型460。
[0063] 每個組成原型460包含至少一個相應(yīng)標記461和一組相應(yīng)規(guī)則462。標記461包含與 相應(yīng)組成原型460有關(guān)的諸如應(yīng)用、功能、編碼方案等等的元數(shù)據(jù)信息。填入單元420標記利 用一個或者多個相應(yīng)標記461生成的每個組成原型。在一個實施例中,標記461可W基于用 戶輸入。在另一個實施例中,可W自動生成標記461。然后,在庫單元410中保持生成的每個 組成原型。
[0064] 框架400還包括捜索單元430、選擇單元440和應(yīng)用單元450。捜索單元430有助于利 用標記在庫單元410中捜索組成原型。利用選擇單元440可W選擇具有與所捜索的組成原型 匹配的標記的組成原型。應(yīng)用單元450應(yīng)用選擇的組成原型或者包含在該組成原型中的規(guī) 則生成或者延伸神經(jīng)形態(tài)網(wǎng)絡(luò)。
[0065] 至少存在S類不同組成原型:網(wǎng)絡(luò)連通性置換、核屯、原型W及核屯、程序組成原型。
[0066] 多個核屯、程序200之間的連通性可能復(fù)雜,因為必須考慮到許多因素,諸如核屯、程 序的性能、核屯、程序的組成W及在神經(jīng)形態(tài)網(wǎng)絡(luò)中正在使用核屯、程序的方式。運樣,每個核 屯、程序200的輸入連接器50、輸出連接器60中的每個可W要求重新安排尺寸和引腳。填入單 元420可W生成可應(yīng)用于不同核屯、程序200的可再用網(wǎng)絡(luò)連通性置換??蚣?00使得能夠在 不同核屯、程序開發(fā)者/編程者之間有效表示、創(chuàng)建和共享不同的網(wǎng)絡(luò)連通性置換。庫單元 410可W包含一個或者多個通用網(wǎng)絡(luò)連通性置換(例如,二維圖像連通性模式)和一個或者 多個專用網(wǎng)絡(luò)連通性置換(例如,分抽樣特征向量)。提供可再用網(wǎng)絡(luò)連通性置換的庫可W 增加代碼再用、縮短復(fù)雜核屯、程序系統(tǒng)的開發(fā)時間、W及提高開發(fā)者/編程者的生產(chǎn)率。此 夕h再用測試網(wǎng)絡(luò)連通性置換提高網(wǎng)絡(luò)組成精度并且縮短調(diào)試時間。
[0067] 圖8示出根據(jù)本發(fā)明實施例的示例性網(wǎng)絡(luò)連通性置換。在本說明書中,假設(shè)S指一 組源,并且假設(shè)巧旨一組目標。網(wǎng)絡(luò)連通性置換可W應(yīng)用于使一組源S與一組目標T互連,其 中S中的每個源連接到T中的最多一個目標,并且其中T中的每個目標從S中的最多一個源接 收。
[0068] 在本說明書中,假設(shè)P指定義網(wǎng)絡(luò)連通性置換的置換向量。因此,T = P(S),其中Tj = P(Si)暗指帥的目標T痛接到S中的源Si。
[0069] 例如,如圖8所示,一組源S可W包含第一組連接器引腳70,諸如連接器引腳Si、 &、……和S7。該組目標T可W包含第二組連接器引腳70,諸如連接器引腳Ti、T2、……和T7。置 換向量?=[5,0,3,1,0,6,4]定義使連接器引腳。與連接器引腳55、連接器引腳13與連接器 弓側(cè)S3、連接器引腳T4與連接器引腳Si、連接器引腳Ts與連接器引腳S6、W及連接器引腳T?與 連接器引腳S4互連的網(wǎng)絡(luò)連通性置換。應(yīng)用的網(wǎng)絡(luò)連通性置換僅是一部分置換,因為如圖8 所示,未連接所有連接器引腳一連接器引腳Si、S3、S4、Ss、Ss、Tl、T3、T4、Ts和T?是連接引腳 70C,而連接器引腳S2、S7、T2和Ts是斷開引腳70D。
[0070] 例如,在核屯、程序編程環(huán)境下,網(wǎng)絡(luò)連通性置換可W通過連接器的適配器應(yīng)用于 核屯、程序200的連接器。連接器可W具有多個網(wǎng)絡(luò)連通性置換。每個網(wǎng)絡(luò)連通性置換分別滿 足不同的需要,并且可W由不同的用戶(例如,核屯、程序創(chuàng)造者、核屯、程序的用戶等等)連 接。一個網(wǎng)絡(luò)連通性置換可W與連接器的第一側(cè)(例如,左側(cè))關(guān)聯(lián),并且不同網(wǎng)絡(luò)連通性置 換可W與連接器的第二側(cè)(例如,右側(cè))關(guān)聯(lián)。例如,T.busFrom(S,P)或者S.busTo(T,p-i),其 中Fi是P的反置換。
[0071] 作為另一個例子,核屯、程序的連接器可W包含一個或者多個內(nèi)部置換向量。該置 換向量可W由核屯、程序/連接器的編程者或者用戶設(shè)定。
[0072] 在另一個實施例中,可W挖掘(例如,利用挖掘單元422,在本說明書中如下所做的 詳細描述)網(wǎng)絡(luò)連通性置換。
[0073] 在又另一個實施例中,能夠根據(jù)核屯、程序200的性能有計劃地生成網(wǎng)絡(luò)連通性置 換。例如,接收大小為nXm像素的圖像的核屯、程序200可W具有大小為nm的連接器。轉(zhuǎn)置對 圖像應(yīng)用的公用網(wǎng)絡(luò)連通性模式,其中轉(zhuǎn)置圖像的圖像維數(shù)。
[0074] 例如,4 X 6圖像可W由下面提供的矩陣A表示:
[0075]
[0076] 獲得的6X4轉(zhuǎn)置圖像可由下面提供的矩陣B表示:
[0077]
[0078] 用于轉(zhuǎn)置該圖像的網(wǎng)絡(luò)連通性置換由下面提供的置換向量P定義:
[0(J79] P = reshape (mapbox( 4,6,4,6,1,1,1),,1,[])
[0080] =[1,5,9,13,17,21,2,6,10,14,18,22,3,7,11,15,19,23,4,8,12,16,20,24]
[0081] 圖9示出根據(jù)本發(fā)明實施例的另一個示例性連通性置換。當一個W上的源連接器 和一個W上的目標連接器連接在一起時,利用置換陣列能夠描述引腳分配,在每個源連接 器與每個目標連接器之間一個置換。當存在多個目標連接器時,能夠?qū)⑺鼈儾⒅脼殚L度等 于目標連接器的長度之和的單行。
[0082] 在一個實施例中,對于當前連接器類,對每個置換(例如,link(A,[l,3,4],D,[l, 7,6]))應(yīng)用IinkO命令。在另一個實施例中,可W采用通用陣列形式。
[0083] 具有多對多連接器的網(wǎng)絡(luò)連通性置換的使用例子包含:將多個濾波器的輸出采集 到一個特征向量方格中;鋪擱(tiling)核屯、程序,使得核屯、程序具有二維輸入連接器和二 維輸出連接器,并且將其復(fù)制在(鋪擱塊的)格子上,從而將該鋪擱塊的輸入連接器并置為 一個大輸入,并且類似地將所有輸出組合為一個大輸出。鋪擱核屯、程序?qū)崿F(xiàn)從大輸入到各 鋪擱塊的輸入的一到多置換模式。還實現(xiàn)從所有鋪擱塊輸出到大輸出連接器的多到一置 換。
[0084] 例如,圖9所示的多連接器網(wǎng)絡(luò)連通性置換將=個向量交織為一個輸入。第一連接 器A包含第一組連接器引腳70,諸如連接器引腳Al、A2、……、和As。第二連接器B包含第二組 連接器引腳70,諸如連接器引腳Bi、B2、……和B6。第=連接器C包含第=組連接器引腳70,諸 如連接器引腳Ci、C2、……、和C6。第四連接器D包含第四組連接器引腳70,諸如連接器引腳 Di、D2、......和 Di8。
[0085] 第一置換向量PU第二置換向量P2和第=置換向量P3用于在多個連接器A、B、C和D 之間鏈接連接器引腳70。具體地說,第一置換向量口1 = [1,4,7,10,13,16]定義網(wǎng)絡(luò)連通性 置換,該網(wǎng)絡(luò)連通性置換使連接器引腳Al與連接器引腳化、連接器引腳A2與連接器引腳〇4、 連接器引腳A3與連接器引腳化、連接器引腳A4與連接器引腳化0、連接器引腳As與連接器引腳 〇13、^及連接器引腳46與連接器引腳〇16互連。第二置換向量口2=[2,5,8,11,14,17]定義網(wǎng) 絡(luò)連通性置換,該網(wǎng)絡(luò)連通性置換使連接器引腳Bi與連接器引腳化、連接器引腳B2與連接器 弓側(cè)〇5、連接器引腳B3與連接器引腳〇8、連接器引腳B4與連接器引腳Dll、連接器引腳Bs與連 接器引腳化4、W及連接器引腳Bs與連接器引腳Di7互連。第S置換向量P3= [3,6,9,12,15, 1引定義網(wǎng)絡(luò)連通性置換,該網(wǎng)絡(luò)連通性置換使連接器引腳Cl與連接器引腳化、連接器引腳 C2與連接器引腳化、連接器引腳C3與連接器引腳化、連接器引腳C4與連接器引腳化2、連接器 引腳Cs與連接器引腳DlS、W及連接器引腳Cs與連接器引腳化8互連。
[0086] 圖10示出根據(jù)本發(fā)明實施例的核屯、程序200的輸入連接器20的示例性二維區(qū)域 500。在一個實施例中,區(qū)域500是反映輸入連接器50的維度的二維陣列。例如,如圖10所示, 區(qū)域500可W是對應(yīng)于輸入圖像的相鄰像素的補片(patch)的16 X 16陣列。在內(nèi)部將來自輸 入連接器50的信號分配到核屯、程序200的互連核屯、電路10。
[0087] 圖11示出根據(jù)本發(fā)明實施例的核屯、程序200的輸入連接器50的另一個示例性二維 區(qū)域510。在一個實施例中,區(qū)域510是一行多個二維陣列500,其中每個二維陣列500反映核 屯、程序200中的子核屯、程序的輸入連接器50的維度。例如,圖11中的Corelet T(N)是包括N 個子核屯、程序的核屯、程序200。區(qū)域510可W是一行N個16 X 16陣列,其中每個16 X 16陣列反 映 Corelet T(N)中的子核屯、程序的輸入連接器50的維度。根據(jù)連通性置換,在內(nèi)部對來自 Corelet T(N)的輸入連接器50的信號去交織并且將其分配到Corelet T(N)中的子核屯、程 序的輸入連接器50。根據(jù)本發(fā)明實施例,運種連通性置換的遞歸性可W形成組成原型的基 礎(chǔ)。
[0088] 圖12示出根據(jù)本發(fā)明實施例的核屯、程序200的輸入連接器50的另一個示例性二維 區(qū)域520。在一個實施例中,區(qū)域520是包括多個二維陣列500的多行510的列,其中每行510 反映核屯、程序200中的核屯、程序的輸入連接器50的維度,并且其中行510的每個二維陣列 500反過來反映核屯、程序200中的子核屯、程序的輸入連接器50的維度。例如,圖12所示的 Corelet T(MXN)是包括M個子核屯、程序的核屯、程序200,其中每個子核屯、程序是Corelet T (N)。區(qū)域520可W是包括N個16 X 16陣列的M行510的列,其中每個行510反映 Corelet T(MX N)中的Corelet T(N)的輸入連接器50的維度,并且其中行510的每個16X16反映 Corelet T (N)中的子核屯、程序的輸入連接器50的維度。根據(jù)連通性置換,在內(nèi)部,對來自Corelet T(M XN)的輸入連接器50的信號去并置并且將其分配到Corelet T(MXN)中的Corelet T(N)的 輸入連接器50。根據(jù)本發(fā)明實施例,運種連通性置換的遞歸性質(zhì)可W形成組成原型的基礎(chǔ)。
[0089] 在一個實施例中,可W將網(wǎng)絡(luò)連通性置換存儲于庫單元410中,作為如下中的一 個:實現(xiàn)為查找表的連接器引腳號的向量;連接器引腳的散列映射;隨機連通性性能或者利 用參數(shù)的功能調(diào)用。網(wǎng)絡(luò)連通性置換可W添加有一個或者多個標記,諸如維度(例如,1D、 2D、3D等等)、置換名稱(例如,轉(zhuǎn)置、反轉(zhuǎn)、交織等等)、互連的源核屯、程序和目標核屯、程序 200、W及有計劃地定義的參數(shù)。
[0090] 當將兩個連接器提供為捜索參數(shù)時,捜索單元430根據(jù)連接器的性能關(guān)于網(wǎng)絡(luò)連 通性置換捜索庫410。當將兩個核屯、程序200設(shè)置為捜索參數(shù)時,捜索單元430根據(jù)核屯、程序 200和相應(yīng)參數(shù)關(guān)于網(wǎng)絡(luò)連通性置換捜索庫410。與捜索參數(shù)匹配的網(wǎng)絡(luò)連通性置換可W包 含一組規(guī)則462。通過評估該規(guī)則,W例示兩個連接器之間的連接,應(yīng)用單元450應(yīng)用網(wǎng)絡(luò)連 通性置換。
[0091] 在一個實施例中,兩個連接器之間的連通性是雙向的。每個方向一個的兩個不同 網(wǎng)絡(luò)連通性置換可W應(yīng)用于兩個連接器之間的連接。
[0092] 在一個實施例中,兩個連接器之間的連通性可W例如根據(jù)一個或者多個學習規(guī)則 隨著時間發(fā)生變化。連通性置換可W包含一組要應(yīng)用于兩個連接器之間的連接的學習規(guī) 則。
[0093] 圖13示出根據(jù)本發(fā)明實施例的示例性神經(jīng)突觸核屯、600。核屯、600是能夠通過其對 許多電路編程的基底。任意給定實例中的核屯、600的特定配置反映核屯、電路10中例示的特 定神經(jīng)突觸程序。核屯、600包括多個神經(jīng)元11和多個軸突15。神經(jīng)元11和軸突15通過包括多 個突觸31的二維交叉開關(guān)陣列12互連。核屯、600還包括多個軸突緩沖器15B。每個軸突緩沖 器15B接收引發(fā)事件,并且將該引發(fā)事件發(fā)送到目標軸突15。核屯、電路600還包括用于在每 個軸突11中實現(xiàn)隨機模式的偽隨機數(shù)發(fā)生器6。
[0094] 如圖13所示,核屯、電路10連接到有助于路由神經(jīng)元引發(fā)事件的網(wǎng)絡(luò)接口 7。
[00M]交叉開關(guān)陣列原型表示核屯、電路10中的突觸連通性模式。交叉開關(guān)陣列原型可W 是可變大小的。在一個實施例中,交叉開關(guān)陣列原型可W表示256X256交叉開關(guān)陣列12、較 小的部分交叉開關(guān)陣列12或者較大的交叉開關(guān)陣列12。
[0096] 核屯、原型表示核屯、電路10中的突觸連通性的模式W及附加信息,諸如神經(jīng)元類 型、軸突類型和核屯、電路10的其他核屯、電路性能。例如,核屯、原型可W包含如下中的一個或 者多個:二進制或者加權(quán)突觸矩陣、神經(jīng)元性能向量、軸突性能向量等等。
[0097] 采用核屯、原型節(jié)省計算資源;通過在多個核屯、實例之間共享一個原型,減少存儲 器需要;提供更易讀的和/或更壓縮的代碼;減少錯誤機會;有助于代碼再用;W及通過在模 型文件中使用核屯、原型,減小模型文件的大小。
[0098] 圖14示出根據(jù)本發(fā)明實施例的示例性交叉開關(guān)陣列12。可W利用諸如突觸權(quán)重 SWo、SWi、SW2、SW3和洲4的不同突觸權(quán)重對交叉開關(guān)陣列12編程。在一個實施例中,結(jié)合不同 軸突類型,利用二進制交叉開關(guān)陣列,可用于實現(xiàn)不同突觸權(quán)重。
[0099] 挖掘單元422可W W許多方式自動檢測核屯、原型。例如,挖掘單元422可W分析存 儲器中的模型文件或者圖形模式。每個核屯、電路10或者一小部分核屯、電路10分配有相應(yīng)散 列密鑰。通過對唯一散列密鑰的重復(fù)計數(shù),建立相同核屯、電路10。然后,利用單個核屯、原型 代替相同核屯、模式的多個實例。
[0100] 作為另一個例子,挖掘單元422可W使核屯、模式與對生成核屯、模式的功能或者核 屯、程序200的參數(shù)調(diào)用(parametric call)關(guān)聯(lián)。例如,具有相同輸入?yún)?shù)的核屯、程序200的 每個例示可W導致創(chuàng)建相同核屯、電路10和交叉開關(guān)陣列12。因此,可W將運些核屯、電路10 保存為具有關(guān)聯(lián)核屯、程序調(diào)用的模式。例如,可W將分路器核屯、程序核保存為"splitter, corelet(256,4)-core#r。作為另一個例子,可W將卷積核核屯、保存為乂NVkerneiai 1 1;0 0 0廣1 -1 -l])-core#r'。
[0101] 可W將核屯、原型表示為并且保存為如下中的一個:二進制突觸的矩陣;突觸權(quán)重 的矩陣;x-y連接的散列映射(稀疏矩陣);隨機連通性性能(例如,連通性概率矩陣);利用參 數(shù)、軸突性能的向量的功能調(diào)用;W及/或者神經(jīng)元性能。當例如有計劃地定義交叉開關(guān)陣 列時,可W利用如下中的一個或者多個標記核屯、原型:密度;連通性程度;軸突和神經(jīng)元利 用率;交叉開關(guān)陣列矩陣(例如,托普利茲、Positive、分塊對角、阿達瑪化adamard))的靜態(tài) 性能、動態(tài)性能(例如,編碼方案、給定輸入速率的期望發(fā)放速率)、核屯、標號(例如,分路器、 加法器、液體狀態(tài)機等等)、核屯、功能和用途的文本描述(例如,16 X 16輸入圖像的3 X 3濾波 器)、其所屬的核屯、程序(多個標號)、方法和參數(shù)。
[0102] 捜索單元430關(guān)于核屯、原型根據(jù)標號、文本和/或者標記捜索庫單元410。應(yīng)用單元 450生成與提供的捜索參數(shù)匹配的核屯、原型的核屯、實例,并且使基準返回核屯、實例。
[0103] 核屯、程序組成原型(CCP)由一個或者多個核屯、程序和核屯、程序之間的網(wǎng)絡(luò)連通性 表示。其可W是應(yīng)用、核屯、程序系統(tǒng)或者較大核屯、程序的子網(wǎng)絡(luò)的一部分。填入單元420使 采集核屯、程序中的核屯、程序C與一個或者多個定義核屯、程序功能性關(guān)聯(lián)。利用關(guān)聯(lián)核屯、程 序功能性標記核屯、程序C。填入單元420識別包含兩個或多個核屯、程序Cl和Cj的不同核屯、程 序組成原型。組成原型特征化組成Cl和Cj的方式。對于類似功能性的其他核屯、程序,填入單 元420概括組成原型,并且將組成原型與關(guān)聯(lián)核屯、程序一起存儲于庫單元410中。對于核屯、 程序例示和組成,可W概括并且重復(fù)組成原型,W創(chuàng)建較大的神經(jīng)形態(tài)系統(tǒng)。
[0104] 可用核屯、程序功能性可W包含:數(shù)學功能(例如,布爾運算器、邏輯功能、控制邏 輯);信號處理功能(例如,F(xiàn)FT/DFT、諸如高斯金字塔的濾波器運算、卷積濾波器、ID空間濾 波器、2D空間濾波器、W及諸如色彩直方圖、多規(guī)模圖像處理、顯著性W及TrueNodh轉(zhuǎn)換的 圖像處理和特征提取運算);路由選擇核屯、程序(例如,ID路由器、2D路由器)、判定與控制 (例如,有限狀態(tài)機、卡爾曼濾波器);拓撲功能(例如,分路器、合并器、贏者通吃);分類器 (例如,支持向量機(SVM)、可堆疊分類器、卷積網(wǎng)絡(luò))、視頻處理(例如,時空濾波器、運動歷 史、光流);維度(例如,ID、2D);棘波編碼方案(例如,速率編碼、二進制編碼、短促脈沖串長 度編碼、時間一棘波編碼等等);隨機性(例如,非隨機、隨機神經(jīng)元、隨機突觸、偽隨機交叉 開關(guān)陣列等等);W及學習能力(例如,可編程、自適應(yīng)、可訓練)。
[0105] 可W在庫單元410中將CCP另存為如下中的一個:具有關(guān)聯(lián)參數(shù)和連通性模式的相 應(yīng)核屯、程序200的實例;一個或者多個核屯、程序200、利用關(guān)聯(lián)參數(shù)的功能調(diào)用;代表能夠與 其他子網(wǎng)絡(luò)鏈接的子網(wǎng)絡(luò)的模型文件??蒞利用如下標記中的一個或者多個標記CCP:相應(yīng) 核屯、程序的名稱;核屯、程序功能性;應(yīng)用;核屯、程序的文本描述;與核屯、程序的一個或者多 個輸入連接器和一個或者多個輸出連接器有關(guān)的信息;使用信息;靜態(tài)性能(例如,核屯、程 序參數(shù)、核屯、程序大小、核屯、利用統(tǒng)計、功率消耗);動態(tài)性能(例如,編碼方法、期望的發(fā)放 速率(對于給定輸入速率)、基于帖/非帖的處理、復(fù)位請求、基于學習的、等等);隨機性能 (例如,隨機網(wǎng)絡(luò)、偽隨機連通性、圖性能)、CCP已經(jīng)組成/使用的父核屯、程序200(多個標 記);核屯、程序共同使用的方法和參數(shù)。
[0106] 捜索單元430關(guān)于諸如應(yīng)用、功能性、文本等等的基于CCP的捜索參數(shù)捜索庫單元 410。通過使其他標記組合,可W對獲得的捜索結(jié)果濾波。根據(jù)包含在與捜索參數(shù)匹配的CCP 中的規(guī)則,配置應(yīng)用單元450, W執(zhí)行如下中的至少一個:(1)給出CCP核屯、程序中的一個或 者多個,在CCP中創(chuàng)建剩余核屯、程序并且連接剩余核屯、程序,W形成較大網(wǎng)絡(luò);(2)給出CCP 核屯、程序中的一個或者多個,與CCP中的剩余核屯、程序的一個或者多個模型文件鏈接檢驗 關(guān)聯(lián)核屯、程序的編碼方案并且根據(jù)需要如下所述添加一個或者多個換能器核屯、程序;W及 (4)檢驗連通性順序并且根據(jù)需要添加一個或者多個置換。
[0107] 圖15示出根據(jù)本發(fā)明實施例添加示例性換能器核屯、程序。如圖15所示,為了連接 W不同棘波編碼方案運行的第一核屯、程序200(Corelet A)和第二核屯、程序200(Corelet B),在兩個核屯、程序200之間添加換能器核屯、程序800。換能器核屯、程序800是用作第一核屯、 程序200與第二核屯、程序200之間的中間橋的核屯、程序200,其將棘波/引發(fā)事件從第一核屯、 程序200的輸出編碼方案轉(zhuǎn)換為要求的輸入編碼方案并且輸入第二核屯、程序200的引腳配 置。
[0108] 當將第一核屯、程序200和第二核屯、程序200提供為對捜索單元430的捜索參數(shù)時, 捜索單元430返回與第一核屯、程序200和第二核屯、程序200的性能匹配的CCP。該CCP包括在 兩個核屯、程序200之間添加換能器核屯、程序800的規(guī)則。當應(yīng)用單元450應(yīng)用規(guī)則時,例示并 且連接換能器核屯、程序800,從而有助于組成第一核屯、程序200和第二核屯、程序200。
[0109] 圖16示出多個示例性核屯、程序組成原型(CCP),每個CCP具有作為通用組件的卷積 網(wǎng)絡(luò)。在一個實施例中,當關(guān)于含有適合表示特征提取器的特定卷積網(wǎng)絡(luò)核屯、程序200的分 類器的CCP而查詢庫單元410時,捜索單元430返回多個CCP用于用戶選擇,諸如第一CCP (CCP1)、第二CCP(CCP2)和第SCCP(CCP3)。返回的每個CCP都是將卷積網(wǎng)絡(luò)核屯、程序200連 接到不同分類器核屯、程序850的核屯、程序200。用戶可W通過選擇單元440選擇CCP中的哪個 返回而應(yīng)用。例如,應(yīng)用第一 CCP的規(guī)則生成SVM分類器851,并且利用第一置換Pl將卷積網(wǎng) 絡(luò)核屯、程序200連接到SVM分類器851。應(yīng)用第二CCP的規(guī)則生成可堆疊分類器852,并且利用 第二置換P2將卷積網(wǎng)絡(luò)核屯、程序200連接到可堆疊分類器852。應(yīng)用第SCCP的規(guī)則生成SVM 分類器853,并且利用第S置換P3將卷積網(wǎng)絡(luò)核屯、程序200連接到基數(shù)SVM分類器851。換能 器核屯、程序800還可W用于將卷積網(wǎng)絡(luò)核屯、程序200連接到分類器核屯、程序850。
[0110] 類似地,如果用戶查詢分類器核屯、程序850,則可W返回包含將卷積網(wǎng)絡(luò)核屯、程序 200用作特征提取器的規(guī)則的CCP。
[0111] 圖17示出根據(jù)本發(fā)明實施例的示例性專用捜索。庫單元410還可W包含特定應(yīng)用 的應(yīng)用子系統(tǒng)和完整應(yīng)用系統(tǒng)。應(yīng)用系統(tǒng)可W包括多個組件。每個組件可W具有一個或者 多個替換核屯、程序,如圖17所示??蒞呈現(xiàn)從庫單元410選取的多個選項供用戶選擇。例如, 當用戶選擇特征提取器時,生成適當?shù)倪B通性,并且呈現(xiàn)適合選擇的特征提取器的分類器 供用戶選擇。
[0112] 圖18示出根據(jù)本發(fā)明實施例的規(guī)則的示例性應(yīng)用。每個用戶選擇都可W調(diào)用一個 或者多個規(guī)則。通過利用每個用戶選擇應(yīng)用規(guī)則,迭代地生成完整系統(tǒng)。根據(jù)輸入數(shù)據(jù)、選 擇的核屯、程序200W及應(yīng)用連通性,匹配編碼方案,并且在核屯、程序200中傳播并且使用時 間信息。
[0113] 框架400是可伸縮的,并且可W在分布式計算架構(gòu)中采用。通過挖掘現(xiàn)有的核屯、程 序200和應(yīng)用,可W自動填入庫單元410。
[0114] 在分布式計算環(huán)境中,核屯、程序200能夠跨越多個主機獨立例示。用戶從庫單元 410中選擇組成原型。通過利用例如MPI庫在處理之間交換消息,可W在不同主機上實現(xiàn)跨 核屯、程序組成。
[0115] 可W W各種方式自動識別組成原型和網(wǎng)絡(luò)連通性置換并且將其并入庫單元410 中。例如,在線處理包含將在數(shù)據(jù)庫中記錄連接兩個或者更多個核屯、程序200的每個操作的 代碼嵌入網(wǎng)絡(luò)生成軟件。數(shù)據(jù)庫記錄識別兩個或者更多個核屯、程序200和核屯、程序200之間 的網(wǎng)絡(luò)連通性置換。通過將含有相同核屯、程序200對的數(shù)據(jù)庫記錄聚類在一起并且分析其 連通性置換,可W挖掘數(shù)據(jù)庫記錄。作為另一個例子,離線處理包含分析一組模型文件,其 中每個模型文件都含有具有關(guān)于一對核屯、程序的元數(shù)據(jù)的網(wǎng)絡(luò)。從模型文件和輸入/輸出 映射文件提取與核屯、程序之間的連通性有關(guān)的信息。然后,根據(jù)提取的信息,每個連接器的 連接器引腳再映射到神經(jīng)元和軸突。然后,根據(jù)確定目標軸突,確定核屯、程序的連接器引腳 之間的關(guān)聯(lián)連通性。通過列出連接引腳號,可W獲得一對核屯、程序之間的置換。
[0116] 圖19是根據(jù)本發(fā)明實施例用于生成或者延伸神經(jīng)形態(tài)網(wǎng)絡(luò)的示例性流程圖700。 在處理方框701,保持一個或者多個組成原型。在處理方框702,根據(jù)一個或者多個捜索參 數(shù),捜索組成原型。在處理方框703,識別與捜索參數(shù)匹配的組成原型。在處理方框704,根據(jù) 與識別的組成原型關(guān)聯(lián)的一個或者多個規(guī)則,生成或者延伸神經(jīng)形態(tài)網(wǎng)絡(luò)。
[0117] 圖20是示出用于實現(xiàn)本發(fā)明的一個實施例的信息處理系統(tǒng)300的高級方框圖。計 算機系統(tǒng)包含一個或者多個諸如處理器302的處理器。處理器302連接到通信基礎(chǔ)設(shè)施304 (例如,通信總線、交疊開關(guān)矩陣(cross-over bar))。
[0118] 計算機系統(tǒng)能夠包含顯示界面306,該顯示界面306轉(zhuǎn)發(fā)來自通信基礎(chǔ)設(shè)施304(或 者來自未示出的帖緩沖器)的圖、文本和數(shù)據(jù),W顯示于顯示單元308上。計算機系統(tǒng)還包含 主存儲器310,優(yōu)選地包含隨機存取存儲器(RAM),并且還可W包含二級存儲器312。二級存 儲器312可W包含例如硬盤驅(qū)動器314和/或者代表例如軟盤驅(qū)動器、磁帶驅(qū)動器和/或者光 盤驅(qū)動器的可移除存儲驅(qū)動器316??梢瞥鎯︱?qū)動器316W本技術(shù)領(lǐng)域內(nèi)的技術(shù)人員眾所 周知的方式對可移除存儲單元318進行讀取和/或者寫入??梢瞥鎯卧?18代表例如利 用可移除存儲驅(qū)動器316讀出和寫入的軟盤、壓縮盤、磁帶或者光盤等等。應(yīng)當明白,可移除 存儲單元318包含內(nèi)部存儲了計算機軟件和/或者數(shù)據(jù)的計算機可讀介質(zhì)。
[0119] 在替換實施例中,二級存儲器312可W包含用于使計算機程序或者其他指令裝載 到計算機系統(tǒng)中的其他類似裝置。運種裝置可W包含例如可移除存儲單元320和界面322。 運種裝置的例子可W包含程序封裝和封裝界面(諸如在視頻游戲設(shè)備中建立的)、可移除存 儲忍片(諸如,EPROM或者PROM) W及關(guān)聯(lián)套接口、W及允許軟件和數(shù)據(jù)從可移除存儲單元 320傳遞到計算機系統(tǒng)的其他可移除存儲單元320和接口 322。
[0120] 計算機系統(tǒng)還可W包含通信接口 324。通信接口 324使得在計算機系統(tǒng)與外部設(shè)備 之間傳遞軟件和數(shù)據(jù)。通信接口324的例子可W包含:調(diào)制解調(diào)器、網(wǎng)絡(luò)接口(諸如W太網(wǎng) 卡)、通信端口或者PCMCIA槽和卡等等。通過通信接口 324傳遞的軟件和數(shù)據(jù)處于信號的形 式,該信號形式可W包含例如電子信號、電磁信號、光信號或者能夠由通信接口 324接收的 其他信號。提供運些信號,W通過通信路徑(即,信道)326與接口324通信。該通信路徑326承 載信號并且可W利用電線或者電纜、光纖、電話線、蜂窩電話鏈路、RF鏈路和/或者其他通信 信道實現(xiàn)。
[0121 ]在本說明書中,通常利用術(shù)語"計算機程序介質(zhì)"、"計算機可用介質(zhì)"和"計算機可 讀介質(zhì)"指諸如主存儲器310和二級存儲器312、可移除存儲驅(qū)動器316和安裝在硬盤驅(qū)動器 314中的硬盤的介質(zhì)。
[0122] 計算機程序(還稱為計算機控制邏輯)存儲于主存儲器310和/或者二級存儲器312 中。還可W通過計算機接口324接收計算機程序。運種計算機程序當運行時能夠使計算機系 統(tǒng)執(zhí)行在此討論的本發(fā)明的特征。特別是,計算機程序當運行時能夠使處理器302執(zhí)行計算 機系統(tǒng)的特征。因此,運種計算機程序代表計算機系統(tǒng)的控制器。
[0123] 本發(fā)明可W是系統(tǒng)、方法和/或計算機程序產(chǎn)品。計算機程序產(chǎn)品可W包括計算機 可讀存儲介質(zhì),其上載有用于使處理器實現(xiàn)本發(fā)明的各個方面的計算機可讀程序指令。
[0124] 計算機可讀存儲介質(zhì)可W是可W保持和存儲由指令執(zhí)行設(shè)備使用的指令的有形 設(shè)備。計算機可讀存儲介質(zhì)例如可W是一-但不限于一一電存儲設(shè)備、磁存儲設(shè)備、光存儲 設(shè)備、電磁存儲設(shè)備、半導體存儲設(shè)備或者上述的任意合適的組合。計算機可讀存儲介質(zhì)的 更具體的例子(非窮舉的列表)包括:便攜式計算機盤、硬盤、隨機存取存儲器(RAM)、只讀存 儲器(ROM)、可擦式可編程只讀存儲器化PROM或閃存)、靜態(tài)隨機存取存儲器(SRAM)、便攜式 壓縮盤只讀存儲器(CD-ROM)、數(shù)字多功能盤(DVD)、記憶棒、軟盤、機械編碼設(shè)備、例如其上 存儲有指令的打孔卡或凹槽內(nèi)凸起結(jié)構(gòu)、W及上述的任意合適的組合。運里所使用的計算 機可讀存儲介質(zhì)不被解釋為瞬時信號本身,諸如無線電波或者其他自由傳播的電磁波、通 過波導或其他傳輸媒介傳播的電磁波(例如,通過光纖電纜的光脈沖)、或者通過電線傳輸 的電信號。
[0125] 運里所描述的計算機可讀程序指令可W從計算機可讀存儲介質(zhì)下載到各個計算/ 處理設(shè)備,或者通過網(wǎng)絡(luò)、例如因特網(wǎng)、局域網(wǎng)、廣域網(wǎng)和/或無線網(wǎng)下載到外部計算機或外 部存儲設(shè)備。網(wǎng)絡(luò)可W包括銅傳輸電纜、光纖傳輸、無線傳輸、路由器、防火墻、交換機、網(wǎng)關(guān) 計算機和/或邊緣服務(wù)器。每個計算/處理設(shè)備中的網(wǎng)絡(luò)適配卡或者網(wǎng)絡(luò)接口從網(wǎng)絡(luò)接收計 算機可讀程序指令,并轉(zhuǎn)發(fā)該計算機可讀程序指令,W供存儲在各個計算/處理設(shè)備中的計 算機可讀存儲介質(zhì)中。
[0126] 用于執(zhí)行本發(fā)明操作的計算機程序指令可W是匯編指令、指令集架構(gòu)(ISA)指令、 機器指令、機器相關(guān)指令、微代碼、固件指令、狀態(tài)設(shè)置數(shù)據(jù)、或者W-種或多種編程語言的 任意組合編寫的源代碼或目標代碼,所述編程語言包括面向?qū)ο蟮木幊陶Z言一諸如 Smalltalk^++等,W及常規(guī)的過程式編程語言一諸如"C"語言或類似的編程語言。計算機 可讀程序指令可W完全地在用戶計算機上執(zhí)行、部分地在用戶計算機上執(zhí)行、作為一個獨 立的軟件包執(zhí)行、部分在用戶計算機上部分在遠程計算機上執(zhí)行、或者完全在遠程計算機 或服務(wù)器上執(zhí)行。在設(shè)及遠程計算機的情形中,遠程計算機可W通過任意種類的網(wǎng)絡(luò)一包 括局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)-連接到用戶計算機,或者,可W連接到外部計算機(例如利 用因特網(wǎng)服務(wù)提供商來通過因特網(wǎng)連接)。在一些實施例中,通過利用計算機可讀程序指令 的狀態(tài)信息來個性化定制電子電路,例如可編程邏輯電路、現(xiàn)場可編程口陣列(FPGA)或可 編程邏輯陣列(PLA),該電子電路可W執(zhí)行計算機可讀程序指令,從而實現(xiàn)本發(fā)明的各個方 面。
[0127] 運里參照根據(jù)本發(fā)明實施例的方法、裝置(系統(tǒng))和計算機程序產(chǎn)品的流程圖和/ 或框圖描述了本發(fā)明的各個方面。應(yīng)當理解,流程圖和/或框圖的每個方框W及流程圖和/ 或框圖中各方框的組合,都可W由計算機可讀程序指令實現(xiàn)。
[0128] 運些計算機可讀程序指令可W提供給通用計算機、專用計算機或其它可編程數(shù)據(jù) 處理裝置的處理器,從而生產(chǎn)出一種機器,使得運些指令在通過計算機或其它可編程數(shù)據(jù) 處理裝置的處理器執(zhí)行時,生成了實現(xiàn)流程圖和/或框圖中的一個或多個方框中規(guī)定的功 能/動作的裝置。也可W把運些計算機可讀程序指令存儲在計算機可讀存儲介質(zhì)中,運些指 令使得計算機、可編程數(shù)據(jù)處理裝置和/或其他設(shè)備W特定方式工作,從而,存儲有指令的 計算機可讀介質(zhì)則包括一個制造品,其包括實現(xiàn)流程圖和/或框圖中的一個或多個方框中 規(guī)定的功能/動作的各個方面的指令。
[0129] 也可W把計算機可讀程序指令加載到計算機、其它可編程數(shù)據(jù)處理裝置、或其它 設(shè)備上,使得在計算機、其它可編程數(shù)據(jù)處理裝置或其它設(shè)備上執(zhí)行一系列操作步驟,W生 成計算機實現(xiàn)的過程,從而使得在計算機、其它可編程數(shù)據(jù)處理裝置、或其它設(shè)備上執(zhí)行的 指令實現(xiàn)流程圖和/或框圖中的一個或多個方框中規(guī)定的功能/動作。
[0130] 附圖中的流程圖和框圖顯示了根據(jù)本發(fā)明的多個實施例的系統(tǒng)、方法和計算機程 序產(chǎn)品的可能實現(xiàn)的體系架構(gòu)、功能和操作。在運點上,流程圖或框圖中的每個方框可W代 表一個模塊、程序段或指令的一部分,所述模塊、程序段或指令的一部分包含一個或多個用 于實現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。在有些作為替換的實現(xiàn)中,方框中所標注的功能也 可WW不同于附圖中所標注的順序發(fā)生。例如,兩個連續(xù)的方框?qū)嶋H上可W基本并行地執(zhí) 行,它們有時也可W按相反的順序執(zhí)行,運依所設(shè)及的功能而定。也要注意的是,框圖和/或 流程圖中的每個方框、W及框圖和/或流程圖中的方框的組合,可W用執(zhí)行規(guī)定的功能或動 作的專用的基于硬件的系統(tǒng)來實現(xiàn),或者可W用專用硬件與計算機指令的組合來實現(xiàn)。
【主權(quán)項】
1. 一種方法,包括: 保持一個或者多個組成原型的庫,其中每個組成原型與一個或者多個神經(jīng)突觸程序關(guān) 聯(lián); 根據(jù)一個或者多個搜索參數(shù),搜索所述庫; 選擇滿足所述搜索參數(shù)的至少一個組成原型;以及 通過應(yīng)用一個或者多個與選擇的組成原型關(guān)聯(lián)的規(guī)則,生成或者延伸神經(jīng)突觸網(wǎng)絡(luò)。2. 根據(jù)權(quán)利要求1所述的方法,其中所述規(guī)則控制如下中的一個或者多個:將神經(jīng)突觸 程序添加到所述網(wǎng)絡(luò),將子網(wǎng)絡(luò)添加到所述網(wǎng)絡(luò),在所述網(wǎng)絡(luò)中添加連接,在所述網(wǎng)絡(luò)中添 加神經(jīng)元,改變所述網(wǎng)絡(luò)的一個或者多個參數(shù),應(yīng)用核心原型,以及增強所述網(wǎng)絡(luò)的功能 性。3. 根據(jù)權(quán)利要求1所述的方法,其中保持的所述組成原型包含如下中的至少一個:組成 核心程序原型、核心原型、突觸交叉開關(guān)陣列原型、網(wǎng)絡(luò)連通性置換以及棘波編碼代碼轉(zhuǎn) 換。4. 根據(jù)權(quán)利要求1所述的方法,其中所述搜索參數(shù)包含如下中的至少一個:神經(jīng)突觸程 序的名稱、核心電路功能性、網(wǎng)絡(luò)拓撲、棘波編碼方案、以及網(wǎng)絡(luò)大小。5. 根據(jù)權(quán)利要求1所述的方法,其中選擇或者由給定網(wǎng)絡(luò)自動計算所述搜索參數(shù),并且 應(yīng)用所述規(guī)則生成、延伸、增強或者維修同一個網(wǎng)絡(luò)。6. 根據(jù)權(quán)利要求1所述的方法,其中: 根據(jù)用戶選擇,選擇滿足所述搜索參數(shù)的至少一個組成原型;以及 應(yīng)用所述規(guī)則例示一個或者多個用于生成或者延伸所述網(wǎng)絡(luò)的神經(jīng)突觸程序。7. 根據(jù)權(quán)利要求1所述的方法,其中在分布式環(huán)境中例示所述神經(jīng)突觸程序。8. 根據(jù)權(quán)利要求1所述的方法,其中所述規(guī)則包含例示換能器核心程序,以互連運行在 不同的棘波編碼方案的兩個神經(jīng)突觸程序。9. 根據(jù)權(quán)利要求1所述的方法,還包括: 通過根據(jù)一個或者多個模型文件自動識別一個或者多個組成原型,填入所述庫。10. -種方法,包括: 分析一個或者多個模型文件,其中每個模型文件包含與神經(jīng)突觸核心有關(guān)的信息; 識別所述模型文件中的一個或者多個唯一核心模式; 分配利用相應(yīng)唯一標識符識別的每個唯一核心模式;以及 對于識別的每個唯一核心模式: 根據(jù)對所述唯一核心模式的相應(yīng)唯一標識符的重復(fù),在所述模型文件中定位所述唯一 核心模式的每個實例;以及 代替利用對應(yīng)于所述唯一核心模式的組成原型定位的每個實例。11. 根據(jù)權(quán)利要求10所述的方法,其中每個唯一標識符都包括散列密鑰。12. 根據(jù)權(quán)利要求10所述的方法,其中識別的每個唯一核心模式與如下中的一個有關(guān): 神經(jīng)突觸核心、神經(jīng)突觸核心的一部分。13. 根據(jù)權(quán)利要求10所述的方法,其中每個組成原型包括如下中的一個:核心原型、交 叉開關(guān)陣列原型。14. 根據(jù)權(quán)利要求10所述的方法,還包括: 將識別的每個唯一核心模式與對用于生成所述唯一核心模式的功能或者核心程序中 的一個的相應(yīng)參數(shù)調(diào)用關(guān)聯(lián)。15. 根據(jù)權(quán)利要求10所述的方法,其中 識別的每個唯一核心模式與兩個或者多個的核心程序之間的連通性置換有關(guān)。16. 根據(jù)權(quán)利要求15所述的方法,還包括: 根據(jù)一個或者多個算法,分析所述模型文件; 從每個模型文件中提取元數(shù)據(jù),其中從每個模型文件中提取的元數(shù)據(jù)識別生成所述模 型文件的核心程序;以及 根據(jù)從每個模型文件提取的元數(shù)據(jù),確定至少一個連通性置換。17. -種方法,包括: 對核心程序組成提供編程環(huán)境; 利用所述編程環(huán)境,記錄與核心程序組成關(guān)聯(lián)的一個或者多個用戶動作; 對于記錄的每個用戶動作,保持包含與所述用戶動作有關(guān)的元數(shù)據(jù)的相應(yīng)元數(shù)據(jù)記 錄;以及 使數(shù)據(jù)庫記錄與類似元數(shù)據(jù)聚類,以識別與核心程序組成有關(guān)的一個或者多個模式。18. 根據(jù)權(quán)利要求17所述的方法,其中 識別的每個模式與兩個或者多個的核心程序之間的連通性置換有關(guān); 對于記錄的每個用戶動作,所述用戶動作的相應(yīng)數(shù)據(jù)庫記錄包含識別如下中的每個的 元數(shù)據(jù):兩個或者多個的核心程序以及用于連接所述兩個或者多個核心程序的連通性置 換;以及 使具有用于識別同一個核心程序的元數(shù)據(jù)的數(shù)據(jù)庫記錄聚類在一起。19. 根據(jù)權(quán)利要求17所述的方法,其中 識別的每個模式與組成原型有關(guān)。
【文檔編號】G06N3/063GK106022469SQ201610052235
【公開日】2016年10月12日
【申請日】2016年1月26日
【發(fā)明人】A.阿米爾, P.達塔, D.S.莫德哈, B.G.肖
【申請人】國際商業(yè)機器公司