常見的幾種 Normalization 算法


神經網絡中有各種歸一化算法:Batch Normalization (BN)、Layer Normalization (LN)、Instance Normalization (IN)、Group Normalization (GN)。從公式看它們都差不多,如 (1) 所示:無非是減去均值,除以標准差,再施以線性映射。

 

 

Batch Normalization

 Batch Normalization (BN) 是最早出現的,也通常是效果最好的歸一化方式。feature map: 包含 N 個樣本,每個樣本通道數為 C(在NLP中為詞向量長度),高為 H(在NLP中為時間長度),寬為 W(在NLP中為1)。對其求均值和方差時,將在 N、H、W上操作,而保留通道 C 的維度。具體來說,就是把第1個樣本的第1個通道,加上第2個樣本第1個通道 ...... 加上第 N 個樣本第1個通道,求平均,得到通道 1 的均值(注意是除以 N×H×W 而不是單純除以 N,最后得到的是一個代表這個 batch 第1個通道平均值的數字,而不是一個 H×W 的矩陣)。求通道 1 的方差也是同理。對所有通道都施加一遍這個操作,就得到了所有通道的均值和方差。具體公式為:

 

如果把類比為一摞書,這摞書總共有 N 本,每本有 C 頁,每頁有 H 行,每行 W 個字符。BN 求均值時,相當於把這些書按頁碼一一對應地加起來(例如第1本書第36頁,第2本書第36頁......),再除以每個頁碼下的字符總數:N×H×W,因此可以把 BN 看成求“平均書”的操作(注意這個“平均書”每頁只有一個字),有C頁,求標准差時也是同理。最后求出來應該是:1*C, 保證每個樣本兩兩之間不會偏差太大

 

Layer Normalization

BN 的一個缺點是需要較大的 batchsize 才能合理估訓練數據的均值和方差,這導致內存很可能不夠用,同時它也很難應用在訓練數據長度不同的 RNN 模型上。Layer Normalization (LN) 的一個優勢是不需要批訓練,在單條數據內部就能歸一化

對於LN 對每個樣本的 C、H、W 維度上的數據求均值和標准差,保留 N 維度。其均值和標准差公式為: 

 

繼續采用上一節的類比,把一個 batch 的 feature 類比為一摞書。LN 求均值時,相當於把每一本書的所有字加起來,再除以這本書的字符總數:C×H×W,即求整本書的“平均字”,有N本書,求標准差時也是同理。最后求出來的是:N*1,保證的是每個批次兩兩之間不會偏差較大。

 

Instance Normalization

Instance Normalization (IN) 最初用於圖像的風格遷移。作者發現,在生成模型中, feature map 的各個 channel 的均值和方差會影響到最終生成圖像的風格,因此可以先把圖像在 channel 層面歸一化,然后再用目標風格圖片對應 channel 的均值和標准差“去歸一化”,以期獲得目標圖片的風格。IN 操作也在單個樣本內部進行,不依賴 batch。

 

 

IN 求均值時,相當於把一頁書中所有字加起來,再除以該頁的總字數:H×W,即求每頁書的“平均字”,求標准差時也是同理。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM