「模型解讀」從LeNet到VGG,看卷積+池化串聯的網絡結構

深度學習 有三AI 2019-06-28

從本篇開始,我們將帶領大家解讀深度學習中的網絡的發展,這是深度學習模型解讀第一篇,本篇我們將介紹LeNet,AlexNet,VGGNet,它們都是卷積+池化串聯的基本網絡結構。

1 LeNet5

LeNet5【1】有3個卷積層,2個池化層,2個全連接層。卷積層的卷積核都為5*5,stride=1,池化層都為Max pooling,激活函數為Sigmoid,具體網絡結構如下圖:

「模型解讀」從LeNet到VGG,看卷積+池化串聯的網絡結構

下面我們詳細解讀一下網絡結構,先約定一些稱呼。

我們先約定一些叫法,比如featuremap為28*28*6,卷積參數大小為(5*5*1)*6。其中28*28是featuremap的高度,寬度,6是featuremap的通道數。(5*5*1)*6卷積核表示5*5的高度,寬度,通道數為1的卷積核有6個。你可以把(5*5*1)想象成一個厚度為1,長度,寬度各為5的卷積塊,以下依此類推。

1.Input

輸入圖像統一歸一化為32*32。

2.C1卷積層

經過(5*5*1)*6卷積核,stride=1, 生成featuremap為28*28*6。

3.S2池化層

經過(2*2)採樣核,stride=2,生成featuremap為14*14*6。

4.C3卷積層

經過(5*5*6)*16卷積核,stride=1,生成featuremap為10*10*16。

5.S4池化層

經過(2*2)採樣核,stride=2,生成featuremap為5*5*16。

6.C5卷積層

經過(5*5*16)*120卷積核,stride=1, 生成featuremap為1*1*120。

7.F6全連接層

輸入為1*1*120,輸出為1*1*84,總參數量為120*84。

8.Output全連接層 。

輸入為1*1*84,輸出為1*1*10,總參數量為84*10。10就是分類的類別數。

2 AlexNet

2012年,Imagenet比賽冠軍—Alexnet (以第一作者Alex命名)【2】直接刷新了ImageNet的識別率,奠定了深度學習在圖像識別領域的優勢地位。網絡結構如下圖:

「模型解讀」從LeNet到VGG,看卷積+池化串聯的網絡結構

1.Input

輸入圖像為227*227*3。

2.Conv1

經過(11*11*3)*96卷積核,stride=4, (227-11)/4+1=55,生成featuremap為55*55*96。

3.Pool1

經過3*3的池化核,stride=2,(55-3)/2+1=27,生成featuremap為27*27*96。

4.Norm1

local_size=5,生成featuremap為27*27*96。

5.Conv2

經過(5*5*96)*256的卷積核,pad=2,group=2,(27+2*2-5)/1+1=27,生成featuremap為27*27*256。

6.Pool2

經過3*3的池化核,stride=2,(27-3)/2+1=13,生成featuremap為13*13*256。

7.Norm2

local_size=5, 生成featuremap為13*13*256。

8.Conv3

經過(3*3*256)*384卷積核,pad=1, (13+1*2-3)/1+1=13,生成featuremap為13*13*384。

9.Conv4

經過(3*3*384)*384卷積核,pad=1,(13+1*2-3)/1+1=13,生成featuremap為13*13*384。

10.Conv5

經過(3*3*384)*256卷積核,pad=1,(13+1*2-3)/1+1=13,生成featuremap為13*13*256。

11.Pool5

經過(3*3)的池化核,stride=2,(13-3)/2+1=6,生成featuremap為6*6*256。

12.Fc6

輸入為(6*6*256)*4096全連接,生成featuremap為1*1*4096。

13.Dropout6

在訓練的時候以1/2概率使得隱藏層的某些神經元的輸出為0,這樣就丟掉了一半節點的輸出,BP的時候也不更新這些節點,以下Droupout同理。

14.Fc7

輸入為1*1*4096,輸出為1*1*4096,總參數量為4096*4096。

15.Dropout7

生成featuremap為1*1*4096。

16.Fc8

輸入為1*1*4096,輸出為1000,總參數量為4096*1000。

小結:

1.網絡比LeNet更深,包括5個卷積層和3個全連接層。

2.使用relu激活函數,收斂很快,解決了Sigmoid在網絡較深時出現的梯度消失問題。

3.加入了Dropout層,防止過擬合。

4.使用了LRN歸一化層,對局部神經元的活動創建競爭機制,抑制反饋較小的神經元,放大反應大的神經元,增強了模型的泛化能力。

