摘要:BP神經(jīng)網(wǎng)絡可以有效地對非線性系統(tǒng)進行逼近,但是傳統(tǒng)的最速下降搜索方法存在收斂速度慢的問題。本文提出把BP神經(jīng)網(wǎng)絡轉(zhuǎn)化為最優(yōu)化問題,用一種共軛梯度算法代替最速下降法進行搜索迭代,極大地提高了收斂速度。
關(guān)鍵詞:神經(jīng)網(wǎng)絡; 最優(yōu)化;一種共軛梯度算法
中圖分類號:TP183文獻標識碼:A 文章編號:1009-3044(2008)12-20000-00
Training BP Neural Network using optimization methods
LI Xiang ,SU Cheng
(College of computer science,China University of Mining and Technology, Xuzhou 221000,China)
Abstract:BP neural network can efficiently approximate any nonlinear system, but there is a problem of inefficient learning speed with the conventional steepest descent algorithm. In this paper, we try to convert neural network to an optimization model, and apply conjugate gradient algorithm to it to bring a faster learning speed.
Keywords:Neural network ;Optimization ; Conjugate gradient algorithm
1 BP神經(jīng)網(wǎng)絡模型
BP(前饋式)神經(jīng)網(wǎng)絡結(jié)構(gòu)簡單,可操作性強,能模擬任意的非線性輸入輸出系統(tǒng),是目前應用廣泛的神經(jīng)網(wǎng)絡模型。BP網(wǎng)絡由輸入層i、隱含層j、輸出層k及各層之間的節(jié)點連接權(quán)組成,神經(jīng)元拓撲如圖1:
網(wǎng)絡的學習過程由信息正向傳播和誤差反向傳播構(gòu)成:
正向傳播過程:輸入信息從輸入層經(jīng)隱含層逐層處理,傳向輸出層。若輸出層的實際輸出與期望的輸出不符,則轉(zhuǎn)入誤差的反向傳播。典型的BP神經(jīng)網(wǎng)絡模型如圖2所示:
設網(wǎng)絡中各個參數(shù)如下:
xi為輸入信號,yi為實際輸出信號,Yi為期望輸出信號wi為對應于各個輸入信號的連接權(quán)值,θ為閾值,ε為給定的誤差。
(1)輸入層:輸入值一般為樣本各分量輸入值,輸出值一般等于輸入值xi 。
(2)隱含層:對于節(jié)點j,其輸入值hj為其前一層各節(jié)點輸出值xi的加權(quán)和,它的輸出值為:
(lixiang03.tif)
(3)輸出層:輸出層類似于隱含層(lixiang04.tif)
神經(jīng)元結(jié)點的作用函數(shù)一般選用Sigmoid函數(shù),即:(lixiang05.tif)
誤差函數(shù)一般選用(lixiang06.tif)
神經(jīng)網(wǎng)絡的訓練過程就是按最小誤差準則來不斷調(diào)整網(wǎng)絡結(jié)點的權(quán)值,直至誤差<ε。
可以看到,BP神經(jīng)網(wǎng)絡實際可轉(zhuǎn)化為求解一個最優(yōu)化問題,它的目標函數(shù)是(lixiang07.tif)。
2 最速下降法
2.1 基本搜索方法
針對神經(jīng)網(wǎng)絡的最優(yōu)化問題,傳統(tǒng)的搜索方法選用最速下降法,即通過多次迭代,對網(wǎng)絡權(quán)值進行修正,使誤差目標函數(shù)沿負梯度方向下降,迭代的公式如下:
(lixiang08.tif)
這種方法在剛開始幾步有較好的收斂效果,但當?shù)钊牒笕菀紫萑胝袷?,出現(xiàn)鋸齒現(xiàn)象,導致結(jié)果精度不夠,訓練過程較長。
2.2 純梯度方法的改進
針對最速下降法收斂速度慢的問題,很多研究者提出了一些改進方法,主要有以下幾種:
(1)確定學習率
在基本網(wǎng)絡算法中,Δwi=wi(t+1)-wi(t)引用了固定的學習率η=1,為了更好的控制網(wǎng)絡的收斂性和學習速度,可以根據(jù)需要選擇自適應的變學習率,一般取0<η<1。 其權(quán)值調(diào)整公式如下:
(lixiang10.tif)
學習步長η是網(wǎng)絡學習的一個重要參數(shù),在一定程度上也決定了網(wǎng)絡的收斂速度。學習步長過小會導致權(quán)重值更新量過小,因而使收斂非常緩慢;學習步長過大又會導致在極值點附近振蕩的可能性加大,乃至反復振蕩而難以收斂。具體數(shù)值應根據(jù)對誤差函數(shù)的影響來決定。
(2)加入動量項
這種措施又稱為慣性校正法,其權(quán)值調(diào)整公式可用下式表示:
(lixiang11.tif)
α為動量系數(shù),這種方法在調(diào)整權(quán)值時,不僅考慮了本次迭代,而且兼顧上次的調(diào)整結(jié)果,能夠在加速收斂的同時一定程度地抑制振蕩。
(3)改進誤差函數(shù)
在基本網(wǎng)絡算法中,引用的誤差函數(shù)是(lixiang12.tif)。可以看到,這是一個誤差的絕對量,不能有效地表征樣本的相對誤差程度。對于某個節(jié)點會出現(xiàn)誤差的絕對量很大但是比例卻很小的情況。為了避免上述問題,引入相對誤差函數(shù):
首先,對(lixiang13.tif)變形,(lixiang14.tif),把不含有實際輸出的Y提出,得到相對誤差函數(shù)(lixiang15.tif)。相對誤差函數(shù)Jp使用誤差量的相對比例來表征樣本誤差ε ,具有更好的效果。
類似的針對最速下降法的改進方法還有很多,但是它們無法從根本上解決純梯度方法的局部振蕩性,收斂速度慢的問題仍然有待解決。
為了解決收斂速度慢的問題,本文采用共軛梯度法代替沿負梯度方向的最速下降法,它比最速下降法在收斂速度上有很大的改進。
3 共軛梯度法
3.1 共軛梯度法原理Jp
共軛梯度法是求解無約束優(yōu)化問題 (lixiang16.tif)的一類非常有效的方法,它的迭代格式為
(lixiang17.tif)
其中,(lixiang29.tif),dk為搜索方向,而αk>0是通過某種線搜索獲得的步長。純量βk的選取應滿足共軛性,βk的不同取法構(gòu)成了不同的共軛梯度法。常用的有FR相關(guān)法(lixiang18.tif)和PRP相關(guān)法(lixiang19.tif)。為保證算法的強收斂性,本文選取一種新的共軛梯度法,它的βk公式如下:
(lixiang20.tif)
選取這種共軛梯度法的理由在于它在Wolfe搜索
(lixiang21.tif)
下具有全局收斂性質(zhì)并且計算效果好于PRP等算法[1]。
3.2 搜索算法描述
首先采用最速下降法先達到一個初步精度W(0)。實驗表明,最速下降法“開局”的收斂速度是較好的。
第二階段采用共軛梯度法,步驟如下:
(1)把最速下降法得到的初步精度作為初始權(quán)值W(0),并選定誤差最終精度值ε。
(2)置迭代次數(shù)k=0;
(3)計算目標函數(shù)(lixiang22.tif)和(lixiang23.tif);
(4)若k=0,令(lixiang24.tif) ;否則,(lixiang25.tif);其中(lixiang26.tif);
(5)一維搜索求取步長αk,使其滿足Wolfe搜索條件
(lixiang27.tif)
可以得到下一個迭代點為wk+1=wk+αkdk;
(6)計算J=f(wk+1);若J<=ε,則停止迭代,向量Wk+1即為所求網(wǎng)絡權(quán)值向量;否則置k=k+1,跳轉(zhuǎn)步驟3。
3.3 算法實例
本文利用以上算法對一個函數(shù)y=x12+x22+x32實現(xiàn)逼近,以Δx=0.1為步長取得多組訓練樣本數(shù)據(jù)對[x1,x2,x3,f(x1,x2,x3)]。構(gòu)建三層前饋式神經(jīng)網(wǎng)絡,其中輸入層為(x1,x2,x3),隱層結(jié)點取4個,它的權(quán)值為向量w,初始值取wi=0.5,i=1,2..4,期望輸出為Y=f(x1,x2,x3),取定神經(jīng)元的作用函數(shù)為Sigmoid函數(shù)(lixiang05.tif)閾值為θ,ε為給定的誤差,取ε=10-4,則共軛搜索的目標函數(shù)為:(lixiang12.tif), 原神經(jīng)網(wǎng)絡問題可轉(zhuǎn)化為求最優(yōu)化問題min(J),使用上述搜索算法得目標函數(shù)J的收斂數(shù)據(jù)如表1:
4 結(jié)論
實驗表明共軛梯度法具有較好的收斂特性,并且不會產(chǎn)生振蕩,可以有效地解決傳統(tǒng)BP網(wǎng)絡的收斂速度問題。并且本文選用的 因子在wolfe搜索下可以保證全局收斂性,比一般的 因子有更好的效果。
參考文獻:
[1] 戴彧虹.非線性共軛梯度法研究[D].中國科學院計算數(shù)學與科學工程研究所,博士學位論文,1997.
[2] Dai YH,YUAN Y.A Nonlinear conjugate gradient with a strong global convergence property[J].SIAM Journal of optimization,2000(10):177-182.
[3] 黃兆龍.用啟發(fā)算法和神經(jīng)網(wǎng)絡法解決二維不規(guī)則零件排樣問題[J].微計算機信息,2004(10):51-53.
[4] 杜華英,趙躍龍.人工神經(jīng)網(wǎng)絡典型模型的比較研究[J].計算機技術(shù)與發(fā)展,2006(05):97-99.
[5] 陸瓊瑜,童學鋒.BP算法改進的研究[J].計算機工程與設計,2007(03):648-650.
收稿日期:2008-03-27
作者簡介:李翔(1981-) 男,江蘇徐州人,中國礦業(yè)大學碩士研究生,主要從事神經(jīng)網(wǎng)絡,數(shù)據(jù)挖掘的研究;蘇成,男,中國礦業(yè)大學副教授,碩士生導師,主要從事訪問控制,網(wǎng)絡安全的研究。
注:“本文中所涉及到的圖表、注解、公式等內(nèi)容請以PDF格式閱讀原文。”