陶保壯,方厚加
(淮南聯(lián)合大學(xué)計算機系,安徽淮南232001)
BP 算法應(yīng)用中的關(guān)鍵問題
陶保壯,方厚加
(淮南聯(lián)合大學(xué)計算機系,安徽淮南232001)
分析了學(xué)習(xí)方法的選擇、隱層數(shù)和隱層單元、學(xué)習(xí)步長的選擇、避免局部最小的方法、學(xué)習(xí)樣本的選擇、激活函數(shù)的選擇等使用BP算法時應(yīng)考慮的問題,并將BP網(wǎng)絡(luò)應(yīng)用于化學(xué)反應(yīng)催化模型。
BP算法;隱層數(shù)和隱層單元數(shù);學(xué)習(xí)步長;學(xué)習(xí)樣本
BP算法的基本思想是,學(xué)習(xí)過程由信號的正向傳播與誤差的反向傳播兩個過程組成[1](P42)。正向傳播時,輸入樣本從輸入層傳入,經(jīng)各隱層逐層處理后,傳向輸出層。如果輸出層的實際輸出與期望的輸出不符,則轉(zhuǎn)入誤差的反向傳播階段。誤差反傳是將輸出誤差以某種形式通過隱層向輸入層反傳,并將誤差分攤給各層的所有單元,從而獲得各層單元的誤差信號,此誤差即作為修正單元權(quán)值的依據(jù)。這種信號正傳播與誤差反向傳播的各層權(quán)值調(diào)整過程,是周而復(fù)始地進行的。權(quán)值不斷調(diào)整的過程,也就是網(wǎng)絡(luò)的學(xué)習(xí)訓(xùn)練過程。該過程一直進行到網(wǎng)絡(luò)輸出的誤差減小到可接收的程度,或者進行到預(yù)先設(shè)定的學(xué)習(xí)次數(shù)為止。
1、單樣本學(xué)習(xí)法根據(jù)每一個學(xué)習(xí)樣本的誤差,求權(quán)值修正值,更新值;成批學(xué)習(xí)法根據(jù)所有學(xué)習(xí)樣本的總誤差,求權(quán)值修正值,更新權(quán)值。一般來說,學(xué)習(xí)樣本中噪聲較小時,用單樣本學(xué)習(xí)法較合適。
2、單樣本學(xué)習(xí)法的缺點是每次迭代的梯度值受學(xué)習(xí)樣本中的噪聲影響較大,而成批學(xué)習(xí)法的缺點是忽略了學(xué)習(xí)樣本的個體差異而降低學(xué)習(xí)的靈敏度。通常,可以將上述兩種方法進行折衷,即將學(xué)習(xí)樣本集分成若干個子塊分別進行以子塊為單位的成批學(xué)習(xí),當(dāng)誤差收斂到一預(yù)定數(shù)值,再以此時權(quán)值為初值,轉(zhuǎn)入下一個子塊進行學(xué)習(xí),在所有的子塊學(xué)習(xí)完后,如果總的誤差滿足要求,學(xué)習(xí)結(jié)束。否則,轉(zhuǎn)入下一個循環(huán)繼續(xù)學(xué)習(xí)。
3、規(guī)模較大的BP網(wǎng)絡(luò)學(xué)習(xí)時,可以將它以一定的比例縮小成較小的BP網(wǎng)絡(luò),先訓(xùn)練這個較小的BP網(wǎng)絡(luò),將學(xué)習(xí)的結(jié)果以同樣的比例提升到原來較大規(guī)模的網(wǎng)絡(luò),再訓(xùn)練較大規(guī)模的網(wǎng)絡(luò)。實驗證明對于大規(guī)模BP網(wǎng)絡(luò)這種學(xué)習(xí)方法速度快,特征抽取能力強[2](P65-69)。
1、一般總是先選擇一個隱層的BP網(wǎng)絡(luò),但如果選擇一個隱層時,隱層單元數(shù)目較大,可以考慮選用兩個隱層,而每個隱層的單元數(shù)取較小值。
2、隱層單元數(shù)目HN的選擇是否合適是應(yīng)用BP網(wǎng)絡(luò)成功與失敗的關(guān)鍵因素之一,HN值太小,學(xué)習(xí)過程可能不收斂;HN值越大,網(wǎng)絡(luò)映射能力越強,局部最小點越少,越容易收斂到全局最小點[3]。但HN過大,不但使學(xué)習(xí)時間過長,而且網(wǎng)絡(luò)容易訓(xùn)練過度,會使網(wǎng)絡(luò)的容錯性降低。因為如果網(wǎng)絡(luò)對學(xué)習(xí)樣本的學(xué)習(xí)太“精確”,即使檢測樣本與學(xué)習(xí)樣本之間有很小的畸變,網(wǎng)絡(luò)也會判為非。目前,最佳隱層單元數(shù)的選擇尚無理論指導(dǎo)。實際應(yīng)用中,可以先取較小的HN,訓(xùn)練并檢驗網(wǎng)絡(luò)的性能。然后稍增大HN,再重試。試驗確定合適的[3]。
學(xué)習(xí)步長(或稱學(xué)習(xí)速率)的取值較大時,學(xué)習(xí)速度快,但會引起權(quán)值振蕩,太大將引起權(quán)值發(fā)散;取值較小時,網(wǎng)絡(luò)學(xué)習(xí)速度慢,訓(xùn)練時間長。步長的取值應(yīng)在學(xué)習(xí)速度與權(quán)值的穩(wěn)定性之間折衷選擇,但最好是用變步長的方法。文獻[2]給出一種方法,先設(shè)一初始步長,若一次迭代后誤差增大,則將步長乘以小于1的正數(shù),否則步長乘以大于1的正數(shù)。步長隨學(xué)習(xí)的進展而逐步減小。文獻[3]根據(jù)連續(xù)兩次迭代時,梯度方向的相似或相反,來增加或減小步長。應(yīng)該注意的是,學(xué)習(xí)步長的選擇與的動量因子的選擇不是孤立的,它們之間有一定的等效性。
1、增加動量項(或稱慣性項、矩項等)并適當(dāng)選擇動量因子(或稱慣性系數(shù)),可以抑制學(xué)習(xí)過程中的振蕩和有助于擺脫局部最小。動量因子一般選在0.9左右。根據(jù)連續(xù)兩次迭代時,梯度方向的相似或相反,來增加或減小動量因子(與學(xué)習(xí)步長同時考慮)。
2、給權(quán)值加小的隨機擾動,有助于網(wǎng)絡(luò)擺脫局部最小。
3、將BP算法與模擬退火算法或遺傳算法結(jié)合起來,可以避免陷入局部最小,但要影響學(xué)習(xí)速度。
1、選擇學(xué)習(xí)樣本時,不僅要包括所有的模式類別,而且每種類別所具有的學(xué)習(xí)樣本數(shù)要平衡,不能偏重某一類型。但如果事先明確類型A出現(xiàn)的機會比類型B大一倍,這時可以選擇類型A的學(xué)習(xí)樣本比類型B的學(xué)習(xí)樣本多一倍。如果事先知道類型A的誤差比類型B的大,那么類型A的學(xué)習(xí)樣本要多于類型B的。這樣可以改善網(wǎng)絡(luò)的性能。
2、學(xué)習(xí)時,在學(xué)習(xí)樣本中適當(dāng)加些噪聲,可以提高網(wǎng)絡(luò)的抗噪聲能力。
3、學(xué)習(xí)樣本應(yīng)盡可能相互獨立而沒有相關(guān)關(guān)系,盡可能用正交設(shè)計方法來獲得足夠多的學(xué)習(xí)樣本。
其它技巧①
1、初始權(quán)值最好設(shè)置為較小(單極S型函數(shù)時,可選-0.3~0.3之間的隨機數(shù))。
2、激活函數(shù)采用單極S型函數(shù)時,學(xué)習(xí)樣本期望輸出設(shè)置為0.1或0.9較合適。
3、給定一定的允許誤差,當(dāng)網(wǎng)絡(luò)的輸出與樣本之間的差小于給定的允許誤差時,則停止學(xué)習(xí)。對網(wǎng)絡(luò)學(xué)習(xí)采取這種寬容的做法,可加快學(xué)習(xí)速度。還可以在開始學(xué)習(xí)時允許誤差取大些,以后逐漸減小。
應(yīng)用BP網(wǎng)絡(luò)分析測試了化學(xué)反應(yīng)催化問題,牛頓已給出了化學(xué)反應(yīng)催化問題的說明,其描述如下:
該模型包含3層:輸入層,隱層,輸出3層感知器,輸入向量為X=(x1,x2,…,xi,…,xn)T,隱層輸出向量為Y=(y1,y2,yi,…,ym)T,輸出層輸出向量為O=(O1,O2,…,Oi,…,Ol)T;期望輸出向量為O=(O1,O2,…,Ok,…,Ol)T。
(1)初始化
初始化權(quán)值,權(quán)值用一個三維數(shù)組表示,W[i][j][k],i表示第幾層的權(quán)值,j和k分別表示本層節(jié)點k和上一層的節(jié)點j。
(2)輸入訓(xùn)練樣本對,計算各層輸出u[i][j],其中u[i][j]表示第i層的第j個節(jié)點的輸出,i從1開始。
(3)計算網(wǎng)絡(luò)輸出誤差
e[2][node]=u[2][node]-OutputDate[node],其中數(shù)組e表示誤差,OutputDate為期望的輸出值。
(4)計算各層誤差信號
(5)調(diào)整各層權(quán)值
w[layer][j][i]=w[layer][j][i]+ALPHA*delta_w[layer][j][i]-STUDY_SPEED*g[layer][j][i],其中ALPHA為沖動系數(shù),delta_w[layer][j][i]為沖動向量,STUDY_SPEED為學(xué)習(xí)速率。g[layer][j][i]是誤差函數(shù)對權(quán)值w的導(dǎo)數(shù)。
(6)檢查網(wǎng)絡(luò)總誤差是否達到進度要求
判斷w ucha>EP是否成立(w ucha為實際輸出與期望輸出的差,EP是給定值),如果成立,訓(xùn)練結(jié)束,否則返回步驟(2)。
為更好地分析BP算法的實時性、預(yù)測精度、收斂性等性能,筆者借鑒引用文獻[6]中的相關(guān)數(shù)據(jù),利用25個邊坡實例,對BP神經(jīng)網(wǎng)絡(luò)模型進行有效性檢驗。表1為訓(xùn)練樣本,對表中數(shù)據(jù)進行歸一化處理,誤差的收斂值為0.001;表中前面數(shù)據(jù)為催化劑配方比,后三項數(shù)據(jù)是三種化合物產(chǎn)量比。
表1 輸入數(shù)據(jù)
表2 不同催化劑配方實際輸出結(jié)果與預(yù)測結(jié)果比較
表3 算法性能
BP網(wǎng)絡(luò)是非線性多層向前網(wǎng)絡(luò),對于任一個BP網(wǎng)絡(luò),總存在一個感知器(如 RBF)與之對應(yīng),反之亦然。BP網(wǎng)絡(luò)算法采用基于誤差反向傳播的梯度算法,充分利用了多層前向網(wǎng)絡(luò)的結(jié)構(gòu)優(yōu)勢,在正反向傳播過程中每一層的計算都是并行的,算法在理論上比較成熟;上述實驗表明了BP網(wǎng)絡(luò)的特性主要體現(xiàn)在以下幾個方面:
①BP網(wǎng)絡(luò)的隱層可以是一層或多層。
②BP感知器的隱層和輸出層其神經(jīng)元模型是相同的。
③BP網(wǎng)絡(luò)的隱單元激勵函數(shù)計算的是輸入單元和連接權(quán)值的內(nèi)積。
⑥BP網(wǎng)絡(luò)相對于其它網(wǎng)絡(luò)而言(如RBF)其精確度高、泛化能力較強。
⑦BP網(wǎng)絡(luò)能以任意精度逼近任何非線性函數(shù),在函數(shù)逼近問題上,若樣本是非線性的,BP網(wǎng)絡(luò)效果明顯優(yōu)與其他網(wǎng)絡(luò)。
⑧BP隱含層難設(shè)計,BP網(wǎng)絡(luò)使用的Sigmoid函數(shù)具有全局特性,它在輸入值的很大范圍內(nèi)每個節(jié)點都對輸出值產(chǎn)生影響,并且激勵函數(shù)在輸入值的很大范圍內(nèi)相互重疊,因而相互影響,故BP網(wǎng)絡(luò)訓(xùn)練過程很長[7]。
在實際使用中,由于BP算法的固有特性,BP網(wǎng)絡(luò)容易陷入局部極小的問題不可能從根本上避免,并且BP網(wǎng)絡(luò)隱層節(jié)點數(shù)目的確定依賴于經(jīng)驗和試湊,很難得到最優(yōu)網(wǎng)絡(luò)。如上分析,我們可以采用多種方法提高BP網(wǎng)絡(luò)的性能:如增加學(xué)習(xí)的樣本空間,已知的樣本空間越多,提供的客觀信息越多,因而訓(xùn)練出的連接權(quán)值可以提高預(yù)測的準確性;隱層數(shù)和隱層單元數(shù)的選擇要適當(dāng),需要通過多次測試給出最優(yōu)設(shè)計,有必要時增加隱含層層數(shù);學(xué)習(xí)步長應(yīng)該根據(jù)實際情況給出,太小沒有區(qū)分度,太大則會影響預(yù)測效果。
注釋:
①張燕萍:《神經(jīng)網(wǎng)絡(luò)講義》,合肥:安徽大學(xué),2007.
[1]張立明.人工神經(jīng)網(wǎng)絡(luò)的模型及其應(yīng)用[M].上海:復(fù)旦大學(xué)出版社,1993.
[2]黃風(fēng)崗,宋克嗚.模式識別[M].哈爾濱:哈爾濱工程大學(xué)出版社,1998.
[3]楊萬山,陳松喬,唐連章.基于BP神經(jīng)網(wǎng)絡(luò)的工程圖紙圖形符號識別[J].微型電腦應(yīng)用,2000,16(2):22-23.
[4]韓力群.人工神經(jīng)網(wǎng)絡(luò)教程[M].北京:北京郵電大學(xué)出版社,2006.
[5]舒懷林.PID神經(jīng)元網(wǎng)絡(luò)及其控制系統(tǒng)[M].北京:國防工業(yè)出版社,2006.
[6]孫麗英,葛超,朱藝.RBF神經(jīng)網(wǎng)絡(luò)在函數(shù)逼近領(lǐng)域內(nèi)的研究[J].計算機與數(shù)字工程,2007,(8):47-48.
[7]潘登,鄭應(yīng)平,徐立鴻,等.基于RBF神經(jīng)網(wǎng)絡(luò)的網(wǎng)格數(shù)據(jù)聚類方法[J].計算機應(yīng)用,2007,(2):25-27.
The Key Problem of BP Algorithm Application
TAO Bao-zhuang,FANG Hou-jia
(Department of Com puter,H uainan Unit University,H uainan 232001,China)
In this paper the use of BP algorithm should take into account the p roblems and techniques,in particular the choice of learning methods,hidden layers and hidden units,learning step the choice of method to avoid localminimum,the choice of learning samp les,the activation havemade the choiceof function in detail,and then test the app lication of BP netwo rk analysisof the chemical reaction catalyzed model.
BP algo rithm;hidden layer and hidden layer units;learning step;the study sample
TP301.6
A
1009-9735(2010)05-0039-03
2010-07-12
陶保壯(1972-),男,安徽淮南人,講師,碩士,研究方向:嵌入式系統(tǒng)開發(fā)與應(yīng)用;方厚加(1972-),男,安徽淮南人,講師,研究方向:數(shù)據(jù)通信與計算機網(wǎng)絡(luò)。