? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 1 介紹
本文研究了卷積神經(jīng)網(wǎng)絡(luò)的深度在大規(guī)模圖像數(shù)據(jù)集上對(duì)分類準(zhǔn)確性的影響。2012年AlexNet的橫空出世,使得CNN重新獲得學(xué)界關(guān)注,從而產(chǎn)生了許多基于該結(jié)構(gòu)的改進(jìn),如對(duì)第一層使用更小的卷積尺寸和步長(zhǎng),以及融合多尺度輸入訓(xùn)練網(wǎng)絡(luò)等等。而本文專注于探討網(wǎng)絡(luò)深度對(duì)網(wǎng)絡(luò)性能的影響,通過(guò)使用多個(gè)小尺寸卷積層增進(jìn)網(wǎng)絡(luò)深度同時(shí)達(dá)到大幅提升網(wǎng)絡(luò)性能的效果。
本文設(shè)計(jì)了著名的VGG模型,該模型在大規(guī)模圖像識(shí)別中效果良好,并在ImageNet2014中取得亞軍。該模型與GoogLeNet各有所長(zhǎng),但基本都是AlexNet框架的拓展,二者在15年ResNet出現(xiàn)之前各占半壁江山,常被用于目標(biāo)檢測(cè)等任務(wù)中作為骨架網(wǎng)絡(luò)結(jié)構(gòu),直到現(xiàn)在也因其相對(duì)于ResNet更小的計(jì)算量而在對(duì)網(wǎng)絡(luò)運(yùn)行速度要求高、可以適當(dāng)犧牲精度的情況下用于網(wǎng)絡(luò)結(jié)構(gòu)中。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 2 模型概述
2.1 數(shù)據(jù)預(yù)處理
1. 歸一化:圖片的每個(gè)像素值減去整個(gè)訓(xùn)練集上計(jì)算的平均RGB值。
2. 數(shù)據(jù)增廣:為了獲得更多有效的訓(xùn)練圖片,同時(shí)避免模型“死記硬背”、只學(xué)到對(duì)應(yīng)位置應(yīng)該是某一個(gè)值這種情況的出現(xiàn),采用以下幾種隨機(jī)化方式對(duì)圖片進(jìn)行處理。
(1) 隨機(jī)裁剪:設(shè)圖片大小為S×S,模型的輸入為224×224的圖片,所以S應(yīng)不小于224。當(dāng)S=224時(shí),輸入就是整個(gè)圖片即不進(jìn)行裁剪操作。當(dāng)S>224時(shí),采用隨機(jī)裁剪,在每一次隨機(jī)梯度下降迭代中都在歸一化后的圖片上隨機(jī)裁剪一個(gè)224×224的方塊作為訓(xùn)練的輸入。
(2) 隨機(jī)水平翻轉(zhuǎn)。
(3) 隨機(jī)打亂RGB顏色。
此外,由于數(shù)據(jù)集中的圖像大小是不一致的,所以需要通過(guò)縮放將其變?yōu)橄胍某叽鏢×S。對(duì)于尺寸,文中有兩種處理方式,固定尺寸和多尺度方法。固定尺度訓(xùn)練中,文中設(shè)置了兩種尺度,分別是S=256和S=384,當(dāng)S=384時(shí),訓(xùn)練集太大導(dǎo)致訓(xùn)練時(shí)間大大增加,為了減少訓(xùn)練時(shí)間,加快訓(xùn)練過(guò)程,作者直接使用S=256的訓(xùn)練的結(jié)果來(lái)初始化S=384的參數(shù),并設(shè)置較小的學(xué)習(xí)率10e×-3。在多尺度訓(xùn)練中,對(duì)于每一個(gè)圖像,作者隨機(jī)從[Smin,Smax](作者的模型中Smin=256,Smax=512)中取一個(gè)值為縮放后S的大小。訓(xùn)練圖像的大小都是不固定的,這也可以看成通過(guò)尺寸抖動(dòng)增加訓(xùn)練集。同樣,為了增加速度作者使用S=384的訓(xùn)練結(jié)果作為多尺度訓(xùn)練的初始化。
2.2 模型結(jié)構(gòu)

