BN,LN,IN,GN都是什麼?不同歸一化方法的比較

2021-01-08 deephub

批處理歸一化(BN)已經成為許多先進深度學習模型的重要組成部分,特別是在計算機視覺領域。它通過批處理中計算的平均值和方差來規範化層輸入,因此得名。要使BN工作,批大小必須足夠大,通常至少為32。但是,在一些情況下,我們不得不滿足於小批量:

當每個數據樣本高度消耗內存時,例如視頻或高解析度圖像

當我們訓練一個很大的神經網絡時,它只留下很少的GPU內存來處理數據

因此,我們需要BN的替代品,它能在小批量下很好地工作。組歸一化(GN)是一種最新的規範化方法,可以避免利用批處理維,因此與批處理大小無關。

不同的歸一化方法

為了促進GN的表述,我們將首先看一下以前的一些標準化方法。

x ← (x - ) / √( + )

對於每個係數x輸入特性。和的均值和方差計算的集合S係數,和是一個小的常數數值穩定,避免除零。唯一的區別是集S是如何選擇的。

為說明歸一化方法的計算,我們考慮一批N = 3,輸入特徵a, b, c,它們有通道c = 4,高度H = 1,寬度W = 2:

a = [ [[2, 3]], [[5, 7]], [[11, 13]], [[17, 19]] ]b = [ [[0, 1]], [[1, 2]], [[3, 5]], [[8, 13]] ]c = [ [[1, 2]], [[3, 4]], [[5, 6]], [[7, 8]] ]

因此批將形狀(N、C, H, W) =(3、4、1、2)。我們把= 0.00001。

Batch Normalization

BN規範化的渠道和計算和沿軸(N、H、W)。批次係數被定義為一組的批處理x相同的頻道。

第一係數的= 2,i=(0,0,0),相應的和係數的計算,b和c的第一個頻道:

= mean(2, 3, 0, 1, 1, 2) = 1.5 = var(2, 3, 0, 1, 1, 2) = 0.917

代入歸一化公式,

a ← (2 - 1.5) / √(0.917 + 0.00001) = 0.522

計算a的所有係數

a ← [ [[0.522, 1.567]], [[0.676, 1.690]], [[1.071, 1.630]], [[1.066, 1.492]] ]

Layer Normalization

層歸一化(LN)的設計是為了克服BN的缺點,包括它對批大小的限制。計算和沿著(C、H、W)軸,和S定義為所有係數x屬於相同的輸入特性。因此,一個輸入特徵的計算完全獨立於批處理中的其他輸入特徵。

所有的係數是由相同的歸一化和

= mean(2, 3, 5, 7, 11, 13, 17, 19) = 9.625 = var(2, 3, 5, 7, 11, 13, 17, 19) = 35.734

計算a的所有係數

a ← [ [[-1.276, -1.108]], [[-0.773, -0.439]], [[0.230, 0.565]], [[1.234, 1.568]] ]

Instance Normalization

實例規範化(IN)可以看作是將BN公式單獨應用到每個輸入特性(又稱實例),就好像它是批處理中的唯一成員一樣。更準確地說,在計算和沿軸(H, W)和S的係數被定義為一組相同的輸入特性和x也在同一個頻道。

由於IN的計算與批大小為1時BN的計算相同,在大多數情況下,IN實際上會使情況變得更糟。而對於樣式轉換任務,IN在丟棄圖像對比度信息方面優於BN。

第一係數a= 2,i=i(0,0,0),相應的和只是

= mean(2, 3) = 2.5 = var(2, 3) = 0.25

a ← (2 - 2.5) / √(0.25 + 0.00001) = -1.000

得到

a ← [ [[-1.000, 1.000]], [[-1.000, 1.000]], [[-1.000, 1.000]], [[-1.000, 1.000]] ]

Group Normalization

前面我們說過IN的計算與批大小為1時BN的計算相同,但是是針對對每個輸入特性分別應用BN。注意,IN還可以看作是將LN單獨應用於每個通道,就像通道的數量為1的LN一樣。

組歸一化(GN)是IN和LN的中間點。組織渠道分成不同的組,計算和沿著(H, W)軸和一組通道。批次然後組係數,在相同的輸入特性和同一組x渠道。

組的數量G是一個預定義的超參數,通常需要它來劃分c。為了簡單起見,我們將通道按順序分組。所以頻道1,…,C / G屬於第一組,頻道C / G + 1,…,2C / G屬於第二組,以此類推。當G = C時,即每組只有1個信道,則GN變為IN。另一方面,當G = 1時,GN變成LN。因此G控制了IN和LN之間的插值。

在我們的例子中,考慮G = 2。規範化的第一個係數a = 2,i=(0,0,0),我們使用的係數在4 / 2 = 2通道

