肖堃
(電子科技大學(xué) 計算機(jī)科學(xué)與工程學(xué)院,四川 成都 611731)
深度學(xué)習(xí)從大類上可以歸入神經(jīng)網(wǎng)絡(luò),不過在具體實現(xiàn)中有許多變化。深度學(xué)習(xí)的核心是特征學(xué)習(xí),旨在通過分層網(wǎng)絡(luò)獲取分層次的特征信息,從而解決以往需要人工設(shè)計特征的重要難題[1-2]。深度學(xué)習(xí)是一個框架,包含卷積神經(jīng)網(wǎng)絡(luò)、稀疏編碼器、自動編碼器等多個重要算法。針對不同問題,需要選取的網(wǎng)絡(luò)模型達(dá)到的處理效果也各不相同[3]。
由于圖像特征數(shù)目過少,可能無法精確地實現(xiàn)分類,即欠擬合,也不會由于提取的特征數(shù)目過多,導(dǎo)致分類過程中過于注重某個特征出現(xiàn)分類錯誤,即過擬合。卷積神經(jīng)網(wǎng)絡(luò)不需要做大量的特征提取和特征選擇工作,只需要在其訓(xùn)練完成后,將需要處理的問題輸入,即可得到一個較好的擬合效果[4-5]。
針對當(dāng)前方法在圖像識別領(lǐng)域應(yīng)用過程中容易受到物體形狀、位移、尺度、光照、背景等因素的影響導(dǎo)致識別準(zhǔn)確率不高,魯棒性較低、方法可移植性較差的缺點,本文提出了基于多層卷積神經(jīng)網(wǎng)絡(luò)深度學(xué)習(xí)算法的圖像識別方法,并分析了該方法在圖像識別領(lǐng)域的可移植性。
多層卷積神經(jīng)網(wǎng)絡(luò)深度學(xué)習(xí)模型是由多層感知機(jī)演變而來的,主要包括輸入圖像局部感受野、圖像權(quán)值共享及圖像時間/空間下采樣3個部分,這3部分操作的最終目的是為了保證多層卷積神經(jīng)網(wǎng)絡(luò)能夠?qū)W習(xí)到輸入圖像的更多細(xì)節(jié)特征,大大減少了神經(jīng)元個數(shù),使得輸入圖像具有形狀、尺度及位移不變性,同時又能夠減少輸入圖像的分辨率,降低計算復(fù)雜性,縮小搜索空間,更有利于圖像識別[6-7]。
本文使用了6層卷積神經(jīng)模型,包括卷積層、池化層、卷積層、池化層、下采樣層、全連接層以及輸出層,如圖1所示。并采用3×3的卷積核進(jìn)行了10次迭代。
圖1 卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)Fig.1 Structure of convolutional neural network
訓(xùn)練過程包括數(shù)據(jù)訓(xùn)練和對應(yīng)的類別標(biāo)簽訓(xùn)練。在模型初始化設(shè)置過程中,多層卷積神經(jīng)網(wǎng)絡(luò)深度學(xué)習(xí)模型的參數(shù)多為一些較小的、各部分相同的隨機(jī)數(shù),不僅能夠保證模型不會進(jìn)入過于飽和狀態(tài),而且還能保證模型具有較強(qiáng)的學(xué)習(xí)能力。多層卷積神經(jīng)網(wǎng)絡(luò)深度學(xué)習(xí)模型的訓(xùn)練方法與BP神經(jīng)網(wǎng)絡(luò)(BP neural network)模型的訓(xùn)練方法類似,主要分為2步:1)模型的前向傳播,將訓(xùn)練圖像數(shù)據(jù)中的任意一個樣本(Xp,Yp)輸入模型中,通過多層卷積神經(jīng)網(wǎng)絡(luò)深度學(xué)習(xí),計算得到模型輸出層的實際輸出值,即最終的識別結(jié)果[8-9],具體計算公式描述為:
Op=Fn(L(F2(F1(OpW1)W2))LWn)
(1)
式中:F1、F2、LFn和W1、W2、LWn分別表示多層卷積神經(jīng)網(wǎng)絡(luò)深度學(xué)習(xí)模型中的一組濾波器及其對應(yīng)權(quán)值;n為模型中包含的訓(xùn)練數(shù)據(jù)個數(shù)。
根據(jù)式(1)計算得到模型輸出層的實際輸出值Op與期望輸出值Yp之間的誤差大小,采用極小化規(guī)則反向傳播方法調(diào)整多層卷積神經(jīng)網(wǎng)絡(luò)深度學(xué)習(xí)模型中的對應(yīng)參數(shù)。具體過程如下:
1)極小化規(guī)則反向傳播方法。
①前向傳播。
采用平方誤差代價函數(shù)計算模型輸出層的實際輸出值Op與期望輸出值Yp之間的誤差大小。假設(shè)訓(xùn)練的輸入圖像數(shù)據(jù)有N個,對應(yīng)的類別標(biāo)簽有C個,則可得模型訓(xùn)練整體誤差En的計算公式:
(2)
如果只考慮單個訓(xùn)練數(shù)據(jù),則可得多層卷積神經(jīng)網(wǎng)絡(luò)深度學(xué)習(xí)模型中第n個訓(xùn)練數(shù)據(jù)的誤差為:
(3)
根據(jù)上述計算可得當(dāng)前模型第l層的輸出值為:
Xl=f(ul)
(4)
ul=WlXl-1+b
(5)
式中:f(g)為模型輸出激活函數(shù),用于獲得待識別圖像特征圖;Wl為模型第l層訓(xùn)練數(shù)據(jù)的權(quán)值矩陣;Xl-1為當(dāng)前模型第l-1層的輸出;b為模型偏置項。 ②模型反向傳播過程中,模型中每個神經(jīng)元對于誤差偏置項的靈敏度計算公式:
(6)
(7)
式中:?E/?u為模型誤差對于輸入圖像數(shù)據(jù)u的導(dǎo)數(shù)。則可得模型反向傳播過程中第l層神經(jīng)元偏置項靈敏度計算公式為:
δl=(Wl+1)Tδl+1⊙f(ul)
(8)
式中:δl+1為模型第l+1層神經(jīng)元偏置項靈敏度;⊙表示模型中每個元素相乘。
對于誤差函數(shù),模型輸出層的偏置項靈敏度與上述計算略有不同,表示為:
δl=f(ul)⊙(yn-tn)
(9)
在上述計算基礎(chǔ)上,采用delta法則,實時更新多層卷積神經(jīng)網(wǎng)絡(luò)深度學(xué)習(xí)模型的各神經(jīng)元權(quán)值,計算公式為:
(10)
(11)
式中η為模型的學(xué)習(xí)率。
2)模型中下采樣層權(quán)值更新。
對于模型中的下采樣層,輸入的特征圖數(shù)目與輸出的特征圖數(shù)目相等,即:
(12)
下采樣層神經(jīng)元偏置項靈敏度,即對輸入圖像做降采樣處理:
(13)
式中down(·)表示下采樣函數(shù)。
模型中下采樣層權(quán)值更新方法與卷積層權(quán)值更新方法類似,計算公式為:
(14)
在上述多層卷積神經(jīng)網(wǎng)絡(luò)深度學(xué)習(xí)模型訓(xùn)練完成基礎(chǔ)上,為了提高該模型在圖像識別過程中的準(zhǔn)確率,引入Fisher準(zhǔn)則,提出了基于類內(nèi)距離和類間距離的能量函數(shù)[10-11],計算公式為:
J=R+γJ1-ηJ2
(15)
式中:R為多層卷積神經(jīng)網(wǎng)絡(luò)深度學(xué)習(xí)模型的代價函數(shù);γ為能量函數(shù)調(diào)節(jié)參數(shù);J1為待識別圖像樣本之間的相似度函數(shù);J2為待識別圖像類別標(biāo)簽之間的相似度函數(shù)。
在充分考慮類內(nèi)距離J1和類間距離能量函數(shù)J2的基礎(chǔ)上,計算模型輸出層各個輸出單元的殘差,使得模型權(quán)值能更加快速收斂到有利于圖像識別的最優(yōu)值[12],計算公式為:
(16)
(17)
式中M(i′)為待識別圖像第i′類樣本的均值。根據(jù)式(17)即可找到有利于圖像識別的最優(yōu)權(quán)值,將該權(quán)值計算結(jié)果代入式(17)中,即可獲得圖像識別結(jié)果,該理論分析結(jié)果證明多層卷積神經(jīng)網(wǎng)絡(luò)深度學(xué)習(xí)算法具有可移植性。
硬件環(huán)境:3.4 GHz雙核處理器,4 GB內(nèi)存,M40顯卡,Ubuntu14.04操作系統(tǒng)。
軟件環(huán)境:C++編譯器。
為檢驗多層卷積神經(jīng)網(wǎng)絡(luò)深度學(xué)習(xí)算法在圖像識別領(lǐng)域應(yīng)用的可移植性,隨機(jī)選取PASCAL VOC2007數(shù)據(jù)庫中的2 750張圖片,6個類別標(biāo)簽作為測試集,如表1所示。
表1 實驗測試數(shù)據(jù)集Table 1 Experimental test data set
選取識別準(zhǔn)確率、魯棒性、以及識別耗時3項指標(biāo)作為評價指標(biāo),識別表1中的6種圖像類型,測試基于多層卷積神經(jīng)網(wǎng)絡(luò)深度學(xué)習(xí)算法的圖像識別方法的有效性,測試結(jié)果如表2所示。
從表2中可以看出,采用多層卷積神經(jīng)網(wǎng)絡(luò)深度學(xué)習(xí)算法識別6種不同類型圖像的平均準(zhǔn)確率為96.3%;識別6種不同類型圖像的平均魯棒性為96.8%;識別6種不同類型圖像的平均耗時為17.8 ms。這是由于所提方法在訓(xùn)練完多層卷積神經(jīng)網(wǎng)絡(luò)深度學(xué)習(xí)模型基礎(chǔ)上,引入Fisher準(zhǔn)則,并提出了基于類內(nèi)距離和類間距離的能量函數(shù),使得模型權(quán)值能夠更加快速收斂到有利于圖像識別的最優(yōu)值,大大提高了6種不同類型圖像識別準(zhǔn)確率和魯棒性,同時加快了識別速度,平均識別耗時均達(dá)到毫秒級。假設(shè)道路上發(fā)生交通事故,所提方法具有毫秒級處理速度,有利于決策者及時作出應(yīng)對措施,避免交通事故造成的經(jīng)濟(jì)損失和人員傷亡。
為了進(jìn)一步檢驗所提方法的有效性和可移植性,選取比較復(fù)雜的人臉圖像和容易受光照、背景、位移等影響的車輛圖像作為訓(xùn)練樣本,訓(xùn)練樣本中喜歡、憤怒、悲傷、快樂4種表情各200張,受背景干擾、光照干擾、噪聲干擾和霧霾干擾的車輛各250張,其中部分樣本示例如圖2和圖3所示,采用所提方法識別4類人臉圖像和4類不同類型干擾車輛圖像,測試結(jié)果如圖4和圖5所示。
圖2 人臉圖像訓(xùn)練樣本Fig.2 Face image training sample
圖3 車輛圖像訓(xùn)練樣本Fig.3 Vehicle image training sample
分析圖4和圖5的實驗結(jié)果可以發(fā)現(xiàn),采用所提方法無論是識別具有復(fù)雜表情的人臉圖像訓(xùn)練樣本,還是具有各種干擾因素影響的車輛圖像訓(xùn)練樣本均取得了較好的成果,識別準(zhǔn)確率和魯棒性均較高,識別耗時較少。這是由于所提方法構(gòu)建的識別模型中包括輸入圖像局部感受野、圖像權(quán)值共享以及圖像時間/空間下采樣3個部分,這3部分操作保證了多層卷積神經(jīng)網(wǎng)絡(luò)能夠?qū)W習(xí)到輸入圖像的更多細(xì)節(jié)特征,大大減少神經(jīng)元個數(shù),使得輸入圖像具有形狀、尺度以及位移不變性,同時又能夠減少輸入圖像的分辨率、降低計算復(fù)雜性、縮小搜索空間,更有利于識別。通過多層卷積神經(jīng)網(wǎng)絡(luò)深度學(xué)習(xí)算法對樣本數(shù)據(jù)進(jìn)行多次迭代訓(xùn)練,通過分類器輸出訓(xùn)練后的實驗樣本,降低了原始數(shù)據(jù)的偏置程度,以提高實驗結(jié)果的準(zhǔn)確性。
圖4 人臉圖像訓(xùn)練樣本的識別結(jié)果Fig.4 Recognition results of face image training samples
圖5 車輛圖像訓(xùn)練樣本的識別結(jié)果Fig.5 Recognition results of vehicle image training samples
上述實驗結(jié)果表明,多層卷積神經(jīng)網(wǎng)絡(luò)深度學(xué)習(xí)算法應(yīng)用在圖像識別領(lǐng)域具有可移植性,這與上述理論分析結(jié)果一致。
1)本文提出了基于多層卷積神經(jīng)網(wǎng)絡(luò)深度學(xué)習(xí)算法的圖像識別方法,利用模型權(quán)值共享、更新、下采樣等操作對輸入圖像做降采樣處理,有效降低了計算復(fù)雜度。
2)利用delta法則、Fisher準(zhǔn)則以及基于類內(nèi)距離和類間距離的能量約束函數(shù)實時調(diào)整多層卷積神經(jīng)網(wǎng)絡(luò)深度學(xué)習(xí)模型參數(shù),計算模型輸出層各個輸出單元的殘差,讓模型權(quán)值能夠更加快速收斂到有利于圖像識別的最優(yōu)值。
3)本文實現(xiàn)了所提出的算法,并隨機(jī)選取PASCAL VOC2007數(shù)據(jù)庫中的圖片,從理論和實驗兩方面證明了所提方法的可移植性。