LN.BN.GN.IN

Hello Python發表於2020-11-04

提示:文章寫完後,目錄可以自動生成,如何生成可參考右邊的幫助文件


一、歸一化

數學上的定義:
歸一化是一種無量綱處理手段,使物理系統數值的絕對值變成某種相對值關係。簡化計算,縮小量值的有效辦法。
資料預處理
不同的評價指標往往具有不同的量綱(例如:對於評價房價來說量綱指:面積、房價數、樓層等;對於預測某個人患病率來說量綱指:身高、體重等。)和量綱單位(例如:面積單位:平方米、平方釐米等;身高:米、釐米等),這樣的情況會影響到資料分析的結果,為了消除指標之間量綱的影響,需要進行資料標準化處理,以解決資料指標之間的可比性。原始資料經過資料標準化處理後,各指標處於同一數量級,適合進行綜合對比評價。


二、歸一化優缺點及公式

優缺點

(1)歸一化後加快了梯度下降求最優解的速度。

(2)歸一化有可能提高精度(歸一化是讓不同維度之間的特徵在數值上有一定的比較性)。

計算流程

1.計算出均值

2.計算出方差

3.歸一化處理到均值為0,方差為1

4.變化重構,恢復出這一層網路所要學到的分佈
在這裡插入圖片描述


三、LN.BN.GN.IN

在這裡插入圖片描述
為了能用圖形直接展示出來,H,W通常又是一起使用,故將HW化為同一個軸,上圖表現出了四種歸一化的意義。

Layer Normalizaiton(層歸一化):

1.LN的計算就是將每張圖片單獨進行歸一化,此時無論batch size的影響

2.常用在RNN網路,但如果輸入的特徵區別很大,那麼就不建議使用它做歸一化處理

3.此時針對每一張圖片,我們都有一組γ,β,所以可學習的引數為2*N

Batch Normalization(批歸一化):

使用較多的一種歸一化,通常用於影像處理中。

1.BN的計算就是把每個通道的N,H,W資料都拿出來進行單獨的歸一化

2.針對每個channel我們都有一組γ,β,所以可學習的引數為2*C

3.當batch size越小,BN的表現效果也越不好,因為計算過程中所得到的均值和方差越不能代表全域性,就越是容易學習到極少數的噪聲,導致整個模型容易受到噪聲的影響

Instance Normalization(例項正則化):

1.IN的計算就是將每張圖片的每個通道里的資料單獨歸一化,這樣每個通道與每個照片之間就沒有任何的聯絡,互不影響

2.針對於每張圖片的單通道都有一組γ,β,所以可學習的引數為2CN

3.常用在風格化遷移,但如果特徵圖可以用到通道之間的相關性,那麼就不建議使用它做歸一化處理,自然語言處理一般也不建議使用

Group Normalizatio(組歸一化):

1.GN的計算就是把先把通道C分成G組,然後把每個gHW單獨拿出來歸一化處理,最後把G組歸一化之後的資料合併成CHW

2.針對於每組通道的單通道都有一組γ,β,所以可學習的引數為2GN

3.GN介於LN和IN之間,當然可以說LN和IN就是GN的特列,比如G的大小為1或者為C