VGG網路相關

2021-10-16 15:28:35 字數 1762 閱讀 8529

概念:

近來研究vgg網路,將自己的學習的一些知識記錄下來。

vggnet是牛津大學計算機視覺組和google deepmind公司的研究員一起研發的深度卷積神經網路。vgg主要**了卷積神經網路的深度和其效能之間的關係,通過反覆堆疊33的小卷積核和22的最大**層,vggnet成功地搭建了16或者19層的深度卷積神經網路。與之前的state-of-art的網路結構相比,錯誤率大幅度下降;同時,vgg的泛化能力非常好,在不同的資料集上都有良好的表現。到目前為止,vgg依然經常被用來提取特徵影象。

需要補充的是,2023年,ilsvrc大賽中googlelenet與vgg分別奪得冠亞軍。

原理:vgg與alexnet的乙個改進是採用連續的幾個33的卷積核代替alexnet中的較大卷積核(11×11、7×7、5×5)。對於給定的感受野(與輸出有關的輸入的區域性大小),採用堆積的小卷積核是優於採用大的卷積核,因為多層非線性層可以增加網路深度來保證學習更複雜的模式,而且代價還比較小(引數更少)。

簡單來說,在vgg中,使用了3個3×3卷積核來代替7×7卷積核,使用了2個3×3卷積核來代替5×5卷積核,這樣做的主要目的是保證具有相同感知野的條件下,提公升了網路的深度,在一定程度上提公升了網路的效果。

比如,3個步長為1的3×3的卷積核的一層層疊加作用可看成乙個大小為7的感受野,其引數總量為3×(3×3×c2),如果直接使用7×7卷積核,其引數總量為(7×7×c2),這裡c指的是輸入和輸出的通道數。很明顯,27×c2小於49×c2,參數量得到減少,而且3×3卷積核有利於更好地保持影象性質。

補充-為什麼使用2個3×3卷積核可以來代替5×5卷積核:

5×5卷積看做乙個小的全連線網路在5×5區域滑動,我們可以先用乙個3×3的卷積濾波器卷積,然後再用乙個全連線層連線這個3×3卷積輸出,這個全連線層我們也可以看做乙個3×3卷積層。這樣我們就可以用兩個3×3卷積級聯(疊加)起來代替乙個 5×5卷積。

網路結構:

vgg網路的結構非常一致,從頭到尾全部使用的是3x3的卷積和2x2的max pooling。

結構視覺化:

找到乙個深度神經網路結構視覺化的**:

裡面包含了vgg-16的網路結構:

優缺點:

vgg優點

1、vggnet的結構非常簡潔,整個網路都使用了同樣大小的卷積核尺寸(3x3)和最大池化尺寸(2x2)。

2、幾個小濾波器(3x3)卷積層的組合比乙個大濾波器(5x5或7x7)卷積層好:

驗證了通過不斷加深網路結構可以提公升效能。

vgg缺點

vgg耗費更多計算資源,並且使用了更多的引數(這裡不是3x3卷積的鍋),導致更多的記憶體占用(140m)。其中絕大多數的引數都是來自於第乙個全連線層。vgg可是有3個全連線層啊!

有的文章稱:發現這些全連線層即使被去除,對於效能也沒有什麼影響,這樣就顯著降低了引數數量。

注:很多pretrained的方法就是使用vgg的model(主要是16和19),vgg相對其他的方法,引數空間很大,最終的model有500多m,alexnet只有200m,googlenet更少,所以train乙個vgg模型通常要花費更長的時間,所幸有公開的pretrained model讓我們很方便的使用。

**練習:

想通過**學習vgg的原理和結構,可以練習文獻5中的例項-vgg網路提取輸入影象的特徵並顯示特徵圖。

參考文獻:

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網路解讀

一 網路結構和配置 主要貢獻是使用乙個帶有非常小 3x3 卷積濾波器的架構對增加深度的網路進行了徹底的評估,這表明通過將深度推進到16 19個權重層,可以實現對先前art配置的顯著改進 1 結構 1 在訓練中,我們的是絡乙個固定大小的輸入224 224 rgb影象。我們所做的唯一預處理是從每個畫素中...

深度網路VGG理解

源鏈結 ilsvrc 2014的第二名是karen simonyan和 andrew zisserman實現的卷積神經網路,現在稱其為 vggnet 它主要的貢獻是展示出網路的深度是演算法優良效能的關鍵部分。他們最好的網路包含了16個卷積 全連線層。網路的結構非常一致,從頭到尾全部使用的是3x3的卷...