Deep Residual Learning for Image Recognition

Deep Residual Learning for Image Recognition(譯)

轉:https://blog.csdn.net/wspba/article/details/57074389

僅供參考,如有翻譯不到位的地方敬請指出。

論文地址:Deep Residual Learning for Image Recognition

摘要

越深的神經網絡訓練起來越困難。本文展示了一種殘差學習框架,能夠簡化使那些非常深的網絡的訓練,該框架使得層能根據其輸入來學習殘差函數而非原始函數(unreferenced functions)。本文提供了全面的依據表明,這些殘差網絡的優化更簡單,而且能由更深的層來獲得更高的準確率。本文在ImageNet數據集上使用了一個152層深的網絡來評估我們的殘差網絡,雖然它相當於8倍深的VGG網絡,但是在本文的框架中仍然只具有很低的複雜度。這些殘差網絡的一個組合模型(ensemble)在ImageNet測試集上的錯誤率僅爲 3.57%。這個結果在2015年的ILSVRC分類任務上獲得了第一名的成績。我們在CIFAR-10上對100層和1000層的殘差網絡也進行了分析。

表達的深度在很多視覺識別任務中具有非常核心的重要性。僅僅由於我們相當深的表達,便在COCO目標檢測數據集上獲得了 28% 的相對提升。 深度殘差網絡是我們參加ILSVRC & COCO 2015 競賽上所使用模型的基礎,並且我們在ImageNet檢測、ImageNet定位、COCO檢測以及COCO分割上均獲得了第一名的成績。

1. 介紹

深度卷積神經網絡在圖像分類領域取得了一系列的突破 。 深度網絡很好的將一個端到端的多層模型中的低/中/高級特徵以及分類器整合起來,特徵的等級可以通過所堆疊層的數量(深度)來豐富。最近有結果顯示,模型的深度發揮着至關重要的作用,這樣導致了ImageNet競賽的參賽模型都趨向於“非常深”——16 層 到30層 。許多其它的視覺識別任務的都得益於非常深的模型。

在深度的重要性的驅使下,出現了一個新的問題:訓練一個更好的網絡是否和堆疊更多的層一樣簡單呢?解決這一問題的障礙便是困擾人們很久的梯度消失/梯度爆炸,這從一開始便阻礙了模型的收斂。歸一初始化(normalized initialization)和中間歸一化(intermediate normalization)在很大程度上解決了這一問題,它使得數十層的網絡在反向傳播的隨機梯度下降(SGD)上能夠收斂。

當深層網絡能夠收斂時,一個退化問題又出現了:隨着網絡深度的增加,準確率達到飽和(不足爲奇)然後迅速退化。意外的是,這種退化並不是由過擬合造成的,並且在一個合理的深度模型中增加更多的層卻導致了更高的錯誤率,我們的實驗也證明了這點。Fig.1展示了一個典型的例子。

Fig.1
Fig.1 20層和56層的“plain”網絡在CIFAR-10上的訓練錯誤率(左)和測試錯誤率(右)。越深的網絡在訓練和測試上都具有越高的錯誤率。

退化的出現(訓練準確率)表明了並非所有的系統都是很容易優化的。讓我們來比較一個淺層的框架和它的深層版本。對於更深的模型,這有一種通過構建的解決方案:恆等映射(identity mapping)來構建增加的層,而其它層直接從淺層模型中複製而來。這個構建的解決方案也表明了,一個更深的模型不應當產生比它的淺層版本更高的訓練錯誤率。實驗表明,我們目前無法找到一個與這種構建的解決方案相當或者更好的方案(或者說無法在可行的時間內實現)。

本文中,我們提出了一種深度殘差學習框架來解決這個退化問題。我們明確的讓這些層來擬合殘差映射(residual mapping),而不是讓每一個堆疊的層直接來擬合所需的底層映射(desired underlying mapping)。假設所需的底層映射爲 (x)H(x),我們讓堆疊的非線性層來擬合另一個映射: (x):=(x)−xF(x):=H(x)−x。 因此原來的映射轉化爲: (x)+xF(x)+x。我們推斷殘差映射比原始未參考的映射(unreferenced mapping)更容易優化。在極端的情況下,如果某個恆等映射是最優的,那麼將殘差變爲0 比用非線性層的堆疊來擬合恆等映射更簡單。

