基于神經(jīng)網(wǎng)絡(luò)地手寫數(shù)字識別系統(tǒng)地設(shè)計與實現(xiàn)_第1頁
基于神經(jīng)網(wǎng)絡(luò)地手寫數(shù)字識別系統(tǒng)地設(shè)計與實現(xiàn)_第2頁
基于神經(jīng)網(wǎng)絡(luò)地手寫數(shù)字識別系統(tǒng)地設(shè)計與實現(xiàn)_第3頁
基于神經(jīng)網(wǎng)絡(luò)地手寫數(shù)字識別系統(tǒng)地設(shè)計與實現(xiàn)_第4頁
基于神經(jīng)網(wǎng)絡(luò)地手寫數(shù)字識別系統(tǒng)地設(shè)計與實現(xiàn)_第5頁
已閱讀5頁,還剩43頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、中南大學(xué)本科生畢業(yè)論文(設(shè)計)題目基于神經(jīng)網(wǎng)絡(luò)的手寫數(shù)字識別系統(tǒng)的設(shè)計與實現(xiàn)目錄摘要.ABSTRACT.第一章緒論.11.1手寫體數(shù)字識別研究的發(fā)展及研究現(xiàn)狀.11.2神經(jīng)網(wǎng)絡(luò)在手寫體數(shù)字識別中的應(yīng)用.21.3論文結(jié)構(gòu)簡介.3第二章手寫體數(shù)字識別.42.1手寫體數(shù)字識別的一般方法及難點.42.2圖像預(yù)處理概述.52.3圖像預(yù)處理的處理步驟.52.3.1圖像的平滑去噪.52.3.2二值話處理.62.3.3歸一化.72.3.4細(xì)化.82.4小結(jié).9第三章特征提取.103.1特征提取的概述.103.2統(tǒng)計特征.103.3結(jié)構(gòu)特征.113.3.1結(jié)構(gòu)特征提取.113.3.2筆劃特征的提取.113.3.

2、3數(shù)字的特征向量說明.123.3知識庫的建立.12第四章神經(jīng)網(wǎng)絡(luò)在數(shù)字識別中的應(yīng)用.144.1神經(jīng)網(wǎng)絡(luò)簡介及其工作原理.144.1.1神經(jīng)網(wǎng)絡(luò)概述神經(jīng)網(wǎng)絡(luò)的工作原理.144.2神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)與訓(xùn)練15.154.3BP神經(jīng)網(wǎng)絡(luò).164.3.1BP算法.164.3.2BP網(wǎng)絡(luò)的一般學(xué)習(xí)算法.164.3.3BP網(wǎng)絡(luò)的設(shè)計.184.4BP學(xué)習(xí)算法的局限性與對策.204.5對BP算法的改進(jìn).21第五章系統(tǒng)的實現(xiàn)與結(jié)果分析.235.1軟件開發(fā)平臺.235.1.1MATLAB簡介.235.1.2MATLAB的特點.235.1.3使用MATLAB的優(yōu)勢.235.2系統(tǒng)設(shè)計思路.245.3系

3、統(tǒng)流程圖.245.4MATLAB程序設(shè)計.245.5實驗數(shù)據(jù)及結(jié)果分析.26結(jié)論.27參考文獻(xiàn).28致謝.30附錄.31摘要手寫體數(shù)字識別是模式識別中一個非常重要和活躍的研究領(lǐng)域,數(shù)字識別也不是一項孤立的技術(shù),它所涉及的問題是模式識別的其他領(lǐng)域都無法回避的;應(yīng)用上,作為一種信息處理手段,字符識別有廣闊的應(yīng)用背景和巨大的市場需求。因此,對數(shù)字識別的研究具有理論和應(yīng)用的雙重意義。人工神經(jīng)網(wǎng)絡(luò)識別方法是近年該研究領(lǐng)域的一種新方法,該方法具有一些傳統(tǒng)技術(shù)所沒有的優(yōu)點:良好的容錯能力、分類能力強、并行處理和自學(xué)習(xí)能力,并且是離線訓(xùn)練和在線識別的。這些優(yōu)點使它在手寫體字符的識別中能對大量數(shù)據(jù)進(jìn)行快速實時處

4、理,并達(dá)到良好的識別效果。由于手寫體數(shù)字識別難于建立精確的數(shù)學(xué)模型,所以本文采用BP神經(jīng)網(wǎng)絡(luò)對這一問題進(jìn)行處理。神經(jīng)網(wǎng)絡(luò)模式識別的一個關(guān)鍵步驟是預(yù)處理和特征提取,對于手寫體數(shù)字識別,本文采用了一種基于結(jié)構(gòu)特征和統(tǒng)計特征的提取方法,并用程序?qū)崿F(xiàn)了這一特征提取過程。通過測試,本識別系統(tǒng)對于較規(guī)X的手寫體數(shù)字的識別達(dá)到了很好的識別效果。關(guān)鍵詞:手寫體數(shù)字識別,特征提取,人工神經(jīng)網(wǎng)絡(luò),MATLABIABSTRACTHandwrittencharacterrecognitionisaveryimportantandactiveresearchinpatternrecognition.Theoretica

5、lly,itisnotanisolatedtechnique.Itconcernswiththeproblemthatalltheotherareasofpatternrecognitionmustconfronted;practically,beingakindofinformationprocessingmeasured,characterrecognitionhasaverybroadapplicationbackgroundandvastneedofmarket.Thus,itisofboththeoreticalandpracticalsignificance.Artificialn

6、euralnetworkrecognitionmethodisanewmethodoftheresearchfieldinrecentyears,andthismethodhassomemeritthattraditionaltechniquedonothave;goodtoleranceforerror,strongsortingability,strongparallelhandlingabilityandstrongself-learningabilityaswellasitsoff-linetrainingandon-linerecognizing.Allthesemeritscont

7、ributeitsperfectperformanceinhandlingvastdatasetandhandlingintimelymanner.Itdsifficulttomakeaccuratemathematicsmodelforhandwrittennumeralrecognition,soBPneuralnetworksisusedhere.Thekeystepsofneuralnetworkspatternrecognitionarepreprocessingandfeaturesubsetselection.Inthispaper,algorithmoffeaturesubse

8、tselectionbasingonstructuralcharacteristicsandstatisticalcharacteristicshasbeenadoptedinhandwrittennumeralrecognition,andtheprocessoffeaturesubsetselectionhadbeenrealizedinprogram.Recognitionsysteminthispaperhasachievedagoodrateofrecognitioninrandomhandwrittennumeralbytest.Keyword:handwrittennumeral

9、recognition,featureextraction,artificialneuralnetwork,MATLABII基于神經(jīng)網(wǎng)絡(luò)的手寫數(shù)字識別系統(tǒng)的設(shè)計與實現(xiàn)第一章緒論第一章緒論1.1手寫體數(shù)字識別研究的發(fā)展及研究現(xiàn)狀模式識別2是六十年代初迅速發(fā)展起來的一門學(xué)科。由于它研究的是如何用機器來實現(xiàn)人(及某些動物)對事物的學(xué)習(xí)、識別和判斷能力,因而受到了很多科技領(lǐng)域研究人員的注意,成為人工智能研究的一個重要方面。一個模式識別系統(tǒng)的基本職能是對系統(tǒng)所要處理的模式歸屬于哪一類做出判別,從該系統(tǒng)的模式輸入到系統(tǒng)做出判別之間,主要包括信息檢測、預(yù)處理、特征提取和分類幾大環(huán)節(jié)。字符識別是模式識別領(lǐng)域中

10、的一個非?;钴S的分支。一方面是由于問題本身的難度使之成為一個極具挑戰(zhàn)性的課題;另一方面,是因為字符識別不是一項孤立的應(yīng)用技術(shù),其中包含的模式識別領(lǐng)域中其他分支都會遇到的一些基本和共性的問題。從50年代開始,許多的研究者就在這一研究領(lǐng)域開展了廣泛的探索并為模式識別的發(fā)展產(chǎn)生了積極的影響。字符識別,從采用的輸入設(shè)備來分,可分為脫機識別(又稱為光學(xué)字符識別OpticalCharacterRecognition,OCR)和聯(lián)機識別,脫機字符又分為印刷體和手寫字符識別,從對書寫者要求來分,手寫字符又分為限制性和非限制性的手寫字符識別。在聯(lián)機手寫字符識別中,計算機能夠通過與計算機相連的手寫輸入設(shè)備獲得輸入

