鄭曉芬 徐 暢
(同濟(jì)大學(xué)土木工程學(xué)院,上海 200092)
風(fēng)作為一種荷載,同時(shí)也是一種能量的載體。當(dāng)它出現(xiàn)在工程結(jié)構(gòu)(尤其是超高層建筑)時(shí),就對(duì)結(jié)構(gòu)物的抗風(fēng)設(shè)計(jì)提出了要求。在強(qiáng)風(fēng)的作用下,結(jié)構(gòu)物如果抗風(fēng)設(shè)計(jì)不合理,就會(huì)產(chǎn)生較大變形甚至破壞[1]。而當(dāng)風(fēng)出現(xiàn)在風(fēng)電場(chǎng)時(shí),就對(duì)風(fēng)電場(chǎng)的電力系統(tǒng)提出要求。如果風(fēng)速過大,風(fēng)電穿透功率超過一定比例之后,會(huì)嚴(yán)重影響電能質(zhì)量和電力系統(tǒng)的運(yùn)行[2-3]。對(duì)于風(fēng)速如果能有一個(gè)較好的預(yù)測(cè),在未來,對(duì)于超高層建筑將有更為安全可靠、經(jīng)濟(jì)合理的設(shè)計(jì)[4],對(duì)于電力系統(tǒng)也可以使電力調(diào)度部門必要時(shí)提前調(diào)整調(diào)度計(jì)劃,有效地減輕風(fēng)對(duì)電網(wǎng)的影響,而且還有其他諸多方面的意義。比如當(dāng)風(fēng)演變成為自然災(zāi)害時(shí),對(duì)風(fēng)速的預(yù)測(cè)將使我們提前做好面對(duì)災(zāi)害的準(zhǔn)備,以將人員傷亡以及經(jīng)濟(jì)損失降到最低。因此,風(fēng)速的預(yù)測(cè)應(yīng)用前景廣闊,研究收益極大,是值得不斷努力、不斷深入的研究方向。
隨著近幾十年來對(duì)人工智能研究領(lǐng)域的不斷探索,人工智能已被廣泛的應(yīng)用并解決許多復(fù)雜的土木工程問題。最小二乘支持向量機(jī)[5](Least Squares Support Vector Machine,LSSVM)作為一種新穎的人工智能技術(shù)已被應(yīng)用于土木工程領(lǐng)域中的風(fēng)速預(yù)測(cè)。由于參數(shù)的選擇對(duì)LSSVM的性能有極大的影響,經(jīng)過發(fā)展,現(xiàn)通常與各種智能優(yōu)化算法相結(jié)合,以減少參數(shù)對(duì)其性能的影響。而新興的螢火蟲算法(Firefly Algorithm,FA)具有設(shè)置參數(shù)少、易實(shí)現(xiàn)、收斂精度高等優(yōu)點(diǎn),但同時(shí)存在對(duì)優(yōu)秀個(gè)體依賴程度高,易產(chǎn)生震蕩現(xiàn)象的缺點(diǎn)。
為此,本文提出一種基于改進(jìn)螢火蟲算法優(yōu)化最小二乘支持向量機(jī)風(fēng)速預(yù)測(cè)模型,針對(duì)螢火蟲算法的不足進(jìn)行改進(jìn),并與基本螢火蟲算法最小二乘支持向量機(jī)(FA-LSSVM)、粒子群加速優(yōu)化最小二乘支持向量機(jī)(PSO-LSSVM)風(fēng)速預(yù)測(cè)模型進(jìn)行結(jié)果比對(duì),評(píng)價(jià)改進(jìn)螢火蟲算法優(yōu)化最小二乘支持向量機(jī)預(yù)測(cè)模型性能。
支持向量機(jī)經(jīng)過發(fā)展,現(xiàn)在已發(fā)展出最小二乘支持向量機(jī)。LSSVM是在SVM的基礎(chǔ)上,采用誤差的二次平方項(xiàng)代替SVM中的不敏感損失函數(shù),將不等式約束改成等式約束,把二次規(guī)劃問題轉(zhuǎn)化為求解線性方程組問題,以提高求解速度和收斂精度,并成功地應(yīng)用于函數(shù)逼近、分類以及時(shí)間序列預(yù)測(cè)等方面。其原理如下:
對(duì)于一個(gè)給定的訓(xùn)練集{(xi,yi)|i=1,2,…,n},xi∈Rn為n維輸入數(shù)據(jù),yi∈Rn為一維輸出數(shù)據(jù)。φ(·)通過非線性映射函數(shù)將輸入從原空間Rn映射到特征空間φ(·),將原輸入空間中的非線性回歸問題轉(zhuǎn)化為高維特征空間中的線性回歸問題,即
f(x)=ωTφ(x)+b
(1)
式中:φ(x)為映射函數(shù);ω=[ω1,…,ωn]為權(quán)向量;b為偏置。
根據(jù)結(jié)構(gòu)風(fēng)險(xiǎn)最小化原理,此線性回歸問題可表示為一個(gè)等式約束優(yōu)化問題。LSSVM目標(biāo)函數(shù)為
(2)
s.t.yi=ωTφ(xi)+b+ei(i=1,…,n)
(3)
式中:J為損失函數(shù);γ為正則化參數(shù)且γ>0;ei為誤差變量。
將約束優(yōu)化問題轉(zhuǎn)化為無約束優(yōu)化問題的拉格朗日等式為
(4)
式中,αi(i=1,2,…,n)為拉格朗日乘子。
將L分別對(duì)ω,b,ei,αi求偏導(dǎo)數(shù),并令等于0得方程:
(5)
令1n=[1,1,…,1],∝=[∝1,∝2,…,∝n],Ωn=[y1,y2,…,yn]T,Y=[y1,y2,…,yn]T,I為單位矩陣,聯(lián)立方程組消去ω,ei,式(5)簡(jiǎn)化為
(6)
由式(6)求出α和b,得到LSSVM回歸模型:
(7)
式中,k(x,xi)為核函數(shù),它是解決非線性分類、回歸問題的關(guān)鍵,通過核函數(shù)將非線性問題映射到高維特征空間,在這個(gè)空間內(nèi)便可進(jìn)行線性劃分。
螢火蟲算法是由劍橋大學(xué)Yang[6]在2008年提出的一種新穎的仿生智能優(yōu)化算法,通過模擬螢火蟲覓食、擇偶等習(xí)性而產(chǎn)生的相互因發(fā)光吸引而移動(dòng)的行為來解決最優(yōu)問題。螢火蟲算法是基于以下三個(gè)理想化特征提出的:①螢火蟲不分性別,即螢火蟲之間的相互吸引力只考慮個(gè)體發(fā)光的亮度;②吸引力與發(fā)光亮度成正比,與個(gè)體之間的距離成反比;③螢火蟲的亮度由待優(yōu)化的目標(biāo)函數(shù)值決定,即Ii=f(xi)。
在FA中,螢火蟲彼此吸引的原因取決于兩個(gè)要素,即自身亮度和吸引度。亮度小的螢火蟲被亮度大的螢火蟲吸引而向其移動(dòng),并更新自身位置。螢火蟲的發(fā)光亮度取決于自身所處位置的目標(biāo)值,亮度越高所表示的目標(biāo)值越好,吸引其他螢火蟲的能力也越強(qiáng)。若發(fā)光亮度相同,則螢火蟲各自隨機(jī)移動(dòng)。算法的數(shù)學(xué)描述與分析如下:
定義1 螢火蟲的相對(duì)熒光亮度:
(8)
定義2 螢火蟲的吸引度:
(9)
式中,β0為最大吸引度,即r=0處吸引度。
定義3 螢火蟲i被吸引向螢火蟲j移動(dòng)的位置更新公式:
xi=xi+β×(xj-xi)+α×(rand-0.5)
(10)
式中:α為步長(zhǎng)因子,是[0,1]上的常數(shù);rand為[0,1]上服從均勻分布的隨機(jī)數(shù)。
算法流程如圖1所示。
圖1 人工螢火蟲算法流程Fig.1 Algorithm flow of artificial firefly
由式(10)可以看出,當(dāng)個(gè)體距離峰值非常近時(shí),由于步長(zhǎng)可能大于該距離,將導(dǎo)致個(gè)體在峰值附近發(fā)生震蕩現(xiàn)象。因此步長(zhǎng)的設(shè)定很關(guān)鍵。通過多次實(shí)驗(yàn)發(fā)現(xiàn),當(dāng)α取值較大時(shí)能夠較好實(shí)現(xiàn)全局尋優(yōu),但在算法后期不易收斂,當(dāng)取值較小時(shí)雖提高了收斂效果,卻易于陷入局部最優(yōu)[7]。本文考慮,在迭代過程中加入一種自適應(yīng)步長(zhǎng),當(dāng)某一個(gè)體被另一個(gè)體吸引時(shí),如果兩者空間距離大于步長(zhǎng),則仍采用初始步長(zhǎng)進(jìn)行移動(dòng),如果兩者距離小于步長(zhǎng),則步長(zhǎng)調(diào)整為0.9倍的空間距離,帶入位置更新公式中。這樣,在最優(yōu)解附近搜索時(shí),既能保證搜索范圍的覆蓋,又能避免在最優(yōu)解附近發(fā)生震蕩現(xiàn)象。其偽代碼如下:
ifrij>步長(zhǎng)
步長(zhǎng)=0.9*rij
else
步長(zhǎng)=初始步長(zhǎng)
end
為了加強(qiáng)螢火蟲之間的吸引,在距離較遠(yuǎn)時(shí)仍能產(chǎn)生一定的相互移動(dòng),改進(jìn)螢火蟲的吸引度公式:
β=(β0-βmin)e-γrij+βmin
(11)
式中:β0為最大吸引度,即r=0處吸引度;βmin為最小吸引度。
在傳統(tǒng)螢火蟲算法中,每一代最優(yōu)個(gè)體沒有作相應(yīng)處理,導(dǎo)致最優(yōu)個(gè)體進(jìn)化停滯,不利于算法的進(jìn)一步收斂。采用文獻(xiàn)[8]中高斯算子對(duì)最優(yōu)個(gè)體進(jìn)行變異,給每次迭代得到的最優(yōu)個(gè)體加上一個(gè)服從高斯分布的隨機(jī)擾動(dòng)項(xiàng),如下:
xGbest=xbest+xbestN(0,1)
(12)
式中:xbest為當(dāng)前最優(yōu)螢火蟲;xGbest為變異后的最優(yōu)螢火蟲;N(0,1)為均值為0、方差為1 的高斯分布隨機(jī)變量。
最后比較變異前后螢火蟲適應(yīng)度值的大小,取兩者中適應(yīng)度值較佳的個(gè)體為本次迭代的螢火蟲最優(yōu)個(gè)體xbest。
本次實(shí)驗(yàn)數(shù)據(jù)采用30 m高度處建筑物實(shí)測(cè)風(fēng)速1 000個(gè)(采樣頻率為1 Hz,平均風(fēng)速為-0.78 m/s,附近建筑相距較遠(yuǎn)),取前800個(gè)作為訓(xùn)練集,后200個(gè)為測(cè)試集,嵌入維數(shù)m=10?;疚灮鹣x算法與改進(jìn)螢火蟲算法中螢火蟲數(shù)m=30、最大吸引度β0=1.0、最小吸引度βmin=0.25,光強(qiáng)吸收系數(shù)γ=1.0、步長(zhǎng)因子α=0.25、最大迭代次數(shù)Max=150。粒子群加速算法中最大迭代次數(shù)Max=150,種群規(guī)模m=30,k=0.5。LSSVM參數(shù)σ∈[0.1,1 000],γ∈[0.1,1 000]。實(shí)驗(yàn)平臺(tái)為MATLAB,版本為2012b。實(shí)驗(yàn)結(jié)果如圖2-圖4所示。
圖2 改進(jìn)FA算法預(yù)測(cè)風(fēng)速與實(shí)測(cè)風(fēng)速的幅值對(duì)比Fig.2 Amplitude comparison between wind speed predicted by improved FA algorithm and measured wind speed
圖3 基本FA算法預(yù)測(cè)風(fēng)速與實(shí)測(cè)風(fēng)速的幅值對(duì)比Fig.3 Amplitude comparison between wind speed predicted by basic FA algorithm and measured wind speed
圖4 粒子群加速算法預(yù)測(cè)風(fēng)速與實(shí)測(cè)風(fēng)速的幅值對(duì)比Fig.4 Amplitude comparison between wind speed predicted by Particle swarm acceleration algorithm and measured wind speed
由圖5可知,改進(jìn)螢火蟲算法優(yōu)化的LSSVM風(fēng)速預(yù)測(cè)模型在精度和收斂速度上都大于基本螢火蟲算法和粒子群算法優(yōu)化的LSSVM風(fēng)速預(yù)測(cè)模型。改進(jìn)螢火蟲算法在迭代10次左右就達(dá)到算法最優(yōu)值,粒子群算法在迭代20次左右達(dá)到算法最優(yōu)值,基本螢火蟲算法在迭代80次左右達(dá)到最優(yōu)值。但在本次實(shí)驗(yàn)中,由于算法本身對(duì)初始個(gè)體的依賴性較大,因此在實(shí)驗(yàn)中并不能保證每次運(yùn)算都能達(dá)到較好的實(shí)驗(yàn)精度,多次實(shí)驗(yàn)的結(jié)果離散性較大,而此結(jié)果是在對(duì)螢火蟲算法及改進(jìn)螢火蟲算法進(jìn)行多次實(shí)驗(yàn)取其最優(yōu)結(jié)果而成。因此,螢火蟲算法對(duì)初始優(yōu)秀個(gè)體的依賴將極大地影響實(shí)驗(yàn)結(jié)果。
圖5 三種預(yù)測(cè)模型的收斂速度Fig.5 Convergence rate of three prediction models
(1) 本文通過對(duì)螢火蟲算法進(jìn)行改進(jìn),并結(jié)合LSSVM建立風(fēng)速預(yù)測(cè)模型,實(shí)驗(yàn)表明,改進(jìn)的螢火蟲算法在預(yù)測(cè)精度與收斂速度方面較基本螢火蟲算法和粒子群算法都有更好的效果,有一定實(shí)際應(yīng)用價(jià)值。
(2) 實(shí)驗(yàn)也暴露了算法的不足,即螢火蟲算法對(duì)初始優(yōu)秀個(gè)體的依賴程度較高,下一步將針對(duì)這個(gè)問題再加以改進(jìn)研究。