成曉鵬,侯道琪
(解放軍電子工程學院,合肥 230037)
基于前饋神經網絡的模式識別效率分析
成曉鵬,侯道琪
(解放軍電子工程學院,合肥230037)
人工神經網絡(Artificial Neural Networks,ANN)融會了生物物理學和數學,是一種新興的問題求解辦法,被廣泛應用于機器學習、專家系統、智能控制、模式識別以及計算機視覺等多領域[1]。前饋神經網絡算法(Feed-forward Neural Networks)是一種基礎的人工神經網絡算法,被廣泛應用于求解模式識別問題中;但是其網絡訓練過程一直是一個值得研究和探索的重點。本文基于一個字符識別系統的設計開發流程,重點探討了應用前饋神經網絡算法求解模式識別問題的方法,并進行了影響網絡訓練效率的相關要素分析,最后通過實例仿真,更為直觀地展現了各相關因素對網絡訓練效率的影響。

現代計算機雖然有很強的計算和信息處理能力,但是它解決模式識別、感知、評判和決策等復雜問題的能力卻遠不如人,缺乏向環境學習、適應環境的能力。人腦則具有大量的神經元,在情況分析判斷、學習和決策等方面的性能要比計算機高的多。為了模仿人腦的工作方式,構造一種更接近人類智能的信息處理系統以提高計算機求解智能問題的能力,人們設計實現了人工神經網絡。簡言之,人工神經網絡就是一種具有大量連接的并行分布處理器,它具有通過學習獲取知識并解決問題的能力,且知識是分布存儲在連接權(對應于生物神經元的突觸)中,而不是像常規計算機那樣按地址存在特定的存儲單元中[2]。

人工神經元模型的設計是計算機仿生學的一個重大成就,目前已經非常成熟。本文由于篇幅限制,只對其進行簡要的介紹。圖1所示為神經元模型的基本結構,它主要有三個基本要素:
(1)一組連接權(對應于生物神經元的突觸),連接強度由各連接上的權值表示,權值為正表示激勵,權值為負表示抑制。
(2)一個求和單元,用于求取各輸入信息的加權和(線性組合);此外為了對各輸入信息進行調節,還需要設置一個閾值θk。
(3)一個非線性激勵函數,起到非線性映射作用并限制神經元輸出幅度在一定的范圍之內 (一般限制在[0,1]或[-1]之間)。

圖1 人工神經元模型
以上作用可以用數學表達為:

其中激勵函數φ(·)的形式常取閾值函數、分段線性函數和Sigmoid函數三種。但是因為Sigmoid函數具有平滑和漸進性,并且保持單調性,所以最為常用。其函數形式如式(2)所示:

式中,參數α可以控制其斜率。Sigmoid函數的圖形如圖2所示。

圖2 Sigmoid函數曲線圖

前饋型網絡是ANN的一種典型拓撲結構。在前饋型網絡中,各神經元接受前一層的輸入,并輸出給下一層,沒有反饋。結點分為兩類,即輸入單元和計算單元。每一計算單元可以有任意多個輸入,但只有一個輸出(它可以耦合到任意多個其他結點作為其輸入)。前饋網絡可分為不同的層,第i層的輸入只與第i-1層輸出相連,輸入和輸出結點與外界相連,而其他中間層稱為隱層。圖3所示為具有一個隱層的前饋型神經網絡的網絡結構。

圖3 含一個隱層的前饋型神經網絡結構

前饋神經網絡的工作過程主要分為兩個階段。一個階段是學習期,此時各計算單元狀態不變,各連線上的權值通過學習來修改。第二階段是工作期,此時連接權固定,計算單元狀態的變化,以達到某種穩定的狀態。這一部分將在后面的章節結合具體問題進行詳述。

前饋型網絡的作用效果主要是函數映射,可以有效運用于模式識別和函數逼近,所以在解決字符識別、語音識別等模式匹配問題時具有獨到的優勢。為了探究前饋神經網絡在字符識別技術中的運用,本文構建了一個簡易的字符識別系統。該系統能夠通過人工神經網絡,對給定的字符樣本進行學習記憶,最終實現對用戶給定的未知形狀的字符的識別。

在第二節中已經論述了典型的前饋神經網絡由輸入層、隱層和輸出層組成。在解決實際問題時,所謂網絡結構的設計主要就是確定輸入層、輸出層的神經元的個數,以及隱層的層數和每個隱層的神經元的個數。這些數值的確定需要算法運用人員結合具體問題具體分析;但由于具有偏差和至少一個S型隱層加上一個線性輸出層的網絡,能夠逼近任何有理函數;所以神經網絡的結構不完全受所要解決的問題的限制。網絡的輸入神經元數目及輸出層神經元的數目是由問題的要求所決定的,而輸入和輸出層之間的隱層數以及每層的神經元數是由設計者來決定的。

通過向環境學習獲取知識并改進自身性能是ANN的一個重要特點。性能的改善是按某種預定的度量通過調節自身參數 (如權值)隨時間推移逐步達到的。在前饋神經網絡的學習方式中,最常用的學習方式就是監督學習(有教師學習)。這種學習方式需要外界存在一個“教師”,它可對給定一組輸入提供應有的輸出結果(正確答案),根據已知輸出與實際輸出之間的差值(誤差信號)來調節系統參數,其流程圖如圖4所示。

圖4 監督學習方式的學習流程圖

如果學習系統所處的環境平穩時,那么學習系統的參數在完成學習記憶之后就會形成一個穩定的狀態。字符學習系統的樣本是已經廣泛應用的成型字符,是基本不會發生變化的。所以本文在設計ANN的學習規則時重點采用了誤差糾正學習。這種學習規則的數學表示如下:
令yk(n)是輸入為xk(n)時神經元k在n時刻的實際輸出,dk(n)表示應有的輸出(可有訓練樣本決定),則誤差信號可寫為ek(n)=dk(n)-yk(n)。為了達到網絡中的每一單元的實際輸出在某種統計意義上逼近應有輸出,可以選取誤差平方和的均值:

作為目標函數進行網絡學習訓練的目標函數,當J值在訓練過程中達到給定閾值φ以下時,就可以認為網絡的學習訓練過程可以結束了。但是在實際過程中很難直接得到誤差平方和的均值,所以常用J在時刻n的瞬時值ξ(n)代替J,即,此時問題變為求ξ(n)對權值ω的極小值,根據梯度下降法,可以得到Δωkj=ηek(n)xj(n),η為預先設定的學習步長。

該字符識別系統的給定樣本如圖5所示。該樣本共有十個字符,每個字符是一個8×8的點陣,教師向量是長度為10的行向量,所以在設計網絡結構時,把輸入層的神經元的個數設計為64個,把輸出層的神經元的個數設計為10個。同時由于問題本身相對簡單,維度較小,所以設計網絡的隱層的層數為1層,隱層所含的神經元的個數對網絡訓練的影響效果將在下文進行詳細論述。

圖5 字符樣本集

網絡中的權值體現了把輸入模式映射到網絡所需的知識;尋找有用權值的過程稱為網絡訓練。前饋神經網絡的訓練方法主要是反向傳播 (Back Propagation,BP)算法。本小節主要就是結合簡易字符識別系統的設計過程來論述BP算法在前饋神經網絡訓練中的運用。結合前面所述,神經網絡應用于模式識別的基本原理就是將代表識別模式的輸入矢量輸入至輸入層,并傳至后面的隱層,最后通過連接權輸出到輸出層。該網絡中的每個神經元的輸出的數學描述如下:

式(4)中outi是所考慮層中第i個神經元的輸出;outj是前一層第j個神經元的輸出,ωij是各神經網絡結點間的權值,φ是激勵函數,常取Sigmoid函數。

在進行網絡訓練之前,首先必須度量網絡收斂到用戶的期望值的程度。如前所述,可以采用網絡誤差的均方差作為度量函數。由此,可以定義均方差如下:

式(5)中,Ep是第p個表征矢量的誤差,tpj是第個神經元的期望值,Opj是第j個輸出神經元的實際值。因為最終形式是整體求和,所以上式可以反映單個輸出神經元對整體誤差的影響。根據梯隊下降訓練算法,我們可以調整權值來使得網絡整體誤差最小,這就涉及到了網絡訓練的最為核心本質的內容:權值究竟應該如何調整。
根據梯度的定義,權值的誤差函數負梯度指向誤差函數減小最快的方向。如果在權值空間沿這個矢量移動,最終將達到最小值,且最小值處梯度為零。該過程用數學方法可以描述為:

式(6)中,Δpωji表示連接第l-1層的源神經元i和l層的目的神經元j之間的權值的變化。因為權值的這個變化規律,將導致梯度沿著降低誤差的方向的變化,最終達到誤差的最小值。
確定了權值的變化規律之后,就必須要確定如何調整每個權值使得網絡收斂。為了便于計算機計算,需要對式(5)進行變形:
根據微分的數學原理:

netpj代表對l-1層的所有神經元的輸出Opl求和,由此

繼續變形:

由此:


但是在計算權值變化量時,必須考慮目的神經元是位于輸出層還是隱層之內。經過數學計算,可以得到如下結論:

但是真正的梯度下降法在實際使用過程中以無窮小的步長進行,這顯然在實際中做不到。由此,我們必須對該算法進行改進,在權值調整過程中加入學習步長η和動量因子α,這樣權值調整公式就變為了:
學習步長η相當于步長的增益,動量因子α通過考慮過去權值的變化可以濾掉高頻變量,最終使網絡達到快速收斂的目的。
綜合前面的算法分析,在前饋神經網絡的學習訓練過程中,網絡訓練效率的相關影響因素主要有:隱層神經元的個數H(取隱層的層數為一層)、學習步長η、動量因子α和用戶對于網絡訓練效果的期望值?。圖6是進行實例仿真的相關效果圖。同時根據仿真效果圖,還可以進行相關因素對網絡訓練效率的影響效應分析,得出實際結論,為前饋神經網絡訓練的相關效應因子的選取提供現實指導。

