黃 毅, 段修生, 孫世宇,郎 巍
(1.軍械工程學院 電子與光學工程系,石家莊 050003;2.77156部隊,四川 樂山 614000)
基于改進sigmoid激活函數(shù)的深度神經(jīng)網(wǎng)絡(luò)訓練算法研究
黃 毅1, 段修生1, 孫世宇1,郎 巍2
(1.軍械工程學院 電子與光學工程系,石家莊 050003;2.77156部隊,四川 樂山 614000)
針對深度神經(jīng)網(wǎng)絡(luò)訓練過程中殘差隨著其傳播深度越來越小而使底層網(wǎng)絡(luò)無法得到有效訓練的問題,通過分析傳統(tǒng)sigmoid激活函數(shù)應用于深度神經(jīng)網(wǎng)絡(luò)的局限性,提出雙參數(shù)sigmoid激活函數(shù);個參數(shù)保證激活函數(shù)的輸入集中坐標原點兩側(cè),避免了激活函數(shù)進入飽和區(qū),一個參數(shù)抑制殘差衰減的速度,雙參數(shù)結(jié)合有效地增強了深度神經(jīng)網(wǎng)絡(luò)的訓練;用DBN對MNIST數(shù)據(jù)集進行數(shù)字分類實驗,實驗表明雙參數(shù) sigmoid激活函數(shù)能夠直接應用于無預訓練深度神經(jīng)網(wǎng)絡(luò),而且提高了sigmoid激活函數(shù)在有預訓練深度神經(jīng)網(wǎng)絡(luò)中的訓練效果。
深度神經(jīng)網(wǎng)絡(luò);殘差衰減;sigmoid激活函數(shù)
深度神經(jīng)網(wǎng)絡(luò)自被提出以來,已被廣泛應用于圖像識別、語音識別、自然語義理解等領(lǐng)域。但是,與淺層神經(jīng)網(wǎng)絡(luò)(包含1個隱層)相比,深度神經(jīng)網(wǎng)絡(luò)的訓練要難得多,其主要原因是梯度下降算法中殘差會隨著傳播深度越來越小,使得底層網(wǎng)絡(luò)由于殘差過小而無法得到有效的訓練。目前,解決該問題方法主要有兩種:一是采用預訓練算法等更好的權(quán)陣初始化方法;二是更好地激活函數(shù)。
本文通過分析傳統(tǒng)sigmoid激活函數(shù)在深度神經(jīng)網(wǎng)絡(luò)訓練中的局限性,提出雙參數(shù)sigmoid激活函數(shù),提高sigmoid激活函數(shù)應用于深度神經(jīng)網(wǎng)絡(luò)的性能。
sigmoid函數(shù)是深度神經(jīng)網(wǎng)絡(luò)中應用最為廣泛的激活函數(shù)之一,其函數(shù)及其導函數(shù)為:
(1)
在sigmoid激活函數(shù)應用于深度神經(jīng)網(wǎng)絡(luò)訓練時,制約深度神經(jīng)網(wǎng)絡(luò)訓練效果的因素仍然是殘差,但主要表現(xiàn)在兩個方面;一個是激活函數(shù)的輸入值大小對殘差的影響;另一個是深度神經(jīng)網(wǎng)絡(luò)底層數(shù)對殘差的影響。
激活函數(shù)的輸入值過大過小,都會對深度神經(jīng)網(wǎng)絡(luò)的訓練效果產(chǎn)生影響。假設(shè)激活函數(shù)的輸入net=WTX,當net整體過小時,如圖1(a)所示,輸入net主要集中在原點左右,不同神經(jīng)元激活值相近,導數(shù)值亦相近,此時激活函數(shù)近似為線性,無法對輸入數(shù)據(jù)進行有效區(qū)分,神經(jīng)網(wǎng)絡(luò)無法訓練。

