針對(duì)BN的歸一化方法總結(jié)
前言:
歸一化相關(guān)技術(shù)已經(jīng)經(jīng)過(guò)了幾年的發(fā)展,目前針對(duì)不同的應(yīng)用場(chǎng)合有相應(yīng)的方法,在本文將這些方法做了一個(gè)總結(jié),介紹了它們的思路,方法,應(yīng)用場(chǎng)景。主要涉及到:LRN,BN,LN, IN, GN, FRN, WN, BRN, CBN, CmBN等。
本文又名“BN和它的后浪們”,是因?yàn)閹缀踉贐N后出現(xiàn)的所有歸一化方法都是針對(duì)BN的三個(gè)缺陷改進(jìn)而來(lái),在本文也介紹了BN的三個(gè)缺陷。相信讀者會(huì)讀完此文會(huì)對(duì)歸一化方法有個(gè)較為全面的認(rèn)識(shí)和理解。
LRN(2012)
局部響應(yīng)歸一化(Local Response Normalization, 即LRN)首次提出于AlexNet。自BN提出后,其基本被拋棄了,因此這里只介紹它的來(lái)源和主要思想。
LRN的創(chuàng)意來(lái)源于神經(jīng)生物學(xué)的側(cè)抑制,被激活的神經(jīng)元會(huì)抑制相鄰的神經(jīng)元。用一句話(huà)來(lái)形容LRN:讓響應(yīng)值大的feature map變得更大,讓響應(yīng)值小的變得更小。
其主要思想在于讓不同卷積核產(chǎn)生feature map之間的相關(guān)性更小,以實(shí)現(xiàn)不同通道上的feature map專(zhuān)注于不同的特征的作用,例如A特征在一通道上更顯著,B特征在另一通道上更顯著。
Batch Normalization(2015)
論文:Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift
論文中關(guān)于BN提出的解釋:訓(xùn)練深度神經(jīng)網(wǎng)絡(luò)非常復(fù)雜,因?yàn)樵谟?xùn)練過(guò)程中,隨著先前各層的參數(shù)發(fā)生變化,各層輸入的分布也會(huì)發(fā)生變化,圖層輸入分布的變化帶來(lái)了一個(gè)問(wèn)題,因?yàn)閳D層需要不斷適應(yīng)新的分布,因此訓(xùn)練變得復(fù)雜,隨著網(wǎng)絡(luò)變得更深,網(wǎng)絡(luò)參數(shù)的細(xì)微變化也會(huì)放大。
由于要求較低的學(xué)習(xí)率和仔細(xì)的參數(shù)初始化,這減慢了訓(xùn)練速度,并且眾所周知,訓(xùn)練具有飽和非線(xiàn)性的模型非常困難。我們將此現(xiàn)象稱(chēng)為內(nèi)部協(xié)變量偏移,并通過(guò)歸一化層輸入來(lái)解決該問(wèn)題。
其它的解釋:假設(shè)輸入數(shù)據(jù)包含多個(gè)特征x1,x2,…xn。每個(gè)功能可能具有不同的值范圍。例如,特征x1的值可能在1到5之間,而特征x2的值可能在1000到99999之間。
如下左圖所示,由于兩個(gè)數(shù)據(jù)不在同一范圍,但它們是使用相同的學(xué)習(xí)率,導(dǎo)致梯度下降軌跡沿一維來(lái)回振蕩,從而需要更多的步驟才能達(dá)到最小值。且此時(shí)學(xué)習(xí)率不容易設(shè)置,學(xué)習(xí)率過(guò)大則對(duì)于范圍小的數(shù)據(jù)來(lái)說(shuō)來(lái)回震蕩,學(xué)習(xí)率過(guò)小則對(duì)范圍大的數(shù)據(jù)來(lái)說(shuō)基本沒(méi)什么變化。
如下右圖所示,當(dāng)進(jìn)行歸一化后,特征都在同一個(gè)大小范圍,則loss landscape像一個(gè)碗,學(xué)習(xí)率更容易設(shè)置,且梯度下降比較平穩(wěn)。
實(shí)現(xiàn)算法:
在一個(gè)batch中,在每一BN層中,對(duì)每個(gè)樣本的同一通道,計(jì)算它們的均值和方差,再對(duì)數(shù)據(jù)進(jìn)行歸一化,歸一化的值具有零均值和單位方差的特點(diǎn),最后使用兩個(gè)可學(xué)習(xí)參數(shù)gamma和beta對(duì)歸一化的數(shù)據(jù)進(jìn)行縮放和移位。
此外,在訓(xùn)練過(guò)程中還保存了每個(gè)mini-batch每一BN層的均值和方差,最后求所有mini-batch均值和方差的期望值,以此來(lái)作為推理過(guò)程中該BN層的均值和方差。
注:BN放在激活函數(shù)后比放在激活函數(shù)前效果更好。
實(shí)際效果:
1)與沒(méi)有BN相比,可使用更大的學(xué)習(xí)率
2)防止過(guò)擬合,可去除Dropout和Local Response Normalization
3)由于dataloader打亂順序,因此每個(gè)epoch中mini-batch都不一樣,對(duì)不同mini-batch做歸一化可以起到數(shù)據(jù)增強(qiáng)的效果。
4)明顯加快收斂速度
5)避免梯度爆炸和梯度消失
注:BN存在一些問(wèn)題,后續(xù)的大部分歸一化論文,都是在圍繞BN的這些缺陷來(lái)改進(jìn)的。為了行文的方便,這些缺陷會(huì)在后面各篇論文中逐一提到。
BN、LN、IN和GN的區(qū)別與聯(lián)系
下圖比較明顯地表示出了它們之間的區(qū)別。(N表示N個(gè)樣本,C表示通道,這里為了表達(dá)方便,把HxW的二維用H*W的一維表示。)
后面這三個(gè)解決的主要問(wèn)題是BN的效果依賴(lài)于batch size,當(dāng)batch size比較小時(shí),性能退化嚴(yán)重?梢钥吹,IN,LN和GN都與batch size無(wú)關(guān)。
它們之間的區(qū)別在于計(jì)算均值和方差的數(shù)據(jù)范圍不同,LN計(jì)算單個(gè)樣本在所有通道上的均值和方差,IN值計(jì)算單個(gè)樣本在每個(gè)通道上的均值和方差,GN將每個(gè)樣本的通道分成g組,計(jì)算每組的均值和方差。
它們之間的效果對(duì)比。(注:這個(gè)效果是只在同一場(chǎng)合下的對(duì)比,實(shí)際上它們各有自己的應(yīng)用場(chǎng)景,且后三者在各自的應(yīng)用場(chǎng)合上都明顯超過(guò)了BN)
Instance Normalization(2016)
論文:Instance Normalization: The Missing Ingredient for Fast Stylization
在圖像視頻等識(shí)別任務(wù)上,BN的效果是要優(yōu)于IN的。但在GAN,style transfer和domain adaptation這類(lèi)生成任務(wù)上,IN的效果明顯比BN更好。
從BN與IN的區(qū)別來(lái)分析產(chǎn)生這種現(xiàn)象的原因:BN對(duì)多個(gè)樣本統(tǒng)計(jì)均值和方差,而這多個(gè)樣本的domain很可能是不一樣的,相當(dāng)于模型把不同domain的數(shù)據(jù)分布進(jìn)行了歸一化。
Layer Normalization (2016)
論文:Layer Normalization
BN的第一個(gè)缺陷是依賴(lài)Batch size,第二個(gè)缺陷是對(duì)于RNN這樣的動(dòng)態(tài)網(wǎng)絡(luò)效果不明顯,且當(dāng)推理序列長(zhǎng)度超過(guò)訓(xùn)練的所有序列長(zhǎng)度時(shí),容易出問(wèn)題。為此,提出了Layer Normalization。
當(dāng)我們以明顯的方式將批歸一化應(yīng)用于RNN時(shí),我們需要為序列中的每個(gè)時(shí)間步計(jì)算并存儲(chǔ)單獨(dú)的統(tǒng)計(jì)信息。如果測(cè)試序列比任何訓(xùn)練序列都長(zhǎng),這是有問(wèn)題的。LN沒(méi)有這樣的問(wèn)題,因?yàn)樗臍w一化項(xiàng)僅取決于當(dāng)前時(shí)間步長(zhǎng)對(duì)層的總輸入。它還只有一組在所有時(shí)間步中共享的增益和偏置參數(shù)。(注:LN中的增益和偏置就相當(dāng)于BN中的gamma 和beta)
LN的應(yīng)用場(chǎng)合:RNN,transformer等。
Group Normalization(2018)
論文:Group Normalization
如下圖所示,當(dāng)batch size減少時(shí),BN退化明顯,而Group Normalization始終一致,在batch size比較大的時(shí)候,略低于BN,但當(dāng)batch size比較小的時(shí)候,明顯優(yōu)于BN。
但GN有兩個(gè)缺陷,其中一個(gè)是在batchsize大時(shí)略低于BN,另一個(gè)是由于它是在通道上分組,因此它要求通道數(shù)是分組數(shù)g的倍數(shù)。
GN應(yīng)用場(chǎng)景:在目標(biāo)檢測(cè),語(yǔ)義分割等要求盡可能大的分辨率的任務(wù)上,由于內(nèi)存限制,為了更大的分辨率只能取比較小的batch size,可以選擇GN這種不依賴(lài)于batchsize的歸一化方法。
GN實(shí)現(xiàn)算法
Weights Normalization(2016)
論文:Weight Normalization: A Simple Reparameterization to Accelerate Training of Deep Neural Networks
前面的方法都是基于feature map做歸一化,這篇論文提出對(duì)Weights做歸一化。
解釋這個(gè)方法要費(fèi)挺多筆墨,這里用一句話(huà)來(lái)解釋其主要做法:將權(quán)重向量w分解為一個(gè)標(biāo)量g和一個(gè)向量v,標(biāo)量g表示權(quán)重向量w的長(zhǎng)度,向量v表示權(quán)重向量的方向。
這種方式改善了優(yōu)化問(wèn)題的條件,并加速了隨機(jī)梯度下降的收斂,不依賴(lài)于batch size的特點(diǎn),適用于循環(huán)模型(如 LSTM)和噪聲敏感應(yīng)用(如深度強(qiáng)化學(xué)習(xí)或生成模型),而批量歸一化不太適合這些應(yīng)用。
Weight Normalization也有個(gè)明顯的缺陷:WN不像BN有歸一化特征尺度的作用,因此WN的初始化需要慎重,為此作者提出了對(duì)向量v和標(biāo)量g的初始化方法。
Batch Renormalization(2017)
論文:Batch Renormalization: Towards Reducing Minibatch Dependence in Batch-Normalized Models
前面我們提到BN使用訓(xùn)練過(guò)程中每個(gè)mini-batch的均值和方差的期望作為推理過(guò)程中的均值和方差,這樣做的前提是mini-batch與樣本總體是獨(dú)立同分布的。因此BN的第三個(gè)缺陷是當(dāng)mini-batch中的樣本非獨(dú)立同分布時(shí),性能比較差。
基于第一個(gè)缺陷batchsize太小時(shí)性能退化和第三個(gè)缺陷,作者提出了Batch Renormalization(簡(jiǎn)稱(chēng)BRN)。
BRN與BN的主要區(qū)別在于BN使用訓(xùn)練過(guò)程中每個(gè)mini-batch的均值和方差的期望來(lái)當(dāng)作整個(gè)數(shù)據(jù)集的均值和方差,而訓(xùn)練過(guò)程中每個(gè)mini-batch都有自己的均值和方差,因此在推理階段的均值和方差與訓(xùn)練時(shí)不同,而B(niǎo)RN提出在訓(xùn)練過(guò)程中就不斷學(xué)習(xí)修正整個(gè)數(shù)據(jù)集的均值和方差,使其盡可能逼近整個(gè)數(shù)據(jù)集的均值和方差,并最終用于推理階段。
BRN實(shí)現(xiàn)算法如下:
注:這里r和d表示尺度縮放和平移,不參與反向傳播。
當(dāng)使用小batchsize或非獨(dú)立同分布的mini-batch進(jìn)行訓(xùn)練時(shí),使用BRN訓(xùn)練的模型的性能明顯優(yōu)于BN。同時(shí),BRN保留了BN的優(yōu)勢(shì),例如對(duì)初始化的敏感性和訓(xùn)練效率
Cross-GPU BN(2018)
論文:MegDet: A Large Mini-Batch Object Detector
在使用多卡分布式訓(xùn)練的情況下,輸入數(shù)據(jù)被等分成多份,在各自的卡上完成前向和回傳,參數(shù)更新,BN是針對(duì)單卡上的樣本做的歸一化,因此實(shí)際的歸一化的樣本數(shù)并不是batchsize。例如batchsize=32,用四張卡訓(xùn)練,實(shí)際上只在32/4=8個(gè)樣本上做歸一化。
Cross-GPU Batch Normalization的思想就是在多張卡上做歸一化。
具體實(shí)現(xiàn)算法如下:
FRN(2019)
論文:Filter Response Normalization Layer: Eliminating Batch Dependence in the Training of Deep Neural Networks
FRN仍然是基于小batchsize會(huì)退化性能的問(wèn)題改進(jìn)的。
FRN由兩個(gè)組件構(gòu)成,一個(gè)是Filter Response Normalization (FRN),一個(gè)是Thresholded Linear Unit (TLU)。
前者跟Instance Normalization非常相似,也是基于單樣本單通道,所不同的是IN減去了均值,再除以標(biāo)準(zhǔn)差。而FRN沒(méi)有減去均值。作者給出的理由如下:雖然減去均值是歸一化方案的正常操作,但對(duì)于batch independent的歸一化方案來(lái)說(shuō),它是任意的,沒(méi)有任何理由。
TLU則是在ReLU的基礎(chǔ)上加了一個(gè)閾值,這個(gè)閾值是可學(xué)習(xí)的參數(shù)。這是考慮到FRN沒(méi)有減去均值的操作,這可能使得歸一化的結(jié)果任意地偏移0,如果FRN之后是ReLU激活層,可能產(chǎn)生很多0值,這對(duì)于模型訓(xùn)練和性能是不利的。
FRN實(shí)現(xiàn)算法
實(shí)驗(yàn)效果
Cross-Iteration BN(2020)
論文:Cross-Iteration Batch Normalization
CBN的主要思想在于將前k-1個(gè)iteration的樣本參與當(dāng)前均值和方差的計(jì)算。但由于前k-1次iteration的數(shù)據(jù)更新,因此無(wú)法直接拿來(lái)使用。論文提出了一個(gè)處理方式是通過(guò)泰勒多項(xiàng)式來(lái)近似計(jì)算出前k-1次iteration的數(shù)據(jù)。
在Yolo_v4中還提出改進(jìn)版CmBN,在每個(gè)batch中只統(tǒng)計(jì)四個(gè)mini-batches的數(shù)據(jù),并在第四個(gè)mini-batch后才更新權(quán)重,尺度縮放和偏移。
實(shí)驗(yàn)效果
總結(jié)
本文介紹了目前比較經(jīng)典的歸一化方法,其中大部分都是針對(duì)BN改進(jìn)而來(lái),本文比較詳盡地介紹了它們的主要思想,改進(jìn)方式,以及應(yīng)用場(chǎng)景,部分方法并沒(méi)有詳細(xì)介紹實(shí)現(xiàn)細(xì)節(jié),對(duì)于感興趣或有需要的讀者請(qǐng)自行閱讀論文原文。
除了以上方法外,還有很多歸一化方法,例如Eval Norm,Normalization propagation,Normalizing the normalizers等。但這些方法并不常用,這里不作贅述。
參考論文
更多技術(shù)總結(jié)內(nèi)容,請(qǐng)關(guān)注公眾號(hào)CV技術(shù)指南。

