覃 曉,黃呈鋮,施 宇,廖兆琪,梁新艷,元昌安
(1.南寧師范大學計算機與信息工程學院,八桂學者創(chuàng)新團隊實驗室,廣西南寧 530000;2.廣西科學院,廣西南寧 530007)
圖像分類是圖像分割、目標檢測[1-7]、人臉識別[8-10]、行為識別和姿態(tài)估計[11-13]等視覺任務的基礎任務。近年來,深度學習模型已被證明是具有卓越分類能力的機器學習算法。深度學習強調模型結構的深度和特征學習的重要性,采用有監(jiān)督或無監(jiān)督的方式對圖像從底層到高級的語義特征進行學習。典型的深度學習模型有深度信念網絡(Deep Belief Network,DBN)[14]、受限玻爾茲曼機(Restricted Boltzmann Machine,RBM)[15]、卷積神經網絡(Convolutional Neural Network,CNN)[16,17]等。卷積神經網絡已被證明是解決各種視覺任務的有效模型[18-21]。
卷積神經網絡是受到動物視覺神經系統(tǒng)啟發(fā)被提出的。加拿大科學家David H.Hubel[22]和瑞典科學家Torsten N.Wiesel[23]從1958年開始對貓視覺皮層進行研究,他們在V1皮層里發(fā)現(xiàn)兩種細胞,簡單細胞(Simple Cells)和復雜細胞(Complex Cells),這兩種細胞的共同特點就是每個細胞只對特定方向的條形圖樣刺激有反應,兩者的主要區(qū)別是簡單細胞對應視網膜上的光感受細胞所在的區(qū)域很小,而復雜細胞則對應更大的區(qū)域,這個區(qū)域被稱作感受野(Receptive Field)。早在1980年,日本的Kunihiko Fukushima[24]提出的Neocognitron模型,即為模擬這種作用的結構。隨后LeCun等[25]基于Fukushima的研究工作,使用誤差梯度回傳策略設計和訓練CNN(被稱為LeNet-5),這就是現(xiàn)今計算機視覺領域第一個卷積神經網絡。
基于卷積神經網絡的圖像分類方法,可以從海量且有噪聲的圖像中學習到目標的高層特征,且這種特征對于目標某種程度的形變有很好的魯棒性。卷積神經網絡是一種帶有卷積結構的深度神經網絡,其將原始圖像輸入網絡,經過數(shù)據(jù)預處理后,網絡各節(jié)點傳遞圖像數(shù)據(jù)并經過逐層的權重迭代更新和計算,最終輸出類別標簽上的概率分布,圖像的特征由卷積神經網絡自動學習,不需要手動設計。此外,卷積神經網絡卷積層中的網絡稀疏連接和卷積核權值共享兩大特性,有利于神經網絡的快速學習并避免過度擬合[26],使得網絡結構變得簡單,適應性更強,泛化能力提高[27]。
CIFAR-10[28]、CIFAR-100[28],特別是ImageNet數(shù)據(jù)集[29]是目前深度學習圖像領域應用最廣泛的數(shù)據(jù)集。2012年舉辦的圖像分類競賽(ImageNet Large Scale Visual Recognition Challenge)中,由Alex Krizhevsky等[30]實現(xiàn)的深層CNN結構系統(tǒng)獲得冠軍,當時取得了最佳分類效果,也是在此后,更多的更深更寬的神經網絡被提出,如VGGNet[31]、GoogleNet[32]、ResNet[33]、DenseNet[34]等。近幾年來,有研究者開始對神經網絡的特征圖通道、空間、卷積核等方面進行結構上的改進,提出SE block[35]、SK block[36]等注意力機制,它們可以直接放入現(xiàn)有的神經網絡中進行訓練。也有研究者使用現(xiàn)有的網絡,如ResNet用作基線網絡進行模型改進研究,如Res2Net[37]、ResNeSt[38],提出的這些模型在廣泛使用的圖像分類ImageNet數(shù)據(jù)集上,均得到優(yōu)于基線網絡的準確率,網絡性能得到一致的提升。下面本文將對上述卷積神經網絡的研究過程進行詳細介紹。
VGGNet是由Simonyan等[31]提出的非常經典的CNN模型,在2014年的ImageNet挑戰(zhàn)賽中以92.3%的準確率獲得亞軍。VGGNet整體結構十分簡潔,主體采用多個3×3的小卷積核,每個卷積后都伴有非線性激活函數(shù)。3個3×3的卷積可等價于1個5×5卷積,但小卷積核替代大卷積核,卻能增加網絡的非線性表達能力,因而VGGNet在圖像復雜特征表達上具有天然的優(yōu)勢。每隔2個或者3個3×3的卷積層就連接一個2×2的最大池化層,將卷積層和最大池化層進行反復堆疊即構成VGGNet網絡主體。部分結構采用1×1的卷積核,后伴有激活函數(shù),在不影響輸入輸出維度的情況下,增加模型的非線性。如果卷積層和全連接層堆疊的層數(shù)總共為16層,那么就稱這個網絡為VGG16。研究表明,當VGG模型的層數(shù)過深時,會因為參數(shù)的誤差變大導致網絡的退化,因此一般VGG的模型多數(shù)為16—19效果最佳。因為結構簡單和性能穩(wěn)定的優(yōu)勢,現(xiàn)在VGGNet仍在圖像處理領域被廣泛研究和應用。圖1展示了VGGNet的網絡架構。

