安妮 郭一璞 發自 凹非寺
量子位 出品 | 公眾號 QbitAI
如何去評價一個神經網絡的泛化能力?
一篇出自比利時天主教魯汶大學的研究發表在了ICML 2019識別和理解深度學習現象Workshop上。
研究指出,網絡的泛化能力,可以通過“層旋轉”來評判。
所謂層旋轉,是指神經網絡中每一層的權重向量與初始化之間夾角餘弦的變化,被研究人員可以當成衡量泛化性能強弱的指標。
研究人員公佈了在訓練期間控制層旋轉工具的代碼,表示這項工作“可以大大減少當前調整超參數的難度”:
也就是說,可以通過最少的超參數調整,獲得最佳的神經網絡性能。
在Reddit論壇上,有人指出這是一項“超級有趣的實證結果”,也有人表示這項研究啟發出了眾多新思考。
層旋轉有什麼用
在論文Layer rotation: a surprisingly powerful indicator of generalization in deep networks?中,研究詳細解釋了層旋轉背後的探索之路。
神經網絡的泛化能力受訓練它的優化程序的影響,因此確定這個程序中哪些因素影響泛化是個重要問題。
在這篇論文中,研究人員提出了一種全新的算法:Layca((LAYer-level Controlled Amount of weight rotation),能夠直接控制神經網絡的優化算法通過每層網絡的學習速率參數,進而控制層旋轉。
也就是說,使用了Layca算法,可以通過它的學習速率參數,控制每一層網絡中每一步權重旋轉。
Layca算法的工作流程是下面這樣的:
研究人員表示,用這種新的算法,可以達到比較明顯的控制效果,同時,泛化能力也會產生巨大的差異,準確度差異達30%。
隨後,他們利用Layca,進一步對層旋轉架構進行研究,開發監測和控制層旋轉的工具。
研究人員採用SGD(隨機梯度下降)作為默認優化器,用Layca來改變相對轉速和全局旋轉速率值,分別對5種網絡架構和數據複雜性不同的神經網絡進行研究,它們分別為:
他們繪製出一張在不同層旋轉速率中層旋轉曲線(CFR)與相應測試精度(η)之間的關係。
在下圖中,橫軸代表迭代次數,縱軸代表夾角的餘弦,曲線顏色從淺到深代表網絡最後一層與第一層,最終結果如下:
可以看出,每層的層旋轉越大,神經網絡的泛化能力就越好。
由此看來,研究人員認為,層旋轉這個指標,可以用來直接來判斷網絡的泛化能力。
層旋轉的影響
之後,除了Layca,研究者們還用SGD做了類似的實驗。根據實驗結果,得出了幾個結論:
對於SGD學習率
學習率參數直接影響層旋轉速率,並影響更新的大小。
從下面五個任務中SGD訓練期間不同學習率對層旋轉曲線影響的實驗結果圖來看,測試精度隨著層旋轉而增加,到臨界點後開始減少。
對於權重衰減
權重衰減的範數會增加由給定訓練步驟引起的旋轉量,根據下面的實驗結果圖可以看出,所有層的權重在初始化時達到1的餘弦距離,並且得到的測試性能與使用Layca獲得的性能相當。
對於學習率預熱
高學習率會產生突然的層旋轉,不會影響訓練損失。
在學習率預熱方面,研究者用ResNet-110做實驗,在CIFAR-10數據集上訓練。使用的預熱策略是以小10倍的學習速率開始,線性增加逐漸達到指定的最終學習率。
結果如下圖:
SGD產生不穩定的層旋轉,始終轉化為無法提高訓練精度。使用預熱可以大大減少這些不穩定性,在Epoch超過25之前,訓練京都沒有顯著提高。
而Layca表現更優。歸功於Layca的控制能力,它穩定性較高,並且在不需要預熱的情況下達到高泛化性能。
對於自適應梯度法
研究者們基於ICLR 2015論文《A method for stochastic optimization》中的算法,在C10-CNN1任務上做了實驗。
根據第10,第50和第90百分位每個層的狀況可以看出,自適應梯度方法可能對層旋轉產生巨大影響,自適應梯度方法使用的參數級統計數據主要在層之間變化,而在層內可忽略不計。
另外,對比自適應梯度法在訓練前面的5個任務和自適應梯度法層旋轉與SGD誘導層旋轉的結果,可以發現,自適應梯度法能夠讓Layca達到SGD的泛化能力。
根據自適應梯度法、SGD+權重衰減和SGD+L2正則化在5個訓練任務上的表現得出,SGD可以通過Layca實現自適應梯度法的訓練速度。
對於中間層特徵
那麼,基於這些層旋轉和各屬性之間的聯繫,如何去具體的解釋層旋轉呢?
研究者們做了另一個實驗,在一個簡化的MNIST數據集上訓練多層感知機(MLP),從相同的初始化狀態開始,我們用Layca訓練四種學習率不同的網絡,讓四種不同的層旋轉配置均達到100%的訓練準確度,同時擁有不同的泛化能力。
將圖旋轉對中間層特徵的影響畫出來就會發現:
層旋轉不會影響學習哪些特徵,而是影響在訓練過程中學習的程度。層旋轉越大,特徵越突出,初始化可檢索的越少,而當層旋轉接近1的時候,網絡的最終權重消除了初始化的所有殘餘。
層旋轉與特徵學習程度之間的這種聯繫表明:完全學習中間層特徵對於達到100%的訓練準確性是不必要的,但訓練過程如果完全學習了中間層特徵,可以產生更好的泛化性能。
傳送門
Layer rotation: a surprisingly powerful indicator of generalization in deep networks?
https://arxiv.org/abs/1806.01603v2
代碼:
https://github.com/ispgroupucl/layer-rotation-paper-experiments
層旋轉工具:
https://github.com/ispgroupucl/layer-rotation-tools
— 完 —
誠摯招聘
量子位正在招募編輯/記者,工作地點在北京中關村。期待有才氣、有熱情的同學加入我們!相關細節,請在量子位公眾號(QbitAI)對話界面,回覆“招聘”兩個字。
量子位 QbitAI · 頭條號簽約作者
վ'ᴗ' ի 追蹤AI技術和產品新動態