趙和松 ,王圓圓 ,趙 齊
(1. 水利部信息中心,北京 100053;2. 北京金水信息技術(shù)發(fā)展有限公司,北京 100053;3. 河海大學計算機與信息學院,江蘇 南京 211100)
水是人類維持地球生命質(zhì)量的基本需要和必要條件之一,由于人口急劇增加、技術(shù)進步及經(jīng)濟增長,水的不平衡和不受管理的使用使其稀缺,使水資源供需矛盾日益加劇[1]。目前,部分地區(qū)水資源的供應量已不能滿足人口增長和工農(nóng)業(yè)發(fā)展的需求,嚴重阻礙地區(qū)的社會和經(jīng)濟效益,因此,對水資源進行合理規(guī)劃和調(diào)度已經(jīng)迫在眉睫。用水總量預測工作是在當今水資源嚴峻形勢下,對水資源合理分配、調(diào)度及分析估量的重要舉措[2]。用水總量預測有多種用途,如規(guī)劃城市新發(fā)展或排水系統(tǒng)的擴建、抽水站及水管規(guī)模的運作和城市水資源管理的規(guī)劃[3]。合理化的用水總量預測可以改善用水片區(qū)的用水管理,為輸水系統(tǒng)設計、現(xiàn)代化開發(fā)提供參考數(shù)據(jù)[4]。
傳統(tǒng)的用水總量預測是基于已知的連續(xù)性的用水時間序列,從中挖掘當前用水量與歷史用水量之間的線性關(guān)系進行用水總量預測的。然而用水總量受人口、灌溉面積等影響因素的控制,用單一的歷史用水量數(shù)據(jù)去預測當前用水量數(shù)據(jù)顯然是不太準確的,因此,尋找當前各用水量因子與用水總量之間的關(guān)系值得研究。
常用的用水總量預測方法有指標分析法、時間序列法、回歸分析法,以及灰色系統(tǒng)及神經(jīng)網(wǎng)絡模型。劉呈玲等[5]用時差相關(guān)分析法篩選出影響用水因子,再建立多元回歸模型預測用水總量。達瓦等[6]應用灰色系統(tǒng)理論建立用水預測模型,分析區(qū)域未來用水總量。然而這些預測效果都不太明顯。近年來,用神經(jīng)網(wǎng)絡進行用水總量預測使預測精度有了很大的提高。占敏等[7]選擇日用水量、最高溫度等 5 個預測指標,構(gòu)建了基于 BP 神經(jīng)網(wǎng)絡的用水總量預測模型,并利用貝葉斯正則化對 BP 神經(jīng) 網(wǎng)絡進行優(yōu)化,使其符合用水總量預測的高精度要求。高學平等[8]采用組合降維算法 PCA(主成分分析)和 RBF 神經(jīng)網(wǎng)絡進行用水總量預測,預測能力較好。然而,用水總量因子數(shù)據(jù)具有非線性、復雜性、不確定等特點,采用神經(jīng)網(wǎng)絡進行線性降維雖然能去除冗余信息,但也會丟失一些有用的信息。
PCA 適合處理高維線性且在同一平面內(nèi)的數(shù)據(jù),對于非線性數(shù)據(jù)降維效果較差。PCA 中加入核函數(shù)可以很好地對高維特征空間上的非線性數(shù)據(jù)進行主成分分析,即形成 KPCA(核主成分分析),可很好地解決數(shù)據(jù)之間的非線性特征,消除冗余信息對預測造成的干擾,同時結(jié)合調(diào)優(yōu)后的神經(jīng)網(wǎng)絡整體提高用水總量預測的精度。為此,針對影響用水總量的相關(guān)用水因子的不確定性和非線性多維特點,提出一種融合 KPCA 和思維優(yōu)化 BP 神經(jīng)網(wǎng)絡的用水總量預測方法(以下簡稱融合 KPCA-BP 用水總量預測方法),建立 KPCA-BP 用水總量預測模型。
KPCA-BP 用水總量預測模型建立過程如圖1 所示。
圖1 KPCA-BP 用水總量預測模型建立過程
本方法使用的數(shù)據(jù)來源于國家統(tǒng)計局官方網(wǎng)站年度地區(qū)分省數(shù)據(jù)集,該數(shù)據(jù)集是每個省級行政區(qū)域的文本格式用水總量相關(guān)數(shù)據(jù),每個省都有用水總量相關(guān)的因子及數(shù)據(jù)。選取其中可用的 2007—2016 年 31 個省、自治區(qū)、直轄市每年的,國內(nèi)生產(chǎn)總值 GDP、農(nóng)業(yè)增加值、糧食產(chǎn)量、有效灌溉面積、工業(yè)增加值、規(guī)模以上工業(yè)企業(yè)產(chǎn)成品、水產(chǎn)品總產(chǎn)量、城市污水日處理能力、城鎮(zhèn)生活污水排放量、廢水排放量、火力發(fā)電量、城市綠地面積、水產(chǎn)品養(yǎng)殖面積、生活用水總量、農(nóng)業(yè)用水總量、用水人口、漁業(yè)增加值、工業(yè)用水、糧食產(chǎn)量、生態(tài)用水、企業(yè)所得稅總額和個人所得稅總額等 22 個直接或間接影響用水總量的數(shù)據(jù)因子作為研究數(shù)據(jù)集,共 279 組數(shù)據(jù)樣本。
數(shù)據(jù)預處理包含用水因子相關(guān)性計算和核主成分分析 2 個部分。用水總量與多個用水因子有關(guān),無關(guān)因子的輸入會對模型的訓練造成干擾,提前找出與用水總量相關(guān)性較大的因子能夠提高模型預測精度。皮爾遜相關(guān)系數(shù)是度量因子相關(guān)性的常用方法,又叫作皮爾遜積矩相關(guān)系數(shù),用于計算待處理數(shù)據(jù)與歷史數(shù)據(jù)之間的線性相關(guān)程度。收集用水因子和總量數(shù)據(jù)后,皮爾遜相關(guān)系數(shù)R(x,y)[9]在用水場景下的計算公式如下:
式中:xi是第i個用水因子的樣本值大小;是用水因子x的均值;y是用水總量實測值的大??;y是實測值的均值。
影響用水量多少的因素很多,用水量的多少由多個因子共同影響,去掉與用水無關(guān)的因子后仍然有數(shù)據(jù)維度較高的問題,如果把所有的相關(guān)因子直接輸入模型中,那么各因子之間存在的多重共線性可能會導致解的空間不穩(wěn)定,輸入后續(xù)網(wǎng)絡中進行訓練時存在模型泛化能力較弱的問題,因此在對因子相關(guān)性計算后需要對這些因子進行降維處理。使用 KPCA 可以有效解決非線性數(shù)據(jù)的降維問題[10]。KPCA 是 PCA 的變體,PCA 降維是通過坐標軸的線性變化實現(xiàn)的,同維的映射只是改變方向,數(shù)據(jù)映射后仍然為直線。而 KPCA 對坐標軸進行了非線性變換,數(shù)據(jù)映射后是曲線或曲面。KPCA 可以刪除輸入因子中互相重復的信息,使用較少的因子代表較多的信息,若輸入因子為P=(P1,P2,…,Pn),經(jīng)過 KPCA 得到的因子為Q=(Q1,Q2,…,Qm),其中m為新生成的因子數(shù),n為原輸入因子的個數(shù),則P與Q的關(guān)系如下:
式 (2) 中的α為預設的常數(shù),選擇合適的α使得P的各因子互不相關(guān),同時因子Q的主要信息都集中到P的因子中,因此可以使用因子Q代表因子P。α的計算使用原始變量的相關(guān)系數(shù)矩陣進行計算,在數(shù)值上為對應的系數(shù)矩陣特征向量組合。
KPCA 的實質(zhì)就是用較少的變量覆蓋全部數(shù)據(jù)的非線性信息,從而提高數(shù)據(jù)的質(zhì)量,減少計算成本。根據(jù)計算用水因子的貢獻率大小,排序選擇出包含大部分預測信息的新因子用作預測模型的輸入,這樣可以在保證用水信息不丟失的情況下減少網(wǎng)絡訓練時間,提高模型性能。
KPCA 降維計算的一般步驟如下:
1)求核矩陣 K。對于各用水因子樣本 x1,x2,…,xn,使用非線性映射函數(shù) Φ 映射到更高維的特征空間 Г 中,特征空間中重構(gòu)變量的內(nèi)積可以用核函數(shù)描述,核函數(shù)公式如下:
式中:xi是第 i 個樣本的所有列;xj是第 j 個樣本的所有列;核矩陣 K 由訓練集構(gòu)造。
2)將核矩陣 K 中心化,以修正核矩陣,得到中心化的核矩陣 Kc:
式中:LN是 N×N 的矩陣,每一個元素是 1/N。
3)計算核矩陣 Kc的特征值 λ1,…,λn,特征向量 ν1,…,νn,將特征值降序排列并相應調(diào)整特征向量的順序。
4)計算各特征值的累計貢獻率 r1,…,rn,根據(jù)給定的貢獻率閾值 p,如果某特征值的累計貢獻率 rt> p,則選取前 t 個分量作為降維后用水因子的數(shù)據(jù)。
BP 神經(jīng)網(wǎng)絡是一種多層的誤差反向傳播神經(jīng)網(wǎng)絡,具有輸入層、隱藏層和輸出層 3 層網(wǎng)絡結(jié)構(gòu),3 層前饋網(wǎng)絡能以任意精度逼近任意連續(xù)非線性函數(shù)[11]。相鄰的各層通過 1 個權(quán)重值完全連接,同一層中的各單元互不連接。1 個神經(jīng)元有 n 個輸入,每個輸入按權(quán)重 w 與下一層相連。輸入層的數(shù)據(jù)通過隱藏層傳播到輸出層。誤差反向傳播,修改各層權(quán)重,使誤差最小。BP 神經(jīng)網(wǎng)絡結(jié)構(gòu)如圖2 所示,圖中 x1,x2,…,xn為輸入的因子值,wij和 wjk為權(quán)值,y1,y2,…,ym為輸出的預測用水值。
圖2 BP 神經(jīng)網(wǎng)絡的結(jié)構(gòu)
如果 BP 神經(jīng)網(wǎng)絡隱含層和節(jié)點足夠多,可以看作是非線性映射關(guān)系,但是隱含層和節(jié)點數(shù)量過多,對資源的消耗也就越多,因此確定隱含層和節(jié)點的數(shù)量是建立網(wǎng)絡模型的關(guān)鍵。另一方面,尋找最優(yōu)權(quán)值和閾值,能夠提高 BP 神經(jīng)網(wǎng)絡的預測精準度,因此本研究采用思維優(yōu)化算法輸出最優(yōu)個體訓練優(yōu)化 BP 神經(jīng)網(wǎng)絡權(quán)值及閾值[12]。
思維優(yōu)化算法(MEA)是由遺傳算法演變而來的,是遺傳算法的一種,具有趨同和異化 2 個算子,通過迭代學習使每一代所有個體成為一個群體,在初始階段,MEA 的收斂速度非???,MEA最強大的一點是它的正反饋和負反饋機制。正反饋機制指下一代所有個體與當前子群體的贏家之間的關(guān)系,所有子群體都根據(jù)社會和當前子群體的信息更新自己的行為,正反饋機制使種群朝著易于生存的方向發(fā)展;負反饋機制是指公告板上的信息不斷更新,舊信息逐漸被新信息取代,從而消失,負反饋機制使 MEA 避免陷入局部最優(yōu)。MEA 的全局尋優(yōu)能力能夠很好地找出用水量預測的最優(yōu)解,同時,MEA 在改善神經(jīng)網(wǎng)絡的收斂速度和提升模型精度方面也有較好的效果[13]。
MEA 優(yōu)化 BP 神經(jīng)網(wǎng)絡的步驟如下:
1)確定 BP 神經(jīng)網(wǎng)絡的拓撲結(jié)構(gòu)。初始化輸入層、隱含層和輸出層的節(jié)點數(shù),本研究 BP 神經(jīng)網(wǎng)絡拓撲結(jié)構(gòu)為 3-12-1,輸入訓練集和測試集,獲取最優(yōu)權(quán)值和閾值。
2)設計函數(shù)產(chǎn)生初始種群、優(yōu)勝和臨時子群體大小。
3)求個體和種群的得分值。本研究個體和種群的得分函數(shù)用訓練集的均方差的倒數(shù)表示,即
式中: yi為第 i 個訓練樣本的網(wǎng)絡輸出值;Yi為第 i 個樣本的目標輸出;S 為訓練樣本數(shù)量。
4)不斷迭代,輸出當前迭代獲得的最佳個體及得分,把最優(yōu)個體作為 BP 神經(jīng)網(wǎng)絡的初始權(quán)值和閾值,訓練模型,用得到的權(quán)值和閾值訓練 BP 神經(jīng)網(wǎng)絡模型。
為衡量使用 KPCA 和思維優(yōu)化 BP 神經(jīng)網(wǎng)絡組合預測用水總量方法的準確性,將預測的用水量與實際值進行比較,評價標準采用相對誤差表示:
式中:δ 為相對誤差;Y 為用水總量真實值;yw為網(wǎng)絡預測值。
根據(jù)用水總量的特點及影響因素,同時為避免與用水總量相關(guān)性較小的因子對預測結(jié)果的影響,使用皮爾遜相關(guān)系數(shù) R(x,y)進行預測因子與用水總量之間的相關(guān)性度量,R(x,y)可以直觀展示變量之間的相關(guān)性程度。R(x,y)> 0. 4 表示為中等以上相關(guān),因此為準確預測,本研究選擇 12 個 R(x,y)> 0.5 的因子作為用水總量預測因子,結(jié)果如表1 所示,從表1 可看出,與用水總量直接相關(guān)的主要是工業(yè)和農(nóng)業(yè)用水及有效灌溉面積。
表1 用水因子相關(guān)性結(jié)果
用水總量受多個因子影響,由于多個因子數(shù)據(jù)的量綱不同,為精確預測,需要消除量綱不同造成的預測不準確問題。因此,在做核主成分分析前需要將用水數(shù)據(jù)進行離差標準化處理,使因子數(shù)據(jù)處在 [0,1] 之間,離差標準化的計算公式為
式中:x' 為離差標準化數(shù)據(jù);xmin,xmax分別為用水因子序列的最小值和最大值。
進行用水數(shù)據(jù)集離差標準化后,需要計算相應的核矩陣滿足中心化條件。在符合處理非線性數(shù)據(jù)的核函數(shù)中,徑向基函數(shù)核是較為常用的方法,有參數(shù)少、性能穩(wěn)定等優(yōu)點,通過對比試驗證明使用徑向基函數(shù)作為核函數(shù)模型的準確性最高,因此本研究采用徑向基函數(shù)為 KPCA 的核函數(shù)。主成分對應的累計貢獻率結(jié)果如表2 所示,經(jīng)過計算,當累計貢獻率達到 90% 以上時,主成分個數(shù)為 3 個,基本能代表用水因子的全部信息。這 3 個主成分組成的列向量作為后面 BP 神經(jīng)網(wǎng)絡預測模型的輸入。
表2 主成分分析結(jié)果 %
采用國家統(tǒng)計局 2007—2016 年度開放統(tǒng)計用水數(shù)據(jù)進行實驗,其中 2007—2015 年共 248 組數(shù)據(jù)作為訓練樣本,2016 年 31 組數(shù)據(jù)作為測試樣本。經(jīng)過實驗,BP 神經(jīng)網(wǎng)絡設計為具有輸入層、隱含層和輸出層的 3 層網(wǎng)絡結(jié)構(gòu),輸入節(jié)點為 3 個,隱含節(jié)點為 12 個,輸出節(jié)點為 1 個。經(jīng)實驗,在思維優(yōu)化算法中,當種群數(shù)量為 100 個,優(yōu)勝和臨時子種群各為 6 個時,在算法迭代訓練 100 次后,網(wǎng)絡最終達到最優(yōu)。圖3 為 2016 年全國 31 個省、自治區(qū)和直轄市的用水總量預測結(jié)果,從圖中可以看出:絕大部分預測數(shù)據(jù)與原始數(shù)據(jù)偏差較小,預測較為準確,證明該模型能夠很好地適用于預測用水總量,具有較高的實用性和可用性。
圖3 用水總量預測結(jié)果圖
為驗證 KPCA-BP 用水總量模型的優(yōu)越性,通過對數(shù)據(jù)非線性結(jié)構(gòu)特點分析,將基于 PCA 與 KPCA 和思維優(yōu)化 BP 神經(jīng)網(wǎng)絡預測模型用相對誤差評價方法分別進行比較,不同降維方式下不同省份用水總量預測結(jié)果的比較如表3 所示。從表3 可以看出:對于非線性的用水總量數(shù)據(jù),雖然相對誤差都小于 10%,但是用 KPCA 降維后,預測結(jié)果比用 PCA 降維的預測結(jié)果要好。PCA 雖然也降低了數(shù)據(jù)的維度,但它是線性變換的,對于非線性的數(shù)據(jù),會損失原始數(shù)據(jù)因子的有用信息,降低最終預測的準確率,而 KPCA 克服了因子之間的非線性、復雜性和不確定性,因此預測結(jié)果好。
表3 不同降維方式下用水總量預測結(jié)果比較
本研究提出了融合 KPCA-BP 用水總量預測方法,旨在解決影響用水總量的相關(guān)用水因子數(shù)量多、不確定性和非線性多維等問題,經(jīng)實驗表明本研究中的 KPCA 可以很好地解決因子之間的非線性特征,消除冗余信息造成的干擾,采用思維優(yōu)化學習算法優(yōu)化 BP 神經(jīng)網(wǎng)絡的權(quán)值和閾值建立基于 BP 神經(jīng)網(wǎng)絡的預測模型,可以進一步提高模型對用水總量預測的精度。結(jié)果證明 KPCA-BP 用水總量預測模型可以很好地預測用水,相對預測誤差小于 5%。相較于現(xiàn)有工作,本研究在數(shù)據(jù)細化處理、算法優(yōu)化方面有一定的創(chuàng)新性,在使用真實數(shù)據(jù)的測試中也取得較好的預測效果,有較高的實用性。本研究也會進一步探討其他深度學習方法在用水總量預測上的應用,并為水資源合理分配、調(diào)度及分析估量指明方向。