張 沫 章 彪
(浙江郵電職業技術學院 浙江 紹興 312000)
神經網絡是一種由模擬人腦信息處理和存儲的神經元而組成的數學模型,由于其結構簡單,容易實現,以及極強的非線性映射能力,目前已經廣泛應用在圖像處理、語音識別和航空航天等領域[1]。
核函數是神經網絡訓練效果好壞的關鍵[2]。現有的核函數多種多樣,不同的核函數非線性處理能力不同,神經網絡的訓練效果極大地受所選核函數的影響。目前,按照核函數學習能力的不同,核函數可以分為局部核函數和全局核函數。局部核函數在測試點附近的學習能力較強,相反,全局核函數在遠離測試點的外推能力較強。因此如果基于單一的核函數進行神經網絡訓練往往會有局限性。因此混合核函數應運而生,它是將局部核函數和全局核函數線性組合而構成[3-4]。由于混合核函數同時具有學習能力和外推能力,能夠準確地反映實際樣本特性,因此利用混合核函數進行神經網絡訓練是提高訓練精度的必然選擇。
對于實際的非線性系統而言,由于多種不確定因素的影響,精確建模是相當困難的,一種簡單可行的辦法是利用神經網絡對模型進行非線性近似。系統有內部狀態和外部輸出,通過觀測外部輸出來推得內部狀態,而他們之間的關系可以通過狀態空間模型法進行描述,不管內部狀態與外部輸出之間的關系多么復雜,該方法都能利用系統的輸出數據對狀態進行預測和估計。有了系統的狀態空間模型之后,就可以用相應的濾波方法估計系統的狀態[5]。基于狀態空間的輸出數據,在某種準則下對系統狀態進行估計,那么就可以獲得系統的狀態值,同時也可以得到神經網絡的參數。
將非線性濾波應用到神經網絡的參數辨識上一直以來都是學者們研究的熱點。擴展卡爾曼濾波(EKF)是一種應用最為廣泛的非線性濾波方法,它的核心在于通過線性化方法將非線性系統近似成線性系統。文獻[6]首先基于單個核函數的神經網絡對系統建立狀態空間模型,將神經網絡的訓練看作成非線性系統的參數識別問題,其中網絡權重的迭代更新通過EKF算法的時間更新和測量更新步驟實現。然而實際中一些復雜的非線性系統對應的數學模型往往非線性很強,EKF的估計性能就會大幅度降低,甚至發散,其根本原因是EKF的一階線性化近似忽略了Taylor展開式中的高階項[7]。無跡卡爾曼濾波(UKF)無需對系統線性化,它是引用無跡變換對均值和方差進行處理,因此文獻[8]應用UKF算法對神經網絡權值進行在線更新。然而實際系統的維數可能較高,UKF就會遇到維數災難問題。為了解決這個問題和進一步提高狀態估計精度,文獻[9]提出了HCKF算法,利用徑向積分規則來最優化西格瑪點和權重,大大增強了處理高維非線性狀態的能力,估計精度和穩定性也明顯得到了提高。基于容積卡爾曼濾波,文獻[10]提出一種參數選擇簡單的多層感知器訓練算法。由于HCKF算法比容積卡爾曼濾波算法的精度更高,文獻[11]采用HCKF對擴維的狀態進行訓練更新得到網絡的權值,并且仿真結果說明這種算法對權重估計的精度更高。
因此,本文首先建立混合核函數,并基于混合核函數建立狀態空間神經網絡模型,將神經網絡的權值和系統的狀態擴維成新的系統狀態變量,然后采用HCKF算法對神經網絡進行訓練,進而提出基于混合核函數和HCKF的神經網絡訓練算法。
高斯核函數、線性核函數、多項式核函數及Sigmoid核函數是目前常用的四種核函數。其中高斯核函數是局部核函數,剩下的三種核函數均是全局核函數[12]。由于局部核函數學習能力強,與之相反,全局核函數泛化能力強[13],為了同時獲得學習能力和泛化能力,本文選取混合核函數作為神經網絡訓練的基本核函數。記Kl(xi,xj),Kg(xi,xj)分別表示局部核函數與全局核函數。混合核函數組合形式多樣,為了便于討論研究及說明其有效性,本文從最基本的線性組合入手,具體混合核函數Km(xi,xj)表示形式如下:
Km(xi,xj)=Kl(xi,xj)+Kg(xi,xj)
(1)
神經網絡可以分為三層,分別為輸入層、隱層和輸出層,基于混合核函數的神經網絡模型結構如圖1所示。

圖1 神經網絡的模型結構
其中,神經元Km(xi,xj)表示以Km(xi,xj)為基本核函數的神經元,輸入的樣本用x1,x2,…,xN表示,訓練輸出結果用y1,y2,…,ym表示,Wij,Wki表示網絡權重。
考慮如下一般的離散非線性系統:
xk=f(xk-1)+wk
(2)
yk=h(xk)+vk
(3)
其中:式(2)為系統狀態方程,f為已知的非線性函數,xk為n維的系統狀態向量;式(3)為系統的觀測方程,h為已知的非線性觀測函數,yk為m維的觀測向量;{wk}與{vk}為高斯白噪聲,它們的均值都為零,方差分別為Q和R。
高階容積準則原理如下[14]:
IUn(f)
(4)
IUn,2m+1(f)
(5)