圖1 輸入過大和過小的sigmoid導函數(shù)
當net整體過大時,如圖1(b)所示,net主要集中在坐標軸兩側(cè),激活值大量為0,由殘差公式可知,此時經(jīng)元殘差趨近于0,權(quán)值矩陣的修正量也為0,神經(jīng)元進入激活函數(shù)的飽和區(qū),神經(jīng)網(wǎng)絡(luò)無法訓練。因為激活函數(shù)輸入過小時,適當增大權(quán)值就能解決解決,所以激活函數(shù)輸入值對深度神經(jīng)網(wǎng)絡(luò)的影響主要集中表現(xiàn)在輸入值偏大問題上。
深度神經(jīng)網(wǎng)絡(luò)的層數(shù)對其訓練效果同樣有很大影響,一方面,層數(shù)越大,其學習得到的特征越緊密,表達能力越強,另一方面,層數(shù)增大,訓練難度也越大。其主要原因是在經(jīng)典的誤差反向傳播算法中(殘差表達式如下),由于sigmoid激活函數(shù)的導數(shù)值f′恒小于1,而殘差在由輸出層向底層反向傳播過程中,每經(jīng)過一個隱層,其殘差值乘以f′,這樣經(jīng)過多層后,深度神經(jīng)網(wǎng)絡(luò)因底層殘差太小而無法得到有效訓練。
(2)
其中:δ(nl)為輸出層殘差,ο(nl)為輸出層的實際輸出,y為輸出層的期望輸出,δ(l)為隱層殘差,net為激活函數(shù)f的輸入。
針對因激活函數(shù)輸入過大導致的神經(jīng)元進入飽和區(qū)的問題,引入第一個參數(shù)α(0<α<1)。通過壓縮激活函數(shù)的輸入,αnetl向坐標軸中心靠攏,導數(shù)值f′(αnetl)增大。改進后的激活函數(shù)公式和殘差公式為:
(3)
引入?yún)?shù)α雖然解決了神經(jīng)元飽和區(qū)的問題,但是使殘差衰減α(nl-l-1)倍,加重了殘差衰減。
針對殘差衰減過快的問題,在激活函數(shù)的導函數(shù)中引入第二個參數(shù)λ(λ>1),改進后的激活函數(shù)公式和殘差公式變?yōu)椋?/p>
(4)
其中:α,λ是兩個相互獨立的參數(shù)。
激活函數(shù)導函數(shù)f′增大λ倍,深度神經(jīng)網(wǎng)絡(luò)第l層殘差增大λ(nl-l-1)α(nl-l-1)倍。通過調(diào)整選取合適的α和λ,一方面可以修正由于網(wǎng)絡(luò)層數(shù)過大導致底層過小的殘差,另一方面可以解決引入α參數(shù)加重殘差衰減的問題。
(5)


圖2 雙參數(shù)sigmoid激活函數(shù)BP算法流程圖
雙參數(shù)sigmoid激活函數(shù)的BP算法推導如下:
第一步:輸入樣本(xi,yi),i=1,…,m,計算各層輸出:
(6)
第二步:計算輸出誤差:
(7)
第三步:計算各層誤差信號:
(8)
第四步:調(diào)整各層權(quán)值:
(9)
其算法流程如圖3所示。

圖3 DBN訓練過程
深度信念網(wǎng)絡(luò)(DBN)是一種典型的深度神經(jīng)網(wǎng)絡(luò),本節(jié)將通過DBN實驗的方式驗證雙參數(shù)sigmoid激活函數(shù)的有效性。采用MNIST數(shù)據(jù)集為實驗數(shù)據(jù),MNIST數(shù)據(jù)集是美國中學生手寫阿拉伯數(shù)字數(shù)據(jù)集,共有60 000個28*28維的0~9的阿拉伯數(shù)字的手寫樣本,取50 000個樣本作為訓練數(shù)據(jù),10 000個樣本作為測試數(shù)據(jù)進行數(shù)字分類實驗。
設(shè)計一個深度信念網(wǎng)絡(luò)(DBN),其網(wǎng)絡(luò)結(jié)構(gòu)為784-500-500-2000-10。 運用貪心逐層算法對深度神經(jīng)網(wǎng)絡(luò)進行預訓練,其訓練過程為:將MNIST圖片數(shù)據(jù)轉(zhuǎn)化為784維的向量數(shù)據(jù),經(jīng)過歸一化和白化預處理,輸入到DBN中進行基于受限玻爾茲曼機(RBM)的無監(jiān)督預訓練,經(jīng)過50次循環(huán),得到特征矩陣W;將學習到的特征矩陣W傳給相應的神經(jīng)網(wǎng)絡(luò)784-500-500-2000-500-500-784進行有監(jiān)督微調(diào),得到特征矩陣W+ε。之后將W+ε傳遞給神經(jīng)網(wǎng)絡(luò)784-500-500-2000-10,在不同sigmoid激活函數(shù)條件下,進行數(shù)字分類實驗,訓練周期數(shù)為300次,每隔10次采集一次測試誤差數(shù)據(jù),其訓練過程如圖3所示。

設(shè)置α=0.3,λ=3.3,在有預訓練和無預訓練兩種情況下對雙參數(shù)sigmoid激活函數(shù)和普通sigmoid激活函數(shù)進行數(shù)字分類實驗,其測試結(jié)果如表1所示。

表1 測試誤差 %
測試誤差曲線如圖4所示。其中,‘*’線表示普通sigmoid激活函數(shù)測試誤差曲線,‘o’線表示雙參數(shù)sigmoid激活函數(shù)的測試誤差曲線;圖4(a)是無預訓練時測試誤差曲線,圖4(b)是有預訓練時測試誤差曲線。

圖4 測試誤差與訓練周期
分析圖4可知:
1)雙參數(shù)sigmoid激活函數(shù)可以直接應用于深度神經(jīng)網(wǎng)絡(luò)的訓練而無需預訓練。如圖4(a),傳統(tǒng)的sigmoid激活函數(shù)的測試誤差高達90.2%,無法對深度神經(jīng)網(wǎng)絡(luò)進行有效訓練,雙參數(shù)sigmoid激活函數(shù)訓練效果明顯,測試誤差達到1.59%;
2)雙參數(shù)sigmoid激活函數(shù)有比傳統(tǒng)sigmoid激活函數(shù)更好的訓練結(jié)果。如圖4(b),傳統(tǒng)sigmoid激活函數(shù)的測試誤差達到1.85%,雙參數(shù)sigmoid激活函數(shù)的測試誤差達到1.68%,綜合1)的結(jié)論,有無預訓練,雙參數(shù)sigmoid激活函數(shù)均能取得比傳統(tǒng)sigmoid激活函數(shù)更好的結(jié)果;
3)雙參數(shù)sigmoid激活函數(shù)有比傳統(tǒng)sigmoid激活函數(shù)更快的訓練速度。如圖4(b),雙參數(shù)sigmoid激活函數(shù)50次迭代就能達到1.92%的測試誤差,而傳統(tǒng)sigmoid激活函數(shù)要達到同樣的測試誤差則需要180次迭代。
為了研究雙參數(shù)sigmoid激活函數(shù)對深度神經(jīng)網(wǎng)絡(luò)底層殘差的影響,以深度神經(jīng)網(wǎng)絡(luò)底層的權(quán)陣調(diào)整量ΔW1的絕對值之和D作為觀測量,用于表征底層殘差的大小。
D=∑∑|ΔW1|
實驗中,每隔10個周期,記錄一次ΔW1,并求D,D隨迭代次數(shù)的變化曲線如圖5。其中,‘*’線表示普通sigmoid激活函數(shù)測試誤差曲線,‘o’線表示雙參數(shù)sigmoid激活函數(shù)的測試誤差曲線;圖5(a)為有預訓練時D的變化曲線,圖5(b)為無預訓練的D的變化曲線。

圖5 D與訓練周期
分析圖5可知:
1)無預訓練時,傳統(tǒng)sigmoid激活函數(shù)深度神經(jīng)網(wǎng)絡(luò)不能有效訓練的原因是其殘差過小。如圖5所示,無預訓練時應用傳統(tǒng)sigmoid激活函訓練的深度神經(jīng)網(wǎng)絡(luò)的D的范圍在10-10~10-8之間,而應用雙參數(shù)sigmoid激活函數(shù)的深度神經(jīng)網(wǎng)絡(luò)中D的范圍在0.017 9~58.936 6之間,即無預訓練時,較之傳統(tǒng)sigmoid激活函數(shù),雙參數(shù)sigmoid激活函數(shù)將殘差增大了將近107倍,這是無預訓時練深度神經(jīng)網(wǎng)絡(luò)能夠有效訓練的關(guān)鍵;
2)與傳統(tǒng)sigmoid激活函數(shù)相比,雙參數(shù)sigmoid激活函數(shù)有更大的殘差,這是雙參數(shù)sigmoid激活函數(shù)有更好訓練效果的原因所在。如圖5(b),有預訓練時,應用雙參數(shù)sigmoid激活函數(shù)訓練的深度神經(jīng)網(wǎng)絡(luò)的殘差仍然比應用傳統(tǒng)sigmoid激活函數(shù)的殘差大,綜合1)的結(jié)論,即有無預訓練,應用雙參數(shù)sigmoid激活函數(shù)的深度神經(jīng)網(wǎng)絡(luò)的殘差都比應用傳統(tǒng)sigmoid激活函數(shù)的大,這是其取得較好訓練效果的原因所在。
本文針對深度神經(jīng)網(wǎng)絡(luò)深度訓練過程中底層殘差過小的問題,從分析sigmoid激活函數(shù)的局限性出發(fā),提出雙參數(shù)sigmoid激活函數(shù),有效的增大了底層殘差,提高了深度神經(jīng)網(wǎng)絡(luò)的訓練效果,結(jié)合深度信念網(wǎng)絡(luò)(DBN)對MNIST數(shù)據(jù)集進行分類實驗,實驗結(jié)果顯示:
1)有無預訓練,較之傳統(tǒng)sigmoid激活函數(shù),應用雙參數(shù)sigmoid激活函數(shù)訓練的深度神經(jīng)網(wǎng)絡(luò)均可取得更好的訓練效果;
2)有無預訓練,較之傳統(tǒng)sigmoid激活函數(shù),應用雙參數(shù)sigmoid激活函數(shù)訓練的深度神經(jīng)網(wǎng)絡(luò)均可獲得更大的底層殘差,這是取得較好訓練效果的關(guān)鍵因素。
[1] Sun Y, Wang X, Tang X. Deep Learning Face Representation from Predicting 10000 Classes[A]. Proc. of the IEEE Conference on Computer Vision and Pattern Recognition[C]. Columbus, Ohio,2014.
[2] Taigman Y, Yang M, Ranzato M A, et al. Deepface: closing the gap to human-level performance in face verification[A]. Proc. of the IEEE Conference on Computer Vision and Pattern Recognition[C]. Columbus, Ohio,2014.
[3] Mohamed A, Dahl G E, Hiton G. Acoustic modeling using deep belief networks[J]. Audio, Speech, and Language Processing, 2012, 20(1):14-22.
[4] Shen Y L, He X D, Gao J F, et al. Learning semantic representations using convolutional neural networks for web search[A]. Proc. of the of the 23th International Conference on World Wide Web[C]. Seoul, Korea,2014.
[5] Jin-Cheng, Li Wing, W. Y. Ng Daniel, et al. Bi-firing deep neural networks[J]. Int. J. Mach. Learn. & Cyber, 2014(5):73-83.
[6] Ranzato M, Poultney C, Chopra S, et al. A sparse and locally shift invariant feature extractor applied to document images[A]. International Conference on Document Analysis and Recognition (ICDAR’07)[C]. Curitiba, Brazil,2007.
[7] Hinton GE, Osindero S, The Y. A Fast Learning Algorithm for Deep Belief Nets[J]. Neural Computation, 2006, (18):1527-1554.
[8] Bengio Y, Lamblin P, Popovici D, Larochelle H. Greedy Layer-wise Training of Deep Networks[J]. Neural Information Processing Systems, 2007:153-160.
[9] Erhan D, Bengio Y, Courville A, Manzagol PA, Vincent P, Bengio S. Why does Unsupervised Pre-training Help Deeplearning[J]. J. Mach. Learn. Res., 2009 (11):625-660.
A Study of Training Algorithm in Deep Neural Networks Based on Sigmoid Activation Function
Huang Yi1, Duan Xiusheng1, Sun Shiyu1, Lang Wei2
(1.Department of Electronic and Optical Engineering, Ordnance Engineering College, Shijiazhuang 050003, China;2.77156 Army, Leshan 614000, China)
Aiming at the problem that residual error gets smaller with the depth of propagation increasing and the bottom of DNN trains ineffective, by investigating the limitations of sigmoid activation function in DNN, a sigmoid activation function with two parameters is proposed. One parameter makes the input of sigmoid activation function concentrate in sides of the origin, and another parameter restrains the decreasing speed of residual error. The combination of two parameters enhances the training of DNN. Do number classification experiments on MNIST using deep belief networks(DBN), the results show that sigmoid activation function with two parameters can be used in DNN directly without pre-training and improve the performance in DNN with pre-training.
deep neural networks(DNN); gradient diffusion; sigmoid activation function
2016-08-12;
2016-09-16。
黃 毅(1992-),男,湖北孝昌人,碩士生,主要從事深度神經(jīng)網(wǎng)絡(luò)和故障診斷方向的研究。
1671-4598(2017)02-0126-04
10.16526/j.cnki.11-4762/tp.2017.02.035
TP183
A