當前位置:
首頁 > 最新 > 如何通過方差偏移理解批歸一化與Dropout之間的衝突

如何通過方差偏移理解批歸一化與Dropout之間的衝突

自批量歸一化提出以來,Dropout 似乎就失去了用武之處,流行的深度架構也心照不宣地在批歸一化上不採用 Dropout。而近日南京理工大學和清華大學的研究表明 Dropout 在網路測試的時候神經元會產生方差偏移,因而進一步分析與理解如何能避免方差偏移風險,並克服二者組合的局限性。

在批歸一化提出之前,Dropout 幾乎是所有的最優網路的標配,儘管很簡單,但它成功的幫助網路緩解了過擬合問題。Ioffe & Szegedy 於 2015 提出批歸一化(BN)技術,通過運用該技術,不僅可以加速現代模型的速度,而且可以以正則項的形式來提高基線水平。因此,批歸一化幾乎應用在近期所有的網路架構中,這說明了它強大的實用性和高效性。

但是,當 Dropout 和 BN 結合在一起時並不能獲得額外的增益。事實上,當一個網路同時使用這兩者時,甚至會得到更差的結果。Ioffe & Szegedy 於 2015 就已經認識到,BN 在某些情況下會削弱 Dropout 的效果。他們揭露了兩者之間的不相容性,從而推測 BN 提供了與 Dropout 相似的正則化功能。很多現代模型 如 Resnet,Densenet 等為這一觀點添加佐證,它們在只使用 BN 的情況下得到更好的結果。

但比較有意思的是 Wide ResNet(WRN),若我們在每個 Bottleneck 的兩個卷積層之間加上 Dropout,性能卻可以得到穩定的提升。因此到目前為止,以前的信息和線索仍不能解釋 Dropout 和 BN 之間的複雜關係。

本論文作者發現理解 Dropout 與 BN 之間衝突的關鍵是網路狀態切換過程中存在神經方差的(neural variance)不一致行為。試想若有圖一中的神經響應 X,當網路從訓練轉為測試時,Dropout 可以通過其隨機失活保留率(即 p)來縮放響應,並在學習中改變神經元的方差,而 BN 仍然維持 X 的統計滑動方差。這種方差不匹配可能導致數值不穩定(見圖 1 中的紅色曲線)。而隨著網路越來越深,最終預測的數值偏差可能會累計,從而降低系統的性能。簡單起見,作者們將這一現象命名為「方差偏移」。事實上,如果沒有 Dropout,那麼實際前饋中的神經元方差將與 BN 所累計的滑動方差非常接近(見圖 1 中的藍色曲線),這也保證了其較高的測試準確率。

圖 1:上:關於「方差偏移」的一個簡單數學說明。由於使用了 Dropout,X 在測試階段的方差不同於訓練階段。同時,BN 將該方差視作訓練中累計的通用統計數據。注意 p 代表 Dropout 的保留率。下:在 CIFAR100 上訓練 DenseNet 得到的方差偏移實驗統計數據。兩條曲線都是從同一訓練數據集中計算所得。「滑動變數i」是在整個學習過程中第 i 個 BN 層的累計滑動方差(取其平均值,而不是其向量),「實際變數i」代表在前饋推理過程中第 i 個 BN 層之前的神經響應實際方差。

本文作者從理論上證明了「方差偏移」要滿足兩個一般條件,並對上文提到的 Dropout 和 BN 之間的關係給出了令人滿意的解釋。除此之外,他們在 CIFAR10/100 數據集上進行的其它模型試驗(即 PreResNet、ResNeXt、DenseNet、Wide ResNet)證明了他們的預期想法。

由於結合二者造成性能損失的主要原因已經發現,作者們採用了兩種策略來探索如何打破這種局限。一個是在所有 BN 層後使用 Dropout,另一個就是修改 Dropout 的公式讓它對方差並不那麼敏感。因為這兩種方法都能降低方差偏移的風險,它們大多數情況下都能工作得很好,且能取得額外的提升。

論文:Understanding the Disharmony between Dropout and Batch Normalization by Variance Shift

論文地址:https://arxiv.org/pdf/1801.05134.pdf

摘要:本篇論文首先從理論上和實驗數據兩方面回答了「為何通常兩個強大的技術 Dropout 和 BN 結合起來用反而會造成性能損失?」理論上,我們發現,當模型狀態由訓練到測試時,Dropout 會使具體神經元的方差產生偏移。但是,BN 在整個測試階段都會保留它在訓練過程學習並累計得到的方差。當在 BN 之前應用 Dropout 時,該方差的不一致(我們將該現象命名為「方差偏移」)造成推理中的數值不穩定性,最終將導致更多的錯誤預測。儘管在 DenseNet、ResNet、ResNeXt 和 Wide ResNet 上做的實驗驗證了我們的發現。我們接下來探討修改 Dropout 的幾種策略,並通過避免方差偏移風險來克服二者組合的局限性。

圖 2:分析方差偏移的兩種情況。

圖 4:按列看,四個深度網路在 BN 層上的「方差偏移」統計數據可視化,每一行分別代表 1)Dropout 類型;2)Dropout 失活率;3)數據集,連同他們的測試錯誤率(第五行)。很明顯,當 Dropout 失活率≤ 0.5 時,WRN 受 Dropout 影響最小(即小的方差偏移),因此,它在將 Dropout 用於 BN 前甚至有些許提升。

圖 5:訓練輪數對應的準確率。藍線表示兩個模型沒有 Dropout 的訓練結果。紅線表示對應模型的有 Dropout 的訓練結果。所有準確率均由訓練集計算得出,且實線表示 train 階段結果,虛線表示評估階段結果。我們發現 Dropout 失活率為 0.5 的網路從訓練轉換成測試階段的準確率發生了顯著變化,同時網路的所有參數都是不變的,但是測試時應用了 Dropout 和 BN。

圖 6:DenseNet 在 CIFAR10 數據集上以0.5的隨機失活率訓練所產生的訓練模式和測試模式之間的神經元不一致響應的例子。樣本取自訓練集,模型參數不變時雖然它們在學習過程中被正確地分類,但在推理過程中卻被分錯類。方差偏移最終導致預測錯誤,由此降低模型性能。

表 4:在所有 BN 層後應用 Dropout 的錯誤率。所有數值取 5 次並行實驗(隨機初始輸入)的均值。

表 5:ImageNet 上表現頂尖的模型,在它們所有 BN 層後應用 Dropout 的錯誤率。所有數值取 5 次並行實驗(隨機初始輸入)的均值。我們可以看到持續的提升。

表 6:在 Dropout-(b) 上應用新型 Dropout(即 Uout)。所有數值取 5 次並行實驗(隨機初始輸入)的均值。

該論文的第一作者李翔在知乎專欄解釋了這篇論文的主要思想與發現,希望詳細了解該研究的讀者可查看原論文和作者專欄(https://zhuanlan.zhihu.com/p/33101420)。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 機器之心 的精彩文章:

從LeCun調職看Facebook劇變:為AI軍備競賽改變方向

TAG:機器之心 |