VGG16网络,VGG19
目錄?
前言
VGG原理
這里解釋一下為什么使用2個3x3卷積核可以來代替5*5卷積核:
VGG網絡結構
VGG優缺點
VGG優點
VGG缺點
前言
VGG是Oxford的Visual?Geometry?Group的組提出的(大家應該能看出VGG名字的由來了)。該網絡是在ILSVRC 2014上的相關工作,主要工作是證明了增加網絡的深度能夠在一定程度上影響網絡最終的性能。VGG有兩種結構,分別是VGG16和VGG19,兩者并沒有本質上的區別,只是網絡深度不一樣。
VGG原理
VGG16相比AlexNet的一個改進是采用連續的幾個3x3的卷積核代替AlexNet中的較大卷積核(11x11,7x7,5x5)。對于給定的感受野(與輸出有關的輸入圖片的局部大小),采用堆積的小卷積核是優于采用大的卷積核,因為多層非線性層可以增加網絡深度來保證學習更復雜的模式,而且代價還比較小(參數更少)。
簡單來說,在VGG中,使用了3個3x3卷積核來代替7x7卷積核,使用了2個3x3卷積核來代替5*5卷積核,這樣做的主要目的是在保證具有相同感知野的條件下,提升了網絡的深度,在一定程度上提升了神經網絡的效果。
比如,3個步長為1的3x3卷積核的一層層疊加作用可看成一個大小為7的感受野(其實就表示3個3x3連續卷積相當于一個7x7卷積),其參數總量為 3x(9xC^2) ,如果直接使用7x7卷積核,其參數總量為 49xC^2 ,這里 C 指的是輸入和輸出的通道數。很明顯,27xC^2小于49xC^2,即減少了參數;而且3x3卷積核有利于更好地保持圖像性質。
這里解釋一下為什么使用2個3x3卷積核可以來代替5*5卷積核:
5x5卷積看做一個小的全連接網絡在5x5區域滑動,假如此時5×5的卷積核對5×5進行卷積,那么卷積一次得到的feature map的大小為1×1
假如此時是兩個3×3的卷積核:第一次用一個3x3的卷積濾波器卷積,得到的feature map為3x3,然后再用一個3x3卷積層,最后得到的feature map的大小也是1×1
這樣我們就可以用兩個3x3卷積級聯(疊加)起來代替一個 5x5卷積。
具體如下圖所示:
2個3x3和5x5
至于為什么使用3個3x3卷積核可以來代替7*7卷積核,推導過程與上述類似,大家可以自行繪圖理解。
VGG網絡結構
下面是VGG網絡的結構(VGG16和VGG19都在):
VGG網絡結構
- VGG16包含了16個隱藏層(13個卷積層和3個全連接層),如上圖中的D列所示
- ?VGG19包含了19個隱藏層(16個卷積層和3個全連接層),如上圖中的E列所示
VGG網絡的結構非常一致,從頭到尾全部使用的是3x3的卷積和2x2的max pooling。
如果你想看到更加形象化的VGG網絡,可以使用經典卷積神經網絡(CNN)結構可視化工具來查看高清無碼的VGG網絡。
VGG優缺點
VGG優點
- VGGNet的結構非常簡潔,整個網絡都使用了同樣大小的卷積核尺寸(3x3)和最大池化尺寸(2x2)。
- 幾個小濾波器(3x3)卷積層的組合比一個大濾波器(5x5或7x7)卷積層好:
- 驗證了通過不斷加深網絡結構可以提升性能。
VGG缺點
- VGG耗費更多計算資源,并且使用了更多的參數(這里不是3x3卷積的鍋),導致更多的內存占用(140M)。其中絕大多數的參數都是來自于第一個全連接層。VGG可是有3個全連接層啊!
PS:有的文章稱:發現這些全連接層即使被去除,對于性能也沒有什么影響,這樣就顯著降低了參數數量。
注:很多pretrained的方法就是使用VGG的model(主要是16和19),VGG相對其他的方法,參數空間很大,最終的model有500多m,AlexNet只有200m,GoogLeNet更少,所以train一個vgg模型通常要花費更長的時間,所幸有公開的pretrained model讓我們很方便的使用。
原文:一文讀懂VGG網絡 - 知乎
總結
以上是生活随笔為你收集整理的VGG16网络,VGG19的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 智能驾驶浪潮催生车载通信新机遇 移远通信
- 下一篇: 超像素分割学习笔记