基于MATLAB的數(shù)字識(shí)別_第1頁(yè)
基于MATLAB的數(shù)字識(shí)別_第2頁(yè)
基于MATLAB的數(shù)字識(shí)別_第3頁(yè)
基于MATLAB的數(shù)字識(shí)別_第4頁(yè)
基于MATLAB的數(shù)字識(shí)別_第5頁(yè)
已閱讀5頁(yè),還剩10頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上 計(jì)算機(jī)與信息工程學(xué)院本科生畢業(yè)論文基于BP神經(jīng)網(wǎng)絡(luò)的手寫數(shù)字識(shí)別算法的設(shè)計(jì)與實(shí)現(xiàn)班 級(jí): 13漢班 學(xué) 號(hào): 姓 名: 江曉雪 指導(dǎo)教師: 李艷玲 2017 年 3 月 31 日畢 業(yè) 論 文 目 錄 全文共 13 頁(yè) 4834 字專心-專注-專業(yè)基于BP神經(jīng)網(wǎng)絡(luò)的手寫數(shù)字識(shí)別算法的設(shè)計(jì)與實(shí)現(xiàn)計(jì)算機(jī)與信息工程學(xué)院 2013級(jí)漢班 江曉雪 指導(dǎo)教師 李艷玲 副教授 摘要 本文實(shí)現(xiàn)了基于MATLAB關(guān)于神經(jīng)網(wǎng)絡(luò)的手寫數(shù)字識(shí)別算法的設(shè)計(jì)過程,采用神經(jīng)網(wǎng)絡(luò)中反向傳播神經(jīng)網(wǎng)絡(luò)(即BP神經(jīng)網(wǎng)絡(luò))對(duì)手寫數(shù)字的識(shí)別,由MATLAB對(duì)圖片進(jìn)行讀入、灰度化以及二值化等處理,通過神經(jīng)網(wǎng)絡(luò)

2、進(jìn)行訓(xùn)練和測(cè)試。實(shí)驗(yàn)證明:該神經(jīng)網(wǎng)絡(luò)對(duì)手寫數(shù)字的識(shí)別可以達(dá)到95.65%。關(guān)鍵詞 手寫數(shù)字識(shí)別;BP神經(jīng)網(wǎng)絡(luò);MATLAB語(yǔ)言1 緒論1.1 圖像識(shí)別的提出圖像識(shí)別在信息技術(shù)發(fā)達(dá)的今天已經(jīng)占據(jù)了很重要的地位,在我們實(shí)際生活中也有很多應(yīng)用。所謂的圖像識(shí)別,就是指通過計(jì)算機(jī)對(duì)圖像進(jìn)行相應(yīng)的處理、分析,來達(dá)到識(shí)別不同模型的目標(biāo)和任務(wù)的一種技術(shù)。對(duì)于它的提出,簡(jiǎn)單的來說,它的發(fā)展經(jīng)歷了三個(gè)階段:第一個(gè)是文字識(shí)別 、第二個(gè)是數(shù)字圖像處理與識(shí)別、第三個(gè)是物體識(shí)別。第一種相對(duì)來說比較簡(jiǎn)單,它的研究是從1950年開始的,一般情況是識(shí)別字母、符號(hào)和數(shù)字,無論是印刷體識(shí)別還是手寫體識(shí)別,它的應(yīng)用都非常廣泛,但是也

3、伴隨著,這個(gè)識(shí)別的過程會(huì)更加的耗時(shí)、費(fèi)力,無論是人力還是物力,都會(huì)有很大的損失;第二種就是我們所說的數(shù)字圖像處理與識(shí)別,在圖片的識(shí)別過程中,圖片識(shí)別會(huì)有一定的誤差,也會(huì)帶來小小的麻煩;第三就是物體識(shí)別,而物體的識(shí)別主要指的是:在三維世界中,對(duì)于個(gè)體、環(huán)境的感知和認(rèn)識(shí)進(jìn)行識(shí)別,這不同于二維世界的認(rèn)知,相對(duì)來說是更高級(jí)的計(jì)算機(jī)圖像識(shí)別,它是以二維世界中對(duì)數(shù)字圖像和模擬圖像處理的辦法為依據(jù),進(jìn)行更高一級(jí)的,并且結(jié)合了現(xiàn)代人工智能技術(shù)等學(xué)科的研究目標(biāo),研究成果已經(jīng)被廣泛的應(yīng)用在各種工業(yè)探測(cè)機(jī)器人上,為人們的安全提供了很大的幫助。1.2 圖像識(shí)別的現(xiàn)狀與發(fā)展趨勢(shì) 隨著網(wǎng)絡(luò)的發(fā)達(dá)、電子的信息化,圖像識(shí)別的

