史騰飛,吳娟
(1.鄭州科技學(xué)院,河南鄭州,450064;2.綏化學(xué)院,黑龍江綏化,152061)
水文預(yù)測能夠?yàn)樗Y源的管理、分配、以及自然災(zāi)害預(yù)警等方面的工作提供重要的依據(jù),其重要性不言而喻。而近年來,隨著自然環(huán)境變化的不確定性進(jìn)一步加劇,這對于水文領(lǐng)域的預(yù)報(bào)工作無疑提出了更高的要求,在這項(xiàng)工作中應(yīng)用各種先進(jìn)技術(shù)作為支撐已是大勢所趨。為此,在相關(guān)工作中應(yīng)當(dāng)引入人工神經(jīng)網(wǎng)絡(luò)技術(shù),以實(shí)現(xiàn)更為精準(zhǔn)的水文預(yù)測。
人工神經(jīng)網(wǎng)絡(luò)簡稱為ANN,始于上世紀(jì)40年代,隨著理論研究的不斷深入,人工神經(jīng)網(wǎng)絡(luò)也得到了不斷發(fā)展和完善。自上世紀(jì)90年代以來,人工神經(jīng)網(wǎng)絡(luò)相關(guān)的研究在我國逐步展開,并已經(jīng)取得了較大的進(jìn)展。整體來看,人工神經(jīng)網(wǎng)絡(luò)具有以下幾方面的特點(diǎn):一是容錯性較好;二是具有自組織、自學(xué)習(xí)和推理等多方面的自適應(yīng)能力;三是非線性連接,以確保系統(tǒng)具有更高性能[1-2]。
人工神經(jīng)算法主要通過模擬人的大腦組織進(jìn)行運(yùn)算,其主要由以下三部分構(gòu)成:“樹突”、“軸突”和“細(xì)胞體”,三者之間相互連接,同時(shí)也各自具有特定的功能[3]。信息由“樹突”輸入,經(jīng)“細(xì)胞體”處理后,再由“軸突”輸出,傳遞到下一個“神經(jīng)元”當(dāng)中。當(dāng)然,如輸出到下一個“神經(jīng)元”的信號參數(shù)尚未達(dá)到臨界值,則下一個“神經(jīng)元”則處于抑制狀態(tài),不會傳遞相應(yīng)的信號。相對于人的大腦的細(xì)胞神經(jīng)元而言,人工神經(jīng)網(wǎng)絡(luò)算法在此基礎(chǔ)上進(jìn)行了一定的簡化,神經(jīng)元的輸入和輸出的關(guān)系可表示為:
在公式中,xj(j為正整數(shù))是從各個神經(jīng)元組織傳遞進(jìn)來的信息,wij則表示神經(jīng)元i和神經(jīng)元j之間傳遞的權(quán)值。
BP神經(jīng)網(wǎng)絡(luò)屬于多層前饋型人工神經(jīng)網(wǎng)絡(luò)的一部分,其主要基于誤差反向傳播算法進(jìn)行。整體來看,BP神經(jīng)網(wǎng)絡(luò)具有以下幾方面的特點(diǎn)。
一是信息儲存采用分布式結(jié)構(gòu),數(shù)據(jù)信息的存儲并不依賴于單個處理器,而是網(wǎng)絡(luò)中每個處理器都分別儲存部分信息。二是采用信息并行處理,信息在神經(jīng)網(wǎng)絡(luò)模型中的處理和儲存能夠做到同步完成,與以往的處理方式相比,其效率和質(zhì)量均得到顯著提升。三是具有更強(qiáng)的自適應(yīng)和自學(xué)習(xí)能力,能夠通過對其訓(xùn)練來逐步確定合適的權(quán)值,以更好適應(yīng)外界環(huán)境的變化。四是容錯能力和魯棒性較強(qiáng),即便是損壞或丟失了部分網(wǎng)絡(luò)信息,模型仍然有能力找回并恢復(fù)原來的網(wǎng)絡(luò)信息,以確保網(wǎng)絡(luò)仍能夠繼續(xù)運(yùn)轉(zhuǎn)[4-5]。
該地區(qū)位于我國西北地區(qū)某河流下游的綠洲地帶,其經(jīng)濟(jì)社會發(fā)展的水源全部依靠一條起源于冰川融水的河流。近年來,該地區(qū)的耕地面積不斷擴(kuò)大,導(dǎo)致用水需求逐漸升高,部分地區(qū)出現(xiàn)了地下水超量開采的情況。在這種情況下,工作人員在該地區(qū)設(shè)置了數(shù)十個地下水觀測點(diǎn)位,對相關(guān)的數(shù)據(jù)信息進(jìn)行監(jiān)測。但由于這種觀測依賴于人工采樣,且采樣時(shí)間和采樣時(shí)機(jī)不固定,因此造成部分?jǐn)?shù)值的誤差較大,甚至部分?jǐn)?shù)據(jù)長期缺失,影響了觀測的準(zhǔn)確性。為此,需要采用人工神經(jīng)網(wǎng)絡(luò)技術(shù),以提高水文預(yù)測效果。
人工神經(jīng)網(wǎng)絡(luò)參數(shù)的確定主要分為以下幾個方面:
一是對隱含層和各層神經(jīng)元的數(shù)量進(jìn)行確認(rèn),在本次設(shè)計(jì)中,為了確保提高模型精度不會消耗大量的樣本訓(xùn)練時(shí)間,需要采用式算法進(jìn)行各隱含層對應(yīng)神經(jīng)元個數(shù)的確認(rèn),在開始階段使用少量神經(jīng)元,并依次增加神經(jīng)元的數(shù)量,找到能夠使得模型訓(xùn)練和預(yù)測都能達(dá)到較高精度的神經(jīng)元數(shù)量。
二是對激勵函數(shù)進(jìn)行選擇,激勵函數(shù)主要用于“神經(jīng)元”中的輸入信號求和以及其他的函數(shù)運(yùn)算,以得到輸出信號。在本次設(shè)計(jì)中,主要采用單極性Sigmoid函數(shù),其公式如下:
這種函數(shù)的非線性系數(shù)放大功能較好,能夠更好逼近網(wǎng)絡(luò)模型中輸出和輸入的非線性函數(shù)關(guān)系,為此本次設(shè)計(jì)中選用這種函數(shù)。
三是對模型訓(xùn)練次數(shù)進(jìn)行確定,為避免神經(jīng)元過多導(dǎo)致的過度擬合,因此在實(shí)際操作過程中,將原始數(shù)據(jù)按照特定比例分為訓(xùn)練樣本和測試樣本兩部分,預(yù)先設(shè)定訓(xùn)練次數(shù),待訓(xùn)練完成后,使用余下的測試樣本,對模型的誤差精度進(jìn)行檢驗(yàn),再通過多次類似的操作,找到最適合模型的訓(xùn)練次數(shù)即可。
四是對樣本數(shù)據(jù)進(jìn)行預(yù)處理,在本次設(shè)計(jì)中,主要采用標(biāo)準(zhǔn)化法,將樣本數(shù)據(jù)映射到相同的區(qū)間,以避免出現(xiàn)模型精度下降的問題。同樣,最終得到模型的預(yù)測結(jié)果時(shí),要按變換的逆變換得到標(biāo)準(zhǔn)的實(shí)際值。
五是設(shè)定恰當(dāng)?shù)膶W(xué)習(xí)速率,學(xué)習(xí)速率的數(shù)值一般在0.001-0.800之間,如學(xué)習(xí)速率取值過大則會造成模型訓(xùn)練過程中權(quán)值、閾值和模度等參數(shù)出現(xiàn)震蕩現(xiàn)象,導(dǎo)致模型不夠穩(wěn)定;而學(xué)習(xí)速率取值過小又會造成訓(xùn)練時(shí)間過長,影響到模型的效率。為此,在本次設(shè)計(jì)中,技術(shù)人員通過“試錯法”進(jìn)行反復(fù)試驗(yàn),最終得到最合適的學(xué)習(xí)速率數(shù)值。
六是對誤差期望值進(jìn)行設(shè)定,一般來說,期望誤差值在0.0001-0.0500之間,其主要由神經(jīng)網(wǎng)絡(luò)隱含層神經(jīng)元的數(shù)量決定。當(dāng)這個數(shù)值過小時(shí),容易出現(xiàn)過度擬合的情況,導(dǎo)致模型的泛化能力減弱。為此,在本次設(shè)計(jì)中,技術(shù)人員通過進(jìn)行反復(fù)試驗(yàn),確定最合理的誤差期望值。
(1)數(shù)據(jù)的歸一化處理
在本次設(shè)計(jì)中,針對采集到的數(shù)據(jù)而言,取前70%用于模型的訓(xùn)練,其余部分則用于檢驗(yàn)?zāi)P鸵约邦A(yù)測。當(dāng)然,在使用這些數(shù)據(jù)之前,還需要剔除其中的異常值,并以插值代替,以提高精確度??紤]到需要較快的速度進(jìn)行網(wǎng)絡(luò)訓(xùn)練,因此歸一化后的數(shù)據(jù)全部變換到[0.05,0.95]區(qū)間內(nèi),其數(shù)學(xué)表達(dá)式為:
預(yù)測結(jié)果可通過輸出數(shù)據(jù)運(yùn)用此公式的逆函數(shù)得到。
(2)預(yù)測模型性能評價(jià)標(biāo)準(zhǔn)
在本次設(shè)計(jì)中,為評估預(yù)測模型的性能,通常采用擬合度、納什效率系數(shù)和百分比偏差進(jìn)行預(yù)測,其中,擬合度代表觀測值與預(yù)測值曲線的擬合程度,其取值區(qū)間為[0,1],越接近1則證明擬合的優(yōu)度更好,反之亦然;納什效率系數(shù)則一般用來驗(yàn)證水文模型預(yù)測結(jié)果的好壞,其越接近1,則證明模擬結(jié)果越好,模型具有越高的可信度,如接近0,則表明模擬結(jié)果接近于觀測值的平均水平,即整體結(jié)果是可信的,若其為負(fù)數(shù),則證明該模型“不可信”;百分比偏差則用于衡量模型輸出小于或大于相應(yīng)的觀測值的百分比,并可以清楚地顯示模型的模擬性能。當(dāng)其為正值時(shí),證明模型的估計(jì)值過小,負(fù)值表示模型估計(jì)值大于實(shí)際值。在本次設(shè)計(jì)中,該人工神經(jīng)網(wǎng)絡(luò)模型的擬合度為0.81,納什效率系數(shù)為0.56,且百分比偏差絕對值小于25%,證明該模型非常好。
(3)輸入變量統(tǒng)計(jì)特征
用于模型驗(yàn)證的數(shù)據(jù)包括該地區(qū)所有觀測站記錄的歷史數(shù)據(jù)集合。
在神經(jīng)網(wǎng)絡(luò)的應(yīng)用環(huán)節(jié)當(dāng)中,考慮到尚不存在一個統(tǒng)一的準(zhǔn)則,且預(yù)測系統(tǒng)輸入和輸出之間的變量也不能被模型表達(dá)和分析,因此模型輸入變量的選擇只能從多個實(shí)驗(yàn)結(jié)果中找出最合適的組合??紤]到訓(xùn)練階段和測試階段各類型的數(shù)據(jù)存在著一定的差異,因此本次研究也對各個變量的影響程度進(jìn)行了分析,最終以觀測站的降水量數(shù)據(jù)作為數(shù)據(jù)序列。
(4)模型結(jié)構(gòu)與輸出
在本次設(shè)計(jì)中,使用三層BP神經(jīng)網(wǎng)絡(luò)對模型進(jìn)行訓(xùn)練和測試。在訓(xùn)練階段逐漸增加隱層神經(jīng)元數(shù)量,以提高神經(jīng)網(wǎng)絡(luò)的預(yù)測性能。當(dāng)訓(xùn)練階段已經(jīng)能夠取得最佳的輸出結(jié)果后,即可確定隱層神經(jīng)元的數(shù)量。在神經(jīng)網(wǎng)絡(luò)訓(xùn)練過程中,預(yù)先設(shè)定了網(wǎng)絡(luò)參數(shù),通過網(wǎng)絡(luò)前向傳播得到模型誤差。上一步獲得的誤差信號將從輸出層傳播到輸入層,以調(diào)整模型中的參數(shù)。此過程將繼續(xù),直到網(wǎng)絡(luò)輸出與預(yù)設(shè)目標(biāo)匹配。
在該環(huán)節(jié)中,主要采用梯度下降算法進(jìn)行訓(xùn)練,在開始時(shí)設(shè)定神經(jīng)元個數(shù)為1,然后神經(jīng)元的數(shù)量逐漸增加。最后,選擇最佳的神經(jīng)元個數(shù)作為模型的訓(xùn)練結(jié)構(gòu)。一般情況下,隱層神經(jīng)元的數(shù)量提高也會使得訓(xùn)練效果提高,但也容易造成模型準(zhǔn)確性的下降。為此,在本次設(shè)計(jì)中,設(shè)置隱層神經(jīng)元數(shù)量為7。
如上文所述,影響神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練和預(yù)測性能的原因是多方面的。為了提高模型的訓(xùn)練和預(yù)測精度,后續(xù)的模型仍需要在很多方面進(jìn)行調(diào)整。為此,首先,針對不同的網(wǎng)絡(luò)模型選擇適當(dāng)?shù)哪P驼`差目標(biāo),避免模型出現(xiàn)過度學(xué)習(xí)而影響預(yù)測精度的情況;其次,確定合適的隱層神經(jīng)元數(shù)量,以提高模型學(xué)習(xí)樣本信息的能力,有效提高模型預(yù)測的準(zhǔn)確性。最后,選擇與預(yù)測變量相關(guān)性強(qiáng)的變量,剔除與預(yù)測變量不相關(guān)的變量,這對于提高模型的訓(xùn)練和預(yù)測精度至關(guān)重要。通過相關(guān)實(shí)驗(yàn),其預(yù)測模型性能指標(biāo)如表1所示。
表1 人工神經(jīng)網(wǎng)絡(luò)預(yù)測模型的性能指標(biāo)
D6 0.811 0.826 -21.30 D7 0.887 0.878 -19.87 D8 0.906 0.916 -15.53
根據(jù)表1中的預(yù)測結(jié)果不難看出,本次設(shè)計(jì)的神經(jīng)網(wǎng)絡(luò)模型具有良好的預(yù)測精度,能夠較為準(zhǔn)確地進(jìn)行水文領(lǐng)域的相關(guān)預(yù)測行為,從而充分發(fā)揮其自身的特點(diǎn)和優(yōu)勢。
人工神經(jīng)網(wǎng)絡(luò)在水文領(lǐng)域中的應(yīng)用優(yōu)勢較為突出,能夠起到以往人工預(yù)測所無法達(dá)到的作用。當(dāng)然,目前人工神經(jīng)網(wǎng)絡(luò)的應(yīng)用尚處于初步的發(fā)展階段,因此,在今后的相關(guān)工作中,應(yīng)當(dāng)對其做進(jìn)一步的優(yōu)化和創(chuàng)新,對算法等內(nèi)容進(jìn)行改進(jìn),以克服現(xiàn)在尚存在的不足,更好滿足預(yù)測精度與建模效率等需要。