0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

BatchNorm是一種旨在通過固定層輸入的分布來改善神經(jīng)網(wǎng)絡(luò)訓(xùn)練的技術(shù)

nlfO_thejiangme ? 來源:未知 ? 作者:李倩 ? 2018-07-03 14:37 ? 次閱讀

由于BatchNorm可以加速訓(xùn)練并獲得更加穩(wěn)定的結(jié)果,近年來成為了一項(xiàng)在深度學(xué)習(xí)優(yōu)化過程中被廣泛使用的技巧。但目前人們對(duì)于它是如何在優(yōu)化過程中起作用的還沒有達(dá)成共識(shí)。MIT的研究人員從優(yōu)化過程中對(duì)應(yīng)空間的平滑性這一角度為我們帶來的全新的視角。

在過去的十年中,深度學(xué)習(xí)在計(jì)算機(jī)視覺語音識(shí)別、機(jī)器翻譯和游戲博弈等眾所周知的各種艱巨任務(wù)中都取得了令人矚目的進(jìn)步。這些進(jìn)步離不開硬件、數(shù)據(jù)集、算法以及網(wǎng)絡(luò)結(jié)構(gòu)等方面重大進(jìn)展,批標(biāo)準(zhǔn)化/規(guī)范化(Batch Normalization,簡(jiǎn)稱BatchNorm)的提出更是為深度學(xué)習(xí)的發(fā)展作出了巨大貢獻(xiàn)。BatchNorm是一種旨在通過固定層輸入的分布來改善神經(jīng)網(wǎng)絡(luò)訓(xùn)練的技術(shù),它通過引入一個(gè)附加網(wǎng)絡(luò)來控制這些分布的均值和方差。BatchNorm可以實(shí)現(xiàn)深度神經(jīng)網(wǎng)絡(luò)更快更穩(wěn)定的訓(xùn)練,到目前為止,無論是在學(xué)術(shù)研究中(超過4,000次引用)還是實(shí)際應(yīng)用配置中,它在大多數(shù)深度學(xué)習(xí)模型中都默認(rèn)使用。

盡管BatchNorm目前被廣泛采用,但究竟是什么原因?qū)е铝怂@么有效,尚不明確。實(shí)際上,現(xiàn)在也有一些工作提供了BatchNorm的替代方法,但它們似乎沒有讓我們更好地深入理解該問題。目前,對(duì)BatchNorm的成功以及其最初動(dòng)機(jī)的最廣泛接受的解釋是,這種有效性源于在訓(xùn)練過程中控制每層輸入數(shù)據(jù)分布的變化以減少所謂的“Internal Covariate Shift”。那什么是Internal Covariate Shift呢,可以理解為在神經(jīng)網(wǎng)絡(luò)的訓(xùn)練過程中,由于參數(shù)改變,而引起層輸入分布的變化。研究人員們推測(cè),這種持續(xù)的變化會(huì)對(duì)訓(xùn)練造成負(fù)面影響,而BatchNorm恰好減少了Internal Covariate Shift,從而彌補(bǔ)這種影響。

雖然這種解釋現(xiàn)在被廣泛接受,但似乎仍未出現(xiàn)支持的具體證據(jù)。尤其是,我們?nèi)圆荒芾斫釯nternal Covariate Shift和訓(xùn)練性能之間的聯(lián)系。在本文中,作者證明了BatchNorm帶來的性能增益與Internal Covariate Shift無關(guān),在某種意義上BatchNorm甚至可能不會(huì)減少Internal Covariate Shift。相反,作者發(fā)現(xiàn)了BatchNorm對(duì)訓(xùn)練過程有著更根本的影響:它能使優(yōu)化問題的解空間更加平滑,而這種平滑性確保了梯度更具預(yù)測(cè)性和穩(wěn)定性,因此可以使用更大范圍的學(xué)習(xí)速率并獲得更快的網(wǎng)絡(luò)收斂。