4、應(yīng)用已經(jīng)非常廣泛,而主要的研究工作也包括各行各業(yè),整理以下幾點(diǎn)對(duì)其應(yīng)用的廣泛度進(jìn)行說明:在生物學(xué)中,對(duì)生物的原型進(jìn)行研究。從生物的腦細(xì)胞結(jié)構(gòu)、物體解剖等其他科學(xué)研究的方向?qū)ι锏捏w系結(jié)構(gòu)、神經(jīng)結(jié)構(gòu)、神經(jīng)細(xì)胞組織等生物的原型結(jié)構(gòu)及其功能機(jī)理進(jìn)行研究,增強(qiáng)對(duì)生物學(xué)更加全面的理解。 在實(shí)際應(yīng)用中,建立我們需要的理論模型。根據(jù)需要應(yīng)用的信息在生物學(xué)中的應(yīng)用,建立需要的生物原型,也可以建立類似神經(jīng)元、神經(jīng)網(wǎng)絡(luò)這樣不可見的理論模型,以便可以讓其更加有效的應(yīng)用在生活中。建立我們生活中不能直觀表現(xiàn)的事物模型,以便我們可以更方便的、更直觀的理解事物的本質(zhì)。在信息時(shí)代中,建立以及算法研究。就是通過上面所說的,建立

5、相應(yīng)的理論模型,在這個(gè)基礎(chǔ)上加以理解,建立我們所需要的網(wǎng)絡(luò)模型,實(shí)現(xiàn)計(jì)算機(jī)應(yīng)用,主要應(yīng)用在網(wǎng)絡(luò)學(xué)習(xí)算法的研究,這方面的研究工作也被人們稱為技術(shù)模型研究。信息時(shí)代的發(fā)展,讓我們?cè)谏钪杏泻芏嗟膽?yīng)用,例如:完成某種函數(shù)圖像的繪制以及對(duì)其變化的形式進(jìn)行分析、對(duì)圖片信號(hào)的處理、模式識(shí)別等功能,建立需要的應(yīng)用系統(tǒng)、制造機(jī)器人等等。 通過上面的說明,也就是說從開始根據(jù)生物學(xué)原理的應(yīng)用,直到建立需要的神經(jīng)網(wǎng)絡(luò)模型,最后應(yīng)用到圖像識(shí)別當(dāng)中,可以看出其模型的建立是在生活中實(shí)例的基礎(chǔ)上,其可靠性和準(zhǔn)確性是顯而易見的,這樣就大大的增加了可信度,與此同時(shí),也減少了工作中不必要的麻煩與困擾。而在網(wǎng)絡(luò)信息發(fā)達(dá)的今天,人類

6、在基本粒子、宇宙空間、生命起源等科學(xué)領(lǐng)域方面都已經(jīng)顯現(xiàn)出很高的興趣度,而這其中難免會(huì)有圖像提取后的處理工作,所以圖像識(shí)別的應(yīng)用就會(huì)越來越廣泛。2 BP神經(jīng)網(wǎng)絡(luò)的概述反向傳播(Back-Propagation,BP)學(xué)習(xí)算法簡(jiǎn)稱BP算法,采用BP算法的前饋型神經(jīng)網(wǎng)絡(luò)簡(jiǎn)稱BP網(wǎng)絡(luò)。BP網(wǎng)絡(luò)是多層感知器的一種,它具備多層感知器的特點(diǎn),同時(shí)也有自己的特點(diǎn)。多層感知器包括輸入層、隱藏層、輸出層,其中隱藏層可以有多個(gè),而我們BP網(wǎng)絡(luò)中隱藏層只有一個(gè),其簡(jiǎn)單構(gòu)造如圖所示:圖1 多層感知器結(jié)構(gòu)圖而我們用到的BP網(wǎng)絡(luò)中的具體信號(hào)流如圖所示,它有一個(gè)反向傳播的過程,這也是對(duì)傳播進(jìn)行調(diào)整,使精確度更高的一種辦法。如

