1. VGG-Net網(wǎng)絡(luò)的特點
自從AlexNet在ILSVRC2012上面大放光芒之后,接下參加ImageNet競賽的所有top模型基本上都采用了CNN網(wǎng)絡(luò)架構(gòu)。CNN網(wǎng)絡(luò)架構(gòu)在2013年沒有很大的進展吊输,其中相對引人注目的一個模型被稱為ZF-Net锦茁,來自下面這篇論文:
這篇論文的亮點是做了一些CNN網(wǎng)絡(luò)中各個卷積層feature map的可視化工作葫隙,試圖解釋不同深度/level的卷積層到底學(xué)習(xí)到了圖像內(nèi)容的哪些特征,探究CNN從低層到高層是如何一步步先提取圖像的低級特征胚吁,然后對低級特征進行組合,進而得到更加抽象的高級語義特征的鸿吆。
但從網(wǎng)絡(luò)結(jié)構(gòu)上來說囤采,ZF-Net沒什么亮點,只是對AlexNet進行了小修小補(比如把AlexNet第一個卷積層kernel=11x11/s=4改為kernel=7x7/s=2)惩淳,最終在ImageNet分類競賽上面的top-5準(zhǔn)確率蕉毯,也只從AlexNet的16.4%提升到ZF-Net的14.8%。
而在接下來的2014年思犁,CNN網(wǎng)絡(luò)架構(gòu)設(shè)計迎來了第二次爆發(fā)代虾,代表性的兩個模型是VGG-Net和GoogleNet。這一節(jié)介紹VGG-Net激蹲。
VGG-Net這篇論文的主要亮點有:
- 通過詳細的對比試驗棉磨,探究了在統(tǒng)一的CNN網(wǎng)絡(luò)架構(gòu)下,不同深度的卷積層對CNN網(wǎng)絡(luò)性能的影響学辱;
- 卷積層全部使用了3X3的卷積核乘瓤,組成了一個相當(dāng)優(yōu)雅的網(wǎng)絡(luò)結(jié)構(gòu),并指出了小的卷積核的優(yōu)勢策泣;
- 從CNN分類網(wǎng)絡(luò)構(gòu)成思想來看衙傀,VGG-Net延續(xù)了包括LeNet-5、AlexNet以及ZF-Net在內(nèi)的一貫作風(fēng)萨咕,即卷積層+全連接層的網(wǎng)絡(luò)組成统抬,一系列卷積層用于提取圖像特征,最后使用3個全連接層/MLP用作分類器,并且將這一構(gòu)成模式發(fā)揮到了極致聪建,通過后面我們對NIN/Inception/ResNet的分析中將會看到钙畔,全連接層的使用會大大增加CNN分類模型的空間復(fù)雜度(正比于模型參數(shù)數(shù)量,也可以從模型文件的大小來理解)金麸,對于分類網(wǎng)絡(luò)來說擎析,使用全局平均池化(global average pooling)層代替全連接層是更優(yōu)的選擇。
VGG-Net總共包含了5個版本ABCDE挥下,每個版本的網(wǎng)絡(luò)結(jié)構(gòu)如下表所示:
VGG-Net網(wǎng)絡(luò)設(shè)計的特點如下:
所有VGG-Net版本在全連接層部分完全相同叔锐,所有卷積層完全相同:kernel=3x3,padding=1见秽,stride=1愉烙,這樣造成的結(jié)果是,卷積前后圖像/feature map的尺寸保持不變解取。通過5個kernel=2x2步责,stride=2的最大池化層來逐漸減小feature map的分辨率;
5個VGG-Net版本禀苦,從A-E蔓肯,通過逐漸增加卷積層,使得模型的性能逐漸提升振乏,很好地驗證了CNN網(wǎng)絡(luò)的深度/depth對網(wǎng)絡(luò)性能的影響蔗包,網(wǎng)絡(luò)越深,模型性能越好慧邮;
-
全程使用3x3的小卷積核调限,是VGG-Net的另一大特點,我們知道误澳,對于感受野來講耻矮,2個3x3卷積相當(dāng)于1個5x5卷積操作,3個3x3卷積相當(dāng)于1個7x7卷積忆谓,那3個3x3卷積相比于1個7x7卷積有什么優(yōu)勢呢裆装?具體包含兩個優(yōu)點:
- 第一點,3個3x3卷積包含了3個Relu非線性層倡缠,1個7x7卷積只有一個Relu非線性層哨免,顯然3個Relu層能使得學(xué)習(xí)到的決策函數(shù)的識別能力更強;
- 第二點昙沦,3個3x3卷積相比于1個7x7卷積琢唾,包含了更少的模型參數(shù)。假設(shè)輸入層和輸出層的通道數(shù)都為C桅滋,3個3x3卷積總共包含3x3x3xCxC=27C2個權(quán)重參數(shù)慧耍,而1個7x7卷積包含7x7xCxC=49C2個權(quán)重參數(shù),多了81%丐谋,更少的權(quán)重參數(shù)芍碧,使得模型更不容易過擬合(over-fitting)。
VGG-Net也有一個缺點号俐,就是網(wǎng)絡(luò)的模型參數(shù)很多泌豆,下圖是VGG-Net的5個版本的模型參數(shù)量:
其中用的最多的是VGG-Net的D版本,習(xí)慣上稱為VGG16吏饿,因為它包含16個權(quán)重層踪危。后面我們會知道,VGG-Net的空間復(fù)雜度基本上是主流的CNN分類模型中最大的之一猪落。
- 另外贞远,關(guān)于VGG-Net的模型的數(shù)據(jù)增強,訓(xùn)練策略笨忌,以及測試時的多尺度/裁剪策略等蓝仲,不是這一系列文章的重點,感興趣可以看論文中的細節(jié)官疲,我們重點是學(xué)習(xí)總結(jié)每個經(jīng)典CNN網(wǎng)絡(luò)的架構(gòu)設(shè)計特點袱结。
2. 總結(jié)
VGG-Net延續(xù)了分類網(wǎng)絡(luò)中,卷積層+全連接層的設(shè)計特點途凫,全程采用了非常小的3x3卷積核垢夹,通過實驗,不斷加深卷積層的數(shù)目维费,得到了一個結(jié)構(gòu)優(yōu)雅果元,同時性能強大的經(jīng)典CNN模型(唯一的缺點是模型復(fù)雜度很大),值得一提的是犀盟,雖然VGG16在2014年的ImageNet分類競賽中不敵GoogleNet只得了亞軍噪漾,但那是多個模型融合后的結(jié)果,單個模型的性能的話且蓬,VGG16是比GoogleNet強的欣硼。這也側(cè)面地證明了VGG卷積架構(gòu)的優(yōu)異性。
因此在隨后幾年恶阴,其他領(lǐng)域比如目標(biāo)檢測诈胜、場景文本檢測以及風(fēng)格遷移,很多經(jīng)典模型都使用了VGG16的卷積部分作為特征提取主干網(wǎng)絡(luò)冯事。