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