Deep Residual Learning for Image Recognition(翻譯)

論文地址

基於深度殘差學習的圖像識別

摘要

更深入的神經網絡是更難去訓練的。我們呈現一個殘差學習框架來簡化那些明顯比過去深入的使用神經網絡訓練。我們通過重新制定層次作爲涉及層輸入的學習剩餘函數,而不是學習未涉及到的功能。我們提供全面的經驗證據來證明這些殘差神經網絡是更加容易得到的,並且可以從增加深度中來獲取精確度。在ImageNet數據集中,我們可以通過把深度提高到152層來預估殘差神經網絡,這雖然比VGG網絡深度增強8倍,但仍然存在複雜度低的問題。這些殘差神經網絡的整體在ImageNet網絡的測試中達到3.57%的錯誤率。這個結果在ILSVRC 2015年分批任務中贏得了第一名。我們也對 CIFAR-10的100層到1000層進行了分析。

對於許多視覺識別任務來說,表示的深度具有絕對的重要性。僅僅由於我們儘可能深入的表示,我們在COCO項目檢測數據庫中獲得了一個28%的相關提升。深度殘差網絡使我們加入2015年的ILSVRC和COCO競爭的基本條件,在這次競賽中,我們可以在 ImageNet 檢測、 ImageNet 定位、COCO檢測和COCO分配這些任務中贏得第一名。

1. 介紹

深度卷積神經網絡已經在圖像分類方面取得了一系列的突破。深度網絡通常整合了在端到端的仿真功能中的低、中、高三個等級的特徵和類別,並且這個等級的特徵可以通過摺疊層的數量來豐富。最近的結果表明,網絡路徑至關重要,並且促使ImageNet數據集中的先進結果都通過16層到30層的深度探索了非常深的模型。許多其他的視圖識別任務也極大的受益於非常深的模型。

受深度的重要性的影響,一個問題產生了:學習更好的網絡是否和摺疊更多的層次一樣簡單?回答這個問題的一個障礙就是困擾了很久的消失的/爆炸的梯度問題,這從根源阻礙了變化趨勢。可是,這個問題已經極大地被標準初始化和中間初始化解決了,這使得十層網絡能夠在反向傳播中收斂到隨機梯度降低。

當更深入的網絡開始收斂,一個退化問題暴露出來:隨着網絡深度增加,精確度會飽和(這似乎並不足爲奇),並且之後快速退化。令人意外的是,正如在我們實驗中的徹底變化報道中所說,這種退化並不是由於過度適配造成的,並且增加更多的層給一個合適的深度模型會導致更高的訓練誤差。Fig.1展示一個典型的例子。
在這裏插入圖片描述
圖1. 20層和56層“plain“網絡在CIFAR-10的 訓練誤差(左邊)和測試誤差(右邊)。更深入的網絡有着更高的訓練誤差和測試誤差。在Fig.4中的ImageNet也存在相似的現象。

這種退化(關於訓練準確度)表明並不是所有的系統都非常容易去優化。讓我們考慮一個更淺顯的體系結構以及在它的更深入對比上增加更多層次。有一種可以通過構建深度模型的解決方法:增加的層次是恆等映射,其他的層次從淺度學習模型上覆制。這個構建的解決方法的存在表明,一個深度模型不應該生成比淺度內容更高的訓練誤差。但是實驗顯示,我們當前的手頭上的方案並不能發現和構建解決方案一樣好或者更好的方法(或者在目前時間無法做到)。

在本文中,我們通過介紹一個深度殘差信息框架來強調了退化問題。我們確切地讓這些層次擬合映射,而不是讓每一個堆積的層次直接擬合一個底層映射。正式的,採用底層映射作爲H(x),我們讓堆積非線性層次擬合另一種映射;F(x):=H(x)-x。普遍的映射會重新到F(x)+x。我們假設優化殘差映射要比優化普遍的、未涉及到的映射簡單的多。確切的說,如果一個恆等映射是可優化的,比起通過非線性層次的堆積來擬合一個恆定映射,推動殘差趨於零將更容易實現。
在這裏插入圖片描述
圖二: 殘差學習:一個構建單元

