劉寶寶 楊雪 吳治虎 侯飛 穆姣
摘要:為了提高手寫數(shù)字的識別率,論文提出了一種改進(jìn)的全卷積神經(jīng)網(wǎng)絡(luò)手寫圖像識別方法。首先通過傳統(tǒng)的卷積神經(jīng)網(wǎng)絡(luò)獲取手寫數(shù)字圖像的輪廓特征,其次在模型訓(xùn)練的初始階段,傳統(tǒng)的修正線性單元(RELU)激活函數(shù)被指數(shù)線性單元(ELU)激活函數(shù)所代替,然后應(yīng)用支持向量機(jī)(SVM)分類器替換原始卷積神經(jīng)網(wǎng)絡(luò)的多項邏輯回歸(Softmax)分類器,并對輸出的像素分類結(jié)果進(jìn)行反卷積操作,從而獲得分割結(jié)果。最后,使用提出的算法在MNIST數(shù)據(jù)集進(jìn)行驗證,與其他算法比較具有較高的識別精度。
關(guān)鍵詞:MNIST數(shù)據(jù)集;全卷積神經(jīng)網(wǎng)絡(luò);ELU函數(shù);手寫識別;識別率
中圖分類號: TP391? ? ? ? 文獻(xiàn)標(biāo)識碼:A
文章編號:1009-3044(2020)35-0001-03
開放科學(xué)(資源服務(wù))標(biāo)識碼(OSID):
Application of an Improved Fully Convolutional Neural Network in the Handwritten Digit Recognition
LIU Bao-bao, YANG Xue, WU Zhi-Hu, HOU Fei, MU-Jiao
(Xian Polytechnic University, Xian 710048, China)
Abstract:In order to improve the recognition rate of handwritten digits, the paper proposes an improved handwritten image recognition method of fully convolutional neural network. Firstly,the outline features of the handwritten digital image are obtained by the traditional convolutional neural network. In the initial stage of model training, the exponential linear unit (ELU) activation function is replacedby the traditional rectified linear unit(RELU) activation function. Secondly, the multiple logistic regression (Softmax) classifier of the convolutional neural network is replaced by a support vector machine (SVM) classifier and the pixel classification results from the classifier are deconvolved to obtain the segmentation results. Finally, the presented algorithm isverified in the MNIST dataset, which has higher recognition accuracy than other algorithms.
Key words: MNIST dataset;fully convolutional neural network; ELU; handwritten digit recognition; recognition rate
手寫是從古至今人類不可忽視的交流方式,是目前文字識別的重要組成部分,在很多領(lǐng)域中手寫識別都有廣泛的商業(yè)價值和科研運(yùn)用。作為圖像識別領(lǐng)域中的一個重要分支,對手寫字體的識別研究具有十分重要的實際意義[1]。
我國對手寫體數(shù)字識別的研究起步相對較晚,但也取得了一定的成果。如婁正良等人[2]提出一種新的基于小波變換和局部傅立葉變換的脫機(jī)手寫數(shù)字特征提取方法,在MNIST數(shù)據(jù)上該方法取得了較好的識別效果。付慶玲等人[3]基于手寫體數(shù)字的幾何結(jié)構(gòu)提取端點及其方向等數(shù)字特征值,應(yīng)用單字單網(wǎng)的10個并行BP神經(jīng)網(wǎng)絡(luò)進(jìn)行數(shù)字識別,獲得較好的識別效果。雙小川等人[4]提出了基于統(tǒng)計和結(jié)構(gòu)特征的手寫數(shù)字識別,利用模式識別與回歸軟件包Lib SVM對綜合特征進(jìn)行分類識別,得到較高的識別分類準(zhǔn)確率。
傳統(tǒng)識別算法對手寫數(shù)字進(jìn)行識別時,其識別率低、識別速度慢。近年來,卷積神經(jīng)網(wǎng)絡(luò)由于良好的推廣能力、記憶力、非線性和自學(xué)習(xí)能力以及高速運(yùn)算能力被廣泛用于手寫數(shù)字識別。如李斯凡等人[5]研究了卷積神經(jīng)網(wǎng)絡(luò),將改進(jìn)的模型應(yīng)用在MNIS字符庫上,與傳統(tǒng)識別方法進(jìn)行對比分析,具有較高識別率。汪雅琴等人[6]提出基于LeNet-5模型的手寫數(shù)字識別優(yōu)化方法,通過優(yōu)化卷積層的樣本訓(xùn)練方式,減少預(yù)處理工作量,加快識別速度。茹曉青等人[7]用形變卷積模塊來增強(qiáng)網(wǎng)絡(luò)對數(shù)字幾何變換的建模能力,提出了一種改進(jìn)的手寫體數(shù)字識別框架,具有較高的識別精度并減少了訓(xùn)練的參數(shù)量。
論文為了提高手寫識別的準(zhǔn)確率,改進(jìn)了全卷積神經(jīng)網(wǎng)絡(luò),把傳統(tǒng)的修正線性單元(RELU)激活函數(shù)用指數(shù)線性單元(ELU)激活函數(shù)代替,最后的分類函數(shù)Softmax用分類器支持向量機(jī)SVM所替代,使其具有更高的識別率并降低了模型訓(xùn)練時間。
1 改進(jìn)的全卷積神經(jīng)網(wǎng)絡(luò)
卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network, CNN)[8]可以通過構(gòu)建多層的卷積層,自動提取圖像特征。淺層的卷積層一般可以學(xué)習(xí)圖像的局部特征(如紋理特征),深層的卷積層可以學(xué)習(xí)抽象的特征(如物體大小,位置和方向信息等)。但CNN對圖像的特征提取以“塊”為單位的,很難做到像素級的精細(xì)分割,因此在準(zhǔn)確率上有待提高。
針對卷積神經(jīng)網(wǎng)絡(luò)在圖像語義分割的局限性,2015年Jonathan Long等人[9]提出了全卷積神經(jīng)網(wǎng)絡(luò)(Fully Convolutional Networks,F(xiàn)CN),用于圖像的語義分割。近年來,很多研究者采用全卷積神經(jīng)網(wǎng)絡(luò)作為圖像分割的基本模型,但它在初始訓(xùn)練階段訓(xùn)練時間較長,易產(chǎn)生過擬合,識別精度低。論文在全卷積神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練中將使用指數(shù)線性單元(ELU)激活函數(shù)代替?zhèn)鹘y(tǒng)的修正性單元(RELU)激活函數(shù),同時在模型最后將傳統(tǒng)使用的SoftMax分類器用支持向量機(jī)(SVM)代替作為像素分類器,解決了原始卷積神經(jīng)網(wǎng)絡(luò)在池化后存的分辨率降低問題,使用反卷積恢復(fù)圖像分辨率,提高了手寫數(shù)字識別的識別率。
1.1 改進(jìn)全卷積神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)
VGG16具有較深的網(wǎng)絡(luò)模型的結(jié)構(gòu),能較全面的提取到手寫數(shù)字圖像的細(xì)節(jié)信息,對后續(xù)的分割識別效果較好,因此論文基于VGG16基礎(chǔ)上提出改進(jìn)的全卷積神經(jīng)網(wǎng)絡(luò)手寫識別方法。VGG16的網(wǎng)絡(luò)結(jié)構(gòu)如圖1,先將VGG16模型中的全連接層換為卷積層,即圖1中的全連接層FC6和全連接層FC7替換為卷積層Conv6和卷積層Conv7,同時將用于分類的SoftMax函數(shù)用支持向量機(jī)SVM替代,改進(jìn)后的全卷積神經(jīng)圖如圖2。由于在訓(xùn)練過程中有池化操作,會降低圖像的分辨率,因此在原始的VGG16模型后面增加反卷積過程,原始圖像的大小通過擴(kuò)充池化層得到,具體操作如圖3所示。
1.2 激活函數(shù)
傳統(tǒng)全卷積神經(jīng)網(wǎng)絡(luò)中采用的激活函數(shù)一般是RELU激活函數(shù),而一般手寫數(shù)字占整副圖像的面積較小,使用指數(shù)線性單元ELU激活函數(shù),一方面可以加快模型的收斂速度,另一方面且具有較好的抗噪能力,計算公式如下:
[ELU(x)=x,x>0α(ex-1),x≤0]? ? ? ? ? ? ? ? ?(1)
其導(dǎo)數(shù)為:
[ELU'(x)=1,x>0αex,x≤0]? ? ? ? ? ? ? ? ? ?(2)
ELU激活函數(shù)及其導(dǎo)數(shù)的圖形如圖4。ELU激活函數(shù)與RELU函數(shù)相比,是將RELU函數(shù)中的負(fù)部修正為指數(shù),使其更具有收斂性。
1.3 手寫數(shù)字圖像識別算法描述
手寫數(shù)字圖像識別用改進(jìn)的全卷積神經(jīng)網(wǎng)絡(luò)算法處理的主要步驟如下:
1)先將原始手寫圖像輸入到卷積神經(jīng)網(wǎng)絡(luò)模型中,利用卷積操作進(jìn)行特征提取。卷積層主要包括k個N×N×C大小的卷積核,將卷積核和原始圖像進(jìn)行卷積運(yùn)算,然后使用ELU激活函數(shù)增強(qiáng)卷積層的特征提取能力,經(jīng)過運(yùn)算后得到k個(M-N+1)×(M-N+1)的特征圖。卷積運(yùn)算的公式為:
[x(l)i=ELU(i∈δjMW(l)iX(l-1)i+b(l)i)? ]? ? ? ? ? ? ? ? ? (3)
其中,[x(l)i]是輸入的手寫圖像,ELU是激活函數(shù),解決線性函數(shù)表達(dá)了問題,[X(l-1)i]是第l-1個隱層的輸出,[W(l)i]是第l個隱層的權(quán)重矩陣,[b(l)i]是第l個隱層的偏置矩陣。
2)卷積操作后需要增加池化操作,以降低網(wǎng)絡(luò)模型的運(yùn)算量從而減少模型訓(xùn)練的時間。這里的池化指下采樣,論文采用最大池化方法。池化后仍采用激活函數(shù)來增加模型的非線性表達(dá)能力。模型最后增加反卷積操作,就是用上采樣對池化后的特征用線性插值的方式恢復(fù)圖像原始大小和分辨率。
3)全卷積神經(jīng)網(wǎng)絡(luò)是端對端的逐像素分類過程,經(jīng)過卷積層和池化層的操作后,相當(dāng)于對原手寫圖像的特征進(jìn)行了提取。論文中分類器為支持向量機(jī)SVM,因為SVM在解決小樣本、非線性及高維模式識別中具有一定的優(yōu)勢,而手寫數(shù)字圖像識別就是一個典型的二分類問題,可以利用SVM尋找一個超平面來對手寫圖像根據(jù)正例和反例進(jìn)行分割。
4)在經(jīng)過SVM算法分類后,要使用損失函數(shù)評價模型訓(xùn)練的效果,訓(xùn)練集與測試集的損失值越小表明訓(xùn)練的效果越好。論文中采用的損失函數(shù)的計算公式具體如下:
[L(p)=12Ni=1nEi(Ii,P)-Di22]? ? ? ? ? ? ? ? ? ? ? ? ? (4)
其中P為網(wǎng)絡(luò)模型中需要學(xué)習(xí)的參數(shù),Ii是訓(xùn)練集上的第i張訓(xùn)練圖像,N是訓(xùn)練集的圖像數(shù)目,Di為標(biāo)注的手寫數(shù)字圖像,Ei為網(wǎng)絡(luò)模型識別的手寫數(shù)字圖像,L(p)是計算實際手寫數(shù)字圖像與識別的手寫數(shù)學(xué)圖像間的歐式距離得到的損失值。
2 實驗結(jié)果及分析
2.1 實驗樣本選擇
實驗中使用的數(shù)據(jù)集是MNIST字符庫,它是一個手寫數(shù)字的數(shù)據(jù)集,來自美國國家標(biāo)準(zhǔn)與技術(shù)研究所(National Institute of Standards and Technology,NIST),由手寫數(shù)字圖片和對應(yīng)的標(biāo)簽組成。樣本來自250個不同人的手寫數(shù)字,其中高中學(xué)生占50%,50%是人口普查局的工作人員,數(shù)字從0-9,共10類,圖片大小是28×28像素,訓(xùn)練數(shù)據(jù)集包含60000個樣本,測試數(shù)據(jù)集包含10000個樣本。如圖5為部分MNIST數(shù)據(jù)集的樣本。
2.2 性能評價指標(biāo)
為了反映模型預(yù)測正確的樣本比例,論文在手寫數(shù)字識別中,采用正確識別率來評價模型的優(yōu)劣,其計算公式為:
[A=正確識別樣本數(shù)全部樣本數(shù)×100%]? ? ? ? ? ? ? ? ?(5)
2.3 仿真結(jié)果及分析
為了驗證提出算法的有效性,在MNIST數(shù)據(jù)集上進(jìn)行了仿真測試。訓(xùn)練模型時隨機(jī)選取訓(xùn)練集數(shù)據(jù)中的不同數(shù)量的樣本,網(wǎng)絡(luò)模型訓(xùn)練時,采用3×3的卷積核,2×2的池化操作,步長設(shè)置為1,學(xué)習(xí)率設(shè)置為0.0001,在VGG16網(wǎng)絡(luò),F(xiàn)CN網(wǎng)絡(luò)和論文基于VGG16網(wǎng)絡(luò)改進(jìn)的FCN網(wǎng)絡(luò)方法進(jìn)行了對比。
從表1可以看出,無論使用卷積神經(jīng)網(wǎng)絡(luò)的哪種方法,基本是隨著訓(xùn)練樣本數(shù)的增加準(zhǔn)確識別率不斷提高,因為VGG16是比較深層的網(wǎng)絡(luò)結(jié)構(gòu),對特征的提取較好,因此論文在VGG16網(wǎng)絡(luò)上改進(jìn)的FCN算法相比識別的正確率最高。模型訓(xùn)練在樣本10000時,就能取得較好的識別效果,若繼續(xù)加大模型訓(xùn)練的樣本數(shù)量,不斷訓(xùn)練時間長,還造成了過擬合,導(dǎo)致識別效果并不是最理想的。
圖6為10000個訓(xùn)練樣本時,模型隨迭代次數(shù)的增加的識別精確度和損失函數(shù)的代價值的變化情況??梢钥闯觯S著迭代次數(shù)的增加,識別精度也在不斷增加,損失代價值在迭代次數(shù)10000以后,有小范圍波動,但整體不斷減少。
3 結(jié)論
針對手寫數(shù)字識別精確度不高的問題,論文在VGG16網(wǎng)絡(luò)模型基礎(chǔ)上結(jié)合全卷積神經(jīng)網(wǎng)絡(luò)的架構(gòu),提出了改進(jìn)的全卷積神經(jīng)網(wǎng)絡(luò)手寫數(shù)字識別方法,通過仿真實驗表明手寫數(shù)字的正確識別率有了較大的提高,達(dá)到了預(yù)期效果。
參考文獻(xiàn):
[1] 黃佳凱.基于ARM平臺和TensorFlow的手寫數(shù)字識別[D].南京:南京郵電大學(xué),2019.
[2] 婁正良,劉昌平.基于小波變換和局部傅立葉變換的手寫數(shù)字識別[J].計算機(jī)工程與應(yīng)用,2004,40(9):63-64,117.
[3] 付慶玲,韓力群.基于人工神經(jīng)網(wǎng)絡(luò)的手寫數(shù)字識別[J].北京工商大學(xué)學(xué)報(自然科學(xué)版),2004,22(3):43-45.
[4] 雙小川,張克.基于統(tǒng)計和結(jié)構(gòu)特征的手寫數(shù)字識別研究[J].計算機(jī)工程與設(shè)計,2012,33(4):1533-1537.
[5] 李斯凡,高法欽.基于卷積神經(jīng)網(wǎng)絡(luò)的手寫數(shù)字識別[J].浙江理工大學(xué)學(xué)報(自然科學(xué)版),2017,34(3):438-443.
[6] 汪雅琴,夏春蕾,戴曙光.基于LeNet-5模型的手寫數(shù)字識別優(yōu)化方法[J].計算機(jī)與數(shù)字工程,2019,47(12):3177-3181.
[7] 茹曉青,華國光,李麗宏,等.基于形變卷積神經(jīng)網(wǎng)絡(luò)的手寫體數(shù)字識別研究[J].微電子學(xué)與計算機(jī),2019,36(4):47-51.
[8] Schmidhuber J.Deep learning in neural networks:an overview[J].Neural Networks,2015,61:85-117.
[9] Long J,Shelhamer E,Darrell T.Fully convolutional networks for semantic segmentation[C]//2015 IEEE Conference on Computer Vision and Pattern Recognition (CVPR).June 7-12,2015,Boston,MA,USA.IEEE,2015:3431-3440.
【通聯(lián)編輯:唐一東】