周有榮, 崔東文
(1.臨滄潤(rùn)汀水資源科技服務(wù)有限公司, 云南 臨滄 677000; 2.云南省文山州水務(wù)局, 云南 文山 663000)
提高徑流預(yù)測(cè)精度一直是水文預(yù)測(cè)預(yù)報(bào)中的熱點(diǎn)和難點(diǎn)。由于河川徑流預(yù)測(cè)的復(fù)雜性和不確定性,傳統(tǒng)數(shù)理統(tǒng)計(jì)等方法難以獲得理想的預(yù)測(cè)效果[1]。BP[2-3]、Elman[4]、RBF[5-6]、GRNN[7]等神經(jīng)網(wǎng)絡(luò)因其較好的自學(xué)習(xí)能力和函數(shù)逼近能力,在水文預(yù)測(cè)預(yù)報(bào)中得到廣泛應(yīng)用。但BP等神經(jīng)網(wǎng)絡(luò)基于大樣本、經(jīng)驗(yàn)風(fēng)險(xiǎn)最小以及易陷入局部極值等不足限制了它在水文中的應(yīng)用[8]。研究表明,徑流的形成和變化過(guò)程異常復(fù)雜,僅依靠單一的常規(guī)或非常規(guī)方法進(jìn)行徑流預(yù)測(cè),往往難以達(dá)到理想的預(yù)測(cè)效果和精度,選擇合理的模型與方法,建立有效的預(yù)測(cè)模型是提高水文預(yù)測(cè)預(yù)報(bào)精度的關(guān)鍵。
支持向量機(jī)(Support Vector Machines,SVM)基于結(jié)構(gòu)風(fēng)險(xiǎn)最小化原則,能有效避免維數(shù)災(zāi)、過(guò)擬合等問(wèn)題,具有高容錯(cuò)性、智能化和自學(xué)習(xí)等優(yōu)點(diǎn),已成功應(yīng)用于水文預(yù)測(cè)預(yù)報(bào)[9-11]。但在實(shí)際應(yīng)用中,SVM存在兩方面的困難和不足:(1)SVM核函數(shù)等關(guān)鍵因子選取困難。常規(guī)試錯(cuò)法、經(jīng)驗(yàn)法等選取SVM核函數(shù)等參數(shù)的方法已不能滿足SVM應(yīng)用需求。目前,除遺傳算法[12](GA)等傳統(tǒng)智能算法用于優(yōu)化SVM參數(shù)外,人工魚(yú)群算法[13](AFSA)、果蠅優(yōu)化算法[14](FOA)、布谷鳥(niǎo)搜尋(CS)算法[15]、灰狼優(yōu)化(GWO)算法[10]、文化算法[10](CA)、SCE-UA算法[10]、花授粉算法[10](FPA)、混合蛙跳算法[16](SFLA)、入侵雜草優(yōu)化(IWO)算法[16]、帝國(guó)競(jìng)爭(zhēng)算法[16](ICA)、生物地理學(xué)優(yōu)化(BBO)算法[16]等群體智能優(yōu)化算法被嘗試用于SVM關(guān)鍵參數(shù)的選取,并獲得一定的應(yīng)用效果,但存在智能算法仿真對(duì)比驗(yàn)證的不足。(2)單一核函數(shù)制約SVM性能問(wèn)題。核函數(shù)的選取是提高SVM預(yù)測(cè)精度的關(guān)鍵,每種核函數(shù)都有其優(yōu)勢(shì)和不足。高斯核函數(shù)屬典型的局部性核函數(shù),其局部學(xué)習(xí)能力強(qiáng),但泛化能力弱;多項(xiàng)式核函數(shù)屬典型的全局性核函數(shù),其泛化能力強(qiáng),但局部學(xué)習(xí)能力弱[17]。目前,SVM在水文預(yù)測(cè)預(yù)報(bào)中普遍采用高斯核函數(shù),通過(guò)構(gòu)建混合核函數(shù),SVM的預(yù)測(cè)精度尚有進(jìn)一步提升的空間[18]。鑒于核函數(shù)的選取和核函數(shù)參數(shù)優(yōu)化對(duì)于改善SVM性能的關(guān)鍵性作用,為進(jìn)一步提高年徑流預(yù)測(cè)精度,本文利用一種新型智能算法——同熱傳遞搜索(Simultaneous Heat Transfer Search,SHTS)算法優(yōu)化混合核SVM關(guān)鍵參數(shù)和混合權(quán)重系數(shù),提出混合核SHTS-SVM年徑流預(yù)測(cè)模型。通過(guò)6個(gè)不同維度的標(biāo)準(zhǔn)測(cè)試函數(shù)對(duì)SHTS算法進(jìn)行仿真驗(yàn)證,再與當(dāng)前尋優(yōu)效果較好的教學(xué)優(yōu)化(TLBO)算法、GWO算法進(jìn)行對(duì)比驗(yàn)證,并通過(guò)兩個(gè)年徑流預(yù)測(cè)算例對(duì)混合核SHTS-SVM模型進(jìn)行實(shí)例驗(yàn)證,并與多項(xiàng)式核SHTS-SVM、高斯核SHTS-SVM及SHTS-BP模型預(yù)測(cè)結(jié)果進(jìn)行對(duì)比,旨在驗(yàn)證混合核SHTS-SVM模型用于年徑流預(yù)測(cè)的可行性和有效性。
熱量傳遞搜索(Heat Transfer Search,HTS)算法是Patel等[19]于2015年提出的種群迭代隨機(jī)搜索算法,該算法靈感來(lái)源于熱量傳遞原理,通過(guò)傳導(dǎo)、對(duì)流和輻射3種熱量傳遞方式與周圍環(huán)境系統(tǒng)相互作用來(lái)實(shí)現(xiàn)熱平衡,其每次迭代包括傳導(dǎo)、對(duì)流、輻射3個(gè)階段之一,即在0和1之間生成一個(gè)隨機(jī)數(shù)R,如果R小于1/3,則算法執(zhí)行傳導(dǎo)算子;如果R大于1/3且小于2/3,則執(zhí)行對(duì)流算子;如果R大于2/3,則執(zhí)行輻射算子,HTS算法通過(guò)不斷迭代直至獲得問(wèn)題最優(yōu)解,算法描述參見(jiàn)文獻(xiàn)[19]。
SHTS算法是一種基于HTS改進(jìn)的變體算法,該算法具有較低的計(jì)算復(fù)雜度和全局極值尋優(yōu)能力,在解決高維、復(fù)雜優(yōu)化問(wèn)題時(shí)具有競(jìng)爭(zhēng)性。在SHTS中,每次迭代中將種群隨機(jī)分成3組,每個(gè)組分別為熱量傳遞搜索算法的3個(gè)傳熱階段之一,所有進(jìn)行任何傳熱模式的個(gè)體都將產(chǎn)生一個(gè)潛在的新個(gè)體,該新個(gè)體通過(guò)適應(yīng)度值評(píng)判選擇接受或丟棄,且在每次迭代過(guò)程中傳導(dǎo)、對(duì)流和輻射是并行執(zhí)行的,從而大大減少了計(jì)算時(shí)間[20-21]。
參考文獻(xiàn)[20-21],SHTS算法簡(jiǎn)述如下:
(1)種群劃分。隨機(jī)將種群N分成3組,并將其分配到傳導(dǎo)、對(duì)流和輻射3種傳熱模式。令XD為傳導(dǎo)階段的個(gè)體集合,XV為對(duì)流階段的個(gè)體集合,XR為輻射階段的個(gè)體集合,令Ns=N/3。


