涂 異,汪金能,朱曲平,安雪瑋,梅 藝,陳東祖
(重慶工程學院土木工程與建筑學院,重慶 400000)
水文水資源及水利工程中,有大量問題涉及時間序列,如徑流量預測、蒸發量預測等。而這些問題正是水利工作者決策時所需參考的關鍵因素之一[1,2]。
有大量數學方法被引入水文時間序列預測之中。如周秀平等[3]應用最小二乘支持向量機進行年徑流量預測,并通過馬爾科夫鏈對模型計算結果進行修正,進而組合得到最終結果;蔣曉輝等[4]提出了徑流預測的混合回歸模型,將該模型應用于黃河三門峽站年徑流量預測之中,并取得了較為滿意的應用效果;覃光華等[5]采用小波方法對徑流序列進行分解,以獲取其確定性項和隨機項,爾后采用廣義回歸神經網絡再次建模,建立了WA-GRNN組合模型,并將該模型應成功應用于沱江中上游三皇廟水文站年徑流預測之中;崔文東[6]將神經網絡用于徑流預測中,同時比較了單隱層BP神經網絡、多隱層BP神經網絡、RBF網絡和GRNN網絡的應用效果,結果表明后三者都能取得較前者更好的結果。另外,還有灰色理論等諸多數學模型被用于水文時間序列的預測之中[7]。
由上述可見采用數據驅動建模進行水文時間序列預測是目前的一種較為可靠的方法。極限學習機是一種典型的數據驅動建模方法,其實質上是一種單隱層神經網絡,網絡的結構特點決定該方法具有運算速度快的優點,目前已在滑坡位移預測、風力預測等工程領域得到了一定應用。但標準極限學習機也存在一些缺點,如其前饋層網絡權值仍需隨機給定,一定程度上降低了該方法的穩健性。針對上述不足,一些修正極限學習機的方法如核極限學習機也被陸續提出,大大改善了其原有的性能[8-9]:最為典型的即是參照最小二乘支持向量機(LSSVM)的特點,將核方法引入極限學習機中,即核極限學習機(limit learning machine with kernel function, KELM)。研究表明核極限學習機能夠取得更優于LSSVM的結果。但由于核函數有多種類型,典型的有RBF核函數和多項式核函數,選擇不同的核函數對模型結果具有較大的影響。從目前的研究上來看:融合多種核函數的混合核函數方法能夠獲得較為滿意的結果。
鑒于上述分析,本文擬提出一種水文時間序列預測的新方法,即混合核PSO-KELM模型。應用蘭州站年徑流量和金沙河流域年徑流量實測數據驗證新方法的合理性。
極限學習機[8](ELM)是一種簡單、有效的單隱層前饋神經網絡。因其結構簡單,易于實現,已在工程領域得到了一定應用。與BP模型不同,ELM模型無需對網絡中的連接權值進行迭代調整,僅通過設置網絡的隱含層節點數量就能夠通過解析計算得出網絡的輸出權值,因此擁有計算速度快和泛化性能好的優點。
盡管ELM方法擁有上述眾多優點,但由于其輸入權值和隱含層偏差是在網絡初始化時隨機產生的,在一定程度上導致了算法輸出權值的不穩定[9]。為此KELM通過引進核函數替換ELM算法中原有的隨機映射函數,改善了ELM方法輸出權值不穩定的缺點[9]。給定訓練數據p,其期望輸出值表示為t。按照標準優化的觀點,KELM的訓練函數可表示為:
(1)
其中,ξ=[ξi,1,ξi,2,…,ξi,m]T表示樣本xi的模型實際輸出與期望輸出的誤差;β是隱含層與輸出層節點間的連接權值;C表示懲罰系數;h(xi)為訓練樣本xi的隱含層輸出值。根據KKT理論,可以將式(1)等效為式(2):
(2)
式中:αi,j是Lagrange乘子;βj為連接隱含層和第j個輸出節點之間的權值向量,且β=[β1,β2,…,βm]。據KKT優化條件,有:
(3)
其中,ai=[ai1,…,aim]T,a=[ai1,…,aiN]T,再對式(2)進行求解,整理得到如下表達式:
(4)
根據Mercer條件,定義KELM 的核矩陣為:
Ω=HHT:Ωi,j=h(xi)·h(xj)=K(xi,xj)
(5)
則KELM模型的輸出表達式為:
(6)
通常認為,滿足Mercer條件的函數即可作為KELM的核函數。按照多核學習的思想,定義混合核函數[10,11]如下:
K=aKpoly+(1-a)Krbf=
(7)
構造的混合核函數K結合了全局函數多項式核函數Kpoly和局部函數RBF核函數Krbf的優點。a表示Kpoly和Krbf之間的調節系數,當a趨向1 時,此時的K的功能就偏向于Kpoly;同理,當a趨向于0時,K就偏向于Krbf。
對式(7)進行分析,可知需對式(7)中3個變量δ、q、a優選,而上述的懲罰系數C也可用優化方法進行尋優[11]。則混合核KELM的求解問題可歸結為關于四個變量的優化問題,即x=[C,δ,q,α]。目前,解決這類問題的一個有效方法是運用智能算法進行尋優。其中,智能算法包括遺傳算法(GA)、粒子群算法(PSO)、人工蜂群算法(ABC)等,本文選擇最易實現的PSO算法優化混合核KELM的四個參數。PSO算法的核心是粒子更新速度和位置,即[12]:
(8)
式中:w表示慣性權重,通常取值從0.9到0.4遞減;c1、c2表示學習因子,通常取值均為2;r1、r2表示兩個隨機數。
應用PSO算法對混合核KELM的待優化參數x=[C,δ,q,α]進行尋優,選用適應度最佳的一組參數作為混合核KELM模型的參數,其中適應度的計算公式如下:
(9)

