楊鑫 楊晶東
摘 要:為提高卷積神經(jīng)網(wǎng)絡(luò)在圖像分類中的泛化性,提出基于多分支深度神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)。使用ResNet(殘差網(wǎng)絡(luò))的跨層連接結(jié)構(gòu)構(gòu)造多分支網(wǎng)絡(luò),各分支網(wǎng)絡(luò)共享中淺層特征提取,深層網(wǎng)絡(luò)使用不同卷積核尺寸。分別使用獨立損失函數(shù)產(chǎn)生多梯度對中淺層特征權(quán)值進行同步調(diào)整。與ResNet的單重網(wǎng)絡(luò)進行對比實驗,結(jié)果表明,在具有相同收斂性的前提下,各個分支網(wǎng)絡(luò)的泛化性都得到一定提高,在多類別數(shù)據(jù)集中表現(xiàn)出更優(yōu)性能。
關(guān)鍵詞:殘差網(wǎng)絡(luò); 多分支網(wǎng)絡(luò); 泛化性能
DOI:10. 11907/rjdk. 182713 開放科學(xué)(資源服務(wù))標(biāo)識碼(OSID):
中圖分類號:TP301文獻標(biāo)識碼:A 文章編號:1672-7800(2019)007-0056-04
Image Recognition Algorithm Based on Multi-branch Network
YANG Xin, YANG Jing-dong
(School of Optoelectronic Information and Computer Engineering,
University of Shanghai for Science and Technology, Shanghai 200093, China)
Abstract: Aiming at improve the convergence and generalization of convolutional neural networks in image classification, we propose a deep neural network structure based on multi-branch network. Using a cross-layer connection structure of ResNet (residual network), a multi-branch network is constructed, shallow feature extraction is performed in each branch network share, and different convolution kernel sizes are used in the deep network part. Separate loss functions are used, and multiple scale gradients are used to adjust the weights of the middle and shallow features simultaneously. Experiments show that the convergence and generalization of each branch network have been improved compared to the single-net network of resnet. At the same time, the algorithm in this paper shows better performance in multi-category data sets, and has practical significance in the big data environment.
Key Words: residual network; multi-branch network; generalization performance
作者簡介:楊鑫(1991-),男,上海理工大學(xué)光電信息與計算機工程學(xué)院碩士研究生,研究方向為深度學(xué)習(xí)、計算機視覺;楊晶東(1973-),男,博士,上海理工大學(xué)光電信息與計算機工程學(xué)院副教授、碩士生導(dǎo)師,研究方向為智能機器人、計算機視覺。
0 引言
深度學(xué)習(xí)通過疊加非線性層[1-2],使深層神經(jīng)網(wǎng)絡(luò)可以擬合復(fù)雜的非線性映射,相比SVM(支持向量機)、邏輯回歸等淺層學(xué)習(xí)方法,深度學(xué)習(xí)可在大數(shù)據(jù)支撐下學(xué)習(xí)數(shù)據(jù)內(nèi)部復(fù)雜的模式。深度學(xué)習(xí)由Hinton等[3]在2006年提出,為解決深度神經(jīng)網(wǎng)絡(luò)容易出現(xiàn)的梯度消失、梯度爆炸等問題,當(dāng)時使用玻爾茲曼機預(yù)訓(xùn)練單層參數(shù),使得網(wǎng)絡(luò)最終可以收斂。計算機視覺是深度學(xué)習(xí)的重要應(yīng)用領(lǐng)域,卷積神經(jīng)網(wǎng)絡(luò)為計算機視覺領(lǐng)域的諸多問題提供了一種端到端的解決方法。卷積神經(jīng)網(wǎng)絡(luò)可以對特征進行分層學(xué)習(xí)[4],其特征復(fù)制思想很好地解決了圖像識別中視角差異、物體特征在圖像上的維度跳躍問題。Yann LeCun和他的團隊提出了著名的卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)LeNet5,成功應(yīng)用在手寫體數(shù)字識別上[5],改進的BP網(wǎng)絡(luò)在手寫數(shù)字字符識別上的研究取得了一定進展[6]。由于計算機硬件的技術(shù)進步,海量圖片數(shù)據(jù)以及神經(jīng)網(wǎng)絡(luò)初始化、優(yōu)化方法的提出,使得深度神經(jīng)網(wǎng)絡(luò)容易收斂且不易出現(xiàn)過擬合問題[7-9],但由于網(wǎng)絡(luò)層數(shù)的逐漸疊加,產(chǎn)生了網(wǎng)絡(luò)收斂困難和優(yōu)化困難問題。文獻[10]引入殘差塊結(jié)構(gòu),殘差神經(jīng)網(wǎng)絡(luò)中的跨層連接思想可使網(wǎng)絡(luò)層數(shù)疊加很深,極大解決了深層網(wǎng)絡(luò)的收斂問題。殘差神經(jīng)網(wǎng)絡(luò)開始在計算機視覺應(yīng)用中占據(jù)主導(dǎo)地位,文獻[11]提出使用深度殘差神經(jīng)網(wǎng)絡(luò)進行視頻內(nèi)容的快速檢索;文獻[12]提出使用深度殘差網(wǎng)絡(luò)進行脫機手寫漢字識別;文獻[13]提出使用殘差神經(jīng)網(wǎng)絡(luò)進行結(jié)構(gòu)故障識別,但深度殘差網(wǎng)絡(luò)并沒有達到最優(yōu)輸出;文獻[14]中提出采用多尺度特征圖學(xué)習(xí)策略改善網(wǎng)絡(luò)性能,提高訓(xùn)練收斂性和測試泛化性能,但未提出多損失函數(shù)策略提高網(wǎng)絡(luò)識別正確率。本文致力于提高深度學(xué)習(xí)模型在圖像識別領(lǐng)域的收斂性和泛化性,提出多分支網(wǎng)絡(luò)正則中淺層的特征提取網(wǎng)絡(luò),在cifar10與cifar100數(shù)據(jù)集中分類性能比原有ResNet性能更好。
1 ResNet殘差網(wǎng)絡(luò)
ResNet的主要思想是在不同的卷積層中添加跨層連接,改變層與層間的映射關(guān)系,使用RseNet的跨層連接結(jié)構(gòu)如圖1所示。
圖1 ResNet的跨層連接
圖1增加了層與層的跨層連接結(jié)構(gòu),網(wǎng)絡(luò)實際學(xué)習(xí)的非線性映射為[F(X)=H(X)-X]。疊加卷積神經(jīng)網(wǎng)絡(luò)層數(shù)會使模型變得更加復(fù)雜,較深層神經(jīng)網(wǎng)絡(luò)理論上會表現(xiàn)出更好的泛化性能,但實驗結(jié)果表明,當(dāng)網(wǎng)絡(luò)深度達到一定層數(shù)時,在訓(xùn)練集上的分類誤差開始逐漸變大[15-16]。增加跨層連接,降低了網(wǎng)絡(luò)優(yōu)化水平,使得深層網(wǎng)絡(luò)更容易達到收斂。ResNet折中了復(fù)雜網(wǎng)絡(luò)與簡單網(wǎng)絡(luò),以適應(yīng)不同復(fù)雜程度的分類模式。
2 基于多分支網(wǎng)絡(luò)的深度網(wǎng)絡(luò)結(jié)構(gòu)
本文將圖1中ResNet的跨層連接作為一個殘差塊,將3個具有相同特征圖數(shù)目的殘差塊作為一個scale,使用3個具有特征圖數(shù)目的scale構(gòu)成殘差網(wǎng)絡(luò)中的特征提取部分,各個scale間使用最大池化降低特征圖像素數(shù)。[H(X)=F(X)+X,]當(dāng)[F(X)]與[X]特征圖數(shù)目不一致時,采用[1×1]卷積核進行變換。本文構(gòu)建三分支網(wǎng)絡(luò),各個分支網(wǎng)絡(luò)共享scale1與scale2中淺層特征提取,3個scale3分別采用[3×3、5×5、7×7]卷積核尺寸,scale1與scale2采用[3×3]卷積核尺寸,網(wǎng)絡(luò)整體結(jié)構(gòu)如圖2所示。
ResNet1、ResNet2、ResNet3分別使用獨立的交叉熵?fù)p失函數(shù),由于scale3中設(shè)置了不同尺寸的卷積核,對于scale1與scale2中的梯度調(diào)整將進行一定程度的互相正則。設(shè)scale2中一層卷積層的權(quán)值為Wc,其對應(yīng)的梯度由下式產(chǎn)生:
圖2 三分支殘差網(wǎng)絡(luò)結(jié)構(gòu)
[dWc= ?Lr1?Wc+?Lr2?Wc+?Lr3?Wc]? ?(1)
式(1)中,[Lr1]為ResNet1的損失函數(shù),[Lr2]為ResNet2的損失函數(shù),[Lr3]為ResNet3的損失函數(shù)。不同尺寸的卷積核提取特征具有不同范圍大小的感受野,對于每個獨立的網(wǎng)絡(luò)連接scale1與scale2,類似于產(chǎn)生了具有正確導(dǎo)向的噪聲信號。Scale2與scale3銜接部分輸入部分卷積層,損失函數(shù)對其特征圖激活值的偏導(dǎo)[dA]由式(2)給出。式中[H3×3]為輸出卷積層特征圖高度,[ahw]為輸出卷積層特征圖切片激活值,[dZhwc]為損失函數(shù)關(guān)于輸出卷積層第h行w列c深度被激活前特征圖像素值。scale1與scale2中的權(quán)值更新梯度由[dA]回傳,網(wǎng)絡(luò)最終在共享權(quán)值部分產(chǎn)生多梯度的混合調(diào)整。實驗證明該方法可提高單分支網(wǎng)絡(luò)的泛化性能。
[dA3×3=h=1H3×3w=1W3×3c=1Cahw×dZhwc]
[dA5×5=h=1H5×5w=1W5×5c=1Cahw×dZhwc]
[dA7×7=h=1H7×7w=1W7×7c=1Cahw×dZhwc]
[dA=dA3×3+dA5×5+dA7×7]? ? ?(2)
正則化方法dropout[17]可隨機訓(xùn)練一定比例失活神經(jīng)元后的網(wǎng)絡(luò),網(wǎng)絡(luò)訓(xùn)練被認(rèn)為是在眾多的子網(wǎng)絡(luò)中進行一個特殊意義的融合。本文使用多分支網(wǎng)絡(luò)結(jié)構(gòu),同時利用dropout技術(shù)進行網(wǎng)絡(luò)的正則化以提高模型的泛化性能。
Scale3將每一特征圖使用平均池化轉(zhuǎn)化為1個標(biāo)量,減小分類器輸入的特征維度。分類器使用兩層全連接網(wǎng)絡(luò),隱藏層使用1 024個神經(jīng)元,同樣使用ReLU函數(shù)作為激活函數(shù),全連接層間使用Batch Normalization[18]進行批歸一化。
對于ResNet的輸入,使用一定的數(shù)據(jù)增強技術(shù)。數(shù)據(jù)增強方法為:將原始圖像進行寬度為4的黑色像素邊緣填充,隨機裁剪為32×32×3尺寸圖像,隨機翻轉(zhuǎn)、隨機變換圖像亮度、對比度,對圖像進行標(biāo)準(zhǔn)化。在測試時對圖像進行標(biāo)準(zhǔn)化操作。本文權(quán)值初始化使用He[19]的方法,采用Adam[20]優(yōu)化權(quán)值更新算法。
3 實驗結(jié)果分析
本實驗通過阿里云機器學(xué)習(xí)PAI深度學(xué)習(xí)平臺實現(xiàn),GPU型號為NVIDIA Tesla M40,可用GPU顯存為11.07GB,顯卡頻率1.112(GHZ)。本實驗基于的開源平臺為tensorflow1.0,使用的編程語言為python2.7。本文將針對不同分類樣本數(shù)據(jù)集cifar10和cifar100分類精度、泛化性能進行對比研究。
3.1 cifar10數(shù)據(jù)集實驗與分析
cifar10數(shù)據(jù)集由60 000張[32×32×3]的彩色圖片組成,總共包含10個類。其中50 000張圖片作為訓(xùn)練,? ? 10 000張圖片作為測試。10個類分別為飛機(airplane)、汽車(automobile)、鳥(bird)、貓(cat)、鹿(deer)、狗(dog)、青蛙(frog)、馬(horse)、船(ship)、卡車(truck)。
本實驗采用的訓(xùn)練參數(shù):采用dropout方法,scale1中keep_prob值為0.85,scale2中為0.8,scale3中為0.75,全連接層中為0.6。在卷積層中使用dropout隨機訓(xùn)練整張?zhí)卣鲌D。初始學(xué)習(xí)率設(shè)為0.01,30 000step時將學(xué)習(xí)率降為0.001,50 000step時將學(xué)習(xí)率降為0.000 1。采用mini_batch 隨機梯度下降,batchsize取128。
在過了50 000step時,每隔1 000step對測試集的10 000張圖片進行測試,結(jié)果如圖3所示。在訓(xùn)練過程中minibatch會因為樣本的不同導(dǎo)致網(wǎng)絡(luò)無法完全收斂到極值點,權(quán)值會存在一定的波動,導(dǎo)致曲線存在一定的振蕩。本文取所有采樣值中的最大值作為模型泛化性的最終評估指標(biāo),對比在相同卷積核尺寸下分支ResNet與單重ResNet測試集正確率。在具有相似收斂性前提下,本文采用共享中淺層殘差塊的分支ResNet,比單重ResNet具有更好的泛化性能。當(dāng)采用3×3卷積核尺寸時測試集正確率為93.65%,比單重ResNet提高了0.09%;當(dāng)采用5×5卷積核尺寸時,測試集正確率為93.70%,比單重ResNet提高了0.16%;當(dāng)采用7×7卷積核尺寸時,測試集正確率為93.80%,比單重ResNet提高了0.47%。
3.2 cifar100數(shù)據(jù)集實驗與分析
Cifar100與cifar10使用相同的訓(xùn)練數(shù)據(jù)和測試數(shù)據(jù),不同在于ciar100比cifar10具有更加精細(xì)的類區(qū)分,共分為100類,將其中50 000張作為訓(xùn)練集,10 000張作為測試集。由于數(shù)據(jù)集的變動,每一類樣本數(shù)變少,原有參數(shù)設(shè)置沒有足夠的容量擬合cifar100數(shù)據(jù)。將dropout參數(shù)keep_prob值重新調(diào)整,scale1中keep_prob值為0.95,scale2中為0.9,scale3中為0.85,全連接層中值為0.8,其余的超參數(shù)與cifar10的實驗一致。
采用cifar10實驗相同的數(shù)據(jù)采樣方式進行測試集正確率數(shù)據(jù)采樣,結(jié)果如圖4所示,同樣將采樣值中最大值作為模型測試集最終正確率。由圖4可知,scale3采用不同的卷積核尺寸共享中淺層特征提取殘差塊,分支ResNet在測試集上的正確率都要高于單重ResNet。本文方法中,當(dāng)采用3×3卷積核尺寸時測試集正確率為76.27%,比單重ResNet提高了1.01%;當(dāng)采用5×5卷積核尺寸時,測試集正確率為76.24%,比單重ResNet提高了1.47%;當(dāng)采用7×7卷積核尺寸時,測試集正確率為76.42%,比單重ResNet提高了2.6%。
4 結(jié)語
本文提出一種共享中淺層特征提取的多分支殘差網(wǎng)絡(luò),結(jié)合dropout,通過獨立梯度,在保證各個分支網(wǎng)絡(luò)scale3獨立性的同時,提高了共享網(wǎng)絡(luò)部分正則化,在多分類、精細(xì)化數(shù)據(jù)集方面比單重ResNet性能更好。未來將重點研究分支網(wǎng)絡(luò)的自適應(yīng)融合。
參考文獻:
[1] BENGIO Y. Learning deep architectures for AI[J]. Foundations & Trends? in Machine Learning, 2009, 2(1):1-127.
[2] BENGIO Y,LAMBLIN P,DAN P,et al. Greedy layer-wise training of deep networks[J]. Advances in Neural Information Processing Systems,2007(19):153-160.
[3] HINTON G E,OSINDERO S,TEH Y W. A fast learning algorithm for deep belief nets[J].Neural Computation,2006,18(7):1527-1554.
[4] MATTHEW D,ZEILER,ROB FERGUS. Visualizing and understanding convolutional networks[J]. Computer Vision-ECCV,2013(8689):818-833.
[5] LéCUN Y,BOTTOU L,BENGIO Y,et al. Gradient-based learning applied to document recognition[J]. Proceedings of the IEEE,1998,86(11):2278-2324.
[6] 曾志軍,孫國強. 基于改進的BP網(wǎng)絡(luò)數(shù)字字符識別[J]. 上海理工大學(xué)學(xué)報,2008,30(2):201-204.
[7] KRIZHEVSKY A,SUTSKEVER I,HINTON G E. Image net classification with deep convolutional neural networks[C]. International Conference on Neural Information Processing Systems. Curran Associates Inc,2012:1097-1105.
[8] SIMONYAN K,ZISSERMAN A. Very deep convolutional networks for large-scale image recognition[J]. Computer Science,2014(1):2253-2259.
[9] SZEGEDY C,LIU W,JIA Y,et al. Going deeper with convolutions[C]. Computer Vision and Pattern Recognition. IEEE, 2015:1-9.
[10] HE K,ZHANG X,REN S,et al. Deep residual learning for image recognition[C]. In:Proceedings of Computer Vision and Pattern Recognition,IEEE,2016:770-778.
[11] 李瞳, 李彤, 趙宏偉. 基于殘差神經(jīng)網(wǎng)絡(luò)的視頻內(nèi)容快速檢索系統(tǒng)研究[J]. 吉林大學(xué)學(xué)報:信息科學(xué)版, 2018(4):158-161.
[12] 張帆, 張良,劉星,等. 基于深度殘差網(wǎng)絡(luò)的脫機手寫漢字識別研究[J]. 計算機測量與控制, 2017(12):259-262.
[13] 胡壽松,汪晨曦,張德發(fā). 基于遞階殘差神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)故障模式識別[J]. 飛機設(shè)計,2001(3):6-11.
[14] LI B Q,HE Y Y. An improved resnet based on the adjustable shortcut connections[M]. IEEE Access,2018,18967-18974.
[15] HE K, SUN J. Convolutional neural networks at constrained time cost[EB/OL]. http://xueshu.baidu.com/usercenter/paper/show?paperid=7477b7fa311a30b9917cfeb726a258ff&site=xueshu_se
[16] SRIVASTAVA R K,GREFF K,SCHMIDHUBER J. Highway networks[J]. Computer Science,2015(3):128-122.
[17] HINTON G E,SRIVASTAVA N,KRIZHEVSKY A,et al. Improving neural networks by preventing co-adaptation of feature detectors[J]. Computer Science,2012,3(4):212-223.
[18] IOFFE S,SZEGEDY C. Batch normalization: accelerating deep network training by reducing internal covariate shift[C]. International Conference on International Conference on Machine Learning. JMLR.org, 2015:448-456.
[19] HE K,ZHANG X,REN S,et al. Delving deep into rectifiers: surpassing human-level performance on imagenet classification[J]. IEEEXplore,2015:1026-1034.
[20] KINGMA D P,BA J. Adam: a method for stochastic optimization[J]. Computer Science, 2014(6):202-208.
(責(zé)任編輯:杜能鋼)