Day02 VGGNet (CNN延伸應用)


Day02 VGGNet (CNN延伸應用)

前言


VGGNet是從影像識別ImageNet2014年辦的比賽ILSVRC得獎團隊(Visual Geometry Group, VGG)當時所使用的CNN骨架,也就是這次翻譯文章的作者們。VGGNet的特色是全是用3x3的矩陣當作捲積神經層和2x2的池化層(總共是16個卷基層和3個全連接層),優點是3x3為基數的感知能力較強(2個3x3相當於一個5x5, 3個3x3相當於一個7x7)、非線性,通過多個3x3不斷地加深網路,也增加了許多參數增加內存,運算速度較其他框架慢。

翻譯內容:

"VERY DEEP CONVOLUTIONAL NETWORKS FOR LARGE-SCALE IMAGE RECOGNITION", 10 Apr 2015, arXiv:1409.1556v6

0.摘要

在這項工作中,我們研究了卷積網絡深度在大規模圖像識別環境中對其準確性的影響。我們的主要貢獻是使用具有非常小(3×3)卷積濾器的結構對增加深度的網絡進行全面評估,顯示將深度推至16-19重量層可以重大改進現有技術配置。這些發現是我們提交2014年ImageNet挑戰賽的基礎,我們的團隊分別獲得了第一和第二名。我們還表明,我們的表示形式可以很好地推廣到其他數據集,在這些數據集上它們可以達到最新的結果。我們已經公開提供了兩個性能最佳的ConvNet模型,以促進對在計算機視覺中使用深層視覺表示的進一步研究。

1.介紹

卷積網絡(ConvNets)最近在大規模圖像和視頻識別方面取得了巨大成功(Krizhevsky等,2012; Zeiler&Fergus,2013; Sermanet等,2014; Simonyan&Zisserman,2014),這已經成為可能歸功於龐大的公共圖像存儲庫,例如ImageNet(Deng等,2009),以及高性能計算系統,例如GPU或大型分佈式集群(Dean等,2012)。 特別是ImageNet大規模視覺識別挑戰賽(ILSVRC)(Russakovsky et al。,2014)在深度視覺識別架構的發展中發揮了重要作用,它已成為幾代大型測試平台的試驗平台 規模的圖像分類系統,從高維淺層特徵編碼(Perronnin等,2010)(ILSVRC-2011的獲獎者)到深度ConvNets(Krizhevsky等人,2012)(ILSVRC-2012的獲獎者)。

隨著ConvNets在計算機視覺領域中越來越成為一種商品,人們進行了許多嘗試來改進Krizhevsky等人的原始體系結構。 (2012),以達到更好的準確性。 例如,向ILSVRC2013提交的最佳表現(Zeiler&Fergus,2013; Sermanet等,2014)利用較小的接收窗口大小和較小的第一卷積層跨度。 另一項改進涉及在整個圖像上和多個尺度上密集地訓練和測試網絡(Sermanet等,2014; Howard,2014)。 在本文中,我們討論了ConvNet體系結構設計的另一個重要方面–深度。 為此,我們修復了體系結構的其他參數,並通過添加更多的捲積層來穩步增加網絡的深度,這是可行的,因為在所有層中都使用了非常小的(3×3)卷積濾波器。

因此,我們提出了更為精確的ConvNet架構,該架構不僅在ILSVRC分類和定位任務上達到了最先進的準確性,而且還適用於其他圖像識別數據集,即使在這些數據集下,它們也可以獲得出色的性能當用作相對簡單的管道的一部分時(例如,通過線性SVM分類的深層特徵而無需微調)。我們發布了兩個性能最佳的模型1,以方便進一步研究。

本文的其餘部分安排如下。參照圖2,我們描述我們的ConvNet配置。 圖像分類訓練和評估的詳細信息隨後在第3部分中介紹。第4部分中介紹ILSVRC分類任務上比較配置。本文的第五章文總結。為了完整起見,我們還在附錄A中描述和評估我們的ILSVRC-2014對象本地化系統,並在附錄B中討論了將非常深的功能推廣到其他數據集的情況。最後,附錄C包含主要論文修訂的列表。

