?

一種利用Gauss變異優化BP神經網絡的方法

2014-03-22 17:52王路等
現代電子技術 2014年6期
關鍵詞:動態調整BP神經網絡

王路等

摘 要: 為了克服傳統BP算法收斂速度慢和局部極小點等問題,提出了一種改進的BP網絡訓練方法,將改進的BP算法和遺傳算法相結合。首先引入遺傳算法中群體的概念,選取最好個體中的誤差作為最小誤差,其次利用Gauss變異生成的兩個小隨機數作為BP算法中的學習率和沖量系數,實現對兩個參數的動態調整,以達到對BP網絡的權值優化的目的。實驗結果表明,該方法有效提高了BP網絡的收斂速度,在訓練時間方面具有明顯的優越性,具有較好的實用性。

關鍵詞: BP神經網絡; Gauss變異; 學習率; 沖量系數; 動態調整

中圖分類號: TN911?34 文獻標識碼: A 文章編號: 1004?373X(2014)06?0012?03

0 引 言

神經網絡是一個黑箱模型,它具有很強的適應能力和學習能力,在人工智能、自動控制、模式識別、信號處理、預測及評價等方面都有著越來越廣泛的應用[1?3]。目前已經提出了多種訓練算法和網絡模型,其中應用最廣泛的是前饋型神經網絡。前饋型神經網絡訓練中使用最多的方法是誤差反向傳播(Back Propagation,BP)學習算法。BP算法系統地解決了多層網絡中隱含神經元連接權的學習問題,使BP 網絡成為應用最為廣泛的一種神經網絡模型。但是BP網絡也有一些不足[4?5]。比如:收斂速度太慢問題、局部極小點問題、網絡癱瘓問題、穩定性問題、步長問題等,極大地影響了神經網絡的進一步應用。很多學者對BP 網絡進行了深入研究并提出了許多改進的模型[6?9],這些改進模型的收斂速度比標準梯度法快數十倍,但它們仍都不是普遍適用的,都有著各自的優勢或缺陷。本文結合BP網絡的訓練過程,提出一種改進的BP網絡訓練方法,將Gauss變異與改進的BP算法相結合,對學習率參數和沖量系數進行動態調整,使得權值能很好的調整。避免了傳統的BP 算法容易陷入局部極小的問題,同時可以提高BP 算法的訓練速度,降低收斂時間。

1 BP神經網絡

BP 神經網絡是一種單向傳播的多層前饋網絡[1],它包含輸入層、中間層(隱層)和輸出層,是目前應用較多的一種模型。該算法在層次型網絡結構上采用誤差逆傳播學習方式,學習過程由正向傳播和誤差逆傳播組成。算法的主要思想是把學習過程分為兩個階段:第一階段是正向傳播過程,輸入信息從輸入層經中間層逐層計算各神經元的實際輸出值,每一層神經元的狀態只對下一層神經元的狀態產生影響;第二階段是反向傳播過程,若在輸出層未能得到期望的輸出值,則逐層遞歸計算實際輸出與期望輸出之間的差值,根據此誤差修正前一層權值使誤差信號趨向最小。它通過連續不斷地在相對于誤差函數斜率下降的方向上計算網絡權值和偏差變化而逐漸逼近目標。每一次權值和誤差的變化都與網絡誤差的影響成正比。

假設神經網絡輸出層有m個神經元,若輸出層第j個神經元與中間層第i個神經元之間權值為[wij],中間層第i個神經元的輸出為[Oi],閾值為[bj],則輸出層第j個神經元的輸入總和為其上層各單元加權和:

輸出實際值為:

若輸出期望值為[yj],則網絡關于第p個樣本的誤差函數定義為:

而將網絡關于整個樣本集的全局誤差函數定義為:

BP算法采用梯度下降法調整權值,每次調整的量為:

式中:[δj=f(netj)(yj-Oj)];[α]為學習率,它決定每一次訓練中的權值變化大小。

BP算法主要的優點是簡單、易于實現。但是BP 算法有兩個致命的缺陷:首先最大的缺陷是BP算法很可能陷入局部極小值,因為通常的誤差曲面都是凸凹不平的,會有多個極值點;另一個缺陷是收斂速度慢,當采用梯度下降法時步長不容易確定,步長太長則達不到精度,甚至會發散;太小則迭代步驟增加,收斂速度慢。鑒于此,目前對BP算法的改進主要集中在兩個方面:其一是避免陷入局部極小值,一旦陷入要想辦法逃出;其二是改進迭代算法,加快收斂速度。