圖1 VGGNet的網絡架構
從VGGNet提出到現(xiàn)在,仍然有許多研究者將其使用到自然應用場景中。孫新立[39]通過構建VGG16模型,以顏色和紋理作為煤和矸石圖像的類別特征,結合遷移學習方法,解決了目前人工撿矸法、機械濕選法操作過程中無法解決的效率問題,其識別準確率達到99.18%,能夠有效地識別出煤和矸石。田佳鷺等[40]提出改進的VGG16模型來對猴子圖像數(shù)據(jù)進行分類,模型的優(yōu)化包括利用Swish作為激活函數(shù),將softmax loss與center loss相結合作為損失函數(shù)以實現(xiàn)更好的聚類效果,采用性能完善的Adam優(yōu)化器;同時用訓練集訓練模型以確定微調參數(shù)信息,再用測試集檢驗模型準確性;該方法對猴子圖像分類的準確度可達到98.875%,分類速度也得到顯著提升。
Szegedy等[32]提出的Inception-v1模型使用22層Inception網絡結構模塊,Inception-v1模型與以往的卷積神經網絡模型相比,其特點在于最后一層使用全局平均池化層代替全連接層,降低空間參數(shù),讓模型更加健壯,抗過擬合效果更佳。該模型在ILSVRC 2015 比賽分類任務上以93.3%的正確率獲得該屆比賽的冠軍。Inception模塊的主要思路是使用一個密集成分來近似或者代替最優(yōu)的局部稀疏結構,使其能夠降低網絡復雜度,達到提高神經網絡的計算資源利用率,提升其分類準確率并且減少過擬合的情況。經典的Inception模塊如圖2所示。