11、字符筆劃的順序、筆劃的方向以及字符的形狀,所以相對OCR來說它更容易識別一些。但聯(lián)機字符識別有一個重要的不足就是要求輸入者必須在指定的設(shè)備上書寫,然而人們在生活中大部分的書寫情況是不滿足這一要求的,比如人們填寫各種表格資料,開具支票等。如果需要計算機去認(rèn)識這些已經(jīng)成為文字的東西,就需要OCR技術(shù)。比起聯(lián)機字符識別來,OCR不要求書寫者在特定輸入設(shè)備上書寫,它可以與平常一樣書寫,所以O(shè)CR的應(yīng)用更為廣泛。OCR所使用的輸入設(shè)備可以是任何一種圖像采集設(shè)備,如掃描儀、數(shù)字相機等。通過使用這類采集設(shè)備,OCR系統(tǒng)將書寫者已經(jīng)寫好的文字作為圖像輸入到計算機中,然后由計算機去識別。由于OCR的輸入只是簡單

12、的一副圖像,它就不能像聯(lián)機輸入那樣比較容易的從物理上獲得字符筆劃的順序信息,因此OCR是一個更具挑戰(zhàn)性的問題。脫機字符識別(OCR)分為印刷體OCR和手寫OCR。印刷體字符比手寫體字符少了隨機性,它的識別相對容易些,難點已經(jīng)不在識別環(huán)節(jié),而在于字符的分割上。印刷體識別的錯誤絕大多數(shù)都是錯誤的分割引起的3。對于手寫體OCR,無論是聯(lián)機還是脫機識別,手寫體的識別都要經(jīng)歷由限制性手寫體識別到非限制性手寫體識別兩個階段。本文將以手寫體數(shù)字為代表,討論非限制性手寫體字符的識別。脫機字符識別的研究最早始于上個世紀(jì)六十年代,是為了應(yīng)付漢英翻譯的需要。八十年代后的研究重心轉(zhuǎn)移到脫機手寫字符的識別上。對于小類別

13、數(shù)的字符集如數(shù)字、1基于神經(jīng)網(wǎng)絡(luò)的手寫數(shù)字識別系統(tǒng)的設(shè)計與實現(xiàn)第一章緒論字母的識別,已經(jīng)可以做到對書寫不加任何的限制。非限制性手寫OCR的研究始終以阿拉伯?dāng)?shù)字為主導(dǎo)。這事因為,第一,十個阿拉伯?dāng)?shù)字是全世界的一套通用字符。第二,在數(shù)字的許多應(yīng)用場合,如報表、賬單、支票等,手寫體還難以被印刷體所替代,而且對識別的可靠性要求極高。三,由于類別數(shù)少,所以模式識別中的許多方法研究均可以以數(shù)字識別作為實驗背景。對脫機手寫體字符的研究,人們由簡單集成筆畫密度、筆畫方向和背景特征方法過渡到特征匹配方法,進(jìn)而過渡到結(jié)合神經(jīng)網(wǎng)絡(luò)方法,隨著對識別可靠性要求的提高,九十年代以后,多分類器集成方法成為了一個研究重點。1

14、.2神經(jīng)網(wǎng)絡(luò)在手寫體數(shù)字識別中的應(yīng)用目前,隨著計算機的迅速發(fā)展,性能價格比的不斷提高,模式識別技術(shù)已經(jīng)從理論探討為主發(fā)展到大量的實際應(yīng)用,人們將更多的注意力開始轉(zhuǎn)向那些用于語音、圖像、機器人以及人工智能等的模式識別實際問題。解決這些問題的關(guān)鍵是需要進(jìn)行復(fù)雜而龐大的實時數(shù)據(jù)處理,而現(xiàn)有計算機的存貯容量及計算復(fù)雜性的局限,使得真正實時化的應(yīng)用受阻。這種面向?qū)崟r應(yīng)用的模式識別問題促使人們開始將并行處理的神經(jīng)網(wǎng)絡(luò)4應(yīng)用到模式識別,而神經(jīng)網(wǎng)絡(luò)模式識別技術(shù)又將模式識別實時應(yīng)用推進(jìn)了一大步,手寫體數(shù)字識別就是這種應(yīng)用的一個很重要的領(lǐng)域。手寫體數(shù)字識別是一項極具研究價值的課題,隨著神經(jīng)網(wǎng)絡(luò)1和模糊邏輯技術(shù)的發(fā)

15、展,人們對這一問題的研究又采用了許多新的方法和手段,也使得這一古老的課題煥發(fā)出新的生命力5。目前國際上有相當(dāng)多的學(xué)者在研究這一課題,它包括了模式識別領(lǐng)域中所有典型的問題:數(shù)據(jù)的采集、處理及選擇、輸入樣本表達(dá)的選擇、模式識別分類器的選擇以及用樣本集對識別器的有指導(dǎo)的訓(xùn)練。人工神經(jīng)網(wǎng)絡(luò)為手寫體數(shù)字識別提供了新的手段。正是神經(jīng)網(wǎng)絡(luò)所具有的這種自組織自學(xué)習(xí)能力、推廣能力、非線性和運算高度并行的能力使得模式識別成為目前神經(jīng)網(wǎng)絡(luò)最為成功的應(yīng)用領(lǐng)域。二十多年來,人們在數(shù)字識別領(lǐng)域做了大量的研究工作,所提出的各種方法在印刷體和手寫印刷體數(shù)字識別方面已經(jīng)取得了較好的成績,識別率穩(wěn)定在96%左右。但是自由手寫體數(shù)

16、字的識別工作目前并不成熟,仍舊是文字識別中最有挑戰(zhàn)性的課題之一。字符識別長期以來都是采用傳統(tǒng)的識別方法,對印刷體字符的識別率一般只是穩(wěn)定在96左右,不能進(jìn)一步提高;而對手寫體字符的識別,其研究還處于探索階段,其識別率還相當(dāng)?shù)?,因此,為了提高識別率,就必須尋求新的方法和途徑。進(jìn)入九十年代以來,人工神經(jīng)網(wǎng)絡(luò)(ANN)技術(shù)發(fā)展十分迅速,它具有模擬人類部分形象思維的能力,是一種模仿人腦學(xué)習(xí)、記憶、推理等認(rèn)知功能的新方法。2基于神經(jīng)網(wǎng)絡(luò)的手寫數(shù)字識別系統(tǒng)的設(shè)計與實現(xiàn)第一章緒論特別是它的信息并行分布式處理能力和自學(xué)習(xí)功能等顯著優(yōu)點,更是激起了人們對它的極大的興趣。人工神經(jīng)網(wǎng)絡(luò)是由一些類似人腦神經(jīng)元的簡單處

17、理單元相互連接而成的復(fù)雜網(wǎng)絡(luò)。已涌現(xiàn)出許多不同類型的ANN及相應(yīng)的學(xué)習(xí)算法,其中BP(或EBP-ErrorBackPropagation)網(wǎng)絡(luò)及學(xué)習(xí)算法得到了廣泛關(guān)注和研究,并在數(shù)字識別方面取得了許多有意義的應(yīng)用成果。1.3論文結(jié)構(gòu)簡介本畢業(yè)設(shè)計主要解決以圖像形式存在的手寫體數(shù)字識別的問題。整體分為三個部分,第一部分是圖像預(yù)處理,第二部分是對手寫體數(shù)字的結(jié)構(gòu)特征的提取,第三部分是設(shè)計神經(jīng)網(wǎng)絡(luò)并對前面得到的樣本數(shù)據(jù)進(jìn)行學(xué)習(xí)和訓(xùn)練。本文通過圖像預(yù)處理和數(shù)字特征提取以后基于神經(jīng)網(wǎng)絡(luò)的判別方法,然后結(jié)合使用了MATLAB工具箱中提供的人工神經(jīng)網(wǎng)絡(luò)函數(shù)設(shè)計了一種手寫數(shù)字識別的新方法。實驗表明,該方法可以

