林少飛,盛惠興,李慶武
(河海大學物聯網工程學院,常州213022)
基于堆疊稀疏自動編碼器的手寫數字分類
林少飛,盛惠興,李慶武
(河海大學物聯網工程學院,常州213022)
將稀疏自動編碼器(Sparse Autoencoder,SAE)模型應用于數字識別中,并通過多個稀疏自動編碼器的堆疊構建了深度網絡,采用非監督貪婪逐層訓練算法(Greedy Layer-Wise Unsupervised Learning Algorithm)初始化網絡權重,使用反向傳播算法優化網絡參數。利用堆疊稀疏自動編碼器學習數字圖像的特征,使用softmax分類器進行數字分類。經實驗證明,與其它淺層學習模型對比,深度網絡不僅進一步學習了數據的高層特征,同時還降低了特征維數,提高了分類器的分類精度,最終改善了手寫數字的分類效果。
堆疊稀疏編碼器;非監督貪婪逐層訓練;反向傳播算法;softmax分類器
手寫數字識別(Handwritten Numeral Recognition,簡稱HNR)是模式識別學科的一個傳統研究領域,主要研究如何利用計算機自動辨識手寫的阿拉伯數字。經過幾十年的發展,現有HNR技術取得了諸多進展,國內外都研發了相對成熟的產品。但當前多數分類、回歸等學習方法都局限于淺層結構學習,如K最近鄰節點算法(k-Nearest Neighbor algorithm,簡稱KNN)[1-2]、支持向量機(Support Vector Machine,簡稱SVM)[3-4]以及神經網絡[5]。其局限性在于樣本有限、計算單元對復雜函數的表示能力不足以針對復雜分類問題及其泛化能力受制約等。為克服這些問題,近年來興起了深度學習的研究熱潮。所謂深度學習,即是通過學習一種深層非線性網絡結構,實現對復雜函數逼近,表征輸入數據分布式表示,并展現其強大的從少數樣本集中學習數據集本質特征的能力。
稀疏自動編碼器作為深度學習中出現的變形結構,具有良好的學習數據集特征的能力。通過多個稀疏自動編碼器(Sparse Autoencoder,SAE)的堆疊可以形成堆疊稀疏自動編碼器(Stacked Sparse Autoencoder),堆疊稀疏自動編碼器能夠進一步學習數據集中的特征,同時降低特征維數。對于深度網絡的訓練,采用Hinton基于深信度網(Deep Belief Nets,DBN)提出的非監督貪婪逐層訓練算法[6]。
采用深度學習中的稀疏自動編碼器模型,建立了多層的堆疊稀疏自動編碼器網絡對MNIST數據集在matlab上進行仿真實驗,對實驗結果作了分析,并與現有一些識別方法的實驗結果作比較,得出了結論。
2.1 自動編碼器
假設一個未帶類別標簽的訓練樣本集合x(x∈[0,1]d),通過變換公式(1)將輸入x變換為激活值y,(y∈[0,1]d)。x與y滿足公式(1):

其中s是一個非線性函數,例如sigmoid函數。θ={W,b}為參數集合。然后通過變換公式(2)將激活值y反向變換為對原始輸入x的一種重構表示z,y與z滿足公式(2):

其中θ′={W′,b′}為參數集合。公式(1)、(2)兩個參數集合中的參數W′,WT被限制滿足如下關系W′=WT。最后通過不斷修改θ和θ′使得平均重構誤差L達到最小化。L定義為:

直觀上講,如果激活值能夠對它的原始輸入進行良好重構,那么就認為它保留了原始數據所含有的大部分信息[7-8]。現今自動編碼器已應用于眾多領域如語音識別,并取得巨大成就[9]。
2.2 稀疏編碼
如果只是簡單的保留原始輸入數據的信息,并不足以讓自動編碼器學到一種有用的特征表示。例如,一個自動編碼器,它的輸入和輸出具有同樣維度,那么自動編碼器只需學習到一個簡單的恒等函數就可以實現數據的完美重構。而實際則希望它能夠學習到一種更復雜的非線性函數,因此需要給予自動編碼器一定的約束使其學習到一種更好的特征表示。這個問題可以通過使用概率型限制型玻爾茲曼機(Restricted Boltzmann Machine,RBM),稀疏編碼(Sparse Auto-Encoder,SAE)或者去噪自動編碼(Denoising Auto-Encoder,DAE)對含有噪聲的輸入數據進行重構來解決。一般情況下稀疏編碼和去噪自動編碼比玻爾茲曼機更有效。
稀疏編碼算法是一種無監督學習方法,它用來尋找一組“超完備”基向量來更高效地表示樣本數據。稀疏編碼算法的目的就是找到一組基向量?i,能將輸入向量X表示為這些基向量的線性組合:

