丁禹鑫+丁會(huì)+張紅娟+楊彤彤
摘要:隨著科學(xué)技術(shù)的發(fā)展,機(jī)器學(xué)習(xí)成為一大學(xué)科熱門領(lǐng)域,是一門專門研究計(jì)算機(jī)怎樣模擬或?qū)崿F(xiàn)人類的學(xué)習(xí)行為的交叉學(xué)科。文章在matlab軟件的基礎(chǔ)上,利用BP神經(jīng)網(wǎng)絡(luò)算法完成手寫體數(shù)字的識(shí)別。
關(guān)鍵詞:機(jī)器學(xué)習(xí);手寫體數(shù)字識(shí)別;BP神經(jīng)網(wǎng)絡(luò)
機(jī)器學(xué)習(xí)是一門多領(lǐng)域交叉學(xué)科,專門研究計(jì)算機(jī)怎樣模擬或?qū)崿F(xiàn)人類的學(xué)習(xí)行為,以獲取新的知識(shí)或技能,重新組織己有的知識(shí)結(jié)構(gòu),使之不斷改善自身的性能。實(shí)現(xiàn)機(jī)器學(xué)習(xí)的方法多種多樣,常見到的主要有神經(jīng)網(wǎng)絡(luò)算法、CNN卷積神經(jīng)網(wǎng)絡(luò)算法、RNN循環(huán)神經(jīng)網(wǎng)絡(luò)算法、EM算法、貝葉斯算法、聚類算法、回歸算法、SVM等。本文將利用BP神經(jīng)網(wǎng)絡(luò)算法來完成手寫體數(shù)字的識(shí)別[1]。
1總體方案
1.1題目分析
手寫體數(shù)字識(shí)別的實(shí)現(xiàn)相對(duì)于其他元素的識(shí)別,具有許多優(yōu)勢(shì)。主要表現(xiàn)在以下幾個(gè)方面:(1)涉及的識(shí)別元素?cái)?shù)目少,僅有0?9共10個(gè)元素;(2)訓(xùn)練集合背景多為紙張,受到的環(huán)境干擾??;(3)識(shí)別元素筆畫簡(jiǎn)單,便于識(shí)別;(4)訓(xùn)練集合便于采集。
在此基礎(chǔ)上,之所以選取BP神經(jīng)網(wǎng)絡(luò)作為工具來實(shí)現(xiàn)手寫體數(shù)字識(shí)別,其優(yōu)勢(shì)主要體現(xiàn)在:(1)BP神經(jīng)網(wǎng)絡(luò)算法具有很強(qiáng)的非線性擬合能力,可以影射任何的非線性復(fù)雜關(guān)系;(2)學(xué)習(xí)規(guī)則簡(jiǎn)單,便于計(jì)算機(jī)實(shí)現(xiàn)[2]。
1.2總體方案設(shè)計(jì)
本次試驗(yàn)是識(shí)別手寫體數(shù)字,大體上可以分為兩個(gè)階段來實(shí)行,分別是訓(xùn)練神經(jīng)網(wǎng)絡(luò)和利用神經(jīng)網(wǎng)絡(luò)進(jìn)行識(shí)別(預(yù)測(cè))。要進(jìn)行本次試驗(yàn),首先要下載一個(gè)手寫體數(shù)字素材庫,將隨機(jī)選取素材庫中的一部分素材作為訓(xùn)練樣本,提取訓(xùn)練樣本的特征并以此對(duì)神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,這一階段過后,會(huì)得到一個(gè)訓(xùn)練成型的神經(jīng)網(wǎng)路模型。然后利用總樣本除去訓(xùn)練樣本所剩下的預(yù)測(cè)樣本進(jìn)行準(zhǔn)確度的檢驗(yàn),觀察預(yù)測(cè)的輸出是否符合客觀實(shí)際,多大程度上符合客觀實(shí)際。
如果得到的最終結(jié)果具有比較大的準(zhǔn)確度,那么本次試驗(yàn)即成功完成。
通過查閱資料,搜集到了總共5000張每個(gè)數(shù)字500張的手寫體數(shù)字圖片作為本次實(shí)驗(yàn)的素材,隨機(jī)選取4500張圖片作為訓(xùn)練樣本,剩下的500張圖片作為檢驗(yàn)樣本[3]。
2算法基本原理
本算法以BP神經(jīng)網(wǎng)絡(luò)模型為基礎(chǔ),通過構(gòu)建圖像讀取模塊、特征提取模塊、標(biāo)簽構(gòu)造模塊、訓(xùn)練集/測(cè)試集劃分模塊、神經(jīng)網(wǎng)絡(luò)構(gòu)建以及訓(xùn)練模塊、神經(jīng)網(wǎng)絡(luò)測(cè)試模塊和正確率計(jì)算模塊幾個(gè)主要模塊來實(shí)現(xiàn)手寫體數(shù)字識(shí)別這一基本功能,接下來分模塊對(duì)其原理進(jìn)行敘述[4]。
2.1圖像讀取模塊
圖像讀取模塊的功能是對(duì)搜集到的素材進(jìn)行數(shù)字化的處理,讀取到計(jì)算機(jī)中的模塊。其中我們采取了imread函數(shù)將5000張手寫體數(shù)字圖片輸入計(jì)算機(jī)。由于計(jì)算機(jī)的圖像存儲(chǔ)規(guī)則,最終會(huì)得到1X5000=5000個(gè)圖像矩陣,每個(gè)圖像矩陣都具有其保存的對(duì)應(yīng)圖像的絕大部分信息。這些圖像矩陣都保存在Cell型變量中,作為后文應(yīng)用的基礎(chǔ)素材。2.2特征提取塊特征提取模塊即對(duì)獲得的數(shù)字圖像進(jìn)行特征提取。大致的思路如下。首先將將得到的黑白灰度圖像在一個(gè)合理閾值的范圍內(nèi)轉(zhuǎn)化為二值圖像。其次對(duì)上一階段中獲得的5000張數(shù)字圖像(數(shù)字矩陣)每一張圖像都進(jìn)行分塊處理,再將每一個(gè)小的分塊看成是一個(gè)具體的單位,統(tǒng)計(jì)其中有黑色像素存在的小的像素點(diǎn)的個(gè)數(shù),并與總像素點(diǎn)的個(gè)數(shù)做除法得到存在黑色像素的占比大小,將這個(gè)占比大小作為每個(gè)具體分塊單位的特征數(shù)據(jù),計(jì)入特征矩陣。
在本模塊中除了進(jìn)行特征提取,還對(duì)圖片的大小進(jìn)行了統(tǒng)一化的裁切處理,方便后面的應(yīng)用[5]。
2.3標(biāo)簽構(gòu)造模塊
標(biāo)簽構(gòu)造模塊的目的就是構(gòu)造出每個(gè)具有特征的數(shù)字圖像所對(duì)應(yīng)的真實(shí)值,即標(biāo)簽。這一點(diǎn)是至關(guān)重要的,也是進(jìn)行新圖像識(shí)別(分類)的基礎(chǔ)。在后面的處理中,無論如何變幻原圖像,必須保持其與所對(duì)應(yīng)標(biāo)簽的一致性。只有將一組特征(處理后的數(shù)據(jù))與最后的標(biāo)簽對(duì)應(yīng)起來,才能保證神經(jīng)網(wǎng)絡(luò)訓(xùn)練的有效性。構(gòu)造標(biāo)簽矩陣的方法較為多樣,在這里就不做贅述。
2.4訓(xùn)練集/測(cè)試集劃分模塊
這一模塊的主要功能就是劃分出訓(xùn)練集與測(cè)試集。在這里必須本著隨機(jī)性均勻性的原則對(duì)總的數(shù)據(jù)集進(jìn)行劃分,這樣才能保證最終結(jié)果的可靠性。在劃分訓(xùn)練集與測(cè)試集的同時(shí),需要把標(biāo)簽矩陣的對(duì)應(yīng)元素也同樣本數(shù)據(jù)(特征)一一對(duì)應(yīng)地一并劃分,將二者同時(shí)作為神經(jīng)網(wǎng)絡(luò)訓(xùn)練的輸入進(jìn)行訓(xùn)練。通過這一階段,我們劃分獲得了4500個(gè)數(shù)字圖像/對(duì)應(yīng)標(biāo)簽作為訓(xùn)練集,500個(gè)數(shù)字圖像/對(duì)應(yīng)標(biāo)簽作為測(cè)試集。
2.5神經(jīng)網(wǎng)絡(luò)的構(gòu)建及訓(xùn)練模塊
這個(gè)模塊的主要功能就是對(duì)神經(jīng)網(wǎng)絡(luò)進(jìn)行構(gòu)建與訓(xùn)練。在這一階段筆者采用Matlab神經(jīng)網(wǎng)絡(luò)工具箱中的相關(guān)函數(shù)對(duì)輸入其中的4500組數(shù)據(jù)鏈接神經(jīng)網(wǎng)絡(luò)進(jìn)行反復(fù)訓(xùn)練,最終得到一個(gè)成型的神經(jīng)網(wǎng)絡(luò)模型用于后文的預(yù)測(cè)處理。
2.6神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)模塊
這個(gè)模塊使用的是全部集合中除去訓(xùn)練集剩下的測(cè)試集進(jìn)行預(yù)測(cè)判斷的。在這一階段通過simulink仿真將500組測(cè)試集對(duì)應(yīng)的預(yù)測(cè)數(shù)據(jù)全部輸出,以備進(jìn)行最終的準(zhǔn)確度檢驗(yàn)。
2.7準(zhǔn)確度檢驗(yàn)?zāi)K
將最終的simulink仿真結(jié)果保存在一個(gè)矩陣中,通過將這個(gè)矩陣的元素與對(duì)應(yīng)的客觀真實(shí)的標(biāo)簽矩陣進(jìn)行比較,統(tǒng)計(jì)出預(yù)測(cè)正確的數(shù)目,再與總預(yù)測(cè)數(shù)目相比較得到預(yù)測(cè)正確的數(shù)目占預(yù)測(cè)總數(shù)目的百分比,最終得到的即為預(yù)測(cè)的準(zhǔn)確度[6]。
3系統(tǒng)實(shí)現(xiàn)
在算法中,通過unread函數(shù)進(jìn)行圖片的讀取,讀取得到的每個(gè)圖片的數(shù)字信息儲(chǔ)存在Cell類型的變量中,然后通過graythresh和im2bw函數(shù)獲取一個(gè)合理的閾值將灰度圖轉(zhuǎn)化為二值圖像,之后利用imcrop函數(shù)對(duì)圖像的大小統(tǒng)一化處理。接下來進(jìn)行數(shù)字圖像的特征提取。通過對(duì)數(shù)字圖像進(jìn)行分塊劃分,將原始圖像矩陣劃分為多個(gè)圖像子矩陣,同時(shí)將劃分出的塊落(每個(gè)子矩陣)當(dāng)作一個(gè)具體的單位點(diǎn)來看待。編寫相關(guān)函數(shù)統(tǒng)計(jì)每個(gè)子矩陣中黑色像素存在的元素?cái)?shù)占總元素?cái)?shù)的比值作為對(duì)應(yīng)子矩陣當(dāng)前點(diǎn)的特征數(shù)據(jù),將若干個(gè)子矩陣的特征數(shù)據(jù)組合按照原先劃分的位置重新組合成為一個(gè)特征矩陣,作為當(dāng)前圖像的特征矩陣進(jìn)行后續(xù)操作。之后進(jìn)行標(biāo)簽的構(gòu)造,選用ones函數(shù)生成幾個(gè)子標(biāo)簽矩陣,再通過矩陣的操作生成整個(gè)標(biāo)簽矩陣。以從1開始自大到小依次進(jìn)1的矩陣重新隨機(jī)排列的元素作為選定訓(xùn)練集與測(cè)試集的依據(jù),取前4500作為訓(xùn)練集,取后500作為測(cè)試集,這樣一來就達(dá)到了隨機(jī)性均勻性的要求。完成了以上幾個(gè)步驟,接下來進(jìn)行神經(jīng)網(wǎng)絡(luò)的創(chuàng)建和訓(xùn)練。利用神經(jīng)網(wǎng)絡(luò)工具箱輸入4500組測(cè)試數(shù)據(jù)和其對(duì)應(yīng)的標(biāo)簽,通過srniulmk仿真將神經(jīng)網(wǎng)絡(luò)模型成型。有了神經(jīng)網(wǎng)絡(luò)模型,就可以編寫函數(shù)對(duì)監(jiān)測(cè)樣本進(jìn)行預(yù)測(cè),觀察預(yù)測(cè)結(jié)果是否符合客觀實(shí)際。最終將預(yù)測(cè)結(jié)果與實(shí)際結(jié)果(實(shí)際標(biāo)簽)相比較,統(tǒng)計(jì)預(yù)測(cè)正確結(jié)果的個(gè)數(shù)并計(jì)算其占測(cè)試樣本總數(shù)的百分比,得到正確率[7]。
4實(shí)驗(yàn)的缺陷和不足
本次試驗(yàn)仍存在一些不足之處。(1)由于本次試驗(yàn)采取的是黑白兩色的數(shù)字進(jìn)行識(shí)別,因此在轉(zhuǎn)換二值圖像部分具有較好的效果,若是采用彩色圖像則效果欠佳,以至于影響后面的特征提取。(2)本次試驗(yàn)采用的5000張手寫體數(shù)字圖像規(guī)格相同、字體大小相同且字體均位于圖像正中央,這為成功率作出了較大的貢獻(xiàn)。反之若選取雜亂圖像,效果必定欠佳。
5結(jié)語
通過多次利用十折交叉法進(jìn)行結(jié)果檢驗(yàn),本實(shí)驗(yàn)最終得到的平均準(zhǔn)確率為85.4%。在此條件下可以認(rèn)為測(cè)試結(jié)果具有較高的準(zhǔn)確率,即手寫體數(shù)字識(shí)別完成良好。
21世紀(jì)是科技與人類社會(huì)緊密結(jié)合的一個(gè)世紀(jì)。機(jī)器學(xué)習(xí)作為一個(gè)應(yīng)用廣泛的學(xué)科領(lǐng)域,無疑走在了科技的前列。相信在未來,手寫體數(shù)字識(shí)別作為一個(gè)較狹窄的應(yīng)用領(lǐng)域,會(huì)煥發(fā)出其應(yīng)有的活力。
[參考文獻(xiàn)]
[1]許歡.李群機(jī)器學(xué)習(xí)模型及應(yīng)用研究[D].蘇州:蘇州大學(xué),2007.
[2]何清,李寧,羅文銷,等.大數(shù)據(jù)下的機(jī)器學(xué)習(xí)算法綜述[J].模式識(shí)別與人工智能,2014(4):327-336.
[3]段向軍.基于神經(jīng)網(wǎng)絡(luò)的預(yù)測(cè)控制方法研究[D].大慶:大慶石油學(xué)院,2005.
[4]楊夢(mèng)鐸,李凡長(zhǎng),張莉.李群機(jī)器學(xué)習(xí)十年研究進(jìn)展[J].計(jì)算機(jī)學(xué)報(bào),2015(7):1337-1356.
[5]朱曉波.基于BP神經(jīng)網(wǎng)絡(luò)的手寫體數(shù)字識(shí)別分析與研究[D].武漢:武漢科技大學(xué),2003.
[6]白天毅.基于神經(jīng)網(wǎng)絡(luò)的手寫體數(shù)字識(shí)別關(guān)鍵技術(shù)研究[D].西安:西安工業(yè)大學(xué),2014.
[7]黃巧巧.基于BP神經(jīng)網(wǎng)絡(luò)的手寫數(shù)字識(shí)別系統(tǒng)研究[D].武漢:華中師范大學(xué),2009.endprint