谷歌力作:神經網路訓練中的Batch依賴性很煩?那就消了它!

視學演算法發表於2020-04-06

點選上方↑↑↑視學演算法”關注我

來源:公眾號 量子位 授權轉

再見了,批量依賴性(Batch Dependence)。

優化神經網路方法千千萬,批量歸一化(Batch Normalization,BN)就是其中之一。

這種方法可以說是非常成功,減輕了如何合理初始化神經網路這個棘手問題。可以成倍加快大型卷積神經網路訓練速度,也能大幅提升收斂後的分類準確率。

但樣本間的依賴性卻是個問題:

若是小批量(mini-batch)太小,或者樣本間存在相關性,就會對訓練產生影響。

雖然也有人提出了諸如批量再歸一化(Batch Renormalization)和群組歸一化(Group Normalization,GN)等方法,但要麼與大批量BN效能不匹配,要麼在小批量的BN仍表現出效能下降。

怎麼破?

那就直接消除批量依賴性

這是來自Google Research團隊的一篇力作,提出了濾波器響應歸一化(Filter Response Normalization,FRN)層,有效改善了上述問題。

谷歌力作:神經網路訓練中的Batch依賴性很煩?那就消了它!

這項研究的主要貢獻是如下三點:

1、FRN是一種歸一化方法,可以讓每個通道(channel)歸一化訓練的模型達到高精度。
2、閾值線性單元(Thresholded Linear Unit,TLU),是一個和FRN一起使用的啟用函式,即使在沒有任何批量依賴關係的大批量情況下,也比BN的效果要好。研究人員把這種組合稱作FRN層
3、在真實場景中,比較了各種歸一化方法在大型影像分類和物件檢測任務中的表現。

麥迪遜大學統計學助理教授、《Python機器學習》作者Sebastian Raschka也分享了這項研究,得到了網友較高的關注。

谷歌力作:神經網路訓練中的Batch依賴性很煩?那就消了它!

這條訊息釋出沒多久,便已經有了100多的分享和接近400的點贊。

接下來,就來看一下FRN層的廬山真面吧。

效果如何?

來看一下FRN層的效果。

實驗任務主要是影像分類和目標檢測,分別在ImageNet和COCO資料集上進行。

首先是影像分類的實驗結果。

谷歌力作:神經網路訓練中的Batch依賴性很煩?那就消了它!

表1 對於ResnetV2-50和InceptionV3,在ImageNet分類任務中,FRN層在批量大小方面優於BN和其他歸一化方法。

ImageNet分類資料集包含1000個類,研究人員對1.28M大小的影像進行了訓練,並對50K驗證影像進行結果報告。影像的大小為299X299。

與FRN層做比較的是一些常規的歸一化方法,包括批量歸一化(Batchnorm)、批量再歸一化(BatchRenorm)、群組歸一化(Groupnorm)、層歸一化(Layernorm)和例項歸一化(Instancenorm)。

從實驗結果可以看到,即使是在大批量規模的情況下,FRN的方法都優於其它主流的歸一化方法。

並且在ResnetV2-50和Incepetion V3上,都表現出了良好的效能優勢。這表明批量依賴性訓練對於高效能來說是不必要的

下圖展示了使用Resnet V2-50結構的各種歸一化方法的訓練和驗證曲線。

谷歌力作:神經網路訓練中的Batch依賴性很煩?那就消了它!

使用ResnetV2-50模型進行Imagenet分類的各種歸一化方法的訓練曲線和驗證曲線的比較。

不難看出,FRN層實現了更高的訓練和驗證精度,這表明去除隨機批量依賴性可以做到更簡、更優,從而使模型得到更好的訓練

接下來是在COCO資料集上的目標檢測任務

谷歌力作:神經網路訓練中的Batch依賴性很煩?那就消了它!

表2 在COCO資料集上的目標檢測任務結果。

研究人員使用80個物件類在COCO資料集上執行實驗。

從實驗結果中,不難看出,FRN層在所有批量大小上都優於其它方法。

值得注意的是,當BN在小批處理中表現出顯著的效能下降時,FRN表現出相對較小的效能下降,並且始終優於GN。

FRN層長什麼樣?

之前已經提到,FRN層是FRN和TLU的結合。所以,該方法的結構如下圖所示:

谷歌力作:神經網路訓練中的Batch依賴性很煩?那就消了它!

研究人員所提出的FRN層示意圖。

研究人員假設要處理的是前饋神經網路,在形狀為 B,W,H,C 的卷積運算區域4D張量X之後產生的濾波器響應。

其中,B是小批量的大小,W、H是map的空間範圍,C是卷積中使用的濾波器數。C也指輸出通道。

對於上述提出的歸一化方案,研究人員指出了幾點值得注意的地方:

1、與其他歸一化方案類似,濾波器響應歸一化消除了濾波器權重和預啟用的尺度效應(scaling effect)。
2、所提出方法的主要區別之一是,沒有在歸一化之前移除平均值。
3、這個歸一化方法是在每個通道的基礎上進行的。
4、雖然乍一看,FRN和之前有人提出的區域性響應歸一化(LRN)非常相似,但是LRN在相同的空間位置上對相鄰通道進行歸一化,而FRN則是對空間範圍進行全域性歸一化。

方法雖好,並不通用

雖然FRN層在實驗上取得了較大的進步,但網友也對此提出質疑。

谷歌力作:神經網路訓練中的Batch依賴性很煩?那就消了它!

作者僅報告了不超過32的批量處理大小。不知道它是否可與大型(常用)批量處理大小(64,128,256,512等)相提並論。

此方法不適用於非卷積運算,並且該運算的方差對輸出通道大小敏感。

資料集中的實驗非常有限。

當然,研究人員在論文中也提到,FRN層這個方法並不是通用的,例如,層歸一化(LN)在NLP任務中就非常好用。

其它領域中FRN層的表現,也是這項工作未來所要探索的內容。

那麼,谷歌這次提出的新方法,對你的研究有幫助嗎?

傳送門

論文:
https://arxiv.org/abs/1911.09737

Twitter:
https://twitter.com/rasbt/status/1200808727613452291

Reddit:
https://www.reddit.com/r/MachineLearning/comments/e4g50h/r_filter_response_normalization_layer_eliminating/

- END -

如果看到這裡,說明你喜歡這篇文章,請轉發、點贊掃描下方二維碼或者微信搜尋「perfect_iscas」,新增好友後即可獲得10套程式設計師全棧課程+1000套PPT和簡歷模板向我私聊「進群」二字即可進入高質量交流群。

掃描二維碼進群↓

谷歌力作:神經網路訓練中的Batch依賴性很煩?那就消了它!

谷歌力作:神經網路訓練中的Batch依賴性很煩?那就消了它!

谷歌力作:神經網路訓練中的Batch依賴性很煩?那就消了它!

在看 谷歌力作:神經網路訓練中的Batch依賴性很煩?那就消了它!

相關文章