函數F(x)+x可以通過帶有捷徑連接的正反饋神經網絡來實現(如圖2)。捷徑連接[2,34,49]就是那些跳過的一個或多個層次。一般情況下,短期連接僅僅表現爲恆定映射,且它們的輸出被添加在堆積層的輸出中。恆定映射捷徑連接既不添加額外的參數r也不增加計算性的複雜度。它的全部工作仍然可以被SGD反向傳播訓練端到端相連,也可以使用庫來簡單完成而不用修改方案。

我們呈現對ImageNet的理解性試驗來表明退化問題和評估我們的方法。我們展示了以下內容:(1)我們的深度殘差網絡很容易去優化,但是對比“計劃”網絡(僅僅指的是堆積層次)當深度增加時出現了更高的訓練誤差;(2)我們的和深度殘差網絡可以簡單地享受從增加的深度中獲得的準確度,產生結果大大好於過去的神經網絡。

在CIF-10設置中也出現了相似的現象,說明我們方法的優化難度和影響不僅僅起因於特殊的數據集。我們用超過100層神經網絡成功展現了在數據集的訓練模型,並用這100層網絡中探索了模型。

在ImageNet分類數據集中,我們通過深度殘差網絡獲得了很好地結果。我們的152層殘差網絡是曾經在ImageNet中曾鮮過的最深的網絡,然而它的複雜度仍然低於VGG網絡。我們猜測在ImageNet測試設置中上有3.57%的誤差,並且在2015奶奶上午ILSVRC分類競賽中贏得第一名。極端深度的描述在其他識別測試中也有極好的表現,並且也帶領我們未來在以下領域贏得第一名:在ILSVRC和2015年COCO競賽中的ImageNet探測、ImageNet本地、COCO探測和COCO分配。這個強有力的證據表明殘差學習準則是普遍的,且我們期望它在其他視覺或者非視覺問題中都是可實現的。

2.相關工作

殘差描述 在圖像識別中,VLAD是通過基於字典的殘差向量來進行編碼的,Fisher向量可以被認爲是一個VLAD的概率版本。他們兩個都是很好的用於圖像檢索和分類的淺層描述。對於向量量化,殘差向量的編碼要比編碼原始向量更有效。

在低級視覺和計算機圖像中,爲了解決偏微分方恆問題,廣泛應用多重網絡方法在系統中構建多領域中的子問題,每一個子問題都負責解決粗粒度和細粒度之間的殘差。一個多層的額外選擇是用級聯預基礎[45,46]來處理,它基於表示在兩至尺度之間的不同的殘差向量。在文獻[3,45,46]中顯示,這些解決方法比標準的不考慮殘差的解決方法更加迅速。這些方法表明一個好的模型或者預處理可以簡化優化過程。

捷徑連接 基於實踐和理論帶領的捷徑連接已經被研究了相當長時間。早期的關於訓練多層感知器網絡的實踐包括通過在網絡的輸入層和輸出層之間增加一個線性層。在文獻[44, 24]中,少量的中間層被直接連接到了附加的分類器來解決梯度消失或梯度爆炸的問題。文獻[39, 38, 31, 47]則提出了層響應置中、梯度和傳播誤差,是採用的捷徑的連接。在文獻[44]中,一種叫做“開端”層的由捷徑分支和少量較深的分支組成。

和我們同期的工作也有一些,文獻[42, 43]提出的“高速公路網絡”展示了通過門函數的捷徑連接。這些門函數是數據相關的且需要進行參數調整,對比而言,我們的恆等捷徑是無需調參的。當門捷徑“關閉”(趨零)時,高速公路網絡中的層表示是非殘差函數。相反的,我們通常學習殘差函數;我們的恆等捷徑從不關閉,因此所有信息總是通過學習殘差函數傳送。此外,高速公路網絡也沒有演示出隨着網絡深度很大程度的加大,準確率會不會也得到提高。

