VGG-《Very deep convolutional networks for large-scale image recognition》翻譯

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

2015年

 摘要

在這項工作中,我們研究了在大規模的圖像識別中卷積神經網絡的深度對其準確度的影響。我們主要貢獻是對使用非常小的卷積核(3× 3)架構的網絡逐漸增加層數的全程評估,這表明通過將深度加到16-19個權重層可以實現對現有技術配置的顯著改進。這些發現基於我們2014ImageNet 挑戰賽的應用,我們團隊分別獲得了本地化第一名和分類跟蹤的第二名。我們還表明,我們的表示也適用於其他數據集,用這個表示獲得最新的結果。我們已經公開發布了兩款性能最佳的ConvNet模型,以便於進一步研究計算機視覺中深度視覺表示的使用。

1.引言

卷積網絡(ConvNet)最近在大規模圖像和視頻的識別(引用)方面已經取得了很大的成功,歸功於大型公開的圖像倉庫(如ImageNet(引用))和高性能計算系統(如GPU或大規模分佈式集羣(引用))。特別是,ImageNet大規模視覺識別挑戰(ILSVRC)(引用)對深度視覺識別架構的進步起了很重要的作用,它已經成爲幾代大規模分類系統的測試平臺,從高維淺層特徵編碼(引用)(ILSVRC2020的獲勝者)到深層卷積網絡(引用)(ILSVRC2012的獲得者)。

隨着卷積網絡在計算機視覺領域越來越成爲一種商品,許多人嘗試改進K等原始體系架構以便獲得更高的準確性。比如,2013年ILSVRC最佳性能提交在第一個卷積層使用較小的感受野(卷積核?)和較小的步長。另一個改進在整幅圖和多規模(引用)進行密集地訓練和測試網絡。本文提出另一個卷積網絡架構設計的重要方面——層數。最後,我們固定了體系的其他參數,並且通過增加更多的卷積層來逐步增加網絡的深度,這種方法可行歸因於在所有層使用中都使用了非常小的(3× 3)卷積核。

結果,我們提出了更加準確的卷積網絡架構,不僅實現了在ILSVRC分類和定位任務目前最好的準確度,而且可以應用到其他圖像識別的數據集中,即使使用本架構作爲相對簡單的通道(例如,由沒有經過微調的線性SVM分類的深度特徵)也可以實現很棒的性能。我們已經發布了兩個最好的模型以促進進一步的研究。

本文的其餘的部分如下:在第2部分,我們介紹了我們卷積網絡的配置。接着第3部分展示了圖像分類訓練的細節和評估,第4部分關於ILSVRC分類任務的配置比較。第5部分總結本文。爲了完整性,我們還在附錄A中介紹和評估了ILSVRC2014目標檢測系統,並且在附錄B討論了其他數據集的深層特徵的泛化能力。最後,附錄C列出了論文主要的修訂版本。

2.ConvNet配置

爲了在公平的環境評估增加捲積網絡層數帶來的改進,我們卷積網絡所有層的配置使用和C等人同樣的規則。這部分,我們首先在2.1部分介紹了卷積網絡配置的通用佈局,然後在2.2部分細化了在評估中使用的具體配置。然後在2.3討論了我們的設計選擇並與現有技術進行比較。

2.1架構

訓練期間,卷積網絡的輸入圖片固定大小爲224× 224RGB。我們唯一做的預處理是計算訓練集中每像素減去計算的RGB平均值。圖像經過一堆卷積核爲3× 3(捕獲左/右,上/下,中心區域的最小尺寸)卷積層堆。其中一個配置中,我們使用了1× 1卷積核,可以看做是輸入通道的線性轉換(之後是非線性)。卷積步長固定爲1;卷積層輸入的空間填充是卷積後保留的空間分辨率,對3× 3卷積層來說填充是一個像素。空間池化是由5個最大池化層進行的,跟在一些卷積層的後面(並不是所有的卷積層後面都跟着池化層)。最大池化層是的核爲2× 2大小,步長爲2。

卷積層(架構不同深度不同)之後是3個全連接層(FC):前兩個每個有4096個通道,最後一個產生1000路ILSVRC分類,因此包含1000個通道(每個通道是一個類別)。最後一層是softmax層。所有網絡中的所有全連接層配置都一樣。

所有的隱層都用修正非線性單元(ReLU)。注意,我們網絡只有一個包含局部響應正則化(LRN)(引用);會在第4部分展示,這種正則化不會改善ILSVRC數據集的性能,但會增加內存消耗和計算時間。在適用的情況下,LRN層的參數是(K等)的參數。

2.2配置

本文評估的卷積網絡配置如表1每列所示。接下來我們會通過名字(A-E)來指代網絡。所有配置都遵循2.1節中提出的通用設計,唯一不同的是深度:從網絡A(8個卷積層3個全連接層)的11個權重層到網絡E(16個卷積層和3個全連接層)19個權重層。卷積層的寬度(通道的數量)很小,從第一層64然後在每個最大池化層後逐步增加2倍直到512.

表1和表2截圖地址:https://blog.csdn.net/wspba/article/details/61625387


表2我們列出了每個配置的參數數量。儘管深度較深,但是我們網絡中的權重數量並不比寬的卷積層和感受野淺層網絡(144M個權重(S等))中權重數多。


2.3討論

我們卷積網絡的配置與ILSVRC-2012(K等)和ILSVRC-2013(Z等)比賽中有很大的不同。他們在第一個卷積層使用使用相對大卷積核(K等步長爲4的11×11,Z等步長爲2的7×7),而我們在整個網絡中使用很小的3×3卷積核,對輸入每個像素進行卷積處理(步長爲1)。顯然,兩個3×3卷積層(中間沒有空間池化)和一個5×5卷積層效果一樣;同理,3個3×3和一個7×7感受野一樣。

讓我們看看用3個3×3卷積層而不是一個7×7會發生什麼。首先,我們引入3個非線性修正層而不是一個使得決策函數更具有辨別力。其次,我們減少了參數:假設一個三層3×3卷積堆的輸入和輸出都有C個通道,這個堆有3(32C)=27C 個權重參數化;與此同時,一個7×7卷積層將會需要72C2 = 49C2 個參數,比上面多超過81%。這可以被看做是對7×7卷積核強加正則化,迫使它們通過3×3卷積核(之間注入非線性)進行分解。

C等之前已經使用過小的卷積核,但是他們的網絡遠沒有我們的深,並且他們也沒有在大規模的數據集ILSVRC上評估。G等曾在街道牌號識別的任務中應用了深層卷積網絡(11個權重層),並證明了增加深度使模型能產生更好的性能。ILSVRC-2014分類任務最佳模型GoogleNet,雖然區別於我們的模型,但相似的是,它也是基於非常深的卷積網絡(22個權重層)和小卷積核(除了3×3卷積核,他們還用了1×1和5×5卷積)。但他們的網絡拓撲遠比我們的複雜,而且爲了降低計算量,特徵圖的空間分辨率在第一層衰減的很嚴重。4.5節將會提及,我們的模型在單一網路分類準確率上優於GoogleNet網絡。

3.分類框架

在上一章節我們展示了我們網絡配置的細節。這一章,我們將介紹分類卷積網絡的訓練和評估。

3.1訓練

卷積網絡的訓練過程基本按照K等的進行的(除了從多尺度訓練圖像上採樣裁切的輸入圖像,稍後解釋)。也就是說,通過使用含動量小批梯度下降(基於反向傳播)優化多元邏輯迴歸來對模型進行訓練。小批大小爲256,動量爲0.9。通過權值衰減( L2懲罰係數設置爲5 .  10−4)以及對前兩個全連接層執行dropout(dropout比率設置爲0.5)來對訓練進行正則化。初始學習率設置爲10−2,然後當驗證集準確率穩定時將學習率降低10倍。學習率總共降低了3次,訓練一共進行了370K次迭代(74個epoch)。我們推測儘管和K等相比,我們的網絡有更多的參數和更深的層,但我們網絡達到收斂只需更少的epoch來收斂,這是因爲:(a)更深的層和更小的卷積核隱式增強了正則化;(b)某些層執行了預初始化。

初始化網絡權重很重要,因爲不合適的初始化將會阻礙網絡的學習。爲了避免這個問題,我們從配置A(如表1)訓練開始,網絡足夠淺以至於能使用隨機初始化進行訓練。然後訓練更深的結構時,我們對前四個卷積層和最後3個全連接層使用網絡A來初始化(中間層使用隨機初始化)。我們沒有降低預初始化層的學習率,使其在訓練過程中能改變。對於隨機初始化的權重,我們從均值爲0方差爲10−2的正態分佈中採樣。值得注意的是,在文章提交後,我們發現可以使用G等中的隨機初始化程序對權重進行初始化而不需要進行預訓練。

卷積網絡輸入圖像的固定大小(224×224)從經過尺寸縮放的訓練圖像(每張圖片的每一次SGD迭代時裁剪一次)上進行隨機裁剪而得。爲了進一步對訓練集進行數據擴增,裁剪圖像進行隨機的水平翻轉和隨機的RGB顏色轉換。訓練圖像的尺寸縮放將在後面進行解釋。

訓練圖片大小 用S代表經過各項同性縮放的訓練圖像的最小邊,卷積網絡的輸入就是從這些圖片裏裁剪得來的(我們也稱S爲訓練規模)。當裁剪大小固定爲224×224時,原則上S可以取任意不小於224的值:因爲當S等於224時,裁減會捕獲整幅圖的統計信息,可以完全覆蓋圖像的最小邊;當S 224時,裁剪會對應圖像的一小部分,包含一個小對象或者對象的局部。

我們考慮兩種方法來設置訓練規模S。第一種方法是,針對單規模圖像的訓練(注意:在裁剪圖像內的內容仍可以表示多規模圖像的統計信息)。在我們的實驗中,我們評估了兩種固定尺寸訓練的模型:S= 256(前人經常使用的(引用))和S=384。給定卷積網絡配置我們先用S=256訓練網絡。爲了加速S=384的訓練。我們使用S=256預訓練權重進行初始化,並且使用一個很小的初始學習率:10−3

第二種設置S的方法是多規模訓練,每個訓練圖像從某個範圍 [Smin, Smax ](最小值爲256,最大值爲512)隨機抽取S來縮放。由於圖片中的對象可能是不同大小的,在訓練期間把這個考慮在內是有利的。這也可以視爲通過抖動擴增數據集,使得一個單一模型能夠識別大範圍的對象。考慮到訓練速度,我們使用固定S=384預訓練模型同等配置對一個單一模型的所有層進行微調,來訓練多規模模型。

3.2測試

在測試階段,給定一個訓練好的卷積網絡和一張輸入圖片,用如下的方法進行分類。首先,圖像的最小邊被各向同性縮放成預定義的大小,設爲Q(我們也稱此爲測試尺寸)。我們注意到Q並一定要與訓練尺寸S相同(第4部分會提及,對於一個S使用不同的Q有助於提升性能)。然後,根據S的方法將網絡密集的應用在經過尺寸縮放的測試圖像上。也就是說,先將全連接層轉換成卷積層(第一個FC轉換成7×7的卷積層,後兩個FC全連接層轉換成1×1的卷積層),再將這樣的全卷積網絡運用到整幅圖像上(未裁剪的)。結果是一個分類得分圖,通道數和類別數相同,空間分辨率依賴於圖像輸入時大小。最終,爲了得到圖片固定大小的分類得分矢量,分類得分圖進行進行空間平均化(求和——池化)。我們也通過水平翻轉來增大測試數據集;在原始圖像和翻轉圖像上的softmax分類概率的平均值作爲這幅圖的最終得分。

由於測試階段在整幅圖上使用了全卷積網絡,因此不需要對圖像進行多個裁剪取樣(引用),因爲網絡對每個裁剪的重新計算會使效率降低。與此同時,使用正如GoogleNet所做的,使用大量的裁剪圖片可以提升準確度,因爲和全卷積網絡相比,它能生成關於輸入圖片更好的採樣。同樣,由於不同的卷積邊界條件,多裁剪評估與密度的評估是互補的:當把卷積網絡用到裁剪中時,卷積特徵圖使用0填充,而使用密度評估時,對於同樣裁剪圖片的填充自然來源於圖像鄰近的部分(歸因於卷積和空間池化),這大大增加了整個網絡的感受域,因此會捕獲更多的上下文。雖然我們相信在實踐中,增加多重裁剪計算時間並不會潛在地獲得準確率,作爲參考,我們也評估了我們使用的每規格50張裁剪圖像的網絡(5×5大小2個步長),3個規模總共150張裁剪圖片,這個S等中使用的4種尺寸共144張裁剪圖片是可比的。

3.3實現細節

我們的實驗基於公開的C++Caffe工具包(引用)(2013年12月版),但包含一些重要的修改,讓我們能在一個單一系統的多個GPU上進行訓練和評估,以及訓練和評估多規格原始圖片(未裁剪)(如上所述)。多GPU訓練利用數據並行,通過將每批訓練圖像分給多個GPU進行並行運算。計算完每批的梯度後,再求平均值來作爲總的梯度。在多個GPU上的梯度計算是同步的,所以和使用一個GPU訓練的結果是一致的。

雖然K等提出了更加複雜的方法來加快訓練卷積網絡,那就是在網絡的不同層上利用模型和數據並行,而我們發現但是提出的相對簡單的方案在現成的4塊GPU系統上已經比單GPU提升了3.75倍的計算速度。在配有4塊NVIDIA Titan Black GPU的系統上,訓練一個單一網絡需要2-3周的時間。

4.分類實驗

數據集 這部分,我們展示了通過已描述的架構在ILSVRC-2012數據集(在ILSVRC 2012-2014挑戰賽上使用的)上圖像分類的結果。這個數據集有1000個分類,被分成3塊:訓練集(1.3M張),驗證集(50K)和測試集(100K張有標籤的圖像)。我們用兩種方法進行分類評估:top-1和top-5錯誤率。前者是多類分類錯誤率,如錯誤分類圖片的百分比;後者是ILSVRC上使用的主要評估標準,即真實類別不在top-5預測類別之中的圖像百分比。

對於大部分實驗,我們使用驗證集作爲測試集。某些實驗也在測試集上進行,並提交給官方ILSVRC服務器作爲VGG團隊參加ILSVRC-2014競賽。

4.1單一規模評估

我們先評估單一尺度上使用2.2節中描述的層的配置獨立卷積網絡模型的性能。測試圖片的大小如下:對於固定的S,令Q=S;S抖動時,∈ [Smin, Smax]設置= 0.5(Smin Smax) 。結果如表3所示。


首先,注意使用局部響應標準化(A-LRN網絡)沒有改善未使用任何標準化的模型A。因此我們在更深的結構(B-E)不再使用標準化。

其次,我們觀察到,隨着卷積網絡層數的增加分類錯誤降低了:從A中11層增加到E中的19層。值得注意的是,儘管深度相同,C(包含3個1×1卷積層)不如整個網絡使用3×3卷積層的D模型。表明增加非線性層對網絡的提升有幫助(C比B好),通過使用非平凡感受域卷積覈對於捕獲上下文信息很重要(D比C好)。當我們模型深度增加到19層時我們架構的錯誤率達到飽和,但對更大的數據集可能更深的網絡更好。我們比較了B網絡和一個使用5個5×5卷積層的淺層網絡進行比較,從B衍生出來的,用一個5×5卷積層代替每對3×3卷積層(和2.3節的感受域相同)。淺層網絡的top-1錯誤率爲7%高於B(在中心裁剪上),證明使用小卷積核的深層網絡優於使用大卷積核的淺層網絡。

最後,在訓練期間圖像最小邊區域內變化(S [256; 512] )比固定大小結果要好的多,即使在測試期間使用單一規模。表明了使用範圍變化來擴增訓練集對捕獲對規模圖像統計信息確實很有用。

4.2多尺度評估

在評估卷積網絡的單一規模後,我們現在評估在測試期間的規模抖動。它包含在一張測試圖像多個縮放版本運行模型(對應Q的不同值),然後對結果類的後驗進行平均。考慮到訓練和測試規模之間的巨大差異導致性能下降,我們用固定的S訓練的模型評估3個測試圖像大小,接近訓練:Q ={S 32, S, S + 32} 。同時,訓練期間的尺寸抖動允許網絡在測試期間更廣泛的尺度範圍,因此模型用變量S [Smin; Smax在更大的尺寸範圍Q = {Smin, 0.5(Smin + Smax), Smax}上評估。


表4的結果表明測試時尺寸抖動導致了更好的性能(與在單一尺度上相同模型的評估相比,如表3所示)。如前所述,最深的配置(D和E)執行最佳,並且尺寸抖動優於使用固定最小邊的訓練。我們在驗證集上的最佳單網絡性能爲top-1和top-5分別爲24.8%,7.5%(表4用粗體表示)。在測試集上,配置E實現了top-5位7.3%的錯誤率。

4.3多裁剪評估


在表5中,我們比較了密卷積網絡評估和多裁剪圖像評估(細節參見3.2)。我們通過平均其softmax輸出來評估兩種技術的互補性。可以看出,使用多裁剪圖像比密集評估略好,而且這兩種方確實互補,因爲它們的組合由於其中的每一種。如上所述,我們假設這歸因於卷積邊界條件的不同處理。

4.4卷積網絡融合

到目前爲止,我們評估了單個卷積網絡的性能。這部分實驗中,我們通過對softmax類後驗平均,組合了幾種網絡模型的輸出。由於模型的互補性,這提高了性能,並在2012年(K等)和2013年(Z等)ILSVRC的頂級提交中使用。

結果如表6所示。在ILSVRC提交的時候,我們只訓練了單規模網絡,以及一個多尺度模型D(盡在全連接層進行微調而不是所有層)。由此產生的7個網絡組合具有7.3%的ILSVRC測試誤差。在提交之後,我們只考慮了兩個最佳表現的多尺度模型(配置D和E)的組合,使用密集評估將測試誤差降到7.0%,使用多裁剪圖像評估降到6.8%。作爲參考,我們最佳表現的單模型實現7.1%的誤差(如表5的模型E)。


4.5與現有技術的比較

最後,我們在表7中把我們的結果和最新的技術相比較。在ILSVRC-2014挑戰的分類任務(R等)中,我們的VGG團隊獲得第二名,使用7個模型的組合獲得了7.3%的誤差。提交之後,我們使用2個模型的組合將錯誤率降到6.8%。


從表7可以看出,我們非常深的卷積網絡顯著優於前一代模型,在ILSVRC-2012和ILSVRC-2013競賽中取得了最好的結果。我們的結果可以和分類任務的獲勝者(GoogleNet具有6.7%錯誤率)相匹敵,並且遠優於ILSVRC——2013獲勝者Clarifai的提交結果,其使用外部數據取得了11.2%的錯誤率,不使用外部數據則爲11.7%。考慮到我們最好的結果是組合兩個模型實現的,這一點非同凡響-明顯少於大多數提交的模型。就單網絡性能而言,我的架構實現了最好的結果(7.0%的測試誤差),比單個GoogleNet少了0.9%。值得注意的是,我們並沒有偏離LeChun等的經典卷積網絡架構,只是通過通過加深深度改變它。

5.結論

在這項工作中,我們評估了非常深的卷積網絡(最多19個權重層)用於大規模圖像分類。已經證明,表示深度有利於分類精度,並且大大增加傳統卷積網絡架構(LeChun等)的深度可以實現ImageNet挑戰數據集上的最佳性能。在附錄中,我們也顯示了我們的模型很好地泛化到各種各樣的任務和數據集上,可以匹敵甚至超越更復雜的識別流程,其構建圍繞深度很小的圖像表示。我們結論再次證明了深度在視覺表示中的重要性。

致謝

這項工作得到ERC授權的VisRec編號228180的支持。我們非常感謝NVIDIA公司捐贈GPU爲此研究使用。


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