2 Gauss變異與改進的BP算法相結合

BP算法的不足在一定程度上都與每次權值修改程度大小有關。如果每次訓練,權值都能向全局極小值方法進行修改,那么上述問題都能得到解決??捎眠z傳算法對BP算法中的學習率進行動態調整。初始時將學習率設大一些,加快算法的收斂。后期將學習率設小一些,以便可以找到全局極小值點。為了使算法的整體性能更高,采用將改進的BP算法和遺傳算法相結合。

2.1 改進的BP算法

BP網絡的訓練過程是根據樣本集對神經元之間的連接權進行調整的過程。其次,BP網絡執行的是有導師訓練。所以,其樣本集是由形如:

(輸入向量,理想輸出向量)

的向量對構成的。BP網絡接收樣本的順序會對訓練的結果有很大的影響。它更“偏愛”較后出現的樣本。如果每次循環都按照[(X1,Y1)],[(X2,Y2)],…,[(XS,YS)]所給定的順序進行訓練,在網絡“學成”投入運行后,對于與該樣本序列較后的樣本較接近的輸入,網絡所給出的輸出的精度將明顯高于與樣本序列較前的樣本較接近的輸入對應的輸出精度。所以算法應該避免“分別”、“依次”的出現。因此,不再“分別”、“依次”根據[(X1,Y1)],[(X2,Y2)],…,[(XS,YS)]對權值向量[W(1)],[W(2)],…,[W(M)]進行調整,而是用[(X1,Y1)],[(X2,Y2)],…,[(XS,YS)]的“總效果”去實施對[W(1)],[W(2)],…,[W(M)]的修改。獲取樣本集“總效果”的最簡單的辦法是?。?/p>

式中:∑表示對整個樣本集的求和;[Δpw(k)ij]代表神經元i到神經元j的連接權[w(k)ij]關于樣本[(Xp,Yp)]的調整量。

權值的本次修改要考慮上次修改的影響,以減少抖動問題。引入沖量系數[β],以將上次權值的調整量,進入當前權值的修改過程,平滑學習路徑??紤]上次修改的影響,本次權值的修改公式為[1]:

式中:[Δwij′]為上一次的修改量;[Oi]表示第i個神經元的輸出;[β]為沖量系數,通常取0~1之間的小數。因為[β]值較大時,雖能加快訓練速度,但影響精度及收斂性,太小又起不到影響本次權值修改的作用。因此,[β]的取值視具體問題由試驗確定。

上述算法較好地解決了因樣本的順序引起的精度問題和訓練的抖動問題。但是,該算法的收斂速度還是比較慢的。為了解決收斂速度問題,可以給每一個神經元增加一個偏移量來加快收斂速度。

2.2 Gauss變異調整學習率參數和沖量系數的基本思想

BP算法中,如果學習率步長、沖量系數不變,那么到后期可能由于步長太大從而不能繼續進行優化。所以步長應該進行動態調整。當權值進行調整時,可用Gauss變異生成兩個小的隨機數,并將這兩個小的隨機數作為學習率參數和沖量系數。

2.3 整體算法流程

為了避免讓算法陷入局部極小值點,將遺傳算法中群體的概念應用進來。生成N個個體,每個個體執行算法,算法運行完成后,選取最好個體中的誤差作為最小誤差。

每個個體執行的算法如下:

3 實驗及實驗結果分析

為了說明Gauss變異的有效性,將本文中的改進算法與不加入Gauss變異和群體概念的改進BP算法在收斂速度方面進行比較。采用Balance?scale數據集進行了算法驗證,該數據集的訓練樣本特征為4個,目標輸出類型有3種,本文采取200個4維樣本向量構造標準樣本空間,輸出為2維向量進行訓練,其收斂曲線對比如圖1所示。

圖1 訓練收斂曲線對比圖

圖1顯示的是迭代1 000次,算法的收斂速度。為了有可比性,初始權值設為固定值。從圖1中可以看出,加入Gauss變異后收斂速度大大提高。運行了幾個例子,都能得到這一結論。但對于不同的例子,產生的Gauss隨機數不能直接賦給學習率參數和沖量系數,還要根據不同的實際,對隨機數乘上不同的權值。這個權值是個經驗值,需要進行若干次實驗來確定一個比較優的值。