3 深度殘差學習

3.1 殘差學習

讓我們考慮H(x)是一個將通過一些堆疊的網絡層(不需要一定是整個網絡)進行映射關係的擬合,用x表示對這些層中第一層輸入。假設多層非線性層次可以逐漸近似複雜函數的假設等價於它可以漸進的逼近殘差函數,即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是通過捷徑連接和逐元素的相加。我們在加法之後所得到的模型採用的是二階非線性(如圖2中的σ(y))。

在公式(1)中的捷徑連接並未引入額外的參數或計算複雜度。這不僅便於應用而且在我們對普通和殘差網絡進行對比時也尤爲重要,這樣我們可以公平對普通和殘差網絡在參數數量、深度、寬度和計算代價相同的情況下作比較(除了幾乎可以忽略不計的逐元素加法運算)。

在公式(1)中的x和F的維度必須相同,如果不是這樣(例如當輸入或輸出通道改變時),我們可以在捷徑連接上作一個線性項目Ws來解決維度問題:
y=F(x, {Wi })+Ws x      (2)

我們同樣也可以在公式(1)中使用方塊矩陣Ws。然而我們將通過實驗展示恆等映射就足以解決退化問題,並且是以一種經濟的形式。因此,Ws將僅僅被用來解決維數匹配的問題。

殘差函數F的形式是靈活的。本文實驗包括了F爲兩層或三層時的情形(圖5)。雖然更多的層次數量也是可行的,而當F僅有一層時,公式(1)將等同於一個線性層,即y=W1x+x,這樣一來就沒有什麼優勢可言了。

我們同時指出儘管上述的數學公式爲簡明起見都是對於全關聯層而言的。它們對於卷積層也同樣具有可行性,此時的函數F(x, {Wi })將表示多個卷積層,而逐元素的加法運算則是對於各通道中的兩個特徵圖的。

3.3 網絡結構

我們測試了多種類型的普通和殘差網絡,觀察到了很一致的現象。爲了給討論提供實證,接下來我們將描述應用於ImageNet數據集的兩種模型。

平凡網絡。我們的普通基準網絡(圖3-中圖)主要是受VGG網絡理論的啓發[41] (圖3-左圖)。卷積層大多爲3×3的濾波器並,且遵從下列兩條簡單的設計規則:(i)對於相應大小的輸出特徵圖尺寸,層中必須含有相同數目的濾波器;(ii)如果特徵圖尺寸減半時,則需要倍增濾波器數量來保持各層的時間複雜度。我們通過步長爲2的卷積層直接進行降採樣。最終的網絡包括了一個全局平均池化層和1000路softmax的全連接層。含有重量級的網絡層總計有34層(圖3-中圖)。

值得注意的是我們的模型相對於VGG網絡(圖3-左圖)包含了較少的濾波器並且具有較低的計算複雜度。我們層數爲34的網絡的基本計算量爲36億FLOPs (包括乘法運算和加法運算),大約僅爲VGG-19(196億FLOPs)的18%。

圖3 針對ImageNet的網絡架構樣例
左:作爲對比的VGG-19模型[41](196億FLOPs)
中:含有權重參數的層數爲34的平凡網絡(36億FLOPs)
右:含有權重參數的層數爲34的殘差網絡(36億FLOPs)
點畫線所標記的捷徑上作了升維操作。表1中展示了更多的細節和其他變量。

殘差網絡。基於上述的平凡網絡,我們插入了一些捷徑連接(見圖3,右圖)後,則將網絡轉化爲與之對應的殘差版網絡。當網絡的輸入維度和輸出維度相等時可以直接應用公式(1)所示的恆等捷徑(圖3中的實線捷徑)。當維數增加時(圖3中的點畫線捷徑),我們考慮了兩種方法:(A)捷徑依然採用恆等映射,對於維數增加帶來的額外空缺元素補零,這種方法將引入額外的參數;(B)利用公式(2)所示的投影捷徑來選擇維數(通過1×1的卷積層實現)。對於這兩種方法,當捷徑連接了兩個尺寸的特徵圖時,它們將依步長2進行排布。

