《Deep Residual Learning for Image Recognition》翻譯

2015年

原文:https://arxiv.org/abs/1512.03385

截圖源自:原文

plain network:普通網絡(原文提出)

摘要

更深的神經網絡更難以訓練。我們提出了一個殘差學習框架來減輕網絡的訓練,這些網絡比以前使用的網絡要深得多。我們明確地將層次重新定義爲參照層次輸入學習殘差功能,而不是學習未引用的功能。我們提供全面的經驗證據,顯示這些殘留網絡更容易優化,並且可以從深度增加中獲得準確性。在ImageNet數據集上,我們評估了深度達152層的殘餘網絡,其深度比VGG網絡深[8],但仍然具有較低的複雜度。這些殘差網絡的集合在ImageNet測試集上達到3.57%的誤差。這一成績贏得了ILSVRC 2015分類任務的第一名。我們還分析了100和1000層的CIFAR-10。
表示的深度對於許多視覺識別任務來說具有核心重要性。完全由於我們極其深層的表示,我們對COCO目標檢測數據集獲得了28%的相對改進。深度殘留網絡是我們提交ILSVRC&COCO 2015比賽1的基礎,我們還在ImageNet檢測,ImageNet本地化,COCO檢測和COCO分割任務中贏得了第一名。

1.引言

深卷積神經網絡[22,21]已經爲圖像分類帶來了一系列突破[21,50,40]。深度網絡自然地以端到端的多層方式集成了低/中/高級特徵[50]和分類器,並且特徵的“水平”可以通過堆疊層數(深度)來豐富。最近的證據[41,44]揭示了網絡深度是至關重要的,並且在具有挑戰性的ImageNet數據集[36]中的主要結果[41,44,13,16]都利用“非常深”的[41]模型,深度十六[41]至三十[16]。許多其他非平凡的視覺識別任務[8,12,7,32,27]也從非常深的模型中獲益匪淺。

受深度意義的驅動,出現了一個問題:學習更好的網絡就像堆疊更多層一樣簡單嗎?回答這個問題的一個障礙是臭名昭着的消失/爆發梯度問題[1,9],這阻礙了從一開始的融合。然而,這個問題已經基本上通過歸一化初始化[23,9,37,13]和中間歸一化層[16]來解決,這使得具有數十個層的網絡開始收斂以用於反向傳播的隨機梯度下降(SGD) [22]。

當更深的網絡能夠開始收斂時,就會出現退化問題:隨着網絡深度的增加,準確度變得飽和(這可能不令人意外),然後迅速退化。出乎意料的是,這種退化不是由過擬合引起的,並且向適當深度的模型中添加更多層會導致更高的訓練錯誤,如[11,42]中所報告並且我們的實驗已經完全驗證。圖1顯示了一個典型的例子。


退化(訓練準確性)表明並非所有系統都同樣易於優化。讓我們考慮一個更淺的架構和更深層次的架構,在其上添加更多層。在深層模型中存在一個解決方案:增加的層是恆等映射,其他層是從學習的淺層模型複製的。這個構建的解決方案的存在表明,深層模型不應該比淺層模型產生更高的訓練誤差。但是實驗表明,我們目前的求解器無法找到比構建的解決方案相當好或更好的解決方案(或在可行時間內無法這樣做)。

在本文中,我們通過引入深度殘差學習框架來解決退化問題。除了希望每個堆疊層都直接適合所需的底層映射外,我們明確地讓這些層適合殘差映射。形式上,將期望的底層映射表示爲H(x),我們讓堆疊的非線性層適合F(x)的另一個映射:= H(x) - x。原始映射重寫爲F(x)+ x。我們假設優化殘差映射比優化原始的,未引用的映射更容易。極端情況下,如果身份映射是最優的,那麼將殘差推到零比通過一堆非線性層適合身份映射更容易。


