劉小文,郭大波,李 聰
(山西大學(xué) 物理電子工程學(xué)院,山西 太原 030006)
卷積神經(jīng)網(wǎng)絡(luò)是深度學(xué)習(xí)中模仿人腦神經(jīng)網(wǎng)絡(luò)處理信息的一種學(xué)習(xí)網(wǎng)絡(luò),可以用于大型圖像處理.在生物神經(jīng)網(wǎng)絡(luò)中[1],神經(jīng)元通過樹突接收來自其他神經(jīng)元的信號,各樹突接收信號的權(quán)重(突觸權(quán)值)不同,神經(jīng)元接收的信號來自于各樹突接收的信號與其權(quán)重的乘積之和.卷積神經(jīng)網(wǎng)絡(luò)采用權(quán)值共享網(wǎng)絡(luò)結(jié)構(gòu)使之更類似于生物神經(jīng)網(wǎng)絡(luò),同時模型的容量可以通過改變網(wǎng)絡(luò)的深度和廣度來調(diào)整,從而對自然圖像也具有很強(qiáng)的處理能力[2].
對于卷積神經(jīng)網(wǎng)絡(luò)的研究,自2006年Hinton等[3]在Science 上提出了深度學(xué)習(xí),許多學(xué)者從不同的方向都有所創(chuàng)新.有基于構(gòu)建圖像表示方法研的CNN圖像分類方法研究[4],有基于自適應(yīng)學(xué)習(xí)率的研究[5],有將dropout層運(yùn)用于池化階段的方法[6],有致力于預(yù)訓(xùn)練與隨機(jī)初始化模型[7],這些方法都在一定程度上提高了卷積神經(jīng)網(wǎng)絡(luò)的表達(dá)能力.本文主要研究在圖像分類問題上,激活函數(shù)的優(yōu)化對提高分類準(zhǔn)確率和降低損失率的影響.
對于一個單層的感知機(jī),可以很容易地完成一個二分類的運(yùn)算,如圖 1 所示.
圖 1 中y=w1x1+w2x2+b.
圖 2 含激活函數(shù)的單層感知機(jī)Fig.2 Single layer perceptron with activation function
圖 2 中a=w1x1+w2x2+b,y=σ(a).
這樣輸出值由于經(jīng)過激勵函數(shù)σ(a),就可以處理非線性的分類問題,多層感知器的情況同上.
激活函數(shù)是指把激活的神經(jīng)元的特征通過非線性函數(shù)把特征保留并映射出來,這就是神經(jīng)網(wǎng)絡(luò)能解決非線性問題的關(guān)鍵所在[12].實(shí)際就是在卷積神經(jīng)網(wǎng)絡(luò)中起到?jīng)Q定信號能否傳遞的作用.在卷積神經(jīng)網(wǎng)絡(luò)中,當(dāng)網(wǎng)絡(luò)具有的是線性屬性,那么函數(shù)的線性方程及其組合也僅僅有線性表達(dá)的能力,網(wǎng)絡(luò)的多層就沒有了意義,相當(dāng)于只有一個隱藏層的線性網(wǎng)絡(luò).使用激活函數(shù)增加了神經(jīng)網(wǎng)絡(luò)模型的表達(dá)能力,使其可以運(yùn)用到眾多的非線性網(wǎng)絡(luò)模型中,深度神經(jīng)網(wǎng)絡(luò)也才真正具有了人工智能的意義[13].
常見的飽和非線性激活函數(shù)包括Sigmoid函數(shù)(如圖 3)和雙曲正切函數(shù)Tanh函數(shù)(如圖 4).
圖 3 sigmoid函數(shù)Fig.3 sigmoid function
圖 4 tanh函數(shù)Fig.4 tanh function
經(jīng)過研究發(fā)現(xiàn),這兩個激活函數(shù)存在較大缺陷.Sigmoid的缺陷是梯度消失和計(jì)算成本昂貴.當(dāng)Sigmoid函數(shù)趨近于0或1時,梯度趨近于0.即當(dāng)進(jìn)行反向傳播時,輸出值接近0或1的神經(jīng)元會達(dá)到飽和狀態(tài),因此神經(jīng)元的權(quán)重不會更新,與此類神經(jīng)元相鄰的神經(jīng)元的權(quán)值也會更新得很慢,出現(xiàn)梯度彌散問題.當(dāng)有多個神經(jīng)元出現(xiàn)這種情況時,網(wǎng)絡(luò)將無法執(zhí)行反響傳播.同樣,Tanh的缺陷也是有“殺死”梯度的可能性.
為了解決這種激活函數(shù)的缺陷問題,近幾年有學(xué)者提出了近似生物神經(jīng)的ReLU函數(shù)(如圖 5)及其變體PReLU函數(shù)(如圖 6).
圖 5 Relu函數(shù)Fig.5 Relu function
圖 6 PRelu函數(shù)Fig.6 PRelu function
ReLU函數(shù)有效解決了Sigmoid函數(shù)的梯度消失問題,但依然存在均值偏移的缺點(diǎn)[14].在前項(xiàng)傳導(dǎo)過程中,當(dāng)x<0時神經(jīng)元保持非激活狀態(tài),并且在后向傳導(dǎo)中“殺死”梯度,網(wǎng)絡(luò)無法學(xué)習(xí).而PReLU函數(shù)就解決了ReLU函數(shù)在x負(fù)半軸為0的問題,其負(fù)半軸斜率系數(shù)α可以由學(xué)習(xí)得到,它具有無神經(jīng)元死亡和收斂速度更快的問題.圖 6 展示了x<0時兩種不同的α系數(shù)的圖像函數(shù).
但是,在訓(xùn)練過程中發(fā)現(xiàn),隨著訓(xùn)練次數(shù)的增多,神經(jīng)網(wǎng)絡(luò)容易出現(xiàn)震蕩、 不收斂甚至過擬合的情況,導(dǎo)致訓(xùn)練結(jié)果嚴(yán)重失真.就此問題,提出了一種ReLU函數(shù)的變體ReLU閾值函數(shù).通過在caltech101數(shù)據(jù)模型上多次的對比訓(xùn)練,發(fā)現(xiàn)ReLU閾值函數(shù)表現(xiàn)穩(wěn)定,在提高收斂的基礎(chǔ)上,對于測試集的準(zhǔn)確率也有一定提升.
改進(jìn)的ReLU閾值激活函數(shù)在原來ReLU激活函數(shù)的基礎(chǔ)上對于輸入的x有了限制,不是一味地學(xué)習(xí)所有的值,而是當(dāng)達(dá)到一定范圍時,函數(shù)就會“dead”,不再學(xué)習(xí),這樣避免了過擬合的情況.其中x取何值時函數(shù)會“dead”,需要根據(jù)不同的數(shù)據(jù)集訓(xùn)練確定.用圖 7 示例,當(dāng)x≥10時函數(shù)的導(dǎo)數(shù)為0,函數(shù)在此區(qū)間不再有學(xué)習(xí)訓(xùn)練數(shù)據(jù)的特征,將此函數(shù)定義為ReLU10函數(shù).
圖 7 ReLU10函數(shù)Fig.7 ReLU10 function
實(shí)驗(yàn)平臺簡介: PC機(jī)(Ubuntu操作系統(tǒng)),處理器Inter Core i7, 顯卡型號Tesla K40C,12 G顯存,caffe深度學(xué)習(xí)框架.
首先用Alexnet網(wǎng)絡(luò)模型對caltech101數(shù)據(jù)集進(jìn)行訓(xùn)練,將網(wǎng)絡(luò)中的激活函數(shù)分別用幾種經(jīng)典的激活函數(shù)取代,調(diào)節(jié)合適的學(xué)習(xí)率后訓(xùn)練數(shù)據(jù),訓(xùn)練結(jié)果如圖 8 和圖 9 所示.
圖 8 訓(xùn)練準(zhǔn)確率結(jié)果Fig.8 Test-accuracy result
圖 9 訓(xùn)練損失結(jié)果Fig.9 Test-loss result
其中,ReLU10是指當(dāng)x≥10時,令y′=0,圖像如圖 7 所示.由訓(xùn)練結(jié)果發(fā)現(xiàn),改進(jìn)的ReLU閾值函數(shù)雖然訓(xùn)練速度略慢,但是收斂性卻是最好的,而且測試集的準(zhǔn)確率也能達(dá)到最大.各激活函數(shù)訓(xùn)練的最大準(zhǔn)確率和最小損失數(shù)據(jù)見表 1.
表 1 不同激活函數(shù)的訓(xùn)練結(jié)果比較
為了保證實(shí)驗(yàn)的準(zhǔn)確性,將含有ReLU閾值函數(shù)的Alexnet網(wǎng)絡(luò)模型[15]用于訓(xùn)練caltech256數(shù)據(jù)集.經(jīng)過對比實(shí)驗(yàn)發(fā)現(xiàn),閾值在x=25時表現(xiàn)最為優(yōu)秀,函數(shù)圖像如圖 10 所示,訓(xùn)練結(jié)果如圖 11 和圖 12 所示.實(shí)驗(yàn)表明,此激活函數(shù)不僅提高了測試集的分類準(zhǔn)確率,而且結(jié)果更收斂,波動最小.各激活函數(shù)訓(xùn)練的最大準(zhǔn)確率和最小損失數(shù)據(jù)見表 2.
圖 10 ReLU25函數(shù)Fig.10 ReLU25 function
圖 11 訓(xùn)練準(zhǔn)確率結(jié)果Fig.11 Test-accuracy result
圖 12 訓(xùn)練損失結(jié)果Fig.12 Test-loss result
最大準(zhǔn)確率最小損失ReLU0.6545.435ReLU100.7411.260ReLU200.9020.503ReLU250.9230.496ReLU300.9030.634
本文提出了一種改進(jìn)的激活函數(shù)——ReLU閾值函數(shù),應(yīng)用于卷積神經(jīng)網(wǎng)絡(luò)后對數(shù)據(jù)集caltech101和caltech256進(jìn)行訓(xùn)練,在準(zhǔn)確率和收斂性上較經(jīng)典的激活函數(shù)都有較大優(yōu)化,其中閾值為25時表現(xiàn)最佳,有效地避免神經(jīng)網(wǎng)絡(luò)出現(xiàn)震蕩、 不收斂甚至過擬合的情況,提高了網(wǎng)絡(luò)的穩(wěn)定性.