余濤
摘要:深度學(xué)習(xí)是基于深層神經(jīng)網(wǎng)絡(luò)的人工智能領(lǐng)域的概念。其架構(gòu)有卷積神經(jīng)網(wǎng)絡(luò)(CNN),深度置信網(wǎng)絡(luò)(DBN),自動編碼器(AE)等。本文描述了一種把稀疏自編碼器無監(jiān)督學(xué)習(xí)得到的權(quán)值矩陣應(yīng)用于卷積神經(jīng)網(wǎng)絡(luò),而并不直接訓(xùn)練卷積神經(jīng)網(wǎng)絡(luò)的圖像特征提取方法,并利用提取的特征訓(xùn)練分類器。最終得到的網(wǎng)絡(luò)分類效果較理想,并且比起傳統(tǒng)人工神經(jīng)網(wǎng)絡(luò)的圖像識別,具有網(wǎng)絡(luò)參數(shù)較少,對圖像的平移具有一定的容忍能力,不容易過擬合等優(yōu)點。
關(guān)鍵詞:深度學(xué)習(xí);卷積神經(jīng)網(wǎng)絡(luò);稀疏自編碼器;無監(jiān)督學(xué)習(xí);特征提取
中圖分類號:TP391.41 文獻標(biāo)識碼:A 文章編號:1007-9416(2017)01-0066-01
1 引言
深度學(xué)習(xí)廣泛應(yīng)用于圖像識別、語音識別、自然語言處理等領(lǐng)域。一些機器學(xué)習(xí)的任務(wù)需要復(fù)雜的數(shù)據(jù)預(yù)處理過程,人工提取特征,深度學(xué)習(xí)自動提取特征的能力大大簡化了數(shù)據(jù) 預(yù)處理的過程,尤其是對于圖像處理,提取的特征具有明顯的含義。卷積神經(jīng)網(wǎng)絡(luò)是一種深度學(xué)習(xí)的架構(gòu),網(wǎng)絡(luò)的參數(shù)可以通過無監(jiān)督學(xué)習(xí)訓(xùn)練。本文描述的方法并不直接訓(xùn)練卷積神經(jīng)網(wǎng)絡(luò),而是通過稀疏自編碼器無監(jiān)督學(xué)習(xí)得到的權(quán)值矩陣作為稀疏自編碼器的卷積濾波器,從而間接確定卷積神經(jīng)網(wǎng)絡(luò)的參數(shù)。
2 稀疏自編碼器
自動編碼器是一種無監(jiān)督學(xué)習(xí)的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)。網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示,分為輸入層、隱 層、輸出層。隱層也稱為特征提取層,自編碼器的正向傳導(dǎo)過程分為編碼和解碼。編碼過程即輸入數(shù)據(jù)x經(jīng)過線性加和以及偏置得到z2= W1x+b1,經(jīng)過S型函數(shù)f(x)(比如sigmoid函數(shù))得到隱層激活值a2=f(z2)。解碼過程即隱層激活值經(jīng)過線性加和以及非線性變換得到輸出層激活值hW;b=(W2a2+b2)。
自編碼器的訓(xùn)練目標(biāo)是讓輸出層和輸入層之間的誤差盡量小,即試圖學(xué)習(xí)一個恒等函數(shù)hW;b(x)=x,。若訓(xùn)練結(jié)果較為理想,x經(jīng)正向傳導(dǎo)后,輸出值和x相似,即可認(rèn)為隱層是對輸入x的一個理想的編碼,通過對隱層節(jié)點解碼能夠較好地恢復(fù)x。
對隱層節(jié)點施加某些約束,比如讓隱層節(jié)點個數(shù)較少,那么為了解碼能夠較好地恢復(fù)輸入數(shù)據(jù),隱層節(jié)點就必須捕捉輸入數(shù)據(jù)的主要特性,從而達到提取特征的目的。
稀疏自編碼器通過在代價函數(shù)中加入稀疏性懲罰項來約束隱層節(jié)點對所有訓(xùn)練樣本的平均激活值,某個隱層節(jié)點只有在特定的輸入下才能獲得較大的激活值,而對于其他輸入則激活值很低,那么該隱層節(jié)點就對特定的輸入具有代表性,特定的輸入就是該隱層節(jié)點提取的特征。
3 手寫體數(shù)字圖像識別
本文使用的數(shù)據(jù)是MNIST數(shù)據(jù)庫,訓(xùn)練集數(shù)據(jù)包含了60000個20×20的手寫體數(shù)字圖片和對應(yīng)的標(biāo)簽,測試集數(shù)據(jù)包含了10000個20×20的手寫體數(shù)字圖片和對應(yīng)的標(biāo)簽。讀取圖片數(shù)據(jù)后,把原始圖像進行擴展,得到20×40的新圖像,原始圖像在新圖像中的位置隨機選取。(見圖1)
4 稀疏自編碼器的訓(xùn)練
稀疏自編碼器的訓(xùn)練使用的是BP算法(Back Propagation Algorithm),代價函數(shù)為:
其中,J為三層BP網(wǎng)絡(luò)的代價函數(shù),β為稀疏性代價系數(shù),為隱層神經(jīng)元j對所有訓(xùn)練樣本的平均激活度,ρ為期望平均激活度,為ρ和的KL距離(KL divergence)。
從MNIST數(shù)據(jù)庫數(shù)字5到9的圖片中隨機提取8×8的小片10000片作為訓(xùn)練樣本。稀疏自動編碼器的輸入層節(jié)點為64個,隱層節(jié)點25個,輸出層節(jié)點數(shù)和輸入層相同。
把訓(xùn)練好的稀疏自編碼器的輸入層和隱層連接權(quán)值可視化,隱層每一個節(jié)點代表一個特征,隱層節(jié)點和輸入層的連接權(quán)值排列成8×8的圖片就是特征的可視化形式。對于較小的圖像來說,稀疏自編碼器訓(xùn)練得到的特征是各個方向的邊緣信息。輸入的圖像可以近似地由隱層節(jié)點所代表的特征線性表示。訓(xùn)練好的稀疏自編碼器輸入層和輸出層連接的權(quán)值(64×25)作為卷積神經(jīng)網(wǎng)絡(luò)的卷積濾波器(25個)。
5 分類
原始圖像(20×40)經(jīng)過卷積和降采樣得到Feature Map2,共有25個特征圖。把Feature Map2的所有特征圖展開作為ANN的輸入,訓(xùn)練Softmax分類器進行分類。
6 結(jié)果及分析
實驗設(shè)備為一臺搭載Win7操作系統(tǒng),CPU是Intel i5-3210M,主頻2.5GHz。RAM為4GB的筆記本電腦。訓(xùn)練分類器使用的訓(xùn)練集樣本數(shù)為10000,測試集樣本數(shù)2000。
稀疏自編碼器訓(xùn)練使用的樣本是數(shù)字5到9的圖像,而網(wǎng)絡(luò)進行分類的輸入是數(shù)字0到4的圖像,理想的分類效果說明稀疏自編碼器對于小型圖像提取的特征可近似地認(rèn)為是圖像的普遍特征。
對比CNN+ANN和直接使用ANN分類的結(jié)果,可以看出雖然ANN在訓(xùn)練集上正確率高于CNN+ANN,但在測試集上的正確率明顯下降,表現(xiàn)出對訓(xùn)練集的依賴(過擬合),尤其是加入椒鹽噪聲后,ANN在測試集上的正確率急劇下降到77%,表現(xiàn)出嚴(yán)重的過擬合。而CNN+ANN對于測試集和訓(xùn)練集,分類正確率基本相同。
直接使用ANN進行分類的網(wǎng)絡(luò)需要訓(xùn)練的參數(shù)有4000個,而CNN+ANN僅有1250個。進行卷積操作時,選取的卷積步長不宜過長,否則有可能“跨過”具有明顯特征的區(qū)域。而降采樣的步長同樣需謹(jǐn)慎選取,雖然步長大對于降維有較明顯的作用,但可能導(dǎo)致特征嚴(yán)重丟失,例如卷積步長都為3時,降采樣的步長從2增加到3時,分類準(zhǔn)確率從85.8%下降到68.5%。