F(x)+ x的公式可以通過具有“捷徑連接”的前饋神經網絡來實現(圖2)。快捷方式連接[2,34,49]是跳過一個或多個圖層的連接。在我們的例子中,快捷方式連接只需執行標識映射,並將其輸出添加到堆疊層的輸出中(圖2)。身份快捷連接既不增加額外的參數,也不增加計算複雜性。整個網絡仍然可以通過反向傳播以SGD進行端對端培訓,並且可以使用通用庫(例如Caffe [19])輕鬆實施,而無需修改解算器。

我們在ImageNet上展示全面的實驗[36]來展示退化問題並評估我們的方法。 我們表明:1)我們極深的殘餘網絡很容易優化,但當深度增加時,對應的“簡單”網絡(即簡單疊加層)表現出更高的訓練誤差; 2)我們的深度殘餘網絡可以通過大大增加的深度輕鬆獲得準確性收益,產生的結果大大優於以前的網絡。

類似的現象也在CIFAR-10集[20]上顯示,這表明我們的方法的優化困難和影響不僅僅是類似於特定的數據集。 我們在這個數據集上提供了超過100層的成功訓練模型,並探索超過1000層的模型。

在ImageNet分類數據集[36]中,我們通過非常深的殘餘網絡獲得了極好的結果。我們的152層殘留網絡是有史以來在ImageNet上提供的最深的網絡,但仍比VGG網絡複雜度低[41]。我們的團隊在ImageNet測試集中出現了3.57%的前5名錯誤,並在ILSVRC 2015分類競賽中獲得了第一名。在其他識別任務中,這些非常深刻的表達也具有出色的泛化性能,並使我們在ILSVRC和COCO 2015比賽中進一步贏得了第一名:ImageNet檢測,ImageNet本地化,COCO檢測和COCO分割。這一有力證據表明,殘留學習原則是通用的,我們期望它適用於其他視覺和非視覺問題。

2.相關工作

殘差表示 在圖像識別中,VLAD [18]是一個由殘差向量對字典進行編碼的表示形式,Fisher Vector [30]可以表示爲VLAD的概率形式[18]。它們都是圖像檢索和分類的強大淺層表示[4,48]。對於矢量量化,編碼殘差向量[17]顯示比編碼原始向量更有效。

在低層視覺和計算機圖形學中,對於求解偏微分方程(PDE),廣泛使用的多重網格方法[3]將系統重新定義爲多尺度的子問題,其中每個子問題都對殘差解產生影響在較粗的和較細的比例之間。多重網格的一種替代方法是基於預定條件的分層基礎[45,46],它依賴於代表兩個尺度之間的殘差向量的變量。已經表明[3,45,46],這些求解器比不知道解的剩餘性質的標準求解器收斂得快得多。這些方法表明良好的重新配方或預處理可以簡化優化。

捷徑連接(跳遠連接)長期以來一直在研究導致捷徑的實踐和理論[2,34,49]。培訓多層感知器(MLP)的早期實踐是添加從網絡輸入連接到輸出的線性層[34,49]。在[44,24]中,幾個中間層直接連接到輔助分類器,以解決消失/爆炸梯度。 [39,38,31,47]的論文提出了通過快捷連接來實現層中響應,梯度和傳播錯誤的方法。在[44]中,“初始”層由一個快捷分支和幾個更深的分支組成。

與我們的研究同時,“高速公路網絡”[42,43]提供了與門控功能的快捷連接[15]。這些門依賴於數據並且具有參數,與我們的無參數的身份快捷鍵相反。當門控捷徑“閉合”(逼近零)時,高速公路網絡中的層代表非殘餘功能。相反,我們的公式總是學習剩餘函數;我們的身份捷徑永遠不會關閉,並且所有信息總是通過,還有其他剩餘功能需要學習。另外,高速公路網絡還沒有表現出精確度的提高,並且深度增加了很多(例如超過100層)。

3.深度殘差學習

3.1殘差學習

讓我們考慮H(x)作爲一個底層映射,以適合幾個堆疊層(不一定是整個網絡),其中x表示輸入到這些層中的第一層。如果假設多個非線性層可以漸近逼近複雜函數2,那麼它就等於假設它們可以漸近地逼近殘差函數,即H(x) - x(假設輸入和輸出是尺寸相同)。因此,不是期望堆疊層接近H(x),我們明確地讓這些層接近剩餘函數F(x):= H(x) - x。原始函數因此變成F(x)+ x。儘管兩種形式都應該能夠漸近地接近理想的功能(如同假設),但學習的難易可能不同。

這種改寫是由於有關退化問題的違反直覺現象的動機(圖1,左圖)。正如我們在引言中所討論的那樣,如果增加的層可以被構建爲身份映射,那麼更深的模型應該具有不超過其較淺的對立部分的訓練錯誤。退化問題表明解算器在通過多個非線性層來近似身份映射方面可能有困難。利用殘差學習重組,如果身份映射是最優的,那麼解算器可以簡單地將多個非線性層的權重推向零以接近恆等映射。

在實際情況下,恆等映射不太可能是最佳的,但我們的重組可能有助於預先解決問題。如果最優函數比零映射更接近恆等映射,那麼解算器應該更容易參照恆等映射來找到擾動,而不是將函數學習爲新函數。我們通過實驗(圖7)表明,學習的殘差函數通常具有較小的響應,這表明恆等映射提供了合理的預處理。

3.2通過捷徑進行恆等映射

我們對每幾個堆疊層採用殘差學習。一個構建模塊如圖2所示。在本文中,我們認爲一個構建模塊定義爲:

y = F(x,{Wi})+ x (1)

這裏x和y是所考慮層的輸入和輸出向量。函數F(x,{Wi})表示要學習的殘差映射。對於圖2中有兩層的例子,F = W2σ(W1x)  其中σ表示ReLU [29],爲了簡化註釋省略了偏差。操作F + x通過跳遠連接和元素相加執行。我們採用加法後的第二次非線性(即σ(y),見圖2)。

公式(1)中的捷徑連接既不涉及外部參數也不涉及計算複雜度。這不僅在實踐中很有吸引力,而且在我們對普通網絡和殘差網絡進行比較時也很重要。我們可以公平地比較同時具有相同數量的參數,深度,寬度和計算成本的普通/殘差網絡(除了可忽略的元素相加)。

公式(1)中x和F的維數必須相等。如果不是這種情況(例如,當改變輸入/輸出通道時),我們可以通過捷徑連接執行線性投影Ws以匹配尺寸:

y = F (x, {Wi }) + Ws x.(2)

我們也可以在方程(1)中使用方矩陣Ws。但是我們將通過實驗證明,恆等映射足以解決退化問題並且是有效的,因此Ws僅在匹配維度時使用。

剩餘函數F的形式是靈活的。本文中的實驗涉及具有兩層或三層的函數F(圖5),而更多層也是可能的。但是,如果F只有一個層,方程(1)類似於線性層:y = W1 x + x,對此我們沒有觀察到優勢。

我們還注意到,儘管爲了簡單起見上述符號是關於全連接層,但它們適用於卷積層。函數F(x,{Wi})可以表示多個卷積層。元素相加是在兩個特徵圖上逐個通道執行的。

3.3網絡架構

我們測試了各種普通/殘餘網絡,並觀察到一致的現象。爲了提供討論的實例,我們描述了兩個ImageNet模型,如下所示。

普通網絡 我們的普通基線(圖3,中)主要受VGG網絡[41]的哲學啓發(圖3左)。 卷積層主要有3×3濾波器,並遵循兩個簡單的設計規則:(i)對於相同的輸出特徵圖大小,層具有相同數量的濾波器; (ii)如果特徵映射大小減半,則濾波器的數量加倍以保持每層的時間複雜度。 我們直接採用跨度爲2的卷積層執行下采樣。網絡以全局平均池層和具有softmax的1000路全連接層結束。 圖3(中)的加權圖層總數爲34。

值得注意的是,我們的模型比VGG網絡有更少的卷積核和更低的複雜性[41](圖3左)。我們的34層基線擁有36億FLOP(乘加),僅爲VGG-19(196億FLOP)的18%。