= mean(2, 3, 5, 7) = 4.25 = var(2, 3, 5, 7) = 3.687

代入歸一化公式,

a ← (2 - 4.25) / √(3.687 + 0.00001) = -1.172

對於a的其他係數,計算方法相似:

a ← [ [[-1.172, -0.651]], [[0.391, 1.432]], [[-1.265, -0.633]], [[0.633, 1.265]] ]

歸一化方法比較

藍色的區域對應的集S計算和,然後用來正常化任何係數在藍色區域。

從這個圖中我們可以看到,GN如何在IN和LN之間插入。GN優於IN,因為GN可以利用跨渠道的依賴關係。它也比LN好,因為它允許對每一組通道學習不同的分布。

當批大小較小時,GN始終優於BN。但是,當批處理大小非常大時,GN的伸縮性不如BN,可能無法匹配BN的性能。

引用

A. Kolesnikov, L. Beyer, X. Zhai, J. Puigcerver, J. Yung, S. Gelly, and N. Houlsby. Big Transfer (BiT): General Visual Representation Learning (2019), arXiv preprint.S. Qiao, H. Wang, C. Liu, W. Shen, and A. Yuille. Weight Standardization (2019), arXiv preprint.S. Santurkar, D. Tsipras, A. Ilyas, and A. Madry. How Does Batch Normalization Help Optimization? (2018), NIPS 2018.Y. Wu, and K. He. Group Normalization (2018), ECCV 2018.作者:Wanshun Wong

Deephub翻譯組

