高建瓴 王竣生 王許
摘 要:在深度學(xué)習(xí)中,隨著神經(jīng)網(wǎng)絡(luò)層數(shù)的加深,訓(xùn)練網(wǎng)絡(luò)變得越來越困難,現(xiàn)有的淺層的網(wǎng)絡(luò)無法明顯提升網(wǎng)絡(luò)的識別效果。針對在原有網(wǎng)絡(luò)的情況下提升網(wǎng)絡(luò)識別效果,減少參數(shù)的問題,本文提出一種改進的DenseNet網(wǎng)絡(luò)模型,借鑒Inception V3的思想,利用非對稱卷積將DenseNet網(wǎng)絡(luò)中Dense Block層所包含的3×3卷積分解成3×1和1×3的兩個卷積,簡化網(wǎng)絡(luò)結(jié)構(gòu)模型。之后再對改進前與改進后的網(wǎng)絡(luò)模型在數(shù)據(jù)集上進行訓(xùn)練,實驗結(jié)果表明,與經(jīng)典的DenseNet網(wǎng)絡(luò)模型相比,改進后的網(wǎng)絡(luò)模型可以提高圖像識別的準(zhǔn)確性,降低參數(shù),有效地縮短運行時間。
關(guān)鍵詞:DenseNet網(wǎng)絡(luò);圖像識別;深度學(xué)習(xí);卷積神經(jīng)網(wǎng)絡(luò)
中圖分類號:TP391.4
文獻標(biāo)識碼: A
圖像識別現(xiàn)今廣泛應(yīng)用于工業(yè)、醫(yī)學(xué)、地理學(xué)以及人工智能,其中圖像識別是人工智能的一個重要應(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ā)展,在計算機視覺、計算機圖形學(xué)、自然語言處理等領(lǐng)域上取得了較好的結(jié)果,但AlexNet網(wǎng)絡(luò)相比之前其他的卷積網(wǎng)絡(luò)最顯著的特點是參數(shù)規(guī)模變大,網(wǎng)絡(luò)層數(shù)更深。2014年,Google提出了GooLeNet[3]網(wǎng)絡(luò),其主要創(chuàng)新Inception機制,即對圖像進行多尺度處理,主要解決了網(wǎng)絡(luò)參數(shù)增加之后出現(xiàn)過擬合,以及計算量的增加問題。同年牛津大學(xué)視覺組(Visual Geometry Group)提出了VGG[4]網(wǎng)絡(luò),相對于AlexNet網(wǎng)絡(luò),VGG網(wǎng)絡(luò)去掉了LRN層,同時采取小尺寸的卷積核來模擬更大尺寸的卷積核,從而減少了參數(shù)量。2015年,HE等提出了殘差網(wǎng)絡(luò)(ResNet)[5],通過使用Residual Unit訓(xùn)練出152層深的神經(jīng)網(wǎng)絡(luò),該網(wǎng)絡(luò)一經(jīng)出世,便在ImageNet中獲得圖像分類、檢測和定位的冠軍,其中在圖像分類的數(shù)據(jù)集上達到了3.57%的錯誤率,同時參數(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)??梢哉fDenseNet吸收了ResNet最精華的部分,并做了更多創(chuàng)新的工作,使得網(wǎng)絡(luò)性能進一步提升。
卷積神經(jīng)網(wǎng)絡(luò)在圖像識別中的應(yīng)用仍然存在一些不足:上述網(wǎng)絡(luò)中卷積層包含參數(shù)過多會導(dǎo)致計算量過大;隨著網(wǎng)絡(luò)層數(shù)的加深,其網(wǎng)絡(luò)結(jié)構(gòu)變得更加復(fù)雜,模型結(jié)構(gòu)有待優(yōu)化。本文針對存在的兩個問題展開研究,以期解決參數(shù)過大,簡化DenseNet網(wǎng)絡(luò)結(jié)構(gòu)模型。
1?DenseNet網(wǎng)絡(luò)
DenseNet 是一種具有密集連接的卷積神經(jīng)網(wǎng)絡(luò),該架構(gòu)含有卷積層、池化層,增長率為4的稠密連接模塊,其中增長率是為了保持通道特征維度適中,以防過大。如圖1所示,DenseNet包含多個Dense Block模塊,其中Dense Block由BN + ReLU + Conv(1×1) + BN + ReLU + Conv(3×3)組成,Dense Block之間的層稱為transition layers,由BN + Conv(1×1) + Average Pooling(2×2)組成。由于輸出的feature map維度是一個很大的數(shù)目,所以在transition layer模塊中加入了1×1的卷積做降維,從而提升計算效率。
在DenseNet網(wǎng)絡(luò)中,任意兩層之間都有著密不可分的聯(lián)系,即網(wǎng)絡(luò)中任意一個下一層的輸入都是前面所有層輸出結(jié)果的疊加,而該層所得到的結(jié)果也將
和之前的輸出作為輸入傳輸給下一層,這樣依次向下傳輸。將之前所有層的特征輸出作為當(dāng)前層的輸入,即x0,x1,…,xl-1為第1層到第 l-1 層的特征圖,通過級聯(lián)的連接方式經(jīng)過第 l 層,最后用復(fù)合函數(shù)Hl(*)得到輸出xl, 即
xl=Hl([x0,x1,…,xl-1]) ,(1)
Hl(*)定義為依次經(jīng)過3×3的卷積(Conv2d)、池化(pool)、批量歸一化(BN)以及非線性激活函數(shù)(Relu)四種運算的復(fù)合函數(shù)。
這種密集連接不會帶來冗余,每層網(wǎng)絡(luò)計算量的減少以及特征的重復(fù)利用使得DenseNet 比其他網(wǎng)絡(luò)效率更高。該方式能進一步提高模型的容量和參數(shù)利用率,在準(zhǔn)確率上也比傳統(tǒng)的殘差網(wǎng)絡(luò)(ResNet)要高。
一般的L層卷積神經(jīng)網(wǎng)絡(luò)中,總共有L層連接,而DenseNet有L(L+1)2層連接(DenseNet采用級聯(lián)的連接方式)。DenseNet網(wǎng)絡(luò)結(jié)構(gòu)沒有按照以往用加深網(wǎng)絡(luò)或者加寬網(wǎng)絡(luò)的方式入手,而是對特征序列進行調(diào)整;另一方面,該網(wǎng)絡(luò)每一層都有非常淺的特征圖或非常少的卷積核,因此簡化了網(wǎng)絡(luò)模型參數(shù),從而在某些領(lǐng)域中達到了較好的效果??傮w來說DenseNet有如下優(yōu)點:
(1)一定程度上解決梯度消失;
(2)加強特征傳播;
(3)更有效地利用特征;
(4)減少參數(shù)數(shù)量。
2?Inception V3網(wǎng)絡(luò)
Inception V3網(wǎng)絡(luò)引入了Factorization into small convolutions的思想,思想的主旨就是把一個較大的二維卷積拆分成兩個較小的一維卷積,一方面節(jié)約了大量參數(shù)加速運算,同時減輕了過擬合,除此之外該網(wǎng)絡(luò)還增加了一層非線性擴展模型表達能力。例如將7×7的卷積拆成1×7和7×1兩個卷積的并聯(lián)或者串聯(lián),比拆成3個3×3的卷積更節(jié)
約參數(shù),卷積效果更好,而且可以處理更細、更全面的特征空間,有效地提高了特征多樣性。
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ò)的核心組件采用了非對稱卷積(N×N分解成N×1和1×N的疊加),該方法能減少很多計算量,如圖2所示。
圖2中假設(shè)最左側(cè)為5×5的卷積,可表示為2個3×3卷積,利用非對稱卷積的思想又可以表示為首先執(zhí)行一個3×1的卷積再執(zhí)行一個1×3的卷積,這種方法在成本上要比單個3×3的卷積降低33%。
3?改進的DenseNet網(wǎng)絡(luò)
受到Inception V3網(wǎng)絡(luò)結(jié)構(gòu)的啟發(fā),結(jié)合非對稱卷積的特點,本文提出一種改進的DenseNet網(wǎng)絡(luò),其網(wǎng)絡(luò)結(jié)構(gòu)如表1所示。網(wǎng)絡(luò)首先在輸入圖像上做一次3×3步長為2的卷積,然后做3×3步長為2的最大池化操作,接著進入到第一個Dense Block,一共用到3個 Dense Block。在Dense Block中,該模塊的主要作用在于一直反復(fù)不停地做密集連接形式的運算,每一層都將利用密集連接運算使得上一層的特征圖與本層所產(chǎn)生的特征圖合并,最終Dense Block的最后一層將會得到模塊中所有特征圖的并集。
第一個Dense Block中包含了12個1×3、3×1的卷積操作,第12個子結(jié)構(gòu)的輸入是前面11層的輸出結(jié)果,每層輸出的通道數(shù)是12(growth rate),其中為了避免網(wǎng)絡(luò)增長過于迅速,并優(yōu)化參數(shù)效率,擬定增長率為一個較小的整數(shù),本文增長率設(shè)置為12。原始DenseNet網(wǎng)絡(luò)中,在每個3×3卷積層之后都會接上一個1×1卷積層,以減少輸入到卷積層中特征圖的數(shù)量,提高網(wǎng)絡(luò)運行速率,隨之計算效率也相應(yīng)提高,經(jīng)對比發(fā)現(xiàn)這個設(shè)計對DenseNet網(wǎng)絡(luò)非常有效,所以將一維卷積層保留到本文的網(wǎng)絡(luò)中。
每兩個Dense Block中間都包含了Transition Layer。在Transition Layer中,參數(shù)reduction(取值為0~1)代表輸出縮小為原來的多少倍,本文reduction設(shè)置為0.5。Dense Block模塊緊接著經(jīng)過之后的Transition Layer,即一個 1×1 卷積、2×2 的平均池化以及批量歸一化(BN),下一個的模塊結(jié)構(gòu)和之前的相類似,唯一不一樣在于輸出的特征圖尺寸越來越小,網(wǎng)絡(luò)的深度在逐漸加深。網(wǎng)絡(luò)的最后一層為分離10類的 Softmax 層,采用全連接結(jié)構(gòu)。
網(wǎng)絡(luò)結(jié)構(gòu)代碼由Keras框架實現(xiàn)。代碼實現(xiàn)用1×3和3×1的卷積來代替所有Dense Block中3×3的卷積,達到節(jié)約參數(shù)加速運算,以及減輕過擬合的目的。
4?實驗結(jié)果與分析
為驗證改進后DenseNet網(wǎng)絡(luò)的性能,本文在CIFAR-10數(shù)據(jù)集上測試識別率和損失函數(shù),并與經(jīng)典的DenseNet網(wǎng)絡(luò)進行比較分析。
4.1?數(shù)據(jù)集
本次實驗的數(shù)據(jù)集為CIFAR-10數(shù)據(jù)集,該數(shù)據(jù)集包含10個類(飛機,汽車,鳥,貓,鹿,狗,青蛙,馬,船,卡車)共60 000張32×32的彩色圖像,每個類別分別有6 000張不同圖像。本文將50 000張圖片作為訓(xùn)練圖像,10 000張作為測試圖像來進行實驗。
4.2?實驗設(shè)置
實驗基于Keras框架。訓(xùn)練使用計算機: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)練的過程中自適應(yīng)地調(diào)整各個參數(shù)的學(xué)習(xí)率,非常適合于高維度和大數(shù)據(jù)集的非凸優(yōu)化[10]。
4.3?實驗結(jié)果及分析
實驗中使用3個Dense Block,每個Dense Block內(nèi)部有兩個卷積層,其卷積層分別為1×3和3×1的卷積層,同時因為Dense Block后接1×1的卷積層,參數(shù)也得到精簡。實驗結(jié)果見表2。
識別方法??識別率/%參數(shù)量損失函數(shù)
經(jīng)典DenseNet ̄4080.621 003 5460.84
改進DenseNet ̄4086.16433 3060.71
從表2可知,在實驗數(shù)據(jù)不變的條件下,較為經(jīng)典的DenseNet ̄40網(wǎng)絡(luò)模型的最高識別率只有8062% ,改進后的DenseNet ̄40網(wǎng)絡(luò)模型的最高
識別率為86.16%。實驗結(jié)果表明改進后的DenseNet ̄40網(wǎng)絡(luò)模型識別率高于經(jīng)典的DenseNet ̄40網(wǎng)絡(luò)模型,而且網(wǎng)絡(luò)收斂速度也比經(jīng)典的快。另一方面,參數(shù)量從原來的1 003 546降低到現(xiàn)在的433 306,極大地縮短了程序運行時間。
本次實驗結(jié)果在總卷積層數(shù)保持不變的情況下,通過對Dense Block內(nèi)部的結(jié)構(gòu)進行調(diào)整,觀測識別率變化程度。
經(jīng)典的DenseNet ̄40網(wǎng)絡(luò)模型與改進后的DenseNet ̄40網(wǎng)絡(luò)模型對訓(xùn)練集與測試集的識別精度如圖3所示。由圖可知:經(jīng)過40次網(wǎng)絡(luò)迭代,改進后的DenseNet ̄40網(wǎng)絡(luò)模型與經(jīng)典的DenseNet ̄40網(wǎng)絡(luò)模型都逐漸趨于收斂、平穩(wěn),改進后的網(wǎng)絡(luò)模型較經(jīng)典的收斂更加迅速;當(dāng)?shù)?0次時,本文提出的網(wǎng)絡(luò)模型識別準(zhǔn)確率較原網(wǎng)絡(luò)高出9.60%;體現(xiàn)改進的DenseNet ̄40網(wǎng)絡(luò)模型在收斂速度及識別率方面的優(yōu)越性。
經(jīng)典的DenseNet ̄40網(wǎng)絡(luò)模型與改進后的DenseNet ̄40網(wǎng)絡(luò)模型的訓(xùn)練與測試過程中損失函數(shù)曲線如圖4所示??梢钥闯觯S著網(wǎng)絡(luò)迭代次數(shù)的增加,損失函數(shù)值也趨于平穩(wěn),當(dāng)?shù)?0次時,改進后的DenseNet ̄40網(wǎng)絡(luò)模型損失函數(shù)值較經(jīng)典的DenseNet ̄40網(wǎng)絡(luò)模型損失函數(shù)值降低了022,與預(yù)測值更加接近,網(wǎng)絡(luò)模型擬合度也相應(yīng)的提高。
5?結(jié)論
本文利用Inception V3的核心思想之一(非對稱卷積)對DenseNet網(wǎng)絡(luò)模型中Dense Block模塊進行重新構(gòu)建優(yōu)化,對改進后的DenseNet網(wǎng)絡(luò)模型進行訓(xùn)練與測試,經(jīng)實驗結(jié)果分析,改進的
DenseNet網(wǎng)絡(luò)結(jié)構(gòu)效果滿足實驗之前預(yù)期目標(biāo):其減少了隨網(wǎng)絡(luò)層數(shù)的增加而出現(xiàn)參數(shù)過多的問題,即在迭代次數(shù)不斷增加的條件下,收斂速度、識別率都有明顯的提高,結(jié)構(gòu)得到了優(yōu)化,網(wǎng)絡(luò)模型的損失函數(shù)值也在不斷降低,有較好的泛化能力。但是本次實驗也有些許缺點,在網(wǎng)絡(luò)設(shè)置的深度上并沒有達到很深的層次,下一步將把該改進后的網(wǎng)絡(luò)應(yīng)運到更深層的結(jié)構(gòu)上,而且對不同的數(shù)據(jù)集進行驗證,觀察實驗效果。
參考文獻:
[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ò)與長短時記憶模型的中文識別[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].自動化學(xué)報,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ò)的圖像識別方法[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