2.CONVNET配置

為了在公平的環境下衡量不斷增加的ConvNet深度帶來的改進,我們的所有ConvNet層配置均採用相同的原理設計,並受到Ciresan等人的啟發(2011);克里熱夫斯基等(2012)。 在本節中,我們首先描述ConvNet配置的通用佈局(第2.1節),然後詳細介紹評估中使用的特定配置(第2.2節)。 然後討論我們的設計選擇,並將其與第2.3節中的現有技術進行比較。

2.1架構

在訓練過程中,ConvNets的輸入是固定尺寸的224×224 RGB圖像。我們唯一要做的預處理就是從每個像素中減去在訓練集上計算出的RGB平均值。圖像通過一疊卷積(轉換)層傳遞,我們在其中使用具有很小接收域的濾鏡:3×3(這是捕獲左/右,上/下,中心的概念的最小尺寸) 。在一種配置中,我們還利用了1×1卷積濾波器,這可以看作是輸入通道的線性變換(其次是非線性)。卷積步幅固定為1個像素;轉換的空間填充圖層輸入是為了在卷積後保留空間分辨率,即對於3×3轉換而言,填充為1像素。層。空間池化由五個最大池化層執行,這五個層都遵循一些轉換。層(並非所有轉換層都跟隨最大池)。最大合併在跨度為2的2×2像素窗口上執行。

一疊卷積層(在不同體系結構中深度不同)之後是三層全連接(FC)層:前兩層各具有4096個通道,第三層進行1000路ILSVRC分類,因此包含1000個通道(一個 每個課程)。 最後一層是soft-max層。 在所有網絡中,完全連接的層的配置都是相同的。

所有隱藏層都配備了非線性校正(ReLU(Krizhevsky et al。,2012))。 我們注意到,我們的網絡(除了一個)均不包含本地響應規範化(LRN)規範化(Krizhevsky等人,2012年):這將在本節中進行展示。 如圖4所示,這種規範化不能改善ILSVRC數據集的性能,但是會導致內存消耗和計算時間增加。 LRN層的參數在適用時為(Krizhevsky et al。,2012)的參數。

2.2構型

表1中概述了本文評估的ConvNet配置,每列一個。 在下文中,我們將通過名稱(A–E)來指稱網絡。 所有配置均遵循本節中介紹的通用設計。 2.1,僅在深度上有所不同:網絡A中的11個權重層(8個轉換層和3個FC層)到網絡E中的19個權重層(16個轉換層和3個FC層)。 轉換寬度 層(通道數)很小,從第一層的64個層開始,然後在每個最大池化層之後增加2倍,直到達到512個為止。

在表2中,我們報告了每種配置的參數數量。 儘管深度較大,但我們的蚊帳中的砝碼數量不大於轉化率較大的較淺蚊帳中的砝碼數量。 層寬度和感受野(Sermanet et al。,2014中的144M權重)。

2.3討論

我們的ConvNet配置與ILSVRC-2012(Krizhevsky等人,2012)和ILSVRC-2013競賽(Zeiler&Fergus,2013; Sermanet等人,2014)的頂級作品中使用的配置完全不同。而不是在第一次轉換中使用相對較大的接收場。層(例如,11×11的步幅為4(Krizhevsky等人,2012),或7×7的步幅為2(Zeiler&Fergus,2013; Sermanet等人,2014)),我們使用非常小的3×3整個網中的接收場,與每個像素的輸入進行卷積(步幅為1)。不難看出,兩個3×3轉換的堆棧。層(中間沒有空間池)的有效接收場為5×5;三個這樣的層具有7×7的有效接收場。因此,我們通過使用三個3×3轉換的堆棧獲得了什麼。層,而不是單個7×7層?首先,我們合併了三個非線性整流層,而不是單個整流層,這使得決策功能更具區分性。其次,我們減少參數的數量:假設三層3×3卷積堆棧的輸入和輸出都具有C個通道,則該堆棧的參數設置為3(3 2C 2)= 27C2權重;同時,進行一次7×7轉換。層將需要72C2 = 49C2參數,即增加81%。這可以看作是對7×7轉化強加了正則化。過濾器,迫使它們通過3×3過濾器進行分解(在其間注入非線性)