圖2 經典的Inception模塊
模塊中包含幾種不同大小的卷積:1×1卷積、3×3卷積、5×5卷積以及一個3×3的池化層,讓網絡增加了對不同尺寸度的適應性,這些卷積層和池化層會把它們得到的特征組融合到一起,輸入給下一層Inception模塊。
一般而言,提升網絡性能最直接的方法是增加網絡的深度和寬度。其中,網絡的深度指的是網絡的層數(shù),寬度指的是每層的通道數(shù)。當深度和寬度不斷增加時,需要學習的參數(shù)也不斷增加,巨大的參數(shù)容易發(fā)生過擬合,并且會導致計算量加大。Incaption-v1模型通過引入稀疏特性,將全連接層轉換成稀疏連接的方法解決上述問題。Incaption-v1模型取得成功之后,研究人員在其基礎上進行諸多應用和改良。在應用方面,Shichijo等[41]構建了一種能自行診斷幽門螺桿菌感染的Inception-v1模型,經過測試,模型的準確性為87.7%,診斷時間194 s;Zhuo等[42]提出一種使用卷積神經網絡的車輛分類新方法,先對Inception-v1模型進行ILSVRC-2012數(shù)據(jù)集預訓練,分類中汽車共分為公共汽車、汽車、摩托車、小巴、卡車和貨車6類,經過試驗平均準確率為98.26%。在改良方面,針對Inception-v1模型收斂速度太慢的問題,Ioffe等[43]將BN層引入Inception-v1模型,提出Inception-v2模型;Szegedy等[44]為提高網絡學習效率,進一步引入卷積因子化的思想,把較大的卷積分解成較小的卷積,通過級聯(lián)的方式來減少參數(shù)量,進而提出Inception-v3模型。之后Szegedy等[45]又對Inception-v3模型進行優(yōu)化,提出Inception-v4和Inception-ResNet模型。
理論上,網絡深度越深,模型的非線性表達能力越好,分類性能應該更好。但研究表明,神經網絡因為網絡層數(shù)太深,會引發(fā)梯度反向傳播中的連乘效應,從而導致梯度爆炸[46]、梯度消失[47]等問題,研究人員通過在網絡中加入BN[48]、Dropout[49]的方式,解決上述問題。He等[33]創(chuàng)新性提出的ResNet網絡,從改變網絡結構的角度解決深層網絡梯度消失問題,在訓練集和驗證集上,都證明越深的ResNet網絡模型,其錯誤率越小。
ResNet使用的殘差學習單元如圖3所示,整個殘差學習單元除了正常的權重層輸出外,還有一個分支把輸入直接相連到輸出上,該輸出和權重層輸出做相加運算得到最終的輸出。若輸入x學習,最終得到的輸出為H(x),F(xiàn)(x)是權重層的輸出,則整個殘差學習過程中可以表達為H(x)=F(x)+x。如果權重層沒有學習到特征,即F(x)為0,則H(x)為一個恒等映射(Identity Mapping)。多個殘差學習單元產生多個旁路的支線將輸入信息繞道傳到輸出,保護信息的完整性,確保最終的錯誤率不會因為深度的變大而越來越差。

圖3 殘差學習單元
殘差學習單元使用恒等映射,把當前輸出直接傳輸給下一層網絡,相當于一個捷徑連接(Shortcut Connection),也稱為跳躍連接(Skip Connection),同時在后向傳播過程中,將下一層網絡的梯度直接傳遞給上一層網絡,這樣就解決了深層網絡的梯度消失問題。捷徑連接并不會產生額外的計算量。ResNet的殘差學習單元解決了深度網絡的退化問題,可以訓練出更深的網絡,是深度網絡的一個歷史性突破。
在模型表征方面,雖然ResNet不能更好地表征圖像某一方面的特征,但是其允許逐層深入地表征更多模型,利用網絡深度去理解圖像更多有意義的語義特征。ResNet的設計使得前向傳播和反向傳播算法可以順利進行,因此,在極大程度上,ResNet使得優(yōu)化較深層模型更為簡單。此外,ResNet的捷徑連接既不產生額外的參數(shù),也不會增加計算的復雜度。捷徑連接通過簡單的執(zhí)行函數(shù)映射,并將它們的輸出添加到疊加層的輸出,再通過反向傳播。所以,整個ResNet網絡可以被看作是一種端到端的訓練模式。
與ResNet的原理一致,DenseNet[34]也是建立層與層之間的連接來達到特征重用的目的,不同的是DenseNet層與層之間的連接具有密集連接特性,進一步增強了特征重用的效果。DensNet的基本架構如圖4所示,深度DenseNet具有3個稠密塊(Dense Blocks)。DensNet與ResNet模型的區(qū)別在于,在網絡中任何兩層之間都會有直接的連接,也可以理解為網絡每一層的輸入都是前面所有層輸出的集合。從結構上看,感覺是極大地增加了網絡的參數(shù)和計算量,但實際上DenseNet模型比其他網絡有著更高的效率。由于每一層都包含之前所有層的輸出信息,通過網絡每層的特征重復利用,當前層只需要較少的特征圖就可以把DenseNet模型的每一層設計得特別窄,從而解決網絡的冗余現(xiàn)象,降低參數(shù)量。在稠密塊中的每一個單元實際上都是一個瓶頸層(Bottleneck Layer),其中包括一個1×1卷積核和一個3×3卷積核。相鄰塊之間的層稱為過渡層(Transition Layer),具體包括一個BN層、一個1×1卷積和一個池化層,通過卷積和池化來改變特征圖的大小,同樣能降低冗余。一個塊中有N個特征圖,通過一個0—1的參數(shù)來限制輸出的特征圖數(shù)量。

