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