MIT新研究參透批歸一化原理
批歸一化(BatchNorm)是一種廣泛採用的技術,用於更快速、更穩定地訓練 深度神經網路 (DNN)。儘管應用廣泛,但我們並不瞭解 BatchNorm 有效的確切原因。很多人認為 BatchNorm 的成功與內部協方差偏移有關,但 MIT 的這項研究發現二者並無關係。研究者證明 BatchNorm 以一種基礎的方式影響著網路的訓練:它使相關優化問題的解空間更平滑了。這確保梯度更具預測性,從而允許使用更大範圍的學習率,實現更快的網路收斂。該研究提供這些發現的經驗性證明和理論依據。該論文已被 NIPS 2018 接收。
引言
在過去十年間,深度學習在計算機視覺、語音識別、機器翻譯以及遊戲等諸多困難任務中取得了令人矚目的進展。這些進展依賴於硬體、資料集以及演算法和架構技術等方面的重大突破。這些突破中最突出的例子是批歸一化(BatchNorm)[10]。
BatchNorm 是一種通過穩定層輸入的分佈來改善神經網路訓練的方法。它是通過引入額外的網路層來實現的,引入的層控制這些分佈的前兩個 moment(平均值和方差)。
BatchNorm 在實際應用中取得的成功無可爭議。目前無論是研究領域(超過 6000 次引用)還是在現實世界的設定中,大多數深度學習模型都預設使用 BatchNorm。令人震驚的是,儘管它很突出,但我們對 BatchNorm 的原理仍然知之甚少。事實上,現在有一些工作提供了 BatchNorm 的替代方案 [1, 3, 13, 31],但它們都沒能讓我們更多地理解這個問題。(最近 [22] 也提出了類似觀點。)
目前,對 BatchNorm 的成功和原始動機最為人所接受的解釋與內部協方差偏移(ICS)相關。通俗而言,ICS 指之前層的更新對層輸入分佈造成的改變。據推測,這樣的連續變化會對訓練產生消極影響。BatchNorm 的目標是減少 ICS,從而彌補該負面影響。
雖然這種解釋被廣泛接受,但似乎也沒什麼具體的證據可以支援這一論斷。尤其是,我們尚不瞭解 ICS 和訓練效能之間的聯絡。本文的主要目標是解決所有這些不足之處,該研究也帶來了一些驚人的發現。
本文的貢獻。該研究的出發點是證明 BatchNorm 的效能增益和內部協方差偏移的減少之間沒有任何聯絡,或者說這種聯絡非常脆弱。事實上,研究發現在某種意義上,BatchNorm 甚至可能不會減少內部協方差偏移。
之後研究者將注意力轉向確定 BatchNorm 成功的原因上。具體而言,研究者證明 BatchNorm 以一種基礎的方式影響著網路的訓練:它使相關優化問題的解空間更平滑了。這確保梯度更具預測性,從而允許使用更大範圍的學習率,實現更快的網路收斂。該研究提供這些發現的經驗性證明和理論依據。該研究證明了,在自然條件下,有 BatchNorm 的模型改善了損失和梯度的 Lipschitzness(也稱為 β 平滑)。
最後我們發現,這種平滑效果並不與 BatchNorm 唯一相關。其他一些自然歸一化技術都有相似的效果(有時甚至更強)。即這些方法都提供了類似的訓練效能提升。
我們認為,理解 BatchNorm 這樣的基本技術的原理可以使我們更好地理解神經網路訓練的潛在複雜性,並進一步促進演算法的進步。
批歸一化和內部協方差偏移
儘管 BatchNorm 在深度學習中具有基礎性和廣泛性,但我們對 BatchNorm 成功的原因還知之甚少 [22]。本研究的目的是解決這一問題。為此,我們先研究了 ICS 和 BatchNorm 之間的聯絡。具體而言,我們先在 CIFAR-10 [15] 上分別訓練了帶 BatchNorm 和不帶 BatchNorm 的標準VGG架構。如我們所料,圖 1(a)和(b)表明用 BatchNorm 訓練的網路在優化和泛化效能上都取得了顯著的改善。但圖 1(c)則呈現出了令人驚訝的發現。在這張圖中,我們通過繪製訓練中隨機輸入的分佈(按批次)可視化了 BatchNorm 可以在多大程度上穩定層輸入的分佈。令人驚訝的是,有和沒有 BatchNorm 的網路的分佈穩定性之間的差異(均值和方差的變化)微乎其微。這就提出了以下問題:
(1)BatchNorm 的效果是否和內部協方差偏移相關?
(2)BatchNorm 的層輸入分佈的穩定性是否可以有效減少 ICS?
圖 1:在 CIFAR-10 上訓練帶和不帶 BatchNorm 的標準VGG網路,比較它們的(a)訓練(優化)和(b)測試(泛化)效能(細節見附錄 A)。有 BatchNorm 層的模型的訓練速度是一致的。(c)儘管有 BatchNorm 的網路和沒有 BatchNorm 的網路效能之間的差距很明顯,但層輸入分佈的變化差異似乎不太明顯。(我們在此取樣了給定層的啟用值,並在訓練步驟中可視化了其分佈。)
圖 2:分佈穩定性和 BatchNorm 效能之間的聯絡:我們比較了沒有 BatchNorm 的VGG網路(Standard)、有 BatchNorm 的VGG網路(Standard+BatchNorm)和在 BatchNorm 層添加了顯式「協方差偏移」的VGG網路(Standard+「Noisy」BatchNorm)。在最後一種情況中,我們通過新增獨立於每個批歸一化啟用值的時變、非零均值和非單位方差噪聲引入分佈的不穩定性。儘管完全分佈不穩定,但「Noisy」BatchNorm 模型的效能幾乎與標準 BatchNorm 模型相當。我們取樣了給定層的啟用值並可視化了其分佈(參見圖 8)。
圖 3:在有 BatchNorm 層和沒有 BatchNorm 層的網路中測量 ICS。對於某一個層,我們測量之前層更新前後的梯度的餘弦值(理想情況是 1)和 l_2 差異(理想情況是 0)。儘管從準確率和損失上講有 BatchNorm 的模型表現更好,但有 BatchNorm 的模型和沒有 BatchNorm 的模型的內部協方差偏移情況差不多,甚至更差。(在訓練期間 BatchNorm 穩定得更快是引數收斂造成的。)
論文:How DoesBatch NormalizationHelp Optimization?
論文連結: ofollow,noindex" target="_blank">https://arxiv.org/pdf/1805.11604v3.pdf
摘要:批歸一化(BatchNorm)是一種廣泛採用的技術,用於更快速、更穩定地訓練 深度神經網路 (DNN)。儘管應用廣泛,但 BatchNorm 有效的確切原因我們尚不清楚。人們普遍認為,這種效果源於在訓練過程中控制層輸入分佈的變化來減少所謂的「內部協方差偏移」。本文證明這種層輸入分佈穩定性與 BatchNorm 的成功幾乎沒有關係。相反,我們發現 BatchNorm 會對訓練過程產生更重要的影響:它使優化解空間更加平滑了。這種平滑使梯度更具可預測性和穩定性,從而使訓練過程更快。
BatchNorm 為什麼有用?
BatchNorm 的平滑效果
圖 4:VGG網路的優化解空間分析。在特定的訓練步中,我們沿著梯度移動的方向測量損失的變化(陰影區域)(a)和梯度中 l2 的變化(b)。「effective」β 平滑 (c) 指的是梯度移動距離對應的最大(l_2範數)差異。所有這些指標在有 BatchNorm 的網路中都有了明顯的改善,這表示損失的解空間更加良好。
BatchNorm 是最好(唯一)的平滑解空間的方法嗎?
圖 5:l_p 歸一化技術的訓練效能評估。對這兩種神經網路而言,所有 l_p 歸一化策略的效能都和 BatchNorm 相當,甚至比 BatchNorm 更好。這表明用 BatchNorm 獲得的效能增益與分佈穩定性(控制均值和方差)無關。
圖 12:不同的 l_p 歸一化策略訓練的VGG網路的評估。