天天看點

VGGNet論文筆記翻譯+重點

  本文研究了卷積網絡深度在大規模的圖像識别環境下對準确性的影響,主要貢獻是使用非常小的(3×3)卷積濾波器架構對網絡深度的增加進行了全面評估,這表明通過将深度推到16-19權重層可以實作對現有技術配置的顯著改進。

随着ConvNets(卷積神經網絡)在計算機視覺領域越來越商品化,為了達到更好的準确性,已經進行了許多嘗試來改進最初的架構。

  1、送出使用更小的感受視窗尺寸和更小的第一卷積層步長。

  2、改進措施在整個圖像和多個尺度上對網絡進行密集地訓練和測試。

  3、本文,解決了ConvNet架構設計的另一個重要方面——其深度。

2.1 結構

  在訓練期間,我們的ConvNet的輸入是固定大小的224×224 RGB圖像。我們唯一的預處理是從每個像素中減去在訓練集上計算的RGB均值【計算每一張圖檔所有像素對應rgb平均值】。圖像通過一堆卷積(conv.)層,我們使用感受野很小的濾波器:3×3。

  我們還使用了1×1卷積濾波器,可以看作輸入通道的線性變換(後面是非線性)。

  在2×2像素視窗上進行最大池化,步長為2。

  一堆卷積層(在不同架構中具有不同深度)之後是三個全連接配接(FC)層:前兩個每個都有4096個通道,第三個執行1000維ILSVRC分類,是以包含1000個通道(一個通道對應一個類别)。最後一層是soft-max層。所有網絡中全連接配接層的配置是相同的。

  所有隐藏層都配備了修正(ReLU(Krizhevsky等,2012))非線性。我們注意到,我們的網絡(除了一個)都不包含局部響應規範化(LRN)(Krizhevsky等,2012):将在第4節看到,這種規範化并不能提高在ILSVRC資料集上的性能,但增加了記憶體消耗和計算時間。在應用的地方,LRN層的參數是(Krizhevsky等,2012)的參數。

  對圖像進行預處理:計算每一張圖檔所有像素對應rgb平均值,将原圖檔,每個像素都減去均值,将圖檔進入33,步長為1的卷積網絡進行計算,用了22視窗的,步長為2 的池化。三個全連接配接層,前兩個4096個神經元,最後一個輸出層是1000個神經元,因為imagenet分類為1000個分類,最後一個softmax層,将輸出轉化為機率。每一層用的都是relu的激活函數,未用到LRU局部響應歸一化,使用後發現未增加性能,卻增加了記憶體和計算時間

   嘗試了多個深度不同的結構,11表示網絡11層 19代表網絡19層,一般DE網絡應用較多,常見的為VGG-16和VGG-19 ,層數不同表示為卷積層數量不同,11層還嘗試了LRN技術。

  卷積層參數表示為“conv⟨感受野大小⟩-通道數⟩ conv3-128 表示使用3*3的卷積視窗,生成128個特征圖。

VGG-16的網絡結構:

  白色為卷積,紅色為池化,藍色為全連接配接,最後棕色為softmax函數。池化和softmax雖需計算,但沒有需要訓練的權值,是以不包含在網絡層數中,是以總計16層

需要訓練的權值數量:(機關為百萬)

  GooLeNet(Szegedy等,2014),ILSVRC-2014分類任務的表現最好的項目【2014比賽冠軍,本文VGG是亞軍】,是獨立于我們工作之外的開發的,但是類似的是它是基于非常深的ConvNets(22個權重層)和小卷積濾波器(除了3×3,它們也使用了1×1和5×5卷積)。

3.1 訓練

