周有榮, 崔東文
(1.臨滄潤汀水資源科技服務(wù)有限公司, 云南 臨滄 677000; 2.云南省文山州水務(wù)局, 云南 文山 663000)
提高徑流預(yù)測精度一直是水文預(yù)測預(yù)報中的熱點和難點。由于河川徑流預(yù)測的復(fù)雜性和不確定性,傳統(tǒng)數(shù)理統(tǒng)計等方法難以獲得理想的預(yù)測效果[1]。BP[2-3]、Elman[4]、RBF[5-6]、GRNN[7]等神經(jīng)網(wǎng)絡(luò)因其較好的自學習能力和函數(shù)逼近能力,在水文預(yù)測預(yù)報中得到廣泛應(yīng)用。但BP等神經(jīng)網(wǎng)絡(luò)基于大樣本、經(jīng)驗風險最小以及易陷入局部極值等不足限制了它在水文中的應(yīng)用[8]。研究表明,徑流的形成和變化過程異常復(fù)雜,僅依靠單一的常規(guī)或非常規(guī)方法進行徑流預(yù)測,往往難以達到理想的預(yù)測效果和精度,選擇合理的模型與方法,建立有效的預(yù)測模型是提高水文預(yù)測預(yù)報精度的關(guān)鍵。
支持向量機(Support Vector Machines,SVM)基于結(jié)構(gòu)風險最小化原則,能有效避免維數(shù)災(zāi)、過擬合等問題,具有高容錯性、智能化和自學習等優(yōu)點,已成功應(yīng)用于水文預(yù)測預(yù)報[9-11]。但在實際應(yīng)用中,SVM存在兩方面的困難和不足:(1)SVM核函數(shù)等關(guān)鍵因子選取困難。常規(guī)試錯法、經(jīng)驗法等選取SVM核函數(shù)等參數(shù)的方法已不能滿足SVM應(yīng)用需求。目前,除遺傳算法[12](GA)等傳統(tǒng)智能算法用于優(yōu)化SVM參數(shù)外,人工魚群算法[13](AFSA)、果蠅優(yōu)化算法[14](FOA)、布谷鳥搜尋(CS)算法[15]、灰狼優(yōu)化(GWO)算法[10]、文化算法[10](CA)、SCE-UA算法[10]、花授粉算法[10](FPA)、混合蛙跳算法[16](SFLA)、入侵雜草優(yōu)化(IWO)算法[16]、帝國競爭算法[16](ICA)、生物地理學優(yōu)化(BBO)算法[16]等群體智能優(yōu)化算法被嘗試用于SVM關(guān)鍵參數(shù)的選取,并獲得一定的應(yīng)用效果,但存在智能算法仿真對比驗證的不足。(2)單一核函數(shù)制約SVM性能問題。核函數(shù)的選取是提高SVM預(yù)測精度的關(guān)鍵,每種核函數(shù)都有其優(yōu)勢和不足。高斯核函數(shù)屬典型的局部性核函數(shù),其局部學習能力強,但泛化能力弱;多項式核函數(shù)屬典型的全局性核函數(shù),其泛化能力強,但局部學習能力弱[17]。目前,SVM在水文預(yù)測預(yù)報中普遍采用高斯核函數(shù),通過構(gòu)建混合核函數(shù),SVM的預(yù)測精度尚有進一步提升的空間[18]。鑒于核函數(shù)的選取和核函數(shù)參數(shù)優(yōu)化對于改善SVM性能的關(guān)鍵性作用,為進一步提高年徑流預(yù)測精度,本文利用一種新型智能算法——同熱傳遞搜索(Simultaneous Heat Transfer Search,SHTS)算法優(yōu)化混合核SVM關(guān)鍵參數(shù)和混合權(quán)重系數(shù),提出混合核SHTS-SVM年徑流預(yù)測模型。通過6個不同維度的標準測試函數(shù)對SHTS算法進行仿真驗證,再與當前尋優(yōu)效果較好的教學優(yōu)化(TLBO)算法、GWO算法進行對比驗證,并通過兩個年徑流預(yù)測算例對混合核SHTS-SVM模型進行實例驗證,并與多項式核SHTS-SVM、高斯核SHTS-SVM及SHTS-BP模型預(yù)測結(jié)果進行對比,旨在驗證混合核SHTS-SVM模型用于年徑流預(yù)測的可行性和有效性。
熱量傳遞搜索(Heat Transfer Search,HTS)算法是Patel等[19]于2015年提出的種群迭代隨機搜索算法,該算法靈感來源于熱量傳遞原理,通過傳導、對流和輻射3種熱量傳遞方式與周圍環(huán)境系統(tǒng)相互作用來實現(xiàn)熱平衡,其每次迭代包括傳導、對流、輻射3個階段之一,即在0和1之間生成一個隨機數(shù)R,如果R小于1/3,則算法執(zhí)行傳導算子;如果R大于1/3且小于2/3,則執(zhí)行對流算子;如果R大于2/3,則執(zhí)行輻射算子,HTS算法通過不斷迭代直至獲得問題最優(yōu)解,算法描述參見文獻[19]。
SHTS算法是一種基于HTS改進的變體算法,該算法具有較低的計算復(fù)雜度和全局極值尋優(yōu)能力,在解決高維、復(fù)雜優(yōu)化問題時具有競爭性。在SHTS中,每次迭代中將種群隨機分成3組,每個組分別為熱量傳遞搜索算法的3個傳熱階段之一,所有進行任何傳熱模式的個體都將產(chǎn)生一個潛在的新個體,該新個體通過適應(yīng)度值評判選擇接受或丟棄,且在每次迭代過程中傳導、對流和輻射是并行執(zhí)行的,從而大大減少了計算時間[20-21]。
參考文獻[20-21],SHTS算法簡述如下:
(1)種群劃分。隨機將種群N分成3組,并將其分配到傳導、對流和輻射3種傳熱模式。令XD為傳導階段的個體集合,XV為對流階段的個體集合,XR為輻射階段的個體集合,令Ns=N/3。
(1)
(2)
Xnew=max(Xnew,L)
(3)
Xnew=min(Xnew,U)
(4)
為驗證SHTS算法尋優(yōu)能力,對6個標準測試函數(shù)在5維、30維和100維條件下進行仿真實驗(見表1),并與當前尋優(yōu)效果較好的TLBO算法和GWO算法的仿真結(jié)果對比,見表2。
為確保驗證的公平性,本文所有驗證均在Inter(R) Core(TM) i7-6500U CPU @ 2.5GHz 4GB內(nèi)存的機器上實現(xiàn),軟件運行環(huán)境為Matlab2010b。實驗參數(shù)設(shè)置:SHTS算法、TLBO算法和GWO算法最大迭代次數(shù)Gmax=200,種群規(guī)模N=100,其他參數(shù)采用各種算法默認值。為避免尋優(yōu)效果的偶然性,并證明算法的穩(wěn)健性,采取3種算法均對測試函數(shù)尋優(yōu)20次,利用20次尋優(yōu)結(jié)果的平均值、標準差對3種算法的優(yōu)化性能進行評估。
SHTS算法在實驗中的性能分析如下:
(1)對于單峰函數(shù)Sphere、Sumsquares、Quadric,無論是低維還是高維,SHTS算法尋優(yōu)精度均優(yōu)于TLBO算法、GWO算法20個數(shù)量級以上,表明SHTS算法具有較快的收斂速度和尋優(yōu)精度。對于多峰函數(shù)Griewank、Rastrigin,無論是低維還是高維,SHTS算法20次尋優(yōu)均獲得理論最優(yōu)值0,尋優(yōu)精度優(yōu)于TLBO算法、GWO算法(除TLBO對函數(shù)Griewank30維、100維尋優(yōu)外);對于Ackley函數(shù),SHTS算法在5維、30維和100維實驗條件下,其尋優(yōu)結(jié)果相同,20次尋優(yōu)結(jié)果均為8.88×10-16,標準差均為1.97×10-31,尋優(yōu)精度同樣優(yōu)于TLBO算法、GWO算法,表明SHTS算法具有較好的全局極值尋優(yōu)能力和跳出局部極值能力。
(2)對于單峰函數(shù),隨著維度的增加,3種算法的尋優(yōu)精度均有所下降,尤其是TLBO算法、GWO算法,當維度達到100維時,其尋優(yōu)精度低于同維度的SHTS算法44個數(shù)量級以上;對于多峰函數(shù),無論是低維還是高維,SHTS算法尋優(yōu)結(jié)果和標準差均相同,表明該算法的穩(wěn)定性較好。對于TLBO和GWO算法,除Griewank函數(shù)外,其尋優(yōu)精度隨著維度的增加下降明顯。
可見, 不論是單峰函數(shù)還是多峰函數(shù),抑或低維或高維函數(shù),SHTS算法的尋優(yōu)精度、穩(wěn)定性能均優(yōu)于TLBO、GWO算法,表明SHTS算法具有較好的極值尋優(yōu)能力和穩(wěn)健性能。
表1 基準函數(shù)
SVM是基于核函數(shù)原理將低維空間回歸問題映射到高維特征空間進行求解,算法原理見文獻[9-12]。
為進一步提高SVM預(yù)測精度,綜合多項式全局核函數(shù)和高斯局部核函數(shù)二者優(yōu)勢,彌補二者在應(yīng)用上的不足[18,22-24],本文采用這兩個函數(shù)的混合,基于libsvm工具箱構(gòu)造一種滿足Mercer條件的混合函數(shù),表達式為:
Kmin=ρKpoly+(1-ρ)KRBF
(5)
式中:Kpoly=[g(x·xi)+1]3三次多項式核函數(shù);KRBF=exp(-g‖x-xi‖2),g>0,表示RBF核函數(shù);ρ為權(quán)重系數(shù)。
研究表明,懲罰因子C、核函數(shù)參數(shù)g和不敏感系數(shù)ε的合理選取決定著混合核SVM性能[10]。C取值過小則易導致網(wǎng)絡(luò)欠擬合,訓練樣本誤差大;取值過大則網(wǎng)絡(luò)過擬合,導致網(wǎng)絡(luò)泛化能力差;g取值小則擬合誤差小,但過小的g值會導致模型過擬合;ε值用于控制模型的預(yù)測能力,ε值小易導致模型欠擬合,ε值大則易導致模型過擬合;ρ值決定單一核函數(shù)在混合核函數(shù)中所占的比重[18]。
表2 函數(shù)優(yōu)化對比結(jié)果
SHTS算法優(yōu)化混合核SVM關(guān)鍵參數(shù)有懲罰因子C、核函數(shù)參數(shù)g、不敏感系數(shù)ε和權(quán)重系數(shù)ρ,其預(yù)測實現(xiàn)步驟可歸納如下(多項式核SHTS-SVM、高斯核SHTS-SVM和SHTS-SBP模型預(yù)測實現(xiàn)步驟可參考實現(xiàn)):
Step1 合理劃分各算例訓練樣本和檢驗樣本。設(shè)定懲罰因子C等4個待優(yōu)化參數(shù)搜尋范圍。
Step2 確定適應(yīng)度函數(shù)。本文選用檢驗樣本的平均相對誤差絕對值之和作為適應(yīng)度函數(shù)。該適應(yīng)度函數(shù)描述如下:
(6)
Step3 設(shè)置SHTS算法種群大小N、最大迭代次數(shù)Gmax和變量維度及變量上、下限值;設(shè)置當前迭代次數(shù)t=0。隨機將種群N分成3組,并將其分配到傳導、對流和輻射3種傳熱模式。
Step4 基于公式(6)計算種群個體適應(yīng)度值,并依據(jù)適應(yīng)度值確定種群中最佳適應(yīng)度值f(X)和對應(yīng)最佳個體X。
Step5 利用SHTS算法中傳導、對流和輻射3個階段生成新個體Xnew及適應(yīng)度值f(Xnew)。
Step6 比較f(X)和f(Xnew)。若f(Xnew)優(yōu)于f(X),則Xnew代替X,Xnew進入下一次迭代;否則舍去Xnew,保留X。
Step7 令t=t+1,判斷算法是否達到最大迭代次數(shù)Gmax。若達到,則輸出最佳個體Xbest及所對應(yīng)的個體適應(yīng)度值f(Xbest);否則轉(zhuǎn)至Step5,直到滿足算法終止條件,算法結(jié)束。
Step8 輸出最佳個體Xbest及其所對應(yīng)的個體適應(yīng)度值f(Xbest),即待優(yōu)化問題的最優(yōu)解及最優(yōu)適應(yīng)度值。
Step9 利用SHTS算法優(yōu)化獲得的懲罰因子C、核函數(shù)參數(shù)g、不敏感系數(shù)ε和權(quán)重系數(shù)ρ代入混合核SHTS-SVM模型進行預(yù)測。
兩個算例的參數(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]、交叉驗證參數(shù)V=5,變量維度D為4維,權(quán)重系數(shù)ρ搜索空間為[0,1]。
(1)數(shù)據(jù)來源。算例1和算例2的數(shù)據(jù)來源于云南省西洋街水文站和革雷水文站。西洋街水文站設(shè)立于1959年1月,位于云南省廣南縣西洋江干流上,控制徑流面積2 473 km2。西洋江屬珠江流域西江水系,發(fā)源于廣南縣者兔鄉(xiāng)那臘村九龍山西麓,于富寧縣洞巴出境進入廣西田林縣與馱娘江匯合,為滇桂省際河流。革雷水文站設(shè)立于1970年4月,位于云南省丘北縣清水江干流上,控制徑流面積3 186 km2。清水江發(fā)源于文山州硯山縣者臘鄉(xiāng)老毛山北麓,匯入南盤江,為云南、廣西界河。本文利用算例1中1962-2005年、算例2中1971-2005年的實測資料進行預(yù)測分析。兩個算例年徑流與1-10月月均流量的相關(guān)性見表3。
從表3可以看出,算例1中,年徑流與各月均流量均呈正相關(guān)關(guān)系,相關(guān)性并不十分顯著。算例2中,除1月份外,年徑流與各月均流量均呈正相關(guān)關(guān)系,相關(guān)性不顯著。利用標準化法將算例1和算例2各徑流序列數(shù)據(jù)處理在[0.1,0.9]之間。
(2)預(yù)測評價。對于算例1,選取5-10月月徑流作為年徑流預(yù)測的影響因子,以前30 a實測資料為訓練樣本,后14 a資料為檢驗樣本;對于算例2,選取5-9月月徑流作為年徑流預(yù)測的影響因子,以前25 a實測資料為訓練樣本,后10 a資料為檢驗樣本。分別基于MatlabR2011b軟件環(huán)境創(chuàng)建6輸入1輸出和5輸入1輸出的年徑流預(yù)測模型,選取平均相對誤差絕對值MRE和最大相對誤差絕對值MaxRE兩個評價指標對混合核SHTS-SVM等4種模型的擬合、預(yù)測結(jié)果進行評價,見表4和圖1、2。
(3)優(yōu)化結(jié)果。利用SHTS算法對兩個算例所有參數(shù)進行尋優(yōu)計算,可以確定算例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)對于算例1,無論是訓練樣本還是檢驗樣本,混合核SHTS-SVM模型擬合、預(yù)測的MRE和MaxRE均優(yōu)于多項式核SHTS-SVM等3種模型,其檢驗樣本預(yù)測精度分別比多項式核SHTS-SVM、高斯核SHTS-SVM和SHTS-BP提高了57.0%、35.5%和24.2%;對于算例2,除訓練樣本的maxRE略低于多項式核SHTS-SVM模型外,其余訓練樣本的MRE、檢驗樣本的MRE和maxRE均優(yōu)于多項式核SHTS-SVM等3種模型,其檢驗樣本預(yù)測精度分別比多項式核SHTS-SVM、高斯核SHTS-SVM和SHTS-BP提高了37.7%、26.2%和59.7%。兩個算例驗證結(jié)果表明,混合核SHTS-SVM模型能有效綜合多項式全局核函數(shù)和高斯局部核函數(shù)二者優(yōu)勢,彌補二者在應(yīng)用上的不足,從而提高混合核SHTS-SVM模型的預(yù)測精度和泛化能力;同時驗證了本文提出的混合核SHTS-SVM模型用于年徑流預(yù)測的可行性和有效性。
(2)從表3來看,算例1中年徑流與月徑流相關(guān)性要優(yōu)于算例2,但預(yù)測效果不如算例2,其原因在于算例1中多項式全局核函數(shù)和高斯局部核函數(shù)二者互補性不如算例2。算例2中雖然年徑流與月徑流相關(guān)性并不顯著,其最大相關(guān)系數(shù)僅為0.546,但多項式全局核函數(shù)和高斯局部核函數(shù)能很好彌補二者之間的不足,從而提升了混合核SHTS-SVM模型的預(yù)測精度和泛化能力。
表3 兩個算例年徑流與1-10月月均流量的相關(guān)系數(shù)
表4 年徑流預(yù)測結(jié)果及其比較
圖1 1962-2005年算例1年徑流擬合-預(yù)測相對誤差效果圖
圖2 1971-2005年算例2年徑流擬合-預(yù)測相對誤差效果圖
(3)從SHTS算法對兩個算例權(quán)重系數(shù)的優(yōu)化結(jié)果來看,對于算例1,權(quán)重系數(shù)ρ=0.2518,表明高斯核函數(shù)占主導地位;對于算例2,權(quán)重系數(shù)ρ=0.7455,表明多項式核函數(shù)占主導地位。
(4)從圖1、2及表4來看,算例1中4種模型的擬合、檢驗精度相差不大,4種模型均未出現(xiàn)“欠擬合”與“過擬合”特征。對于算例2,混合核SHTS-SVM模型、多項式核SHTS-SVM的擬合、檢驗精度相差不大,具有較好的預(yù)測效果和泛化能力;但高斯核SHTS-SVM模型表現(xiàn)出“欠擬合”特征,而SHTS-BP模型呈“過擬合”狀態(tài)。
(1)介紹一種新型智能算法——同熱傳遞搜索(SHTS)算法,通過6個不同維度的典型測試函數(shù)對SHTS算法進行仿真驗證,并與當前尋優(yōu)效果較好的TLBO算法、GWO算法作對比,結(jié)果表明SHTS算法具有較好的全局極值尋優(yōu)能力和穩(wěn)健性能,是一種全新高效的全局優(yōu)化算法。
(2)構(gòu)造線性混合核SVM,利用SHTS算法同時優(yōu)化混合核SVM關(guān)鍵參數(shù)和混合權(quán)重系數(shù),提出混合核SHTS-SVM年徑流預(yù)測模型。利用兩個算例對混合核SHTS-SVM模型進行實例驗證,并與多項式核SHTS-SVM、高斯核SHTS-SVM和SHTS-BP模型的預(yù)測結(jié)果進行對比,結(jié)果表明混合核SHTS-SVM模型的預(yù)測精度優(yōu)于多項式核SHTS-SVM等3種模型,表明利用SHTS算法能有效優(yōu)化混合核SVM關(guān)鍵參數(shù)和混合權(quán)重系數(shù);且混合核SHTS-SVM模型能有效綜合多項式全局核函數(shù)和高斯局部核函數(shù)二者優(yōu)勢,彌補二者在應(yīng)用上的不足,從而提高混合核SHTS-SVM模型的預(yù)測精度和泛化能力。
(3)兩個算例驗證結(jié)果表明,混合核SHTS-SVM模型用于水文預(yù)測預(yù)報是合理可行的,模型具有較好的預(yù)測精度和泛化能力,是提高預(yù)測精度的有效方法。