(1)
(2)
Xnew=max(Xnew,L)
(3)
Xnew=min(Xnew,U)
(4)

為驗(yàn)證SHTS算法尋優(yōu)能力,對(duì)6個(gè)標(biāo)準(zhǔn)測(cè)試函數(shù)在5維、30維和100維條件下進(jìn)行仿真實(shí)驗(yàn)(見(jiàn)表1),并與當(dāng)前尋優(yōu)效果較好的TLBO算法和GWO算法的仿真結(jié)果對(duì)比,見(jiàn)表2。
為確保驗(yàn)證的公平性,本文所有驗(yàn)證均在Inter(R) Core(TM) i7-6500U CPU @ 2.5GHz 4GB內(nèi)存的機(jī)器上實(shí)現(xiàn),軟件運(yùn)行環(huán)境為Matlab2010b。實(shí)驗(yàn)參數(shù)設(shè)置:SHTS算法、TLBO算法和GWO算法最大迭代次數(shù)Gmax=200,種群規(guī)模N=100,其他參數(shù)采用各種算法默認(rèn)值。為避免尋優(yōu)效果的偶然性,并證明算法的穩(wěn)健性,采取3種算法均對(duì)測(cè)試函數(shù)尋優(yōu)20次,利用20次尋優(yōu)結(jié)果的平均值、標(biāo)準(zhǔn)差對(duì)3種算法的優(yōu)化性能進(jìn)行評(píng)估。
SHTS算法在實(shí)驗(yàn)中的性能分析如下:
(1)對(duì)于單峰函數(shù)Sphere、Sumsquares、Quadric,無(wú)論是低維還是高維,SHTS算法尋優(yōu)精度均優(yōu)于TLBO算法、GWO算法20個(gè)數(shù)量級(jí)以上,表明SHTS算法具有較快的收斂速度和尋優(yōu)精度。對(duì)于多峰函數(shù)Griewank、Rastrigin,無(wú)論是低維還是高維,SHTS算法20次尋優(yōu)均獲得理論最優(yōu)值0,尋優(yōu)精度優(yōu)于TLBO算法、GWO算法(除TLBO對(duì)函數(shù)Griewank30維、100維尋優(yōu)外);對(duì)于Ackley函數(shù),SHTS算法在5維、30維和100維實(shí)驗(yàn)條件下,其尋優(yōu)結(jié)果相同,20次尋優(yōu)結(jié)果均為8.88×10-16,標(biāo)準(zhǔn)差均為1.97×10-31,尋優(yōu)精度同樣優(yōu)于TLBO算法、GWO算法,表明SHTS算法具有較好的全局極值尋優(yōu)能力和跳出局部極值能力。
(2)對(duì)于單峰函數(shù),隨著維度的增加,3種算法的尋優(yōu)精度均有所下降,尤其是TLBO算法、GWO算法,當(dāng)維度達(dá)到100維時(shí),其尋優(yōu)精度低于同維度的SHTS算法44個(gè)數(shù)量級(jí)以上;對(duì)于多峰函數(shù),無(wú)論是低維還是高維,SHTS算法尋優(yōu)結(jié)果和標(biāo)準(zhǔn)差均相同,表明該算法的穩(wěn)定性較好。對(duì)于TLBO和GWO算法,除Griewank函數(shù)外,其尋優(yōu)精度隨著維度的增加下降明顯。
可見(jiàn), 不論是單峰函數(shù)還是多峰函數(shù),抑或低維或高維函數(shù),SHTS算法的尋優(yōu)精度、穩(wěn)定性能均優(yōu)于TLBO、GWO算法,表明SHTS算法具有較好的極值尋優(yōu)能力和穩(wěn)健性能。

