Normalization 归一化方法 BN LN IN GN
1.分類(lèi)
2.BN
為什么要進(jìn)行BN呢?
1)在深度神經(jīng)網(wǎng)絡(luò)訓(xùn)練的過(guò)程中,通常以輸入網(wǎng)絡(luò)的每一個(gè)mini-batch進(jìn)行訓(xùn)練,這樣每個(gè)batch具有不同的分布,使模型訓(xùn)練起來(lái)特別困難。
(2)Internal Covariate Shift (ICS) 問(wèn)題:在訓(xùn)練的過(guò)程中,激活函數(shù)會(huì)改變各層數(shù)據(jù)的分布,隨著網(wǎng)絡(luò)的加深,這種改變(差異)會(huì)越來(lái)越大,使模型訓(xùn)練起來(lái)特別困難,收斂速度很慢,會(huì)出現(xiàn)梯度消失的問(wèn)題。
BN的主要思想:針對(duì)每個(gè)神經(jīng)元,使數(shù)據(jù)在進(jìn)入激活函數(shù)之前,沿著通道計(jì)算每個(gè)batch的均值、方差,‘強(qiáng)迫’數(shù)據(jù)保持均值為0,方差為1的正態(tài)分布,避免發(fā)生梯度消失。具體來(lái)說(shuō),就是把第1個(gè)樣本的第1個(gè)通道,加上第2個(gè)樣本第1個(gè)通道 … 加上第 N 個(gè)樣本第1個(gè)通道,求平均,得到通道 1 的均值(注意是除以 N×H×W 而不是單純除以 N,最后得到的是一個(gè)代表這個(gè) batch 第1個(gè)通道平均值的數(shù)字,而不是一個(gè) H×W 的矩陣)。求通道 1 的方差也是同理。對(duì)所有通道都施加一遍這個(gè)操作,就得到了所有通道的均值和方差。
BN的使用位置:全連接層或卷積操作之后,激活函數(shù)之前。
BN算法過(guò)程:
沿著通道計(jì)算每個(gè)batch的均值μ
沿著通道計(jì)算每個(gè)batch的方差σ2
做歸一化
加入縮放和平移變量 γ 和 β
其中 ε 是一個(gè)很小的正值1e-8,比如 。加入縮放和平移變量的原因是:保證每一次數(shù)據(jù)經(jīng)過(guò)歸一化后還保留原有學(xué)習(xí)來(lái)的特征,同時(shí)又能完成歸一化操作,加速訓(xùn)練。 這兩個(gè)參數(shù)是用來(lái)學(xué)習(xí)的參數(shù)。
BN的作用:
(1)允許較大的學(xué)習(xí)率;
(2)減弱對(duì)初始化的強(qiáng)依賴(lài)性
(3)保持隱藏層中數(shù)值的均值、方差不變,讓數(shù)值更穩(wěn)定,為后面網(wǎng)絡(luò)提供堅(jiān)實(shí)的基礎(chǔ);
(4)有輕微的正則化作用(相當(dāng)于給隱藏層加入噪聲,類(lèi)似Dropout)
BN存在的問(wèn)題:
(1)每次是在一個(gè)batch上計(jì)算均值、方差,如果batch size太小,則計(jì)算的均值、方差不足以代表整個(gè)數(shù)據(jù)分布。
(2)batch size太大:會(huì)超過(guò)內(nèi)存容量;需要跑更多的epoch,導(dǎo)致總訓(xùn)練時(shí)間變長(zhǎng);會(huì)直接固定梯度下降的方向,導(dǎo)致很難更新。
3.LN
針對(duì)BN不適用于深度不固定的網(wǎng)絡(luò)(sequence長(zhǎng)度不一致,如RNN),LN對(duì)深度網(wǎng)絡(luò)的某一層的所有神經(jīng)元的輸入按以下公式進(jìn)行normalization操作。
LN中同層神經(jīng)元的輸入擁有相同的均值和方差,不同的輸入樣本有不同的均值和方差。
對(duì)于特征圖在這里插入圖片描述 ,LN 對(duì)每個(gè)樣本的 C、H、W 維度上的數(shù)據(jù)求均值和標(biāo)準(zhǔn)差,保留 N 維度。其均值和標(biāo)準(zhǔn)差公式為:
Layer Normalization (LN) 的一個(gè)優(yōu)勢(shì)是不需要批訓(xùn)練,在單條數(shù)據(jù)內(nèi)部就能歸一化。LN不依賴(lài)于batch size和輸入sequence的長(zhǎng)度,因此可以用于batch size為1和RNN中。LN用于RNN效果比較明顯,但是在CNN上,效果不如BN。
4.Instance Normalization, IN
IN針對(duì)圖像像素做normalization,最初用于圖像的風(fēng)格化遷移。在圖像風(fēng)格化中,生成結(jié)果主要依賴(lài)于某個(gè)圖像實(shí)例,feature map 的各個(gè) channel 的均值和方差會(huì)影響到最終生成圖像的風(fēng)格。所以對(duì)整個(gè)batch歸一化不適合圖像風(fēng)格化中,因而對(duì)H、W做歸一化。可以加速模型收斂,并且保持每個(gè)圖像實(shí)例之間的獨(dú)立。
對(duì)于,IN 對(duì)每個(gè)樣本的 H、W 維度的數(shù)據(jù)求均值和標(biāo)準(zhǔn)差,保留 N 、C 維度,也就是說(shuō),它只在 channel 內(nèi)部求均值和標(biāo)準(zhǔn)差,其公式如下:
總結(jié)
以上是生活随笔為你收集整理的Normalization 归一化方法 BN LN IN GN的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: centos linux7修改主机名,C
- 下一篇: 北京航空航天大学计算机科学与工程系,北航