7、圖所示,其中有兩種信號(hào)流通:圖2 多層感知器的信號(hào)流 第一:函數(shù)信號(hào) 簡(jiǎn)單來說就是信號(hào)進(jìn)入輸入層,然后通過隱藏層到達(dá)輸入層,通過輸出層輸出所得值,就可以完成一個(gè)函數(shù)信號(hào)。 第二:誤差信號(hào)誤差信號(hào)就是在逆向的傳播的過程中傳輸?shù)男盘?hào)。其中,有兩個(gè)重要參數(shù)。一個(gè)是函數(shù)信號(hào)即sigmoid函數(shù),還有一個(gè)就是權(quán)值的梯度運(yùn)算即梯度向量。(注:sigmoid函數(shù)、權(quán)重的修正函數(shù),如圖所示。) (1) (2) 通過對(duì)兩個(gè)參數(shù)的調(diào)整,完成整個(gè)算法的應(yīng)用。3 手寫體數(shù)字識(shí)別的實(shí)現(xiàn)過程3.1 整體線路圖 整體流程圖如圖3所示:圖像測(cè)試損失函數(shù)的設(shè)計(jì)與應(yīng)用可視化測(cè)試數(shù)據(jù)神經(jīng)網(wǎng)絡(luò)的設(shè)計(jì)與訓(xùn)練sigmoid函數(shù)圖3 整體

8、流程圖部分文件調(diào)用流程圖如圖4所示:sigmoid checkNNGradientsnnCostFunction第八部分:實(shí)現(xiàn)正規(guī)化第八部分:訓(xùn)練NNfmincgnnCostFunctionsigmoidGradientsigmoidnnCostFunctionsigmoidGradient randInitializeWeights checkNNGradients debugInitializeWeightsnnCostFunction computeNumericalGradient第五部分:sigmoid函數(shù)第六部分:初始化參數(shù)第七部分:實(shí)現(xiàn)反向傳播第三部分:前饋網(wǎng)絡(luò)第四部分:前饋正規(guī)

9、化圖4 整體流程圖3.2 算法流程 圖片識(shí)別要經(jīng)過訓(xùn)練好的模型來提取我們要得到的手寫數(shù)字,而模型是經(jīng)過多次的訓(xùn)練得到的,為了提高程序的準(zhǔn)確度、增加可信度的一種數(shù)據(jù)集,所以,程序的開始,我們?cè)O(shè)計(jì)了多個(gè)可用的數(shù)據(jù),來訓(xùn)練我們的神經(jīng)網(wǎng)絡(luò)。如圖3所示,一開始可視化我們的手寫體測(cè)試數(shù)據(jù),每個(gè)數(shù)字都保存在20*20的像素里,其中設(shè)置25個(gè)隱藏單位,0到9共10個(gè)數(shù)字標(biāo)簽。將我們需要的參數(shù)保存到需要的函數(shù)中,也就是我們用到的1和2中。也就是保存在我們用的.mat文件中的數(shù)據(jù),如圖5所示。圖5 手寫體訓(xùn)練數(shù)據(jù)圖6 數(shù)據(jù)保存文件 注:其中,.mat文件中保存的是二位數(shù)組,用來保存我們測(cè)試需要的數(shù)據(jù)。其次,使用前

10、饋神經(jīng)網(wǎng)絡(luò),當(dāng)參數(shù)=0時(shí),運(yùn)行nnCostFunction.m文件,而文件再調(diào)用sigmoidGradient.m、sigmoid.m兩個(gè)參數(shù)文件(其中,sigmoid-GradiEnt.m文件,就是對(duì)sigmoid函數(shù)的求導(dǎo),為得就是得到sigmoid函數(shù)的梯度值,以便更好的了解數(shù)值變化的程度。而sigmoid.m文件中保存的就是sigmoid函數(shù))。運(yùn)行結(jié)果是損失函數(shù)J=0.。其中也會(huì)實(shí)現(xiàn)損失函數(shù)的正規(guī)化和梯度。而為了檢測(cè)它的正確性,又使=1進(jìn)行測(cè)試,調(diào)式,看結(jié)果是否符合要求,來檢測(cè)正確性,得到的結(jié)果如圖8所示,也是通過兩組數(shù)據(jù)的對(duì)比,讓我們更加清晰的體會(huì)它的不同之處。圖7 實(shí)驗(yàn)數(shù)據(jù)對(duì)比圖

11、 (3) (4) 第三,sigmoid函數(shù)的運(yùn)行。運(yùn)行文件ex4.m文件中,提到函數(shù)g = sig-moidGradient(),是指調(diào)用sigmoidGradient.m文件,文件中寫了sigmoid函數(shù)的梯度表達(dá)式,而其中的g(z)函數(shù),是sigmoid函數(shù)的方程式, (5) (6)通過對(duì)文件的調(diào)用,輸入測(cè)試值1、-0.5、0、0.5、1,可以得到輸出的梯度數(shù),而當(dāng)z=0時(shí),可以得到導(dǎo)數(shù)值為0.25。越接近于0,它的變化越明顯。sigmoid函數(shù)梯度指的是標(biāo)量場(chǎng)中變化的方向,而梯度值的大小就是用來表示變化的大小,簡(jiǎn)單來說就是我們數(shù)學(xué)中的斜率,而這么說也只是為了讓人們更好的接受。對(duì)于sigm