另外,用此算法對一個數據集進行分類,采用breast?cancer?wiscon數據集,訓練樣本和測試樣本根據Cross?validation[10]進行劃分。每個分區輪流作為測試樣本進行測試。由于breast?cancer?wiscon數據集比較簡單,分類屬性只有兩個值,所以只將分類屬性的值變換成0或1。BP網絡的輸出如果在[0,0.5]之間,則將屬性的值定為0;否則為1。算法參數設置如表1所示。

表1 算法參數設置

實驗結果如表2所示。

表2 實驗結果

從以上實驗結果可以得知,用Gauss變異動態調整學習率參數和沖量系數,可以加快算法的收斂速度,并且可以得到比較好的分類結果。但是,Gauss函數自變量和隨機數權值應取多大需要進行若干次實驗,才能確定一個比較好的值。

4 結 語

本文結合BP網絡的訓練過程,提出一種改進的BP網絡訓練方法,將Gauss變異與改進的BP算法相結合,對學習率參數和沖量系數進行動態調整,使權值得到很好的調整。實驗結果表明,此方法避免了傳統的BP 算法容易陷入局部極小的問題,在訓練時間和收斂速度方面均表現出更優的性能,具有比較好的實用性。

參考文獻

[1] 蔣宗禮.人工神經網絡導論[M].北京:高等教育出版社,2001.

[2] 張毅,楊建國.基于灰色神經網絡的機床熱誤差建模[J].上海交通大學學報,2011,45(11):1581?1585.

[3] 黃偉,何眸,夏暉.基于小波神經網絡的IP網絡流量預測[J].計算機科學,2011,38(10):296?298.

[4] 田景文,高美娟.人工神經網絡算法研究與應用[M].北京:北京理工大學出版社,2006.

[5] KUMAR S. Neural networks [M].北京:清華大學出版社,2006.

[6] YU X H, CHEN G A, CHENG S X. Dynamic learning rate optimization of the back propagation algorithm [J]. IEEE Transactions on Neural Networks, 1995: 6(3): 669?677.

[7] ROYCHOWDHURY P, SINGH Y P, CHANSARKAR R A. Dynamic tunneling technique for efficient training of multilayer perceptions [J]. IEEE Transactions on Neural Networks, 1999: 10(1): 48?55.

[8] 陳玉芳,雷霖.提高BP網絡收斂速率的又一種算法[J].計算機仿真,2004,21(11):74?79.

[9] 閻平凡,張長水.人工神經網絡與模擬進化計算[M].北京:清華大學出版社,2001.

[10] WITTEN I H, FRANK E.數據挖掘實用機器學習技術[M].北京:機械工業出版社,2006.

式中:[Δwij′]為上一次的修改量;[Oi]表示第i個神經元的輸出;[β]為沖量系數,通常取0~1之間的小數。因為[β]值較大時,雖能加快訓練速度,但影響精度及收斂性,太小又起不到影響本次權值修改的作用。因此,[β]的取值視具體問題由試驗確定。

上述算法較好地解決了因樣本的順序引起的精度問題和訓練的抖動問題。但是,該算法的收斂速度還是比較慢的。為了解決收斂速度問題,可以給每一個神經元增加一個偏移量來加快收斂速度。

2.2 Gauss變異調整學習率參數和沖量系數的基本思想

BP算法中,如果學習率步長、沖量系數不變,那么到后期可能由于步長太大從而不能繼續進行優化。所以步長應該進行動態調整。當權值進行調整時,可用Gauss變異生成兩個小的隨機數,并將這兩個小的隨機數作為學習率參數和沖量系數。

2.3 整體算法流程

為了避免讓算法陷入局部極小值點,將遺傳算法中群體的概念應用進來。生成N個個體,每個個體執行算法,算法運行完成后,選取最好個體中的誤差作為最小誤差。

每個個體執行的算法如下:

3 實驗及實驗結果分析

為了說明Gauss變異的有效性,將本文中的改進算法與不加入Gauss變異和群體概念的改進BP算法在收斂速度方面進行比較。采用Balance?scale數據集進行了算法驗證,該數據集的訓練樣本特征為4個,目標輸出類型有3種,本文采取200個4維樣本向量構造標準樣本空間,輸出為2維向量進行訓練,其收斂曲線對比如圖1所示。

