呂 伏 劉 鐵
1(遼寧工程技術(shù)大學(xué)基礎(chǔ)教學(xué)部 遼寧 葫蘆島 125105)2(遼寧工程技術(shù)大學(xué)軟件學(xué)院 遼寧 葫蘆島 125105)
深度學(xué)習(xí)(Deep Learning)[1]作為統(tǒng)計(jì)機(jī)器學(xué)習(xí)(Statistical Machine Learning)的重要分支,是目前人工智能領(lǐng)域備受關(guān)注的研究熱點(diǎn)。卷積神經(jīng)網(wǎng)絡(luò)作為深度學(xué)習(xí)的重要推動(dòng)力,近年來取得了重大的突破,在計(jì)算機(jī)視覺、自然語言處理和遙感圖像理解等領(lǐng)域有出色的表現(xiàn),被廣泛地應(yīng)用。
Hinton等[2]提出深度置信網(wǎng)絡(luò)(DBN),它是含多隱藏層、多感知器的一種網(wǎng)絡(luò)結(jié)構(gòu),DBN強(qiáng)大的特征提取能力和“逐層初始化”特有的訓(xùn)練模式,有效地降低了Deep Learning模型的訓(xùn)練難度。與淺層學(xué)習(xí)模型相比,Deep Learning模型有更深的網(wǎng)絡(luò)層次,通過構(gòu)建復(fù)雜的非線性網(wǎng)絡(luò)模型,對輸入數(shù)據(jù)的特征進(jìn)行分層學(xué)習(xí),實(shí)現(xiàn)圖像特征的有效提取,最后把低層學(xué)習(xí)到的特征組合為高層抽象的圖像特征,完成對輸入數(shù)據(jù)的分類識別。
深度置信網(wǎng)絡(luò)的提出是深度學(xué)習(xí)發(fā)展史上的一個(gè)里程碑,從此,深度學(xué)習(xí)快速發(fā)展,并被應(yīng)用到眾多領(lǐng)域中。在圖像識別過程中,為了解決特征提取困難、無法滿足實(shí)時(shí)性要求等問題,Liu等[3]通過構(gòu)建自適應(yīng)增強(qiáng)模型,針對分類誤差進(jìn)行有目的的訓(xùn)練,實(shí)現(xiàn)了卷積神經(jīng)網(wǎng)絡(luò)模型的優(yōu)化調(diào)整和分類特征的自適應(yīng)增強(qiáng),并且網(wǎng)絡(luò)的收斂性能和識別精度有較大的提高。Liu等[4]提出一種結(jié)合無監(jiān)督和有監(jiān)督學(xué)習(xí)的網(wǎng)絡(luò)權(quán)值預(yù)訓(xùn)練方法,實(shí)驗(yàn)驗(yàn)證該算法在解決訓(xùn)練過程中易收斂于局部最優(yōu)值的問題上優(yōu)于現(xiàn)有算法。Gao等[5]在卷積神經(jīng)網(wǎng)絡(luò)模型AlexNet[6]的基礎(chǔ)上,提出了對數(shù)據(jù)集采用數(shù)據(jù)增強(qiáng)等預(yù)處理方法。實(shí)驗(yàn)結(jié)果表明,識別準(zhǔn)確率和識別速度有一定的提升。Song等[7]提出基于深度神經(jīng)網(wǎng)絡(luò)模型的手寫體圖像識別方法,讓機(jī)器自動(dòng)學(xué)習(xí)特征,并在此基礎(chǔ)之上改進(jìn)成本函數(shù),加入Dropout[8]防止過擬合,實(shí)驗(yàn)結(jié)果表明,該方法對手寫體數(shù)字的識別有更加快速準(zhǔn)確的識別效果,在識別準(zhǔn)確率和實(shí)時(shí)性方面均有提高。He等[9]在漢字識別過程中結(jié)合卷積神經(jīng)網(wǎng)絡(luò),取得了較好的識別效果并降低了訓(xùn)練時(shí)間。Chen等[10]提出的手寫體數(shù)字識別模型,有較好的識別精度,模型的識別能力甚至超過了人類的識別能力。但是目前深度學(xué)習(xí)模型仍然具有收斂速度慢、識別精度不高、泛化性不足等問題。
學(xué)習(xí)率是一個(gè)非常重要的模型訓(xùn)練超參數(shù),決定了迭代的步長。學(xué)習(xí)率過大會使代價(jià)函數(shù)直接越過全局最優(yōu)點(diǎn),使最優(yōu)解在極值點(diǎn)附近來回震蕩;學(xué)習(xí)率過小會使代價(jià)函數(shù)的變化速度很慢,增加網(wǎng)絡(luò)模型收斂的復(fù)雜度,并很容易使最優(yōu)解收斂于局部最小值?,F(xiàn)有的神經(jīng)網(wǎng)絡(luò)模型,學(xué)習(xí)率一般是隨著迭代次數(shù)進(jìn)行衰減,這對神經(jīng)網(wǎng)絡(luò)模型的收斂速度和識別精度有很大的影響。因此在網(wǎng)絡(luò)模型的訓(xùn)練過程中動(dòng)態(tài)調(diào)整學(xué)習(xí)率就顯得非常重要。
受文獻(xiàn)[11]的啟發(fā),為了進(jìn)一步提高深度卷積神經(jīng)網(wǎng)絡(luò)的收斂速度、識別精度以及網(wǎng)絡(luò)模型的泛化能力,本文通過研究深度卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練過程中學(xué)習(xí)率的變化情況,提出一種學(xué)習(xí)率自增強(qiáng)算法,在網(wǎng)絡(luò)訓(xùn)練初期,用大于1的常數(shù)自增強(qiáng)學(xué)習(xí)率,加快網(wǎng)絡(luò)模型向極值點(diǎn)的逼近速度。隨著訓(xùn)練的進(jìn)行,根據(jù)網(wǎng)絡(luò)模型代價(jià)函數(shù)的相對變化率,調(diào)整網(wǎng)絡(luò)模型的學(xué)習(xí)率。實(shí)驗(yàn)表明,該方法可以有效地提高網(wǎng)絡(luò)模型的收斂速度,并使最優(yōu)解在極值點(diǎn)附近的震蕩程度得到極大緩解。
深度卷積神經(jīng)網(wǎng)絡(luò)是一種特殊的多層神經(jīng)網(wǎng)絡(luò)模型,在圖像處理領(lǐng)域有著廣泛的應(yīng)用,深度卷積神經(jīng)網(wǎng)絡(luò)是受動(dòng)物視覺神經(jīng)系統(tǒng)的啟發(fā),用卷積層模擬對特定圖案的響應(yīng),池化層用來模擬動(dòng)物視覺皮層的感受野,一般由輸入層、隱藏層和輸出層組成,如圖1所示。輸入層是未經(jīng)任何處理的二維原始圖像,隱藏層通常為卷積層和池化層的重復(fù)結(jié)構(gòu),輸出層是對特征進(jìn)行分類和識別的結(jié)果,其中特征提取和分類是在隱層中進(jìn)行的。深度卷積神經(jīng)網(wǎng)絡(luò)對圖像的分類識別主要包括兩個(gè)過程,即前向過程和反向過程。前向過程包括特征提取和分類,計(jì)算各個(gè)神經(jīng)元的激勵(lì)值和損失值,而反向傳播主要是權(quán)值更新的過程。前向傳播過程會產(chǎn)生分類誤差,反向過程通過把前向傳播產(chǎn)生的誤差反饋到網(wǎng)絡(luò)模型中從而實(shí)現(xiàn)對權(quán)值和偏置的更新。
圖1 卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
設(shè)卷積層的第i個(gè)輸入數(shù)據(jù)為Ii,卷積核為Wi,各有n個(gè),偏置為Bi,激活函數(shù)為f,則卷積層輸出特征的計(jì)算表達(dá)式為:
(1)
式中:con為卷積函數(shù);Fc為卷積層輸出的特征。
下采樣操作是對卷積輸出的特征做進(jìn)一步的降維處理,并把對應(yīng)輸出輸入到全連接層,全連接層經(jīng)過權(quán)值變換和激活后得到本輪的分類結(jié)果,通過與分類真值比較,得到對應(yīng)的分類誤差。設(shè)全連接層的輸入特征為T,對應(yīng)的權(quán)值為W,偏置為B,激活函數(shù)為f,則全連接層進(jìn)行分類的表達(dá)式為:
F0=f(W*T+B)
(2)
式中:F0為分類結(jié)果矩陣。
在機(jī)器學(xué)習(xí)中,經(jīng)常選擇代價(jià)函數(shù)作為優(yōu)化的目標(biāo)函數(shù)。代價(jià)函數(shù)指的是深度卷積神經(jīng)網(wǎng)絡(luò)模型的預(yù)測值和真實(shí)值之間的誤差。樣本數(shù)據(jù)集的代價(jià)函數(shù)定義為:
(3)
圖2 ReLU函數(shù)圖像
(4)
(5)
深度神經(jīng)網(wǎng)絡(luò)通過反向傳播,將分類誤差反饋到隱層中,使每層中的權(quán)值和偏置得到更新,進(jìn)行下一次循環(huán)迭代時(shí),使用最近更新后的各項(xiàng)參數(shù)進(jìn)行網(wǎng)絡(luò)模型的訓(xùn)練,通過不斷的更新迭代,使網(wǎng)絡(luò)模型中的識別率不斷提高,損失函數(shù)降至最小。設(shè)l為學(xué)習(xí)率,則網(wǎng)絡(luò)模型中的權(quán)值w和偏置b由w1和b1更新為w2和b2的表達(dá)式為:
(6)
(7)
由圖2可知,ReLU激活函數(shù)是分段線性函數(shù),自變量為負(fù)值或0時(shí),函數(shù)值為0,自變量為正值時(shí),函數(shù)值保持不變,這種操作被稱為單側(cè)抑制。在深度卷積神經(jīng)網(wǎng)絡(luò)模型中,由于梯度下降算法鏈?zhǔn)角髮?dǎo)法則的乘法特性,存在梯度消失現(xiàn)象,通過使用ReLU激活函數(shù),可有效地解決因?yàn)檫B乘而導(dǎo)致的梯度消失問題,整個(gè)過程的計(jì)算量較小,并且ReLU激活函數(shù)會使一部分神經(jīng)元的輸出為0,從而獲得網(wǎng)絡(luò)的稀疏性,減少了參數(shù)間相互依存關(guān)系,有效緩解過擬合問題的發(fā)生。但是ReLU激活函數(shù)的輸出不是以0為中心,會使一部分神經(jīng)元的輸出為0,故隨著訓(xùn)練的進(jìn)行,有可能出現(xiàn)神經(jīng)元“死亡”、權(quán)重?zé)o法更新的情況。因此,考慮到以上因素,本文提出學(xué)習(xí)率自增強(qiáng)算法,用大于1的常數(shù)自增強(qiáng)學(xué)習(xí)率,加快網(wǎng)絡(luò)向極值點(diǎn)附近的逼近速度,隨著訓(xùn)練的進(jìn)行,根據(jù)模型代價(jià)函數(shù)的變化情況調(diào)整學(xué)習(xí)率,使得學(xué)習(xí)率的變化對于未知的數(shù)據(jù)更加敏感,提高了模型分類識別的性能。
學(xué)習(xí)率是深度卷積神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練過程中一個(gè)非常重要的超參數(shù),它是梯度下降算法搜索過程的步長,對網(wǎng)絡(luò)模型的性能有著非常重要的作用。學(xué)習(xí)率過大,將導(dǎo)致最優(yōu)解在極值點(diǎn)附近來回震蕩;學(xué)習(xí)率過小,將導(dǎo)致模型很難收斂或使得最優(yōu)解收斂于局部最小值。因此,學(xué)習(xí)率對網(wǎng)絡(luò)模型的收斂效果有極大的影響。而在以往的實(shí)驗(yàn)中,網(wǎng)絡(luò)模型的學(xué)習(xí)率大多是根據(jù)經(jīng)驗(yàn)來設(shè)定,在模型訓(xùn)練的整個(gè)周期中保持恒定或根據(jù)迭代次數(shù)進(jìn)行衰減。在實(shí)際實(shí)驗(yàn)過程中,隨著時(shí)間的推移,網(wǎng)絡(luò)模型的學(xué)習(xí)情況復(fù)雜,在各個(gè)時(shí)期有很大的差異,因此,將模型的學(xué)習(xí)率設(shè)置為單一的不變量對模型的學(xué)習(xí)性能有重要的影響。本文提出的學(xué)習(xí)率自增強(qiáng)算法是受自適應(yīng)調(diào)整學(xué)習(xí)率算法[11-12]啟發(fā),根據(jù)模型訓(xùn)練過程中各個(gè)階段代價(jià)函數(shù)的變化情況調(diào)整學(xué)習(xí)率,相比于恒定的學(xué)習(xí)率,使用學(xué)習(xí)率自增強(qiáng)算法可以提升模型的性能,縮短訓(xùn)練的時(shí)間。在模型訓(xùn)練初期,為了加快網(wǎng)絡(luò)的收斂速度,用大于1的因子自增強(qiáng)學(xué)習(xí)率,加快網(wǎng)絡(luò)向極值點(diǎn)附近逼近的速度。隨著訓(xùn)練的進(jìn)行,由于模型接近收斂,因此在該階段根據(jù)代價(jià)函數(shù)的相對變化率適當(dāng)?shù)脑黾踊驕p小學(xué)習(xí)率,直至網(wǎng)絡(luò)收斂或是達(dá)到設(shè)定的迭代次數(shù)。
第n個(gè)世代的學(xué)習(xí)率ln可以表示為:
(8)
(9)