表1 基準(zhǔn)函數(shù)
SVM是基于核函數(shù)原理將低維空間回歸問(wèn)題映射到高維特征空間進(jìn)行求解,算法原理見(jiàn)文獻(xiàn)[9-12]。
為進(jìn)一步提高SVM預(yù)測(cè)精度,綜合多項(xiàng)式全局核函數(shù)和高斯局部核函數(shù)二者優(yōu)勢(shì),彌補(bǔ)二者在應(yīng)用上的不足[18,22-24],本文采用這兩個(gè)函數(shù)的混合,基于libsvm工具箱構(gòu)造一種滿足Mercer條件的混合函數(shù),表達(dá)式為:
Kmin=ρKpoly+(1-ρ)KRBF
(5)
式中:Kpoly=[g(x·xi)+1]3三次多項(xiàng)式核函數(shù);KRBF=exp(-g‖x-xi‖2),g>0,表示RBF核函數(shù);ρ為權(quán)重系數(shù)。
研究表明,懲罰因子C、核函數(shù)參數(shù)g和不敏感系數(shù)ε的合理選取決定著混合核SVM性能[10]。C取值過(guò)小則易導(dǎo)致網(wǎng)絡(luò)欠擬合,訓(xùn)練樣本誤差大;取值過(guò)大則網(wǎng)絡(luò)過(guò)擬合,導(dǎo)致網(wǎng)絡(luò)泛化能力差;g取值小則擬合誤差小,但過(guò)小的g值會(huì)導(dǎo)致模型過(guò)擬合;ε值用于控制模型的預(yù)測(cè)能力,ε值小易導(dǎo)致模型欠擬合,ε值大則易導(dǎo)致模型過(guò)擬合;ρ值決定單一核函數(shù)在混合核函數(shù)中所占的比重[18]。

