黃 毅, 段修生, 孫世宇,郎 巍
(1.軍械工程學(xué)院 電子與光學(xué)工程系,石家莊 050003;2.77156部隊(duì),四川 樂(lè)山 614000)
基于改進(jìn)sigmoid激活函數(shù)的深度神經(jīng)網(wǎng)絡(luò)訓(xùn)練算法研究
黃 毅1, 段修生1, 孫世宇1,郎 巍2
(1.軍械工程學(xué)院 電子與光學(xué)工程系,石家莊 050003;2.77156部隊(duì),四川 樂(lè)山 614000)
針對(duì)深度神經(jīng)網(wǎng)絡(luò)訓(xùn)練過(guò)程中殘差隨著其傳播深度越來(lái)越小而使底層網(wǎng)絡(luò)無(wú)法得到有效訓(xùn)練的問(wèn)題,通過(guò)分析傳統(tǒng)sigmoid激活函數(shù)應(yīng)用于深度神經(jīng)網(wǎng)絡(luò)的局限性,提出雙參數(shù)sigmoid激活函數(shù);個(gè)參數(shù)保證激活函數(shù)的輸入集中坐標(biāo)原點(diǎn)兩側(cè),避免了激活函數(shù)進(jìn)入飽和區(qū),一個(gè)參數(shù)抑制殘差衰減的速度,雙參數(shù)結(jié)合有效地增強(qiáng)了深度神經(jīng)網(wǎng)絡(luò)的訓(xùn)練;用DBN對(duì)MNIST數(shù)據(jù)集進(jìn)行數(shù)字分類(lèi)實(shí)驗(yàn),實(shí)驗(yàn)表明雙參數(shù) sigmoid激活函數(shù)能夠直接應(yīng)用于無(wú)預(yù)訓(xùn)練深度神經(jīng)網(wǎng)絡(luò),而且提高了sigmoid激活函數(shù)在有預(yù)訓(xùn)練深度神經(jīng)網(wǎng)絡(luò)中的訓(xùn)練效果。
深度神經(jīng)網(wǎng)絡(luò);殘差衰減;sigmoid激活函數(shù)
深度神經(jīng)網(wǎng)絡(luò)自被提出以來(lái),已被廣泛應(yīng)用于圖像識(shí)別、語(yǔ)音識(shí)別、自然語(yǔ)義理解等領(lǐng)域。但是,與淺層神經(jīng)網(wǎng)絡(luò)(包含1個(gè)隱層)相比,深度神經(jīng)網(wǎng)絡(luò)的訓(xùn)練要難得多,其主要原因是梯度下降算法中殘差會(huì)隨著傳播深度越來(lái)越小,使得底層網(wǎng)絡(luò)由于殘差過(guò)小而無(wú)法得到有效的訓(xùn)練。目前,解決該問(wèn)題方法主要有兩種:一是采用預(yù)訓(xùn)練算法等更好的權(quán)陣初始化方法;二是更好地激活函數(shù)。
本文通過(guò)分析傳統(tǒng)sigmoid激活函數(shù)在深度神經(jīng)網(wǎng)絡(luò)訓(xùn)練中的局限性,提出雙參數(shù)sigmoid激活函數(shù),提高sigmoid激活函數(shù)應(yīng)用于深度神經(jīng)網(wǎng)絡(luò)的性能。
sigmoid函數(shù)是深度神經(jīng)網(wǎng)絡(luò)中應(yīng)用最為廣泛的激活函數(shù)之一,其函數(shù)及其導(dǎo)函數(shù)為:
(1)
在sigmoid激活函數(shù)應(yīng)用于深度神經(jīng)網(wǎng)絡(luò)訓(xùn)練時(shí),制約深度神經(jīng)網(wǎng)絡(luò)訓(xùn)練效果的因素仍然是殘差,但主要表現(xiàn)在兩個(gè)方面;一個(gè)是激活函數(shù)的輸入值大小對(duì)殘差的影響;另一個(gè)是深度神經(jīng)網(wǎng)絡(luò)底層數(shù)對(duì)殘差的影響。
激活函數(shù)的輸入值過(guò)大過(guò)小,都會(huì)對(duì)深度神經(jīng)網(wǎng)絡(luò)的訓(xùn)練效果產(chǎn)生影響。假設(shè)激活函數(shù)的輸入net=WTX,當(dāng)net整體過(guò)小時(shí),如圖1(a)所示,輸入net主要集中在原點(diǎn)左右,不同神經(jīng)元激活值相近,導(dǎo)數(shù)值亦相近,此時(shí)激活函數(shù)近似為線(xiàn)性,無(wú)法對(duì)輸入數(shù)據(jù)進(jìn)行有效區(qū)分,神經(jīng)網(wǎng)絡(luò)無(wú)法訓(xùn)練。
圖1 輸入過(guò)大和過(guò)小的sigmoid導(dǎo)函數(shù)
當(dāng)net整體過(guò)大時(shí),如圖1(b)所示,net主要集中在坐標(biāo)軸兩側(cè),激活值大量為0,由殘差公式可知,此時(shí)經(jīng)元?dú)埐钰吔?,權(quán)值矩陣的修正量也為0,神經(jīng)元進(jìn)入激活函數(shù)的飽和區(qū),神經(jīng)網(wǎng)絡(luò)無(wú)法訓(xùn)練。因?yàn)榧せ詈瘮?shù)輸入過(guò)小時(shí),適當(dāng)增大權(quán)值就能解決解決,所以激活函數(shù)輸入值對(duì)深度神經(jīng)網(wǎng)絡(luò)的影響主要集中表現(xiàn)在輸入值偏大問(wèn)題上。
深度神經(jīng)網(wǎng)絡(luò)的層數(shù)對(duì)其訓(xùn)練效果同樣有很大影響,一方面,層數(shù)越大,其學(xué)習(xí)得到的特征越緊密,表達(dá)能力越強(qiáng),另一方面,層數(shù)增大,訓(xùn)練難度也越大。其主要原因是在經(jīng)典的誤差反向傳播算法中(殘差表達(dá)式如下),由于sigmoid激活函數(shù)的導(dǎo)數(shù)值f′恒小于1,而殘差在由輸出層向底層反向傳播過(guò)程中,每經(jīng)過(guò)一個(gè)隱層,其殘差值乘以f′,這樣經(jīng)過(guò)多層后,深度神經(jīng)網(wǎng)絡(luò)因底層殘差太小而無(wú)法得到有效訓(xùn)練。
(2)
其中:δ(nl)為輸出層殘差,ο(nl)為輸出層的實(shí)際輸出,y為輸出層的期望輸出,δ(l)為隱層殘差,net為激活函數(shù)f的輸入。
針對(duì)因激活函數(shù)輸入過(guò)大導(dǎo)致的神經(jīng)元進(jìn)入飽和區(qū)的問(wèn)題,引入第一個(gè)參數(shù)α(0<α<1)。通過(guò)壓縮激活函數(shù)的輸入,αnetl向坐標(biāo)軸中心靠攏,導(dǎo)數(shù)值f′(αnetl)增大。改進(jìn)后的激活函數(shù)公式和殘差公式為:
(3)
引入?yún)?shù)α雖然解決了神經(jīng)元飽和區(qū)的問(wèn)題,但是使殘差衰減α(nl-l-1)倍,加重了殘差衰減。
針對(duì)殘差衰減過(guò)快的問(wèn)題,在激活函數(shù)的導(dǎo)函數(shù)中引入第二個(gè)參數(shù)λ(λ>1),改進(jìn)后的激活函數(shù)公式和殘差公式變?yōu)椋?/p>
(4)
其中:α,λ是兩個(gè)相互獨(dú)立的參數(shù)。
激活函數(shù)導(dǎo)函數(shù)f′增大λ倍,深度神經(jīng)網(wǎng)絡(luò)第l層殘差增大λ(nl-l-1)α(nl-l-1)倍。通過(guò)調(diào)整選取合適的α和λ,一方面可以修正由于網(wǎng)絡(luò)層數(shù)過(guò)大導(dǎo)致底層過(guò)小的殘差,另一方面可以解決引入α參數(shù)加重殘差衰減的問(wèn)題。
(5)
圖2 雙參數(shù)sigmoid激活函數(shù)BP算法流程圖
雙參數(shù)sigmoid激活函數(shù)的BP算法推導(dǎo)如下:
第一步:輸入樣本(xi,yi),i=1,…,m,計(jì)算各層輸出:
(6)
第二步:計(jì)算輸出誤差:
(7)
第三步:計(jì)算各層誤差信號(hào):
(8)
第四步:調(diào)整各層權(quán)值:
(9)
其算法流程如圖3所示。
圖3 DBN訓(xùn)練過(guò)程
深度信念網(wǎng)絡(luò)(DBN)是一種典型的深度神經(jīng)網(wǎng)絡(luò),本節(jié)將通過(guò)DBN實(shí)驗(yàn)的方式驗(yàn)證雙參數(shù)sigmoid激活函數(shù)的有效性。采用MNIST數(shù)據(jù)集為實(shí)驗(yàn)數(shù)據(jù),MNIST數(shù)據(jù)集是美國(guó)中學(xué)生手寫(xiě)阿拉伯?dāng)?shù)字?jǐn)?shù)據(jù)集,共有60 000個(gè)28*28維的0~9的阿拉伯?dāng)?shù)字的手寫(xiě)樣本,取50 000個(gè)樣本作為訓(xùn)練數(shù)據(jù),10 000個(gè)樣本作為測(cè)試數(shù)據(jù)進(jìn)行數(shù)字分類(lèi)實(shí)驗(yàn)。
設(shè)計(jì)一個(gè)深度信念網(wǎng)絡(luò)(DBN),其網(wǎng)絡(luò)結(jié)構(gòu)為784-500-500-2000-10。 運(yùn)用貪心逐層算法對(duì)深度神經(jīng)網(wǎng)絡(luò)進(jìn)行預(yù)訓(xùn)練,其訓(xùn)練過(guò)程為:將MNIST圖片數(shù)據(jù)轉(zhuǎn)化為784維的向量數(shù)據(jù),經(jīng)過(guò)歸一化和白化預(yù)處理,輸入到DBN中進(jìn)行基于受限玻爾茲曼機(jī)(RBM)的無(wú)監(jiān)督預(yù)訓(xùn)練,經(jīng)過(guò)50次循環(huán),得到特征矩陣W;將學(xué)習(xí)到的特征矩陣W傳給相應(yīng)的神經(jīng)網(wǎng)絡(luò)784-500-500-2000-500-500-784進(jìn)行有監(jiān)督微調(diào),得到特征矩陣W+ε。之后將W+ε傳遞給神經(jīng)網(wǎng)絡(luò)784-500-500-2000-10,在不同sigmoid激活函數(shù)條件下,進(jìn)行數(shù)字分類(lèi)實(shí)驗(yàn),訓(xùn)練周期數(shù)為300次,每隔10次采集一次測(cè)試誤差數(shù)據(jù),其訓(xùn)練過(guò)程如圖3所示。
設(shè)置α=0.3,λ=3.3,在有預(yù)訓(xùn)練和無(wú)預(yù)訓(xùn)練兩種情況下對(duì)雙參數(shù)sigmoid激活函數(shù)和普通sigmoid激活函數(shù)進(jìn)行數(shù)字分類(lèi)實(shí)驗(yàn),其測(cè)試結(jié)果如表1所示。
表1 測(cè)試誤差 %
測(cè)試誤差曲線(xiàn)如圖4所示。其中,‘*’線(xiàn)表示普通sigmoid激活函數(shù)測(cè)試誤差曲線(xiàn),‘o’線(xiàn)表示雙參數(shù)sigmoid激活函數(shù)的測(cè)試誤差曲線(xiàn);圖4(a)是無(wú)預(yù)訓(xùn)練時(shí)測(cè)試誤差曲線(xiàn),圖4(b)是有預(yù)訓(xùn)練時(shí)測(cè)試誤差曲線(xiàn)。
圖4 測(cè)試誤差與訓(xùn)練周期
分析圖4可知:
1)雙參數(shù)sigmoid激活函數(shù)可以直接應(yīng)用于深度神經(jīng)網(wǎng)絡(luò)的訓(xùn)練而無(wú)需預(yù)訓(xùn)練。如圖4(a),傳統(tǒng)的sigmoid激活函數(shù)的測(cè)試誤差高達(dá)90.2%,無(wú)法對(duì)深度神經(jīng)網(wǎng)絡(luò)進(jìn)行有效訓(xùn)練,雙參數(shù)sigmoid激活函數(shù)訓(xùn)練效果明顯,測(cè)試誤差達(dá)到1.59%;
2)雙參數(shù)sigmoid激活函數(shù)有比傳統(tǒng)sigmoid激活函數(shù)更好的訓(xùn)練結(jié)果。如圖4(b),傳統(tǒng)sigmoid激活函數(shù)的測(cè)試誤差達(dá)到1.85%,雙參數(shù)sigmoid激活函數(shù)的測(cè)試誤差達(dá)到1.68%,綜合1)的結(jié)論,有無(wú)預(yù)訓(xùn)練,雙參數(shù)sigmoid激活函數(shù)均能取得比傳統(tǒng)sigmoid激活函數(shù)更好的結(jié)果;
3)雙參數(shù)sigmoid激活函數(shù)有比傳統(tǒng)sigmoid激活函數(shù)更快的訓(xùn)練速度。如圖4(b),雙參數(shù)sigmoid激活函數(shù)50次迭代就能達(dá)到1.92%的測(cè)試誤差,而傳統(tǒng)sigmoid激活函數(shù)要達(dá)到同樣的測(cè)試誤差則需要180次迭代。
為了研究雙參數(shù)sigmoid激活函數(shù)對(duì)深度神經(jīng)網(wǎng)絡(luò)底層殘差的影響,以深度神經(jīng)網(wǎng)絡(luò)底層的權(quán)陣調(diào)整量ΔW1的絕對(duì)值之和D作為觀測(cè)量,用于表征底層殘差的大小。
D=∑∑|ΔW1|
實(shí)驗(yàn)中,每隔10個(gè)周期,記錄一次ΔW1,并求D,D隨迭代次數(shù)的變化曲線(xiàn)如圖5。其中,‘*’線(xiàn)表示普通sigmoid激活函數(shù)測(cè)試誤差曲線(xiàn),‘o’線(xiàn)表示雙參數(shù)sigmoid激活函數(shù)的測(cè)試誤差曲線(xiàn);圖5(a)為有預(yù)訓(xùn)練時(shí)D的變化曲線(xiàn),圖5(b)為無(wú)預(yù)訓(xùn)練的D的變化曲線(xiàn)。
圖5 D與訓(xùn)練周期
分析圖5可知:
1)無(wú)預(yù)訓(xùn)練時(shí),傳統(tǒng)sigmoid激活函數(shù)深度神經(jīng)網(wǎng)絡(luò)不能有效訓(xùn)練的原因是其殘差過(guò)小。如圖5所示,無(wú)預(yù)訓(xùn)練時(shí)應(yīng)用傳統(tǒng)sigmoid激活函訓(xùn)練的深度神經(jīng)網(wǎng)絡(luò)的D的范圍在10-10~10-8之間,而應(yīng)用雙參數(shù)sigmoid激活函數(shù)的深度神經(jīng)網(wǎng)絡(luò)中D的范圍在0.017 9~58.936 6之間,即無(wú)預(yù)訓(xùn)練時(shí),較之傳統(tǒng)sigmoid激活函數(shù),雙參數(shù)sigmoid激活函數(shù)將殘差增大了將近107倍,這是無(wú)預(yù)訓(xùn)時(shí)練深度神經(jīng)網(wǎng)絡(luò)能夠有效訓(xùn)練的關(guān)鍵;
2)與傳統(tǒng)sigmoid激活函數(shù)相比,雙參數(shù)sigmoid激活函數(shù)有更大的殘差,這是雙參數(shù)sigmoid激活函數(shù)有更好訓(xùn)練效果的原因所在。如圖5(b),有預(yù)訓(xùn)練時(shí),應(yīng)用雙參數(shù)sigmoid激活函數(shù)訓(xùn)練的深度神經(jīng)網(wǎng)絡(luò)的殘差仍然比應(yīng)用傳統(tǒng)sigmoid激活函數(shù)的殘差大,綜合1)的結(jié)論,即有無(wú)預(yù)訓(xùn)練,應(yīng)用雙參數(shù)sigmoid激活函數(shù)的深度神經(jīng)網(wǎng)絡(luò)的殘差都比應(yīng)用傳統(tǒng)sigmoid激活函數(shù)的大,這是其取得較好訓(xùn)練效果的原因所在。
本文針對(duì)深度神經(jīng)網(wǎng)絡(luò)深度訓(xùn)練過(guò)程中底層殘差過(guò)小的問(wèn)題,從分析sigmoid激活函數(shù)的局限性出發(fā),提出雙參數(shù)sigmoid激活函數(shù),有效的增大了底層殘差,提高了深度神經(jīng)網(wǎng)絡(luò)的訓(xùn)練效果,結(jié)合深度信念網(wǎng)絡(luò)(DBN)對(duì)MNIST數(shù)據(jù)集進(jìn)行分類(lèi)實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果顯示:
1)有無(wú)預(yù)訓(xùn)練,較之傳統(tǒng)sigmoid激活函數(shù),應(yīng)用雙參數(shù)sigmoid激活函數(shù)訓(xùn)練的深度神經(jīng)網(wǎng)絡(luò)均可取得更好的訓(xùn)練效果;
2)有無(wú)預(yù)訓(xùn)練,較之傳統(tǒng)sigmoid激活函數(shù),應(yīng)用雙參數(shù)sigmoid激活函數(shù)訓(xùn)練的深度神經(jīng)網(wǎng)絡(luò)均可獲得更大的底層殘差,這是取得較好訓(xùn)練效果的關(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