李 煒, 宋 威,2
(1. 江南大學(xué) 物聯(lián)網(wǎng)工程學(xué)院,江蘇 無(wú)錫 214122;2. 物聯(lián)網(wǎng)技術(shù)應(yīng)用教育部工程研究中心,江蘇 無(wú)錫 214000)
當(dāng)前,深度自動(dòng)編碼機(jī)[1](deep auto encoder,DAE)作為深度學(xué)習(xí)領(lǐng)域[2,3]的非監(jiān)督算法,受到越來(lái)越多的關(guān)注。在指紋識(shí)別[4]、人臉識(shí)別[5,6]、語(yǔ)音信息處理[7]等方面有較多應(yīng)用。雖然DAE具有良好的特征提取能力,但是在其訓(xùn)練的過(guò)程中,網(wǎng)絡(luò)層內(nèi)部節(jié)點(diǎn)的輸入分布變化之間存在干擾偏差,即內(nèi)部協(xié)變量遷移[8](internal covariate migration)。在每輪迭代完成參數(shù)更新后,各層的輸入分布還會(huì)受前層參數(shù)的變化而發(fā)生偏移,使網(wǎng)絡(luò)的更新方向始終基于原方向發(fā)生一定的偏差,隨著網(wǎng)絡(luò)層數(shù)的增加,內(nèi)部協(xié)變量遷移愈發(fā)嚴(yán)重,網(wǎng)絡(luò)權(quán)值更新會(huì)多層互耦干擾,高隱含層參數(shù)優(yōu)化難于傳遞到低隱含層,導(dǎo)致梯度彌散、網(wǎng)絡(luò)訓(xùn)練遲緩等問(wèn)題?;贒AE訓(xùn)練中存在的問(wèn)題,本文提出一種深層自適應(yīng)平衡自動(dòng)編碼機(jī)(deep self-adaptive balance auto encoder,DSBAE)分類算法,設(shè)計(jì)一種適用于自動(dòng)編碼機(jī)的自適應(yīng)平衡層,并將自動(dòng)編碼機(jī)和平衡層交替堆疊為深層結(jié)構(gòu)。為評(píng)估所提方法的有效性,本文對(duì)MNIST手寫(xiě)數(shù)據(jù)集,PENDIGITS鋼筆字符集以及USPS美國(guó)郵政數(shù)據(jù)集進(jìn)行了論證實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果表明,DSBAE算法分類準(zhǔn)確率高于SAE,相比于深度信念網(wǎng)絡(luò)[9](deep belief network,DBN)、深度神經(jīng)網(wǎng)絡(luò)[10]( deep neural network,DNN)等也具有較大優(yōu)勢(shì)。
DAE的基本組成部分為自動(dòng)編碼機(jī),其原型是關(guān)于中間層具有結(jié)構(gòu)對(duì)稱的多層前饋網(wǎng)絡(luò)。圖1為自動(dòng)編碼機(jī)結(jié)構(gòu),包括輸入層、隱含層和輸出層[11]。從輸入層到隱含層的部分為編碼器,從隱含層到輸出層的部分為解碼器。隱含層用于對(duì)輸入層數(shù)據(jù)編碼,并通過(guò)解碼在輸出層重構(gòu)輸入數(shù)據(jù)。直觀上,如果重構(gòu)數(shù)據(jù)能良好擬合輸入數(shù)據(jù),那么編碼層就保留了輸入數(shù)據(jù)所含的大部分信息。
圖1 原型自動(dòng)編碼機(jī)結(jié)構(gòu)
對(duì)于無(wú)標(biāo)簽樣本集合x(chóng)(x∈Rm), 編碼器將x映射到隱含表示y(y∈Rn),m,n分別為輸入層和隱含層神經(jīng)元個(gè)數(shù)。計(jì)算過(guò)程為
Y=f(Wx+b)
(1)
式中f(·)為非線性映射函數(shù),W∈Rn×m為編碼權(quán)值矩陣,b∈Rn為編碼偏置向量,y為網(wǎng)絡(luò)隱含層輸出。解碼器將y關(guān)于x的重構(gòu)映射到輸出層表示z,計(jì)算過(guò)程為
z=g(W′y+b′)
(2)
式中g(shù)(·)為非線性映射函數(shù),W′∈Rm×n為解碼權(quán)值矩陣,b'∈Rm為解碼偏置向量。激活函數(shù)一般取Sigmoid函數(shù)或者Tanh函數(shù),對(duì)應(yīng)的重構(gòu)誤差為交叉熵函數(shù)[12]
(3)
對(duì)于訓(xùn)練樣本x∈R,自動(dòng)編碼機(jī)的整體損失函數(shù)為
(4)
DAE由若干個(gè)訓(xùn)練完備的自動(dòng)編碼機(jī)堆疊構(gòu)成,用于深度學(xué)習(xí)方法中的維數(shù)簡(jiǎn)約和特征學(xué)習(xí)[13]。DAE通過(guò)多層編碼方式來(lái)獲取數(shù)據(jù)本質(zhì)特征,網(wǎng)絡(luò)的低隱含層會(huì)學(xué)習(xí)到原始輸入的低階特征,如圖像的邊緣特征,用于學(xué)習(xí)邊界;高隱含層會(huì)學(xué)習(xí)到高階特征,該特征對(duì)應(yīng)低階特征里包含的一些模式,如輪廓的共現(xiàn)邊緣,用于學(xué)習(xí)組合邊界,從而組成角、輪廓等特征。
本文將自動(dòng)編碼機(jī)的特征提取能力和自適應(yīng)平衡層的數(shù)據(jù)平衡效果相結(jié)合,構(gòu)造出自適應(yīng)平衡層,提出一種DSBAE,與DAE不同的是,DSBAE的網(wǎng)絡(luò)結(jié)構(gòu)由多個(gè)自動(dòng)編碼層和自適應(yīng)平衡層嵌套堆疊而成。如圖2。
圖2 DSBAE分類框架
其中,“●”表示權(quán)值W,偏置b參與編碼過(guò)程,“?”表示自適應(yīng)參數(shù)γ,β參與平衡映射過(guò)程,自適應(yīng)平衡層在提取數(shù)據(jù)高階特征的同時(shí),完成對(duì)該層不平衡數(shù)據(jù)分布的糾正和重構(gòu),以降低或消除內(nèi)部協(xié)變量遷移帶來(lái)的問(wèn)題,其數(shù)據(jù)平衡過(guò)程為
(5)
式中 E[x(k)],Var[x(k)]分別為該批次數(shù)據(jù)的均值和方差,將分布不均衡的數(shù)據(jù)糾正至一個(gè)較平衡的數(shù)據(jù)空間,然而糾正后的數(shù)據(jù)對(duì)于激活函數(shù)相當(dāng)于只使用了其近似線性部分,這顯然會(huì)降低模型的表達(dá)能力,因此,需要對(duì)糾正后的數(shù)據(jù)進(jìn)行變換重構(gòu),引入自適應(yīng)參數(shù)γ,β來(lái)恢復(fù)出本層數(shù)據(jù)的特征。 DSBAE具有兩個(gè)優(yōu)點(diǎn):無(wú)需人為干預(yù),能夠根據(jù)數(shù)據(jù)分布自適應(yīng)的均衡網(wǎng)絡(luò)參數(shù),同時(shí)保留數(shù)據(jù)的原始特征結(jié)構(gòu);解決內(nèi)部協(xié)變量遷移帶問(wèn)題,有效避免了梯度彌散[14]現(xiàn)象,提高訓(xùn)練效率,加速網(wǎng)絡(luò)收斂,達(dá)到更好分類效果。
DSBAE采用反向傳播(back propagation,BP)算法進(jìn)行訓(xùn)練。其中自動(dòng)編碼層的訓(xùn)練方法與自動(dòng)編碼機(jī)類似,這里不再贅述。自適應(yīng)平衡層訓(xùn)練算法分為三個(gè)過(guò)程:
輸入:X={x1,x2,…,xm}∈Rm×k,輸入數(shù)據(jù)維數(shù)k,數(shù)據(jù)個(gè)數(shù)m;
輸出:自適應(yīng)平衡參數(shù)γ,β。
1)初始化
自適應(yīng)參數(shù)的初始化,縮放參數(shù)γ和偏置參數(shù)β分別賦“1”和“0”向量為初值。
2)前饋計(jì)算
平衡層將編碼層的輸出作為輸入,進(jìn)行平衡糾正和仿射變換:
3)反饋階段
平衡層計(jì)算自適應(yīng)參數(shù)梯度,傳遞相應(yīng)殘差:
4)自適應(yīng)參數(shù)更新階段
5)隨網(wǎng)絡(luò)訓(xùn)練,自適應(yīng)層在步驟(2)~步驟(4)中不斷迭代,直至訓(xùn)練結(jié)束;
6)訓(xùn)練完備的γ,β作為測(cè)試模型中自適應(yīng)平衡層參數(shù)。
在對(duì)DSBAE訓(xùn)練完成后,測(cè)試前先對(duì)DSBAE的平衡層進(jìn)行計(jì)算如下
(6)
式中 均值utest和標(biāo)準(zhǔn)偏差vartest的值是使用全體訓(xùn)練樣本的均值期望和標(biāo)準(zhǔn)偏差期望的無(wú)偏估計(jì)。測(cè)試時(shí),對(duì)輸入該層測(cè)試數(shù)據(jù)的計(jì)算方法為
(7)
實(shí)驗(yàn)操作系統(tǒng)為Windows10 64位、CPU為Inter(R) Core(TM) i3—4170、主頻為3.70 GHz,內(nèi)存為4 GB的計(jì)算機(jī),編程平臺(tái)為MATLAB 2014a。實(shí)驗(yàn)在MNIST手寫(xiě)體數(shù)據(jù)集、USPS美國(guó)郵政數(shù)據(jù)集以及PENDIGITS鋼筆手寫(xiě)數(shù)據(jù)集上完成。
實(shí)驗(yàn)對(duì)相同層數(shù)下的DSBAE,DAE[3],DBN[9]以及DNN[10]分別進(jìn)行了測(cè)試和對(duì)比。實(shí)驗(yàn)分別構(gòu)建以上網(wǎng)絡(luò)隱含層層數(shù)為2~5層的深度網(wǎng)絡(luò)。實(shí)驗(yàn)在MNIST和PENDIGITS數(shù)據(jù)集上完成。分類結(jié)果如表1。
表1 集測(cè)試結(jié)果
可知,在相同深度下,DSBAE的分類準(zhǔn)確率高于原型DAE,并普遍優(yōu)于DBN和DNN。
實(shí)驗(yàn)對(duì)隱含層層數(shù)分別為2,3,4和5層的DSBAE,DAE[3],DBN[9]和DNN[10]分別在100,150,200,250,300,350,400,450,500次迭代訓(xùn)練下的分類情況進(jìn)行了對(duì)比。實(shí)驗(yàn)結(jié)果如圖3所示??芍?,網(wǎng)絡(luò)深度的增加或迭代次數(shù)的增加,都能提升各網(wǎng)絡(luò)的分類準(zhǔn)確率。相比于DAE,DBN和DNN,DSBAE也具有良好分類表現(xiàn)。
圖3 不同隱含層數(shù)下各網(wǎng)絡(luò)分類精度
本文還對(duì)DSBAE和其原型DAE針對(duì)算法耗時(shí)進(jìn)行了對(duì)比。實(shí)驗(yàn)在USPS數(shù)據(jù)集上完成,網(wǎng)絡(luò)訓(xùn)練500次。實(shí)驗(yàn)結(jié)果如表2。
表2 2種網(wǎng)絡(luò)時(shí)間對(duì)比
可知,在訓(xùn)練時(shí)間上DSBAE要略高于DAE,兩者相差在若干秒,在測(cè)試時(shí)間上得到的是差別在毫秒(ms)級(jí)的數(shù)據(jù),因此影響較小,而在分類精度上,DSBAE高于DAE,兩者精度相差在0.25%~1.2%。因此, DSBAE網(wǎng)絡(luò)性能更好。
本文對(duì)深層網(wǎng)絡(luò)協(xié)變量遷移的內(nèi)在問(wèn)題進(jìn)行分析,構(gòu)建自適應(yīng)平衡層來(lái)動(dòng)態(tài)地均衡網(wǎng)絡(luò)參數(shù),進(jìn)而與自編碼機(jī)嵌套堆疊為DSBAE,將數(shù)據(jù)平衡與特征提取相結(jié)合,從而提升模型訓(xùn)練效率,獲得更好的訓(xùn)練效果。實(shí)驗(yàn)結(jié)果表明:本文提出的DSBAE網(wǎng)絡(luò)能有效解決內(nèi)部協(xié)變量遷移問(wèn)題,避免梯度彌散現(xiàn)象,使網(wǎng)絡(luò)權(quán)值更新高效穩(wěn)健,進(jìn)一步提高手寫(xiě)數(shù)字的分類準(zhǔn)確率。
今后的工作將繼續(xù)探究提高深度學(xué)習(xí)模型訓(xùn)練效率的方法并嘗試將其模型用于更為廣闊的領(lǐng)域。