,,,,
(1.北京工商大學(xué) 計(jì)算機(jī)與信息工程學(xué)院,北京 100048; 2.北京市水務(wù)局辦公室,北京 100038)
隨著城市化進(jìn)程快速推進(jìn),環(huán)?;A(chǔ)設(shè)施建設(shè)未得到同步發(fā)展,城市雨污水在排入時(shí)攜帶較多污染物,導(dǎo)致了城市水環(huán)境形勢面臨嚴(yán)峻威脅。為了防止水污染擴(kuò)散,在河湖關(guān)鍵位置設(shè)立了監(jiān)測站點(diǎn),自動(dòng)監(jiān)測水質(zhì)信息狀況,為水污染防治提供信息基礎(chǔ)。在此基礎(chǔ)上,根據(jù)水質(zhì)監(jiān)測信息預(yù)測水質(zhì)變化趨勢,對水環(huán)境的有效防范治理具有重要意義。
在水質(zhì)預(yù)測研究中,數(shù)理統(tǒng)計(jì)方法和人工神經(jīng)網(wǎng)絡(luò)技術(shù)得到了廣泛應(yīng)用。在基于數(shù)理統(tǒng)計(jì)的水質(zhì)預(yù)測方面,顏劍波等人建立了多元回歸模型[1],在自變量和因變量之間規(guī)律分析的基礎(chǔ)上,對三門峽斷面水質(zhì)的COD濃度進(jìn)行了預(yù)測。榮潔等人應(yīng)用了指數(shù)平滑法-馬爾科夫預(yù)測模型[2],對數(shù)據(jù)進(jìn)行平滑處理,并結(jié)合馬爾科夫法對合肥湖濱與巢湖裕溪口兩大斷面的CODMn、TP、TN濃度進(jìn)行了預(yù)測。劉東君等人將最優(yōu)加權(quán)組合預(yù)測法應(yīng)用到永定河的DO 值的預(yù)測[3]。然而傳統(tǒng)的數(shù)理統(tǒng)計(jì)方法對于數(shù)據(jù)要求較高,且影響水質(zhì)的各因素之間存在著復(fù)雜的非線性關(guān)系,使得數(shù)理統(tǒng)計(jì)方法應(yīng)用受到限制[4]。人工神經(jīng)網(wǎng)絡(luò)技術(shù)目前已成為水質(zhì)預(yù)測的主要研究方向之一。李景文等人利用基于TSC-RBF的預(yù)測方法,對漓江陽朔段流域水質(zhì)中的CODMn和NH3-N進(jìn)行了預(yù)測[5],張森等人提出了將偏最小二乘法和支持向量機(jī)相耦合的水質(zhì)預(yù)測方法,以長江朱沱的高錳酸鉀指數(shù)為例進(jìn)行分析[6]?;戮甑热颂岢隽嘶贙-means聚類和ELM神經(jīng)網(wǎng)絡(luò)的水質(zhì)預(yù)測模型[7],應(yīng)用于養(yǎng)殖水質(zhì)溶解氧預(yù)測。
上述文獻(xiàn)中雖然對水質(zhì)預(yù)測方面作了深入的研究,但并未針對原始數(shù)據(jù)中的噪聲信號(hào)進(jìn)行有效處理,同時(shí)傳統(tǒng)的數(shù)理統(tǒng)計(jì)方法受到多方面的限制,神經(jīng)網(wǎng)絡(luò)方法也只采用了單一預(yù)測模型,不能避免單一方法的局限性。因此本文將優(yōu)化后的RBF、Elman神經(jīng)網(wǎng)絡(luò)以及支持向量機(jī)相結(jié)合,構(gòu)建基于Adaboost的水質(zhì)組合預(yù)測模型,通過對北海水域中溶解氧濃度進(jìn)行預(yù)測分析,結(jié)果表明該模型具有較好的預(yù)測精度和泛化能力。
小波分析利用小波函數(shù)做為基函數(shù),將原始信號(hào)按頻率分解為多層,各層之間信號(hào)不重疊,且所分解的信號(hào)包含了原信號(hào)的所有頻率,其中對于小波函數(shù)的選擇最為重要[8]。本文選取Symlets和Daubechies小波系作為小波函數(shù)進(jìn)行去噪效果對比。
小波去噪的基本步驟如下:
1)結(jié)合實(shí)際數(shù)據(jù),將信號(hào)分解為不同頻率的信號(hào),并計(jì)算每層的小波分解系數(shù)。
2)設(shè)定各層小波的閾值,閾值處理方式包括軟閾值和硬閾值兩種。
3)將各層信號(hào)與閾值比較并處理后進(jìn)行小波重構(gòu),得到去噪后的信號(hào)。
采用的小波去噪效果評(píng)價(jià)指標(biāo)為如下兩種:
均方根誤差RMSE,表示去噪后信號(hào)與原始信號(hào)的均方誤差,值越小表示去噪效果越好:
(1)
信噪比SNR,表示原始信號(hào)和噪聲值比值,值越大表示去噪效果越好:
(2)
其中:powers表示原始信號(hào)功率,powern表示噪聲功率信號(hào)。
RBF神經(jīng)網(wǎng)絡(luò)是具有單隱層的三層前向網(wǎng)絡(luò),其基本思想是,用RBF作為隱單元的“基”構(gòu)成隱藏層空間,隱藏層對輸入矢量進(jìn)行變換,將低維的模式輸入數(shù)據(jù)直接變換到高維空間內(nèi),使得在低維空間內(nèi)的線性不可分問題在高維空間內(nèi)線性可分[9-10]。RBF神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)示意如圖1所示。
圖1 RBF神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖
其中:Xi為第i個(gè)輸入向量,yi為第i個(gè)輸出向量,N代表隱含層神經(jīng)元個(gè)數(shù)。隱含層中的每一個(gè)神經(jīng)元都使用了非線性徑向基函數(shù)φ(·),即輸入向量通過輸入層到達(dá)隱含層,經(jīng)過隱含層神經(jīng)元的徑向基函數(shù)進(jìn)行非線性變換,再將變換結(jié)果加權(quán)求和得到輸出結(jié)果[11]。
支持向量機(jī)SVM可用于模式分類和非線性回歸,其主要思想是建立一個(gè)分類超平面作為決策曲面,使得正例和反例之間的隔離邊緣被最大化。將樣本數(shù)據(jù)從樣本空間映射到高維特征空間進(jìn)行線性回歸,從而求解出一個(gè)包含了多種因素影響的水質(zhì)最優(yōu)回歸函數(shù)。在最優(yōu)回歸函數(shù)中采用適當(dāng)?shù)暮撕瘮?shù)代替高維空間中的向量內(nèi)積,就可以實(shí)現(xiàn)非線性變換后的線性擬合,而計(jì)算復(fù)雜度卻沒有增加,從而得到最優(yōu)回歸函數(shù)[12]:
(3)
其中:αi,αi*為拉格朗日乘子;b為回歸閾值;SV為支持向量;k(xi,x)為核函數(shù)。
Elman 網(wǎng)絡(luò)是一種比前向神經(jīng)網(wǎng)絡(luò)具有更強(qiáng)計(jì)算能力的反饋型神經(jīng)網(wǎng)絡(luò),能夠更好的反映系統(tǒng)的動(dòng)態(tài)性[13]。Elman網(wǎng)絡(luò)是在BP神經(jīng)網(wǎng)絡(luò)基礎(chǔ)上多了一個(gè)承接層,具有適應(yīng)時(shí)變特性的Elman反饋動(dòng)態(tài)遞歸網(wǎng)絡(luò)預(yù)測性能[14]。
圖2 Elman神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖
其中:w1為承接層到隱含層的連接權(quán)值,w2為輸入層到隱含層的連接權(quán)值,w3為隱含層到輸出層的連接權(quán)值。
提升(boosting)方法是一種常用的統(tǒng)計(jì)學(xué)習(xí)方法,通過改變訓(xùn)練樣本的權(quán)重,學(xué)習(xí)多個(gè)分類器,并將這些分類器進(jìn)行線性組合,以提高分類的性能[15-16]。
Adaboost方法是其中最典型的一種算法,其主要思想是:首先給出弱學(xué)習(xí)算法和K組樣本數(shù)據(jù),每組數(shù)據(jù)的初始權(quán)重為1/K;然后利用弱學(xué)習(xí)算法進(jìn)行訓(xùn)練,將訓(xùn)練結(jié)果與實(shí)際值進(jìn)行比較,將預(yù)測失敗的訓(xùn)練樣本賦予較大權(quán)值,使得在下一次迭代運(yùn)算時(shí)這些訓(xùn)練樣本得到更多的關(guān)注,訓(xùn)練失敗判定由錯(cuò)誤率ε決定,當(dāng)ε大于給定閾值時(shí)判定為預(yù)測失敗樣本。從而得到了一系列采用不同權(quán)重的訓(xùn)練樣本的弱預(yù)測器序f1,f2,…,fn,并且每個(gè)弱預(yù)測器也具有相應(yīng)的權(quán)值,預(yù)測效果越好,弱預(yù)測器權(quán)值越大;最后在迭代完成后將所有弱預(yù)測器加權(quán)求和得到強(qiáng)預(yù)測器,再用強(qiáng)預(yù)測器進(jìn)行預(yù)測[17]。
RBF網(wǎng)絡(luò)可以自適應(yīng)的確定網(wǎng)絡(luò)結(jié)構(gòu),但采用固定的目標(biāo)誤差goal以及擴(kuò)展系數(shù)spread,無法針對樣本進(jìn)行優(yōu)化,導(dǎo)致訓(xùn)練精度仍有待提升,在此使用梯度下降法得出一系列相對應(yīng)的目標(biāo)誤差及擴(kuò)展系數(shù),通過試湊法獲取最優(yōu)的預(yù)測結(jié)果。
關(guān)于SVM參數(shù)的優(yōu)化選取,并沒有公認(rèn)統(tǒng)一的最優(yōu)方法,現(xiàn)在目前常用的方法就是讓懲罰系數(shù)c和核函數(shù)半徑g在一定的范圍內(nèi)取值,對于取定的c和g把訓(xùn)練集作為原始數(shù)據(jù)集,利用交叉驗(yàn)證方法得到在此組c和g下訓(xùn)練集驗(yàn)證分類準(zhǔn)確率,最終取使得訓(xùn)練集驗(yàn)證分類準(zhǔn)確率最高的那組c和g做為最佳的參數(shù)[17]。
Elman網(wǎng)絡(luò)采取權(quán)值更新方法—梯度下降法[18],其缺陷是收斂速度慢、容易陷入局部最小值,在此借助遺傳算法GA訓(xùn)練初始權(quán)值和閾值對Elman網(wǎng)絡(luò)進(jìn)行優(yōu)化。改變Elman網(wǎng)絡(luò)依賴梯度下降法來調(diào)整網(wǎng)絡(luò)權(quán)值的思想,利用GA全局性搜索的特點(diǎn),尋找最為合適的網(wǎng)絡(luò)連接權(quán)值、閾值和網(wǎng)絡(luò)結(jié)構(gòu),提高預(yù)測精度和泛化能力。
以北京北海公園水域作為研究對象,北海作為地表湖泊且為城市景觀水,其水質(zhì)指標(biāo)的變化同時(shí)受到自然和人為因素的影響,對于水環(huán)境治理具有指導(dǎo)意義。本文預(yù)測模型主要針對北海水域1~4月份溶解氧濃度進(jìn)行分析研究。同時(shí)分別采用RBF網(wǎng)絡(luò)、支持向量機(jī)以及Elman網(wǎng)絡(luò)進(jìn)行建模預(yù)測,將預(yù)測結(jié)果進(jìn)行對比分析。
第一步,構(gòu)造弱預(yù)測器。將3種單一模型分別作為3個(gè)弱預(yù)測器。在使用神經(jīng)網(wǎng)絡(luò)以及支持向量機(jī)進(jìn)行預(yù)測時(shí),本質(zhì)是找出輸入輸出之間的非線性函數(shù)關(guān)系,要得到良好的預(yù)測效果,輸入輸出數(shù)據(jù)的選擇很重要。
由于溶解氧濃度的變化是一個(gè)漸變的過程,所以根據(jù)歷史數(shù)據(jù)變化趨勢來預(yù)測后面的輸出可以取得較好結(jié)果,如下所示:
d(t)=F(d(t-1),d(t-2),…,d(t-n))
(4)
式中,d(t)為t時(shí)刻溶解氧的監(jiān)測數(shù)據(jù),n為輸入層的節(jié)點(diǎn)數(shù),F為由單一預(yù)測模型確定的輸入-輸出映射關(guān)系。經(jīng)試驗(yàn)確定采用最近3天的溶解氧歷史數(shù)據(jù)來預(yù)測輸出效果最好,即n=3。
在模型輸入輸出選擇方面,分別以溶解氧數(shù)據(jù)的前3天歷史數(shù)據(jù)為模型輸入向量,未來一天的預(yù)測值為輸出向量,構(gòu)建3輸入1輸出的弱預(yù)測器:
d(t)=F(d(t-1),d(t-2),d(t-3))
(5)
第二步,構(gòu)建Adaboost強(qiáng)預(yù)測器。用Adaboost算法將得到的多個(gè)弱預(yù)測器序列組成新的強(qiáng)預(yù)測器。基于Adaboost組合預(yù)測方法實(shí)現(xiàn)流程如圖2所示。
圖3 組合預(yù)測方法實(shí)現(xiàn)流程圖
Adaboost組合預(yù)測模型具體建模步驟如下:
1)樣本數(shù)據(jù)權(quán)重初始化。首次迭代時(shí)數(shù)據(jù)的初始權(quán)重為D1(k)=1/n(k=1,2,…,n代表樣本序號(hào),下標(biāo)1代表迭代次數(shù)),為每個(gè)樣本數(shù)據(jù)分配相等的權(quán)重。
2)弱預(yù)測器預(yù)測。每次迭代前將此預(yù)測器權(quán)值初始化為0,再利用相同的訓(xùn)練集訓(xùn)練3個(gè)弱預(yù)測器,若某一樣本數(shù)據(jù)預(yù)測誤差大于一定值,則將其累計(jì)權(quán)值相加最后得到這一弱預(yù)測器的權(quán)值之和:
Errorj=Errorj+Di
(6)
其中:Errorj代表第j個(gè)弱預(yù)測器權(quán)值累加和,Di代表超過誤差閾值的數(shù)據(jù)的權(quán)值。
3)更新樣本數(shù)據(jù)權(quán)重。若當(dāng)前樣本誤差未超過閾值則權(quán)值Di不變,順延到下一次迭代當(dāng)中,若超過誤差閾值,則將權(quán)值變大:
Di+1=1.1·Di
(7)
4)預(yù)測序列權(quán)值計(jì)算。根據(jù)弱預(yù)測器權(quán)值累加和Errorj算序列權(quán)值:
(8)
5)構(gòu)建強(qiáng)預(yù)測函數(shù)。經(jīng)過n輪迭代后得到強(qiáng)預(yù)測結(jié)果:
F=at·[f1,f1,…,fn]
(9)
選取平均相對誤差絕對值MRE、最大相對誤差絕對值MaxRE以及均方誤差MSE作為對預(yù)測結(jié)果的評(píng)價(jià)標(biāo)準(zhǔn):
(10)
(11)
(12)
選取2015年1月至4月北海水質(zhì)監(jiān)測數(shù)據(jù)作為訓(xùn)練樣本,2016年1月至4月監(jiān)測數(shù)據(jù)作為測試數(shù)據(jù)。選用的水質(zhì)指標(biāo)溶解氧濃度,其中采樣頻率為每日一次,兩年分別有120組數(shù)據(jù)。選用Symlets和Daubechies作為小波函數(shù),閾值處理采用硬閾值,閾值選擇標(biāo)準(zhǔn)為啟發(fā)式閾值,分解層數(shù)為5,分別對原始數(shù)據(jù)進(jìn)行去噪處理,結(jié)果如表1所示。
表1 去噪評(píng)價(jià)指標(biāo)結(jié)果
由表1可以看出不同小波函數(shù)具有不同的去噪效果,其中db6均方誤差最低以及信噪比最高,因此采用db6作為小波基對數(shù)據(jù)進(jìn)行去噪。
將基于Adaboost組合預(yù)測模型應(yīng)用于溶解氧濃度預(yù)測步驟如下:
第一步,將去噪后的數(shù)據(jù)歸一化處理。數(shù)據(jù)經(jīng)過轉(zhuǎn)化映射在[0,1]范圍內(nèi),采用式(13)進(jìn)行歸一化處理:
y=(ymax-ymin)·(x-xmin)/(xmax-xmin)+ymin
(13)
式中,y為經(jīng)過處理的數(shù)據(jù),x為原始數(shù)據(jù),xmin、xmax分別為最小值和最大值;ymax和ymin分別默認(rèn)值為1和-1。
第二步,訓(xùn)練和預(yù)測。利用所選數(shù)據(jù)對組合預(yù)測模型進(jìn)行訓(xùn)練和預(yù)測,預(yù)測精度對比結(jié)果見表2。
表2 各預(yù)測模型預(yù)測結(jié)果
由表2對2016年1~4月份溶解氧預(yù)測精度對比可知,Elman網(wǎng)絡(luò)的平均相對誤差約在5%,平均相對誤差則更大,達(dá)到了14%以上;RBF網(wǎng)絡(luò)和SVM相較于Elman網(wǎng)絡(luò)各項(xiàng)指標(biāo)的預(yù)測精度都有了不同程度的提升。而Adaboost組合預(yù)測模型的預(yù)測效果最好,其中均方誤差僅有0.002,相較于前3種單一模型,組合模型表現(xiàn)出了明顯的優(yōu)勢,預(yù)測精度最高,適合于非線性的水質(zhì)指標(biāo)預(yù)測。單一模型在面對多樣環(huán)境時(shí),總會(huì)有不足,而組合模型恰好的彌補(bǔ)了這一點(diǎn)。
圖3給出了組合預(yù)測模型和3種單一模型對于2016年1~4月份溶解氧預(yù)測的誤差曲線。
圖4 誤差曲線
由圖4可以看出,Adaboost組合預(yù)測模型的誤差曲線最低、預(yù)測結(jié)果最接近真實(shí)值,表明了使用Adaboost算法對多個(gè)不同的弱預(yù)測器進(jìn)行集成,可以有效的提升水質(zhì)指標(biāo)的預(yù)測精度。
1)在去噪過程中小波函數(shù)的選擇對于去噪效果具有顯著的影響,在其他條件相同下,db6小波函數(shù)的去躁效果在Symlets和Daubechies小波系表現(xiàn)最優(yōu),有效的去除了數(shù)據(jù)中的誤差信號(hào),為實(shí)現(xiàn)水質(zhì)精準(zhǔn)預(yù)測奠定了基礎(chǔ)。
2)建立了基于Adaboost的組合水質(zhì)預(yù)測模型,通過對北海水域溶解氧濃度歷史情況進(jìn)行分析,并與經(jīng)過參數(shù)優(yōu)化后的RBF網(wǎng)絡(luò)、支持向量機(jī)和Elman網(wǎng)絡(luò)預(yù)測結(jié)果進(jìn)行對比,證明相對于傳統(tǒng)的單一預(yù)測模型,通過Adaboost優(yōu)化的組合預(yù)測模型預(yù)測結(jié)果更加接近真實(shí)情況,提高了預(yù)測精度和泛化能力。將此方法應(yīng)用到河湖水質(zhì)指標(biāo)變化預(yù)測中,可為城市水環(huán)境污染防治提供參考依據(jù),滿足了人們生產(chǎn)、生活用水的需求。