馬毅老師曾說(shuō)過(guò):”如果你沒(méi)有看過(guò)近30年的經(jīng)典論文,你是做不出成果的”.現(xiàn)如今深度學(xué)習(xí)如此火熱,一些關(guān)鍵節(jié)點(diǎn)發(fā)布的文章更應(yīng)該好好的閱讀,因此我想在未來(lái)的一段時(shí)間內(nèi)去閱讀一些經(jīng)典的論文,去推敲和分析,并且爭(zhēng)取可以使用TensorFlow去復(fù)現(xiàn)他.而這篇文章我們將會(huì)閱讀VGG這篇經(jīng)典文章,希望和大家交流,如果有理解不到位的地方,也請(qǐng)大家多多指正.
一:VGG的意義
這篇論文的模型的名稱”VGG”其實(shí)是牛津大學(xué)的Oxford Visual Geometry Group

這篇文章起初是以2014年該組參加imageNet的1000類圖像分類與定位的比賽的模型為基礎(chǔ),使用該模型后該組獲得了2014年分類第二,定位任務(wù)第一的好成績(jī).我們復(fù)現(xiàn)該文章的時(shí)候,是使用的VGG-16的模型.
論文下載地址:https://arxiv.org/pdf/1409.1556.pdf
二:文章內(nèi)容
1:摘要
這篇文章主要討論的是在大規(guī)模的數(shù)據(jù)集的情況下,卷積網(wǎng)絡(luò)深度對(duì)其準(zhǔn)確率的影響,縱觀整篇文章,我們可以看到,他們的主要貢獻(xiàn)是使用了3*3的小型卷積核的網(wǎng)絡(luò)結(jié)構(gòu)去對(duì)逐漸加深的網(wǎng)絡(luò)進(jìn)行全面的評(píng)估,然后得出的結(jié)果表明加深網(wǎng)絡(luò)到16-19層可以極大地超越之前的網(wǎng)絡(luò)結(jié)構(gòu)的效果.這些成果是基于2014年的imageNet挑戰(zhàn)賽,他獲得成績(jī)上文也有提到,并且這個(gè)模型的泛化能力也不錯(cuò),最后公布了VGG-16和VGG-19模型供大家研究.
2:介紹
我們想卷積網(wǎng)絡(luò)(ConvNets)之所以能夠成功,無(wú)外乎有兩個(gè)原因:
1:大型的公共圖像數(shù)據(jù)集的出現(xiàn),比如ImageNet
2:高性能的計(jì)算系統(tǒng),比如GPU集群
下圖是卷積神經(jīng)網(wǎng)絡(luò)發(fā)展的一些主要網(wǎng)絡(luò),而我們今天要聊到的VGG其實(shí)是基于LeNet和AlexNet來(lái)提出更深的卷積神經(jīng)網(wǎng)絡(luò)

之前人們一直嘗試在AlexNet的原始框架上做一些改進(jìn),像是在第一個(gè)卷積上使用較小的卷積核以及較小的滑動(dòng)步長(zhǎng),另一種思路就是在全圖以及多個(gè)尺寸上,更加稠密的進(jìn)行訓(xùn)練和測(cè)試網(wǎng)絡(luò).
VGG模型主要關(guān)注的是網(wǎng)絡(luò)的深度,因此文章固定了網(wǎng)絡(luò)的其他參數(shù),通過(guò)增加卷積層來(lái)增加網(wǎng)絡(luò)的深度,事實(shí)證明這是可行的,不難發(fā)現(xiàn),文中的每個(gè)層都是小的3*3的卷積核
3:卷積配置
模型為了凸顯深度對(duì)于模型效果的影響,因此所有的卷積配置相同,上邊也提到過(guò),因此在這一個(gè)章節(jié),先是介紹卷積網(wǎng)絡(luò)的通用架構(gòu),再去描述其評(píng)估的具體細(xì)節(jié),最后再和之前的網(wǎng)絡(luò)進(jìn)行比較.
a):架構(gòu)
訓(xùn)練輸入:固定尺寸224*224的RGB圖像。
預(yù)處理:每個(gè)像素值減去訓(xùn)練集上的RGB均值。
卷積核:一系列3*3卷積核堆疊,步長(zhǎng)為1,采用padding保持卷積后圖像空 間分辨率不變。
空間池化:緊隨卷積“堆”的最大池化,為2*2滑動(dòng)窗口,步長(zhǎng)為2。
全連接層:特征提取完成后,接三個(gè)全連接層,前兩個(gè)為4096通道,第三個(gè)為1000通道,最后是一個(gè)soft-max層,輸出概率。
所有隱藏層都用非線性修正ReLu.
b):詳細(xì)配置

