Resnet論文翻譯


摘要

越深層次的神經網絡越難以訓練。我們提供了一個殘差學習框架,以減輕對網絡的訓練,這些網絡的深度比以前的要大得多。我們明確地將這些層重新規划為通過參考輸入層x,學習殘差函數,來代替沒有參考的學習函數。

我們提供了綜合的經驗證據,表明殘差網絡更容易優化,並且可以從顯著增加的深度中獲得准確性。在ImageNet數據集上,我們對剩余的網進行評估,其深度為152層,比VGG網41層更深,但仍可以保證有較低的復雜度。結合這些殘差網絡在ImageNet測試集上獲得了3.57%的誤差,這一結果在ILSVRC2015分類任務中獲得了第一名。我們還對cifar 10進行了100和1000層的分析。

對於許多視覺識別任務來說,特征表達的深度是至關重要的。僅僅由於我們的極深的表示,我們在COCO目標檢測數據集上獲得了28%的相對改進。深度殘差網絡是我們參加LSVRC&COCO 2015比賽的基礎,我們還贏得了ImageNet檢測、ImageNet本地化、可可檢測和可可分割等任務的第1個位置。

 

1. 引言

深度卷積神經網絡已經為圖像分類帶來了一系列突破。網絡深度是至關重要的。

在深度重要性的驅使下,一個問題出現了:學習更好的網絡是否像堆更多的層一樣簡單?回答這個問題的一個障礙是眾所周知的“梯度消失/爆炸”,這阻礙了從一開始就收斂。然而,這個問題主要通過規范化的初始化和中間的標准化層(Batch Normalization)來解決,這使得具有數十層的網絡通過隨機梯度下降(SGD)方法可以開始收斂。

當更深的網絡能夠開始收斂時,退化問題就暴露出來了:隨着網絡深度的增加,准確度就會飽和(這可能不足為奇),然后就會迅速下降。出乎意料的是,這種退化不是由過度擬合造成的,並且在適當的深度模型中加入更多的層會導致更高的訓練錯誤,正如我們的實驗所證實的那樣。

(訓練精度的)退化表明不是所有的系統都同樣易於優化。讓我們考慮一個較淺的架構,以及在它上面添加了更多的層的深層的架構。有一種解決方案可以通過構建到更深層次的模型(解決優化問題):增加的層是恆等映射,而其他層則是從學習的淺模型中復制出來的。這種構造方法表明,一個較深的模型不應產生比較淺的模型更高的訓練誤差。但實驗表明,我們現有的解決方案無法找到比這個構建方案好或更好的解決方案(或者在可行的時間內無法做到這一點)。

本文通過引入一個深層殘差學習框架來解決退化問題。我們沒有希望每一層都直接匹配所需的潛在映射,而是明確地讓這些層適合一個殘差映射。在形式上,將所需的潛在映射表示為H(x),我們讓堆疊的非線性層適合另一個映射F(x)=H(x)-x。原來的映射被重新定義為F(x)+x。我們假設優化殘差映射比優化原始的映射更容易。在極端情況下,如果一個標識映射是最優的,那么將殘差值推到零將比通過一堆非線性層來匹配一個恆等映射更容易。

F(x)+x的表達式可以通過使用“shortcut connections”的前饋神經網絡實現(圖2)。“shortcutconnections”是跳過一個或多個層。在我們的例子中,“shortcut connections”簡單地執行恆等,它們的輸出被添加到疊加層的輸出中(圖2)。恆等的“shortcut connections”既不增加額外參數,也不增加計算復雜度。整個網絡仍然可以通過SGD對反向傳播進行端到端訓練,並且可以在不修改解決方案的情況下使用公共庫輕松實現。

我們對ImageNet進行了全面的實驗,以顯示其退化問題,並對其進行了評價。我們證明:1)我們極深的殘差網絡很容易優化,但是當深度增加時,對應的普通網(簡單的疊層)顯示出更高的訓練錯誤;2)我們的深層殘差網可以很容易地從深度的增加中獲得精確的增益,產生的結果比以前的網絡要好得多。

 

2. 相關工作

殘差表達

在圖像識別中,VLAD是一種由殘差向量關於字典的編碼表示,而Fisher Vector可以被定義為VLAD的概率版本。它們都是圖像檢索和分類的強大的淺層表示。對於向量化,編碼殘差向量比編碼原始向量更有效。