3.4 實現

我們對ImageNet的實現是根據[21, 41]的實踐。圖片按其短邊作等比縮放後按照[256,480]區間的尺寸隨機採樣進行尺度增強[41]。隨機的從圖像或其水平鏡像採樣大小爲224×224的剪裁圖像,並將剪裁結果減去像素均值[21]。進行標準色彩增強[21]。我們使用了批量正規化(Batch Normalization, BN)[16]。我們按照文獻[13]初始化網絡權重,分別從零開始訓練平凡網絡和殘差網絡。我們所採用的SGD的最小批量大小爲256。學習速率被初始化爲0.1,並且在每次遇到錯誤率平臺區時除以10,對各模型都迭代60萬次進行訓練。我們使用了權值衰減懲罰技術,其速率參數設爲0.0001,衝量參數設爲0.9。參考文獻[16]的實踐結果,我們並沒有使用dropout技術[14]。

在測試時,爲了對結果作對比我們採用了標準的10折測試[21]。爲了獲得最佳的結果,我們採用了文獻[41, 13]所使用的全連接卷積形式的網絡,最終結果爲對多個尺寸圖像(圖像分別等比縮放爲短邊長度{224,256,384,480,640})的實驗結果得分取平均值。

4 實驗

4.1 ImageNet分類數據集

我們對我們的方法進行了評估,包括了1000個分類的ImageNet 2012分類數據集[36]。各模型均利用128萬幅訓練圖像進行訓練,再利用5萬幅交叉驗證圖像進行評估。我們用10萬幅測試圖像得到最終結果,最終結果是由測試服務器報告的。我們還分別驗證了第1和前5的錯誤率。
  
**普通網絡。**我們首先對18層和34層的平凡網絡進行驗證。34層的平凡網絡如圖3(中圖)所示,18層的平凡網絡則與其形式類似。表1中給出了網絡架構的細節。
  
表2中的結果表明了較深的34層平凡網絡的交叉驗證錯誤率要高於較淺的18層平凡網絡。爲了揭示其原因,在圖4(左圖)中我們比較了訓練過程中訓練錯誤和交叉驗證錯誤的變化情況。我們觀察到了退化問題——在整個的訓練過程中,34層的平凡網絡的訓練誤差較高,儘管18層平凡網絡僅僅是34層平凡網絡的一部分。
在這裏插入圖片描述
表1 針對ImageNet的架構
工作塊的配置見方括號中(亦可見於圖5),幾種類型的塊堆疊起來構成網絡架構。降採樣採用的是步長爲2的conv3_1,conv4_1和conv5_1

在這裏插入圖片描述
表2 對ImageNet數據集作交叉驗證時的最大錯誤率(%,10折測試)
此處的殘差網絡沒有在其對應的平凡網絡中引入新的參數變量,圖4展示了訓練過程

在這裏插入圖片描述
圖4 用ImageNet數據集進行訓練
細線指明瞭訓練誤差的變化情況,粗線則指明瞭交叉驗證錯誤率的變化情況
左圖:18層和34層平凡網絡的情況
右圖:18層和34層殘差網絡的情況
在本圖中,殘差網絡沒有在其對應的平凡網絡中引入新的參數變量

我們認爲這種模型優化困難不大可能是由於梯度消失造成的。這些平凡網絡的訓練是基於BN[16]的,這保證了前向傳播信號的變異係數不爲零值。同時,我們確認了在BN求解時的反向傳播過程中的梯度值是正常的。即無論是前向傳播還是反向傳播過程中的信號都沒有出現梯度消失的現象。事實上,34層的平凡網絡仍然可以獲得有競爭力的精度值(見表3),這某種意義上表明這個方法是可行的。我們猜測深度平凡網絡可能潛在的具有較低的收斂速率,而這不利於訓練誤差的降低。未來還將進一步探究這種優化困難的原因。
在這裏插入圖片描述
表3 對ImageNet數據集進行交叉驗證時的錯誤率(%,10折測試)
VGG-16是基於我們的測試。ResNet-50/101/152測試採用B方法僅適用投影法來增加維數
在這裏插入圖片描述
表4 單個模型對ImageNet數據集進行交叉驗證時結果的錯誤率(%)(除了帶有標記的那個是對於測試集的)