文中給出了六種網(wǎng)絡(luò)結(jié)構(gòu),如Table 1所示,每一個(gè)卷積層和全連接層之后都使用ReLU函數(shù)作為激活函數(shù)。本文希望只使用小尺寸即3x3和1x1的卷積核,而盡可能加深網(wǎng)絡(luò)深度,而且與其他網(wǎng)絡(luò)不同的是,網(wǎng)絡(luò)越深,每一層中卷積核的個(gè)數(shù)越多,可能作者希望借此使網(wǎng)絡(luò)學(xué)習(xí)到更多不同的信息。其中在模型C中引入了1×1的卷積核是為了增加整個(gè)模型的非線性表達(dá)能力(GoogLeNet中1x1卷積核的作用則是進(jìn)一步特征融合、減少輸出通道數(shù),從而減少該層之后的網(wǎng)絡(luò)的計(jì)算量)。

圖一為Table1中模型D的結(jié)構(gòu),展示了輸入圖片經(jīng)每一層變換后的輸出圖片大小與數(shù)量,其中卷積層有十六層,全部是用ReLU函數(shù)作為激活函數(shù),使用增加padding的方式使得卷積層的輸入和輸出尺寸保持一致,這個(gè)網(wǎng)絡(luò)結(jié)構(gòu)的padding大小為1。max-pooling層有五個(gè),每一次經(jīng)過(guò)max-pooling尺寸都減半。最后經(jīng)過(guò)三個(gè)全連接層和一個(gè)softmax層得到輸出。
此外文中通過(guò)使用帶有momentum的mini-batch梯度下降法來(lái)優(yōu)化神經(jīng)網(wǎng)絡(luò)。批量(batch)的大小設(shè)置為256,momentum設(shè)置為0.9。訓(xùn)練通過(guò)權(quán)重衰減(L2懲罰系數(shù)設(shè)置為5×10-4)和對(duì)前兩個(gè)全連接進(jìn)行dropout正則化(隨機(jī)失活率為0.5)來(lái)防止過(guò)擬合。學(xué)習(xí)率最初設(shè)置為10-2,然后當(dāng)在驗(yàn)證集上的精度停止提高時(shí)學(xué)習(xí)率以10倍的速率下降??偟膩?lái)說(shuō),學(xué)習(xí)率下降了3次,并且在370K次迭代之后停止。
網(wǎng)絡(luò)的初始化也尤為重要,由于深度神經(jīng)網(wǎng)絡(luò)通常采用隨機(jī)梯度下降法,不好的初始化可能導(dǎo)致模型困于局部最優(yōu)點(diǎn)、無(wú)法學(xué)習(xí)到更好的解。為了規(guī)避這個(gè)問(wèn)題,文中首先訓(xùn)練了模型A(Table 1),因?yàn)槟P虯比較淺,所以可以通過(guò)隨機(jī)初始化參數(shù)的方法進(jìn)行訓(xùn)練。之后訓(xùn)練其他更深的網(wǎng)絡(luò)時(shí),使用網(wǎng)絡(luò)A的結(jié)果來(lái)初始化其他網(wǎng)絡(luò)前四個(gè)卷積層和后三個(gè)全連接層。但是文中指出可以通過(guò)使用Glorot&Bengio(2010)的隨機(jī)初始化過(guò)程來(lái)初始化權(quán)重,而不用進(jìn)行預(yù)訓(xùn)練。
2.3模型測(cè)試
在測(cè)試過(guò)程中,文中也將圖像進(jìn)行縮放,縮放后的尺寸為Q×Q大小的圖像,Q與S基本無(wú)關(guān),文中指出在測(cè)試過(guò)程中使用了多個(gè)Q進(jìn)行測(cè)試,結(jié)果取平均。測(cè)試方法首先將網(wǎng)絡(luò)轉(zhuǎn)化為全卷積網(wǎng)絡(luò),第一個(gè)全連接層轉(zhuǎn)為7×7的卷積層,后兩個(gè)全連接層轉(zhuǎn)化為1×1的卷積層。結(jié)果得到的是一個(gè)N×N×M的結(jié)果,稱其為類別分?jǐn)?shù)圖,其中M等于類別個(gè)數(shù),N的大小取決于輸入圖像尺寸Q,計(jì)算每個(gè)類別的最終得分時(shí),將N×N上的值求平均,此時(shí)得到1×1×M的結(jié)果,此結(jié)果即為最終類別分?jǐn)?shù),這種方法文中稱為密集評(píng)估。
此外,還有另外一種測(cè)試方法,和訓(xùn)練過(guò)程類似,不用將網(wǎng)絡(luò)轉(zhuǎn)化為全卷積網(wǎng)絡(luò),是從Q×Q大小的圖中隨機(jī)裁剪224×224的圖作為輸入,文中裁剪了50個(gè)圖像,而每個(gè)圖像之前縮放為三個(gè)尺寸,所以每個(gè)圖像的測(cè)試圖像數(shù)目變?yōu)?50個(gè),最終結(jié)果就是在150個(gè)結(jié)果中取平均。但是作者指出,該方法效率低下,并且不能證明比第一種方法效果好。
除此之外,本文還采取了全卷機(jī)網(wǎng)絡(luò)和隨機(jī)裁剪相結(jié)合的方法,即兩者結(jié)果取平均。其能大大增加網(wǎng)絡(luò)的感受野,因此捕獲更多的上下文信息,實(shí)驗(yàn)中也發(fā)現(xiàn)這種方法表現(xiàn)最好。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 3實(shí)驗(yàn)結(jié)果
3.1 單尺度評(píng)估