表2 函數(shù)優(yōu)化對(duì)比結(jié)果
SHTS算法優(yōu)化混合核SVM關(guān)鍵參數(shù)有懲罰因子C、核函數(shù)參數(shù)g、不敏感系數(shù)ε和權(quán)重系數(shù)ρ,其預(yù)測(cè)實(shí)現(xiàn)步驟可歸納如下(多項(xiàng)式核SHTS-SVM、高斯核SHTS-SVM和SHTS-SBP模型預(yù)測(cè)實(shí)現(xiàn)步驟可參考實(shí)現(xiàn)):
Step1 合理劃分各算例訓(xùn)練樣本和檢驗(yàn)樣本。設(shè)定懲罰因子C等4個(gè)待優(yōu)化參數(shù)搜尋范圍。
Step2 確定適應(yīng)度函數(shù)。本文選用檢驗(yàn)樣本的平均相對(duì)誤差絕對(duì)值之和作為適應(yīng)度函數(shù)。該適應(yīng)度函數(shù)描述如下:
(6)

Step3 設(shè)置SHTS算法種群大小N、最大迭代次數(shù)Gmax和變量維度及變量上、下限值;設(shè)置當(dāng)前迭代次數(shù)t=0。隨機(jī)將種群N分成3組,并將其分配到傳導(dǎo)、對(duì)流和輻射3種傳熱模式。
Step4 基于公式(6)計(jì)算種群個(gè)體適應(yīng)度值,并依據(jù)適應(yīng)度值確定種群中最佳適應(yīng)度值f(X)和對(duì)應(yīng)最佳個(gè)體X。
Step5 利用SHTS算法中傳導(dǎo)、對(duì)流和輻射3個(gè)階段生成新個(gè)體Xnew及適應(yīng)度值f(Xnew)。
Step6 比較f(X)和f(Xnew)。若f(Xnew)優(yōu)于f(X),則Xnew代替X,Xnew進(jìn)入下一次迭代;否則舍去Xnew,保留X。
Step7 令t=t+1,判斷算法是否達(dá)到最大迭代次數(shù)Gmax。若達(dá)到,則輸出最佳個(gè)體Xbest及所對(duì)應(yīng)的個(gè)體適應(yīng)度值f(Xbest);否則轉(zhuǎn)至Step5,直到滿足算法終止條件,算法結(jié)束。
Step8 輸出最佳個(gè)體Xbest及其所對(duì)應(yīng)的個(gè)體適應(yīng)度值f(Xbest),即待優(yōu)化問(wèn)題的最優(yōu)解及最優(yōu)適應(yīng)度值。
Step9 利用SHTS算法優(yōu)化獲得的懲罰因子C、核函數(shù)參數(shù)g、不敏感系數(shù)ε和權(quán)重系數(shù)ρ代入混合核SHTS-SVM模型進(jìn)行預(yù)測(cè)。
兩個(gè)算例的參數(shù)設(shè)置均相同,即SHTS算法最大迭代次數(shù)T=200,種群規(guī)模N=100。待優(yōu)化參數(shù)搜索空間設(shè)置為:懲罰因子C∈[2-10,210]、核函數(shù)參數(shù)g∈[2-10,210]、不敏感系數(shù)ε∈[2-10,210]、交叉驗(yàn)證參數(shù)V=5,變量維度D為4維,權(quán)重系數(shù)ρ搜索空間為[0,1]。
(1)數(shù)據(jù)來(lái)源。算例1和算例2的數(shù)據(jù)來(lái)源于云南省西洋街水文站和革雷水文站。西洋街水文站設(shè)立于1959年1月,位于云南省廣南縣西洋江干流上,控制徑流面積2 473 km2。西洋江屬珠江流域西江水系,發(fā)源于廣南縣者兔鄉(xiāng)那臘村九龍山西麓,于富寧縣洞巴出境進(jìn)入廣西田林縣與馱娘江匯合,為滇桂省際河流。革雷水文站設(shè)立于1970年4月,位于云南省丘北縣清水江干流上,控制徑流面積3 186 km2。清水江發(fā)源于文山州硯山縣者臘鄉(xiāng)老毛山北麓,匯入南盤(pán)江,為云南、廣西界河。本文利用算例1中1962-2005年、算例2中1971-2005年的實(shí)測(cè)資料進(jìn)行預(yù)測(cè)分析。兩個(gè)算例年徑流與1-10月月均流量的相關(guān)性見(jiàn)表3。
從表3可以看出,算例1中,年徑流與各月均流量均呈正相關(guān)關(guān)系,相關(guān)性并不十分顯著。算例2中,除1月份外,年徑流與各月均流量均呈正相關(guān)關(guān)系,相關(guān)性不顯著。利用標(biāo)準(zhǔn)化法將算例1和算例2各徑流序列數(shù)據(jù)處理在[0.1,0.9]之間。
(2)預(yù)測(cè)評(píng)價(jià)。對(duì)于算例1,選取5-10月月徑流作為年徑流預(yù)測(cè)的影響因子,以前30 a實(shí)測(cè)資料為訓(xùn)練樣本,后14 a資料為檢驗(yàn)樣本;對(duì)于算例2,選取5-9月月徑流作為年徑流預(yù)測(cè)的影響因子,以前25 a實(shí)測(cè)資料為訓(xùn)練樣本,后10 a資料為檢驗(yàn)樣本。分別基于MatlabR2011b軟件環(huán)境創(chuàng)建6輸入1輸出和5輸入1輸出的年徑流預(yù)測(cè)模型,選取平均相對(duì)誤差絕對(duì)值MRE和最大相對(duì)誤差絕對(duì)值MaxRE兩個(gè)評(píng)價(jià)指標(biāo)對(duì)混合核SHTS-SVM等4種模型的擬合、預(yù)測(cè)結(jié)果進(jìn)行評(píng)價(jià),見(jiàn)表4和圖1、2。
(3)優(yōu)化結(jié)果。利用SHTS算法對(duì)兩個(gè)算例所有參數(shù)進(jìn)行尋優(yōu)計(jì)算,可以確定算例1混合核SVM懲罰因子C=28.6549、核函數(shù)參數(shù)g=2-3.4951、不敏感系數(shù)ε=2-3.2893和權(quán)重系數(shù)ρ=0.2518;算例2混合核SVM懲罰因子C=29.9799、核函數(shù)參數(shù)g=2-3.8242、不敏感系數(shù)ε=2-9.8875和權(quán)重系數(shù)ρ=0.7455。
依據(jù)表3~4及圖1~2可以得出以下結(jié)論:
(1)對(duì)于算例1,無(wú)論是訓(xùn)練樣本還是檢驗(yàn)樣本,混合核SHTS-SVM模型擬合、預(yù)測(cè)的MRE和MaxRE均優(yōu)于多項(xiàng)式核SHTS-SVM等3種模型,其檢驗(yàn)樣本預(yù)測(cè)精度分別比多項(xiàng)式核SHTS-SVM、高斯核SHTS-SVM和SHTS-BP提高了57.0%、35.5%和24.2%;對(duì)于算例2,除訓(xùn)練樣本的maxRE略低于多項(xiàng)式核SHTS-SVM模型外,其余訓(xùn)練樣本的MRE、檢驗(yàn)樣本的MRE和maxRE均優(yōu)于多項(xiàng)式核SHTS-SVM等3種模型,其檢驗(yàn)樣本預(yù)測(cè)精度分別比多項(xiàng)式核SHTS-SVM、高斯核SHTS-SVM和SHTS-BP提高了37.7%、26.2%和59.7%。兩個(gè)算例驗(yàn)證結(jié)果表明,混合核SHTS-SVM模型能有效綜合多項(xiàng)式全局核函數(shù)和高斯局部核函數(shù)二者優(yōu)勢(shì),彌補(bǔ)二者在應(yīng)用上的不足,從而提高混合核SHTS-SVM模型的預(yù)測(cè)精度和泛化能力;同時(shí)驗(yàn)證了本文提出的混合核SHTS-SVM模型用于年徑流預(yù)測(cè)的可行性和有效性。
(2)從表3來(lái)看,算例1中年徑流與月徑流相關(guān)性要優(yōu)于算例2,但預(yù)測(cè)效果不如算例2,其原因在于算例1中多項(xiàng)式全局核函數(shù)和高斯局部核函數(shù)二者互補(bǔ)性不如算例2。算例2中雖然年徑流與月徑流相關(guān)性并不顯著,其最大相關(guān)系數(shù)僅為0.546,但多項(xiàng)式全局核函數(shù)和高斯局部核函數(shù)能很好彌補(bǔ)二者之間的不足,從而提升了混合核SHTS-SVM模型的預(yù)測(cè)精度和泛化能力。

