VGG-大規模圖像識別的深度卷積網絡 Very Deep Convolutional Networks for Large-Scale Image Recognition

VGG-大規模圖像識別的深度卷積網絡

Very Deep Convolutional Networks for Large-Scale Image Recognition

Taylor Guo,2017年5月03日 星期三

摘要

本文討論大規模圖像識別中,卷積神經網絡的深度對識別精度的影響。我們的主要貢獻就是對增加捲積神經網絡的深度進行了徹底的評估,網絡架構使用了一個非常小的3×3卷積濾波器,在先前配置的網絡基礎上,將網絡深度增加到16-19個權重層,表現出非常大的改進。這些發現基於在ImageNet Challenge 2014競賽上使用的方案。我們在圖像定位和分類中分別得到了第一名和第二名。我們的表示方法在其他數據集上泛化能力非常好,目前在技術進展上結果非常好。我們公開了2種性能最好的模型,可以在計算機視覺領域使用深度視覺表示。

1 簡介

卷積神經網絡在大規模圖像和視頻識別上獲得了巨大的成功,由於大規模公開圖像庫,比如ImageNet,和高性能計算系統,比如GPU或大規模分佈式集羣,使這些應用成爲可能。ILSVRC在深度視覺識別架構中扮演了非常重要的角色,作爲幾代大規模圖像分類系統的試驗檯,從高維度淺層特徵編碼到深度卷積神經網絡應用。

卷積神經網絡日益成爲計算機視覺中的重要組成部分,有大量試驗不斷增強原有的架構,獲得更高的精度。比如,ILSVRC-2013中性能最好的方案在第一層卷積層中使用了更小的接受窗口和更小的步長。另外一方面的改進是可以在整幅圖像和多個尺度上訓練和測試網絡。本文關注卷積神經網絡架構設計的另一個重要方面:網絡深度。然後,再確定網絡的其他參數,通過增加捲積層,穩步地增加網絡的深度,這樣就比較可行,主要是由於所有層上都使用了非常小的3×3卷積濾波器。

最後,我們提出了更加精確的卷積神經網絡架構,不僅在ILSVRC的分類和定位任務上,取得了更新的精度,而且還可以應用到其他圖像識別數據集上,甚至當它們作爲一個相對簡單流程的一部分時,也獲得非常優異的性能(比如,未經調優的線性支持向量機的深度特徵分類)。我們發佈了兩個性能最好的模型供大家進一步做研究時使用。

本文組織如下。第2章,卷積神經網絡的配置。第3章,圖像分類訓練的細節和評估。第4章,ILSVRC 分類任務上不同配置的對比。第5章,總結本文。附錄A描述評估了參加ILSVRC-2014的物體定位系統,附錄B深度特徵在其他數據集上的泛化能力。附錄C是修改記錄。

2 卷積神經網絡的配置

爲了在一個公平的環境中評估增加捲積神經網絡深度帶來的改進,VGG卷積神經網絡的配置與之前AlexNet的設計採用相同的法則。本章2.1節先描述VGG卷積神經網絡配置的分佈,接着,2.2節詳細說明評估中所使用的配置,然後2.3節討論比較我們的設計與之前工作的設計。

2.1 架構

訓練過程中,卷積神經網絡的輸入圖像是固定大小224×224的RGB圖像。唯一要做的預處理是在訓練集圖像的每個像素上減去平均RGB值。圖像被傳入一堆卷積層,我們使用的濾波器的感受野非常小:3×3(這是最小的尺寸,處理左右、上下和中心像素)。在其中一個配置中,我們還使用了1×1的卷積濾波器,可以看作是輸入通道的線性變換(接着是非線性修正)。卷積步長固定爲1個像素;卷積層輸入空間填充是卷積後保留下來的分辨率,比如3×3卷積層填充的是1個像素。

5個最大池化層進行圖像大小池化,在卷積層之後(不是所有的卷積層後面都跟着最大池化層)。最大池化層的混合窗口是一個2×2像素的窗口,步長爲2。

卷積網絡層(不同架構深度不同)後面跟着3個全連接層:前兩個每個都有4096個通道,第三個是1000路的ILSVRC分類器,所以包含了1000個通道(每個是一個類)。最後一層是柔性最大轉換層。全連接層的配置在我們的所有網絡中都一樣。

所有隱藏層都配有非線性矯正(修正線性單元)。我們所有的網絡(除了其中一個外)都沒有包含局部反饋歸一化規範:第4章中會介紹,這樣的歸一化並不會增加ISLVRC數據集上的性能,但會增加內存消耗和計算時間。如果需要使用,LRN層的參數可以參考AlexNet。

