【深度神經網絡】三、VGG網絡架構詳解

前言

由於這學期時間緊急,沒多少時間寫博客。近期開始我將會陸續整理這學期的閱讀的論文的相關筆記。今天帶來的是VGG網絡的論文筆記。VGG網絡的論文的下載地址爲:Very deep convolutional networks for large-scale image recognition


一 VGG特點

首先我們來對VGG網絡架構進行一個概括:

  1. 小卷積核:相比AlexNet,將卷積核全部替換爲3×33\times3,極少用了1×11\times1
  2. 小池化層:相比AlexNe,3×33\times3的池化核全部換爲2×22\times2的池化核;
  3. 層數更深:VGG16爲例,3641262565123\to 64\to 126\to 256\to 512 ,卷積核專注於擴大通道數,3個通道的特徵經過經過卷積層的提取擴散到了512個通道;
  4. 特徵圖更窄:VGG16爲例,2241125628147224\to 112\to 56\to 28\to 14\to 7 ,池化層專注於縮小寬和高;
  5. 全連接轉1×11\times 1 卷積:測試階段可以接收任意寬或高爲的輸入。

二 VGG網絡架構

VGG網絡架構如下圖所示。下圖中給出了VGG11至VGG19模型模型配置,A、A-LRN是VGG11模型、B爲VGG13模型、CD爲VGG16模型、E爲VGG19模型。輸入爲224×224224\times 224的RGB圖像。conv代表卷積層,maxpool代表最大池化層,FC代表全連接層,softmax代表sofmax層。卷積層具體表示爲convX-Y,X代表卷積核大小,Y代表卷積層輸出深度,例如conv3-64代表3×33\times3的卷積核,輸出深度爲64。FC-4096代表全連接層有4096個神經元。在VGG網絡架構中,最大池化層尺寸都爲2×22\times2。A-LAN代表在VGG11模型中加入LRN(局部有響應正則化)。

在這裏插入圖片描述
VGG網絡是一類網絡的統稱 ,下圖是VGG網絡模型參數的對比表,模型參數最多是AlexNet的2.4倍。
在這裏插入圖片描述

2.1 爲什麼要使用3*3小卷積核?

  1. 5×55\times5的卷積的視野與 2個 3×33\times3的卷積視野相同。7×77\times7的卷積視野與 3個 3×33\times3 的卷積視野相同。以1層 7×77\times7的卷積換成 3層3×33\times3的卷積爲例進行說明:使用3層非線性來代替1層非線性,使得決策函數更具有可分性,增加了網絡的非線型表達能力。
  2. 同時相對大卷積,多個小卷積可以提取出更大更深的卷積特徵
  3. 同時假設 輸入和輸出特徵圖的通道數都是CC,那麼1個 7×77\times7的卷積參數:7×7×C×C=49C27\times 7\times C\times C=49{{C}^{2}} ,3個 3×33\times3 的卷積參數大小:3×3×3×C×C=27C23\times 3\times 3\times C\times C=27{{C}^{2}}。即利用多個小卷積替換一個大卷積可以減少模型參數數量。

2.2 爲什麼要使用 2×22\times2池化核?

AlexNet的最大池化核爲 3×33\times3,步幅爲22。VGGNet最大池化核爲 2×22\times2,步幅爲22小池化核帶來的是更細節的信息捕獲。

2.3 爲什麼要全連接層轉化爲 1×11\times1卷積?

測試階段將訓練階段的3個全連接替換爲3個1×11\times1卷積,測試重用訓練時的參數,使得測試得到的全卷積網絡因爲沒有全連接的限制,因而可以接收任意寬或高爲的輸入。

以VGG16架構爲例,經過若干卷積層和5個最大池化層之後,輸出大小爲7×7×5127\times 7\times 512,它與第一個FC層之間的權重矩陣爲(7×7×512)×4096(7\times 7 \times512) \times4096。測試時,若繼續使用FC,送入FC層的輸入必須爲一個7×7×5127\times 7\times 512向量,但是若使用卷積層,第一個FC層換成卷積核爲7×77\times7,深度爲512的卷積層,剩下兩個替換成1×11\times1卷積,那麼卷積核的深度即可以看成圖像分類類別,每個在測試階段,必須將每個通道進行取平均作爲每種分類的概率,那麼當輸入圖像尺寸大於224×224224\times224時,最後最大池化層的輸出大於7×77\times7,但是由於後面FC換成了的卷積層,那麼也可以將其映射出爲1000維向量作爲分類概率。轉換成1×11\times1卷積的好處:參數總量不變,計算負擔也相對減少,又消除輸入的限制。

2.4 訓練細節

訓練採用SGD與動量優化,動量因子爲0.9,小批量樣本規模爲256,L2正則化係數爲0.0005,學習率爲0.01。

圖像預處理:圖像減去RGB每個通道的均值。參數初始化:Net-A的權重初始化均值爲0,方差爲0.01的正態分佈隨機數, biases初始爲0。對於B-E的模型參數,首先對Net-A進行訓練,之後將Net-A的參數賦給B-E,其他不同的層採用Net-A中的隨機初始化方式。


三 實驗

接下來我們主要來看下論文中所做的幾組實驗,主要分爲單尺度實驗、多尺度實驗、隨機裁剪實驗和模型融合4組實驗。

3.1 單尺度實驗

實驗結果截圖下圖所示。對比前兩組實驗說明LRN不能提高網絡的性能,因此後面的網絡不使用LRN。A-E各種網絡測試結果表明:深度越深,網絡的性能越好。Net-C採用了1×11\times1卷積提取特徵,儘管Net-C 比Net-B好,說明在Net-C中添加的1×11\times1的卷積有用,但是比較Net-C(VGG11)和Net-D(VGG16),說明相對1×11\times1的卷積,3×33\times3的卷積能捕捉到空間信息。在單尺度測試時,在多尺度上訓練的網絡要比在單尺度上訓練的網絡性能好。
在這裏插入圖片描述

3.2 多尺度實驗

多尺度實驗結果如下圖所示。與使用單尺度相比,測試階段使用多尺度,驗證集錯誤率明顯降低。使用多尺度,Net-D(VGG16)和 Net-E(VGG19)能達到很好的效果。
在這裏插入圖片描述

3.3 隨機裁剪實驗

隨機裁剪實驗的實驗結果如下圖所示。Multi-crop代表對圖像進行隨機裁剪。Dense代表採用全卷積思想,測試時將FC轉化爲卷積層。實驗結果顯示:multi-crop要比dense的top-1好一些,二者結合效果更好。
在這裏插入圖片描述

3.4 模型融合實驗

VGG網絡模型融合後實驗結果如下2張圖所示。將前幾組實驗中的模型進行融合,最終奪取了2014ImageNet分類競賽的亞軍。
在這裏插入圖片描述
在這裏插入圖片描述

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