作者證明了在一般條件下,在具有BatchNorm的模型中損失函數(shù)和梯度的Lipschitzness(也稱為β-smoothness)得到了改善。最后,作者還發(fā)現(xiàn)這種平滑效果并非與BatchNorm唯一相關(guān),許多其他的正則化技術(shù)也具有類似的效果,甚至有時(shí)效果更強(qiáng),都能對(duì)訓(xùn)練性能提供類似的效果改善。

研究人員表示深入理解BatchNorm這一基本概念的根源有助于我們更好地掌握神經(jīng)網(wǎng)絡(luò)訓(xùn)練潛在的復(fù)雜性,反過來,也能促進(jìn)廣大學(xué)者們?cè)诖嘶A(chǔ)上進(jìn)一步地研究深度學(xué)習(xí)算法。

作者探討了BatchNorm,優(yōu)化和Internal Covariate Shift三者之間的關(guān)系。作者在CIFAR-10數(shù)據(jù)集上分別使用和不使用BatchNorm來訓(xùn)練標(biāo)準(zhǔn)的VGG網(wǎng)絡(luò),如上圖顯示用BatchNorm訓(xùn)練的網(wǎng)絡(luò)在優(yōu)化和泛化性能方面都有著顯著改進(jìn)。但是,從上圖最右側(cè)我們發(fā)現(xiàn)在有和沒有BatchNorm的網(wǎng)絡(luò)中,分布(均值和方差的變化)的差異似乎是微乎其微的。那么,由此引發(fā)以下的問題:

1)BatchNorm的有效性是否確實(shí)與Internal Covariate Shift有關(guān)?

2)BatchNorm固定層輸入的分布是否能夠有效減少Internal Covariate Shift?

首先我們訓(xùn)練網(wǎng)絡(luò)時(shí),刻意在BatchNorm層后注入隨機(jī)噪聲,由此產(chǎn)生明顯的covariate shift。因此,層中的每個(gè)單元都會(huì)在各個(gè)時(shí)刻經(jīng)歷不同的輸入分布。然后,我們測(cè)量這種引入的分布不穩(wěn)定性對(duì)BatchNorm性能的影響。下圖顯示了標(biāo)準(zhǔn)網(wǎng)絡(luò)、加上BatchNorm層的網(wǎng)絡(luò)以及在BatchNorm層后加噪聲的網(wǎng)絡(luò)的訓(xùn)練結(jié)果。我們發(fā)現(xiàn),后兩者的性能差異可以忽略,并且都比標(biāo)準(zhǔn)網(wǎng)絡(luò)要好。在標(biāo)準(zhǔn)網(wǎng)絡(luò)中加BatchNorm之后,即便噪聲的引入使得分布不穩(wěn)定,但在訓(xùn)練性能仍比標(biāo)準(zhǔn)網(wǎng)絡(luò)好。所以,BatchNorm的有效性與Internal Covariate Shift并沒有什么聯(lián)系。

僅從輸入分布的均值和方差來看,Internal Covariate Shift似乎與訓(xùn)練性能并沒有直接聯(lián)系,那么從更廣泛的概念上理解,Internal Covariate Shift是否與訓(xùn)練性能有著直接的聯(lián)系呢?如果有,BatchNorm是否真的有效減少了Internal Covariate Shift。把每層看作是求解經(jīng)驗(yàn)風(fēng)險(xiǎn)最小化的問題,在給定一組輸入并優(yōu)化損失函數(shù),但對(duì)任何先前層的參數(shù)進(jìn)行更新必將改變后面層的輸入,這是Ioffe和Szegedy等研究人員關(guān)于Internal Covariate Shift理解的核心。此處,作者更從底層的優(yōu)化任務(wù)角度深入探究,由于訓(xùn)練過程是一階方法,因此將損失的梯度作為研究對(duì)象。