發(fā)表評(píng)論
登錄
手機(jī)
驗(yàn)證碼
立即登錄即可訪(fǎng)問(wèn)所有OFweek服務(wù)
還不是會(huì)員?免費(fèi)注冊(cè)
忘記密碼請(qǐng)輸入評(píng)論內(nèi)容...
請(qǐng)輸入評(píng)論/評(píng)論長(zhǎng)度6~500個(gè)字
圖片新聞
-
機(jī)器人奧運(yùn)會(huì)戰(zhàn)報(bào):宇樹(shù)機(jī)器人摘下首金,天工Ultra搶走首位“百米飛人”
-
存儲(chǔ)圈掐架!江波龍起訴佰維,索賠121萬(wàn)
-
長(zhǎng)安汽車(chē)母公司突然更名:從“中國(guó)長(zhǎng)安”到“辰致科技”
-
豆包前負(fù)責(zé)人喬木出軌BP后續(xù):均被辭退
-
字節(jié)AI Lab負(fù)責(zé)人李航卸任后返聘,Seed進(jìn)入調(diào)整期
-
員工持股爆雷?廣汽埃安緊急回應(yīng)
-
中國(guó)“智造”背后的「關(guān)鍵力量」
-
小米汽車(chē)研發(fā)中心重磅落地,寶馬家門(mén)口“搶人”
最新活動(dòng)更多
-
10月23日火熱報(bào)名中>> 2025是德科技創(chuàng)新技術(shù)峰會(huì)
-
10月23日立即報(bào)名>> Works With 開(kāi)發(fā)者大會(huì)深圳站
-
10月24日立即參評(píng)>> 【評(píng)選】維科杯·OFweek 2025(第十屆)物聯(lián)網(wǎng)行業(yè)年度評(píng)選
-
11月27日立即報(bào)名>> 【工程師系列】汽車(chē)電子技術(shù)在線(xiàn)大會(huì)
-
12月18日立即報(bào)名>> 【線(xiàn)下會(huì)議】OFweek 2025(第十屆)物聯(lián)網(wǎng)產(chǎn)業(yè)大會(huì)
-
精彩回顧立即查看>> 【限時(shí)福利】TE 2025國(guó)際物聯(lián)網(wǎng)展·深圳站
推薦專(zhuān)題
- 1 人形機(jī)器人,正狂奔在批量交付的曠野
- 2 3 AI版“四萬(wàn)億刺激”計(jì)劃來(lái)了
- 4 2025年8月人工智能投融資觀察
- 5 一家被嚴(yán)重低估的國(guó)產(chǎn)AI巨頭
- 6 a16z最新AI百?gòu)?qiáng)榜:硅谷頂級(jí)VC帶你讀懂全球生成式AI賽道最新趨勢(shì)
- 7 Manus跑路,大廠掉線(xiàn),只能靠DeepSeek了
- 8 地平線(xiàn)的野心:1000萬(wàn)套HSD上車(chē)
- 9 一萬(wàn)億美元!馬斯克薪酬細(xì)節(jié)拆解
- 10 蘋(píng)果把身家押在Siri上:一場(chǎng)輸不起的自我革命