陳金輝,趙雷振,楊宗宵,郭 偉
(南京信息工程大學(xué)信息與控制學(xué)院,江蘇南京 210044)
改進(jìn)的BP神經(jīng)網(wǎng)絡(luò)在故障診斷中的應(yīng)用
陳金輝,趙雷振,楊宗宵,郭 偉
(南京信息工程大學(xué)信息與控制學(xué)院,江蘇南京 210044)
針對傳統(tǒng)BP算法存在的收斂速度緩慢和易陷入局部極小值的固有缺陷,提出用具有全局搜索能力的模擬退火算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò),避免陷入局部極小值,提高網(wǎng)絡(luò)的穩(wěn)定性;引入Powell算法優(yōu)化模擬退火算法,加快網(wǎng)絡(luò)的收斂速度。最后,以齒輪箱故障診斷為例進(jìn)行仿真試驗,結(jié)果表明改進(jìn)后的BP神經(jīng)網(wǎng)絡(luò)比傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò)的訓(xùn)練收斂速度快、精度高。
模擬退火算法;Powell算法;BP算法;PSA-BP算法;故障診斷
人工智能故障診斷技術(shù)因不需要建立對象的精確數(shù)學(xué)模型,部分解決了故障診斷的模糊性和不確定性等經(jīng)典常規(guī)方法不能解決的各類問題,因而在故障診斷中得到了越來越廣泛的重視[1]。人工神經(jīng)網(wǎng)絡(luò)著眼于模擬人腦,是一個廣泛連接的巨型系統(tǒng),它具有I/O非線性特性、信息的分布存儲、并行處理和全局集體作用,特別是其高度的自組織和自學(xué)習(xí)能力,為故障診斷問題提供了一種嶄新的途徑[2]。BP神經(jīng)網(wǎng)絡(luò)是目前應(yīng)用最廣泛的人工神經(jīng)網(wǎng)絡(luò)模型之一。但是,BP算法采用的是梯度訓(xùn)練法,是一種局部搜索算法,很容易陷入局部極小和收斂速度緩慢的問題。所以很多學(xué)者提出了不同的改進(jìn)算法,如變學(xué)習(xí)速率BP算法、動量BP算法、LM算法、遺傳算法等[3-6],取得了一定效果。筆者將具有全局尋優(yōu)的快速模擬退火算法引入到BP神經(jīng)網(wǎng)絡(luò)用于故障診斷,主要包括:首先介紹了模擬退火算法,闡述了模擬退火算法的不足,用Powell算法優(yōu)化模擬退火算法,形成快速模擬退火算法,加快模擬退火的速度;然后簡要說明BP算法的訓(xùn)練過程,將快速模擬退火算法與BP算法結(jié)合,形成新的PSA-BP算法;最后將PSA-BP算法應(yīng)用到齒輪箱的故障診斷中,仿真結(jié)果表明該算法具有很好的應(yīng)用價值。
模擬退火(SA)算法的思想最早由METROPOLIS于1953年提出[7],1983年KIRKPATRICK等成功將其應(yīng)用于組合優(yōu)化問題[8]。SA算法是一種關(guān)于Mente-carlo迭代求解策略的隨機尋優(yōu)算法,其出發(fā)點是基于物理中固體物質(zhì)的退火過程和一般組合優(yōu)化問題的相似性。SA算法是在某一初始溫度下,伴隨溫度參數(shù)的不斷下降,結(jié)合概率突跳性在解空間中隨機尋找目標(biāo)函數(shù)的全局最優(yōu)算法,在局部優(yōu)解狀態(tài)下能概率性地跳出并最終趨于全局最優(yōu)解[9]。模擬退火算法過程可參考文獻(xiàn)[10]。
利用SA算法求解復(fù)雜問題的時候,需要大量的迭代計算,因而收斂速度緩慢。Powell算法是局部優(yōu)化直接算法中收斂性較好的一種,迭代次數(shù)遠(yuǎn)遠(yuǎn)小于SA算法[11]。將Powell算法與模擬退火算法組合形成快速模擬退火算法(PSA算法),可以減小迭代次數(shù)。
該算法步驟:1)從任一初始解出發(fā),執(zhí)行Powell算法快速得到一局部極小值點;2)調(diào)用SA算法進(jìn)行全局搜索;3)若在指定搜索次數(shù)內(nèi)找到一個比該極小值點更小的點,則初始解被替換為此次的更優(yōu)解,返回1),否則該初始解為全局最優(yōu)解,退出。
BP(back propagation)網(wǎng)絡(luò)即誤差反向傳播訓(xùn)練的神經(jīng)網(wǎng)絡(luò),是RUMELHART等在1986年提出的。它是一種多層前饋神經(jīng)網(wǎng)絡(luò),網(wǎng)絡(luò)一般由三層或者三層以上的神經(jīng)元組成,包括輸入層、隱含層(至少包含一個隱含層)、輸出層。根據(jù)Kolmogarav定理,一個三層BP網(wǎng)絡(luò)可以逼近n維到m維的任意連續(xù)函數(shù)[12]。所以選用三層的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),如圖1所示。
BP算法的中心思想是不斷調(diào)整網(wǎng)絡(luò)權(quán)值和閾值來修正網(wǎng)絡(luò)的輸出誤差,下面給出BP算法實現(xiàn)過程。
設(shè)輸入層有n個神經(jīng)元,隱含層有q個神經(jīng)元,輸出層有m個神經(jīng)元,輸入層到隱含層的權(quán)值為wij,隱含層的閾值為θj,隱含層到輸出層的權(quán)值為vjk,輸出層的閾值為γk,(P,T)為含有N個樣本的樣本集合,p為N 個樣本的任意一個,激勵函數(shù)選用其中i=(1,2,…,n),j=(1,2,…,q),k=(1,2,…,m),P=(p1,p2,…,pn),T=(t1,t2,…,tn)。
圖1 三層神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)Fig.1 Structure of three-layer neural network
1)正向傳播過程
①初始化網(wǎng)絡(luò)權(quán)值wij,vjk;閾值θj,γk;
②輸入訓(xùn)練樣本集(P,T);
③計算隱含層第j個神經(jīng)元輸出
⑤返回1)③,重新計算,直至ET小于設(shè)定的值或者達(dá)到訓(xùn)練次數(shù),訓(xùn)練結(jié)束。
傳統(tǒng)BP算法是通過梯度最速下降法來修正權(quán)值、閾值向量,很容易陷入局部極小值,且收斂速度慢。為了克服BP算法的缺陷,將具有全局搜索能力的PSA算法和局部搜索的BP算法完美地結(jié)合在一起,形成PSA-BP算法,既避免了網(wǎng)絡(luò)陷入極小值的發(fā)生,又加快了訓(xùn)練的收斂速度。
1)構(gòu)造目標(biāo)函數(shù),即所有訓(xùn)練樣本的平方誤差的均值:
2)采用T=T0(1+ln(i))的降溫策略。
3)初始化網(wǎng)絡(luò)的權(quán)值W,閾值B,溫度T0,迭代次數(shù)N,網(wǎng)絡(luò)最大允許誤差E_GOAL。
4)輸入訓(xùn)練樣本。
5)計算當(dāng)前的誤差E,若E小于E_GOAL,退出程序。
6)將網(wǎng)絡(luò)的權(quán)值W,閾值B作為初始解,調(diào)用Powell算法快速搜索到某個局部極小值,得到一組新的網(wǎng)絡(luò)權(quán)值W′、閾值B′,計算當(dāng)前的誤差記為E′。令W=W′,B=B′,E=E′,轉(zhuǎn)7)。
7)調(diào)用模擬退火算法:
① 加入隨機擾動,令W*=W+ΔW,B*=B+ΔB,其中ΔW和ΔB 為很小的均勻分布的隨機擾動。
② 重新計算誤差E,記為E*。若E*<E,則W=W*,B=B*;否則計算接受概率r=exp[(-E*-E)/(k Ti)],Ti為當(dāng)前溫度,產(chǎn)生一個[0,1]區(qū)間的隨機數(shù)p=random(0,1),若r>p則W=W*,B=B*,否則W=W,B=B。
③ 若E*小于E_GOAL或者超過迭代次數(shù)N,退出。否則i=i+1。
8)若E*<E,轉(zhuǎn)6);若E*>E,轉(zhuǎn)7)。
利用新的PSA-BP算法,對齒輪箱故障進(jìn)行仿真。樣本集[13]選擇15個特征信號作為齒輪箱故障信號,故障類型有3種,所以輸入層神經(jīng)元數(shù)目為15個,輸出層神經(jīng)元數(shù)目為3個。根據(jù)經(jīng)驗,試驗后得出隱含層神經(jīng)元數(shù)目為6個,得到15-6-3的網(wǎng)絡(luò)結(jié)構(gòu)。隱含層采用S型正切函數(shù)tansig,輸出層采用S型對數(shù)函數(shù)logsig。參數(shù)設(shè)置:初始溫度T=30℃,SA最大迭代次數(shù)N=50,系統(tǒng)最大誤差0.001,網(wǎng)絡(luò)總的迭代次數(shù)10 000次。歸一化后的樣本數(shù)據(jù)如表1所示。
圖2是采用傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練誤差曲線圖,圖3是采用PSA-BP算法的神經(jīng)網(wǎng)絡(luò)訓(xùn)練誤差曲線圖,從兩圖的比對結(jié)果來看,傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò)經(jīng)過10 000次的訓(xùn)練,精度遠(yuǎn)遠(yuǎn)大于給定值,收斂速度慢,訓(xùn)練時間長;采用PSA-BP算法的神經(jīng)網(wǎng)絡(luò)只需要經(jīng)過493次的訓(xùn)練,精度達(dá)到并小于給定值,收斂速度快,訓(xùn)練時間短。同時,重復(fù)多次試驗的統(tǒng)計結(jié)果表明,采用PSA-BP算法的神經(jīng)網(wǎng)絡(luò)更易獲取全局最優(yōu)解。
表1 齒輪箱狀態(tài)訓(xùn)練樣本數(shù)據(jù)Tab.1 Training sample data of gearbox state
圖2 傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練誤差曲線圖Fig.2 Curve of traditional BP neural network training error
圖3 PSA-BP算法的神經(jīng)網(wǎng)絡(luò)訓(xùn)練誤差曲線圖Fig.3 PSA-BP algorithm based training error curve of neural network
為了驗證PSA-BP算法的有效性,選取6組測試樣本進(jìn)行預(yù)測試驗,歸一化后的樣本數(shù)據(jù)如表2所示,測試結(jié)果如表3所示。
表2 齒輪箱狀態(tài)測試樣本數(shù)據(jù)Tab.2 Test sample data of gearbox state
從表3中可以看出,采用PSA-BP算法的神經(jīng)網(wǎng)絡(luò)診斷正確率明顯高于傳統(tǒng)的BP神經(jīng)網(wǎng)絡(luò),特別是閾值越大,優(yōu)勢越明顯。
表3 PSA-BP算法與傳統(tǒng)BP算法預(yù)測結(jié)果Tab.3 The prediction results of PSA-BP algorithm and the traditional BP algorithm
BP網(wǎng)絡(luò)具有良好的非線性映射能力,故可以應(yīng)用到故障診斷中。但是傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò)存在的收斂速度緩慢和易陷入局部極小值的固有缺陷,阻礙了其應(yīng)用范圍。為了克服BP網(wǎng)絡(luò)的缺陷,將具有全局搜索能力的快速模擬退火算法加入到BP神經(jīng)網(wǎng)絡(luò)權(quán)值和閾值的優(yōu)化中,避免了傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò)容易陷入極小值的問題,加快了網(wǎng)絡(luò)訓(xùn)練速度。最后對齒輪箱故障的仿真結(jié)果表明,應(yīng)用PSA-BP算法的神經(jīng)網(wǎng)絡(luò)更穩(wěn)定、更可靠。
[1] 李春華,張 生,楊智慧.基于BP神經(jīng)網(wǎng)絡(luò)電路故障診斷系統(tǒng)研究[J].煤礦機械(Coal Mine Machinery),2009,30(3):196-198.
[2] 周世官,張 云.基于進(jìn)化神經(jīng)網(wǎng)絡(luò)的模擬電路故障診斷[J].計算機測量與控制(Computer Measurement and Control),2007,15(8):991-993.
[3] 周開利,康耀紅.神經(jīng)網(wǎng)絡(luò)模型及其MATLAB仿真程序設(shè)計[M].北京:清華大學(xué)出版社,2005.
[4] 陳玉芳.BP神經(jīng)網(wǎng)絡(luò)的算法改進(jìn)及應(yīng)用研究[D].成都:電子科技大學(xué),2004.
[5] CHIEN C Y,BIN D L.A backpropagation algorithm with adaptive learning rate and momentum coefficient[J].Neural Networks,2002(2):1 218-1 223.
[6] VAN ROOIJ A J F,JAIN L C,JOHNSON R P.Neural Network Training Using Genetic Algorithm[M].[S.l.]:World Scientific,1996.
[7] METROPOLIS N.Equations of state calculations by fast computing machines[J].J Chem Phys,1953,21:1 087-1 091.
[8] KIRKPATRICK S,GELATT C D Jr,VECCHI M P.Optimization by simulated annealing[J].Science,1983,220:671-680.
[9] 王 凌.智能優(yōu)化算法及其應(yīng)用[M].北京:清華大學(xué)出版社,2003.
[10] 田景文,高美娟.基于改進(jìn)的模擬退火人工神經(jīng)網(wǎng)絡(luò)的薄互儲層參數(shù)預(yù)測[J].信息與控制(Infornation and Control),2002,31(2):180-184.
[11] 肖玉剛.一種新型模擬退火神經(jīng)網(wǎng)絡(luò)及其應(yīng)用[J].控制工程(Control Engineering of China),2006,13(6):550-552.
[12] KOLMOGOROV A N.On the representation of continuous functions of many variables by superposition of continuous funcitons of one variable and addition[J].Dokl Akad Nauk SSSR,1957,114(5):953-956.
[13] 張 捷.基于神經(jīng)網(wǎng)絡(luò)的齒輪箱智能故障診斷技術(shù)的研究[D].蘇州:江蘇大學(xué),2003.
[14] 陳曉明,屈寶存,王小菽,等.混沌神經(jīng)網(wǎng)絡(luò)在球磨機故障診斷中的應(yīng)用[J].河北工業(yè)科技(Hebei Journal of Industrial Science and Technology),2008,25(5):301-303.
[15] 李森林,鄧小武.基于二參數(shù)的BP神經(jīng)網(wǎng)絡(luò)算法改進(jìn)與應(yīng)用[J].河北科技大學(xué)學(xué)報(Journal of Hebei University of Science and Technology),2010,31(5):447-450.
Application of improved BP neural network in fault diagnosis
CHEN Jin-hui,ZHAO Lei-zhen,YANG Zong-xiao,GUO Wei
(School of Information and Control,Nanjing University of Information Science and Technology,Nanjing Jiangsu 210044,China)
The traditional BP algorithm has the inherent shortcomings such as low convergent speed and local minimum.So this paper proposes a simulated annealing algorithm with globalsearch property to optimize the BP neural network for avoiding the local minimum and improving its stability.In order to improve the convergent speed of neural network,the Powell algorithm is proposed to optimize the simulated annealing algorithm.Finally,the simulated results of gearbox fault diagnosis are presented to show that the improved BP neural network has higher convergent speed and precision than those of the traditional BP neural network.
simulated annealing algorithm;Powell algorithm;BP algorithm;PSA-BP algorithm;fault diagnosis
TP183
A
1008-1542(2011)05-0455-05
2011-03-06;
2011-09-01;責(zé)任編輯:陳書欣
國家自然科學(xué)基金資助項目(71071078)
陳金輝(1970-),女,新疆烏魯木齊人,副教授,主要從事軟件自動化技術(shù)、中間件技術(shù)方面的研究。