常用 Normalization 方法的總結(jié)與思考:BN、LN、IN、GN

來(lái)源:機(jī)器學(xué)習(xí)算法那些事 本文約2700字,建議閱讀6分鐘 本文為你介紹常用 Normalization 方法的總結(jié)與思考。

每個(gè)子圖表示一個(gè)特征圖,其中N為批量,C為通道,(H,W)為特征圖的高度和寬度。通過(guò)藍(lán)色部分的值來(lái)計(jì)算均值和方差,從而進(jìn)行歸一化。
比喻成一摞書(shū),這摞書(shū)總共有 N 本,每本有 C 頁(yè),每頁(yè)有 H 行,每行 有W 個(gè)字符。1. BN 求均值時(shí),相當(dāng)于把這些書(shū)按頁(yè)碼一一對(duì)應(yīng)地加起來(lái)(例如第1本書(shū)第36頁(yè),第2本書(shū)第36頁(yè)......),再除以每個(gè)頁(yè)碼下的字符總數(shù):N×H×W,因此可以把 BN 看成求“平均書(shū)”的操作(注意這個(gè)“平均書(shū)”每頁(yè)只有一個(gè)字),求標(biāo)準(zhǔn)差時(shí)也是同理。
一、 Batch Normalization, BN
論文鏈接:https://arxiv.org/pdf/1502.03167.pdf
沿著通道計(jì)算每個(gè)batch的均值

沿著通道計(jì)算每個(gè)batch的方差

做歸一化
加入縮放和平移變量
和

。加入縮放和平移變量的原因是:保證每一次數(shù)據(jù)經(jīng)過(guò)歸一化后還保留原有學(xué)習(xí)來(lái)的特征,同時(shí)又能完成歸一化操作,加速訓(xùn)練。 這兩個(gè)參數(shù)是用來(lái)學(xué)習(xí)的參數(shù)。二、 Layer Normalization, LN
論文鏈接:https://arxiv.org/pdf/1607.06450v1.pdf

,LN 對(duì)每個(gè)樣本的 C、H、W 維度上的數(shù)據(jù)求均值和標(biāo)準(zhǔn)差,保留 N 維度。其均值和標(biāo)準(zhǔn)差公式為:
三、 Instance Normalization, IN
,IN 對(duì)每個(gè)樣本的 H、W 維度的數(shù)據(jù)求均值和標(biāo)準(zhǔn)差,保留 N 、C 維度,也就是說(shuō),它只在 channel 內(nèi)部求均值和標(biāo)準(zhǔn)差,其公式如下:
四、 Group Normalization, GN
的均值和方差,這樣就與batch size無(wú)關(guān),不受其約束。

def GroupNorm(x, gamma, beta, G=16):# x_shape:[N, C, H, W]results = 0.eps = 1e-5x = np.reshape(x, (x.shape[0], G, x.shape[1]/16, x.shape[2], x.shape[3]))x_mean = np.mean(x, axis=(2, 3, 4), keepdims=True)x_var = np.var(x, axis=(2, 3, 4), keepdims=True0)x_normalized = (x - x_mean) / np.sqrt(x_var + eps)results = gamma * x_normalized + betareturn results
總結(jié)
比喻成一摞書(shū),這摞書(shū)總共有 N 本,每本有 C 頁(yè),每頁(yè)有 H 行,每行 有W 個(gè)字符。
和
的區(qū)別:對(duì)于 BN,IN,GN, 其
和
都是維度等于通道數(shù) C 的向量。而對(duì)于 LN,其
和
都是維度等于 normalized_shape 的矩陣。編輯:于騰凱
校對(duì):林亦霖
評(píng)論
圖片
表情
