《How Does Batch Normalization Help Optimization》論文筆記

《How Does Batch Normalization Help Optimization》

論文初略

論文地址: https://arxiv.org/...
該論文推翻了BN原論文認(rèn)為BN是因?yàn)闇p少了Internal Covariate Shift(ICS)的推論,給出了一個(gè)新的解釋,而是因?yàn)槊繉拥臉?biāo)準(zhǔn)化使得最后的loss函數(shù)變成了一個(gè)光滑的曲面而造成的最后性能提優(yōu)。ICS 即由于之前網(wǎng)絡(luò)層參數(shù)的更新,當(dāng)前從的輸入分布會(huì)不斷變化的現(xiàn)象。


本文的主要貢獻(xiàn):

  1. BN帶來(lái)的性能提升與ICS的減少無(wú)關(guān)。 并且在一定程度上認(rèn)為BN并不能減少 ICS。
  2. 發(fā)現(xiàn)了BN使得優(yōu)化問(wèn)題的曲面更加平滑,這使得梯度更容易預(yù)測(cè)以及允許更大范圍的學(xué)習(xí)率和更快的網(wǎng)絡(luò)vonvergence。證明了BN提升了模型的LOSS的Lipschitzness和梯度的Lipschitzness(β-smoothness)。
  3. 提出了除了BN外,還有其他方式同樣可以達(dá)到類似平滑效應(yīng),有些甚至效果更好。

