深度学习之卷积神经网络 VGGNet
2014年,牛津大學(xué)計(jì)算機(jī)視覺組(Visual Geometry Group)和Google DeepMind公司的研究員一起研發(fā)出了新的深度卷積神經(jīng)網(wǎng)絡(luò):VGGNet,并取得了ILSVRC2014比賽分類項(xiàng)目的第二名(第一名是GoogLeNet,也是同年提出的)和定位項(xiàng)目的第一名。
VGGNet探索了卷積神經(jīng)網(wǎng)絡(luò)的深度與其性能之間的關(guān)系,成功地構(gòu)筑了16~19層深的卷積神經(jīng)網(wǎng)絡(luò),證明了增加網(wǎng)絡(luò)的深度能夠在一定程度上影響網(wǎng)絡(luò)最終的性能,使錯(cuò)誤率大幅下降,同時(shí)拓展性又很強(qiáng),遷移到其它圖片數(shù)據(jù)上的泛化性也非常好。到目前為止,VGG仍然被用來提取圖像特征。
VGGNet可以看成是加深版本的AlexNet,都是由卷積層、全連接層兩大部分構(gòu)成。
下圖是來自論文《Very Deep Convolutional Networks for Large-Scale Image Recognition》(基于甚深層卷積網(wǎng)絡(luò)的大規(guī)模圖像識(shí)別)的VGG網(wǎng)絡(luò)結(jié)構(gòu),正是在這篇論文中提出了VGG,如下圖:
在這篇論文中分別使用了A、A-LRN、B、C、D、E這6種網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行測(cè)試,這6種網(wǎng)絡(luò)結(jié)構(gòu)相似,都是由5層卷積層、3層全連接層組成,其中區(qū)別在于每個(gè)卷積層的子層數(shù)量不同,從A至E依次增加(子層數(shù)量從1到4),總的網(wǎng)絡(luò)深度從11層到19層(添加的層以粗體顯示),表格中的卷積層參數(shù)表示為“conv?感受野大小?-通道數(shù)?”,例如con3-128,表示使用3x3的卷積核,通道數(shù)為128。為了簡(jiǎn)潔起見,在表格中不顯示ReLU激活功能。
其中,網(wǎng)絡(luò)結(jié)構(gòu)D就是著名的VGG16,網(wǎng)絡(luò)結(jié)構(gòu)E就是著名的VGG19。
以網(wǎng)絡(luò)結(jié)構(gòu)D(VGG16)為例,介紹其處理過程如下,請(qǐng)對(duì)比上面的表格和下方這張圖,留意圖中的數(shù)字變化,有助于理解VGG16的處理過程:
1、輸入224x224x3的圖片,經(jīng)64個(gè)3x3的卷積核作兩次卷積+ReLU,卷積后的尺寸變?yōu)?24x224x64
2、作max pooling(最大化池化),池化單元尺寸為2x2(效果為圖像尺寸減半),池化后的尺寸變?yōu)?12x112x64
3、經(jīng)128個(gè)3x3的卷積核作兩次卷積+ReLU,尺寸變?yōu)?12x112x128
4、作2x2的max pooling池化,尺寸變?yōu)?6x56x128
5、經(jīng)256個(gè)3x3的卷積核作三次卷積+ReLU,尺寸變?yōu)?6x56x256
6、作2x2的max pooling池化,尺寸變?yōu)?8x28x256
7、經(jīng)512個(gè)3x3的卷積核作三次卷積+ReLU,尺寸變?yōu)?8x28x512
8、作2x2的max pooling池化,尺寸變?yōu)?4x14x512
9、經(jīng)512個(gè)3x3的卷積核作三次卷積+ReLU,尺寸變?yōu)?4x14x512
10、作2x2的max pooling池化,尺寸變?yōu)?x7x512
11、與兩層1x1x4096,一層1x1x1000進(jìn)行全連接+ReLU(共三層)
12、通過softmax輸出1000個(gè)預(yù)測(cè)結(jié)果
以上就是VGG16(網(wǎng)絡(luò)結(jié)構(gòu)D)各層的處理過程,A、A-LRN、B、C、E其它網(wǎng)絡(luò)結(jié)構(gòu)的處理過程也是類似,執(zhí)行過程如下(以VGG16為例):
從上面的過程可以看出VGG網(wǎng)絡(luò)結(jié)構(gòu)還是挺簡(jiǎn)潔的,都是由小卷積核、小池化核、ReLU組合而成。其簡(jiǎn)化圖如下(以VGG16為例):
A、A-LRN、B、C、D、E這6種網(wǎng)絡(luò)結(jié)構(gòu)的深度雖然從11層增加至19層,但參數(shù)量變化不大,這是由于基本上都是采用了小卷積核(3x3,只有9個(gè)參數(shù)),這6種結(jié)構(gòu)的參數(shù)數(shù)量(百萬(wàn)級(jí))并未發(fā)生太大變化,這是因?yàn)樵诰W(wǎng)絡(luò)中,參數(shù)主要集中在全連接層。
經(jīng)作者對(duì)A、A-LRN、B、C、D、E這6種網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行單尺度的評(píng)估,錯(cuò)誤率結(jié)果如下:
從上表可以看出:
1、LRN層無性能增益(A-LRN)
VGG作者通過網(wǎng)絡(luò)A-LRN發(fā)現(xiàn),AlexNet曾經(jīng)用到的LRN層(local response normalization,局部響應(yīng)歸一化)并沒有帶來性能的提升,因此在其它組的網(wǎng)絡(luò)中均沒再出現(xiàn)LRN層。
2、隨著深度增加,分類性能逐漸提高(A、B、C、D、E)
從11層的A到19層的E,網(wǎng)絡(luò)深度增加對(duì)top1和top5的錯(cuò)誤率下降很明顯。
3、多個(gè)小卷積核比單個(gè)大卷積核性能好(B)
VGG作者做了實(shí)驗(yàn)用B和自己一個(gè)不在實(shí)驗(yàn)組里的較淺網(wǎng)絡(luò)比較,較淺網(wǎng)絡(luò)用conv5x5來代替B的兩個(gè)conv3x3,結(jié)果顯示多個(gè)小卷積核比單個(gè)大卷積核效果要好。
最后進(jìn)行個(gè)小結(jié):
1、通過增加深度能有效地提升性能;
2、最佳模型:VGG16,從頭到尾只有3x3卷積與2x2池化,簡(jiǎn)潔優(yōu)美;
3、卷積可代替全連接,可適應(yīng)各種尺寸的圖片
總結(jié)
以上是生活随笔為你收集整理的深度学习之卷积神经网络 VGGNet的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Unity跨iOS、Android平台使
- 下一篇: app源码 php,PHP大型B2B2C