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