宋志堅,余 銳(.重慶交通大學信息科學與工程學院,重慶400074; .重慶交通大學交通運輸學院,重慶400074)
基于深度學習的手寫數字分類問題研究*
宋志堅1,余銳2
(1.重慶交通大學信息科學與工程學院,重慶400074; 2.重慶交通大學交通運輸學院,重慶400074)
摘要:手寫體數字因其書寫風格差異大、上下文無關及識別準確度要求高等原因導致其識別難度大,針對手寫體數字識別的特點及要求,使用深度學習算法進行分類,通過對樣本的訓練完成手寫體數字的識別,同時與SVM算法及BP神經網絡分類效果進行對比;實驗結果表明深度學習在識別手寫體數字時具有更高的準確率。
關鍵詞:手寫體數字識別;深度學習;樣本訓練
由于不同的人所寫的數字體形態各異,千差萬別,書寫不規范導致手寫數字識別的復雜性,而手寫體數字的識別是建立在特征提取及比較的基礎之上的。按照提取字符特征的不同,現有的數字手寫體識別算法大體上可以分為兩類:一類是基于結構特征的手寫體數字識別算法。它們通過識別字符圖像內部包含的凹陷區特征、輪廓特征結構突變點特征等基元,采用模板匹配的方式實現手寫體數字的自動識別[1,2]。這類方法能夠直觀地描述字符的結構,但是存在著對字符形變及噪聲缺乏魯棒的問題;另外一類是基于統計特征的手寫體數字識別算法。這類算法基于對大量樣本的表征、變換和學習,通過估計不同樣本類別的特征空間分布訓練相應的分類器,并利用這些分類器對未知模式進行分類[3,4]。當訓練樣本選取得足夠充分時,這類方法能夠具有很好的識別能力。
針對手寫體識別的特點及要求,分析現有算法存在的問題,使用深度學習進行手寫體數字識別。算法能夠通過使用大量的簡單神經元組成的網絡,利用輸入與輸出之間的非線性關系,對復雜函數進行近似,對觀測樣本進行擬合,并在學習輸入樣本本質特征的抽取上體現了強大的能力,實現了手寫體數字的自動識別。
深度學習(Deep Learning)的概念由Geoffrey Hinton等人提出,與傳統機器學習相比,整合特征抽取和分類器到一個學習框架下,克服了傳統方法中,特征選取困難等問題。
深度學習是通過大量的簡單神經元組成,每層的神經元接收更低層的神經元的輸入,通過輸入與輸出之間的非線性關系,將低層特征組合成更高層的抽象表示,并發現觀測數據的分布式特征。通過自下而上的學習形成多層的抽象表示,并多層次的特征學習是一個自動地無人工干預的過程。根據學習到的網絡結構,系統將輸入的樣本數據映射到各種層次的特征,并利用分類器或者匹配算法對頂層的輸出單元進行分類識別等。
1.1深度學習的基本思想
假設一個系統S,它是一個n層(S1,S2,…,Sn)的結構,I是系統的輸入,O是系統輸出,形象地表示為:I=>S1=>S2=>…=>Sn=>O,如果輸出O等于輸入I,物理意義也就是表明在經過系統變化之后,輸入I的信息量沒有任何損失,和原始的輸入保持了不變,這表明了輸入I經過每一層Si均沒有丟失任何信息,即在任何一層Si,它都是輸入I也就是原始信息的另外一種表示。
1.2受限玻爾茲曼機(RBM)
1.2.1RBM的模型定義
與傳統神經網絡相比,深度學習一個重要的突破就在于,在一定程度上克服了淺層神經網絡訓練的效率和效果問題。而在Hinton等人提出來的框架中,這種深度學習的學習策略,就是在進行多層的模型全局學習之前,先將多層神經網絡分解為若干個受限玻爾茲曼機(Restricted Boltzmann Machine,簡稱RBM)的疊加,并逐層訓練RBM。因此RBM作為深度學習中一個非常重要的基礎模型。
RBM是一個隨機的二值化對稱連接的神經網絡,是一種特殊形式的對數線性馬爾可夫隨機場(MRF),也就是說其能量函數關于其自由參數是線性的。它包含了一組可視單元v∈{ 0,1}D,和一組隱藏單元h∈{ 0,1}P。當參數一定時,對于一個受限的玻爾茲曼機(RBM)來說,其能量定義為