公式 (x)+xF(x)+x 可以通過前饋神經網絡的“shortcut連接”來實現(Fig.2)。Shortcut連接就是跳過一個或者多個層。在我們的例子中,shortcut 連接只是簡單的執行恆等映射,再將它們的輸出和堆疊層的輸出疊加在一起(Fig.2)。恆等的shortcut連接並不增加額外的參數和計算複雜度。完整的網絡仍然能通過端到端的SGD反向傳播進行訓練,並且能夠簡單的通過公共庫(例如,Caffe)來實現而無需修改求解器(solvers)。

Fig.2 
Fig.2 殘差學習:一個構建塊。

我們在ImageNet數據集上進行了綜合性的實驗來展示這個退化問題並評估了我們提出的方法。本文表明瞭: 1) 我們極深的殘差網絡是很容易優化的,但是對應的“plain”網絡(僅是堆疊了層)在深度增加時卻出現了更高的錯誤率。 2) 我們的深度殘差網絡能夠輕易的由增加層來提高準確率,並且結果也大大優於以前的網絡。

CIFAR-10數據集上也出現了類似的現象,這表明了我們提出的方法的優化難度和效果並不僅僅是對於一個特定數據集而言的。我們在這個數據集上成功的提出了超過100層的訓練模型,並探索了超過1000層的模型。

在ImageNet分類數據集上,極深的殘差網絡獲得了優異的成績。我們的152層的殘差網絡是目前ImageNet尚最深的網絡,並且別VGG網絡的複雜度還要低。在ImageNet測試集上,我們的組合模型(ensemble)的top-5錯誤率僅爲3.57%,並贏得了ILSVRC 2015分類競賽的第一名。這個極深的模型在其他識別任務上同樣也具有非常好的泛化性能,這讓我們在ILSVRC & COCO 2015 競賽的ImageNet檢測、ImageNet定位、COCO檢測以及COCO分割上均獲得了第一名的成績。這強有力的證明了殘差學習法則的通用性,因此我們將把它應用到其他視覺甚至非視覺問題上。

2. 相關工作

殘差表達。 
在圖像識別中,VLAD是殘差向量對應於字典進行編碼的一種表達形式,Fisher Vector可以看做是VLAD 的一個概率版本。對於圖像檢索和分類它們都是強力的淺層表達。對於向量量化,殘差向量編碼比原始向量編碼更加有效。

在低級視覺和計算機圖形學中,爲了求解偏微分方程(PDEs),通常使用Multigrid法將系統重新表達成多尺度的子問題來解決,每一個子問題就是解決粗細尺度之間的殘差問題。Multigrid的另外一種方式是分層基預處理,它依賴於代表着兩個尺度之間殘差向量的變量。實驗證明 這些求解器比其他標準求解器的收斂要快得多,卻並沒有意識到這是該方法的殘差特性所致。這些方法表明了一個好的重新表達或者預處理能夠簡化優化問題。

Shortcut連接。 
Shortcut連接已經經過了很長的一段實踐和理論研究過程。訓練多層感知器(MLPs)的一個早期實踐就是添加一個連接輸入和輸出的線性層。在Szegedy2015GoingLee2015deeply中,將一些中間層直接與輔助分類器相連接可以解決梯度消失/爆炸問題。在 Szegedy2015Going中,一個“inception”層由一個shortcut分支和一些更深的分支組合而成。

與此同時,“highway networks”將shortcut連接與門控函數 結合起來。這些門是數據相關並且是有額外參數的,而我們的恆等shortcuts是無參數的。當一個門的shortcut是“closed”(接近於0)時,highway網絡中的層表示非殘差函數。相反的,我們的模型總是學習殘差函數;我們的恆等shortcuts從不關閉,在學習額外的殘差函數時,所有的信息總是通過的。此外,highway網絡並不能由增加層的深度(例如, 超過100層)來提高準確率。

3. Deep Residual Learning

3.1 Residual Learning 
我們將(x)H(x)看作一個由部分堆疊的層(並不一定是全部的網絡)來擬合的底層映射,其中xx是這些層的輸入。假設多個非線性層能夠逼近複雜的函數,這就等價於這些層能夠逼近複雜的殘差函數,例如, (x)−xH(x)−x (假設輸入和輸出的維度相同)。所以我們明確的讓這些層來估計一個殘差函數:(x):=(x)−xF(x):=H(x)−x 而不是(x)H(x)。因此原始函數變成了:(x)+xF(x)+x。儘管這兩個形式應該都能夠逼近所需的函數(正如假設),但是學習的難易程度並不相同。

這個重新表達的動機是由退化問題這個反常的現象(Fig.1,左)。正如我們在introduction中討論的,如果增加的層能以恆等映射來構建,一個更深模型的訓練錯誤率不應該比它對應的淺層模型的更大。退化問題表明了,求解器在通過多個非線性層來估計恆等映射上可能是存在困難的。而伴隨着殘差學習的重新表達,如果恆等映射是最優的,那麼求解器驅使多個非線性層的權重趨向於零來逼近恆等映射。

在實際情況下,恆等映射不太可能達到最優,但是我們的重新表達對於這個問題的預處理是有幫助的。如果最優函數更趨近於恆等映射而不是0映射,那麼對於求解器來說尋找關於恆等映射的擾動比學習一個新的函數要容易的多。通過實驗(Fig.7)表明,學習到的殘差函數通常只有很小的響應,說明了恆等映射提供了合理的預處理。

3.2 Identity Mapping by Shortcuts 
我們在堆疊層上採取殘差學習算法。一個構建塊如Fig.2所示。本文中的構建塊定義如下(Eq.1): 

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


