
語音播放文章內(nèi)容
由深聲科技提供技術(shù)支持
本文來自Mitchell Wortsman, Alvaro Herrasti, Sarah Pratt, Ali Farhadi 和 Mohammad Rastegari的文章《Discovering Neural Wirings》在不改變?cè)囊馑嫉幕A(chǔ)上,雷鋒網(wǎng)(公眾號(hào):雷鋒網(wǎng))AI科技評(píng)論的編譯如下:
雷鋒網(wǎng)導(dǎo)讀:在這篇文章中,討論了最近發(fā)表的關(guān)于發(fā)現(xiàn)神經(jīng)元連線的論文中很有意思的研究(將在NeurIPS 2019上發(fā)表)。傳統(tǒng)意義上,人工神經(jīng)網(wǎng)絡(luò)(ANN)的連接模式是人工定義的,或者說在很大程度上都限制了人工神經(jīng)網(wǎng)絡(luò)的范圍。相反,我們放寬了層的典型概念范圍,以允許更大的可能連線空間。在訓(xùn)練過程中,我們的人工神經(jīng)網(wǎng)絡(luò)的連線不是固定的,也就是說當(dāng)我們?cè)趯W(xué)習(xí)網(wǎng)絡(luò)參數(shù)的同時(shí),也學(xué)習(xí)了連接。
在我們的研究過程中,得出以下結(jié)論:在推理過程中訓(xùn)練出一個(gè)小型的模型是有可能的,但是在訓(xùn)練過程中仍然會(huì)被過度的參數(shù)化。將這種方法應(yīng)用于稀疏神經(jīng)網(wǎng)絡(luò)的發(fā)現(xiàn),填補(bǔ)了神經(jīng)結(jié)構(gòu)搜索與稀疏神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)之間的空白。
移動(dòng)下面的滑塊,查看在MNIST上對(duì)一個(gè)小型網(wǎng)絡(luò)進(jìn)行不同時(shí)間段的訓(xùn)練(即這里的代碼)時(shí),連線的變化情況。
為什么要連線?
在現(xiàn)代人工神經(jīng)網(wǎng)絡(luò)問世之前,研究人員會(huì)人工設(shè)計(jì)好的特征(高維向量表示)。現(xiàn)在已經(jīng)可以通過ANNs學(xué)習(xí)良好的特征,但必須指定ANN的體系結(jié)構(gòu)。 因此,神經(jīng)元結(jié)構(gòu)搜索(NAS)最近大量的工作都集中在學(xué)習(xí)ANN的結(jié)構(gòu)上。但是,NAS仍然是在一組人工設(shè)計(jì)的構(gòu)建塊中進(jìn)行搜索的,因此ANN連接在很大程度上仍然會(huì)受到限制。相比之下,RandWire通過考慮隨機(jī)接線的ANNs探索出了一組不同的連接模式。盡管隨機(jī)連線的神經(jīng)網(wǎng)絡(luò)對(duì)NAS而言是具有競(jìng)爭(zhēng)優(yōu)勢(shì)的,但它們的連接在訓(xùn)練過程中是固定的。
我們提出了一種在訓(xùn)練過程中聯(lián)合學(xué)習(xí)ANN的參數(shù)和接線的方法。我們證明了我們的發(fā)現(xiàn)神經(jīng)元連線(DNW)的方法優(yōu)于許多人工設(shè)計(jì)和隨機(jī)連線的神經(jīng)網(wǎng)絡(luò)。
人工神經(jīng)網(wǎng)絡(luò)的靈感來源于動(dòng)物大腦的生物神經(jīng)網(wǎng)絡(luò)。盡管這兩種系統(tǒng)之間存在的基本差異性很大,但生物學(xué)上的啟發(fā)可能還是有用的。《自然通訊》(Nature Communications)最近發(fā)表的一篇文章(題為《純粹學(xué)習(xí)的批判以及人工神經(jīng)網(wǎng)絡(luò)能從動(dòng)物大腦中學(xué)到什么》(the critical of pure learning and what artificial neural networks can learn from animal brains)認(rèn)為,動(dòng)物大腦的連通性能夠促進(jìn)快速學(xué)習(xí)。因此,本文建議“將連線拓?fù)浣Y(jié)構(gòu)和網(wǎng)絡(luò)結(jié)構(gòu)作為人工系統(tǒng)優(yōu)化的目標(biāo)”?!拔覀兿M@項(xiàng)工作能為這個(gè)方向提供一些有益的步驟。
即使是重量不可知神經(jīng)網(wǎng)絡(luò)的并行工作也強(qiáng)調(diào)了人工神經(jīng)網(wǎng)絡(luò)連線的重要性。他們證明,給定的神經(jīng)網(wǎng)絡(luò)連線可以有效地解決一些簡(jiǎn)單的任務(wù),而不需要做任何的訓(xùn)練,解決方案已經(jīng)被編碼在了連通性中。
靜態(tài)神經(jīng)圖(SNG):前饋ANN的便捷抽象
現(xiàn)在,我們來描述前饋ANN的便捷抽象,也就是靜態(tài)神經(jīng)圖(SNG)。我們的目標(biāo)是學(xué)習(xí)SNG的最佳邊緣集。我們略讀下面的一些細(xì)節(jié),你可以參考本文,盡管這種抽象應(yīng)該會(huì)讓人有種熟悉的感覺。
SNG是一個(gè)有向非循環(huán)圖G,它由節(jié)點(diǎn)ν和邊ε組成。另外,每個(gè)節(jié)點(diǎn)υ都有輸出Zυ和輸入Iυ。輸入數(shù)據(jù)X通過一組指定的節(jié)點(diǎn)ν0導(dǎo)入網(wǎng)絡(luò),而對(duì)于輸入節(jié)點(diǎn)υ∈ν或ν0是母本輸出的加權(quán)和。
每個(gè)節(jié)點(diǎn)的輸出通過參數(shù)化函數(shù)進(jìn)行計(jì)算
邊緣權(quán)值WΥv和θυ是可學(xué)習(xí)的網(wǎng)絡(luò)參數(shù)。 然后通過一組指定的節(jié)點(diǎn)νE計(jì)算網(wǎng)絡(luò)的輸出。
發(fā)現(xiàn)神經(jīng)元連線的算法
放到一起會(huì)怎么樣呢?
規(guī)模連線
我們采用以下兩種策略來大規(guī)模發(fā)現(xiàn)連線:
為了進(jìn)行均衡的比較,如果將MobileNet V1解釋為一連串的圖,我們認(rèn)為其結(jié)構(gòu)和邊數(shù)與MobileNet V1完全相同。通過學(xué)習(xí)連通性,我們可以在較低水平的計(jì)算環(huán)境下將ImageNet的精準(zhǔn)度提高約10%。
稀疏網(wǎng)絡(luò)?彩票?
Overparameterization?
在過去的幾年中,稀疏的神經(jīng)網(wǎng)絡(luò)領(lǐng)域的研究工作取得了令人矚目的成就。在《彩票假說》中,弗蘭克(Frankle)和卡賓(Carbin)證明了密集的神經(jīng)網(wǎng)絡(luò)包含了可以單獨(dú)有效訓(xùn)練的子網(wǎng)絡(luò)。然而,他們發(fā)現(xiàn)這些所謂的中獎(jiǎng)彩票形成的過程代價(jià)是及其高昂的,因?yàn)樗紫刃枰粋€(gè)密集訓(xùn)練的網(wǎng)絡(luò)。在從零開始的稀疏網(wǎng)絡(luò)中,Dettmers和Zettlemoyer引入了稀疏學(xué)習(xí),就是在保持稀疏權(quán)值的同時(shí),只訓(xùn)練一次神經(jīng)網(wǎng)絡(luò)。
我們的工作是將神經(jīng)結(jié)構(gòu)搜索與稀疏神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)相結(jié)合。隨著NAS的限制越來越少,粒度越來越細(xì),找到一個(gè)好的結(jié)構(gòu)就如同找到一個(gè)完整圖的稀疏子網(wǎng)絡(luò)。
因此,我們可以將我們的算法用于發(fā)現(xiàn)神經(jīng)元連線,并將其應(yīng)用到訓(xùn)練其他稀疏神經(jīng)網(wǎng)絡(luò)的任務(wù)中。我們的方法不需要進(jìn)行微調(diào)或重新訓(xùn)練來發(fā)現(xiàn)稀疏的子網(wǎng)絡(luò)。這個(gè)觀點(diǎn)是由Dettmers和Zettelmoyer提出的,我們也想強(qiáng)調(diào)一下其中存在的一些區(qū)別。雖然我們很密集的向后臺(tái)傳送數(shù)據(jù),但他們的研究工作可以加快訓(xùn)練的速度。此外,他們的研究工作允許參數(shù)跨層重新分配,而我們認(rèn)為每層都應(yīng)該有固定的空間。最后 的結(jié)果還是他們的訓(xùn)練效率更高,因?yàn)樗麄儗?shí)際上將未使用的權(quán)值直接發(fā)送為零,而我們是繼續(xù)在向后臺(tái)傳遞的過程中更新它們。
我們將偏差和batchnorm保留在密集的位置上,并使用調(diào)整后的ResNet-50。 這反映了從零開始的稀疏網(wǎng)絡(luò)附錄C中的實(shí)驗(yàn)設(shè)置。下圖說明了top-1的精度是如何隨稀疏度變化而變化的(卷積濾波器和線性權(quán)值的稀疏性,也就是0%的稀疏性對(duì)應(yīng)于密集網(wǎng)絡(luò))。該圖還顯示了另一種設(shè)置,其中第一個(gè)卷積層(參數(shù)<10k約占整個(gè)網(wǎng)絡(luò)的0.04%)保持密集狀態(tài)。
為了生成上面的圖,我們僅考慮10%的倍數(shù),其余部分進(jìn)行插值。 盡管我們?cè)谙旅嫣峁┝薘esNet-50的相關(guān)ImageNet Top-1精度指標(biāo),但很快就會(huì)在我們的Github上找到所有的模型和數(shù)字。
我們可以從這個(gè)結(jié)果中得出結(jié)論:即使生成的模型是稀疏的,也有可能在訓(xùn)練期間實(shí)現(xiàn)過參數(shù)化的優(yōu)勢(shì)。盡管我們?cè)谙蚯皞鬟f過程中僅使用一小部分權(quán)值,但是我們的網(wǎng)絡(luò)與大型網(wǎng)絡(luò)在初始化的時(shí)候的競(jìng)爭(zhēng)力相差不多。
用我們的算法訓(xùn)練稀疏神經(jīng)網(wǎng)絡(luò)其實(shí)非常簡(jiǎn)單。我們默認(rèn)每個(gè)參數(shù)是一個(gè)邊,因此所有卷積都替換為以下的pytorch代碼:
下圖說明了這段代碼的工作方式。
發(fā)現(xiàn)動(dòng)態(tài)神經(jīng)圖(DNG)的神經(jīng)連線
在靜態(tài)和動(dòng)態(tài)設(shè)置中,我們將用于發(fā)現(xiàn)神經(jīng)元連線的算法應(yīng)用于微小的(41k參數(shù))分類器。
證明過程
在這里,我們簡(jiǎn)要地說明一下,當(dāng)確實(shí)發(fā)生邊交換的時(shí)候,在某些假定情況下這是有益的。想象一個(gè)靜態(tài)神經(jīng)圖,其中在小部分的梯度更新之后,邊(i,k)替換了邊(j,k)。 我們可以證明,當(dāng)學(xué)習(xí)速率α足夠小且節(jié)點(diǎn)狀態(tài)固定時(shí),針對(duì)當(dāng)前的mini-batch進(jìn)行處理,損耗就會(huì)減少。 我們?cè)诖颂幨÷粤艘恍┘?xì)節(jié),你可以參考論文,例如,我們還必須假設(shè)損失是Lipschitz連續(xù)的。本文還包括一般情況下的說明。
引用:
雷鋒網(wǎng)注:原文鏈接:https://mitchellnw.github.io/blog/2019/dnw/?from=singlemessage&isappinstalled=0