合併1×1轉換。 層(配置C,表1)是增加決策函數的非線性度而不影響conv的接收場的一種方法。 層。 即使在我們的情況下,1×1卷積實際上是在相同維數空間上的線性投影(輸入和輸出通道的數量相同),但整流函數會引入其他非線性。 應該注意的是1×1轉換。 Lin等人最近在“網絡中的網絡”架構中使用了網絡層。 (2014年)

Ciresan等人先前已使用小型捲積濾波器。 (2011年),但它們的網絡深度遠小於我們的網絡,並且他們沒有在大型ILSVRC數據集上進行評估。 Goodfellow等。 (2014年)將深層ConvNets(11個權重層)應用於街道編號識別任務,並表明增加的深度導致更好的性能。 GoogLeNet(Szegedy等人,2014)是ILSVRC-2014分類任務中表現最好的一項,它的開發與我們的工作無關,但是類似,它基於非常深的ConvNet(22個權重層)和小的捲積過濾器(除了3×3,它們還使用1×1和5×5卷積)。但是,它們的網絡拓撲比我們的網絡拓撲更複雜,並且在第一層中更加積極地降低了特徵圖的空間分辨率,從而減少了計算量。如將在“節”中所示。 4.5,我們的模型在單網絡分類準確性方面優於Szegedy等人(2014)

3. 分類框架

在上一節中,我們介紹了網絡配置的詳細信息。 在本節中,我們描述分類ConvNet培訓和評估的詳細信息。

3.1 訓練

ConvNet培訓過程通常遵循Krizhevsky等人的觀點。 (2012年)(除了從多尺度訓練圖像中對輸入農作物進行採樣外,如稍後所述)。即,訓練是通過使用動量的小批量梯度下降(基於反向傳播(LeCun等,1989))優化多項式邏輯回歸目標來進行的。批次大小設置為256,動量設置為0.9。通過權重衰減(L2懲罰乘數設置為5·10-4)和前兩個完全連接的層的丟包規則化(丟包率設置為0.5)對訓練進行調整。最初將學習率設置為10-2,然後在驗證集準確性停止提高時降低10倍。總體而言,學習率降低了3倍,並且在370K次迭代(74個紀元)之後停止了學習。我們推測,儘管與(Krizhevsky et al。,2012)相比,網絡的參數數量更大且深度更大,但由於(a)深度更大且卷積較小而產生的隱式正則化,網絡收斂所需的曆元更少。過濾器尺寸; (b)某些層的預初始化。

網絡權重的初始化很重要,因為糟糕的初始化會由於深網中的梯度不穩定性而使學習停滯。 為了解決這個問題,我們從訓練配置A(表1)開始,該配置足夠淺,可以通過隨機初始化進行訓練。 然後,當訓練更深的體系結構時,我們用網絡A的層初始化了前四個卷積層和最後三個完全連接的層(中間層是隨機初始化的)。 我們沒有降低預初始化層的學習速度,而是允許它們在學習過程中進行更改。 對於隨機初始化(如果適用),我們從正態分佈中以零均值和10-2方差採樣權重。 偏差以零初始化。 值得注意的是,在論文提交後,我們發現可以通過使用Glorot&Bengio(2010)的隨機初始化程序在不進行預訓練的情況下初始化權重。

為了獲得固定尺寸的224×224 ConvNet輸入圖像,從重新縮放的訓練圖像中隨機裁剪(每SGD迭代每個圖像一個裁剪)。 為了進一步增強訓練集,農作物進行了隨機的水平翻轉和隨機的RGB顏色偏移(Krizhevsky等人,2012)。 訓練圖像重新縮放將在下面說明。