相關焦點

  • Western Blot歸一化方法介紹
    做Western Blot的小夥伴,是不是還在為選擇何種歸一化方法而糾結,看家蛋白還是總蛋白?期刊都推薦總蛋白了,那看家蛋白數據還能用嗎?看家蛋白有哪些優點和挑戰,需要注意什麼?如何選擇看家蛋白呢?如選擇總蛋白歸一化,用什麼總蛋白試劑進行歸一化,如何進行歸一化,優點和挑戰是什麼?
  • 數列bn和an的關係2^bn=a1a2a3……an求bn?重在指數和對數的轉化
    原題原題:等比數列「an」的首項為2,數列「bn」滿足2^(bn)=a1a2a3…an,b4=b3+4,則bn=?用對數來改變bn是冪指數的形式對數函數和指數函數是一對反函數,它們可以相互轉化。為了保證等式2^(bn)=a1·a2·a3…an不變,我們可以將式子2^(bn)=a1·a2·a3…an等號左右兩邊都放入對數之中。又因為式子2^(bn)=a1·a2·a3…an中的指數涉及了底數是2的情況,所以可以將該式子放入以底數為2的對數之中。
  • 批歸一化到底做了什麼?DeepMind研究者進行了拆解
    研究者還發現,儘管批歸一化可以維持模型以較大的學習率進行穩定訓練,但這只在批大小較大的並行化訓練中才有用。這一結果有助於釐清批歸一化在不同架構中的不同功能。 批歸一化到底幹了什麼 跳躍連接和批歸一化結合起來可以大幅提升神經網絡的最大可訓練深度。
  • 單細胞交響樂4-scRNA的歸一化
    歸一化的目的就是去除細胞間與真實表達量無關的技術因素,方便後續比較。這裡需要說明:歸一化與批次處理還是不同的。歸一化不管實驗的批次因素,只考慮細胞中存在的技術誤差(比如測序深度),而批次處理既要考慮實驗批次,又要考慮技術誤差(比如不同實驗時間、不同細胞系、不同文庫製備方法、不同測序方法、不同測序深度)。
  • Western Blot歸一化:看家蛋白or總蛋白
    做Western Blot的小夥伴,是不是還在為歸一化方法而糾結呢?今天小編就和大家匯總一下看家蛋白和總蛋白歸一化的方法。,則需要考慮的第三個挑戰是從不同物種中產生一抗和二抗的複雜性。
  • 高中數學必背50條秒殺型公式和方法!高一高二高三都要看!
    8常用數列bn=n×(2n)求和Sn=(n-1)×(2(n+1))+2記憶方法:前面減去一個1,後面加一個,再整體加一個29適用於標準方程(焦點在x軸)爆強公式:k橢=-{(b)xo}/{(a)yo}k雙={(b)xo}/{(a)yo}k拋=p/yo註:(xo,yo)均為直線過圓錐曲線所截段的中點。
  • 超越何愷明等組歸一化 Group Normalization,港中文團隊提出自適配...
    *BN(批歸一化)是由 Google 在 2015 年提出的一種歸一化方法。至今已經被引用了 5000 餘次,在學術界與工業界廣泛使用。幾乎所有主流神經網絡結構都使用了BN,例如微軟亞洲研究院提出的殘差神經網絡(ResNet,CVPR 2016 best paper)和由康奈爾大學提出的 DenseNet(CVPR 2017 best paper)。*SN 是港中文團隊最新提出的歸一化方法。
  • 2020高考數學複習方法:50種快速做題方法匯總
    常用數列bn=n×(22n)求和Sn=(n-1)×(22(n+1))+2記憶方法  前面減去一個1,後面加一個,再整體加一個2  9 . 適用於標準方程(焦點在x軸)爆強公式  k橢=-{(b2)xo}/{(a2)yo}k雙={(b2)xo}/{(a2)yo}k拋=p/yo  註:(xo,yo)均為直線過圓錐曲線所截段的中點。
  • 透徹分析批歸一化Batch Normalization強大作用
    在深度神經網絡訓練中,Batch Normalization有諸多非常強大的作用和效果:無論使用哪種激活功能或優化器,BN都可加快訓練過程並提高性能;解決梯度消失的問題;規範權重;優化網絡梯度流...等等。
  • 批歸一化Batch Normalization的原理及算法
    這些參數的選擇對訓練結果至關重要,以至於我們很多時間都浪費在這些的調參上。BN算法(Batch Normalization)其好處如下:可以選擇比較大的初始學習率,極大的提高訓練速度。神經網絡學習過程本質就是為了學習數據分布,一旦訓練數據與測試數據的分布不同,那麼網絡的泛化能力也大大降低。輸入層的數據,已經人為的的歸一化,後面網絡每一層的輸入數據分布是一直在發生變化的,前面層訓練參數的更新將導致後面層輸入數據分布的變化,因此必然會引起後面每一層輸入數據分布的改變。
  • ln三分之一等於多少 ln三分之一大於0嗎 - 天氣加
    ln(1/3)=-ln3=-log3^3/log3^e=-1/log3^e ^前為底數,後為真數。y=lnx這個函數是單調遞增的,3>e,e約等於2.718。因此根據函數的單調性可以知道ln3>lne,所以ln1/3+lne>0。
  • 高考數學48條秒殺型公式與方法
    8.常用數列bn=n×(2²n)求和Sn=(n-1)×(2²(n+1))+2記憶方法:前面減去一個1,後面加一個,再整體加一個2k橢=-{(b²)xo}/{(a²)yo}k雙={(b²)xo}/{(a²)yo}註:(xo,yo)均為直線過圓錐曲線所截段的中點。
  • 機器學習中數據特徵的處理 歸一化vs標準化,哪個更好
    通常,有兩種方法可以實現此目的:傳統的Old school手動方法,另一種使用sklearn預處理庫。 今天,讓我們藉助sklearn庫進行歸一化。)上面的步驟非常重要,因為fit()和transform()方法僅適用於數組。
  • DESeq2歸一化算法詳解
    由於定量的方式有很多種,比如raw  count, TPM, RPKM/FPKM 等,不同的定量方式其表達量的分布是不同的,所以差異分析時採用的軟體與算法也會不同。本文介紹DESeq2這個R包,主要是針對raw count的定量結果,進行差異分析。
  • liunx其他命令-ln命令的使用
    硬連結是存在同一個文件系統中,而軟連結卻可以跨越不同的文件系統。軟連結:1.軟連結,以路徑的形式存在。類似於Windows作業系統中的快捷方式2.軟連結可以 跨文件系統 ,硬連結不可以3.軟連結可以對一個不存在的文件名進行連結4.軟連結可以對目錄進行連結硬連結:1.硬連結,以文件副本的形式存在。
  • 高中數學50公式,50種解題方法,速看
    無論你是高一高二還是高三,我們高中三年那麼拼命的去學習,都是為考上我們理想的大學,可以和我一樣學習《瘋狂600》裡面涵蓋高中學習方法和學習技巧,錯題分析,以及知識考點,快速提分必備。有更多更好的學習方法和答題技巧,以及各個科目的知識考點,錯題分析等等!都會對我們有很大的幫助的!2 .
  • 高中數學:考前30天,掌握最有效的複習方法,值得看的乾貨分享
    今天小編作為一個高考過來人,給學弟學妹支招,讓大家都能考上自己心儀的大學,前程似錦! 離高考不到30天,如何利用好這最後的一個月?那就是-找到更有效的複習方法!用比別人快一倍的速度去複習更多的知識。(偷偷告訴你,文末還有北大博士邱崇詳細講解的數學秒殺技巧視頻,不要錯過哦)。
  • 一文詳解深度學習中的Normalization:BN/LN/WN
    什麼是 ICS 呢?@魏秀參 在一個回答中做出了一個很好的解釋:大家都知道在統計機器學習中的一個經典假設是「源空間(source domain)和目標空間(target domain)的數據分布(distribution)是一致的」。