very deep convolution networks for large-sclae ImageNet recoginiton
- 論文位址連結
- Abstract
- 1. Introduction
- 2. Convnet Configuration
-
- 2.1 Architecture
- 2.2 Configuration
- 2.3 discussion
- 3. Classfication framework
-
- 3.1 Training
- 3.2 Testing
- 3.3 Implementation Details
- 4. Classfication Experiments
-
- 4.1 single scale evaluation
- 4.2 Multi-Scale Evaluation
- 4.3 Multi-crops Evaluation
- 4.4 ConvNet fusion
- 4.5 Comparsion with the strate of the art
- 5. Conclusion
- 參考部落格
論文位址連結
https://arxiv.org/abs/1409.1556
Abstract
在這項工作中,我們研究了卷積網絡深度對其準确性的影響,在大規模圖像識别設定。我們的主要貢獻是使用帶有非常小的(3×3)卷積濾波器的架構對深度不斷增加的網絡進行全面評估,這表明,通過将深度推進到16-19個權重層,可以實作對現有技術配置的顯著改進。這些發現是我們送出的ImageNet 2014挑戰賽的基礎,我們的團隊分别獲得定位成績的第一名和分類的第二名。我們還表明,我們的模型可以很好地泛化到其他資料集,在這些資料集上,它們獲得了最先進的結果。我們公開了兩個性能最好的ConvNet模型,以促進計算機視覺中深度視覺表征的進一步研究。
1. Introduction
卷積網絡(ConvNets)近年來在大規模圖像圖像處理和視訊識别領域取得了巨大的成功,由于大型公共圖像庫,如ImageNet和高性能計算系統,如gpu或大規模分布式叢集,讓這些已經成為可能。尤其,imagenetlarge -scale visualrecognition Challenge (ILSVRC) (Russakovsky et al., 2014)在深度視覺識别架構的發展中發揮了重要作用,該挑戰已經作為幾代大規模圖像分類系統的測試平台,從高維淺特征編碼(Perronnin et al., 2010) (ILSVRC-2011的獲勝者)到深度卷積網絡(Krizhevsky et al.,2012) (ILSVRC-2012優勝者)。
随着卷積神經網絡在計算機視覺領域越來越商品化,為了達到更好的精度,人們做了許多嘗試來改進 Alexnet 的原始架構。例如,送出給ILSVRC的最佳作品2013年(Zeiler & Fergus, 2013;Sermanet et al., 2014)利用較小的接收視窗大小和較小的第一卷積層步幅。另一種改進是在整個圖像和多個尺度上密集地訓練和測試網絡。在本文中,我們讨論了ConvNet體系結構設計的另一個重要方面-深度。為此,我們固定了體系結構的其他參數,通過增加更多的卷積層來穩步增加網絡的深度,這種方法是可行的,因為在所有層中都使用了非常小(3 × 3)的卷積濾波器。
是以,我們提出了明顯更精确的ConvNet架構,它不僅實作了ILSVRC分類和定位任務的最先進的精度,而且也适用于其他圖像識别資料集,即使是作為一個相對簡單的管道的一部分(例如,未經微調由線性支援向量機分類的深度特征),它們也能實作出色的性能。我們已經釋出了兩種性能最好的模型,以促進進一步的研究。
2. Convnet Configuration
2.1 Architecture
在訓練過程中,我們的ConvNets的輸入是一個固定大小的224 × 224 RGB圖像。我們所做的唯一預處理是從每個像素減去在訓練集上計算的平均RGB值。圖像通過一堆卷積層,其中我們使用了一個非常小的感受野的過濾器:3 × 3(這是捕捉左/右、上/下、中心概念的最小尺寸)。在其中一種配置中,我們還使用了1 × 1卷積濾波器,這可以看作是輸入通道的線性變換(随後是非線性)。卷積步幅固定為1個像素;卷積層輸入的空間填充是為了保持卷積後的空間分辨率,即對于3 × 3個卷積層填充1個像素。空間池化是由五個max-pooling layers執行的,它們遵循一些卷積層(不是所有的卷積層都遵循最大池化層)。最大池化是在一個2 × 2像素的視窗上執行的,步長為2。
卷積層的堆疊(在不同的架構中有不同的深度)後面是三個完全連接配接(FC)層:前兩個有4096個通道,第三個執行1000路ILSVRC分類,是以包含1000個通道(每個類一個)。最後一個圖層是soft-max圖層。在所有網絡中,完全連接配接的層的配置是相同的。
所有隐藏層都具有激活函數(ReLU )非線性。我們注意到,我們的網絡(除了一個)都不包含局部響應歸一化(LRN),這種歸一化不會提高ILSVRC資料集的性能,但會增加記憶體消耗和計算時間。
2.2 Configuration
本文評估的ConvNet配置概述在表1中,每列一個。下面我們将用它們的名字(A-E)來指代網隊。所有配置均遵循2.1節給出的通用設計,僅在深度上有所不同:從網絡A中的11個權重層(8 con . 3 FC層)到網絡E的19個權重層(16 con . 3 FC層)。卷積層的寬度(通道的數量)相當小,從第一層的64開始,在每個max-pooling層之後增加2倍,直到達到512。

在表2中,我們報告了每種配置的參數數量。盡管我們的網有很大的深度,但網中權重的數量并不大于具有較大的卷積層寬度和接收域的較淺網中的權重數量(144M權重(Sermanet et al., 2014))。
2.3 discussion
我們的ConvNet配置與ILSVRC-2012 (Krizhevsky et al., 2012)和ILSVRC-2013競賽(Zeiler & Fergus,2013;Sermanet等,2014)是不同的,不同點事在第一個對話中使用相對較大的感受野(例如11×11 with stride 4 in (Krizhevsky et al., 2012),或7×7與stride 2 in (Zeiler & Fergus,2013;Sermanet et et al., 2014)),我們在整個網絡中使用非常小的3 × 3感受野,這些感受野與每個像素的輸入卷積(stride 1)。很容易看出兩個3×3 卷積(沒有空間池之間)相當于一個5×5卷積感受野的效果,三個3×3卷積相當于一個7×7卷積感受野的效果。 那麼,通過使用三個3×3 conv.layers而不是單一的7×7層,我們得到了什麼呢?首先,我們采用了三個非線性校正層來代替單一的激活層,使決策函數具有更強的判别性。其次,我們減少參數的數量:假設一個3 × 3層卷積堆棧的輸入和輸出都有C個通道,那麼該堆棧的參數為 3 ( 3 2 C 2 ) = 27 C 2 3(3^2C^2)=27C^2 3(32C2)=27C2個權重;同時,單個7 × 7 conv.層需要 7 2 C 2 = 49 C 2 7^2C^2=49C^2 72C2=49C2參數個數,即:多出81%。這可以看作是對7 × 7 濾波器施加正則化,迫使它們通過3 × 3 濾波器進行分解(其間注入非線性)。
合并1 × 1的卷積層(配置C,表1)是一種增加決策函數的非線性而不影響卷積層感受野的方法。即使在我們的例子中1×1卷積本質上是在相同次元的空間上的一個線性投影(輸入和輸出通道的數目是相同的),一個額外的非線性是由激活函數引入的。值得注意的是,1×1 conv. layers最近被Lin等人(2014)的“Network in Network”架構所使用。
Ciresan等人(2011)曾使用過小型卷積濾波器,但他們的網絡深度明顯小于我們的,并且他們沒有在大規模ILSVRC資料集上進行評估。Goodfellow等人(2014)将深度卷積網絡(11個權重層)應用到街道号碼識别任務中,并表明深度的增加會帶來更好的性能。
GooLeNet(Szegedy等,2014),ILSVRC-2014分類任務的表現最好的項目,是獨立于我們工作之外的開發的,但是類似的是它是基于非常深的ConvNets(22個權重層)和小卷積濾波器(除了3×3,它們也使用了1×1和5×5卷積)。然而,它們的網絡拓撲結構比我們的更複雜,并且在第一層中特征圖的空間分辨率被更積極地減少,以減少計算量。正如将在第4.5節顯示的那樣,我們的模型在單網絡分類精度方面勝過Szegedy等人(2014)。
3. Classfication framework
3.1 Training
ConvNet訓練程式一般遵循Krizhevsky等人(2012)(除了從多尺度訓練圖像中采樣輸入,後面會解釋)。即通過使用小批量梯度下降法優化多項邏輯回歸目标來進行訓練(基于反向傳播(LeCun等人,1989))的動量。批大小設定為256,動量設定為0.9。訓練是通過體重衰減(l2懲罰乘數設定為 5 ∗ 1 0 − 4 5*10^{-4} 5∗10−4和正則化丢棄前兩個完全連接配接的層(dropout=0.5)。學習速率最初設定為 1 0 − 2 10^{-2} 10−2,然後當驗證集的準确性停止提高時,學習率降低了10倍。總的來說,學習速率降低了3倍,學習在370K疊代(74個epoch)後停止。我們推測,盡管與我們的網相比,我們有更多的參數和更大的深度(Krizhevsky等人,2012),網絡需要更少的時間來收斂,由于(a)由更大的深度和更小的卷積濾波器尺寸引起的隐式正則化,(b)某些層的預初始化。
網絡權值的初始化是重要的,因為不好的初始化會由于深度網絡中梯度的不穩定性而導緻學習停滞。為了避免這個問題,我們首先訓練配置A(表1),它足夠淺,可以用随機初始化進行訓練。然後,當訓練更深層的架構時,我們初始化了前四個卷積層,最後三個完全連接配接的層與網絡A層(中間層是随機初始化的)。我們沒有降低預初始化層的學習速率,允許它們在學習過程中改變。對于随機初始化(在适用的情況下),我們從均值為零、方差為 1 0 − 2 10^{-2} 10−2的正态分布中采樣權重,偏置被初始化為零。值得注意的是,在論文送出後,我們發現可以通過使用gloot & Bengio(2010)的随機初始化程式來初始化權重,而無需進行預先訓練。
為了獲得固定大小的224×224 ConvNet輸入圖像,它們從歸一化的訓練圖像中被随機裁剪(每個圖像每次SGD疊代進行一次裁剪)。為了進一步增強訓練集,裁剪圖像經過了随機水準翻轉和随機RGB顔色偏移(Krizhevsky等,2012)。下面解釋訓練圖像歸一化。
**訓練圖像大小。**令S是等軸歸一化的訓練圖像的最小邊,ConvNet輸入從S中裁剪(我們也将S稱為訓練尺度)。雖然裁剪尺寸固定為224×224,但原則上S可以是不小于224的任何值:對于,裁剪圖像将捕獲整個圖像的統計資料,完全擴充訓練圖像的最小邊;對于,裁剪圖像将對應于圖像的一小部分,包含小對象或對象的一部分。
我們考慮兩種方法來設定訓練尺度S。第一種是修正對應單尺度訓練的S(注意,采樣裁剪圖像中的圖像内容仍然可以表示多尺度圖像統計)。在我們的實驗中,我們評估了以兩個固定尺度訓練的模型:(已經在現有技術中廣泛使用(Krizhevsky等人,2012;Zeiler&Fergus,2013;Sermanet等,2014))和。給定ConvNet配置,我們首先使用來訓練網絡。為了加速網絡的訓練,用預訓練的權重來進行初始化,我們使用較小的初始學習率。
設定S的第二種方法是多尺度訓練,其中每個訓練圖像通過從一定範圍(我們使用和)随機采樣S來單獨進行歸一化。由于圖像中的目标可能具有不同的大小,是以在訓練期間考慮到這一點是有益的。這也可以看作是通過尺度抖動進行訓練集增強,其中單個模型被訓練在一定尺度範圍内識别對象。為了速度的原因,我們通過對具有相同配置的單尺度模型的所有層進行微調,訓練了多尺度模型,并用固定的進行預訓練。
3.2 Testing
在測試時,給定一個訓練好的卷積神經網絡和輸入圖像,按照以下方法對卷積神經網絡進行分類。首先,對其進行各向同性縮放,将其縮放到預先定義的最小圖像邊,記作Q(我們也稱其為測試尺度)。我們注意到Q不一定等于訓練尺度S(我們将在第4節中說明,對每個S使用幾個Q值可以提高性能)。然後,該網絡以類似于(Sermanet et al., 2014)的方式密集地應用于歸一化的測試圖像上。即,先将全連接配接層轉換為卷積層(第一層FC為7 × 7 conv.層,後兩層FC為1 × 1 conv.層)。然後将得到的全卷積網絡應用于整個(未裁剪)圖像。其結果是一個類分數映射,通道的數量等于類别的數量,以及取決于輸入圖像大小的可變空間分辨率。最後,為了獲得圖像的類别分數的固定大小的向量,類得分圖在空間上平均(和池化)。我們還通過水準翻轉圖像來增強測試集;将原始圖像和翻轉圖像的soft-max類後驗進行平均,以獲得圖像的最終分數。
由于全卷積網絡應用于整個圖像,是以不需要在測試時間對多次裁剪進行采樣(Krizhevsky et al., 2012),因為需要對每一種裁剪重新計算網絡,是以效率較低。與此同時,使用大量裁剪,如Szegedy等人所做的。(2014),可以提高精度,因為與全卷積網絡相比,它可以獲得更精細的輸入圖像采樣。此外,由于不同的卷積邊界條件,多重裁剪圖像評估是密集評價的補充:當将ConvNet應用于裁剪圖像時,卷積特征圖用零填充,而在密集評估的情況下,相同裁剪圖像的填充自然會來自于圖像的相鄰部分(由于卷積和空間池化),這大大增加了整個網絡的感受野,是以捕獲了更多的上下文。雖然我們認為在實踐中,多裁剪圖像的計算時間增加并不足以證明準确性的潛在收益,但作為參考,我們還在每個尺度使用50個裁剪圖像(5×5規則網格,2次翻轉)評估了我們的網絡,在3個尺度上總共150個裁剪圖像,與Szegedy等人(2014)在4個尺度上使用的144個裁剪圖像。
3.3 Implementation Details
我們的實作來自于公開可用的c++ Caffe工具箱(Jia, 2013)(在2013年12月分支出來),但是包含了許多重要的修改,允許我們對安裝在單個系統中的多個圖形進行訓練和評估,以及在多個尺度上對全尺寸(未裁剪)圖像進行訓練和評估(如上所述)。多GPU訓練利用資料并行性,将每批訓練圖像分割成若幹個GPU批,在每個GPU上并行處理。計算GPU批處理梯度後,将其平均以獲得完整批次的梯度。梯度計算是同步的,在GPU上訓練,結果和在單個GPU上訓練完全一樣。
最近提出了更加複雜的加速ConvNet訓練的方法(Krizhevsky,2014),它們對網絡的不同層之間采用模型和資料并行,我們發現我們概念上更簡單的方案與使用單個GPU相比,在現有的4-GPU系統上已經提供了3.75倍的加速。在配備四個NVIDIA Titan Black GPU的系統上,根據架構訓練單個網絡需要2-3周時間。
4. Classfication Experiments
**資料集:**在本節中,我們将介紹所描述的圖像分類結果
ILSVRC-2012資料集上的ConvNet架構(用于ILSVRC 2012-2014chal - lenges)。該資料集包含1000個類的圖像,并被分為三組:訓練(1.3萬幅圖像)、驗證(50K幅圖像)和測試(100K留有類标簽的圖像)。分類性能采用兩種方法進行性能評估:top-1和top-5錯誤率。前者是多類分類誤差,即不正确分類圖像的比例;後者是ILSVRC中使用的主要評估标準,并且計算為圖像真實類别在前5個預測類别之外的圖像比例。
對于大多數實驗,我們使用驗證集作為測試集。在測試集上也進行了一些實驗,并将其作為ILSVRC-2014競賽(Russakovsky等,2014)“VGG”小組的輸入送出到了官方的ILSVRC伺服器。
4.1 single scale evaluation
我們首先用2.2節中描述的層配置在單個尺度上評估單個ConvNet模型的性能。測試圖像大小設定如下:當S是固定的大小時,Q = S;當 S ∈ [ S m i n , S m a x ] , Q = 0.5 ( S m i n + S m a x ) S∈[S_{min},S_{max}],Q = 0.5(S_{min} + S_{max}) S∈[Smin,Smax],Q=0.5(Smin+Smax)。結果如表3所示:
首先,我們注意到使用局部響應歸一化(A- LRN網絡)并不能改善沒有任何歸一化層的模型A。是以,我們在更深層次的架構中不使用歸一化(B-E)。
其次,我們觀察到随着卷積網絡深度的增加,分類誤差減小A為11層,E為19層。注意的是,雖然深度相同,但配置C(包含3個1 × 1的conv. layers)的性能不如配置D(使用3 × 3的conv. layers)整個網絡的層。這表明,雖然額外的非線性确實對網絡有所有幫助(C比B好),但通過使用具有非平凡感受野的conv. filters (D比C好)捕捉空間上下文也很重要。當深度達到19層時,我們網絡的錯誤率飽和,但更深入的模型可能對更大的資料集有益。這表明,雖然額外的非線性确實有幫助(C比B好),但通過使用具有非簡單接收字段的conv. filters (D比C好)捕捉空間上下文也很重要。當深度達到19層時,我們架構的錯誤率飽和,但更深入的模型可能對更大的資料集有益。
最後,訓練時的尺度抖動得到了與固定最小邊(或)的圖像訓練相比更好的結果,即使在測試時使用單尺度。這證明了通過尺度抖動進行的訓練集增強确實有助于捕獲多尺度圖像統計。
4.2 Multi-Scale Evaluation
當Q不是固定值時,即為multi-scale evaluation。它包括在一張測試圖像的幾個重縮放版本上運作模型,然後對所得到的類别後驗進行平均。
考慮到訓練和測試之間圖像尺寸的巨大差異會導緻性能下降,是以用固定S訓練出的模型将會在三個測試圖像尺寸上進行評估,這三個尺寸接近于訓練時使用的尺寸S:Q = {S − 32, S, S + 32}。而用不固定S訓練出的模型允許網絡在測試時應用于更廣的尺寸範圍,是以用尺度抖動訓練出的模型将在更大的尺寸範圍Q = {256, 384, 512} 上進行評估。下圖給出的結果表明,測試時的尺度抖動帶來了更高的準确率 (表4比表3)。如前所述,最深的結構D和E效果最佳。
4.3 Multi-crops Evaluation
在表5中,我們将稠密ConvNet評估與多裁剪圖像評估進行比較(細節參見第3.2節)。我們還通過平均其soft-max輸出來評估兩種評估技術的互補性。可以看出,使用多裁剪圖像表現比密集評估略好,而且這兩種方法确實是互補的,因為它們的組合優于其中的每一種。如上所述,我們假設這是由于卷積邊界條件的不同處理.
4.4 ConvNet fusion
到目前為止,我們對單個卷積網絡模型的性能進行了評估。在這一部分的實驗中,我們通過對soft-max類别後驗進行平均,結合了幾種模型的輸出。由于模型的互補性,這提高了性能,并在2012年(Krizhevsky等人,2012年)和2013年(Zeiler & Fergus, 2013年;Sermanet et al .,2014)。
結果如表6。在ILSVRC送出的時候,我們隻訓練了單規模網絡,以及一個多尺度模型D(僅在全連接配接層進行微調而不是所有層)。由此産生的7個網絡組合具有7.3%的ILSVRC測試誤差。在送出之後,我們考慮了隻有兩個表現最好的多尺度模型(配置D和E)的組合,它使用密集評估将測試誤差降低到7.0%,使用密集評估和多裁剪圖像評估将測試誤差降低到6.8%。作為參考,我們表現最佳的單模型達到7.1%的誤差(模型E,表5)。
4.5 Comparsion with the strate of the art
最後,我們在表7中與最新技術比較我們的結果。在ILSVRC-2014挑戰的分類任務(Russakovsky等,2014)中,我們的“VGG”團隊獲得了第二名,
使用7個模型的組合取得了7.3%測試誤差。送出後,我們使用2個模型的組合将錯誤率降低到6.8%。
從表7可以看出,我們的very deep ConvNets明顯優于上一代模型,在ILSVRC-2012和ILSVRC-2013比賽中取得了良好的成績。我們的結果也與分類任務獲勝者(GoogleNet與誤差為6.7%),大大超過了ILSVRC-2013獲獎作品Clarifai,後者在有外部訓練資料的情況下獲得了11.2%的成績,在沒有外部訓練資料的情況下獲得了11.7%的成績。注意到,考慮到我們最好的結果是通過結合兩個模型實作的—明顯少于大多數模型使用的ILSVRC送出。在單模型網絡性能方面,我們的架構獲得了最好的結果(7.0%的測試誤差),比單個GoogleNet的性能高出0.9%。還有,我們并沒有脫離LeCun等人(1989)的經典ConvNet架構,而是通過大幅增加深度來改進它。
5. Conclusion
在這項工作中,我們評估了非常深的卷積網絡(最多19個權重層)用于大規模圖像分類。已經證明,表示深度有利于分類精度,并且深度大大增加的傳統ConvNet架構(LeCun等,1989;Krizhevsky等,2012)可以實作ImageNet挑戰資料集上的最佳性能。在附錄中,我們還顯示了我們的模型很好地泛化到各種各樣的任務和資料集上,可以匹敵或超越更複雜的識别流程,其建構圍繞不深的圖像表示。我們的結果再次證明了深度在視覺表示中的重要性。
參考部落格
1. https://blog.csdn.net/abc_138/article/details/80568450