天天看點

Resnet論文翻譯摘要 1. 引言 2. 相關工作 3. 深度殘差網絡學習 4. 實驗

摘要

越深層次的神經網絡越難以訓練。我們提供了一個殘差學習架構,以減輕對網絡的訓練,這些網絡的深度比以前的要大得多。我們明确地将這些層重新規劃為通過參考輸入層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分割。細節在附錄中。

繼續閱讀