VGG網絡講解——小白也能懂

慈雲數據 8個月前 (03-12) 技術支持 124 0

目錄

1.VGG網絡簡介

一.VGG概述

 二.VGG結構簡介

2.VGG的優點

3.VGG亮點所在

計算量

感受野


1.VGG網絡簡介

一.VGG概述

VGGNet是牛津大學視覺幾何組(Visual Geometry Group)提出的模型,該模型在2014ImageNet圖像分類與定位挑戰賽 ILSVRC-2014中取得在分類任務第二,定位任務第一的優異成績。VGGNet突出的貢獻是證明了很小的卷積,通過增加網絡深度可以有效提高性能。VGG很好的繼承了Alexnet的衣缽同時擁有着鮮明的特點。相比Alexnet ,VGG使用了更深的網絡結構,證明了增加網絡深度能夠在一定程度上影響網絡性能

說得簡單點,VGG就是五次卷積的卷積神經網絡

 二.VGG結構簡介

我們上文已經說了,VGG其實就是五層卷積。我們來看這個圖:

這個圖是作者當時六次實驗的結果圖。在介紹這個圖前,我先進行幾個概念說明:卷積層全部爲3*3的卷積核,用conv3-xxx來表示,xxx表示通道數。

在這個表格中,我們可以看到,

第一組(A)就是個簡單的卷積神經網絡,沒有啥花裏胡哨的地方。

第二組(A-LRN)在第一組的卷積神經網絡的基礎上加了LRN(小白們不用太過了解這個,現在已經不是主流了,LRN是Alexnet中提出的方法,在Alexnet中有不錯的表現 )

第三組(B)在A的基礎上加了兩個conv3,即多加了兩個3*3卷積核

第四組(C)在B的基礎上加了三個conv1,即多加了三個1*1卷積核

第五組(D)在C的基礎上把三個conv1換成了三個3*3卷積核

第六組(E)在D的基礎上又加了三個conv3,即多加了三個3*3卷積核

初高中就告訴我們,實驗要控制變量(單一變量),你看,用到了吧

那麽,我們從這一組實驗中能得到什麽結果呢?

1.第一組和第二組進行對比,LRN在這裏并沒有很好的表現,所以LRN就讓他一邊去吧

2.第四組和第五組進行對比,cov3比conv1好使

3.統籌看這六組實驗,會發現随着網絡層數的加深,模型的表現會越來越好

據此,咱們可以簡單總結一下:論文作者一共實驗了6種網絡結構,其中VGG16和VGG19分類效果最好(16、19層隐藏層),證明了增加網絡深度能在一定程度上影響最終的性能。 兩者沒有本質的區别,隻是網絡的深度不一樣。

接下來,以VGG16爲例作具體講解:

 

相信有小白會疑惑:組号下面那個weight layers 是啥意思?别急,看下面:

看這幾個數字加起來,是不是就是16?

就像上圖展示的,除了黃色的maxpool(池化層),其他所有層數的總和,就是16,同理,VGG19也一樣。

那麽,爲什麽不算池化層呢?

這是因爲,池化層沒有權重系數,而其他層都有,所以.....

 那麽,我們接下來去看VGG是如何工作的:

 看,一個長224,寬224,通道數3的圖,經過第一個模塊,通道數增加到64,随後經過池化層長寬減半。然後到第二個模塊,通道數增加到128,到池化層長寬再減半......

一直到最後一次池化,得到7×7×512的結果,然後通過三個全連接層,變成最後的1×1×1000的分類結果(也不一定是一千,這裏的1000是當時的比賽結果)

2.VGG的優點

1.小卷積核組:作者通過堆疊多個3*3的卷積核(少數使用1*1)來替代大的卷積核,以減少所需參數;

2.小池化核:相比較于AlexNet使用的3*3的池化核,VGG全部爲2*2的池化核;

3.網絡更深特征圖更寬:卷積核專注于擴大通道數,池化專注于縮小高和寬,使得模型更深更寬的同時,計算量的增加不斷放緩;

4.将卷積核替代全連接:作者在測試階段将三個全連接層替換爲三個卷積,使得測試得到的模型結構可以接收任意高度或寬度的輸入。

5.多尺度:作者從多尺度訓練可以提升性能受到啓發,訓練和測試時使用整張圖片的不同尺度的圖像,以提高模型的性能。

6.去掉了LRN層:作者發現深度網絡中LRN(Local Response Normalization,局部響應歸一化)層作用不明顯。

3.VGG亮點所在

在AlexNet中,作者使用了11x11和5x5的大卷積,但大多數還是3x3卷積,對于stride=4的11x11的大卷積核,理由在于一開始原圖的尺寸很大因而冗餘,最爲原始的紋理細節的特征變化可以用大卷積核盡早捕捉到,後面更深的層數害怕會丢失掉較大局部範圍内的特征相關性,後面轉而使用更多3x3的小卷積核和一個5x5卷積去捕捉細節變化。

而VGGNet則全部使用3x3卷積。因爲卷積不僅涉及到計算量,還影響到感受野。前者關系到是否方便部署到移動端、是否能滿足實時處理、是否易于訓練等,後者關系到參數更新、特征圖的大小、特征是否提取的足夠多、模型的複雜度和參數量等。

計算量

VGG16相比AlexNet的一個改進是采用連續的幾個3x3的卷積核代替AlexNet中的較大卷積核(11x11,7x7,5x5)。對于給定的感受野(與輸出有關的輸入圖片的局部大小),采用堆積的小卷積核是優于采用大的卷積核,因爲多層的非線性層可以增加網絡深度來保證學習更複雜的模式,而且代價還比較小(參數更少)。

在VGG中,使用了3個3x3卷積核來代替7x7卷積核,使用了2個3x3卷積核來代替5*5卷積核,這樣做的主要目的是在保證具有相同感知野的條件下,提升網絡的深度,在一定程度上提升神經網絡的效果。

比如,3個3x3連續卷積相當于1個7x7卷積:3個3*3卷積的參數總量爲 3x(3×3×C2) =27C2,1個7x7卷積核參數總量爲1×7×7×C2 ,這裏 C 指的是輸入和輸出的通道數。很明顯,27

微信掃一掃加客服

微信掃一掃加客服

點擊啓動AI問答
Draggable Icon