殘差網絡 基於上述普通網絡,我們插入捷徑(圖3,右),將網絡變成其對應的殘差版本。當輸入和輸出具有相同的尺寸時(圖3中的實線快捷方式),可以直接使用恆等快捷方式(公式(1))。當尺寸增加時(圖3中的虛線快捷方式),我們考慮兩個選項:(A)快捷方式仍然執行恆等映射,爲增加尺寸填充額外的零條目。該選項不會引入額外的參數; (B)公式(2)中的投影捷徑用於匹配尺寸(通過1×1卷積完成)。對於這兩個選項,當快捷鍵跨越兩種尺寸的特徵地圖時,它們將以2的步幅執行。

3.4實現

我們的ImageNet實現遵循[21,41]中的實踐。圖像的縮放比例爲[256,480]中的短邊隨機採樣,用於縮放[41]。從圖像或其水平翻轉中隨機採樣224×224的作物,每像素平均值減去[21]。使用[21]中的標準顏色增強。我們在每次卷積之後和激活之前採用批量歸一化(BN)[16] [16]。我們如[13]初始化權重,並從頭開始訓練所有普通/剩餘網絡。我們使用SGD,最小批量爲256.學習率從0.1開始,在誤差平穩時除以10,模型訓練達60×104次迭代。我們使用0.0001的重量衰減和0.9的動量。按照[16]的做法,我們不使用輟學[14]。

在測試中,爲了進行比較研究,我們採用標準的10-crop測試[21]。爲獲得最佳結果,我們採用[41,13]中的完全卷積形式,並在多個比例下平均得分(圖像被調整大小,使得短邊在{224,256,384,480,640}中)。

4.實驗
4.1 ImageNet分類

我們在由1000個類組成的ImageNet 2012分類數據集[36]上評估我們的方法。這些模型在128萬訓練圖像上進行訓練,並對50k驗證圖像進行評估。我們還獲得了測試服務器報告的100k測試圖像的最終結果。我們評估top-1和top-5的錯誤率。

普通網絡 我們首先評估18層和34層普通網。圖3(中)是34層平網。 18層普通網的形式相似。詳細的體系結構,請參見表1。


表2中的結果表明,較深的34層普通網比較淺的18層普通網具有更高的驗證誤差。爲了揭示原因,在圖4(左)中我們比較了訓練過程中的訓練/驗證錯誤。我們觀察到了退化問題 - 儘管18層普通網絡的解空間是34層普通網絡的子空間,但整個訓練過程中34層平面網絡的訓練誤差更高。



我們認爲這種優化難度不大可能是由梯度消失引起的。這些普通網絡用BN [16]進行訓練,從而確保前向傳播信號具有非零差異。我們還驗證了向後傳播的梯度與BN具有健康的規範。所以前進和後退信號都不會消失。事實上,34層普通網仍然能夠達到競爭精度(表3),表明解算器在某種程度上起作用。我們推測,深普通網絡可能具有指數級低的收斂速度,這會影響訓練誤差的減少(3)。這種優化困難的原因將在未來研究。

殘差網絡 接下來我們評估18層和34層殘差網絡(ResNets)。基線體系結構與上述普通網絡相同,期望將一個捷徑添加到每對3×3濾波器,如圖3(右)所示。在第一個比較(表2和圖4右)中,我們對所有捷徑和零填充使用恆等映射來增加維度(選項A)。所以他們沒有額外的參數與普通的相比。

從表2和圖4中我們可以看到三個主要觀察結果。首先,殘差學習情況相反 - 34層ResNet優於18層ResNet(2.8%)。更重要的是,34層ResNet展示的訓練誤差相當低,並且可以通用於驗證數據。這表明在這種情況下退化問題得到了很好的解決,並且我們設法通過增加深度來獲得準確性。

其次,與其對應的普通網絡相比,34層ResNet將成功降低訓練誤差(圖4右側與左側)的結果降低了前1%的誤差3.5%(表2)。這種比較驗證了極深系統的殘差學習的有效性。

最後,我們還注意到,18層普通/殘差網絡相當準確(表2),但18層ResNet更快地收斂(圖4右側與左側)。當網絡“不太深”(這裏是18層)時,當前的SGD求解器仍然能夠找到對於普通網絡的良好解決方案。在這種情況下,ResNet通過在早期階段提供更快的收斂來簡化優化。

