張彩霞 劉國文
一個訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)可以看成是一種知識的表達(dá),與模糊系統(tǒng)中使用IF-THEN 規(guī)則表達(dá)局部知識不同,神經(jīng)網(wǎng)絡(luò)通過它的結(jié)構(gòu),更確切地說,通過它的連接權(quán)和局部處理單元,以一種分布式的或局部的方法來儲存知識.神經(jīng)網(wǎng)絡(luò)中的前饋計算與模糊系統(tǒng)中的前向推理扮演同樣的角色.這兩種系統(tǒng)都能根據(jù)當(dāng)前情況通過對存儲知識的操作來執(zhí)行任務(wù),以得到期望輸出.通過給定一個合適的行為來響應(yīng)新情況是這兩種系統(tǒng)的核心.但是,兩者完成任務(wù)的方法是不同的.模糊系統(tǒng)是基于邏輯推論的插值推理,而神經(jīng)網(wǎng)絡(luò)是基于泛化能力的代數(shù)計算.模糊系統(tǒng)通常是從領(lǐng)域?qū)<姨帿@取知識,這個知識借助模糊邏輯理論融入系統(tǒng).相反,神經(jīng)網(wǎng)絡(luò)通常從樣本中獲取知識,這個知識通過訓(xùn)練被吸收到神經(jīng)網(wǎng)絡(luò)中.模糊系統(tǒng)和神經(jīng)網(wǎng)絡(luò)的結(jié)合就形成了模糊神經(jīng)網(wǎng)絡(luò),這種網(wǎng)絡(luò)致力于兩種方法的優(yōu)點,同時避免它們各自的缺陷.把神經(jīng)網(wǎng)絡(luò)應(yīng)用于模糊系統(tǒng),可以解決模糊系統(tǒng)中提取模糊規(guī)則的問題,把模糊系統(tǒng)應(yīng)用于神經(jīng)網(wǎng)絡(luò),可以避免任意選擇初值.
本文提出的動態(tài)模糊神經(jīng)網(wǎng)絡(luò)(Dynamic fuzzy neural network,D-FNN)學(xué)習(xí)算法的特點是:不僅參數(shù)可以在學(xué)習(xí)過程中調(diào)整,同時,也可以自動確定模糊神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu).從功能上看,它等同于一個TSK(Takagi-Sugeno-Kang)模糊系統(tǒng),該系統(tǒng)采用高斯隸屬函數(shù)和T-范數(shù)乘積算子[1].
D-FNN 結(jié)構(gòu)如圖1 所示.
圖1 D-FNN 示意圖Fig.1 D-FNN schematic
在圖1 中,x1,x2,···,xr是系統(tǒng)的輸入數(shù)據(jù),Y是系統(tǒng)的輸出數(shù)據(jù),MFru是隸屬函數(shù)[2].
高斯函數(shù)表示的隸屬函數(shù)為
其中,cij是xi的第j個高斯隸屬函數(shù)的中心,σj是xi的第j個高斯隸屬函數(shù)的寬度.
Nj為第j個節(jié)點的輸出
總輸出信號為
其中,y是輸出信號,wk是模糊規(guī)則.對于TSK 模型[3]
TSK 模型
D-FNN 的結(jié)構(gòu)不僅由接收域決定,還由系統(tǒng)誤差決定,盡管這兩種方法都可以劃分為分級自組織方法.由輸出誤差確定是否應(yīng)該加入新模糊規(guī)則.
輸出誤差判斷描述如下:(Xi,ti)是第i個輸入數(shù)據(jù),Xi表示第i個輸入向量,ti表示第i個期望的輸出,動態(tài)模糊神經(jīng)網(wǎng)絡(luò)輸出為yi.
定義
如果
此時,增加一條新的模糊規(guī)則.ke值是根據(jù)動態(tài)模糊神經(jīng)網(wǎng)絡(luò)期望的精度預(yù)先選定的[4].分級學(xué)習(xí)主要思想能保證更簡潔的結(jié)構(gòu)和更短的學(xué)習(xí)時間.ke是個變量
這里,最大誤差為emax,動態(tài)模糊神經(jīng)網(wǎng)絡(luò)的精度為emin,收斂常數(shù)是β(0<β <1)[5].
修剪策略采用的是誤差下降率(Error reduction rate,ERR)方法.用ERR、SVD(Singular value decomposition)和ED(Eigenvalue decomposition)方法的不同的修剪策略將導(dǎo)致不同的DFNN 結(jié)構(gòu),即不同模糊規(guī)則數(shù)以及對于某個特定的性能,每條規(guī)則的參數(shù)不同.實驗說明,ERR 方法具有明顯的物理意義和穩(wěn)定的數(shù)值計算,這就是該方法被廣泛使用的原因.
T=(t1,t2,···,tn)∈Rn為系統(tǒng)理想輸出,Y∈Rn為系統(tǒng)實際輸出.Ψ∈R(r+1)u×n和T ∈Rn之間有如下關(guān)系[6]
其中,期望輸出為D=TT∈Rn,回歸向量為H=ΨT=(h1···hv)∈Rn×v,v=u×(r+1),實參數(shù)為θ=WT∈Rn,誤差向量為EEE ∈Rn,回歸量為hi.回歸量為qi,期望輸出方差為誤差下降率為
erri值如果很大,那么qi和D的相似程度就很大[8],qi對于輸出結(jié)果影響顯著.式(12)的幾何意義也很顯著.向量qi和D的夾角設(shè)為φi,那么
若φi=90?,erri=0,表示兩個向量正交,意味著qi對D無影響,如果,若φi=0,erri=1,意味著qi對D影響顯著.?=(δ1,δ2,···,δu)∈R(r+1)×u為erri(i=1,2,···,(r+1)u)重新排列的矩陣,?的第i列δi是誤差下降率[9].定義
第i個模糊規(guī)則的重要性用ηi表達(dá),值ηi越大,表示第i個模糊規(guī)則越重要[10].假設(shè)
預(yù)先設(shè)置閾值為kerr,則第i個模糊規(guī)則可以剔除[11].
未修剪時的訓(xùn)練誤差總是比修剪后的誤差小,但是經(jīng)過修剪,無論是用ERR 還是SVD 或ED 方法,系統(tǒng)的測試誤差(用RMSE(Root-mean-square error)來評判)總是小于未修剪的系統(tǒng).
假定u個模糊規(guī)則是由n個觀測數(shù)據(jù)產(chǎn)生的,可以寫成式(16)N節(jié)點的模糊規(guī)則矩陣輸出形式
Xj(x1j,x2j,···,xrj)是輸入的觀測數(shù)據(jù),yi是系統(tǒng)的輸出數(shù)據(jù),可寫成式(17)形式[12]
對于TSK 模型,W由下式給出
對于S 模型,WT∈Ru,Ψ∈Ru×n.
具有如下表達(dá)形式的W?是屬于最優(yōu)的[13]
其中,Ψ 的轉(zhuǎn)置為ΨT,Ψ 的廣義逆為Ψ+=(ΨTΨ)?1ΨT.
卡爾曼濾波算法用于確定以下權(quán)值
其中,W0=0 和S0=χI為初始條件.經(jīng)過i次迭代后的系數(shù)矩陣為Wi,第i個觀測數(shù)據(jù)的誤差協(xié)方差矩陣為Si,χ是一個正數(shù),Ψ 的第i列為Ψi,u(r+1)×u(r+1)為單位矩陣I.
給予最新的數(shù)據(jù)最大的加權(quán),而最舊數(shù)據(jù)加權(quán)最小,乃至被遺忘[14].其實現(xiàn)方法是加入一個遺忘因子λ.采用數(shù)據(jù)遺忘法的回歸最小二乘法公式如下
其中,0<λ<1,λ越小,表明數(shù)據(jù)遺忘越快.
當(dāng)收集到的數(shù)據(jù)越來越多時,線性最小二乘法的自適應(yīng)能力將會大大降低.在這種情況下,就需要減少舊數(shù)據(jù)的影響.
?p是血壓的變化,SNP(Sodium nitroprusside)是硝普鈉,u為SNP 注射率,它們之間關(guān)系的傳遞函數(shù)為
其中,循環(huán)延時為Tc,初始傳送延時為Ti,硝普鈉的敏感性表示為k,滯后時間常數(shù)為τ,循環(huán)系數(shù)為α.
根據(jù)式(23),在硝普鈉影響下給出了平均動脈血壓(Mean artery pressure,MAP)的離散數(shù)學(xué)模型
參數(shù)m,a0,b0,b1和d在采樣時間下通過計算式(19)連續(xù)時間模型得到[15].
我們采用直接逆控制方法來檢測D-FNN 能否逼近一個動態(tài)時變的系統(tǒng).所謂直接逆控制法,就是基于系統(tǒng)的參考模型,模糊神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)或逼近該模型的逆系統(tǒng)模型,并作為控制器與控制對象簡單串接在一起,使合成的系統(tǒng)能夠在期望響應(yīng)r(t)和被控系統(tǒng)的輸出y(t)之間形成一個一致的映射.D-FNN 作為直接逆控制方法的原理圖如圖2 所示.其中參考模型的作用是用來產(chǎn)生訓(xùn)練樣本數(shù)據(jù).
圖2 控制方法數(shù)學(xué)模型Fig.2 Mathematical model of control method
在系統(tǒng)中D-FNN 作為控制器時,為了使輸出值y(t)逼近期望值r(t),目標(biāo)是要得到適當(dāng)?shù)目刂菩袨閡(t).這個仿真實驗需要兩個階段即學(xué)習(xí)階段與應(yīng)用階段.在學(xué)習(xí)階段,D-FNN 辨識了潛伏在對象的時變動態(tài)逆模型.在應(yīng)用階段,D-FNN 作為控制器產(chǎn)生控制行為.
逆模型通常由帶外輸入的自回歸非線性模型(Nonlinear auto regressive with exogenous input,NARX)經(jīng)過簡單的推導(dǎo)得到
由式(25),可以看到計算u(t)的值需要知道y(t+1)的值,而y(t+1)是未來值.為了解決這個問題,一般情況下用r(t+1)代替y(t+1).由于r(t)與參考信號有關(guān)聯(lián),這個代替是合理的.
可以用NARX 模型直接構(gòu)造如下的逆模型:u(t)=g[y(t+1),···,y(t?ny),u(t?1),···,u(t?nu)]
定義4 設(shè)[Tk1,Tk2],其中Tk1,Tk2∈T且1≤k1≤k2≤n,T為離散得分集,則稱為離散區(qū)間得分變量。特別地,當(dāng)k1=k2時,退化為得分變量。
取g≈f?1.實際上g不是f的準(zhǔn)確逆模型,它只是數(shù)學(xué)上逼近這個逆映射.
在注射系統(tǒng)標(biāo)準(zhǔn)時不變模型與注射系統(tǒng)參數(shù)變化模型仿真研究中,通過對血壓的控制來驗證D-FNN 逼近能力及所提控制方案的有效性.
病人響應(yīng)的數(shù)學(xué)模型表達(dá)如下:
為了產(chǎn)生訓(xùn)練數(shù)據(jù),藥物注射率u(k)取為
設(shè)A=50,初始條件為:當(dāng)t≤0 時?p(t)=0,u(t)=0,根據(jù)式(26)和式(27)提取200 個樣本.式(26)的逆模型取為?(k)=f(?p(k),?p(k ?3))其中,f是D-FNN,它代表式(22)的逆映射.DFNN 預(yù)定義的參數(shù)選擇如下:dmin=2,dmax=35,emin=0.5,emax=50emin,β=σ0=35,k=2.5,kw=1.05,kerr=0.0007 訓(xùn)練結(jié)果如圖3 所示.其中,圖3(a)是訓(xùn)練階段期望和實際注射的差別,圖3(b)是訓(xùn)練階段的均方根誤差,圖3(c)是訓(xùn)練階段期望(-)和實際注射率(o)比較.
控制器采樣間隔是15 s,高血壓病人的血壓設(shè)定為140 mmHg,D-FNN 控制器訓(xùn)練好后用于控制對象,最后病人的血壓要求降低到100 mmHg,如圖4 所示.其中,圖4(a)可以看到血壓隨著硝普鈉注射的變化而平穩(wěn)地變化,并沒有發(fā)生時延和震蕩,這表明D-FNN 很好地學(xué)習(xí)了模型的特性,對系統(tǒng)進(jìn)行了很好的建模.圖4(b)是血壓的實際的變化和期望的變化,期望的血壓變化中含有方差為1 mmHg的白噪聲,圖4(c)是仿真結(jié)果的血壓誤差.修剪技術(shù)對于動態(tài)時變非線性系統(tǒng)的辨識是非常必要的,如果在學(xué)習(xí)進(jìn)行時,檢測到不活躍的模糊規(guī)則并加以剔除,則可獲得更為緊湊的系統(tǒng)結(jié)構(gòu)以及快速的學(xué)習(xí)速度.
仿真的結(jié)果如下:?pmax=5.91;?MAPmax=2.61;?MAPmin=97.1.
由上述仿真結(jié)果可以看到:D-FNN 控制器能使得血壓平穩(wěn)的變化,能夠滿足實際的要求.
根據(jù)式(26),得到了病人在SNP作用下,最大后驗概率(Maximum a posteriori estimation)的離散數(shù)學(xué)模型
圖3 標(biāo)準(zhǔn)時不變系統(tǒng)的訓(xùn)練結(jié)果Fig.3 Training results for standard time invariant systems
圖4 D-FNN 對系統(tǒng)進(jìn)行的仿真Fig.4 D-FNN simulation of the system
為了觀察藥物注射系統(tǒng)參數(shù)變化模型的時變特性,使用一個移動窗口.設(shè)置移動窗口的寬度w=120.其中藥物注射系統(tǒng)變化模型的訓(xùn)練結(jié)果如圖5 所示.圖5(a)是D-FNN 控制器訓(xùn)練階段的期望(+)和實際(o)輸出比較,圖5(b)是訓(xùn)練時均方根誤差,圖5(c)是訓(xùn)練階段的輸出誤差.其中變化模型的測試結(jié)果見圖6.圖6(a)是藥物注射率和血壓之間的關(guān)系,圖6(b)是D-FNN 控制器的實際與期望的血壓變化比較,圖6(c)是噪聲環(huán)境下的藥物注射率,其中擾動選擇方差為1 mmHg 的白噪聲.
表1 是文獻(xiàn)[16]與D-FNN 中的仿真性能比較結(jié)果.IANC 方法與D-FNN 方法相比,D-FNN 的仿真結(jié)果(圖6(a))非常理想,即使在擾動選擇方差為1 mmHg 的白噪聲環(huán)境下也沒有大的延遲和振蕩.用最大誤差?pmax來評估期望和實際MAP(平均動脈血壓)變化的D-FNN 控制器的性能,IANC方法與D-FNN 方法相比較的結(jié)果列于表1 中.
表1 D-FNN 與IANC 的性能比較(mmHg)Table 1 Performance comparison between D-FNN and IANC(mmHg)
仿真時應(yīng)注意到,移動窗的寬度w在辨識時變系統(tǒng)中有著重要的作用.寬度w較小時,會遺漏一些重要的數(shù)據(jù);而寬度w較大時,收集到的樣本數(shù)據(jù)越來越多,D-FNN 逐漸進(jìn)入飽和而失去調(diào)整功能,使得時變參數(shù)無法辨識.
通過使用不同移動窗寬度,做了多次的仿真.根據(jù)RMSE(均方誤差)和?pmax進(jìn)行評估D-FNN的性能,仿真結(jié)果表明,最優(yōu)寬度w的范圍是90≤寬度w≤110.
圖5 參數(shù)變化模型的訓(xùn)練結(jié)果Fig.5 Training results of the parameter change model
圖6 參數(shù)變化模型的訓(xùn)練結(jié)果Fig.6 Test result of parameter change model
從仿真結(jié)果來看,由于使用了修剪技術(shù)與移動窗技術(shù),使得網(wǎng)絡(luò)結(jié)構(gòu)沒有持續(xù)增長,可獲得更為緊湊的D-FNN 結(jié)構(gòu),因而確保了系統(tǒng)的泛化能力.
采用分級學(xué)習(xí)的思想能保證更簡潔的結(jié)構(gòu)和更短的學(xué)習(xí)時間,分級學(xué)習(xí)策略的一大好處是可以緩解學(xué)習(xí)過程中的震蕩問題.實驗結(jié)果表明,D-FNN控制器具有強大的在線學(xué)習(xí)能力,特別是當(dāng)外部環(huán)境出現(xiàn)擾動時,D-FNN 具有很強的自適應(yīng)性和魯棒性可以把軌跡誤差迅速地減少到接近零.D-FNN 可以根據(jù)對控制系統(tǒng)的重要性及系統(tǒng)的復(fù)雜性自動地產(chǎn)生或者刪除模糊規(guī)則,在線學(xué)習(xí)時模型不需要預(yù)先設(shè)定,可以從訓(xùn)練數(shù)據(jù)設(shè)置次序自適應(yīng)地學(xué)習(xí),從而補償了非線性系統(tǒng)建模誤差處理外部擾動.通過仿真研究,動態(tài)模糊神經(jīng)網(wǎng)絡(luò)將會在許多實時自動控制系統(tǒng)中得到應(yīng)用.D-FNN 學(xué)習(xí)的快速性未來還有進(jìn)一步改進(jìn)的空間.