單一尺度即為測(cè)試時(shí),將測(cè)試集圖像全部縮放都Q×Q的單一尺度,表中前四個(gè)Q=256,第五六個(gè)Q=384。由Table3得出以下三個(gè)結(jié)論:
第一,比較模型A和A-LRN,作者發(fā)現(xiàn)使用局部響應(yīng)歸一化與未使用局部響應(yīng)歸一化相比,效果更差,所以作者在之后的B,C,D,E模型中均未使用局部響應(yīng)歸一化了(之后的經(jīng)典模型如GoogLeNet等也都沒(méi)有使用過(guò)LRN方法)。
第二,作者觀察到從A的11層至E的19層,隨著卷積神經(jīng)網(wǎng)絡(luò)深度的增加,效果越來(lái)越好。值得注意的是,配置C(包含三個(gè)1×1的卷積核的卷積層)在深度不增加的情況下,僅僅將1×1的卷積核換成3×3的卷積核,效果就提高較多,這說(shuō)明雖然附加1×1的卷積核來(lái)增加非線性的表達(dá)能力確實(shí)比較有幫助(C優(yōu)于B),但是通過(guò)增加更大感受野的卷積過(guò)濾器來(lái)捕獲空間上下文也是非常重要的(D優(yōu)于C)。當(dāng)深度達(dá)到19層時(shí),此架構(gòu)達(dá)到飽和,但是可能更深的模型對(duì)更大的數(shù)據(jù)集更有益。作者還將網(wǎng)絡(luò)B和具有五個(gè)5×5的卷積層的淺層卷積網(wǎng)絡(luò)進(jìn)行比較,其通過(guò)單個(gè)5×5的卷積層來(lái)代替B中的每對(duì)3×3的卷積層得到。淺層網(wǎng)絡(luò)的top-1誤差高于B網(wǎng)絡(luò)7%。作者表明這證實(shí)了具有小過(guò)濾器的深度網(wǎng)絡(luò)優(yōu)于具有較大過(guò)濾器的淺層網(wǎng)絡(luò)。
第三,即使在測(cè)試的時(shí)候使用單一尺度,訓(xùn)練時(shí)采用尺度抖動(dòng)(S∈[256,512])比在固定最小邊(S=256,或S=384)的圖像上訓(xùn)練產(chǎn)生更好的效果。作者表明這證實(shí)了通過(guò)尺寸抖動(dòng)的訓(xùn)練集增加確實(shí)能夠有助于捕獲多尺度的圖像統(tǒng)計(jì)數(shù)據(jù)。
3.2 多尺度評(píng)估