在低層次的視覺和計算機圖形學中,為了解決偏微分方程(PDEs),被廣泛使用的多網格法將系統重新設計成多個尺度下的子問題,每個子問題負責一個較粗的和更細的尺度之間的殘差解。多網格的另一種選擇是分層基礎的預處理,它依賴於在兩個尺度之間表示殘差向量的變量。研究表明,這些(轉化成多個不同尺度的子問題,求殘差解的)解決方案的收斂速度遠遠快於那些不知道殘差的標准解決方案。這些方法表明,良好的重構或預處理可以簡化優化問題。

 

Shortcut Connections

與我們的工作同時,HighwayNetworks提供了與門控功能的shortcut connection。這些門是數據相關的,並且有參數,這與我們的恆等shortcut connection是無參數的。當一個封閉的shortcut connection被關閉(接近於零)時,highway networks中的層代表了無殘差的函數。相反,我們的公式總是學習殘差函數;我們的恆等shortcut connection永遠不會關閉,在學習其他殘差函數的同時,所有的信息都會被傳遞。此外,highway networks還沒有顯示出從增加深度而獲得的准確率的增長(例如:,超過100層)。

 

3. 深度殘差網絡學習

3.1殘差學習

我們令H(x)作為需要多層神經網絡去擬合的目標函數。如果假設多個非線性層可以逐漸近似一個復雜的函數,那么等價於假設他們可以逐漸近似殘差函數,即H(x)-x。因此,與其讓期望這些層近似H(x),我們讓這些層直接近似殘差函數F(x)= H(x)-x。原始的函數則變成了H(x) = F(x)+x。盡管這兩種形式都應該能夠逐漸地近似期望的函數,但學習的輕松度可能是不同的。

這個重新制定的動機是由於退化問題的反直覺現象(圖一,左圖)。正如我們在引言中所討論的,如果添加的層可以被構造為恆等映射,那么一個較深的模型的訓練錯誤不應該比相對更淺的模型訓練誤差大。退化問題表明,求解起在通過多個非線性層逼近恆等映射時遇到困難。利用殘差的學習方法,如果恆等映射是最優的,求解器也許只需將多個非線性層的權重簡單的置為零,以近似恆等映射。

在實際情況中,恆等映射不太可能是最優的,但是我們的重制可能有助於解決問題。如果最優函數更接近於標識映射,而不是零映射,相比於將其作為一個新函數的學習,解析器可以更容易地找到與恆等映射相關的擾動(即殘差)。我們通過實驗(圖7)顯示,習得的殘差函數一般都有很小的波動,這表明恆等映射提供了合理的前提條件。

 

3.2通過Shortcut的恆等映射

我們采取將每一個疊層都應用殘差學習。圖2中顯示了一個building block。正式地,在本文中,我們考慮一個定義為:

 

其中x和y是層的輸入和輸出向量。函數F(x,{wi})表示要學習的殘差映射。如圖2為兩個層的例子,F=w2(W1x),其中表示ReLU,為了簡化表示,省略了偏差b。F+x的操作是通過一個shortcutconnection將對應元素進行相加來執行的。在加法之后,我們采用了第二次非線性映射。(即(y),見圖2)。

等式(1)中的shortcut connection既沒有引入額外的參數,也沒有增加計算復雜度。這不僅在實踐中很有吸引力,而且在我們對普通的網絡和殘差網絡的比較中也很重要。我們可以公平地比較同時具有相同數量的參數、深度、寬度和計算成本(除了可以忽略的相對應的元素相加操作之外)的普通網絡和殘差網絡。

x和F的維數在等式(1)中必須相等。如果不是這樣的話(例如:當改變輸入/輸出通道時),我們可以通過shortcut connection來執行一個線性投影,以匹配維度:

 

我們也可以在等式(1)中使用一個矩陣Ws。但我們將通過實驗證明,恆等映射對於解決退化問題是足夠的,而且是經濟的,因此只有在匹配維度時才需要使用Ws

殘差函數F的形式是靈活的。本文的實驗涉及到一個函數F,它有兩個或三個層(圖5),當然更多的層也是可以的。但是,如果F只有一個層,等式(1)與線性層y=W1x+x相似,我們沒有觀察到它的優勢。

我們還注意到,盡管上面的符號是為了簡單起見而使用完全連接的層,但它們適用於卷積層。函數F(x;{wi})可以代表多個卷積層。元素相加是一個通道接着通道,在兩個特征圖上執行的。

 