恆等映射與投影捷徑 我們已經證明,無參數恆等捷徑有助於訓練。接下來我們研究投影捷徑(公式(2))。在表3中,我們比較了三種選擇:(A)零填充快捷方式用於增加尺寸,所有捷徑都是無參數的(與右表2和圖4相同); (B)投影捷徑用於增加尺寸,其他捷徑是恆等; (C)所有捷徑都是預測。

表3顯示,所有三個選項都比普通的選項要好得多。 B稍好於A.我們認爲這是因爲A中的零填充維數確實沒有殘差學習。 C稍好於B,我們將其歸因於許多(十三)投影快捷方式引入的額外參數。但是A / B / C之間的小差異表明投影捷徑對解決退化問題並不重要。所以我們在本文的其餘部分不使用選項C來減少內存/時間複雜度和模型大小。恆等捷徑對於不增加下面介紹的瓶頸體系結構的複雜性非常重要。

更深的瓶頸架構 接下來我們介紹一下ImageNet的更深層次的網絡。由於擔心我們可以承受的訓練時間,我們將構建模塊修改爲瓶頸設計(4)。對於每個殘差函數F,我們使用3層而不是2層(圖5)。三層是1×1,3×3和1×1的卷積,其中1×1層負責減小並且隨後增加(恢復)尺寸,使得3×3層成爲具有較小輸入/輸出尺寸的瓶頸。圖5顯示了一個例子,其中兩個設計具有相似的時間複雜度。


無參恆等捷徑對於瓶頸架構尤爲重要。如果將圖5(右)中的標識替換爲投影,則可以顯示時間複雜度和模型大小加倍,因爲快捷方式連接到兩個高維端點。所以恆等捷徑可以爲瓶頸設計提供更高效的模型。

50層ResNet:我們用這個3層瓶頸塊替換34層網絡中的每個2層塊,產生50層ResNet(表1)。我們使用選項B來增加尺寸。這個模型有38億FLOP。

101層和152層ResNets:我們使用更多的3層塊構建101層和152層ResNets(表1)。值得注意的是,儘管深度顯着增加,152層ResNet(113億個FLOP)的複雜性仍然低於VGG-16/19網絡(15.3 / 19.6億FLOP)。


50/101/152層的ResNets比34層的ResNets更精確(表3和表4)。我們沒有觀察到退化問題,因此可以從深度上顯着增加顯着的準確度。所有評估指標都體現了深度的好處(表3和表4)。


與最先進的方法進行比較。在表4中,我們將比較以前的最佳單模型結果。我們的基線34層ResNets已經實現了非常有競爭力的準確性。我們的152層ResNet具有4.49%的單模型前5驗證錯誤。這種單模型結果優於以前的所有集合結果(表5)。我們將六個不同深度的模型組合在一起(在提交時只有兩個152層模型)。這導致測試集上的3.57%前5位錯誤(表5)。本條目贏得ILSVRC 2015第一名。

4.2 CIFAR-10和分析

我們對CIFAR-10數據集進行了更多的研究[20],其中包括10類的50k訓練圖像和10k測試圖像。我們提出在訓練集上訓練並在測試集上評估的實驗。我們關注的是極深網絡的行爲,而不是推動最先進的結果,所以我們故意使用如下簡單的體系結構。

普通/殘差體系結構遵循圖3(中/右)的形式。網絡輸入是32×32圖像,每像素平均值被減去。第一層是3×3的解決方案。然後,我們分別在尺寸爲{32,16,8}的特徵地圖上使用3×3個控制的6n層堆棧,每個特徵地圖尺寸爲2n個圖層。過濾器的數量分別爲{16,32,64}。子採樣是通過以2爲步長的卷積執行的。網絡以全局平均池,10路完全連接層和softmax結束。總共有6n + 2個堆疊的加權層。下表總結了架構:

當使用捷徑時,它們連接到3×3層(總共3n個快捷鍵)。 在這個數據集中,我們在所有情況下都使用恆等捷徑(即選項A),所以我們的殘差模型具有與普通模型完全相同的深度、寬度和參數數量。

我們使用0.0001的權重衰減和0.9的動量,並採用[13]和BN [16]中的權重初始化,但沒有丟失。這些模型在兩個GPU上以128個小批量進行訓練。我們從0.1的學習率開始,在32k和48k迭代時將其除以10,並且以64k迭代終止訓練,這是在45k / 5k訓練/驗證分分配。我們按照[24]中的簡單數據增量訓練:每邊填充4個像素,從填充圖像或其水平翻轉中隨機採樣32×32裁剪。對於測試,我們只評估原始32×32圖像的單個視圖。


我們比較n = {3,5,7,9},導致20,32,44和56層網絡。圖6(左)顯示了平網的行爲。深層普通網的深度增加,並且在深入時表現出更高的訓練誤差。這種現象與ImageNet(圖4左側)和MNIST(見[42])類似,表明這種優化難度是一個基本問題。

圖6(中)顯示了ResNets的行爲。與ImageNet案例類似(圖4,右圖),我們的ResNets設法克服優化難度,並在深度增加時提高準確度。

我們進一步探索導致110層ResNet的n = 18。在這種情況下,我們發現0.1的初始學習率稍大,開始收斂5。因此,我們使用0.01來預熱訓練,直到訓練誤差低於80%(大約400次迭代),然後返回到0.1並繼續訓練。其餘的學習時間表與以前一樣。這個110層網絡收斂良好(圖6,中間)。它比其他深度和精細網絡(如FitNet [35]和Highway [42](表6))的參數更少,但仍屬於最先進的結果(6.43%,表6)。


層表現分析 圖7顯示了層響應的標準偏差(std)。響應是每個3×3層的輸出,在BN之後和其他非線性(ReLU /加法)之前。對於ResNets,這個分析揭示了剩餘函數的響應強度。圖7顯示ResNets的響應總體上比他們的普通對象小。這些結果支持我們的基本動機(Sec.3.1):殘差函數可能通常比非殘差函數更接近於零。我們也注意到ResNet的深度越小,響應的幅度就越小,如圖7中ResNet-20,56和110的比較所證明的那樣。當有更多的層時,單獨的ResNets層往往會修改信號減。

探索超過1000層 我們探索超過1000層的積極深入模型。我們設置n = 200,導致1202層網絡,如上所述進行訓練。我們的方法沒有顯示優化難度,這個103層網絡能夠實現<0.1%的訓練誤差(圖6,右)。其測試錯誤仍然相當不錯(7.93%,表6)。

但是,這種積極深入的模型仍然存在一些問題。這個1202層網絡的測試結果比我們的110層網絡差,儘管兩者都有類似的訓練錯誤。我們認爲這是因爲過度配合。對於這個小數據集,1202層網絡可能不必要地大(19.4M)。使用強正則化如maxout [10]或dropout [14]來獲得該數據集的最佳結果([10,25,24,35])。在本文中,我們不使用maxout / dropout,而僅僅是通過設計的深度和精簡架構來實現規則化,而不會將注意力集中在優化的困難上。但結合更強的正規化可能會改善我們將來研究的結果。

4.3PASCAL和MS COCO上的對象檢測

我們的方法在其他識別任務上具有良好的泛化性能。表7和表8顯示了PASCAL VOC 2007和2012 [5]和COCO [26]的目標檢測基線結果。我們採用更快的R-CNN [32]作爲檢測方法。在這裏,我們感興趣的是用ResNet-101取代VGG-16 [41]的改進。使用這兩種模型的檢測實現(請參閱附錄)是相同的,所以收益只能歸因於更好的網絡。最顯着的是,在具有挑戰性的COCO數據集中,我們獲得了COCO標準指標(mAP @ [.5,.95])增加6.0%,這相對提高了28%。這種收益完全是由於學習的表現。

基於深度殘差網絡,我們在ILSVRC&COCO 2015比賽中贏得了多個賽道的第一名:圖像檢測,ImageNet本地化,COCO檢測和COCO分割。細節在附錄中。
發佈了18 篇原創文章 · 獲贊 12 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章