如何使用AutoML方法學習到最合適的歸一化(Normalization)操作

大家好,歡迎來到專欄《AutoML》,在這個專欄中我們會講述AutoML技術在深度學習中的應用。這一期講述在歸一化機制中的應用。

數據經過歸一化和標準化後可以加快梯度下降的求解速度,這是Batch Normalization等技術非常流行的原因,它使得可以使用更大的學習率更穩定地進行梯度傳播,甚至增加網絡的泛化能力。

關於各類歸一化方法的解讀,可以閱讀我們的往期文章,【AI初識境】深度學習模型中的Normalization,你懂了多少? ,本篇我們關注如何使用AutoML技術學習到更合適的歸一化策略。

1 Switchable Normalization

現在我們在每一個網絡層中都使用同樣的歸一化,這是最優的配置嗎?顯然不是,因為實際應用中不同的問題就有它最合適的歸一化操作。比如RNN等時序模型,有時候同一個batch內部的訓練實例長度不一(不同長度的句子),則不同的時態下需要保存不同的統計量,無法正確使用BN層,只能使用Layer Normalization。對於圖像生成以及風格遷移類應用,使用Instance Normalization更加合適。對於Batch比較小的情況下,Group Normalization是一個替換的方案。

Switchable Normalization[1]的研究便是關注如何讓不同的網絡層學習到最適合該層的歸一化機制,方法就是在包含各類歸一化方法的池中進行選擇,然後用精度進行比較擇優。

如何使用AutoML方法學習到最合適的歸一化(Normalization)操作

上圖是對於各類任務中,學習到的最適合該方法的BN,IN,LN,GN的比例。

可以看到,對於分類,檢測任務主幹模型,BN更常用,對於LSTM任務,LN一家獨大,對於Image Style Transfer任務,IN一家獨大。

這便是Switchable Normalization(SN),具體的搜索過程大家可以閱讀原文細節以及開源的代碼。

2 SN與minibatch

眾所周知,minibatch size的變化對BN是有影響的,minibatch過小,均值和方差統計量的估計噪聲就過大,影響模型的泛化性能。IN,LN和GN計算統計量時雖然與minibatch無關,卻也失去了BN帶來的正則化能力,因此更容易產生明顯的過擬合。SN在任務中自適應地學習出最佳配置,從而使得模型對minibatch更加不敏感。

具體來說,minibatch越小,BN越不穩定,權重係數越小,IN和LN的權重係數則越大;minibatch越大,BN的權重係數就越大,反之IN和LN的權重係數越小。

如何使用AutoML方法學習到最合適的歸一化(Normalization)操作

上圖為不同minibatch下的權重係數的比例,括號中分別表示GPU數目,每個GPU的樣本數。可以看出,隨著minibatch的不斷減小,BN的權重越來越低。

3 SN的改進

針對SN中使用softmax進行重要性學習存在的冗餘計算問題,Sparse Switchable Normalization方法將softmax轉換成了稀疏的形式,對每一個歸一化層只選擇一個歸一化操作。

由於歸一化方法的不同在於用於計算歸一化的集合,所以往後的發展可能集中在如何選擇用於歸一化的集合,以及針對具體任務學習均值和方差,感興趣的可以繼續跟進。

[1] Luo P, Ren J, Peng Z, et al. Differentiable learning-to-normalize via switchable normalization[J]. arXiv preprint arXiv:1806.10779, 2018.

[2] Shao W, Meng T, Li J, et al. Ssn: Learning sparse switchable normalization via sparsestmax[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2019: 443-451.

[3] github鏈接

https://github.com/switchablenorms/Switchable-Normalization
https://github.com/switchablenorms/Sparse_SwitchNorm

總結

本次我們介紹了一種對各類歸一化方法進行自動學習的機制,它相比固定的配置歸一化方法更加靈活,也能取得更優的結果。

下期預告:AutoML在優化方法中的應用。


分享到:


相關文章: