呂 伏 劉 鐵
1(遼寧工程技術大學基礎教學部 遼寧 葫蘆島 125105)2(遼寧工程技術大學軟件學院 遼寧 葫蘆島 125105)
深度學習(Deep Learning)[1]作為統計機器學習(Statistical Machine Learning)的重要分支,是目前人工智能領域備受關注的研究熱點。卷積神經網絡作為深度學習的重要推動力,近年來取得了重大的突破,在計算機視覺、自然語言處理和遙感圖像理解等領域有出色的表現,被廣泛地應用。
Hinton等[2]提出深度置信網絡(DBN),它是含多隱藏層、多感知器的一種網絡結構,DBN強大的特征提取能力和“逐層初始化”特有的訓練模式,有效地降低了Deep Learning模型的訓練難度。與淺層學習模型相比,Deep Learning模型有更深的網絡層次,通過構建復雜的非線性網絡模型,對輸入數據的特征進行分層學習,實現圖像特征的有效提取,最后把低層學習到的特征組合為高層抽象的圖像特征,完成對輸入數據的分類識別。
深度置信網絡的提出是深度學習發展史上的一個里程碑,從此,深度學習快速發展,并被應用到眾多領域中。在圖像識別過程中,為了解決特征提取困難、無法滿足實時性要求等問題,Liu等[3]通過構建自適應增強模型,針對分類誤差進行有目的的訓練,實現了卷積神經網絡模型的優化調整和分類特征的自適應增強,并且網絡的收斂性能和識別精度有較大的提高。Liu等[4]提出一種結合無監督和有監督學習的網絡權值預訓練方法,實驗驗證該算法在解決訓練過程中易收斂于局部最優值的問題上優于現有算法。Gao等[5]在卷積神經網絡模型AlexNet[6]的基礎上,提出了對數據集采用數據增強等預處理方法。實驗結果表明,識別準確率和識別速度有一定的提升。Song等[7]提出基于深度神經網絡模型的手寫體圖像識別方法,讓機器自動學習特征,并在此基礎之上改進成本函數,加入Dropout[8]防止過擬合,實驗結果表明,該方法對手寫體數字的識別有更加快速準確的識別效果,在識別準確率和實時性方面均有提高。He等[9]在漢字識別過程中結合卷積神經網絡,取得了較好的識別效果并降低了訓練時間。Chen等[10]提出的手寫體數字識別模型,有較好的識別精度,模型的識別能力甚至超過了人類的識別能力。但是目前深度學習模型仍然具有收斂速度慢、識別精度不高、泛化性不足等問題。
學習率是一個非常重要的模型訓練超參數,決定了迭代的步長。學習率過大會使代價函數直接越過全局最優點,使最優解在極值點附近來回震蕩;學習率過小會使代價函數的變化速度很慢,增加網絡模型收斂的復雜度,并很容易使最優解收斂于局部最小值。現有的神經網絡模型,學習率一般是隨著迭代次數進行衰減,這對神經網絡模型的收斂速度和識別精度有很大的影響。因此在網絡模型的訓練過程中動態調整學習率就顯得非常重要。
受文獻[11]的啟發,為了進一步提高深度卷積神經網絡的收斂速度、識別精度以及網絡模型的泛化能力,本文通過研究深度卷積神經網絡訓練過程中學習率的變化情況,提出一種學習率自增強算法,在網絡訓練初期,用大于1的常數自增強學習率,加快網絡模型向極值點的逼近速度。隨著訓練的進行,根據網絡模型代價函數的相對變化率,調整網絡模型的學習率。實驗表明,該方法可以有效地提高網絡模型的收斂速度,并使最優解在極值點附近的震蕩程度得到極大緩解。
深度卷積神經網絡是一種特殊的多層神經網絡模型,在圖像處理領域有著廣泛的應用,深度卷積神經網絡是受動物視覺神經系統的啟發,用卷積層模擬對特定圖案的響應,池化層用來模擬動物視覺皮層的感受野,一般由輸入層、隱藏層和輸出層組成,如圖1所示。輸入層是未經任何處理的二維原始圖像,隱藏層通常為卷積層和池化層的重復結構,輸出層是對特征進行分類和識別的結果,其中特征提取和分類是在隱層中進行的。深度卷積神經網絡對圖像的分類識別主要包括兩個過程,即前向過程和反向過程。前向過程包括特征提取和分類,計算各個神經元的激勵值和損失值,而反向傳播主要是權值更新的過程。前向傳播過程會產生分類誤差,反向過程通過把前向傳播產生的誤差反饋到網絡模型中從而實現對權值和偏置的更新。