在這裏插入圖片描述
表5 組合模型的錯誤率(%)
前5的錯誤率是由測試服務器彙報的對於ImageNet測試集的

**殘差網絡。**現在我們來驗證18層和34層的殘差網絡(Residual Nets, ResNets)。殘差網絡的基本結構和上述的平凡網絡是相同的,除了在每對3×3的過濾器間增加了捷徑連接(圖3(右圖))。在第一個對比中(表2和圖4(右圖)),我們在所有的捷徑使用恆等映射並且對多出的維度補零(方案A),因此相對所基於的平凡網絡並沒有引入新的參數。

針對表2和圖4,我們有3個主要的觀察。首先,在使用殘差學習方法時情況發生了好轉——34層的殘差網絡的效果優於18層的殘差網絡(提高了約2.8%)。更重要的是,34層的殘差網絡的訓練誤差對於交叉驗證數據具有泛化能力。這表明退化問題在這種情況下被較好的控制了,即我們能夠在增加網絡深度時獲得更高的準確率。

其二,相比於所基於的平凡網絡,34層的殘差網絡降低了約3.5%的最大錯誤率(見表2),這是得益於訓練誤差的成功降低(對比圖4(右圖)和圖4(左圖))。這個對比證實了殘差學習對於深度學習系統是有效的。
  
最後,我們認爲18層的平凡和殘差網絡的準確度是接近的(見表2),然而18層的殘差網路的收斂速度更快一些(對比圖4中的右圖和左圖) 。當網絡不是“太深”時(這裏是18層),現有的SGD求解方法仍然可以在平凡網絡上得到一個較好的結果。在這種情形下,殘差網絡通過使得加快了在訓練初期的收斂速度方便了模型的優化。

恆等快捷連接(identity shortcut)和投影快捷連接(projection shortcut)的對比。我們已經展示了無需參數的恆等映射快捷連接是有助於訓練的。下面我們看一下投影快捷連接(公式(2))。在表3中我們對比了三個方案:(A)利用補零快捷連接進行升維,所有快捷連接都無需參數(和表2及圖4(右圖)一樣);(B)用投影快捷連接進行升維,同時其他快捷連接採用恆等映射;©所有的快捷連接均爲投影連接。

表3展示了3種方案均優於平凡網絡,B略優於A。我們認爲這是由於A方案中的補零方法所獲得的維數並沒有殘差學習。方案C較多的優於方案B,我們認爲這是由於投影快捷連接中額外引入的若干參數(30個)導致的。然而,方案A、B、C見的差異不大也表明了投影快捷連接並不是解決退化問題的關鍵。因此,爲了降低存儲和時間複雜度以及模型大小,我們在後文中並沒有採用方案C。恆等快捷方式對於不增加下文將介紹的瓶頸架構複雜度尤爲重要。

深度瓶頸架構。我們接下來將描述我們針對ImageNet數據集而涉及的深度學習網絡。因爲我們需要考慮到我們能夠接受的訓練時間,我們將單元塊的設計改爲了所謂瓶頸式的設計[4]。對於每個殘差函數F,我們採用3個網絡層來對其進行描述(如圖5),3個網絡層次分別爲1×1,3×3和1×1的卷積層,這裏11的層是用來減少或增加(恢復)維度的,這使得那個3×3的層如同瓶頸一般具有較小的輸入和輸出維度。圖5中給出了一個例子,這些設計具有相同的時間複雜度。