雖然形如主成分分析技術(PCA)能方便地找到一組“完備”基向量,但是這里是找到一組“超完備”基向量來表示輸入向量X∈Rn(也就是說,k>n)。超完備基的好處是能更有效地找出隱含在輸入數據內部的結構與模式。然而,對于超完備基來說,系數ai不再由輸入向量X唯一確定。因此,在稀疏編碼算法中,有另一個評判標準“稀疏性”來解決因超完備而導致的退化問題。這里,定義“稀疏性”為:只有很少的幾個非零元素或只有很少的幾個遠大于零的元素。系數ai是稀疏的意思就是說:對于一組輸入向量,盡可能讓少的幾個系數遠大于零。選擇使用具有稀疏性的分量來表示輸入數據是因為絕大多數的感官數據,比如自然圖像,可以被表示成少量基本元素的疊加,在圖像中這些基本元素可以是面或者線。有m個輸入向量的稀疏編碼代價函數定義為:


且公式(5)滿足條件,‖?i‖2≤C,?i=1,...,k
2.3 逐層貪婪訓練方法
Hinton基于深信度網(Deep Belief Nets,DBN)提出的非監督貪婪逐層訓練算法是目前訓練深度網絡比較成功的一種方法[10]。簡單來說,逐層貪婪算法的主要思路是每次只訓練網絡中的一層,即首先訓練一個只含一個隱藏層的網絡,僅當這層網絡訓練結束之后才開始訓練一個有兩個隱藏層的網絡,以此類推。在每一步中,把已經訓練好的前k-1層固定,然后增加第k層(也就是將已經訓練好的前k-1的輸出作為輸入)。每一層的訓練可以是有監督的(例如,將每一步的分類誤差作為目標函數),但更通常使用無監督方法(例如自動編碼器)。這些各層單獨訓練所得到的權重被用來初始化最終(或者說全部)的深度網絡權重,然后對整個網絡進行“微調”(即把所有層放在一起來優化有標簽訓練集上的訓練誤差)。
3.1 深度網絡的結構和訓練方法
堆疊稀疏自動編碼器網絡本身不具有分類功能,它是一個特征提取器,所以要實現分類功能還需要在網絡最后添加分類器,如支持向量機(SVM),貝葉斯分類器,softmax分類器等,本實驗選用softmax分類器進行訓練分類。
在本實驗中,帶有softmax分類器的堆疊稀疏自動編碼器網絡隱含層共有2層,網絡結構圖如圖1所示,網絡訓練步驟如下:
(1)用大量的無標簽原始輸入數據作為輸入,訓練出(利用Sparse Autoencoder方法)第一個隱含層結構的網絡參數,并將用訓練好的參數算出第1個隱含層的輸出。
(2)把步驟1的輸出作為第2個網絡的輸入,用同樣方法訓練第2個隱含層網絡的參數。
(3)用步驟2的輸出作為多分類器softmax的輸入,然后利用原始數據標簽來訓練出softmax分類器的網絡參數。
(4)計算2個隱含層加softmax分類器整個網絡一起的代價函數,以及整個網絡對每個參數的偏導函數值。
(5)用步驟1,2和3的網絡參數作為整個深度網絡(2個隱含層,1個softmax輸出層)參數初始化的值,然后用lbfs算法迭代求出上面代價函數最小值附近處的參數值,并作為整個網絡最后的最優參數值。

圖1 網絡結構圖
上面的訓練過程是針對使用softmax分類器進行的,而softmax分類器的代價函數是有公式計算的。所以在進行參數校正時,可以把所有網絡看做是一個整體,然后計算整個網絡的代價函數和其偏導,最后結合標簽數據,將前面訓練好的參數作為初始參數,用lbfs優化算法求得整個網絡參數。
3.2 具體算法
由稀疏自動編碼器堆疊構成的深度學習網絡算法流程圖如圖2所示,主要步驟如下:
(1)將28×28的原始圖像矩陣x作為輸入,訓練第一層稀疏自動編碼器,得到參數θ1和由隱層單元激活值a1(隱層神經元節點的輸出值,相當于3.1節中介紹的y)組成的向量A1。
(2)將A1作為第二層稀疏自動編碼器的輸入,繼續訓練得到第二層參數θ2和由激活值a2組成的向量A2。
(3)將A2和原始數據標簽L作為第三層softmax分類器的輸入,得到分類器的參數θ3。
(4)使用反向傳播算法進行微調(fine tuning),算法描述如圖2所示。
(5)利用訓練好的網絡對數據集進行分類,得到結果。

圖2 算法流程圖
實驗基于Matlab平臺實現,使用測試庫為MNIST手寫數字庫數據集。MNIST字庫,為Google實驗室的Corinna Cortes和紐約大學柯朗研究所的Yann LeCun建立的一個手寫數字數據庫,該訓練庫中有60,000張手寫數字圖像,測試庫有10,000張。
4.1 淺層分類器比較
比較淺層模型分類器knn、bp神經網絡和softmax這三類分類器下的識別率,此時都是用二值點陣信息特征作為輸入。其中bp神經網絡是由輸入層,隱含層,輸出層構成的三層神經網絡。用MNIST數據集對這三類分類器進行測試,結果如表1所示。