這里θ={ W,b,a}是RBM模型的參數,其中Wij表示可視層節點vi到隱層節點hi的鏈接權重,bi和aj是偏置項。RBM的狀態符合玻爾茲曼分布的形式,即可視節點和隱層節點的聯合概率分布被定義為

其中,P(v,h;θ)這種分布被稱之為玻爾茲曼分布函數;而Z(θ)是一個分布和,又或者叫做歸一化常數。那么RBM模型分配給可視節點v的概率:

由于RMB模型二分結構的這一特殊性,隱層節點可以清楚地同可視層區分開來:

由于在RBM中,同一層節點之間是互不相聯的,因此,在給定其中一層節點狀態時,另一層節點之間的狀態條件分布相互獨立,即:


其中,g(x)為sigmoid函數,g(x) = 1/(1 + exp(-x) )是一個邏輯函數。
1.2.2RBM的學習
RBM可利用極大似然法學習[5]。在給定訓練數據v1,v2,…,vD。學習RBM相當于最大化目標函數logP(v;θ)。這種情況下,先對一般數據進行推導。給定某個點x可以用函數的形式表示記為f(x;θ),此處θ是模型的參數向量。那么x的概率P(x;θ)可以表示為

其中,Z(θ)是分配函數,定義為

學習模型參數θ,可以通過最大化一組訓練數據X=x1,x2,…,xk的概率,即:

那么:

可根據減號將公式分為正項(positive phase)和負項(negative phase)兩個部分。對于正項部分,表示的是滿足訓練數據分布中的數據期望,可以通過遍歷所有訓練數據算出來。而對于負項部分,表示的是概率密度分布為p(x;θ)的函數f(x)的均值。
同樣地,RBM模型的參數以及其分布概率函數,根據極大似然準則可以從公式(1)推導出:

在RBM中,正項表示滿足Pdata(h,v;θ) = P(h|v;θ) Pdata(v)這數據分布的平均值,而負項是滿足模型定義的分布的數據期望,這個均值在采用極大似然算法中復雜度為min{ D,F}的指數級,也就是輸入節點或隱藏層節點數目的指數級。這個積分的計算通常來講不是線性可算的。此時對分布p(x)下的樣本進行大量采樣并求其均值就可以逼近原積分結果。對于各態遍歷的馬爾可夫過程,隨著轉移次數的增多,隨機變量的取值分布將不受隨機變量初始值的影響,最終都會收斂于唯一的平穩分布[6]。這意味著,不論隨機變量的初始值設為多少,經過足夠多次轉移之后,變量取各值的概率總會不斷接近于該過程的平穩分布。顯然,如果為了獲取某個目標分布下采樣,只需要模擬以其為平穩分布的馬爾可夫過程,并執行足夠多次的概率轉移得到一個與樣本分布接近的平衡分布。
1.3深度信念網絡
全局優化具有多個隱藏層的深度信賴網絡往往是難以處理的,而為了取得較好的優化性能,貪婪算法是可以用于此處的,即逐層優化,每次只學習相鄰兩層RBM模型參數,并通過這樣子貪婪地逐層學習以獲得全局的DBNs[7]。通過貪婪算法獲得的深度信賴網絡根據最終的感興趣的判別準則進行微調就可以獲得最終深度信賴網絡,也就是把一個DBNs網絡分層,對每一層進行無監督學習,最后對整個網絡用監督學習進行微調。過程可以歸為兩部分:
(1)預訓練。深度信賴網絡分解成由相鄰兩層構成的一系列受限的玻爾茲曼機,逐層訓練參數,初始化深度信賴網絡:首先將經驗數據v作為輸入,訓練第一層受限波爾茲曼機的權值系數矩陣W1;接著將W1固定,通過p(h1|v) = p(h1|v,W1),訓練出第一層受限波爾茲曼機的隱層向量h1;將h1作為第二層受限波爾茲曼機的輸入,訓練第二層受限波爾茲曼機的權值系數矩陣W2;遞歸地計算出每一層的隱含單元向量和權值系數矩陣。
(2)微調。為了使得模型具有更好的表現能力,當完成一組RBM之后,將其展開,然后采用back propagation的方法,運用梯度下降法對整個DBNs進行優化。
這個基于貪婪的學習方法無論是在預訓練還是微調階段在時間復雜度上和空間復雜度上均是線性的。所以在進行大規模數據的學習時,這個方法是非常有效的。
在實驗中選取樣本庫中手寫體數字進行訓練及測試,實現分類預測,表1為選取樣本數。分別根據每個數字的訓練集進行訓練,使用測試集測試效果,對于每種數字識別正確率如表2。