圖4 DensNet基本架構
DensNet網絡通過學習比較少的特征圖來降低特征學習的冗余,鼓勵特征重用,一定程度上緩解了梯度消失問題。因為不需要重新學習冗余特征圖,這種密集連接模式相對于傳統(tǒng)的卷積網絡,大大減少了參數(shù)的數(shù)量,在比ResNet網絡使用參數(shù)更少的情況下,達到ResNet網絡的準確率。
盡管卷積神經網絡的經典模型在視覺大賽中表現(xiàn)出色,但若識別的局部區(qū)域大小多樣化且圖像包含較多的噪聲,則不能充分提取目標特征的信息,影響網絡的分類與識別性能。于是人們開始考慮是否能夠通過改進特征圖通道、卷積核等來進一步提高網絡提取特征能力。近3年來,通過引入注意力機制方法改進ResNet網絡,從而提高CNN圖像分類算法性能的研究十分廣泛。其中,注意力機制模塊的作用是使卷積神經網絡在訓練過程中更加精準地判斷輸入圖像的哪個部分需要更加關注,從而從關鍵部分進行特征提取,得到重要信息,提升網絡性能。而ResNet由于網絡殘差塊的特殊效果,對ResNet網絡的改進已經成為一個專門的、獨特的卷積神經網絡研究,以下將對用于圖像分類的ResNet網絡的改進方法進行介紹。
卷積核作為卷積神經網絡的核心部件,其本質上只建模圖像的空間信息,并沒有建模通道之間的信息。面對現(xiàn)實中復雜的圖像,深層網絡雖然可以獲取圖像更高層的語義信息,但是增加網絡層數(shù)難免會讓訓練過程出現(xiàn)過擬合現(xiàn)象,效果有時甚至比淺層網絡更差。因此,Hu等[35]提出一種利用通道信息理解圖像語義的注意力機制模型SENet,即關注特征在通道之間的關系,它是ImageNet 2017收官賽的冠軍模型,在很大程度上減小了之前模型的錯誤率,并且復雜度低,新增參數(shù)量和計算量都很小,屬于輕量級模型。
SE塊的構成如圖5所示,SENet模塊主要由擠壓(Squeeze)和激勵(Excitation)兩部分組成。在Squeeze部分中,C個大小為H×W的特征圖通過全局平均池化,特征圖H×W×C被壓縮成一維的1×1×C,即相當于一維的參數(shù)獲得了H×W大小的全局信息,具有全局的感受野。在Excitation部分中,將Squeeze得到的1×1×C加入全連接層(Fully Connected),通過參數(shù)W為每個特征通道生成權重,獲取每個通道的重要性,以此來顯示建模通道之間的相關性。得到不同通道的重要性大小后,通過乘法主通道加權到先前的特征,實現(xiàn)在通道上對原始特征的重新校準。

圖5 SENet模塊
其他新網絡架構的提出需要進行大量的調參工作才能達到理想效果,SENet模塊則可以根據(jù)實際研究需求,直接嵌入在其他卷積神經網絡架構中(圖6),組成SE-Inception、SE-ResNet等網絡。