上圖中每列代表不同的網(wǎng)絡(luò),這些網(wǎng)絡(luò)只有深度的不同(層數(shù)計(jì)算不包含池化層).卷積的通道數(shù)量都很少,第一層僅僅64通道,每經(jīng)過(guò)一次最大池化,通道數(shù)翻翻,直到到達(dá)512通道停止.

圖2表示的是每一種模型的參數(shù)的數(shù)量,從圖中我們可以發(fā)現(xiàn),盡管網(wǎng)絡(luò)加深了,但是權(quán)重并沒(méi)有大幅度的增加,因此參數(shù)量主要集中在全連接層
c):使用3*3卷積核的意義
兩個(gè)3*3卷積核相當(dāng)于一個(gè)5*5卷積核的感受域,三個(gè)3*3卷積核相當(dāng)于一個(gè) 7*7卷積核的感受域。

優(yōu)點(diǎn):三個(gè)卷積堆疊具有三個(gè)非線性修正層,使模型更具判別性;其次三個(gè) 3*3卷積參數(shù)量更少,相當(dāng)于在7*7卷積核上加入了正則化,便于加快訓(xùn)練.
從下圖來(lái)看,在計(jì)算量這里,為了突出小卷積核的優(yōu)勢(shì),拿同conv3x3、conv5x5、conv7x7、conv9x9和conv11x11,在224x224x3的RGB圖上(設(shè)置pad=1,stride=4,output_channel=96)做卷積,卷積層的參數(shù)規(guī)模和得到的feature map的大小如下:

