龐明月
摘要:BP算法是非循環(huán)多級網(wǎng)絡(luò)的訓(xùn)練算法,對人工神經(jīng)網(wǎng)絡(luò)的發(fā)展起到了重大的推動作用,該文介紹了BP算法的基本原理及其缺陷,并提出了改進(jìn)BP算法的方法。
關(guān)鍵詞:BP算法;人工神經(jīng)網(wǎng)絡(luò);改進(jìn)的BP算法
中圖分類號:TP18 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2014)28-6643-02
1 概述
人工神經(jīng)網(wǎng)絡(luò)(Artificial Neural Networks,ANN),是基于人類大腦的生物活動所提出的,是一個(gè)數(shù)學(xué)模型。它由眾多節(jié)點(diǎn)通過一定的方式互聯(lián)組成,是一個(gè)規(guī)模巨大、自適應(yīng)的系統(tǒng)。其中有一種學(xué)習(xí)算法是誤差傳遞學(xué)習(xí)算法即BP算法。BP算法是人工智能最常用到的學(xué)習(xí)方法,從一定意義上來講,BP算法的提出,終結(jié)了多層網(wǎng)絡(luò)在學(xué)習(xí)訓(xùn)練算法上的空白史,是在實(shí)際應(yīng)用中最有效的網(wǎng)絡(luò)訓(xùn)練方法,對ANN的應(yīng)用和發(fā)展起到了決定性的作用。
BP算法是使用從輸出層得到的誤差來估算前一層的誤差,再利用該誤差估算更前一層的誤差。依次進(jìn)行,就會獲得其他所有各層的估算誤差。這樣就實(shí)現(xiàn)了將從輸出層的得到誤差沿著與輸入信號傳送相反的方向逐級向網(wǎng)絡(luò)的輸入端傳遞的過程[1]。但是,BP算法也存在著不可忽視的缺陷?;诖?,該文總結(jié)介紹了BP的改進(jìn)方法。
2 BP算法的基本思想
2.1 BP算法的基本原理
BP算法是有監(jiān)督指導(dǎo)的算法,它的學(xué)習(xí)訓(xùn)練過程一般分為兩步:首先是輸入樣本的正向傳遞;第二步誤差的反向傳遞;其中信號正向傳遞,基本思想是樣本值從輸入層輸入,經(jīng)輸入層傳入隱藏層,最后通過輸出層輸出,中間層對樣本數(shù)據(jù)進(jìn)行處理操作,利用各層的權(quán)值和激活函數(shù)對數(shù)據(jù)進(jìn)行操作然后在輸出層獲得輸出[2];接下來就是反向傳遞,算法得到的實(shí)際輸出值與期望目標(biāo)輸出之間必然會有誤差,根據(jù)誤差的大小來決定下一步的工作。如果誤差值較小滿足訓(xùn)練的精度要求,則認(rèn)為在輸出層得到的值滿足要求,停止訓(xùn)練;反之,則將該誤差傳遞給隱藏層進(jìn)行訓(xùn)練,按照梯度下降的方式,對權(quán)值和閾值進(jìn)行調(diào)整,接著進(jìn)行循環(huán),直到誤差值滿足精度要求停止訓(xùn)練[3]。
3 BP算法的缺陷
盡管BP算法有著顯著的優(yōu)點(diǎn),但是在實(shí)際應(yīng)用過程中,BP算法會出現(xiàn)很多問題。尤其是下面的問題,對BP神經(jīng)網(wǎng)絡(luò)更好的發(fā)展有很大影響。有的甚至?xí)?dǎo)致算法崩潰。
3.1 收斂速度的問題
BP算法在進(jìn)行訓(xùn)練學(xué)習(xí)時(shí),收斂速度慢,特別是在網(wǎng)絡(luò)訓(xùn)練達(dá)到一定的精度時(shí),BP算法就會出現(xiàn)一個(gè)長時(shí)間的誤差“平原”,算法的收斂速度會下降到極慢[4]。如果盲目的加快收斂速度,則會使算法產(chǎn)生震蕩現(xiàn)象。
3.2 局部極小點(diǎn)問題
在一些初始權(quán)值的條件下,BP算法在訓(xùn)練過程中會陷入局部極值。這是由于BP網(wǎng)絡(luò)采用最速下降法,誤差曲面非常復(fù)雜且分布著許多局部極值點(diǎn),一旦陷入,BP算法就很難逃脫,進(jìn)而會使BP網(wǎng)絡(luò)的訓(xùn)練停止。算法可以在某處得到一個(gè)收斂值,但是并不能確定取到了誤差曲面的最小值。這樣就會使網(wǎng)絡(luò)難以達(dá)到事先規(guī)定的誤差精度[5]。
3.3 網(wǎng)絡(luò)癱瘓問題
在算法的學(xué)習(xí)訓(xùn)練過程中,網(wǎng)絡(luò)的權(quán)值會變得很大,從而使得節(jié)點(diǎn)的輸入變大,這就會導(dǎo)致其激活函數(shù)的導(dǎo)函數(shù)在改點(diǎn)取得的值很小,接著會導(dǎo)致算法的訓(xùn)練速度變得極低,最終會導(dǎo)致BP網(wǎng)絡(luò)停止收斂,網(wǎng)絡(luò)癱瘓。
3.4 步長問題
BP的收斂是建立在無窮小權(quán)修改量的基礎(chǔ)上,而這就意味著網(wǎng)絡(luò)所需要的訓(xùn)練時(shí)間是無窮的,這顯然是不可取的。因此,要限定權(quán)值修改量的值。這主要是因?yàn)?,如果步長太小,那么網(wǎng)絡(luò)的收斂速度就會下降,如果步長太大,就會使BP神經(jīng)網(wǎng)絡(luò)產(chǎn)生癱瘓和振蕩。學(xué)者們經(jīng)過研究提出一個(gè)較好的方法,就是用自適應(yīng)的步長代替原來的定值步長,以使權(quán)值修改量隨著BP網(wǎng)絡(luò)的訓(xùn)練而不斷變化[6]。
4 改進(jìn)BP算法的方法
BP算法應(yīng)用廣泛,但它又存在很多缺陷,針對BP算法的問題,國內(nèi)外許多學(xué)者提出各種改進(jìn)方法,主要的改進(jìn)方法分為兩類:一是啟發(fā)式改進(jìn),如附加動量法和自適應(yīng)學(xué)習(xí)率等;二是結(jié)合新理論的改進(jìn)。這些方法在不同程度上提高了網(wǎng)絡(luò)的收斂速度,避免了局部最小問題。
4.1 啟發(fā)式改進(jìn)方法
啟發(fā)式改進(jìn)方法是建立在BP網(wǎng)絡(luò)梯度下降規(guī)則的基礎(chǔ)上,通過對BP神經(jīng)網(wǎng)絡(luò)的權(quán)值和學(xué)習(xí)率的改進(jìn),從而解決BP網(wǎng)絡(luò)在學(xué)習(xí)訓(xùn)練過程中遇到的問題。它的核心思想是:使權(quán)重的調(diào)整量最大限度的適應(yīng)誤差下降的要求。該文主要介紹了附加動量法。
傳統(tǒng)的BP算法實(shí)際上是運(yùn)用最速下降規(guī)則來搜索最優(yōu)點(diǎn)的算法,該規(guī)則是順著梯度的反方向進(jìn)行權(quán)值的修正,并不將前一階段積累的經(jīng)驗(yàn)考慮進(jìn)來。因此會在訓(xùn)練過程中發(fā)生震蕩,導(dǎo)致收斂速度緩慢。但是將動量項(xiàng)引入到BP網(wǎng)絡(luò)中后,當(dāng)輸入樣本依照順序輸入時(shí),則可以將權(quán)值的修正公式看作為以t為變量的時(shí)間序列,那么權(quán)值的修改公式就改變?yōu)槿缦滤荆?/p>
[Δwn=-ηt=0nan-1?Et?Wt]
加入動量項(xiàng)以后若本次[?Et?Wt]與前一次同號時(shí),則加權(quán)和增大,使[Δwn]增大;當(dāng)[?Et?Wt]與上一次符號相反時(shí),說明算法存在一定的震蕩,此時(shí)指數(shù)加權(quán)和減小,使[Δwn]減小[7]。
4.2 BP網(wǎng)絡(luò)結(jié)構(gòu)的優(yōu)化
在BP算法中,輸入和輸出節(jié)點(diǎn)的個(gè)數(shù)由實(shí)際問題確定,網(wǎng)絡(luò)結(jié)構(gòu)的優(yōu)化主要是針對隱藏層的節(jié)點(diǎn)數(shù)和層數(shù)。許多研究表明,一個(gè)隱藏層就可以解決各種分類問題。那么對于隱藏層節(jié)點(diǎn)的個(gè)數(shù)的確定,有的學(xué)者給出了公式[NH=NI+NO+L](其中[NH]表示隱藏層節(jié)點(diǎn)數(shù),[NI]表示輸入層節(jié)點(diǎn)數(shù),[NO]表示輸出層節(jié)點(diǎn)數(shù)),但是公式缺乏一定的理論支持,所以目前最好的方法是通過經(jīng)驗(yàn)和在學(xué)習(xí)訓(xùn)練過程中不斷的調(diào)整隱藏層節(jié)點(diǎn)數(shù),最后得到一個(gè)合適的網(wǎng)絡(luò)結(jié)構(gòu)。
4.3 基于新理論的算法改進(jìn)
隨著對BP網(wǎng)絡(luò)結(jié)構(gòu)知識的研究,能夠更加深刻的理解BP算法誤差傳遞的本質(zhì)。出現(xiàn)了許多基于新興理論的BP算法的改進(jìn),這種改進(jìn)方式是結(jié)合了其它領(lǐng)域比較成功的優(yōu)化算法和理論,比如將遺傳算法與BP算法相結(jié)合,將遺傳算法高效的全局尋優(yōu)能力引入進(jìn)來,利用GA算法來優(yōu)化BP算法的權(quán)值和閾值,解決BP神經(jīng)網(wǎng)絡(luò)存在容易陷入局部極值和收斂速度慢的問題,兩種算法的結(jié)合實(shí)現(xiàn)了各自優(yōu)勢的互補(bǔ),取得了良好的效果[8];將粒子群優(yōu)化算法用于BP神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)訓(xùn)練,使算法更容易找到全局最優(yōu)解,具有更好的收斂性[9]。很多研究者還將BP算法與模糊數(shù)學(xué)理論、小波理論、混沌算法等相結(jié)合。這些改進(jìn)使得BP神經(jīng)網(wǎng)絡(luò)得到更進(jìn)一步的應(yīng)用。
5 小結(jié)
BP算法是目前在神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)算法中得到最廣泛應(yīng)用的。該文總結(jié)了BP算法的原理,針對BP算法中出現(xiàn)的問題,雖然給出了BP算法的改進(jìn)方法,但還是有很多不足之處。隨著科學(xué)日新月異的發(fā)展,各種新的優(yōu)化算法不斷的提出,BP算法也會得到更廣泛的發(fā)展。
參考文獻(xiàn):
[1] 胡彩萍.基于BP神經(jīng)網(wǎng)絡(luò)的排序評價(jià)算法研究及應(yīng)用[D].南昌:江西師范大學(xué)碩士學(xué)位論文,2009.
[2] 劉翔.BP算法的改進(jìn)及其應(yīng)用[D].太原:太原理工大學(xué)碩士學(xué)位論文,2012.
[3] 張璐璐.基于遺傳神經(jīng)網(wǎng)絡(luò)的人民幣識別方法研究[D].長春:吉林大學(xué)碩士學(xué)位論文,2009.
[4] 張波.DRP決策支持系統(tǒng)及小波網(wǎng)絡(luò)在其中的應(yīng)用[D].成都:四川大學(xué)碩士學(xué)位論文,2006.
[5]付海兵,曾黃麟.BP神經(jīng)網(wǎng)絡(luò)的算法及改進(jìn)[J].中國西部科技,2012,11(8):1671-6396.
[6] 周羽.紅外圖像人臉識別研究[D].大連:大連理工大學(xué)碩士學(xué)位論文,2007.
[7] 楊賽.BP神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)問題的分析研究[D].贛州:江西理工大學(xué)碩士學(xué)位論文,2009.
[8] 楊珍.基于遺傳神經(jīng)網(wǎng)絡(luò)的鐵路危險(xiǎn)貨物運(yùn)輸風(fēng)險(xiǎn)評價(jià)分析與應(yīng)用研究[D].北京:北京交通大學(xué)碩士學(xué)位論文,2011.
[9] 李澄非,朱群雄.模糊粒子群神經(jīng)網(wǎng)絡(luò)算法及應(yīng)用[J].計(jì)算機(jī)與應(yīng)用化學(xué),2007,24(10):1359-1362.