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