黃夢楠,苗欣慧
(1.安徽省(水利部淮河水利委員會)水利科學研究院(安徽省水利工程質量檢測中心站),安徽 蚌埠 233000;2.水利水資源安徽省重點實驗室,安徽 蚌埠 233000;3.淮河水資源保護科學研究所,安徽蚌埠 23300)
目前國內外學者在需水預測方面已開展大量研究,主要的方法有時間序列法、多因素相關分析法和系統分析法等,這些方法多以單因素為主,且有限定的使用條件。不能較全面的反映各類社會、環境等因素對需水的影響,進而導致預測結果存在一定誤差。同時目前多以城市或行政區為計算單元進行需水預測,隨著跨省、跨市、跨縣區河流水資源調度工作的開展,需要以流域為單元進行需水預測。
BP(BackPropagation)神經網絡是一種將輸入因素,按照輸入層、隱含層、輸出層的流程,一層一層地正向傳遞,將輸出層的結果誤差進行反向反饋,利用反向反饋的神經網絡來修改各個鏈接的加權的非線性操作過程。適用于處理結構較為復雜,各因子間無明顯相關關系的問題。
粒子群優化算法(ParticleSwarmOptimization,PSO 算法)是一種進化計算技術。原理類似遺傳算法,是一種基于迭代的優化工具。系統初始化為一組隨機解,通過迭代搜尋最優值。但是并沒有遺傳算法用的交叉以及變異,而是粒子在解空間追隨最優的粒子進行搜尋。
BP 算法雖然在信息處理方面有一定優勢,但該算法的收斂速度慢,同時在計算過程中無法避免局部極小問題,同時在確定BP 網絡結構上也缺乏有效方法。粒子群算法是一種全局搜索優化,對于得到精確解有一定難度,所以如果能夠采用某種局部搜索方法可以提升該算法的效率。因此,利用粒子群算法對BP 神經網絡模型進行優化,二者可以互補,提高計算效率以及精度。本文采用粒子群算法優化權值的方式來訓練BP 神經網絡進行沙潁河流域需水預測,文中基于粒子群優化算法的BP 神經網絡模型基于Matlab 平臺進行編程。
根據沙潁河流域灌區面積,流域內各行業取水口位置等從阜陽市沙潁河流域涉及縣區的各行業用水劃分出沙潁河流域內部分,作為數據基礎。沙潁河流域2000—2021 年用水量變化趨勢見圖1(a)。2000 年以來,沙潁河流域總用水量呈增長趨勢,到2011 年達到峰值,2012 年后有所下降并趨于穩定。前期的用水量增長是由于工農業發展對水資源的需求不斷增長的結果,近幾年來阜陽市進行了產業結構調整,加強了節水措施,提高用水重復利用率,沙潁河流域用水量呈現小幅下降趨勢。沙潁河流域總用水量的變化趨勢與農業用水量的變化趨勢基本一致,主要是由于沙潁河流域存在諸多灌區,農業灌溉用水在總用水量所占比重較大,本世紀初農業用水占比近70%,近幾年來農業用水的比重有所下降,基本穩定在50%以上,見圖1(b)。沙潁河流域工業用水除了在本世紀初期增長較快外,增長趨勢比較緩慢,在2011 年達到峰值后有所降低;阜陽市生活用水量受居民生活水平提高的影響一直處于緩慢增長的態勢。

圖1 沙潁河流域近22 年用水量變化趨勢及各行業用水占比趨勢圖
采用Pearson 相關性分析篩選出與各用水戶相關性較強的影響因子,然后運用較為成熟的主成分分析方法降低需水影響因子在模型中進行預測時的維數。采用降維后的需水量影響因子進行后續的需水量預測,利于BP 神經網絡的訓練及檢驗。根據《阜陽市水資源公報》《阜陽市統計年鑒》《安徽省水資源公報》和《安徽省統計年鑒》等經濟社會和水資源利用相關數據,選取需水量影響因子。本文結合相關文獻和流域的實際情況,初步選取15 個因子作為沙潁河流域需水量的影響因子,分別為降水量、人均用水量、人口、城鎮化率、GDP、一產總值、二產總值、三產總值、人均生產總值、灌溉面積、糧食產量、污水排放量、工業廢水處理量、城鎮消費零售額和用電量指標。因為安徽省沙潁河流域只涉及阜陽市,阜陽市的社會經濟活動和水資源管理政策等會影響沙潁河用水量,同時在預測模型中會將影響因子進行歸一化處理后分析,所以本研究選擇將降水量、人均用水量、人口、GDP、灌溉面積等基于面積比和實際情況劃分至沙潁河流域,其余指標采用阜陽市數據。通過SPSS 軟件對各用戶需水量與需水影響因子相關性進行分析,其相關性絕對值見表1。