圖1 卷積神經網絡結構
設卷積層的第i個輸入數據為Ii,卷積核為Wi,各有n個,偏置為Bi,激活函數為f,則卷積層輸出特征的計算表達式為:
(1)
式中:con為卷積函數;Fc為卷積層輸出的特征。
下采樣操作是對卷積輸出的特征做進一步的降維處理,并把對應輸出輸入到全連接層,全連接層經過權值變換和激活后得到本輪的分類結果,通過與分類真值比較,得到對應的分類誤差。設全連接層的輸入特征為T,對應的權值為W,偏置為B,激活函數為f,則全連接層進行分類的表達式為:
F0=f(W*T+B)
(2)
式中:F0為分類結果矩陣。
在機器學習中,經常選擇代價函數作為優化的目標函數。代價函數指的是深度卷積神經網絡模型的預測值和真實值之間的誤差。樣本數據集的代價函數定義為:
(3)


圖2 ReLU函數圖像
(4)

(5)
深度神經網絡通過反向傳播,將分類誤差反饋到隱層中,使每層中的權值和偏置得到更新,進行下一次循環迭代時,使用最近更新后的各項參數進行網絡模型的訓練,通過不斷的更新迭代,使網絡模型中的識別率不斷提高,損失函數降至最小。設l為學習率,則網絡模型中的權值w和偏置b由w1和b1更新為w2和b2的表達式為:
(6)
(7)
由圖2可知,ReLU激活函數是分段線性函數,自變量為負值或0時,函數值為0,自變量為正值時,函數值保持不變,這種操作被稱為單側抑制。在深度卷積神經網絡模型中,由于梯度下降算法鏈式求導法則的乘法特性,存在梯度消失現象,通過使用ReLU激活函數,可有效地解決因為連乘而導致的梯度消失問題,整個過程的計算量較小,并且ReLU激活函數會使一部分神經元的輸出為0,從而獲得網絡的稀疏性,減少了參數間相互依存關系,有效緩解過擬合問題的發生。但是ReLU激活函數的輸出不是以0為中心,會使一部分神經元的輸出為0,故隨著訓練的進行,有可能出現神經元“死亡”、權重無法更新的情況。因此,考慮到以上因素,本文提出學習率自增強算法,用大于1的常數自增強學習率,加快網絡向極值點附近的逼近速度,隨著訓練的進行,根據模型代價函數的變化情況調整學習率,使得學習率的變化對于未知的數據更加敏感,提高了模型分類識別的性能。
學習率是深度卷積神經網絡模型訓練過程中一個非常重要的超參數,它是梯度下降算法搜索過程的步長,對網絡模型的性能有著非常重要的作用。學習率過大,將導致最優解在極值點附近來回震蕩;學習率過小,將導致模型很難收斂或使得最優解收斂于局部最小值。因此,學習率對網絡模型的收斂效果有極大的影響。而在以往的實驗中,網絡模型的學習率大多是根據經驗來設定,在模型訓練的整個周期中保持恒定或根據迭代次數進行衰減。在實際實驗過程中,隨著時間的推移,網絡模型的學習情況復雜,在各個時期有很大的差異,因此,將模型的學習率設置為單一的不變量對模型的學習性能有重要的影響。本文提出的學習率自增強算法是受自適應調整學習率算法[11-12]啟發,根據模型訓練過程中各個階段代價函數的變化情況調整學習率,相比于恒定的學習率,使用學習率自增強算法可以提升模型的性能,縮短訓練的時間。在模型訓練初期,為了加快網絡的收斂速度,用大于1的因子自增強學習率,加快網絡向極值點附近逼近的速度。隨著訓練的進行,由于模型接近收斂,因此在該階段根據代價函數的相對變化率適當的增加或減小學習率,直至網絡收斂或是達到設定的迭代次數。
第n個世代的學習率ln可以表示為:
(8)
(9)