其中xx 和yy 分別表示層的輸入和輸出。函數(x,{Wi})F(x,{Wi})代表着學到的殘差映射。Fig.2中的例子包含兩層,=W2σ(W1x)F=W2σ(W1x),其中σσ代表ReLU,爲了簡化省略了偏置項。+xF+x操作由一個shortcut連接和元素級(element-wise)的加法來表示。在加法之後我們再執行另一個非線性操作(例如, σ(y)σ(y),如Fig.2。

 

Eq.1中的shortcut連接沒有增加額外的參數和計算複雜度。這不僅是一個很有吸引力的做法,同時在對“plain”網絡和殘差網絡進行比較時也是非常重要的。我們可以在參數、深度、寬度以及計算成本都相同的基礎上對兩個網絡進行公平的比較(除了可以忽略不計的元素級的加法)。

在Eq.1中,xx和F的維度必須相同。如果不相同(例如, 當改變了輸入/輸出的通道),我們可以通過shortcut連接執行一個線性映射WsWs 來匹配兩者的維度(Eq.2): 

y=(x,{Wi})+Wsx.y=F(x,{Wi})+Wsx.

 

在Eq.1中同樣可以使用方陣WsWs。但我們的實驗表明,恆等映射已足夠解決退化問題,並且是經濟的,因此WsWs只是用來解決維度不匹配的問題。

殘差函數F的形勢是靈活可變的。本文實驗中涉及到的函數F是兩層或者三層的(Fig.5),當然更多層也是可行的。但是如果F只含有一層,Eq.1就和線性函數:y=W1x+xy=W1x+x一致,因此並不具有任何優勢。

我們還發現不僅是對於全連接層,對於卷積層也是同樣適用的。函數(x,{Wi})F(x,{Wi})可以表示多個卷積層,在兩個特徵圖的通道之間執行元素級的加法。

3.3 Network Architectures 
我們在多個plain網絡和殘差網絡上進行了測試,並都觀測到了一致的現象。接下來我們將在ImageNet上對兩個模型進行討論。

Plain網絡。 
我們的plain網絡結構(Fig.3,中)主要受VGG網絡 (Fig.3,左)的啓發。 
卷積層主要爲3*3的濾波器,並遵循以下兩點要求:(i) 輸出特徵尺寸相同的層含有相同數量的濾波器;(ii) 如果特徵尺寸減半,則濾波器的數量增加一倍來保證每層的時間複雜度相同。我們直接通過stride 爲2的卷積層來進行下采樣。在網絡的最後是一個全局的平均pooling層和一個1000 類的包含softmax的全連接層。加權層的層數爲34,如Fig.3(中)所示。

值得注意的是,我們的模型比VGG網絡(Fig.3,左)有更少的濾波器和更低的計算複雜度。我們34層的結構含有36億個FLOPs(乘-加),而這僅僅只有VGG-19 (196億個FLOPs)的18%。

殘差網絡。 
在以上plain網絡的基礎上,我們插入shortcut連接(Fig.3,右),將網絡變成了對應的殘差版本。如果輸入和輸出的維度相同時,可以直接使用恆等shortcuts (Eq.1)(Fig.~??????中的實線部分)。當維度增加時(Fig.3中的虛線部分),考慮兩個選項: 
(A) shortcut仍然使用恆等映射,在增加的維度上使用0來填充,這樣做不會增加額外的參數; 
(B) 使用Eq.2的映射shortcut來使維度保持一致(通過1*1的卷積)。 
對於這兩個選項,當shortcut跨越兩種尺寸的特徵圖時,均使用stride爲2的卷積。

Fig.3
Fig.3 對應於ImageNet的網絡框架舉例。 :VGG-19模型 (196億個FLOPs)作爲參考。:plain網絡,含有34個參數層(36 億個FLOPs)。:殘差網絡,含有34個參數層(36億個FLOPs)。虛線表示的shortcuts增加了維度。Table 1展示了更多細節和其它變體。

Table 1 
Table 1 對應於ImageNet的結構框架。括號中爲構建塊的參數(同樣見Fig.5),數個構建塊進行堆疊。下采樣由stride爲2的conv3_1、conv4_1和conv5_1 來實現。

3.4 Implementation 
針對ImageNet的網絡實現遵循了Krizhevsky2012ImageNetSimonyan2014Very。調整圖像的大小使它的短邊長度隨機的從[256,480][256,480]中採樣來增大圖像的尺寸。 從一張圖像或者它的水平翻轉圖像中隨機採樣一個224*224的crop,每個像素都減去均值。圖像使用標準的顏色增強。我們在每一個卷積層之後,激活層之前均使用batch normalization(BN)。我們根據He2014spatial來初始化權值然後從零開始訓練所有plain/殘差網絡。 
我們使用的mini-batch的尺寸爲256。學習率從0.1開始,每當錯誤率平穩時將學習率除以10,整個模型進行60∗10460∗104次迭代訓練。我們將權值衰減設置爲0.0001,a 動量爲0.9。根據 Ioffe2015Batch,我們並沒有使用Dropout。

在測試中,爲了進行比較,我們採取標準的10-crop測試。 
爲了達到最佳的結果,我們使用Simonyan2014VeryHe2014spatial中的全卷積形式,並在多個尺度的結果上取平均分(調整圖像的大小使它的短邊長度分別爲{224,256,384,480,640}{224,256,384,480,640})。

4. 實驗

4.1 ImageNet Classification 
本文在1000類的ImageNet2012數據集上對我們的方法進行評估。訓練集包含128萬張圖像,驗證集包含5萬張圖像。我們在10萬張測試圖像上進行測試,並對top-1top-5 的錯誤率進行評估。

Plain網絡。 
我們首先評估了18層和34層的plain網絡。34層的網絡如圖Fig.3(中)所示。18層的結構很相似,具體細節參見Table 1。

Table 2中展示的結果表明了34層的網絡比18層的網絡具有更高的驗證錯誤率。爲了揭示產生這種現象的原因,在Fig.4(左)中我們比較了整個訓練過程中的訓練及驗證錯誤率。從結果中我們觀測到了明顯的退化問題——在整個訓練過程中34 層的網絡具有更高的訓練錯誤率,即使18層網絡的解空間爲34層解空間的一個子空間。

我們認爲這種優化上的困難不太可能是由梯度消失所造成的。因爲這些plain網絡的訓練使用了BN,這能保證前向傳遞的信號是具有非零方差的。我們同樣驗證了在反向傳遞階段的梯度由於BN而具有良好的範式,所以在前向和反向階段的信號不會存在消失的問題。事實上34層的plain網絡仍然具有不錯的準確率(Table 3),這表明了求解器在某種程度上也是有效的。我們推測,深層的plain網絡的收斂率是指數衰減的,這可能會影響訓練錯誤率的降低。這種優化困難的原因我們將在以後的工作中進行研究。

殘差網絡。 
接下來我們對18層和34層的殘差網絡ResNets進行評估。如Fig.3 (右)所示,ResNets的基本框架和plain網絡的基本相同,除了在每一對3*3的濾波器上添加了一個shortcut連接。在Table 2以及Fig.4(右)的比較中,所有的shortcuts都是恆等映射,並且使用0對增加的維度進行填充(選項 A)。因此他們並沒有增加額外的參數。

我們從Table 2和Fig.4中觀測到以下三點:

第一,與plain網絡相反,34層的ResNet比18層ResNet的結果更優(2.8%)。更重要的是,34 層的ResNet在訓練集和驗證集上均展現出了更低的錯誤率。這表明了這種設置可以很好的解決退化問題,並且我們可以由增加的深度來提高準確率。

第二,與對應的plain網絡相比,34層的ResNet在top-1 錯誤率上降低了3.5% (Table 2),這得益於訓練錯誤率的降低(Fig.4 右 vs 左)。這也驗證了在極深的網絡中殘差學習的有效性。

最後,我們同樣注意到,18層的plain網絡和殘差網絡的準確率很接近 (Table 2),但是ResNet 的收斂速度要快得多。(Fig.4 右 vs 左)。 
如果網絡“並不是特別深” (如18層),現有的SGD能夠很好的對plain網絡進行求解,而ResNet能夠使優化得到更快的收斂。

Fig.4
Fig.4 在ImageNet上進行訓練。細曲線爲訓練錯誤率,粗曲線爲使用中心crop時的驗證錯誤率。左:18和34層的plain網絡。右:18 和34層的ResNets。在這個圖中,殘差網絡和對應的plain網絡相比並沒有增加額外的參數。

Table 2 
Table 2 ImageNet驗證集上的Top-1錯誤率 (%, 10-crop testing)。這裏的ResNets並沒有額外增加的參數。Fig.4展示了整個訓練過程。

Table 3 
Table 3 在ImageNet驗證集上的錯誤率 (%, 10-crop testing)。VGG-16是基於我們測試的網絡。ResNet-50/101/152使用了選項B——利用映射來匹配增加的維度。

Table 4 
Table 4 單一模型在ImageNet驗證集上的錯誤率(%)(除了 ++ 是在驗證集上的結果)。

Table 5 
Table 5 組合模型在ImageNet測試集上的top-5錯誤率。

恆等 \vs 映射 Shortcuts。 
我們已經驗證了無參數的恆等shortcuts是有助於訓練的。接下來我們研究映射shortcut(Eq.2)。在Table 3中,我們比較了三種選項: 
(A) 對增加的維度使用0填充,所有的shortcuts是無參數的(與Table 2 和 Fig.4 (右)相同); 
(B) 對增加的維度使用映射shortcuts,其它使用恆等shortcuts; 
(C) 所有的都是映射shortcuts。

Table 3表明了三種選項的模型都比對於的plain模型要好。B略好於A,我們認爲這是因爲A中的0填充並沒有進行殘差學習。C略好於B,我們把這個歸結於更多的(13個)映射shortcuts所引入的參數。在A、B、C三個結果中細小的差距也表明了映射shortcuts對於解決退化問題並不是必需的。所以我們在本文接下來的內容中,爲了減少複雜度和模型尺寸,並不使用選項C的模型。恆等shortcuts因其無額外複雜度而對以下介紹的瓶頸結構尤爲重要。

深度瓶頸結構。 
接下來我們介紹更深的模型。考慮到訓練時間的限制,我們將構建塊修改成\emph{瓶頸}的設計。對於每一個殘差函數F,我們使用了三個疊加層而不是兩個(Fig.5)。 這三層分別是1*1、3*3 和1*1 的卷積,1*1 的層主要負責減少然後增加(恢復)維度,剩下的3*3的層來減少輸入和輸出的維度。Fig.5展示了一個例子,這兩種設計具有相似的時間複雜度。

無參數的恆等shortcuts對於瓶頸結構尤爲重要。如果使用映射shortcuts來替代Fig.5(右)中的恆等shortcuts,將會發現時間複雜度和模型尺寸都會增加一倍,因爲shortcut連接了兩個高維端,所以恆等shortcuts對於瓶頸設計是更加有效的。

50層 ResNet:我們將34層網絡中2層的模塊替換成3層的瓶頸模塊,整個模型也就變成了50層的ResNet (Table 1)。對於增加的維度我們使用選項B來處理。整個模型含有38億個FLOPs。

101層和152層 ResNets:我們使用更多的3層模塊來構建101層和152層的ResNets (Table 1)。值得注意的是,雖然層的深度明顯增加了,但是152層ResNet的計算複雜度(113億個FLOPs)仍然比VGG-16(153 億個FLOPs)和VGG-19(196億個FLOPs)的小很多。

50/101/152層ResNets比34層ResNet的準確率要高得多(Table 3 和4)。而且我們並沒有觀測到退化問題。所有的指標都證實了深度帶來的好處。 (Table 3 和4)。

Fig.5 
Fig.5 對於ImageNet的一個更深的殘差函數F。左:對於ResNet-34的如Fig.3描述的構建塊。右:對於ResNet-50/101/152的“瓶頸”構建塊。

與最優秀方法的比較。 
在Table 4中我們比較了目前最好的單模型結果。我們的34層ResNets取得了非常好的結果,152層的ResNet的單模型top-5驗證錯誤率僅爲 4.49%,甚至比先前組合模型的結果還要好 (Table 5)。我們將6個不同深度的ResNets合成一個組合模型(在提交結果時只用到2個152層的模型)。這在測試集上的top-5錯誤率僅爲3.57% (Table 5),這一項在ILSVRC 2015 上獲得了第一名的成績。

4.2 CIFAR-10 and Analysis 
我們在包含5萬張訓練圖像和1萬張測試圖像的10類CIFAR-10數據集上進行了更多的研究。我們在訓練集上進行訓練,在測試集上進行驗證。我們關注的是驗證極深模型的效果,而不是追求最好的結果,因此我們只使用簡單的框架如下。

Plain網絡和殘差網絡的框架如 Fig.3(中/右)所示。網絡的輸入是32*32的減掉像素均值的圖像。第一層是3*3的卷積層。然後我們使用6n個3*3的卷積層的堆疊,卷積層對應的特徵圖有三種:{32,16,8}{32,16,8},每一種卷積層的數量爲2n 個,對應的濾波器數量分別爲{16,32,64}{16,32,64}。使用strde爲2的卷積層進行下采樣。在網絡的最後是一個全局的平均pooling層和一個10類的包含softmax的全連接層。一共有6n+2個堆疊的加權層。具體的結構見下表: 
這裏寫圖片描述 
使用shortcut連接3*3的卷積層對(共有 3n個shortcuts)。在這個數據集上我們所有的模型都使用恆等shortcuts(選項 A),因此我們的殘差模型和對應的plain模型具有相同的深度、寬度和參數量。

權重的衰減設置爲0.0001,動量爲0.9,採用了He2015Delving中的權值初始化以及BN,但是不使用Dropout,mini-batch的大小爲128,模型在2塊GPU 上進行訓練。學習率初始爲0.1,在第32000和48000次迭代時將其除以10,總的迭代次數爲64000,這是由45000/5000的訓練集/驗證集分配所決定的。我們在訓練階段遵循Lee2015deeply中的數據增強法則:在圖像的每條邊填充4個像素,然後在填充後的圖像或者它的水平翻轉圖像上隨機採樣一個32*32 的crop。在測試階段,我們只使用原始32*32的圖像進行評估。

Fig.6 
Fig.6 CIFAR-10上的訓練效果。虛線表示訓練錯誤率,實線表示測試錯誤率。:plain網絡。plain-110的錯誤率高達60% 以上,因此並沒有展示出來。:ResNets。:110層和1202層的ResNets。

我們比較了n={3,5,7,9}n={3,5,7,9},也就是20、32、44以及56層的網絡。Fig.6(左) 展示了plain網絡的結果。深度plain網絡隨着層數的加深,訓練錯誤率也變大。這個現象與在ImageNet(Fig.4, 左)和MNIST上的結果很相似,表明了優化上的難度確實是一個很重要的問題。

Fig.6(中)展示了ResNets的效果。與ImageNet(Fig.4, 右)中類似,我們的ResNets能夠很好的克服優化難題,並且隨着深度加深,準確率也得到了提升。

我們進一步探索了n=18,也就是110層的ResNet。在這裏,我們發現0.1的初始學習率有點太大而不能很好的收斂。所以我們剛開始使用0.01的學習率,當訓練錯誤率在80%以下(大約400次迭代)之後,再將學習率調回0.1繼續訓練。剩餘的學習和之前的一致。110層的ResNets很好的收斂了 (Fig.6, 中)。它與其他的深層窄模型,如FitNet和 Highway (Table 6)相比,具有更少的參數,然而卻達到了最好的結果 (6.43%, Table 6)。

Table 6 
Table 6 CIFAR-10}測試集上的分類錯誤率。我們對數據進行了增強。如Srivastava2015Training所述,對於ResNet-110,我們運行了5遍,然後展示了“(均值±±方差)最優”的結果。