2.2 配置

表1:卷積神經網絡的配置(每一列)。配置的深度從左A到右E依次增加,層數也更多(粗體字是增加的層)。卷積層參數,記爲 conv<感受野大小>-<通道數量>。爲了簡便,ReLU修正線性單元激活函數沒有顯示。
表1

卷積神經網絡的配置,如表1中的每一列所示。下面我們用每列的字母(A-E)來表示這個網絡。所有的配置都遵循2.1節中的設計,只是在深度上有所不同:從11層權重層的網絡A(8層卷積層,3層全連接層)到19層權重層的網絡E(16層卷積層,3層全連接層)。卷積層的寬度比較小(通道的數量),從第一層的64開始,經過每層的最大池化層後,每層的通道以2的倍數增加到512。

表2:參數的數量(百萬個)
表2

2.3 討論

VGG卷積神經網絡的配置與ILSVRC-2012和ILSVRC-2013競賽中性能最好的網絡非常不同。我們並沒有在第一層卷積層使用比較大的感受野(比如,AlexNet的11×11,步長爲4),或者卷積神經可視化和OverFeat中的7×7,步長爲2。可以看到一個由2個3×3卷積層組成的卷積堆(在兩個卷積層之間沒有空間池化層)形成一個高效的5×5感受野;3個卷積層形成一個7×7感受野。那麼,爲什麼使用一個由3×3卷積層組成的感受野,而不使用一個單一的7×7感受野呢?首先,我們整合了3個非線性修正層,而不是一個,可以使判定函數更加明顯。第二,我們減少了參數的數量:假設一個由3×3卷積層組成的卷積堆有C個通道,這個堆一共有332C2=27C2 個權重;一個單一的7×7卷積層有72C2=49C2 個參數,多出81%。這可以從給7×7卷積濾波器增加歸一化看出來,強行分解成3×3濾波器,在每兩個之間加入非線性矯正。

整合1×1卷積層(表1中配置C)也是一種增加判定函數非線性的方法,而不會影響卷積層的感受野。在我們的網絡中,1×1卷積實質上是一個對相同維度空間上的線性投影(輸入和輸出通道相同),引入修正函數處理非線性。可以注意到1×1卷積層,最近也應用在網中網中。

小尺寸卷積濾波器,之前Ciresan運用過,但他們的網絡明顯沒有我們的深,也沒有評估ILSVRC數據集。GoogLeNet和我們是獨立開發的,但我們非常相似,他們使用了22層權重層的深度卷積神經網絡,和非常小的卷積濾波(除了3×3之外,還使用了1×1和5×5卷積層)。他們的網絡更復雜,特徵地圖空間分辨率縮減更激進,爲了減少計算量。如4.5節所示,VGG模型在單一的網絡分類精度上優於GoogLeNet。


理解VGG卷積神經網絡的參考文獻
CNN/ConvNet:
CS231n: Convolutional Neural Networks for Visual Recognition
CNN筆記:通俗理解卷積神經網絡
卷積神經網絡(CNN)新手指南
卷積神經網絡新手指南之二
卷積神經網絡CNN與深度學習常用框架的介紹與使用 (完整版)
牛津視覺幾何組VGG-Net主頁
VGG-16/19 Technical Paper / 本文的英文論文
VGG-ILSVRC-16網絡架構
VGG ILSVRC 16 layers
VGG-ILSVRC-19網絡架構
CNN model (VGG-19) / object recognition
VGG-19 with TensorFlow
使用TensorFlow實現VGG-19網絡
Convolution neural nets, Part 2 / VGG和其他網絡的介紹
Top100論文導讀:深入理解卷積神經網絡CNN(Part Ⅰ) / OverFeat
計算機視覺識別簡史:從 AlexNet、ResNet 到 Mask RCNN
視頻 => TF Girls 修煉指南 12:卷積神經網絡
視頻 => 臺大 李宏毅深度學習(2017)(5)
李宏毅深度學習-主頁
視頻 => 臺大 李宏毅機器學習(2016)
視頻 => TensorFlow-and-DeepLearning-Tutorial
視頻 => 復旦《數值分析》
Keras- 使用vgg16模型進行圖片預測
Keras使用VGG16訓練圖片分類?
Keras中文文檔
TensorFlow中文社區
DeepLearning-Challenges/Art_Generation/
卷積神經網絡(CNN)
面向小數據集構建圖像分類模型
格萊姆矩陣:
matrix
Gramian matrix
ReLU:
ReLu(Rectified Linear Units)激活函數總結
LRN:
ImageNet中的LRN(Local Response Normalization)
在Caffe中配置每一個層的結構

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