BN層與ICS的實(shí)驗(yàn)分析

  • 實(shí)驗(yàn)一:樸素BN層帶來(lái)的實(shí)驗(yàn)結(jié)果分析
    實(shí)驗(yàn)設(shè)計(jì): 普通網(wǎng)絡(luò)及帶有BN層的網(wǎng)絡(luò)實(shí)驗(yàn)對(duì)比,觀察是否有BN層的網(wǎng)絡(luò)精確度結(jié)果及其抽樣的網(wǎng)絡(luò)層輸入分布對(duì)比。
    實(shí)驗(yàn)結(jié)果:由圖一可以看出,增加了BN層的VGG網(wǎng)絡(luò),其訓(xùn)練和測(cè)試準(zhǔn)確率都得到了提升,然而實(shí)驗(yàn)抽樣的某一次對(duì)應(yīng)得輸入分布可視化后,并沒(méi)有發(fā)現(xiàn)明顯的區(qū)別。
    實(shí)驗(yàn)分析:由此,作者開(kāi)始思考:1. BN的高效是否與ICS相關(guān)? 2. BN帶來(lái)的網(wǎng)絡(luò)輸入分布的穩(wěn)定是否減少了ICS?
    image.png
  • 實(shí)驗(yàn)二: Standard/Standard+BN/standard+BN+Noise三組對(duì)比試驗(yàn)
    為解答第一個(gè)問(wèn)題: 1. BN的高效是否與ICS相關(guān)?實(shí)驗(yàn)設(shè)計(jì)如下
    實(shí)驗(yàn)設(shè)計(jì):在BN層后增加一個(gè)非零均值,非單位方差的隨機(jī)噪聲,即每一次計(jì)算時(shí),該層都會(huì)有一個(gè)隨機(jī)的輸入方差偏移。由此,層間的每一個(gè)神經(jīng)元所接收到的輸入都是不同分布的。
    實(shí)驗(yàn)結(jié)果: 第二組和第三組模型準(zhǔn)確度相較于第一組標(biāo)準(zhǔn)模型都有提升。且第三組帶噪聲的BN網(wǎng)絡(luò),其層間輸入比另外兩組都不穩(wěn)定。
    實(shí)驗(yàn)分析:這些實(shí)驗(yàn)現(xiàn)象證明:BN帶來(lái)的性能提升并不是基于網(wǎng)絡(luò)層輸入穩(wěn)定性提升。
    image.png
  • 實(shí)驗(yàn)三:Standard/Standard+BN/DLN/DLN+BN 對(duì)比試驗(yàn)
    為解答第二個(gè)問(wèn)題: 2. BN帶來(lái)的網(wǎng)絡(luò)輸入分布的穩(wěn)定是否減少了ICS?實(shí)驗(yàn)設(shè)計(jì)如下。
    實(shí)驗(yàn)設(shè)計(jì):為了量化某一網(wǎng)絡(luò)層的參數(shù)對(duì)于之前網(wǎng)絡(luò)層中參數(shù)更新所必須“調(diào)整”的程度, 實(shí)驗(yàn)測(cè)量了在所有前面的網(wǎng)絡(luò)層參數(shù)更新前與更新后每一層網(wǎng)絡(luò)的梯度的變化,其符號(hào)定義為G^{'}G^{''}。為了排除非線性與梯度隨機(jī)性的影響, 這個(gè)對(duì)比試驗(yàn)同時(shí)在一個(gè)25層的深度線性網(wǎng)絡(luò)(DLN)上,以全部數(shù)據(jù)為一個(gè)batch進(jìn)行梯度下降。
    實(shí)驗(yàn)結(jié)果: 帶有BN層的網(wǎng)絡(luò),經(jīng)常呈現(xiàn)出ICS增加的現(xiàn)象,這種現(xiàn)象在DLN中更加顯著。由于DLN中沒(méi)有非線性激活層,那么本應(yīng)當(dāng)網(wǎng)絡(luò)層中不應(yīng)該出現(xiàn)ICS現(xiàn)象。然而增加BN層后,G^{'}G^{''}幾乎不相關(guān)。需要強(qiáng)調(diào)的是:帶有BN的網(wǎng)絡(luò)其效果仍然相較沒(méi)有BN層而言,提升非常的大。
    實(shí)驗(yàn)分析: BN層也許不能降低ICS。
    image.png

BN層原理分析

  • BN層的平滑效應(yīng)
    此處給出原文描述,也是該論文的核心結(jié)論。
    It reparametrizes the underlying optimization problem to make its landscape significantly more smooth. The first manifestation of this impact is improvement in the Lipschitzness of the loss function. That is, the loss changes at a smaller rate and the magnitudes of the gradients are smaller too. There is, however,an even stronger effect at play. Namely, BatchNorm’s reparametrization makes gradients of the loss more Lipschitz too. In other words, the loss exhibits a significantly better “effective” β-smoothness.
  1. Lipschitzness: 即系統(tǒng)具備L-Lipschitz穩(wěn)定的,具有以下性質(zhì)。
    系統(tǒng)輸入的變化導(dǎo)致系統(tǒng)輸出的變化波動(dòng)會(huì)被限制在一個(gè)常系數(shù)范圍內(nèi)。\left|f\left(x_{1}\right)-f\left(x_{2}\right)\right| \leq L\left\|x_{1}-x_{2}\right\|, for \ all \ x_1 \ and \ x_2
  2. 論文《Visualizing the loss landscape of neural nets》中提到: 在Vanilla深度神經(jīng)網(wǎng)絡(luò)(非BN網(wǎng)絡(luò))中, 損失函數(shù)不僅是非凸的,并且常有許多的"kinks", 平坦區(qū)域,和尖銳的極小值。這些都導(dǎo)致基于梯度下降的訓(xùn)練算法不穩(wěn)定,例如由于梯度爆炸或者梯度消失,由此其網(wǎng)絡(luò)對(duì)于學(xué)習(xí)率的選擇和網(wǎng)絡(luò)初始化高度敏感。
  3. BN帶來(lái)的Lipschitzness與其BN帶來(lái)網(wǎng)絡(luò)提升之間的關(guān)系:BN層使得梯度更加值得依賴和具有預(yù)測(cè)性的。提升后的梯度Lipschitzness讓我們放心地設(shè)置一個(gè)較大的學(xué)習(xí)步數(shù)且梯度方向維持不錯(cuò)的精確。這允許任何基于梯度的訓(xùn)練算法可以采取更大的學(xué)習(xí)率而不用擔(dān)心起遭遇梯度突然變好的危險(xiǎn),例如平緩區(qū)域會(huì)導(dǎo)致梯度消失,尖銳的局部最小值會(huì)導(dǎo)致梯度爆炸等等。由此,BN使得訓(xùn)練過(guò)程更快且對(duì)超參數(shù)選擇沒(méi)那么敏感。
  • 得出Lipschitzness平滑的實(shí)驗(yàn)基礎(chǔ)
    實(shí)驗(yàn)一:在訓(xùn)練過(guò)程的每一步中,計(jì)算當(dāng)前step損失函數(shù)的梯度,并得出損失沿著當(dāng)前step梯度方向的變化范圍分布,并繪制隨著step變化的曲線。沿著梯度的方向,vanilla網(wǎng)絡(luò)的loss分布一直有很大的變化波動(dòng)與范圍,尤其是在剛開(kāi)始訓(xùn)練的時(shí)候。
    實(shí)驗(yàn)二: 計(jì)算訓(xùn)練過(guò)程中某點(diǎn)的損失梯度與其原來(lái)梯度方向不同點(diǎn)梯度的L2距離的變化曲線??梢园l(fā)現(xiàn)兩者區(qū)別很大。
    實(shí)驗(yàn)三:對(duì)比兩者在沿著梯度方向上梯度在L2范數(shù)的最大差別,發(fā)現(xiàn)帶BN的網(wǎng)絡(luò)其平滑性更好。
    在DLN網(wǎng)絡(luò)中也進(jìn)行了這三個(gè)實(shí)驗(yàn)對(duì)比。兩次實(shí)驗(yàn)結(jié)果如以下兩圖所示。
image.png

image.png

探索其他正則方式是否有同樣的效果

實(shí)驗(yàn)內(nèi)容:在標(biāo)注網(wǎng)絡(luò)中添加不同的正則方式,例如L_n正則,n為1,2與無(wú)窮等。此時(shí),網(wǎng)絡(luò)層輸入?yún)?shù)分布不再是高斯分布。然后在這些網(wǎng)絡(luò)中都進(jìn)行了以上的實(shí)驗(yàn)。最終結(jié)果顯示: 模型的效果都得到了提升且Loss Lanscape都得到了平滑。因此,對(duì)于標(biāo)準(zhǔn)化方案的設(shè)計(jì)空間進(jìn)行探索可能是有價(jià)值的,因?yàn)樗梢詭?lái)更好的性能。具體實(shí)驗(yàn)結(jié)果可以去查看論文附錄。

image.png

作者提出的公理

接著,基于實(shí)驗(yàn)現(xiàn)象,作者總結(jié)了一部分基于經(jīng)驗(yàn)性質(zhì)的公式,相關(guān)信息請(qǐng)翻閱論文查看。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容