張?zhí)扃?/p>
(江蘇省泰州引江河管理處, 江蘇 泰州 225300)
近年來,隨著經(jīng)濟發(fā)展帶來河、湖等水環(huán)境污染、水資源短缺問題。健康的河湖生態(tài)環(huán)境對促進當?shù)厣鷳B(tài)平衡、生物多樣性等發(fā)揮著至關重要的作用。因此,建立一套既符合理論,又滿足實際需求的河湖生態(tài)健康評價方法迫在眉睫。
針對河湖生態(tài)健康評價方法,眾多專家和學者展開大量而深入的研究。崔東文等[1]通過篩選河流生態(tài)健康評價指標,利用隨機森林算法建立河湖生態(tài)評價模型。王桂林等[2]利用權重系數(shù)法對相同準則層下的不同指標層系數(shù)賦予不同權重數(shù)值,通過求和方式計算判定河流的生態(tài)健康程度。張智偉[3]通過考慮河流的自然和社會共計38個量化屬性,構建目標層、準則層等5層體系,以此來量化河流的健康程度。段長桂等[4]通過克服投影尋蹤模型求解方法的缺點,借助于猴群算法對河流健康進行評價。上述針對河湖生態(tài)健康評價方法存在對指標賦權人為主觀性大、建模復雜困難、精度低等不足之處。
考慮上述應用背景的特殊性,基于BP(back propagation)神經(jīng)網(wǎng)絡算法的河湖生態(tài)健康評價方法被提出。本文通過構建BP神經(jīng)網(wǎng)絡架構,選取合適的輸入層、隱藏層以及輸出層節(jié)點個數(shù),學習歸納輸入層到輸出層的映射關系,從而可以有效對河湖的生態(tài)健康狀況進行評價。
BP神經(jīng)網(wǎng)絡屬于人工智能算法,由于其不涉及狀態(tài)變量的建模問題,主要利用數(shù)據(jù)驅動的思想同時借助于大量的訓練數(shù)據(jù)來實現(xiàn)對權重和閾值的尋優(yōu)操作。BP神經(jīng)網(wǎng)絡的計算主要包括前向和反向傳播。BP神經(jīng)網(wǎng)絡架構如圖1所示,其主要包括輸入層,隱含層和輸出層。
圖1 BP神經(jīng)網(wǎng)絡架構
BP神經(jīng)網(wǎng)絡的訓練步驟如下所示,主要涉及到BP神經(jīng)網(wǎng)絡模型的初始化操作,模型的構建以及權重更新等。
對河湖健康評價模型中的權重進行隨機初始化,利用反正切函數(shù)歸一化:
(1)
將BP神經(jīng)網(wǎng)絡的狀態(tài)參量進行整合,并且作為輸入層的輸入向量,輸入層節(jié)點的個數(shù)主要取決于河湖健康評價系統(tǒng)中不相關評價指標的個數(shù):
X=(x1,x2,...,xi,...,xn)T
(2)
計算河湖健康評價系統(tǒng)中單個隱含節(jié)點的輸出。根據(jù)向量X、權值wij和閾值a,求隱含層輸出H,其主要是借助不同的權重系數(shù)將河湖健康評價系統(tǒng)中的評價指標耦合在一起。單個隱含層節(jié)點輸出為
netj=w1jx1+w2jx2+...+wnjxn
(3)
最終隱含層單個神經(jīng)元的輸出:
Hj=f(netj-aj)
(4)
計算隱藏層所有節(jié)點的輸出。由于所建立的隱藏層的層數(shù)和隱藏層節(jié)點的個數(shù)不止一個。因此,假定隱藏層的節(jié)點數(shù)目為l,將所有的輸出歸一化操作,則隱含層的輸出向量:
H=(H1,H2,...,Hj,...,Hl)T
(5)
計算輸出層節(jié)點輸出大小。BP網(wǎng)絡所具備強大的回歸能力和擬合能力,原因在于隱藏層是多層結構以及每一層具備多個節(jié)點。將所有隱藏層節(jié)點的輸出綜合起來作為下一隱藏層節(jié)點的輸入,以此類推可以使得BP神經(jīng)網(wǎng)絡自動的向前傳播。最后根據(jù)輸出層H、權值wjk和閾值b,可以求得BP神經(jīng)網(wǎng)絡的預測輸出值O。輸出層各神經(jīng)元的輸出值:
netk=w1kH1+w2kH2+...+wlkHl
(6)
最終輸出層單個神經(jīng)元的輸出值:
Ok=g(netk-bk)
(7)
輸出層期望得到的健康指數(shù)表示為
Y=(y1,y2,...,yk,...,ym)T
(8)
計算河湖生態(tài)健康系統(tǒng)預測誤差。河湖健康評價系統(tǒng)得到的預測健康指數(shù)與期望得到的健康指數(shù)存在誤差,誤差值大小代表河湖健康評價系統(tǒng)準確度大小。通過期望輸出Y和預測輸出O求預測誤差e:
ek=Yk-Ok
(9)
由于河湖健康評價系統(tǒng)的期望值與預測值存在誤差,BP神經(jīng)網(wǎng)絡通過反向傳播調(diào)整權重將誤差縮小。根據(jù)預測誤差e求解新的權值wij,wjk:
(10)
通過不斷循環(huán)迭代上述計算過程,會使得河湖健康評價系統(tǒng)的預測健康指數(shù)和期望健康指數(shù)之間的差距越來越小。
圖2 BP神經(jīng)網(wǎng)絡算法示意
為了能夠更加清晰地表述BP算法的更新權值和閾值的過程,可用圖 2表示。當網(wǎng)絡誤差達到預設精度,則結束BP神經(jīng)網(wǎng)絡算法的迭代過程。否則,重復以上過程,直到滿足停止條件。
利用BP神經(jīng)網(wǎng)絡對河湖生態(tài)健康評價系統(tǒng)進行研究的過程中,需要全面考慮影響河湖生態(tài)健康的各層面指標。力求做到各指標之間不冗余、可區(qū)分性大、覆蓋面廣、可充分代表河湖生態(tài)健康的主要特征。
本研究將18項評價指標按照標準進行劃分,除此之外,將河湖的生態(tài)健康評價共分為5類:健康、微健康、亞健康、微病態(tài)以及病態(tài)[5],為便于利用數(shù)字化的方式對BP神經(jīng)網(wǎng)絡進行訓練和測試,將上述的河湖生態(tài)健康分別用0,1,2,3,4進行表示[6]。
收集江蘇省近幾年河海生態(tài)的相關資料,構造訓練和測試樣本。在標準的閾值范圍內(nèi)采用隨機生成的方法構造200組樣本,其中前170組用于BP神經(jīng)網(wǎng)絡模型的訓練,最后30組用于檢驗模型。所生成樣本類型,見表1。
本研究將影響河湖生態(tài)健康的指標分為4類,其分別是:水文特征、水質(zhì)特征、水生態(tài)特征以及社會服務特征。每一個大類中包括若干河湖生態(tài)健康評價指標[5],共計18項評價指標。
本研究根據(jù)河湖評價指標設定輸出層的個數(shù)為18個,根據(jù)實際的需求將隱含層的數(shù)量設置為3層[7-8],隱藏層的數(shù)目分別是50、30、50。依據(jù)河湖健康評價等級將輸出層的節(jié)點個數(shù)設置為5個。同時設定BP神經(jīng)網(wǎng)絡超參數(shù):系統(tǒng)迭代誤差為0.001,BP神經(jīng)網(wǎng)絡的迭代次數(shù)為1 000次,最終的訓練曲線見圖3。
圖3 誤差結果
圖3為BP神經(jīng)網(wǎng)絡對河湖生態(tài)健康評價系統(tǒng)中訓練樣本的結果,隨著迭代的進行,BP神經(jīng)網(wǎng)絡訓練誤差呈現(xiàn)下降的趨勢,特別是在訓練初期,誤差下降迅速。在迭代的后期,BP神經(jīng)網(wǎng)絡呈現(xiàn)收斂趨勢,誤差下降緩慢。圖4是學習率的變化圖,從圖中可以看出,學習率逐步下降。圖5是梯度變化值,從圖中可以看出,在迭代的初期梯度值迅速下降,在迭代的后期梯度值幾乎不變。整個BP神經(jīng)網(wǎng)絡算法在迭代次數(shù)為537次的時候,滿足所設置的誤差需求,停止迭代。
為了證明本研究針對河湖生態(tài)健康評價系統(tǒng)所提出的BP神經(jīng)網(wǎng)絡算法的有效性,本文將上述所得到的BP神經(jīng)網(wǎng)絡模型應用到河湖生態(tài)健康評價測試集,結果如圖6所示。
表1 河湖生態(tài)健康評價指標
圖4 學習率曲線
圖5 梯度變化曲線
圖6 BP神經(jīng)網(wǎng)絡測試結果
圖6表示的是BP神經(jīng)網(wǎng)絡對河湖生態(tài)健康預測結果。測試樣本的個數(shù)為30個。縱坐標代表生態(tài)健康指數(shù),橫坐標代表所測試樣本的序號。其中圖中紅色曲線代表河湖生態(tài)期望生態(tài)健康指數(shù),藍色曲線代表使用BP神經(jīng)網(wǎng)絡算法對河湖生態(tài)健康預測結果??梢钥闯?,BP神經(jīng)網(wǎng)絡預測的藍色曲線基本與期望的紅色曲線相吻合,證明了本研究所提出算法的有效性。
本文通過搭建BP神經(jīng)網(wǎng)絡模型、確立河湖生態(tài)健康評價指標,利用BP神經(jīng)網(wǎng)絡算法對河湖生態(tài)健康樣本進行學習歸納,最終可針對河湖生態(tài)健康指數(shù)做出預測。同時可將所獲得的BP神經(jīng)網(wǎng)絡預測模型應用到工程實踐當中,為河湖生態(tài)健康預測提供一定的研究基礎。