多尺度評(píng)估的尺度是有公式的(作者采用三個(gè)尺度進(jìn)行評(píng)估),當(dāng)訓(xùn)練尺度S固定時(shí),多尺度評(píng)估的尺度Q={S-32,S,S+32}。當(dāng)訓(xùn)練尺度S是在[Smin,Smax]采用抖動(dòng)隨機(jī)獲取方式時(shí),Q={Smin,0.5(Smin+Smax),Smax}。表中test(Q)一欄中的數(shù)據(jù)可以通過(guò)這種方式計(jì)算得到。
從Table 3和Table 4中看出使用多尺度評(píng)估比單尺度評(píng)估結(jié)果要好得多。而且采用尺寸抖動(dòng)比固定尺寸S的結(jié)果要好。
3.3 密集評(píng)估和裁剪評(píng)估

在Table 5表中,作者比較了密集評(píng)估、多裁剪評(píng)估和兩者結(jié)合的方式得到錯(cuò)誤率并進(jìn)行比較。其中可以看出多裁剪方式比密集方式的效果好,而兩者結(jié)合方式比兩者都要好,說(shuō)明兩種評(píng)估方法是互補(bǔ)的。作者表示這可能因?yàn)榫矸e邊界條件的不同處理造成的。
3.4 多模型融合

到ILSVRC提交的時(shí)間,作者只訓(xùn)練了一個(gè)單一尺度的網(wǎng)絡(luò),和一個(gè)多尺度的模型D(僅僅是通過(guò)微調(diào)了全連接層而不是所有層)。所得到的7個(gè)網(wǎng)絡(luò)的融合具有6.8%的ILSVRC的錯(cuò)誤率。在提交之后,作者考慮融合兩個(gè)表現(xiàn)最好的多尺度模型D和E,在這種方法上使用密集評(píng)估的時(shí)候?qū)㈠e(cuò)誤率降低到7.0%,并且在使用密集和多尺度評(píng)估組合的時(shí)候?qū)㈠e(cuò)誤率減少到6.8%。作為參考,作者最好的單個(gè)模型準(zhǔn)確率為7.1%(模型E,Table5)。
3.5 與其他模型對(duì)比

表中顯示作者的最好結(jié)果6.8%的錯(cuò)誤率僅僅與冠軍模型GoogleNet差0.1%的錯(cuò)誤率。并且在單個(gè)模型錯(cuò)誤率(作者模型最好的單個(gè)模型錯(cuò)誤率為7.0%)上比GoogleNet高0.9%。值得注意的是,該網(wǎng)絡(luò)結(jié)果沒(méi)有偏離LeCun et al. (1989)的經(jīng)典結(jié)構(gòu),而且大大提高了其深度。但實(shí)際上,由于執(zhí)著于僅僅使用3x3和1x1的卷積,卷積核個(gè)數(shù)太多,網(wǎng)絡(luò)計(jì)算量著實(shí)不少,這也是該網(wǎng)絡(luò)的一個(gè)不足之處。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 4 總結(jié)
VGG模型雖然只是ImageNet的亞軍,但是其使用很小的卷積核,并通過(guò)增加卷積神經(jīng)網(wǎng)絡(luò)深度的方式來(lái)證明卷積神經(jīng)網(wǎng)絡(luò)深度在視覺(jué)領(lǐng)域的重要性。其網(wǎng)絡(luò)結(jié)構(gòu)簡(jiǎn)單易懂,并在其他數(shù)據(jù)集上也有很好的效果。