本文來自Mitchell Wortsman, Alvaro Herrasti, Sarah Pratt, Ali Farhadi 和 Mohammad Rastegari的文章《Discovering Neural Wirings》在不改變原文意思的基礎上,雷鋒網AI科技評論的編譯如下:
雷鋒網(公眾號:雷鋒網)導讀:在這篇文章中,討論了最近發表的關於發現神經元連線的論文中很有意思的研究(將在NeurIPS 2019上發表)。傳統意義上,人工神經網絡(ANN)的連接模式是人工定義的,或者說在很大程度上都限制了人工神經網絡的範圍。相反,我們放寬了層的典型概念範圍,以允許更大的可能連線空間。在訓練過程中,我們的人工神經網絡的連線不是固定的,也就是說當我們在學習網絡參數的同時,也學習了連接。
在我們的研究過程中,得出以下結論:在推理過程中訓練出一個小型的模型是有可能的,但是在訓練過程中仍然會被過度的參數化。將這種方法應用於稀疏神經網絡的發現,填補了神經結構搜索與稀疏神經網絡學習之間的空白。
移動下面的滑塊,查看在MNIST上對一個小型網絡進行不同時間段的訓練(即這裡的代碼)時,連線的變化情況。
在現代人工神經網絡問世之前,研究人員會人工設計好的特徵(高維向量表示)。現在已經可以通過ANNs學習良好的特徵,但必須指定ANN的體系結構。 因此,神經元結構搜索(NAS)最近大量的工作都集中在學習ANN的結構上。但是,NAS仍然是在一組人工設計的構建塊中進行搜索的,因此ANN連接在很大程度上仍然會受到限制。相比之下,RandWire通過考慮隨機接線的ANNs探索出了一組不同的連接模式。儘管隨機連線的神經網絡對NAS而言是具有競爭優勢的,但它們的連接在訓練過程中是固定的。
我們提出了一種在訓練過程中聯合學習ANN的參數和接線的方法。我們證明了我們的發現神經元連線(DNW)的方法優於許多人工設計和隨機連線的神經網絡。
人工神經網絡的靈感來源於動物大腦的生物神經網絡。儘管這兩種系統之間存在的基本差異性很大,但生物學上的啟發可能還是有用的。《自然通訊》(Nature Communications)最近發表的一篇文章(題為《純粹學習的批判以及人工神經網絡能從動物大腦中學到什麼》(the critical of pure learning and what artificial neural networks can learn from animal brains)認為,動物大腦的連通性能夠促進快速學習。因此,本文建議「將連線拓撲結構和網絡結構作為人工系統優化的目標」。「我們希望這項工作能為這個方向提供一些有益的步驟。
即使是重量不可知神經網絡的並行工作也強調了人工神經網絡連線的重要性。他們證明,給定的神經網絡連線可以有效地解決一些簡單的任務,而不需要做任何的訓練,解決方案已經被編碼在了連通性中。
現在,我們來描述前饋ANN的便捷抽象,也就是靜態神經圖(SNG)。我們的目標是學習SNG的最佳邊緣集。我們略讀下面的一些細節,你可以參考本文,儘管這種抽象應該會讓人有種熟悉的感覺。
SNG是一個有向非循環圖G,它由節點ν和邊ε組成。另外,每個節點υ都有輸出Zυ和輸入Iυ。輸入數據X通過一組指定的節點ν0導入網絡,而對於輸入節點υ∈ν或ν0是母本輸出的加權和。
每個節點的輸出通過參數化函數進行計算
邊緣權值WΥv和θυ是可學習的網絡參數。 然後通過一組指定的節點νE計算網絡的輸出。
放到一起會怎麼樣呢?
我們採用以下兩種策略來大規模發現連線:
為了進行均衡的比較,如果將MobileNet V1解釋為一連串的圖,我們認為其結構和邊數與MobileNet V1完全相同。通過學習連通性,我們可以在較低水平的計算環境下將ImageNet的精準度提高約10%。
在過去的幾年中,稀疏的神經網絡領域的研究工作取得了令人矚目的成就。在《彩票假說》中,弗蘭克(Frankle)和卡賓(Carbin)證明了密集的神經網絡包含了可以單獨有效訓練的子網絡。然而,他們發現這些所謂的中獎彩票形成的過程代價是及其高昂的,因為它首先需要一個密集訓練的網絡。在從零開始的稀疏網絡中,Dettmers和Zettlemoyer引入了稀疏學習,就是在保持稀疏權值的同時,只訓練一次神經網絡。
我們的工作是將神經結構搜索與稀疏神經網絡學習相結合。隨著NAS的限制越來越少,粒度越來越細,找到一個好的結構就如同找到一個完整圖的稀疏子網絡。
因此,我們可以將我們的算法用於發現神經元連線,並將其應用到訓練其他稀疏神經網絡的任務中。我們的方法不需要進行微調或重新訓練來發現稀疏的子網絡。這個觀點是由Dettmers和Zettelmoyer提出的,我們也想強調一下其中存在的一些區別。雖然我們很密集的向後臺傳送數據,但他們的研究工作可以加快訓練的速度。此外,他們的研究工作允許參數跨層重新分配,而我們認為每層都應該有固定的空間。最後 的結果還是他們的訓練效率更高,因為他們實際上將未使用的權值直接發送為零,而我們是繼續在向後臺傳遞的過程中更新它們。
我們將偏差和batchnorm保留在密集的位置上,並使用調整後的ResNet-50。 這反映了從零開始的稀疏網絡附錄C中的實驗設置。下圖說明了top-1的精度是如何隨稀疏度變化而變化的(卷積濾波器和線性權值的稀疏性,也就是0%的稀疏性對應於密集網絡)。該圖還顯示了另一種設置,其中第一個卷積層(參數<10k約佔整個網絡的0.04%)保持密集狀態。
為了生成上面的圖,我們僅考慮10%的倍數,其餘部分進行插值。 儘管我們在下面提供了ResNet-50的相關ImageNet Top-1精度指標,但很快就會在我們的Github上找到所有的模型和數字。
我們可以從這個結果中得出結論:即使生成的模型是稀疏的,也有可能在訓練期間實現過參數化的優勢。儘管我們在向前傳遞過程中僅使用一小部分權值,但是我們的網絡與大型網絡在初始化的時候的競爭力相差不多。
用我們的算法訓練稀疏神經網絡其實非常簡單。我們默認每個參數是一個邊,因此所有卷積都替換為以下的pytorch代碼:
下圖說明了這段代碼的工作方式。
在靜態和動態設置中,我們將用於發現神經元連線的算法應用於微小的(41k參數)分類器。
在這裡,我們簡要地說明一下,當確實發生邊交換的時候,在某些假定情況下這是有益的。想像一個靜態神經圖,其中在小部分的梯度更新之後,邊(i,k)替換了邊(j,k)。 我們可以證明,當學習速率α足夠小且節點狀態固定時,針對當前的 mini-batch進行處理,損耗就會減少。 我們在此處省略了一些細節,你可以參考論文,例如,我們還必須假設損失是Lipschitz連續的。本文還包括一般情況下的說明。
引用:
雷鋒網註:原文連結:https://mitchellnw.github.io/blog/2019/dnw/?from=singlemessage&isappinstalled=0
雷鋒網原創文章,未經授權禁止轉載。詳情見轉載須知。