為了量化每層中參數(shù)必須根據(jù)先前層中參數(shù)更新“調(diào)整”的程度,我們分別測(cè)量更新前和更新后每層梯度的變化。作者通過實(shí)驗(yàn)測(cè)量了帶有和不帶BatchNorm層的Internal Covariate Shift程度。為分離非線性效應(yīng)和梯度隨機(jī)性,作者還對(duì)使用全批梯度下降訓(xùn)練的(25層)深度線性網(wǎng)絡(luò)(DLN)進(jìn)行分析。最終,我們發(fā)現(xiàn),在網(wǎng)絡(luò)中添加BatchNorm層應(yīng)該是增加了更新前和更新后層梯度之間的相關(guān)性,從而減少Internal Covariate Shift。但令人驚訝的是,我們觀察到使用BatchNorm的網(wǎng)絡(luò)經(jīng)常表現(xiàn)出Internal Covariate Shift的增加(參見下圖),DLN尤其顯著。從優(yōu)化的角度來看,BatchNorm可能甚至不會(huì)減少Internal Covariate Shift。

圖中藍(lán)色線為添加了BatchNorm的結(jié)果,右側(cè)描述了對(duì)應(yīng)Internal covariate shift的變化。

那BatchNorm究竟發(fā)揮了什么作用呢?

事實(shí)上,我們確定了BatchNorm對(duì)訓(xùn)練過程的關(guān)鍵影響:它對(duì)底層優(yōu)化問題再參數(shù)化,使其解空間更加平滑。首先,損失函數(shù)的Lipschitzness得到改進(jìn),即損失函數(shù)能以較小的速率變化,梯度的幅度也變小。然而效果更強(qiáng),即BatchNorm的再參數(shù)化使損失函數(shù)的梯度更加Lipschitz,就有著更加“有效”的β-smoothness。這些平滑效果對(duì)訓(xùn)練算法的性能起到主要的影響。改進(jìn)梯度的Lipschitzness使我們確信,當(dāng)我們?cè)谟?jì)算梯度的方向上采取更大步長(zhǎng)時(shí),此梯度方向在之后仍是對(duì)實(shí)際梯度方向的精準(zhǔn)估計(jì)。

因此,它能使任何基于梯度的訓(xùn)練算法采取更大的步長(zhǎng)之后,防止損失函數(shù)的解空間突變,既不會(huì)掉入梯度消失的平坦區(qū)域,也不會(huì)掉入梯度爆炸的尖銳局部最小值。這也就使得我們能夠用更大的學(xué)習(xí)速率,并且通常會(huì)使得訓(xùn)練速度更快而對(duì)超參數(shù)的選擇更不敏感。因此,是BatchNorm的平滑效果提高了訓(xùn)練性能。

為了證明BatchNorm對(duì)損失函數(shù)穩(wěn)定性的影響,即Lipschitzness,對(duì)訓(xùn)練過程中每步,我們計(jì)算損失函數(shù)的梯度,并測(cè)量當(dāng)我們朝梯度方向移動(dòng)時(shí)損失函數(shù)如何變化。見下圖中(a),我們看到,與用BatchNorm的情況相反,vanilla網(wǎng)絡(luò)的損失函數(shù)的確有著大幅波動(dòng),特別是在訓(xùn)練的初始階段。同樣為了證明BatchNorm對(duì)損失函數(shù)的梯度穩(wěn)定性/ Lipschitzness影響,我們?cè)谙聢D中(b)繪制了vanilla網(wǎng)絡(luò)和BatchNorm 整個(gè)訓(xùn)練過程中的“有效”β-smoothness(“有效”在這里指,朝梯度方向移動(dòng)時(shí)測(cè)量梯度的變化),結(jié)果差異性很大。