表1 各行業需水量及影響因子相關性表
從表1 可以看出,降水量與各行業需水量之間呈現為弱相關關系,相關性系數絕對值均小于0.3。可以認定降水量對各用水戶需水量的預測結果影響較小,故首先將此種影響因子在需水預測中予以剔除。為解決自變量因子共線性問題,對影響因子進行共線性診斷后,對余下14 個影響因子進行主成分分析進一步降維,來選取出彼此獨立且具有代表性的需水量關鍵影響因子。首先對影響因子進行KMO 檢驗,該檢驗指標能夠比較影響因子與需水量相關性,其值在0~1 之間,KMO 值越接近于1,意味著變量間的相關性越強,原有變量越適合作因子分析。通過檢驗得出KMO 值為0.681,顯著性p<0.001,具有很好的相關性,可以進行主成分分析。將該14 個影響因子通過SPSS軟件進行主成分分析,根據得到初始特征值及累計貢獻率,選取第1 主成分代替原變量的14 個影響因子。第1 個主成分的荷載矩陣見表2。選取該主成分中荷載較大的影響因子作為進行需水量預測模型的輸入,因此選用除人均用水量和人口外的12 個影響因子,為后續的需水量預測奠定基礎。

表2 主要成分荷載矩陣表
神經網絡模型中,設置訓練集為亂序選取的16年數據,其余6 年為驗證期,篩選后的12 個影響因子為輸入量,率定期各行業需水量為輸出量。在滿足隱含層單位數和輸入層單元數必須小于N-1(N 為訓練樣本數),經過多次優選之后,確定BP 神經網絡模型結構為12-18-1 時,收斂效果最佳。所以,在連接權數必須小于訓練樣本2 到10 倍的原則下,將模型參數隱含層單位數設置為18;學習速率取0.01;最大允許誤差1×10-6;訓練次數N=1000;初始權重設置在[-1.0,1.0]區間以完成模型構建。將率定期數據作為訓練樣本,將檢驗期作為檢驗樣本,最終得到BP人工神經網絡模型的需水預測結果,如圖2。

圖2 沙潁河流域各行業需水預測結果圖
通過均方根誤差(RMSE)、平均絕對百分比誤差(NAPE)和納什系數(NSE)等評價指標對需水預測結果與實際需水量進行分析。根據表3 評價指標中可知,生活需要和生態需水的均方根誤差均較小,分別為0.09 和0.03;工業需水擬合效果次之,均方根誤差為0.12;農業需水與總需水量的擬合效果相對較差,在0.3 左右。百分比誤差方面,各行業需水預測均低于9%,生活需水和總需水量最小,分別為3.24%和2.48%;工業需水和生態需水誤差偏高,分別為8.08%和7.75%。模型擬合效果方面,農業需水的納什系數為0.74,相比其他行業需水及總用水量較差。

表3 BP 神經網絡預測模型各行業需水預測評價結果表
基于粒子群優化算法構建的結構為12-18-1 的BP 神經網絡需水量預測模型對沙潁河流域需水進行了預測。根據評價指標,模型在各行業需水預測的相關評價指標均較好,其中生活需水量評價指標結果最好,擬合精度最高,其次為生態和工業。農業用水受降水年型等多種復雜因素影響,效果相對較差。對沙潁河流域總用水量的預測效果為:均方根誤差0.3051,百分比誤差為2.48%,納什效率系數為0.9931,表現較好。基于粒子群優化算的BP 神經網絡對需水量預測具有一定準確度,可采用此方法對其他流域需水進行預測,對適用性進一步研究