表3 兩個(gè)算例年徑流與1-10月月均流量的相關(guān)系數(shù)

表4 年徑流預(yù)測(cè)結(jié)果及其比較

圖1 1962-2005年算例1年徑流擬合-預(yù)測(cè)相對(duì)誤差效果圖

圖2 1971-2005年算例2年徑流擬合-預(yù)測(cè)相對(duì)誤差效果圖
(3)從SHTS算法對(duì)兩個(gè)算例權(quán)重系數(shù)的優(yōu)化結(jié)果來(lái)看,對(duì)于算例1,權(quán)重系數(shù)ρ=0.2518,表明高斯核函數(shù)占主導(dǎo)地位;對(duì)于算例2,權(quán)重系數(shù)ρ=0.7455,表明多項(xiàng)式核函數(shù)占主導(dǎo)地位。
(4)從圖1、2及表4來(lái)看,算例1中4種模型的擬合、檢驗(yàn)精度相差不大,4種模型均未出現(xiàn)“欠擬合”與“過(guò)擬合”特征。對(duì)于算例2,混合核SHTS-SVM模型、多項(xiàng)式核SHTS-SVM的擬合、檢驗(yàn)精度相差不大,具有較好的預(yù)測(cè)效果和泛化能力;但高斯核SHTS-SVM模型表現(xiàn)出“欠擬合”特征,而SHTS-BP模型呈“過(guò)擬合”狀態(tài)。
(1)介紹一種新型智能算法——同熱傳遞搜索(SHTS)算法,通過(guò)6個(gè)不同維度的典型測(cè)試函數(shù)對(duì)SHTS算法進(jìn)行仿真驗(yàn)證,并與當(dāng)前尋優(yōu)效果較好的TLBO算法、GWO算法作對(duì)比,結(jié)果表明SHTS算法具有較好的全局極值尋優(yōu)能力和穩(wěn)健性能,是一種全新高效的全局優(yōu)化算法。
(2)構(gòu)造線性混合核SVM,利用SHTS算法同時(shí)優(yōu)化混合核SVM關(guān)鍵參數(shù)和混合權(quán)重系數(shù),提出混合核SHTS-SVM年徑流預(yù)測(cè)模型。利用兩個(gè)算例對(duì)混合核SHTS-SVM模型進(jìn)行實(shí)例驗(yàn)證,并與多項(xiàng)式核SHTS-SVM、高斯核SHTS-SVM和SHTS-BP模型的預(yù)測(cè)結(jié)果進(jìn)行對(duì)比,結(jié)果表明混合核SHTS-SVM模型的預(yù)測(cè)精度優(yōu)于多項(xiàng)式核SHTS-SVM等3種模型,表明利用SHTS算法能有效優(yōu)化混合核SVM關(guān)鍵參數(shù)和混合權(quán)重系數(shù);且混合核SHTS-SVM模型能有效綜合多項(xiàng)式全局核函數(shù)和高斯局部核函數(shù)二者優(yōu)勢(shì),彌補(bǔ)二者在應(yīng)用上的不足,從而提高混合核SHTS-SVM模型的預(yù)測(cè)精度和泛化能力。
(3)兩個(gè)算例驗(yàn)證結(jié)果表明,混合核SHTS-SVM模型用于水文預(yù)測(cè)預(yù)報(bào)是合理可行的,模型具有較好的預(yù)測(cè)精度和泛化能力,是提高預(yù)測(cè)精度的有效方法。