圖1 訓練收斂曲線對比圖

圖1顯示的是迭代1 000次,算法的收斂速度。為了有可比性,初始權值設為固定值。從圖1中可以看出,加入Gauss變異后收斂速度大大提高。運行了幾個例子,都能得到這一結論。但對于不同的例子,產生的Gauss隨機數不能直接賦給學習率參數和沖量系數,還要根據不同的實際,對隨機數乘上不同的權值。這個權值是個經驗值,需要進行若干次實驗來確定一個比較優的值。

另外,用此算法對一個數據集進行分類,采用breast?cancer?wiscon數據集,訓練樣本和測試樣本根據Cross?validation[10]進行劃分。每個分區輪流作為測試樣本進行測試。由于breast?cancer?wiscon數據集比較簡單,分類屬性只有兩個值,所以只將分類屬性的值變換成0或1。BP網絡的輸出如果在[0,0.5]之間,則將屬性的值定為0;否則為1。算法參數設置如表1所示。

表1 算法參數設置

實驗結果如表2所示。

表2 實驗結果

從以上實驗結果可以得知,用Gauss變異動態調整學習率參數和沖量系數,可以加快算法的收斂速度,并且可以得到比較好的分類結果。但是,Gauss函數自變量和隨機數權值應取多大需要進行若干次實驗,才能確定一個比較好的值。

4 結 語

本文結合BP網絡的訓練過程,提出一種改進的BP網絡訓練方法,將Gauss變異與改進的BP算法相結合,對學習率參數和沖量系數進行動態調整,使權值得到很好的調整。實驗結果表明,此方法避免了傳統的BP 算法容易陷入局部極小的問題,在訓練時間和收斂速度方面均表現出更優的性能,具有比較好的實用性。

參考文獻

[1] 蔣宗禮.人工神經網絡導論[M].北京:高等教育出版社,2001.

[2] 張毅,楊建國.基于灰色神經網絡的機床熱誤差建模[J].上海交通大學學報,2011,45(11):1581?1585.

[3] 黃偉,何眸,夏暉.基于小波神經網絡的IP網絡流量預測[J].計算機科學,2011,38(10):296?298.

[4] 田景文,高美娟.人工神經網絡算法研究與應用[M].北京:北京理工大學出版社,2006.

[5] KUMAR S. Neural networks [M].北京:清華大學出版社,2006.

[6] YU X H, CHEN G A, CHENG S X. Dynamic learning rate optimization of the back propagation algorithm [J]. IEEE Transactions on Neural Networks, 1995: 6(3): 669?677.

[7] ROYCHOWDHURY P, SINGH Y P, CHANSARKAR R A. Dynamic tunneling technique for efficient training of multilayer perceptions [J]. IEEE Transactions on Neural Networks, 1999: 10(1): 48?55.

[8] 陳玉芳,雷霖.提高BP網絡收斂速率的又一種算法[J].計算機仿真,2004,21(11):74?79.

[9] 閻平凡,張長水.人工神經網絡與模擬進化計算[M].北京:清華大學出版社,2001.

[10] WITTEN I H, FRANK E.數據挖掘實用機器學習技術[M].北京:機械工業出版社,2006.

式中:[Δwij′]為上一次的修改量;[Oi]表示第i個神經元的輸出;[β]為沖量系數,通常取0~1之間的小數。因為[β]值較大時,雖能加快訓練速度,但影響精度及收斂性,太小又起不到影響本次權值修改的作用。因此,[β]的取值視具體問題由試驗確定。

上述算法較好地解決了因樣本的順序引起的精度問題和訓練的抖動問題。但是,該算法的收斂速度還是比較慢的。為了解決收斂速度問題,可以給每一個神經元增加一個偏移量來加快收斂速度。

2.2 Gauss變異調整學習率參數和沖量系數的基本思想

BP算法中,如果學習率步長、沖量系數不變,那么到后期可能由于步長太大從而不能繼續進行優化。所以步長應該進行動態調整。當權值進行調整時,可用Gauss變異生成兩個小的隨機數,并將這兩個小的隨機數作為學習率參數和沖量系數。

2.3 整體算法流程