表1 淺層模型各分類器的識別效果
由表1可知,用二值點陣信息作特征時,knn的準確率為96.65%,比bp神經網絡和softmax要高4個百分點左右,但總體來看,還是沒有達到很高的準確率要求。
對于淺層模型來說,字符特征的選擇和提取是構成識別系統的關鍵。根據文獻[5],采用了其中的5類人工提取的字符特征分別對MNIST數據集進行測試。這5類特征分別是粗網格、七段特征投影、寬高比、端點以及穿線數,識別結果如表2所示。
由表2可知,不同的字符特征對識別效果影響很大,而且特征的線性疊加并沒有對識別率有顯著提高。

表2 各人工選取特征的識別效果
4.2 堆疊稀疏自動編碼器
利用深度學習中的堆疊稀疏編碼器網絡對MINST數據集進行訓練,并分類。
從表1、表2和表3的對比中可以看出,對MNIST手寫體字庫進行測試時,確實深層模型的識別率要比淺層模型有明顯提高,微調過后的堆疊稀疏自動編碼器網絡的識別率可以達到98%。

表3 迭代次數對準確率的影響
此外深層模型未微調之前大概只有88.77%左右的準確率,微調后,增加了近10個百分點的準確率,而且隨著迭代次數的增大而增大,所以微調對深度模型的準確率提高還是很重要的。這一點可以從圖3中很清楚的看出來,第一層權值示意圖中,迭代100次比迭代10次的數字筆畫特征更清晰,更明顯。
采用了堆疊稀疏編碼器這一深度學習模型對手寫體數字的分類問題進行研究,并在MNIST數據集上進行測試。與KNN,BP等淺層算法進行對比,得出深度學習在特征學習上具有自己的優勢,并發現微調對準確率提高還是很重要的。
然而未能深入研究網絡層數對特征學習的影響。對于網絡訓練而言,通常情況下訓練數據越多,最終學到的特征將會更具魯棒性。此外任何分類器的錯分都無法徹底消除,只能不斷提高分類效果,可采用集成分類器的思想。接下來將對這些問題進行深入研究。

圖3 不同迭代次數的權值示意圖
[1] Alkhateeb JH,Khelifi F,Jiang J,et al.A new approach for off-line handwritten Arabic word recognition using KNN classifier[C].//Signal and Image Processing Applications(ICSIPA),2009 IEEE International Conference on.IEEE,2009:191-194.
[2] Lee Y.Handwritten digit recognition using k nearestneighbor,radial-basis function,and back propagation neural networks[J].Neural computation,1991,3(3):440-449.
[3] Gorgevik D,Cakmakov D.Handwritten digit recognition by combining SVM classifiers[C].//Computer as a Tool,2005.EUROCON 2005.The International Conference on.IEEE,2005,2:1393-1396.
[4] Dolenko B K,Card H C.Handwritten digit feature extraction and classification using neural networks[C].//Electrical and Computer Engineering,1993.Canadian Conference on.IEEE,1993:88-91.
[5] 杜敏,趙全友.基于動態權值集成的手寫數字識別方法[J].計算機工程與應用,2010,46(27):182-184.
[6] Hinton G E,Osindero S,Teh Y W.A fast learning algorithm for deep belief nets[J].Neural computation,2006,18(7):1527-1554.
[7] Baldi P.Autoencoders,Unsupervised Learning,and Deep Architectures[J].Journal of Machine Learning Research-Proceedings Track,2012,27:37-50.
[8] Glüge S,B?ck R,Wendemuth A.Auto-Encoder Pre-Training of Segmented-Memory Recurrent Neural Networks[J].//Proceedings of the 21st European Symposium on Artificial Neural Networks,Computational Intelligence and Machine Learning(ESANN 2013).Bruges(Belgium).April 24-26,2013:29-34.
[9] Larochelle H,Erhan D,Vincent P.Deep learning using robust interdependent codes[C].//International Conference on Artificial Intelligence and Statistics.2009:312-319.
[10] Jaitly N,Hinton G E.Using an autoencoder with deformable templates to discover features for automated speech recognition[C].//The 14th annual conference of the International Speech Communication Association.Lyon.August2013:25-29.
Handw ritten Digital Classification Based on the Stacked Sparse Autoencoders
Lin Shaofei,Sheng Huixing,Li Qingwu
(College of Internet of Things Engineering,Hohai University,Changzhou 213022,China)
In this paper,the sparse autoencoders(Sparse Autoencoder,SAE)model is applied to the digital recognition,and a deep network is constructed by stacking a plurality of sparse autoencoders,using Greedy Layer-Wise Unsupervised Learning algorithm to initialize the weights of the network and back propagation algorithm to optimize the parameters of the network.The stacked sparse autoencoders are used to learn the features of the digital image,and the softmax classifier is used to conduct the digital classification.The experiments show that,comparing with other shallow learning models,the deep network not only studies the high-level features of the data,but also reduces the feature dimension and improves the precision of the classifier,which finally improves the classification effect of handwritten digits.
Stacked Sparse Autoencoder;Greedy Layer-Wise Unsupervised Learning Algorithm;Back Propagation Algorithm;Softmax classifier
10.3969/j.issn.1002-2279.2015.01.014
TP391
A
1002-2279(2015)01-0047-05
林少飛(1990-),男,安徽六安人,碩士研究生,主研方向:信息獲取與處理。
2014-09-01