5.使用裁剪翻轉等操作做數據增強,增強了模型的泛化能力。預測時使用提取圖片四個角加中間五個位置並進行左右翻轉一共十幅圖片的方法求取平均值,這也是後面刷比賽的基本使用技巧。

6.分塊訓練,當年的GPU沒有這麼強大,Alexnet創新地將圖像分為上下兩塊分別訓練,然後在全連接層合併在一起。

6.總體的數據參數大概為240M。

3 VGG

VGGNet【3】主要的貢獻是利用帶有很小卷積核(3*3)的網絡結構對逐漸加深的網絡進行評估,結果表明通過加深網絡深度至16-19層可以極大地改進前人的網絡結構。這些發現也是參加2014年ImageNet比賽的基礎,並且在這次比賽中,分別在定位和分類跟蹤任務中取得第一名和第二名。

VGGNet的網絡結構如下圖:

「模型解讀」從LeNet到VGG,看卷積+池化串聯的網絡結構

類型從A到E。此處重點講解VGG16。也就是圖中的類型D。如圖中所示,共有13個卷積層,3個全連接層。其全部採用3*3卷積核,步長為1,和2*2最大池化核,步長為2。

1.Input層

輸入圖片為224*224*3。

2.CONV3-64

經過(3*3*3)*64卷積核,生成featuremap為224*224*64。

3.CONV3-64

經過(3*3*64)*64卷積核,生成featuremap為224*224*64。

4.Max pool

經過(2*2)max pool核,生成featuremap為112*112*64。

5.CONV3-128。

經過(3*3*64)*128卷積核,生成featuremap為112*112*128。

6. CONV3-128

經過(3*3*128)*128卷積,生成featuremap為112*112*128。

7.Max pool

經過(2*2)maxpool,生成featuremap為56*56*128。

8.CONV3-256

經過(3*3*128)*256卷積核,生成featuremap為56*56*256。

9.CONV3-256

經過(3*3*256)*256卷積核,生成featuremap為56*56*256。

10.CONV3-256

經過(3*3*256)*256卷積核,生成featuremap為56*56*256。

11.Max pool

經過(2*2)maxpool,生成featuremap為28*28*256

12.CONV3-512

經過(3*3*256)*512卷積核,生成featuremap為28*28*512

13.CONV3-512

經過(3*3*512)*512卷積核,生成featuremap為28*28*512。

14.CONV3-512

經過(3*3*512)*512卷積核,生成featuremap為28*28*512。

15.Max pool

經過(2*2)maxpool,生成featuremap為14*14*512。

16.CONV3-512

經過(3*3*512)*512卷積核,生成featuremap為14*14*512。

17.CONV3-512

經過(3*3*512)*512卷積核,生成featuremap為14*14*512。

18.CONV3-512

經過(3*3*512)*512卷積核,生成featuremap為14*14*512。

19.Max pool

經過2*2卷積,生成featuremap為7*7*512。

20.FC-4096

輸入為7*7*512,輸出為1*1*4096,總參數量為7*7*512*4096。

21.FC-4096

輸入為1*1*4096,輸出為1*1*4096,總參數量為4096*4096。

22.FC-1000

輸入為1*1*4096,輸出為1000,總參數量為4096*1000。

小結:

1. 共包含參數約為550M。

2. 全部使用3*3的卷積核和2*2的最大池化核。

3. 簡化了卷積神經網絡的結構。

總結

LeNet5是早期用於工程應用的網絡結構,發展到AlexNet,激活函數從sigmoid變為relu,加入了Dropout層等操作,引起了新一輪的深度學習熱潮。VGG基本是AlexNet的加強版,深度上是其2倍左右,參數量大小也是兩倍多。

這三個網絡結構本質上都是(卷積+池化)堆疊的網絡結構,是深度學習復興以來的第一個有重大工程意義的網絡設計系列。

參考文獻

[1] Lécun Y, Bottou L, Bengio Y, et al. Gradient-based learning applied to document recognition[J]. Proceedings of the IEEE, 1998, 86(11):2278-2324.

[2] Krizhevsky A, Sutskever I, Hinton G E. ImageNet classification with deep convolutional neural networks[C]// International Conference on Neural Information Processing Systems. Curran Associates Inc. 2012:1097-1105.

[3] Simonyan K, Zisserman A. Very Deep Convolutional Networks for Large-Scale Image Recognition[J]. Computer Science, 2014.

相關推薦

推薦中...