3.3網絡結構

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

 

普通網絡

我們的基准線(圖3,中間)主要受VGG網絡(圖3左)的啟發。卷積層主要有3×3的過濾器,並遵循兩個簡單的設計規則:(i)相同的輸出特性圖的大小,各層有相同數量的過濾器;(2)如果特征圖的大小減半,那么過濾器的數量就增加一倍,以保證每一層的時間復雜度相同。我們直接通過卷積層來進行向下采樣,這些層的步長為2。該網絡以一個全局平均池層和一個1000層的完全連接層和softmax來結束。圖3(中)的權重層數為34。

值得注意的是,我們的模型比VGG網絡(圖3左)更少的過濾器和更低的復雜性。我們的具有34層的baseline有36億 FLOPs,只是VGG-19(19.6億FLOPs)的18%。

殘差網絡

基於上面的普通網絡,我們插入了shortcut connection(圖3,右),將網絡轉換為對應的殘差版本。當輸入和輸出是相同的維度時,恆等shortcut(等式(1))可以直接使用(圖3實線)。當維度增加(圖3中虛線),我們提供兩個選擇:(A)short connection仍然執行恆等映射,用額外的零填充增加維度。這個選項不引入額外的參數;(B)等式 (2)中的投影shortcut用於匹配維數(由1×1卷積完成)。對於這兩個選項,當shortcut融合兩個大小的特征圖時,它們的執行時的步長是2。

 

3.4實施

我們對ImageNet的實現遵循了[21、41]的實踐。為了擴大規模,[256,480]大小的圖像被沿着短邊通過隨機采樣調整大小。從圖像或它的水平翻轉中隨機抽取[224,224],每像素減去平均。[21]中的標准顏色增強技術被使用。我們在每次卷積和激活前都采取Batch Normalization。我們同[13]一樣初始化權重,從頭開始訓練普通網絡和殘差網絡。我們使用SGD的批量大小為256。學習率從0.1開始,當誤差停滯時,將學習率除以10,模型被訓練多大60萬次。我們使用0.0001的權重衰減,和0.9的momentum。根據[16],我們不使用Dropout層。

在測試中,為了比較研究,我們采用了標准的十折交叉驗證。為了得到最好的結果,我們采用了全卷積式的形式如[41,13],並在多個尺度上平均得分(圖像被調整大小到更短的變,如224,256,384,480,640)。

 

4. 實驗

4.1ImageNet分類

我們在包含1000類的ImageNet2012分類數據集上評估我們的方法。模型在包含128萬的訓練數據將上訓練,在5玩的驗證圖像上評估。我們最終的結果是由測試服務器在10萬的測試集上獲得的。我們評估了前1和前5的錯誤率。

 

普通網絡

我們首先評估18層和34層的普通網絡。34層普通網絡如圖3中間的網絡所示。18層普通網絡是同樣的形式。詳細結構請參考表1。

表2所示的結果說明,更深的34層普通網絡比較淺的18層網絡具有更高的驗證錯誤率。為揭露其原因,如圖4左,我們在訓練過程中比較它們的訓練/驗證誤差。我們觀察到了退化現象—盡管這個18層普通網絡的解空間是34層的一個子空間,34層的普通網絡在訓練過程中始終具有更高的訓練誤差。

我們認為這種優化問題不太可能是由梯度消失引起的。這個普通網絡用BN訓練,這確保了傳播的信號具有非零的方差。我們還驗證了反向傳播的梯度在BN中表現出了健康的規范。因此,無論是向前還是向后的信號都不會消失。事實上,34層普通網絡仍然能夠達到具有競爭力的准確率,說明求解器在某種程度上是可行的。我們推測,深度普通網絡可能具有低指數的收斂速度,這將影響訓練誤差的減少。這種優化問題的原因在未來將會被研究。

 

殘差網絡

接着我們評估了18層和34層的殘差網絡。除了每對3×3的filters之間增加了shortcut連接外,基准結構和之前的普通網絡相同,如圖3右所示。第一個對比(表2和圖4右),我們使用對所有的shortcut使用恆等映射,並使用0填充技術用於增加維度(操作A)。因此,與相應的普通網絡相比,它們沒有增加額外的參數。

