lgg7深度详细参数_深度学习平均场理论第七讲:Batch Normalization会导致梯度爆炸?...
前言
Batch Normalization (BN)對于深度學習而言是一項非常重要的技術。盡管BN在網絡訓練的過程中表現力非常強大,但是大家始終沒有一個很好的理論上的清晰理解。今天我們就試圖解讀這篇從平均場理論出發研究BN的論文:
A Mean Field Theory of Batch Normalization?openreview.net研究對象
我們考慮全連接網絡上加上Batch normalization技術:
其中
, 。 的取值范圍為 ,其中B就是mini-batch的數量。對于參數
以及 ,這篇文章設定為一個常數:平均場處理
和之前我們討論的全連接網絡的平均場理論稍有不同的是,BN的平均場場理論需要處理的pre-activation(
)的個數為B個。這是由于BN技術是和mini-batch綁定的造成的。因此從數學角度,我們需要考慮更加復雜的情況。而解決這個更加復雜的情況也是這篇文章的主要貢獻之一。這里我把詳細的數學細節略去,只講主要結論。
通過理論計算BN網絡初始化時候的梯度信息,我們發現梯度在BN網絡中會發生梯度爆炸。
實驗分析
(1)梯度爆炸問題
關于梯度爆炸的結論,我們需要通過實驗驗證。如上圖所示,縱坐標就是衡量梯度大小的norm,而橫坐標對應網絡的深度。不同的顏色為不同的B值。
的確,從圖中的顯示,會發生梯度爆炸。盡管提升B的值會改善,但是由于理論獲得的梯度爆炸的速率為
,所以不可以通過提升B而徹底解決這個問題。(2)網絡的可訓練深度
盡管,我們發現了初始化情況下會發生梯度爆炸,但是這不一定意味網絡不可以訓練。于是我們做起了每篇平均場都會做的一個實驗:
老規矩,白色虛線為理論預言而紅色熱圖為真實實驗。果不其然,平均場理論對于可訓練深度的預言一直都很準,初始化時候的梯度爆炸的確會影響實驗,可以訓練的層數非常有限。
(3)BN到底行不行
我們知道我們在前面將兩個重要的參數設定成常數:
然而在實際實驗中,這兩個參數是參與訓練的。也就是說,我們需要研究不同
情況下的可訓練性問題:從上面這張圖可以看出來,其實是
通過梯度爆炸限制了網絡的可訓練深度。通過調節兩個參數是可以大大提升網絡可訓練的深度。因為真實BN在訓練過程這連個參數會一直變化,但我們至少可以推測,對于BN網絡的訓練,梯度爆炸不一定是個問題。討論
這篇文章關于梯度爆炸影響BN的結論在其特定的語境是成立的,但是我更認為BN不太受梯度爆炸的影響。文章將調整參數歸結于對于BN的改進,這也是一個特定語境成立的結論。這篇文章可能不符合我們對于BN常規的認知,但是我們不能否定這篇文章的理論貢獻。
總結
以上是生活随笔為你收集整理的lgg7深度详细参数_深度学习平均场理论第七讲:Batch Normalization会导致梯度爆炸?...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python设置路径_Python探索之
- 下一篇: 轻量级3d模型查看器_耐能取得两项软件著