網絡訓練的超參數設定:

  通過使用具有動量的小批量梯度下降(基于反向傳播(LeCun等人,1989))優化多項式邏輯回歸目标函數來進行訓練。批量大小設為256,動量為0.9。訓練通過權重衰減(L2懲罰乘子設定為5.10−45_.10{−4}5.10−4)進行正則化,前兩個全連接配接層執行随機失活正則化(丢棄率設定為0.5)。學習率初始設定為10−210{−2}10−2,然後當驗證集準确率停止改善時,減少10倍。學習率總共降低3次,學習在37萬次疊代後停止(74個epochs)。

  批量大小設為256,動量為0.9(動量和權值調整有關)。正則化為L2正則化,系數為5*10-4,在前兩個全連接配接層使用了dropout(參數為0.5),學習率初始值為10-2,之後逐漸減小,然後當驗證集準确率停止改善時,減少10倍。學習率總共降低3次,學習在37萬次疊代後停止(74個epochs),把所有資料集訓練了74次,總計37萬次

  網絡權重的初始化是重要的,因為由于深度網絡中梯度的不穩定,不好的初始化可能會阻礙學習。為了規避這個問題,我們開始訓練配置A(表1),足夠淺以随機初始化進行訓練。然後,當訓練更深的架構時,我們用網絡A的層初始化前四個卷積層和最後三個全連接配接層(中間層被随機初始化)。我們沒有減少預初始化層的學習率,允許他們在學習過程中改變。對于随機初始化(如果應用),我們從均值為0和方差為10−210^{−2}10−2的正态分布中采樣權重。偏置初始化為零。值得注意的是,在送出論文之後,我們發現可以通過使用Glorot&Bengio(2010)的随機初始化程式來初始化權重而不進行預訓練。

  ==先訓練簡單的A列淺層結構,網絡參數是随機初始化的。當訓練深層次網絡時,使用的初始化參數是VGG-11訓練出來的卷積層的參數,當做預訓練的模型。之中,使用正态分布的随機初始化,均值為0,方差為10^-2,偏置值為0.最後發現其實也可以不進行預訓練。 ==

  一篇讨論神經網絡訓練的論文。使用其初始化方式,即可不用進行預訓練。

  設定S的第二種方法是多尺度訓練,其中每個訓練圖像通過從一定範圍[Smin,Smax]

  (我們使用Smin=256和Smax=512)随機采樣S來單獨進行歸一化。由于圖像中的目标可能具有不同的大小,是以在訓練期間考慮到這一點是有益的。這也可以看作是通過尺度抖動進行訓練集增強,其中單個模型被訓練在一定尺度範圍内識别對象。為了速度的原因,我們通過對具有相同配置的單尺度模型的所有層進行微調,訓練了多尺度模型,并用固定的S=384進行預訓練。

  采用不同分辨率圖像,(分辨率區間為256-512)進行一個多尺度訓練。目的是使模型能适應不同分辨率輸入的圖像。可能高低分辨率能學習到的特征有所差別

3.2 測試

  在測試時,給出訓練的ConvNet和輸入圖像,它按以下方式分類。首先,将其等軸地歸一化到預定義的最小圖像邊,表示為Q(我們也将其稱為測試尺度)。我們注意到,Q不一定等于訓練尺度S(正如我們在第4節中所示,每個S使用Q的幾個值會導緻性能改進)。然後,網絡以類似于(Sermanet等人,2014)的方式密集地應用于歸一化的測試圖像上。即,全連接配接層首先被轉換成卷積層(第一FC層轉換到7×7卷積層,最後兩個FC層轉換到1×1卷積層)。然後将所得到的全卷積網絡應用于整個(未裁剪)圖像上。結果是類得分圖的通道數等于類别的數量,以及取決于輸入圖像大小的可變空間分辨率。最後,為了獲得圖像的類别分數的固定大小的向量,類得分圖在空間上平均(和池化)。我們還通過水準翻轉圖像來增強測試集;将原始圖像和翻轉圖像的soft-max類後驗進行平均,以獲得圖像的最終分數。

  由于全卷積網絡被應用在整個圖像上,是以不需要在測試時對采樣多個裁剪圖像(Krizhevsky等,2012),因為它需要網絡重新計算每個裁剪圖像,這樣效率較低。同時,如Szegedy等人(2014)所做的那樣,使用大量的裁剪圖像可以提高準确度,因為與全卷積網絡相比,它使輸入圖像的采樣更精細。此外,由于不同的卷積邊界條件,多裁剪圖像評估是密集評估的補充:當将ConvNet應用于裁剪圖像時,卷積特征圖用零填充,而在密集評估的情況下,相同裁剪圖像的填充自然會來自于圖像的相鄰部分(由于卷積和空間池化),這大大增加了整個網絡的感受野,是以捕獲了更多的上下文。雖然我們認為在實踐中,多裁剪圖像的計算時間增加并不足以證明準确性的潛在收益,但作為參考,我們還在每個尺度使用50個裁剪圖像(5×5規則網格,2次翻轉)評估了我們的網絡,在3個尺度上總共150個裁剪圖像,與Szegedy等人(2014)在4個尺度上使用的144個裁剪圖像。

  最後幾個全連接配接層大小,層數都是固定的,是以卷積之後提取出來的圖像特征要固定為一個特定的尺寸,才能放入全連接配接層進行一個計算。是以進行了一個平均池化或求和池化。(因為進行了多尺度訓練,是以最後的大小有可能會有不同)

例子:網絡結構中輸入2242243 最後進入全連接配接層為77512 。但若輸入為448443,則最後輸出應該為1414512的特征圖。因為全連接配接層參數固定,是以沒有辦法進行計算。則需要用平均池化和求和池化的轉化。将77 或1414 平均和求和最後都産生一個參數,最後512是固定的 ,是以最後都能使用全連接配接層

  top-1代表給一個結果俺怕你單是否正确,top-5為給5個選項,在其中正确即可。一般來說,層數越多,錯誤率越低。train列[256,512] 表示用例多尺度訓練,256,384,表示固定尺度訓練。多尺度訓練使錯誤率偏低,表示是有效果的。384錯誤率小于256,表示分辨率提高,錯誤率也會降低。

