摘 要:本文通過分析BP(Back Propogation)神經網絡的結構、原理及其算法,對已經經過預處理的圖像進行分析和識別,使分類器能夠對0~9之間的數字在最短的時間進行準確分類,從而達到識別出圖片中的數字。系統既可以單獨使用,也可以作為一個識別系統的軟件核心應用到大規模數據統計、財務、稅金、金融和車牌識別等系統中。
關鍵詞:BP神經網絡數字識別BP算法分類
中圖分類號:TP391.4文獻標識碼:A文章編號:1674-098X(2011)09(c)-0109-01
引言
人工神經網絡,即從生物學神經系統的信號傳遞而抽象發展而成的一門科學。它是一個高度并行、非線性、具有很高冗余度的系統,其結構特點使知識的表達與存儲,都與傳統的方法有很大的不同。
本文采用BP神經網絡進行數字識別。利用神經網絡極強的非線性的數據處理能力、良好的容錯能力和自學習能力等,通過大量的樣本進行的網絡訓練,最終得到以識別的數字輸出。
1 BP(Back Propagation)神經網絡
人工神經網絡是從生物學神經系統的信號傳遞而抽象發展而成的一門科學。在神經網絡中,最基本的單元就是神經元。神經元由三部分組成:樹突、細胞體和軸突。樹突是樹狀的神經纖維接受網絡,它將電信號傳遞給細胞體。軸突是單根長纖維,它把細胞體的輸出信號導向其他的神經元。神經元的排列拓撲結構和突觸的連接強度確立了神經網絡的功能。形象的說,神經網絡是由大量處理單元廣泛連接而成的網絡,是對人腦的抽象、簡化和模擬、反映人腦的基本特征。它能夠通過學習過程從外部環境中獲取知識,并且它內部的神經元可以存儲這些已經學到的知識。
BP網絡是前向網絡的一種,是典型的多層前饋網絡,在多層網絡中,一般有三個層次:一個輸入層、一個輸出層、一個或多個隱層。神經元網絡模型用于模擬人腦神經元活動的過程,包括對信息的加工、處理、存儲和搜索的等的過程。同一層神經元之間不互連,不同層神經元之間則全互連。其中,第一層(輸入層)的大小由與處理后的輸入數據的維數絕定,第二層(隱層)是神經元個數由輸入數據的維數和經驗來決定,第三層(輸出層)的神經元個數由待識別的類型決定。在這種結構中輸入層起到數據傳輸和緩沖的作用,隱層和輸出層起到計算和映射的作用。
2 BP網絡的數學模型及設計
BP算法全稱為誤差反向算法,是一種監督式的學習算法。工作信號正向傳播和誤差信號反向傳播是其算法的核心內容,學習過程可以描述如下:
工作信號正向傳播:輸入信號從輸入層經過隱含層,傳向輸出層,在輸出端產生輸出信號。這是工作信號的正向傳播。誤差信號反向傳播:網絡的實際輸出和期望輸出的差值就是誤差信號。誤差信號的反響傳播就是誤差信號從輸出端傳向輸入端。
神經網絡的激勵函數是將輸出信號壓縮在一個允許的范圍內,使其成為有限值。本文采用Sigmoid函數,也稱為S型函數,它是人工神經網絡中用的最多的激勵函數。
其算法描述如下:
(1)初始化網絡及學習參數,如設置變量和參數等。
(2)初始化,給每個權值矩陣一個隨機非零相量。
(3)輸入隨機樣本。
(4)對輸入樣本,前向計算BP網絡每層神經元的輸入信號和輸出信號。
(5)計算出實際輸出和期望輸出的差值,看是否滿足要求,若滿足進入(8);不滿足進入下一步。
(6)判斷是否已經達到最大迭代次數,如果已經達到,進入(8),否則反向計算每層神經元的局部梯度。
(7)根據局部梯度修正各個矩陣的權值。
(8)判斷是否學習完所有的樣本,是則結束,否則進入(3)。
3 BP網絡設計
神經網絡的輸入層起到數據緩沖存儲的作用,對于BP神經網絡隱含層及其隱含層的節點數并沒有什么硬性的要求。一般來說,層數越多神經網絡學習速度就越慢,而隱含層節點數越多,BP網絡就越精確。通過實驗來確定最優的層數和節點數。
輸出層神經元節點數的確定,取決于期望輸出如何進行編碼。本文采用8421碼來對0~9這10個數字進行編碼。下面為常用的8421碼舉例:
0的編碼:0000 0000 0000 0011 0010
1的編碼:0001 0001 0001 0100 0110
2的編碼:0010 0010 0010 0101 0111
3的編碼:0011 0011 0011 0110 0101
4的編碼:0100 0100 0100 0111 0100
5的編碼:0101 1000 1011 1000 1100
6的編碼:0110 1001 1100 1001 1101
7的編碼:0111 1010 1101 1010 1111
8的編碼:1000 1011 1110 1011 1110
9的編碼:1001 1100 1111 1100 1010
利用大量的經過處理的樣本進行網絡訓練,以得到以文件形式保存的權值。在本程序中,采用了含有40個字符數據的圖像作為訓練樣本。這幅圖像包含了Arial字體書寫的普通0到9的10個數字、斜體的10個數字、粗體的10個數字和10個傾斜的數字,總共40個樣本。經過1445次訓練便達到了訓練要求。
訓練完BP網絡后,對為方便數據進行識別。首先要經過圖像預處理、特征提取,最后送入BP網絡識別,直接得到結果。對10張原始圖片100個對象進行了測試,當圖片效果好的情況下,其識別結果為100%,當圖片效果稍差的情況下,其識別結果也能達到98%,完成了識別系統的基本要求。
4 結語
數字的智能化識別是一個應用范圍很廣泛的領域。本文在對BP神經網絡的基本原理與算法分析的基礎上,研究了BP神經網絡用于數字識別的可行性,結果表明,基于BP神經網路的數字識別方法能實現對阿拉伯數字的準確、快速識別,并具有較強的抗干擾能力。如果在訓練樣本時,選擇更具有代表性的樣本,估計識別的準確率將會顯著提高。但是,許多問題對BP網絡有著非常大的影響,有的甚至是非常嚴重的,如收斂速度問題,網絡癱瘓問題等,這些都是有待遇進一步解決的問題。
參考文獻
[1]章毓晉.圖像處理和分析基礎[M].北京:高等教育出版社,2002.
[2]胡方明,簡琴,張秀君.基于BP神經網絡的車型分類器[J].西安電子科技大學學報,2005,32(3):439~442.
[3]吳云,姬翠翠,郭嗣琮,等.BP神經網絡在遙感圖像分類中的應用[D].保存地點:遼寧工程技術大學,2008.
[4]陸曉峰,朱雙東.基于BP網絡分類器的交通標志識別[J].寧波大學學報,2007,20(3):281~284.
[5]王子才,施云惠,崔明根.一種具有動態最優學習率的BP算法[J].系統仿真學報,2001,13(6):775~776.