12、oid函數(shù)的測(cè)試,我們用一組數(shù)據(jù)對(duì)它進(jìn)行測(cè)試,得到的結(jié)果如圖 8所示: 圖8 梯度函數(shù)測(cè)試值初始化參數(shù)(權(quán)重W文件的調(diào)用說明),文件中使用randInitializeWei-ghts.m文件,來初始化1,2,產(chǎn)生隨機(jī)變量,為下邊的調(diào)用起到很重要的作用。上文BP神經(jīng)網(wǎng)絡(luò)中也曾提到過,權(quán)重值是整個(gè)過程中很重要的一個(gè)參數(shù)。而我們的randInitializeWeights.m文件中,也對(duì)其進(jìn)行了新的定義,給定一個(gè)較小的值,計(jì)算出新的W值。這個(gè)文件的作用是為了讓我們打破對(duì)稱而訓(xùn)練神經(jīng)網(wǎng)絡(luò)。其中初始化W的一部分代碼如圖所示: 圖9 初始化權(quán)重值其中,L_out,L_in是ex4.m文件中傳輸?shù)臄?shù)據(jù)。 最

13、后,就是這個(gè)程序最重要的部分,神經(jīng)網(wǎng)絡(luò)的應(yīng)用。而神經(jīng)網(wǎng)絡(luò)的形成與訓(xùn)練又被分為以下幾個(gè)部分來實(shí)現(xiàn):初始化神經(jīng)網(wǎng)絡(luò)、實(shí)現(xiàn)反向傳播、實(shí)現(xiàn)正則化、訓(xùn)練NN。而具體的函數(shù)調(diào)用部分可以從圖3代碼調(diào)用流程圖看見,初始化神經(jīng)網(wǎng)絡(luò)用randInitializeWeights.m文件進(jìn)行數(shù)據(jù)初始化。而我們的顯示界面并沒有顯示初始化以后的數(shù)據(jù),這部分是不可見的。通過文件調(diào)用圖可見,實(shí)現(xiàn)反向傳播和正規(guī)化都是運(yùn)用了同一個(gè)文件,也就是說,內(nèi)部調(diào)用的文件也是相同的,只是值不同,實(shí)現(xiàn)反向傳播時(shí)=0,寫在函數(shù)內(nèi)部,進(jìn)行數(shù)據(jù)判斷,正則化則定義好了值,即=3,可以看到,因?yàn)橹档貌煌?,運(yùn)行結(jié)果的輸出情況也有所不同。在checkNNG

14、radients.m文件中,還引用了三個(gè).m文件。運(yùn)行后得到兩列相似的數(shù)列,如圖10所示。圖10 檢查神經(jīng)網(wǎng)絡(luò)這就是用于檢測(cè)神經(jīng)網(wǎng)絡(luò)正確性的測(cè)試數(shù)據(jù),通過測(cè)試數(shù)據(jù)得到相對(duì)偏差,即數(shù)字輸出是產(chǎn)生的偏差值。這個(gè)數(shù)值小于1e-9,則可以使用于數(shù)字識(shí)別的過程中,得到的結(jié)果如圖11所示,可以看出,相對(duì)偏差小于要求值,則可以進(jìn)行接下來的運(yùn)行。圖11相對(duì)偏差 文件中通過對(duì)nnCostFunction.m文件的調(diào)用,可得到相應(yīng)的測(cè)試數(shù)據(jù),如圖12所示:圖12 成本函數(shù)的調(diào)試參數(shù) 訓(xùn)練神經(jīng)網(wǎng)絡(luò),給出訓(xùn)練循環(huán)次數(shù),本次循環(huán)次數(shù)為50,調(diào)用fmincg.m文件。得到下列一組訓(xùn)練次數(shù)為50的數(shù)字,得到如圖13所示。圖

15、13 神經(jīng)網(wǎng)絡(luò)的訓(xùn)練 通過這整個(gè)的實(shí)驗(yàn),我們就可以得到自己想要的數(shù)據(jù)訓(xùn)練集。3.3 圖像預(yù)處理 我們都知道,手寫體的圖片底色可以有很多種,而我們要做的就是將圖片處理成我們需要的大小樣子,放到訓(xùn)練集里運(yùn)行,以便得到我們需要的圖片信息。這整個(gè)過程又會(huì)被分為很多小的地方。過程可以大致分為以下幾個(gè)步驟:引入圖片灰度處理索引處理二值化 其中,所需要的程序代碼部分為: 1、引入圖片:imread函數(shù),可以引用多種類型的圖片。不會(huì)因?yàn)閳D片的格式不同而影響程序的運(yùn)行。 2、用matlab中使用rgb2gray函數(shù)將彩色圖片轉(zhuǎn)化為灰度圖像。 3、Graythresh函數(shù)是將圖片閾值法,將灰度圖片轉(zhuǎn)化為索引圖。

