摘要:基于深度學(xué)習(xí)卷積神經(jīng)網(wǎng)絡(luò)在手寫體數(shù)字識別中的應(yīng)用,對卷積神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)進(jìn)行介紹,同時使用MNIST數(shù)據(jù)集對設(shè)計的卷積神經(jīng)網(wǎng)絡(luò)模型進(jìn)行訓(xùn)練與測試,訓(xùn)練后的模型在MNIST的測試集樣本中的識別精度可以達(dá)到99.25%。最終將訓(xùn)練好的模型用于在線手寫體數(shù)字的識別,識別精度高達(dá)99%以上。實驗結(jié)果表明,與傳統(tǒng)的線性回歸模型相比,卷積神經(jīng)網(wǎng)絡(luò)有更好的魯棒性和抗干擾性,識別精度明顯優(yōu)于傳統(tǒng)的線性回歸模型。
關(guān)鍵詞:卷積神經(jīng)網(wǎng)絡(luò);MNIST;手寫數(shù)字識;線性回歸;深度學(xué)習(xí)
中圖分類號:TP311文獻(xiàn)標(biāo)識碼:A
文章編號:1009-3044(2020)21-0013-03
開放科學(xué)(資源服務(wù))標(biāo)識碼(OSID):
目前,由于手寫數(shù)字的應(yīng)用范圍廣泛,例如郵政編碼手寫體、智能手機(jī)的手寫輸入法等,使得手寫數(shù)字識別研究成了深度學(xué)習(xí)的研究熱點之一。手寫數(shù)字識別研究的內(nèi)容是讓計算機(jī)準(zhǔn)確、高效地識別人隨機(jī)手寫的數(shù)字,但由于不同人的書寫方式千差萬別,書寫的大小與角度也不盡相同,進(jìn)而增加了對手寫數(shù)字識別的難度,因此傳統(tǒng)線性回歸模型不能正確精準(zhǔn)地對手寫體數(shù)字進(jìn)行識別[1]。
在此背景下.由于卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的不斷優(yōu)化以及計算機(jī)性能的不斷提升,使得卷積神經(jīng)網(wǎng)絡(luò)在圖像識別領(lǐng)域取得了重大的突破。卷積神經(jīng)網(wǎng)絡(luò)中可以將圖像的每一個像素均看成一個特征,直接將手寫數(shù)字圖像作為卷積神經(jīng)網(wǎng)絡(luò)模型的輸入并自動進(jìn)行特征提取,再根據(jù)提取后的特征進(jìn)行分類識別[2],不僅克服了傳統(tǒng)方法中需要對圖像實時預(yù)處理的弊端,還提高了對手寫數(shù)字的識別精度。
本文實驗中把通過MNIST數(shù)據(jù)集訓(xùn)練好的卷積神經(jīng)網(wǎng)絡(luò)模型保存下來,在Python環(huán)境下結(jié)合Flask,在線隨機(jī)手寫不同形狀和大小的數(shù)字并進(jìn)行實時識別。為了直觀地體現(xiàn)卷積神經(jīng)網(wǎng)絡(luò)識別的精確度,本文將識別結(jié)果的概率值在前端頁面展現(xiàn)出來,并和傳統(tǒng)的線性回歸模型進(jìn)行對比,體現(xiàn)出了卷積神經(jīng)網(wǎng)絡(luò)對手寫數(shù)字識別的優(yōu)勢性與高精度性。
本文分為3章,組織結(jié)構(gòu)如下,第1章介紹卷積神經(jīng)網(wǎng)絡(luò)相關(guān)理論知識,第2章為實驗結(jié)果與分析,介紹卷積神經(jīng)網(wǎng)絡(luò)的訓(xùn)練過程和實驗結(jié)果,第3章對全文進(jìn)行總結(jié)。
1 卷積神經(jīng)網(wǎng)絡(luò)
卷積神經(jīng)網(wǎng)絡(luò)的核心思想是通過權(quán)值共享和局部感知域的方法減少網(wǎng)絡(luò)的參數(shù)個數(shù),緩解了網(wǎng)絡(luò)模型過擬合的問題,獲得了某種程度的尺度、位移、形變不變性,同時還降低了網(wǎng)絡(luò)模型的復(fù)雜程度[3]。卷積神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)架構(gòu)主要包含了五個部分,分別是輸入層、卷積層、池化層、全連接層與輸出層[4]。其網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
1.1卷積層
卷積層又稱為特征提取層,主要作用就是對輸入的數(shù)據(jù)進(jìn)行特征提取,其內(nèi)部包含了多個卷積核,組成卷積核的每個元素都對應(yīng)一個權(quán)重系數(shù)和一個偏差量,并且卷積核的個數(shù)決定了最終提取的數(shù)據(jù)特征數(shù)量。卷積運算的實質(zhì)是用一個可訓(xùn)練的卷積核fx去卷積一個輸入的圖像,然后加一個偏置bx,得到卷積cx。卷積的詳細(xì)過程可以理解為使用一個卷積核依次過濾圖像的各個區(qū)域,從而得到這些區(qū)域的特征值[5]。卷積的流程如圖2所示。
1.2池化層與激活函數(shù)
池化層又稱為降采樣層,其作用是對卷積層提取出的特征進(jìn)行降采樣處理,進(jìn)一步減少特征數(shù)量并降低特征數(shù)據(jù)的維度,同時不影響對圖像的描述,還能夠有效地避免過擬合問題的出現(xiàn)。目前下采樣的常用方法有平均值下采樣、最大值下采樣、高斯下采樣等。本文在實際應(yīng)用中,將輸入的特征圖劃分成多個不重疊的2x2大小的圖像塊,然后采用了均值法進(jìn)行降采樣,其公式如式(1)所示。
在神經(jīng)網(wǎng)絡(luò)中,常用的激活函數(shù)有Sigmoid函數(shù)、ReLU函數(shù)和softmax函數(shù)等,根據(jù)其自身的優(yōu)勢不同使得他們的應(yīng)用范圍也不盡相同。在卷積神經(jīng)網(wǎng)絡(luò)中,隱藏層節(jié)點和輸出層采用了不同激活函數(shù)。在隱藏層由于需要對圖像特征的提取域降維,為了解決梯度消失的問題,使用了ReLU作為激活函數(shù);在輸出層為了避免出現(xiàn)重復(fù)分類的現(xiàn)象,使用了softmax作為激活函數(shù)[6]。ReLU和softmax函數(shù)公式如式(2)、(3)所示。
1.3全連接層
全連接層在整個卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)中位于池化層的后一層,顯而易見其作用是連接經(jīng)過卷積和降采樣后提取出來的所有高級特征,并將最后的輸出值送給分類器得出最終的分類結(jié)果。全連接層的最終目的是將學(xué)到的“分布式特征表示”映射到樣本標(biāo)記空間[7],其實現(xiàn)過程是通過對輸入的特征做加權(quán)求和,再加上偏置量,然后通過softmax激活函數(shù)[8]來獲得最終的結(jié)果,其表達(dá)式如式(4)所示。
2 實驗過程與分析
2.1 模型訓(xùn)練
本實驗在Windowsl0 64位操作系統(tǒng),Python3.7.0環(huán)境下使用MNIST數(shù)據(jù)集進(jìn)行模型訓(xùn)練,其中每張圖像大小為28x28像素。訓(xùn)練樣本為MNIST中的60000張手寫數(shù)字圖像,為了提高模型識別的準(zhǔn)確率總共訓(xùn)練20000次,總耗時5610秒;測試的樣本為MNIST測試集中的10000張手寫數(shù)字圖像,在該測試集上的正確率為99.25%。卷積神經(jīng)網(wǎng)絡(luò)模型的訓(xùn)練過程如圖3所示。
2.2 實驗過程
模型訓(xùn)練完成后,將保存下來的訓(xùn)練模型正式用于實時手寫體數(shù)字的識別。為了直觀地展示識別的效果,本實驗在Py-thon的環(huán)境下結(jié)合Flask并以前端頁面的形式展示識別效果。前端頁面如圖4所示。
可視化界面主要分為三個模塊,手寫數(shù)字區(qū)域,圖像輸入?yún)^(qū)域和識別結(jié)果區(qū)域。在手寫數(shù)字區(qū)域可以通過拖動鼠標(biāo)進(jìn)行書寫0-9之間的任意數(shù)字,書寫完畢后將其同比例縮放成28x28像素的圖片作為模型的輸入,最后將識別的結(jié)果以0到l之間的概率值的形式輸出,進(jìn)而判斷出識別的效果。其中識別結(jié)果區(qū)域?qū)γ恳粋€手寫數(shù)字將輸出10個結(jié)果,十個結(jié)果中概率值最高的即為最終的識別結(jié)果。同時在識別結(jié)果區(qū)域增加了同樣由MNIST數(shù)據(jù)集訓(xùn)練20000次的線性回歸模型來同時進(jìn)行手寫數(shù)字的識別,其識別結(jié)果與卷積神經(jīng)網(wǎng)絡(luò)模型的識別結(jié)果進(jìn)行直觀對比。實驗流程如圖5所示。
2.3 實驗結(jié)果與分析
在進(jìn)行隨機(jī)手寫數(shù)字在線識別的過程中,對十個類別的阿拉伯?dāng)?shù)字分別進(jìn)行了10次測試。測試過程中,為了體現(xiàn)卷積神經(jīng)網(wǎng)絡(luò)模型相對于線性回歸模型有著更高識別率和更好的魯棒性以及抗干擾性,在用鼠標(biāo)進(jìn)行隨機(jī)書寫數(shù)字時故意改變了手寫數(shù)字的形狀、大小和傾斜角度來驗證識別效果。其部分手寫數(shù)字測試結(jié)果如下圖所示。
對0-9十個類別的隨機(jī)手寫數(shù)字分別測試10次,兩種模型的平均識別精確率統(tǒng)計結(jié)果如表1所示。
對10個類別的手寫數(shù)字的測試表明,經(jīng)過MNIST訓(xùn)練后的卷積神經(jīng)網(wǎng)絡(luò)模型對相對規(guī)范的手寫數(shù)字的識別正確率達(dá)到99%以上,甚至出現(xiàn)識別率100%情況。對于在相同情況下訓(xùn)練的線性回歸模型在手寫數(shù)字相對規(guī)范的情況下對數(shù)字0、1、2、3、4、7的識別率也能達(dá)到94%以上,但對于數(shù)字5、6,9的識別率相對較低;對于數(shù)字8,由于其與數(shù)字3有較大的相似性,因此線性回歸模型將數(shù)字8識別成了數(shù)字3,而卷積神經(jīng)網(wǎng)絡(luò)模型能夠正確識別8和3。
當(dāng)手寫數(shù)字的大小、形狀和傾斜度發(fā)生變化時,卷積神經(jīng)網(wǎng)絡(luò)對數(shù)字0、1、2、3、4、7的平均識別率仍能大于在MNIST測試集中的99.25%的識別率,而對于數(shù)字5、6、8、9的識別率略有下降,但其平均識別率仍在97%以上,當(dāng)手寫數(shù)字發(fā)生嚴(yán)重變形時,卷積神經(jīng)網(wǎng)絡(luò)模型也會出現(xiàn)識別錯誤的情況(如圖8);而在同樣的條件下,線性回歸模型的識別率大大降低且出現(xiàn)了較多識別錯誤的情況。因此足以證明,卷積神經(jīng)網(wǎng)絡(luò)相對于傳統(tǒng)的線性回歸模型有著更高的識別率,同時擁有更好的魯棒性和抗干擾性。
3 總結(jié)
本文使用MNIST數(shù)據(jù)集對卷積神經(jīng)網(wǎng)絡(luò)模型進(jìn)行訓(xùn)練,然后將訓(xùn)練好的模型用于在線手寫數(shù)字的識別。實驗結(jié)果表明,在MNIST的測試數(shù)據(jù)集上的識別準(zhǔn)確率為99.25%,對規(guī)范的手寫數(shù)字的識別準(zhǔn)確率高達(dá)99%以上,因此可以認(rèn)為本實驗的卷積神經(jīng)網(wǎng)絡(luò)模型達(dá)到了正確識別手寫數(shù)字的效果。但訓(xùn)練出來的模型還存在一定的局限性,當(dāng)手寫體數(shù)字的位置、大小、傾斜度等發(fā)生較大變化時,會使得卷積神經(jīng)網(wǎng)絡(luò)模型對手寫數(shù)字的識別精確率略低于MNIST測試數(shù)據(jù)集上的準(zhǔn)確率,甚至?xí)霈F(xiàn)識別錯誤的情況。針對訓(xùn)練后的模型存在的局限性,可以通過對原始的數(shù)字圖像進(jìn)行縮放、平移、旋轉(zhuǎn)等操作來擴(kuò)充訓(xùn)練模型的數(shù)據(jù)集,進(jìn)而使得訓(xùn)練后的模型對手寫數(shù)字的識別有更高的精確率。
參考文獻(xiàn):
[1]張濤,楊劍,宋文愛,等.改進(jìn)卷積神經(jīng)網(wǎng)絡(luò)模型設(shè)計方法[Jl,計算機(jī)工程與設(shè)計,2019,40(7):1885-1890.
[2]馬媛媛,史加榮.卷積神經(jīng)網(wǎng)絡(luò)及其在手寫體數(shù)字識別中的應(yīng)用[J].湖北工程學(xué)院學(xué)報,2017,37(6):66-72.
[3]尹曉偉,王真真,孟慶林,等.基于改進(jìn)的LeNet-5手寫數(shù)字識別研究[Jl,信息通信,2019,32(3):17-18.
[4]呂紅,基于卷積神經(jīng)網(wǎng)絡(luò)的手寫數(shù)字識別系統(tǒng)的設(shè)計[J].智能計算機(jī)與應(yīng)用,2019,9(2):54-56,62.
[5]邢萌.基于TensorFlow手寫數(shù)字識別模型設(shè)計與實現(xiàn)[J].電子技術(shù)與軟件工程,2019(2):56.
[6]代賀,陳洪密,李志申.基于卷積神經(jīng)網(wǎng)絡(luò)的數(shù)字識別[J].貴州師范大學(xué)學(xué)報(自然科學(xué)版),2017,35(5):96-101.
[7]陳巖,李洋洋,余樂,等.基于卷積神經(jīng)網(wǎng)絡(luò)的手寫體數(shù)字識別系統(tǒng)[Jl.微電子學(xué)與計算機(jī),2018,35(2):71-74.
[8] Ravi Babu U,Kumar Chintha A,Venkateswarlu Y.Handwrittendigit recognition using structural, statistical features and K-nearest neighbor classifier[J].lnternational Journal of Informa-tion Engineering and Electronic Business, 2014,6(1):62-68.
【通聯(lián)編輯:聞翔軍】
作者簡介:何帥(1996-),男,四川省渠縣人,在讀研究生,研究方向為圖像處理與模式識別。