為了進(jìn)一步說明梯度穩(wěn)定性和預(yù)測(cè)性的增加,我們測(cè)量在訓(xùn)練給定點(diǎn)處的損失梯度與沿著原始梯度方向的不同點(diǎn)對(duì)應(yīng)的梯度之間的L2距離。如下圖中(c)顯示了vanilla網(wǎng)絡(luò)和BatchNorm網(wǎng)絡(luò)之間的這種梯度預(yù)測(cè)中的顯著差異(接近兩個(gè)數(shù)量級(jí))。我們還考察了線性深度網(wǎng)絡(luò),BatchNorm也有著很好的平滑效果。要強(qiáng)調(diào)的是,即使我們值集中探索了沿著梯度方向的損失解空間情況,對(duì)于其他任意方向,也有一致的結(jié)論。

文中從理論上論證了增加BatchNorm可以降低參數(shù)的靈敏度,并很好的改善優(yōu)化問題的解空間。

不同norm下VGG網(wǎng)絡(luò)的激活直方圖

那么BatchNorm是平滑解空間最好且唯一的方法嗎?答案當(dāng)然不是,作者研究了一些基于自然數(shù)據(jù)統(tǒng)計(jì)的正則化策略,類似BatchNorm修正激活函數(shù)一階矩的方案,用p范數(shù)均值進(jìn)行正則化。不同的是,對(duì)于這些正則化方案,層輸入的分布不再是高斯(見上圖)。因此,用這種p范數(shù)進(jìn)行正則化并不能保證對(duì)分布矩和分布穩(wěn)定性有任何控制。實(shí)驗(yàn)結(jié)果如下圖所示,可以觀察到所有的正則化方法都提供了與BatchNorm相媲美的性能。事實(shí)上,對(duì)于深度線性網(wǎng)絡(luò)來說,'L1正則化表現(xiàn)的要比BatchNorm更好。

值得注意的是,p范數(shù)正則化方法會(huì)導(dǎo)致更大的分布covariate shift。但所有這些技術(shù)都提高了解空間的平滑度,這點(diǎn)與BatchNorm的效果相似。以上表明BatchNorm對(duì)訓(xùn)練的積極影響可能實(shí)屬偶然。因此,對(duì)類似的正則化方案的設(shè)計(jì)進(jìn)行深入探索十分有必要,可以為網(wǎng)絡(luò)訓(xùn)練更好的性能。

綜上所述,作者研究了BatchNorm能提高深度神經(jīng)網(wǎng)絡(luò)訓(xùn)練有效性的根源,并發(fā)現(xiàn)BatchNorm與internal covariate shift之間的關(guān)系是微不足道的。特別是,從優(yōu)化的角度來看,BatchNorm并不會(huì)減少internal covariate shift。相反,BatchNorm對(duì)訓(xùn)練過程的關(guān)鍵作用在于其重新規(guī)劃了優(yōu)化問題,使其Lipschitzness穩(wěn)定和β-smoothness更有效,這意味著訓(xùn)練中使用的梯度更具有良好的預(yù)測(cè)性和性能,從而可以更快速、有效地進(jìn)行優(yōu)化。

這種現(xiàn)象同時(shí)也解釋了先前觀察到的BatchNorm的其他優(yōu)點(diǎn),例如對(duì)超參數(shù)設(shè)置的魯棒性以及避免梯度爆炸或消失。作者也展示了這種平滑效果并不是BatchNorm特有的,其他一些自然正則化策略也具有相似的效果,并能帶來可比較的性能增益。我們相信這些新發(fā)現(xiàn)不僅可以消除關(guān)于BatchNorm的一些常見誤解,而且還會(huì)使我們?cè)谡嬲饬x上理解這種基本技術(shù)以及更加好的處理深度網(wǎng)絡(luò)的訓(xùn)練問題。

最后,作者表明雖然重點(diǎn)在于揭示BatchNorm對(duì)訓(xùn)練的影響,但其發(fā)現(xiàn)也可能揭示BatchNorm對(duì)泛化能力的改進(jìn)。具體來說,BatchNorm重新參數(shù)化的平滑效應(yīng)可能會(huì)促使訓(xùn)練過程收斂到更平坦的極小值,相信這樣的極小值會(huì)促進(jìn)更好的泛化。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴

原文標(biāo)題:深度 | BatchNorm是如何在深度學(xué)習(xí)優(yōu)化過程中發(fā)揮作用的?

文章出處:【微信號(hào):thejiangmen,微信公眾號(hào):將門創(chuàng)投】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    人工神經(jīng)網(wǎng)絡(luò)原理及下載

    人工神經(jīng)網(wǎng)絡(luò)是根據(jù)人的認(rèn)識(shí)過程而開發(fā)出的一種算法。假如我們現(xiàn)在只有輸入和相應(yīng)的輸出,而對(duì)如何由輸入得到輸出的機(jī)理并不清楚,那么我們可以把
    發(fā)表于 06-19 14:40

    AI知識(shí)科普 | 從無人相信到萬人追捧的神經(jīng)網(wǎng)絡(luò)

    工智能。幾乎是夜間,神經(jīng)網(wǎng)絡(luò)技術(shù)從無人相信變成了萬人追捧。神經(jīng)網(wǎng)絡(luò)之父Hiton1、人工神經(jīng)網(wǎng)絡(luò)是什么?人工神經(jīng)網(wǎng)絡(luò):是
    發(fā)表于 06-05 10:11

    【案例分享】ART神經(jīng)網(wǎng)絡(luò)與SOM神經(jīng)網(wǎng)絡(luò)

    一種常用的無監(jiān)督學(xué)習(xí)策略,在使用改策略時(shí),網(wǎng)絡(luò)的輸出神經(jīng)元相互競(jìng)爭(zhēng),每時(shí)刻只有個(gè)競(jìng)爭(zhēng)獲勝的神經(jīng)
    發(fā)表于 07-21 04:30

    如何構(gòu)建神經(jīng)網(wǎng)絡(luò)?

    原文鏈接:http://tecdat.cn/?p=5725 神經(jīng)網(wǎng)絡(luò)一種基于現(xiàn)有數(shù)據(jù)創(chuàng)建預(yù)測(cè)的計(jì)算系統(tǒng)。如何構(gòu)建神經(jīng)網(wǎng)絡(luò)?神經(jīng)網(wǎng)絡(luò)包括:輸入
    發(fā)表于 07-12 08:02

    分享一種400×25×2的三BP神經(jīng)網(wǎng)絡(luò)

    本文首先簡(jiǎn)單的選取了少量的樣本并進(jìn)行樣本歸化,這樣就得到了可供訓(xùn)練訓(xùn)練集和測(cè)試集。然后訓(xùn)練了400×25×2的三BP
    發(fā)表于 07-12 06:49

    matlab實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò) 精選資料分享

    習(xí)神經(jīng)神經(jīng)網(wǎng)絡(luò),對(duì)于神經(jīng)網(wǎng)絡(luò)的實(shí)現(xiàn)是如何直沒有具體實(shí)現(xiàn)下:現(xiàn)看到個(gè)簡(jiǎn)單的
    發(fā)表于 08-18 07:25

    一種基于高效采樣算法的時(shí)序圖神經(jīng)網(wǎng)絡(luò)系統(tǒng)介紹

    圖數(shù)據(jù)是一種非結(jié)構(gòu)化的數(shù)據(jù),但能夠蘊(yùn)含很多結(jié)構(gòu)化數(shù)據(jù)中無法蘊(yùn)含的信息。圖數(shù)據(jù)無處不在,世界上大部分?jǐn)?shù)據(jù)都能夠用圖數(shù)據(jù)表達(dá)。為了高效的提取圖特征,圖神經(jīng)網(wǎng)絡(luò)一種非常重要的圖特征提取方
    發(fā)表于 09-28 10:34

    卷積神經(jīng)網(wǎng)絡(luò)簡(jiǎn)介:什么是機(jī)器學(xué)習(xí)?

    列文章將只關(guān)注卷積神經(jīng)網(wǎng)絡(luò) (CNN)。CNN的主要應(yīng)用領(lǐng)域是輸入數(shù)據(jù)中包含的對(duì)象的模式識(shí)別和分類。CNN是一種用于深度學(xué)習(xí)的人工神經(jīng)網(wǎng)絡(luò)。此類網(wǎng)絡(luò)
    發(fā)表于 02-23 20:11

    卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練的是什么

    訓(xùn)練過程以及應(yīng)用場(chǎng)景。 1. 卷積神經(jīng)網(wǎng)絡(luò)的基本概念 1.1 卷積神經(jīng)網(wǎng)絡(luò)的定義 卷積神經(jīng)網(wǎng)絡(luò)一種前饋深度學(xué)習(xí)模型,其核心思想是利用卷積
    的頭像 發(fā)表于 07-03 09:15 ?429次閱讀

    BP神經(jīng)網(wǎng)絡(luò)算法的基本流程包括

    BP神經(jīng)網(wǎng)絡(luò)算法,即反向傳播(Backpropagation)神經(jīng)網(wǎng)絡(luò)算法,是一種多層前饋神經(jīng)網(wǎng)絡(luò),通過反向傳播誤差
    的頭像 發(fā)表于 07-03 09:52 ?523次閱讀

    bp神經(jīng)網(wǎng)絡(luò)和卷積神經(jīng)網(wǎng)絡(luò)區(qū)別是什么

    結(jié)構(gòu)、原理、應(yīng)用場(chǎng)景等方面都存在定的差異。以下是對(duì)這兩神經(jīng)網(wǎng)絡(luò)的比較: 基本結(jié)構(gòu) BP神經(jīng)網(wǎng)絡(luò)一種多層前饋
    的頭像 發(fā)表于 07-03 10:12 ?1232次閱讀

    反向傳播神經(jīng)網(wǎng)絡(luò)分為多少

    反向傳播神經(jīng)網(wǎng)絡(luò)(Backpropagation Neural Network,簡(jiǎn)稱BP神經(jīng)網(wǎng)絡(luò))是一種多層前饋神經(jīng)網(wǎng)絡(luò),它通過反向傳播算法
    的頭像 發(fā)表于 07-03 11:02 ?431次閱讀

    卷積神經(jīng)網(wǎng)絡(luò)和bp神經(jīng)網(wǎng)絡(luò)的區(qū)別在哪

    結(jié)構(gòu)、原理、應(yīng)用場(chǎng)景等方面都存在定的差異。以下是對(duì)這兩神經(jīng)網(wǎng)絡(luò)的詳細(xì)比較: 基本結(jié)構(gòu) BP神經(jīng)網(wǎng)絡(luò)一種多層前饋
    的頭像 發(fā)表于 07-04 09:49 ?9339次閱讀

    怎么對(duì)神經(jīng)網(wǎng)絡(luò)重新訓(xùn)練

    重新訓(xùn)練神經(jīng)網(wǎng)絡(luò)個(gè)復(fù)雜的過程,涉及到多個(gè)步驟和考慮因素。 引言 神經(jīng)網(wǎng)絡(luò)一種強(qiáng)大的機(jī)器學(xué)習(xí)模型,廣泛應(yīng)用于圖像識(shí)別、自然語言處理、語音
    的頭像 發(fā)表于 07-11 10:25 ?473次閱讀

    如何編寫個(gè)BP神經(jīng)網(wǎng)絡(luò)

    BP(反向傳播)神經(jīng)網(wǎng)絡(luò)一種多層前饋神經(jīng)網(wǎng)絡(luò),它通過反向傳播算法訓(xùn)練
    的頭像 發(fā)表于 07-11 16:44 ?583次閱讀