表1 訓練樣本數及測試樣本數

表2 實驗識別結果統計 %
從實驗結果可看出,SVM算法優于BP神經網絡算法,識別效果大幅度提高,而Deep Learning算法又在SVM算法的基礎進一步提高,達到98%以上,識別效果令人滿意。
深度學習算法的優越性逐步在被發掘,在數字識別領域已經達到一個高度,同時其推廣程度相當高,還可以使用在手寫漢字系統、圖片收索引擎等方面具有巨大的發展潛力。
參考文獻:
[1]陳軍勝.組合結構特征的自由手寫體數字識別算法研究[J].計算機工程與應用,2013,49(5):179-184
[2]吳忠,朱國龍,黃葛峰,等.基于圖像識別技術的手寫數字識別方法[J].工業控制計算機,2011,21(12):48-51
[3]石會芳,胡小兵,劉瑞杰,等.基于啟發式GA-SVM的手寫數字字符識別的研究[J].計算機技術與發展,2012,22(10):5-9
[4]石會芳.支持向量機及其在手寫數字識別中的應用[D].重慶:重慶大學,2013
[5]HINTON G.A Practical Guide to Training Restricted Boltzmann Machines[J].Report of Momentum,2010,9(1):1-20
[6]LIU J S.Monte Carlo Strategies in Scientific Computing[M].Berlin Heidelberg:Springer Verlag,2008
[7]BENGIO Y,LAMBLIN P,POPOVICI D,et al.Greedy Layer-wise Training of Deep Networks[J].Advances in Neural Information Processing Systems,2007,19-153
Research on the Classification of Handwriting Number
Based on Deep Learning
SONG Zhi-jian1,YU Rui2
(1.School of Computer science and technology,Chongqing Jiaotong University,Chongqing 400074,China; 2.School of transportation,Chongqing Jiaotong University,Chongqing 400074,China)
Abstract:It is difficult to recognize handwriting number,because writing styles are different,context is free and recognition requires high accuracy.According to the characteristics and requirements of handwriting number recognition,this paper uses the Deep Learning algorithm for classification,based on the sample of training to recognize the handwriting number.
At the same time,the experiment compared the classification effect with that of SVM algorithm and BP neural network.The experimental results show that the Deep Learning of handwriting number in recognition has a higher accuracy.
Keywords:handwriting number recognition; Deep Learning; sample training
中圖分類號:O224
文獻標志碼:A
文章編號:1672-058X(2015) 08-0049-05
doi:10.16055/j.issn.1672-058X.2015.0008.011
收稿日期:2014-10-21;修回日期:2014-12-11.
*基金項目:重慶市自然科學基金計劃項目(CSTC2011jjA0893).
作者簡介:宋志堅(1990-),男,內蒙古包頭人,碩士研究生,從事機器學習研究.