要:文章介紹了目前人工神經(jīng)網(wǎng)絡(luò)領(lǐng)域中BP神經(jīng)網(wǎng)絡(luò)的特點(diǎn)及其算法原理,以BP網(wǎng)絡(luò)算法的缺點(diǎn)為出發(fā)點(diǎn),從不同方面對(duì)BP算法進(jìn)行改進(jìn),從而加快了網(wǎng)絡(luò)的收斂速度,優(yōu)化了網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu),最后對(duì)BP網(wǎng)絡(luò)在實(shí)際中的主要應(yīng)用進(jìn)行了討論。
關(guān)鍵詞:人工神經(jīng)網(wǎng)絡(luò);BP算法;算法改進(jìn)
中圖分類號(hào):TP393文獻(xiàn)標(biāo)識(shí)碼:A1文章編號(hào):1009-3044(2009)04-0933-03
BP Neural Network Algorithm Improvement and Application
WANG Shuang,ZHANG Ying,LV Rui-xia
(China West Normal University Computer College, Nanchong 637002, China)
Abstract: The article describes the current artificial neural networks in the field of BP neural network algorithm and its characteristics so as to the shortcomings of the BP network algorithm as the starting point from the different aspects of BP algorithm, so as to speed up the convergence of network and optimize the network topology Structure, the last of the BP network in the main practical applications are discussed.
Key words:artificial neural networks; BP algorithm; algorithm improvement
1 引言
人工神經(jīng)網(wǎng)絡(luò)是一種信息處理系統(tǒng),它有很多種模型。其中有一種用誤差傳播學(xué)習(xí)算法(Error Back Propagation即BP算法)進(jìn)行訓(xùn)練的多層前饋神經(jīng)網(wǎng)絡(luò),簡(jiǎn)稱為BP網(wǎng)絡(luò)。BP神經(jīng)網(wǎng)絡(luò)模型是人工神經(jīng)網(wǎng)絡(luò)的重要模型之一,在文字識(shí)別、模式分類、文字到聲音的轉(zhuǎn)換、圖像壓縮、決策支持等方面都有廣泛的應(yīng)用。
通常,BP算法是通過一些學(xué)習(xí)規(guī)則來調(diào)整神經(jīng)元之間的連接權(quán)值,在學(xué)習(xí)過程中,學(xué)習(xí)規(guī)則以及網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)z不變。然而,一個(gè)神經(jīng)網(wǎng)絡(luò)的信息處理功能不僅取決于神經(jīng)元之間的連接強(qiáng)度,而且與網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)(神經(jīng)元的連接方式)神經(jīng)元的輸入輸出特性和神經(jīng)元的閥值有關(guān)。因而,神經(jīng)網(wǎng)絡(luò)模型要加強(qiáng)自身的適應(yīng)和學(xué)習(xí)能力,應(yīng)該知道如何合理地自組織網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu),改變神經(jīng)元的激活特性以及在必要時(shí)調(diào)整網(wǎng)絡(luò)的學(xué)習(xí)參數(shù)等。
2 BP神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)及原理
BP網(wǎng)絡(luò)是一種無反饋前向網(wǎng)絡(luò),它由一組相互連接的運(yùn)算單元組成,其中每一個(gè)連接都有相對(duì)應(yīng)的權(quán)值。網(wǎng)絡(luò)結(jié)構(gòu)如圖1(以三層網(wǎng)絡(luò)為例)所示,它包括輸入層節(jié)點(diǎn)、輸出層節(jié)點(diǎn),一層或多層隱含層節(jié)點(diǎn)。在BP網(wǎng)絡(luò)中,層與層之間采用全互連方式,同一層的節(jié)點(diǎn)之間不存在相互連接。
BP算法簡(jiǎn)單的來說,是把訓(xùn)練樣本從輸入層輸入,通過每個(gè)節(jié)點(diǎn)對(duì)應(yīng)的閾值、函數(shù)以及節(jié)點(diǎn)之間連接權(quán)值的運(yùn)算,經(jīng)過輸入層、隱含層傳播到輸出層得到計(jì)算輸出,該輸出和其對(duì)應(yīng)的期望輸出比較,得出誤差。如果誤差不符合要求,將誤差沿輸入相反的方向進(jìn)行傳播并沿誤差降低方向調(diào)節(jié)權(quán)值和函數(shù)的閾值。用多個(gè)訓(xùn)練樣本對(duì)網(wǎng)絡(luò)進(jìn)行反復(fù)的訓(xùn)練,直至誤差符合要求。
BP神經(jīng)網(wǎng)絡(luò)的算法又稱為誤差逆?zhèn)鞑ニ惴?,這個(gè)算法的學(xué)習(xí)過程由正向傳播過程與反向傳播過程組成。正向傳播過程是依據(jù)學(xué)習(xí)樣本的輸入向量從輸入層分隱含層分輸出層逐次修改權(quán)值矩值認(rèn)W,兩個(gè)過程反復(fù)交替,直至收斂為止。
3 BP算法存在的問題及其改進(jìn)
3.1 BP算法的局限性
在實(shí)際應(yīng)用中,BP算法普遍存在以下問題:
1) 誤差下降緩慢,調(diào)整時(shí)間長(zhǎng),迭代次數(shù)多,影響收斂速度,造成收斂速度慢,若加快收斂速度易產(chǎn)生振蕩。
2) 存在局部極小問題,但得不到全局最優(yōu)。訓(xùn)練會(huì)因陷入某個(gè)局部極小點(diǎn)而不能自拔,使訓(xùn)練難以收斂于給定的誤差。
3) 隱節(jié)點(diǎn)數(shù)和初始值的選取缺乏理論指導(dǎo)。
4) 泛化能力差。
5) 未考慮樣本選擇對(duì)系統(tǒng)學(xué)習(xí)的影響。
3.2 對(duì)BP算法的改進(jìn)
BP算法改進(jìn)方法可以分為兩類:一是基于非線性無約束極值理論的算法改進(jìn),二是基于新理論的算法改進(jìn)。
3.2.1 基于非線性無約束極值理論的算法改進(jìn)
神經(jīng)網(wǎng)絡(luò)連接權(quán)值的學(xué)習(xí)過程看作非線性無約束極值的求解過程,基于這一理論的算法改進(jìn)構(gòu)成了算法改進(jìn)的主流。而這些算法改進(jìn)細(xì)分為兩大類:
1) 在梯度法的基礎(chǔ)上改進(jìn)BP網(wǎng)絡(luò)的學(xué)習(xí)算法。其中,改進(jìn)誤差函數(shù)和學(xué)習(xí)步長(zhǎng)η的自適應(yīng)調(diào)整是兩個(gè)主要途徑。改進(jìn)誤差函數(shù)的方法有熵函數(shù)法,另外還有基于最大似然法對(duì)標(biāo)準(zhǔn)BP算法的誤差函數(shù)的改進(jìn),以及分析了常用的LS型誤差函數(shù)并基于一個(gè)結(jié)構(gòu)性定理,給出了構(gòu)造特殊能量函數(shù)的一般方法等等。學(xué)習(xí)步長(zhǎng)η的自適應(yīng)調(diào)整方法有很多,η可以通過Hesses矩陣直接求解;另外利用非單調(diào)線性搜索的基本方法,引入一個(gè)自適應(yīng)預(yù)估和調(diào)整學(xué)習(xí)步長(zhǎng)的策略。
2)基于其它無約束極值求解方法的算法改進(jìn)??梢圆捎梅蔷€性無約束極值求解和其它方法,例如,共扼梯度法、變尺度法、步長(zhǎng)加速法和單純形法等來改進(jìn)BP網(wǎng)絡(luò)的學(xué)習(xí)算法。標(biāo)準(zhǔn)BP算法和大部分的改進(jìn)算法實(shí)質(zhì)上都屬于非線性無約束極值求解方法。學(xué)習(xí)步長(zhǎng)的調(diào)整也吸收了非線性無約束極值求解方法的成熟理論??疾焯荻确ㄔ谇蠼夥蔷€性無約束極值問題中的實(shí)現(xiàn)情況,可以得出結(jié)論:標(biāo)準(zhǔn)BP算法收斂速度慢的根本原因在于算法本身,在梯度法的基礎(chǔ)上改進(jìn)BP網(wǎng)絡(luò)的學(xué)習(xí)算法收斂速度不會(huì)有太明顯的提高。
3.2.2 基于新理論的算法改進(jìn)
通過深入分析BP網(wǎng)絡(luò)的結(jié)構(gòu)特點(diǎn)和體會(huì)誤差反向傳播算法的實(shí)質(zhì),并結(jié)合其它領(lǐng)域已成熟的優(yōu)化算法和參數(shù)估計(jì)理論,提出各種基于新理論的反向傳播算法。其中比較好的算法改進(jìn)有:利用推廣卡爾曼濾波來實(shí)現(xiàn)BP網(wǎng)絡(luò)的學(xué)習(xí)算法改進(jìn)、基于同倫論中零點(diǎn)路徑跟蹤概念的算法改進(jìn)、基于正交投影算法線性優(yōu)化方法的算法改進(jìn)等等。除了這些以外還有一部分專門用于克服局部極小的改進(jìn)算法,在這方面人們所作的工作不多,比較有效的方法有模擬退火和遺傳算法。這兩種方法的學(xué)習(xí)時(shí)間比較長(zhǎng)而且算法需進(jìn)一步改善,可以利用非線性函數(shù)總體極值方法來找到全局極小點(diǎn)。
4 BP神經(jīng)網(wǎng)絡(luò)的應(yīng)用
4.1 人臉識(shí)別
對(duì)人臉識(shí)別是人類最偉大的視覺功能之一,神經(jīng)網(wǎng)絡(luò)受動(dòng)物神經(jīng)系統(tǒng)啟發(fā),利用大量簡(jiǎn)單處理單元互聯(lián)而構(gòu)成的復(fù)雜系統(tǒng),以解決復(fù)雜模式識(shí)別和行為控制問題。將BP網(wǎng)絡(luò)用于人臉識(shí)別,建立了人臉識(shí)別模型,通過對(duì)輸入圖像實(shí)行圖像壓縮、圖像抽樣及輸入矢量標(biāo)準(zhǔn)化等圖像預(yù)入圖像實(shí)行圖像壓縮、圖像抽樣及輸入矢量標(biāo)準(zhǔn)化等圖像預(yù)處理,將標(biāo)準(zhǔn)化矢量輸入BP神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練。BP網(wǎng)絡(luò)用于人臉識(shí)別時(shí),網(wǎng)絡(luò)的每一個(gè)輸入節(jié)點(diǎn)對(duì)應(yīng)樣本的一個(gè)特征,而輸出節(jié)點(diǎn)數(shù)等于類別數(shù),一個(gè)輸出節(jié)點(diǎn)對(duì)應(yīng)一個(gè)類。在訓(xùn)練階段,如果輸入訓(xùn)練樣本的類別標(biāo)點(diǎn)是i,則訓(xùn)練時(shí)的期望輸出假設(shè)第i個(gè)節(jié)點(diǎn)為1,而其余輸出節(jié)點(diǎn)均為0。在識(shí)別階段,當(dāng)一個(gè)未知類別樣本作用到輸入端時(shí),考察各輸出節(jié)點(diǎn)對(duì)應(yīng)的輸出,并將這個(gè)樣本類別判定為具有最大值的輸出節(jié)點(diǎn)對(duì)應(yīng)的類別。如果有最大值的輸出節(jié)點(diǎn)與其它節(jié)點(diǎn)之間的距離較小(小于某個(gè)閾值),則作出拒絕判斷。經(jīng)過競(jìng)爭(zhēng)選擇,獲得識(shí)別結(jié)果。
4.2 圖像壓縮編碼
利用BP網(wǎng)絡(luò)實(shí)現(xiàn)數(shù)據(jù)編碼的原理是:把一組輸入模式通過少量的隱層節(jié)點(diǎn)映射到一組輸出模式,并使輸出模式等同與輸入模式。當(dāng)中間隱層的節(jié)點(diǎn)數(shù)比輸入模式維數(shù)少時(shí),就意味著隱層能更有效地表現(xiàn)輸入模式,并把這種表現(xiàn)傳給輸出層。在這個(gè)過程中,輸入層和隱層的變換可以看成是壓縮編碼的過程;而隱層和輸出層的變換可以看成是解碼過程。用多層前饋網(wǎng)實(shí)現(xiàn)圖象壓縮時(shí),只需一個(gè)隱層,網(wǎng)絡(luò)結(jié)果如圖2所示。輸入層和輸出層均含有n×n個(gè)神經(jīng)元,每個(gè)神經(jīng)元對(duì)應(yīng)于n×n個(gè)圖像分塊中的一個(gè)像素。隱層神經(jīng)元的數(shù)量由圖像壓縮比決定,如n=16時(shí),取隱層神經(jīng)元數(shù)為m=8,則可將256像素的圖像塊壓縮為8像素。設(shè)用于學(xué)習(xí)的圖像有N×N個(gè)像素,訓(xùn)練時(shí)從中隨機(jī)抽取n×n圖像塊作為訓(xùn)練樣本,并使教師模式和輸入模式相等。通過調(diào)整權(quán)值使訓(xùn)練集圖像的重建誤差達(dá)到最小,訓(xùn)練后的網(wǎng)絡(luò)就可以用來執(zhí)行圖像的數(shù)據(jù)壓縮任務(wù)了,此時(shí)隱層輸出向量便是數(shù)據(jù)壓縮結(jié)果,而輸出層的輸出向量便是圖像重建結(jié)果。
4.3 最優(yōu)預(yù)測(cè)
前景預(yù)測(cè)已經(jīng)成為許多行業(yè)不可避免的一個(gè)難題,由于預(yù)測(cè)涉及的因素很多,往往很難建立一個(gè)合理的模型。人工神經(jīng)網(wǎng)絡(luò)模擬人的大腦活動(dòng),具有極強(qiáng)的非線性逼近、大規(guī)模并行處理、自訓(xùn)練學(xué)習(xí)、容錯(cuò)能力以及外部環(huán)境的適應(yīng)能力,所以利用人工神經(jīng)網(wǎng)絡(luò)進(jìn)行預(yù)測(cè)已經(jīng)成為許多項(xiàng)目首選的方法。目前利用BP網(wǎng)絡(luò)進(jìn)行預(yù)測(cè)的應(yīng)用已經(jīng)很多,例如,可以用來建立公共衛(wèi)生事件監(jiān)測(cè)與預(yù)警系統(tǒng)、旅游業(yè)趨勢(shì)預(yù)測(cè)系統(tǒng)、物流預(yù)測(cè)系統(tǒng)、資源調(diào)度系統(tǒng)等方面。
BP網(wǎng)絡(luò)在應(yīng)用于預(yù)測(cè)預(yù)報(bào)前需要一個(gè)網(wǎng)絡(luò)學(xué)習(xí)過程,其學(xué)習(xí)過程包括信息正向傳播和誤差反向傳播兩個(gè)反復(fù)交替的過程。網(wǎng)絡(luò)根據(jù)輸入的訓(xùn)練(學(xué)習(xí))樣本進(jìn)行自適應(yīng)、自組織,確定各神經(jīng)元的連接權(quán)W和閾值φ,經(jīng)過多次訓(xùn)練后,網(wǎng)絡(luò)就具有了對(duì)學(xué)習(xí)樣本的記憶和聯(lián)想的能力。
4.4 函數(shù)擬合
BP網(wǎng)絡(luò)可以看成是輸入到輸出的高度非線性映射,即G:Rn→Rm,g(y)=x,對(duì)于樣本集合,輸入yi∈Rn、輸出xi∈Rm,可以認(rèn)為存在某一映射h,使h(yi)=xi(I=1,2,…,n)?,F(xiàn)須求出映射g,通常在最小二乘意義下,g是h的最佳逼近。神經(jīng)網(wǎng)絡(luò)通過對(duì)簡(jiǎn)單的非線性函數(shù)進(jìn)行數(shù)次復(fù)合,可近似任意復(fù)雜的函數(shù)或映射。
4.5 故障診斷
對(duì)于故障診斷而言,其核心技術(shù)是故障模式識(shí)別,而人工神經(jīng)網(wǎng)絡(luò)由于其本身信息處理特點(diǎn),如并行性、自學(xué)習(xí)、自組織性、聯(lián)想記憶等使得能夠出色地解決那些傳統(tǒng)模式識(shí)別難以圓滿解決的問題,所以故障診斷是人工神經(jīng)網(wǎng)絡(luò)的重要應(yīng)用領(lǐng)域之一??偟恼f來,神經(jīng)網(wǎng)絡(luò)在診斷領(lǐng)域的應(yīng)用研究主要集中在兩個(gè)方面:一是從模式識(shí)別的角度應(yīng)用作為分類器進(jìn)行故障診斷,其基本思想是以故障征兆作為人工神經(jīng)網(wǎng)絡(luò)的輸入,診斷結(jié)果作為輸出;二是將神經(jīng)網(wǎng)絡(luò)與其他診斷方法相結(jié)合而形成的混合診斷方法。對(duì)用解析方法難以建立系統(tǒng)模型的診斷對(duì)象,人工神經(jīng)網(wǎng)絡(luò)有著很好的研究和應(yīng)用前景。
5 結(jié)論
BP網(wǎng)絡(luò)是當(dāng)前應(yīng)用最為廣泛的一種人工神經(jīng)網(wǎng)絡(luò),無論在理論研究上還是在實(shí)際應(yīng)用中都取得了突飛猛進(jìn)的發(fā)展。因此,針對(duì)BP算法的不足,各種改進(jìn)算法的研究也較多。本文通過給出幾種人工神經(jīng)網(wǎng)絡(luò)BP算法的改進(jìn)方法以及幾個(gè)應(yīng)用方面,對(duì)BP神經(jīng)網(wǎng)絡(luò)算法有了更多的認(rèn)識(shí),從而提高了學(xué)習(xí)速度,增加了算法的可行性,相信人工神經(jīng)網(wǎng)絡(luò)必將會(huì)得到越來越廣泛的應(yīng)用和迅猛發(fā)展。
參考文獻(xiàn):
[1] 朱大奇,史慧.人工神經(jīng)網(wǎng)絡(luò)原理及應(yīng)用[M].北京:科學(xué)出版社,2006.
[2] 韓力群.人工神經(jīng)網(wǎng)絡(luò)理論、設(shè)計(jì)及應(yīng)用[M].北京:化學(xué)工業(yè)出版社,2004.
[3] 甘俊英,張有為.基于BP神經(jīng)網(wǎng)絡(luò)的人臉識(shí)別[J].系統(tǒng)工程與電子技術(shù),2003,25(1).
[4] 李金屏,何苗,劉明軍,等.提高BP小波神經(jīng)網(wǎng)絡(luò)收斂速度的研究[J].模式識(shí)別與人工智能,2002,15(1):28-35.
[5] 吳建昱,何小榮.用于過程建模的BP網(wǎng)絡(luò)的M訓(xùn)練法及其改進(jìn)[J].計(jì)算機(jī)與應(yīng)用化學(xué),2001,18(5):473-476.