無需進行參數調整的恆等快捷連接對於瓶頸架構非常重要。如果將圖5(右圖)的恆等快捷連接替換爲投影快捷連接,可見當快捷連接被連接到兩個高維的端點時,時間複雜度和模型尺寸都翻倍了。因此恆等快捷連接使得所設計的瓶頸結構更加有效。

50層的殘差網絡:我們將34層網絡中的每2層一組構成的塊替換爲這種3層的瓶頸塊,得到了一個50層的殘差網絡(表1)。我們使用方案B來作升維。這個模型的基礎計算量爲38億FLOPs。

101層和152層的殘差網絡:我們利用表1所述的3層塊構建101層和152層的殘差網絡。值得一提的是,儘管網絡深度增加了很多,152層的殘差網絡(113億FLOPs)比VGG-16/19網絡(153/196億FLOPs)的時間複雜度更低。

50/101/152層的殘差網絡比34層的殘差網絡的準確度有顯著提高(見表3和表4)。我們沒有觀察到退化問題並且隨着網絡的加深取得了明顯的準確率增長。由表3和表4可以觀察到由深度增加帶來的各方面好處。
  
與先進方法的對比。在表4中我們已經與當前最好的單模型結果進行了比較。我們採用的34層基準殘差網絡獲得了具有競爭力的準確度。我們的152層單模型殘差網絡對於前五的驗證錯誤爲4.49%。這個單模型結果超過了所有先前的綜合模型獲得的結果(見表5)。我們組合了6個不同深度的模型組成一個綜合模型(在模型提交時僅使用了兩個152層),對於表5所示的測試集獲得了3.57%的前五錯誤率。這個結果獲得了ILSVRC 2015的第一名。

4.2 對CIFAR-10數據集的結果和分析

我們對CIFAR-10數據集[20]進行了進一步的研究,它包括了分爲10類的5萬的訓練圖像和1萬的測試圖像。我們展示了利用訓練集進行訓練和利用測試集進行驗證的實驗。我們所針對的極深網絡的行爲,而不是推進最先進方法的結果,因此我們主要是使用下述的簡單網絡架構。

簡單和殘差網絡結構遵從圖3(中圖和右圖)。這個網絡的輸入爲32×32的圖像,每個圖像的數據都減去了像素均值。第一層是一個3×3的卷積層。然後我們對於尺寸分別爲{32, 16, 8}的特徵圖分別使用一組包括了6n個3×3卷積層,對於每個尺寸的特徵圖使用2n個層,即過濾器的數量分別爲{16, 32, 64}。降採樣是通過步長爲2的卷積進行的。這個網絡終止於一個全局的平均化池,一個10路的全連接層和一個softmax層。以上共計有6n+2層權重層。下表小結了該網絡架構:

在這裏插入圖片描述
在使用快捷連接的地方,它連接了一組3×3的網絡層(總計有3n個快捷連接)。在該數據集上我們對於各情形使用的均是恆等快捷方式(即方案A)。
在這裏插入圖片描述
表6 對於CIFAR-10測試集的分類錯誤
表中方法都進行了數據增強。對於ResNet-110,我們效仿文獻[43]將算法重複運行了5次,並且展示了所得結果的最優值(最優的mean+std)。

因此我們的殘差模型與它所源於的平凡網絡具有完全相同的深度、快讀和參數數量。

我們使用的權重損失參數爲0.0001,衝量參數爲0.9,並且我們採用文獻[13]的方法初始化權重值和BN[16]方法進行網絡訓練,但不採用dropout技術。這些模型在2個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(中圖)展示了殘差網絡的表現,也和對ImageNet數據集的案例情形類似(圖4(右圖)),我們的殘差網絡成功克服了優化難度問題,並展示了隨着深度的增加準確度也跟着增加。

