源鏈結
ilsvrc 2014的第二名是karen simonyan和 andrew zisserman實現的卷積神經網路,現在稱其為vggnet
。它主要的貢獻是展示出網路的深度是演算法優良效能的關鍵部分。
他們最好的網路包含了16個卷積/全連線層。網路的結構非常一致,從頭到尾全部使用的是3x3的卷積和2x2的匯聚。他們的
預訓練模型
是可以在網路上獲得並在caffe中使用的。
vggnet不好的一點是它耗費更多計算資源,並且使用了更多的引數,導致更多的記憶體占用(140m)。其中絕大多數的引數都是來自於第乙個全連線層。
後來發現這些全連線層即使被去除,對於效能也沒有什麼影響,這樣就顯著降低了引數數量。
目前使用比較多的網路結構主要有resnet(152-1000層),goolenet(22層),vggnet(19層)。大多數模型都是基於這幾個模型上改進,採用新的優化演算法,多模型融合等,這裡
重點介紹vgg。
vgg是在從alex-net發展而來的網路。主要修改一下兩個方面:
1,在第乙個卷基層層使用更小的filter尺寸和間隔(3*3); 2,在整個和multi-scale上訓練和測試。
3*3
filter:
引入cs231n上面一段話:
幾個小濾波器卷積層的組合比乙個大濾波器卷積層好:
假設你一層一層地重疊了3個3x3的卷積層(層與層之間有非線性啟用函式)。在這個排列下,第乙個卷積層中的每個神經元都對輸入資料體有乙個3x3的視野。
第二個卷積層上的神經元對第乙個卷積層有乙個3x3的視野,也就是對輸入資料體有5x5的視野。同樣,在第三個卷積層上的神經元對第二個卷積層有3x3的視野,
也就是對輸入資料體有7x7的視野。假設不採用這3個3x3的卷積層,二是使用乙個單獨的有7x7的感受野的卷積層,那麼所有神經元的感受野也是7x7,但是就有一些缺點。
首先, 多個卷積層與非線性的啟用層交替的結構,比單一卷積層的結構更能提取出深層的更好的特徵。其次,假設所有的資料有c個通道,那麼單獨的7x7卷積層將會包含
7*7*c=49c2個引數,
而3個3x3的卷積層的組合僅有個3*(3*3*c)=27c2個引數。直觀說來,最好選擇帶有小濾波器的卷積層組合,而不是用乙個帶有大的濾波器的卷積層。前者可以表達出輸入資料中更多個強力特徵,
使用的引數也更少。唯一的不足是,在進行反向傳播時,中間的卷積層可能會導致占用更多的記憶體。
1*1 filter: 作用是在不影響輸入輸出維數的情況下,對輸入線進行線性形變,然後通過relu進行非線性處理,增加網路的非線性表達能力。 pooling:2*2,間隔s=2。
本文是有5個max-pooling層,所以是5階段卷積特徵提取。每層的卷積個數從首階段的64個開始,每個階段增長一倍,直到達到最高的512個,然後保持。
原文:下圖為vgg-19結構圖:
雖然vgg比alex-net有更多的引數,更深的層次;但是vgg只需要很少的迭代次數就開始收斂,原因:
1:深度和小的濾波器尺寸起到了隱士規則化作用。
2:一些層的pre-initialisation
pre-initialisation:網路a的權值w~(0,0.01)的高斯分布,bias為0;由於存在大量的relu函式,不好的權值初始值對於網路訓練影響較大。
為了繞開這個問題,作者現在通過隨機的方式訓練最淺的網路a;然後在訓練其他網路時,把a的前4個卷基層(感覺是每個階段的以第一卷積層)
和最後全連線層的權值當做其他網路的初始值,未賦值的中間層通過隨機初始化。
深度卷積神經網路VGG 學習筆記
author karen simonyan andrew zisserman years 2014,published as a conference at iclr 2015 vggnet是2014年 imagenet large scalevisual recognition challenge...
VGG網路模型
import tensorflow as tf 卷積函式 def conv2d x,w,b,strides 1 x tf.nn.conv2d x,w,strides 1,strides,strides,1 padding same x tf.nn.bias add x,b return tf.nn....
VGG網路相關
概念 近來研究vgg網路,將自己的學習的一些知識記錄下來。vggnet是牛津大學計算機視覺組和google deepmind公司的研究員一起研發的深度卷積神經網路。vgg主要 了卷積神經網路的深度和其效能之間的關係,通過反覆堆疊33的小卷積核和22的最大 層,vggnet成功地搭建了16或者19層的...