由上述分析可見,PSO-KELM模型本質上也是一種黑箱模型,即其建模機理是基于數據驅動,故該種模型具有普適性,只需要求數據樣本不能過少。正如引言所指出,這類基于數據驅動的建模方法擅長處理非線性問題。而與其他數據驅動建模方法,如BP神經網絡模型、RBF模型相比,新模型在穩健性上有了較大的改進,這主要是新模型避免了隨機產生輸入權值和隱含層偏差的不足。另外,新模型綜合了核方法的優點,使用徑向基核函數和多項式核函數相混合的方式,這能夠最大程度的保證模型的穩健性。下文將以實例驗證,對比新模型和BP神經網絡模型、RBF模型的應用效果,以檢驗模型是否合理。
本文以蘭州站年徑流量預測為例,檢驗PSO-KELM是否有效。蘭州站1955-1982年年徑流量實測數據見圖1[7]。取1995-1977年的實測數據用于訓練模型,以獲取模型結構參數,后5年的實測數據用于檢驗模型,作為對比,同時和水文時間序列中采用較多的BP模型進行徑流預測,以比較兩者方法之優劣性。PSO-KELM模型和BP模型的預測結果見圖2。本文所有計算結果均由MATLAB實現。

圖1 蘭州站1955-1982年年徑流量實測數據Fig.1 Measured data of annual runoff of LanZhou Railway Station in 1955-1982

圖2 模型預測結果比較Fig.2 Comparison of model prediction results
兩種模型的相對誤差統計見表1:在1978~1980年間和1982年,顯然PSO-KELM模型精度高于BP模型,而在1981年,PSO-KELM模型精度低于BP模型,這可能與樣本的分布有關,這也是數據驅動建模的特點,即預測結果取決于樣本質量。但從整體誤差統計上分析,無論是最大、最小、平均誤差,PSO-KELM模型精度都優于BP模型。

表1 兩種模型的相對誤差Tab.1 Comparison of model relative error
以位于金溝河流域的八家戶站年徑流量實測數據進一步檢驗模型有效性。金溝河流域1957-2003年年徑流量數據見圖3所示[13]。以1957~1995年的實測數據進行建模,1996-2003年的數據用于檢驗模型。作為比較,同時計算了BP模型和RBF模型的結果,三種模型的比較見圖4。

圖3 金沙河流域1957-2003年徑流量實測數據Fig.3 Measured data of annual runoff of Jinsha River Basin in 1957-2003

圖4 模型預測結果比較Fig.4 Comparison of model prediction results
三種模型的預測相對誤差對比見表2,可見除2003年外,PSO-KELM模型的預測結果都優于前BP和RBF模型。仍然從整體誤差上分析,由表2可見,整體預測性能PSO-KELM模型最優、其次為RBF模型、BP模型的性能最差。

表2 模型的相對誤差Tab.2 Comparison of model relative error
需要說明的是,在復雜性程度上,PSO-KELM模型與BP和RBF模型相比,既省卻了繁瑣的網絡訓練過程,又保證了預測準確度;而與ELM相比,增加了核函數參數搜索的步驟,但由于采用PSO算法進行搜索,可較為快速的獲取到最優參數。同時,由于PSO-KELM避免了ELM可能存在的結果不穩健的缺點,在實用性上更強。而與LSSVM(該模型同樣存在參數,也需要通過優化算法獲取最優參數值[14])等模型相比,新模型能夠在同等精度的條件下擁有更小的計算量。據此可判斷:PSO-KELM模型應用于水文時間序列預測是可靠的。
基于數據驅動建模方法,以典型的水文時間序列為例,研究所提出方法的合理性,取得結論如下。
(1) 提出了一種預測水文時間序列的混合核PSO-KELM模型:按照多核學習思想,將典型的全局核函數(多項式核函數)和典型局部核函數(RBF核函數)加權得到混合核函數,代入極限學習機模型中,并通過PSO算法獲取最優的模型參數,進而實現水文時間序列的預測。
(2) 通過蘭州站年徑流量預測實例表明:PSO-KELM模型的平均誤差較BP模型大大減??;通過金溝河流域年徑流量預測實例表明,PSO-KELM模型的預測精度要高于RBF模型和BP模型。同時PSO-KELM模型省卻了BP模型等存在的繁瑣的網絡訓練過程,便于工程應用。
(3) 實例分析中表明,PSO-KELM模型仍然具有一定的誤差,這可能是樣本量造成的。故建議在實際應用中增加更多的樣本訓練以保證模型準確度。