李唯特,陳 宇,于忠清
(青島大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院,山東青島266071)
為了實(shí)現(xiàn)城市供水行業(yè)的規(guī)范管理以及高效運(yùn)行,智慧供水應(yīng)運(yùn)而生。智慧供水的基礎(chǔ)是對(duì)供水量的準(zhǔn)確預(yù)測(cè)。城市供水量的短期預(yù)測(cè),目的是了解未來的供水管網(wǎng)狀況,從而進(jìn)一步指導(dǎo)各種實(shí)際的決策,如供水調(diào)度,壓力設(shè)定,以及管網(wǎng)漏損等。實(shí)現(xiàn)準(zhǔn)確的供水量預(yù)測(cè)不僅可以滿足城市的用水需求,還可以降低供水的成本。然而,影響城市供水量的因素很多,具有不確定性和強(qiáng)隨機(jī)性,其數(shù)據(jù)是非線性且非平穩(wěn)的時(shí)間序列,因此,對(duì)于城市供水量的準(zhǔn)確預(yù)測(cè)不是一件容易的事。
近年來,對(duì)于供水量預(yù)測(cè),國(guó)內(nèi)外學(xué)者進(jìn)行了大量的相關(guān)研究,主要有傳統(tǒng)預(yù)測(cè)方法(回歸分析,ARIMA)和新型預(yù)測(cè)方法(人工神經(jīng)網(wǎng)絡(luò),組合模型)等[1]。張倩等[2]建立了基于灰色預(yù)測(cè)模型和線性回歸預(yù)測(cè)的需水量組合模型,將單個(gè)模型與建立的組合模型進(jìn)行了對(duì)比,組合預(yù)測(cè)模型的誤差小很多。Murat等人[3]提出的利用ARIMA 構(gòu)建時(shí)間序列模型預(yù)測(cè)城市水的需求和供應(yīng)也得到了較好的效果,但其忽略了外部變量的影響。顧熹等人[4]提出了一種結(jié)合多變量相空間重構(gòu)和高斯過程回歸的短期負(fù)荷預(yù)測(cè)方法,該方法沒有考慮到負(fù)荷序列的多尺度特征。王亮等人[5]提出了一種基于粒子群優(yōu)化的城市日用水量預(yù)測(cè)方法,優(yōu)化后的BP 神經(jīng)網(wǎng)絡(luò)運(yùn)算速度,泛化能力以及預(yù)測(cè)精度都得到了一定的提高。Salvatore 等人[6]在不考慮其他影響因素的情況下使用不同的小波基結(jié)合人工神經(jīng)網(wǎng)絡(luò)去預(yù)測(cè)未來幾個(gè)月的用水量,結(jié)果表明通過小波分解可以提高預(yù)測(cè)精度。
為了獲得高精度和高效率的城市供水量預(yù)測(cè)模型,本文提出了一種基于小波分解結(jié)合人工蜂群算法優(yōu)化的多變量門控循環(huán)單元(WD-ABC-MGRU)模型來預(yù)測(cè)城市日供水量。該方法綜合了上述研究方法的優(yōu)點(diǎn),克服了單一方法的缺點(diǎn)和局限性,不僅考慮了供水量序列數(shù)據(jù)的不平穩(wěn)性,利用小波分解充分挖掘多尺度序列特征,還考慮了供水量強(qiáng)相關(guān)影響因素并進(jìn)行相空間重構(gòu),并且用人工蜂群優(yōu)化算法對(duì)模型的超參數(shù)進(jìn)行了優(yōu)化,使預(yù)測(cè)更加精準(zhǔn)。通過對(duì)某市供水量進(jìn)行分析預(yù)測(cè),實(shí)驗(yàn)結(jié)果表明該方法用于城市日供水量預(yù)測(cè)的有效性,具有較好的實(shí)用價(jià)值。
小波變換可以將非平穩(wěn)時(shí)間序列分解成具有不同頻域的多個(gè)子序列,小波分解與重構(gòu)是其核心。Mallat[7]提出了一種易于實(shí)現(xiàn)且計(jì)算較少的多尺度分析算法。時(shí)間序列X={xi|i=1,2,…,k}的離散小波變換函數(shù)為
式中:a和b分別決定小波伸縮和平移的幅度;Wf是特定子序列的小波系數(shù);ψ是小波基函數(shù)。
在式(1)中,Wf應(yīng)用下采樣,以使用低通濾波器LP(ψ(i))獲得第n層的近似(低頻)系數(shù)cAi,并使用高通濾波器HP(ψ(i)))獲得n層的細(xì)節(jié)(高頻)系數(shù)cDi。原始信號(hào)的計(jì)算如式(2),其中i= 1,2,…,n。
城市供水量數(shù)據(jù)有著非平穩(wěn)且隨機(jī)性強(qiáng)的特點(diǎn),利用小波分解和重構(gòu)可以將其處理為多層較為平穩(wěn)的低頻分量和高頻分量,從而能夠更好地分析供水量數(shù)據(jù)。3 層小波分解及重構(gòu)其過程見圖1。
圖1 小波分解(左)與重構(gòu)(右)示意圖Fig.1 Schematic diagram of wavelet decomposition(left)and reconstruction(right)
通過小波分解對(duì)時(shí)間序列在不同尺度上進(jìn)行分解,從而將原始時(shí)間序列X 分解成為低頻系數(shù)cAi和高頻系數(shù)cDi兩部分。然后通過系數(shù)重構(gòu)從低頻系數(shù)中得到與原始時(shí)間序列的低頻分量Ai,從高頻系數(shù)中得到原始時(shí)間序列的高頻分量Di,重構(gòu)系數(shù)后的每個(gè)分量長(zhǎng)度與原始時(shí)間序列長(zhǎng)度相同,對(duì)分量進(jìn)行相應(yīng)處理后進(jìn)行直接求和得到新的序列X,計(jì)算方法如式(3),這種方法可以提高原始時(shí)間序列數(shù)據(jù)的預(yù)測(cè)精度[8]。
ABC 算法是一種模擬蜜蜂覓食行為的優(yōu)化算法,屬于較為簡(jiǎn)單且靈活的一種群優(yōu)化算法,由Karaboga[9]于2005年提出。ABC 算法是解決復(fù)雜非線性優(yōu)化問題的有效方法,有研究證明在尋找多變量函數(shù)最值方面優(yōu)于遺傳算法、粒子群優(yōu)化算法和其他一些群優(yōu)化算法。該算法包括三種蜜蜂,第一種是雇傭蜂,與蜜源相對(duì)應(yīng)并在蜜源領(lǐng)域內(nèi)搜索。第二種是觀察蜂,通過觀察雇傭蜂的舞蹈來選擇蜜源。第三種是偵查蜂,如果蜜源多次更新沒有改進(jìn),則放棄該蜜源,雇傭蜂轉(zhuǎn)為偵查蜂隨機(jī)尋找新蜜源,其流程圖見圖2。
圖2 人工蜂群算法流程圖Fig.2 Artificial bee colony algorithm flow chart
ABC算法蜜源位置(問題初始解)可以定義為式(4)。
其中i= 1,…,N,j= 1,…,D。參數(shù)N和D分別為蜜源數(shù)量和變量數(shù)量。式(5)表示算法在xk區(qū)域中生成的新解vjk。
其中φjk和xjk代表隨機(jī)數(shù)的均勻分布和第k個(gè)參數(shù)的解集中的第j個(gè)解。在這些條件下,如果新的解適應(yīng)度更強(qiáng),它將取代之前的解。隨后,偵查蜂使用式(6)為每個(gè)蜜蜂選擇一個(gè)解決方案以及計(jì)算可能性,將從這些解中選出最合適的結(jié)果。
門控循環(huán)單元(GRU)具有循環(huán)神經(jīng)網(wǎng)絡(luò)的門控機(jī)制,由Kyunghyun Cho[10]等人于2014年提出。GRU 是長(zhǎng)短期記憶(LSTM)神經(jīng)網(wǎng)絡(luò)的變體,和LSTM 一樣,GRU 也主要用于解決典型神經(jīng)網(wǎng)絡(luò)中的“梯度消失”問題,從而改進(jìn)網(wǎng)絡(luò)中長(zhǎng)期依賴關(guān)系的學(xué)習(xí)。
GRU 層沒有獨(dú)立的存儲(chǔ)單元,也沒有單獨(dú)的遺忘門。由于GRU 的參數(shù)比LSTM 的少,設(shè)計(jì)更簡(jiǎn)單,因此GRU 是一個(gè)更輕量級(jí)的模型,訓(xùn)練更快,GRU 在某些較小且頻率較低的數(shù)據(jù)集上表現(xiàn)出更好的性能[11]。其典型的GRU單元圖見圖3。
圖3 GRU基本結(jié)構(gòu)Fig.3 Basic structure of GRU
根據(jù)式(7)和(8),rt和zt分別為重置門和更新門,激活函數(shù)σ將值壓縮到[0,1],從而獲得門控信號(hào)。對(duì)于式(9)表示當(dāng)前時(shí)刻的候選狀態(tài),由重置門rt決定,而對(duì)于式(10),ht為當(dāng)前隱藏狀態(tài),根據(jù)更新門對(duì)上一時(shí)刻隱藏狀態(tài)ht-1和當(dāng)前候選狀態(tài)來確定當(dāng)前隱藏狀態(tài)ht。更新公式同時(shí)進(jìn)行了遺忘和記憶兩個(gè)步驟,門控信號(hào)z的范圍為[0,1]。z越接近1,代表記憶下來的數(shù)據(jù)越多;而越接近0 則代表遺忘得越多。這一步操作就是忘記ht-1中的某些信息,并加入當(dāng)前時(shí)刻的某些信息。
以相關(guān)影響因素為輸入的BP 神經(jīng)網(wǎng)絡(luò)無法考慮時(shí)序變化規(guī)律,以單變量為輸入的時(shí)間序列模型效果較好,而將多種相關(guān)影響因素與時(shí)間依賴關(guān)系結(jié)合可以得到更好的模型[12]。供水量不僅受多種外部影響因素,其自身有一定的周期性,而且還存在著多尺度時(shí)序特征。針對(duì)多尺度時(shí)序特征,采用小波分解和系數(shù)重構(gòu)可以增加對(duì)時(shí)序數(shù)據(jù)細(xì)節(jié)信息的利用,提高預(yù)測(cè)精度[13]。
考慮到受多種外部因素影響,采用多變量GRU 模型(MGRU)。MGRU 模型的一些超參數(shù)可以影響模型的收斂速度和效果,比如隱藏層的神經(jīng)元個(gè)數(shù)、dropout、epochs 和batch_size等。這些參數(shù)可以通過ABC 算法來進(jìn)行優(yōu)化,優(yōu)化后得到的參數(shù)來獲得最優(yōu)的模型以獲得精確的預(yù)測(cè)結(jié)果。因此,本文提出了以一種基于小波分解的人工蜂群優(yōu)化多變量門控循環(huán)單元模型,即WD-ABC-MGRU 模型。
WD-ABC-MGRU 模型流程圖見圖4,其具體步驟如下:
圖4 WD-ABC-MGRU模型流程圖Fig.4 WD-ABC-MGRU model flow chart
步驟1:首先對(duì)日供水量數(shù)據(jù)進(jìn)行小波分解,然后對(duì)其系數(shù)重構(gòu),得到供水量數(shù)據(jù)分量;
步驟2:將供水量數(shù)據(jù)分量與其影響因素?cái)?shù)據(jù)進(jìn)行結(jié)合并根據(jù)相空間重構(gòu)做數(shù)據(jù)格式轉(zhuǎn)換處理,加載訓(xùn)練集;
步驟3:初始化蜂群算法參數(shù),確定所需要優(yōu)化的MGRU 超參數(shù)并給出搜索范圍,然后在范圍內(nèi)隨機(jī)產(chǎn)生初始解(蜜源,也就是超參數(shù)組合);
步驟4:用初始解進(jìn)行MGRU 模型訓(xùn)練,然后用訓(xùn)練集和驗(yàn)證集的均方根誤差RMSE 平均值[14]評(píng)估每個(gè)初始解的適應(yīng)度(尋找最小適應(yīng)度),計(jì)算公式如下:
式中:m,n分別為訓(xùn)練集和驗(yàn)證集樣本數(shù);ytrain,分別為訓(xùn)練集真實(shí)值和預(yù)測(cè)值;yval,分別為驗(yàn)證集真實(shí)值和預(yù)測(cè)值;
步驟5:對(duì)于每一個(gè)雇傭蜂在鄰域搜索產(chǎn)生新的解并計(jì)算適應(yīng)度,用貪婪算法:如果新的解優(yōu)于先前的解則改變,否則保留不變;
步驟6:計(jì)算蜜源的概率;
步驟7:對(duì)于每個(gè)觀察蜂按照概率選擇解,然后進(jìn)行搜索產(chǎn)生新解并計(jì)算適應(yīng)度,用貪婪算法:如果新的解優(yōu)于先前的解則改變,否則保留不變;
步驟8:判斷是否有需要放棄的解,若有,則用偵查蜂產(chǎn)生的新解來替換;
步驟9:記錄當(dāng)前最優(yōu)解(最小RMSE所對(duì)應(yīng)的MGRU 超參數(shù)組合);
步驟10:判斷是否滿足循環(huán)終止條件,若滿足,循環(huán)結(jié)束,否則返回步驟4繼續(xù)搜索;
步驟11:將各分量的預(yù)測(cè)結(jié)果求和得到最終預(yù)測(cè)的日供水量。
本文數(shù)據(jù)來自某市2017年11月至2019年12月近兩年的日供水量數(shù)據(jù),對(duì)于個(gè)別缺失數(shù)據(jù)采用均值、中位數(shù)和眾數(shù)等進(jìn)行填補(bǔ)。
根據(jù)3σ準(zhǔn)則,數(shù)值分布在(μ- 3σ,μ+ 3σ)中的概率為0.997 3,超出這個(gè)區(qū)間范圍的數(shù)據(jù)為異常值,應(yīng)對(duì)其進(jìn)行處理。本文對(duì)于供水量數(shù)據(jù)中異常數(shù)據(jù)采用3σ準(zhǔn)則進(jìn)行檢測(cè),然后采用和個(gè)別缺失數(shù)據(jù)同樣的方法進(jìn)行填補(bǔ)。最終的日供水量序列數(shù)據(jù)見圖5。
圖5 處理后的日供水量序列Fig.5 Daily water supply sequence after treatment
對(duì)于供水量預(yù)測(cè)有很多氣象影響因素,所獲取的氣象數(shù)據(jù)包括氣溫,降水量,風(fēng)速,日照時(shí)數(shù),相對(duì)濕度,氣壓等特征。供水量大小也存在節(jié)假日效應(yīng),因此供水量分析考慮是否節(jié)假日這一影響因素是有必要的。對(duì)每個(gè)樣本所屬日期判定是否為節(jié)假日,工作日設(shè)為0,周末為1,法定節(jié)假日為2。
皮爾遜相關(guān)系數(shù)是在[-1,1]范圍內(nèi)的兩個(gè)變量之間線性相關(guān)性的度量。其公式如下:r 值為正數(shù)表示正相關(guān),為負(fù)數(shù)表示負(fù)相關(guān),越接近1或-1表示線性相關(guān)性越強(qiáng),而0表示沒有線性關(guān)系。
本文采用皮爾遜相關(guān)系數(shù)評(píng)估選取相關(guān)性大的特征用于進(jìn)行預(yù)測(cè)。具體結(jié)果見圖6,最終選取最低氣溫,最高氣溫和平均氣溫以及節(jié)假日作為主要特征。由于上述數(shù)據(jù)的特征之間量綱不同,會(huì)影響分析的結(jié)果,為了消除量綱影響,對(duì)其進(jìn)行歸一化處理,處理后各數(shù)據(jù)特征處于同一量級(jí),可以提升模型的收斂速度和精度。
圖6 供水量影響因素相關(guān)系數(shù)分析Fig.6 Correlation coefficient analysis of influencing factors of water supply
小波分解需要先確定小波基函數(shù)和分解尺度,由于各個(gè)小波基函數(shù)性能不同,且其分解尺度不同,對(duì)于復(fù)雜的供水量序列選取到最佳的小波基函數(shù)和分解尺度是非常重要的。
為了降低重構(gòu)誤差對(duì)所提出方法的影響,本文選取幾種常見的小波基函數(shù)和不同的分解尺度,分別計(jì)算其重構(gòu)誤差。最終得到最佳分解效果(最小重構(gòu)誤差)所對(duì)應(yīng)的小波基函數(shù)為db2,分解層數(shù)為3。見圖7(a),為分解后得到的1 個(gè)低頻(近似)分量和3個(gè)高頻(細(xì)節(jié))分量。對(duì)這些分量進(jìn)行系數(shù)重構(gòu)[見圖7(b)],然后將其直接加和就可以得到小波分解和重構(gòu)后的供水序列。
圖7 日供水量數(shù)據(jù)經(jīng)過小波分解和系數(shù)重構(gòu)Fig.7 Daily water supply data undergoes wavelet decomposition and coefficient reconstruction
多變量供水量序列存在混沌特性,可以通過相空間重構(gòu)從數(shù)據(jù)中提取原有動(dòng)力學(xué)特性,減少信息丟失。本文通過C-C 方法對(duì)多變量供水量序列數(shù)據(jù)重構(gòu)相空間,得到嵌入維數(shù)n為7,延遲時(shí)間τ為1。對(duì)于不同的模型,其輸入數(shù)據(jù)格式不同,需要將全市日供水量數(shù)據(jù)和上述分析所選取的影響因素進(jìn)行數(shù)據(jù)格式轉(zhuǎn)換,將數(shù)據(jù)集轉(zhuǎn)化為監(jiān)督學(xué)習(xí)數(shù)據(jù)集,處理后的格式見表1。
表1 數(shù)據(jù)格式轉(zhuǎn)換Tab.1 Data format conversion
表1 中將其格式轉(zhuǎn)換后的數(shù)據(jù)按照6∶2∶2 劃分為訓(xùn)練集,驗(yàn)證集,測(cè)試集。
經(jīng)過多次實(shí)驗(yàn)結(jié)果對(duì)比分析,MGRU 模型考慮了多變量的影響因素,效果比GRU 模型效果好,而WD-MGRU 不僅考慮了多變量因素并進(jìn)行相空間重構(gòu),又考慮了供水量數(shù)據(jù)中的多尺度序列結(jié)構(gòu)特征,其效果優(yōu)于MGRU。過程中發(fā)現(xiàn)WD-MGRU層數(shù)為3 時(shí)結(jié)果較好,故MGRU 層數(shù)設(shè)置為3,然后通過1.4 中所介紹的WD-ABC-MGRU 算法模型對(duì)其超參數(shù)進(jìn)行優(yōu)化,具體結(jié)果見表2,其中unitsi為第i個(gè)MGRU 層的神經(jīng)元個(gè)數(shù),batch_size為一次訓(xùn)練的樣本數(shù),epochs為數(shù)據(jù)集參與訓(xùn)練的次數(shù),dropout為單元的丟棄比例,lr為學(xué)習(xí)率。
表2 WD-ABC-MGRU模型超參數(shù)搜索范圍和結(jié)果Tab.2 WD-ABC-MGRU model hyperparameter search range and results
為了驗(yàn)證該模型對(duì)城市供水量預(yù)測(cè)的優(yōu)勢(shì)性,使用上表中優(yōu)化后的超參數(shù)對(duì)相空間重構(gòu)后的各供水量分量(A3,D1,D2,D3)進(jìn)行預(yù)測(cè),其結(jié)果加和得到預(yù)測(cè)的供水量。將最終的WDABC-MGRU 模型與GRU,MGRU,WD-MGRU,WD-ABC-BP 模型結(jié)果進(jìn)行對(duì)比評(píng)估,其測(cè)試集對(duì)應(yīng)的真實(shí)值和預(yù)測(cè)值對(duì)比見圖8。
圖8 5種模型真實(shí)值和預(yù)測(cè)值對(duì)比Fig.8 Comparison of the true and predicted values of the five models
以上5種模型的模型評(píng)估結(jié)果見表3。
表3 五種模型評(píng)估指標(biāo)對(duì)比Tab.3 Comparison of evaluation indicators of four models
通過以上分析,WD-ABC-MGRU 模型預(yù)測(cè)結(jié)果的各項(xiàng)評(píng)估指標(biāo)都優(yōu)于其他模型,其RMSE和MAPE僅為GRU 的30%左右,R2達(dá)到0.87,供水量數(shù)據(jù)的擬合程度最優(yōu),預(yù)測(cè)效果最好。
GRU 模型雖然可以解決梯度消失和梯度爆炸的問題,由于只考慮了供水量時(shí)間序列,沒能考慮其他相關(guān)影響因素對(duì)供水量的影響,所以預(yù)測(cè)值與真實(shí)值相差較大。而對(duì)于MGRU 考慮了多種相關(guān)影響因素,采用多變量時(shí)間序列降低了一定的誤差。WD-MGRU 因?yàn)閷?duì)供水量序列進(jìn)行了多尺度分解,充分挖掘了供水量序列的不同尺度的特征,誤差得到了進(jìn)一步的降低。WD-ABC-BP 雖然考慮了多尺度分解并進(jìn)行參數(shù)尋優(yōu),但是沒有考慮供水量數(shù)據(jù)存在的時(shí)序特征。WD-ABC-MGRU 模型結(jié)合了以上模型的優(yōu)點(diǎn),不僅解決了神經(jīng)網(wǎng)絡(luò)中出現(xiàn)的梯度消失和梯度爆炸的問題,還考慮了其他多種相關(guān)影響因素的時(shí)間序列,再加上用ABC優(yōu)化算法對(duì)WD-MGRU 中的MGRU超參數(shù)進(jìn)行尋優(yōu),得到了更好預(yù)測(cè)效果的模型,且有較高的可靠性。
本文提出了基于小波分解的人工蜂群優(yōu)化多變量門控循環(huán)單元模型(WD-ABC-MGRU),對(duì)日供水量進(jìn)行模擬預(yù)測(cè)實(shí)驗(yàn)。首先采用皮爾遜相關(guān)系數(shù)進(jìn)行分析,確定了與日供水量有較強(qiáng)相關(guān)性的影響因素。然后使用db2小波對(duì)日供水量進(jìn)行分解與重構(gòu),其分解尺度為3 時(shí),重構(gòu)誤差最小,保證實(shí)驗(yàn)的有效性的前提下,挖掘出了日供水量不同尺度的特征。將小波分解后的日供水量分量與其他影響因素結(jié)合并進(jìn)行相空間重構(gòu),作為MGRU 的輸入,再用ABC 優(yōu)化算法對(duì)MGRU 的超參數(shù)進(jìn)行尋優(yōu),得到更好預(yù)測(cè)效果的模型。WD-ABC-MGRU 結(jié)合了多尺度多變量和自動(dòng)化調(diào)參的優(yōu)點(diǎn),結(jié)果表明其模型預(yù)測(cè)效果比GRU,MGRU,WD-MGRU,WD-ABC-BP 更好,對(duì)日供水量預(yù)測(cè)精度更高,可以更好地對(duì)水廠決策進(jìn)行指導(dǎo)。然而實(shí)驗(yàn)僅用了一個(gè)地方的供水量數(shù)據(jù),研究結(jié)論是否通用仍需大量實(shí)驗(yàn)驗(yàn)證。因此,在以后的研究中,還需要應(yīng)用于更多場(chǎng)景,以驗(yàn)證方法的通用性?!?/p>