為了避免讓算法陷入局部極小值點,將遺傳算法中群體的概念應用進來。生成N個個體,每個個體執行算法,算法運行完成后,選取最好個體中的誤差作為最小誤差。

每個個體執行的算法如下:

3 實驗及實驗結果分析

為了說明Gauss變異的有效性,將本文中的改進算法與不加入Gauss變異和群體概念的改進BP算法在收斂速度方面進行比較。采用Balance?scale數據集進行了算法驗證,該數據集的訓練樣本特征為4個,目標輸出類型有3種,本文采取200個4維樣本向量構造標準樣本空間,輸出為2維向量進行訓練,其收斂曲線對比如圖1所示。

圖1 訓練收斂曲線對比圖

圖1顯示的是迭代1 000次,算法的收斂速度。為了有可比性,初始權值設為固定值。從圖1中可以看出,加入Gauss變異后收斂速度大大提高。運行了幾個例子,都能得到這一結論。但對于不同的例子,產生的Gauss隨機數不能直接賦給學習率參數和沖量系數,還要根據不同的實際,對隨機數乘上不同的權值。這個權值是個經驗值,需要進行若干次實驗來確定一個比較優的值。

另外,用此算法對一個數據集進行分類,采用breast?cancer?wiscon數據集,訓練樣本和測試樣本根據Cross?validation[10]進行劃分。每個分區輪流作為測試樣本進行測試。由于breast?cancer?wiscon數據集比較簡單,分類屬性只有兩個值,所以只將分類屬性的值變換成0或1。BP網絡的輸出如果在[0,0.5]之間,則將屬性的值定為0;否則為1。算法參數設置如表1所示。

表1 算法參數設置

實驗結果如表2所示。

表2 實驗結果

從以上實驗結果可以得知,用Gauss變異動態調整學習率參數和沖量系數,可以加快算法的收斂速度,并且可以得到比較好的分類結果。但是,Gauss函數自變量和隨機數權值應取多大需要進行若干次實驗,才能確定一個比較好的值。

4 結 語

本文結合BP網絡的訓練過程,提出一種改進的BP網絡訓練方法,將Gauss變異與改進的BP算法相結合,對學習率參數和沖量系數進行動態調整,使權值得到很好的調整。實驗結果表明,此方法避免了傳統的BP 算法容易陷入局部極小的問題,在訓練時間和收斂速度方面均表現出更優的性能,具有比較好的實用性。

參考文獻

[1] 蔣宗禮.人工神經網絡導論[M].北京:高等教育出版社,2001.

[2] 張毅,楊建國.基于灰色神經網絡的機床熱誤差建模[J].上海交通大學學報,2011,45(11):1581?1585.

[3] 黃偉,何眸,夏暉.基于小波神經網絡的IP網絡流量預測[J].計算機科學,2011,38(10):296?298.

[4] 田景文,高美娟.人工神經網絡算法研究與應用[M].北京:北京理工大學出版社,2006.

[5] KUMAR S. Neural networks [M].北京:清華大學出版社,2006.

[6] YU X H, CHEN G A, CHENG S X. Dynamic learning rate optimization of the back propagation algorithm [J]. IEEE Transactions on Neural Networks, 1995: 6(3): 669?677.

[7] ROYCHOWDHURY P, SINGH Y P, CHANSARKAR R A. Dynamic tunneling technique for efficient training of multilayer perceptions [J]. IEEE Transactions on Neural Networks, 1999: 10(1): 48?55.

[8] 陳玉芳,雷霖.提高BP網絡收斂速率的又一種算法[J].計算機仿真,2004,21(11):74?79.

[9] 閻平凡,張長水.人工神經網絡與模擬進化計算[M].北京:清華大學出版社,2001.

[10] WITTEN I H, FRANK E.數據挖掘實用機器學習技術[M].北京:機械工業出版社,2006.

猜你喜歡
動態調整BP神經網絡
分段堆場的動態調度方法
我國上市公司資本結構動態調整的初步研究
就bp神經網絡銀行選址模型的相關研究
基于DEA—GA—BP的建設工程評標方法研究
復雜背景下的手勢識別方法
BP神經網絡在軟件質量評價中的應用研究 
建立和完善我國貧困縣退出機制問題研究
BP神經網絡算法在數值預報產品釋用中的應用
需求估計理論下的高職專業設置動態調整研究與實踐
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合