卷積神經網路之VGG

2022-03-24 01:10:20 字數 4493 閱讀 1009

vgg可以看成是加深版的alexnet,整個網路由卷積層和全連線層疊加而成,和alexnet不同的是,vgg中使用的都是小尺寸的卷積核(\(3\times3\))。

結構簡潔,如下圖vgg-19的網路結構

對比,前文介紹的alexnet的網路結構圖,是不是有種賞心悅目的感覺。整個結構只有\(3\times3\)的卷積層,連續的卷積層後使用池化層隔開。雖然層數很多,但是很簡潔。

小卷積核和連續的卷積層

vgg中使用的都是\(3\times3\)卷積核,並且使用了連續多個卷積層。這樣做的好處:

小池化核,使用的是\(2\times 2\)

通道數更多,特徵度更寬

每個通道代表著乙個featuremap,更多的通道數表示更豐富的影象特徵。vgg網路第一層的通道數為64,後面每層都進行了翻倍,最多到512個通道,通道數的增加,使得更多的資訊可以被提取出來。

層數更深

使用連續的小卷積核代替大的卷積核,網路的深度更深,並且對邊緣進行填充,卷積的過程並不會降低影象尺寸。僅使用小的池化單元,降低影象的尺寸。

全連線轉卷積(測試階段)

這也是vgg的乙個特點,在網路測試階段將訓練階段的三個全連線替換為三個卷積,使得測試得到的全卷積網路因為沒有全連線的限制,因而可以接收任意寬或高為的輸入,這在測試階段很重要。

如本節第乙個圖所示,輸入影象是224x224x3,如果後面三個層都是全連線,那麼在測試階段就只能將測試的影象全部都要縮放大小到224x224x3,才能符合後面全連線層的輸入數量要求,這樣就不便於測試工作的開展。

全連線轉卷積的替換過程如下:

例如\(7 \times 7 \times 512\)的層要跟4096個神經元的層做全連線,則替換為對\(7 \times 7 \times 512\)的層作通道數為4096、卷積核為\(1 \times 1\)卷積。

這個「全連線轉卷積」的思路是vgg作者參考了overfeat的工作思路,例如下圖是overfeat將全連線換成卷積後,則可以來處理任意解析度(在整張圖)上計算卷積,這就是無需對原圖做重新縮放處理的優勢。

vgg網路相比alexnet層數多了不少,但是其結構卻簡單不少。

vgg**主要是研究網路的深度對其分類精度的影響,所以按照上面的描述設計規則,作者實驗的了不同深度的網路結構

所有網路結構都遵從上面提到的設計規則,並且僅是深度不同,也就是卷積層的個數不同:從網路a中的11個加權層(8個卷積層和3個fc層)到網路e中的19個加權層(16個卷積層和3個fc層)。卷積層的寬度(通道數)相當小,從第一層中的64開始,然後在每個最大池化層之後增加2倍,直到達到512。

上圖給出了各個深度的卷積層使用的卷積核大小以及通道的個數。最後的d,e網路就是大名鼎鼎的vgg-16和vgg-19了。

alexnet僅僅只有8層,其可訓練的引數就達到了60m,vgg系列的引數就更恐怖了,如下圖(單位是百萬)

由於引數大多數集中在後面三個全連線層,所以雖然網路的深度不同,全連線層確實相同的,其引數區別倒不是特別的大。

**首先將訓練影象縮放到最小邊長度的方形,設縮放後的訓練影象的尺寸為\(s \times s\)。網路訓練時對訓練影象進行隨機裁剪,裁剪尺寸為網路的輸入尺寸\(224 \times 224\)。如果\(s =224\),則輸入網路的影象就是整個訓練影象;如果\(s > 224\),則隨機裁剪訓練影象包含目標的部分。

對於訓練集影象的尺寸設定,**中使用了兩種方法:

多尺度評估,測試影象的尺度抖動對效能的影響

對同一張測試影象,將其縮放到不同的尺寸進行測試,然後取這幾個測試結果的平均值,作為最終的結果(有點像整合學習,所不同的是,這裡是測試影象的尺寸不同)。使用了三種尺寸的測試影象:\(q\)表示測試影象,\(s\)表示訓練是影象尺寸:\(q = s - 32\),\(q = s + 32\),前面兩種是針對訓練影象是固定大小的,對於訓練時影象尺寸在一定範圍內抖動的,則可以使用更大的測試影象尺寸。\(q = \,0.5(s_ + s_),s_\}\).

評估結果如下:

評估結果表明,訓練影象尺度抖動優於使用固定最小邊s

稠密和多裁剪影象評估

dense(密集評估),即指全連線層替換為卷積層(第一fc層轉換到7×7卷積層,最後兩個fc層轉換到1×1卷積層),最後得出乙個**的score map,再對結果求平均。

multi-crop,即對影象進行多樣本的隨機裁剪,將得到多張裁剪得到的影象輸入到網路中,最終對所有結果平均

從上圖可以看出,多裁剪的結果是好於密集估計的。而且這兩種方法確實是互補的,因為它們的組合優於其中的每一種。

由於不同的卷積邊界條件,多裁剪影象評估是密集評估的補充:當將convnet應用於裁剪影象時,卷積特徵圖用零填充,而在密集評估的情況下,相同裁剪影象的填充自然會來自於影象的相鄰部分(由於卷積和空間池化),這大大增加了整個網路的感受野,因此捕獲了更多的影象內容資訊。

依照vgg的設計原則,只使用小尺寸的\(3\times3\)卷積核以及\(2 \times 2\)的池化單元,實現乙個小型的網路模型。

最終輸出10分類,應用於cifar10,表現如下:

卷積神經網路 經典神經網路模型之VGG 16

vgg 16其中的16含義為 含有權重引數的有16層,共包含引數約為1.38億,這是乙個相當大的網路。但是其網路結構很規整簡潔,沒有那麼多的超引數,專注於構建簡單的網路結構 都是幾個卷積層後面跟乙個最大池化層 通過不斷的加深網路結構來提公升效能 但是由此也會帶來訓練的特徵數量非常大的缺點。其網路結構...

經典卷積神經網路之 VGG16

命名 16表示除pooling layer外使用conv layer的層數 1.vggnet探索了卷積神經網路的深度與其效能之間的關係,通過反覆堆疊3 3的小型卷積核和2 2的最大池化層,vggnet成功地構築了16 19層深的卷積神經網路 2.vggnet結構簡潔,整個網路都使用了同樣大小的卷積核...

VGG神經網路

第一次使用多個小的卷積核 來代替大的卷積核,兩個3 3代替乙個5 5,三個3 3代替7 7。使用多個小的卷積核可以有效地降低神經網路所需要的的引數。並且並沒減少的感受野。唯一的不足是,在進行反向傳播時,中間的卷積層可能會導致占用更多的記憶體。感受野計算公式 p i 1 pi kernel 1 str...