18、獲得較好的識別率。3基于神經(jīng)網(wǎng)絡(luò)的手寫數(shù)字系統(tǒng)的設(shè)計與實現(xiàn)第二章手寫數(shù)字識別第二章手寫體數(shù)字識別2.1手寫體數(shù)字識別的一般方法及難點字符識別問題的研究已有幾十年的歷史了,但時至今日,字符識別的研究成果遠(yuǎn)未達(dá)到人們所期望的,這其中有理論研究和技術(shù)實現(xiàn)等多方面因素.在理論方面,我們對人類的視覺認(rèn)知機理的研究還只是初步的,遠(yuǎn)未達(dá)到深入和透徹的水平。在技術(shù)方面,我們使用的計算機的運算水平和存儲能力,比起人腦的信息存儲和處理能力有很大差距.因此,目前的文字識別只能建立在現(xiàn)有的理論基礎(chǔ)上,使用現(xiàn)有的技術(shù)來研究和解決問題。手寫體數(shù)字識別是字符識別的一個分支,問題雖然簡單,但卻有較大的實用價值。數(shù)字的類別雖然

19、只有十種,筆劃又簡單,其識別問題表面上是一個較簡單的分類問題。但實際上,雖然各種新的識別算法不斷的推出。其識別率和誤識率仍距實用有相當(dāng)距離。手寫阿拉伯?dāng)?shù)字具有變形多差異大的特點,字形與書寫人的職業(yè)、文化程度、書寫習(xí)慣以及所使用筆墨紙X所處環(huán)境等都有關(guān),所以手寫體數(shù)字變形多、規(guī)律復(fù)雜。具體地說有兩個:一是09十個數(shù)字中,其中的一些數(shù)字字形相差不大,使得準(zhǔn)確區(qū)分某些數(shù)字相當(dāng)困難;二是數(shù)字雖然只有十種,但同一數(shù)字寫法千差萬別。不同的人寫出的同一個數(shù)字都有差別,即使同一個人在不同的時候也會有不同的寫法。筆劃的書寫順序經(jīng)常發(fā)生變化,因此極大地增加了匹配的難度。一般人寫字時都不會一筆一劃的書寫,為了節(jié)省時

20、間,連筆字是自然而然的事情,對于結(jié)構(gòu)識別而言,連筆一方面使筆劃種類大大增加,甚至達(dá)到難以歸納的程度;另一方面,連筆又使得筆段抽取難度大增,因為連筆會增加一些冗余筆段,連筆造成的畸變又會使筆段方向嚴(yán)重離散??傊?,連筆不論對于基于哪種基元的結(jié)構(gòu)識別都是嚴(yán)峻的挑戰(zhàn)。這是造成手寫數(shù)字識別過程復(fù)雜、達(dá)到較高識別率困難的根本原因。如圖2.1各種各樣的手寫體數(shù)字。圖2.1各種各樣的手寫體數(shù)字4基于神經(jīng)網(wǎng)絡(luò)的手寫數(shù)字系統(tǒng)的設(shè)計與實現(xiàn)第二章手寫數(shù)字識別2.2圖像預(yù)處理概述預(yù)處理6是字符識別重要的一環(huán),它把原始的圖像轉(zhuǎn)換成識別器所能接受的二進(jìn)制形式。要識別手寫體數(shù)字首先要對其字符圖像進(jìn)行預(yù)處理。預(yù)處理的主要目的是

21、去除字符圖像中的噪聲、壓縮冗余信息,得到規(guī)X化的點陣,為識別做好準(zhǔn)備。這就要求預(yù)處理在消除圖像中與識別無關(guān)的因素時盡量保持原圖像的字符特征。手寫體數(shù)字圖像預(yù)處理的過程,就一般情況而言,主要經(jīng)過如圖2.2所示的幾7個步驟。不同的識別方法對預(yù)處理的項目和要求有所不同。如結(jié)構(gòu)識別方法,對字符規(guī)X化可以從簡,甚至不需要。有的識別方法對細(xì)化要求很高,有的則不需要細(xì)化。本章中將分別對平滑去噪、二值化、歸一化和細(xì)化分小節(jié)討論。原始圖像平滑去噪二值化歸一化細(xì)化圖2.2圖像預(yù)處理的基本流程2.3圖像預(yù)處理的處理步驟2.3.1圖像的平滑去噪手寫體數(shù)字由于其隨機性大,斷筆,連筆、飛白狀況時常發(fā)生,為了減少灰度圖像的

22、一些不該出現(xiàn)的黑白噪聲,可以采用圖像的平滑去噪技術(shù)。8進(jìn)行圖像平滑處理的是一種空域濾波器,空域濾波器一般可分為線性濾波和非線性濾波兩類。線性濾波器的設(shè)計?;趯Ω盗⑷~變換的分析,如均值濾波器;非5基于神經(jīng)網(wǎng)絡(luò)的手寫數(shù)字系統(tǒng)的設(shè)計與實現(xiàn)第二章手寫數(shù)字識別線性濾波器則一般直接對鄰域進(jìn)行操作,如中值濾波器。以下為采用中值濾波對圖像進(jìn)行平滑處理的部分代碼9:fori=2:175;forj=2:259Xtemp=0;form=1:3forn=1:3Xtemp=Xtemp+X2(i+m.2,j+n.2);endendXtemp=Xtemp/9;X3(i,j)=Xtemp;endend2.3.2二值化處理圖

23、像的二值化就是把圖像中的像素根據(jù)一定的標(biāo)準(zhǔn)劃分成兩種顏色。在這個系統(tǒng)中就是根據(jù)像素的灰度值處理成黑白兩種顏色。對數(shù)字字符圖像二值化后要能真實的再現(xiàn)原數(shù)字,其基本要求為:筆畫中不出現(xiàn)空白點,二值化的筆畫基本保持原來文字的結(jié)構(gòu)特征。圖像二值化的關(guān)鍵在于閾值的選擇。圖像的二值化有很多成熟的算法,有整體閾值二值化法、局部閾值二值化法、動態(tài)閾值二值化法等。二值化的關(guān)鍵在于閾值的選取,閾值選取主要分為整體閾值法、局部閾值法和動態(tài)閾值法。三類閾值的選擇是一個比較復(fù)雜的問題,有的可以由計算機自動選擇,有的需人工干預(yù)。基于字符識別掃描得到的圖像目標(biāo)與背景的灰度級有明顯的差別,字符圖像的二值化可采用整體閾值法中的

24、雙峰法,該方法簡單易行,針對目標(biāo)與背景的灰度級有明顯差別的圖像,其灰度直方圖的分布呈雙峰狀,兩個波峰分別與圖像中的目標(biāo)和背景相對應(yīng),波谷與圖像邊緣相對,應(yīng)當(dāng)在分割閾值位于谷底時,圖像分割可取得最好的效果。下面給出我在設(shè)計過程中二值化以后的效果圖如圖2.3。6基于神經(jīng)網(wǎng)絡(luò)的手寫數(shù)字系統(tǒng)的設(shè)計與實現(xiàn)第二章手寫數(shù)字識別圖2.3二值化處理2.3.3歸一化本文使用的數(shù)字圖像都是在WindowsXP畫圖板中手寫輸入的。由于1014像素圖像(10是圖像寬度,14是圖像高度)較小,書寫時難度較大。我們希望書寫時盡量不限制圖像的大小,然后通過計算統(tǒng)一尺寸,使之具有同一高度,同一寬10度,稱之為歸一化。在數(shù)字圖像

25、處理中有一些比較成熟的縮放圖像的算法,例如MATLAB使用imresize函數(shù)來改變圖像的大小。它的調(diào)用格式為I2=imresize(I,rate),I存儲的是原始圖像的數(shù)組,rate是變化率,I2存儲的是改變后圖像的數(shù)組。例如rate=0.5時,高度和寬度都將縮小一半,原始圖像也就縮小了一半。這一算法的缺點是只能將原始圖像的高度和寬度同時變化相同的比例,如果我們希望將原始圖像變成1014像素的圖像,該算法就無法解決了。顯然這種算法不適合解決我們面臨的問題。本文提出了一種新的歸一化算法,可以將不同尺寸的二值圖像統(tǒng)一為1014像素的圖像。具體算法是:先得到原始圖像的高度和寬度,分別與系統(tǒng)要求得到

