專利名稱:改進的模擬數(shù)字神經(jīng)元、神經(jīng)網(wǎng)絡(luò)及網(wǎng)絡(luò)調(diào)試算法的制作方法
技術(shù)領(lǐng)域:
本發(fā)明是關(guān)于所謂的模擬神經(jīng)網(wǎng)絡(luò),較具體點說是有關(guān)提供一種新的數(shù)字神經(jīng)元、一種簡化的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)和增強的神經(jīng)網(wǎng)絡(luò)調(diào)試算法(trainingalgorithm)。
模擬神經(jīng)網(wǎng)絡(luò)對人類大腦中神經(jīng)細胞(元)的活動進行仿真。人類的神經(jīng)元由三個主要部分組成細胞體,軸突(及其節(jié)狀隆起),和樹突。(神經(jīng)細胞的)樹突從其他神經(jīng)元接收輸入信號脈沖,并將這些脈沖傳送到細胞體。細胞體對由各種不同樹突接收到的所有信號加以“評估”。這些信號中一些為積極性的信號,亦就是說它們激勵細胞體;而其他一些則為消極性的信號,也就是說它們阻止對細胞體的激勵。當細胞體受激勵的程度超過某一預(yù)定的閾值時,它即產(chǎn)生自身的電信號脈沖,并將它們沿著細胞的軸突傳送至節(jié)狀隆起,這些隆起或者與其樹突相連,或者與其它神經(jīng)元的細胞體相連。
現(xiàn)有的模擬神經(jīng)網(wǎng)絡(luò)中的模擬神經(jīng)元被設(shè)計得模仿人類神經(jīng)細胞的行為。每一模擬神經(jīng)元均具有類似存在于人類神經(jīng)細胞中的功能。此過程由一輸入值開始。這一輸入可能來自外界(如一鍵盤輸入),或者來自其他的神經(jīng)元。當每一個輸入沿著其樹突傳輸時,它被乘以一“加權(quán)值”,例如+100%,+80%,或-90%。這些所謂的突觸加權(quán)值是人類神經(jīng)電脈沖對神經(jīng)細胞體激勵而產(chǎn)生的積極或消極作用的一個近似的數(shù)學(xué)等價量。在所有輸入信號到達細胞體后,即按照它們的加權(quán)值對它們求和,而產(chǎn)生最終結(jié)果凈值。這一值有可能需要在一個或多個附加的求和步驟中被細胞體加以修正。
一神經(jīng)網(wǎng)絡(luò)通常包括三層模擬神經(jīng)元輸入層,“隱藏”層和輸出層。輸入神經(jīng)元的數(shù)目根據(jù)輸入數(shù)據(jù)的特征和數(shù)目決定。輸出神經(jīng)元的數(shù)目以同樣方式?jīng)Q定。例如,如果有三個是/否問題,對它們的回答將導(dǎo)致三種結(jié)果之一,那么就會有三個輸入神經(jīng)元(每一問題一個)和三個輸出神經(jīng)元(每一可能的結(jié)果一個)。
這些加權(quán)值是網(wǎng)絡(luò)借以將輸入值與正確輸出相關(guān)連的手段。在現(xiàn)有的神經(jīng)網(wǎng)絡(luò)中,系統(tǒng)自己利用一調(diào)試算法指定和調(diào)整加權(quán)值,以便正確地建立輸入和輸出間的關(guān)系。
在調(diào)試開始前,由輸入層至隱藏層以及由隱藏層至輸出層的加權(quán)值可以隨意設(shè)定。經(jīng)驗表明,如果最初的加權(quán)值是隨機的而且非零值的話,網(wǎng)絡(luò)就能較好地學(xué)習(xí)。在調(diào)試期間,一組具有已知輸出的輸入被饋入網(wǎng)絡(luò)。如果該系統(tǒng)不產(chǎn)生預(yù)期的輸出,就穿過整個系統(tǒng)“反向傳播”一差錯糾正過程,并按照預(yù)定的公式來對所有輸入/隱藏和隱藏/輸出加權(quán)值進行校正。
在具體實踐中,在對輸出進行評價而后返回糾錯之前,調(diào)試過程并不輸入整套調(diào)試模式。而是一次輸入一個事件,并對一事件的輸出進行檢驗。如果得到不正確的輸出,即對加權(quán)值進行校正。
調(diào)試一神經(jīng)網(wǎng)絡(luò)可能需要數(shù)百數(shù)千個事件。如果系統(tǒng)設(shè)計得不好或者調(diào)試事件不正確,很可能這一網(wǎng)絡(luò)將根本不能學(xué)習(xí)。因此,程序員在選擇恰當?shù)妮斎牒洼敵錾窠?jīng)元的數(shù)目和類型方面的技巧和調(diào)試人員在為調(diào)試網(wǎng)絡(luò)選擇合適的輸入因子和數(shù)據(jù)方面的技巧,就成為系統(tǒng)能成功地運行的關(guān)鍵。
在網(wǎng)絡(luò)調(diào)試中對加權(quán)值重復(fù)使用算法,使得人們難以解釋加權(quán)值的相互作用。這樣,神經(jīng)網(wǎng)絡(luò)就學(xué)習(xí)只有它能解釋的詞句來表達信息。其設(shè)計者運用智力創(chuàng)造性來建立結(jié)構(gòu)和使學(xué)習(xí)得以進行的規(guī)則,并提供用于調(diào)試的事件,但這樣做基本上看不到運行的具體細節(jié),只能成為一個單純的觀察者。調(diào)試一神經(jīng)網(wǎng)絡(luò)的技巧就在于選擇數(shù)據(jù)表達方式(即輸入、隱藏和輸出神經(jīng)元的數(shù)目和類型)和選擇調(diào)試用事件。
本發(fā)明的目的是提供能應(yīng)用集成電路技術(shù)制造的數(shù)字神經(jīng)元,用于組成神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)單元。
本發(fā)明的另一目的是將許多數(shù)字神經(jīng)元集成為一神經(jīng)網(wǎng)絡(luò)芯片,它可以與另外一些神經(jīng)網(wǎng)絡(luò)芯片相互連接來構(gòu)成充分大規(guī)模的神經(jīng)網(wǎng)絡(luò)。
本發(fā)明還有一個目的是建立一個神經(jīng)網(wǎng)絡(luò)調(diào)試算法,這個算法將模式映射到神經(jīng)元組,使得在當輸入模式的基本部分被加到網(wǎng)絡(luò)輸入端時輸出神經(jīng)元將激活,而且該調(diào)試模式因無需作重復(fù)處理較之現(xiàn)有網(wǎng)絡(luò)操作次數(shù)大為減少。
按照本發(fā)明,提供了一種用于神經(jīng)網(wǎng)絡(luò)中的n輸入通路數(shù)字神經(jīng)元,此數(shù)字神經(jīng)元包括一具有2n存貯單元的隨機存取存貯器,其中每一存貯單元相應(yīng)于一n端輸入編碼模式,每一存貯單元用對應(yīng)于突觸加權(quán)值的神經(jīng)元激活狀態(tài)來加以編程,這個突觸加權(quán)值是神經(jīng)網(wǎng)絡(luò)調(diào)試算法針對一神經(jīng)網(wǎng)絡(luò)中的神經(jīng)元而分配到該輸入編碼模式的;此神經(jīng)元起一查表裝置的作用,它從被一n位數(shù)字輸入編碼模式所尋址的該隨機存取存貯器的存貯單元來為被加到該神經(jīng)元輸入通路的每一個n位數(shù)字編碼模式取得神經(jīng)元激活狀態(tài)。
本發(fā)明具有特別可靠的優(yōu)點,就是該被調(diào)試網(wǎng)絡(luò)的突觸加權(quán)值并不保持在神經(jīng)網(wǎng)絡(luò)自己內(nèi)部,而放在被作為一種神經(jīng)元加權(quán)存貯器映象用來執(zhí)行調(diào)試算法的設(shè)備中。
本發(fā)明的數(shù)字神經(jīng)元能夠根據(jù)所應(yīng)用的突觸加權(quán)值提供其輸入的任何功能。特別是對于一特定的輸入編碼組合,神經(jīng)元可以由調(diào)試算法被編程來提供或者一個內(nèi)部連接功能,或者一個相關(guān)功能。
這樣,根據(jù)本發(fā)明實現(xiàn)的神經(jīng)元既可能用來表征生物神經(jīng),同時也具有表征其他一些功能的能力。
將存貯器加權(quán)映象分為加權(quán)頁可以實現(xiàn)多重特性,對于一神經(jīng)元的每一加權(quán)頁的長度及位置由神經(jīng)網(wǎng)絡(luò)調(diào)試算法決定。
本發(fā)明神經(jīng)元的另一優(yōu)點在于,較之較常見的內(nèi)部接線十分繁瑣的神經(jīng)網(wǎng)絡(luò),可以大大減少內(nèi)部結(jié)構(gòu)所需的連接結(jié)構(gòu)。在通常的神經(jīng)網(wǎng)絡(luò)的情況下,對內(nèi)部連接的要求是連線的數(shù)量與前一層中神經(jīng)元數(shù)目的平方成比例。這是因為任一神經(jīng)元如果它不完全地與前一層相連接,將不能與網(wǎng)絡(luò)的其他神經(jīng)元相配合來提供所希望的功能。
按照本發(fā)明提出的多層數(shù)字神經(jīng)網(wǎng)絡(luò),其中網(wǎng)絡(luò)的每一神經(jīng)元均能被編程來提供它的輸入任何功能,而一個神經(jīng)元被連接到下一層中有限數(shù)量的鄰近神經(jīng)元的輸入通路。一般,每一神經(jīng)元被連接到下一層中對應(yīng)神經(jīng)元的輸入通路和所說下一層中對應(yīng)神經(jīng)元的上下緊鄰位置上的神經(jīng)元(如果存在的話)的輸入通路,該網(wǎng)絡(luò)的每一輸入通路也相類似地被連接到輸入層中相應(yīng)神經(jīng)元的輸入通路和該輸入層中相應(yīng)神經(jīng)元上下緊鄰的神經(jīng)元(如果存在的話)的輸入通路。
這種連接方式也結(jié)合有交疊措施,從而,某些神經(jīng)元與同一層的其他神經(jīng)元共用它們的輸入連接通路中的一部分。
神經(jīng)元之間這種有限的連接之所以可能是借助于每一神經(jīng)元能被編程得可以在其輸入實現(xiàn)任何功能來達到的,本質(zhì)上是在于,神經(jīng)元小組辨識輸入模式中的特征,再進入網(wǎng)絡(luò),多組神經(jīng)元連接到該第一組的輸出,利用中介神經(jīng)元作為連接以將扇入端數(shù)增加到所需的水平。
本發(fā)明的神經(jīng)網(wǎng)絡(luò)理想的組成結(jié)構(gòu)是采用一組合式的三維立體矩陣,其每一軸的量度相同;每一神經(jīng)元例如說具有9個輸入通道;諸神經(jīng)元是這樣連接到一起的,即每一神經(jīng)元均與前一層中的上、下以及相對應(yīng)的3個神經(jīng)元的輸出相連接。
也可以采用其他有限連接布局,只要該調(diào)試算法能理解所選擇的布局即可。
調(diào)試算法按單次通過的每一網(wǎng)絡(luò)輸入模式用神經(jīng)元激活狀態(tài)對網(wǎng)絡(luò)的神經(jīng)元進行編程;該狀態(tài)是由針對該輸入模式的突觸加權(quán)值相關(guān)或內(nèi)連功能進行計算的,具體作法是將每一模式作為相關(guān)功能或內(nèi)連功能映射到處于正輸入與對應(yīng)于該輸入模式的網(wǎng)絡(luò)輸出之間的通路上的神經(jīng)元;調(diào)整該調(diào)試算法來逐個地處理調(diào)試模式的每一個主動網(wǎng)絡(luò)輸入通路,和識別處于網(wǎng)絡(luò)輸入與指定的網(wǎng)絡(luò)輸出通路之間通路上的神經(jīng)元;而后該網(wǎng)絡(luò)輸入通路被神經(jīng)元至神經(jīng)元地連接起來,直到它到達所有目標輸出端;在每一級出自一組可能的扇至點中的一個神經(jīng)元經(jīng)過查詢來驗證確定它是否已學(xué)習(xí)到所需的功能;如果沒有一個神經(jīng)元激活,則查詢相鄰神經(jīng)元為每一神經(jīng)元建立備用能力,而具有最大備用能力的神經(jīng)元即被編程來實現(xiàn)所需的功能。
一神經(jīng)元的編程可能涉及到一現(xiàn)有的加權(quán)映象與一新產(chǎn)生的加權(quán)映象的融合。
在對調(diào)試算法的改進中,突觸加權(quán)值的計算是基于對每一輸入的有效值進行累加并遞送到一神經(jīng)元,直到到達輸出神經(jīng)元。同時應(yīng)用每一神經(jīng)元輸入的有效值來參與突觸加權(quán)值的決定。對一神經(jīng)元的映射以實現(xiàn)一新功能是依靠在對該神經(jīng)元的加權(quán)映象中引入一新加權(quán)頁面。
在調(diào)試期間如果一層中在到輸出神經(jīng)元的通路中沒有一個神經(jīng)元激活,這種改進措施將提供一新的加權(quán)頁,以此加入到最少利用的神經(jīng)元加權(quán)映象中,該加權(quán)頁的長度由對一指定神經(jīng)元的輸入組成情況來決定。
從對下面結(jié)合附圖的敘述,將會很容易理解本發(fā)明,其中
圖1表示根據(jù)本發(fā)明的神經(jīng)元;
圖2表示-9輸入神經(jīng)元的通常扇入端;
圖2A表示許多不同的層間連接布局;
圖3表示按照本發(fā)明的一個典型神經(jīng)網(wǎng)絡(luò)的多層連接布局;
圖4表示采用按本發(fā)明的神經(jīng)元的神經(jīng)網(wǎng)絡(luò)的功能映射實例;
圖5~8表示按照本發(fā)明將輸入代碼A~D向神經(jīng)元的映射過程;
圖9表示采用按照本發(fā)明的神經(jīng)元的一典型神經(jīng)網(wǎng)絡(luò)的特定輸入模式時的累積行波序列;
圖10表示一種神經(jīng)元芯片的布線;
圖11表示一多神經(jīng)元單元的布線;
圖12表示一根據(jù)本發(fā)明的神經(jīng)元;
圖13表示多神經(jīng)元單元間的片間通訊布局;
圖14表示一多片多神經(jīng)元立方體;
圖15表示調(diào)試算法的“調(diào)試所有層”程序的流程圖;
圖16表示神經(jīng)元激活功能的關(guān)鍵。
圖17和18表示“調(diào)試一層”過程的流程圖;
圖19表示連接程序的流程圖;
圖20表示映射程序的流程圖;
圖21表示單值映射程序的流程圖;
圖22表示巡視程序流程圖;
圖23表示強制映射程序流程圖;
圖24表示強制神經(jīng)元程序中的映射流程圖;
圖25表示記錄連接程序的流程圖;
圖26表示順序程序中的映射流程圖;
圖27表示映射連接程序的流程圖;
圖28表示更新程序的流程圖;
圖29表示引導(dǎo)程序的流程圖;
圖30表示相關(guān)程序的流程圖;
圖31表示相關(guān)數(shù)程序的流程圖;
圖32表示產(chǎn)生新加權(quán)頁面程序的流程圖;
圖33表示產(chǎn)生加權(quán)值程序的流程圖;
圖34表示規(guī)范化功能的流程圖;
圖35表示加權(quán)值組合程序的流程圖;
圖36表示存貯器分配程序的流程圖;
圖37表示調(diào)用層程序的流程圖。
根據(jù)本發(fā)明的最佳實施例的神經(jīng)元,由一靜態(tài)隨機存取存貯器組成,在此存貯器中,對神經(jīng)元輸入端的每一數(shù)字組合都設(shè)有一存貯單元。
每一存貯器單元MC1~MC512都有9個神經(jīng)元輸入NI0至NI8以及一經(jīng)由讀出電路SA的數(shù)據(jù)輸出ND0。圖1所示出的存貯器單元包含有連接到一地址譯碼器AD的多地址輸入NI0至NI8。此地址譯碼器在作為一神經(jīng)元運行時為神經(jīng)元的輸入啟動,而當調(diào)試地址控制信號PCS起作時則由調(diào)試算法控制TAC通過引線A0至A8啟動,從而使得在學(xué)習(xí)期受神經(jīng)元激活狀態(tài)控制線NFSI的控制修改存貯器中的數(shù)字數(shù)據(jù)來實現(xiàn)所需的功能。每一存貯器單元起一個9輸入端的能完成此9輸入端任何功能的神經(jīng)元的作用,此神經(jīng)元激活狀態(tài)在由地址譯碼器AD所發(fā)出的地址所指定的存貯單元中保持為“1”(激活)或“0”(未激活),該地址譯碼器發(fā)出的地址是由選擇適當?shù)淖g碼字線輸出DW01~512的神經(jīng)元的輸入引線NI0至NI8譯碼得出的。激活(1)或非激活(0)狀態(tài)是通過預(yù)置電路PC作為調(diào)試算法的結(jié)果和在執(zhí)行調(diào)試算法期間產(chǎn)生加權(quán)頁的結(jié)果而加以編程到神經(jīng)元中的。將神經(jīng)元的輸出NDO連接到網(wǎng)絡(luò)下一層中的神經(jīng)元的神經(jīng)元輸入(NI0至NI8)之一,由此來將神經(jīng)元連接到一起成為一規(guī)則的矩陣。由靜態(tài)隨機存取存貯器的狀態(tài)得出的神經(jīng)元輸出經(jīng)讀出放大器SA取得。
輸出層神經(jīng)元提供神經(jīng)網(wǎng)絡(luò)的輸出信號。在一典型的裝置布局中所有輸入均連接到前一層中神經(jīng)元的輸出3個接到上面的神經(jīng)元,3個接到下面的神經(jīng)元,3個接到前面的神經(jīng)元,如圖2所示。
圖2和圖3表述按照本發(fā)明一實施方案的3維神經(jīng)網(wǎng)絡(luò)的連接方式,其中每一軸大小都相等,構(gòu)成一立方體。此立方體的深必須等于高和寬,以便保證所有輸入均能扇出達到任一輸出節(jié)點。網(wǎng)絡(luò)一般這樣連接,即每一神經(jīng)元,如NX,被連接到上層、相鄰層和下層中各對應(yīng)神經(jīng)元NUA、NUB和NUC,NAA、NAB和NAC及NLA、NLB和NLC的輸出通路。圖2A表示針對神經(jīng)元NX1、NX2、NX3和NX4的4個備選的簡化連接布局,這里模式已經(jīng)過分解。所采用的連結(jié)布局是可以有選擇的,只要它能適宜于對所識別的要被檢驗的輸入模式所要求的。連接模式一經(jīng)選定,調(diào)試算法即要求對被用于實際網(wǎng)絡(luò)中的該連接模式加以模擬。圖3表示一具有構(gòu)成輸出層的輸出神經(jīng)元LX的層L1、L2以及LN層的典型多層布局。
圖4說明功能神經(jīng)元FNA和FNB,以及起連接作用的由INA至INA的神經(jīng)元以便將扇入端面輸出神經(jīng)元ONX伸展。起連接作用的神經(jīng)元可實現(xiàn)復(fù)雜的連接功能,使得在變化的條件下可以使神經(jīng)元和不同的神經(jīng)元連接到一齊。這種連接功能的重要性將可由以下對網(wǎng)絡(luò)的運行的描述看到。為便于對網(wǎng)絡(luò)所執(zhí)行功能的理解,將用一簡化方案來作為舉例。
功能映射當網(wǎng)絡(luò)最初處于一組調(diào)試模式下,它的神經(jīng)元完全未經(jīng)成形時,每一輸入必須作為一組突觸加權(quán)值被存貯起來。在網(wǎng)絡(luò)經(jīng)過數(shù)次調(diào)試時,一些神經(jīng)元開始辯識新的輸入模式的特點,結(jié)果需要修改的突觸加權(quán)值就較少。圖5~8描述在針對每一輸入模式或構(gòu)造的調(diào)試過程中的一個9神經(jīng)元3層的2維網(wǎng)絡(luò)。調(diào)試過程從輸入層起以圖5左方所示表中的1A、2A和3A以及隱藏層的輸出端的1A和3A所表示的順序處理有效輸入,以標識與由模式A所表示的輸入模式相適應(yīng)的特定輸出神經(jīng)元。圖5~8中列出的表指出(ⅰ)隱藏層之一中的連接功能ICWP和(ⅱ)輸入模式的輸出層單元識別功能NXWP。在這些圖中,點線表示不起作用的神經(jīng)元連接,而神經(jīng)元間的實線則表示起作用的神經(jīng)元連接。為說明起見,僅僅用標名為NXA、NXB、NXC和NXD的相同輸出神經(jīng)元來檢驗加到網(wǎng)絡(luò)的每一輸入模式。
4組調(diào)試輸入模式A~D分別為圖5中的網(wǎng)絡(luò)模式A,圖6中的B,圖7中的C和圖8中的D。調(diào)試算法將各個模式(作為功能或連接)映射進處于一有效輸入端和網(wǎng)絡(luò)輸出端之間的通路上的神經(jīng)元。在這一簡單的例子中的許多神經(jīng)元對不同的模式均采用相同的映射。當網(wǎng)絡(luò)學(xué)習(xí)了更多的模式時,需要重新組織的神經(jīng)元就越來越少。最終網(wǎng)絡(luò)將會飽和,不再能學(xué)習(xí)更多的模式,而不會影響網(wǎng)絡(luò)調(diào)用老模式的能力。
首先來看圖5,模式1001100將使得神經(jīng)元NI1、NI3和NI4激活。第一隱藏層中的神經(jīng)元N1H1將起一連接作用,而神經(jīng)元N1H4則響應(yīng)局部模式識別功能-11-。在第二隱藏層中,神經(jīng)元N2H1和N2H3起連接作用使得輸出神經(jīng)元NXA能識別輸入模式。輸入模式是這樣進行處理的,有效輸入(1)被按序列處理,起作用的神經(jīng)元連接上表示的數(shù)字對應(yīng)于模式A的處理順序,即由“1”狀態(tài)的有效信號輸入到神經(jīng)元NI5開始。表ICWP僅僅表示第一隱藏層神經(jīng)元的連接功能。輸出層識別輸入模式A是通過將神經(jīng)元NXA編程進行的,用對X1、X2和X3的輸入加權(quán)值分別為1、0、2來激活。
在圖6中,輸出神經(jīng)元NXB識別輸入模式B無需重新調(diào)試。因為其對X1、X2和X3的輸入加權(quán)值分別為2、0、2,這已超過了識別模式A中的3組閾值。在圖7和8中,輸入模式C和D促使輸出神經(jīng)元識別加權(quán)值X1、X2、X3分別為1、1、1(模式C)和5、0、1(模式D)。在圖6和8中,被識定的神經(jīng)元起連接作用。
多重性質(zhì)的神經(jīng)元表1所示為一5輸入單性質(zhì)的神經(jīng)元的存貯器內(nèi)容。指定到每一輸入的加權(quán)值被列在本說明書末尾的表1的頂部,其中還隨同列有閾值,超過此閾值時神經(jīng)元激活。每一加權(quán)值可以為任何正或負的值。這樣的加權(quán)值表是在調(diào)試過程中產(chǎn)生的,不過,只有適宜的神經(jīng)元激活狀態(tài)被編程到神經(jīng)元的隨機存取存貯器的存貯單元中。
網(wǎng)絡(luò)中的每個神經(jīng)元均被安排將通過它們作為其輸入模式的功能運行或者作為一個連接的能力來為對輸入模式的識別發(fā)揮作用。雖然表1說出了針對所有神經(jīng)元輸入通路情況組合的激活狀態(tài),但取決于它的各自對是否激活的判斷所起作用的相對重要性(突觸加權(quán)值),只有一定數(shù)量的這種組合能被利用。這一事實可被用來確定每一神經(jīng)元可能識別許多各不相同的輸入有效值。
表2所示為一5輸入的多性能神經(jīng)元。存貯器映象被分成數(shù)區(qū)段,每一區(qū)段可實現(xiàn)一組新的突觸加權(quán)值。這樣每一神經(jīng)元就可能比它的通常類似的對應(yīng)者提供更多的功能。存貯器映象中每一加權(quán)頁的長度和位置由調(diào)試算法確定。
圖9說明一3層18神經(jīng)元的網(wǎng)絡(luò)。將輸入調(diào)制模式“101101”示于網(wǎng)絡(luò)的左方,同樣,點線連接指暫停不用的連接,而實線則指運行的連接。每一具有有效信號的輸入均被映射到一經(jīng)選擇的輸出神經(jīng)元。每一神經(jīng)元的輸入端的數(shù)量及每一輸入的效應(yīng)被用來計算相應(yīng)的輸入加權(quán)值。每一輸入的有效值在當其向著輸出神經(jīng)元行進時,于每一神經(jīng)元處累積,這一性質(zhì)將被用于后面將詳細說明的調(diào)試算法中。
神經(jīng)元的結(jié)構(gòu)已設(shè)計成可以作比例換算,這就使得有可能根據(jù)圖10中基本的多神經(jīng)元芯片來實現(xiàn)任何所希望的網(wǎng)絡(luò)。該芯片設(shè)置有多個輸入/輸出端底座、驅(qū)動器I/OP&D、一控制寄存器CC、多個編程寄存器PR、一可編程接口PI,和由一路由通道RC連接的兩組神經(jīng)元NCL和NCR。每一芯片在-13×13×13的網(wǎng)絡(luò)中集成了2070個神經(jīng)元。圖11說明了該芯片是如何構(gòu)成的,兩組神經(jīng)元被一路由通道隔開,每一組的1035個神經(jīng)元被組織成為一23×45的由512位靜態(tài)隨機存取單元構(gòu)成的存貯器塊。
每一神經(jīng)元由一512×1位的SRAM(靜態(tài)隨機存取存貯器器)組成,其中包含有地址譯碼、讀出放大器和輸出鎖存。圖12說明此隨機存取存貯器的芯體,它由兩個地址譯碼器,4×16和5×32,所包圍。每一SRAM單元尺寸為12×8μm,單個神經(jīng)元包括譯碼、讀出放大器和鎖存在內(nèi)的尺寸為296×232μm,整個芯片包括接線為13.3×11.6mm。
此多種神經(jīng)元芯片有五種運行方式,如表3中所示。方式1和2用于單片網(wǎng)絡(luò),方式2讀取三個64位的輸入數(shù)據(jù)字(3×25nsec),執(zhí)行網(wǎng)絡(luò)功能并輸出三個64位的數(shù)據(jù)字。在數(shù)據(jù)通路應(yīng)用中,此網(wǎng)絡(luò)每75nsec可處理一個新的輸入(169位)。方式1便于串行加載輸入數(shù)據(jù),象語音處理過程中那樣的應(yīng)用將輸入作時間位移,將每一輸入模式左移,并以新的數(shù)據(jù)填充最右邊的一列。在這一方式中網(wǎng)絡(luò)運行快三倍。
方式3和4用于多芯片網(wǎng)絡(luò),即這兩種方式中,輸入和輸出寄存器字長由64位減少到22位,一新的85位的片間寄存器形成網(wǎng)絡(luò)邊緣與相鄰芯片的連接。方式4讀出8個22位的輸入數(shù)據(jù)字(8×25nsec),將8個64位的數(shù)據(jù)字傳送到周圍的芯片,執(zhí)行網(wǎng)絡(luò)功能并輸出8個22位的數(shù)據(jù)字。對于數(shù)據(jù)通路的應(yīng)用,整個網(wǎng)絡(luò)每200nsec處理一個新的輸入模式(按二進制)。
調(diào)試網(wǎng)絡(luò)利用方式5,在調(diào)試期間,神經(jīng)元激活狀態(tài)通過-32位寄存器進行更新。為了調(diào)試整個網(wǎng)絡(luò),對每一芯片需進行35152次寫32位的操作。
神經(jīng)元立方體圖13說明連結(jié)到一起的9個多神經(jīng)元芯片。由每一芯片邊緣的輸出通過高速片間緩存器傳輸,傳送完整的22位I/O端口169位數(shù)據(jù)字DS只需200nsec,任何大小的網(wǎng)絡(luò)均可達到同樣的數(shù)據(jù)通路性能200nsec/每輸入字。圖14說明一個27多神經(jīng)元芯片的立方體,組織為59319神經(jīng)元。
本發(fā)明的神經(jīng)元網(wǎng)絡(luò)是特別設(shè)計為以一數(shù)字存取存貯器電路來實現(xiàn)的多層二進制前饋網(wǎng)絡(luò)。此系統(tǒng)具有三個獨特的特點(ⅰ)內(nèi)部連接要求有限。這就使得可以增大網(wǎng)絡(luò)而不會促使硬件的復(fù)雜程度和處理時間呈指數(shù)上升。
(ⅱ)單路監(jiān)控的學(xué)習(xí)算法。調(diào)試數(shù)據(jù)無需作多重表達,而在學(xué)習(xí)過程中亦不涉及重復(fù)操作。
(ⅲ)在調(diào)用方式中,網(wǎng)絡(luò)的加權(quán)值無需加以分類。起作用的神經(jīng)元尋址存貯器存貯單元,這些單元或者以“0”表明來被確認,或者以“1”表明得到確認。這就使得有利于進行高速處理。
這里的意圖是,每一神經(jīng)元芯片將含有2070個神經(jīng)元,組成13×13×13的三維結(jié)構(gòu)(每層為13×13個神經(jīng)元,每一芯片為13層)。每一神經(jīng)元有9個I/O連接,在每一芯片上產(chǎn)生18630個突觸。任何尺寸的網(wǎng)絡(luò)均可由連續(xù)地連接的芯片構(gòu)成。由于僅只需要169(13×13)個片間連接,因而每一芯片就有可能每200nsec處理一新的輸入。芯片的尺寸將為13.3×11.6mm。一512個多神經(jīng)元的立方體(512個芯片連接成一立方作形狀)就能夠每秒鐘處理具有75×1013突觸的>106個神經(jīng)元。這大大超越現(xiàn)有的神經(jīng)網(wǎng)絡(luò)芯片,后者每芯片平均為32個神經(jīng)元和1000突觸。
每一神經(jīng)元是一512×1位的靜態(tài)隨機存取存貯器。每一神經(jīng)元的9個連接提供了存貯器的512(29)個地址。這512個存貯只存貯單元使神經(jīng)元可能學(xué)習(xí)到各種各樣的子模式。
用戶將在層1指定輸入模式,在層n=13指定輸出神經(jīng)元。連接將按照由調(diào)試算法所確定的映射來接收加權(quán)值?!肮δ堋鄙窠?jīng)元將學(xué)懂特定的子模式,而“內(nèi)連”神經(jīng)元則將活動導(dǎo)向目標輸出神經(jīng)元。每一種神經(jīng)元可存貯P頁加權(quán)值(這里P由用戶確定),此加權(quán)值經(jīng)過閾值檢驗(達到一用戶所設(shè)定的水平)來提供存貯器地址以存貯“1”,表明得到確認,和“0”,表明未得確認。調(diào)整閾值水平將更改網(wǎng)絡(luò)的綜合特性。
調(diào)試算法在調(diào)試過程期間,每一組調(diào)試模式都與一輸出神經(jīng)元相關(guān)連。調(diào)試算法將模式映射進一被模擬網(wǎng)絡(luò)的一組神經(jīng)元中,以便使得在當輸入模式的基本部分被加到網(wǎng)絡(luò)的輸入時,該輸出將激活。調(diào)試模式僅出現(xiàn)于被模擬的網(wǎng)絡(luò)一次,因為此調(diào)試算法根據(jù)第一次通過來計算正確的突觸加權(quán)值,而無需重復(fù)進行。
在作調(diào)試時,僅僅處理那些帶起作用值的的輸入。每一起作用的輸入均被識別并個別地進行處理,傳播算法辯識處于通向被指定輸出的通路上的神經(jīng)元。
然后,該輸入在網(wǎng)絡(luò)的模擬過程中被神經(jīng)元到神經(jīng)元地連接起來,直至達到所有的目標輸出端,每一階段在一組可能的扇至點的每一神經(jīng)元均經(jīng)過查詢,以檢驗它是否已經(jīng)獲得了所需的功能。如果沒有一個神經(jīng)元能響應(yīng)所需要的功能,則查詢相鄰的神經(jīng)元(最多9個),以建立每一神經(jīng)元的備用能力,具有最大能力的神經(jīng)元即被調(diào)整來實現(xiàn)新的功能。
每一神經(jīng)元輸入的有效值被用來幫助決定突觸加權(quán)值。在一欲被映射進一個新功能的神經(jīng)元不具有所需的加權(quán)值時,就引入一新的加權(quán)值頁面。
每一神經(jīng)元包含多重與突觸加權(quán)值相等值的激活狀態(tài)頁面,這就使得每一神經(jīng)元可能表征其輸入的任何功能。在調(diào)試期間,如果在到輸入神經(jīng)元的通路上沒有一個神經(jīng)元激活,即引入一新的加權(quán)值頁面,最少被采用的神經(jīng)元被賦予新的加權(quán)值。加權(quán)值頁的長度決定于到被指定的神經(jīng)元的輸入的復(fù)雜度。一典型的加權(quán)值頁面WP如表4所示。
到一給定層的每一輸入經(jīng)完全處理以組成到下一層的輸入。
當調(diào)試模式被學(xué)到后,調(diào)試算法就減少與表達所希望功能有關(guān)的每一神經(jīng)元的相依性,這就保證了網(wǎng)絡(luò)將響應(yīng)那些部分不可靠或不完整的輸入。
僅只需要以一組模式中每一模式調(diào)試網(wǎng)絡(luò)一次,以保證結(jié)果可靠,更多的調(diào)試無助于結(jié)果的改善。老的存貯器在網(wǎng)絡(luò)飽和前是不會被學(xué)習(xí)附加的模式所損害的。
網(wǎng)絡(luò)的輸入可以來自任何起源,用以調(diào)試網(wǎng)絡(luò)的算法可被應(yīng)用于學(xué)習(xí)任何功能??傆斜WC的調(diào)試時間,網(wǎng)絡(luò)也總是穩(wěn)定的,因為這里沒有反饋。
算法對網(wǎng)絡(luò)中可能實現(xiàn)的連接有如下限定一神經(jīng)元可以是一由連神經(jīng)元,或者一功能神經(jīng)元,但不能同時是兩者;
在可能有的情況下,連接應(yīng)當向輸出目標神經(jīng)元的方向?qū)崿F(xiàn);
一神經(jīng)元可以僅僅有一個到下一層的起作用的輸出連接。這樣,輸入連接因而亦即加權(quán)值本身被定義為起作用的被連接的神經(jīng)元(正加權(quán)值),起作用的未被連接的神經(jīng)元(不起作用的加權(quán)值)和不起作用的神經(jīng)元(負加權(quán)值)。
相關(guān)值被用來檢驗已經(jīng)學(xué)過的子模式是否出現(xiàn)在當前的模式中。如果此相關(guān)值足夠高,則該子模式將被加到一現(xiàn)有的模式組。如果此相關(guān)值不夠高,則該子模式將被認為對網(wǎng)絡(luò)是新的而被學(xué)到。
算法必須為每一起作用的神經(jīng)元確定,哪種連接將提供到達目標輸出神經(jīng)元的最佳路徑。由于每一第n層的神經(jīng)元具有來自第n-1層的9個可能的輸入,所以每一第n-1層的神經(jīng)元具有在下層中的它可能連接9個可能的存貯單元。算法將首先決定,在當前層中是否具有足夠的能同時映射以構(gòu)成一特性的神經(jīng)元。此映射功能必須決定哪一下一層神經(jīng)元將給其提供通往目標輸出神經(jīng)元的最佳路徑。假如不能映射一特性,作為連接的各個神經(jīng)元活動的路線選擇必須保證,在隨后的一層中,神經(jīng)元將對這一級模式構(gòu)成一獨特的特性。
映射過程還限定要求,在倒數(shù)第二層中要存在有大約6個起作用的神經(jīng)元來尋址輸出目標神經(jīng)元。這防止在各層中模式收斂過快,從而減輕數(shù)據(jù)壓縮。此外,每一神經(jīng)元還具有一確定流程完的信息的水平的有效值。一具有高有效值的神經(jīng)元被防止在較前面的階段中加以映射,以維持給定層中的神經(jīng)元之間信息比較平均的分配。類似地,一有效值特別低的神經(jīng)元將被強行映射到另外的神經(jīng)元中。高和低有效值的確定隨網(wǎng)絡(luò)深度增長,并按輸入層中的活動水平來加以量度。
相關(guān)值用來確定加權(quán)值的更新。如果當前模式與被一特殊神經(jīng)元已經(jīng)學(xué)得的模式不相匹配,那么就產(chǎn)生一新的加權(quán)值頁。如果此相關(guān)值處于匹配與不匹配的閾值之間,則將一新的加權(quán)值頁面與現(xiàn)有的最佳加權(quán)值頁面融合。如果此相關(guān)值大于匹配閾值,則無需更新加權(quán)值頁面下一層神經(jīng)元就激活了。
此網(wǎng)絡(luò)算法本質(zhì)上就是一路由選擇算法。加權(quán)值被用來計算相關(guān)性,由此來決定能否利用現(xiàn)有的路線還是需產(chǎn)生新的路線。在調(diào)用期間,輸入模式自由地通過網(wǎng)絡(luò)中任何起作用的連接通路。在下一層中這常常會導(dǎo)致出現(xiàn)許多錯誤的動作,不過這些在朝著輸出層的方向上會很快消失,因為沒有足夠的活動性作繼續(xù)傳播。
調(diào)試算法概述調(diào)試所有層程序?qū)嵺`中,算法僅僅以兩種方式運行學(xué)習(xí)(Learn)或調(diào)用(Recall)。學(xué)習(xí)方式是調(diào)試系統(tǒng)的中心,第一級控制過程,調(diào)試所有層(TAL)程序,列于圖15中。
步驟TAL1,建表(BuildTable)功能識別對一欲被學(xué)習(xí)的特定模式可用于連接的神經(jīng)元。其適用性取決于目標輸出神經(jīng)元。由于每一神經(jīng)元可以連接到它的9個附近的鄰接單元,所以適用神經(jīng)元的計算是在考慮網(wǎng)絡(luò)連接結(jié)構(gòu)布置的前提下,以由目標返回到輸入的方式進行的。
不受控制的神經(jīng)元趨向于同時映射以便盡可能快地取得導(dǎo)向目標輸出神經(jīng)元的一個或兩個連接通路。這是不希望的,因為一通路的損失將排除模式分類的可能性。連接通路的配置是要獲得到達目標輸出神經(jīng)元的理想的連接數(shù)目。這一理想情況可由用戶通過一“調(diào)試算法目標參數(shù)”來定義。而且這些目標參數(shù)連接通路被近似地給定相等的有效值。此算法保證高有效值的神經(jīng)元不同時進行映射,而低有效值神經(jīng)元則被強制映射以防止它們傳播到目標輸出。
另外,調(diào)試算法映射還這樣限定(ⅰ)一映射功能所需的輸入神經(jīng)元的最小數(shù)量為一在輸入端為3到輸出端的理想數(shù)量(目標參數(shù))之間可調(diào)整的數(shù)量;
(ⅱ)一神經(jīng)元不能既起功能神經(jīng)元的作用又起一內(nèi)連神經(jīng)元的作用;
(ⅲ)一現(xiàn)有的功能神經(jīng)元只能學(xué)習(xí)一新的子模式,如果它足夠接近一已經(jīng)學(xué)得的子模式的話,這就防止了同一神經(jīng)元學(xué)習(xí)針對所有輸入類別的子模式。
“高有效值”和“低有效值”的定義,連同一可作調(diào)整的尺度,被用于到一映射功能的輸入的數(shù)量。對于一給定模式,目標輸出處的最大有效值為輸入層中起作用的神經(jīng)元的數(shù)目乘以輸入層的有效值(由Svalmin規(guī)定)。高有效值(MabSigval)是由作為目標輸出端的最大有效值以到達目標輸出的連接的理想數(shù)量(由目標參數(shù)規(guī)定)相除來確定的。每一層一映射功能所需的神經(jīng)元數(shù)目(由innum規(guī)定)為-3至目標參數(shù)的可調(diào)整的度量。
每一層依次在步驟TAL3中加以選擇,而利用步驟TAL4到TAL9加以調(diào)試。在步驟TAL4和TAL5中,調(diào)試程度標識欲建立于層n和層n+1之間的最佳連接類型。一旦層間所有的連接均被標識后,神經(jīng)元存貯器存貯單元的內(nèi)容即由步驟TAL6的MEMORYALLOCATION程序加以計算。然后步驟TAL7的RECALL程序被執(zhí)行來根據(jù)先前步驟TAL6中MEMORYALLOCATION程序所產(chǎn)生的神經(jīng)元存貯器存貯單元中存貯的值來指明第n+1層神經(jīng)元的激活狀態(tài)。
響應(yīng)第n層中學(xué)習(xí)得的模式,第n+1層中的神經(jīng)元激活。這些n+1層的激活神經(jīng)元依次起進入層n+2的輸入的作用。這一過程圍繞步驟TAL3至TAL9的循環(huán)重復(fù)到最后第二層。由于最后第二層中所有激活的神經(jīng)元后必須連接到目標輸出神經(jīng)元,因而無需計算一連接通路。步驟TAL10的調(diào)用程序?qū)δ繕诉M行查詢,以判定它是否辯識該最后第二層的模式。在步驟TAL11中還得到一相關(guān)值(CorrVal)以指明該模式被網(wǎng)絡(luò)識別的程度。目標輸出神經(jīng)元根據(jù)其激活狀態(tài)及該相關(guān)值,在步驟TAL12中被更新。接著輸入節(jié)點的有效值在步驟TAL13被饋送到目標輸出,并再次執(zhí)行調(diào)用(步驟TAL15),因為加權(quán)值更新有可能使得一先前未激活的目標輸出激活。最后,網(wǎng)絡(luò)中任何地點處的那些直接連接到目標輸出神經(jīng)元的神經(jīng)元(即沒有經(jīng)受過除目標處之外的任何映射功能的)均由檢驗連接功能的步驟TAL16所標識。
下面的描述證明在圖15的調(diào)試算法各個步驟中所用程序?qū)崿F(xiàn)的功能,參照描述和表示每一程序的段落和流程圖。
1.調(diào)試層的程序(TAL5)
調(diào)試層(TL)程序如圖17和18所示。首先,在步驟TL1,利用調(diào)用程序調(diào)用層n1(見后面圖37和段落21)以判別是否有任何神經(jīng)元已激活表明它們識別一子模式。由層n中神經(jīng)元到層n+1中神經(jīng)元的可能的輸入的數(shù)目在步驟TL2中進行計算。然后程序在兩個階段中執(zhí)行。
第一階段(TLS1)如圖17所示,確定該網(wǎng)絡(luò)是否已經(jīng)學(xué)會對特定神經(jīng)元的連接。對于每一第n層激活的神經(jīng)元,它1.利用步驟TL3和4,將所有下一層的激活神經(jīng)元標記為功能或內(nèi)連神經(jīng)元;
2.利用步驟TL4和TL5,依次取被標記為“功能”的神經(jīng)元并檢驗以判斷在當前的第n層的神經(jīng)元及被標記的功能神經(jīng)元之間是否存在有連接。如果存在有連接而且相關(guān)值大于弱激活值(用戶程確定),如步驟TL6所確定的,在步驟TL7中即調(diào)用MAP程序(見下面的圖20和段落3)。這一程序如果成功,即將當前第n層標明為已映射的,圍繞步驟TL8、TL9和TL10循環(huán)并重新進入步驟TL3。
3.如果當前第n層的神經(jīng)元未成功地映射,如步驟TL8中所檢測到的,則被標記的內(nèi)連神經(jīng)元就依次在步驟TL11、TL12和TL13中被檢驗,判斷在它與當前第n層神經(jīng)元之間是否存在有連接。如果這種連接存在而且相關(guān)值大于“弱激活值”,如步驟TL14中所檢測出的,就在步驟TL15調(diào)用-INTERCONNECT程序(見下面的圖19和段落2)。這一程序如果成功,即將當前的第n層神經(jīng)元標明為已被映射的,并重新經(jīng)由步驟TL9回到步驟TL3;
4.如果不存在有經(jīng)標記的功能或內(nèi)連第n+1層神經(jīng)元連接到當前的第n層神經(jīng)元,或者相關(guān)值足夠高,則第n層神經(jīng)元即由步驟TL16、TL17協(xié)同步驟TL13和TL14來檢測其獨特性。
如果已被學(xué)習(xí)的模式不是一新模式,像步驟TL18所檢測的,就可能是先前的學(xué)習(xí)功能僅僅辯識了當前的神經(jīng)元的一個連接。如果情況真是這樣,一UNIQUEMAP程序步驟TL19(見下面的圖22和段落5)將辯識此特殊連接。
“調(diào)試一層”程序階段1利用步驟TL9、TL10至TL13重復(fù)循環(huán),直到最后一級神經(jīng)元被處理,據(jù)此在步驟TL20階段2進入步驟TL21。
“調(diào)試一層”程序的第二階段(TLS2)如圖18所示,它第n層中那些未被第一階段標明為已被映射的神經(jīng)元進行再次評價。如果該模式不屬于一新類別,如步驟TL22中所檢測到的,那么就首先檢查噪聲,然后檢查獨特性噪聲-如果一未經(jīng)映射的第n層神經(jīng)元的有效值小于MaxNoise(用戶確定)而且一下一層神經(jīng)元正激活,如步驟TL23所檢測到的,那么就在步驟TL24將當前的第n層神經(jīng)元作為噪聲忽略掉;
獨特性-如果該未被映射的第n層神經(jīng)元不能作為噪聲忽略掉,步驟TL25就檢驗查明是否在步驟TL26和TL27中為此神經(jīng)元存在有一獨特連接。
對于一新模式,或者隨著上述兩個檢驗的失敗,步驟TL28運行以決定一新的連接通路。如果當前第n層神經(jīng)元的有效值大于“MaxSigVal”,像步驟TL28中所檢測到的,則調(diào)用TNTERCONNECT程序TL29(見下面圖19和段落2)如果該有效值小于“SigVal”,像步驟TL30所檢測到的,即在步驟TL31調(diào)用-LOOKAROUND程序(見下面圖22和段落5),以便尋求一至少帶有2個可用輸入的到第n+1層神經(jīng)元的連接。如果此有效值處于“SigVal”和“MaxSigVal”極限之間(步驟TL30無輸出),則在步驟TL32調(diào)用LOOKAROUN程序并要求當前的第n層神經(jīng)元由至少“innum”個可行的輸入連接到一第n+1層的神經(jīng)元,(由LOOKAROUND程序執(zhí)行的步驟示于圖22中并在下面的段落5中說明)。上述程序是針對第n層中的每一未加標明的神經(jīng)元進行的,圍繞步驟TL33和TL34作循環(huán)并重新進入TL22。
調(diào)試層程序階段2執(zhí)行的最后過程是計算第n+1層神經(jīng)元的有效值。這是通過步驟TL35中調(diào)用RIPPLESIGNIFICANCE程序來達到的(見圖36及下面段落20)。
下面的敘述是關(guān)于“調(diào)試所有層”算法和“調(diào)試一層”程序中所指明的每一程序協(xié)同由這些程序調(diào)用的各種程序所執(zhí)行的功能的概況。
2.連接程序(IP.圖19)最初,調(diào)用GUIDE程序(下面段落12說明,圖示于圖29中)以確定與其連接的最佳下一層神經(jīng)元。如圖找到一連接點(IP2),所有受此連接影響的矩陣參數(shù)均加以更新(IP3),并在步IP4通過CORRNUM程序(見圖31和段落14)決定相關(guān)值。然后執(zhí)行加權(quán)值UPDATE程序步驟IP5(段落11)如果在步驟IP2中沒有找到連接點,即在步驟IP6中報告一“映射失敗”差錯。兩種情況下神經(jīng)元均在步驟IP7標明為已被映射。如果神經(jīng)元映射失敗,它實際上被存貯為沒有連接點被映射的。這防止了神經(jīng)元在當不存在有通路時的繼續(xù)評值。
3.映射程序(MP)圖20所示的映射程序只有在當“調(diào)試一層”程序的第一階段中識別了一可能的下一層功能神經(jīng)元時才被調(diào)用。當前的第n層神經(jīng)元在步驟MP1中僅被作為一“映象”連接到下一層神經(jīng)元,如果其他第n層神經(jīng)元也被連接的話。因此,這些其他第n層神經(jīng)元經(jīng)過檢測來保證該映射的可能。這是在步驟MP2中通過RECORDCONNECTIONS程序(見圖25和段落8)實現(xiàn)的。例如該情況可能是這樣,3個神經(jīng)元可用于(以及被要求)進行映射,但這樣映射的實現(xiàn)將使得下一層功能神經(jīng)元的有效值超過所允許的最大值“MaxSigVal”。因此,此映射功能將是不允許的,而從步驟MP3經(jīng)“否”支路出來。
如果映射成功,所有為該連接影響的矩陣參數(shù)即在步驟MP4和MP5中加以更新,并通過CORRNUM程序(見圖31和段落14)確定相關(guān)值。然后執(zhí)行加權(quán)值UPDATE程序步驟MP6(見圖28和段落11),所有與此映射功能相關(guān)的第n值神經(jīng)元均標明為已被映射的。如果不可能將所需數(shù)量的第n層神經(jīng)元映射到第n+1層神經(jīng)元(步驟MP3的“非”支路),此映射功能即在步驟MP7終止,由RECORDCONNECTIONS程序(見段落8)所確定的連接均被取消。如果MAP程度被由LOOKAROUND程序(見圖22和段落5)步驟MP8所調(diào)用,則調(diào)用INTERCONNECT程序步驟MP9。
4.獨特映射程序(UMP)圖21說明這一程序,步驟UMP1和UMP2被執(zhí)行對當前第n層神經(jīng)元進行分析,對為之已經(jīng)學(xué)得的功能和內(nèi)連連接的數(shù)目進行計算。在步驟UMP3中檢測到的獨特功能連接使得MAP程序UMUMP4(見圖20和段落3)被調(diào)用,而在步驟UMP5中檢測到的獨特連接則促使在步驟UMP6調(diào)用INTERCONNECT程序(見圖19和段落2)。一神經(jīng)元決不會同時具有一獨特功能和一獨特連接連接兩者(因為否則它就不是獨特的)。
5.巡視程序(LAP)圖22中所示的巡視程序在為一特定的第n層神經(jīng)元尋找連接時被調(diào)用。如果可能的話最好執(zhí)行一MAP功能。如果第n層神經(jīng)元的有效值小于“SigVal”,就需要將至少兩個神經(jīng)元一齊映射,否則進行映射 需的神經(jīng)元的最小數(shù)量就由“innum”指定。如果此所需的神經(jīng)元數(shù)目對映射是可行的,如步驟LAP1中所認定的則就有不只一個下一層神經(jīng)元可能起功能神經(jīng)元的作用,步驟LAP2的“是”,而后即調(diào)用CORRELATE程序步驟LAP3(見圖39和段落13)。這一程序?qū)γ恳挥杵谥械南乱粚由窠?jīng)元計算相關(guān)值,這個相關(guān)值是如果對該神經(jīng)元的映射完成了的話就會生成。CORRELATE返回或者帶有最高相關(guān)值的下一層神經(jīng)元的““CorrVal”,或者一失敗指示,如步驟LAP4中所測試的那樣。如果成功(步驟LAP4的“是”),該下一層目標功能神經(jīng)元即被確認到步驟LAP5中的MAP程序(見圖20和段落3)。應(yīng)注意的是,和應(yīng)用MAP程序一樣,CORRELATE程序保證該映射過程可能在計算相關(guān)值前進行。這就保證了在當能滿足所需的輸入端數(shù)目的最佳功能神經(jīng)元存在時,只調(diào)用MAP程序。
如果不可能完成一映射功能(步驟LAP4輸出“非”,或步驟LAP2輸出“非”),則將當前的神經(jīng)元或者強制映射為“innum”等于2,或者被加以連接。如果當前第n層神經(jīng)元的有效值小于“SigVal”,則它為FORCEMAP程序步驟LAP7(見圖23及段落6)強制映射,否則調(diào)用INTERCONNECT程序(圖19),步驟LAP8。
6.強制映射程序(FMP)圖23中所示的這一程序在當一第n層神經(jīng)元的有效值太低而不允許它被連接到下一層時被加以調(diào)用。開始,最好執(zhí)行這一層其他神經(jīng)元的映射功能。
所有當前層中的相鄰神經(jīng)元均在步驟FMP1到FMP3中加以檢驗,如果存在任何非零有效值的神經(jīng)元的話,就在步驟FMP4中選取具有最低非零有效值的神經(jīng)元。然后在步驟FMP5,對可用的下一層功能神經(jīng)元檢驗兩個神經(jīng)元,并在步驟FMP6將那些對兩者共同的加以可用標記。在步驟FMP7調(diào)用CORRELATE程序(見圖30和段落13)以確定最佳下一層功能神經(jīng)元,而且如果成功的話(FMP8=是),即調(diào)用MAP程序以執(zhí)行圖23中的強制映射程序。
如果在當前層中不存在有相鄰神經(jīng)元(FMP3=非),或者CORRELATE(FMP8=非)或MAP程序(FMP10=非)不成功,當前的神經(jīng)元不必須在步驟FMP11中被強制進入下一層的剛才已為當前層學(xué)得一功能或連接的神經(jīng)元。下一層可用神經(jīng)元的有效值在步驟FMP12中加以計算,而在步驟FMP13中將神經(jīng)元按最低非零有效值第一的次序加以存貯。而后在步驟FMP114調(diào)用MAPINFORCENEURON程序(見圖24和段落7)。
7.被強制神經(jīng)元程序中的映射(MIFNP,圖24)只要有一可用的下一層非零有效值神經(jīng)元存在,如步驟MIFNP1中檢測得的,以及映射功能不違背“MaxSigVal”參數(shù),如步驟MIFNP2中檢測得的,該映射就在步驟MIFNP3中被確定。所有受該連接影響的矩陣參數(shù)均在步驟MIFNP4中予以更新,并通過CORRUM程序決定相關(guān)值(見圖31和段落14)。然后在步驟MIFNP5執(zhí)行加權(quán)值UPDATE程序(見圖28和段落11)。此時應(yīng)注意的是,由這一神經(jīng)元被強制進入的下一層神經(jīng)元所學(xué)得的先前的功能和連接現(xiàn)在被廢棄。結(jié)果,為第n+1層神經(jīng)元所產(chǎn)生的最近的加權(quán)值頁面被改寫。
8.記錄連接程序(RCP,圖25)這一程序的目的是將當前層神經(jīng)元連接到下一層功能神經(jīng)元而不違背“MaxSigVal”參數(shù)。由于下一層神經(jīng)元已經(jīng)被認定,在步驟RCP1中由當前層識別的9個可能輸入端的神經(jīng)元即在步驟RCP2中按最低非零有效量第一的次序加以分類。而后這些神經(jīng)元即在步驟RCP3中通過MAPINORDER程序中順序加以映射(見圖26及段落9),直到或者沒有另外可行的神經(jīng)元,或者到達有效值極限為止。應(yīng)注意,調(diào)用MAP程序?qū)⑷缤饎舆@整個過程的當前第n層的神經(jīng)元已被連接到該被識別的功能神經(jīng)元而加以認定。在步驟RCP4,RECORDCONNECTIONS將成功地連接的神經(jīng)元的數(shù)目返回給MAP程序;
9.按序映射程序(MIOP,圖26)可用于連接的當前層神經(jīng)元按照最低非零有效值第一的順序選擇(步驟MIOP1)。在步驟MIOP2調(diào)用MAPCONNECTION程序(見圖2)和段落10),如果成功即在步驟MIOP6將成功地連接的數(shù)目增量,以便返回到RECORDCONNECTIONS程序(見圖25和段落8)。
10.映射連接程序(MCP,圖27)映射連接將對MAP程序(見圖20和段落3)的調(diào)用加以區(qū)分,這種調(diào)用或者是試圖確定一連接是否已經(jīng)被學(xué)到,或者試圖確定在步驟MCP1,MCP2和MCP3中一新的連接是否有效。
首先在步驟MCP1中檢測下一層功能神經(jīng)元。如果它是激活的而且相關(guān)值大于“激活值”,則由“調(diào)試一層”的階段1中調(diào)用MAP程序。如果在步驟MCP2中檢測得一連接并不存在,必須向調(diào)用程序報告失敗。
如果或者已經(jīng)識別了一存在著的連接(步驟MCP2=“是”)或者欲學(xué)習(xí)一新的連接(步驟MCP1=非),就在步驟MCP3檢查有效值的有效性。在步驟MCP4還檢測映射過程未被MAP程序確定的情況。然后當前層神經(jīng)元即被確定為連接到下一層功能神經(jīng)元,相應(yīng)的參數(shù)在步驟MCP5和MCP6進行更新,并向MAPINORDER返回表示成功的“1”。
11.更新程序(UP)圖28所示的更新程序確定是否需要作加權(quán)值修改。如果一模式已經(jīng)以足夠高的相關(guān)值得到確認,就無需更新加權(quán)值(步驟UP1=“是”)。如果此相關(guān)值小于“激活值”(步驟UP1=“非”)但大于“弱激活值”(步驟UP2=“是”),則在步驟UP3生成針對當前子模式的加權(quán)值,但要通過MERGEWEIGHTS程序(見圖35和段落18)與下一存在的加權(quán)值頁面合并。如果相關(guān)值不足夠高,(步驟UP2=“非”),則在步驟UP4通過GENNEWWEIGHTPAGE程序(見圖32和段落15)產(chǎn)生一新的加權(quán)值頁面。通過步驟UP5的兩個更新功能選項很重要。
如果像而后傳播那樣,僅僅只有一個合并加權(quán)值便利條件存在的話,極其錯誤的數(shù)據(jù)將大大影響數(shù)值的分布,并降低系統(tǒng)的性能但是如果僅僅產(chǎn)生了新的加權(quán)值頁面的話,許多加權(quán)值頁面將表征非常類似的模式向系統(tǒng)存貯器將迅速耗盡。因為用戶確定參數(shù)“激活值”和“弱激活值”,因此可以隨意設(shè)立分類界限,并利用此二更新選項來提供較大程序的靈活性。
12引導(dǎo)程序(GP)圖29所示引導(dǎo)程序在當尋找最佳連接點中為一指定的當前層神經(jīng)元調(diào)用。最初在步驟GP2確定下一層能用于連接的節(jié)點。(這些首先在步驟TAL1被建表功能確定)。步驟GP2中取最佳節(jié)點功能針對目標輸出節(jié)點(最后一層輸出)分析可用的節(jié)點,并為了進行選擇而確定下一層哪一節(jié)點將提供最佳連接通路。一經(jīng)識別,這些節(jié)點即被按順序評估1.如果該最佳節(jié)點尚未被用作一功能或內(nèi)連神經(jīng)元(步驟GP3=“非”),現(xiàn)在它就可以被采用;
2.如果當前模式不是一新類別模式(步驟GP4=“非”),或者該當前神經(jīng)元被連接到一連接最佳節(jié)點(步驟GP5=“是”)(這就是說已由INTERCONNECT調(diào)用了GUIDE,而該最佳節(jié)點已被確定為內(nèi)連接神經(jīng)元),或者該當前神經(jīng)元應(yīng)被映射到一訪能最佳節(jié)點(步驟GP6)(這就是說由CORRELATE調(diào)用了GUIDE,而最佳節(jié)點已被確定為一功能節(jié)點),然后(a)檢查判定該最佳節(jié)點是否已連接到當前的神經(jīng)元(步驟GP7)。如果是這樣,它現(xiàn)在可以再被應(yīng)用;
(b)如果該最佳節(jié)點已經(jīng)被直接連接到目標輸出節(jié)點(由先前調(diào)用學(xué)習(xí)程序的檢驗連接所確定),有效值小于“MaxsigVal”,該最佳節(jié)點還未激活而且也未被映射,那么它就可以被應(yīng)用(步驟GP8和GP9);
3.如果對于所有可用的神經(jīng)元上述每一個步驟都失敗的話(步驟GP9=“非”及步驟GP11),就檢驗判定一個映象或者先前由這一層所學(xué)得的內(nèi)連功能能否加以訪問(步驟GP13)。這類似于FORCEMAP程序(段落6),但現(xiàn)在可能違背有效值規(guī)則(亦即有效值可能大于“MaxSigVal”);
4.如果上面沒有一個步驟產(chǎn)生一連接點,即報告一“映射失敗差錯”GPF。
引導(dǎo)程序?qū)ζ湔{(diào)用程序返回一成功的指示符GPS,而且如果成功的話,即識別下一層的連接用結(jié)點。
13相關(guān)程序(CP,圖30)利用步驟CP1、CP2或CP3和CP4到CP5和CP6返回到CP2的循環(huán)來檢測9個下一層的相鄰神經(jīng)元中的每一個的可用性和有效值,以便為當前的第n層神經(jīng)元提供連接點。如果沒有發(fā)現(xiàn)可用的神經(jīng)元,即在步驟CP7返回失敗RF。
在步驟CP8對這些可用的神經(jīng)元進行估值,以尋找最佳相關(guān)值,如果獲得了相等的情況(兩個或更多的神經(jīng)元具有相同的最佳相關(guān)值),如由步驟CP9至CP12所確定的那樣,就在步驟CP13調(diào)用GUIDE程序以決定最佳神經(jīng)元和被CORRELATE返回的“被引導(dǎo)的”神經(jīng)元RCV的相關(guān)值。
如果找到一最佳相關(guān)值RCV在步驟CP10中對之進行檢測以保證它超過最小相關(guān)值“MinCorr”(用戶規(guī)定)。這是重要的例如說,如果一神經(jīng)元已經(jīng)學(xué)習(xí)得一3個神經(jīng)元的子模式,并且如果這3個神經(jīng)元之一是起作用的,而另外2個則為“0”狀態(tài),就將產(chǎn)生一很小的相關(guān)值。采用具有這種相關(guān)值的神經(jīng)元是不希望的,因為它實際上將被強制學(xué)習(xí)一現(xiàn)有子模式的就表達形式。由于此新的子模式可能與該現(xiàn)有的子模式無關(guān),這種效應(yīng)將對系統(tǒng)是有害的。
如果該最佳相關(guān)值沒有超過“MinCorr”值(步驟CP10=“非”),那么就只有那些在步驟CP11所確定的給出零相關(guān)性的神經(jīng)元才作進一步考慮。如果步驟CP12中得到相等狀況(不只一個神經(jīng)元為零相關(guān)),即在步驟CP13中調(diào)用GVIDE以確定下一神經(jīng)元。此后,CORRELATE識別最佳預(yù)期的功能神經(jīng)元,并返回其相關(guān)值“CorrVal”RCV。
14,相關(guān)數(shù)程序(CMP)圖31所示的相關(guān)數(shù)程序利用步驟CMP1至CMP13計算為神經(jīng)元所存貯的加權(quán)值的每一頁面的相關(guān)值。在步驟CMP14中決定后,返回最佳相關(guān)值。
為了加權(quán)值的每一頁面在步驟CMP13進行更新,執(zhí)行步驟CMP2至CMP9(=“是”),及CMP12(=“非”)。在步驟CMP10,由所存貯的數(shù)值乘以起作用層的當前有效值,決定相關(guān)值。注意,這一過程將區(qū)分具有不同有效值的相同位模式。
15產(chǎn)生新加權(quán)值頁面程序(GNWP)圖32所示的產(chǎn)生新加權(quán)值程序的一給定的目標神經(jīng)元(學(xué)習(xí)由層n中的扇入神經(jīng)元映射的層n+1中的神經(jīng)元),生成一加權(quán)值頁面。在步驟GNWP1中,由GENERATEWEIGHTS程序(是圖33和段落16)產(chǎn)生加權(quán)值。然后在步驟GNWP2進行檢驗以判定(ⅰ)一新的加權(quán)值頁面是真正要求5的,(ⅱ)存在有備用加權(quán)值頁面(步驟GNWP3=′是′)。步驟GNWP2的′重新應(yīng)用′檢測保證在當執(zhí)行TRAINLAYER程序期間一神經(jīng)元沒有正在被重新應(yīng)用中。重新應(yīng)用可以發(fā)生在強制映射被實現(xiàn)時。如果一當前層神經(jīng)元被強制進入一在調(diào)試這一當前層期間已經(jīng)學(xué)習(xí)得一映射的下一層神經(jīng)元的話,那么該現(xiàn)有加權(quán)值頁面就必須被重新應(yīng)用。涉及到步驟GNWP4和GNWP5的USE矩陣,為每一神經(jīng)元存貯已經(jīng)被分配的加權(quán)值頁面的數(shù)目(“Usepjr”總是指向下一空的權(quán)值頁面)。在重新應(yīng)用的情況下,最后的加權(quán)值頁面必須被重新估價。
由于對允許的加權(quán)值頁面總的數(shù)目有一定的限制(用戶確定),因而必須進行檢測以保證它們沒有被全部應(yīng)用(步驟GNWP3)。如果存在有空的加權(quán)值頁面,則當前頁面的數(shù)目,“l(fā)astnum”,即由“useptr”和“useptrdated”設(shè)定。然后在步驟GNWP7執(zhí)行WEIGHTALLOCATION程序。如果不存在有空的加權(quán)值頁面,即在步驟GNWP通知用戶。
16.產(chǎn)生加權(quán)值程序(GNP,圖33)因為一般列于步驟GWP1的輸入層中暫停不用(′O′)的神經(jīng)元較之其他層要遠少得多,所以它在步驟GMP2設(shè)置有其自己的禁止參數(shù)“innibzero”。其他層靠設(shè)置于GWP3中的禁止參數(shù)“innibrest”運行。為之正產(chǎn)生權(quán)值的神經(jīng)元(目標神經(jīng)元)在步驟GWP4中選擇,它具有9個可能的扇入點因而即9個權(quán)值。9個扇至神經(jīng)元首先經(jīng)檢驗以判斷他們是否被映射到和連接到目標神經(jīng)元(步驟GNP5)。如果是這樣,就執(zhí)行步驟GNP6并產(chǎn)生一正的權(quán)值。一旦所有扇至神經(jīng)元通過步驟GWP5,GNP7和GNP8的循環(huán)都經(jīng)過正連接的檢驗,他們即通過步驟GNP10,GNP12和GNP13的循環(huán)再次查詢他們的負連接。對于任何未被映射和未激活(步驟GWP10=′是′)的扇至神經(jīng)元就在步驟GNP11中產(chǎn)生一負加權(quán)值。最后這些扇至神經(jīng)元通過步驟GWP15、GWP17和GWP18的循環(huán)檢驗暫停不用的連接。任何被映射了但未被連接,或者未被映射面激活的神經(jīng)元,均在步驟GNP16被指定一暫停不用的加權(quán)值。然后利用步驟GWP19至GWP29來計算這些負的和暫停不用的加權(quán)值。一旦所有連接均被確認(步驟GNP28=′是′),就在步驟GWP30利用圖34所示的NORMALISE功能對加權(quán)值作規(guī)格化處理。最后在步驟GWP31計算一閾值。注意,所有加權(quán)值均取決于用戶確定的參數(shù)。
17加權(quán)值配置程序(WAP)加權(quán)值配置程序僅僅是將由GENERATEWEIGHTS程序(見圖33和段落16)或MERGEWEIGHTS程序(見圖35和段落18)所產(chǎn)生的加權(quán)值存貯進由“Wgtptr”所指出的全局加權(quán)值矩陣中。每一神經(jīng)元具有很多個加權(quán)值頁面,每一加權(quán)值頁面均存貯有9個扇入加權(quán)值和由調(diào)用程序產(chǎn)生的閾值。
18加權(quán)值組合程序(MWP)圖35的加權(quán)值組合程序使得一現(xiàn)有的加權(quán)值頁面可能與一新的加權(quán)值頁面加以組合。這在當前正被學(xué)習(xí)的映射與一已經(jīng)學(xué)得的相似時就需要。其相似程度由相關(guān)值來確定。如果相關(guān)值小于“激活值”(良好相關(guān))但大于“弱激活值”(不良相關(guān)),就進行組合。
開始在步驟MWP1調(diào)用GENORATENEIGHTS程序(見圖33和段落16)來為目標神經(jīng)元所要學(xué)習(xí)的當前的映射產(chǎn)生一組新的加權(quán)值。而后利用步驟MWP5至MWP13來以新產(chǎn)生的加權(quán)值(Weights〔neuron〕)修正由步驟MWP2所選擇得的被目標神經(jīng)元存貯的最佳加權(quán)值頁面(BestWeight〔neuro〔neuron〕)(亦就是對這一映射給予最佳相關(guān)值的加權(quán)值頁面),并在步驟MWP14執(zhí)行WEIGHTALLOCATION程序(見圖34和段落17)以存貯新的值。因為加權(quán)值已經(jīng)被修改了網(wǎng)絡(luò)矩陣也必須修改。達到這一點的最容易的方法是,在步驟MWP15清除網(wǎng)絡(luò)矩陣,在步驟MWP16為當前的目標神經(jīng)元選擇第一加權(quán)值頁面,在步驟MWP17為被目標神經(jīng)元所存貯每一頁面的加權(quán)值利用步驟MWP18和MWP19調(diào)用MEMORYALLOC-ATION程序(段落19)。
19.存貯器配置程序(MAP)圖36所示存貯器配置程序?qū)⒄蜇摰臄?shù)值分配到NET矩陣(由“netptr”指定)以指明扇入模式相關(guān)優(yōu)良(正值)或不傳(負值)的地點。這些正和負值本身是用于估價的目的,對神經(jīng)元的實現(xiàn)為二進制SRAM并無任何限制。由于一開始在進行任何網(wǎng)絡(luò)調(diào)試之前該NET矩陣是被置0的,一個零值僅僅是指出沒有任何信息是已知的。實際上這與一負值相同。這樣,正值=′1′即為已被確認,而負和零值=′0′即為未經(jīng)確認。
在步驟MAP1,當前加權(quán)值頁面中的每一扇入神經(jīng)元的加權(quán)值(由USE矩陣給出)均被連同相應(yīng)的閾值從存貯器中取出。9扇入神經(jīng)元提供了29=512個存貯器地址單元。在步驟MAP3、MAP4、MAP5、MAP6、和MAP7的循環(huán)上,對0到511的每一地址計算出一活化水平。對于每一特定地址,將對應(yīng)于神經(jīng)元起作用(′1′)的位置加權(quán)值進行相加。例如,地址468=111010100,所以這一地址的活化水平即為活化水平=權(quán)〔9〕+權(quán)〔8〕+權(quán)〔7〕+權(quán)〔5〕+權(quán)〔3〕。如果此活化水平大于閾值,如步驟MAP8所檢測得的,則就確定了該目標神經(jīng)元將識別給予該地址的映射,并將一正值存到NET矩陣(步驟MAP9)。這一存貯的值與權(quán)值頁面相關(guān)連使得在進行評值期間,該設(shè)置能被追蹤回到一特定的學(xué)習(xí)過程。如果此NENET矩陣已經(jīng)是空的而經(jīng)頁面參數(shù)(用戶選定)修正過的活化水平大于閾值(由步驟MAP10檢定),則在步驟MAP11將一負值存入以指明缺少相關(guān)性。應(yīng)指出的是,負值決不能沖掉正值,雖然逆定理為真這就保證了,一旦學(xué)習(xí)得到后,一個模式將不會被“遺忘”。加權(quán)值組合措施使得有可能在原先的模式特別混亂的情況下進行修正。對于每一次映射均要通過步驟MAP12和MAP13的循環(huán)進行上述過程。
20有效值行被傳送程序(RSP)步驟TAL13和TL35中所利用的有效值行傳送程序,(舉例說)僅僅是將扇入神經(jīng)元的有效值加到一特定的下一層目標神經(jīng)元。只有那些實際連接到該目標的扇入神經(jīng)元才將他們的有效值加入。因而目標的有效值就是輸入有效值的和,這就保證了除非“映射失敗差錯”被報告了,輸出目標神經(jīng)元(最后一層目標)的有效值總是輸入層激活中的神經(jīng)元的有效值之和。
21調(diào)用層程序(RLP,圖37)由步驟RLP10逐個選擇的層中的每一神經(jīng)元,在這一程序每次被進入時,都對其輸入映象進行分析以產(chǎn)生一到NET矩陣的地址。激活狀態(tài)的9扇入神經(jīng)元中的任何一個(不受其是否被連接)均在該地址中對應(yīng)位置“1”。然后在為目標所指定的地址處就是否被確定為激活狀態(tài)而對NET矩陣進行查詢(步驟RLP4)。如果在NET矩陣中存放的是一零或負值,則該目標神經(jīng)元即為不起作用的,如步驟RLPS中所確定的。
調(diào)試算法概述由上所述可以看到,根據(jù)本發(fā)明對神經(jīng)網(wǎng)絡(luò)的調(diào)試是首先識別目標神經(jīng)元而后可允許的連接通路。每一狀態(tài)為1′的輸入神經(jīng)元被規(guī)定為具有一有效值,可隨意地設(shè)為10,所存其他神經(jīng)元的有效值均為零。有三種型式的連接(ⅰ)正連接;(ⅱ)負連接;(ⅲ)不作用連接。
正連接由′1′狀態(tài)的第n層神經(jīng)元到第n+1層的神經(jīng)元構(gòu)成。類似地,負連接由′0′狀態(tài)的第n層神經(jīng)元到第n+1層神經(jīng)元構(gòu)成。一不作用連接則發(fā)生在當一第n層神經(jīng)元在起作用(邏輯′1′)但卻不是用于正在被學(xué)習(xí)的模式的連接通路的組成部分的情況下。
將連接為“1”的神經(jīng)元的有效值乘以一正的加權(quán)參數(shù)作為給該正連接所給定的正加權(quán)值。負加權(quán)值的決定則是取所有到達該神經(jīng)元的正連接的正加權(quán)值之和再乘以一負的加權(quán)參數(shù)。這一值將根據(jù)到該神經(jīng)元的負輸入端的數(shù)目加以規(guī)格化處理。類似地,不作用加權(quán)值的決定是取正加權(quán)值之和乘以不作用加權(quán)參數(shù),并根據(jù)到該神經(jīng)元的不作用輸入端的數(shù)目進行規(guī)格化。所有加權(quán)值參數(shù)均由用戶確定。神經(jīng)元的加權(quán)值被存放在加權(quán)值頁面中。應(yīng)指出的是,此調(diào)試算法允許層n中的神經(jīng)元將自己連接到層n+1中的任一可用的神經(jīng)元。
一旦構(gòu)成了連接,一第n+1層神經(jīng)元的有效值就是連接到它的第n層神經(jīng)元的有效值之和。
一旦所有第n層的神經(jīng)元均被連接后,就計算第n+1層神經(jīng)元的激活值。這被稱做調(diào)用,而且是與測試網(wǎng)絡(luò)性能中采用的同一過程。第n層神經(jīng)元提供到第n+1層神經(jīng)元的地址,并且這些地址要被查詢。激活值作如下設(shè)定如存貯值>0,則激活值=-1;
如存貯值=0,則激活值=0;
如存貯值>1,則激活值=1;
如存貯值>10,則激活值=2。
值0和-1表示一不作用“0”神經(jīng)元狀態(tài),而“1”和“2”則表示一作用“1”神經(jīng)元。此二作用激活值被用于決定加權(quán)值頁面的運行。
相對應(yīng)于每一神經(jīng)元的加權(quán)值被存貯在加權(quán)值頁面中。在一新的模式為網(wǎng)絡(luò)學(xué)習(xí)時,它首先檢驗判定此新模式是否與它已經(jīng)學(xué)得的那些相類似。這是由將網(wǎng)絡(luò)作調(diào)用方式運行來達到的。輸入模式通過網(wǎng)絡(luò)進行對下一層神經(jīng)元起作用直到輸出層,在此目標可以激活或不激活。然后調(diào)試算法逐步地通過該網(wǎng)絡(luò),由輸入層開始。如果下一層中沒有神經(jīng)元激活(激活值為0或-1),則必須學(xué)習(xí)連接并存貯一新的加權(quán)值頁面。如果一下一層神經(jīng)元以激活值為1而激活,它即被定義為一弱激活。這表明一個輸入模式或者是雜亂的或者是不完全的,但被很弱地辯識了。此網(wǎng)絡(luò)將由加權(quán)值組合來響應(yīng),也就是該對一現(xiàn)有的加權(quán)值頁面加以更新使其適應(yīng)該雜亂的模式,并從而更新存貯于神經(jīng)元存貯器地址的值。如果一下一層神經(jīng)元以一激活值為2而激活,它即被定義為強激活。此輸入模式得到確認而無需更新任何加權(quán)值或神經(jīng)元存貯器。
一旦網(wǎng)絡(luò)學(xué)得了所需的模式,它即能以調(diào)用方式進行測試。將欲予識別的模式加到輸入層,起作用的神經(jīng)元即對下一層尋址。對被輸入層神經(jīng)元所指定的地址加以查詢,并將下一層神經(jīng)元的激活值設(shè)置為存貯于存貯器中的值。這一過程對每一層重復(fù)進行,直至達到輸出層。如果沒有任何輸出層神經(jīng)元激活,則該模式就沒有得到確認。如果一單個輸出神經(jīng)元激活的話,此輸入即屬于與該輸出的相關(guān)的模式類別。如果有兩個或更多輸出神經(jīng)元激活的話,則此輸入就被歸屬于多類別模式。這在它們自身可能是有用的,因它使得神經(jīng)網(wǎng)絡(luò)有可能檢驗多個模式及子模式。
權(quán)利要求
1.一用于一神經(jīng)網(wǎng)絡(luò)中的數(shù)字神經(jīng)元,此數(shù)字神經(jīng)元包括有一具有2n存貯單元的隨機存取存貯器,一個存貯單元針對每一個n輸入的編碼模式,每一存貯單元以神經(jīng)元的激活狀態(tài)(活動或不活動)被加以編程,這些激活狀態(tài)對應(yīng)于由一神經(jīng)網(wǎng)絡(luò)調(diào)試算法分配給針對一神經(jīng)網(wǎng)絡(luò)中的該神經(jīng)元的輸入編碼模式的突觸加權(quán)值,此神經(jīng)元起一查表裝置的作用,以為被送到神經(jīng)元輸入通路的每一個n位數(shù)字編碼模式從被該n位數(shù)字輸入編碼模式所尋址的該隨機存取存貯單元求取神經(jīng)元激活狀態(tài)。
2.按照權(quán)利要求1所述數(shù)字神經(jīng)元,其中該調(diào)式算法將神經(jīng)元存貯加權(quán)值映象與被安排進該神經(jīng)元隨機存取存貯器中的神經(jīng)元激活狀態(tài)公開地存貯。
3.按照權(quán)利要求1或2所述的數(shù)字神經(jīng)元,其中數(shù)字神經(jīng)元被編程安排將針對每一特定的輸入編碼組合執(zhí)行一相關(guān)功能或由連動能。
4.按照權(quán)利要求3所述數(shù)字神經(jīng)元,其中該調(diào)試算法將存貯器加權(quán)值映象分成為加權(quán)值頁面,每一神經(jīng)元隨機存取存貯器類似地以相應(yīng)的激活狀態(tài)加權(quán)值頁面加以安排,由此向使得一神經(jīng)元可根據(jù)被用作存貯器地址加給該神經(jīng)元的輸入編碼組合或存起一相關(guān)單元的作用,或者起一連內(nèi)單元的作用。
5.一數(shù)字神經(jīng)網(wǎng)絡(luò),包括有多個是有n輸入連接和一具有2n存貯單元的隨機存取存貯器的數(shù)字神經(jīng)元,該存貯單元每一個針對輸入連接狀態(tài)的每一可能的數(shù)字組合,用于存放對應(yīng)于被配置給該輸入連接狀態(tài)的突觸加權(quán)值的神經(jīng)元激活狀態(tài),并且其中該神經(jīng)網(wǎng)絡(luò)是多層的,面網(wǎng)絡(luò)中每一神經(jīng)元的輸出均被連接到該網(wǎng)絡(luò)的下一層中的一定數(shù)量的相鄰神經(jīng)元的輸入通路。
6.按照權(quán)利要求5所述數(shù)字神經(jīng)網(wǎng)絡(luò),其中每一神經(jīng)元的輸出均被連接到下一層中對應(yīng)神經(jīng)元的一輸入通路和該下一層中該對底神經(jīng)元上下緊鄰信號n的神經(jīng)元(如果存的話)的輸入通路,該網(wǎng)絡(luò)的每一輸入通絡(luò)類似地被連接到輸入層中對應(yīng)神經(jīng)元的一輸入通路和該輸入層中該對應(yīng)神經(jīng)元上下緊鄰的神經(jīng)元(如果有的話)的輸入通路。
7.按照權(quán)利要求6所述數(shù)字神經(jīng)網(wǎng)絡(luò),其中,某些神經(jīng)元與同一層的其他神經(jīng)元共同利用他們輸入的部分。
8.按照權(quán)利要求5、6或7所述數(shù)字神經(jīng)網(wǎng)絡(luò),由一軸均相等的組合式三維立方體矩陣構(gòu)成,每一數(shù)字神經(jīng)元是有9個輸入通路,這些數(shù)字神經(jīng)元的相互連接是,每一神經(jīng)元均連接到前一層中上、下和對應(yīng)的三個神經(jīng)元的輸出。
9.按照權(quán)利要求8所述數(shù)字神經(jīng)元網(wǎng)絡(luò),其中許多模塊可以互相連接組成一大的網(wǎng)絡(luò)。
10.按照權(quán)利要求9所述數(shù)字神經(jīng)網(wǎng)絡(luò),其中神經(jīng)元和每一立方體矩陣均采用集成電路技術(shù)制造。
11.一種數(shù)字神經(jīng)網(wǎng)絡(luò)的調(diào)試方法,該網(wǎng)絡(luò)由許多按規(guī)則的模式連接成多層布置的神經(jīng)元組成,其輸入層被連接到網(wǎng)絡(luò)的數(shù)字輸入通路此方法涉及到要為該網(wǎng)絡(luò)識別為一沒有重復(fù)過程的單一進程的模式的應(yīng)用。
12.按照權(quán)利要求11所述的方法,其中突觸加權(quán)值主要根據(jù)流通到每一種神經(jīng)元的信息設(shè)定。
13.按照權(quán)利要求12所述方法,其中多個輸入模式被應(yīng)用于對該網(wǎng)絡(luò)連接安排的模擬。而且僅對具有正(′1′)值的輸入進行處理以識別處于通向被指定輸出的通路上的神經(jīng)元。
14.按照權(quán)利要求13所述方法,其中一調(diào)試算法將網(wǎng)絡(luò)輸入通路神經(jīng)元到神經(jīng)元地連接通過被模擬的網(wǎng)絡(luò)直至到達所有的目標輸出,在每一階段,對出自可能的扇至點的一個神經(jīng)元加以查詢以驗證一神經(jīng)元是否已經(jīng)學(xué)到所需的功能,在沒有一已經(jīng)學(xué)習(xí)到該所需功能的神經(jīng)元時,對相鄰神經(jīng)元進行查詢?yōu)槊恳簧窠?jīng)元建立備用能量,具有最大備用能量的神經(jīng)元被編程來實現(xiàn)所需的功能。
15.按照權(quán)利要求14所述的方法,其中該被模擬網(wǎng)絡(luò)中每一神經(jīng)元都以突觸加權(quán)值加以編程以針對為該調(diào)試算法所確定的特定輸入模式執(zhí)行相關(guān)功能,而在欲將一神經(jīng)元映射進一新功能時,該調(diào)試算法即產(chǎn)生一新的加頁權(quán)值面。
16.按照權(quán)利要求15所述方法,其中每一神經(jīng)元含有能使每一神經(jīng)元代表其輸入的任何功能的激活狀態(tài)的多重頁面,在調(diào)試期間如果在到輸出神經(jīng)元的通路上沒有一個神經(jīng)元激活的話,就計算一新的加權(quán)值頁面并引入一新的激活狀態(tài)頁面,最少被利用的神經(jīng)元被指定以新的加權(quán)值,而此加權(quán)值頁面的長由經(jīng)指定的神經(jīng)元的輸入的復(fù)雜度決定。
17.按照權(quán)利要求16所述的方法,其中該調(diào)試算法對網(wǎng)絡(luò)中的連接作如下限制(ⅰ)一神經(jīng)元可以或者為一內(nèi)連神經(jīng)元,或者為一功能神經(jīng)元但決不能同是兩者;(ⅱ)連接應(yīng)當在輸出目標神經(jīng)元方面上建立;(ⅲ)一神經(jīng)元只能有一起作用的輸出連接到下一層,輸入連接和加權(quán)值被規(guī)定為一起作用的被連接的神經(jīng)元(正加權(quán)值)一起作用的來被連接的神經(jīng)元(不起作用的加權(quán)值),和一不起作用的神經(jīng)元(負加權(quán)值)。(ⅳ)一相關(guān)值被用以檢測在為當前的模式中是否存在有已經(jīng)學(xué)習(xí)得的子模式,如果此相關(guān)值足夠高,此子模式將被加到一現(xiàn)存組,如果此相關(guān)值不夠高,此子模式將被學(xué)習(xí)為此網(wǎng)絡(luò)的新模式。
18.按照權(quán)利要求17所述的方法,其中該調(diào)試算法為每一起作用神經(jīng)元決定哪一連接將提供到目標輸出神經(jīng)元的最佳路徑,該算法首先決定當前層中是否有足夠的神經(jīng)元能同時映射以執(zhí)行所需的功能,此映射功能確定下一層中哪一神經(jīng)元將提供到目標輸出神經(jīng)元的最佳路徑,如果一特性不能被映射,能引個別神經(jīng)元活動作業(yè)連接將保證,在隨后的層中神經(jīng)元將針對被被調(diào)試的這類模式形成一獨特的特性。
19.按照權(quán)利要求18所述的方法,其中映射操作被限制為需要在最后第二層中存在有許多起作用的神經(jīng)元來尋址輸出目標神經(jīng)元,依此來防止層中模式收斂太熱以降低數(shù)據(jù)壓縮,每一種神經(jīng)元均被指定了一確定流經(jīng)它的信息水平的有效值,一具有高有效值的神經(jīng)元將被防止在一先前階段進行映射,以便保持一給定層中的神經(jīng)元之間相對均勻的信息分亨,類似地,具有特別低存效值的神經(jīng)元將被強制映射到其他神經(jīng)元。
20.按照權(quán)利要求19所述的方法,其中高和低有效值的規(guī)定隨網(wǎng)絡(luò)的深度增加并由輸入層中的活動水平進行量度。
21.按照權(quán)利要求20所述方法,其中一相關(guān)值被用來決定加權(quán)值頁面的更新,如果當前模式與那些已被一特定神經(jīng)元學(xué)得的不相匹配就產(chǎn)生一新的加權(quán)值頁面,如果此相關(guān)值處于匹配和不匹配或值之間則將一新加權(quán)值頁面與最佳的現(xiàn)有加權(quán)值頁面加以組合,如果此相關(guān)值高于該匹配值就無需更新加權(quán)值而下一層神經(jīng)元就是有效的。
22.按照權(quán)利要求5至10所述數(shù)字神經(jīng)網(wǎng)絡(luò),利用權(quán)利要求11至19中任一個所要求的調(diào)試算法被加以編程。
23.一基本上如所列附圖中所示和說明的數(shù)字神經(jīng)元。
24.一如所列附圖中所示和說明的數(shù)字神經(jīng)網(wǎng)絡(luò)。
25.一如所列附圖中所示和說明的數(shù)字神經(jīng)網(wǎng)絡(luò)的調(diào)試方法。
全文摘要
一完善的模擬數(shù)字神經(jīng)元,增強的模擬神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)以及一簡調(diào)試工作的神經(jīng)網(wǎng)絡(luò)調(diào)試算法。此數(shù)字神經(jīng)元包括具有2n存貯單元(一位)的隨機存取存貯器的n位輸入一位輸出的裝置。由一網(wǎng)絡(luò)調(diào)試算法按神經(jīng)元激活狀態(tài),根據(jù)針對神經(jīng)網(wǎng)絡(luò)內(nèi)加的神經(jīng)元而分配到輸入編碼組合模式的突觸加權(quán)值加以編程。此數(shù)字神經(jīng)元起一查表裝置的作用,為每一加到其輸入通路的n位數(shù)字編碼模式。求取神經(jīng)元激活狀態(tài)。
文檔編號G06F15/18GK1076536SQ9310286
公開日1993年9月22日 申請日期1993年3月13日 優(yōu)先權(quán)日1992年3月13日
發(fā)明者肯尼斯·奧斯汀 申請人:皮爾金頓電子有限公司