Fig.7 
Fig.7 在CIFAR-10上層響應的標準方差(std)。響應是每一個3*3卷積層的BN之後、非線性層之前的輸出。頂部:層是按照它們原始的順序。底部:響應按降序排列。

Analysis of Layer Responses 
Fig.7展示了層響應的標準方差(std)。 響應是每一個3*3卷積層的BN之後、非線性層(ReLU/addition)之前的輸出。對於ResNets,這個分析結果也揭示了殘差函數的響應強度。Fig.7表明了ResNets的響應比它對應的plain網絡的響應要小。這些結果也驗證了我們的基本動機(Sec3.1),即殘差函數比非殘差函數更接近於0。從Fig.7中ResNet-20、56和110的結果,我們也注意到,越深的ResNet的響應幅度越小。當使用更多層是,ResNets中單個層對信號的改變越少。

Exploring Over 1000 layers 
我們探索了一個超過1000層的極其深的模型。我們設置n=200,也就是1202層的網絡模型,按照上述進行訓練。我們的方法對103103層的模型並不難優化,並且達到了<0.1%的訓練錯誤率(Fig.6, 右),它的測試錯誤率也相當低(7.93%, Table 6)。

但是在這樣一個極其深的模型上,仍然存在很多問題。1202層模型的測試結果比110層的結果要差,儘管它們的訓練錯誤率差不多。我們認爲這是過擬合導致的。這樣一個1202層的模型對於小的數據集來說太大了(19.4M)。在這個數據集上應用了強大的正則化方法,如maxout或者 dropout,才獲得了最好的結果。