16、4、im2bw函數(shù)將索引圖片二值化 5、用邊緣切割算法,對(duì)圖片進(jìn)行切割細(xì)化。 最后得到的圖片矩陣就是我們用到的樣式,如果整個(gè)過程你還想?yún)^(qū)別不同樣式的圖片有什么變化,還可以用圖片顯示函數(shù)imshow進(jìn)行顯示,可以更加詳細(xì)、明確地觀察圖片的變化。3.4 結(jié)果分析 結(jié)果由圖片引入到程序中,經(jīng)過神經(jīng)網(wǎng)絡(luò)的訓(xùn)練識(shí)別,成為數(shù)字顯示在MATLAB的command Window工作區(qū)中。顯示準(zhǔn)確度以及數(shù)字結(jié)果。如圖所示:圖14 準(zhǔn)確度顯示4 結(jié)論 在信息發(fā)達(dá)的今天,圖像識(shí)別已經(jīng)占據(jù)了我們生活中很重要的一部分,其中包括遙感應(yīng)用,礦物的勘探,監(jiān)測(cè)火災(zāi),交通智能化,視頻檢測(cè)跟蹤等等。而我這次的實(shí)驗(yàn),只是其中的冰山一

17、角,或許對(duì)這方面不會(huì)有太大的影響,但是對(duì)我自己的影響是很明顯的,圖形識(shí)別的學(xué)習(xí)讓我自己受益匪淺。這整個(gè)實(shí)驗(yàn)下來,既鍛煉了我的耐力和意志力,又增強(qiáng)了自己迅速提取信息的能力,整個(gè)學(xué)習(xí)的過程,既枯燥又乏味,就提高了自己的修養(yǎng),雖然過程很艱辛,但結(jié)果總歸是好的。其實(shí),當(dāng)開始寫論文的時(shí)候,我還在不斷的調(diào)試著自己的程序代碼,對(duì)自己的程序進(jìn)行更改修正,讓它可以更完美的出現(xiàn)在人們的視野里面,達(dá)到自己滿意的效果。而我通過這次圖像識(shí)別的學(xué)習(xí)也增強(qiáng)了自己的知識(shí)領(lǐng)域、擴(kuò)充了自己的知識(shí)儲(chǔ)備。在整個(gè)代碼的撰寫過程中,需要查閱大量和實(shí)驗(yàn)相關(guān)的資料,這樣也就會(huì)涉及到各種各樣的知識(shí),雖然學(xué)到了各種知識(shí),但同時(shí)也增加了自己的工作

18、量,因?yàn)槊鎸?duì)同一類書籍,就會(huì)有很多不同的版本以及名稱,需要一本本的查閱、檢驗(yàn),找到自己需要的信息,而這整個(gè)過程枯燥、乏味,這就鍛煉了自己的耐力和信息提取的能力,讓自己如何在眾多的信息里面提取自己需要的信息,可以更加高速有效的完成任務(wù)。對(duì)于MATLAB這個(gè)軟件,之前一點(diǎn)都沒有接觸過,所以學(xué)習(xí)起來就會(huì)遇到各種想象不到的問題,而這些困難會(huì)讓你整體的思路停滯不前,讓你整個(gè)人都會(huì)很暴躁,明明就在眼前,卻找不到的感覺就是那么讓人抓狂,這時(shí)候,你覺得調(diào)整好自己的情緒、整理好自己的思路,然后重新出發(fā),在一步一步的捋順自己的思路想法。這個(gè)過程中,我們要不斷的讓自己變得更有耐心。這次實(shí)驗(yàn)中積累的知識(shí)和方法,是我一生的收獲和財(cái)富,相信我會(huì)終生受益。在本文的寫作過程中得到了李艷玲老師的精心指導(dǎo),在此表示衷心的感謝。參考文獻(xiàn)1 魏晗 陳剛主編.MATLAB數(shù)字信號(hào)與圖像處理范例實(shí)戰(zhàn)速查寶典.北京:清華大學(xué)出版社.2 焦里程主編.神經(jīng)網(wǎng)絡(luò)系統(tǒng)理論.西安:西安電子科技大學(xué)出版社.3 Stormy Attaway主編.MATLAB編程與工程應(yīng)用(第二版).北京:電子工業(yè)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論