圖6 SE-Inception (左)和SE-ResNet (右)
注意力機制的提出并應用于CNN模型結構是近年來改進CNN結構的一大亮點,已經有大量研究受到SENet的啟發(fā),進行改進并應用到圖像識別領域,并取得一定進展[50,51]。注意力機制的核心目標是從全局眾多復雜信息中選擇出對當前視覺任務目標更重要的信息。在圖像分類中,當神經網絡獲取對目標任務更關鍵的信息,也就相當于找到了對分類目標更具有判別性的區(qū)域,從而提高網絡的分類精度。傳統(tǒng)的圖像分類模型只是單純地利用不同大小的卷積核在空間維度和特征維度提取特征,然后將信息進行聚合從而獲取全局信息。這種提取特征的過程容易因為噪聲的干擾不能準確定位到目標任務的可區(qū)分區(qū)域,反而容易提取到不相關的識別區(qū)域。SENet能夠從通道的角度,通過全面捕獲通道依賴性,自動獲取每個特征通道的重要程度,然后依照這個重要程度提升有用的特征并抑制對當前任務用處不大的特征,從而提高網絡識別性能。
Li等[36]提出的SKNet是一種動態(tài)選擇機制,允許每個神經元根據(jù)輸入信息的多個尺度自適應地調整其感受野大小。SKNet在計算上屬于輕量級,參數(shù)量和計算成本只是輕微增加。SKNet在ImageNet 2012數(shù)據(jù)集上,相比其他常見的模型,如Inception-v4[45]、SENet-101[35]等均有提升,Top-1錯誤率僅為18.40%。
SENet是針對特征圖的通道注意力機制的研究,SKNet則是針對卷積核的注意力機制的研究,著重突出卷積核的重要性。常見的卷積神經網絡中,對于特定任務的特定模型,卷積核大小是確定的,而在SKNet模型中,卷積核的大小可以是不確定的,其允許網絡可以根據(jù)輸入信息的多個尺度自適應地調節(jié)接受域大小,其靈感來自于人的雙眼在看不同尺寸、不同遠近的物體時,視覺皮層神經元接受域大小會根據(jù)外界刺激來進行調節(jié)。
如圖7所示,SKNet由Split、Fuse和Select 3個運算符組成。Split運算符使用不同大小的卷積核(3×3和5×5)對輸入圖像進行卷積,生成具有各種內核大小的多個路徑。Fuse運算符聚合來自多個路徑的信息,類似于SENet模塊[35]的擠壓-激勵處理,兩個特征圖相加后,進行全局平均池化和全連接操作,輸出兩個矩陣a和b,其中矩陣b為冗余矩陣,b=1-a。Select運算符實際上對應于SENet模塊中的Scale運算,將兩個權重矩陣a和b與對應經過Split運算得到的兩個特征圖進行加權操作。圖7僅展現(xiàn)了雙分支的情況,實際應用中可以擴展為多分支。

圖7 SKNet模塊
與Inception網絡[44]中的多尺度不同,SKNet是讓網絡自己選擇合適的尺度。與SENet[35]僅考慮通道之間的權重不同,SKNet不僅考慮通道之間的權重,還考慮分支中卷積的權重,充分利用組卷積和深度帶來的較小理論參數(shù)量和計算量的優(yōu)勢,使得模塊在增加多路與動態(tài)選擇的設計中不會帶來很大的計算開支。總的來說SKNet相當于給網絡融入軟注意力機制,是一種泛化能力更好的網絡結構。雖然Inception網絡的多尺度設計精妙,效果也不錯,但實際上是通過人工設計卷積核的大小進行特征提取。SKNet這種為獲取不同特征信息可以自適應卷積核大小的結構,是卷積神經網絡模型極限的一次重要突破。目前已經有相關研究引入SKNet的思想改進網絡[52,53]。
SKNet是對特征圖進行權重調整的網絡結構,它并不會改變特征圖的大小,因此,它可以嵌入到現(xiàn)有網絡模型中的任意地方來對特征進行提取操作,如SK-ResNeXt50、SK-ResNet50等,進而提升網絡的實驗效果。
盡管ResNet有效地解決了網絡深度加深造成的梯度爆炸和梯度消失的問題,使得特征提取能力更強大,但在ResNet網絡的殘差塊中,最具有特征提取能力的卷積核只有通用的單個3×3卷積核。然而,自然場景下的物體可能以不同的尺寸出現(xiàn)在一個圖像中,物體的基本上下文信息可能占據(jù)比物體本身大得多的區(qū)域,ResNet的單尺度卷積核獲得的單一尺度感知信息不能很好地理解自然場景下的圖像、對象及其周圍環(huán)境,導致網絡不能準確識別目標對象。為解決該問題,有研究通過設計多尺度特征[54-57]提取模型來提升網絡性能。Gao等[37]在ResNet的基礎上,提出Res2Net網絡,通過在單一殘差塊中對殘差連接進行分級,進而可以提取到細粒度層級的多尺度表征,同時增加每一層的感受野大小,以此方式進一步提高網絡模型的分類與識別性能。圖8左圖給出ResNet的瓶頸塊(Bottleneck Block)和Res2Net模塊的結構對比圖。
ResNet網絡中瓶頸塊的結構采用1×1、3×3、1×1三層卷積層結構。Res2Net模塊只是修改了瓶頸塊中的3×3卷積層,在單個殘差塊內構造類似于分層的殘差連接,并引入一個新的超參數(shù)Scale,它將輸入通道數(shù)平均分成多個特征通道,Scale越大表明多尺度提取能力越強。圖8右圖展示了Scale=4時Res2Net模塊示意圖,即將第一層1×1 卷積層的輸出特征分為4組,為減少參數(shù)量并將特征重利用,第一組無卷積操作,隨后的第二、第三組會將卷積后得到的特征圖輸出的同時傳入下一組,第三、第四組每次卷積操作都會接收到前面每一組特征的信息。如此,網絡將得到不同數(shù)量以及不同感受野大小的輸出,如Y2得到3×3的感受野,那么Y3得到5×5的感受野,Y4會得到更大尺寸7×7的感受野,最后將這4個輸出進行融合并經過一個1×1卷積。也就是說,每個3×3卷積核可以接受來自該層前面的所有特征,每次分類特征經過3×3的卷積處理后,其輸出的感受野要比輸入更大。這樣的操作,將使每一組卷積最終的輸出信息更加豐富、更具有多尺度特征。相較于ResNet的模塊單一尺度的特征提取,Res2Net的模塊設計提升整個網絡的多尺度特征提取能力,更適應于自然場景下的圖像分類與識別。
Res2Net的通用性和便利性與其他多尺度模型相比要更強,可以與現(xiàn)有的最新模塊或網絡相整合,例如ResNeXt[58]、SE模塊[35]等。

圖8 ResNet的瓶頸塊(左圖)和Res2Net模塊(右圖)
ResNet網絡的設計初衷很大程度上緩解了網絡的退化問題,使得網絡可以學習更深層次的特征,但其感受野大小是固定且單一的,無法融合不同尺度的特征,也未能充分利用跨通道特征之間的相互作用,ResNeSt[38]的設計彌補了這些缺點。第一,ResNeSt網絡借鑒GoogleNet[32]采用多路徑機制,每個模塊由不同大小的卷積核組成,在網絡層數(shù)足夠深的情況下可以提取到不同尺度特征同時減小計算量。第二,為了進一步提取多樣性的目標特征,ResNeSt網絡借鑒ResNeXt[58]的設計思想,在殘差塊中采用組卷積、多分支的架構。不同組之間形成的不同子空間可以讓網絡學到更豐富的多樣性特征。第三,設計的網絡架構在保證良好的特征多樣性提取能力情況下,讓網絡聚焦于局部信息,避免噪聲干擾,有助于整個網絡實現(xiàn)更精準的圖像識別任務。因此,ResNeSt網絡借鑒SENet[35]和SKNet[36]的思想,將注意力機制的思想引入分組卷積中,不僅建模通道之間的重要程度,建立通道注意力,同時用非線性方法聚合來自多個卷積核的信息,建立特征圖注意力。最終的ResNeSt網絡是基于ResNet[33]進行修改的,在單個網絡內合并特征圖的拆分注意力,將通道維度的注意力機制擴展到特征圖組表示,形成模塊化。
圖9展示了ResNeSt模塊,其中包含特征圖組(Feature-map Group)和拆分注意力(Split Attention)操作。特征圖組中,特征圖被分為多個組,每個組內又進行分組。超參數(shù)K和R分別表示特征圖組的數(shù)量和基數(shù)組內的分組數(shù),基數(shù)組內的每個分組稱為Splits,總的特征圖分組數(shù)可以表示為G=K×R。在基數(shù)組中的每個Split進行1×1和3×3的卷積,得到R個特征圖后進行拆分注意力操作。每個基數(shù)組得到的輸出進行Concat操作,再與Shortcut路徑中1×1卷積配合。多個ResNeSt模塊堆疊最終組成ResNeSt網絡。

圖9 ResNeSt模塊
ResNeSt網絡與現(xiàn)有的ResNet變體相比,不需要增加額外的計算量,且可以作為其他任務的骨架。ResNeSt在ImageNet圖像分類數(shù)據(jù)集上的準確率超越了ResNet[33]、ResNeXt[58]、SENet[35]和EfficientNet[59],是當前ResNet網絡的最強改進版本。
本文在前面章節(jié)中介紹并分析了在卷積神經網絡中圖像分類領域網絡的發(fā)展現(xiàn)狀。以下是在相關參考文獻的實驗部分使用ImageNet數(shù)據(jù)集進行分類得到的Top-1性能對比。表1展示了在ImageNet數(shù)據(jù)集上不同CNN模型的性能對比,僅選取最優(yōu)結果。GFLOPs表示每秒10億次的浮點運算數(shù),Params表示參數(shù)數(shù)量。
從表1可以看出,第一,網絡的深度越深,準確率通常越高,參數(shù)量和計算量也會相應增加。ResNet網絡從50層增加到152層、ResNeXt從50層增加到101層、DenseNet從121層增加到264層、SENet從50層增加到154層、SKNet從50層增加到101層、ResNeSt從50層增加到101層時,網絡性能均有所提升,證明增加網絡的深度是提高分類效果的重要因素,卷積網絡深度越深,能獲取的信息越多,得到的特征也越豐富,準確率就越高。但此時不可避免的是網絡越深,神經元的數(shù)量也就越多,必然導致參數(shù)量和運算量的增加。第二,當網絡深度到達一定程度時,網絡會出現(xiàn)退化的現(xiàn)象,準確率下降,但增大輸入圖像的大小進行訓練,在一定程度上可以緩解網絡的退化,網絡能識別到的圖像信息越多。ResNet從101層增加到152層時,輸入224×224的圖像進行訓練時準確率出現(xiàn)下降。盡管ResNet能夠訓練很深的網絡,但也存在一定瓶頸,在網絡深度更深的情況下,網絡無法更好收斂。當輸入圖像大于224×224時,ResNet網絡從101層增加到152層時準確率反而上升,說明增大輸入圖像的大小可以改善網絡的分類性能。第三,在更深的網絡模型中,DenseNet具有較強的競爭力,當網絡深度增加到264層時,分類準確率仍然有所提升。DenseNet脫離加深網絡層數(shù)和加寬網絡結構來提升網絡性能的定式思維,從特征的角度考慮,通過特征重用、旁路(Bypass)設置以及密集連接的特性很大程度上緩解了過擬合問題的產生,能夠訓練比ResNet更深的網絡且保證準確率不受深度影響而下降。第四,多尺度和多分支的網絡相較于同深度的其他網絡獲得的準確率更高,如Inception網絡、SKNet網絡和ResNeSt網絡,這類網絡能夠對不同粒度的特征進行采樣,獲取更加強大的特征表達,從而提高準確率。第五,在神經網絡中,注意力模塊通常是一個額外的神經網絡,能夠給輸入的不同部分分配不同的權重。引入SE、SK、CBAM等注意力模塊的網絡,相較于基線網絡的準確率高,這類網絡模型能夠忽略無關信息,不斷聚焦到最具辨別性的區(qū)域,進一步提高網絡的分類準確率,且增加的參數(shù)量很小。第六,通過將ResNeSt與其他50層和101層配置、類似復雜度的ResNet變體作比較,ResNeSt的Top-1準確率達到最高,且參數(shù)量沒有大幅度增加,性能得到顯著提升,網絡的泛化能力極強。說明在卷積神經網絡中,分組卷積、多尺度方法、注意力機制等思想的共同引入可以從卷積、通道、特征圖等方面全面理解圖像信息,進一步提升網絡的分類效果。

表1 ImageNet數(shù)據(jù)集上各類網絡模型性能對比

續(xù)表1
本文介紹了卷積神經網絡在圖像分類中的優(yōu)點以及發(fā)展趨勢,分析了卷積神經網絡在圖像分類中的經典模型、近年來的改進方法及其在ImageNet公共數(shù)據(jù)集上的性能表現(xiàn)。盡管卷積神經網絡在圖像分類領域取得豐碩的成果,但在實際應用中仍存在一些具有挑戰(zhàn)性的研究問題:
(1)在深度學習中進行的圖像分類研究難免需要針對特定任務數(shù)量龐大的圖像數(shù)據(jù)集,但這些數(shù)據(jù)集不易獲取和采集,導致目前使用監(jiān)督學習方法的圖像分類研究進展緩慢,大部分提出的創(chuàng)新性網絡均在僅有的幾個大型公共數(shù)據(jù)集上進行評估,針對特定分類任務的研究十分零散且數(shù)據(jù)集樣本較少。對于一個新的應用領域,在數(shù)據(jù)集較少的情況下,有相關的研究[61,62]采用遷移學習方法處理小樣本數(shù)據(jù)集進行圖像分類,該方法使用在ImageNet大型數(shù)據(jù)集上訓練得到的模型和參數(shù),通過遷移訓練方法進一步優(yōu)化使用小樣本目標數(shù)據(jù)集訓練的模型,從而有效地利用小型數(shù)據(jù)并保證網絡具有良好的魯棒性和泛化能力。因此遷移學習方法應用在特定的圖像分類任務中可以取得較好的分類效果。
(2)自然場景下的圖像分類具有巨大的挑戰(zhàn)性,這類數(shù)據(jù)集的圖像往往含有較大的噪聲,背景復雜,導致網絡無法準確分辨出目標物體的類別,使得分類準確率較低。此外細粒度的圖像分類由于子類別間細微的類間差異以及較大的類內差異,在某些類別上甚至連專家都難以區(qū)分,較之普通的圖像分類任務,具有較大難度。自然場景下的圖像分類任務無疑在現(xiàn)實世界中更具有意義,且此類數(shù)據(jù)集的收集和處理較容易,有利于切實推進現(xiàn)實的生產工作。細粒度圖像分類更是對卷積神經網絡挖掘細粒度特征發(fā)起的一大挑戰(zhàn),利于圖像分類領域的研究發(fā)展。
(3)目前有相當一部分圖像分類網絡的深度較深、模型結構設計復雜甚至存在冗余結構,其參數(shù)量增大導致計算成本增加。DenseNet網絡雖然從特征的角度考慮,通過特征重用加強特征的傳遞,但是網絡的連接十分冗余,對其進行剪枝將成為未來的研究方向。雖然Res2Net的計算復雜度與等效的ResNet相似,但它的運行速度仍然比對應的ResNet慢,不能高效地處理圖像識別任務。ResNeSt網絡雖然集合多種優(yōu)秀模型的優(yōu)點,在ImageNet數(shù)據(jù)集上的實驗效果也很優(yōu)秀,但是網絡模型結構太過臃腫,并且訓練模型需要大量的調參技巧,使用多種模型堆疊設計的痕跡較重。另外在當前移動設備普及的情況下,這種復雜度高、深度太深的網絡并不能在移動端很好地應用。因此,未來的研究熱點必將趨向輕量級、高效的網絡發(fā)展。
(4)深度學習方法在圖像分類中的可解釋性差,不同于傳統(tǒng)圖像分類方法有嚴謹?shù)臄?shù)學理論依據(jù)作為支撐,目前使用深度學習的方法更偏向于將網絡進行可視化解釋網絡觀察到所分類圖像的某個位置。如何從更科學的角度詮釋深度學習方法將是未來一個十分重要的研究課題。
(5)雖然注意力機制模塊可以一定程度上提升分類模型的性能,但SENet實際上只是從通道的角度關注特征圖,沒有從空間、非局部、全局等角度關注特征圖,未來的研究工作可以將這些角度很好地整合在一起,形成一種關注能力更強的注意力機制。SKNet使用時涉及到分組數(shù)量、卷積核大小的選擇問題,在實際使用中仍需要經過大量的實驗調整參數(shù)才能找到合適的參數(shù)設置,不能真正做到脫離人工設定分組數(shù)量和卷積核大小來適用于不同尺度的目標對象,使網絡達到最優(yōu)。此外,全局池化的使用容易混淆多個物體的尺度信息,使分類精度降低。注意力機制模塊在網絡中的放置位置也會影響到神經網絡的整體效果,同樣需要經過大量實驗找到適合的添加位置才能達到最佳的實驗效果,靈活性較低。因此,如何設計出能夠真正自動適應神經網絡訓練的注意力機制是一個十分有趣的研究方向。
總的來說,相對于傳統(tǒng)圖像分類方法,基于深度學習的卷積神經網絡在特征表示上具有極大的優(yōu)越性,且應用廣泛,性能優(yōu)異。隨著研究的深入、數(shù)據(jù)集數(shù)量的增加和實際應用場景的增多,卷積神經網絡的模型必然更復雜,更具有挑戰(zhàn)性。因此,在未來的深度學習研究中,使用卷積神經網絡進行改進和創(chuàng)新依舊是最終實現(xiàn)人工智能的最佳途徑和方法。