一文帶你重新思考BatchNorm中的Batch
前言
公眾號(hào)在前面發(fā)過(guò)三篇分別對(duì)BatchNorm解讀、分析和總結(jié)的文章(文章鏈接在文末),閱讀過(guò)這三篇文章的讀者對(duì)BatchNorm和歸一化方法應(yīng)該已經(jīng)有了較深的認(rèn)識(shí)和理解。在本文將介紹一篇關(guān)于BatchNorm舉足輕重的論文,這篇論文對(duì)進(jìn)行了很多實(shí)驗(yàn),非常全面地考慮了BatchNorm中的Batch。
歡迎關(guān)注公眾號(hào) CV技術(shù)指南 ,專(zhuān)注于計(jì)算機(jī)視覺(jué)的技術(shù)總結(jié)、最新技術(shù)跟蹤、經(jīng)典論文解讀。
Motivation
BatchNorm 區(qū)別于其他深度學(xué)習(xí)算子的關(guān)鍵因素是它對(duì)批量數(shù)據(jù)而不是單個(gè)樣本進(jìn)行操作。BatchNorm 混合批次中的信息以計(jì)算歸一化統(tǒng)計(jì)數(shù)據(jù),而其他算子獨(dú)立處理批次中的每個(gè)樣本。因此,BatchNorm 的輸出不僅取決于單個(gè)樣本的屬性,還取決于樣本分組的方式。
如上左圖所示,按照采樣大小,上中下三圖表示BatchNorm的采樣方式分別為entire dataser、mini-batches和subset of mini-batches。
如上右圖所示,按照采樣風(fēng)格,上中下三圖表示BatchNorm的采樣方式分別為entire domain、each domain和mixture of each domain。
論文研究了 BatchNorm 中批處理的這些選擇,證明了在不考慮批處理構(gòu)建的不同選擇的情況下,應(yīng)用批處理規(guī)范可能會(huì)在許多方面產(chǎn)生負(fù)面影響,但可以通過(guò)在批處理方式上做出謹(jǐn)慎選擇來(lái)提高模型性能。
Review of BatchNorm
在一個(gè)mini-batches中,在每一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-batches每一BN層每一通道的均值和方差,最后求所有mini-batches均值和方差的期望值,以此來(lái)作為推理過(guò)程中該BN層各自通道的均值和方差。
Whole Population as a Batch
在訓(xùn)練期間,BatchNorm 使用mini-batch的樣本計(jì)算歸一化統(tǒng)計(jì)數(shù)據(jù)。但是,當(dāng)模型用于測(cè)試時(shí),通常不再有 mini-batch 的概念。最初提出BatchNorm是在測(cè)試時(shí),特征應(yīng)該通過(guò)在整個(gè)訓(xùn)練集上計(jì)算的總體統(tǒng)計(jì)數(shù)據(jù) μ、σ 進(jìn)行歸一化。這里的 μ、σ 被定義為批次統(tǒng)計(jì)量 ?, σ 使用整個(gè)population作為“Batch”。
廣泛使用EMA 算法來(lái)計(jì)算 ?, σ,但它并不總是能準(zhǔn)確地訓(xùn)練population數(shù)據(jù),因此論文提出了新的算法PreciseBN。
Inaccuracy of EMA
EMA: exponential moving average
算法公式如下:
由于以下原因,EMA會(huì)導(dǎo)致模型估計(jì)Population數(shù)據(jù)次優(yōu):
當(dāng) λ 很大時(shí),統(tǒng)計(jì)數(shù)據(jù)收斂緩慢。由于每次更新迭代僅對(duì) EMA 貢獻(xiàn)一小部分 (1-λ),因此 EMA 需要大量更新才能收斂到穩(wěn)定的估計(jì)值。隨著模型的更新,情況變得更糟:EMA 主要由過(guò)去的輸入特征主導(dǎo),隨著模型的訓(xùn)練這些特征已經(jīng)過(guò)時(shí)。
當(dāng) λ 較小時(shí),EMA 統(tǒng)計(jì)數(shù)據(jù)由較少數(shù)量的近期mini-batch主導(dǎo),并不代表整個(gè)populatioin。
PreciseBN
PreciseBN通過(guò)以下兩個(gè)步驟來(lái)近似Population統(tǒng)計(jì)數(shù)據(jù)。
(固定)模型在許多小批量上應(yīng)用來(lái)收集Batch統(tǒng)計(jì)數(shù)據(jù);
將per-batch統(tǒng)計(jì)數(shù)據(jù)聚合為總體統(tǒng)計(jì)數(shù)據(jù)。
與EMA相比,PreciseBN多了兩個(gè)重要的屬性:
統(tǒng)計(jì)數(shù)據(jù)完全根據(jù)固定模型狀態(tài)計(jì)算,與使用模型歷史狀態(tài)的 EMA 不同;
所有樣本的權(quán)重相等。
實(shí)驗(yàn)結(jié)論
1.PreciseBN比BN更穩(wěn)定。
2.當(dāng)batchsize很大時(shí),EMA算法不穩(wěn)定。作者認(rèn)為不穩(wěn)定性是由大批量訓(xùn)練中損害 EMA 統(tǒng)計(jì)收斂性的兩個(gè)因素造成的:(1)32 倍大的學(xué)習(xí)率導(dǎo)致特征發(fā)生更劇烈的變化;(2) 由于總訓(xùn)練迭代次數(shù)減少,EMA 的更新次數(shù)減少了 32 倍。
3.PreciseBN只需要個(gè)樣本就可以得到穩(wěn)定的結(jié)果。
4.小Batch會(huì)累計(jì)誤差。
Batch in Training and Testing
在訓(xùn)練和推理期間使用的Batch統(tǒng)計(jì)量不一致:訓(xùn)練期間使用mini-batch統(tǒng)計(jì)數(shù)據(jù),推理期間使用訓(xùn)練期間所有mini-batch通過(guò)EMA算法近似得到的population統(tǒng)計(jì)數(shù)據(jù)。論文分析了這種不一致對(duì)模型性能的影響,并指出在某些情況下可以輕松消除不一致以提高性能。
為了避免混淆,將SGD batch size或者total batch size定義為所有GPU上總的batch size大小,將normalization batch size定義為單個(gè)GPU上的batch size大小。(注:這一點(diǎn)在《歸一化方法總結(jié)》一文中有提到,當(dāng)使用多個(gè)GPU時(shí),實(shí)際的mini-batch統(tǒng)計(jì)數(shù)據(jù)只基于batchsize/GPU數(shù)的樣本上統(tǒng)計(jì))
normalization batch size對(duì)訓(xùn)練噪聲和訓(xùn)練測(cè)試不一致性有直接影響:較大的Batch將mini-batch統(tǒng)計(jì)數(shù)據(jù)推向更接近總體統(tǒng)計(jì)數(shù)據(jù),從而減少訓(xùn)練噪聲和訓(xùn)練測(cè)試不一致
為了便于分析,論文觀察了3種不同評(píng)估方法的錯(cuò)誤率:
在訓(xùn)練集上對(duì)mini-batch統(tǒng)計(jì)量進(jìn)行評(píng)估
在驗(yàn)證集上對(duì)mini-batch統(tǒng)計(jì)量進(jìn)行評(píng)估
在驗(yàn)證集上對(duì)population統(tǒng)計(jì)量進(jìn)行評(píng)估
實(shí)驗(yàn)結(jié)論
小的normalization batch size(例如 2 或 4)性能不佳,但如果使用mini-batch統(tǒng)計(jì)數(shù)據(jù)(藍(lán)色曲線),該模型實(shí)際上具有不錯(cuò)的性能。結(jié)果表明,mini-batch統(tǒng)計(jì)和總體統(tǒng)計(jì)之間的巨大不一致是影響mini-batch性能的主要因素。
另一方面,當(dāng)normalization batch size較大時(shí),小的不一致可以提供正則化以減少驗(yàn)證錯(cuò)誤。這導(dǎo)致紅色曲線比藍(lán)色曲線表現(xiàn)更好。
基于以上結(jié)論,論文給出兩個(gè)消除不一致用來(lái)提高性能的方法
Use Mini-batch in Inference
Use Population Batch in Training
Batch from Different Domains
BatchNorm 模型的訓(xùn)練過(guò)程可以被視為兩個(gè)獨(dú)立的階段:首先通過(guò) SGD 學(xué)習(xí)特征,然后通過(guò) EMA 或 PreciseBN 使用這些特征訓(xùn)練總體統(tǒng)計(jì)數(shù)據(jù)。我們將這兩個(gè)階段稱(chēng)為“SGD training”和“population statistics training”。
在本節(jié)中,論文分析出現(xiàn)domain gap的兩種情況:當(dāng)模型在一個(gè)domain上訓(xùn)練但在其他domain上測(cè)試時(shí),以及當(dāng)模型在多個(gè)domain上訓(xùn)練時(shí)。這兩者都會(huì)使 BatchNorm 的使用復(fù)雜化。
實(shí)驗(yàn)結(jié)論
當(dāng)存在顯著的域偏移時(shí),模型在對(duì)評(píng)估中使用的domain會(huì)比使用 SGD 訓(xùn)練,進(jìn)行總體統(tǒng)計(jì)訓(xùn)練后獲得最佳錯(cuò)誤率。直觀地說(shuō),根據(jù)domain組成Batch可以減少訓(xùn)練測(cè)試的不一致并提高對(duì)新數(shù)據(jù)分布的泛化能力。
BatchNorm 在mixture of multi-domain data上的domain-specific training在以前的工作中經(jīng)常被提出,名稱(chēng)為“Domain-Specific BN”、“Split BN”、“Mixture BN”,“Auxiliary BN”,“Transferable Norm”。這些方法都包含以下三種選擇中的一些。
Domain-specific SGD training
Domain-specific population statistics
Domain-specific affine transform
通過(guò)消除上述三個(gè)選擇,我們表明在 SGD training和population statistics training之間使用一致的策略很重要,盡管這種實(shí)現(xiàn)可能看起來(lái)不直觀。
Information Leakage within a Batch
我在《歸一化方法總結(jié)》中總結(jié)到,BN的三個(gè)缺陷之一便是當(dāng)mini-batch中的樣本非獨(dú)立同分布時(shí),性能比較差,作者認(rèn)為這是由于Information Leakage導(dǎo)致的。
論文實(shí)驗(yàn)發(fā)現(xiàn),當(dāng)使用random采樣的mini-batch統(tǒng)計(jì)量時(shí),驗(yàn)證誤差會(huì)增加,當(dāng)使用population統(tǒng)計(jì)量時(shí),驗(yàn)證誤差會(huì)隨著epoch的增加逐漸增大,驗(yàn)證了BN信息泄露問(wèn)題的存在。
為了處理信息泄露問(wèn)題,之前常見(jiàn)的做法是使用SyncBN,來(lái)弱化mini-batch內(nèi)樣本之間的相關(guān)性。另一種解決方法是在進(jìn)入head之前在GPU之間隨機(jī)打亂RoI features,這給每個(gè)GPU分配了一個(gè)隨機(jī)的樣本子集來(lái)進(jìn)行歸一化,同時(shí)也削弱了min-batch樣本之間的相關(guān)性,如下圖所示。
如下圖所示,實(shí)驗(yàn)證明 shuffling和 SyncBN 都有效地解決了信息泄漏問(wèn)題,允許head在測(cè)試時(shí)很好地概括population statistics。
在速度方面,對(duì)于深度模型,shuffle 需要較少的 cross-GPU 同步,但每次同步傳輸?shù)臄?shù)據(jù)比 SyncBN 層傳輸?shù)臄?shù)據(jù)多。因此,它們的相對(duì)效率因模型架構(gòu)而異。據(jù)比SyncBN多。因此,shuffling和SyncBN的相對(duì)效率跟具體模型架構(gòu)相關(guān)。
總結(jié)
本文回顧了BatchNorm算法;分析了使用mini-batches計(jì)算的統(tǒng)計(jì)數(shù)據(jù)和基于population作為batch計(jì)算的統(tǒng)計(jì)數(shù)據(jù)的效果,提出了PreciseBN近似統(tǒng)計(jì)算法,該算法相比于常用的EMA算法有更穩(wěn)定的效果;分析了根據(jù)不同domain來(lái)組成mini-batch的效果差異;分析了處理mini-batch中的樣本非獨(dú)立同分布情況的兩種方法。
結(jié)合前面的三篇文章《Batch Normalization》、《可視化的BatchNorm--它的工作方式以及為什么神經(jīng)網(wǎng)絡(luò)需要它》、《歸一化方法總結(jié) | 又名"BN和它的后浪們"》,相信讀者會(huì)對(duì)BatchNorm會(huì)有一個(gè)非常全面的認(rèn)識(shí),并進(jìn)一步加深對(duì)神經(jīng)網(wǎng)絡(luò)的理解。
本文來(lái)源于公眾號(hào) CV技術(shù)指南 的論文分享系列。
歡迎關(guān)注公眾號(hào) CV技術(shù)指南 ,專(zhuān)注于計(jì)算機(jī)視覺(jué)的技術(shù)總結(jié)、最新技術(shù)跟蹤、經(jīng)典論文解讀。

