王光明,王愛平
(安徽大學 計算機科學與技術(shù)學院,安徽 合肥 230601)
遺傳算法優(yōu)化BP神經(jīng)網(wǎng)絡的非線性函數(shù)擬合研究
王光明,王愛平
(安徽大學 計算機科學與技術(shù)學院,安徽 合肥 230601)
傳統(tǒng)的BP神經(jīng)網(wǎng)絡收斂速度慢,以及該算法的不完備性,易陷于局部極小,全局最優(yōu)無法保證能收斂到等缺點.針對BP神經(jīng)網(wǎng)絡的缺陷,該文提出了遺傳算法,利用遺傳算法優(yōu)化BP神經(jīng)網(wǎng)絡權(quán)值和閾值,使得訓練了BP神經(jīng)網(wǎng)絡預測模型得到了最優(yōu)解.采用遺傳算法優(yōu)化BP神經(jīng)網(wǎng)絡的算法,并以此結(jié)合算法來研究非線性函數(shù)擬合的問題.從實驗結(jié)果表明,基于遺傳算法優(yōu)化的BP神經(jīng)網(wǎng)絡的非線性函數(shù)擬合具有較強的收斂性和魯棒性,并且有了更高的預測精度.
神經(jīng)網(wǎng)絡;BP神經(jīng)網(wǎng)絡;遺傳算法;非線性函數(shù)
BP(BackPropagation,BP)神經(jīng)網(wǎng)絡,是1986年由Rumelhart和McCelland為首的科學家小組提出.BP神經(jīng)網(wǎng)絡是一種按著誤差逆?zhèn)鞑ニ惴ㄓ柧毜亩鄬忧梆伨W(wǎng)絡,它也是目前應用比較廣泛的算法.BP神經(jīng)網(wǎng)絡,是能學習和存貯大量的輸入—輸出模式映射關(guān)系,因此在工程中有著很廣泛的應用.工程系統(tǒng)狀態(tài)方程復雜,難以用數(shù)學方法來建模來處理,在此情況下,可以建立BP神經(jīng)神經(jīng)網(wǎng)絡表達這些非線性系統(tǒng).該方法把未知系統(tǒng)看成是一個黑箱,首先用系統(tǒng)輸入輸出數(shù)據(jù)訓練BP神經(jīng)網(wǎng)絡,使網(wǎng)絡能夠表達該未知函數(shù),然后就可以用訓練好的BP神經(jīng)網(wǎng)絡預測系統(tǒng)輸出.BP神經(jīng)網(wǎng)絡具有較高的擬合能力,但是網(wǎng)絡預測結(jié)果有一定的誤差,某些樣本點的預測誤差較大.在經(jīng)過增加多隱含層BP神經(jīng)網(wǎng)絡得到了一些改善,但是也增加了運行時間.BP神經(jīng)網(wǎng)絡還受到節(jié)點數(shù)的影響,如果節(jié)點數(shù)過少,BP神經(jīng)網(wǎng)絡就不能建立復雜的映射關(guān)系,這樣網(wǎng)絡誤差較大,反之,過多的情況,就會增加學習時間,并且有可能出現(xiàn)“過擬合”的情況(就是訓練樣本預測準確,但是其他樣本預測誤差較大).避免上面的問題,提出了一種方法,采用遺傳算法,從而可以建立遺傳算法優(yōu)化的BP神經(jīng)網(wǎng)絡的非線性函數(shù)擬合.
遺傳算法(GeneticAlgorithm,GA),是一種全局優(yōu)化搜索的迭代算法,把GA與BP神經(jīng)網(wǎng)絡相互融合在一起,用GA的優(yōu)點來優(yōu)化BP神經(jīng)網(wǎng)絡的權(quán)值和閾值,這樣使得BP神經(jīng)網(wǎng)絡的泛化能力更強,并且收斂性也很大程度上的提高,在一定程度上也使得BP神經(jīng)網(wǎng)絡的學習能力得到了提高.基于上述原由,本文從非線性函數(shù)擬合的角度出發(fā),提出了遺傳算法優(yōu)化BP神經(jīng)網(wǎng)絡的算法,降低了陷于局部最小的情況并能夠使得BP有更佳的收斂精度.
遺傳算法優(yōu)化BP神經(jīng)網(wǎng)絡的算法的流程:BP神經(jīng)網(wǎng)絡的結(jié)構(gòu)的確定,接著遺傳算法的優(yōu)化和BP神經(jīng)網(wǎng)絡預測的三個部分構(gòu)成.
圖1-1 BP神經(jīng)網(wǎng)絡拓撲結(jié)構(gòu)圖
1.1 BP神經(jīng)網(wǎng)絡
神經(jīng)網(wǎng)絡是一種模仿人腦結(jié)構(gòu)及其功能的智能處理系統(tǒng)[1].該方法通過對樣本的學習訓練,不斷改變網(wǎng)絡的連接權(quán)值以及拓撲結(jié)構(gòu),以使網(wǎng)絡的輸出不斷的接近期望的輸出.BP神經(jīng)網(wǎng)絡是神經(jīng)網(wǎng)絡的一種,它也是目前得到較為廣泛的應用,并且也是比較成熟的人工神經(jīng)網(wǎng)絡算法.BP神經(jīng)網(wǎng)絡主要特點是信號前向傳遞,誤差反向傳播.在前向傳遞中,輸入信號從輸入層經(jīng)隱含層處理,直至到輸出層輸出信號.每一層的神經(jīng)元狀態(tài)只會影響下一層的神經(jīng)元狀態(tài).在輸出層得不到期望的輸出結(jié)果,則會轉(zhuǎn)向反向傳播,根據(jù)所預測誤差調(diào)整網(wǎng)絡權(quán)值和閾值,從而得到不斷逼近期望輸出結(jié)果.BP神經(jīng)網(wǎng)絡的拓撲結(jié)構(gòu)如圖1-1所示.
圖1-1,其中的X1,X2,…,Xn是BP神經(jīng)網(wǎng)絡輸入層提供的輸入數(shù)據(jù),Wij,Wjk則是BP神經(jīng)網(wǎng)絡的權(quán)值,BP神經(jīng)網(wǎng)絡的預測值則是輸出層輸出的數(shù)據(jù)Y1,Y2,…,Yn.訓練網(wǎng)絡是BP神經(jīng)網(wǎng)絡預測前需要提前做的,因為訓練可以使得網(wǎng)絡具有聯(lián)想記憶和預測能力.其中BP神經(jīng)網(wǎng)絡的訓練有以下幾個過程[2]:
第一步:網(wǎng)絡初始化.基于系統(tǒng)輸入輸出序列(X,Y),來確定網(wǎng)絡輸入層節(jié)點數(shù)n,輸出層節(jié)點數(shù)m,以及隱含層節(jié)點數(shù)l.初始化連接權(quán)值wij,wjk,之后需要隱含層的閾值a和輸出層的閾值b初始化,并且給出函數(shù);
第二步:隱含層輸出計算.
依據(jù)輸入的X向量,經(jīng)過輸入層和隱含層之間的權(quán)值wij處理得到,其中的f為激勵函數(shù);
第三步:輸出層輸出計算.第二步得到的H,連接權(quán)值wjk與閾值b,就可以計算預測輸出M,公式如下1-2:
第四步:進行誤差的計算.在第三步得到的網(wǎng)絡預測輸出M,與期望輸出Y之間進行計算,得到的結(jié)果就是網(wǎng)絡預測誤差e.公式如下:
ek=Yk-Mkk=1,2,…,m (公式1-3)
第五步:得到的誤差e以后,進行權(quán)值wij,wjk和閾值a,b的更新.更新的公式如下所示:
其中的η是BP神經(jīng)網(wǎng)絡的學習速率.
第六步:判斷迭代是否結(jié)束,如果沒有,則返回到第二步.
在實際學習的過程當中,η的影響是很大的,η越大,權(quán)值的變化就會劇烈.所以在應用中,在不導致振蕩的前提下取可能大的η值[3].故有了BP神經(jīng)網(wǎng)絡的缺點,BP神經(jīng)網(wǎng)絡的收斂速度慢,η必須小于一個上限才能保證算法的收斂性[4];BP神經(jīng)網(wǎng)絡所得到的網(wǎng)絡泛化能力差,容錯性能差;由于BP神經(jīng)網(wǎng)絡算法的不完備性,易陷于局部最優(yōu)的情況等缺點[5].
1.2 遺傳算法
遺傳算法是在1962年提出[6],在1975年,美國的Holland教授正式提出了遺傳算法[7].在大自然環(huán)境中,生物有很強的適應能力和生存能力,研究者依據(jù)這個現(xiàn)象,并在達爾文所提出的進化論理論引導下,提出了遺傳算法.遺傳算法也可以說是一種隨機化算法,也是一種全局優(yōu)化搜索算法,該算法是基于對生物的遺傳和演化過程的一種模型,參照的是生物中心法則(geneticcentraldogma).
用遺傳算法解決問題,要對復雜的問題建立合適的種群模型.從初始化種群開始,進行選擇,在此過程中,是需要對每個個體進行評價,即計算每個個體的適應度,那些比較優(yōu)質(zhì)的個體直接遺傳給下一代或者通過配對交叉,再遺傳給下一代.在此遺傳的過程中,可能發(fā)生變異,變異是群體中某些個體的某些基因發(fā)生了變動,與之前的本身基因不一樣了,這樣,種群會得到下一代的種群,這就是遺傳算法的理論依據(jù).上述過程,遺傳算法有一個適應度計算,稱為適應度函數(shù),按照這個適應度函數(shù)進行種群的基本要素操作,即選擇操作、交叉操作、變異操作來保留種群中優(yōu)質(zhì)的個體,淘汰那些適應度低的個體,這是一個循環(huán)迭代的過程,直到滿足條件.運行參數(shù)是遺傳算法不得不考慮的基本要素,初始化確定的參數(shù),有群體大小M,以及遺傳代數(shù)G,交叉概率Pc和變異概率Pm.
基于BP神經(jīng)網(wǎng)絡的非線性函數(shù)擬合,其中的算法流程分為三個步驟,首先進行BP神經(jīng)網(wǎng)絡的構(gòu)建,在構(gòu)建方面有系統(tǒng)建模和構(gòu)建合適的BP神經(jīng)網(wǎng)絡;中間的一步是BP神經(jīng)網(wǎng)絡訓練,這個過程中有BP神經(jīng)網(wǎng)絡的初始化、BP神經(jīng)網(wǎng)絡的訓練以及判斷訓練是否結(jié)束;最后,BP神經(jīng)網(wǎng)絡的預測,測試數(shù)據(jù)和BP神經(jīng)網(wǎng)絡的預測屬于該過程.遺傳算法優(yōu)化BP神經(jīng)網(wǎng)絡的算法流程與BP神經(jīng)網(wǎng)絡的同樣分為三個流程,分別是BP神經(jīng)網(wǎng)絡結(jié)構(gòu)確定和遺傳算法的優(yōu)化,以及BP神經(jīng)網(wǎng)絡預測.其中,BP神經(jīng)網(wǎng)絡結(jié)構(gòu)的確定根據(jù)BP神經(jīng)網(wǎng)絡的輸入層和輸出層的參數(shù)個數(shù),進一步,遺傳算法個體長度得到確定.BP神經(jīng)網(wǎng)絡的權(quán)值和閾值,需要遺傳算法優(yōu)化,優(yōu)化之后,每個種群個體都將包含一個網(wǎng)絡的所有權(quán)值和閾值,在遺傳算法的適應度函數(shù)的計算下,種群中個每個個體都將得到個體適應度值.選擇操作、交叉操作和變異操作的遺傳算法基本操作下,會找到最優(yōu)適應度值所對應的個體.這樣用遺傳算法得到的最優(yōu)個體的權(quán)值和閾值,針對BP神經(jīng)網(wǎng)絡預測初始權(quán)值和閾值賦值,神經(jīng)網(wǎng)絡經(jīng)過訓練后,預測函數(shù)輸出擬合值將會得到.算法的流程圖如圖2-1:
圖2-1 GA-BP神經(jīng)網(wǎng)絡算法流程圖
在流程圖中,可以看出,遺傳算法優(yōu)化BP神經(jīng)網(wǎng)絡的實質(zhì)就是優(yōu)化了BP神經(jīng)網(wǎng)絡的權(quán)值和閾值,從而使網(wǎng)絡預測擬合效果更佳.遺傳算法優(yōu)化的過程中,有選擇操作、交叉操作以及變異操作,計算適應度值的適應度函數(shù)也是優(yōu)化過程中重要的一部分.之后判斷是否滿足條件,如果滿足條件,就獲取了最優(yōu)權(quán)值閾值,之后進行BP神經(jīng)網(wǎng)絡的操作;否則循環(huán)做遺傳算法里面的選擇、交叉和變異等操作.
3.1 遺傳算法優(yōu)化BP神經(jīng)網(wǎng)絡非線性函數(shù)擬合算法實驗
選擇的非線性函數(shù)是y=x12/4+x22/9,隨機生成2000組輸入(x1,x2)數(shù)據(jù)和輸出(y)數(shù)據(jù),其中隨機選擇1900組數(shù)據(jù)作為訓練數(shù)據(jù),主要用于BP神經(jīng)網(wǎng)絡訓練,測試數(shù)據(jù)是剩下100組輸入輸出數(shù)據(jù),用于測試網(wǎng)絡的擬合性能.訓練好的網(wǎng)絡用于神經(jīng)網(wǎng)絡預測函數(shù)的輸出,并對預測結(jié)果進行分析.
遺傳算法優(yōu)化BP神經(jīng)網(wǎng)絡的構(gòu)建,根據(jù)上面非線性函數(shù)特點,有兩個輸入?yún)?shù),并有一個輸出參數(shù),從而確定了輸入層的節(jié)點數(shù)是2,輸出層的節(jié)點數(shù)是1.BP神經(jīng)網(wǎng)絡中隱含層的確定,如果隱含層節(jié)點數(shù)太多,BP神經(jīng)網(wǎng)絡不能建立復雜的映射關(guān)系,造成網(wǎng)絡預測誤差較大,但是如果選擇的節(jié)點過少,則會造成網(wǎng)絡學習時間增長,并且有可能出現(xiàn)“過擬合”現(xiàn)象,即訓練樣本預測準確,但是其他樣本預測誤差較大.經(jīng)過實驗(僅基于BP神經(jīng)網(wǎng)絡的情況),得到隱含層的節(jié)點數(shù)為5的情況,是最佳的.因此,遺傳算法優(yōu)化BP神經(jīng)網(wǎng)絡的結(jié)構(gòu)是2—5—1結(jié)構(gòu).這樣網(wǎng)絡就有15個權(quán)值,以及6個閾值.遺傳算法優(yōu)化BP神經(jīng)網(wǎng)絡的參數(shù)設(shè)置,迭代次數(shù)為100次,學習率設(shè)置為0.1,訓練目標值設(shè)置為0.000001(接近于最佳目標值).遺傳算法中的適應度函數(shù)用訓練數(shù)據(jù)來訓練BP神經(jīng)網(wǎng)絡,并且把訓練數(shù)據(jù)預測誤差作為個體適應度值.在遺傳算法的選擇操作中,采用的是輪盤賭法,從種群中選擇適應度較好的個體組成新的種群.交叉操作中,隨機從適應度較好的兩個個體,按著設(shè)置的種群交叉概率值交叉得到新的個體.同樣的變異操作是在設(shè)置的概率變異值下變異得到新個體.遺傳算法的基本參數(shù)設(shè)置,進化的次數(shù)為200代,種群的規(guī)模設(shè)置為10,交叉概率值為0.3,變異概率值為0.15.
實驗結(jié)果如下:
圖3-1 最憂個體適應度值
如上圖3-1,遺傳算法優(yōu)化過程中,最優(yōu)個體的適應度值曲線變化圖,找到最適合的,提取最優(yōu)的權(quán)值閾值.得到的值如下表3-1所示:
表3-1 遺傳算法優(yōu)化的權(quán)值閾值
表3-1,首先的10個權(quán)值是輸入層和隱含層之間的權(quán)值,第三行的5個閾值是輸入層與隱含層之間的,第四行的權(quán)值是輸出層與隱含層之間的,最后的一個閾值是輸出層與隱含層之間產(chǎn)生的.利用得到最優(yōu)權(quán)值閾值,賦值給BP神經(jīng)網(wǎng)絡,得到了遺傳算法優(yōu)化之后的BP神經(jīng)網(wǎng)絡.得到BP神經(jīng)網(wǎng)絡預測輸出如圖3-2和預測誤差如圖3-3所示.
圖3-2 GA-BP網(wǎng)絡預測輸出
圖3-3 GA-BP網(wǎng)絡預測誤差
3.2 與BP神經(jīng)網(wǎng)絡的非線性函數(shù)擬合的比較
BP選擇的非線性函數(shù)與上述函數(shù)相同,并基于相同迭代次數(shù)、學習率以及訓練目標值參數(shù)的設(shè)置,并在BP神經(jīng)網(wǎng)絡最優(yōu)的2—5—1網(wǎng)絡結(jié)構(gòu)下實驗.
其實驗結(jié)果如圖3-4和預測誤差圖3-5:
圖3-4 BP網(wǎng)絡預測輸出
通過上述圖3-2與3-3和圖3-3與圖3-5的比較,遺傳算法優(yōu)化算法的網(wǎng)絡預測誤差的精度比BP神經(jīng)網(wǎng)絡的網(wǎng)絡預測誤差的精度要精確的多,而得到遺傳算法優(yōu)化后的BP神經(jīng)網(wǎng)絡非線性函數(shù)擬合的效果更好,并且預測誤差更加精確,在收斂速度上,遺傳算法也更佳.
圖3-5 BP網(wǎng)絡預測誤差
遺傳算法和BP神經(jīng)網(wǎng)絡都是基于生物理論的基礎(chǔ)上做的,但是二者有著本質(zhì)的區(qū)別,通過學習和實驗,互相補足各自算法的缺點,提高人們對復雜問題另辟路徑的方法.根據(jù)本文的研究表明,對比之前BP神經(jīng)網(wǎng)絡的非線性函數(shù)的擬合,運用遺傳算法優(yōu)化了權(quán)值和閾值,提高BP神經(jīng)算法非線性函數(shù)的擬合的收斂速度慢,也改善了易陷于局部極小值的情況出現(xiàn),有效的減少了擬合產(chǎn)生的誤差,使得函數(shù)的擬合更加的精確,達到了較好的擬合效果.
〔1〕張燕平,張鈴.機器學習理論與算法[M].科學出版社,2012.
〔2〕楊建剛.人工神經(jīng)網(wǎng)絡實用教程[M].杭州:浙江大學出版社,2001.
〔3〕王俊清.BP神經(jīng)網(wǎng)絡及其改進[J].重慶工學院學報(自然科學版),2007(03):
〔4〕吳小培,費勤云.一種提高BP算法學習速度的有效途徑 [J].安徽大學學報 (自然科學版), 1998,22(3):64-67.
〔5〕Martin R,Heinrich B.A Direct Adaptive MethodforFasterBack-propagationLearning: TheRPROPAlgorithm [A].RuspiniH.ProceedingsoftheIEEEInternationalConference OnNeuralNetworks(ICNN)[C].NewYork. 1993.586-591.
〔6〕Holland JH.Outline foralogic theory of adaptivesystems.JournaloftheAssociationfor ComputingMachinery,1962,(9):297-314.
〔7〕HollandJH.AdaptationinNaturalandArtificialSystems.Ann Arbor:TheUniversityof MichiganPress,1975.
TP301.6
A
1673-260X(2014)11-0029-04