大多數(shù)人工神經(jīng)網(wǎng)絡(luò)忽略了生物神經(jīng)網(wǎng)絡(luò)的尖峰特性,這使得簡化底層模型以及諸如反向傳播等學(xué)習(xí)技術(shù)成為可能。但是,這樣做是否違背了生物神經(jīng)網(wǎng)絡(luò)最核心的原則了呢?在大多數(shù)人工神經(jīng)網(wǎng)絡(luò)模型中,激活只是與神經(jīng)元本身相關(guān)的實(shí)數(shù)值。然而,這并不是生物神經(jīng)網(wǎng)絡(luò)中的實(shí)態(tài)。當(dāng)一個神經(jīng)元達(dá)到閾值,并且有一個確切的時間點(diǎn)與之相關(guān)時,就會發(fā)生激活。而這里的前提條件是,在激活之前,其他幾個輸入激活已經(jīng)被觸發(fā)了。以下面這樣一個事件驅(qū)動的神經(jīng)網(wǎng)絡(luò)為例,神經(jīng)元代表單詞“the”,則代表字母“t”、“h”和“e”的神經(jīng)元需要首先激發(fā),然后才能激活代表單詞“the”的神經(jīng)元。發(fā)生這種情況時,就會有激活鏈接(activation-links)將單個字母神經(jīng)元的激活與單詞“the”的神經(jīng)元激活聯(lián)系起來。這些激活鏈接對應(yīng)于已被激活的神經(jīng)元突觸。特別之處在于,它們可以將所有激活都限定在輸入數(shù)據(jù)范圍內(nèi)。單詞“the”可能在給定的文本中出現(xiàn)數(shù)百次,但是激活鏈接可以精確引用其中的任何一個激活。在本文中,我將談一談激活鏈接的另外兩個重要功能。首先,激活鏈接可用于表示輸入數(shù)據(jù)中對象(例如單詞或短語)之間的關(guān)系。在之前的文章《On integrating symbolic inference into deep neural networks》中,我討論過這一點(diǎn)。然而,當(dāng)時的方法仍然需要對神經(jīng)模型進(jìn)行一些額外的擴(kuò)展,比如激活中的位置槽(position slots)和突觸之間的聯(lián)系。此外,沒有一個簡單的方法來為這些關(guān)系鏈制定一個適當(dāng)?shù)挠?xùn)練機(jī)制。其次,激活鏈接能夠使歧義信息在文本中同時被評估。在《On adding negative recurrent synapses to a neural network》一文中,我描述了如何使用二叉搜索樹系統(tǒng)地搜索給定文本的不同解釋。但是,新的疑問產(chǎn)生了,對于這個評估來說,搜索樹真的有必要使用嗎?1增加關(guān)系神經(jīng)元在前面表示關(guān)系的模型中,我們可以看到位置槽被用來確定每次激活的開始和結(jié)束位置,并且突觸之間的關(guān)系鏈接(relation-links)被用來確保字母以正確的順序出現(xiàn)。如果要去掉位置槽和關(guān)系鏈接,有沒有方法將它們表示為規(guī)則神經(jīng)元?因而,我們需要采取的第一步是添加一些神經(jīng)元來表示字母之間的關(guān)系。如下圖所示:這里我們有一個關(guān)系輸入神經(jīng)元,僅當(dāng)神經(jīng)元“t”和“h”的兩個輸入字母激活連續(xù)發(fā)生時,它才會被激活。在前面的模型中,這種關(guān)系信息是通過槽位置之間的關(guān)系隱性給出的。而現(xiàn)在我們有一個神經(jīng)元明確地表示這個信息。值得注意的是,激活鏈接是該表示的組成部分。由于關(guān)系神經(jīng)元只是一個輸入神經(jīng)元,所以突觸不用來計算關(guān)系激活的激活值。到目前為止,我們只有網(wǎng)絡(luò)的輸入層,但是如何將單詞“the”的神經(jīng)元與該輸入層進(jìn)行匹配呢?我們需要一些方法來取代突觸之間的關(guān)系。只有一個神經(jīng)元很難做到這一點(diǎn),但如果我們拆分神經(jīng)元,為之前的每個突觸添加一個新神經(jīng)元,會怎么樣呢?這些新神經(jīng)元代表單詞“the”的模式中出現(xiàn)的特定輸入字母,如“t”。這種網(wǎng)絡(luò)的模型如下圖所示:藍(lán)色的激活鏈接來自正向復(fù)發(fā)性突觸( the positive recurrent synapses),這意味著它們最初被認(rèn)為是完全活躍的。為了保持激活的關(guān)系完整性,我們需要確保激活不會任意鏈接到任何輸入。例如,如果單詞“the”的各個字母屬于不同的單詞,這就沒有意義。要實(shí)現(xiàn)這一點(diǎn),添加到激活的任何輸入鏈接必須與此激活的其他鏈接之一共享激活源。如果查看激活“the”-“h”,我們可以看到它有激活“t”、“h”、“the”-“t”和“the”作為連接各個輸入鏈接的共同激活源。通過輸入鏈接,激活“the”-“h”驗(yàn)證輸入字母“h”的激活是否存在,激活“the”-“t”是否存在,以及是否存在將這兩個輸入綁定在一起的關(guān)系激活,從而將字母“t”與整個單詞的模式相關(guān)聯(lián)。一旦一個單詞被識別,另一個神經(jīng)元就可以代表與前一個或下一個單詞的關(guān)系。這就是我們識別更大的模式(如短語)所需的。2使用元神經(jīng)元捕捉激活的動態(tài)結(jié)構(gòu)現(xiàn)在你可能會認(rèn)為,每個音節(jié)、每個單詞或每個短語都需要一次又一次地訓(xùn)練大量的神經(jīng)元和突觸,這意味著大量的訓(xùn)練數(shù)據(jù)。事實(shí)上,并非如此。使用《Using meta-neurons to learn facts from a single training example》一文中描述的元神經(jīng)元,可以用很少的示例訓(xùn)練一個新詞。這些元神經(jīng)元可以捕捉我們激活的動態(tài)結(jié)構(gòu),并將其存儲為新的記憶。在這個過程中,新的神經(jīng)元和新的突觸會產(chǎn)生。換句話說,這種機(jī)制能夠?qū)⒃凇肮ぷ饔洃洝敝斜憩F(xiàn)為激活和激活鏈接的知識轉(zhuǎn)移到由神經(jīng)元和突觸組成的“長期記憶”中。因此,不需要單獨(dú)的知識庫來存儲信息。3同時跟蹤所有分支解釋的傳遞當(dāng)負(fù)向復(fù)發(fā)性突觸(negative recurrent synapses)被添加到神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)中時,神經(jīng)網(wǎng)絡(luò)獲得了極大的靈活性。這對于許多現(xiàn)實(shí)世界的推理至關(guān)重要。因?yàn)樗鼈兡軌蚴咕W(wǎng)絡(luò)內(nèi)產(chǎn)生相互排斥的狀態(tài)。發(fā)生這種情況時,輸入數(shù)據(jù)的可能解釋會產(chǎn)生分支。許多傳統(tǒng)人工智能研究都關(guān)注于搜索這些類型。例如,語法分析樹在非常有限的語法域中搜索。問題在于,解析結(jié)果不應(yīng)僅取決于語法信息,還應(yīng)取決于文本中包含的各種其他信息。此外,歧義不僅存在于句法層面,也存在于語義或語用層面。在之前的工作中,我使用二叉搜索樹來找到全局最優(yōu)解。然而,這種方法存在一些問題。首先,人腦似乎不太可能執(zhí)行類似的搜索。其次,通過將搜索路徑上的權(quán)重相加并選擇權(quán)重最高的路徑,在網(wǎng)絡(luò)本身的體系結(jié)構(gòu)之外發(fā)生了一種信息的反向傳播,這似乎是不正確的。那么,另一種選擇是什么呢?可以同時跟蹤所有這些分支解釋的傳遞嗎?這里的前提條件是不能混淆這些不同的解釋。因此,在一個分支中推斷的激活對另一個分支應(yīng)該是不可見的。然而,由于鏈接激活期間需要共同的激活源,因而我們可以簡單地檢查是否進(jìn)入了另一個分支。即便有了在不同解釋中傳遞的所有激活,我們?nèi)匀恍枰獙Σ煌慕忉屪龀鲞x擇和決定,這個決定不一定是二元的,它可能是一種概率。這種方法的一個很大的好處是,我們現(xiàn)在可以在此位置做出決定。這意味著這些決定應(yīng)該受到未來結(jié)論結(jié)果的影響。前面提到的在搜索過程中的信息反向傳播在某種形式上仍然是必要的,但有一種更簡單、更優(yōu)雅的方式來實(shí)現(xiàn)這一點(diǎn):簡單地使用正向復(fù)發(fā)性突觸來做到這一點(diǎn)。這使得推理鏈中的早期階段可以獲知隨后得出的結(jié)論。舉個例子,請看上面的網(wǎng)絡(luò)圖。這里有兩個相互排斥的神經(jīng)元A和B,它們通過抑制性神經(jīng)元和負(fù)向復(fù)發(fā)性突觸相互抑制。現(xiàn)在,如果我們將一個激活輸入到輸入神經(jīng)元IN中,我們將在神經(jīng)元A和B中產(chǎn)生激活。因?yàn)檫@兩個神經(jīng)元互相排斥,所以分支發(fā)生時有兩組激活,其中激活A(yù)或激活B被抑制。從這一點(diǎn)開始,網(wǎng)絡(luò)將同時產(chǎn)生輸入數(shù)據(jù)的兩種相互排斥的解釋。這與使用一階邏輯規(guī)則和非單調(diào)邏輯進(jìn)行推理的正向鏈?zhǔn)綄<蚁到y(tǒng)(forward-chaining expert-system)非常相似。當(dāng)然,這也意味著我們會遇到相同的問題——將這些規(guī)則堆疊在一起時出現(xiàn)的組合爆炸。但與基于邏輯的二元系統(tǒng)不同,神經(jīng)網(wǎng)絡(luò)憑借其帶有權(quán)重的突觸,為這個問題提供了一個優(yōu)雅的解決方案。在訓(xùn)練期間,我們可以簡單地懲罰被其他更有可能的解釋抑制的過度激活。這里的抑制性神經(jīng)元是分離的,這意味著一旦它的一個輸入被激活,它就會被激發(fā)。抑制性神經(jīng)元的目的是防止必須連接所有相互排斥的興奮性神經(jīng)元。4與其他神經(jīng)網(wǎng)絡(luò)比較在處理文本或圖像數(shù)據(jù)時,每個神經(jīng)元需要多次激活,這一點(diǎn)也被其他神經(jīng)網(wǎng)絡(luò)體系結(jié)構(gòu)(如LSTM,長短時記憶神經(jīng)網(wǎng)絡(luò))所認(rèn)識到。它們通過重復(fù)復(fù)制整個網(wǎng)絡(luò)來解決問題,代價是每個神經(jīng)元所需的固定激活次數(shù)導(dǎo)致了僵化。對于文本中需要處理的所有不同類型的信息,如字符、音節(jié)、單詞、短語、句子、段落等,缺乏最佳的標(biāo)記化水平,因此,每個神經(jīng)元的激活數(shù)量需要取決于數(shù)據(jù),而不是網(wǎng)絡(luò)的架構(gòu)。5處理因果關(guān)系的機(jī)制事件驅(qū)動的神經(jīng)網(wǎng)絡(luò)有一個處理因果關(guān)系的簡單機(jī)制。干預(yù)當(dāng)然是不可能的,因?yàn)榫W(wǎng)絡(luò)只觀察,但它可以得出結(jié)論,如果激活A(yù)發(fā)生在激活B之后,A很可能不是B的原因。這一特點(diǎn)可以用來減輕從A到B的突觸權(quán)重。6神經(jīng)網(wǎng)絡(luò)架構(gòu)的新型定義方式大多數(shù)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)是由神經(jīng)元如何相互連接的拓?fù)浣Y(jié)構(gòu)定義的。相反,我認(rèn)為這里描述的神經(jīng)網(wǎng)絡(luò)類型應(yīng)該從一張白板開始,只包含原始的輸入神經(jīng)元。接著,在訓(xùn)練過程中,某些輸入神經(jīng)元會一次又一次地同步激活。這種共同的激活隨后可以用來誘導(dǎo)和訓(xùn)練新的興奮性神經(jīng)元。隨著時間的推移,越來越多的興奮性神經(jīng)元在經(jīng)過訓(xùn)練后,其中的一些會變得有相似之處。所謂相似性,指的是這些神經(jīng)元共享共同的輸入突觸,或者與特定的其他神經(jīng)元共享。這些相似的興奮性神經(jīng)元可以與它的抑制性神經(jīng)元一起聚集成一個元神經(jīng)元(meta-neuron)。隨后,抑制性神經(jīng)元充當(dāng)整個興奮性神經(jīng)元組的類別神經(jīng)元。正如你所看到的,這種神經(jīng)網(wǎng)絡(luò)的架構(gòu)并不是由一組預(yù)定義的神經(jīng)元之間的連接給出的,而是通過不同類型的神經(jīng)元和突觸的規(guī)范來定義。7結(jié)論綜上,激活鏈接有兩個重要的功能:一是貢獻(xiàn)鏈接輸出激活的激活值,二是將激活與輸入數(shù)據(jù)中所呈現(xiàn)的對象進(jìn)行綁定。選自:towards data science編譯:網(wǎng)易智能參與:nariiy