Group Normalization論文筆記--深入淺出組歸一化

論文鏈接:https://arxiv.org/abs/1803.08494
在這裏插入圖片描述

提出背景:

Group Normalization(GN)是針對Batch Normalization(BN)在batch size較小時錯誤率較高而提出的改進算法,因爲BN層的計算結果依賴當前batch的數據,當batch size較小時(比如2、4這樣),該batch數據的均值和方差的代表性較差,因此對最後的結果影響也較大。

如下圖所示,隨着batch size越來越小,BN層所計算的統計信息的可靠性越來越差,這樣就容易導致最後錯誤率的上升;而在batch size較大時則沒有明顯的差別。雖然在分類算法中一般的GPU顯存都能cover住較大的batch設置,但是在目標檢測、分割以及視頻相關的算法中,由於輸入圖像較大、維度多樣以及算法本身原因等,batch size一般都設置比較小,所以GN對於這種類型算法的改進應該比較明顯。
在這裏插入圖片描述

因此Group Normalization(GN)的思想並不複雜,簡單講就是要使歸一化操作的計算不依賴batch size的大小,深度網絡中的數據維度一般是[N, C, H, W]格式,N是batch size,H/W是feature的高/寬,C是feature的channel,壓縮H/W至一個維度,自然想到能否把注意力緯度從batch這一緯轉移至chanel這一緯度,Batch歸一化有BD、MBGD、SGD,同樣G歸一化有Layer Normalization、Group Normalization、Instance Normalization,這些均按chanel大小劃分,與batch緯無關
在這裏插入圖片描述

引用論文原文中的話概括:

GN divides the channels into groups and computes within each group the
mean and variance for normalization. GN’s computation is independent
of batch sizes, and its accuracy is stable in a wide range of batch
sizes.

下面着重記錄論文第三部分即理論部分,首先來看Figure2中提到的四種歸一化方式的公式計算。首先常見的特徵歸一化算法(BN,LN,IN,GN)基本上都如公式1+公式6所示。公式1是減均值併除以標準差的操作,公式6是一個線性變換,來控制均值和方差讓機器自動學習得到最佳的分佈組合

在這裏插入圖片描述
在這裏插入圖片描述

xi中i的含義如論文高亮部分,其實就是四個維度的座標,這樣xi就是feautre map中指定位置的一個點,下圖中的k代表在map中索引的下標,S是滿足k|條件後要計算均值的點集區域在這裏插入圖片描述

BatchNorm:batch方向做歸一化,相同通道的點才參與計算當前點的均值和標準差,假設要計算公式1的點的i.C是3(RGB=B),那麼從公式3來看,只有kC=3的點才構成的集合Si才參與計算均值和方差算NHW的均值(以batch方向,不同的N會相加,自然除以N算均值,下同)

LayerNorm:channel方向做歸一化,**LN中Si如公式4所示,換句話說就是相同feature map(N這個維度)**的點才參與計算當前點的均值和標準差,算CHW的均值,(除以C,以channel方向,不同的C會相加,自然除以C算均值)

InstanceNorm:channel內做歸一化,IN的Si如公式5所示,換句話說就是相同通道且相同feature map(N這個維度)的點才參與計算當前點的均值和標準差算H*W的均值
在這裏插入圖片描述
GroupNorm:channel方向分group,然後每個group內做歸一化,算(C//G)HW的均值(圖1中channel=6,group=2,三個通道爲一組求均值)

Experiments:

在這裏插入圖片描述
以resnet50爲base model,batchsize設置爲32在imagenet數據集上的訓練誤差(左)和測試誤差(右)。GN沒有表現出很大的優勢,在測試誤差上稍大於使用BN的結果。
在這裏插入圖片描述
上圖是驗證batch size大小分別對BN和GN的影響。可以看出GN基本上不受batch size的影響,魯棒性更強
在這裏插入圖片描述
同時,作者以VGG16爲例,分析了某一層卷積後的特徵分佈學習情況,分別根據不使用Norm 和使用BN,GN做了實驗,實驗結果如上圖:統一batch size設置的是32,最左圖是不使用norm的conv5的特徵學習情況,中間是使用了BN結果,最右是使用了GN的學習情況,相比較不使用norm,使用norm的學習效果顯著,而後兩者學習情況相似,不過更改小的batch size後,BN是比不上GN的

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章