(云南省水文水資源局紅河分局,云南紅河661100)
水質(zhì)預(yù)測是依據(jù)已有的歷史監(jiān)測數(shù)據(jù),通過科學(xué)的方法推測將來的水質(zhì)變化趨勢,以期達(dá)到掌握水質(zhì)現(xiàn)狀及發(fā)展趨勢的目的[1]。提高水質(zhì)預(yù)測精度對于開展水環(huán)境質(zhì)量評價、落實最嚴(yán)格水資源管理制度以及制訂水污染控制系統(tǒng)規(guī)劃等均具有十分重要的意義。由于水質(zhì)受物理、化學(xué)和生物等水環(huán)境條件以及人類活動等眾多確定性因素和隨機(jī)因素的影響,致使傳統(tǒng)回歸分析等方法難以獲得理想的預(yù)測效果。BP神經(jīng)網(wǎng)絡(luò)是人工神經(jīng)網(wǎng)絡(luò)應(yīng)用最為廣泛的神經(jīng)網(wǎng)絡(luò)模型之一,在各行業(yè)領(lǐng)域中,幾乎90%以上的人工神經(jīng)網(wǎng)絡(luò)應(yīng)用均是基于BP神經(jīng)網(wǎng)絡(luò)或改進(jìn)型BP神經(jīng)網(wǎng)絡(luò),其本身所具有的非線性映射能力和自適應(yīng)、自組織、自學(xué)習(xí)等特性,已在水質(zhì)預(yù)測中得到應(yīng)用[2-4]。在實際應(yīng)用中,由于單隱層BP神經(jīng)網(wǎng)絡(luò)初始權(quán)值閾值等參數(shù)通過隨機(jī)確定,致使BP神經(jīng)網(wǎng)絡(luò)收斂速度慢、易陷入局部最優(yōu)而不能獲得較好的預(yù)測效果。目前,普遍采用遺傳算法[5-6]、粒子群算法[7-8]等智能算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)權(quán)值及閾值或增加BP神經(jīng)網(wǎng)絡(luò)隱層數(shù)來改善BP神經(jīng)網(wǎng)絡(luò)的預(yù)測性能。研究表明,同單隱層相比,多隱層BP神經(jīng)網(wǎng)絡(luò)泛化能力強(qiáng),預(yù)測精度高,是提高BP神經(jīng)網(wǎng)絡(luò)預(yù)測性能的重要途徑之一。目前已在徑流預(yù)測[9]、水質(zhì)預(yù)測[10]、風(fēng)電功率預(yù)測[11]以及水安全評價[12]等方面得到應(yīng)用,但多隱層BP神經(jīng)網(wǎng)絡(luò)的應(yīng)用大部分僅限于雙隱層。在水質(zhì)預(yù)測實例研究中,文獻(xiàn)[10]采用雙隱層BP神經(jīng)網(wǎng)絡(luò)對老哈河化學(xué)需氧量(CODCr)、五日生化需氧量(BOD5)等指標(biāo)進(jìn)行預(yù)測,取得較好的預(yù)測效果;文獻(xiàn)[3]采用三隱層BP神經(jīng)網(wǎng)絡(luò)對云南某水庫總氮(TN)進(jìn)行預(yù)測,并獲得了一定的預(yù)測效果。但文獻(xiàn)[3,10]不足之處在于采用人工試湊法確定網(wǎng)絡(luò)結(jié)構(gòu),存在不能保證網(wǎng)絡(luò)結(jié)構(gòu)最優(yōu)及人工試湊法繁瑣等缺點。
基于上述原因分析,為有效提高水質(zhì)預(yù)測精度,作者提出一種基于隨機(jī)漂移粒子群(random drift particle swarm optimization,RDPSO)算法結(jié)構(gòu)優(yōu)化的三隱層BP神經(jīng)網(wǎng)絡(luò)預(yù)測方法,利用RDPSO算法優(yōu)化三隱層BP神經(jīng)網(wǎng)絡(luò)隱層節(jié)點數(shù),構(gòu)建三隱層RDPSO-BP水質(zhì)預(yù)測模型,并與基于單隱層、雙隱層節(jié)點優(yōu)化的RDPSO-BP神經(jīng)網(wǎng)絡(luò)、基于網(wǎng)絡(luò)權(quán)值閾值優(yōu)化的RDPSO-BP神經(jīng)網(wǎng)絡(luò)預(yù)測模型作對比,以云南省五里沖水庫總氮預(yù)測為例進(jìn)行實例研究,旨在驗證三隱層RDPSO-BP模型用于水質(zhì)預(yù)測的可行性和有效性。
隨機(jī)漂移粒子群(RDPSO)算法是孫俊等人受PSO算法的軌跡分析和金屬導(dǎo)體中自由電子定向漂移運動、隨機(jī)無規(guī)則熱運動啟發(fā)而提出來的一種具有較強(qiáng)全局搜索的群體智能算法。RDPSO算法中自由電子的定向漂移運動類似于粒子的局部搜索,隨機(jī)無規(guī)則熱運動類似于粒子的全局搜索[13]。參考文獻(xiàn)[13-15],RDPSO算法數(shù)學(xué)描述如下。
(1)
(2)
(3)
綜上,RDPSO算法中粒子速度和位置更新公式表示為:
(4)
(5)
BP神經(jīng)網(wǎng)絡(luò)是目前應(yīng)用最廣泛的神經(jīng)網(wǎng)絡(luò)模型之一,按結(jié)構(gòu)可分為單隱層BP神經(jīng)網(wǎng)絡(luò)(三層網(wǎng)絡(luò))和多隱層BP神經(jīng)網(wǎng)絡(luò)(四層以上網(wǎng)絡(luò))。理論上,單隱層BP神經(jīng)網(wǎng)絡(luò)已能映射或逼近任何有理函數(shù)[16-17],但實際應(yīng)用表明,對于復(fù)雜預(yù)測問題,單隱層BP神經(jīng)網(wǎng)絡(luò)往往表現(xiàn)出預(yù)測精度低和泛化能力弱等問題和不足;同單隱層BP神經(jīng)網(wǎng)絡(luò)相比,多隱層BP神經(jīng)網(wǎng)絡(luò)不但預(yù)測精度高、泛化能力強(qiáng),而且易避免網(wǎng)絡(luò)訓(xùn)練陷入局部最優(yōu)。限于篇幅,多隱層BP神經(jīng)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)及算法迭代步驟參見文獻(xiàn)[9,18]。
研究表明,對于同一預(yù)測問題,多隱層BP神經(jīng)網(wǎng)絡(luò)的預(yù)測精度和泛化能力由隱層數(shù)和隱層節(jié)點數(shù)共同決定。對于相同隱層數(shù)的BP神經(jīng)網(wǎng)絡(luò),隱層節(jié)點數(shù)之和越大,則網(wǎng)絡(luò)擬合精度越高,但過多的隱層節(jié)點易導(dǎo)致網(wǎng)絡(luò)“過擬合”而降低其預(yù)測精度和泛化能力;對于隱層節(jié)點數(shù)相同的BP神經(jīng)網(wǎng)絡(luò),隱層數(shù)越多,則網(wǎng)絡(luò)預(yù)測精度越高,但過多的隱層數(shù)不但增加網(wǎng)絡(luò)的復(fù)雜程度,同時增加選擇隱層節(jié)點數(shù)的難度。本文基于Matlab神經(jīng)網(wǎng)絡(luò)工具箱和三隱層newff()函數(shù),利用RDPSO算法尋優(yōu)各隱層節(jié)點數(shù),以期獲得三隱層RDPSO-BP模型理想的預(yù)測效果。
三隱層RDPSO-BP神經(jīng)網(wǎng)絡(luò)模型預(yù)測實現(xiàn)步驟可歸納如下(單隱層、雙隱層RDPSO-BP神經(jīng)網(wǎng)絡(luò)模型可參如下步驟考實現(xiàn);基本權(quán)閾值優(yōu)化的RDPSO-BP神經(jīng)網(wǎng)絡(luò)模型可參考文獻(xiàn)[6-8]實現(xiàn))。
Step1合理劃分訓(xùn)練樣本和預(yù)測樣本,利用式(6)對水質(zhì)實測序列進(jìn)行歸一化處理?;贛atlab神經(jīng)網(wǎng)絡(luò)工具箱newff()函數(shù)構(gòu)建三隱層BP神經(jīng)網(wǎng)絡(luò),設(shè)定三隱層BP神經(jīng)網(wǎng)絡(luò)隱層節(jié)點數(shù)的搜尋范圍。
(6)
Step2確定適應(yīng)度函數(shù)。適應(yīng)度函數(shù)是描述種群個體優(yōu)劣程度的主要指標(biāo),本文選用訓(xùn)練樣本均方誤差作為適應(yīng)度函數(shù),描述如下:
(7)
Step3設(shè)置RDPSO算法群體大小N,最大迭代次數(shù)T,最大、最小熱敏系數(shù)α、α′,常數(shù)c1和c2。設(shè)置當(dāng)前迭代次數(shù)t=0,初始化粒子位置和速度。
Step5基于式(7)計算目標(biāo)適應(yīng)度值,更新全局最優(yōu)位置G和粒子局部最優(yōu)位置P。
Step6根據(jù)式(4)、(5)更新粒子的速度和位置。
Step7判斷算法迭代終止條件是否滿足,若滿足則轉(zhuǎn)至Step8,否則令t=t+1,并執(zhí)行Step4—7。
Step8輸出最優(yōu)適應(yīng)度值和最優(yōu)粒子個體空間位置, 即三隱層BP神經(jīng)網(wǎng)絡(luò)各隱層節(jié)點數(shù)。
Step9利用RDPSO算法優(yōu)化獲得的各隱層節(jié)點數(shù)代入三隱層BP神經(jīng)網(wǎng)絡(luò)對預(yù)測樣本進(jìn)行預(yù)測。
五里沖水庫位于蒙自市城東22 km期路白鄉(xiāng)龍寶坡村,為紅河州州府蒙自市城市主要供水水源。水庫控制徑流面積265.3 km2,多年平均徑流量9 356萬m3,總庫容7 949萬m3,興利庫容5 076萬m3,設(shè)計年生活供水量2 190萬m3,現(xiàn)狀供水量1 516.8萬m3,供水人口20.0萬人。近年來,隨著蒙自市人口的激增,徑流區(qū)人類活動頻繁、農(nóng)業(yè)面源污染加劇,五里沖水庫水質(zhì)狀況不容樂觀。據(jù)云南省水環(huán)境監(jiān)測中心紅河分中心近5 a水質(zhì)監(jiān)測結(jié)果顯示,五里沖水庫2013—2017年年均水質(zhì)評價均為Ⅲ類(依據(jù)GB 3838—2002《地表水環(huán)境質(zhì)量標(biāo)準(zhǔn)》中規(guī)定的基本項目和補(bǔ)充項目評價,評價方法采用單因子評價法,監(jiān)測頻次為12次/a),主要影響因子為總氮,汛期由于降水沖刷等原因,總氮存在超標(biāo)現(xiàn)象。
a) 預(yù)測方法。目前,總氮預(yù)測普遍采用2種方式:①利用同期監(jiān)測相關(guān)性指標(biāo)對總氮進(jìn)行預(yù)測,但前提是總氮監(jiān)測值與其他同期監(jiān)測指標(biāo)值具有較好的相關(guān)性;②利用總氮監(jiān)測系列值,采用相空間重構(gòu)法或自相關(guān)法確定影響向量(輸入向量)對總氮進(jìn)行預(yù)測。本文通過對五里沖水庫水質(zhì)監(jiān)測結(jié)果進(jìn)行分析,發(fā)現(xiàn)總氮監(jiān)測值與其他同期監(jiān)測指標(biāo)值相關(guān)性較差,無法獲得好的監(jiān)測結(jié)果。因此,本文采用自相關(guān)法對總氮進(jìn)行預(yù)測。
b) 預(yù)測對象。五里沖水庫是蒙自市主要供水水源地,目前由云南省水環(huán)境監(jiān)測中心紅河分中心承擔(dān)監(jiān)測任務(wù);監(jiān)測項目為GB 3838—2002《地表水環(huán)境質(zhì)量標(biāo)準(zhǔn)》中規(guī)定的基本項目和補(bǔ)充項目;監(jiān)測頻次為12次/a。本文收集五里沖水庫2013—2017年60組總氮監(jiān)測數(shù)據(jù),利用SPSS軟件對該總氮序列進(jìn)行自相關(guān)分析,計算各階自相關(guān)系數(shù),見表1。
表1 總氮序列自相關(guān)系數(shù)
從表1來看,當(dāng)滯后數(shù)(嵌入維數(shù))為6時,自相關(guān)系數(shù)最大,為0.585。據(jù)此,構(gòu)建嵌入維數(shù)為6維的輸入向量和當(dāng)月總氮序列為輸出向量的三隱層RDPSO-BP神經(jīng)網(wǎng)絡(luò)總氮預(yù)測模型,60組監(jiān)測數(shù)據(jù)共獲得54組實驗分析序列,并利用前50組總氮監(jiān)測數(shù)據(jù)作為訓(xùn)練樣本,后4組作為預(yù)測樣本。限于篇幅,輸入輸出向量表從略。
a) 參數(shù)設(shè)置。RDPSO算法最大迭代次數(shù)T=100,群體大小N=50,最大、最小熱敏系數(shù)α、α′分別設(shè)置為0.9、0.3,常數(shù)c1、c2均設(shè)置為2。單隱層、雙隱層、三隱層BP神經(jīng)網(wǎng)絡(luò)模型隱層傳遞函數(shù)采用logsig,輸出層傳遞函數(shù)采用purelin,訓(xùn)練函數(shù)采用trainlm,學(xué)習(xí)速率lr為0.01,期望誤差為0.008,最大訓(xùn)練輪回為100次,隱層節(jié)點數(shù)搜索范圍∈[2,10]。RDPSO_BP神經(jīng)網(wǎng)絡(luò)模型權(quán)值和閾值搜索空間為[-1,1],隱層節(jié)點數(shù)為11,其他參數(shù)設(shè)置同上。
b) 模型構(gòu)建及預(yù)測?;谏鲜龇治?,分別構(gòu)建單隱層、雙隱層、三隱層RDPSO_BP神經(jīng)網(wǎng)絡(luò)總氮預(yù)測模型,即構(gòu)建RDPSO_BP_One、RDPSO_BP_Two、RDPSO_BP_Three預(yù)測模型,以及基于權(quán)、閾值優(yōu)化的RDPSO_BP預(yù)測模型。選取平均相對誤差絕對值MRE、最大相對誤差絕對值MaxRE作為評價指標(biāo),利用此4種模型對五里沖水庫總氮進(jìn)行訓(xùn)練和預(yù)測,見表2(限于篇幅,僅給出預(yù)測樣本相對誤差)。并繪制訓(xùn)練~預(yù)測相對誤差效果,見圖1。
表2 五里沖水庫總氮預(yù)測結(jié)果及其比較
注:表中加粗?jǐn)?shù)字表示為最優(yōu)值
a) 從表2來看,無論是訓(xùn)練樣本還是預(yù)測樣本,三隱層RDPSO_BP神經(jīng)網(wǎng)絡(luò)模型的擬合-預(yù)測精度均優(yōu)于單隱層、雙隱層RDPSO_BP神經(jīng)網(wǎng)絡(luò)模型及基于權(quán)閾值優(yōu)化的RDPSO_BP神經(jīng)網(wǎng)絡(luò)模型,其對于預(yù)測樣本預(yù)測的平均相對誤差絕對值為6.98%,精度分別比RDPSO_BP_One、RDPSO_BP_Two和RDPSO_BP模型提高了62.11%、42.07%和31.16%,具有較好的擬合、預(yù)測精度和泛化能力,表明RDPSO算法能有效優(yōu)化三隱層BP神經(jīng)網(wǎng)絡(luò)的各隱層節(jié)點數(shù),模型及方法可為水質(zhì)預(yù)測及其他相關(guān)預(yù)測研究提供參考。
圖1 五里沖水庫總氮訓(xùn)練~預(yù)測相對誤差效果
b) 從表2及圖1來看,三隱層RDPSO_BP神經(jīng)網(wǎng)絡(luò)模型的總體擬合-預(yù)測平均相對誤差絕對值達(dá)2.73%,擬合、預(yù)測效果明顯優(yōu)于其他3種模型,表現(xiàn)出較高的擬合-預(yù)測精度??梢姡侠磉x擇三隱層BP神經(jīng)網(wǎng)絡(luò)各隱層節(jié)點數(shù)能有效避免預(yù)測過程中“過擬合”和“欠擬合”現(xiàn)象的發(fā)生,進(jìn)一步提高三隱層BP神經(jīng)網(wǎng)絡(luò)模型的預(yù)測精度和泛化能力。
c) 從表2預(yù)測結(jié)果來看,預(yù)測精度最高的是RDPSO_BP_Three模型,其次是RDPSO_BP和RDPSO_BP_Two模型,預(yù)測效果最差的是RDPSO_BP_One模型。RDPSO_BP和RDPSO_BP_Two模型預(yù)測精度在伯仲之間。可見,合理選取BP神經(jīng)網(wǎng)絡(luò)隱層節(jié)點數(shù)或優(yōu)化BP神經(jīng)網(wǎng)絡(luò)權(quán)閾值,均能提高BP神經(jīng)網(wǎng)絡(luò)預(yù)測精度。
d) 從RDPSO_BP_One、RDPSO_BP_Two、RDPSO_BP_Three模型的擬合-預(yù)測結(jié)果來看,對于訓(xùn)練樣本,單隱層、雙隱層和三隱層RDPSO_BP模型的擬合精度分別為3.79%、2.95%和2.39%;對于預(yù)測樣本,單隱層、雙隱層和三隱層RDPSO_BP模型的預(yù)測精度分別為18.42%、12.05%和6.98%,從本預(yù)測實例來看,在相同條件下,BP神經(jīng)網(wǎng)絡(luò)擬合-預(yù)測精度以及泛化能力隨著隱層數(shù)的增加而提高。
a) 本文分析了單隱層BP神經(jīng)網(wǎng)絡(luò)模型在預(yù)測中存在的問題和不足,提出基于隨機(jī)漂移粒子群(RDPSO)算法優(yōu)化三隱層BP神經(jīng)網(wǎng)絡(luò)隱層節(jié)點數(shù)的預(yù)測方法,即通過RDPSO算法優(yōu)化確定三隱層BP神經(jīng)網(wǎng)絡(luò)模型網(wǎng)絡(luò)結(jié)構(gòu),并給出基于網(wǎng)絡(luò)結(jié)構(gòu)優(yōu)化的三隱層BP神經(jīng)網(wǎng)絡(luò)模型構(gòu)建方法和實現(xiàn)步驟,拓展了三隱層BP神經(jīng)網(wǎng)絡(luò)模型的應(yīng)用范疇。
b) 本文構(gòu)建三隱層RDPSO-BP神經(jīng)網(wǎng)絡(luò)預(yù)測模型,通過五里沖水庫總氮預(yù)測實例進(jìn)行驗證,并與基于單隱層、雙隱層節(jié)點優(yōu)化的RDPSO-BP神經(jīng)網(wǎng)絡(luò)和基于網(wǎng)絡(luò)權(quán)值、閾值優(yōu)化的RDPSO-BP神經(jīng)網(wǎng)絡(luò)預(yù)測模型作對比。驗證結(jié)果表明,在相同條件下,BP神經(jīng)網(wǎng)絡(luò)擬合-預(yù)測精度以及泛化能力隨著隱層數(shù)的增加而提高。通過RDPSO算法優(yōu)化確定三隱層BP神經(jīng)網(wǎng)絡(luò)各隱層節(jié)點數(shù),可有效避免三隱層RDPSO-BP神經(jīng)網(wǎng)絡(luò)模型在預(yù)測過程中“過擬合”和“欠擬合”現(xiàn)象的發(fā)生,有效提高三隱層BP神經(jīng)網(wǎng)絡(luò)模型的預(yù)測精度和泛化能力。
c) 從實例預(yù)測結(jié)果來看,三隱層RDPSO-BP神經(jīng)網(wǎng)絡(luò)模型預(yù)測的平均對誤差絕對值為6.98%,預(yù)測精度遠(yuǎn)高于其他3種模型,表明三隱層RDPSO-BP神經(jīng)網(wǎng)絡(luò)模型具有較高的擬合、預(yù)測精度和泛化能力,模型及方法可為相關(guān)水質(zhì)預(yù)測研究提供參考。