• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 電源與新能源 > 設計應用 > 基于BP網絡的字母識別

    基于BP網絡的字母識別

    作者: 時間:2010-12-25 來源:網絡 收藏

    摘 要: 介紹了用神經方法對英文進行,并在過程中考慮了噪聲干擾及非線性因素的存在,使具有一定的容錯能力,并用MATLAB完成了對的模擬。
      關鍵詞: 神經;模式識別,MATLAB

    本文引用地址:http://www.czjhyjcfj.com/article/180043.htm

      智能控制作為一門新興的交叉學科,在許多方面都優(yōu)于傳統(tǒng)控制,而智能控制中的人工神經網絡由于模仿人類的神經網絡,具有感知識別、學習、聯(lián)想、記憶、推理等智能,更是有著廣闊的發(fā)展前景。其中最核心的是反向傳播網絡(Back Propagation Network),簡稱網絡[1]。本文介紹了運用matlab工具箱確定隱層神經元的個數(shù)和構造BP神經網絡,并用兩類不同的數(shù)據對該神經網絡進行訓練,然后運用訓練后的網絡對字符進行識別。
    1 BP網絡
    1.1 BP網絡的簡介
      20世紀80年代中期,學者Rumelhart、McClelland和他們的同事提出了多層前饋網絡MFNN(Mutltilayer Feedforward Neural Networks)的反向傳播學習算法,簡稱BP網絡(Back Propagation Network)學習算法。BP網絡是對非線性可微分函數(shù)進行權值訓練的多層前向網絡。在人工神經網絡的實際應用中,80%~90%的模型都采用BP網絡或其變化形式。
    BP網絡主要作用于以下幾個方面:
      (1)函數(shù)逼近:用輸入矢量和相應的輸出矢量訓練一個網絡來逼近一個函數(shù);
      (2)模式識別:用一個特定的輸出矢量將它與輸入矢量聯(lián)系起來;
      (3)分類:把輸入矢量以所定義的合適的方式進行分類;
      (4)數(shù)據壓縮:減少輸出矢量的維數(shù)以便于數(shù)據傳輸或存儲。
    1.2 BP網絡模型
      BP網絡是一種單向傳播的多層前向網絡[2],每一層節(jié)點的輸出只影響下一層節(jié)點的輸出,其網絡結構如圖1所示,其中X和U分別為網絡輸入、輸出向量,每個節(jié)點表示一個神經元。網絡是由輸入層、隱層和輸出層節(jié)點構成,隱層節(jié)點可為一層或多層,同層節(jié)點沒有任何耦合,前層節(jié)點到后層節(jié)點通過權連接。輸入信號從輸入層節(jié)點依次傳過各隱層節(jié)點到達輸出層節(jié)點。


    2字符識別問題的描述及網絡識別前的預處理
      字符識別是模式識別領域的一項傳統(tǒng)課題,這是因為字符識別不是一個孤立的問題,而是模式識別領域中大多數(shù)課題都會遇到的基本問題,并且在不同的課題中,由于具體的條件不同,解決的方法也不盡相同,因而字符識別的研究仍具有理論和實踐意義。這里討論的是用BP神經網絡對26個英文的識別。
      在對字母進行識別之前,首先必須將字母進行預處理[3],即將待識別的26個字母中的每一個字母都通過的方格形式進行數(shù)字化處理,其有數(shù)據的位置設為1,其他位置設為0。如圖2給出了字母A、B和C的數(shù)字化過程,然后用一個1×35的向量表示。例如圖2中字母A的數(shù)字化處理結果所得對應的向量為:
      LetterA=[00100010100101010001111111000110001]


      由此可得每個字母由35個元素組成一個向量。由26個標準字母組成的輸入向量被定義為一個輸入向量矩陣alphabet,即神經網絡的樣本輸入為一個35×26的矩陣。其中alphabet=[letterA,letterB,lettereC,……letterZ]。網絡樣本輸出需要一個對26個輸入字母進行區(qū)分輸出向量,對于任意一個輸入字母,網絡輸出在字母對應的順序位置上的值為1,其余為0,即網絡輸出矩陣為對角線上為1的26×26的單位陣,定義為target=eye(26)。
      本文共有兩類這樣的數(shù)據作為輸入:一類是理想的標準輸入信號;另一類是在標準輸入信號中加上用MATLAB工具箱里的噪聲信號,即randn函數(shù)。
    3 網絡設計及其試驗分析
      為了對字母進行識別,所設計的網絡具有35個輸入節(jié)點和26個輸出節(jié)點,對于隱含層節(jié)點的個數(shù)的選取在后面有詳細的介紹。目標誤差為0.000 1,從輸入層到隱層的激活函數(shù)采用了S型正切函數(shù)tansig,從隱層到輸出層的激活函數(shù)采用了S型對數(shù)函數(shù)logsig,這是因為函數(shù)的輸出位于區(qū)間[0,1]中,正好滿足網絡輸出的要求。
    3.1 隱層節(jié)點個數(shù)的確定
      根據BP網絡的設計目標,一般的預測問題都可以通過單隱層的BP網絡實現(xiàn)。難點是隱層節(jié)點個數(shù)的選擇,隱層節(jié)點數(shù)對網絡的學習和計算特性具有非常重要的影響,是該網絡結構成敗的關鍵。若隱層節(jié)點數(shù)過少,則網絡難以處理復雜的問題;但若隱層節(jié)點數(shù)過多,則將使網絡學習時間急劇增加,而且還可能導致網絡學習過度,抗干擾能力下降。
      目前為止,還沒有完善的理論來指導隱層節(jié)點數(shù)的選擇,僅能根據Kolmogorov定理,和單隱層的設計經驗公式[4],并考慮本例的實際情況,確定隱層節(jié)點個數(shù)應該介于8~17之間。
      本文設計了一個隱層節(jié)點數(shù)目可變的BP網絡,通過誤差對比,確定最佳的隱層節(jié)點個數(shù),具體程序如下:
      [alphabet,targets]=prprob;
      p=alphabet;
      t=targets;
      s=8:17;
      res=zeros(1,10);
      res2=zeros(1,10);
      for i=1:10
      fprintf('s(i)=%.0fn',s(i));
      net=newff(minmax(p),[s(i),26],{'tansig','logsig'},'traingdx');
      net.trainParam.epochs=1000;
      net.trainParam.goal=0.0001;
      [net,tr]=train(net,p,t);
      y=sim(net,p);
      error=(y(1,:)-t(1,:)).^2;
      error2=(y(2,:)-t(2,:)).^2;
      res(i)=norm(error);
      res2(i)=norm(error2);
      pause
      i=i+1;
      end
      通過網絡的輸出顯示以及網絡訓練速度和精度因素,選取隱層節(jié)點的最佳個數(shù)為14。
    3.2 生成網絡
      使用函數(shù)newff創(chuàng)建一個兩層網絡,具體函數(shù)為:
      [alphabet,targets]=prprob;
      [R1,Q1]=size(alphabet)
      [R2,Q2]=size(targets)
      S1=14;
      S2=R2;
      net=newff(minmax(p),[S1 S2],{'tansig','logsig'},'trainlm')
      net.LW{2,1}=net.LW{2,1}*0.01;
      net.b{2}=net.b{2}*0.01;

    矢量控制相關文章:矢量控制原理

    上一頁 1 2 3 4 下一頁

    關鍵詞: 識別 字母 網絡 BP 基于

    評論


    相關推薦

    技術專區(qū)

    關閉
    主站蜘蛛池模板: 马鞍山市| 安仁县| 海南省| 华宁县| 高碑店市| 耿马| 斗六市| 左云县| 定兴县| 钟祥市| 恩施市| 兴文县| 淳化县| 璧山县| 凤台县| 吉木萨尔县| 巴塘县| 五指山市| 巴彦淖尔市| 兴和县| 微山县| 凯里市| 金坛市| 平定县| 达尔| 应城市| 丹棱县| 桂平市| 施甸县| 汉源县| 莆田市| 马公市| 临沭县| 襄垣县| 聊城市| 蓬安县| 女性| 镇巴县| 普定县| 中牟县| 嵊泗县|