我們進一步研究當n=18時對應的110層殘差網絡。在這個情形下,我們發現初始學習速率設置爲0.1對於網絡收斂而言有些過大了。因此我們採用0.01的初始學習速率來進行熱身學習直到訓練錯誤低於80%(大約400次迭代以後),然後回到0.1的學習速率繼續訓練。其餘的訓練方案和前文類似。這個110層的網絡很好的收斂了(圖6(中圖))。它的參數數量要少於諸如FitNet[35]和Highway[42]等其他較深的網絡或較淺的網絡(表6),然而其結果不亞於先進算法的結果(爲6.43%,見表6)。
在這裏插入圖片描述
圖6 對CIFAR-10數據集進行訓練
點畫線表示訓練誤差,粗線表示測試誤差
左圖:平凡網絡。110層的平凡網絡的錯誤率超過60%因此並未展示
中圖:殘差網絡
右圖:具有110層和1202層的殘差網絡
在這裏插入圖片描述
圖7 對CIFAR-10的層響應標準差(std)
這些響應是3×3層的輸出,在BN和非線性化之前
上圖:各層按照原始次序展示
下圖:響應按照降續排列

網絡層響應分析。圖7展示了層響應的標準差(std)。響應是指的每個3×3層的輸出值,在BN之後以及其他非線性層(ReLU/addition)之前。對於殘差網絡而言,分析結果表示出了殘差函數的響應強度的變化情況。圖7展示了殘差網絡通常比其它所對應的平凡網絡具有較小的響應。這些結果支持了我們的原始動機(見本文3.1節),即殘差函數一般可能比非殘差函數更接近於零值。同時,我們通過對於圖7中20層、56層和110層殘差網絡數據的比較,也注意到層次較深的殘差網絡的響應值較小。也就是說,層次越多,則殘差網絡中的每個層次對於信號的改變越小。

超過1000層網絡的探索。我們探索了一個超深的超過1000層的深度學習模型。這裏我們設置n=200即網絡層數爲1202層,訓練過程如上所述。我們的方法表明沒有出現優化困難,利用這個千層的網絡得到了小於0.1%(圖6(右圖))的訓練誤差。而測試誤差也相當不錯(爲7.93%,見表6)。

然而,對於這種超深的網絡還是存在一些未決的問題。對於1202層網絡的測試結果要劣於110層網絡的測試結果,儘管兩者的訓練誤差是相仿的。我們認爲這是由於過擬合造成。1202層的網絡相對於它的數據集尺寸來說可能大(19.4M)的有點沒有必要了。諸如maxout[10]和dropout[14]等強力的正則化方法通常被用來對於這個數據集獲取最優的結果([10, 25, 24, 35])。在本文中,我們並未採用maxout/dropout,設計上而言是爲了僅通過增大或減少網絡結構的深度來引入正則化,且不偏離所針對的優化困難的問題。然而結合更強的正則化方法對結果進一步改善,我們將在未來研究。
在這裏插入圖片描述
表7 利用基線方法Faster R-CNN對於PASCAL VOC物品檢測數據集的mAP(%)
更好的結果見表10和表11
在這裏插入圖片描述
表8 利用基線方法Faster R-CNN對於COCO驗證數據集的mAP(%)
更好的結果見表9

4.3 對於PASCAL和MS COCO數據集的物品識別

我們的方法對於其他識別任務具有很好的性能泛化能力。表7和表8展示了對2007年和2012年的PASCAL VOC數據集[5]和COCO數據集[26]的基線結果。我們用Faster R-CNN[32]作爲檢測方法。這裏我們所感興趣的是在將VGG-16[41]替換爲ResNet-101後所帶來的性能改善情況。兩種檢測模型的實現(見附件)類似,因此增益只能是由於網絡結構的改良引入。值得注意的是,在對於COCO數據集進行挑戰是我們獲得的結果比COCO標準測試(mAP@[.5, .95]提升了6.0%,相對提升量達28%,這個增益僅僅是由於學習到的表示。

基於深度殘差網絡,我們在2015年ILSVRC & COCO比賽中獲得了若干個第一名:ImageNet物品檢測數據集,ImageNet位置定位數據集,COCO物品檢測數據集和COCO圖像分割數據集。詳細結果參見附件。

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