許建偉,崔東文
(1.云南省水利水電勘測設計院,云南 昆明 650021;2.云南省文山州水務局,云南 文山 663000)
作者簡介:許建偉(1984—),男,云南楚雄人,高級工程師,主要從事水利水電工程規劃、建設征地移民安置等工作;崔東文(通訊作者).
泥沙問題一直都是水土流失治理的重點,提高輸沙量預測精度對于區域水土流失治理、防洪減災、水資源科學調度以及河勢演變、取水工程防淤治理均具有重要意義。輸沙量時間序列預測是依據已有的歷史監測數據,通過科學的方法推測將輸沙量的變化趨勢,以期達到撐握輸沙量現狀及發展趨勢的目的。與徑流預測相比,輸沙量受徑流、氣候、人類活動等眾多因素影響,不僅預測難度大,缺少成熟、適用的模型與方法;而且時序數據表現出高噪聲、非線性、非平穩性和多尺度等多重特征,神經網絡[1-3]、支持向量機[4]、灰色預測[5]等單一模型難以獲得滿意的預測效果。當前,基于“分解算法+預測模型+疊加重構”的預測方法已在徑流或降水時間序列預測中得到廣泛應用,但在輸沙量預測研究中應用較少,如陶望雄等[6]基于經驗模態分解(EMD)和自回歸方法構建預測模型對涇河年輸沙量進行預測,結果表明該模型適用性較好,模擬精度高,可應用于年輸沙量預測;王俊杰等[7]提出自適應噪聲完備經驗模態分解(CEEMDAN)耦合小波神經網絡(WNN)的輸沙量預測模型,通過黃河利津站輸沙量預測實例對CEEMDAN-WNN進行驗證,結果表明該模型比BP神經網絡和小波神經網絡精度更高,能夠實現對水沙序列的準確預測。然而,在實際應用中,EMD模態混疊問題使其分解存在局限性,難以獲取有效信息;CEEMDAN在一定程度上解決模型混疊問題,但仍然存在計算量大、復雜度高等問題;自回歸模型顯然難于應對復雜的時間序列預測問題;小波神經網絡反向傳播算法存在著易陷入局部極值和對初值要求較高等不足。
小波包變換(Wavelet Packet Transform,WPT)源于小波分解,它在分解信號低頻子集同時,對高頻子集繼續分解,具有數學釋意明確、使用簡潔、能夠自行設定分解層數和分解效果好等特點,已在含沙量預測研究中得到應用[8]。極限學習機(Extreme Learning Machine,ELM)是一種快速學習算法,用于訓練單隱層前饋神經網絡,具有自主學習、學習速度快、泛化能力強等特點,已在各行業領域得到應用。在實際應用中,由于ELM初始權值和隱含層偏置(超參數)是隨機選取的,致使ELM網絡性能難以達到最優。目前,粒子群優化(PSO)算法[9]、果蠅優化算法[10]、灰狼優化(GWO)算法[11]、鯨魚優化算法(WOA)[12]、黑猩猩優化算法(ChOA)[13]、樽海鞘群算法(SSA)[14]、鳥群算法(BSA)[15]等群體智能算法(Swarm Intelligence Algorithms,SIA)已在優化ELM超參數中得到應用。為提高輸沙量時間序列預測精度,本文基于WPT、戰爭策略優化(War Strategy Optimization,WSO)算法、變色龍群算法(Chameleon Swarm Algorithm,CSA)和“分解算法+預測模型+疊加重構”思想,建立WPT-WSO-ELM、WPT-CSA-ELM輸沙量時間序列預測模型,并構建WPT-ELM模型以及基于小波變換(Wavelet Transform,WT)的WT-WSO-ELM、WT-CSA-ELM、WT-ELM作對比分析模型,通過云南省龍潭寨1968年~2013年汛期、枯期輸沙量時序數據對各模型預測性能進行驗證。
小波包變換(WPT)通過低通濾波器H和高通濾波器G將信號數據分解為低頻信號和高頻信號序列各一組,然后將各層的頻帶進一步分解為其下一層的2個子頻帶,以此類推實現多層分解。利用WPT對原始信號進行分解的公式[16-18]為
(1)

重構算法如下
(2)

