徐 瑩,王嘉陽,蘇華英
(1.大連理工大學,遼寧 大連116024;2.貴州電力通信局,貴州 貴陽550002)
徑流的中長期預報是解決防汛抗旱、用水棄水、各用水部門間用水矛盾的重要依據(jù),在管理水利工程并發(fā)揮其經(jīng)濟效益、流域水利規(guī)劃、水資源配置等方面都具有十分重要的意義。目前,中長期水文預報主要分為兩類,第一類是以成因分析法和統(tǒng)計分析法為主的傳統(tǒng)方法,第二類是以人工神經(jīng)網(wǎng)絡、模糊集分析、灰色系統(tǒng)分析方法為主的新方法。其中,成因分析方法可信度高,然而篩選高相關預報因子是一個難點;水文統(tǒng)計方法模型成熟、求解簡單,但預報精度時常不能很好的滿足實際生產需求[1]。中長期徑流預報的新方法融入了人工智能、機器學習等思想,適應性較強,但也存在一些問題:神經(jīng)網(wǎng)絡方法缺少完備的數(shù)學理論基礎,參數(shù)優(yōu)化理論尚不完備,網(wǎng)絡拓撲結構尚無固定原則可遵循;模糊分析方法易受到?jīng)Q策者主觀性影響;灰色系統(tǒng)理論和方法還有待進一步發(fā)展。目前一種新興的機器學習算 法——支 持 向 量 機 (support vector machines,SVM)成為繼神經(jīng)網(wǎng)絡之后機器學習領域研究的新熱點[2]。
支持向量機基于統(tǒng)計學習理論,具有非線性處理、全局最優(yōu)、泛化能力良好等優(yōu)越性能,在解決小樣本、非線性、高維度等問題時表現(xiàn)優(yōu)異[3]。支持向量回歸機(support vector machine for regression,SVR)是建立在SVM思想上的回歸算法,具有堅實的理論基礎,已越來越多的應用在徑流預報中[4]。但在實際應用中,SVR仍存在一些問題,主要是如何選擇核函數(shù)尚未建立統(tǒng)一的標準,如何選取參數(shù)尚無完備的理論和方法。目前確定SVR參數(shù)大多采用網(wǎng)格搜索法,由于這種方法耗時長,且?guī)в幸欢ǖ闹饔^性,使用效果還不是很理想。遺傳算法(Genetic Algorithm,GA)具有強大的全局搜索特性,可實現(xiàn)SVR參數(shù)選取的自動化,能夠有效提高徑流預報的精度和效率。本文利用GA優(yōu)選SVR參數(shù),構建GA-SVR模型,將該模型應用于烏江流域某電站1955年—2010年12月的徑流預報中,并與 SVR、BP模型進行對比。結果顯示,相比另兩種模型,GA-SVR泛化能力更好、預報精度更高,可以作為中長期徑流預報的一種有效方法。
SVR的基本思想是用少數(shù)支持向量代表整個樣本集,利用一個非線性映射φ將訓練集映射到一個高維特征空間,使得在輸入空間中非線性函數(shù)估計問題轉換為高維特征空間中的線性函數(shù)估計問題[5-6]。設函數(shù)形式如下:
依據(jù)統(tǒng)計學習理論,引入非負的松弛變量ξ*i,ξi,則 SVR 問題變?yōu)?
式中:C為誤差懲罰參數(shù);ε為不敏感損失函數(shù)。顯然,這是一個凸二次規(guī)劃,求解其對偶形式可得到:
式中:K〈xi,x〉為核函數(shù),目前常用的核函數(shù)主要有:線性核函數(shù)、多項式核函數(shù)、徑向基核函數(shù)和 Sigmoid核函數(shù)[7]。線性核函數(shù)是徑向基核函數(shù)的一個特例;多項式核函數(shù)使用效果尚可接受,但當其應用在較高維數(shù)的特征空間時,會出現(xiàn)計算量激增現(xiàn)象,甚至在某些情況下得到的解不正確;Sigmoid核函數(shù)只有在特定的條件下才能成為有效的核函數(shù),且其精確度要低于徑向基核函數(shù)[8]。綜上,本文選擇徑向基核函數(shù)。選定核函數(shù)后,SVR模型經(jīng)抽象后可表示為:
徑流預報的首要環(huán)節(jié)是挑選預報因子,挑選預報因子的統(tǒng)計計算方法主要有相關概率法、相關系數(shù)法和斯皮爾曼等級相關系數(shù)法等。基于SVR的徑流預報中,把挑選好的預報因子值作為SVR模型的輸入樣本,徑流值作為輸出樣本,為了消除奇異樣本的影響,保證預報結果的準確性,還須對樣本進行歸一化處理。首先,對樣本進行分類,一類為訓練集,一類為檢驗集,并對訓練集進行歸一化處理;然后,利用新的訓練集對模型訓練,采用網(wǎng)格搜索法確定模型中C、σ、ε等各參數(shù)值,即模型訓練完畢;再利用該模型對檢驗集進行預測,并將結果反歸一化,獲得預報值。
由公式(4)可看出,影響SVR模型精度的主要因素有:誤差懲罰參數(shù)C、核參數(shù)σ和不敏感損失函數(shù)ε。
(1)誤差懲罰參數(shù)C的影響
誤差懲罰參數(shù)C的作用是權衡樣本的錯分誤差和算法復雜度之間的關系,通過調整SVR經(jīng)驗風險和置信范圍,保證 SVR的泛化能力達到最佳狀態(tài)。在確定的特征空間中,C越小,對經(jīng)驗誤差的懲罰越小,回歸函數(shù)曲線越平滑,SVR的復雜度小而經(jīng)驗風險值大;反之亦然。C較小時,訓練誤差和測試誤差均較大,此時表現(xiàn)為“欠學習”;隨著C的增大,訓練和測試誤差都將減小;當C增大到一定程度后,訓練誤差逐漸趨于穩(wěn)定,而測試誤差仍隨 C的增大而增大,此時表現(xiàn)為“過學習”[9]。另外,選取合適的C,能夠在一定程度上抵抗樣本中“噪聲點”的干擾,從而保證模型的穩(wěn)定性[10]。
(2)核參數(shù)σ的影響
核參數(shù)σ反映各支持向量間的相關程度,通過改變σ可以間接改變支持向量間分布的復雜度。特征子空間的維數(shù)確定后,相應線性分類面的最大VC維數(shù)和最小經(jīng)驗誤差也就隨之確定了[11]。特征子空間的維數(shù)決定了其唯一對應的最優(yōu)分類超平面的復雜程度,即前者維數(shù)越高,后者越復雜,同時模型經(jīng)驗風險越小而置信范圍越大;反之亦然。可見,以上兩種情況均無法得出理想的預報結果,因此,需選擇合適的σ保證既不出現(xiàn)“過學習”也不出現(xiàn)“欠學習”現(xiàn)象。
(3)不敏感損失函數(shù)ε的影響
不敏感損失函數(shù)ε控制回歸逼近誤差管道的寬度,從而控制支持向量的個數(shù)[12],其值和樣本噪聲密切相關,反映SVR模型對輸入變量所含噪聲的敏感程度。通過改變ε的值可以控制函數(shù)的擬合精度:ε過小,函數(shù)精度高、模型過于復雜,但支持向量數(shù)目較多,破壞了支持向量機解的稀疏性,無法保障泛化能力;ε過大,支持向量數(shù)目減少,但會導致模型比較簡單,降低預測性能。
研究表明,參數(shù)之間是相互聯(lián)系、相互影響的:在C取值的合理區(qū)間內,C取值不同對模型預報誤差影響不是很大,這說明對于固定的σ,并非只有一個而是存在多個C可以使SVR取得較好的泛化能力;此外,還發(fā)現(xiàn)對于固定的C,總是能夠找到合適的σ使模型能夠得到良好的預報效果。上述結果表明C和σ不應該獨立選擇,基于二者相互影響,必須同時調整。
綜合上述理論分析得出:SVR模型的復雜度、泛化能力由C、σ、ε及其相關關系決定。所以,應全面考慮這三個參數(shù)之間的關系,對其進行同時優(yōu)選,這樣既可以保證三個參數(shù)的準確定性,也可以保證計算的時效性。因此,尋求一個計算精度高、求解速度快的算法對于參數(shù)優(yōu)選至關重要。由于遺傳算法在全局搜索方面具有快速收斂到全局最優(yōu)解的優(yōu)點,故本文利用遺傳算法對SVR參數(shù)進行優(yōu)化選擇。
徑流預報的 SVR模型性能與 C、σ、ε密切相關。目前優(yōu)化上述參數(shù)所采用的主要方法是網(wǎng)格搜索法,該算法在給定的參數(shù)范圍內將網(wǎng)格搜索和交叉驗證相結合,計算量大,并且將一個參數(shù)固定尋求另一個參數(shù)的搜索模式易陷入局部最優(yōu)解,致使預報精度無法得到保障。為此,引入遺傳算法優(yōu)化上述參數(shù)。
遺傳算法利用了生物遺傳學中適者生存和隨機信息交換的思想,根據(jù)具體問題構造一個適應度函數(shù),通過選擇、交叉、變異等遺傳機制,根據(jù)適應度函數(shù)指導搜索方向,以實現(xiàn)種群的進化[13]。由于遺傳算法具有強大的全局搜索能力,簡單、通用、普適性強,應用范圍廣,并且在并行處理上表現(xiàn)良好[14],故應用在SVR模型參數(shù)尋優(yōu)上具有一定的優(yōu)勢。
遺傳算法優(yōu)化SVR參數(shù)的步驟見圖1。
圖1 GA-SVR模型流程圖
(1)設定遺傳算法的種群規(guī)模N、最大進化代數(shù)T等參數(shù);
(2)確定C、σ、ε等參數(shù)的取值范圍;
(3)采用二進制編碼初始化種群。單個染色體由 C、σ、ε二進制組成,染色體由 C、σ、ε的二進制順序排列組成,長度為三參數(shù)二進制長度之和;
(4)計算種群中各個體適應度函數(shù)值,本文選取SVR回歸模型在訓練樣本集上的均方誤差MSE的倒數(shù)作為適應度函數(shù),以式(5)作為評價函數(shù)計算各個體適應度:
(5)判斷是否滿足終止條件。若滿足終止要求,則輸出最優(yōu)個體,轉至步驟(7);否則進入步驟(6);
(6)進行選擇、交叉、變異等遺傳操作,產生新的種群;返回步驟(4);
(7)將解碼最優(yōu)輸出個體得到的參數(shù)輸入SVR模型中,對測試樣本集進行檢驗預測并輸出預測結果。
烏江是長江流域南岸上游最大的支流,流域面積87 920 km2。本文選擇烏江流域某龍頭水電站1955年—2010年12月的徑流量作為預報對象。假設預報對象與預報因子間存在某種線性關系,通過線性分析,以相關系數(shù)確定預報因子[15-16]。本文的預報因子為:Yi,j={yi,j-1,yi,j-2,yi-3,j},式中,i 為年份;j為月份。
將1955年—2002年的數(shù)據(jù)作為訓練集,2004年—2010年的數(shù)據(jù)作為檢驗集,并將數(shù)據(jù)歸一化到[0,1]區(qū)間,公式為:
將歸一化后的數(shù)據(jù)作為模型輸入,利用遺傳算法優(yōu)選參數(shù),其中C 的取值范圍為[0.01,100],σ的取值范圍為[0.01,1000],ε 的取值范圍為[0,1];SVR 模型的參數(shù)組合是{C,σ,ε}={0.5,2,0.1};GA-SVR的計算參數(shù)為:交叉概率0.5,變異概率0.01,種群規(guī)模N=30,進化代數(shù)T=200,參數(shù)組合是{C,σ,ε}={32.1,0.9,0.2},用訓練好的模型對檢驗集進行檢驗得到模型輸出,并進行反歸一化處理。
本文選取SVR模型、三層前饋反向傳播人工神經(jīng)網(wǎng)絡模型與GA-SVR模型進行比較,采用平均絕對誤差MAD、平均相對誤差MAPE和均方根相對誤差RMSRE來衡量模型的擬合和預報性能,其計算公式為:
式中:yi為預報值;^yi為實測值;n為樣本個數(shù)。
GA-SVR、SVR和BP三種模型的預測值與實測值的對比見圖2,三種模型的誤差評價指標見表1。
圖2 預測值與實測值對比圖
表1 三種模型預報結果比較
由圖2和表1可看出:
(1)GA-SVR的預報值和實測值很好地吻合,說明本文模型的建立是成功的。
(2)通過比較,三種模型中,GA-SVR的預報精度最高,SVR次之,BP最差。
(3)比較GA-SVR和SVR的評價指標可看出GA-SVR的預報精度更高,擬合能力和泛化能力更好,說明參數(shù)的選取對模型的預測性能很重要。GA-SVR實現(xiàn)了參數(shù)的合理化、自動化選取,進一步提高了預報精度。
(4)GA-SVR和SVR的預報精度均高于BP,這是因為BP模型基于經(jīng)驗風險最小化,而SVR模型基于結構風險最小化,且克服了BP模型極易陷入局部最優(yōu)的缺點。
與短期徑流預報相比,中長期徑流預報影響因素復雜、不確定性強,其預報精度還有待提高。支持向量機在解決小樣本、非線性、高維度等問題時表現(xiàn)良好,已越來越多的應用于中長期徑流預報中。但是支持向量機的性能依賴于參數(shù)的選擇,遺傳算法的全局搜索能力能確保模型中參數(shù)的準確性,提高預報精度。本文將兩種智能算法相耦合,結果表明,GA-SVR模型的預報精度有所提高,可應用于中長期徑流預報中。
[1]楊 旭,欒繼虹,馮國章.中長期水文預報研究評述與展望[J].西北農業(yè)大學學報,2000,28(6):203-207.
[2]暢明琦,劉俊萍.蘭州站徑流支持向量機預測[J].水力發(fā)電學報,2010,29(4):32-38.
[3]游中瓊,陳森林,王 放.烏溪江水庫長期徑流預報方案探討[J].武漢水利電力大學學報,2000,33(1):59-62.
[4]李克飛,紀昌明,張驗科,等.三峽水庫中長期徑流預報方法研究[J].水電能源科學,2013,31(1):8-11.
[5]李 佳,王 黎,馬光文,等.LS-SVM在徑流預測中的應用[J].中國農村水利水電,2008,(5):8-10,14.
[6]林劍藝,程春田.支持向量機在中長期徑流預報中的應用[J].水利學報,2006,37(6):681-686.
[7]李彥彬,黃 強,徐建新,等.河川徑流中長期預測的支持向量機模型[J].水力發(fā)電學報,2008,27(5):28-32.
[8]李良敏,溫廣瑞,王生昌.基于遺傳算法的回歸型支持向量機參數(shù)選擇法[J].計算機工程與應用,2008,44(7):23-26.
[9]王克奇,楊少春,戴天虹,等.采用遺傳算法優(yōu)化最小二乘支持向量機參數(shù)的方法[J].計算機應用與軟件,2009,26(7):109-111.
[10]王宏偉,張 鑫,邱俊楠,等.基于 GA-SVR的中長期徑流預報[J].西北農林科技大學學報:自然科學版,2012,40(2):201-206.
[11]劉東輝,卞建鵬,付 平,等.支持向量機最優(yōu)參數(shù)選擇的研究[J].河北科技大學學報,2009,30(1):58-61.
[12]陳 果,周 伽.小樣本數(shù)據(jù)的支持向量機回歸模型參數(shù)及預測區(qū)間研究[J].計量學報,2008,29(1):92-96.
[13]周 明,孫樹棟.遺傳算法原理及應用[M].北京:國防工業(yè)出版社,2002.
[14]宋小娜,朱齊亮.遺傳算法在數(shù)據(jù)挖掘中的應用[J].科技信息,2008,(17):65-66.
[15]張利平,王德智,夏 軍,等.基于氣象因子的中長期水文預報方法研究[J].水電能源科學,2003,21(3):4-6.
[16]武 斌,張 峰.水庫工程水文預報模型[J].水利與建筑工程學報,2005,3(3):33-36.