歐陽慧雨+陳濤
摘要:為了求解實踐應(yīng)用中遇到的一些復(fù)雜非線性系統(tǒng),提出一個基于Elman神經(jīng)網(wǎng)絡(luò)的非線性函數(shù)方程求解方法。方法通過非線性函數(shù)方程有限的若干組輸入輸出數(shù)據(jù)對Elman神經(jīng)網(wǎng)絡(luò)進行訓(xùn)練,使該網(wǎng)絡(luò)能夠表達非線性函數(shù),最后使用訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)預(yù)測非線性函數(shù)的輸出。測試結(jié)果表明基于Elman神經(jīng)網(wǎng)絡(luò)的非線性函數(shù)擬合效果良好。
關(guān)鍵詞:非線性函數(shù);擬合;Elman神經(jīng)網(wǎng)絡(luò);MATLAB
中圖分類號:TP183 文獻標(biāo)識碼:A 文章編號:1009-3044(2017)29-0168-02
Abstract: In order to solve some complex nonlinear systems in the practice application, a nonlinear function equation method Based on Elman neural network is proposed. A limited number of input and output data of nonlinear function equations were used to train the Elman neural network, so that the network could express the nonlinear function. Finally, the output of nonlinear functions is predicted by using a trained neural network. The results show that the nonlinear function Based on Elman neural network has a good fitting effect.
Key words: nonlinear function; Fitting; Elman neural network; MATLAB
在科學(xué)實踐應(yīng)用中經(jīng)常會遇到一些較為復(fù)雜的非線性問題,難以用較為精確的數(shù)學(xué)方程給予表示?;谏鲜銮闆r,可以使用人工神經(jīng)網(wǎng)絡(luò)方法對這些問題進行求解。人工神經(jīng)網(wǎng)絡(luò)可以把未知系統(tǒng)當(dāng)成一個黑箱。通過非線性問題中有限的輸入輸出數(shù)據(jù),可以訓(xùn)練人工神經(jīng)網(wǎng)絡(luò),使之能夠表達未知的非線性函數(shù)。最后,使用訓(xùn)練好的人工神經(jīng)網(wǎng)絡(luò)對非線性問題進行求解[1]。
人工神經(jīng)網(wǎng)絡(luò)中最為常見的是BP神經(jīng)網(wǎng)絡(luò),其是一種前饋式神經(jīng)網(wǎng)絡(luò),與網(wǎng)絡(luò)先前的輸出結(jié)果無關(guān)。而反饋式神經(jīng)網(wǎng)絡(luò)的輸入包括有延遲的輸入或者輸出數(shù)據(jù)的反饋,因此研究效果更優(yōu),本文因此使用一個較為常見的后饋式神經(jīng)網(wǎng)絡(luò)——Elman神經(jīng)網(wǎng)絡(luò)。同時,為了模擬這種非線性問題的求解,本文使用一個具體的非線性函數(shù)用于Elman神經(jīng)網(wǎng)絡(luò)的方法測試。非線性函數(shù)的具體公式如下,圖形表示如圖1所示。
1 Elman神經(jīng)網(wǎng)絡(luò)
Elman神經(jīng)網(wǎng)絡(luò)是一個常見的反饋型神經(jīng)網(wǎng)絡(luò),由Elman于1990年提出的。常見的BP神經(jīng)網(wǎng)絡(luò)是一種前饋式網(wǎng)絡(luò),其輸出僅由當(dāng)前輸入和權(quán)值矩陣決定,而與網(wǎng)絡(luò)先前的輸出結(jié)果無關(guān)。而反饋神經(jīng)網(wǎng)絡(luò)的輸入包括有延遲的輸入或者輸出數(shù)據(jù)的反饋,由于存在有反饋的輸入,所以它是一種反饋動力學(xué)系統(tǒng)。該系統(tǒng)的學(xué)習(xí)過程就是神經(jīng)元狀態(tài)的變化過程,最終會達到一個神經(jīng)元的穩(wěn)定態(tài),標(biāo)志著學(xué)習(xí)過程的結(jié)束。Elman神經(jīng)網(wǎng)絡(luò)模型在前饋式網(wǎng)絡(luò)的隱含層中增加了一個承接層,作為一步延時的算子,以達到記憶的目的,從而使系統(tǒng)具有適應(yīng)時變特性的能力,能直接動態(tài)反映過程系統(tǒng)的特性[2]。
Elman神經(jīng)網(wǎng)絡(luò)一般分為四層:輸入層,隱含層(中間層),承接層和輸出層(圖2)。輸入層、隱含層、輸出層的連接類似于前饋式網(wǎng)絡(luò),輸入層的單元僅起信號傳輸作用,輸出層單元起線性加權(quán)作用。隱含層單元的傳遞函數(shù)可采用線性或非線性函數(shù),承接層又稱為狀態(tài)層,它用來記憶隱含層單元前一時刻的輸出值并返回給網(wǎng)絡(luò)的輸入。
以上圖為例,Elman網(wǎng)絡(luò)的非線性狀態(tài)空間表達式為:
式中,y為m維輸入結(jié)點向量,x為n維中間層結(jié)點單元向量,u為r維輸入向量,xc為n維反饋式狀態(tài)向量。w3為中間層到輸出層連接權(quán)值,w2為輸入層到中間層連接權(quán)值,w1為承接層到中間層的連接權(quán)值。g(*)為輸出神經(jīng)元的傳遞函數(shù),是中間層輸出的線性組合。f(*)為中間層神經(jīng)元的傳遞函數(shù),常采用S函數(shù)。Elman神經(jīng)網(wǎng)絡(luò)采用BP算法進行權(quán)值修正,學(xué)習(xí)指標(biāo)函數(shù)采用誤差平方和函數(shù)。
式中為目標(biāo)輸入向量。
2 實驗結(jié)果
實驗首先使用公式(1)中的非線性函數(shù)方程隨機生成若干組輸入輸出數(shù)據(jù),然后將數(shù)據(jù)進行處理后分為訓(xùn)練集和測試集兩個部分,訓(xùn)練集將用于Elman神經(jīng)網(wǎng)絡(luò)的訓(xùn)練擬合。最后,使用測試集檢驗訓(xùn)練好的Elman神經(jīng)網(wǎng)絡(luò)的擬合效果。
2.1 數(shù)據(jù)預(yù)處理
使用公式(1)中的非線性函數(shù)隨機生成400組輸入輸出數(shù)據(jù),為了防止單一變量影響其他變量,以及獲得可比較的取值范圍,對所有數(shù)據(jù)進行線性變換,變換后的變量取值范圍是[0.01, 0.99]。將這400組經(jīng)過處理的數(shù)據(jù)隨機劃分為訓(xùn)練集和測試集,其中訓(xùn)練集的數(shù)據(jù)量為320組,測試集的數(shù)據(jù)量為其余80組。
2.2 Elman神經(jīng)網(wǎng)絡(luò)模型建立
根據(jù)非線性函數(shù)的輸入輸出數(shù)據(jù),建立的Elman神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)為2-5-1(圖3),即2個輸入神經(jīng)元分別表示方程中的x1和x2,隱層神經(jīng)元的數(shù)量設(shè)置為5個,1個輸出神經(jīng)元對應(yīng)方程中的y值。
實驗數(shù)據(jù)由400組經(jīng)過數(shù)據(jù)預(yù)處理的數(shù)據(jù)組成,每組數(shù)據(jù)均有兩個輸入值和與之對應(yīng)的一個輸出值。Elman神經(jīng)網(wǎng)絡(luò)的訓(xùn)練集和測試集隨機分為320組和80組,使用這320組訓(xùn)練集數(shù)據(jù)對Elman神經(jīng)網(wǎng)絡(luò)進行訓(xùn)練,隨著訓(xùn)練過程的進行網(wǎng)絡(luò)誤差逐漸遞減,經(jīng)過2000余次訓(xùn)練后,訓(xùn)練誤差趨于穩(wěn)定(圖4)。
2.3 結(jié)果分析
使用上述訓(xùn)練好的Elman神經(jīng)網(wǎng)絡(luò)對未參與訓(xùn)練的80組測試集數(shù)據(jù)進行預(yù)測,Elman神經(jīng)網(wǎng)絡(luò)的預(yù)測輸出與期望輸出如圖5所示。
通過圖5可以看到,Elman神經(jīng)網(wǎng)絡(luò)的預(yù)測輸出較好的擬合了非線性函數(shù)的真實值,80組測試集數(shù)據(jù)的平均相對誤差低于3.4%,表明Elman神經(jīng)網(wǎng)絡(luò)的預(yù)測精度還是比較高的。少量測試數(shù)據(jù)仍存在一定誤差,這表明基于Elman神經(jīng)網(wǎng)絡(luò)的非線性函數(shù)擬合還是存在一些問題,比如需要較大的訓(xùn)練數(shù)據(jù),才可能不斷提高神經(jīng)網(wǎng)絡(luò)的訓(xùn)練精度。
3 結(jié)論
本文基于Elman神經(jīng)網(wǎng)絡(luò)方法對非線性函數(shù)擬合進行相關(guān)研究。方法通過非線性函數(shù)方程的2000組輸入輸出數(shù)據(jù)對Elman神經(jīng)網(wǎng)絡(luò)進行訓(xùn)練,使該網(wǎng)絡(luò)能夠表達該非線性函數(shù)。通過使用訓(xùn)練好的Elman神經(jīng)網(wǎng)絡(luò)預(yù)測非線性函數(shù)的輸出,其預(yù)測的相對誤差低于3.4%,這表明基于Elman神經(jīng)網(wǎng)絡(luò)的非線性函數(shù)擬合是可行的。未來可以通過增加訓(xùn)練數(shù)據(jù)量以提高神經(jīng)網(wǎng)絡(luò)的訓(xùn)練精度。
參考文獻:
[1] 陳盾,陳俐. BP神經(jīng)網(wǎng)絡(luò)在模擬非線性系統(tǒng)輸出中的應(yīng)用[J].武漢理工大學(xué)學(xué)報,2003, 27(5):731-734.
[2] 史峰,王小川,郁磊,等. MATLAB神經(jīng)網(wǎng)絡(luò)30個案例分析[M].北京: 北京航空航天大學(xué)出版社,2010: 11-15.endprint