給定M個樣本Xk={xk,yk},k=1,2,…,M,其中,xk為輸入數據,yk為真實值,f(·)為激活函數,隱層節點為m個,ELM輸出可表示為
(3)
式中,oj為輸出值;Wi={wi1,wi2,…,wim}′為輸入層節點與第i個隱含層節點的連接權值;bi為第i個輸入節點和隱含層節點的偏值;λi為第i個隱含層節點與輸出節點的連接權值。
WSO是Ayyarao等人于2022年提出一種基于古代戰爭策略的新型元啟發式優化算法[19]。該算法靈感來自于古代戰爭中的攻擊策略和防御策略,并通過士兵在戰場上的位置更新來達到求解優化問題的目的。WSO基于以下假設:①軍隊士兵隨機分布于戰場并攻擊對方軍隊;攻擊力最強的士兵為指揮官;國王是軍隊的最高領袖。②士兵根據國王和指揮官的位置動態更新位置。③國王根據戰場上的局勢通過戰鼓動態地改變策略。④士兵根據附近士兵位置和國王位置來改變其位置。⑤對于戰斗力最低的士兵或受傷的士兵,通過新兵替換或重新安置的策略進行位置更新。⑥所有士兵都有同等的概率成為國王或指揮官。
參考文獻[19],WSO數學描述如下。
(1)攻擊策略。士兵根據國王和指揮官的位置來更新自己的位置。數學描述為
Xi(t+1)=Xi(t)+2×rand×(C-King)+
rand×(Wi×King-Xi(t))
(4)
式中,Xi(t+1)為第t+1次迭代士兵新位置;Xi(t)為第t次迭代士兵位置;C為指揮官位置;King為國王位置;rand為介于0和1之間的隨機數;Wi為國王位置的權重。
(2)排序和權重。士兵的等級Ri取決于他在戰場上的攻擊力(適應度值)。若士兵新位置的攻擊力Fn小于前代位置的攻擊力Fp,則士兵占據前一個位置。數學描述為
Xi(t+1)=(Xi(t+1))×(Fn≥Fp)+
(Xi(t))×(Fn (5) 若士兵成功更新位置,則士兵等級Ri將得到提升。數學描述為 Ri=(Ri+1)×(Fn≥Fp)+(Ri)×(Fn (6) 根據士兵的攻擊力(適應度值)進行排序,權重更新數學描述為 Wi=Wi×(1-Ri/T)α (7) 式中,Fn為士兵新位置攻擊力(適應度值);Fp為士兵前代位置攻擊力(適應度值);Ri為第i個士兵的等級;α為指數變化因子。 (3)防御策略。士兵根據附近士兵位置和國王位置來改變其位置,并在不輸掉戰斗的情況下最大限度地保護國王。數學描述為 Xi(t+1)=Xi(t)+2×rand×(King-Xrand(t))+ rand×Wi×(C-Xi(t)) (8) 式中,Xrand(t)為第t次迭代士兵的隨機位置;其他參數意義同上。 (4)替換或安置弱兵。WSO利用兩種方式更新弱兵位置:一是利用式(9)中給出的隨機士兵位置替換弱兵位置;二是通過式(10)將弱兵安置到更靠近整個戰場中位數的位置,這將有利于提高算法的收斂性。 Xw(t+1)=Lb+rand×(Ub-Lb) (9) Xw(t+1)=-(1-randn)× (Xw(t)-median(X))+King (10) 式中,Xw(t+1)為第t+1次迭代替換或安置的弱兵位置;Ub、Lb為搜索空間的上、下限值;Xw(t)為第t次迭代弱兵位置;randn為0和1之間均勻分布的隨機數;median(·)為中位數函數。 CSA是Braik于2021年提出的一種基于變色龍覓食策略的新型元啟發式優化算法[20-21]。該算法主要通過搜索獵物、眼睛旋轉發現獵物和捕捉獵物三階段的位置更新來求解優化問題。 參考文獻[20-21],CSA數學描述如下: (1)初始化。CSA通過隨機初始化變色龍種群個體開始,每個個體均為目標問題的候選解。設在d維搜索空間中,種群規模為n的變色龍個體初始位置 xij=Ub+r×(Ub-Lb) (11) 式中,xij為第i只變色龍第j維空間位置;r為(0,1)范圍均勻生成的隨機數。 (2)搜索獵物。變色龍群體在覓食過程中主要通過式(12)進行位置更新來搜索和發現食物。位置更新數學描述為 (12) (3)眼睛旋轉發現獵物。變色龍的眼睛能360°旋轉進行獵物搜索,并根據獵物的位置來更新自已的位置。位置更新數學描述為 (13) (4)捕捉獵物。當獵物離變色龍較近時,變色龍便利用舌頭攻擊獵物并捕捉獵物。位置更新數學描述為 (14) 選取Sphere等4個基準函數在不同維度下對WSO、CSA進行仿真測試,見表1。基于Matlab 2018a M語言實現對4個基準函數的20次尋優,采用平均值進行性能評估。設置WSO、CSA最大迭代次數為200,士兵及變色龍群體規模為50,其他參數設置采用各算法默認值。 表1 標準測試函數尋優結果 對于單峰函數,WSO在不同維度尋優精度均在3.11×10-17以上,較CSA提高19個數量級以上;對于多峰函數,WSO在不同維度尋優均獲得理論最優值0,尋優精度遠優于CSA。可見,WSO在不同維度下尋優精度及全局搜索能力均優于CSA,具有較好的尋優效果,且尋優精度基本不受維度變化的影響;CSA尋優效果受維度變化影響顯著,尋優精度隨維度的增加而降低。 步驟一:基于dmey小波包基,分別采用2層WPT和db3小波對龍潭寨1968年~2013年汛期、枯期逐月輸沙量時序數據進行分解,分別得到4個子序列分量[2,1]~[2,4]和1個低頻率分量rA3、3個高頻率分量rD1、rD2、rD3,見圖1(限于篇幅,逐月輸沙量時序數據WT分解圖從略)。 圖1 逐月輸沙量時序數據WPT分解 步驟二:在延遲時間為1的條件下,采用Cao方法(Cao方法為虛假鄰近點法FNN的改進算法)確定子序列分量[2,1]~[2,4]和rA3、rD1、rD2、rD3的嵌入維度K,并利用前n個月的輸沙量分量來預測當月輸沙量分量,最后將各輸沙量分量的預測結果疊加即得到最終月均輸沙量的預測結果。輸沙量分量預測動態系統描述為 yn=f(xn-1,xn-2,…,xn-K) (15) 式中,yn為當月輸沙量預測值;n為月輸沙量序列長度;K為嵌入維或滯后數。通過Cao方法計算,汛期、枯期分量[2,1]~[2,4]的K值分別為11、17、13、12和6、16、19、24;汛期、枯期rA3、rD1、rD2、rD3的K值分別為17、13、11、7和13、19、12、15。利用1968年1月~2003年12月月均輸沙量作為訓練樣本,2004年1月~2013年12月月均輸沙量作為預測樣本。 步驟三:利用各分量訓練樣本構建WSO、CSA優化ELM超參數的適應度函數f(·) (16) 步驟四:WSO、CSA參數設置同“2.5算法驗證”。初始化士兵或變色龍位置,令當前迭代次數t=1。 步驟五:計算士兵或變色龍個體適應度值minf;保存當前最佳士兵或變色龍位置。 步驟六:對于WSO,若r<0.5,利用式(8)更新士兵位置;否則利用式(4)更新士兵位置;計算每個士兵的攻擊力(適應度值),對每個士兵的適應度值進行排序,并利用式(5)更新每個士兵位置;利用式(6)、(7)更新士兵等級和權重;通過每次迭代識別出適應度最差的弱兵,基于式(9)、(10)更新弱兵位置。 步驟七:對于CSA,分別基于式(12)~式(14)搜索獵物策略、眼睛旋轉發現獵物策略、捕捉獵物策略更新變色龍位置。 步驟八:利用更新后的士兵或變色龍位置計算適應度值minf,比較并保存當前最佳士兵或變色龍位置。 步驟九:令t=t+1,判斷算法是否達到終止條件,若是輸出最優適應度值和最佳士兵或變色龍位置,算法結束;否則,返至步驟六。 步驟十:輸出最優適應度值minf和最佳士兵或變色龍位置。最佳士兵或變色龍位置即為ELM最佳超參數。利用ELM最佳超參數建立4種模型對各子序列分量進行預測,將預測結果疊加即得到輸沙量最終預測結果。 云南省龍潭站始建于1951年,斷面以上集水面積3 128 km2,河長114 km,平均坡降0.3%,為盤龍河上游主要控制站。盤龍河發源于紅河州蒙自縣三道溝,流經硯山、文山等5縣(市),于天保口岸注入越南,交瀘江匯入紅河。盤龍河泥沙主要受大氣降水和徑流的影響,龍潭站多年平均輸沙量66.4萬t,含沙量為0.898 kg/m3,最大值集中在5月~9月,尤以6月~9月含沙量較大;最小值集中在1月~3月。由于汛期、枯期輸沙量起伏變化十分激烈,為有效提高輸沙量預測精度,本文按汛期(5月~10月)、枯期(1月~4月、11月~12月)劃分輸沙量時間序列。即以龍潭站1968年1月~2013年12月汛期、枯期月均輸沙量時間序列為研究對象,選取1968年1月~2003年12月月均輸沙量作為訓練樣本,2004年1月~2013年12月月均輸沙量作為預測樣本,輸沙量變化曲線及訓練、預測樣本見圖2。 圖2 逐月輸沙量時間序列變化 本文選取平均絕對百分比誤差(MAPE)、平均絕對誤差(MAE)、均方根誤差(RMSE)對各種模型進行評估。即 (17) (1)WPT-WSO-ELM、WPT-CSA-ELM、WT-WSO-ELM、WT-CSA-ELM模型:WSO、CSA參數設置同“2.5算法驗證”;ELM網絡激活函數選擇sigmoid,ELM隱層節點數設置為2K-1,分解分量時序數據采用[-1,1]進行歸一化處理。 (2)WPT-ELM、WT-ELM模型:為驗證WSO、CSA優化ELM超參數的效果,ELM模型相關參數設置同上。 基于“2.6建模流程”實現各模型對龍潭站汛期、枯期輸沙量時序數據的訓練及預測,預測結果見圖3~4,預測相對誤差效果見圖5。 圖3 汛期月均輸沙量預測結果誤差對比分析 依據圖5~7可以得出以下結論: 圖5 月均輸沙量預測相對誤差效果 (1)對于汛期輸沙量,WPT-WSO-ELM模型預測的MAPE、MAE、RMSE分別為5.84%、0.574kg/s和0.731kg/s,MAPE較WT-WSO-ELM、WPT-CSA-ELM提高56.5%以上,較WT-CSA-ELM提高79.6%,較WPT-ELM、WT-ELM提高90.2%以上;MAE較WT-WSO-ELM、WPT-CSA-ELM提高36.4%以上,較WT-CSA-ELM提高70.8%,較WPT-ELM、WT-ELM提高83.8%以上;RMSE較WT-WSO-ELM、WPT-CSA-ELM提高38.0%以上,較WT-CSA-ELM提高70.1%,較WPT-ELM、WT-ELM提高84.9%以上。對于枯期輸沙量,WPT-WSO-ELM模型預測的MAPE、MAE、RMSE分別為6.73%、0.017kg/s及0.022kg/s,MAPE較WT-WSO-ELM提高60.1%,較WPT-CSA-ELM、WT-CSA-ELM提高83.2%以上,較WPT-ELM、WT-ELM提高92.4%以上;MAE較WT-WSO-ELM提高57.5%,較WPT-CSA-ELM、WT-CSA-ELM提高85.3%以上,較WPT-ELM、WT-ELM提高93.3%以上;RMSE較WT-WSO-ELM提高58.5%,較WPT-CSA-ELM、WT-CSA-ELM提高86.7%以上,較WPT-ELM、WT-ELM提高94.1%以上。這表明WPT-WSO-ELM模型具有更高的預測精度,將其用于輸沙量時間序列預測是可行的。 圖4 枯期月均輸沙量預測結果誤差對比分析 (2)在同一WPT分解或WT分解的情形下,WSO優化ELM網絡的預測誤差要小于CSA優化ELM網絡的預測誤差,遠小于未經優化的ELM網絡誤差,表明WSO、CSA能有效優化ELM超參數,提高ELM預測性能;算法尋優能力越強,獲得的ELM超參數越優,由此構建的ELM模型預測效果越好。 (3)在同一WSO或CSA優化的情形下,基于WPT分解的模型,其預測誤差要遠小于基于WT分解的模型,表明WPT能將輸沙量時序數據分解為更具規律的子序列分量,分解效果要優于WT。 提高輸沙量時間序列預測精度對于水土流失防治具有重要意義。本文綜合考慮輸沙量時序數據的多尺度、高度非線性等多重特征,提出了耦合的WPT-WSO-ELM、WPT-CSA-ELM輸沙量時間序列預測模型,并構建WT-WSO-ELM、WT-CSA-ELM、WPT-ELM、WT-ELM對比預測模型,通過龍潭站汛期、枯汛輸沙量實例進行驗證,得到如下結論: (1)對于基準函數,WSO尋優值均小于CSA,具有較好的尋優精度及全局搜索能力。WSO尋優精度基本不受維度變化的影響,CSA尋優精度隨維度的增加而降低。 (2)WPT-WSO-ELM模型的預測誤差小于WPT-CSA-ELM模型及WT-WSO-ELM、WT-CSA-ELM模型,遠小于WPT-ELM、WT-ELM,具有較好的預測精度和泛化能力,將其用于輸沙量時間序列預測是可行的。模型不但預測效果好,而且智能化水平高,可為相關輸沙或含沙量時間序列預測研究提供新途徑。 (3)WSO、CSA能有效優化ELM超參數,大大提高了ELM的預測性能;WSO的優化效果要優于CSA;算法尋優能力越強,獲得的ELM超參數越優,由此構建的ELM模型預測效果越好。 (4)WPT能同時對高頻、低頻信號進行分解,可將輸沙量時序數據分解為更具規律的子序列分量,其分解效果要優于WT。2.4 變色龍群算法(CSA)




2.5 算法驗證

2.6 建模流程


3 實例應用
3.1 數據來源

3.2 評價指標

3.3 參數設置
3.4 結果及分析



4 結 論