發(fā)表評(píng)論
請(qǐng)輸入評(píng)論內(nèi)容...
請(qǐng)輸入評(píng)論/評(píng)論長(zhǎng)度6~500個(gè)字
最新活動(dòng)更多
-
3月27日立即報(bào)名>> 【工程師系列】汽車(chē)電子技術(shù)在線大會(huì)
-
4月30日立即下載>> 【村田汽車(chē)】汽車(chē)E/E架構(gòu)革新中,新智能座艙挑戰(zhàn)的解決方案
-
5月15-17日立即預(yù)約>> 【線下巡回】2025年STM32峰會(huì)
-
即日-5.15立即報(bào)名>>> 【在線會(huì)議】安森美Hyperlux™ ID系列引領(lǐng)iToF技術(shù)革新
-
5月15日立即下載>> 【白皮書(shū)】精確和高效地表征3000V/20A功率器件應(yīng)用指南
-
5月16日立即參評(píng) >> 【評(píng)選啟動(dòng)】維科杯·OFweek 2025(第十屆)人工智能行業(yè)年度評(píng)選
推薦專(zhuān)題
- 1 UALink規(guī)范發(fā)布:挑戰(zhàn)英偉達(dá)AI統(tǒng)治的開(kāi)始
- 2 北電數(shù)智主辦酒仙橋論壇,探索AI產(chǎn)業(yè)發(fā)展新路徑
- 3 降薪、加班、裁員三重暴擊,“AI四小龍”已折戟兩家
- 4 “AI寒武紀(jì)”爆發(fā)至今,五類(lèi)新物種登上歷史舞臺(tái)
- 5 國(guó)產(chǎn)智駕迎戰(zhàn)特斯拉FSD,AI含量差幾何?
- 6 光計(jì)算迎來(lái)商業(yè)化突破,但落地仍需時(shí)間
- 7 東陽(yáng)光:2024年扭虧、一季度凈利大增,液冷疊加具身智能打開(kāi)成長(zhǎng)空間
- 8 地平線自動(dòng)駕駛方案解讀
- 9 封殺AI“照騙”,“淘寶們”終于不忍了?
- 10 優(yōu)必選:營(yíng)收大增主靠小件,虧損繼續(xù)又逢關(guān)稅,能否乘機(jī)器人東風(fēng)翻身?