26、的高度和寬度作比較,得出要變換的系數(shù),然后根據(jù)得到的系數(shù)計算每一個原始像素點歸一化后在新圖像中的位置,最后計算新圖像中每個像素點的值,方法是:求出原始像素點及其周圍三個點的像素值的平均值,最后用函數(shù)floor.m取整,調(diào)用格式為B=floor(A),B取小于或者等于A的整數(shù)。7基于神經(jīng)網(wǎng)絡(luò)的手寫數(shù)字系統(tǒng)的設(shè)計與實現(xiàn)第二章手寫數(shù)字識別歸一化算法程序代碼如下:ans=imread(0.bmp);%讀入圖片0.bmp,2828像素圖像imshow(ans)r,c=size(ans);%r是原圖像的高度,c是寬度fori=2:(r-1)forj=2:(c-1)n=i/(r/14);n=ceil(n);

27、m=j/(c/10);m=ceil(m);M(n,m)=(ans(i,j)+ans(i,j+1)+ans(i,j-1)+ans(i-1,j)/4;N(n,m)=floor(M(n,m);endendimshow(N)例如,數(shù)字圖像“0.bmp經(jīng)”該歸一化算法計算得到矩陣M,MATLAB運行結(jié)果如圖2.4所示。圖2.4歸一化處理2.3.4細(xì)化許多字符識別方法在預(yù)處理中都很重視對二值化字符的細(xì)化處理。直觀來說,細(xì)化就是將二值化字符點陣逐層剝?nèi)ポ喞系狞c,變成筆畫寬度只有一個像素寬度的字符骨架圖形。之所以需要細(xì)化處理,是因為二值化點陣圖形中,對識別有價值8基于神經(jīng)網(wǎng)絡(luò)的手寫數(shù)字系統(tǒng)的設(shè)計與實現(xiàn)第二章

28、手寫數(shù)字識別的文字特征信息主要集中在字符骨架上,細(xì)化后的字符骨架既保留了原字符的絕大部分的特征,又利于特征提取。細(xì)化后骨架的存儲量比原來的二值化字符點陣要少得多,降低了處理工作量。手寫體數(shù)字細(xì)化的基本要求如下:第一、保持原有字符筆畫的連續(xù)性,不能由于細(xì)化造成筆畫斷裂。第二、要細(xì)化為單線,即筆畫寬度為一個像素。第三、細(xì)化后的骨架應(yīng)盡量是原來筆畫的中心線。2.4小結(jié)預(yù)處理是手寫數(shù)字識別中不可缺少的組成部分,對圖像預(yù)處理的好壞直接影響到識別的結(jié)果,關(guān)系到識別算法的好壞。文中首先對待識別數(shù)字的預(yù)處理進(jìn)行了介紹,包括平滑去噪、二值化、歸一化、細(xì)化等圖像處理方法,經(jīng)過這些預(yù)處理步驟,對圖像中部分變形信息進(jìn)

29、行了修正,消除圖像中與識別無關(guān)的因素,而且盡量保持原圖像的字符特征,在實驗中提高了數(shù)字識別網(wǎng)絡(luò)的性能。9基于神經(jīng)網(wǎng)絡(luò)的手寫數(shù)字系統(tǒng)的設(shè)計與實現(xiàn)第三章特征提取第三章特征提取3.1特征提取的概述模式識別使用特征來區(qū)分不同的種類。因此,特征提取是模式識別系統(tǒng)的關(guān)鍵部分。特征提取的目標(biāo)是找到某種變換,將N維或N*N維的模式類別空間轉(zhuǎn)換到維數(shù)小得多的M維特征空間,并同時保留模式識別所需要的大部分信息。通過特征提取,模式分類可以在維數(shù)低得多的空間上進(jìn)行,從而降低了計算的復(fù)雜度。而且,對給定的訓(xùn)練樣本進(jìn)行特征提取可以獲得更精確的分類函數(shù)的描述,以構(gòu)造更可靠的分類規(guī)則。同樣對于手寫體數(shù)字的識別,特征提取可以降

30、低字符信息量、去除無用的冗余信息,提高識別系統(tǒng)效率,一直是字符識別領(lǐng)域中的關(guān)鍵點。特征提取的目的是從原始數(shù)據(jù)中抽取出用于區(qū)分不同類型的本質(zhì)特征。無論是識別過程還是學(xué)習(xí)過程,都要對研究對象固有的、本質(zhì)的重要特征或?qū)傩赃M(jìn)行量測并將結(jié)果數(shù)值化,形成特征矢量。手寫體數(shù)字的識別中,常用的特征有結(jié)構(gòu)特征和統(tǒng)計特征。結(jié)構(gòu)特征和統(tǒng)計特征各有其優(yōu)點:結(jié)構(gòu)特征能描述字符的結(jié)構(gòu),對于不同人書寫的字符,形體不同,但結(jié)構(gòu)都是一致的,所以結(jié)構(gòu)特征能克服手寫字體因人而引起的畸變;統(tǒng)計特征最大的優(yōu)點是對環(huán)境噪音不敏感,如若字符的背景噪音通常都是呈高斯分布,用統(tǒng)計特征進(jìn)行識別可對此影響忽略不計。本章將用兩小節(jié)分別對結(jié)構(gòu)特征和統(tǒng)

31、計特征進(jìn)行論述。3.2統(tǒng)計特征對復(fù)雜圖像信號作小波變換11,進(jìn)行多分辨率分析,已經(jīng)成為圖像信號分析和處理的常用方法。由于小波變換的結(jié)果體現(xiàn)為大量的小波分解系數(shù),這些系數(shù)包含了系統(tǒng)或信號本身大量和多樣的特征信息。如果圖像信號的主要信息能以一個或一組特征量來表征,我們就可以更加直觀、有效和方便地對各種隨機信號進(jìn)行信息提取、信號檢測、特征識別。統(tǒng)計特征分為宏觀特征信息和局部特征信息。宏觀特征信息是需要在整幅圖像上獲取的特征信息。傳統(tǒng)的全局特征主要包括:全局變換特征(對字符圖像進(jìn)行各種變換,利用變換系數(shù)作為特征向量,常用的變換有Fourier變換、K-L變換、小波變換等)、不變矩特征、全局筆劃方向特征

32、等;常用的局部統(tǒng)計特征有:局部筆劃方向特征、Gabor特征等。統(tǒng)計特征對微小的畸變不敏感,但區(qū)分相似的能力較差。以下為程序設(shè)計中對小波分析提取低頻部分的統(tǒng)計特征的實例:f=imread(sample.bmp);輸入圖像10基于神經(jīng)網(wǎng)絡(luò)的手寫數(shù)字系統(tǒng)的設(shè)計與實現(xiàn)第三章特征提取c,s=wavedec2(h,3,db2);對人臉圖像進(jìn)行3階小波分解,并提取小波系數(shù)wave2gray(c,s,8);顯示小波分解后各子圖y=wavecopy(a,c,s)figure,imshow(mat2gray(y);提取主要特征3.3結(jié)構(gòu)特征采用結(jié)構(gòu)特征12對字符進(jìn)行結(jié)構(gòu)分析從而達(dá)到識別目的,是一種非常直觀的方法。

33、字符由各個子部件構(gòu)成,逐級分析字符圖像的結(jié)構(gòu),根據(jù)各元素的屬性、數(shù)量及其相互關(guān)系,便可判定待識字符。與統(tǒng)計方法相比,結(jié)構(gòu)分析不注重特征的絕對位置,只考慮特征的相對關(guān)系,因而對書寫風(fēng)格的變化不敏感,其缺點在于特征提取和模板的建立都十分困難,匹配算法也比較復(fù)雜,神經(jīng)網(wǎng)絡(luò)的應(yīng)用彌補了這個缺點,只要提取出適當(dāng)?shù)慕Y(jié)構(gòu)向量作為神經(jīng)網(wǎng)絡(luò)的輸入向量,會得到令人滿意的識別輸出結(jié)果。以下詳細(xì)介紹。3.3.1結(jié)構(gòu)特征提取首先對經(jīng)預(yù)處理后的圖像進(jìn)行分割,如圖3.1所示。圖3.1圖像分割對圖像分割后,結(jié)構(gòu)特征提取的算法如下:(1)對細(xì)化后的數(shù)字圖像取豎直的三條直線,分別取在5/12,1/2,7/12處,記下這三條豎直直

34、線與數(shù)字筆段的交點數(shù)。(2)再取水平三條直線,分別取在1/3,1/2,2/3處,分別記下這三條水平直線與數(shù)字筆段的交點數(shù)。(3)再取對角兩條直線,分別記下這兩條對角直線與數(shù)字筆段的交點數(shù)。3.3.2筆劃特征的提取經(jīng)細(xì)化后的數(shù)字圖像其特征較為穩(wěn)定,且筆劃簡單,因此對其抽取的基本結(jié)構(gòu)組件能反映數(shù)字的本質(zhì)特征,從而可快速有效地識別數(shù)字,并達(dá)到較好的分類效果。數(shù)字端點如圖3.2所示。11基于神經(jīng)網(wǎng)絡(luò)的手寫數(shù)字系統(tǒng)的設(shè)計與實現(xiàn)第三章特征提取圖3.2數(shù)字端點對圖像分割后,結(jié)構(gòu)特征提取的算法如下:(1)按從上到下,從左到右的順序掃描預(yù)處理后圖像并選擇黑像素點P;(2)計算像素P的8鄰域之和N;(3)若N=1

35、,則像素P為端點,端點計數(shù)器加一;(4)重復(fù)步驟(1)-(3),直到遍歷整個圖像。3.3.3數(shù)字的特征向量說明依據(jù)上述特征提取方法,本系統(tǒng)中的特征矢量由9個分量組成,其排列如下所示:DATA=豎直中線交點數(shù),豎直5/12處,豎直7/12處,水平中線交點數(shù),水平1/3處交點數(shù),水平2/3處交點數(shù),左對角線交點數(shù),右對角線交點數(shù),端點數(shù);3.3知識庫的建立由于本文采用的是基于模式知識庫的識別方法,所以對字符的結(jié)構(gòu)特征的分析以及字符模型的構(gòu)造是一個十分重要的環(huán)節(jié),圖3.3就是對識別數(shù)字的標(biāo)準(zhǔn)形態(tài)進(jìn)行具體分析而構(gòu)造的模板。圖3.3規(guī)X手寫體數(shù)字形態(tài)以下為規(guī)X手寫體數(shù)字形態(tài)的特征向量:DATA012,2

36、,2,2,2,2,2,2,0;DATA111,0,0,1,1,1,1,1,2;DATA213,3,3,1,1,1,1,1,3;12基于神經(jīng)網(wǎng)絡(luò)的手寫數(shù)字系統(tǒng)的設(shè)計與實現(xiàn)第三章特征提取DATA313,2,3,1,1,1,2,2,3;DATA411,1,1,2,2,1,3,2,4;DATA513,3,3,1,1,1,2,2,4;DATA613,3,2,1,1,2,3,2,1;DATA712,2,2,1,1,1,1,1,2;DATA814,4,4,2,2,2,2,2,0;DATA913,3,3,1,2,1,3,1,1。由于本系統(tǒng)是對自由手寫體進(jìn)行識別,因而要考慮數(shù)字書寫體的多變性。通過對圖3.4所示

37、的數(shù)字變體的分析來對知識庫進(jìn)行補充。圖3.4手寫體數(shù)字變體以下為手寫體數(shù)字變體形態(tài)的特征向量:DATA021,1,2,2,2,2,1,2,2;DATA223,2,2,1,1,1,1,3,2;DATA323,1,4,2,1,1,2,2,3;DATA421,2,2,3,3,1,2,2,2;DATA523,3,3,1,1,1,2,2,4;DATA623,1,3,1,1,2,2,2,2;DATA824,4,4,2,1,2,1,2,2;DATA923,2,3,2,1,1,3,1,3。最后得到的知識庫由上述兩套模板所組成。13基于神經(jīng)網(wǎng)絡(luò)的手寫數(shù)字系統(tǒng)的設(shè)計與實現(xiàn)第四章神經(jīng)網(wǎng)絡(luò)在數(shù)字識別中的應(yīng)用第四章神經(jīng)

38、網(wǎng)絡(luò)在數(shù)字識別的應(yīng)用4.1神經(jīng)網(wǎng)絡(luò)簡介及其工作原理人的智能來自于大腦,大腦是由大量的神經(jīng)細(xì)胞或神經(jīng)元組成的。每個神經(jīng)元可以看作為一個小的處理單元,這些神經(jīng)元按照某種方式互相連接起來,構(gòu)成了大腦內(nèi)部的生理神經(jīng)元網(wǎng)絡(luò)。他們中各神經(jīng)元之間連接的強弱,按照外部的激勵信號作自適應(yīng)變化,而每個神經(jīng)元又隨著接收到的多個激勵信號的綜合大小呈現(xiàn)興奮或抑制狀態(tài)。4.1.1神經(jīng)網(wǎng)絡(luò)概述人工神經(jīng)元網(wǎng)絡(luò)是生理學(xué)上的真實人腦神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)和功能,以及若干基本特性的某種理論抽象、簡化和模擬而構(gòu)成的一種信息處理系統(tǒng)。從系統(tǒng)觀點看,人工神經(jīng)元網(wǎng)絡(luò)是由大量神經(jīng)元通過極其豐富和完善的聯(lián)接而構(gòu)成的自適應(yīng)非線性動14態(tài)系統(tǒng)。由于神經(jīng)元

39、之間有著不同的連接方式,所以組成不同結(jié)構(gòu)形態(tài)的神經(jīng)網(wǎng)絡(luò)系統(tǒng)是可能的。據(jù)現(xiàn)在的了解,大腦的學(xué)習(xí)過程就是神經(jīng)元之間連接強度隨外部激勵信息做自適應(yīng)變化的過程,大腦處理信息的結(jié)果確由神經(jīng)元的狀態(tài)表現(xiàn)出來。顯然,神經(jīng)元是信息處理系統(tǒng)的最小單元。雖然神經(jīng)元的類型有很多種,但其基本結(jié)構(gòu)相似。4.1.2神經(jīng)網(wǎng)絡(luò)的工作原理人工神經(jīng)網(wǎng)絡(luò)首先要以一定的學(xué)習(xí)準(zhǔn)則進(jìn)行學(xué)習(xí),然后才能工作?,F(xiàn)以人工神經(jīng)網(wǎng)絡(luò)對手寫“A”、“B”兩個字母的識別為例進(jìn)行說明,規(guī)定當(dāng)“A”輸入網(wǎng)絡(luò)時,應(yīng)該輸出“1”,而當(dāng)輸入為“B”時,輸出為“0”。所以網(wǎng)絡(luò)學(xué)習(xí)的準(zhǔn)則應(yīng)該是:如果網(wǎng)絡(luò)做出錯誤的判決,則通過網(wǎng)絡(luò)的學(xué)習(xí),應(yīng)使得網(wǎng)絡(luò)減少下次犯同樣錯誤的

40、可能性。首先,給網(wǎng)絡(luò)的各連接權(quán)值賦予(0,1)區(qū)間內(nèi)的隨機值,將“A”所對應(yīng)的圖像模式輸入給網(wǎng)絡(luò),網(wǎng)絡(luò)將輸入模式加權(quán)求和、與門限比較、再進(jìn)行非線性運算,得到網(wǎng)絡(luò)的輸出。在此情況下,網(wǎng)絡(luò)輸出為“1”和“0”的概率各為50%,也就是說是完全隨機的。這時如果輸出為“1”(結(jié)果正確),則使連接權(quán)值增大,以便使網(wǎng)絡(luò)再次遇到“A”模式輸入時,仍然能做出正確的判斷。如果輸出為“0”(即為結(jié)果錯誤),則把網(wǎng)絡(luò)連接權(quán)值朝著減小綜合輸入加權(quán)值的方向調(diào)整,其目的在于使網(wǎng)絡(luò)下次再遇到“A”模式輸入時,減小犯同樣錯誤的可能性。14基于神經(jīng)網(wǎng)絡(luò)的手寫數(shù)字系統(tǒng)的設(shè)計與實現(xiàn)第四章神經(jīng)網(wǎng)絡(luò)在數(shù)字識別中的應(yīng)用如此操作調(diào)整,當(dāng)給網(wǎng)

41、絡(luò)輪番輸入若干個手寫字母“A”、“B”后,經(jīng)過網(wǎng)絡(luò)按以上學(xué)習(xí)方法進(jìn)行若干次學(xué)習(xí)后,網(wǎng)絡(luò)判斷的正確率將大大提高。這說明網(wǎng)絡(luò)對這兩個模式的學(xué)習(xí)已經(jīng)獲得了成功,它已將這兩個模式分布地記憶在網(wǎng)絡(luò)的各個連接權(quán)值上。當(dāng)網(wǎng)絡(luò)再次遇到其中任何一個模式時,能夠做出迅速、準(zhǔn)確的判斷和識別。一般說來,網(wǎng)絡(luò)中所含的神經(jīng)元個數(shù)越多,則它能記憶、識別的模式也就越多。4.2神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)與訓(xùn)練人腦中一個典型神經(jīng)元通過許多樹突的精細(xì)結(jié)構(gòu),收集來自其它神經(jīng)元的信息,神經(jīng)元又通過軸突的一條長而細(xì)的軸突發(fā)出電活性脈沖。軸突分裂上千條分支,在每條分支末端,通過突觸的結(jié)構(gòu)把來自軸突的電活性變?yōu)殡娮饔?,從而使與之相連的各種神經(jīng)元的活性受

42、到抑制或興奮。當(dāng)一個神經(jīng)元收到興奮輸入,而興奮輸入又比神經(jīng)元的抑制輸入足夠大時,神經(jīng)元把電活性脈沖向下傳到它的軸突,改變軸突的有效性,從而使一個神經(jīng)元對另一個神經(jīng)元的影響改變,便發(fā)生了學(xué)習(xí)行為。因此,可以認(rèn)為神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)的本質(zhì)特征在于神經(jīng)細(xì)胞特殊的突觸結(jié)構(gòu)所具有的可塑性連接,而如何調(diào)整連接權(quán)重就構(gòu)成了不同的學(xué)習(xí)算法。通過向環(huán)境學(xué)習(xí)獲取知識并改進(jìn)自身性能是NN的一個重要特點。在一般情況下,性能的改善是按某種預(yù)定的度量通過調(diào)節(jié)自身參數(shù)(如權(quán)值)隨時間逐步達(dá)到的。學(xué)習(xí)方式15(按照環(huán)境提供信息量的多少)有三種:1監(jiān)督學(xué)習(xí)(有教師學(xué)習(xí))為了使神經(jīng)網(wǎng)絡(luò)在實際應(yīng)用中解決各種問題,必須對它進(jìn)行訓(xùn)練,就是從應(yīng)

43、用環(huán)境中選出一些樣本數(shù)據(jù),通過不斷地調(diào)整權(quán)矩陣,直到得到合適的輸入輸出關(guān)系為止,這個過程就是對神經(jīng)網(wǎng)絡(luò)的訓(xùn)練過程,這種訓(xùn)練的過程需要有教師示教,提供訓(xùn)練數(shù)據(jù),又稱樣本數(shù)據(jù)。在訓(xùn)練過程中又需教師的監(jiān)督,故這種有教師的學(xué)習(xí)又稱為監(jiān)督式學(xué)習(xí)。有教師學(xué)習(xí)方法雖然簡單,但是要求教師對環(huán)境和網(wǎng)絡(luò)的結(jié)構(gòu)應(yīng)該比較熟悉,當(dāng)系統(tǒng)復(fù)雜,環(huán)境變化時,就變得困難。為了適應(yīng)環(huán)境變化就要重新調(diào)整加權(quán)值,這樣,當(dāng)學(xué)習(xí)到新知識的同時,也容易忘掉已學(xué)過的舊知識,這一些是有教師學(xué)習(xí)方法的缺點。2非監(jiān)督學(xué)習(xí)(無教師學(xué)習(xí))非監(jiān)督學(xué)習(xí)時不存在外部教師,學(xué)習(xí)系統(tǒng)完全按照環(huán)境提供數(shù)據(jù)的某些統(tǒng)計規(guī)律來調(diào)節(jié)自身參數(shù)或結(jié)構(gòu)(這是一種自組織過程),

44、以表示出外部輸入的某種固有特性(如聚類或某種統(tǒng)計上的分布特征)。無教師學(xué)習(xí)的訓(xùn)練數(shù)據(jù)集中,只有輸入而沒有目標(biāo)輸出,訓(xùn)練過程神經(jīng)網(wǎng)絡(luò)自動地將各輸入數(shù)據(jù)的特征提取出來,并將其分成15基于神經(jīng)網(wǎng)絡(luò)的手寫數(shù)字系統(tǒng)的設(shè)計與實現(xiàn)第四章神經(jīng)網(wǎng)絡(luò)在數(shù)字識別中的應(yīng)用若干類。經(jīng)過訓(xùn)練好的網(wǎng)絡(luò)能夠識別訓(xùn)練數(shù)據(jù)集以外的新的輸入類別,并相應(yīng)獲得不同的輸出。顯然,無教師的訓(xùn)練方式可使網(wǎng)絡(luò)具有自組織和自學(xué)習(xí)的功能。3再勵學(xué)習(xí)(強化學(xué)習(xí))這種學(xué)習(xí)介于上述兩種情況之間,外部環(huán)境對系統(tǒng)輸出結(jié)果只給出評價信息(獎或懲)而不是給出正確答案。學(xué)習(xí)系統(tǒng)通過強化那些受獎的動作來改善自身的性能。4.3BP神經(jīng)網(wǎng)絡(luò)4.3.1BP算法自1985

45、年Rumelhart提出BP算法16以來,神經(jīng)網(wǎng)絡(luò)的研究和應(yīng)用已經(jīng)迅速發(fā)展并滲透到各個學(xué)科,神經(jīng)網(wǎng)絡(luò)算法已不再是只供研究,而在實際的生產(chǎn)中開始了廣泛的應(yīng)用。如:數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)挖掘、產(chǎn)品的自動分撿系統(tǒng)的圖像識別等。對應(yīng)地在計算機輔助設(shè)計的軟件開發(fā)中,神經(jīng)網(wǎng)絡(luò)算法的設(shè)計也越來越多。神經(jīng)網(wǎng)絡(luò)以其快速的并行處理能力和其強有力的學(xué)習(xí)能力而獲得越來越廣泛的重視,其中應(yīng)用最多的是BP神經(jīng)網(wǎng)絡(luò)。BP學(xué)習(xí)算法,即反向傳播(backpropagation)學(xué)習(xí)算法是一種有導(dǎo)師的示例學(xué)習(xí)算法。這種學(xué)習(xí)算法在模式識別領(lǐng)域中,尤其在字符識別的研究中被廣泛使用。其原因是BP算法學(xué)習(xí)規(guī)則的堅韌性和學(xué)習(xí)能力很強,當(dāng)給定模式

46、與BP網(wǎng)絡(luò)學(xué)會的模式很相似時,BP網(wǎng)絡(luò)能很好的完成識別任務(wù)。BP算法是一種有監(jiān)督式的學(xué)習(xí)算法。其主要思想是:輸入學(xué)習(xí)樣本,使用反向傳播算法對網(wǎng)絡(luò)的權(quán)值和偏差進(jìn)行反復(fù)的調(diào)整訓(xùn)練,通過誤差的反向傳播,使輸出的向量與期望向量盡可能地接近,當(dāng)網(wǎng)絡(luò)輸出層的誤差平方和小于指定的誤差時訓(xùn)練完成,保存網(wǎng)絡(luò)的權(quán)值和偏差。BP算法由兩部分組成:信息的正向傳遞與誤差的反向傳播。在正向傳播過程中,輸入信息從輸入層經(jīng)過隱含層逐層計算傳向輸出層,每一層神經(jīng)元的狀態(tài)只影響下一層神經(jīng)元的狀態(tài)。如果在輸出層沒有得到期望的輸出,則計算輸出層的誤差變化值,然后轉(zhuǎn)向反向傳播,通過網(wǎng)絡(luò)將誤差信號沿著原來的連接通路反傳回來,通過修改各層

47、神經(jīng)元的權(quán)值使得誤差減小,直至達(dá)到期望目標(biāo)。4.3.2BP網(wǎng)絡(luò)的一般學(xué)習(xí)算法BP網(wǎng)絡(luò)是一種有監(jiān)督的前饋運行的神經(jīng)網(wǎng)絡(luò),它由輸入層i、隱含層h、輸出層k以及各層之間的節(jié)點的連接權(quán)所組成。它又分為正向和反向傳播兩種,以下對各層進(jìn)行詳細(xì)介紹。16基于神經(jīng)網(wǎng)絡(luò)的手寫數(shù)字系統(tǒng)的設(shè)計與實現(xiàn)第四章神經(jīng)網(wǎng)絡(luò)在數(shù)字識別中的應(yīng)用1、正向傳播過程輸入層輸入值一般為樣本各分量輸入值,輸出值一般等于輸入值。隱含層對于節(jié)點j,其輸入值netj為其前一層各節(jié)點輸出值i的加權(quán)和:netjWOi(4.1)iji輸出值Oif(neti)(4.2)s式中f()稱為激勵函數(shù)或者作用函數(shù)。一般采用sigmoid函數(shù):s1fs(net)

48、(4.3)j(net)/1ejj式中i稱為闕值,稱為溫度系數(shù)。隱含層可為一層或者多層,但是隨著隱含層的增多,網(wǎng)格的復(fù)雜程度也隨之增加,學(xué)習(xí)速度減慢,另外網(wǎng)絡(luò)的推導(dǎo)能力也有可能下降,即所謂的“overfitting現(xiàn)象”。網(wǎng)絡(luò)隱含層以及節(jié)點數(shù)目的選取是BP網(wǎng)絡(luò)學(xué)習(xí)算法有待解決的一個問題。輸出層輸出層的輸入net與輸出Ok與隱含層類似,分別為:knetkWO(4.4)kiiiOkf(nekt)(4.5)x2、反向傳播過程BP學(xué)習(xí)算法的誤差函數(shù)一般定義為實際輸出與期望輸出的均方誤差和。通過使誤差函數(shù)最小化的過程不斷的改變權(quán)重,完成從輸入到輸出的非線性映射。設(shè)網(wǎng)絡(luò)輸入模式樣本為xpx,期望輸出為tpk

49、,均方誤差函數(shù)Ep為:piE1p(tOpk2kpk)2(4.6)而對于所有的學(xué)習(xí)樣本,系統(tǒng)的均方誤差為:E1p(tOpkpk2Ppk2)(4.7)為了達(dá)到學(xué)習(xí)目的,要根據(jù)誤差函數(shù)來相應(yīng)地調(diào)整網(wǎng)絡(luò)間的連接權(quán)值。一般來說經(jīng)典的BP學(xué)習(xí)算法采用最快速梯度下降法調(diào)整權(quán)值,每次調(diào)整的增量為:EW(4.8)kjWkj式中01稱為學(xué)習(xí)率。從(4.8)式可推出下列連接權(quán)值的修正量公式WkjO(4.9)kj對于輸出節(jié)點:17基于神經(jīng)網(wǎng)絡(luò)的手寫數(shù)字系統(tǒng)的設(shè)計與實現(xiàn)第四章神經(jīng)網(wǎng)絡(luò)在數(shù)字識別中的應(yīng)用ktOOO(4.10)()(1)kkkk對于隱節(jié)點:jO(1O)W(4.11)jjkkjk4.3.3BP網(wǎng)絡(luò)的設(shè)計BP網(wǎng)

50、絡(luò)的設(shè)計主要包括輸入層,隱層,輸出層及各層之間的傳輸函數(shù)幾個方面。1、網(wǎng)絡(luò)層數(shù)大多數(shù)通用的神經(jīng)網(wǎng)絡(luò)都預(yù)先預(yù)定了網(wǎng)絡(luò)的層數(shù),而BP網(wǎng)絡(luò)可以包含不同的隱層。對多層BP神經(jīng)網(wǎng)絡(luò),隱層層數(shù)至少為1層或1層以上,每個隱層的神經(jīng)元個數(shù)至少為1個或1個以上,否則與多層網(wǎng)絡(luò)的命題矛盾而不成立。2、輸入層的節(jié)點數(shù)網(wǎng)絡(luò)的輸入個數(shù)應(yīng)等于應(yīng)用問題的輸入數(shù),MATLAB的BP網(wǎng)絡(luò)的建立是通過函數(shù)newff或newcf實現(xiàn)的.如圖4.1所示的程序設(shè)計截圖。圖4.1使用newff函數(shù)建立一個新的BP神經(jīng)網(wǎng)絡(luò)173、網(wǎng)絡(luò)數(shù)據(jù)的預(yù)處理預(yù)處理方法有歸一化處理、標(biāo)準(zhǔn)化處理和主成分分析。常采用的是歸一化處理,即將輸入、輸出數(shù)據(jù)映射到

51、-1,1X圍內(nèi),訓(xùn)練結(jié)束后再反映射到原數(shù)據(jù)X圍。4、輸出層的節(jié)點數(shù)輸出層節(jié)點數(shù)取決于兩個方面,輸出數(shù)據(jù)類型和表示該類型所需要的數(shù)據(jù)大小。5、隱層的節(jié)點數(shù)根據(jù)經(jīng)驗,可以參考以下公式進(jìn)行設(shè)計:nsqrp(nino)a或者nsqrt(nl)(4.12)(1)式中:n為隱層節(jié)點數(shù);為輸入節(jié)點數(shù);為輸出節(jié)點數(shù);a為110之間的常數(shù)。(2)改變n,用同一樣本集訓(xùn)練,從中確定網(wǎng)絡(luò)誤差最小時對應(yīng)的隱層節(jié)點數(shù)。6、傳輸函數(shù)18基于神經(jīng)網(wǎng)絡(luò)的手寫數(shù)字系統(tǒng)的設(shè)計與實現(xiàn)第四章神經(jīng)網(wǎng)絡(luò)在數(shù)字識別中的應(yīng)用BP網(wǎng)絡(luò)中傳輸函數(shù)常采用S(sigmoid)型函數(shù).在某些特定情況下,還可能采用純線性(Pureline)函數(shù)。187

52、、訓(xùn)練方法及其參數(shù)選擇net.trainParam.show=;%顯示訓(xùn)練結(jié)果的間隔步數(shù)net.trainParam.epochs;最大訓(xùn)練步數(shù)net.trainParam.goal;%訓(xùn)練目標(biāo)誤差net.trainParam.mu=;%學(xué)習(xí)系數(shù)的初始值,Marquardt調(diào)整參數(shù)net.trainParam.mu_dec=;%學(xué)習(xí)系數(shù)的下降因子net.trainParam.mu_inc=;%學(xué)習(xí)系數(shù)的上升因子net.trainParam.mu_max=;%學(xué)習(xí)系數(shù)的最大值net.trainParam.min_grad=;%訓(xùn)練中最小允許梯度值如圖4.2本例中所用參數(shù)。圖4.2本例所用參數(shù)通過

53、以上處理后,將得到的特征向量輸入到設(shè)計好的神經(jīng)網(wǎng)絡(luò)進(jìn)行測試,下面的圖4.3和4.4分別給出了網(wǎng)絡(luò)的某次訓(xùn)練過程及結(jié)果,由圖可以看出結(jié)果還是很令人滿意的。圖4.3BP網(wǎng)絡(luò)的訓(xùn)練過程19基于神經(jīng)網(wǎng)絡(luò)的手寫數(shù)字系統(tǒng)的設(shè)計與實現(xiàn)第四章神經(jīng)網(wǎng)絡(luò)在數(shù)字識別中的應(yīng)用圖4.4BP網(wǎng)絡(luò)的訓(xùn)練結(jié)果4.4BP學(xué)習(xí)算法的局限性與對策BP學(xué)習(xí)算法解決了多層前饋網(wǎng)絡(luò)的訓(xùn)練與非線性映射問題,在實際應(yīng)用中具有重大意義,在應(yīng)用BP學(xué)習(xí)算法的過程中,人們逐漸發(fā)現(xiàn)它存在的某些缺陷,存在局部極小值、學(xué)習(xí)速度慢、網(wǎng)絡(luò)隱節(jié)點和初始權(quán)值的選取只能憑經(jīng)驗、新加入的樣本要影響已經(jīng)學(xué)完的樣本,并且每個樣本的輸入樣本的特征數(shù)目也要求必須相同;學(xué)習(xí)

