[摘要] BP神經(jīng)網(wǎng)絡(luò)方法數(shù)據(jù)可并行處理,該方法處理信息能力強(qiáng),自身具有學(xué)習(xí)、聯(lián)想和記憶的能力,避免了傳統(tǒng)方法的局限性與專家評(píng)價(jià)的主觀隨意性,以及由于數(shù)據(jù)來源的單一導(dǎo)致的評(píng)價(jià)模型與評(píng)價(jià)對(duì)象之間不客觀的簡化;但它也存在網(wǎng)絡(luò)的訓(xùn)練時(shí)間過長、易陷入局部極小值、完全不能訓(xùn)練等缺點(diǎn)。本文提出的神經(jīng)網(wǎng)絡(luò)融合技術(shù)算法是利用主成分分析法、粒子群算法與BP算法相融合,克服了BP算法的訓(xùn)練時(shí)間長、易陷入局部極小值的缺點(diǎn),并在模型的確定和收斂性上給出了理論證明。
[關(guān)鍵詞] BP算法;主成分分析;粒子群
doi : 10 . 3969 / j . issn . 1673 - 0194 . 2011 . 22. 025
[中圖分類號(hào)]TP183 [文獻(xiàn)標(biāo)識(shí)碼]A [文章編號(hào)]1673 - 0194(2011)22- 0045- 03
1BP神經(jīng)網(wǎng)絡(luò)
1.1 BP算法基本思想
BP神經(jīng)網(wǎng)絡(luò)是一種多層前饋型神經(jīng)網(wǎng)絡(luò),因其梯度的調(diào)整方法采用的是反向傳播(Back Propagation),因此稱為BP神經(jīng)網(wǎng)絡(luò)。Rumelhart[1]等學(xué)者1986年提出了誤差反向傳播(BP)權(quán)重調(diào)整算法。BP算法是一種有導(dǎo)師學(xué)習(xí)算法,算法的基本思想是,由正向的計(jì)算傳播與誤差的反向傳播構(gòu)成了學(xué)習(xí)過程中信息傳遞的過程,并通過不斷調(diào)整權(quán)重使輸出值逐漸接近于期望值。正向傳播過程中,樣本信息由輸入層傳入,經(jīng)過各隱含層的逐層處理后,最終傳向輸出層。如果輸出層的實(shí)際輸出值與期望值不相符,則計(jì)算輸出值與期望值之間的誤差,然后轉(zhuǎn)入誤差的反向傳播階段。誤差的反向傳播過程是以某種形式將輸出的信號(hào)誤差通過各隱含層逐層傳播至輸入層,并將誤差分?jǐn)偨o各層中所有節(jié)點(diǎn),從而得到各層節(jié)點(diǎn)的誤差信號(hào),將其作為權(quán)重調(diào)整的依據(jù)。調(diào)整后再重新進(jìn)行正向傳播計(jì)算處理,不斷重復(fù),直至網(wǎng)絡(luò)輸出誤差減小到限定范圍之內(nèi)。權(quán)重調(diào)整的過程也就是網(wǎng)絡(luò)的學(xué)習(xí)訓(xùn)練過程。
1.2 BP算法的優(yōu)缺點(diǎn)
BP神經(jīng)網(wǎng)絡(luò)算法數(shù)據(jù)可并行處理,該方法處理信息能力強(qiáng),自身具有學(xué)習(xí)、聯(lián)想和記憶的能力,避免了傳統(tǒng)方法的局限性與專家評(píng)價(jià)的主觀隨意性,以及由于數(shù)據(jù)來源的單一導(dǎo)致的評(píng)價(jià)模型與評(píng)價(jià)對(duì)象之間不客觀的簡化。同時(shí),BP神經(jīng)網(wǎng)絡(luò)方法具有很好的模型組織形式和計(jì)算機(jī)工作平臺(tái),是評(píng)價(jià)技術(shù)的發(fā)展前進(jìn)的方向。
由于傳統(tǒng)的BP神經(jīng)網(wǎng)絡(luò)算法確定權(quán)重時(shí)所采用的學(xué)習(xí)算法是基于梯度下降的,它不可避免地存在著訓(xùn)練時(shí)間長、收斂速度慢、易陷于局部極小值以及完全不能訓(xùn)練等問題[2]。
2基于神經(jīng)網(wǎng)絡(luò)融合技術(shù)算法的提出
針對(duì)BP神經(jīng)網(wǎng)絡(luò)的不足,本文設(shè)計(jì)了改進(jìn)的BP算法,提出的基于神經(jīng)網(wǎng)絡(luò)融合技術(shù)算法。利用BP神經(jīng)網(wǎng)絡(luò)與粒子群、主成分分析法相融合的方法建立新的算法。
2.1 模型網(wǎng)絡(luò)層數(shù)的確定
Lippmann[3]曾指出有兩個(gè)隱含層就可以解決任何形式的分類問題。Hecht-Nielsen[4]證明了帶有足夠多隱單元的網(wǎng)絡(luò)能夠用來逼近任何從[0,1]n到[0,1]n的映射,Funahashi和Hecht-Nielsen[4]分別證明了三層網(wǎng)絡(luò)所實(shí)現(xiàn)的映射可以一致逼近緊集上的連續(xù)函數(shù)或按L2范數(shù)逼近緊集上平方可積函數(shù)。因此,一個(gè)三層的網(wǎng)絡(luò)已有豐富的實(shí)現(xiàn)映射或逼近能力。
BP網(wǎng)絡(luò)所具有的最大的特點(diǎn)是非線性函數(shù)的逼近,而且只含有一個(gè)隱含層的BP網(wǎng)絡(luò)即可完成此任務(wù)。所以,從實(shí)用的角度出發(fā),本文設(shè)計(jì)的算法采用三層神經(jīng)網(wǎng)絡(luò)的模型。
2.2 模型網(wǎng)絡(luò)結(jié)構(gòu)的設(shè)計(jì)及其依據(jù)
網(wǎng)絡(luò)結(jié)構(gòu)的設(shè)計(jì)是神經(jīng)網(wǎng)絡(luò)的一個(gè)重要問題。網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計(jì)的重點(diǎn)與難點(diǎn)在于隱含層結(jié)構(gòu)的設(shè)計(jì)。確定隱含層的結(jié)構(gòu)在很大程度上決定著網(wǎng)絡(luò)的記憶容量、泛化能力、訓(xùn)練速度和輸出響應(yīng)的質(zhì)量。
2.2.1 輸入輸出節(jié)點(diǎn)數(shù)的確定
輸入節(jié)點(diǎn)的確定一般是根據(jù)要訓(xùn)練樣本的指標(biāo)體系來確定的,有多少個(gè)評(píng)價(jià)指標(biāo)就有多少輸入節(jié)點(diǎn)數(shù)。本文設(shè)計(jì)的基于神經(jīng)網(wǎng)絡(luò)融合技術(shù)的算法采用主成分分析法對(duì)影響較小的評(píng)價(jià)因素進(jìn)行合理的刪除,以達(dá)到減少神經(jīng)網(wǎng)絡(luò)訓(xùn)練的時(shí)間,提高神經(jīng)網(wǎng)絡(luò)性能的目的。
2.2.2 隱節(jié)點(diǎn)數(shù)目確定理論及方法
用于選擇最佳隱含層單元數(shù)的參考公式如下:
在實(shí)際應(yīng)用通常是選擇每種方法分別驗(yàn)證其最佳隱含層單元數(shù);可以利用方法(1)、(2)、(3)綜合確定最佳隱含層的邊界數(shù),n1(max),n1(min),然后從最大隱含層單元數(shù)n1(max)開始訓(xùn)練網(wǎng)絡(luò),逐個(gè)減少單元數(shù),驗(yàn)證到n1(min),一共驗(yàn)證n1(max)-n1(min)+1次,根據(jù)訓(xùn)練結(jié)果選取最佳隱含層單元數(shù)。
2.3 基于神經(jīng)網(wǎng)絡(luò)融合技術(shù)算法的設(shè)計(jì)
基于神經(jīng)網(wǎng)絡(luò)融合技術(shù)算法的迭代步驟:
Step 1:對(duì)待定評(píng)價(jià)指標(biāo)體系的數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化處理。
Step 2:計(jì)算樣本相關(guān)系數(shù)矩陣R。
Step 3:求解相關(guān)系數(shù)矩陣R的特征值。
Step 4:選取s個(gè)主成分:通過計(jì)算累積貢獻(xiàn)率確定主成分個(gè)數(shù)。
Step 5:設(shè)定神經(jīng)網(wǎng)絡(luò)的輸入層神經(jīng)元的個(gè)數(shù),即上面所選出的評(píng)價(jià)指標(biāo)體系(主成分)的個(gè)數(shù);隱含層神經(jīng)元的個(gè)數(shù)t(由隱含層節(jié)點(diǎn)數(shù)公式確定);輸出層的神經(jīng)元個(gè)數(shù)(一個(gè)輸出元)。
Step 6: 初始化每個(gè)種群的規(guī)模、維數(shù)及每個(gè)粒子的速度、位置(隨機(jī)產(chǎn)生)。
Step 7:把每一粒子映射成神經(jīng)網(wǎng)絡(luò)的權(quán)值和閾值。
Step 8: 從樣本空間隨機(jī)抽取樣本進(jìn)行神經(jīng)網(wǎng)絡(luò)訓(xùn)練。
按照當(dāng)前初始化的權(quán)值、閾值計(jì)算樣本的輸出值。
通過公式計(jì)算出每個(gè)訓(xùn)練樣本的輸出值誤差。
In=(Ya-ya)2
ya為期望輸出值;
計(jì)算每一個(gè)個(gè)體評(píng)價(jià)(即每一個(gè)粒子)的適應(yīng)度,其中n為樣本總數(shù)。同理計(jì)算出所有樣本的適應(yīng)度。
Step 9:比較粒子的適應(yīng)度,并通過比較確定每一個(gè)粒子的全局最優(yōu)值與個(gè)體極值點(diǎn)。
若Ppresent 若Present 其中,Ppresent為當(dāng)前粒子的適應(yīng)度,Pbest為粒子的個(gè)體極值的適應(yīng)度,gbest為全局最優(yōu)值的適應(yīng)度,Pid為個(gè)體極值,Pgd為全局最優(yōu)值,d為粒子的維數(shù)。 Step 10: 考察粒子的適應(yīng)度和當(dāng)前最大迭代次數(shù),若誤差足夠小或達(dá)到最大迭代次數(shù)則退出;否則進(jìn)入下一步。 Step 11:更新每個(gè)粒子的位置和速度,粒子通過以下公式來更新其速度和位置 vid(t+1)=ηvid(t)+c1rand()(pid(t)-wid(t))+c2rand(pgd(t)-wid(t))(1) wid(t+1)=wid(t)+vid(t+1)(2) 其中,rand()為[0,1]之間的隨機(jī)數(shù),c1,c2是加速因子,正常數(shù)η是慣性因子。慣性權(quán)重η采用以下公式自適應(yīng)調(diào)整,以平衡PSO算法的全局和局部搜索能力,其中wid(t),d=(u,v)代表式每一個(gè)權(quán)值和閾值; 式中,ηmax為最大慣性權(quán)重,ηmin為最小慣性權(quán)重,run為當(dāng)前迭代次數(shù),runmax為算法總迭代次數(shù);一般取,ηmax=0.9,ηmin=0.1~0.4。 另外,粒子的速度vid應(yīng)該在最大值vmax的范圍內(nèi),如vid(t+1)>vmax,則rid(t+1)=vmax; vid(t+1)<vmax,則vid(t+1)=-vmax;否則vid(t+1)不變。 粒子群的初始位置和速度隨機(jī)產(chǎn)生。 考慮粒子的位置: 若wid(t+1)>wmax,則wid(t+1)=wmax; 若wid(t+1) 生成新的粒子。 Step 12:返回Step 8。 3神經(jīng)網(wǎng)絡(luò)融合技術(shù)算法的收斂性分析 定理1 采用粒子群算法對(duì)權(quán)重進(jìn)行搜索時(shí),令 ?準(zhǔn)=?準(zhǔn)1+?準(zhǔn)2,其中,?準(zhǔn)1=c1rand1(),?準(zhǔn)2=c2rand2(),則當(dāng)|?準(zhǔn)-η-1|<2時(shí),可搜索到最優(yōu)權(quán)重(最優(yōu)粒子)。 證明:設(shè)第t代搜索時(shí),pid(t)=pid,pgd(t)=pgd 由搜索的公式(1)、(2),則有 vid(t+1)=ηvid(t)-?準(zhǔn)wid(t)+?準(zhǔn)1 pid+?準(zhǔn)2 pgd(3) wid(t+1)=(1-?準(zhǔn)1-?準(zhǔn)2)wid(t)-ηvid(t)+?準(zhǔn)1 pid+?準(zhǔn)2 pgd(4) 其中,?準(zhǔn)=?準(zhǔn)1+?準(zhǔn)2。 化為如下矩陣形式: vid(t+1)wid(t+1)=η 1-?準(zhǔn)η -?準(zhǔn)vid(t)wid(t)+?準(zhǔn)1 ?準(zhǔn)2?準(zhǔn)1 ?準(zhǔn)2pidpgd =Gvid(t)wid(t)+Bpi(t)pg(t)(5) 其中,G=η 1-?準(zhǔn)η -?準(zhǔn),B=?準(zhǔn)1 ?準(zhǔn)2?準(zhǔn)1 ?準(zhǔn)2,?準(zhǔn)=?準(zhǔn)1+?準(zhǔn)。 式(5)即為標(biāo)準(zhǔn)的離散時(shí)間線性系統(tǒng)方程。 初始條件為: wid(0)=awmax;vid(0)=avmax a是[-1.1]區(qū)間均勻分布的隨機(jī)數(shù)。 由線性離散時(shí)間系統(tǒng)的穩(wěn)定依據(jù),粒子(權(quán)重)的狀態(tài)決定于矩陣G的特征值。系統(tǒng)穩(wěn)定(即t→∞時(shí),wid(t)趨于某一定值)的充分必要條件是:G的全部特征值λ1,λ2的振幅均小于1。 G的特征方程為λ2-(η+1-?準(zhǔn))λ+η=0 上述參數(shù)的選擇,只保證了權(quán)重搜索到最優(yōu)值,至于是否局部最優(yōu)或全局最優(yōu)則沒有保證。但是上述的分析假設(shè)Pgd(t)不變,而實(shí)際在搜索過程中,正是因?yàn)殡S著迭代的持續(xù)進(jìn)行Pgd(t)在不斷進(jìn)化保證了全局最優(yōu)化。又因?yàn)棣鞘潜WC搜索過程全局收斂能力和局部收斂能力的平衡系數(shù)。當(dāng)η值大時(shí),全局搜索能力強(qiáng),用于搜索尋優(yōu)的初始階段;η值小時(shí),局部尋優(yōu)能力強(qiáng),主要用于搜索的后期階段。η隨著訓(xùn)練次數(shù)的增加逐漸減小,保證了權(quán)重能夠搜索到全局最優(yōu)值。 定理2 如果在權(quán)重搜索中保留每一代權(quán)重搜索獲得的最優(yōu)解,則隨著迭代的不斷進(jìn)行,誤差將達(dá)到全局最優(yōu)解,即算法得到全局最優(yōu)解。 證明:從算法的權(quán)重搜索過程可知,每一代中的全局最小適應(yīng)度記為一組,即精英組;局部最小適應(yīng)度記為一組,即普通組。 I(X)=gbest 為當(dāng)前適應(yīng)值最小的一個(gè)個(gè)體,以前每一代的最小適應(yīng)度分別表示為g1,g2,…,gn。 于是有有序序列g(shù)1>g2>,…,>gn>gbest。 由粒子更新的條件可知,上式是顯然成立的。 另外普通組中的個(gè)體的適應(yīng)度也都在規(guī)定的區(qū)間上,由于我們需要的最優(yōu)解始終從精英組中產(chǎn)生,因此不妨將普通組視為一個(gè)整體,用Pbest表示,這樣就可以得到一個(gè)非增的有界序列 Pbest>g1>g2>,…,>gn>gbest 這樣的序列是有界單調(diào)的,必然存在極限 其中常數(shù)M為數(shù)列的上界,極限值即為適應(yīng)度的全局最優(yōu)值。 又因?yàn)檫m應(yīng)度是全部訓(xùn)練樣本的誤差平均值,所以此時(shí)算法能得到全局最優(yōu)解。 4基于神經(jīng)網(wǎng)絡(luò)融合技術(shù)算法泛化能力的討論 基于神經(jīng)網(wǎng)絡(luò)融合技術(shù)算法不僅使得網(wǎng)絡(luò)的訓(xùn)練能力得到提高,其泛化能力也有所提高。算法對(duì)泛化能力的提高主要體現(xiàn)在以下兩個(gè)方面。 4.1 神經(jīng)網(wǎng)絡(luò)的訓(xùn)練時(shí)間 神經(jīng)網(wǎng)絡(luò)的訓(xùn)練時(shí)間指的是神經(jīng)網(wǎng)絡(luò)的訓(xùn)練次數(shù)。神經(jīng)網(wǎng)絡(luò)訓(xùn)練次數(shù)過多必然會(huì)增加訓(xùn)練的時(shí)間,從而使得泛化誤差逐步增加。本文所設(shè)計(jì)的算法由于減少了輸入的神經(jīng)元個(gè)數(shù)和避免了梯度下降法對(duì)權(quán)值調(diào)節(jié)的不穩(wěn)定,從而使得訓(xùn)練的時(shí)間大為縮短,對(duì)于減少泛化誤差的影響會(huì)起到較好的作用。 4.2 神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu) 神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)復(fù)雜性是指神經(jīng)網(wǎng)絡(luò)的規(guī)模或容量,主要是指結(jié)構(gòu)的確定。對(duì)于神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的設(shè)計(jì),本文采用主成分分析法,通過計(jì)算累計(jì)貢獻(xiàn)率,剔除了影響較小的評(píng)價(jià)因素。避免了訓(xùn)練樣本的評(píng)價(jià)指標(biāo)過多對(duì)神經(jīng)網(wǎng)絡(luò)訓(xùn)練的影響,用較少的評(píng)價(jià)指標(biāo)體系代替了原有的過于龐大復(fù)雜的指標(biāo)體系,合理地減少了輸入單元的個(gè)數(shù)。由于對(duì)樣本的體系進(jìn)行了約簡,使得用較少的因素就能得到同樣的評(píng)價(jià)效果,自然就提高了樣本本身的質(zhì)量,使神經(jīng)網(wǎng)絡(luò)泛化能力有所增強(qiáng)。 隨著隱節(jié)點(diǎn)數(shù)的增加泛化誤差會(huì)變大,就會(huì)出現(xiàn)過擬合現(xiàn)象;隱節(jié)點(diǎn)數(shù)選取少了則抽取能力太弱,不能充分利用樣本信息,訓(xùn)練過程無法收斂,從而得不到想要的最優(yōu)解。而本文算法保證了隱節(jié)點(diǎn)數(shù)選取的合理性,進(jìn)而保證了算法的泛化能力。 5結(jié)論 本文設(shè)計(jì)了神經(jīng)網(wǎng)絡(luò)融合技術(shù)算法。首先,在網(wǎng)絡(luò)結(jié)構(gòu)的設(shè)計(jì)上(如:網(wǎng)絡(luò)層數(shù)與隱節(jié)點(diǎn)數(shù)),通過理論分析保證了結(jié)構(gòu)的最優(yōu)。其次,利用主成分分析法確定神經(jīng)網(wǎng)絡(luò)的輸入端的向量個(gè)數(shù),從而合理地去除了輸入端的冗余信息,有效地提高了算法的訓(xùn)練速度。再次,把每一粒子映射成神經(jīng)網(wǎng)絡(luò)網(wǎng)絡(luò)的權(quán)值和閾值,通過粒子群的迭代方法對(duì)權(quán)值進(jìn)行訓(xùn)練,能夠縮短網(wǎng)絡(luò)的訓(xùn)練時(shí)間,能夠改善BP算法性能,使其不易陷入局部極小值,以增強(qiáng)其泛化性能。 主要參考文獻(xiàn) [1]D E Rumelhart,J L McClelland,The PDP Research Group.Parallel Distributed Processing:Explorations in the microstnucture of Cognition[M].Cambridge,MA:MIT Press,1986. [2]鐘珞,饒文碧,鄒承明.人工神經(jīng)網(wǎng)絡(luò)及其融合應(yīng)用技術(shù)[M].北京:科學(xué)教育出版社,2007. [3]R Lippmann. An Introduction to Computing with Neural Nets [J]. IEEEASSP Magazine,1987,4(2):4-22. [4]R Heche-Nielson. Kolmogorov’s Mapping Neural Network Existence Theorem[C]//Proceedings of 1st IEEE Interna-tional Conference on Neural Networks,1987:11-13. [5]劉甘娜,等.多媒體應(yīng)用基礎(chǔ)[M].北京:電子工業(yè)出版社,1998.