3:分類框架
a):訓(xùn)練
訓(xùn)練方法基本與AlexNet一致,除了多尺度訓(xùn)練圖像采樣方法不一致。 訓(xùn)練采用mini-batch梯度下降法,batch size=256;
采用動(dòng)量?jī)?yōu)化算法,momentum=0.9;
采用L2正則化方法,懲罰系數(shù)0.00005;
dropout比率設(shè)為0.5;
初始學(xué)習(xí)率為0.001,當(dāng)驗(yàn)證集準(zhǔn)確率不再提高時(shí),學(xué)習(xí)率衰減為原來(lái)的0.1 倍,總共下降三次;
總迭代次數(shù)為370K(74epochs);
數(shù)據(jù)增強(qiáng)采用隨機(jī)裁剪,水平翻轉(zhuǎn),RGB顏色變化;
設(shè)置訓(xùn)練圖片大小的兩種方法:
定義S代表經(jīng)過(guò)各向同性縮放的訓(xùn)練圖像的最小邊。
第一種方法針對(duì)單尺寸圖像訓(xùn)練,S=256或384,輸入圖片從中隨機(jī)裁剪 224*224大小的圖片,原則上S可以取任意不小于224的值。
第二種方法是多尺度訓(xùn)練,每張圖像單獨(dú)從[Smin ,Smax ]中隨機(jī)選取S來(lái)進(jìn)行尺 寸縮放,由于圖像中目標(biāo)物體尺寸不定,因此訓(xùn)練中采用這種方法是有效的,可看作一種尺寸抖動(dòng)的訓(xùn)練集數(shù)據(jù)增強(qiáng)。
論文中提到,網(wǎng)絡(luò)權(quán)重的初始化非常重要,由于深度網(wǎng)絡(luò)梯度的不穩(wěn)定性, 不合適的初始化會(huì)阻礙網(wǎng)絡(luò)的學(xué)習(xí)。因此我們先訓(xùn)練淺層網(wǎng)絡(luò),再用訓(xùn)練好的淺層網(wǎng)絡(luò)去初始化深層網(wǎng)絡(luò)。
b):測(cè)試
測(cè)試階段,對(duì)于已訓(xùn)練好的卷積網(wǎng)絡(luò)和一張輸入圖像,采用以下方法分類:
首先,圖像的最小邊被各向同性的縮放到預(yù)定尺寸Q;
然后,將原先的全連接層改換成卷積層,在未裁剪的全圖像上運(yùn)用卷積網(wǎng)絡(luò), 輸出是一個(gè)與輸入圖像尺寸相關(guān)的分類得分圖,輸出通道數(shù)與類別數(shù)相同;
最后,對(duì)分類得分圖進(jìn)行空間平均化,得到固定尺寸的分類得分向量。
我們同樣對(duì)測(cè)試集做數(shù)據(jù)增強(qiáng),采用水平翻轉(zhuǎn),最終取原始圖像和翻轉(zhuǎn)圖像 的soft-max分類概率的平均值作為最終得分。 由于測(cè)試階段采用全卷積網(wǎng)絡(luò),無(wú)需對(duì)輸入圖像進(jìn)行裁剪,相對(duì)于多重裁剪效率會(huì)更高。但多重裁剪評(píng)估和運(yùn)用全卷積的密集評(píng)估是互補(bǔ)的,有助于性能提升。
4:分類實(shí)驗(yàn)
a):單尺寸評(píng)估

上圖展示了單一測(cè)試尺寸下的卷積網(wǎng)絡(luò)性能
b);多尺寸評(píng)估

上圖展示了多個(gè)測(cè)試尺寸上的卷積網(wǎng)絡(luò)性能
c):多重裁剪與密集網(wǎng)絡(luò)評(píng)估

上圖展示多重裁剪與密集網(wǎng)絡(luò)對(duì)比,并展示兩者相融合的效果
d):卷積模型的融合
這部分探討不同模型融合的性能,計(jì)算多個(gè)模型的 soft-max 分類概率的平均 值來(lái)對(duì)它們的輸出進(jìn)行組合,由于模型的互補(bǔ)性,性能有所提高,這也用于比賽的最佳結(jié)果中。
1:展示多個(gè)卷積網(wǎng)絡(luò)融合的結(jié)果

e):與當(dāng)前最好算法的比較

5:結(jié)論
VGG這篇論文評(píng)估了非常深的卷積網(wǎng)絡(luò)在大規(guī)模圖像分類上的性能。結(jié)果表明深度有利于分類準(zhǔn)確率的提升。附錄中展示了模型的泛化能力,再次確認(rèn)了視覺(jué)表達(dá)中深度的重要性,并且一個(gè)比較重要的思想是卷積可代替全連接。整體參數(shù)達(dá)1億4千萬(wàn),主要在于第一個(gè)全連接層,用卷積來(lái)代替后,參數(shù)量下降且無(wú)精度損失,這個(gè)的確可以好好琢磨一下.
6:參考資料
1:VGG網(wǎng)絡(luò)中測(cè)試時(shí)為什么全鏈接改成卷積? -
https://www.zhihu.com/question/53420266
2:ILSVRC-2014 presentation
http://www.robots.ox.ac.uk/~karen/pdf/ILSVRC_2014.pdf
3:CS231n筆記
http://cs231n.stanford.edu/slides/2017/cs231n_2017_lecture9.pdf
4:深度學(xué)習(xí)VGG模型核心拆解