本文中,我們並沒有使用maxout/dropout,只是簡單的通過設計深層窄模型來進行正則化,而且不用擔心優化的難度。但是通過強大的正則化或許能夠提高實驗結果,我們會在以後進行研究。

4.3 Object Detection on PASCAL and MS COCO

Table 7 
Table 7 在PASCAL VOC 2007/2012測試集上使用Faster R-CNN的目標檢測 mAP (%)。

Table 8 
Table 8 在COCO 驗證集上使用Faster R-CNN的目標檢測 mAP (%)。

我們的方法在其它識別任務上展現出了很好的泛化能力。Table 7和8展示了在PASCAL VOC 2007 和 2012以及 COCO上的目標檢測結果。我們使用Faster R-CNN作爲檢測方法。在這裏,我們比較關注由ResNet-101 替換VGG-16所帶來的的提升。使用不同網絡進行檢測的實現是一樣的,所以檢測結果只能得益於更好的網絡。最值得注意的是,在COCO數據集上,我們在COCO的標準指標(mAP@[.5, .95])上比先前的結果增加了6.0%,這相當於28%的相對提升。而這完全得益於所學到的表達。

基於深度殘差網絡,我們在ILSVRC & COCO 2015競賽的ImageNet檢測、ImageNet定位、COCO檢測以及COCO分割上獲得了第一名。

附錄

附錄部分爲作者針對ResNet在目標檢測、目標定位上的應用進行了解釋,證明了ResNet強大的泛化能力,感興趣的同學可以好好研究這篇論文,是非常有學習價值的。

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