ωp
(6)
G{up}
(7)
式中:p=[p1,p2,…,pn],|p|=p1+p2+…+pn,c(up)表示非零元素的個數。
進而利用高斯拉蓋爾積分公式近似求解徑向積分,尋找積分點rj及相應權值wr,j,使其滿足如下公式:
(8)
式中:Nr為徑向積分點總數。
記S(r)=rl為r的單項式,式(8)可以轉化為:
(9)
因此,如果要得到2m+1階徑向積分準則,那么上式要對l=0,2,…,2m的積分精確成立,從而產生m+1個方程,進而求解該方程便可得到任意精度等級的徑向積分準則積分點及權值的計算。
由于單一的局部核函數泛化能力太弱,而單一的全局核函數局部能力太弱,因此為了避免二者的弱勢,而同時獲得局部能力和泛化能力,本文首先將局部核函數和全局核函數線性組成混合核函數,基于該混合核函數對非線性系統建模逼近。由于非線性系統的狀態是不知道的,也需要求解,因此,對狀態和權重進行擴維,從而得到新的擴維狀態。然后用HCKF算法對權重和狀態進行訓練,求解出系統的狀態,得到最佳的網絡權重,使得非線性系統的建模誤差最小,具體的訓練算法原理如圖2所示。

圖2 訓練算法原理
圖2中,選擇局部核函數與全局核函數線性組合成為混合核函數,在k-1時刻,原系統狀態xk-1與權重Wk-1經擴維后將[xk-1Wk-1]輸入到基于混合核函數的神經網絡模型中,利用HCKF對擴維狀態進行時間更新步驟,結合觀測數據進行時間更新得到k時刻系統擴維狀態[xkWk],并作為下次系統迭代的輸入值。具體算法如下:

(10)
(11)
式中:Wk表示k時刻神經網絡的權重,nk和sk為高斯白噪聲,它們的均值為零,協方差矩陣分別為Nk和Mk。
進一步,利用HCKF進行時間更新:
① 記Pk-1|k-1為估計誤差協方差矩陣,然后對其進行Cholesky分解可得下式:
(12)
式中:Sk-1|k-1為Pk-1|k-1的Cholesky分解結果。
② 用k-1時刻的Sk-1|k-1更新容積點:
(13)
式中:m=2n,且ξi的取值方法如下:
(14)
式中:ai表示矩陣B的第i列,B=[I-I],I為單位矩陣,bi的表示如下:
(15)

(16)
③ 更新傳播容積點:
(17)
④ 更新一步狀態預測值:
(18)
式中:wi的取法如下式所示:
(19)
⑤ 一步預測誤差協方差矩陣的更新如下所示:
(20)
最后進行測量更新:
① 對一步預測誤差協方差矩陣Pk|k-1進行Cholesky分解:
(21)
② 計算容積點:
(22)
③ 更新測量方程傳播容積點:
(23)
④ 計算測量預測值:
(24)
⑤ 更新新息協方差矩陣:
(25)
⑥ 互協方差矩陣按如下公式進行更新:
(26)
⑦ 更新增益矩陣:
(27)
⑧ 計算k時刻估計值:
(28)
⑨ 更新誤差協方差矩陣:
(29)
考慮一類典型離散非線性非靜態增長模型如下所示[10]:
(31)

為了符號表示的簡潔,對下列算法做如下標記:
MKF-HCKF:基于混合核函數和HCKF的神經網絡訓練算法。
MLP-CKF:基于容積卡爾曼濾波的神經網絡訓練算法。

圖3 狀態估計曲線

圖4 狀態估計誤差曲線

表1 估計誤差對比
圖3和圖4給出了MKF-HCKF、MLP-CKF算法對系統狀態的估計和平均絕對估計誤差,從估計曲線來看,兩種算法都是有效的,都能跟上真實值,從表1的統計數據來看,MKF-HCKF算法的估計精度明顯高于MLP-CKF算法,平均估計誤差絕對值更小。這主要是因為MKF-HCKF算法的神經網絡使用了混合核函數作為訓練的核函數,而混合核函數更能反映樣本的真實特性,從而使得估計精度更高。
本文提出了一種基于混合核函數和HCKF的神經網絡訓練算法。將常用的局部核函數高斯核函數與常用的全局核函數多項式核函數進行組合成混合核函數,如此形成的混合核函數同時具有學習能力和泛化能力,并基于該混合核函數對非線性系統進行建模,最后利用HCKF算法對擴維狀態進行實時訓練估計。本文算法提高了非線性濾波算法對神經網絡的訓練精度,仿真對比表明了本文所提算法的有效性。