0
雷鋒網(wǎng)AI科技評論按:近日,F(xiàn)AIR 研究工程師吳育昕和研究科學(xué)家何愷明聯(lián)名著作的一篇論文 Group Normalization 提到了一種新的訓(xùn)練神經(jīng)網(wǎng)絡(luò)的方法。該方法稱為群組歸一化(Group Normalization),試圖以群組方式實現(xiàn)快速訓(xùn)練神經(jīng)網(wǎng)絡(luò),這種方法對于硬件的需求大大降低,并在實驗中超過了傳統(tǒng)的批量歸一化方法。
批量歸一化和群組歸一化
批量歸一化(Batch Normalization,以下簡稱 BN)是深度學(xué)習(xí)發(fā)展中的一項里程碑式技術(shù),可讓各種網(wǎng)絡(luò)并行訓(xùn)練。但是,批量維度進行歸一化會帶來一些問題——批量統(tǒng)計估算不準(zhǔn)確導(dǎo)致批量變小時,BN 的誤差會迅速增加。在訓(xùn)練大型網(wǎng)絡(luò)和將特征轉(zhuǎn)移到計算機視覺任務(wù)中(包括檢測、分割和視頻),內(nèi)存消耗限制了只能使用小批量的BN。在這篇論文中,作者巧妙提出了群組歸一化 Group Normalization (簡稱 GN) 作為 BN 的替代方案。
GN 將通道分成組,并在每組內(nèi)計算歸一化的均值和方差。GN 的計算與批量大小無關(guān),并且其準(zhǔn)確度在各種批量大小下都很穩(wěn)定。在 ImageNet 上訓(xùn)練的 ResNet-50 上,GN 使用批量大小為 2 時的錯誤率比 BN 的錯誤率低 10.6%;當(dāng)使用典型的批量時,GN 與 BN 相當(dāng),并且優(yōu)于其他標(biāo)歸一化變體。而且,GN 可以自然地從預(yù)訓(xùn)練遷移到微調(diào)。在進行 COCO 中的目標(biāo)檢測和分割以及 Kinetics 中的視頻分類比賽中,GN 可以勝過其競爭對手,表明 GN 可以在各種任務(wù)中有效地取代強大的 BN。在最新的代碼庫中,GN 可以通過幾行代碼輕松實現(xiàn)。
背景介紹
批量歸一化已被證實為深度學(xué)習(xí)中非常有效的組成部分,在很大程度上推動了計算機視覺領(lǐng)域的發(fā)展。許多實踐都證明了這一點,BN 使用(?。┡嬎愕木岛头讲顚μ卣鬟M行歸一化,以簡化優(yōu)化使非常深的網(wǎng)絡(luò)能夠融合。批量統(tǒng)計的隨機不確定性也可以作為一個正則化器,它可以適用于泛化。BN 一直是許多最先進的計算機視覺算法的基礎(chǔ)。
盡管 BN 取得了巨大的成功,但其存在的弊端也是由于其獨特的歸一化行為造成的。
圖1. ImageNet分類錯誤與批量大小的對比圖,這是一個ResNet-50模型,使用8張GPU卡在ImageNet訓(xùn)練集中進行訓(xùn)練,并在驗證集中進行評估。
特別是,BN 要求有足夠大的批量才能工作。小批量會導(dǎo)致批量統(tǒng)計數(shù)據(jù)的估算不準(zhǔn)確,并且減少 BN 的批量大小會顯著增加模型誤差(圖 1)。因此,最近的許多模型都是用較大的批量來進行訓(xùn)練的,這些大批量都是很耗費內(nèi)存的。反過來,訓(xùn)練模型時對 BN 有效性的高度依賴性阻礙了人們用有限內(nèi)存探索更高容量的模型。
計算機視覺任務(wù)(包括檢測、分割、視頻識別和其他基于此的高級系統(tǒng))對批量大小的限制要求更高。例如,F(xiàn)ast / er 和 Mask R-CNN 框架使用批量為 1 或 2 的圖像,為了更高的分辨率,其中 BN 通過變換為線性層而被「固定」;在 3D 卷積視頻分類中,時空特征的出現(xiàn)導(dǎo)致在時間長度和批大小之間需要作出權(quán)衡。BN 的使用通常要求這些系統(tǒng)在模型設(shè)計和批大小之間作出妥協(xié)。
本文提出群組歸一化(GN)作為 BN 的替代方案。作者注意到像 SIFT 和 HOG 這樣的許多經(jīng)典特征是分組特征并且包括分組規(guī)范化。例如,HOG 矢量是幾個空間單元的結(jié)果,其中每個單元由歸一化方向直方圖表示。同樣,作者提出 GN 作為一個層,將通道劃分為組,并對每個組內(nèi)的特征進行歸一化(圖 2)。GN 不用批量維度,其計算與批量大小無關(guān)。
GN 在大范圍的批量下運行都非常穩(wěn)定(圖 1)。在批量大小為 2 的樣本中,GN 比 ImageNet 中的 ResNet-50 的 BN 對應(yīng)的誤差低 10.6%。對于常規(guī)的批量規(guī)格,GN 與 BN 表現(xiàn)相當(dāng)(差距為 0.5%),并且優(yōu)于其它歸一化變體 。此外,盡管批量可能會發(fā)生變化,但 GN 可以自然地從預(yù)訓(xùn)練遷移到微調(diào)。在 COCO 目標(biāo)檢測和分割任務(wù)的 Mask R-CNN 上,以及在 Kinetics 視頻分類任務(wù)的 3D 卷積網(wǎng)絡(luò)上,相比于 BN 的對應(yīng)變體,GN 都能獲得提升或者超越的結(jié)果。GN 在 ImageNet、COCO 和 Kinetics 上的有效性表明 GN 是 BN 的有力競爭者,而 BN 在過去一直在這些任務(wù)上作為主導(dǎo)方法。
圖2
已有的方法,如層次歸一化(LN)和實例歸一化(IN)(圖 2),也避免了沿著批量維度進行歸一化。這些方法對訓(xùn)練序列模型(RNN / LSTM )或生成模型(GANs)是有效的。但正如論文中通過實驗表明的那樣,LN 和 IN 在視覺識別方面取得的成功是有限的,GN 可以提供了更好的性能表現(xiàn)。甚至,GN 可以用來替代 LN 和 IN,來適用于有序或生成模型。這超出了本文的研究重點,但它對未來的研究提供了啟示。
視覺表現(xiàn)的通道并不完全獨立。SIFT ,HOG 和 GIST 的典型特征是按設(shè)計分組表示的,其中每組通道由某種直方圖構(gòu)成。這些功能通常通過每個直方圖或每個方向上的分組歸一化進行處理。VLAD 和 Fisher Vector(FV)等更高級的特征也是群組特征,其中一組可以被認(rèn)為是相對于一個群集計算的子向量。
類似地,沒有必要將深層神經(jīng)網(wǎng)絡(luò)特征看作非結(jié)構(gòu)化向量。例如,對于網(wǎng)絡(luò)的 conv1(第一卷積層),期望濾波器及其水平翻轉(zhuǎn)在自然圖像上呈現(xiàn)類似的濾波器響應(yīng)分布是合理的。如果 conv1 碰巧近似學(xué)習(xí)這一對濾波器,或者如果通過設(shè)計將水平翻轉(zhuǎn)(或其他變換)設(shè)計為架構(gòu) ,則可以將這些濾波器的相應(yīng)通道一起歸一化。
越高層的圖層越抽象,它們的行為也不那么直觀。然而,除了方向(SIFT ,HOG )之外,還有許多因素可能導(dǎo)致分組,例如頻率,形狀,光照度和質(zhì)地,它們的系數(shù)可以相互依存。事實上,神經(jīng)科學(xué)中廣為接受的計算模型是在細(xì)胞反應(yīng)中歸一化 ,「具有各種感受野中心(包括視野)和各種時空頻率音調(diào);這不僅可以發(fā)生在初級視覺皮層,而且可以發(fā)生在「整個視覺系統(tǒng)」。受到這些研究的啟發(fā),我們提出了新的泛神經(jīng)網(wǎng)絡(luò)的泛型歸一化。
圖3
GN 可以通過 PyTorch 和 TensorFlow 中的幾行代碼輕松實現(xiàn),圖 3 顯示了基于 TensorFlow 的代碼。事實上,只需要指定如何計算均值和方差(「矩」),用歸一化方法定義的適當(dāng)?shù)淖鴺?biāo)軸。
實驗部分
在三個不同類型的數(shù)據(jù)集上做了實驗對比。分別是 ImageNet 中的圖像分類,COCO 中的對象檢測和分割,Kinetics 中的視頻分類。具體的實驗方法、實驗步驟,以及實驗結(jié)果,原論文中有詳細(xì)描述。
GN 在檢測,分割和視頻分類方面的改進表明,GN 對于當(dāng)前處于主導(dǎo)地位的 BN 技術(shù)而言是強有力的替代。
總結(jié)
論文中把 GN 作為一個有效的歸一化層且不用開發(fā)批量維度,同時也評估了 GN 在各種應(yīng)用中的行為表現(xiàn)。不過,論文作者也注意到,由于 BN 之前擁有很強的影響力,以至于許多先進的系統(tǒng)及其超參數(shù)已被設(shè)計出來。這對于基于 GN 的模型可能是不利的,不過也有可能重新設(shè)計系統(tǒng)或搜索 GN 的新超參數(shù)將會產(chǎn)生更好的結(jié)果。
此外,作者表明,GN 與 LN 和 IN 有關(guān),LN 和 IN 兩種歸一化方法在訓(xùn)練循壞(RNN / LSTM)或生成(GAN)模型中特別成功。這表明將來 GN 也會研究這些領(lǐng)域。另外作者還將探索 GN 在強化學(xué)習(xí)(RL)任務(wù)學(xué)習(xí)表征方面的表現(xiàn),其中 BN 在訓(xùn)練非常深的模型中起著重要作用 。
論文地址:https://arxiv.org/abs/1803.08494
雷鋒網(wǎng)
雷鋒網(wǎng)原創(chuàng)
雷峰網(wǎng)特約稿件,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。