李大華,王宇,高強,于曉
(天津理工大學電氣電子工程學院,復雜系統(tǒng)控制理論與應用重點實驗室,天津300384)
隨著國家“科技強檢”戰(zhàn)略的實行,分類卷宗材料這種繁雜的工作無疑成為檢務(wù)人員的負擔,于是利用計算機識別文件表面的數(shù)字編號來對材料進行分類能提高檢務(wù)人員的工作效率,同時也能減少由于人工可能導致的失誤。由于傳統(tǒng)的識別算法在支票、報表、卷宗材料等文件的識別中,識別精度和準確率都有所影響,提出一種基于改進LeNet-5網(wǎng)絡(luò)的手寫文字識別網(wǎng)絡(luò),通過對LeNet-5網(wǎng)絡(luò)各層數(shù)據(jù)處理之前做一個歸一化處理,來提高網(wǎng)絡(luò)的訓練速度,提升網(wǎng)絡(luò)的學習率。從MNIST手寫數(shù)字數(shù)據(jù)集中隨機選取3000個訓練樣本,500個驗證樣本進行訓練,實驗證明,改進LeNet-5網(wǎng)絡(luò)不僅能實現(xiàn)了對手寫數(shù)字0-9的準確識別,并且相比于傳統(tǒng)的LeNet-5網(wǎng)絡(luò),在訓練數(shù)據(jù)較少的情況下,識別率也有提升。
手寫數(shù)字;神經(jīng)網(wǎng)絡(luò);LeNet-5;MNIST
隨著國家“科技強檢”戰(zhàn)略的實行,智慧檢務(wù)平臺的構(gòu)建成為實施該戰(zhàn)略的重要步驟。在構(gòu)建智慧檢務(wù)平臺的過程中,需要將紙面材料上傳到計算機進行保存,然后利用計算機的快速計算能力來對已有的卷宗材料進行相應的處理。在計算機保存材料的過程中,需要對材料進行分類整理,但由于有些材料保存時間太長以及經(jīng)常查閱等原因,會出現(xiàn)材料誤放、順序錯亂等問題,導致后期利用計算機進行類似案件分析會不方便。在保存的卷宗材料上面,通常會通過數(shù)字來進行編號排序,利用計算機對編號進行識別,不僅可以節(jié)省大量時間,還能減少由于人工失誤導致的分類錯誤等問題。因此對數(shù)字編號的準確識別,能夠在構(gòu)建智慧檢務(wù)平臺的過程中起到非常重要的作用。
關(guān)于數(shù)字識別的問題,國內(nèi)外學者進行了深入的研究。一般來說,廣泛用于數(shù)字識別的算法有Bagging算法[1]、AdaBoost算法[2-3]、支持向量機等[4-5]。2005年趙萬鵬等人[6]提出了一種新的基于集成學習算法Ada?Boost的手寫體數(shù)字識別系統(tǒng),被應用在OCR識別軟件中。2009年Vikas K.Garg等人[7]提出了一種利用FS-SVM尋找近似α-MFC的算法,提高了識別速度,降低了過擬合的風險。2011年劉作軍[8]以BP網(wǎng)絡(luò)做基本分類器,用Bagging產(chǎn)生多個基本分類器,用簡單多數(shù)投票法進行集成,實現(xiàn)了手寫體數(shù)字的分類識別。2019年葉曉波等人[9]通過改進AdaBoost-BP二分類算法,實現(xiàn)用于多分類的AdaBoost-BP算法,提高了神經(jīng)網(wǎng)絡(luò)對手寫數(shù)字的識別率。
經(jīng)過實踐證明,傳統(tǒng)的識別算法在實踐過程中能夠做到比較好的效果,但在支票、報表、卷宗材料等文件的識別中,識別的準確率與精度都會有一定程度的影響。卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,CNN)是一種常見的深度學習的架構(gòu),是受到生物自然視覺的認知機制啟發(fā)而來,是一種特殊的多層前饋神經(jīng)網(wǎng)絡(luò)。由于CNN網(wǎng)絡(luò)能夠快速穩(wěn)定地提取圖片中的特征,所以被常用于圖像識別領(lǐng)域。常用的CNN網(wǎng)絡(luò) 有LeNet-5[10]、AlexNet[11]、VGGNet(Visual Geometry Group)[12]等。LeNet-5網(wǎng)絡(luò)常用于手寫數(shù)字的識別,但LeNet-5網(wǎng)絡(luò)在數(shù)據(jù)樣本較少時,會出現(xiàn)無法充分獲取圖像特征的問題,本文通過對LeNet-5進行改進解決樣本較少時,識別率較低的問題。
圖1中三幅圖像是不同卷宗上截圖的三幅編號圖片,圖1(a)是打印體,打印體數(shù)字在筆畫、大小以及與其他數(shù)字的辨識度上都十分的規(guī)范,識別相對容易;圖1(b)是手寫體數(shù)字,字體大小較為規(guī)范,但辨識度不高,容易與其他數(shù)字混淆;圖1(c)是手寫體數(shù)字,字體大小,辨識度都不太好。
圖1 編號圖片
由于本文選用的是LeNet-5網(wǎng)絡(luò)模型,訓練集使用的MNIST手寫數(shù)字集,所以需要對數(shù)字圖像進行一定程度的處理。首先對編號中每個數(shù)字進行分割,然后對其進行灰度化處理,并調(diào)整圖片大小為28×28。處理完成的圖片用于神經(jīng)網(wǎng)絡(luò)輸入,如圖2所示。
圖2 標準化后數(shù)字圖片
LeNet-5是Yann LeCun在1998年設(shè)計的用于手寫數(shù)字識別的卷積神經(jīng)網(wǎng)絡(luò),是早期卷積神經(jīng)網(wǎng)絡(luò)中最具有代表性的實驗。LeNet-5一共有7層(不包括輸入層),其中有2個卷積層、2個池化層,3個全連接層,結(jié)構(gòu)如圖3所示。
圖3 傳統(tǒng)的LeNet-5網(wǎng)絡(luò)結(jié)構(gòu)
LeNet-5輸入的是32×32的矩陣圖片,C1層是由6個特征圖構(gòu)成的卷積層,特征圖中的每個神經(jīng)元與輸入中5×5的領(lǐng)域相連,特征圖的大小為28×28。卷積層計算公式為:
其中l(wèi)代表層數(shù),k代表卷積核,Mj代表第j個特征圖,b代表偏置,f代表激活函數(shù)。S2是一個池化層,利用圖像局部相關(guān)的原理,對圖像抽樣,輸出6個14×14的特征圖,特征圖中每個神經(jīng)元與C1中對應特征圖的2×2領(lǐng)域相連接。池化層計算公式為:
其中down為池化函數(shù),β和b為特征圖中的參數(shù)。C3是一個卷積層,其中含有16種不同的大小為5×5的卷積核,它通過5×5的卷積核去卷積S2,得到的特征圖只有10×10個神經(jīng)元。S4是一個池化層,由16個5×5大小的特征圖構(gòu)成,特征圖種每個單元與C3中相應特征圖的2×2領(lǐng)域相連接。C5層是一個卷積層,含有120個5×5的卷積核,每個單元與S4層的全部16個單元的5×5的領(lǐng)域相連,由于S4層特征圖的大小也為5×5,故輸出120個特征圖的大小為1×1。F6層有84個神經(jīng)元,與C5層全相連接。最后輸出層含有10個神經(jīng)元,由歐氏徑向基函數(shù)(Euclidean Radial Basis Function)單元組成,每個神經(jīng)元對應一個數(shù)字類。
隨著神經(jīng)網(wǎng)絡(luò)訓練過程中,激活輸入值會逐漸發(fā)生偏移和變動,整體分布逐漸往非線性函數(shù)的取值區(qū)間的上下限兩端靠近,導致反向傳播時低層神經(jīng)網(wǎng)絡(luò)的梯度消失,使得神經(jīng)網(wǎng)絡(luò)收斂越來越慢,BN層作用就是將訓練中每層神經(jīng)元的輸入值轉(zhuǎn)換為均值為0方差為1的標準正態(tài)分布,讓反向傳播時低層神經(jīng)網(wǎng)絡(luò)的梯度變大,提高網(wǎng)絡(luò)學習的速度和效率。
BN層和激活函數(shù)層、卷積層、全連接層、池化層一樣,都屬于網(wǎng)絡(luò)的一層。由于神經(jīng)網(wǎng)絡(luò)除了輸出層以外,其他層因為底層網(wǎng)絡(luò)在訓練時更新了參數(shù),會導致后層網(wǎng)絡(luò)數(shù)據(jù)分布的變化。BN層的作用就是通過規(guī)范化所有層的輸入,從而可以固定每層輸入信號的均值與方差,來保證后層網(wǎng)絡(luò)數(shù)據(jù)的穩(wěn)定性
由于每層網(wǎng)絡(luò)內(nèi)操作的不同,隨著網(wǎng)絡(luò)層數(shù)的增加,會導致出現(xiàn)過擬合問題。為了防止過擬合,解決樣本較少導致網(wǎng)絡(luò)學習效率較低的問題,本文在神經(jīng)網(wǎng)絡(luò)各層數(shù)據(jù)處理之前做一個歸一化處理,也就是在每一層網(wǎng)絡(luò)前加上歸一化層(BN層),防止出現(xiàn)每一層訓練后的數(shù)據(jù)分布都不同,造成網(wǎng)絡(luò)模型更加復雜的問題,從而能提高網(wǎng)絡(luò)的訓練速度,提升網(wǎng)絡(luò)的學習率,同時也防止了梯度彌散的問題,改進網(wǎng)絡(luò)的結(jié)果如圖4所示。
圖4 改進LeNet-5網(wǎng)絡(luò)結(jié)構(gòu)
改進LeNet-5網(wǎng)絡(luò)的訓練算法相比于傳統(tǒng)的LeNet-5網(wǎng)絡(luò)沒有進行太大的改變,利用的是反向傳播算法(Back Propagation,BP),一共分為兩個階段,每個階段由兩步構(gòu)成。第一階段是向前的傳播階段,第一步是從樣本集中隨機選取一個樣本,并將選取的樣本輸入至網(wǎng)絡(luò),第二步是計算網(wǎng)絡(luò)的實際輸出。在該階段中,信息從輸入層經(jīng)過網(wǎng)絡(luò)逐級的變換,最后從輸出層輸出。這是網(wǎng)絡(luò)在正常運行的訓練過程。在該過程中,網(wǎng)絡(luò)實際上起到的是計算的作用,輸入與網(wǎng)絡(luò)每層的權(quán)值矩陣相點乘,最后得到輸出的結(jié)果。第二階段是向后傳播階段,第一步是計算實際輸出值與相應的理想輸出值的差,第二步是通過極小化誤差的方法進行反向傳播從而來調(diào)整權(quán)矩陣。
反向傳播算法的的輸入包括:總層數(shù)L以及每個隱藏層與輸出層的神經(jīng)元的個數(shù),激活函數(shù),損失函數(shù),迭代步長α,最大迭代次數(shù)MAX與停止迭代的閾值ε,輸入的m個訓練樣本為((x1,y1),(x2,y2),…,(xm,ym)),初始化參數(shù)為W,b。從第二層到第L層,前向傳播算法計算公式為(l為當前網(wǎng)絡(luò)層數(shù)):
然后通過損失函數(shù)計算輸出層的梯度,進行反向傳播算法計算,反向傳播是從L-1層到第二層網(wǎng)絡(luò),公式為:
通過梯度下降算法更新權(quán)重W和b的值,α為學習率,其中α∈(0,1]。
當所有W,b的變化值都小于停止迭代的閾值ε時,跳出迭代循環(huán)。此時輸出各層的W和b。
為了驗證改進的LeNet-5網(wǎng)絡(luò)模型的訓練效果,本文利用MATLAB軟件進行了實驗研究,從MNIST手寫數(shù)字數(shù)據(jù)集中隨機選取了3000個訓練樣本,500個驗證樣本,并將得到訓練過程和訓練結(jié)果與傳統(tǒng)的LeNet-5網(wǎng)絡(luò)進行對比,如圖5所示。
圖5 改進LeNet-5網(wǎng)絡(luò)訓練過程
圖5中,實線為訓練效果,虛線為驗證效果,由圖可以看出,改進LeNet-5網(wǎng)絡(luò)相比傳統(tǒng)LeNet-5網(wǎng)絡(luò),在驗證準確率方面有所提高,同時也降低了驗證集的損失值。在此基礎(chǔ)上通過10次實驗來對兩種模型進行評估,實驗樣本都是取自文書材料編號。記錄每次實驗兩種模型的正確率,最后計算出平均正確率,測試結(jié)果如表1所示。
表1 正確率
通過表1可以看出,改進LeNet-5網(wǎng)絡(luò)通過給每層網(wǎng)絡(luò)前加入BN層的方法,能夠更好的提取數(shù)字圖像的特征,防止網(wǎng)絡(luò)的過擬合。因此改進LeNet-5網(wǎng)絡(luò)對于取自文書材料的樣本集的識別率比傳統(tǒng)的LeNet-5網(wǎng)絡(luò)識別率更高,表現(xiàn)出了更好的識別效果。
隨著圖像技術(shù)的飛速發(fā)展與神經(jīng)網(wǎng)絡(luò)的不斷進步,利用這些技術(shù)來為人類工作提高效率是也是一項非常重要的工作。智慧檢務(wù)平臺的構(gòu)建是國家實施“科技強檢”戰(zhàn)略的重要保障,由于傳統(tǒng)算法對于卷宗材料表面編號識別效果并不理想,于是通過給每層網(wǎng)絡(luò)前加入BN層的方法來對神經(jīng)網(wǎng)絡(luò)中的LeNet-5網(wǎng)絡(luò)進行改進,來對卷宗材料的編號進行識別。實驗結(jié)果表明,該算法擁有更強的準確性。