余濤


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