吳祿慎,常參參,王曉輝,陳華偉
(南昌大學(xué) 機(jī)電工程學(xué)院,南昌 330031)
近年來(lái)隨著深度學(xué)習(xí)(Deep Learning,DL)的發(fā)展,卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)以其高效準(zhǔn)確的分類(lèi)能力和直接處理原始圖像等優(yōu)點(diǎn),在圖像的識(shí)別領(lǐng)域獲得高度的關(guān)注[1]。2012年,文獻(xiàn)[2]提出的8層深度卷積神經(jīng)網(wǎng)絡(luò)AlexNet,在大規(guī)模視覺(jué)識(shí)別挑戰(zhàn)[3](Large Scale Visual Recognition Challenge,ILSVRC)中以準(zhǔn)確度超越第2名11%的優(yōu)勢(shì)贏得冠軍,掀起了卷積神經(jīng)網(wǎng)絡(luò)在圖像識(shí)別領(lǐng)域的研究高潮。
雖然卷積神經(jīng)網(wǎng)絡(luò)在圖像識(shí)別領(lǐng)域展現(xiàn)了極大優(yōu)勢(shì),但是大多深度模型需要上千次的迭代、數(shù)以萬(wàn)計(jì)的訓(xùn)練樣本以及高效的圖像處理設(shè)備才能滿(mǎn)足網(wǎng)絡(luò)訓(xùn)練的要求。這些限制使深度卷積網(wǎng)絡(luò)只能停留在實(shí)驗(yàn)室階段,限制了其應(yīng)用范圍。對(duì)此,國(guó)內(nèi)外很多專(zhuān)家和學(xué)者在對(duì)傳統(tǒng)深度卷積網(wǎng)絡(luò)算法研究的基礎(chǔ)上,提出一些改進(jìn)的方法。文獻(xiàn)[4]提出遞歸卷積神經(jīng)網(wǎng)絡(luò)(Recurrent Convolutional Neural Network,RCNN)模型將循環(huán)并入每個(gè)卷積層,隨著時(shí)間的推移,每個(gè)輸入的神經(jīng)元都會(huì)受到相鄰神經(jīng)元的影響,增強(qiáng)了模型整合上下文的能力,在小訓(xùn)練樣本量的圖像識(shí)別上獲得極大的成功。文獻(xiàn)[5]提出一種基于超參數(shù)和靜態(tài)向量的CNN,通過(guò)微調(diào)學(xué)習(xí)任務(wù)的特征向量進(jìn)一步提高網(wǎng)絡(luò)的速度。文獻(xiàn)[6]針對(duì)訓(xùn)練樣本少的問(wèn)題,設(shè)計(jì)了訓(xùn)練數(shù)據(jù)擴(kuò)增技術(shù),提高卷積神經(jīng)網(wǎng)絡(luò)的應(yīng)用范圍。文獻(xiàn)[7]對(duì)比了不同池化模型對(duì)卷機(jī)網(wǎng)絡(luò)的影響,設(shè)計(jì)出動(dòng)態(tài)自適應(yīng)池化(Dynamic Adaptive Pooling,DAP)模型,改進(jìn)卷積神經(jīng)網(wǎng)絡(luò)的池化層,取得比較好的效果,提高了收斂速度和準(zhǔn)確率。文獻(xiàn)[8]提出一種展開(kāi)式的卷積神經(jīng)網(wǎng)絡(luò)(Unfolded Convolutional Neural Network,UCNN)把卷積層和全連接層展開(kāi)成矩陣相乘的形式,大大減少網(wǎng)絡(luò)運(yùn)算量,節(jié)省了網(wǎng)絡(luò)的運(yùn)算時(shí)間。文獻(xiàn)[9]提出了一種基于時(shí)域抽取方法的分裂基-2-2a一維FFT快速方法(簡(jiǎn)稱(chēng)S_2a_FFT),利用卷積定理在頻域中實(shí)現(xiàn)空域線性卷積的方式,實(shí)現(xiàn)了網(wǎng)絡(luò)的加速,且精度并沒(méi)有損失。
雖然專(zhuān)家學(xué)者對(duì)卷積神經(jīng)網(wǎng)絡(luò)算法做了大量的改進(jìn),取得了很大成功,但是這些改進(jìn)主要集中在優(yōu)化網(wǎng)絡(luò)結(jié)構(gòu)和增加前期處理方面,在參數(shù)的調(diào)節(jié)方面仍然是全局參數(shù)同時(shí)修正,調(diào)節(jié)幅度小,網(wǎng)絡(luò)必須經(jīng)過(guò)大量的迭代才能收斂。
針對(duì)上述問(wèn)題,本文提出局部調(diào)節(jié)卷積神經(jīng)網(wǎng)絡(luò)(Locally Adjusted Convolutional Neural Network,LACNN),通過(guò)比較實(shí)際輸出與理想輸出的差異,根據(jù)對(duì)分類(lèi)殘差的影響把差異分成關(guān)鍵部分和非關(guān)鍵部分,舍棄差異性小的神經(jīng)元參數(shù),對(duì)差異性大的參數(shù)設(shè)置動(dòng)態(tài)學(xué)習(xí)率,突破固定步長(zhǎng)對(duì)參數(shù)調(diào)節(jié)的限制,擴(kuò)展調(diào)節(jié)的幅度,從而加快網(wǎng)絡(luò)的收斂速度。
卷積神經(jīng)網(wǎng)絡(luò)是眾多深度學(xué)習(xí)算法中的一種,是深度學(xué)習(xí)算法和神經(jīng)網(wǎng)絡(luò)的結(jié)合,在機(jī)器視覺(jué)[10-11]和信號(hào)識(shí)別[12]方面有著廣泛的應(yīng)用。卷積神經(jīng)網(wǎng)絡(luò)由3個(gè)部分組成,分別是輸入層、隱含層與輸出層。其中,輸入層和輸出層分別對(duì)應(yīng)著輸入的圖像和輸出的結(jié)果,而隱含層包含了多個(gè)卷積和池化層交替的非線性結(jié)構(gòu)的神經(jīng)元層,在最后一層的池化操作后還有一個(gè)全連接層,目的是獲得高維的空間表達(dá)。卷積神經(jīng)網(wǎng)絡(luò)本質(zhì)上是一個(gè)特征提取器和分類(lèi)器的綜合,通過(guò)對(duì)輸入的圖像不斷地進(jìn)行特征學(xué)習(xí)得到一組最接近圖像含義的特征元素組,然后輸入尾部的分類(lèi)器,進(jìn)行數(shù)據(jù)的分類(lèi)識(shí)別。
LeNet-5[13]作為經(jīng)典的卷積神經(jīng)網(wǎng)絡(luò),為卷積神經(jīng)網(wǎng)絡(luò)提供了框架,后來(lái)的卷積網(wǎng)絡(luò)基本上由此擴(kuò)展而來(lái)。其網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示,它的輸入Input是一個(gè)未經(jīng)處理或者僅經(jīng)過(guò)簡(jiǎn)單處理的圖像,卷積層是CNN的核心部分,通過(guò)不同的卷積核來(lái)獲取圖片的特征。卷積核相當(dāng)于一個(gè)濾波器,不同的濾波器提取不同特征。卷積層C1一般選取多個(gè)隨機(jī)的卷積核對(duì)圖像進(jìn)行卷積。緊隨著卷積層的是池化層S2(也稱(chēng)為降采樣層或者子采樣層)。幾乎每個(gè)卷積操作后都會(huì)接一個(gè)池化操作,池化分為均值池化和最大池化,目的是為了降低卷積后特征圖像的維度。一般選擇2×2的池化尺寸,可以將卷積層的輸出矩陣的尺寸變?yōu)樵瓉?lái)的1/4,簡(jiǎn)化后面的運(yùn)算。池化操作增加了系統(tǒng)的魯棒性,把原來(lái)的準(zhǔn)確描述變?yōu)榱烁怕悦枋?。卷積層C3和池化層S4與卷積層C1層池化層S2類(lèi)似,一個(gè)卷積層和一個(gè)池化層形成一個(gè)組合結(jié)構(gòu),卷積神經(jīng)網(wǎng)絡(luò)的隱含層中這種組合結(jié)構(gòu)重復(fù)出現(xiàn),它的多少?zèng)Q定了卷積神經(jīng)網(wǎng)絡(luò)的深度。把最后一層池化得到的特征圖展開(kāi)成形一個(gè)一維的矩陣(全連接層),被稱(chēng)為單層感知機(jī)。輸出層Output與一維矩陣進(jìn)行全連接,然后經(jīng)過(guò)分類(lèi)器進(jìn)行分類(lèi)識(shí)別。在傳統(tǒng)的卷積神經(jīng)網(wǎng)絡(luò)中用到的分類(lèi)器是Softmax。
圖1 卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
輸入的圖像經(jīng)過(guò)卷積核進(jìn)行卷積得到特征圖像,加上偏置然后,傳入一個(gè)非線性函數(shù)sigmoid進(jìn)行激活[14]。假設(shè)L(0≤L≤5)層有N個(gè)特征圖,卷積層的輸入是m×m的矩陣Xj,卷積核是n×n的矩陣kij,使用卷積核對(duì)輸入矩陣Xj的感受野進(jìn)行步長(zhǎng)為1的順序卷積,卷積計(jì)算公式為:
0≤L≤5,1≤j≤N
(1)
其中,XjL+1是卷積層的輸出的特征圖的矩陣,它是一個(gè)(m-n+1)×(m-n+1)的矩陣,Mj表示輸入的特征圖矩陣集合,bjL+1是卷積后所加偏置,f是一個(gè)非線性函數(shù),一般為sigmoid函數(shù)。卷積過(guò)程的輸入可以是原始的圖像,也可以是經(jīng)過(guò)池化產(chǎn)生的特征圖像。
對(duì)于降采樣層來(lái)說(shuō),輸入多少個(gè)特征圖就會(huì)輸出多少特征圖,只是每個(gè)輸入的特征圖的尺寸變小。一般的來(lái)說(shuō),輸出的特征圖大小都是成倍的減少。假設(shè)有N個(gè)特征圖,降采樣層的計(jì)算公式為:
1≤L≤5,1≤j≤N
(2)
其中,XjL是經(jīng)過(guò)降采操作的輸出特征圖,βjL是特征圖特有的乘性偏置,down(.)表示降采樣函數(shù),f是一個(gè)非線性函數(shù)。
卷積神經(jīng)網(wǎng)絡(luò)每次訓(xùn)練包括2個(gè)過(guò)程,分別是前向傳播過(guò)程和反向傳播過(guò)程。前向傳播是在初始的各種參數(shù)下對(duì)圖像進(jìn)行卷積和池化操作,組成全連接得出訓(xùn)練的結(jié)果。反向傳播是通過(guò)求訓(xùn)練結(jié)果與標(biāo)簽值之間的分類(lèi)殘差(即代價(jià)函數(shù)),鏈?zhǔn)角髮?dǎo)得到各神經(jīng)元的敏感度,反向計(jì)算得出卷積核與權(quán)重的下降梯度,梯度與學(xué)習(xí)率相結(jié)合,從而得出權(quán)重修改量,更新各層的權(quán)重,確定新的網(wǎng)絡(luò)。
傳統(tǒng)卷積神經(jīng)網(wǎng)絡(luò)的缺點(diǎn)是參數(shù)的調(diào)節(jié)幅度小,收斂速度慢,其原因主要是由于各層神經(jīng)元靈敏度和學(xué)習(xí)率的限制所導(dǎo)致的。針對(duì)該問(wèn)題,本文提出局部調(diào)節(jié)卷積神經(jīng)網(wǎng)絡(luò),改善參數(shù)調(diào)節(jié)的幅度,減少迭代次數(shù)。局部調(diào)節(jié)模型的思路是:按照對(duì)代價(jià)函數(shù)的貢獻(xiàn)把差異矩陣E中的元素分成關(guān)鍵元素和非關(guān)鍵元素,剔除非關(guān)鍵元素獲得矩陣E*,并根據(jù)E*設(shè)置動(dòng)態(tài)學(xué)習(xí)率ξ。然后,逆向更新各層輸出Xl,確定需要大幅調(diào)節(jié)的神經(jīng)元參數(shù),迭代時(shí)參數(shù)調(diào)節(jié)只發(fā)生在需要調(diào)節(jié)的局部神經(jīng)元參數(shù)中。動(dòng)態(tài)學(xué)習(xí)率和局部參數(shù)調(diào)節(jié)使網(wǎng)絡(luò)中的參數(shù)很快收斂。當(dāng)大差異參數(shù)足夠小時(shí),差異函數(shù)中的部分非關(guān)鍵因素和關(guān)鍵因素角色發(fā)生變化,繼續(xù)對(duì)相對(duì)差異性大的參數(shù)進(jìn)行調(diào)節(jié)。局部調(diào)節(jié)卷積神經(jīng)網(wǎng)絡(luò)的參數(shù)調(diào)節(jié)過(guò)程如圖2所示。其中,黑點(diǎn)表示調(diào)節(jié)部分,白點(diǎn)表示非調(diào)節(jié)部分。
圖2 LACNN調(diào)節(jié)過(guò)程示意圖
局部參數(shù)調(diào)節(jié)使網(wǎng)絡(luò)的殘差快速下降到一個(gè)很小的值,能夠滿(mǎn)足傳統(tǒng)CNN對(duì)識(shí)別精度的要求。然而,在不改變Epoch的情況下,LACNN會(huì)繼續(xù)迭代,每一次參數(shù)的更新都會(huì)使網(wǎng)絡(luò)的實(shí)際輸出與理想輸出更接近。局部調(diào)節(jié)使整個(gè)網(wǎng)絡(luò)不斷向收斂的方向靠近,最終停留在一個(gè)比全局調(diào)節(jié)更接近極限收斂的位置,從而使整個(gè)網(wǎng)絡(luò)的識(shí)別精度有所提升,因此,局部參數(shù)調(diào)節(jié)卷積神經(jīng)網(wǎng)絡(luò)不僅可以節(jié)省網(wǎng)絡(luò)的收斂時(shí)間,而且對(duì)網(wǎng)絡(luò)的識(shí)別精度也有一定的提高。
H=sigmoid(Xi×Wi+bi),1≤i≤n
(3)
(4)
式(4)中差異矩陣E是網(wǎng)絡(luò)實(shí)際輸出與期望輸出之間的差值,矩陣的元素值越大代表相應(yīng)的特征點(diǎn)的實(shí)際輸出與期望輸出差異越大,說(shuō)明特征提取的效果越不理想。差異矩陣E中的元素分布并不均勻,其中少數(shù)大元素值組成了代價(jià)函數(shù)的主要部分,其他多數(shù)元素對(duì)代價(jià)函數(shù)的影響很小。這些元素在參數(shù)調(diào)節(jié)時(shí)發(fā)揮的作用也不同,小的元素對(duì)應(yīng)的神經(jīng)元的參數(shù)需要的修正量很小,而其他的參數(shù)需要的修正量很大。但是為了避免代價(jià)函數(shù)的逆增長(zhǎng),只能選擇一個(gè)較小的學(xué)習(xí)率對(duì)參數(shù)進(jìn)行修正。這種全局參數(shù)同時(shí)調(diào)節(jié)的方法限制了網(wǎng)絡(luò)在大差異性參數(shù)上的調(diào)節(jié)能力。本文根據(jù)差異矩陣中的元素對(duì)代價(jià)函數(shù)的影響不同,將其分成關(guān)鍵元素和非關(guān)鍵元素進(jìn)行局部參數(shù)調(diào)節(jié)。首先對(duì)差異矩陣變形,設(shè)置元素閾值K,剔除非關(guān)鍵因素。假設(shè)差異矩陣為:
則:
1≤i≤m,1≤j≤n
(5)
式(5)中閾值的功能是保留差異矩陣E中大于K的元素值,所有不大于K值的元素全部設(shè)置為零。經(jīng)過(guò)閾值過(guò)濾后的矩陣E*中所有的元素值都大于K。矩陣E*中的元素與分類(lèi)殘差直接相關(guān),其大小反映了識(shí)別的準(zhǔn)確程度。以矩陣E*為基礎(chǔ),設(shè)置動(dòng)態(tài)學(xué)習(xí)率ξ:
(6)
其中,к表示學(xué)習(xí)率變化權(quán)重,可以根據(jù)需要設(shè)置,經(jīng)實(shí)驗(yàn)測(cè)試一般選在2~5較合適,p為aij(1≤i≤m,1≤j≤n)中所有不為零元素的個(gè)數(shù)。由式(6)可知,動(dòng)態(tài)學(xué)習(xí)率的值總是和差異矩陣中元素值較大的那部分元素有關(guān),保證其盡可能大地調(diào)節(jié)參數(shù)。而且動(dòng)態(tài)學(xué)習(xí)率是根據(jù)分類(lèi)的差異性自動(dòng)生成的,它并不是一成不變的,會(huì)隨著迭代的增加而變小,在迭代的后期學(xué)習(xí)率會(huì)以很小的變化調(diào)節(jié)參數(shù),防止代價(jià)函數(shù)出現(xiàn)反向增長(zhǎng)的現(xiàn)象,因此相比設(shè)置較小的固定學(xué)習(xí)率,動(dòng)態(tài)學(xué)習(xí)率更適應(yīng)自動(dòng)調(diào)節(jié)的需求。
在進(jìn)行參數(shù)調(diào)節(jié)時(shí),為避免前面各層神經(jīng)元節(jié)點(diǎn)對(duì)應(yīng)參數(shù)修正過(guò)度,造成代價(jià)函數(shù)無(wú)法收斂或者震蕩收斂的現(xiàn)象,需要對(duì)各層輸出進(jìn)行替換,假設(shè)有s層網(wǎng)絡(luò),第s層的輸出H由變形矩陣E*與期望輸出y相加所得:
H=E*+y
(7)
其他層輸出Xl(1≤l≤s)通過(guò)下式獲得:
Xl=Z(sigmoid-1(Xl+1))-1,1≤l≤s
(8)
式(8)中Xl是l層輸出的集合(當(dāng)l=s時(shí),Xl+1=H),Z是中間函數(shù)(Z=(Xl×Wl+bl))。這時(shí)輸出Xl中對(duì)識(shí)別殘差影響較大的神經(jīng)元得到強(qiáng)化,其他的被弱化或者剔除。輸出的更新確定了參數(shù)的修正需求,接著需要確定參數(shù)的修正量。確定修正量需要代價(jià)函數(shù):
(9)
J(W,b,x)是網(wǎng)絡(luò)輸出與期望輸出差值的平方,與權(quán)重和偏置的調(diào)節(jié)息息相關(guān)。根據(jù)J(W,b,x)用鏈?zhǔn)角髮?dǎo)法則求偏置b和權(quán)重W的偏導(dǎo),得出b和W的梯度下降方向:
1≤l≤s
(10)
1≤l≤s
(11)
(12)
(13)
注意,由于xl經(jīng)過(guò)強(qiáng)化或者弱化處理,這時(shí)的W和b并不都存在修正量,部分ΔW、Δb的值為0或者很小的值,只有調(diào)節(jié)需求較高的參數(shù)保持大的修正量。最后,對(duì)所有需要調(diào)節(jié)的參數(shù)進(jìn)行更新:
Wl+1=Wl-ΔW
(14)
bl+1=bl-Δb
(15)
其中,Wl+1、bl+1表示迭代后的權(quán)重和偏置。至此,參數(shù)調(diào)節(jié)一次,迭代過(guò)程結(jié)束。局部調(diào)節(jié)卷積神經(jīng)網(wǎng)絡(luò)流程如圖3所示。
圖3 分步式動(dòng)態(tài)卷積神經(jīng)網(wǎng)絡(luò)流程
在圖3中,Maxloop、Maxtrain分別表示最大迭代次數(shù)和樣本的最大批量,ζ是代價(jià)函數(shù)的閾值。局部調(diào)節(jié)卷積神經(jīng)網(wǎng)絡(luò)突破了固定步長(zhǎng)的限制,運(yùn)用動(dòng)態(tài)學(xué)習(xí)率和局部神經(jīng)元參數(shù)更新,可以加快代價(jià)函數(shù)的收斂,在迭代前期就能達(dá)到其他深度網(wǎng)絡(luò)迭代后期才能達(dá)到的效果,變相減少了網(wǎng)絡(luò)訓(xùn)練時(shí)間。
本文實(shí)驗(yàn)在Matlab R2014a進(jìn)行,計(jì)算機(jī)型號(hào)為Intel(R)Core(TM)i7-3610M 3.8 GHz,內(nèi)存8 GB。實(shí)驗(yàn)選擇手寫(xiě)數(shù)據(jù)集mnist數(shù)據(jù)庫(kù)、人臉數(shù)據(jù)集ORL和LFW、圖像分類(lèi)集CIFAR-10上進(jìn)行本文方法的驗(yàn)證。
手寫(xiě)數(shù)據(jù)集mnist包含70 000個(gè)手寫(xiě)數(shù)字的圖像數(shù)據(jù),其中60 000個(gè)訓(xùn)練樣本集和10 000個(gè)測(cè)試樣本集,每個(gè)圖像集都有對(duì)應(yīng)的標(biāo)簽,用以表示圖像所對(duì)應(yīng)的數(shù)字。為了驗(yàn)證改進(jìn)算法的效果,選擇近年來(lái)幾種比較成功的改進(jìn)CNN算法進(jìn)行對(duì)照實(shí)驗(yàn),包括DAP、UCNN、S_2a_FFT,實(shí)驗(yàn)中的各種CNN,統(tǒng)一設(shè)置成6C-2S-12C-2S的網(wǎng)絡(luò)結(jié)構(gòu),卷積核的大小為5×5和3×3,激勵(lì)函數(shù)選擇sigmoid,輸出層使用softmax函數(shù)把結(jié)果歸一為0~1。實(shí)驗(yàn)將mnist數(shù)據(jù)集的訓(xùn)練樣本集分成幾種不同的規(guī)模(10 000、30 000、50 000、60 000),以50個(gè)樣本為一個(gè)batch,參數(shù)沖量為0.9,對(duì)不同規(guī)模的訓(xùn)練樣本所得的結(jié)果作對(duì)比。
圖4是不同的改進(jìn)CNN在訓(xùn)練中對(duì)代價(jià)函數(shù)變化的影響。根據(jù)圖4可以得出:本文算法對(duì)于代價(jià)函數(shù)的收斂改進(jìn)較大,在迭代300次以后就能達(dá)到DAP在600次所達(dá)到的結(jié)果,且其圖線比UCNN和S_2a_FFT陡,說(shuō)明改進(jìn)以后的算法在代價(jià)函數(shù)上收斂更快。本文算法代價(jià)函數(shù)的收斂值比DAP、UCNN和S_2a_FFT代價(jià)函數(shù)圖像的收斂值更低,說(shuō)明在其他算法收斂時(shí),本文算法仍可以繼續(xù)對(duì)參數(shù)進(jìn)行調(diào)節(jié)。
圖4 mnist數(shù)據(jù)集上的代價(jià)函數(shù)變化曲線
表1是各算法在不同訓(xùn)練樣本量的手寫(xiě)數(shù)字集下的測(cè)試識(shí)別率和時(shí)間的關(guān)系。從表1可知,本文的局部調(diào)節(jié)卷積神經(jīng)網(wǎng)絡(luò)在訓(xùn)練樣本量為10 000時(shí),識(shí)別率為46.74%,比DAP、UCNN和S_2a_FFT分別高13.62%、26.24%和27.49%,在訓(xùn)練樣本量為60 000時(shí)識(shí)別率達(dá)到93.63%,比最高的DAP高出0.76%。雖然在處理速度上不如加速網(wǎng)絡(luò)結(jié)構(gòu)收斂快,但是其在識(shí)別率上的提升彌補(bǔ)這一不足。而且在訓(xùn)練樣本量少的情況下,本文算法在識(shí)別率上的提升極為顯著。
表1 不同算法在mnist數(shù)據(jù)集上的測(cè)試識(shí)別率和識(shí)別時(shí)間
圖5和圖6表明了在達(dá)到同樣測(cè)試識(shí)別率的情況下,各算法對(duì)訓(xùn)練樣本量和和時(shí)間的要求。如圖5所示,局部調(diào)節(jié)卷積神經(jīng)網(wǎng)絡(luò)在識(shí)別率上的收斂效果要比其他改進(jìn)CNN更加明顯。在識(shí)別率為80%時(shí)算法所需最少訓(xùn)練樣本量實(shí)驗(yàn)中,局部調(diào)節(jié)卷積神經(jīng)網(wǎng)絡(luò)要比UCNN和S_2a_FFT少12 000個(gè)訓(xùn)練樣本左右,在識(shí)別率為88%時(shí)可以節(jié)省20 000個(gè)訓(xùn)練樣本左右。說(shuō)明在同樣的識(shí)別要求下,局部調(diào)節(jié)卷積神經(jīng)網(wǎng)絡(luò)需要的訓(xùn)練樣本更少,因此,可以減少網(wǎng)絡(luò)的運(yùn)算量,節(jié)省時(shí)間。圖6表示在相同的識(shí)別率下不同算法所需要的最少時(shí)間。從圖6可知,本文算法在進(jìn)行識(shí)別時(shí)達(dá)到相應(yīng)的識(shí)別率所用的時(shí)間比另外3種改進(jìn)方案明顯減少。
圖5 訓(xùn)練樣本量和識(shí)別率關(guān)系
圖6 識(shí)別率和耗時(shí)關(guān)系
人臉識(shí)別數(shù)據(jù)集是由劍橋大學(xué)拍攝的由一系列人臉圖像組成的數(shù)據(jù)集合,共有400幅人臉圖像,包括40位不同年齡和種族的人,每人10幅,大小為112×92像素。ORL是目前人臉識(shí)別中使用最廣泛的人臉數(shù)據(jù)集之一,其大多數(shù)圖像的光照方向和強(qiáng)度相差不大,只有少許的表情姿勢(shì)伸縮的變化。ORL人臉庫(kù)的部分圖像如圖7所示。
圖7 ORL人臉數(shù)據(jù)集的部分面部圖像
將ORL數(shù)據(jù)庫(kù)中40人的圖像每人抽出5幅作為訓(xùn)練集,5幅作為測(cè)試集,這樣就會(huì)有200張訓(xùn)練樣本和200張測(cè)試樣本。實(shí)驗(yàn)時(shí)需要對(duì)人臉圖像額外增加相應(yīng)的標(biāo)簽矩陣用以表明圖像的類(lèi)別。實(shí)驗(yàn)中把數(shù)據(jù)集中的人臉圖像縮小成48×48像素大小的矩陣,輸入卷積神經(jīng)網(wǎng)絡(luò)。由于人臉的復(fù)雜度比手寫(xiě)數(shù)字要高,所有參與實(shí)驗(yàn)的CNN網(wǎng)絡(luò)結(jié)構(gòu)均為10C-2S-25C-2S-40C-2S,10個(gè)樣本為一個(gè)batch,參數(shù)沖量為0.9。實(shí)驗(yàn)結(jié)果如圖8所示。
圖8 ORL數(shù)據(jù)集上的代價(jià)函數(shù)變化曲線
圖8表示不同的算法在ORL上訓(xùn)練時(shí)代價(jià)函數(shù)變化情況,它反映了各種算法在參數(shù)調(diào)節(jié)時(shí)對(duì)代價(jià)函數(shù)的改變過(guò)程。從圖8可知,與S_2a_FFT、DAP和CCNN相比,本文算法代價(jià)函數(shù)的收斂值依然保持最小,而且相對(duì)于迭代后期,本文算法在樣本量較少時(shí)對(duì)代價(jià)函數(shù)收斂性的提升更加明顯。
為了進(jìn)一步探究幾種算法在人臉數(shù)據(jù)庫(kù)上有關(guān)識(shí)別率和相應(yīng)耗時(shí)的關(guān)系,對(duì)算法進(jìn)行不同Epoch下的識(shí)別率和耗時(shí)實(shí)驗(yàn)。
由表2可知,隨著迭代次數(shù)的增加,4種算法的識(shí)別率都有不同層次的增加,本文的局部調(diào)節(jié)卷積神經(jīng)網(wǎng)絡(luò)在Epoch為10時(shí)識(shí)別率已達(dá)到89.16%,比其他算法達(dá)到相同識(shí)別率所需要的Epoch更少,說(shuō)明其收斂的速度比其他網(wǎng)絡(luò)更快。在Epoch為100時(shí),本文算法的識(shí)別率在4種算法中僅比CCNN少,相差0.12%。但從耗時(shí)上來(lái)看,局部調(diào)節(jié)卷積神經(jīng)網(wǎng)絡(luò)比CCNN節(jié)省60.97 s,相當(dāng)于節(jié)省23.55%。S_2a_FFT在運(yùn)算時(shí)間上有所改進(jìn),但是其識(shí)別率在相同的條件下是最低的。DAP兼顧耗時(shí)和識(shí)別率,取S_2a_FFT和CCNN的折中,但是和本文算法相比仍有差距。
表2 不同算法在ORL數(shù)據(jù)集上的識(shí)別率和識(shí)別時(shí)間
為了證明算法的適用性,本文又選擇2種比較常見(jiàn)的圖像數(shù)據(jù)集CIFAR-10和LFW對(duì)算法進(jìn)行實(shí)驗(yàn)。CIFAR-10包含10種物體的60 000幅圖像,其中,50 000幅訓(xùn)練數(shù)據(jù),10 000幅測(cè)試數(shù)據(jù)。LFW包含5 749人的13 233幅帶標(biāo)簽的人臉圖像。CIFAR-10和LFW都是圖像識(shí)別中最常用的幾個(gè)數(shù)據(jù)集,作為實(shí)驗(yàn)數(shù)據(jù)很有必要。CIFAR-10和LFW數(shù)據(jù)集中的圖像都是彩色的,實(shí)驗(yàn)時(shí)要先轉(zhuǎn)化成灰度圖像。為了驗(yàn)證算法在相同識(shí)別率下耗時(shí)上的優(yōu)勢(shì),統(tǒng)計(jì)算法在達(dá)到相同訓(xùn)練識(shí)別率的基礎(chǔ)上,所需最少樣本的訓(xùn)練時(shí)間,即在CIFAR-10上所有算法達(dá)到識(shí)別率接近90.00%(±0.05%)的最少時(shí)間和在LFW上達(dá)到87.00%(±0.05%)的時(shí)間。
從表3和表4中可知,在CIFAR-10識(shí)別率達(dá)到90.00%(±0.05%)時(shí),本文算法所用最短時(shí)間為343.57 s,分別比Bocw-Net、CCNN和RCNN少247.08 s、130.39 s和129.26 s,相比于Bocw-Net節(jié)省了41.83%的時(shí)間。同樣地在LFW上識(shí)別率達(dá)到87.00%(±0.05%)時(shí),本文算法用時(shí)也是最少的,分別比Bocw-Net、CCNN和RCNN少77.96 s、59.58 s和24.39 s。由實(shí)驗(yàn)可知,局部調(diào)節(jié)卷積神經(jīng)網(wǎng)絡(luò)主要是通過(guò)調(diào)節(jié)參數(shù)更新時(shí)的修正量,使參數(shù)能夠快速收斂,在少量的迭代下就能達(dá)到多次迭代的效果,變相地節(jié)省了訓(xùn)練的運(yùn)算時(shí)間。
表3 各算法在CIFAR-10和LFW上的識(shí)別率 %
表4各算法在CIFAR-10上達(dá)到90%(±0.05%)和LFW上達(dá)到87%(±0.05%)的最短時(shí)間s
數(shù)據(jù)集Bocw-Net算法CCNN算法RCNN算法本文算法CIFAR-10590.65473.96472.83343.57LFW287.73269.35234.16209.77
本文通過(guò)分析傳統(tǒng)改進(jìn)卷積神經(jīng)網(wǎng)絡(luò)在圖像分類(lèi)識(shí)別中參數(shù)調(diào)節(jié)慢、迭代次數(shù)多、訓(xùn)練時(shí)間長(zhǎng)等問(wèn)題,提出一種能夠提高參數(shù)調(diào)節(jié)幅度、加快網(wǎng)絡(luò)收斂的改進(jìn)卷積神經(jīng)網(wǎng)絡(luò)方法。通過(guò)設(shè)置動(dòng)態(tài)學(xué)習(xí)率和局部參數(shù)調(diào)節(jié)等方式實(shí)現(xiàn)了參數(shù)的快速調(diào)節(jié)。在mnist、ORL、CIFAR-10和LFW上的實(shí)驗(yàn)結(jié)果證明,局部調(diào)節(jié)卷積神經(jīng)網(wǎng)絡(luò)可以快速地降低網(wǎng)絡(luò)的殘差值,在達(dá)到相同的訓(xùn)練識(shí)別率時(shí)所需的迭代次數(shù)更少,節(jié)省了訓(xùn)練時(shí)間。