Vgg網絡解讀

論文題目:Very Deep Convolutional Networks for Large-Scale Image Recognition

論文地址:https://arxiv.xilesou.top/pdf/1409.1556.pdf

摘要

“在這項工作中,我們研究了卷積網絡深度在大規模的圖像識別環境下對準確性的影響。我們的主要貢獻是使用非常小的(3×3)卷積濾波器架構對網絡深度的增加進行了全面評估,這表明通過將深度推到16-19加權層可以實現對現有技術配置的顯著改進。這些發現是我們的ImageNet Challenge 2014提交論文的基礎,我們的團隊在定位和分類過程中分別獲得了第一名和第二名。我們還表明,我們的表示對於其他數據集泛化的很好,在其它數據集上取得了最好的結果。我們使我們的兩個性能最好的ConvNet模型可公開獲得,以便進一步研究計算機視覺中深度視覺表示的使用”。


解讀

vgg(金字塔結構)網絡非常適用於中小型網絡(網絡深度在幾十層),分類性能非常好,即使是在當下同樣也很受歡迎,使用它作為基礎網絡(backbone)。

創新點

使用小卷積3*3代替7*7卷積,降低計算量。

卷積層與層之間使用relu激活函數,max-pool無激活。

預處理:每個像素減去訓練RGB均值。


網絡架構

Vgg網絡解讀

圖為vgg16

這裡以vgg16來講解。白色是卷積層+激活,紅色是池化,藍色是全連接層+池化,棕色框是預測層(softmax),16層對應的是卷積層與全連接層數量和。

圖像以固定尺寸(224×224×3)輸入網絡,網絡的第一、二層為224×224圖像尺寸,64是通道數也是卷積核數量,大小3×3,步長為1,填充p為0。每次卷積緊接一次relu。兩層卷積後最大池化(池化的本質是降維,減少信息冗餘,有最大池化和平均池化兩種),使用128個核大小2×2,步長為2,填充p為0,使圖像縮小為112*112。之後在進行卷積操作,方法類似,只是把通道數成倍增加。

最後接全連接層,也正因為是全連接層導致圖像的輸入是固定尺寸(現在用1*1卷積代替全連接層,目的降低參數量),全連接層的最後一層1000表示分類種類為1000種(有多少種類就是多少)。

網絡結構圖

Vgg網絡解讀

vgg 11-19層,對應架構圖

這裡主要說一點16層結構用了1*1的卷積,

1*1卷積最早出現在NIN中(network in network),1*1卷積好處是減少很大參數量和降低維度,可以使模型訓練速度加快(其實這點知道會用就可以了,參數量計算原理可以看我另一篇文章Googlenet)。


訓練與測試

前4個卷積和最後三個全連接要初始化,其他權重weights隨機0--10^-2 正態分佈 ,bias=0。批處理大小設為256,動量為0.9。訓練通過權重衰減(L2懲罰乘子設定為5⋅10^−4)進行正則化,前兩個全連接層採取dropout正則化(dropout比率設定為0.5)。學習率初始設定為10^−2,然後當驗證集準確率停止改善時,學習率以10倍的比率進行減小。學習率總共降低3次,學習在37萬次迭代後停止(74個epochs)

評價指標 top-1,top-5。

測試階段可以把全連接改為卷積(不在限定輸入圖片大小)

實驗結果對比不放了,沒什麼好說的,就是在說自己模型怎麼怎麼好。


模型侷限

參數量大,第一個全連接計算量大,影響訓練時間。

某些參數要人為設定初始化。

可能出現梯度爆炸/消散,overfit(resnet殘差連接解決網絡深度過大時導致的梯度消失問題,resnet解讀在另外一篇)。

圖片大小固定(全連接導致)。


我是休柏,向陽而來。


分享到:


相關文章: