基于BP神經(jīng)網(wǎng)絡的英文字母識別_第1頁
基于BP神經(jīng)網(wǎng)絡的英文字母識別_第2頁
基于BP神經(jīng)網(wǎng)絡的英文字母識別_第3頁
基于BP神經(jīng)網(wǎng)絡的英文字母識別_第4頁
基于BP神經(jīng)網(wǎng)絡的英文字母識別_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

基于BP神經(jīng)網(wǎng)絡的英文字母識別摘要:本報告主要介紹了利用BP神經(jīng)網(wǎng)絡進行英文字母的識別,并在模式識別的過程中考慮了噪聲干擾的存在,能夠使得網(wǎng)絡具有一定的容錯能力,用MATLAB模擬實現(xiàn)英文字母的識別結(jié)果。關鍵詞:BP神經(jīng)網(wǎng)絡,模式識別,噪聲干擾,MATLAB1、 模式識別與BP神經(jīng)網(wǎng)絡1.1模式識別與神經(jīng)網(wǎng)絡的特點1.1.1 模式識別的基本原理模式識別系統(tǒng)的結(jié)構(gòu)如圖1所示,下面對各部分進行簡要說明。圖1 模式識別系統(tǒng)的構(gòu)成(1)信息獲取:為了使計算機能夠?qū)Ω鞣N現(xiàn)象進行分類識別,要用計算機可以運算的符號來表示所研究的對象。通常輸入對象的信息有二維圖像、一維波形、物理參量和邏輯值三種類型。通過測量采樣和量化,可以用矩陣或向量表示二維圖像或一維波形。這就是數(shù)據(jù)獲取的過程。(2)預處理:去噪聲,提取有用信息,并對輸入測量儀器或其它因素所造成的退化現(xiàn)象進行復原(3)特征值提取與選擇:由圖像或波形所獲得的數(shù)據(jù)量是相當大的。例如,一個文字圖像可以有幾千個數(shù)據(jù),一個衛(wèi)星遙感圖像的數(shù)據(jù)量就更大。為了有效的實現(xiàn)分類識別,就要對原始數(shù)據(jù)進行變換,得到最能反映分類本質(zhì)的特征1。1.1.2 神經(jīng)網(wǎng)絡的特點(1) 它具有自組織和自學習能力,能夠直接輸入數(shù)據(jù)并進行學習。(2) 神經(jīng)網(wǎng)絡具有推廣能力。(3) 網(wǎng)絡是非線性的,即它可以找到系統(tǒng)輸入變量之間復雜的相互作用。1.2 BP神經(jīng)網(wǎng)絡1.2.1 BP網(wǎng)絡簡介20世紀80年代中期,學者Rumelhart、McClelland和他們的同事提出了多層前饋網(wǎng)絡MFNN(Mutltilayer Feedforward Neural Networks)的反向傳播學習算法,簡稱BP網(wǎng)絡(Back Propagation Network)學習算法2。BP 神經(jīng)網(wǎng)絡是一種神經(jīng)網(wǎng)絡學習算法。其由輸入層、中間層、輸出層組成的階層型神經(jīng)網(wǎng)絡,中間層可擴展為多層。相鄰層之間各神經(jīng)元進行全連接,而每層各神經(jīng)元之間無連接,網(wǎng)絡按有教師示教的方式進行學習,當一對學習模式提供給網(wǎng)絡后,各神經(jīng)元獲得網(wǎng)絡的輸入響應產(chǎn)生連接權(quán)值(Weight)。然后按減小希望輸出與實際輸出誤差的方向,從輸出層經(jīng)各中間層逐層修正各連接權(quán),回到輸入層。此過程反復交替進行,直至網(wǎng)絡的全局誤差趨向給定的極小值,即完成學習的過程。BP網(wǎng)絡主要作用于以下幾個方面:(1)函數(shù)逼近:用輸入矢量和相應的輸出矢量訓練一個網(wǎng)絡來逼近一個函數(shù);(2)模式識別:用一個特定的輸出矢量將它與輸入矢量聯(lián)系起來;(3)分類:把輸入矢量以所定義的合適的方式進行分類;(4)數(shù)據(jù)壓縮:減少輸出矢量的維數(shù)以便于數(shù)據(jù)傳輸或存儲。1.2.2 BP網(wǎng)絡模型BP網(wǎng)絡是一種單向傳播的多層前向網(wǎng)絡,每一層節(jié)點的輸出只影響下一層節(jié)點的輸出,其網(wǎng)絡結(jié)構(gòu)如圖2所示,其中X和Y分別為網(wǎng)絡輸入、輸出向量,每個節(jié)點表示一個神經(jīng)元。網(wǎng)絡是由輸入層、隱層和輸出層節(jié)點構(gòu)成,隱層節(jié)點可為一層或多層,同層節(jié)點沒有任何耦合,前層節(jié)點到后層節(jié)點通過權(quán)連接。輸入信號從輸入層節(jié)點依次傳過各隱層節(jié)點到達輸出層節(jié)點。圖2 BP神經(jīng)網(wǎng)絡模型1.2.3 BP網(wǎng)絡算法思想BP算法的基本思想是,學習過程由信號的正向傳播與誤差的反向傳播兩個過程組成。正向傳播時,輸入樣本從輸入層傳入。經(jīng)各層逐層處理后,傳向輸出層。若輸出層的實際輸出與期望的輸出(教師信號)不符,則轉(zhuǎn)入誤差的反向傳播階段。誤差反傳是將輸出誤差以某種形式通過隱層向輸入層逐層反傳、并將誤差分攤給各層的所有單元,從而獲得各層單元的誤差信號,此誤差信號即作為修正各單元權(quán)值的依據(jù)。這種信號正向傳播與誤差反向傳播的各層權(quán)值調(diào)整過程,是周而復始的進行的。權(quán)值不斷調(diào)整的過程,也就是網(wǎng)絡的學習訓練過程。此過程一直進行到網(wǎng)絡輸出的誤差減少到可接受的程度,或進行到預先設定的學習次數(shù)為止。2、 字母識別問題的描述模式識別應用的領域非常廣泛,其中字母識別是常研究的一個課題。而對英文字母的識別方法也很多,由于條件不同解決的方法也不同,這里討論利用BP神經(jīng)網(wǎng)絡對26個英文字母的識別。在對字母進行識別之前,首先必須將字母進行預處理3,即將待識別的26個字母中的每一個字母都通過的方格形式進行數(shù)字化處理,其有數(shù)據(jù)的位置設為1,其他位置設為0。如圖2給出了字母A、B和C的數(shù)字化過程,然后用一個135的向量表示。例如圖3中字母A的數(shù)字化處理結(jié)果所得對應的向量為:LetterA=01圖3 數(shù)字化字母由此可得每個字母由35個元素組成一個向量。由26個標準字母組成的輸入向量被定義為一個輸入向量矩陣alphabet,即神經(jīng)網(wǎng)絡的樣本輸入為一個3526的矩陣。其中alphabet=letterA,letterB,lettereC,letterZ。網(wǎng)絡樣本輸出需要一個對26個輸入字母進行區(qū)分輸出向量,對于任意一個輸入字母,網(wǎng)絡輸出在字母對應的順序位置上的值為1,其余為0,即網(wǎng)絡輸出矩陣為對角線上為1的2626的單位陣,定義為target=eye(26)。3、 網(wǎng)絡設計 進行神經(jīng)網(wǎng)絡設計的首要任務就是網(wǎng)絡結(jié)構(gòu)的確定,一般情況下,網(wǎng)絡結(jié)構(gòu)的設計包括:輸入輸出神經(jīng)元個數(shù)、隱含層個數(shù)、隱含層中神經(jīng)元數(shù)目以及每層傳遞函數(shù)來確定。 (1)輸入層神經(jīng)元個數(shù) 輸入層神經(jīng)元個數(shù)根據(jù)待識別字符所提取的網(wǎng)格像素特征的維數(shù)大小確定。在本文中,要識別的字母是5*7布爾量的網(wǎng)格,因此輸入向量的元素應該是35個。 不含噪聲的輸入向量的元素值應該是0或1,26個不同的0、1組合代表不含噪聲的英語字母AZ,如不含噪的字母A,其輸入向量值為0 0 1 0 0 0 1 0 1 0 0 1 0 1 0 1 0 0 0 1 1 1 1 1 1 1 0 0 0 1 1 0 0 0 1,可用矩陣形式來示例字母A的布爾量網(wǎng)格。 (2)輸出層神經(jīng)元個數(shù) 如果神經(jīng)網(wǎng)絡用作分類器,其類別數(shù)為m個,那么輸出一般也就取m個神經(jīng)元。本設計是對26個英文字母進行識別,故輸出層應該為26個神經(jīng)元。(3)隱含層個數(shù)神經(jīng)網(wǎng)絡的許多特性正是由于隱含層的存在才具備,然而,具體取多少隱含層合適卻沒有確定的規(guī)律可循,不同的應用對象,與其相適應的網(wǎng)絡結(jié)構(gòu)差別很大。理論上已經(jīng)證明:具有偏差和至少一個S型隱含層加上一個線性輸出層的網(wǎng)絡,能夠逼近任何有理函數(shù),也即含有一個隱含層的三層BP網(wǎng)絡即可完成非線性函數(shù)的逼近。由于BP網(wǎng)絡的功能實際上是通過網(wǎng)絡輸入到網(wǎng)絡輸出的計算來完成的,所以多于一個隱含層的BP網(wǎng)絡雖然具有更快的訓練速度,但在實際中需要較多的計算時間;另一方面,訓練速度也可以通過增加隱含層神經(jīng)元數(shù)來達到。因此,可采用具有一個隱含層的三層BP神經(jīng)網(wǎng)絡。 (4)隱含層中神經(jīng)元數(shù)目在實際設計中,確定隱含層神經(jīng)元個數(shù)的辦法是:對于給定的輸入輸出模式,通過反復調(diào)試和對不同神經(jīng)元數(shù)進行訓練對比得到合適的值。下面為隱含層神經(jīng)元個數(shù)選擇的經(jīng)驗公式: 式中,h_num為隱藏層神經(jīng)元個數(shù),i_num為輸入層神經(jīng)元個數(shù),o_num為輸出層神經(jīng)元個數(shù)。由此公式可得本系統(tǒng)的隱含層神經(jīng)元個數(shù)h_num應為31個。 (5)每層傳遞函數(shù)不同的神經(jīng)網(wǎng)絡其傳遞函數(shù)則不一樣,BP神經(jīng)網(wǎng)絡采用logsig函數(shù)作為傳遞函數(shù),該函數(shù)不僅具有光滑、可微、非線性和飽和等特性,而且其導函數(shù)也很容易用本身來表達,簡化了計算。其算法是: 4、 實驗設計與驗證 4.1實驗設計4.1.1 生成網(wǎng)絡使用函數(shù)newff創(chuàng)建一個兩層網(wǎng)絡,具體程序為:alphabet,targets=prprob;R,Q = size(alphabet);S2,Q = size(targets);P=alphabet;S1 = 10;%隱層節(jié)點數(shù)net = newff(minmax(alphabet),S1 S2,logsig logsig,traingdx);net.LW2,1 = net.LW2,1*0.01;net.b2 = net.b2*0.01;T=targets;4.1.2 網(wǎng)絡訓練為了使產(chǎn)生的網(wǎng)絡對輸入向量有一定的容錯能力,最好的辦法是使用理想的信號(無噪聲)和帶有噪聲的信號對網(wǎng)絡進行訓練。使用不同信號的訓練都是通過BP網(wǎng)絡來實現(xiàn)的。因此,可首先進行無噪聲網(wǎng)絡訓練,再進行有噪聲字母網(wǎng)絡訓練,最后再次進行無噪聲網(wǎng)絡訓練4,具體程序如下:%無噪聲字符網(wǎng)絡的訓練net.performFcn = sse; net.trainParam.goal = 0.1; net.trainParam.show = 20; net.trainParam.epochs = 5000; net.trainParam.mc = 0.95; P = alphabet;T = targets;net,tr = train(net,P,T);%具有噪聲字符網(wǎng)絡的訓練netn=net; net.trainParam.goal = 0.6; net.trainParam.epochs = 300; T=targets targets targets targets; for pass=1:10P=alphabet+randn(R,Q)*0.1,alphabet+randn(R,Q)*0.2,alphabet+randn(R,Q)*0.1,alphabet+randn(R,Q)*0.2;netn,tr = train(netn,P,T);end%再次無噪聲網(wǎng)絡訓練netn.trainParam.goal = 0.1; netn.trainParam.show = 5; net.trainParam.epochs = 500; P = alphabet;T = targets;netn,tr = train(netn,P,T);4.1.3 系統(tǒng)性能測試為了測試系統(tǒng)的可靠性,本文用了加入不同級別的噪聲的字母樣本作為輸入,來觀察用理想樣本和加噪樣本訓練出來的網(wǎng)絡的性能,并繪制出誤識率曲線,如圖4所示。圖4 誤差識別曲線圖4中虛線代表用無噪聲訓練網(wǎng)絡的出錯率,實線代表有噪聲訓練網(wǎng)絡的出錯率。從圖4可以看出,在均值為00.1之間的噪聲環(huán)境下,兩個網(wǎng)絡都能夠準確地進行識別。當所加的噪聲均值超過0.1時,待識別字符在噪聲作用下不再接近于理想字符,無噪聲訓練網(wǎng)絡的出錯率急劇上升,此時有噪聲訓練網(wǎng)絡的性能較優(yōu)。系統(tǒng)性能測試程序詳見程序清單。4.2 實驗驗證對上面設計的系統(tǒng)進行實驗仿真驗證,如對字母A、B、W進行識別,識別結(jié)果如圖5所示,左側(cè)為含噪聲字母右側(cè)為成功識別的字母,程序詳見程序清單。圖5 字母A、B、W識別結(jié)果為更好地識別26個英文字母,測試時用加入比例為20%的噪聲的26個字母AZ作為輸入,并繪制出含有噪聲與成功識別的字母,程序詳見如下:noise_percent=0.2;for k=1:26 noisyChar=alphabet(:,k)+randn(35,1)*noise_percent; subplot(6,9,k+floor(k/9.5)*9); plotchar(noisyChar); de_noisyChar=sim(net,noisyChar); de_noisyChar=compet(de_noisyChar); answer=find(de_noisyChar=1); subplot(6,9,k+floor(k/9.5)*9+9); plotchar(alphabet(:,answer);endset(gcf,Position,10,60,900,700, color,w)程序運行結(jié)果如圖6所示,奇數(shù)行是比例為20%噪聲下的字母,偶數(shù)行為成功識別的字母。圖6 英文字母識別結(jié)果圖五、結(jié)論利用BP網(wǎng)絡對有噪聲的字母進行識別和仿真,結(jié)果表明BP神經(jīng)網(wǎng)絡既能完成特征提取又能完成分類功能,經(jīng)過足夠多的原始樣本訓練后的BP神經(jīng)網(wǎng)絡,其容錯性和識別性比較好。此網(wǎng)絡具有聯(lián)想記憶和抗干擾功能,對字母具有一定的辨識能力,是一種對字母識別的有效方法。參考文獻:1 邊肇祺,張學工等. 模式識別M. 北京: 清華大學出版, 2000.2 侯媛彬, 杜京義, 汪梅. 神經(jīng)網(wǎng)絡M.西安:西安電子科技大學出版社,2007.3 叢爽, 陸婷婷. 用于英文字母識別的三種人工神經(jīng)網(wǎng)絡的設計J. 儀器儀 表學報, 2006,27(6):2242-2244.4 謝麗娟,丁正生,陳俏.基于BP 網(wǎng)絡的字母識別J.信息化縱橫,2009,18:68-74. 程序清單:%生成26個字母布爾值的樣本數(shù)據(jù),使用neewff()構(gòu)建兩層神經(jīng)網(wǎng)絡。網(wǎng)絡取35-10-26的結(jié)構(gòu)。%(1)構(gòu)造網(wǎng)絡%*alphabet,targets=prprob;R,Q = size(alphabet);S2,Q = size(targets);P=alphabet;S1 = 10;%隱層節(jié)點數(shù)net = newff(minmax(alphabet),S1 S2,logsig logsig,traingdx);net.LW2,1 = net.LW2,1*0.01;net.b2 = net.b2*0.01;T=targets;%*%(2)神經(jīng)網(wǎng)絡的網(wǎng)絡訓練%*%無噪聲字符網(wǎng)絡的訓練net.performFcn = sse; net.trainParam.goal = 0.1; net.trainParam.show = 20; net.trainParam.epochs = 5000; net.trainParam.mc = 0.95; P = alphabet;T = targets;net,tr = train(net,P,T);%具有噪聲字符網(wǎng)絡的訓練netn=net; net.trainParam.goal = 0.6; net.trainParam.epochs = 300; T=targets targets targets targets; for pass=1:10P=alphabet+randn(R,Q)*0.1,alphabet+randn(R,Q)*0.2,alphabet+randn(R,Q)*0.1,alphabet+randn(R,Q)*0.2;netn,tr = train(netn,P,T);end%再次無噪聲網(wǎng)絡訓練netn.trainParam.goal = 0.1; netn.trainParam.show = 5; net.trainParam.epochs = 500; P = alphabet;T = targets;netn,tr = train(netn,P,T);%*%(3)系統(tǒng)性能測試%*noise_range=0:.05:.5;max_test=100;network1=;network2=;T=targets;for noiselevel=noise_range %fprint(Testing networks with noise level of %.2fn,noiselevel); errors1=0; errors2=0; for i=1:max_test; P=alphabet+randn(35,26)*noiselevel; A=sim(net,P); AA=compet(A); errors1=errors1+sum(sum(abs(AA-T)/2; An=sim(netn,P); AAn=compet(An); errors2=errors2+sum(sum(abs(AAn-T)/2; end network1=network1 errors1/26/100; network2=network2 errors2/26/100;endecho onclfplot(noise_range,network1*100,-,noise_range,network2*100);title(識別誤差);xlabel(噪聲指標);ylabel(無噪聲訓練網(wǎng)絡-有噪聲訓練網(wǎng)絡-);%*%(4)系統(tǒng)仿真%*noisyJ = alphabet(:,1)+randn(35,1)*0.2;%對字母A加噪聲figureplotchar(noisyJ);%繪圖A2=sim

溫馨提示

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

評論

0/150

提交評論