訓練圖像大小。 令S為各向同性縮放後的訓練圖像的最小面,從中裁剪ConvNet輸入(我們也將S稱為訓練尺度)。 當作物大小固定為224×224時,原則上S可以取不小於224的任何值:對於S = 224,作物將捕獲完整圖像統計信息,完全跨越訓練圖像的最小側面; 對於S 224 224,作物將對應於圖像的一小部分,其中包含一個小物體或一個物體部分。

我們考慮兩種設置訓練尺度S的方法。第一種是固定S,它對應於單尺度訓練(請注意,採樣作物中的圖像內容仍可以表示多尺度圖像統計信息)。 在我們的實驗中,我們評估了在兩個固定比例下訓練的模型:S = 256(已在現有技術中廣泛使用(Krizhevsky等人,2012; Zeiler&Fergus,2013; Kerzhevsky等,2012)。
Sermanet et al。,2014))和S =384。在使用ConvNet配置的情況下,我們首先使用S = 256訓練網絡。為了加快S = 384網絡的訓練速度,它使用預先訓練的權重進行了初始化。 S = 256,我們使用了較小的初始學習率10-3。

設置S的第二種方法是多尺度訓練,其中通過從某個範圍[Smin,Smax](我們使用Smin = 256和Smax = 512)中隨機抽樣S來分別縮放每個訓練圖像的大小。 由於圖像中的對象可以具有不同的大小,因此在訓練過程中考慮這一點是有益的。 這也可以看作是通過尺度抖動進行訓練集增強,其中訓練單個模型以識別大範圍尺度上的對象。 出於速度原因,我們通過對具有相同配置的單尺度模型的所有層進行微調來訓練多尺度模型,並使用固定S = 384進行了預先訓練。

3.2 測試

在測試時,給定訓練有素的ConvNet和輸入圖像,可以按以下方式對其進行分類。首先,將其各向同性地縮放到預定義的最小圖像面,表示為Q(我們也將其稱為測試比例)。我們注意到,Q不一定等於訓練量表S(正如我們將在第4節中說明的那樣,對每個S使用多個Q值可以提高性能)。然後,以類似於(Sermanet et al。,2014)的方式將網絡密集地應用到重新縮放的測試圖像上。即,首先將完全連接的層轉換為卷積層(第一個FC層轉換為7×7轉換層,最後兩個FC層轉換為1×1轉換層)。然後將所得的全卷積網絡應用於整個(未裁剪)圖像。結果是一個類別評分圖,其中通道數等於類別數,並且空間分辨率取決於輸入圖像的大小。最後,為了獲得圖像的類分數的固定大小矢量,對類分數圖進行空間平均(總和)。我們還通過水平翻轉圖像來增強測試集。對原始圖像和翻轉圖像的soft-max類後驗進行平均,以獲得圖像的最終分數。

由於將全卷積網絡應用於整個圖像,因此無需在測試時對多個農作物進行採樣(Krizhevsky等人,2012),效率較低,因為它需要對每種農作物進行網絡重新計算。同時,如Szegedy等人所做的那樣,使用大量農作物。 (2014年)可以提高精度,因為與全卷積網絡相比,它可以對輸入圖像進行更好的採樣。同樣,由於不同的捲積邊界條件,多播評估與密集評估是互補的:將ConvNet應用於作物時,卷積特徵圖會填充零,而在密集評估的情況下,自然會出現針對同一作物的填充從圖像的相鄰部分開始(由於卷積和空間池化),這大大增加了整個網絡的接收場,因此捕獲了更多上下文。儘管我們認為,實際上增加多種作物的計算時間並不能證明潛在的準確性提高,但作為參考,我們還使用每尺度50種作物(5×5常規網格,每2次翻轉)評估了我們的網絡,總計150超過3種規模的農作物,相當於Szegedy等人使用的144種4種規模的農作物(2014)。

3.3 實施細節

