張 沫 章 彪
(浙江郵電職業(yè)技術(shù)學(xué)院 浙江 紹興 312000)
神經(jīng)網(wǎng)絡(luò)是一種由模擬人腦信息處理和存儲的神經(jīng)元而組成的數(shù)學(xué)模型,由于其結(jié)構(gòu)簡單,容易實現(xiàn),以及極強的非線性映射能力,目前已經(jīng)廣泛應(yīng)用在圖像處理、語音識別和航空航天等領(lǐng)域[1]。
核函數(shù)是神經(jīng)網(wǎng)絡(luò)訓(xùn)練效果好壞的關(guān)鍵[2]?,F(xiàn)有的核函數(shù)多種多樣,不同的核函數(shù)非線性處理能力不同,神經(jīng)網(wǎng)絡(luò)的訓(xùn)練效果極大地受所選核函數(shù)的影響。目前,按照核函數(shù)學(xué)習(xí)能力的不同,核函數(shù)可以分為局部核函數(shù)和全局核函數(shù)。局部核函數(shù)在測試點附近的學(xué)習(xí)能力較強,相反,全局核函數(shù)在遠離測試點的外推能力較強。因此如果基于單一的核函數(shù)進行神經(jīng)網(wǎng)絡(luò)訓(xùn)練往往會有局限性。因此混合核函數(shù)應(yīng)運而生,它是將局部核函數(shù)和全局核函數(shù)線性組合而構(gòu)成[3-4]。由于混合核函數(shù)同時具有學(xué)習(xí)能力和外推能力,能夠準(zhǔn)確地反映實際樣本特性,因此利用混合核函數(shù)進行神經(jīng)網(wǎng)絡(luò)訓(xùn)練是提高訓(xùn)練精度的必然選擇。
對于實際的非線性系統(tǒng)而言,由于多種不確定因素的影響,精確建模是相當(dāng)困難的,一種簡單可行的辦法是利用神經(jīng)網(wǎng)絡(luò)對模型進行非線性近似。系統(tǒng)有內(nèi)部狀態(tài)和外部輸出,通過觀測外部輸出來推得內(nèi)部狀態(tài),而他們之間的關(guān)系可以通過狀態(tài)空間模型法進行描述,不管內(nèi)部狀態(tài)與外部輸出之間的關(guān)系多么復(fù)雜,該方法都能利用系統(tǒng)的輸出數(shù)據(jù)對狀態(tài)進行預(yù)測和估計。有了系統(tǒng)的狀態(tài)空間模型之后,就可以用相應(yīng)的濾波方法估計系統(tǒng)的狀態(tài)[5]。基于狀態(tài)空間的輸出數(shù)據(jù),在某種準(zhǔn)則下對系統(tǒng)狀態(tài)進行估計,那么就可以獲得系統(tǒng)的狀態(tài)值,同時也可以得到神經(jīng)網(wǎng)絡(luò)的參數(shù)。
將非線性濾波應(yīng)用到神經(jīng)網(wǎng)絡(luò)的參數(shù)辨識上一直以來都是學(xué)者們研究的熱點。擴展卡爾曼濾波(EKF)是一種應(yīng)用最為廣泛的非線性濾波方法,它的核心在于通過線性化方法將非線性系統(tǒng)近似成線性系統(tǒng)。文獻[6]首先基于單個核函數(shù)的神經(jīng)網(wǎng)絡(luò)對系統(tǒng)建立狀態(tài)空間模型,將神經(jīng)網(wǎng)絡(luò)的訓(xùn)練看作成非線性系統(tǒng)的參數(shù)識別問題,其中網(wǎng)絡(luò)權(quán)重的迭代更新通過EKF算法的時間更新和測量更新步驟實現(xiàn)。然而實際中一些復(fù)雜的非線性系統(tǒng)對應(yīng)的數(shù)學(xué)模型往往非線性很強,EKF的估計性能就會大幅度降低,甚至發(fā)散,其根本原因是EKF的一階線性化近似忽略了Taylor展開式中的高階項[7]。無跡卡爾曼濾波(UKF)無需對系統(tǒng)線性化,它是引用無跡變換對均值和方差進行處理,因此文獻[8]應(yīng)用UKF算法對神經(jīng)網(wǎng)絡(luò)權(quán)值進行在線更新。然而實際系統(tǒng)的維數(shù)可能較高,UKF就會遇到維數(shù)災(zāi)難問題。為了解決這個問題和進一步提高狀態(tài)估計精度,文獻[9]提出了HCKF算法,利用徑向積分規(guī)則來最優(yōu)化西格瑪點和權(quán)重,大大增強了處理高維非線性狀態(tài)的能力,估計精度和穩(wěn)定性也明顯得到了提高?;谌莘e卡爾曼濾波,文獻[10]提出一種參數(shù)選擇簡單的多層感知器訓(xùn)練算法。由于HCKF算法比容積卡爾曼濾波算法的精度更高,文獻[11]采用HCKF對擴維的狀態(tài)進行訓(xùn)練更新得到網(wǎng)絡(luò)的權(quán)值,并且仿真結(jié)果說明這種算法對權(quán)重估計的精度更高。
因此,本文首先建立混合核函數(shù),并基于混合核函數(shù)建立狀態(tài)空間神經(jīng)網(wǎng)絡(luò)模型,將神經(jīng)網(wǎng)絡(luò)的權(quán)值和系統(tǒng)的狀態(tài)擴維成新的系統(tǒng)狀態(tài)變量,然后采用HCKF算法對神經(jīng)網(wǎng)絡(luò)進行訓(xùn)練,進而提出基于混合核函數(shù)和HCKF的神經(jīng)網(wǎng)絡(luò)訓(xùn)練算法。
高斯核函數(shù)、線性核函數(shù)、多項式核函數(shù)及Sigmoid核函數(shù)是目前常用的四種核函數(shù)。其中高斯核函數(shù)是局部核函數(shù),剩下的三種核函數(shù)均是全局核函數(shù)[12]。由于局部核函數(shù)學(xué)習(xí)能力強,與之相反,全局核函數(shù)泛化能力強[13],為了同時獲得學(xué)習(xí)能力和泛化能力,本文選取混合核函數(shù)作為神經(jīng)網(wǎng)絡(luò)訓(xùn)練的基本核函數(shù)。記Kl(xi,xj),Kg(xi,xj)分別表示局部核函數(shù)與全局核函數(shù)?;旌虾撕瘮?shù)組合形式多樣,為了便于討論研究及說明其有效性,本文從最基本的線性組合入手,具體混合核函數(shù)Km(xi,xj)表示形式如下:
Km(xi,xj)=Kl(xi,xj)+Kg(xi,xj)
(1)
神經(jīng)網(wǎng)絡(luò)可以分為三層,分別為輸入層、隱層和輸出層,基于混合核函數(shù)的神經(jīng)網(wǎng)絡(luò)模型結(jié)構(gòu)如圖1所示。
圖1 神經(jīng)網(wǎng)絡(luò)的模型結(jié)構(gòu)
其中,神經(jīng)元Km(xi,xj)表示以Km(xi,xj)為基本核函數(shù)的神經(jīng)元,輸入的樣本用x1,x2,…,xN表示,訓(xùn)練輸出結(jié)果用y1,y2,…,ym表示,Wij,Wki表示網(wǎng)絡(luò)權(quán)重。
考慮如下一般的離散非線性系統(tǒng):
xk=f(xk-1)+wk
(2)
yk=h(xk)+vk
(3)
其中:式(2)為系統(tǒng)狀態(tài)方程,f為已知的非線性函數(shù),xk為n維的系統(tǒng)狀態(tài)向量;式(3)為系統(tǒng)的觀測方程,h為已知的非線性觀測函數(shù),yk為m維的觀測向量;{wk}與{vk}為高斯白噪聲,它們的均值都為零,方差分別為Q和R。
高階容積準(zhǔn)則原理如下[14]:
IUn(f)
(4)
IUn,2m+1(f)
(5)
ωp
(6)
G{up}
(7)
式中:p=[p1,p2,…,pn],|p|=p1+p2+…+pn,c(up)表示非零元素的個數(shù)。
進而利用高斯拉蓋爾積分公式近似求解徑向積分,尋找積分點rj及相應(yīng)權(quán)值wr,j,使其滿足如下公式:
(8)
式中:Nr為徑向積分點總數(shù)。
記S(r)=rl為r的單項式,式(8)可以轉(zhuǎn)化為:
(9)
因此,如果要得到2m+1階徑向積分準(zhǔn)則,那么上式要對l=0,2,…,2m的積分精確成立,從而產(chǎn)生m+1個方程,進而求解該方程便可得到任意精度等級的徑向積分準(zhǔn)則積分點及權(quán)值的計算。
由于單一的局部核函數(shù)泛化能力太弱,而單一的全局核函數(shù)局部能力太弱,因此為了避免二者的弱勢,而同時獲得局部能力和泛化能力,本文首先將局部核函數(shù)和全局核函數(shù)線性組成混合核函數(shù),基于該混合核函數(shù)對非線性系統(tǒng)建模逼近。由于非線性系統(tǒng)的狀態(tài)是不知道的,也需要求解,因此,對狀態(tài)和權(quán)重進行擴維,從而得到新的擴維狀態(tài)。然后用HCKF算法對權(quán)重和狀態(tài)進行訓(xùn)練,求解出系統(tǒng)的狀態(tài),得到最佳的網(wǎng)絡(luò)權(quán)重,使得非線性系統(tǒng)的建模誤差最小,具體的訓(xùn)練算法原理如圖2所示。
圖2 訓(xùn)練算法原理
圖2中,選擇局部核函數(shù)與全局核函數(shù)線性組合成為混合核函數(shù),在k-1時刻,原系統(tǒng)狀態(tài)xk-1與權(quán)重Wk-1經(jīng)擴維后將[xk-1Wk-1]輸入到基于混合核函數(shù)的神經(jīng)網(wǎng)絡(luò)模型中,利用HCKF對擴維狀態(tài)進行時間更新步驟,結(jié)合觀測數(shù)據(jù)進行時間更新得到k時刻系統(tǒng)擴維狀態(tài)[xkWk],并作為下次系統(tǒng)迭代的輸入值。具體算法如下:
(10)
(11)
式中:Wk表示k時刻神經(jīng)網(wǎng)絡(luò)的權(quán)重,nk和sk為高斯白噪聲,它們的均值為零,協(xié)方差矩陣分別為Nk和Mk。
進一步,利用HCKF進行時間更新:
① 記Pk-1|k-1為估計誤差協(xié)方差矩陣,然后對其進行Cholesky分解可得下式:
(12)
式中:Sk-1|k-1為Pk-1|k-1的Cholesky分解結(jié)果。
② 用k-1時刻的Sk-1|k-1更新容積點:
(13)
式中:m=2n,且ξi的取值方法如下:
(14)
式中:ai表示矩陣B的第i列,B=[I-I],I為單位矩陣,bi的表示如下:
(15)
(16)
③ 更新傳播容積點:
(17)
④ 更新一步狀態(tài)預(yù)測值:
(18)
式中:wi的取法如下式所示:
(19)
⑤ 一步預(yù)測誤差協(xié)方差矩陣的更新如下所示:
(20)
最后進行測量更新:
① 對一步預(yù)測誤差協(xié)方差矩陣Pk|k-1進行Cholesky分解:
(21)
② 計算容積點:
(22)
③ 更新測量方程傳播容積點:
(23)
④ 計算測量預(yù)測值:
(24)
⑤ 更新新息協(xié)方差矩陣:
(25)
⑥ 互協(xié)方差矩陣按如下公式進行更新:
(26)
⑦ 更新增益矩陣:
(27)
⑧ 計算k時刻估計值:
(28)
⑨ 更新誤差協(xié)方差矩陣:
(29)
考慮一類典型離散非線性非靜態(tài)增長模型如下所示[10]:
(31)
為了符號表示的簡潔,對下列算法做如下標(biāo)記:
MKF-HCKF:基于混合核函數(shù)和HCKF的神經(jīng)網(wǎng)絡(luò)訓(xùn)練算法。
MLP-CKF:基于容積卡爾曼濾波的神經(jīng)網(wǎng)絡(luò)訓(xùn)練算法。
圖3 狀態(tài)估計曲線
圖4 狀態(tài)估計誤差曲線
表1 估計誤差對比
圖3和圖4給出了MKF-HCKF、MLP-CKF算法對系統(tǒng)狀態(tài)的估計和平均絕對估計誤差,從估計曲線來看,兩種算法都是有效的,都能跟上真實值,從表1的統(tǒng)計數(shù)據(jù)來看,MKF-HCKF算法的估計精度明顯高于MLP-CKF算法,平均估計誤差絕對值更小。這主要是因為MKF-HCKF算法的神經(jīng)網(wǎng)絡(luò)使用了混合核函數(shù)作為訓(xùn)練的核函數(shù),而混合核函數(shù)更能反映樣本的真實特性,從而使得估計精度更高。
本文提出了一種基于混合核函數(shù)和HCKF的神經(jīng)網(wǎng)絡(luò)訓(xùn)練算法。將常用的局部核函數(shù)高斯核函數(shù)與常用的全局核函數(shù)多項式核函數(shù)進行組合成混合核函數(shù),如此形成的混合核函數(shù)同時具有學(xué)習(xí)能力和泛化能力,并基于該混合核函數(shù)對非線性系統(tǒng)進行建模,最后利用HCKF算法對擴維狀態(tài)進行實時訓(xùn)練估計。本文算法提高了非線性濾波算法對神經(jīng)網(wǎng)絡(luò)的訓(xùn)練精度,仿真對比表明了本文所提算法的有效性。