本發(fā)明涉及一種基于深度學習算法與混合整數(shù)線性規(guī)劃相結(jié)合的水質(zhì)波動區(qū)間預測方法,屬于水環(huán)境保護與監(jiān)測研究領域。
背景技術(shù):
水是生命之源,人類在生活和生產(chǎn)活動中都離不開水。隨著我國經(jīng)濟快速發(fā)展、人口的膨脹以及河流湖泊的自凈能力下降,我國江河湖泊普遍遭受不同程度污染,全國75%的湖泊出現(xiàn)了不同程度的富營養(yǎng)化。水污染降低了水體的使用功能,加劇了水資源短缺,對我國可持續(xù)發(fā)展戰(zhàn)略的實施帶來了負面影響。根據(jù)水質(zhì)監(jiān)測歷史數(shù)據(jù),建立水質(zhì)預測模型,準確地預測水體中污染物濃度隨時間發(fā)展變化的趨勢,不僅可以實現(xiàn)對水質(zhì)的實時分析評價、預警,而且可以有效控制和減少水質(zhì)惡化造成的危害,達到對水質(zhì)惡化的有效認知、控制的目標,使整個水系的安全保障體系進入良性循環(huán)。及時有效的水質(zhì)預測可以為水質(zhì)預警提供可靠的評價及預警依據(jù),是水環(huán)境管理和污染控制的基礎工作,也是近年來水環(huán)境保護和監(jiān)測科學領域的研究熱點之一。
水環(huán)境系統(tǒng)是一個受到生物、化學、物理、人為等多種因素影響的復雜系統(tǒng),水質(zhì)隨時間非線性地變化,因此以傳統(tǒng)方法很難建立一個精確的水質(zhì)預測模型。然而,在一些局部水環(huán)境系統(tǒng)中,長期來看水質(zhì)的變化是緩慢的、有規(guī)律可循的。另外,由于水質(zhì)變化具有一定的隨機不確定性,在實際應用中一定置信度下的區(qū)間預測能夠提供有關(guān)不確定性的重要信息,有助于確定水質(zhì)預測結(jié)果的可信度。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的在于針對現(xiàn)有技術(shù)的不足,提供一種水質(zhì)波動區(qū)間預測方法,基于水質(zhì)指標的歷史時間序列數(shù)據(jù),用深度學習和混合整數(shù)線性規(guī)劃相結(jié)合的方法,對水質(zhì)指標進行一定置信度下的精細的區(qū)間預測,從準確性和波動性兩個角度進行預測。
本發(fā)明的目的是通過以下技術(shù)方案來實現(xiàn)的:一種基于深度學習算法與混合整數(shù)線性規(guī)劃相結(jié)合的水質(zhì)波動區(qū)間預測方法,該方法包括以下步驟:
(1)對水質(zhì)歷史數(shù)據(jù)進行預處理:修補缺失的歷史數(shù)據(jù),并進行歸一化處理;將預處理后的數(shù)據(jù)分成相互獨立的訓練集和驗證集;
(2)利用步驟(1)中經(jīng)過預處理后的訓練集的水質(zhì)數(shù)據(jù)時間序列,進行基于深度學習lstm(longshort-termmemory)模型的點預測建模,得到點預測模型;
(3)基于步驟(2)的點預測模型,利用步驟(1)中經(jīng)過預處理后的驗證集構(gòu)造關(guān)于置信度c的基于混合整數(shù)線性規(guī)劃的區(qū)間預測通用模型,通用模型的目標為最小化區(qū)間預測的平均相對區(qū)間寬度,目標函數(shù)如下:
其中u(valid_pij)和l(valid_pij)為最優(yōu)預測區(qū)間的上下邊界,valid_pij為lstm點預測值,valid_rij為真實值,n是驗證集中的樣本數(shù)量;
約束條件如下:
u(valid_pij)=valid_pij×αj
l(valid_pij)=valid_pij×βj,
l(valid_pij)=valid_rij+valid_rij×μi,1-valid_rij×μi,2
u(valid_pij)=valid_rij+valid_rij×μi,3-valid_rij×μi,4
0≤μi,1≤ii,1
0≤μi,2≤ii,2
ii,1+ii,2=1
0≤μi,3≤ii,3
0≤μi,4≤ii,4
ii,3+ii,4=1
其中αj和βj為在當前時刻t后的第j個時刻的最優(yōu)預測區(qū)間的上下邊界比例系數(shù),滿足αj>0,βj>0,αj>βj;μi,1,μi,2,μi,3,μi,4為連續(xù)型變量,ii,1,ii,2,ii,3,ii,4為bool型變量;
求解得到最優(yōu)預測區(qū)間的上下邊界比例系數(shù)αj和βj;
(4)基于步驟(2)得到的點預測模型和步驟(3)得到的最優(yōu)預測區(qū)間的上下邊界比例系數(shù),求得未來時刻的水質(zhì)波動的區(qū)間預測值。
進一步地,所述步驟(2)中,建立的點預測模型包含多隱含層、relu激活函數(shù)和dropout機制;并基于驗證集確定最優(yōu)的隱含層節(jié)點參數(shù)、dropout比例、相關(guān)前置影響參數(shù)。
本發(fā)明的有益效果是:基于水質(zhì)指標的歷史時間序列數(shù)據(jù),用深度學習和混合整數(shù)線性規(guī)劃的方法對水質(zhì)進行區(qū)間預測,不僅可以為水質(zhì)預警提供可靠的評價及預警依據(jù),而且可以促進整個水系的安全保障體系進入良性循環(huán)。本發(fā)明提出的方法集成了lstm時間序列預測方法的優(yōu)勢,同時通過混合整數(shù)線性規(guī)劃方法彌補了lstm確定性預測方法的劣勢,此外最優(yōu)區(qū)間預測的混合整數(shù)線性規(guī)劃方法在求解上避免了智能尋優(yōu)算法易陷入局部最優(yōu)解的問題。
附圖說明
圖1為本發(fā)明方法整體流程框圖;
圖2為雙隱含層的lstm時間序列點預測模型架構(gòu);
圖3為水質(zhì)指標部分測試樣本的區(qū)間預測結(jié)果。
具體實施方式
下面結(jié)合附圖和具體實施例對本發(fā)明作進一步詳細說明。
基于深度學習算法與混合整數(shù)線性規(guī)劃相結(jié)合的水質(zhì)波動區(qū)間預測方法的整體流程框圖如圖1所示,具體包括以下步驟:
步驟一、水質(zhì)指標的歷史數(shù)據(jù)預處理
水質(zhì)指標的預測屬于時間序列預測問題,任何一個時間點的數(shù)據(jù)缺失都會在一定程度上影響整體預測的準確性,故有必要將水質(zhì)監(jiān)測歷史數(shù)據(jù)補全。根據(jù)缺失點前后的已知數(shù)據(jù),用最小二乘的方法構(gòu)造擬合多項式,再根據(jù)這個多項式進行水質(zhì)指標歷史數(shù)據(jù)缺失值的補充。
在深度學習的模型訓練中,一般會進行輸入數(shù)據(jù)的歸一化處理,以消除樣本幅值對模型訓練的不利影響。采取如下的歸一化處理辦法,將輸入數(shù)據(jù)映射到[0,1]區(qū)間:
其中x是樣本生數(shù)據(jù),xmax和xmin分別為樣本生數(shù)據(jù)的最大值和最小值,yp為x歸一化處理后的數(shù)據(jù)。
步驟二、lstm時間序列點預測方法
首先進行數(shù)據(jù)集劃分。本實施例中以采用ph值、do、codmn和nh3-n四種水質(zhì)指標為例,但不僅限于這四種水質(zhì)指標。分別將ph值、do、codmn和nh3-n四種主要水質(zhì)指標的歷史時間序列數(shù)據(jù),按60%、30%、10%劃分為獨立的訓練集、驗證集和測試集,如圖1所示,其中測試集用于驗證本發(fā)明方法的有效性。
假設當前時刻t下,已知量為y1,…,yt,需要預測未來t+1,…,t+m共計m時刻的值yt+1,…,yt+m。假設未來m個時刻的水質(zhì)指標與其最臨近的d個時刻的已知水質(zhì)指標密切相關(guān),構(gòu)造訓練樣本數(shù)據(jù)集xtrain{yk-m-d+1,…,yk-m}→ytrain{yk-m+1,…,yk},k=t,…,m+d,將樣本數(shù)據(jù)集中的{yk-m-d+1,…,yk-m}作為輸入,送入lstm網(wǎng)絡,{yk-m+1,…,yk}作為網(wǎng)絡模型理想輸出的參照值。故可以確定,lstm網(wǎng)絡的輸入層節(jié)點數(shù)為d個,輸出層節(jié)點數(shù)為m個。
雙隱含層的lstm時間序列點預測模型架構(gòu)如圖2所示。本實施例中采用了近似生物神經(jīng)激活函數(shù)relu和隨機丟棄機制dropout。激活函數(shù)relu模型曲線的變化特點:單側(cè)抑制,相對寬闊的興奮邊界,稀疏激活性。很多研究使用非線性激活函數(shù)relu代替常用的非線性激活函數(shù),如sigmoid,顯示出遙遙領先的優(yōu)勢,主要表現(xiàn)在后者在訓練深度結(jié)構(gòu)模型時,容易趨于飽和態(tài),降低訓練速度,同時relu還能生成非常稀疏的激活輸出向量,因而能有效減少計算開銷。dropout是最近幾年提出的防止模型過擬合的技術(shù),其主要思想是在訓練和預測時隨機減少特征個數(shù),即去掉輸入數(shù)據(jù)中的某些維度,通過設置dropout中的參數(shù)p,在訓練和預測模型的時候,每次更新都會丟掉(總數(shù)*p)個特征。在圖2中,被打叉的節(jié)點就是被丟棄的。dropout的作用機理:通過隨機選擇忽略輸入特征,使得每次訓練的都是不同的模型;此外,輸入特征都是以一定概率隨機選出,因此不能保證每兩個輸入特征每次都同時出現(xiàn),這樣權(quán)重的更新不再依賴于有固定關(guān)系輸入特征的共同作用,避免了某些特征僅僅在其它特定輸入特征組合下才有效果的情況,從機制上避免了過擬合現(xiàn)象。
lstm模型以預測值和真實值的均方誤差作為損失參數(shù),以損失參數(shù)最小為優(yōu)化目標來更新模型的各部分權(quán)值。因此,為了判斷具有不同隱含層參數(shù)以及不同前置影響參數(shù)d的lstm模型的預測效果,針對驗證集,定義所有時刻點的平均預測偏差
其中n是驗證集中的樣本數(shù)量,valid_pij和valid_rij是驗證樣本yvalid-i中的第j(j=1,…,m)個分量的預測值和真實值??梢?,loss值越大,預測值和真實值的偏差越大,預測效果也越差;loss值越小,預測效果也就越好。
lstm時間序列點預測模型在theano為后端的keras平臺上實現(xiàn)。
通過驗證集樣本的預測效果可以發(fā)現(xiàn),具有不同隱含層參數(shù)的lstm模型對于驗證集所有時刻點的平均預測偏差基本上差別不大,模型具有較強的隱含層參數(shù)穩(wěn)定性;dropout比例參數(shù)p取0.2模型預測效果較好。同時,綜合考慮預測模型效果和計算復雜度,樣本x的前置影響參數(shù)d選擇5較為合適。
步驟三、關(guān)于置信度c的基于混合整數(shù)線性規(guī)劃的區(qū)間預測通用模型及求解
考慮到未來t+1,…,t+m時刻的m個預測值隨著預測提前量的延長,預測偏差會有不同的特性,所以分別進行區(qū)間預測,以時刻t+j在標稱置信度c下的最優(yōu)區(qū)間預測為例進行說明。區(qū)間預測中有兩個重要的指標,一個是區(qū)間可靠性,即預測目標應以不低于100*c%的概率落在預測區(qū)間內(nèi);另一個是區(qū)間精度,即在同等區(qū)間可靠性的前提下,區(qū)間寬度越小區(qū)間質(zhì)量就越高,一般來講目標值越大,其波動的區(qū)間也相對較大,所以區(qū)間寬度用相對區(qū)間寬度來表示。針對驗證集中的樣本lstm點預測值valid_pij和其真實值valid_rij,最優(yōu)區(qū)間預測問題可以轉(zhuǎn)化成滿足區(qū)間可靠性約束條件下的平均相對區(qū)間寬度最小化的問題。
構(gòu)造優(yōu)化目標,即最小化平均相對區(qū)間寬度
其中u(valid_pij)和l(valid_pij)為最優(yōu)預測區(qū)間的上下邊界。不失一般性,假設u(valid_pij)和l(valid_pij)與lstm點預測值valid_pij之間滿足如下關(guān)系
u(valid_pij)=valid_pij×αj(4)
和
l(valid_pij)=valid_pij×βj,(5)
其中αj和βj為時刻t+j的最優(yōu)預測區(qū)間的上下邊界比例系數(shù)。滿足
αj>0(6)
βj>0(7)
αj>βj(8)
對一個驗證集樣本i,分別引入連續(xù)型變量μi,1,μi,2,μi,3,μi,4和bool型變量ii,1,ii,2,ii,3,ii,4,其中μi,1,μi,2,ii,1和ii,2用來表明下界l(valid_pij)與真實值valid_rij之間的關(guān)系,滿足
l(valid_pij)=valid_rij+valid_rij×μi,1-valid_rij×μi,2(9)
其中,
0≤μi,1≤ii,1(10)
0≤μi,2≤ii,2(11)
ii,1+ii,2=1(12)
同樣,μi,3,μi,4,ii,3和ii,4用來表明區(qū)間上界u(valid_pij)與真實值valid_rij之間的關(guān)系,滿足
u(valid_pij)=valid_rij+valid_rij×μi,3-valid_rij×μi,4(13)
其中
0≤μi,3≤ii,3(14)
0≤μi,4≤ii,4(15)
ii,3+ii,4=1(16)
可以發(fā)現(xiàn),只有當ii,4=1,同時ii,1=0時,真實值才能落在預測區(qū)間中,所以關(guān)于標稱置信度c的約束如下
目標(3)和約束(4)-(17)構(gòu)成了一個混合整數(shù)線性規(guī)劃問題,即基于lstm點預測值的一定置信度下的最優(yōu)區(qū)間預測方法。
對于驗證集中的樣本,首先用步驟二中訓練好的模型,求出lstm點預測值,再分別對于時刻t+1,…,t+m,進行各個時刻的最優(yōu)預測區(qū)間上下界比例系數(shù)的建模及cplex軟件包的求解。
步驟四、水質(zhì)波動的區(qū)間預測方法
對測試集樣本,基于步驟二中訓練好的lstm點預測模型,求得lstm點預測值;再用步驟三中求得的各個t+j(j=1,…,m)時刻的一定置信度下的上下區(qū)間最優(yōu)比例系數(shù),求出測試集的樣本預測區(qū)間,水質(zhì)指標部分測試樣本的區(qū)間預測結(jié)果如圖3所示。通過測試集的實際置信度與最優(yōu)區(qū)間預測模型中標稱置信度的差異比較來驗證方法的有效性,測試集的實際置信度比驗證集的標稱置信度稍低,0.9的標稱置信度對應測試集0.88的實際置信度,0.8的標稱置信度對應測試集0.76的實際置信度,滿足實際應用的需求。
對于未來時刻的水質(zhì)預測,基于步驟二中訓練好的lstm點預測模型,以及步驟三中求出的一定置信度下的上下區(qū)間最優(yōu)比例系數(shù),用式(4)和(5)即可預測水質(zhì)的波動區(qū)間。