我們從表2和圖4中得到了三個主要的觀察結果。第一,在殘差學習中情況是相反的--34層的ResNet比18層的ResNet要好(2.8%)。更重要的是,34層ResNet展現出相當低的訓練誤差並可以概括驗證數據(即驗證數據有相同的實驗結果)。這表明,在這樣的設置下,退化問題得到了很好的解決,並且我們成功的從增加的深度獲得了精度的提高。

第二,與其相對應的普通網絡相比,由於成功減少了訓練誤差 (圖4右與左),ResNet將top-1的誤差降低了3.5%(表2)。這一比較驗證了在極深系統中殘差學習的有效性。

最后,我們還注意到,18層的普通/殘差的網是相當精確的(表2),但是18層的ResNet更快速地收斂(圖4右與左)。當網絡不太深(這里有18層)時,當前的SGD求解器仍然能夠找到普通網絡的優解。在這種情況下,ResNet通過在早期提供更快的聚合來使優化變得輕松。

 

恆等shorcut vs. 投影shortcut

我們已經證明了,不增加參數的恆等shortcut有助於訓練。接下來我們研究投影快捷方式(等式2)。在表3中,我們比較了三個選項:(A)用於增加維度的零填充shortcut,所有的shortcut都是不增加參數的(與表2和圖4相同);(B)用於增加維度的投影shortcut,其他快shortcut采用恆等shortcut;(ps,我認為他說的維度增加是指featuremap增加的部分)(C)所有的shortcut都采用投影。

表3顯示了這三個選項都比普通網絡的要好得多。B比A稍微好一點。我們認為這是因為A的0填充的維度確實沒有殘差學習。C比B略好,我們將其歸因於許多(13)投影shortcut引入的額外參數。但是,a/b/c之間的微小差異表明,投射shortcut對於解決退化問題並不是必需的。因此,在本文的其余部分中,我們不使用選項C,以減少內存/時間復雜度和模型大小。恆等shortcut不增加復雜度對於下面引入的Bottleneck結構的特別重要。

 

Deeper Bottleneck Architectures

接下來描述的針對ImageNet的深度網絡。考慮到我們所能承擔的訓練時間,我們修改building block為bottleneck。對於每個殘差函數F,我們使用一個3層的棧式結構代替2層的結構(圖5)。這三層分別是1×1、3×3和1×1的卷積,1×1的卷積的目的是使維度先減小再增加(復原),讓3×3的卷積層作為一個低維輸入輸出的bottleneck。圖5展示了一個示例,兩種設計有相同的時間復雜度。

恆等的shortcut對bottleneck結構非常重要。如果圖5右的恆等shortcut被投影shortcut代替,時間復雜度和模型大小都被加倍,因為shortcut用於連接兩個高維的端。因此,恆等shortcuts使bottleneck的設計更有效。(注意,bottleneck也有退化現象,所以bottleneck的設計要盡量簡潔)

50層ResNet:我們用這種3層的bottleneck代替34層ResNet中的每個兩層block,構成50層ResNet(表1)。我們使用選項B來增加維度。這個模型有38億FLOPs。

101層和152層ResNet:我們通過使用更多的3層block構建101層和152層ResNet(表1)。盡管深度有了顯著的增加,152層ResNet(113億FLOPs)仍然比VGG-16/19(153億/196億FLOPs)復雜度更低。

50/101/152層的比34層更精確(表3和4),我們沒有觀察到退化問題,並因此從相當高的深度上獲得了顯著的精度增益。在所有評估指標上都可以看到深度的好處(表3和4)。

 

與優秀算法的比較

表4中,我們比較累之前最好的單模型結果。我們的基本34層ResNet已經達到具有競爭力的准確度。我們的152層的ResNet有一個單模型top-5驗證驗證誤差為4.49%。這個單模型結果比以前所有的集合結果都要出色(表5)。我們結合六種不同深度的模型形成一個集合(在提交時只用了2個152層ResNet)。在測試集上取得了3.57%的top-5錯誤率。這項贏得了ILSVRC2015的第一名。

 

4.2CIFAR-10和分析

我們在CIFAR-10上做了更多研究,它由包括10個類別的5萬個訓練圖和1萬個測試圖組成。我們展示在需年紀的訓練和在測試集上的測試實驗。我們主要研究極其深的網絡的表現,而不是找出一個優異的實驗結果,因此我們有意使用如下簡單的結構。