4.2 多尺度評估

  在單尺度上評估ConvNet模型後,我們現在評估測試時尺度抖動的影響。它包括在一張測試圖像的幾個歸一化版本上運作模型(對應于不同的Q值),然後對所得到的類别後驗進行平均。考慮到訓練和測試尺度之間的巨大差異會導緻性能下降,用固定S訓練的模型在三個測試圖像尺度上進行了評估,接近于訓練一次:Q=S−32,S,S+32。同時,訓練時的尺度抖動允許網絡在測試時應用于更廣的尺度範圍,是以用變量S∈[Smin;Smax]訓練的模型在更大的尺寸範圍Q = {S_{min}, 0.5(S_{min} + S_{max}), S_{max}上進行評估。

  test列,256,384,512表示測試的時候把圖檔變為三個尺度的大小輸入測試,再把結果求平均值,平均值即為最後輸出的結果。與上圖進行對比,最後一行top-1和top-5軍下降,代表效果變好。

  在深度學習中,隻能通過實驗不斷測試,各種提出的想法有沒有效果,是否正确。

4.3 多裁剪圖像評估

  在表5中,我們将稠密ConvNet評估與多裁剪圖像評估進行比較(細節參見第3.2節)。我們還通過平均其soft-max輸出來評估兩種評估技術的互補性。可以看出,使用多裁剪圖像表現比密集評估略好,而且這兩種方法确實是互補的,因為它們的組合優于其中的每一種。如上所述,我們假設這是由于卷積邊界條件的不同處理。

表5:ConvNet評估技術比較。在所有的實驗中訓練尺度S從[256;512]采樣,三個測試适度Q考慮:{256, 384, 512}。

  dense表示直接放入測試,不裁剪。小視窗裁剪為multi-crop

  例如有256256的大圖檔,随機裁剪很多224224區域的視窗,再放入模型中預測。測試時,把一張圖檔變為256,384,512三個尺度。在每個尺度使用50個随機裁剪圖像(5×5規則網格,2次翻轉)評估了我們的網絡,在3個尺度上總共150個裁剪圖像,進行測試。得到150個結果。在150個結果中,再求平均值,得到最後的結果。

4.4 卷積網絡融合

  到目前為止,我們評估了ConvNet模型的性能。在這部分實驗中,我們通過對soft-max類别後驗進行平均,結合了幾種模型的輸出。由于模型的互補性,這提高了性能,并且在了2012年(Krizhevsky等,2012)和2013年(Zeiler&Fergus,2013;Sermanet等,2014)ILSVRC的頂級送出中使用。

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

表6:多個卷積網絡融合結果

  進行了模型的內建,內建了7個模型。其中最後一行兩個模型的內建可以得到最好的結果。

4.5 與最新技術比較

  最後,我們在表7中與最新技術比較我們的結果。在ILSVRC-2014挑戰的分類任務(Russakovsky等,2014)中,我們的“VGG”團隊獲得了第二名,

  使用7個模型的組合取得了7.3%測試誤差。送出後,我們使用2個模型的組合将錯誤率降低到6.8%。

  表7:在ILSVRC分類中與最新技術比較。我們的方法表示為“VGG”。報告的結果沒有使用外部資料。

  從表7可以看出,我們非常深的ConvNets顯著優于前一代模型,在ILSVRC-2012和ILSVRC-2013競賽中取得了最好的結果。我們的結果對于分類任務獲勝者(GoogLeNet具有6.7%的錯誤率)也具有競争力,并且大大優于ILSVRC-2013獲勝者Clarifai的送出,其使用外部訓練資料取得了11.2%的錯誤率,沒有外部資料則為11.7%。這是非常顯著的,考慮到我們最好的結果是僅通過組合兩個模型實作的——明顯少于大多數ILSVRC送出。在單網絡性能方面,我們的架構取得了最好節果(7.0%測試誤差),超過單個GoogLeNet 0.9%。值得注意的是,我們并沒有偏離LeCun(1989)等人經典的ConvNet架構,但通過大幅增加深度改善了它。

  GoogLeNet單哥模型未內建為7.9 ,內建7個模型未6.7。

  VGG 單個模型為第二行,內建兩個位第一行

5 結論

  在這項工作中,我們評估了非常深的卷積網絡(最多19個權重層)用于大規模圖像分類。已經證明,表示深度有利于分類精度,并且深度大大增加的傳統ConvNet架構(LeCun等,1989;Krizhevsky等,2012)可以實作ImageNet挑戰資料集上的最佳性能。在附錄中,我們還顯示了我們的模型很好地泛化到各種各樣的任務和資料集上,可以匹敵或超越更複雜的識别流程,其建構圍繞不深的圖像表示。我們的結果再次證明了深度在視覺表示中的重要性。

  最後結果實驗表明,網絡層數深度較多,最後實驗結果性能也會相對較好。

繼續閱讀