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