普通網絡/殘差網絡結構如圖3(中/右)所示。網絡輸入為32×32的圖片,每個像素都減去平均值。第一層為一個3×3的卷積層。然后我們使用將6n層3×3的卷積層堆棧在一起,特征圖大小分別為{32,16,8},每個特征圖大小對應2n個層。Filter的個數分別為{16,32,64}。下采樣操作通過步長為2的卷積操作執行。網絡以一個全局平均池化層和softmax層結合。一共有6n+2個權重層。下表總結了結構。

當shortcut被使用時,它們被連接到成對的3×3層(3n個shortcut)。在這個數據集上,我們全部使用恆等shortcuts(即選項A),因此,我們的殘差模型和相應的普通網絡具有相同的深度、寬度和參數的個數。

我們使用0.0001的權重衰減和0.9的動量,並常用[13]的權重初始化和BN,但是沒有dropout層。這個模型用批量大小為128,在2個GPU上訓練。我們開始時設置學習率為1.1,在32k和48k次迭代時將學習率除以10,並在64k次迭代時結束訓練,這由45k/5k train/val划分決定。我們根據[24]的簡單數據擴增進行訓練:每一側都填充4個像素,並且從填充圖像或水平翻轉中隨機抽取32×32的corp。為了測試,我們只評估原始32×32圖像的單一視角。

我們比較n={3,5,7,9},即20,32,44,56層網絡。圖6左展示了普通網絡的表現。深度普通網絡受到了深度的影響,並且在深的時候表現出了更高的訓練錯誤。這個現象與ImageNet和MNIST相同,說明這樣的優化困難是一個基本問題。

圖6(中間)展示了ResNets的表現。也和ImageNet相同,我們的ResNets成功的克服了優化困難並展示出在深度的時候獲得的准確度。

我們更進一步探索了n=18時,110層的ResNet。在這個試驗中,我們發現0.1的初始學習率有一些太大以至於提早開始收斂。因此我們使用0.01的學習路開始訓練指導訓練誤差地域80%(大約400次迭代),然后變回0.1的學習率繼續訓練。其他的學習任務和前面的實驗一樣。110層的網絡能夠很好的收斂(圖6中間)。它具有比其他又深又窄的網絡如FitNet和HighWay更少的參數(表6),已經是最優異的結果了(6.43%,表6)。

 

層響應分析

圖7展示了層響應的方差。這個響應是BN之后,其他非線性操作(ReLU/addition)之前的輸出。對於ResNets,這個分析揭示了殘差函數的響應力度。圖7展示了ResNet一般比相應的普通網絡具有更小的響應。這個結果支持了我們的基本動機(3.1節),即殘差函數比非殘差函數更易接近於0。我們也注意到,更深的ResNet比20,56,110層的ResNet有更小量級的響應,如圖7。當有更多的層時,一個單獨的ResNet層往往會更少地修改信號。

 

探索1000+層

我們探索了一個超過1000層的深度模型。我們設置n=200,使其產生一個1202層的網絡,同如上所述的進行訓練。我們的方法沒有顯示優化困難,這個1000層網絡能夠實現訓練誤差小於0.1%(圖6,右)。它的測試錯誤也相當好(7.93%,表6)。

但在這種過分深層的模型上,仍存在一些問題。這個1202層網絡的測試結果比我們的110層網絡要差,盡管兩者都有相似的訓練誤差。我們認為這是因為過度擬合。對於小數據集來說,1202層的網絡也許沒有必要。如Maxout和Dropout等強大的正則化方法在這個數據集上已經取得了很好的結果。在這篇論文中,我們沒有使用maxout/dropout並且只簡單的通過深度和設計薄的結構來實現規范化,而不會分散對優化問題的注意力。但是,結合更強的規范化可能會改善結果,我們將在未來研究。

 

4.3在PASCAL和MS COCO上的目標檢測

我們的方法已經在其他識別任務上取得了一般化的表現。表7和表8展示在PASCAL VOC 2007和2012以及COCO上的基本結果。我們采取Faster R-CNN作為檢測方法。我們對用resnet-101替換VGG-16的改進感興趣。使用這兩種模型檢測的實現(見附錄)是相同的,因此所得的結果只能歸因於更好的網絡。值得注意的是,在COCO數據集的挑戰上,我們在COCO標准度量上獲得了6%的增加(mAP@[.5,.95])相對改進了28%。這個進步僅僅是因為特征的學習。

基於深度殘差網絡,我們在ILSVRC&COCO2015年的比賽中獲得了第1名:ImageNet檢測、ImageNet定位、COCO檢測和COCO分割。細節在附錄中。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM