摘 要:在深度學(xué)習(xí)中,隨著神經(jīng)網(wǎng)絡(luò)層數(shù)的加深,訓(xùn)練網(wǎng)絡(luò)變得越來(lái)越困難,現(xiàn)有的淺層的網(wǎng)絡(luò)無(wú)法明顯提升網(wǎng)絡(luò)的識(shí)別效果。針對(duì)在原有網(wǎng)絡(luò)的情況下提升網(wǎng)絡(luò)識(shí)別效果,減少參數(shù)的問(wèn)題,本文提出一種改進(jìn)的DenseNet網(wǎng)絡(luò)模型,借鑒Inception V3的思想,利用非對(duì)稱(chēng)卷積將DenseNet網(wǎng)絡(luò)中Dense Block層所包含的3×3卷積分解成3×1和1×3的兩個(gè)卷積,簡(jiǎn)化網(wǎng)絡(luò)結(jié)構(gòu)模型。之后再對(duì)改進(jìn)前與改進(jìn)后的網(wǎng)絡(luò)模型在數(shù)據(jù)集上進(jìn)行訓(xùn)練,實(shí)驗(yàn)結(jié)果表明,與經(jīng)典的DenseNet網(wǎng)絡(luò)模型相比,改進(jìn)后的網(wǎng)絡(luò)模型可以提高圖像識(shí)別的準(zhǔn)確性,降低參數(shù),有效地縮短運(yùn)行時(shí)間。
關(guān)鍵詞:DenseNet網(wǎng)絡(luò);圖像識(shí)別;深度學(xué)習(xí);卷積神經(jīng)網(wǎng)絡(luò)
中圖分類(lèi)號(hào):TP391.4
文獻(xiàn)標(biāo)識(shí)碼: A
圖像識(shí)別現(xiàn)今廣泛應(yīng)用于工業(yè)、醫(yī)學(xué)、地理學(xué)以及人工智能,其中圖像識(shí)別是人工智能的一個(gè)重要應(yīng)用領(lǐng)域。
1989年,LE[1]首次提出卷積神經(jīng)網(wǎng)絡(luò),在之后的幾十年里卷積神經(jīng)網(wǎng)絡(luò)由于技術(shù)限制等因素使其發(fā)展速度較為緩慢。直到2012年提出AlexNet[2]網(wǎng)絡(luò),卷積神經(jīng)網(wǎng)絡(luò)得到了急速發(fā)展,在計(jì)算機(jī)視覺(jué)、計(jì)算機(jī)圖形學(xué)、自然語(yǔ)言處理等領(lǐng)域上取得了較好的結(jié)果,但AlexNet網(wǎng)絡(luò)相比之前其他的卷積網(wǎng)絡(luò)最顯著的特點(diǎn)是參數(shù)規(guī)模變大,網(wǎng)絡(luò)層數(shù)更深。2014年,Google提出了GooLeNet[3]網(wǎng)絡(luò),其主要?jiǎng)?chuàng)新Inception機(jī)制,即對(duì)圖像進(jìn)行多尺度處理,主要解決了網(wǎng)絡(luò)參數(shù)增加之后出現(xiàn)過(guò)擬合,以及計(jì)算量的增加問(wèn)題。同年牛津大學(xué)視覺(jué)組(Visual Geometry Group)提出了VGG[4]網(wǎng)絡(luò),相對(duì)于AlexNet網(wǎng)絡(luò),VGG網(wǎng)絡(luò)去掉了LRN層,同時(shí)采取小尺寸的卷積核來(lái)模擬更大尺寸的卷積核,從而減少了參數(shù)量。2015年,HE等提出了殘差網(wǎng)絡(luò)(ResNet)[5],通過(guò)使用Residual Unit訓(xùn)練出152層深的神經(jīng)網(wǎng)絡(luò),該網(wǎng)絡(luò)一經(jīng)出世,便在ImageNet中獲得圖像分類(lèi)、檢測(cè)和定位的冠軍,其中在圖像分類(lèi)的數(shù)據(jù)集上達(dá)到了3.57%的錯(cuò)誤率,同時(shí)參數(shù)量比VGG網(wǎng)絡(luò)低。2017年,GAO等提出了DenseNet[6],該網(wǎng)絡(luò)為全新的結(jié)構(gòu),網(wǎng)絡(luò)結(jié)構(gòu)不復(fù)雜,卻非常有效,在CIFAR指標(biāo)上優(yōu)于殘差網(wǎng)絡(luò)(ResNet)??梢哉f(shuō)DenseNet吸收了ResNet最精華的部分,并做了更多創(chuàng)新的工作,使得網(wǎng)絡(luò)性能進(jìn)一步提升。
卷積神經(jīng)網(wǎng)絡(luò)在圖像識(shí)別中的應(yīng)用仍然存在一些不足:上述網(wǎng)絡(luò)中卷積層包含參數(shù)過(guò)多會(huì)導(dǎo)致計(jì)算量過(guò)大;隨著網(wǎng)絡(luò)層數(shù)的加深,其網(wǎng)絡(luò)結(jié)構(gòu)變得更加復(fù)雜,模型結(jié)構(gòu)有待優(yōu)化。本文針對(duì)存在的兩個(gè)問(wèn)題展開(kāi)研究,以期解決參數(shù)過(guò)大,簡(jiǎn)化DenseNet網(wǎng)絡(luò)結(jié)構(gòu)模型。
1"DenseNet網(wǎng)絡(luò)
DenseNet 是一種具有密集連接的卷積神經(jīng)網(wǎng)絡(luò),該架構(gòu)含有卷積層、池化層,增長(zhǎng)率為4的稠密連接模塊,其中增長(zhǎng)率是為了保持通道特征維度適中,以防過(guò)大。如圖1所示,DenseNet包含多個(gè)Dense Block模塊,其中Dense Block由BN + ReLU + Conv(1×1) + BN + ReLU + Conv(3×3)組成,Dense Block之間的層稱(chēng)為transition layers,由BN + Conv(1×1) + Average Pooling(2×2)組成。由于輸出的feature map維度是一個(gè)很大的數(shù)目,所以在transition layer模塊中加入了1×1的卷積做降維,從而提升計(jì)算效率。
在DenseNet網(wǎng)絡(luò)中,任意兩層之間都有著密不可分的聯(lián)系,即網(wǎng)絡(luò)中任意一個(gè)下一層的輸入都是前面所有層輸出結(jié)果的疊加,而該層所得到的結(jié)果也將
和之前的輸出作為輸入傳輸給下一層,這樣依次向下傳輸。將之前所有層的特征輸出作為當(dāng)前層的輸入,即x0,x1,…,xl-1為第1層到第 l-1 層的特征圖,通過(guò)級(jí)聯(lián)的連接方式經(jīng)過(guò)第 l 層,最后用復(fù)合函數(shù)Hl(*)得到輸出xl, 即
xl=Hl([x0,x1,…,xl-1]) ,(1)
Hl(*)定義為依次經(jīng)過(guò)3×3的卷積(Conv2d)、池化(pool)、批量歸一化(BN)以及非線(xiàn)性激活函數(shù)(Relu)四種運(yùn)算的復(fù)合函數(shù)。
這種密集連接不會(huì)帶來(lái)冗余,每層網(wǎng)絡(luò)計(jì)算量的減少以及特征的重復(fù)利用使得DenseNet 比其他網(wǎng)絡(luò)效率更高。該方式能進(jìn)一步提高模型的容量和參數(shù)利用率,在準(zhǔn)確率上也比傳統(tǒng)的殘差網(wǎng)絡(luò)(ResNet)要高。
一般的L層卷積神經(jīng)網(wǎng)絡(luò)中,總共有L層連接,而DenseNet有L(L+1)2層連接(DenseNet采用級(jí)聯(lián)的連接方式)。DenseNet網(wǎng)絡(luò)結(jié)構(gòu)沒(méi)有按照以往用加深網(wǎng)絡(luò)或者加寬網(wǎng)絡(luò)的方式入手,而是對(duì)特征序列進(jìn)行調(diào)整;另一方面,該網(wǎng)絡(luò)每一層都有非常淺的特征圖或非常少的卷積核,因此簡(jiǎn)化了網(wǎng)絡(luò)模型參數(shù),從而在某些領(lǐng)域中達(dá)到了較好的效果。總體來(lái)說(shuō)DenseNet有如下優(yōu)點(diǎn):
(1)一定程度上解決梯度消失;
(2)加強(qiáng)特征傳播;
(3)更有效地利用特征;
(4)減少參數(shù)數(shù)量。
2"Inception V3網(wǎng)絡(luò)
Inception V3網(wǎng)絡(luò)引入了Factorization into small convolutions的思想,思想的主旨就是把一個(gè)較大的二維卷積拆分成兩個(gè)較小的一維卷積,一方面節(jié)約了大量參數(shù)加速運(yùn)算,同時(shí)減輕了過(guò)擬合,除此之外該網(wǎng)絡(luò)還增加了一層非線(xiàn)性擴(kuò)展模型表達(dá)能力。例如將7×7的卷積拆成1×7和7×1兩個(gè)卷積的并聯(lián)或者串聯(lián),比拆成3個(gè)3×3的卷積更節(jié)
約參數(shù),卷積效果更好,而且可以處理更細(xì)、更全面的特征空間,有效地提高了特征多樣性。
InceptionV3還優(yōu)化了Inception Module的結(jié)構(gòu),現(xiàn)有的Inception Module有35×35、17×17和8×8三種結(jié)構(gòu),像這3種結(jié)構(gòu)的Inception Module一般都只能放在卷積層之后,該卷積層為普通的卷積層。Inception V3網(wǎng)絡(luò)的核心組件采用了非對(duì)稱(chēng)卷積(N×N分解成N×1和1×N的疊加),該方法能減少很多計(jì)算量,如圖2所示。
圖2中假設(shè)最左側(cè)為5×5的卷積,可表示為2個(gè)3×3卷積,利用非對(duì)稱(chēng)卷積的思想又可以表示為首先執(zhí)行一個(gè)3×1的卷積再執(zhí)行一個(gè)1×3的卷積,這種方法在成本上要比單個(gè)3×3的卷積降低33%。
3"改進(jìn)的DenseNet網(wǎng)絡(luò)
受到Inception V3網(wǎng)絡(luò)結(jié)構(gòu)的啟發(fā),結(jié)合非對(duì)稱(chēng)卷積的特點(diǎn),本文提出一種改進(jìn)的DenseNet網(wǎng)絡(luò),其網(wǎng)絡(luò)結(jié)構(gòu)如表1所示。網(wǎng)絡(luò)首先在輸入圖像上做一次3×3步長(zhǎng)為2的卷積,然后做3×3步長(zhǎng)為2的最大池化操作,接著進(jìn)入到第一個(gè)Dense Block,一共用到3個(gè) Dense Block。在Dense Block中,該模塊的主要作用在于一直反復(fù)不停地做密集連接形式的運(yùn)算,每一層都將利用密集連接運(yùn)算使得上一層的特征圖與本層所產(chǎn)生的特征圖合并,最終Dense Block的最后一層將會(huì)得到模塊中所有特征圖的并集。
第一個(gè)Dense Block中包含了12個(gè)1×3、3×1的卷積操作,第12個(gè)子結(jié)構(gòu)的輸入是前面11層的輸出結(jié)果,每層輸出的通道數(shù)是12(growth rate),其中為了避免網(wǎng)絡(luò)增長(zhǎng)過(guò)于迅速,并優(yōu)化參數(shù)效率,擬定增長(zhǎng)率為一個(gè)較小的整數(shù),本文增長(zhǎng)率設(shè)置為12。原始DenseNet網(wǎng)絡(luò)中,在每個(gè)3×3卷積層之后都會(huì)接上一個(gè)1×1卷積層,以減少輸入到卷積層中特征圖的數(shù)量,提高網(wǎng)絡(luò)運(yùn)行速率,隨之計(jì)算效率也相應(yīng)提高,經(jīng)對(duì)比發(fā)現(xiàn)這個(gè)設(shè)計(jì)對(duì)DenseNet網(wǎng)絡(luò)非常有效,所以將一維卷積層保留到本文的網(wǎng)絡(luò)中。
每?jī)蓚€(gè)Dense Block中間都包含了Transition Layer。在Transition Layer中,參數(shù)reduction(取值為0~1)代表輸出縮小為原來(lái)的多少倍,本文reduction設(shè)置為0.5。Dense Block模塊緊接著經(jīng)過(guò)之后的Transition Layer,即一個(gè) 1×1 卷積、2×2 的平均池化以及批量歸一化(BN),下一個(gè)的模塊結(jié)構(gòu)和之前的相類(lèi)似,唯一不一樣在于輸出的特征圖尺寸越來(lái)越小,網(wǎng)絡(luò)的深度在逐漸加深。網(wǎng)絡(luò)的最后一層為分離10類(lèi)的 Softmax 層,采用全連接結(jié)構(gòu)。
網(wǎng)絡(luò)結(jié)構(gòu)代碼由Keras框架實(shí)現(xiàn)。代碼實(shí)現(xiàn)用1×3和3×1的卷積來(lái)代替所有Dense Block中3×3的卷積,達(dá)到節(jié)約參數(shù)加速運(yùn)算,以及減輕過(guò)擬合的目的。
4"實(shí)驗(yàn)結(jié)果與分析
為驗(yàn)證改進(jìn)后DenseNet網(wǎng)絡(luò)的性能,本文在CIFAR-10數(shù)據(jù)集上測(cè)試識(shí)別率和損失函數(shù),并與經(jīng)典的DenseNet網(wǎng)絡(luò)進(jìn)行比較分析。
4.1"數(shù)據(jù)集
本次實(shí)驗(yàn)的數(shù)據(jù)集為CIFAR-10數(shù)據(jù)集,該數(shù)據(jù)集包含10個(gè)類(lèi)(飛機(jī),汽車(chē),鳥(niǎo),貓,鹿,狗,青蛙,馬,船,卡車(chē))共60 000張32×32的彩色圖像,每個(gè)類(lèi)別分別有6 000張不同圖像。本文將50 000張圖片作為訓(xùn)練圖像,10 000張作為測(cè)試圖像來(lái)進(jìn)行實(shí)驗(yàn)。
4.2"實(shí)驗(yàn)設(shè)置
實(shí)驗(yàn)基于Keras框架。訓(xùn)練使用計(jì)算機(jī):Intel Core i7處理器,內(nèi)存為8 GB。模型的初始學(xué)習(xí)率設(shè)為 0.000 1,批量的大小為32(batch size),采用的優(yōu)化器是Adam算法,迭代的次數(shù)為40次(epoch),其中,Adam方法能夠在訓(xùn)練的過(guò)程中自適應(yīng)地調(diào)整各個(gè)參數(shù)的學(xué)習(xí)率,非常適合于高維度和大數(shù)據(jù)集的非凸優(yōu)化[10]。
4.3"實(shí)驗(yàn)結(jié)果及分析
實(shí)驗(yàn)中使用3個(gè)Dense Block,每個(gè)Dense Block內(nèi)部有兩個(gè)卷積層,其卷積層分別為1×3和3×1的卷積層,同時(shí)因?yàn)镈ense Block后接1×1的卷積層,參數(shù)也得到精簡(jiǎn)。實(shí)驗(yàn)結(jié)果見(jiàn)表2。
識(shí)別方法""識(shí)別率/%參數(shù)量損失函數(shù)
經(jīng)典DenseNet ̄4080.621 003 5460.84
改進(jìn)DenseNet ̄4086.16433 3060.71
從表2可知,在實(shí)驗(yàn)數(shù)據(jù)不變的條件下,較為經(jīng)典的DenseNet ̄40網(wǎng)絡(luò)模型的最高識(shí)別率只有8062% ,改進(jìn)后的DenseNet ̄40網(wǎng)絡(luò)模型的最高
識(shí)別率為86.16%。實(shí)驗(yàn)結(jié)果表明改進(jìn)后的DenseNet ̄40網(wǎng)絡(luò)模型識(shí)別率高于經(jīng)典的DenseNet ̄40網(wǎng)絡(luò)模型,而且網(wǎng)絡(luò)收斂速度也比經(jīng)典的快。另一方面,參數(shù)量從原來(lái)的1 003 546降低到現(xiàn)在的433 306,極大地縮短了程序運(yùn)行時(shí)間。
本次實(shí)驗(yàn)結(jié)果在總卷積層數(shù)保持不變的情況下,通過(guò)對(duì)Dense Block內(nèi)部的結(jié)構(gòu)進(jìn)行調(diào)整,觀(guān)測(cè)識(shí)別率變化程度。
經(jīng)典的DenseNet ̄40網(wǎng)絡(luò)模型與改進(jìn)后的DenseNet ̄40網(wǎng)絡(luò)模型對(duì)訓(xùn)練集與測(cè)試集的識(shí)別精度如圖3所示。由圖可知:經(jīng)過(guò)40次網(wǎng)絡(luò)迭代,改進(jìn)后的DenseNet ̄40網(wǎng)絡(luò)模型與經(jīng)典的DenseNet ̄40網(wǎng)絡(luò)模型都逐漸趨于收斂、平穩(wěn),改進(jìn)后的網(wǎng)絡(luò)模型較經(jīng)典的收斂更加迅速;當(dāng)?shù)?0次時(shí),本文提出的網(wǎng)絡(luò)模型識(shí)別準(zhǔn)確率較原網(wǎng)絡(luò)高出9.60%;體現(xiàn)改進(jìn)的DenseNet ̄40網(wǎng)絡(luò)模型在收斂速度及識(shí)別率方面的優(yōu)越性。
經(jīng)典的DenseNet ̄40網(wǎng)絡(luò)模型與改進(jìn)后的DenseNet ̄40網(wǎng)絡(luò)模型的訓(xùn)練與測(cè)試過(guò)程中損失函數(shù)曲線(xiàn)如圖4所示。可以看出,隨著網(wǎng)絡(luò)迭代次數(shù)的增加,損失函數(shù)值也趨于平穩(wěn),當(dāng)?shù)?0次時(shí),改進(jìn)后的DenseNet ̄40網(wǎng)絡(luò)模型損失函數(shù)值較經(jīng)典的DenseNet ̄40網(wǎng)絡(luò)模型損失函數(shù)值降低了022,與預(yù)測(cè)值更加接近,網(wǎng)絡(luò)模型擬合度也相應(yīng)的提高。
5"結(jié)論
本文利用Inception V3的核心思想之一(非對(duì)稱(chēng)卷積)對(duì)DenseNet網(wǎng)絡(luò)模型中Dense Block模塊進(jìn)行重新構(gòu)建優(yōu)化,對(duì)改進(jìn)后的DenseNet網(wǎng)絡(luò)模型進(jìn)行訓(xùn)練與測(cè)試,經(jīng)實(shí)驗(yàn)結(jié)果分析,改進(jìn)的
DenseNet網(wǎng)絡(luò)結(jié)構(gòu)效果滿(mǎn)足實(shí)驗(yàn)之前預(yù)期目標(biāo):其減少了隨網(wǎng)絡(luò)層數(shù)的增加而出現(xiàn)參數(shù)過(guò)多的問(wèn)題,即在迭代次數(shù)不斷增加的條件下,收斂速度、識(shí)別率都有明顯的提高,結(jié)構(gòu)得到了優(yōu)化,網(wǎng)絡(luò)模型的損失函數(shù)值也在不斷降低,有較好的泛化能力。但是本次實(shí)驗(yàn)也有些許缺點(diǎn),在網(wǎng)絡(luò)設(shè)置的深度上并沒(méi)有達(dá)到很深的層次,下一步將把該改進(jìn)后的網(wǎng)絡(luò)應(yīng)運(yùn)到更深層的結(jié)構(gòu)上,而且對(duì)不同的數(shù)據(jù)集進(jìn)行驗(yàn)證,觀(guān)察實(shí)驗(yàn)效果。
參考文獻(xiàn):
[1]LE C,BOSER B,DENKER J S,et al. Backpropagation applied to handwritten zip code recognition [J]. Neural Computation,1989,1(4):541-551.
[2]ALEX K,ILYA S,GEOFFREY E H. ImageNet Classification with Deep Convolutional Neural Networks[J]. Communications of the ACM, 2017,6(6):84-90.
[3]SZEGEDY C,LIU W,YANG Q J,et al. Going Deeper with Convolutions[C]//Conference on Computer Vision and Pattern Recognition,USA:IEEE, 2014:7-12.
[4]IMONYAN K,ZISSERMAN A. Very Deep Convolutional Networks for Large ̄Scale Image Recognition[J].Computer Science,2014,75:23-36.
[5]HE K M,ZHANG X G,REN S Q. Deep Residual Learning for Image Recognition[C]//Computer Vision and Pattern Recognition,USA:IEEE, 2016:770-778.
[6]GAO H,ZHANG L. Densely Connected Convolutional Networks[C]// Computer Vision and Pattern Recognition,USA:IEEE, "2017:1-28.
[7]張藝瑋,趙一嘉,王馨悅,等. 結(jié)合密集神經(jīng)網(wǎng)絡(luò)與長(zhǎng)短時(shí)記憶模型的中文識(shí)別[J]. 計(jì)算機(jī)系統(tǒng)應(yīng)用,2018,27(11):35-41.
[8]XU H,SU F. A robust hierarchical detection method for scene text based on convolutional neural networks. Multimedia and Expo[C]//International Conference on Electrical Engineering,USA:IEEE, 2015:1-6.
[9]常亮,鄧小明,周明全. 圖像理解中的卷積神經(jīng)網(wǎng)絡(luò)[J].自動(dòng)化學(xué)報(bào),2016,42(9):1300-1312.
[10]HE K,ZHANG X,REN S,et al. Identity Mappings in Deep Residual Networks[J].European Conference on Computer Vision,Springer,2016,32(6):630-645.
[11]彭淑敏, 王軍寧. 基于神經(jīng)網(wǎng)絡(luò)的圖像識(shí)別方法[J].電子科技雜志, 2005,32(1):39-42.
(責(zé)任編輯:周曉南)
Research on Image Recognition Method Based on DenseNet
GAO Jianling*,WANG Junsheng,WANG Xu
(College of Big Data and Information Engineering, Guizhou University,Guiyang 550025, China)
Abstract:
With the deepening of the layers of neural network in deep learning, the training network becomes more and more difficult, and the existing shallower network can not significantly improve the recognition effect of the network. In order to improve the network recognition effect and reduce the parameters in the case of the original network, an improved DenseNet network model was proposed. Based on the idea of Inception V 3, the 3×3 convolution contained in Dense Block layer in DenseNet network was decomposed into 3×1 and 1×3 convolutions by using asymmetric convolution, which simplifies the network structure model.The network was trained before and after the improvement on the dataset. The experimental results show that compared with the classical enseNet network model, the improved network model can improve the accuracy of image recognition, reduce the parameters and shorten the running time effectively.
Key words:
DenseNet network; image recognition; deep learning; convolutional neural network