夏 巍,汪 石,梁祥瑩
(安徽建筑大學 電子與信息工程學院,安徽 合肥 230601)
城市供水管網的復雜程度隨現代化城市的人口高密度增長而增長。為確保居民的用水穩(wěn)定性,研究人員對供水管網的優(yōu)化調度開展了深入探索[1]。供水管網的流量預測可以作為管網優(yōu)化調度的依據?,F階段,城市供水管網的流量預測方法一般采用機器學習的算法[2-4],相對于傳統(tǒng)回歸分析方法,例如灰色模型[5]、自回歸滑動[6],其預測精度更高、適用范圍也更廣。
城市供水管網流量數據作為典型的時序數列,具有良好的循環(huán)變動特性。許多領域采用循環(huán) 神 經 網 絡[7](Recurrent Neural Network,RNN)分析時序數列,都獲得了優(yōu)秀的成果[8-9]。目前,基于循環(huán)神經網絡的城市供水管網的流量預測研究不多,而基于長短期記憶網絡(Long-Short Term Memory,LSTM)的日用水流量預測[10]已經在單個節(jié)點流量預測中得到了較好的結果。循環(huán)門單元(Gated Recurrent Unit,GRU)[11]算 法 作 為LSTM的變種,在樣本數據較小的情況下具有更快的收斂速度以及較為優(yōu)秀的預測精度?;诖?,本文選擇GRU 算法,針對某市供水管網優(yōu)化調度系統(tǒng)的研究特點,預測監(jiān)測節(jié)點的用水量。
現階段對供水管網節(jié)點用水量的預測研究,多對單個節(jié)點的24 h 或者更長的歷史數據來進行分析擬合,以推斷下一天該節(jié)點的用水量[12-13]。這種方法對于單個節(jié)點的分析固然準確,但模型的泛化能力較差性,缺乏普適性。
因此,本文從多個監(jiān)測節(jié)點的流量數據入手,以類似局部加權線性回歸的思路優(yōu)化GRU 網絡,進行基于多節(jié)點的流量預測研究,并利用某市供水管網監(jiān)測平臺2020 年9 月1 日至7 日的4 個監(jiān)測節(jié)點流量數據進行驗證,對比優(yōu)化前后的結果。
循環(huán)門單元(GRU)算法是LSTM 算法的一種變體,由于簡化了控制門的結構,使得其在數據量相對較小的情況下,具有更快的模型收斂速度。
如圖1 所示,不同于LSTM,GRU 模型只有重置門rt與更新門zt,其激活函數為Sigmod。前者用于控制來自前一狀態(tài)的ht-1,將其保留到ht上;后者用于將來自前一狀態(tài)的ht-1部分信息量載入當前狀態(tài)。具體的計算方式如下:
圖1 t-1 狀態(tài)下的GRU 網絡示意圖Fig.1 Diagram of GRU network in t-1 state
式中,Wr,Wz,Wh為輸入至隱含層神經元的權值,Wo為輸出層的權值,yt為當前狀態(tài)下輸出層的真實輸出,ht為當前狀態(tài)下傳遞至下一狀態(tài)的輸出,即RNN 中的隱藏狀態(tài)。
本文采用單層的GRU 網絡模型進行流量預測,其架構如圖2 所示。
圖2 單層GRU 網絡模型結構Fig.2 Single-layer GRU network structure
分析公式(1)~(3)發(fā)現,對于當前的輸入[ht-1,Xt],GRU 網絡中的權值Wr,Wz,Wh的更新規(guī)則以預測網絡的損失函數為基礎,平等對待24 小時的流量數據,忽略了實際生產生活中的用水規(guī)律。針對這一問題,本文以用水流量的相似性為基礎,特化局部加權法,以優(yōu)化GRU。
顯然,流量數據ft、ft+24對應著昨天與今天同一時刻的用水流量,在實際生活中兩個時刻的相似性較高;同樣地,流量數據ft與前后一小時ft-1、ft+1的用水流量也具有很高的相似性。但受制于設備的采集間隔,連續(xù)性的流量數據被分割為間隔一小時的離散數據,極大降低了數據間的相似性,而采集間隔越短,這種相似性越高。那么,對應(ti,fti)可應用類似于局部加權線性回歸[14-15]中的權值函數計算方法。這種方法的核心思想為,越靠近中心點ti的點,獲得的權值越大,對于預測的結果影響更大;反之,離中心點越遠的點則權值越小、影響力越小。
為了提高模型的泛化能力,將三個監(jiān)測節(jié)點的流量數據作為訓練樣本,依次載入模型進行訓練,并將另外一個監(jiān)測節(jié)點的數據作為測試樣本,用于驗證模型。GRU 算法作為LSTM 算法的變種,其模型的輸入方式有著類似的模式,包括單維單步、單維多步、多維單步以及多維多步。由于多監(jiān)測節(jié)點模型的目的是提高其泛化能力,使網絡能夠適用于管網內的任一監(jiān)測節(jié)點,此處采用單維多步的模式訓練模型。訓練樣本的輸入格式為inputtrain=(f1,…,fi),i=504。建立模型的目的是預測單日節(jié)點的用水量,因此依據采樣周期,設置Timesteps=24,即用前24 小時的節(jié)點流量數據預測下一小時的流量。
本次研究采用python 編程語言,在Tensorflow、Keras 框架下構建GRU 網絡模型。將Batchsize 設置為1,隱含層的神經元數量設置為30,網絡的優(yōu)化器選擇adam 函數。所使用的數據皆取自某市供水管網監(jiān)測平臺采集的歷史數據,包含城區(qū)工作區(qū)4 個監(jiān)測節(jié)點的一周流量數據,數據采集周期為1小時。
將3 個監(jiān)測節(jié)點一周的數據作為訓練樣本,另一監(jiān)測節(jié)點數據作為測試樣本。以當前日流量數據為輸入;對應的后一天流量數據為輸出。最終,在本實驗中的輸入即為W×inputtrain;W×inputtest。
實驗結果如圖3 所示。
圖3 兩種方法的流量預測結果Fig.3 Flow forecasting results of two methods
同時給出兩種模型的均方根誤差(RMSE)、平均絕對誤差(MAE)與平均相對誤差(MAPE),見表1。
表1 兩種預測模型的均方根誤差(RMSE)、平均絕對誤差(MAE)與平均相對誤差(MAPE)Tab.1 Root mean square error,mean absolute error and mean relative error of two prediction models
RMSE、MAE 與MAPE 都表明,改進后的GRU預測模型比改進前的預測效果更好、更可靠。分析圖3 可以看出,在多數時刻,兩種方法預測結果都實際值相近。但在用水量轉折的時候,改進后的GRU 網絡的預測值在大多數情況下都比改進之前更貼近實際值。這是由于改進的GRU 網絡一定程度上放大了臨近時刻數據值的影響。不過,依舊存在部分轉折點的預測精度不夠良好,如第42、第72時刻。
預測結果的差異性以誤差頻次分布表示,給出兩種方法的預測誤差頻次分布圖如下:
觀察圖4 可以發(fā)現,改進后的GRU 網絡,在80%的時刻內,預測誤差都在-10% ~ 10%范圍內,60%以上的誤差為-5% ~ 5%。而改進前的GRU網絡的預測結果,結合圖3 分析知,在用水流量出現轉折時,預測誤差較大,如在第25、42、72 時刻,甚至出現-40%、-60%的巨大誤差,而改進后的GRU 將此誤差縮小了15%以上。也正是這些轉折處的較大預測誤差,導致了改進前模型的誤差在-10%~10%以內的頻次不及改進后的模型,表明改進后的模型對多節(jié)點訓練的流量預測準確性更高。
圖4 誤差分布直方圖Fig.4 Error distribution histogram
以流量相似性特化的局部加權回歸的權值函數優(yōu)化GRU 網絡,在一定程度上提高了供水流量的預測準確性。同時,由于采用多個節(jié)點的數據進行學習和驗證,雖然增加了訓練時間,但較好地提高了模型的泛化能力,因而對管網流量預測具有更強的現實意義。
由于本文涉及項目的供水管網監(jiān)測系統(tǒng)數據采集節(jié)點的采集周期較長(1 小時),獲取兩個相鄰時刻的流量數據變化量較大,對預測的實時性和誤差存在一定的影響。但是這個問題可以通過調整數據采集節(jié)點的采集周期改善,進一步提高本文所提模型的預測準確性和精度。