覃 曉,黃呈鋮,施 宇,廖兆琪,梁新艷,元昌安
(1.南寧師范大學(xué)計(jì)算機(jī)與信息工程學(xué)院,八桂學(xué)者創(chuàng)新團(tuán)隊(duì)實(shí)驗(yàn)室,廣西南寧 530000;2.廣西科學(xué)院,廣西南寧 530007)
圖像分類是圖像分割、目標(biāo)檢測[1-7]、人臉識別[8-10]、行為識別和姿態(tài)估計(jì)[11-13]等視覺任務(wù)的基礎(chǔ)任務(wù)。近年來,深度學(xué)習(xí)模型已被證明是具有卓越分類能力的機(jī)器學(xué)習(xí)算法。深度學(xué)習(xí)強(qiáng)調(diào)模型結(jié)構(gòu)的深度和特征學(xué)習(xí)的重要性,采用有監(jiān)督或無監(jiān)督的方式對圖像從底層到高級的語義特征進(jìn)行學(xué)習(xí)。典型的深度學(xué)習(xí)模型有深度信念網(wǎng)絡(luò)(Deep Belief Network,DBN)[14]、受限玻爾茲曼機(jī)(Restricted Boltzmann Machine,RBM)[15]、卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)[16,17]等。卷積神經(jīng)網(wǎng)絡(luò)已被證明是解決各種視覺任務(wù)的有效模型[18-21]。
卷積神經(jīng)網(wǎng)絡(luò)是受到動物視覺神經(jīng)系統(tǒng)啟發(fā)被提出的。加拿大科學(xué)家David H.Hubel[22]和瑞典科學(xué)家Torsten N.Wiesel[23]從1958年開始對貓視覺皮層進(jìn)行研究,他們在V1皮層里發(fā)現(xiàn)兩種細(xì)胞,簡單細(xì)胞(Simple Cells)和復(fù)雜細(xì)胞(Complex Cells),這兩種細(xì)胞的共同特點(diǎn)就是每個細(xì)胞只對特定方向的條形圖樣刺激有反應(yīng),兩者的主要區(qū)別是簡單細(xì)胞對應(yīng)視網(wǎng)膜上的光感受細(xì)胞所在的區(qū)域很小,而復(fù)雜細(xì)胞則對應(yīng)更大的區(qū)域,這個區(qū)域被稱作感受野(Receptive Field)。早在1980年,日本的Kunihiko Fukushima[24]提出的Neocognitron模型,即為模擬這種作用的結(jié)構(gòu)。隨后LeCun等[25]基于Fukushima的研究工作,使用誤差梯度回傳策略設(shè)計(jì)和訓(xùn)練CNN(被稱為LeNet-5),這就是現(xiàn)今計(jì)算機(jī)視覺領(lǐng)域第一個卷積神經(jīng)網(wǎng)絡(luò)。
基于卷積神經(jīng)網(wǎng)絡(luò)的圖像分類方法,可以從海量且有噪聲的圖像中學(xué)習(xí)到目標(biāo)的高層特征,且這種特征對于目標(biāo)某種程度的形變有很好的魯棒性。卷積神經(jīng)網(wǎng)絡(luò)是一種帶有卷積結(jié)構(gòu)的深度神經(jīng)網(wǎng)絡(luò),其將原始圖像輸入網(wǎng)絡(luò),經(jīng)過數(shù)據(jù)預(yù)處理后,網(wǎng)絡(luò)各節(jié)點(diǎn)傳遞圖像數(shù)據(jù)并經(jīng)過逐層的權(quán)重迭代更新和計(jì)算,最終輸出類別標(biāo)簽上的概率分布,圖像的特征由卷積神經(jīng)網(wǎng)絡(luò)自動學(xué)習(xí),不需要手動設(shè)計(jì)。此外,卷積神經(jīng)網(wǎng)絡(luò)卷積層中的網(wǎng)絡(luò)稀疏連接和卷積核權(quán)值共享兩大特性,有利于神經(jīng)網(wǎng)絡(luò)的快速學(xué)習(xí)并避免過度擬合[26],使得網(wǎng)絡(luò)結(jié)構(gòu)變得簡單,適應(yīng)性更強(qiáng),泛化能力提高[27]。
CIFAR-10[28]、CIFAR-100[28],特別是ImageNet數(shù)據(jù)集[29]是目前深度學(xué)習(xí)圖像領(lǐng)域應(yīng)用最廣泛的數(shù)據(jù)集。2012年舉辦的圖像分類競賽(ImageNet Large Scale Visual Recognition Challenge)中,由Alex Krizhevsky等[30]實(shí)現(xiàn)的深層CNN結(jié)構(gòu)系統(tǒng)獲得冠軍,當(dāng)時取得了最佳分類效果,也是在此后,更多的更深更寬的神經(jīng)網(wǎng)絡(luò)被提出,如VGGNet[31]、GoogleNet[32]、ResNet[33]、DenseNet[34]等。近幾年來,有研究者開始對神經(jīng)網(wǎng)絡(luò)的特征圖通道、空間、卷積核等方面進(jìn)行結(jié)構(gòu)上的改進(jìn),提出SE block[35]、SK block[36]等注意力機(jī)制,它們可以直接放入現(xiàn)有的神經(jīng)網(wǎng)絡(luò)中進(jìn)行訓(xùn)練。也有研究者使用現(xiàn)有的網(wǎng)絡(luò),如ResNet用作基線網(wǎng)絡(luò)進(jìn)行模型改進(jìn)研究,如Res2Net[37]、ResNeSt[38],提出的這些模型在廣泛使用的圖像分類ImageNet數(shù)據(jù)集上,均得到優(yōu)于基線網(wǎng)絡(luò)的準(zhǔn)確率,網(wǎng)絡(luò)性能得到一致的提升。下面本文將對上述卷積神經(jīng)網(wǎng)絡(luò)的研究過程進(jìn)行詳細(xì)介紹。
VGGNet是由Simonyan等[31]提出的非常經(jīng)典的CNN模型,在2014年的ImageNet挑戰(zhàn)賽中以92.3%的準(zhǔn)確率獲得亞軍。VGGNet整體結(jié)構(gòu)十分簡潔,主體采用多個3×3的小卷積核,每個卷積后都伴有非線性激活函數(shù)。3個3×3的卷積可等價于1個5×5卷積,但小卷積核替代大卷積核,卻能增加網(wǎng)絡(luò)的非線性表達(dá)能力,因而VGGNet在圖像復(fù)雜特征表達(dá)上具有天然的優(yōu)勢。每隔2個或者3個3×3的卷積層就連接一個2×2的最大池化層,將卷積層和最大池化層進(jìn)行反復(fù)堆疊即構(gòu)成VGGNet網(wǎng)絡(luò)主體。部分結(jié)構(gòu)采用1×1的卷積核,后伴有激活函數(shù),在不影響輸入輸出維度的情況下,增加模型的非線性。如果卷積層和全連接層堆疊的層數(shù)總共為16層,那么就稱這個網(wǎng)絡(luò)為VGG16。研究表明,當(dāng)VGG模型的層數(shù)過深時,會因?yàn)閰?shù)的誤差變大導(dǎo)致網(wǎng)絡(luò)的退化,因此一般VGG的模型多數(shù)為16—19效果最佳。因?yàn)榻Y(jié)構(gòu)簡單和性能穩(wěn)定的優(yōu)勢,現(xiàn)在VGGNet仍在圖像處理領(lǐng)域被廣泛研究和應(yīng)用。圖1展示了VGGNet的網(wǎng)絡(luò)架構(gòu)。
圖1 VGGNet的網(wǎng)絡(luò)架構(gòu)
從VGGNet提出到現(xiàn)在,仍然有許多研究者將其使用到自然應(yīng)用場景中。孫新立[39]通過構(gòu)建VGG16模型,以顏色和紋理作為煤和矸石圖像的類別特征,結(jié)合遷移學(xué)習(xí)方法,解決了目前人工撿矸法、機(jī)械濕選法操作過程中無法解決的效率問題,其識別準(zhǔn)確率達(dá)到99.18%,能夠有效地識別出煤和矸石。田佳鷺等[40]提出改進(jìn)的VGG16模型來對猴子圖像數(shù)據(jù)進(jìn)行分類,模型的優(yōu)化包括利用Swish作為激活函數(shù),將softmax loss與center loss相結(jié)合作為損失函數(shù)以實(shí)現(xiàn)更好的聚類效果,采用性能完善的Adam優(yōu)化器;同時用訓(xùn)練集訓(xùn)練模型以確定微調(diào)參數(shù)信息,再用測試集檢驗(yàn)?zāi)P蜏?zhǔn)確性;該方法對猴子圖像分類的準(zhǔn)確度可達(dá)到98.875%,分類速度也得到顯著提升。
Szegedy等[32]提出的Inception-v1模型使用22層Inception網(wǎng)絡(luò)結(jié)構(gòu)模塊,Inception-v1模型與以往的卷積神經(jīng)網(wǎng)絡(luò)模型相比,其特點(diǎn)在于最后一層使用全局平均池化層代替全連接層,降低空間參數(shù),讓模型更加健壯,抗過擬合效果更佳。該模型在ILSVRC 2015 比賽分類任務(wù)上以93.3%的正確率獲得該屆比賽的冠軍。Inception模塊的主要思路是使用一個密集成分來近似或者代替最優(yōu)的局部稀疏結(jié)構(gòu),使其能夠降低網(wǎng)絡(luò)復(fù)雜度,達(dá)到提高神經(jīng)網(wǎng)絡(luò)的計(jì)算資源利用率,提升其分類準(zhǔn)確率并且減少過擬合的情況。經(jīng)典的Inception模塊如圖2所示。
圖2 經(jīng)典的Inception模塊
模塊中包含幾種不同大小的卷積:1×1卷積、3×3卷積、5×5卷積以及一個3×3的池化層,讓網(wǎng)絡(luò)增加了對不同尺寸度的適應(yīng)性,這些卷積層和池化層會把它們得到的特征組融合到一起,輸入給下一層Inception模塊。
一般而言,提升網(wǎng)絡(luò)性能最直接的方法是增加網(wǎng)絡(luò)的深度和寬度。其中,網(wǎng)絡(luò)的深度指的是網(wǎng)絡(luò)的層數(shù),寬度指的是每層的通道數(shù)。當(dāng)深度和寬度不斷增加時,需要學(xué)習(xí)的參數(shù)也不斷增加,巨大的參數(shù)容易發(fā)生過擬合,并且會導(dǎo)致計(jì)算量加大。Incaption-v1模型通過引入稀疏特性,將全連接層轉(zhuǎn)換成稀疏連接的方法解決上述問題。Incaption-v1模型取得成功之后,研究人員在其基礎(chǔ)上進(jìn)行諸多應(yīng)用和改良。在應(yīng)用方面,Shichijo等[41]構(gòu)建了一種能自行診斷幽門螺桿菌感染的Inception-v1模型,經(jīng)過測試,模型的準(zhǔn)確性為87.7%,診斷時間194 s;Zhuo等[42]提出一種使用卷積神經(jīng)網(wǎng)絡(luò)的車輛分類新方法,先對Inception-v1模型進(jìn)行ILSVRC-2012數(shù)據(jù)集預(yù)訓(xùn)練,分類中汽車共分為公共汽車、汽車、摩托車、小巴、卡車和貨車6類,經(jīng)過試驗(yàn)平均準(zhǔn)確率為98.26%。在改良方面,針對Inception-v1模型收斂速度太慢的問題,Ioffe等[43]將BN層引入Inception-v1模型,提出Inception-v2模型;Szegedy等[44]為提高網(wǎng)絡(luò)學(xué)習(xí)效率,進(jìn)一步引入卷積因子化的思想,把較大的卷積分解成較小的卷積,通過級聯(lián)的方式來減少參數(shù)量,進(jìn)而提出Inception-v3模型。之后Szegedy等[45]又對Inception-v3模型進(jìn)行優(yōu)化,提出Inception-v4和Inception-ResNet模型。
理論上,網(wǎng)絡(luò)深度越深,模型的非線性表達(dá)能力越好,分類性能應(yīng)該更好。但研究表明,神經(jīng)網(wǎng)絡(luò)因?yàn)榫W(wǎng)絡(luò)層數(shù)太深,會引發(fā)梯度反向傳播中的連乘效應(yīng),從而導(dǎo)致梯度爆炸[46]、梯度消失[47]等問題,研究人員通過在網(wǎng)絡(luò)中加入BN[48]、Dropout[49]的方式,解決上述問題。He等[33]創(chuàng)新性提出的ResNet網(wǎng)絡(luò),從改變網(wǎng)絡(luò)結(jié)構(gòu)的角度解決深層網(wǎng)絡(luò)梯度消失問題,在訓(xùn)練集和驗(yàn)證集上,都證明越深的ResNet網(wǎng)絡(luò)模型,其錯誤率越小。
ResNet使用的殘差學(xué)習(xí)單元如圖3所示,整個殘差學(xué)習(xí)單元除了正常的權(quán)重層輸出外,還有一個分支把輸入直接相連到輸出上,該輸出和權(quán)重層輸出做相加運(yùn)算得到最終的輸出。若輸入x學(xué)習(xí),最終得到的輸出為H(x),F(xiàn)(x)是權(quán)重層的輸出,則整個殘差學(xué)習(xí)過程中可以表達(dá)為H(x)=F(x)+x。如果權(quán)重層沒有學(xué)習(xí)到特征,即F(x)為0,則H(x)為一個恒等映射(Identity Mapping)。多個殘差學(xué)習(xí)單元產(chǎn)生多個旁路的支線將輸入信息繞道傳到輸出,保護(hù)信息的完整性,確保最終的錯誤率不會因?yàn)樯疃鹊淖兇蠖絹碓讲睢?/p>
圖3 殘差學(xué)習(xí)單元
殘差學(xué)習(xí)單元使用恒等映射,把當(dāng)前輸出直接傳輸給下一層網(wǎng)絡(luò),相當(dāng)于一個捷徑連接(Shortcut Connection),也稱為跳躍連接(Skip Connection),同時在后向傳播過程中,將下一層網(wǎng)絡(luò)的梯度直接傳遞給上一層網(wǎng)絡(luò),這樣就解決了深層網(wǎng)絡(luò)的梯度消失問題。捷徑連接并不會產(chǎn)生額外的計(jì)算量。ResNet的殘差學(xué)習(xí)單元解決了深度網(wǎng)絡(luò)的退化問題,可以訓(xùn)練出更深的網(wǎng)絡(luò),是深度網(wǎng)絡(luò)的一個歷史性突破。
在模型表征方面,雖然ResNet不能更好地表征圖像某一方面的特征,但是其允許逐層深入地表征更多模型,利用網(wǎng)絡(luò)深度去理解圖像更多有意義的語義特征。ResNet的設(shè)計(jì)使得前向傳播和反向傳播算法可以順利進(jìn)行,因此,在極大程度上,ResNet使得優(yōu)化較深層模型更為簡單。此外,ResNet的捷徑連接既不產(chǎn)生額外的參數(shù),也不會增加計(jì)算的復(fù)雜度。捷徑連接通過簡單的執(zhí)行函數(shù)映射,并將它們的輸出添加到疊加層的輸出,再通過反向傳播。所以,整個ResNet網(wǎng)絡(luò)可以被看作是一種端到端的訓(xùn)練模式。
與ResNet的原理一致,DenseNet[34]也是建立層與層之間的連接來達(dá)到特征重用的目的,不同的是DenseNet層與層之間的連接具有密集連接特性,進(jìn)一步增強(qiáng)了特征重用的效果。DensNet的基本架構(gòu)如圖4所示,深度DenseNet具有3個稠密塊(Dense Blocks)。DensNet與ResNet模型的區(qū)別在于,在網(wǎng)絡(luò)中任何兩層之間都會有直接的連接,也可以理解為網(wǎng)絡(luò)每一層的輸入都是前面所有層輸出的集合。從結(jié)構(gòu)上看,感覺是極大地增加了網(wǎng)絡(luò)的參數(shù)和計(jì)算量,但實(shí)際上DenseNet模型比其他網(wǎng)絡(luò)有著更高的效率。由于每一層都包含之前所有層的輸出信息,通過網(wǎng)絡(luò)每層的特征重復(fù)利用,當(dāng)前層只需要較少的特征圖就可以把DenseNet模型的每一層設(shè)計(jì)得特別窄,從而解決網(wǎng)絡(luò)的冗余現(xiàn)象,降低參數(shù)量。在稠密塊中的每一個單元實(shí)際上都是一個瓶頸層(Bottleneck Layer),其中包括一個1×1卷積核和一個3×3卷積核。相鄰塊之間的層稱為過渡層(Transition Layer),具體包括一個BN層、一個1×1卷積和一個池化層,通過卷積和池化來改變特征圖的大小,同樣能降低冗余。一個塊中有N個特征圖,通過一個0—1的參數(shù)來限制輸出的特征圖數(shù)量。
圖4 DensNet基本架構(gòu)
DensNet網(wǎng)絡(luò)通過學(xué)習(xí)比較少的特征圖來降低特征學(xué)習(xí)的冗余,鼓勵特征重用,一定程度上緩解了梯度消失問題。因?yàn)椴恍枰匦聦W(xué)習(xí)冗余特征圖,這種密集連接模式相對于傳統(tǒng)的卷積網(wǎng)絡(luò),大大減少了參數(shù)的數(shù)量,在比ResNet網(wǎng)絡(luò)使用參數(shù)更少的情況下,達(dá)到ResNet網(wǎng)絡(luò)的準(zhǔn)確率。
盡管卷積神經(jīng)網(wǎng)絡(luò)的經(jīng)典模型在視覺大賽中表現(xiàn)出色,但若識別的局部區(qū)域大小多樣化且圖像包含較多的噪聲,則不能充分提取目標(biāo)特征的信息,影響網(wǎng)絡(luò)的分類與識別性能。于是人們開始考慮是否能夠通過改進(jìn)特征圖通道、卷積核等來進(jìn)一步提高網(wǎng)絡(luò)提取特征能力。近3年來,通過引入注意力機(jī)制方法改進(jìn)ResNet網(wǎng)絡(luò),從而提高CNN圖像分類算法性能的研究十分廣泛。其中,注意力機(jī)制模塊的作用是使卷積神經(jīng)網(wǎng)絡(luò)在訓(xùn)練過程中更加精準(zhǔn)地判斷輸入圖像的哪個部分需要更加關(guān)注,從而從關(guān)鍵部分進(jìn)行特征提取,得到重要信息,提升網(wǎng)絡(luò)性能。而ResNet由于網(wǎng)絡(luò)殘差塊的特殊效果,對ResNet網(wǎng)絡(luò)的改進(jìn)已經(jīng)成為一個專門的、獨(dú)特的卷積神經(jīng)網(wǎng)絡(luò)研究,以下將對用于圖像分類的ResNet網(wǎng)絡(luò)的改進(jìn)方法進(jìn)行介紹。
卷積核作為卷積神經(jīng)網(wǎng)絡(luò)的核心部件,其本質(zhì)上只建模圖像的空間信息,并沒有建模通道之間的信息。面對現(xiàn)實(shí)中復(fù)雜的圖像,深層網(wǎng)絡(luò)雖然可以獲取圖像更高層的語義信息,但是增加網(wǎng)絡(luò)層數(shù)難免會讓訓(xùn)練過程出現(xiàn)過擬合現(xiàn)象,效果有時甚至比淺層網(wǎng)絡(luò)更差。因此,Hu等[35]提出一種利用通道信息理解圖像語義的注意力機(jī)制模型SENet,即關(guān)注特征在通道之間的關(guān)系,它是ImageNet 2017收官賽的冠軍模型,在很大程度上減小了之前模型的錯誤率,并且復(fù)雜度低,新增參數(shù)量和計(jì)算量都很小,屬于輕量級模型。
SE塊的構(gòu)成如圖5所示,SENet模塊主要由擠壓(Squeeze)和激勵(Excitation)兩部分組成。在Squeeze部分中,C個大小為H×W的特征圖通過全局平均池化,特征圖H×W×C被壓縮成一維的1×1×C,即相當(dāng)于一維的參數(shù)獲得了H×W大小的全局信息,具有全局的感受野。在Excitation部分中,將Squeeze得到的1×1×C加入全連接層(Fully Connected),通過參數(shù)W為每個特征通道生成權(quán)重,獲取每個通道的重要性,以此來顯示建模通道之間的相關(guān)性。得到不同通道的重要性大小后,通過乘法主通道加權(quán)到先前的特征,實(shí)現(xiàn)在通道上對原始特征的重新校準(zhǔn)。
圖5 SENet模塊
其他新網(wǎng)絡(luò)架構(gòu)的提出需要進(jìn)行大量的調(diào)參工作才能達(dá)到理想效果,SENet模塊則可以根據(jù)實(shí)際研究需求,直接嵌入在其他卷積神經(jīng)網(wǎng)絡(luò)架構(gòu)中(圖6),組成SE-Inception、SE-ResNet等網(wǎng)絡(luò)。
圖6 SE-Inception (左)和SE-ResNet (右)
注意力機(jī)制的提出并應(yīng)用于CNN模型結(jié)構(gòu)是近年來改進(jìn)CNN結(jié)構(gòu)的一大亮點(diǎn),已經(jīng)有大量研究受到SENet的啟發(fā),進(jìn)行改進(jìn)并應(yīng)用到圖像識別領(lǐng)域,并取得一定進(jìn)展[50,51]。注意力機(jī)制的核心目標(biāo)是從全局眾多復(fù)雜信息中選擇出對當(dāng)前視覺任務(wù)目標(biāo)更重要的信息。在圖像分類中,當(dāng)神經(jīng)網(wǎng)絡(luò)獲取對目標(biāo)任務(wù)更關(guān)鍵的信息,也就相當(dāng)于找到了對分類目標(biāo)更具有判別性的區(qū)域,從而提高網(wǎng)絡(luò)的分類精度。傳統(tǒng)的圖像分類模型只是單純地利用不同大小的卷積核在空間維度和特征維度提取特征,然后將信息進(jìn)行聚合從而獲取全局信息。這種提取特征的過程容易因?yàn)樵肼暤母蓴_不能準(zhǔn)確定位到目標(biāo)任務(wù)的可區(qū)分區(qū)域,反而容易提取到不相關(guān)的識別區(qū)域。SENet能夠從通道的角度,通過全面捕獲通道依賴性,自動獲取每個特征通道的重要程度,然后依照這個重要程度提升有用的特征并抑制對當(dāng)前任務(wù)用處不大的特征,從而提高網(wǎng)絡(luò)識別性能。
Li等[36]提出的SKNet是一種動態(tài)選擇機(jī)制,允許每個神經(jīng)元根據(jù)輸入信息的多個尺度自適應(yīng)地調(diào)整其感受野大小。SKNet在計(jì)算上屬于輕量級,參數(shù)量和計(jì)算成本只是輕微增加。SKNet在ImageNet 2012數(shù)據(jù)集上,相比其他常見的模型,如Inception-v4[45]、SENet-101[35]等均有提升,Top-1錯誤率僅為18.40%。
SENet是針對特征圖的通道注意力機(jī)制的研究,SKNet則是針對卷積核的注意力機(jī)制的研究,著重突出卷積核的重要性。常見的卷積神經(jīng)網(wǎng)絡(luò)中,對于特定任務(wù)的特定模型,卷積核大小是確定的,而在SKNet模型中,卷積核的大小可以是不確定的,其允許網(wǎng)絡(luò)可以根據(jù)輸入信息的多個尺度自適應(yīng)地調(diào)節(jié)接受域大小,其靈感來自于人的雙眼在看不同尺寸、不同遠(yuǎn)近的物體時,視覺皮層神經(jīng)元接受域大小會根據(jù)外界刺激來進(jìn)行調(diào)節(jié)。
如圖7所示,SKNet由Split、Fuse和Select 3個運(yùn)算符組成。Split運(yùn)算符使用不同大小的卷積核(3×3和5×5)對輸入圖像進(jìn)行卷積,生成具有各種內(nèi)核大小的多個路徑。Fuse運(yùn)算符聚合來自多個路徑的信息,類似于SENet模塊[35]的擠壓-激勵處理,兩個特征圖相加后,進(jìn)行全局平均池化和全連接操作,輸出兩個矩陣a和b,其中矩陣b為冗余矩陣,b=1-a。Select運(yùn)算符實(shí)際上對應(yīng)于SENet模塊中的Scale運(yùn)算,將兩個權(quán)重矩陣a和b與對應(yīng)經(jīng)過Split運(yùn)算得到的兩個特征圖進(jìn)行加權(quán)操作。圖7僅展現(xiàn)了雙分支的情況,實(shí)際應(yīng)用中可以擴(kuò)展為多分支。
圖7 SKNet模塊
與Inception網(wǎng)絡(luò)[44]中的多尺度不同,SKNet是讓網(wǎng)絡(luò)自己選擇合適的尺度。與SENet[35]僅考慮通道之間的權(quán)重不同,SKNet不僅考慮通道之間的權(quán)重,還考慮分支中卷積的權(quán)重,充分利用組卷積和深度帶來的較小理論參數(shù)量和計(jì)算量的優(yōu)勢,使得模塊在增加多路與動態(tài)選擇的設(shè)計(jì)中不會帶來很大的計(jì)算開支??偟膩碚fSKNet相當(dāng)于給網(wǎng)絡(luò)融入軟注意力機(jī)制,是一種泛化能力更好的網(wǎng)絡(luò)結(jié)構(gòu)。雖然Inception網(wǎng)絡(luò)的多尺度設(shè)計(jì)精妙,效果也不錯,但實(shí)際上是通過人工設(shè)計(jì)卷積核的大小進(jìn)行特征提取。SKNet這種為獲取不同特征信息可以自適應(yīng)卷積核大小的結(jié)構(gòu),是卷積神經(jīng)網(wǎng)絡(luò)模型極限的一次重要突破。目前已經(jīng)有相關(guān)研究引入SKNet的思想改進(jìn)網(wǎng)絡(luò)[52,53]。
SKNet是對特征圖進(jìn)行權(quán)重調(diào)整的網(wǎng)絡(luò)結(jié)構(gòu),它并不會改變特征圖的大小,因此,它可以嵌入到現(xiàn)有網(wǎng)絡(luò)模型中的任意地方來對特征進(jìn)行提取操作,如SK-ResNeXt50、SK-ResNet50等,進(jìn)而提升網(wǎng)絡(luò)的實(shí)驗(yàn)效果。
盡管ResNet有效地解決了網(wǎng)絡(luò)深度加深造成的梯度爆炸和梯度消失的問題,使得特征提取能力更強(qiáng)大,但在ResNet網(wǎng)絡(luò)的殘差塊中,最具有特征提取能力的卷積核只有通用的單個3×3卷積核。然而,自然場景下的物體可能以不同的尺寸出現(xiàn)在一個圖像中,物體的基本上下文信息可能占據(jù)比物體本身大得多的區(qū)域,ResNet的單尺度卷積核獲得的單一尺度感知信息不能很好地理解自然場景下的圖像、對象及其周圍環(huán)境,導(dǎo)致網(wǎng)絡(luò)不能準(zhǔn)確識別目標(biāo)對象。為解決該問題,有研究通過設(shè)計(jì)多尺度特征[54-57]提取模型來提升網(wǎng)絡(luò)性能。Gao等[37]在ResNet的基礎(chǔ)上,提出Res2Net網(wǎng)絡(luò),通過在單一殘差塊中對殘差連接進(jìn)行分級,進(jìn)而可以提取到細(xì)粒度層級的多尺度表征,同時增加每一層的感受野大小,以此方式進(jìn)一步提高網(wǎng)絡(luò)模型的分類與識別性能。圖8左圖給出ResNet的瓶頸塊(Bottleneck Block)和Res2Net模塊的結(jié)構(gòu)對比圖。
ResNet網(wǎng)絡(luò)中瓶頸塊的結(jié)構(gòu)采用1×1、3×3、1×1三層卷積層結(jié)構(gòu)。Res2Net模塊只是修改了瓶頸塊中的3×3卷積層,在單個殘差塊內(nèi)構(gòu)造類似于分層的殘差連接,并引入一個新的超參數(shù)Scale,它將輸入通道數(shù)平均分成多個特征通道,Scale越大表明多尺度提取能力越強(qiáng)。圖8右圖展示了Scale=4時Res2Net模塊示意圖,即將第一層1×1 卷積層的輸出特征分為4組,為減少參數(shù)量并將特征重利用,第一組無卷積操作,隨后的第二、第三組會將卷積后得到的特征圖輸出的同時傳入下一組,第三、第四組每次卷積操作都會接收到前面每一組特征的信息。如此,網(wǎng)絡(luò)將得到不同數(shù)量以及不同感受野大小的輸出,如Y2得到3×3的感受野,那么Y3得到5×5的感受野,Y4會得到更大尺寸7×7的感受野,最后將這4個輸出進(jìn)行融合并經(jīng)過一個1×1卷積。也就是說,每個3×3卷積核可以接受來自該層前面的所有特征,每次分類特征經(jīng)過3×3的卷積處理后,其輸出的感受野要比輸入更大。這樣的操作,將使每一組卷積最終的輸出信息更加豐富、更具有多尺度特征。相較于ResNet的模塊單一尺度的特征提取,Res2Net的模塊設(shè)計(jì)提升整個網(wǎng)絡(luò)的多尺度特征提取能力,更適應(yīng)于自然場景下的圖像分類與識別。
Res2Net的通用性和便利性與其他多尺度模型相比要更強(qiáng),可以與現(xiàn)有的最新模塊或網(wǎng)絡(luò)相整合,例如ResNeXt[58]、SE模塊[35]等。
圖8 ResNet的瓶頸塊(左圖)和Res2Net模塊(右圖)
ResNet網(wǎng)絡(luò)的設(shè)計(jì)初衷很大程度上緩解了網(wǎng)絡(luò)的退化問題,使得網(wǎng)絡(luò)可以學(xué)習(xí)更深層次的特征,但其感受野大小是固定且單一的,無法融合不同尺度的特征,也未能充分利用跨通道特征之間的相互作用,ResNeSt[38]的設(shè)計(jì)彌補(bǔ)了這些缺點(diǎn)。第一,ResNeSt網(wǎng)絡(luò)借鑒GoogleNet[32]采用多路徑機(jī)制,每個模塊由不同大小的卷積核組成,在網(wǎng)絡(luò)層數(shù)足夠深的情況下可以提取到不同尺度特征同時減小計(jì)算量。第二,為了進(jìn)一步提取多樣性的目標(biāo)特征,ResNeSt網(wǎng)絡(luò)借鑒ResNeXt[58]的設(shè)計(jì)思想,在殘差塊中采用組卷積、多分支的架構(gòu)。不同組之間形成的不同子空間可以讓網(wǎng)絡(luò)學(xué)到更豐富的多樣性特征。第三,設(shè)計(jì)的網(wǎng)絡(luò)架構(gòu)在保證良好的特征多樣性提取能力情況下,讓網(wǎng)絡(luò)聚焦于局部信息,避免噪聲干擾,有助于整個網(wǎng)絡(luò)實(shí)現(xiàn)更精準(zhǔn)的圖像識別任務(wù)。因此,ResNeSt網(wǎng)絡(luò)借鑒SENet[35]和SKNet[36]的思想,將注意力機(jī)制的思想引入分組卷積中,不僅建模通道之間的重要程度,建立通道注意力,同時用非線性方法聚合來自多個卷積核的信息,建立特征圖注意力。最終的ResNeSt網(wǎng)絡(luò)是基于ResNet[33]進(jìn)行修改的,在單個網(wǎng)絡(luò)內(nèi)合并特征圖的拆分注意力,將通道維度的注意力機(jī)制擴(kuò)展到特征圖組表示,形成模塊化。
圖9展示了ResNeSt模塊,其中包含特征圖組(Feature-map Group)和拆分注意力(Split Attention)操作。特征圖組中,特征圖被分為多個組,每個組內(nèi)又進(jìn)行分組。超參數(shù)K和R分別表示特征圖組的數(shù)量和基數(shù)組內(nèi)的分組數(shù),基數(shù)組內(nèi)的每個分組稱為Splits,總的特征圖分組數(shù)可以表示為G=K×R。在基數(shù)組中的每個Split進(jìn)行1×1和3×3的卷積,得到R個特征圖后進(jìn)行拆分注意力操作。每個基數(shù)組得到的輸出進(jìn)行Concat操作,再與Shortcut路徑中1×1卷積配合。多個ResNeSt模塊堆疊最終組成ResNeSt網(wǎng)絡(luò)。
圖9 ResNeSt模塊
ResNeSt網(wǎng)絡(luò)與現(xiàn)有的ResNet變體相比,不需要增加額外的計(jì)算量,且可以作為其他任務(wù)的骨架。ResNeSt在ImageNet圖像分類數(shù)據(jù)集上的準(zhǔn)確率超越了ResNet[33]、ResNeXt[58]、SENet[35]和EfficientNet[59],是當(dāng)前ResNet網(wǎng)絡(luò)的最強(qiáng)改進(jìn)版本。
本文在前面章節(jié)中介紹并分析了在卷積神經(jīng)網(wǎng)絡(luò)中圖像分類領(lǐng)域網(wǎng)絡(luò)的發(fā)展現(xiàn)狀。以下是在相關(guān)參考文獻(xiàn)的實(shí)驗(yàn)部分使用ImageNet數(shù)據(jù)集進(jìn)行分類得到的Top-1性能對比。表1展示了在ImageNet數(shù)據(jù)集上不同CNN模型的性能對比,僅選取最優(yōu)結(jié)果。GFLOPs表示每秒10億次的浮點(diǎn)運(yùn)算數(shù),Params表示參數(shù)數(shù)量。
從表1可以看出,第一,網(wǎng)絡(luò)的深度越深,準(zhǔn)確率通常越高,參數(shù)量和計(jì)算量也會相應(yīng)增加。ResNet網(wǎng)絡(luò)從50層增加到152層、ResNeXt從50層增加到101層、DenseNet從121層增加到264層、SENet從50層增加到154層、SKNet從50層增加到101層、ResNeSt從50層增加到101層時,網(wǎng)絡(luò)性能均有所提升,證明增加網(wǎng)絡(luò)的深度是提高分類效果的重要因素,卷積網(wǎng)絡(luò)深度越深,能獲取的信息越多,得到的特征也越豐富,準(zhǔn)確率就越高。但此時不可避免的是網(wǎng)絡(luò)越深,神經(jīng)元的數(shù)量也就越多,必然導(dǎo)致參數(shù)量和運(yùn)算量的增加。第二,當(dāng)網(wǎng)絡(luò)深度到達(dá)一定程度時,網(wǎng)絡(luò)會出現(xiàn)退化的現(xiàn)象,準(zhǔn)確率下降,但增大輸入圖像的大小進(jìn)行訓(xùn)練,在一定程度上可以緩解網(wǎng)絡(luò)的退化,網(wǎng)絡(luò)能識別到的圖像信息越多。ResNet從101層增加到152層時,輸入224×224的圖像進(jìn)行訓(xùn)練時準(zhǔn)確率出現(xiàn)下降。盡管ResNet能夠訓(xùn)練很深的網(wǎng)絡(luò),但也存在一定瓶頸,在網(wǎng)絡(luò)深度更深的情況下,網(wǎng)絡(luò)無法更好收斂。當(dāng)輸入圖像大于224×224時,ResNet網(wǎng)絡(luò)從101層增加到152層時準(zhǔn)確率反而上升,說明增大輸入圖像的大小可以改善網(wǎng)絡(luò)的分類性能。第三,在更深的網(wǎng)絡(luò)模型中,DenseNet具有較強(qiáng)的競爭力,當(dāng)網(wǎng)絡(luò)深度增加到264層時,分類準(zhǔn)確率仍然有所提升。DenseNet脫離加深網(wǎng)絡(luò)層數(shù)和加寬網(wǎng)絡(luò)結(jié)構(gòu)來提升網(wǎng)絡(luò)性能的定式思維,從特征的角度考慮,通過特征重用、旁路(Bypass)設(shè)置以及密集連接的特性很大程度上緩解了過擬合問題的產(chǎn)生,能夠訓(xùn)練比ResNet更深的網(wǎng)絡(luò)且保證準(zhǔn)確率不受深度影響而下降。第四,多尺度和多分支的網(wǎng)絡(luò)相較于同深度的其他網(wǎng)絡(luò)獲得的準(zhǔn)確率更高,如Inception網(wǎng)絡(luò)、SKNet網(wǎng)絡(luò)和ResNeSt網(wǎng)絡(luò),這類網(wǎng)絡(luò)能夠?qū)Σ煌6鹊奶卣鬟M(jìn)行采樣,獲取更加強(qiáng)大的特征表達(dá),從而提高準(zhǔn)確率。第五,在神經(jīng)網(wǎng)絡(luò)中,注意力模塊通常是一個額外的神經(jīng)網(wǎng)絡(luò),能夠給輸入的不同部分分配不同的權(quán)重。引入SE、SK、CBAM等注意力模塊的網(wǎng)絡(luò),相較于基線網(wǎng)絡(luò)的準(zhǔn)確率高,這類網(wǎng)絡(luò)模型能夠忽略無關(guān)信息,不斷聚焦到最具辨別性的區(qū)域,進(jìn)一步提高網(wǎng)絡(luò)的分類準(zhǔn)確率,且增加的參數(shù)量很小。第六,通過將ResNeSt與其他50層和101層配置、類似復(fù)雜度的ResNet變體作比較,ResNeSt的Top-1準(zhǔn)確率達(dá)到最高,且參數(shù)量沒有大幅度增加,性能得到顯著提升,網(wǎng)絡(luò)的泛化能力極強(qiáng)。說明在卷積神經(jīng)網(wǎng)絡(luò)中,分組卷積、多尺度方法、注意力機(jī)制等思想的共同引入可以從卷積、通道、特征圖等方面全面理解圖像信息,進(jìn)一步提升網(wǎng)絡(luò)的分類效果。
表1 ImageNet數(shù)據(jù)集上各類網(wǎng)絡(luò)模型性能對比
續(xù)表1
本文介紹了卷積神經(jīng)網(wǎng)絡(luò)在圖像分類中的優(yōu)點(diǎn)以及發(fā)展趨勢,分析了卷積神經(jīng)網(wǎng)絡(luò)在圖像分類中的經(jīng)典模型、近年來的改進(jìn)方法及其在ImageNet公共數(shù)據(jù)集上的性能表現(xiàn)。盡管卷積神經(jīng)網(wǎng)絡(luò)在圖像分類領(lǐng)域取得豐碩的成果,但在實(shí)際應(yīng)用中仍存在一些具有挑戰(zhàn)性的研究問題:
(1)在深度學(xué)習(xí)中進(jìn)行的圖像分類研究難免需要針對特定任務(wù)數(shù)量龐大的圖像數(shù)據(jù)集,但這些數(shù)據(jù)集不易獲取和采集,導(dǎo)致目前使用監(jiān)督學(xué)習(xí)方法的圖像分類研究進(jìn)展緩慢,大部分提出的創(chuàng)新性網(wǎng)絡(luò)均在僅有的幾個大型公共數(shù)據(jù)集上進(jìn)行評估,針對特定分類任務(wù)的研究十分零散且數(shù)據(jù)集樣本較少。對于一個新的應(yīng)用領(lǐng)域,在數(shù)據(jù)集較少的情況下,有相關(guān)的研究[61,62]采用遷移學(xué)習(xí)方法處理小樣本數(shù)據(jù)集進(jìn)行圖像分類,該方法使用在ImageNet大型數(shù)據(jù)集上訓(xùn)練得到的模型和參數(shù),通過遷移訓(xùn)練方法進(jìn)一步優(yōu)化使用小樣本目標(biāo)數(shù)據(jù)集訓(xùn)練的模型,從而有效地利用小型數(shù)據(jù)并保證網(wǎng)絡(luò)具有良好的魯棒性和泛化能力。因此遷移學(xué)習(xí)方法應(yīng)用在特定的圖像分類任務(wù)中可以取得較好的分類效果。
(2)自然場景下的圖像分類具有巨大的挑戰(zhàn)性,這類數(shù)據(jù)集的圖像往往含有較大的噪聲,背景復(fù)雜,導(dǎo)致網(wǎng)絡(luò)無法準(zhǔn)確分辨出目標(biāo)物體的類別,使得分類準(zhǔn)確率較低。此外細(xì)粒度的圖像分類由于子類別間細(xì)微的類間差異以及較大的類內(nèi)差異,在某些類別上甚至連專家都難以區(qū)分,較之普通的圖像分類任務(wù),具有較大難度。自然場景下的圖像分類任務(wù)無疑在現(xiàn)實(shí)世界中更具有意義,且此類數(shù)據(jù)集的收集和處理較容易,有利于切實(shí)推進(jìn)現(xiàn)實(shí)的生產(chǎn)工作。細(xì)粒度圖像分類更是對卷積神經(jīng)網(wǎng)絡(luò)挖掘細(xì)粒度特征發(fā)起的一大挑戰(zhàn),利于圖像分類領(lǐng)域的研究發(fā)展。
(3)目前有相當(dāng)一部分圖像分類網(wǎng)絡(luò)的深度較深、模型結(jié)構(gòu)設(shè)計(jì)復(fù)雜甚至存在冗余結(jié)構(gòu),其參數(shù)量增大導(dǎo)致計(jì)算成本增加。DenseNet網(wǎng)絡(luò)雖然從特征的角度考慮,通過特征重用加強(qiáng)特征的傳遞,但是網(wǎng)絡(luò)的連接十分冗余,對其進(jìn)行剪枝將成為未來的研究方向。雖然Res2Net的計(jì)算復(fù)雜度與等效的ResNet相似,但它的運(yùn)行速度仍然比對應(yīng)的ResNet慢,不能高效地處理圖像識別任務(wù)。ResNeSt網(wǎng)絡(luò)雖然集合多種優(yōu)秀模型的優(yōu)點(diǎn),在ImageNet數(shù)據(jù)集上的實(shí)驗(yàn)效果也很優(yōu)秀,但是網(wǎng)絡(luò)模型結(jié)構(gòu)太過臃腫,并且訓(xùn)練模型需要大量的調(diào)參技巧,使用多種模型堆疊設(shè)計(jì)的痕跡較重。另外在當(dāng)前移動設(shè)備普及的情況下,這種復(fù)雜度高、深度太深的網(wǎng)絡(luò)并不能在移動端很好地應(yīng)用。因此,未來的研究熱點(diǎn)必將趨向輕量級、高效的網(wǎng)絡(luò)發(fā)展。
(4)深度學(xué)習(xí)方法在圖像分類中的可解釋性差,不同于傳統(tǒng)圖像分類方法有嚴(yán)謹(jǐn)?shù)臄?shù)學(xué)理論依據(jù)作為支撐,目前使用深度學(xué)習(xí)的方法更偏向于將網(wǎng)絡(luò)進(jìn)行可視化解釋網(wǎng)絡(luò)觀察到所分類圖像的某個位置。如何從更科學(xué)的角度詮釋深度學(xué)習(xí)方法將是未來一個十分重要的研究課題。
(5)雖然注意力機(jī)制模塊可以一定程度上提升分類模型的性能,但SENet實(shí)際上只是從通道的角度關(guān)注特征圖,沒有從空間、非局部、全局等角度關(guān)注特征圖,未來的研究工作可以將這些角度很好地整合在一起,形成一種關(guān)注能力更強(qiáng)的注意力機(jī)制。SKNet使用時涉及到分組數(shù)量、卷積核大小的選擇問題,在實(shí)際使用中仍需要經(jīng)過大量的實(shí)驗(yàn)調(diào)整參數(shù)才能找到合適的參數(shù)設(shè)置,不能真正做到脫離人工設(shè)定分組數(shù)量和卷積核大小來適用于不同尺度的目標(biāo)對象,使網(wǎng)絡(luò)達(dá)到最優(yōu)。此外,全局池化的使用容易混淆多個物體的尺度信息,使分類精度降低。注意力機(jī)制模塊在網(wǎng)絡(luò)中的放置位置也會影響到神經(jīng)網(wǎng)絡(luò)的整體效果,同樣需要經(jīng)過大量實(shí)驗(yàn)找到適合的添加位置才能達(dá)到最佳的實(shí)驗(yàn)效果,靈活性較低。因此,如何設(shè)計(jì)出能夠真正自動適應(yīng)神經(jīng)網(wǎng)絡(luò)訓(xùn)練的注意力機(jī)制是一個十分有趣的研究方向。
總的來說,相對于傳統(tǒng)圖像分類方法,基于深度學(xué)習(xí)的卷積神經(jīng)網(wǎng)絡(luò)在特征表示上具有極大的優(yōu)越性,且應(yīng)用廣泛,性能優(yōu)異。隨著研究的深入、數(shù)據(jù)集數(shù)量的增加和實(shí)際應(yīng)用場景的增多,卷積神經(jīng)網(wǎng)絡(luò)的模型必然更復(fù)雜,更具有挑戰(zhàn)性。因此,在未來的深度學(xué)習(xí)研究中,使用卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行改進(jìn)和創(chuàng)新依舊是最終實(shí)現(xiàn)人工智能的最佳途徑和方法。