張瀟瓏
(江西信息應(yīng)用職業(yè)技術(shù)學(xué)院 環(huán)境工程系,江西 南昌330043)
建筑物沉降預(yù)測(cè)有多種方法,包括回歸分析法、灰色理論法、時(shí)間序列法、人工神經(jīng)網(wǎng)絡(luò)法。以上幾種方法存在周期長(zhǎng)、速度慢、誤差大等缺點(diǎn),在樣本數(shù)目較大的條件下能取得良好的預(yù)測(cè)效果,但在小樣本數(shù)目的預(yù)測(cè)方面取得的成效并不理想?;疑碚摲ㄔ诮ㄖ锍两颠^(guò)程中受到的影響較大,精度得不到保證。人工神經(jīng)網(wǎng)絡(luò)在計(jì)算時(shí)存在收斂慢等現(xiàn)象,預(yù)測(cè)效果往往達(dá)不到要求。支持向量機(jī)[1]在實(shí)際應(yīng)用中存在一個(gè)亟待解決的問(wèn)題,即對(duì)于算法中的某些參數(shù)應(yīng)該如何設(shè)置。
針對(duì)這一問(wèn)題,本文提出自適應(yīng)粒子群優(yōu)化的支持向量機(jī)算法,利用自適應(yīng)粒子群優(yōu)化算法改進(jìn)支持向量機(jī)的參數(shù)選擇和設(shè)置,解決在建筑物變形預(yù)測(cè)方面的難題。
粒 子 群 算 法[2](Particle Swar m Optimization,PSO)是一種人工智能算法,其基本思想來(lái)源于對(duì)鳥(niǎo)群覓食過(guò)程的模擬和研究,是Eberhart于1995年提出的一種群體性、自適應(yīng)型的算法。近幾年,PSO算法的研究熱點(diǎn)逐漸傾向于它的全局收斂性、收斂精度及最優(yōu)解的確定。群體中的鳥(niǎo)被理想化為“粒子”,它們?cè)谶\(yùn)動(dòng)的過(guò)程中會(huì)受到速度和自身位置的影響,最終在復(fù)雜的空間里找出最優(yōu)解 因此PSO算法 核心部分由速度和位置兩個(gè)方面構(gòu)成。
在n維空間中,設(shè)有粒子群搜索,該種群由m個(gè)粒子構(gòu)成:Q={Q1,Q2,…,Qm},每一個(gè)粒子所處的位置Qi={qi1,qi2,…,qin},每一個(gè)粒子的速度可記為:Vi={vi1,vi2,…,vin}。則每個(gè)粒子的速度和位置可表示為
式中:vid(t+1)表示第i個(gè)粒子在t+1次迭代中,在第d維中的速度;c1(t),c2(t)為加速常數(shù);r()為區(qū)間[0 ,1]上的隨機(jī)數(shù);pbest為個(gè)體粒子最佳位置;pg為整個(gè)種群中的最優(yōu)位置;ω表示慣性權(quán)重,可根據(jù)式(3)進(jìn)行迭代法計(jì)算。
式中:ωmax為起始值;ωmin為終止值;itermax表示最大迭代次數(shù);iter為當(dāng)前迭代次數(shù)。
為避免算法進(jìn)入早熟狀態(tài),在算法中引入變異算子,具體方法是在一定區(qū)域內(nèi),粒子與粒子間的距離要找到一個(gè)平衡點(diǎn),即保持粒距在一定的精度后,保留平衡點(diǎn)所在的最優(yōu)位置,重新開(kāi)始在空間區(qū)域內(nèi)的下一步搜索。因此,分別將速度算式和位置算式改為式(4)、式(5)。
式(4)中,在式后加入的一個(gè)部分f·c3·vmax即為變異算子,當(dāng)某個(gè)粒子進(jìn)入局部收斂時(shí),對(duì)飛行速度的變異;f作為一個(gè)標(biāo)志值,取值范圍為0或1,一般情況下為0,當(dāng)陷入早熟時(shí)取值為1,c3為加速常數(shù),可由式(6)定義。
以上設(shè)計(jì)的方法,自動(dòng)調(diào)整粒子在搜索區(qū)域內(nèi)的搜索方向、速度、位置的功能稱(chēng)之為自適應(yīng)粒子群優(yōu)化算法(APSO)[4],算法流程如圖1所示。
圖1 APSO算法流程圖
本文將自適應(yīng)粒子群優(yōu)化的支持向量機(jī)算法稱(chēng)之為APSO-SVM算法。針對(duì)于支持向量機(jī),主要是其核函數(shù)及模型參數(shù)的確定。核函數(shù)類(lèi)型主要包括:線(xiàn)性核函數(shù)、多項(xiàng)式核函數(shù)、徑向基核(RBF)、傅里葉核函數(shù)、樣條核函數(shù)、Sigmoid核函數(shù)。在選取最優(yōu)核函數(shù)時(shí),相對(duì)誤差最小的核函數(shù)就是最優(yōu)核函數(shù)。在一般情況下,選擇線(xiàn)性核函數(shù)為最優(yōu)選擇。
對(duì)于模型參數(shù),APSO算法將對(duì)SV M的部分參數(shù)進(jìn)行優(yōu)化和選取。模型參數(shù)包括懲罰因子(γ)、核函數(shù)(σ)、不敏感損失系數(shù)(ε)[5],得到APSO-SV M算法預(yù)測(cè)模型的建立步驟如下:
Step 1建立數(shù)據(jù)集并進(jìn)行數(shù)據(jù)預(yù)處理。根據(jù)訓(xùn)練樣本及數(shù)據(jù)空間結(jié)構(gòu),構(gòu)建合適的數(shù)據(jù)集,將集合內(nèi)的數(shù)據(jù)進(jìn)行預(yù)處理。
Step 2 APSO參數(shù)初始化。包括的參數(shù)設(shè)定為:種群規(guī)模scale及范圍scope、加速常數(shù)c1和c2、進(jìn)化代數(shù)最大值Tmax、慣性權(quán)值因子maxω和minω、粒子初始位置S及初始速度v1,v2,…,vm,m表示種群大小。
Step 3評(píng)價(jià)種群m(t)。
Step 4計(jì)算粒子群的適應(yīng)度方差δ2。
Step 5根據(jù)式(4)、式(5)更新粒子的速度及位置,最優(yōu)位置為pbest,根據(jù)式(3)更新粒子的慣性權(quán)重ω,生成新的種群m(t+1)。
Step 6檢查最優(yōu)解條件 判斷適應(yīng)度值是否滿(mǎn)足最大迭代次數(shù),如果滿(mǎn)足,則尋優(yōu)結(jié)束,輸出最優(yōu)值best(γ,σ,ε)。如果不滿(mǎn)足條件,則轉(zhuǎn)至Step2,繼續(xù)尋優(yōu)。
Step 7找到粒子的最優(yōu)位置及速度后,將輸出的最優(yōu)參數(shù)best(γ,σ,ε)賦給SV M算法中進(jìn)行訓(xùn)練學(xué)習(xí)。
Step 8將訓(xùn)練過(guò)的樣本數(shù)據(jù)輸入到SV M網(wǎng)絡(luò)中[6],對(duì)SV M進(jìn)行訓(xùn)練,得到預(yù)測(cè)模型,進(jìn)行預(yù)測(cè)。
APSO算法過(guò)程通過(guò)Apsopr ogress實(shí)現(xiàn),部分代碼如下:
%適應(yīng)度的計(jì)算:
Apso=[v,nu mstr(pop_option.v),γ,nu m2str(pop(i,1)),σ,nu m2str(pop(i,2))…,ε,nu m2str(pop(i,3)),s3]
Fitness(i)=sv mtrain(train,apso)end
%尋優(yōu)
f or i=apso.option.max
f or j=apso_option.popsize%速度更新
V(j)=apso_option.w V*V(j)+apso_option.c1*rand*(local_y(j)-pop(j))+pso_option.c2*rand*(whole_y-pop(j));
if V(j,1)>Vγmax
V(j,1)=Vγmax;
end
if V(j,1)<Vγmin
V(j,1)=Vγmin;
end
if V(j,2)>Vσmax
V(j,2)=Vσmax;
end
if V(j,2)<Vσmin
V(j,2)=Vσmin;end
if V(j,3)>Vεmax
V(j,3)=Vεmax;
end
if V(j,3)<Vεmin
V(j,3)=Vεmin;
end
在2014年4月5日至7月5日期間對(duì)某建筑物進(jìn)行20次沉降監(jiān)測(cè) 以其中的一個(gè)點(diǎn)收集沉降數(shù)據(jù),建立建筑物沉降的APSO-SV M算法預(yù)測(cè)模型。以前15期數(shù)據(jù)作為訓(xùn)練樣本,預(yù)測(cè)建筑物沉降數(shù)據(jù)。
本文實(shí)驗(yàn)在windows7上運(yùn)行,以APSO及SV M算法為基礎(chǔ),以matlab7.1為開(kāi)發(fā)工具,根據(jù)選取最佳參數(shù)開(kāi)發(fā)建筑物沉降A(chǔ)PSO-SV M預(yù)測(cè)模型。
參數(shù)設(shè)置見(jiàn)表1。
表1 參數(shù)設(shè)置
%預(yù)測(cè)過(guò)程
test_x=X2;%預(yù)測(cè)數(shù)據(jù)輸入
test_y=Y(jié)2;%預(yù)測(cè)數(shù)據(jù)輸出
test_x M=map min max('apply',test_x,train_x PS);
test_y M=map min max('apply',test_y,train_y PS);
test_x M=test_x M';%矩陣轉(zhuǎn)置
test_y M=test_y M';
%將預(yù)測(cè)集數(shù)據(jù)輸入訓(xùn)練好的SV M[7],進(jìn)行預(yù)測(cè)
[test_predict M,test_mse]=sv mpredict(test_y M,test_x M,model);
test_predict=map min max('reverse',test_predict M',train_y PS);
利用函數(shù)Apsoprogress尋找到建筑物沉降訓(xùn)練數(shù)據(jù)的SV M模型最優(yōu)參數(shù)best(γ,σ,ε),經(jīng)過(guò)Tmax為100次的迭代,得到最優(yōu)參數(shù)為:γ=2.312 1,σ=2.538 9,ε=0.2,最 大 適 應(yīng) 度 值 為-0.002。
現(xiàn)對(duì)建筑物沉降數(shù)據(jù)預(yù)測(cè),并與傳統(tǒng)的SV M算法預(yù)測(cè)的結(jié)果作比較,兩種預(yù)測(cè)方法結(jié)果如表2與圖2所示。
從表2可以看出,自適應(yīng)粒子群優(yōu)化的支持向量機(jī)算法最大相對(duì)誤差為2.7%,高于傳統(tǒng)的支持向量機(jī)算法的最大誤差。從圖2可以看出,傳統(tǒng)的SV M算法在后期出現(xiàn)偏差較大的現(xiàn)象,而APSO-SV M算法經(jīng)過(guò)部分參數(shù)的優(yōu)化和選取 通過(guò)迭代次數(shù)的增加,提高預(yù)測(cè)精度,使其在預(yù)測(cè)中得到良好的效果。
表2 沉降觀測(cè)值、SVM預(yù)測(cè)值及APSO-SVM預(yù)測(cè)值對(duì)比
圖2 沉降實(shí)測(cè)值、SVM預(yù)測(cè)值及APSO-SVM預(yù)測(cè)值
本文結(jié)合自適應(yīng)粒子群優(yōu)化算法,對(duì)支持向量機(jī)算法進(jìn)行改進(jìn),提出自適應(yīng)粒子群優(yōu)化算法的支持向量機(jī)算法(APSO-SV M),利用APSO對(duì)SV M中的參數(shù)進(jìn)行改進(jìn),結(jié)合建筑物變形特點(diǎn)建立APSO-SV M建筑物沉降預(yù)測(cè)模型。通過(guò)實(shí)例驗(yàn)證,取得良好的預(yù)測(cè)效果。實(shí)驗(yàn)數(shù)據(jù)表明:APSO-SV M算法經(jīng)過(guò)參數(shù)的優(yōu)化和選擇,相比于傳統(tǒng)的SV M算法,在預(yù)測(cè)精度上有較大的提高,在建筑物沉降預(yù)測(cè)方面有較高的推廣價(jià)值。
[1] 閻輝,張學(xué)工,李衍達(dá).應(yīng)用SV M方法進(jìn)行沉積微相識(shí)別[J].物探化探計(jì)算技術(shù),2000,22(2):158-164.
[2] 陳貴敏,賈建援,韓 琪.粒子群優(yōu)化算法的慣性權(quán)遞減策略研究[J].西安交通大學(xué)學(xué)報(bào),2006,40(1):53-56.
[3] 俞歡軍,張麗平,陳德釗,等.基于反饋策略的自適應(yīng)粒子群優(yōu)化算法[J].浙江大學(xué)學(xué)報(bào):工學(xué)版,2005,39(9):1286-1291.
[4] 金洋,郭茂祖,鄧超.基于雁群?jiǎn)⑹镜牧W尤簝?yōu)化算法[J].計(jì)算機(jī)科學(xué),2006,33(11):166-168,191.
[5] MOHAN A L,KUMAR S M.Artificial neural networ k-based peak load forecasting using conjugate gradient methods[J].IEEE Transactions on Power Systems,2002,17(3):907-912.
[6] JANSON S,MIDDENDORF M.A Hierarchical Particle Swar m Optimizer and Its Adaptive Variant[J].IEEE Trans.on Systems,Man,and Cyber neticss,2005,35(6):1272-1282.
[7] 劉江華,程君實(shí),陳佳品.支持向量機(jī)訓(xùn)練算法綜述[J].信息與控制,2002,31(1):45-49.