54、過程能否收斂,什么時候收斂已經(jīng)學(xué)習(xí)后所生成的權(quán)重空間的分布狀況等,這些至今還是一個未知數(shù)。BP學(xué)習(xí)算法存在的局限性BP學(xué)習(xí)算法存在的局限性總結(jié)如下:(1)歸納能力基于BP學(xué)習(xí)算法的神經(jīng)網(wǎng)絡(luò)具有較強的歸納能力。這里,歸納是指當(dāng)用一組同類型的樣本集訓(xùn)練時,BP網(wǎng)絡(luò)能將一些不相關(guān)的信息忽略掉,而學(xué)習(xí)樣本集中共同的特征,通過這樣的學(xué)習(xí),BP網(wǎng)絡(luò)很容易記住了這一類型的樣本。然而,BP學(xué)習(xí)算法對不同類型微小特征差異的樣本缺乏足夠的歸納能力。(2)外推能力和歸納能力相對,BP網(wǎng)絡(luò)的外推能力是指BP網(wǎng)絡(luò)對一類樣本訓(xùn)練完后,對其它非訓(xùn)練樣本測試其識別能力。實驗結(jié)果表明,外推能力與訓(xùn)練樣本的種類和數(shù)量有關(guān)。只有將

55、各種不同類型的充足的樣本訓(xùn)練后,才能對各種樣本的測試達(dá)到較好的20基于神經(jīng)網(wǎng)絡(luò)的手寫數(shù)字系統(tǒng)的設(shè)計與實現(xiàn)第四章神經(jīng)網(wǎng)絡(luò)在數(shù)字識別中的應(yīng)用推廣能力。(3)學(xué)習(xí)速度BP神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)過程是一種超大規(guī)模的反復(fù)的浮點數(shù)值運算過程,因此,無論從學(xué)習(xí)算法本身考慮,還是從使用的微機設(shè)備上考慮,學(xué)習(xí)速度一般是較慢的。(4)收斂性BP學(xué)習(xí)算法的收斂性至今沒能用完整的理論來證明它。網(wǎng)絡(luò)學(xué)習(xí)過程中極易陷入局部極小點。一旦網(wǎng)絡(luò)的權(quán)重陷入一個極小點,無論是全局極小點還是局部極小點,學(xué)習(xí)均告終止。如果在該點的狀態(tài)下所要求的問題解是正確的,那么,該點是局部的還是全局的極小點就顯得不那么重要了。但若所求問題的解是不正確的,那

56、么只有再次調(diào)整權(quán)值,直到找到另一個極小點對所求問題的解是正確時為止,即要逃離原來的局部極小點。(5)解釋能力神經(jīng)網(wǎng)絡(luò)對自身解決問題的方式不能形成一個規(guī)X的推導(dǎo)過程。它通過學(xué)習(xí)所形成的“自主認(rèn)識”對人來說是透明的。這對有導(dǎo)師訓(xùn)練的BP學(xué)習(xí)算法而言,大大阻礙了指導(dǎo)人與被指導(dǎo)對象的交流。4.5對BP算法的改進(jìn)經(jīng)典的BP算法采用梯度下降法。當(dāng)誤差曲面為窄長型時,該算法在谷的兩壁跳來跳去,影響了網(wǎng)絡(luò)的收斂速度。最普通的改進(jìn)方法為附加動量法,將公式(4.9)改為:n(n1)WkjOW(4.13)kjkj式中稱為動量因子。利用附加的動量項可以起到平滑梯度方向的劇烈變化。更進(jìn)一步可以在學(xué)習(xí)過程中動態(tài)地調(diào)整和的

57、值,使隨系統(tǒng)總誤差E不斷的變化,以避免出現(xiàn)W取值過小,尤其是在接近系統(tǒng)最小值的時候。實驗中發(fā)現(xiàn),越大,學(xué)習(xí)速度會越快,但過大時會引起振蕩效應(yīng);而取的過大可能導(dǎo)致發(fā)散,過小則收斂速度太慢;取0.20.5,取0.900.98時有較快的收斂速度。動態(tài)調(diào)整和值,收到良好效果。根據(jù)優(yōu)化理論還有很多種優(yōu)化方法。這些方法一般都可以應(yīng)用到改進(jìn)BP算法中。例如同倫方法、梯度法、共軛梯度法以及牛頓法。事實證明采用較好的優(yōu)化方法可以提高網(wǎng)絡(luò)的收斂速度、避免陷入局部極小。尋求一種適合BP算法使用的新的優(yōu)化算法也是一個很有價值的研究課題。利用附加的動量項可以起到平滑梯度方向的劇烈變化。更進(jìn)一步可以在學(xué)習(xí)過程中動態(tài)地調(diào)整

58、和的值,使隨系統(tǒng)總誤差E不斷的變化,以避免出現(xiàn)W取值過小,尤其是在接近系統(tǒng)最小值的時候。21基于神經(jīng)網(wǎng)絡(luò)的手寫數(shù)字系統(tǒng)的設(shè)計與實現(xiàn)第四章神經(jīng)網(wǎng)絡(luò)在數(shù)字識別中的應(yīng)用實驗中發(fā)現(xiàn),越大,學(xué)習(xí)速度會越快,但過大時會引起振蕩效應(yīng);而取的過大可能導(dǎo)致發(fā)散,過小則收斂速度太慢;取0.20.5,取0.900.98時有較快的收斂速度。動態(tài)調(diào)整和值,收到良好效果。根據(jù)優(yōu)化理論還有很多種優(yōu)化方法。這些方法一般都可以應(yīng)用到改進(jìn)BP算法中。例如同倫方法、梯度法、共軛梯度法以及牛頓法。事實證明采用較好的優(yōu)化方法可以提高網(wǎng)絡(luò)的收斂速度、避免陷入局部極小。尋求一種適合BP算法使用的新的優(yōu)化算法也是一個很有價值的研究課題。22

59、基于神經(jīng)網(wǎng)絡(luò)的手寫數(shù)字識別系統(tǒng)的設(shè)計與實現(xiàn)第五章系統(tǒng)的實現(xiàn)與結(jié)果分析第五章系統(tǒng)的實現(xiàn)與結(jié)果分析5.1軟件開發(fā)平臺5.1.1MATLAB簡介MATLAB是美國MathWorks公司出品的商業(yè)數(shù)學(xué)軟件,用于算法開發(fā)、數(shù)據(jù)可視化、數(shù)據(jù)分析以及數(shù)值計算的高級技術(shù)計算語言和交互式環(huán)境,主要包括MATLAB和Simulink兩大部分。MATLAB是矩陣實驗室(MatrixLaboratory)的簡稱,和Mathematical、Maple并稱為三大數(shù)學(xué)軟件。它在數(shù)學(xué)類科技應(yīng)用軟件中在數(shù)值計算方面首屈一指。MATLAB可以進(jìn)行矩陣運算、繪制函數(shù)和數(shù)據(jù)、實現(xiàn)算法、創(chuàng)建用戶界面、連接其他編程語言的程序等,主要應(yīng)

60、用于工程計算、控制設(shè)計、信號處理與通訊、圖像處理、信號檢測、金融建模設(shè)計與分析等領(lǐng)域。MATLAB的應(yīng)用X圍非常廣,包括信號和圖像處理、通訊、控制系統(tǒng)設(shè)計、測試和測量、財務(wù)建模和分析以及計算生物學(xué)等眾多應(yīng)用領(lǐng)域。附加的工具箱(單獨提供的專用MATLAB函數(shù)集)擴展了MATLAB環(huán)境,以解決這些應(yīng)用領(lǐng)域內(nèi)特定類型的問題。5.1.2MATLAB的特點(1)此高級語言可用于技術(shù)計算(2)此開發(fā)環(huán)境可對代碼、文件和數(shù)據(jù)進(jìn)行管理(3)交互式工具可以按迭代的方式探查、設(shè)計及求解問題(4)數(shù)學(xué)函數(shù)可用于線性代數(shù)、統(tǒng)計、傅立葉分析、篩選、優(yōu)化以及數(shù)值積分等二維和三維圖形函數(shù)可用于可視化數(shù)據(jù)(5)各種工具可用于

溫馨提示

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

評論

0/150

提交評論