圖6 相關因素對網絡訓練效率的影響效應仿真圖
通過對以上仿真效果圖進行分析,我們可以得出如下結論:
①隱層神經元的數目H對網絡訓練效率的影響是十分顯著的,所以利用前饋神經網絡求解問題時,合理設計網絡結構十分必要。如果設計的隱層神經元數目較少,很有可能出現在較短的網絡訓練周期內無法達到滿意的訓練效果,甚至會使網絡誤差出現較大的震蕩,形成“毛刺”效應。
②用戶選取學習步長η時,應該結合待求解問題本身的解空間的容量,同時應該結合網絡誤差效應函數的單調性。以本文所述的字符識別問題為例,由于問題本身維度較少,空間復雜度低,同時網絡誤差函數隨著訓練次數的增加呈現單調遞減性,所以在選取學習步長時可以選取較大的常數。如果利用前饋神經網絡算法求解復雜性問題,同時網絡誤差效應函數是不可預期的,這時必須盡量選取較小的學習步長,以犧牲時間效率來換取最大限度得對解空間的遍歷。
③動量因子本身考慮的是前次權值調整量對本次權值調整量的影響效應,體現了網絡訓練的動態連續性。在動量因子的選取上,應該盡量遵循選取較小值的原則。如仿真圖所示,當選取的動量因子較大時,網絡誤差效應函數曲線會出現很多小的“毛刺”,缺乏平滑性。根據經驗值,動量因子α的取值一般要求小于0.5。
④用戶自定義期望?實質上代表的是神經網絡設計人員對網絡訓練誤差的容忍度。當問題本身的解空間較小或者問題本身對求解結果的精確度有要求時,我們應盡可能地選取較小的網絡訓練誤差期望值以提高神經網絡模式識別的準確率。當然,如果問題的解空間較大或者用戶對網絡訓練效率有要求時,就必須折衷考慮網絡效率和求解結果精確度,做到統籌兼顧,選取一個合適的期望閾值。一般情況下,如果對精確度沒有更高的要求時,我們可以選取?=0.0001。
⑤綜合以上結論,可以看出,影響前饋神經網絡訓練效率的四個因素中,H的貢獻率最大,η、α以及?的貢獻率較小。所以,增加H是提高前饋神經網絡訓練效率的最快辦法。另外,適當調整、α以及的值也可以對網絡訓練效率進行微調。
在對上述四個因素進行分析之后,取H=30、η=1、α=0.2、?=0.0001,進行編程,得到的軟件仿真結果如圖7所示。

圖7 軟件仿真結果圖
本文以前饋神經網絡算法在簡易字符識別系統設計中的應用為背景,重點研究了利用BP算法進行ANN網絡訓練的算法原理和過程,對影響網絡訓練效率的相關因素進行了詳細地分析;并通過MATLAB仿真圖直觀地展示了隱層神經元個數、學習步長、動量因子以及用戶自定義網絡誤差期望值對網絡訓練效率的影響效果,最后通過簡易字符識別系統的設計實現證明了前饋神經網絡算法在解決模式識別問題方面的高效性。
[1]王士同.人工智能教程(第2版)[M].北京,電子工業出版社,2006.
[2]姚瑞波,孫國雄.多層神經網絡BP算法的改進[J].東南大學學報,2007,26(4):126-129.
[3]俞杰,沈壽林.基于BP神經網絡算法的彈藥需求仿真研究[J].系統仿真學報,2009,21(9):2734-2736.
[4]王桂娟.基于MATLAB仿真的神經網絡控制器的設計與實現[J].系統仿真學報,2005,17(3):742-745.
[5]白焰,何芳.球磨機存煤量和鋼球動能信息融合的神經網絡模型[J].系統仿真學報,2015,27(4):689-696.
[6]梁久楨,何新貴.神經網絡BP算法動力學分析[J].自動化學報,2002,28(5):729-735.
Feed-Forward Neural Networks;BP Algorithm;Network Training
Research on the Network Training of the Feed-forward Neural Networks Algorithm
CHENG Xiao-peng,HOU Dao-qi
(Information Warfare Laboratory,Electronic Engineering Institute,Hefei 230037)
1007-1423(2015)26-0021-06
10.3969/j.issn.1007-1423.2015.26.006
成曉鵬(1991-),男,山西介休人,碩士研究生,研究方向為作戰仿真
2015-08-13
2015-09-06
結合簡易字符識別系統的設計過程,論述前饋神經網絡算法的基本數學原理,并給出利用該算法求解模式識別問題的基本流程;重點研究利用BP算法進行網絡訓練的原理,并對影響網絡訓練效率的相關因素進行深入分析,結合MATLAB進行影響效應分析。通過實例仿真,結合仿真效果,驗證前饋神經網絡算法應用于求解模式識別問題的高效性。
前饋神經網絡;BP算法;網絡訓練
侯道琪(1990-),男,河南焦作人,碩士研究生,研究方向為作戰仿真
Combining with the design procedure of the simple character recognition system,introduces the mathematics theory of the Feed-forward Neural Networks.Demonstrates the process that solves schema recognition and the theory of BP algorithm.At the same time,analyses the factors that can contribute to the networks training efficiency deeply by using MATLAB.Designs the character recognition system and confirms the algorithm is efficient in solving this type of problem.