我們的實現源自可公開使用的C ++ Caffe工具箱(Jia,2013年)(於2013年12月推出),但包含許多重大修改,使我們能夠對安裝在單個系統中的多個GPU進行培訓和評估。 作為訓練並以多個比例對全尺寸(未裁剪)圖像進行評估(如上所述)。 多GPU訓練利用了數據並行性,並且通過將每批訓練圖像分為幾批GPU來執行,並在每個GPU上並行處理。 計算完GPU批次梯度後,將其平均以獲得整個批次的梯度。 梯度計算在GPU之間是同步的,因此結果與在單個GPU上進行訓練時完全相同。

雖然最近提出了更複雜的方法來加速ConvNet訓練(Krizhevsky,2014),該方法針對網絡的不同層採用了模型和數據並行性,但我們發現,從概念上講,簡單得多的方案已經可以在網絡上提供3.75倍的加速。 與使用單個GPU相比,現成的4-GPU系統。 在配備有四個NVIDIA Titan Black GPU的系統上,根據架構的不同,訓練單個網絡要花費2-3週。

4. 分類實驗

數據集。 在本節中,我們介紹通過在ILSVRC-2012數據集(用於ILSVRC 2012-2014挑戰)上描述的ConvNet架構實現的圖像分類結果。 數據集包括1000個類別的圖像,並分為三組:訓練(130萬圖像),驗證(50K圖像)和測試(100K具有類別標籤的圖像)。 使用兩種方法評估分類性能:top-1和top-5錯誤。 前者是多類分類錯誤,即錯誤分類圖像的比例; 後者是ILSVRC中使用的主要評估標準,並按圖像所佔的比例進行計算,以使地面真實類別不在前5個預測類別之內。

對於大多數實驗,我們使用驗證集作為測試集。 測試集上還進行了某些實驗,並作為ILSVRC-2014競賽的“ VGG”參賽作品提交給了官方ILSVRC服務器(Russakovsky等人,2014)。

4.1 單尺度評估

我們首先使用Sect中介紹的層配置以單個規模評估各個ConvNet模型的性能。 2.2。 測試圖像的大小設置如下:對於固定的S,Q = S,對於抖動的S∈[Smin,Smax],Q = 0.5(Smin + Smax)。 的結果示於表3。

首先,我們注意到在沒有任何規範化層的情況下,使用本地響應規範化(A-LRN網絡)對模型A並沒有改善。 因此,我們在較深的架構(B–E)中不採用標準化。

其次,我們觀察到分類誤差隨著ConvNet深度的增加而減小:從A中的11層到E中的19層。值得注意的是,儘管深度相同,但配置C(
包含三個1×1轉換。層)比配置D(使用3×3轉化)的效果要差。網絡中的各個層。這表明,雖然附加的非線性確實有幫助(C優於B),但使用conv捕獲空間上下文也很重要。具有非平凡接收場的濾波器(D優於C)。當深度達到19層時,我們的體系結構的錯誤率就會飽和,但是更深的模型可能對更大的數據集有利。我們還將網B與具有5個5×5轉換的淺網進行了比較。層,它是通過替換每對3×3轉化而從B導出的。單次轉換5×5轉換的圖層。層(具有與第2.3節中相同的接收場)。測得淺網的top-1誤差比B(在中心作物上)的高7%,這證實了帶小濾網的深網優於帶大濾網的淺網。

最後,即使在測試時使用單個標度,訓練時的標度抖動(S∈[256; 512])也會比在最小邊固定的圖像(S = 256或S = 384)上的訓練產生明顯更好的結果。 這證實了通過尺度抖動進行訓練集增強確實有助於捕獲多尺度圖像統計信息。

4.2 多尺度評估

