王迦祺,張 健,吳天慧,晉佳浩
(營(yíng)口理工學(xué)院 電氣工程學(xué)院,遼寧 營(yíng)口 115014)
作為一種典型的模塊化模型,Wiener模型由動(dòng)態(tài)線性模塊和靜態(tài)非線性模塊串聯(lián)構(gòu)成,結(jié)構(gòu)簡(jiǎn)單且易于操作,被廣泛應(yīng)用在非線性系統(tǒng)的建模中[1]。
Wiener模型辨識(shí)問(wèn)題的一個(gè)難點(diǎn)在于非線性模塊的構(gòu)造。文獻(xiàn)[2]和文獻(xiàn)[3]分別使用核回歸函數(shù)和樣條函數(shù)來(lái)構(gòu)造系統(tǒng)的非線性模塊。文獻(xiàn)[4]和文獻(xiàn)[5]還分別利用有限冪次的多項(xiàng)式和兩段低冪次的多項(xiàng)式來(lái)逼近非線性模塊。這類方法參數(shù)較少,雖然易于逼近,但是精度有限??紤]到神經(jīng)網(wǎng)絡(luò)具有強(qiáng)大的非線性擬合能力,BP神經(jīng)網(wǎng)絡(luò)[6]、多層前饋神經(jīng)網(wǎng)絡(luò)[7]、多層感知器[8]等自然被應(yīng)用在Wiener模型辨識(shí)中。這類方案大多采用傳統(tǒng)的優(yōu)化方法,如梯度下降法等來(lái)獲得線性部分和非線性部分的參數(shù)。由于傳統(tǒng)優(yōu)化算法容易陷入局部最優(yōu),因此為了提高模型準(zhǔn)確度,智能優(yōu)化算法被引入Wiener模型的辨識(shí)問(wèn)題中。粒子群優(yōu)化算法(PSO)[9]、遺傳算法(GA)[10]和差分進(jìn)化算法(DE)[11]等作為典型代表,也都被用來(lái)訓(xùn)練非線性模塊。大量實(shí)驗(yàn)證明了智能優(yōu)化算法在提升辨識(shí)精度方面的有效性,也說(shuō)明了其在解決模塊化系統(tǒng)辨識(shí)問(wèn)題上有良好的應(yīng)用前景。
Wiener模型辨識(shí)問(wèn)題另一個(gè)難點(diǎn)則在于線性模塊與非線性模塊之間的內(nèi)部變量不可測(cè)。文獻(xiàn)[12]利用迭代辨識(shí)思想,每次迭代時(shí)用上一次估計(jì)的參數(shù)計(jì)算內(nèi)部變量,并用于本次迭代估計(jì)。然而這種方法受初始值影響較大,收斂精度無(wú)法保證。文獻(xiàn)[13]則將利用特殊的輸入信號(hào)來(lái)估測(cè)模型的內(nèi)部變量。首先用較弱的信號(hào)辨識(shí)線性模塊,之后增大信號(hào)幅值,利用線性模塊和整個(gè)系統(tǒng)的輸出數(shù)據(jù)來(lái)辨識(shí)非線性部分的參數(shù)。文獻(xiàn)[14]還將兩個(gè)不同幅值的階躍信號(hào)或脈沖信號(hào)作為輸入,通過(guò)分析它們的輸出響應(yīng)來(lái)進(jìn)行參數(shù)估計(jì)。但是這種方法也存在不足,就是采用的小幅值輸入信號(hào)可能會(huì)降低算法的收斂性。針對(duì)Wiener模型辨識(shí)的這兩個(gè)難點(diǎn)問(wèn)題,本文充分結(jié)合神經(jīng)網(wǎng)絡(luò)的非線性擬合能力和智能優(yōu)化算法的計(jì)算能力,來(lái)對(duì)模型的非線性模塊和線性模塊同時(shí)進(jìn)行訓(xùn)練。
考慮單輸入單輸出離散Wiener模型,結(jié)構(gòu)如圖1所示。
圖1 Wiener模型結(jié)構(gòu)
模型的數(shù)學(xué)表達(dá)式如式(1)和式(2)。
A(z-1)x(k)=B(z-1)u(k)
(1)
y(k)=f[x(k)]+e(k)
(2)
式中:u(k)為采樣時(shí)刻k的模型輸入;x(k)為采樣時(shí)刻k非線性模塊的輸出;y(k)為采樣時(shí)刻k的模型輸出;f[·]表示靜態(tài)非線性函數(shù);e(k)代表額外噪聲;z-1表示單位后移算子,即z-1x(k)=x(k-1);A(z-1)和B(z-1) 表示的是數(shù)學(xué)多項(xiàng)式,可以表達(dá)如式(3)。
(3)
因此線性模塊需要辨識(shí)的參數(shù)即為傳遞函數(shù)系數(shù)a=[a1,a2,…,an]T和b=[b1,b2,…,bm]T。
函數(shù)連接型神經(jīng)網(wǎng)絡(luò)(FLANN)作為一種單層的神經(jīng)網(wǎng)絡(luò),訓(xùn)練速度快,已經(jīng)被成功應(yīng)用于無(wú)線傳感器[15]、構(gòu)造專家系統(tǒng)[16]和圖像特征提取[17]等眾多領(lǐng)域。而文獻(xiàn)[18]則利用布谷鳥算法來(lái)訓(xùn)練FLANN,且將其應(yīng)用在非線性系統(tǒng)辨識(shí)中。本章則利用FLANN來(lái)構(gòu)造Wiener模型的非線性模塊。
FLANN的結(jié)構(gòu)如圖2所示,核心環(huán)節(jié)為輸入向量的維數(shù)擴(kuò)展,通過(guò)擴(kuò)展函數(shù)將輸入向量映射到一個(gè)更高維的空間。通常使用的擴(kuò)展函數(shù)有三角函數(shù)、切比雪夫函數(shù)和冪級(jí)數(shù)等。
圖2 FLANN的結(jié)構(gòu)
FLANN輸入輸出關(guān)系如式(4)。
(4)
因此非線性模塊需要辨識(shí)的參數(shù)向量為連接權(quán)值w=(w0,w1,…,wM)。
飛蛾撲火優(yōu)化算法(MFO)是由Seyedali Mirjalili提出的一種自然啟發(fā)式優(yōu)化算法[19]。它源于飛蛾的特殊導(dǎo)航機(jī)制:橫向定位。夜間,飛蛾以固定的角度朝月亮飛行,因?yàn)樵铝僚c其相距很遠(yuǎn),這種機(jī)制可以保證長(zhǎng)距離的直線飛行。但是,當(dāng)飛蛾遇到一束人造光(火焰)時(shí),由于這種光線離飛蛾很近,與其保持固定的角度就會(huì)導(dǎo)致飛蛾做螺旋飛行,而飛蛾優(yōu)化算法正是模擬這個(gè)過(guò)程來(lái)執(zhí)行優(yōu)化。
在算法中,飛蛾和火焰都代表可行解,二者的區(qū)別為飛蛾是實(shí)際移動(dòng)的主體,而火焰是當(dāng)前獲得的最優(yōu)解。它們?cè)诮饪臻g的位置則代表了問(wèn)題的變量。為了模擬飛蛾撲火行為,采取對(duì)數(shù)螺旋線來(lái)對(duì)飛蛾位置進(jìn)行更新,定義如式(5)。
Mi=Di·ebt·cos (2πt)+Fj
(5)
式中:Mi代表第i只飛蛾;Fj代表第j個(gè)火焰;Di代表了第i只飛蛾和第j個(gè)火焰之間的距離:|Mi-Fj|;b為定義對(duì)數(shù)螺旋線形狀的常數(shù);t是[-1,1]之間的一個(gè)隨機(jī)數(shù),描述飛蛾下一個(gè)位置接近火焰的程度(t=-1表示離火焰最近,而t=1表示離火焰最遠(yuǎn))。
每次迭代后,火焰根據(jù)適合度值進(jìn)行排序,而每只飛蛾也根據(jù)相應(yīng)的火焰來(lái)更新自己的位置。第一只飛蛾針對(duì)最好的火焰更新它的位置,而最后一只飛蛾則針對(duì)最差的火焰更新位置。每只飛蛾的位置會(huì)根據(jù)不同的火焰進(jìn)行更新,但這會(huì)影響對(duì)最優(yōu)解的探尋。針對(duì)這一問(wèn)題,通過(guò)式(6)來(lái)自適應(yīng)調(diào)整火焰的數(shù)量,也就是在算法的末期,只采用最好的火焰更新飛蛾位置。
(6)
式中:l為當(dāng)前迭代次數(shù);T為最大迭代次數(shù);N為火焰最大數(shù)量;round為取整函數(shù)。
Rajabioun[20]指出,在智能優(yōu)化過(guò)程中,大部分的隨機(jī)游走種群應(yīng)該集中在當(dāng)前最優(yōu)解附近,但始終應(yīng)該有個(gè)別成員負(fù)責(zé)進(jìn)一步探索更遠(yuǎn)的區(qū)域。而重尾分布正好滿足這種搜索模式。高斯混合分布作為重尾分布的一種,可以近似許多其他重尾分布,是一種通用的模型。在高斯混合分布集合中,由兩個(gè)高斯分布組成的分布函數(shù)具有最佳的描述特性。典型的二項(xiàng)高斯混合分布模型如式(7)。
(7)
如果飛蛾的位置更新能夠和高斯混合分布結(jié)合,就能夠?qū)崿F(xiàn)短距離的局部性搜索和偶爾長(zhǎng)距離的隨機(jī)游走相間,有利于擴(kuò)寬算法探索范圍,增強(qiáng)種群多樣性,進(jìn)而有利于算法跳出局部最優(yōu)。本文的做法是在每只飛蛾做完螺旋飛行之后,都再進(jìn)行一次服從高斯混合分布的隨機(jī)飛行,具體公式如式(8)。
(8)
為了增加算法隨機(jī)性,將步長(zhǎng)α設(shè)定為飛蛾的當(dāng)前位置,式(8)可重新定義為式(9)。
(9)
通過(guò)這種方式,橫向定位與重尾分布可以形成優(yōu)勢(shì)互補(bǔ),有利于平衡標(biāo)準(zhǔn)MFO算法的探測(cè)能力和開采能力。
除此之外,本文還將高斯混合分布引入飛蛾種群初始化中,用來(lái)提供一個(gè)更好的初始化種群選擇。
在標(biāo)準(zhǔn)MFO算法中,初始種群是由式(10)產(chǎn)生的。
initmoths(i)=Lb(i)+(Ub(i)-Lb(i))⊕rand(0,1)(n)
(10)
式中:initmoths(i)代表初始飛蛾種群的第i維分量;Ub(i)和Lb(i)分別代表代表第i維分量的上界和下界;rand(0,1)(n)代表取值在(0,1)之間,維數(shù)為n的隨機(jī)序列。
而GMFO算法中,我們將種群初始化的方式重新定義如式(11)。
initmoths(i)=Lb(i)+(Ub(i)-Lb(i))⊕GMD(0,1)(n)
(11)
式中:GMD(0,1)(n)代表0,1之間,維數(shù)為n,服從二項(xiàng)高斯混合分布的隨機(jī)序列。通過(guò)這種方式能夠獲得離群的飛蛾,有利于初始種群的離散化。
綜上所述,高斯混合飛蛾優(yōu)化算法(GMFO)的偽代碼表示如下:
在智能優(yōu)化算法領(lǐng)域,經(jīng)常使用一系列具有全局最優(yōu)值的數(shù)學(xué)函數(shù)來(lái)測(cè)試算法的性能。因此,本文也利用六個(gè)不同的測(cè)試函數(shù)來(lái)評(píng)估GMFO算法的基本性能。
表1 測(cè)試函數(shù)的參數(shù)
在表1中,六個(gè)測(cè)試函數(shù)的全局最優(yōu)值均為f(x*)=0,x*=(0,…,0)。f1-f3為單峰函數(shù);f4-f6為多峰函數(shù)。由于單峰函數(shù)只有一個(gè)全局最優(yōu)解而沒有局部最優(yōu),因此單峰函數(shù)非常適合測(cè)試算法的全局搜索能力和收斂精度。而多峰函數(shù)有多個(gè)局部最優(yōu)解,對(duì)它進(jìn)行測(cè)試可以更好地反映算法的探測(cè)能力和跳出局部最優(yōu)的能力。
2.3.1 算法參數(shù)設(shè)置
為了更好地討論GMFO算法的性能,除了標(biāo)準(zhǔn)MFO外,本文還選擇了粒子群算法(PSO)和布谷鳥算法(CS)作為對(duì)比。
每組實(shí)驗(yàn)中,每個(gè)算法的種群個(gè)數(shù)均設(shè)為30,最大迭代次數(shù)為1000。對(duì)于PSO,慣性權(quán)重w=0.729,學(xué)習(xí)因子c1=c2=1.5;對(duì)于CS,變異概率概率pa=0.25,步長(zhǎng)α=1,Lévy飛行參數(shù)λ=1.5;對(duì)于MFO,b=1。對(duì)于GMFO中的GMD(εi,δi,τi)部分,通過(guò)反復(fù)試驗(yàn)直接給出了一個(gè)參考值:εi=1/3,δi=0.2,τi=50。
2.3.2 實(shí)驗(yàn)結(jié)果分析
為了消除隨機(jī)因素的影響,對(duì)6個(gè)測(cè)試函數(shù),每種算法都獨(dú)立運(yùn)行50次。測(cè)試函數(shù)的數(shù)值結(jié)果見表2,粗體為最優(yōu)結(jié)果。測(cè)試函數(shù)的收斂曲線如圖3所示。
圖3 測(cè)試函數(shù)的收斂曲線
如表2所示,對(duì)于單峰函數(shù)f1-f3,從最優(yōu)值、最差值和平均值的結(jié)果可以看出,GMFO的收斂精度明顯優(yōu)于其他算法,并且對(duì)于f1和f2幾乎可以收斂到全局最優(yōu),這說(shuō)明GMFO具有很強(qiáng)的全局搜索能力。對(duì)于多峰函數(shù)f4-f6,GMFO也給出了最佳的數(shù)值結(jié)果,并且針對(duì)f4和f5幾乎可以收斂到全局最優(yōu),這也證明了GMFO在跳出局部最優(yōu)和探索全局最優(yōu)方面的巨大優(yōu)勢(shì)。對(duì)于每個(gè)測(cè)試函數(shù),GMFO的標(biāo)準(zhǔn)差都比其他算法小很多,說(shuō)明了GMFO具有更強(qiáng)的穩(wěn)定性。
表2 測(cè)試函數(shù)的數(shù)值結(jié)果
此外,從圖3中的6個(gè)收斂曲線可以看出,GMFO的收斂速度比MFO有了很大的提高,并且是四種算法中收斂速度最快的,這說(shuō)明GMFO在能達(dá)到理想的收斂精度的同時(shí),也能保證良好的收斂速度。因此,根據(jù)表2和圖3可以得出結(jié)論:GMFO算法是有效的并且性能很好。
待辨識(shí)的模型結(jié)構(gòu)和實(shí)際Wiener系統(tǒng)相似,數(shù)學(xué)表達(dá)式如下:
(12)
(13)
(14)
(15)
(16)
因此,辨識(shí)問(wèn)題被轉(zhuǎn)化成單目標(biāo)優(yōu)化問(wèn)題,辨識(shí)的目的是利用一組輸入/輸出數(shù)據(jù)來(lái)估計(jì)所有未知參數(shù),并極小化MSE。辨識(shí)過(guò)程的原理圖如圖4所示。辨識(shí)步驟如下:
(1) 采集系統(tǒng)的實(shí)際輸入輸出數(shù)據(jù)樣本u(k)和y(k)。
(2) 設(shè)定算法參數(shù)并初始化種群。
(4) 通過(guò)GMFO對(duì)MSE指標(biāo)進(jìn)行評(píng)價(jià),得到當(dāng)前代的最優(yōu)解。
(5) 判斷是否滿足算法終止條件。如滿足,終止算法,獲得辨識(shí)模型;否則重復(fù)步驟4)。
圖4 辨識(shí)過(guò)程原理圖
3.2.1 仿真實(shí)例1
考慮如下Wiener模型
y(k)=x(k)+0.5x2(k)+0.3x3(k)+e(k)
(17)
(1+0.6z-1+0.2z-2+z-3)x(k)=(0.4z-1+0.8z-2)u(k)
(18)
其中:輸入信號(hào)u(k)是[-1,1]之間均勻分布的隨機(jī)序列;e(k)為服從N(0, 0.01)分布的高斯噪聲;FLANN中的每一個(gè)輸入樣本都利用冪級(jí)函數(shù)來(lái)擴(kuò)展,描述如下:
(19)
線性部分需要辨識(shí)的參數(shù)向量為:
?=[0.6,0.2,1,0.4,0.8]
(20)
在本實(shí)驗(yàn)中,所有的算法種群個(gè)數(shù)設(shè)為50,最大迭代次數(shù)為300,算法其他參數(shù)設(shè)置和第2.3.1節(jié)相同。線性部分參數(shù)搜索范圍設(shè)置為[-2,2],非線性部分參數(shù)搜索范圍設(shè)置為[-4,4]。辨識(shí)窗口長(zhǎng)度為30。為了減少隨機(jī)因素的影響,每種算法均獨(dú)立進(jìn)行十次實(shí)驗(yàn)。四種算法的辨識(shí)結(jié)果平均值見表3,粗體為最優(yōu)結(jié)果。GMFO和MFO分別訓(xùn)練FLANN來(lái)擬合非線性模塊的效果對(duì)比如圖5所示。實(shí)際輸出和辨識(shí)輸出的對(duì)比如圖6所示。
表3 辨識(shí)結(jié)果對(duì)比
圖5 實(shí)際非線性和FLANN擬合的對(duì)比
圖6 實(shí)際輸出和辨識(shí)輸出的對(duì)比
3.2.2 仿真結(jié)果分析
從結(jié)果可以看出,在高斯噪聲的影響下,四種智能優(yōu)化算法均能夠有效地訓(xùn)練神經(jīng)網(wǎng)絡(luò)并同時(shí)辨識(shí)線性模塊。從表3數(shù)據(jù)及圖5、圖6的辨識(shí)結(jié)果可以看出,GMFO算法在非線性模塊擬合及線性部分參數(shù)辨識(shí)方面的性能,相比MFO有很大提升,并且是4種算法中精度最高的,證明了基于GMFO辨識(shí)方案的有效性。此外,從結(jié)果中還可以發(fā)現(xiàn)PSO算法的辨識(shí)精度相比之下要差很多,這可能是由于PSO不適合于此類問(wèn)題而過(guò)早陷入局部最優(yōu)造成的。
3.2.3 仿真實(shí)例2
為了進(jìn)一步證明所提出辨識(shí)方案的有效性,將實(shí)例1模型的非線性環(huán)節(jié)替換為一個(gè)更復(fù)雜的形式,如式(21)所示,而線性環(huán)節(jié)保持不變。
(21)
FLANN中的每一個(gè)輸入樣本都利用三角函數(shù)來(lái)擴(kuò)展,描述如下:
(22)
在本實(shí)驗(yàn)中,所有算法的參數(shù)設(shè)置和實(shí)例1相同。線性部分參數(shù)搜索范圍設(shè)置為[-2,2],非線性部分參數(shù)搜索范圍設(shè)置為[-6,6]。辨識(shí)窗口長(zhǎng)度為30。為了減少隨機(jī)因素的影響,每種算法均獨(dú)立進(jìn)行十次實(shí)驗(yàn)。四種算法的辨識(shí)結(jié)果平均值見表4,粗體為最優(yōu)結(jié)果。GMFO和MFO分別訓(xùn)練FLANN來(lái)擬合非線性模塊的效果對(duì)比如圖7所示。實(shí)際輸出和辨識(shí)輸出的對(duì)比如圖8所示。
表4 辨識(shí)結(jié)果對(duì)比
圖7 實(shí)際非線性和FLANN擬合的對(duì)比
圖8 實(shí)際輸出和辨識(shí)輸出的對(duì)比
3.2.4 仿真結(jié)果分析
從表4中的數(shù)據(jù)及圖7、圖8的辨識(shí)結(jié)果可以看出,實(shí)例2中的Wiener模型辨識(shí)精度要低于實(shí)例1,這可能是由于非線性較為復(fù)雜而導(dǎo)致FLANN的擬合精度有所降低,同時(shí)也一定程度影響了線性模塊的參數(shù)辨識(shí)。但是GMFO算法依然是4種算法中辨識(shí)效果最好的,且具有明顯優(yōu)勢(shì),比較令人滿意。這證明了基于GMFO辨識(shí)方案的魯棒性,也進(jìn)一步驗(yàn)證了辨識(shí)方案的有效性。此外,從結(jié)果中還可以發(fā)現(xiàn)PSO算法的辨識(shí)誤差依然很大,這可能是由于PSO不適合于此類問(wèn)題而過(guò)早陷入局部最優(yōu)造成的。而之所以GMFO算法的辨識(shí)精度較高,則是由于離群飛蛾的存在,高斯混合分布能夠?qū)崿F(xiàn)長(zhǎng)距離的搜索并且生成可以跳出局部最優(yōu)的步長(zhǎng),因此能夠很好解決此類辨識(shí)問(wèn)題。
在標(biāo)準(zhǔn)飛蛾優(yōu)化算法(MFO)的基礎(chǔ)上,通過(guò)調(diào)整飛蛾種群初始化、改進(jìn)飛蛾位置更新操作提出了高斯混合飛蛾優(yōu)化算法(GMFO),并通過(guò)測(cè)試函數(shù)證明了GMFO強(qiáng)大的開采能力和探測(cè)能力,收斂精度和收斂速度相比MFO得到大幅提升。
針對(duì)Wiener模型,設(shè)計(jì)了一種基于GMFO算法的辨識(shí)方案。首先針對(duì)非線性模塊構(gòu)造環(huán)節(jié),考慮到神經(jīng)網(wǎng)絡(luò)的非線性擬合能力,選用FLANN來(lái)進(jìn)行構(gòu)造。之后將神經(jīng)網(wǎng)絡(luò)和智能優(yōu)化算法的優(yōu)勢(shì)結(jié)合起來(lái),通過(guò)把MSE定為評(píng)價(jià)指標(biāo),將FLANN的訓(xùn)練和線性模塊的參數(shù)辨識(shí)同步進(jìn)行。最后做了兩組仿真實(shí)驗(yàn),選取了兩種Wiener模型,將其他三種群智能優(yōu)化算法作為對(duì)比,通過(guò)分析MSE與線性部分參數(shù)估計(jì)誤差等指標(biāo),驗(yàn)證了基于GMFO算法辨識(shí)方案的有效性和魯棒性。