成曉鵬,侯道琪
(解放軍電子工程學(xué)院,合肥 230037)
基于前饋神經(jīng)網(wǎng)絡(luò)的模式識別效率分析
成曉鵬,侯道琪
(解放軍電子工程學(xué)院,合肥230037)
人工神經(jīng)網(wǎng)絡(luò)(Artificial Neural Networks,ANN)融會了生物物理學(xué)和數(shù)學(xué),是一種新興的問題求解辦法,被廣泛應(yīng)用于機(jī)器學(xué)習(xí)、專家系統(tǒng)、智能控制、模式識別以及計算機(jī)視覺等多領(lǐng)域[1]。前饋神經(jīng)網(wǎng)絡(luò)算法(Feed-forward Neural Networks)是一種基礎(chǔ)的人工神經(jīng)網(wǎng)絡(luò)算法,被廣泛應(yīng)用于求解模式識別問題中;但是其網(wǎng)絡(luò)訓(xùn)練過程一直是一個值得研究和探索的重點(diǎn)。本文基于一個字符識別系統(tǒng)的設(shè)計開發(fā)流程,重點(diǎn)探討了應(yīng)用前饋神經(jīng)網(wǎng)絡(luò)算法求解模式識別問題的方法,并進(jìn)行了影響網(wǎng)絡(luò)訓(xùn)練效率的相關(guān)要素分析,最后通過實例仿真,更為直觀地展現(xiàn)了各相關(guān)因素對網(wǎng)絡(luò)訓(xùn)練效率的影響。
現(xiàn)代計算機(jī)雖然有很強(qiáng)的計算和信息處理能力,但是它解決模式識別、感知、評判和決策等復(fù)雜問題的能力卻遠(yuǎn)不如人,缺乏向環(huán)境學(xué)習(xí)、適應(yīng)環(huán)境的能力。人腦則具有大量的神經(jīng)元,在情況分析判斷、學(xué)習(xí)和決策等方面的性能要比計算機(jī)高的多。為了模仿人腦的工作方式,構(gòu)造一種更接近人類智能的信息處理系統(tǒng)以提高計算機(jī)求解智能問題的能力,人們設(shè)計實現(xiàn)了人工神經(jīng)網(wǎng)絡(luò)。簡言之,人工神經(jīng)網(wǎng)絡(luò)就是一種具有大量連接的并行分布處理器,它具有通過學(xué)習(xí)獲取知識并解決問題的能力,且知識是分布存儲在連接權(quán)(對應(yīng)于生物神經(jīng)元的突觸)中,而不是像常規(guī)計算機(jī)那樣按地址存在特定的存儲單元中[2]。
人工神經(jīng)元模型的設(shè)計是計算機(jī)仿生學(xué)的一個重大成就,目前已經(jīng)非常成熟。本文由于篇幅限制,只對其進(jìn)行簡要的介紹。圖1所示為神經(jīng)元模型的基本結(jié)構(gòu),它主要有三個基本要素:
(1)一組連接權(quán)(對應(yīng)于生物神經(jīng)元的突觸),連接強(qiáng)度由各連接上的權(quán)值表示,權(quán)值為正表示激勵,權(quán)值為負(fù)表示抑制。
(2)一個求和單元,用于求取各輸入信息的加權(quán)和(線性組合);此外為了對各輸入信息進(jìn)行調(diào)節(jié),還需要設(shè)置一個閾值θk。
(3)一個非線性激勵函數(shù),起到非線性映射作用并限制神經(jīng)元輸出幅度在一定的范圍之內(nèi) (一般限制在[0,1]或[-1]之間)。
圖1 人工神經(jīng)元模型
以上作用可以用數(shù)學(xué)表達(dá)為:
其中激勵函數(shù)φ(·)的形式常取閾值函數(shù)、分段線性函數(shù)和Sigmoid函數(shù)三種。但是因為Sigmoid函數(shù)具有平滑和漸進(jìn)性,并且保持單調(diào)性,所以最為常用。其函數(shù)形式如式(2)所示:
式中,參數(shù)α可以控制其斜率。Sigmoid函數(shù)的圖形如圖2所示。
圖2 Sigmoid函數(shù)曲線圖
前饋型網(wǎng)絡(luò)是ANN的一種典型拓?fù)浣Y(jié)構(gòu)。在前饋型網(wǎng)絡(luò)中,各神經(jīng)元接受前一層的輸入,并輸出給下一層,沒有反饋。結(jié)點(diǎn)分為兩類,即輸入單元和計算單元。每一計算單元可以有任意多個輸入,但只有一個輸出(它可以耦合到任意多個其他結(jié)點(diǎn)作為其輸入)。前饋網(wǎng)絡(luò)可分為不同的層,第i層的輸入只與第i-1層輸出相連,輸入和輸出結(jié)點(diǎn)與外界相連,而其他中間層稱為隱層。圖3所示為具有一個隱層的前饋型神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)結(jié)構(gòu)。
圖3 含一個隱層的前饋型神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
前饋神經(jīng)網(wǎng)絡(luò)的工作過程主要分為兩個階段。一個階段是學(xué)習(xí)期,此時各計算單元狀態(tài)不變,各連線上的權(quán)值通過學(xué)習(xí)來修改。第二階段是工作期,此時連接權(quán)固定,計算單元狀態(tài)的變化,以達(dá)到某種穩(wěn)定的狀態(tài)。這一部分將在后面的章節(jié)結(jié)合具體問題進(jìn)行詳述。
前饋型網(wǎng)絡(luò)的作用效果主要是函數(shù)映射,可以有效運(yùn)用于模式識別和函數(shù)逼近,所以在解決字符識別、語音識別等模式匹配問題時具有獨(dú)到的優(yōu)勢。為了探究前饋神經(jīng)網(wǎng)絡(luò)在字符識別技術(shù)中的運(yùn)用,本文構(gòu)建了一個簡易的字符識別系統(tǒng)。該系統(tǒng)能夠通過人工神經(jīng)網(wǎng)絡(luò),對給定的字符樣本進(jìn)行學(xué)習(xí)記憶,最終實現(xiàn)對用戶給定的未知形狀的字符的識別。
在第二節(jié)中已經(jīng)論述了典型的前饋神經(jīng)網(wǎng)絡(luò)由輸入層、隱層和輸出層組成。在解決實際問題時,所謂網(wǎng)絡(luò)結(jié)構(gòu)的設(shè)計主要就是確定輸入層、輸出層的神經(jīng)元的個數(shù),以及隱層的層數(shù)和每個隱層的神經(jīng)元的個數(shù)。這些數(shù)值的確定需要算法運(yùn)用人員結(jié)合具體問題具體分析;但由于具有偏差和至少一個S型隱層加上一個線性輸出層的網(wǎng)絡(luò),能夠逼近任何有理函數(shù);所以神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)不完全受所要解決的問題的限制。網(wǎng)絡(luò)的輸入神經(jīng)元數(shù)目及輸出層神經(jīng)元的數(shù)目是由問題的要求所決定的,而輸入和輸出層之間的隱層數(shù)以及每層的神經(jīng)元數(shù)是由設(shè)計者來決定的。
通過向環(huán)境學(xué)習(xí)獲取知識并改進(jìn)自身性能是ANN的一個重要特點(diǎn)。性能的改善是按某種預(yù)定的度量通過調(diào)節(jié)自身參數(shù) (如權(quán)值)隨時間推移逐步達(dá)到的。在前饋神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)方式中,最常用的學(xué)習(xí)方式就是監(jiān)督學(xué)習(xí)(有教師學(xué)習(xí))。這種學(xué)習(xí)方式需要外界存在一個“教師”,它可對給定一組輸入提供應(yīng)有的輸出結(jié)果(正確答案),根據(jù)已知輸出與實際輸出之間的差值(誤差信號)來調(diào)節(jié)系統(tǒng)參數(shù),其流程圖如圖4所示。
圖4 監(jiān)督學(xué)習(xí)方式的學(xué)習(xí)流程圖
如果學(xué)習(xí)系統(tǒng)所處的環(huán)境平穩(wěn)時,那么學(xué)習(xí)系統(tǒng)的參數(shù)在完成學(xué)習(xí)記憶之后就會形成一個穩(wěn)定的狀態(tài)。字符學(xué)習(xí)系統(tǒng)的樣本是已經(jīng)廣泛應(yīng)用的成型字符,是基本不會發(fā)生變化的。所以本文在設(shè)計ANN的學(xué)習(xí)規(guī)則時重點(diǎn)采用了誤差糾正學(xué)習(xí)。這種學(xué)習(xí)規(guī)則的數(shù)學(xué)表示如下:
令yk(n)是輸入為xk(n)時神經(jīng)元k在n時刻的實際輸出,dk(n)表示應(yīng)有的輸出(可有訓(xùn)練樣本決定),則誤差信號可寫為ek(n)=dk(n)-yk(n)。為了達(dá)到網(wǎng)絡(luò)中的每一單元的實際輸出在某種統(tǒng)計意義上逼近應(yīng)有輸出,可以選取誤差平方和的均值:
作為目標(biāo)函數(shù)進(jìn)行網(wǎng)絡(luò)學(xué)習(xí)訓(xùn)練的目標(biāo)函數(shù),當(dāng)J值在訓(xùn)練過程中達(dá)到給定閾值φ以下時,就可以認(rèn)為網(wǎng)絡(luò)的學(xué)習(xí)訓(xùn)練過程可以結(jié)束了。但是在實際過程中很難直接得到誤差平方和的均值,所以常用J在時刻n的瞬時值ξ(n)代替J,即,此時問題變?yōu)榍螃危╪)對權(quán)值ω的極小值,根據(jù)梯度下降法,可以得到Δωkj=ηek(n)xj(n),η為預(yù)先設(shè)定的學(xué)習(xí)步長。
該字符識別系統(tǒng)的給定樣本如圖5所示。該樣本共有十個字符,每個字符是一個8×8的點(diǎn)陣,教師向量是長度為10的行向量,所以在設(shè)計網(wǎng)絡(luò)結(jié)構(gòu)時,把輸入層的神經(jīng)元的個數(shù)設(shè)計為64個,把輸出層的神經(jīng)元的個數(shù)設(shè)計為10個。同時由于問題本身相對簡單,維度較小,所以設(shè)計網(wǎng)絡(luò)的隱層的層數(shù)為1層,隱層所含的神經(jīng)元的個數(shù)對網(wǎng)絡(luò)訓(xùn)練的影響效果將在下文進(jìn)行詳細(xì)論述。
圖5 字符樣本集
網(wǎng)絡(luò)中的權(quán)值體現(xiàn)了把輸入模式映射到網(wǎng)絡(luò)所需的知識;尋找有用權(quán)值的過程稱為網(wǎng)絡(luò)訓(xùn)練。前饋神經(jīng)網(wǎng)絡(luò)的訓(xùn)練方法主要是反向傳播 (Back Propagation,BP)算法。本小節(jié)主要就是結(jié)合簡易字符識別系統(tǒng)的設(shè)計過程來論述BP算法在前饋神經(jīng)網(wǎng)絡(luò)訓(xùn)練中的運(yùn)用。結(jié)合前面所述,神經(jīng)網(wǎng)絡(luò)應(yīng)用于模式識別的基本原理就是將代表識別模式的輸入矢量輸入至輸入層,并傳至后面的隱層,最后通過連接權(quán)輸出到輸出層。該網(wǎng)絡(luò)中的每個神經(jīng)元的輸出的數(shù)學(xué)描述如下:
式(4)中outi是所考慮層中第i個神經(jīng)元的輸出;outj是前一層第j個神經(jīng)元的輸出,ωij是各神經(jīng)網(wǎng)絡(luò)結(jié)點(diǎn)間的權(quán)值,φ是激勵函數(shù),常取Sigmoid函數(shù)。
在進(jìn)行網(wǎng)絡(luò)訓(xùn)練之前,首先必須度量網(wǎng)絡(luò)收斂到用戶的期望值的程度。如前所述,可以采用網(wǎng)絡(luò)誤差的均方差作為度量函數(shù)。由此,可以定義均方差如下:
式(5)中,Ep是第p個表征矢量的誤差,tpj是第個神經(jīng)元的期望值,Opj是第j個輸出神經(jīng)元的實際值。因為最終形式是整體求和,所以上式可以反映單個輸出神經(jīng)元對整體誤差的影響。根據(jù)梯隊下降訓(xùn)練算法,我們可以調(diào)整權(quán)值來使得網(wǎng)絡(luò)整體誤差最小,這就涉及到了網(wǎng)絡(luò)訓(xùn)練的最為核心本質(zhì)的內(nèi)容:權(quán)值究竟應(yīng)該如何調(diào)整。
根據(jù)梯度的定義,權(quán)值的誤差函數(shù)負(fù)梯度指向誤差函數(shù)減小最快的方向。如果在權(quán)值空間沿這個矢量移動,最終將達(dá)到最小值,且最小值處梯度為零。該過程用數(shù)學(xué)方法可以描述為:
式(6)中,Δpωji表示連接第l-1層的源神經(jīng)元i和l層的目的神經(jīng)元j之間的權(quán)值的變化。因為權(quán)值的這個變化規(guī)律,將導(dǎo)致梯度沿著降低誤差的方向的變化,最終達(dá)到誤差的最小值。
確定了權(quán)值的變化規(guī)律之后,就必須要確定如何調(diào)整每個權(quán)值使得網(wǎng)絡(luò)收斂。為了便于計算機(jī)計算,需要對式(5)進(jìn)行變形:
根據(jù)微分的數(shù)學(xué)原理:
netpj代表對l-1層的所有神經(jīng)元的輸出Opl求和,由此
繼續(xù)變形:
由此:
但是在計算權(quán)值變化量時,必須考慮目的神經(jīng)元是位于輸出層還是隱層之內(nèi)。經(jīng)過數(shù)學(xué)計算,可以得到如下結(jié)論:
但是真正的梯度下降法在實際使用過程中以無窮小的步長進(jìn)行,這顯然在實際中做不到。由此,我們必須對該算法進(jìn)行改進(jìn),在權(quán)值調(diào)整過程中加入學(xué)習(xí)步長η和動量因子α,這樣權(quán)值調(diào)整公式就變?yōu)榱耍?/p>
學(xué)習(xí)步長η相當(dāng)于步長的增益,動量因子α通過考慮過去權(quán)值的變化可以濾掉高頻變量,最終使網(wǎng)絡(luò)達(dá)到快速收斂的目的。
綜合前面的算法分析,在前饋神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)訓(xùn)練過程中,網(wǎng)絡(luò)訓(xùn)練效率的相關(guān)影響因素主要有:隱層神經(jīng)元的個數(shù)H(取隱層的層數(shù)為一層)、學(xué)習(xí)步長η、動量因子α和用戶對于網(wǎng)絡(luò)訓(xùn)練效果的期望值?。圖6是進(jìn)行實例仿真的相關(guān)效果圖。同時根據(jù)仿真效果圖,還可以進(jìn)行相關(guān)因素對網(wǎng)絡(luò)訓(xùn)練效率的影響效應(yīng)分析,得出實際結(jié)論,為前饋神經(jīng)網(wǎng)絡(luò)訓(xùn)練的相關(guān)效應(yīng)因子的選取提供現(xiàn)實指導(dǎo)。
圖6 相關(guān)因素對網(wǎng)絡(luò)訓(xùn)練效率的影響效應(yīng)仿真圖
通過對以上仿真效果圖進(jìn)行分析,我們可以得出如下結(jié)論:
①隱層神經(jīng)元的數(shù)目H對網(wǎng)絡(luò)訓(xùn)練效率的影響是十分顯著的,所以利用前饋神經(jīng)網(wǎng)絡(luò)求解問題時,合理設(shè)計網(wǎng)絡(luò)結(jié)構(gòu)十分必要。如果設(shè)計的隱層神經(jīng)元數(shù)目較少,很有可能出現(xiàn)在較短的網(wǎng)絡(luò)訓(xùn)練周期內(nèi)無法達(dá)到滿意的訓(xùn)練效果,甚至?xí)咕W(wǎng)絡(luò)誤差出現(xiàn)較大的震蕩,形成“毛刺”效應(yīng)。
②用戶選取學(xué)習(xí)步長η時,應(yīng)該結(jié)合待求解問題本身的解空間的容量,同時應(yīng)該結(jié)合網(wǎng)絡(luò)誤差效應(yīng)函數(shù)的單調(diào)性。以本文所述的字符識別問題為例,由于問題本身維度較少,空間復(fù)雜度低,同時網(wǎng)絡(luò)誤差函數(shù)隨著訓(xùn)練次數(shù)的增加呈現(xiàn)單調(diào)遞減性,所以在選取學(xué)習(xí)步長時可以選取較大的常數(shù)。如果利用前饋神經(jīng)網(wǎng)絡(luò)算法求解復(fù)雜性問題,同時網(wǎng)絡(luò)誤差效應(yīng)函數(shù)是不可預(yù)期的,這時必須盡量選取較小的學(xué)習(xí)步長,以犧牲時間效率來換取最大限度得對解空間的遍歷。
③動量因子本身考慮的是前次權(quán)值調(diào)整量對本次權(quán)值調(diào)整量的影響效應(yīng),體現(xiàn)了網(wǎng)絡(luò)訓(xùn)練的動態(tài)連續(xù)性。在動量因子的選取上,應(yīng)該盡量遵循選取較小值的原則。如仿真圖所示,當(dāng)選取的動量因子較大時,網(wǎng)絡(luò)誤差效應(yīng)函數(shù)曲線會出現(xiàn)很多小的“毛刺”,缺乏平滑性。根據(jù)經(jīng)驗值,動量因子α的取值一般要求小于0.5。
④用戶自定義期望?實質(zhì)上代表的是神經(jīng)網(wǎng)絡(luò)設(shè)計人員對網(wǎng)絡(luò)訓(xùn)練誤差的容忍度。當(dāng)問題本身的解空間較小或者問題本身對求解結(jié)果的精確度有要求時,我們應(yīng)盡可能地選取較小的網(wǎng)絡(luò)訓(xùn)練誤差期望值以提高神經(jīng)網(wǎng)絡(luò)模式識別的準(zhǔn)確率。當(dāng)然,如果問題的解空間較大或者用戶對網(wǎng)絡(luò)訓(xùn)練效率有要求時,就必須折衷考慮網(wǎng)絡(luò)效率和求解結(jié)果精確度,做到統(tǒng)籌兼顧,選取一個合適的期望閾值。一般情況下,如果對精確度沒有更高的要求時,我們可以選取?=0.0001。
⑤綜合以上結(jié)論,可以看出,影響前饋神經(jīng)網(wǎng)絡(luò)訓(xùn)練效率的四個因素中,H的貢獻(xiàn)率最大,η、α以及?的貢獻(xiàn)率較小。所以,增加H是提高前饋神經(jīng)網(wǎng)絡(luò)訓(xùn)練效率的最快辦法。另外,適當(dāng)調(diào)整、α以及的值也可以對網(wǎng)絡(luò)訓(xùn)練效率進(jìn)行微調(diào)。
在對上述四個因素進(jìn)行分析之后,取H=30、η=1、α=0.2、?=0.0001,進(jìn)行編程,得到的軟件仿真結(jié)果如圖7所示。
圖7 軟件仿真結(jié)果圖
本文以前饋神經(jīng)網(wǎng)絡(luò)算法在簡易字符識別系統(tǒng)設(shè)計中的應(yīng)用為背景,重點(diǎn)研究了利用BP算法進(jìn)行ANN網(wǎng)絡(luò)訓(xùn)練的算法原理和過程,對影響網(wǎng)絡(luò)訓(xùn)練效率的相關(guān)因素進(jìn)行了詳細(xì)地分析;并通過MATLAB仿真圖直觀地展示了隱層神經(jīng)元個數(shù)、學(xué)習(xí)步長、動量因子以及用戶自定義網(wǎng)絡(luò)誤差期望值對網(wǎng)絡(luò)訓(xùn)練效率的影響效果,最后通過簡易字符識別系統(tǒng)的設(shè)計實現(xiàn)證明了前饋神經(jīng)網(wǎng)絡(luò)算法在解決模式識別問題方面的高效性。
[1]王士同.人工智能教程(第2版)[M].北京,電子工業(yè)出版社,2006.
[2]姚瑞波,孫國雄.多層神經(jīng)網(wǎng)絡(luò)BP算法的改進(jìn)[J].東南大學(xué)學(xué)報,2007,26(4):126-129.
[3]俞杰,沈壽林.基于BP神經(jīng)網(wǎng)絡(luò)算法的彈藥需求仿真研究[J].系統(tǒng)仿真學(xué)報,2009,21(9):2734-2736.
[4]王桂娟.基于MATLAB仿真的神經(jīng)網(wǎng)絡(luò)控制器的設(shè)計與實現(xiàn)[J].系統(tǒng)仿真學(xué)報,2005,17(3):742-745.
[5]白焰,何芳.球磨機(jī)存煤量和鋼球動能信息融合的神經(jīng)網(wǎng)絡(luò)模型[J].系統(tǒng)仿真學(xué)報,2015,27(4):689-696.
[6]梁久楨,何新貴.神經(jīng)網(wǎng)絡(luò)BP算法動力學(xué)分析[J].自動化學(xué)報,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-),男,山西介休人,碩士研究生,研究方向為作戰(zhàn)仿真
2015-08-13
2015-09-06
結(jié)合簡易字符識別系統(tǒng)的設(shè)計過程,論述前饋神經(jīng)網(wǎng)絡(luò)算法的基本數(shù)學(xué)原理,并給出利用該算法求解模式識別問題的基本流程;重點(diǎn)研究利用BP算法進(jìn)行網(wǎng)絡(luò)訓(xùn)練的原理,并對影響網(wǎng)絡(luò)訓(xùn)練效率的相關(guān)因素進(jìn)行深入分析,結(jié)合MATLAB進(jìn)行影響效應(yīng)分析。通過實例仿真,結(jié)合仿真效果,驗證前饋神經(jīng)網(wǎng)絡(luò)算法應(yīng)用于求解模式識別問題的高效性。
前饋神經(jīng)網(wǎng)絡(luò);BP算法;網(wǎng)絡(luò)訓(xùn)練
侯道琪(1990-),男,河南焦作人,碩士研究生,研究方向為作戰(zhàn)仿真
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.