DIFFERENTIABLE LEARNING-TO-NORMALIZE VIA SWITCHABLE NORMALIZATION(SN 可微分學習的自適配歸一化)

DIFFERENTIABLE LEARNING-TO-NORMALIZE VIA SWITCHABLE NORMALIZATION(SN 可微分學習的自適配歸一化)

可交換的歸一化方法

這是根據不同作者寫的以及我個人的理解做出的總結,只是方便我個人下次閱讀,如有侵權,請聯繫我刪除。

 

論文參考:https://zhuanlan.zhihu.com/p/39296570

論文參考:http://www.sohu.com/a/241640030_395209

代碼:https://github.com/switchablenorms/Switchable-Normalization(pytorch)

代碼:https://github.com/taki0112/Switchable_Normalization-Tensorflow(tensorflow,這份代碼我個人覺得有問題,他應該是能實現,但是並沒有採用paper中減少計算量的方法)

我之前寫的關於GN的,也有介紹其他三種歸一(規範)化方法:https://blog.csdn.net/qq_33266320/article/details/79719858

目前針對不同任務提出的主要的規範化技術包括批量規範化,層規範化,實例規範化,組規範化。該論文(Switchable Normalization(SN))的目的就是爲了讓網絡自己通過學習選擇任務所適合的最好的規範化方法。

注:一般的任務所有層都用同一種normalization,SN可以學到不同層用不同的normalization

 

四種Normalization:

BatchNorm是沿着所有樣本的同一個通道計算,它首先應用在圖像分類任務中,有助於提高收斂速度和泛化性

Layer Norm是對單個樣本的特徵進行計算,它首先應用在RNN中,使得RNN的優化更容易

Instance Norm是對每個樣本的每個通道計算,首先應用在風格轉換任務上,基於它可以解決任意風格的轉換的問題

Group Norm與Layer Norm、Instance Norm有些相似,我覺得是兩者之間取了個適當的值,也就是把LN比IN多的C分了組,它解決了Batch Norm對於批量大小的依賴問題

https://blog.csdn.net/qq_33266320/article/details/79719858我之前在看GN時候有具體介紹。

SN優點和四種的缺點:

SN相比其他正常化有着獨特的優勢。

相比於BN對批量大小的依賴較大,特別在較小的批量大時,BN效果會顯着下降,SN則對批量大小足夠魯棒,通過動態調節各種歸一化的權值,減小BN的影響,使用IN和LN進行互補;

另外針對不同任務,SN可以自適應不同的任務,通過學習選擇與任務合適的權值,在不同層也可以使用不同的權值,拓展了單個結構使用同一種標準化的方式。

 

SN方法:(來源於https://zhuanlan.zhihu.com/p/39296570

Switchable Normalization(SN)統一了實例歸一化Instance Normalization(IN),層歸一化Layer Normalization(LN),和批歸一化Batch Normalization(BN)的各種操作。假設一個卷積神經網絡(CNN)的一個隱含卷積層的輸入數據可表示爲具有四個維度的特徵圖, (N, C, H, W) 。這裏每個維度分別代表樣本數目(minibatch size),通道數目(number of channels),通道的高(height),和通道的寬(width)。假設每一個像素表示爲 h_{ncij} ,這裏 n,c,i,j 爲上述四個維度的下標。SN對 h_{ncij} 進行歸一化操作,並輸出歸一化後的像素值 \hat{h}{ncij} 。SN的計算公式如下:


\hat{h}{ncij}=\gamma\frac{h_{ncij}-\Sigma_{k\in\Omega} w_k\mu_k} {\sqrt{\Sigma_{k\in\Omega}w_k^\prime\sigma_k^2+\epsilon}}+\beta.

 

上述定義與BN,IN,和LN的定義相似。他們都學習了縮放係數 \gamma 和偏移係數 \beta 。主要的區別在於SN的統計信息(即均值 \mu 和方差 \sigma^2 ),不像IN只是在一個通道中計算的,也不像LN只是在一個層中計算,而是在一個集合 \Omega 當中選擇合適的歸一化方法來加權平均的。這個集合定義爲 \Omega={\mathrm{bn},\mathrm{in},\mathrm{ln}} 。 w_k 和 w_k^\prime 則爲相應統計量對應的權重係數。下圖直觀的展示了SN的基本原理

圖1 自適配歸一化圖形解釋

 

圖1爲SN的直觀圖形解釋。SN中每個樣本每個通道( H\times W )的均值和方差,由BN、IN、LN三種不同統計方法計算得到的均值和方差共同決定。

在SN中,均值的加權係數 w_k 的計算方法如下:
w_k=\frac{e^{\lambda_k}}{\Sigma_{z\in{\mathrm{in},\mathrm{ln},\mathrm{bn}}}e^{\lambda_z}},~ ~~k\in{\mathrm{bn},\mathrm{in},\mathrm{ln}},


λ_k 爲三個維度統計量對應的參數。爲了與網絡參數(如卷積核)區分,這些參數稱爲控制參數。這些控制參數均初始爲1,在反向傳播時進行優化學習。該計算公式即利用softmax函數對優化參數 λ_k 進行歸一化,計算統計量最終的加權係數 w_k 。因此,所有加權係數 w_k 的和爲1,每個加權係數 w_k 的值都在0和1之間。類似的, w_k^\prime 可以由另外的三個參數 \lambda_\mathrm{bn}^\prime , \lambda_\mathrm{in}^\prime ,和 \lambda_\mathrm{ln}^\prime計算得出,且 \Sigma_{k\in\Omega}w_k^\prime=1 , \forall w_k^\prime\in[0,1] 。因此,相對於BN,SN只額外增加了 \lambda_\mathrm{bn} , \lambda_\mathrm{in} , \lambda_\mathrm{ln} 和 \lambda_\mathrm{bn}^\prime , \lambda_\mathrm{in}^\prime , \lambda_\mathrm{ln}^\prime 6個控制參數。

注:      \lambda_\mathrm{bn} , \lambda_\mathrm{in} , \lambda_\mathrm{ln} 是關於均值的統計量對應的參數

            \lambda_\mathrm{bn}^\prime , \lambda_\mathrm{in}^\prime , \lambda_\mathrm{ln}^\prime 是關於方差的統計量對應的參數

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