張 彬 陳曉寧 趙金龍 黃立洋
(中國人民解放軍理工大學(xué)國防工程學(xué)院,南京 210007)
在工程實(shí)際中為了描述不同變量之間的關(guān)系,在給定一組樣本的情況下,需要求得自變量x和因變量y之間的函數(shù)關(guān)系 y=f(x)。曲線擬合就是用連續(xù)平滑的曲線近似的表達(dá)平面上離散點(diǎn)組所表示的坐標(biāo)之間的函數(shù)關(guān)系的一種數(shù)據(jù)處理方法。
人工神經(jīng)網(wǎng)絡(luò)是模擬生物神經(jīng)網(wǎng)絡(luò)進(jìn)行信息處理的一種數(shù)學(xué)模型,它以對大腦的生理研究成果為基礎(chǔ),其目的在于模擬人腦的某些機(jī)理與機(jī)制,實(shí)現(xiàn)一些特定的功能,其具有很強(qiáng)的自學(xué)習(xí)自適應(yīng)等優(yōu)點(diǎn),在函數(shù)逼近、數(shù)字信號處理、模式識別、數(shù)據(jù)分類方面得到廣泛的應(yīng)用[1-3]。
BP(Back Propagation)網(wǎng)絡(luò)是依據(jù)誤差逆?zhèn)鞑ニ惴ㄓ?xùn)練的具有多層前饋的一種網(wǎng)絡(luò)。BP網(wǎng)絡(luò)能吸收和儲存很多的輸入-輸出模式的映射關(guān)系,并不需要事先揭示和描述這種存在的關(guān)系方程。權(quán)值與閾值是不斷通過神經(jīng)網(wǎng)絡(luò)的反方向傳遞,最終使得誤差的平方和在網(wǎng)絡(luò)中達(dá)到最小值。BP神經(jīng)網(wǎng)絡(luò)在進(jìn)行數(shù)據(jù)擬合時(shí)擁有精度高、誤差小等優(yōu)點(diǎn)[4-7]。BP神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)模型包括三層,分別為輸入層、隱含層和輸出層。
BP神經(jīng)網(wǎng)絡(luò)在正向傳播階段,每一層神經(jīng)元的輸出只影響下一層神經(jīng)元的狀態(tài)。神經(jīng)元的輸出又分為實(shí)際輸出和期望輸出。如果神經(jīng)元的實(shí)際輸出和期望輸出不相等的時(shí)候,BP神經(jīng)網(wǎng)絡(luò)將會進(jìn)入反向傳播階段,將神經(jīng)元的實(shí)際輸出和期望輸出的誤差反向傳播到上層神經(jīng)元,同時(shí)修改各層神經(jīng)元的權(quán)值直到誤差信號傳遞到輸入層。通過正向傳播和反向傳播兩種過程的反復(fù)進(jìn)行,使誤差減小到一定的精度后這種過程才會停止,或者在規(guī)定的訓(xùn)練次數(shù)后才會停止。
通過上述討論可以總結(jié) BP算法可以分為正向傳播和反向傳播兩個(gè)過程。
正向傳播階段有
式中,netj為第j層神經(jīng)元的輸入,wij為權(quán)值,Oi為j-1層神經(jīng)元第i個(gè)單元的輸入,Oj為第j層神經(jīng)元的輸出,f為對應(yīng)的激活函數(shù)。
反向傳播階段有
誤差測度E為
式中,yj為第j層神經(jīng)元的期望輸出,oj為第j層神經(jīng)元的實(shí)際輸出。
根據(jù)誤差測度E修改各層權(quán)值有
式中,α為學(xué)習(xí)率。
此時(shí)δj的計(jì)算分為兩種情況,分別為網(wǎng)絡(luò)的輸出層神經(jīng)元為隱藏層神經(jīng)元和輸出層神經(jīng)元,有
上述就是BP算法的簡要過程,BP網(wǎng)絡(luò)具有很強(qiáng)的非線性映射能力,一個(gè)三層 BP神經(jīng)網(wǎng)絡(luò)能夠?qū)崿F(xiàn)對任意非線性函數(shù)的逼近。BP算法本質(zhì)上是以網(wǎng)絡(luò)誤差的平方和為目標(biāo)函數(shù),按梯度法求其目標(biāo)函數(shù)達(dá)到最小值的算法。
卡爾曼濾波只能處理線性系統(tǒng)的問題。然而實(shí)際中,很多系統(tǒng)是非線性的,處理這些系統(tǒng)時(shí),用擴(kuò)展卡爾曼濾波(EKF),它是將期望和方差線性化的卡爾曼濾波器。把神經(jīng)網(wǎng)絡(luò)對一個(gè)非線性時(shí)變系統(tǒng)的認(rèn)知也叫做將神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)權(quán)值θ(k)作為這個(gè)系統(tǒng)發(fā)生時(shí)變時(shí)候的參數(shù),它將會映射出系統(tǒng)的輸出變化。網(wǎng)絡(luò)權(quán)值的估計(jì)方法一般包括RLS方法、擴(kuò)展卡爾曼濾波方法[8-9]等。本文將θ(k)作為系統(tǒng)的狀態(tài)向量,用EKF算法進(jìn)行估計(jì)。
對于一個(gè)非線性系統(tǒng)有
將上式f(θk)和h(θk)展開圍的泰勒級數(shù)并只保留線性項(xiàng),其中為的估計(jì),有
式中,K為增益矩陣,P為狀態(tài)誤差矩陣,Q為系統(tǒng)過程噪聲方差矩陣,R為系統(tǒng)觀測噪聲方差矩陣。EKF神經(jīng)網(wǎng)絡(luò)的主要思想是通過比較期望值與實(shí)際值的誤差,計(jì)算增益矩陣K和狀態(tài)誤差矩陣P,進(jìn)而調(diào)整權(quán)值矩陣,直到誤差滿足一定條件為止。
本文采用Matlab進(jìn)行仿真實(shí)驗(yàn)。將待擬合的函數(shù)設(shè)計(jì)為
令y(t)∈[-1, 1],x(t)∈[-10, 10],x(t)的200個(gè)輸入數(shù)據(jù)點(diǎn)均勻的產(chǎn)生在[-10, 10]的范圍內(nèi)。利用BP神經(jīng)網(wǎng)絡(luò)和EKF神經(jīng)網(wǎng)絡(luò)進(jìn)行仿真擬合。
通過Matlab仿真,得到圖1、圖2、圖3的仿真結(jié)果。
圖1是兩種算法對模糊神經(jīng)網(wǎng)絡(luò)系統(tǒng)的辨識程度,可以看出他們都可以很好的對系統(tǒng)進(jìn)行辨識,達(dá)到了預(yù)期的效果。圖2中紅色虛線表示的是BP算法的擬合曲線,黑色曲線表示的是EKF算法擬合的曲線,綠色曲線是實(shí)際的輸出值,從圖中可以看出EKF算法比BP算法能更好的對系統(tǒng)進(jìn)行辨識。
圖1 BP算法和EKF算法的仿真結(jié)果
圖2 BP算法和EKF算法仿真結(jié)果綜合比較
圖3 BP算法和EKF算法收斂性比較
通過圖3為兩種算法的收斂性圖,虛線①是BP算法的收斂曲線,實(shí)線②是EKF算法的收斂性圖,BP算法的均方差大致為1,EKF算法的均方差大致為0.1,顯然EKF算法相比BP算法能更好的對系統(tǒng)進(jìn)行辨識,也具有較高的收斂性。
本文首先討論了曲線擬合的定義,探討了 BP神經(jīng)網(wǎng)絡(luò)和EKF神經(jīng)網(wǎng)絡(luò)的原理與算法,通過仿真實(shí)驗(yàn)可得,BP神經(jīng)網(wǎng)絡(luò)和EKF神經(jīng)網(wǎng)絡(luò)都能對系統(tǒng)進(jìn)行比較好的辨識,在收斂性方面,EKF神經(jīng)網(wǎng)絡(luò)比BP神經(jīng)網(wǎng)絡(luò)的收斂性能方面要好。
[1]閻平凡.人工神經(jīng)網(wǎng)絡(luò)與模擬進(jìn)化計(jì)算[M].北京:清華大學(xué)出版社,2000.
[2]尹念東. BP神經(jīng)網(wǎng)絡(luò)的應(yīng)用設(shè)計(jì)[J]. 信息技術(shù), 2003,27(6): 18-20.
[3]張永懷, 劉君華. 采用BP神經(jīng)網(wǎng)絡(luò)及其改進(jìn)算法改善傳感器特性[J]. 傳感技術(shù)學(xué)報(bào), 2002(3): 185-188.
[4]飛思科技產(chǎn)品研發(fā)中心.Matlab6.5輔助神經(jīng)網(wǎng)絡(luò)分析與設(shè)計(jì). 北京: 電子工業(yè)出版社, 2003.
[5]周正民, 趙立雄. 神經(jīng)網(wǎng)絡(luò)在實(shí)驗(yàn)數(shù)據(jù)擬合中的應(yīng)用[J]. 太原重型機(jī)械學(xué)院學(xué)報(bào), 2006, 21(2): 165-168.
[6]楊莉, 周志富. BP神經(jīng)網(wǎng)絡(luò)在GPS高程異常擬合中的應(yīng)用[J]. 測繪工程, 2010, 19(4): 12-15.
[7]薛毅. 數(shù)值分析與實(shí)驗(yàn)[J]. 北京: 北京工業(yè)大學(xué)出版社, 2005: 146-149.
[8]王志賢. 最優(yōu)狀態(tài)估計(jì)與系統(tǒng)辨識[M]. 西安: 西北工業(yè)大學(xué)出版社, 2004: 23-30.
[9]SIMON D. Training radial basis neural networks with the extend Kalman filter[J]. Neurocomputing, 2002, 48:455-475.