從本篇開始,我們將帶領(lǐng)大家解讀深度學(xué)習(xí)中的網(wǎng)絡(luò)的發(fā)展
01
這是深度學(xué)習(xí)模型解讀第一篇,本篇我們將介紹LeNet,AlexNet,VGGNet,它們都是卷積+池化串聯(lián)的基本網(wǎng)絡(luò)結(jié)構(gòu)。
李健
武漢大學(xué)碩士,研究方向為機器學(xué)習(xí)與計算機視覺
作者 | 李?。ㄎ⑿盘枺簂ijian05170517)
編輯 | 言有三
01
LeNet5
LeNet5【1】有3個卷積層,2個池化層,2個全連接層。卷積層的卷積核都為5*5,stride=1,池化層都為Max pooling,激活函數(shù)為Sigmoid,具體網(wǎng)絡(luò)結(jié)構(gòu)如下圖:
下面我們詳細解讀一下網(wǎng)絡(luò)結(jié)構(gòu),先約定一些稱呼。
我們先約定一些叫法,比如featuremap為28*28*6,卷積參數(shù)大小為(5*5*1)*6。其中28*28是featuremap的高度,寬度,6是featuremap的通道數(shù)。(5*5*1)*6卷積核表示5*5的高度,寬度,通道數(shù)為1的卷積核有6個。你可以把(5*5*1)想象成一個厚度為1,長度,寬度各為5的卷積塊,以下依此類推。
1.Input
輸入圖像統(tǒng)一歸一化為32*32。
2.C1卷積層
經(jīng)過(5*5*1)*6卷積核,stride=1, 生成featuremap為28*28*6。
3.S2池化層
經(jīng)過(2*2)采樣核,stride=2,生成featuremap為14*14*6。
4.C3卷積層
經(jīng)過(5*5*6)*16卷積核,stride=1,生成featuremap為10*10*16。
5.S4池化層
經(jīng)過(2*2)采樣核,stride=2,生成featuremap為5*5*16。
6.C5卷積層
經(jīng)過(5*5*16)*120卷積核,stride=1, 生成featuremap為1*1*120。
7.F6全連接層
輸入為1*1*120,輸出為1*1*84,總參數(shù)量為120*84。
8.Output全連接層 。
輸入為1*1*84,輸出為1*1*10,總參數(shù)量為84*10。10就是分類的類別數(shù)。
02
AlexNet
2012年,Imagenet比賽冠軍—Alexnet (以第一作者Alex命名)【2】直接刷新了ImageNet的識別率,奠定了深度學(xué)習(xí)在圖像識別領(lǐng)域的優(yōu)勢地位。網(wǎng)絡(luò)結(jié)構(gòu)如下圖:
1.Input
輸入圖像為224*224*3。
2.Conv1
經(jīng)過(11*11*3)*96卷積核,stride=4, (224-11)/4+2=55,生成featuremap為55*55*96。
3.Pool1
經(jīng)過3*3的池化核,stride=2,(55-3)/2+1=27,生成featuremap為27*27*96。
4.Norm1
local_size=5,生成featuremap為27*27*96。
5.Conv2
經(jīng)過(5*5*96)*256的卷積核,pad=2,group=2,(27+2*2-5)/1+1=27,生成featuremap為27*27*256。
6.Pool2
經(jīng)過3*3的池化核,stride=2,(27-3)/2+1=13,生成featuremap為13*13*256。
7.Norm2
local_size=5, 生成featuremap為13*13*256。
8.Conv3
經(jīng)過(3*3*256)*384卷積核,pad=1, (13+1*2-3)/1+1=13,生成featuremap為13*13*384。
9.Conv4
經(jīng)過(3*3*384)*384卷積核,pad=1,(13+1*2-3)/1+1=13,生成featuremap為13*13*384。
10.Conv5
經(jīng)過(3*3*384)*256卷積核,pad=1,(13+1*2-3)/1+1=13,生成featuremap為13*13*256。
11.Pool5
經(jīng)過(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
在訓(xùn)練的時候以1/2概率使得隱藏層的某些神經(jīng)元的輸出為0,這樣就丟掉了一半節(jié)點的輸出,BP的時候也不更新這些節(jié)點,以下Droupout同理。
14.Fc7
輸入為1*1*4096,輸出為1*1*4096,總參數(shù)量為4096*4096。
15.Dropout7
生成featuremap為1*1*4096。
16.Fc8
輸入為1*1*4096,輸出為1000,總參數(shù)量為4096*1000。
總結(jié):
1.網(wǎng)絡(luò)比LeNet更深,包括5個卷積層和3個全連接層。
2.使用relu激活函數(shù),收斂很快,解決了Sigmoid在網(wǎng)絡(luò)較深時出現(xiàn)的梯度彌散問題。
3.加入了dropout層,防止過擬合。
4.使用了LRN歸一化層,對局部神經(jīng)元的活動創(chuàng)建競爭機制,抑制反饋較小的神經(jīng)元放大反應(yīng)大的神經(jīng)元,增強了模型的泛化能力。
5.使用裁剪翻轉(zhuǎn)等操作做數(shù)據(jù)增強,增強了模型的泛化能力。預(yù)測時使用提取圖片四個角加中間五個位置并進行左右翻轉(zhuǎn)一共十幅圖片的方法求取平均值,這也是后面刷比賽的基本使用技巧。
6.分塊訓(xùn)練,當年的GPU沒有這么強大,Alexnet創(chuàng)新地將圖像分為上下兩塊分別訓(xùn)練,然后在全連接層合并在一起。
7.總體的數(shù)據(jù)參數(shù)大概為240M。
03
VGG
VGGNet【3】主要的貢獻是利用帶有很小卷積核(3*3)的網(wǎng)絡(luò)結(jié)構(gòu)對逐漸加深的網(wǎng)絡(luò)進行評估,結(jié)果表明通過加深網(wǎng)絡(luò)深度至16-19層可以極大地改進前人的網(wǎng)絡(luò)結(jié)構(gòu)。這些發(fā)現(xiàn)也是參加2014年ImageNet比賽的基礎(chǔ),并且在這次比賽中,分別在定位和分類跟蹤任務(wù)中取得第一名和第二名。
VGGNet的網(wǎng)絡(luò)結(jié)構(gòu)如下圖:
類型從A到E。此處重點講解VGG16。也就是圖中的類型D。如圖中所示,共有13個卷積層,3個全連接層。其全部采用3*3卷積核,步長為1,和2*2最大池化核,步長為2。
1.Input層
輸入圖片為224*224*3。
2.CONV3-64
經(jīng)過(3*3*3)*64卷積核,生成featuremap為224*224*64。
3.CONV3-64
經(jīng)過(3*3*64)*64卷積核,生成featuremap為224*224*64。
4.Max pool
經(jīng)過(2*2)max pool核,生成featuremap為112*112*64。
5.CONV3-128。
經(jīng)過(3*3*64)*128卷積核,生成featuremap為112*112*128。
6. CONV3-128
經(jīng)過(3*3*128)*128卷積,生成featuremap為112*112*128。
7.Max pool
經(jīng)過(2*2)maxpool,生成featuremap為56*56*128。
8.CONV3-256
經(jīng)過(3*3*128)*256卷積核,生成featuremap為56*56*256。
9.CONV3-256
經(jīng)過(3*3*256)*256卷積核,生成featuremap為56*56*256。
10.CONV3-256
經(jīng)過(3*3*256)*256卷積核,生成featuremap為56*56*256。
11.Max pool
經(jīng)過(2*2)maxpool,生成featuremap為28*28*256
12.CONV3-512
經(jīng)過(3*3*256)*512卷積核,生成featuremap為28*28*512
13.CONV3-512
經(jīng)過(3*3*512)*512卷積核,生成featuremap為28*28*512。
14.CONV3-512
經(jīng)過(3*3*512)*512卷積核,生成featuremap為28*28*512。
15.Max pool
經(jīng)過(2*2)maxpool,生成featuremap為14*14*512。
16.CONV3-512
經(jīng)過(3*3*512)*512卷積核,生成featuremap為14*14*512。
17.CONV3-512
經(jīng)過(3*3*512)*512卷積核,生成featuremap為14*14*512。
18.CONV3-512
經(jīng)過(3*3*512)*512卷積核,生成featuremap為14*14*512。
19.Max pool
經(jīng)過2*2卷積,生成featuremap為7*7*512。
20.FC-4096
輸入為7*7*512,輸出為1*1*4096,總參數(shù)量為7*7*512*4096。
21.FC-4096
輸入為1*1*4096,輸出為1*1*4096,總參數(shù)量為4096*4096。
22.FC-1000
輸入為1*1*4096,輸出為1000,總參數(shù)量為4096*1000。
總結(jié):
1. 共包含參數(shù)約為550M。
2. 全部使用3*3的卷積核和2*2的最大池化核。
3. 簡化了卷積神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)。
04
總結(jié)
LeNet5是早期用于工程應(yīng)用的網(wǎng)絡(luò)結(jié)構(gòu),發(fā)展到AlexNet,激活函數(shù)從sigmoid變?yōu)閞elu,加入了Dropout層等操作,引起了新一輪的深度學(xué)習(xí)熱潮。VGG基本是AlexNet的加強版,深度上是其2倍,參數(shù)量大小也是兩倍多。
這三個網(wǎng)絡(luò)結(jié)構(gòu)本質(zhì)上都是(卷積+池化)堆疊的網(wǎng)絡(luò)結(jié)構(gòu),是深度學(xué)習(xí)復(fù)興以來的第一個有重大工程意義的網(wǎng)絡(luò)設(shè)計系列。
參考文獻
【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.
聯(lián)系客服