在單尺度上評估了ConvNet模型之後,我們現在評估測試時尺度抖動的影響。 它包括對測試圖像的多個縮放版本(對應於不同的Q值)運行模型,然後對所得的後代平均。 考慮到訓練量表和測試量表之間的巨大差異會導致性能下降,因此對具有固定S量的訓練模型的評估是針對三種測試圖像尺寸進行的,與訓練量接近:Q = {S − 32,S,S + 32} 。 同時,訓練時的尺度抖動使網絡可以在測試時應用於更大範圍的尺度,因此使用變量S∈[Smin; 在更大的尺寸範圍Q = {Smin,0.5(Smin + Smax),Smax}上評估Smax]。

表4中顯示的結果表明,測試時的刻度抖動會導致更好的性能(與在單個刻度上評估相同模型的結果相比,如表3所示)。 和以前一樣,最深的配置(D和E)執行效果最好,並且比例抖動比使用固定的最小邊S進行訓練要好。在驗證集上,我們最佳的單網絡性能是24.8%/ 7.5%top-1 / top -5錯誤(在表4中以粗體突出顯示)。 在測試集上,配置E實現7.3%的top-5錯誤。

4.3 多作物評估


在表5中,我們將密集的ConvNet評價與多種作物評價進行了比較(有關詳細信息,請參見第3.2節)。 我們還通過平均兩種softmax輸出來評估這兩種評估技術的互補性。 可以看出,使用多種作物的效果要好於密集的評價,並且這兩種方法確實是相輔相成的,因為它們的組合優於每種方法。 如上所述,我們假設這是由於卷積邊界條件的不同處理所致。

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)。

4.5 與最新技術的比較

最後,我們將結果與表7中的最新技術進行比較。在ILSVRC-2014挑戰賽的分類任務中(Russakovsky等,2014),我們的“ VGG”團隊使用7.3%的測試錯誤率獲得了第二名。 7個模型的合奏。 提交後,我們使用2個模型的組合將錯誤率降低到6.8%。

從表7中可以看出,我們非常深入的ConvNets明顯優於上一代模型,後者在ILSVRC-2012和ILSVRC-2013競賽中取得了最佳成績。 對於分類任務的獲勝者(GoogLeNet,錯誤率為6.7%),我們的結果也具有競爭力,並且大大超過了ILSVRC-2013獲獎者Clarifai,後者在外部培訓數據的幫助下達到11.2%,在沒有外部培訓數據的情況下達到11.7%。 考慮到我們僅通過組合兩種模型即可獲得最佳結果,這一點非常顯著-大大少於大多數ILSVRC提交文件中使用的模型。 就單網性能而言,我們的體系結構可實現最佳結果(7.0%的測試錯誤),比單個GoogLeNet高出0.9%。 值得注意的是,我們並沒有脫離LeCun等人的經典ConvNet體系結構。 (1989),但通過大幅增加深度對其進行了改進。

總結

在這項工作中,我們評估了非常深的捲積網絡(最多19個權重層)用於大規模圖像分類。 事實證明,表示深度有利於分類精度,並且可以使用常規的ConvNet架構來實現ImageNet挑戰數據集的最新性能(LeCun等,1989; Krizhevsky等, 2012)。 在附錄中,我們還表明,我們的模型可以很好地推廣到各種任務和數據集,匹配或勝過圍繞不太深的圖像表示構建的更複雜的識別管道。 我們的結果再次證實了深度在視覺表示中的重要性。

參考資料

"VERY DEEP CONVOLUTIONAL NETWORKS FOR LARGE-SCALE IMAGE RECOGNITION", 10 Apr 2015, arXiv:1409.1556v6
VGG 機器之心

#VGGNet #Deep Learning #AI #CNN
深度學習中影像辨識技術用於捕捉人體動作姿態,所用到的一些技術原理還有應用模型方法,其中包含VGGNet, 物件偵測YOLOv3, 姿態Openpose, Pose Proposal Networks, 3D pose baseline; 再加上應用在3D動畫會用到的技術: MMD






Related Posts

JS踩坑筆記 -  function 宣告

JS踩坑筆記 - function 宣告

7天搞懂JS進階議題: 目錄

7天搞懂JS進階議題: 目錄

自駕車控制 high-level 概念理解

自駕車控制 high-level 概念理解



Comments