孫 毅
(太原理工大學(xué)水利科學(xué)與工程學(xué)院,山西太原030024)
土地是維系人類繁衍生息的基本資源。水土流失現(xiàn)象危害極嚴(yán)重,首先會直接導(dǎo)致可耕作土地資源的減少[1],其次流失的土壤會引起河道的淤積問題[2],此外水土流失也是土壤養(yǎng)分流失的重要誘因[3]。因此,開展水土流失機(jī)制、防治和預(yù)報等方面的工作,對環(huán)境保護(hù)、農(nóng)業(yè)增產(chǎn)和促進(jìn)經(jīng)濟(jì)社會的可持續(xù)性發(fā)展具有極其重要的作用和意義。
目前,諸多學(xué)者從水土流失機(jī)制和預(yù)測2個方面開展了較多的科學(xué)研究,并取得了一定的成果。在水土流失機(jī)制方面,主要開展了降水[4-5]、坡度和坡型[6-7]、植被類型和植被覆蓋度[8-9]、土壤類型[10-11]、耕作措施[12-13]對土壤侵蝕量的影響研究,結(jié)果表明,這幾項因素對侵蝕量的影響均較為顯著。在土壤侵蝕預(yù)測方面,主要構(gòu)建了一系列的經(jīng)驗?zāi)P停?4-16]和物理模型[17-18],隨著人工智能算法的發(fā)展,反向傳播(back propagation,簡稱BP)神經(jīng)網(wǎng)絡(luò)在土壤侵蝕預(yù)測方面得到了廣泛的應(yīng)用[19-23]。但前人建立的模型輸入項常常忽略了一些重要因素,主要包括植被覆蓋程度[20]、土質(zhì)因素[21-22]、降水[23]等。此外,前人所建立的模型還存在適用范圍小、所采用的傳統(tǒng)算法存在搜索空間大,易陷入局部極值點等問題,這幾點限制了前人建立的模型在實際預(yù)測中的廣泛應(yīng)用。因此,對全國較大范圍內(nèi)土壤侵蝕量預(yù)測的研究有待進(jìn)一步深入,模型優(yōu)化算法的改進(jìn)也是十分必要的。
萬有引力搜索算法(gravitational search algorithm,簡稱GSA)和人群搜索算法(seeker optimization algorithm,簡稱SOA)具有較好的收斂速度和尋優(yōu)精度。目前,基于萬有引力算法和人群搜索算法優(yōu)化后的BP神經(jīng)網(wǎng)絡(luò)模型在水土流失方面的預(yù)測還未見相關(guān)報道,同時哪種模型更適合土壤侵蝕預(yù)測研究同樣也有待進(jìn)一步深入。因此,本研究旨在構(gòu)建基于萬有引力算法和人群搜索算法優(yōu)化的BP神經(jīng)網(wǎng)絡(luò)模型,實現(xiàn)土壤侵蝕的準(zhǔn)確預(yù)報,以期為水土流失預(yù)測工作提供支持。
BP神經(jīng)網(wǎng)絡(luò)是目前應(yīng)用最廣泛的神經(jīng)網(wǎng)絡(luò)模型之一。圖1為BP神經(jīng)網(wǎng)絡(luò)的工作原理和基本網(wǎng)絡(luò)結(jié)構(gòu),它主要由輸入層、隱含層和輸出層3部分構(gòu)成,m、q、n分別為這3層神經(jīng)元的節(jié)點數(shù),三者的職責(zé)各不相同,輸入層負(fù)責(zé)接收外界的輸入信息、隱含層負(fù)責(zé)內(nèi)部信息的變換處理、輸出層負(fù)責(zé)向外界傳輸處理結(jié)果。完成1次完整的正向傳播處理后,若輸出信息與期望不吻合,便進(jìn)入誤差反向傳播機(jī)制,通過不斷調(diào)整各層之間的網(wǎng)絡(luò)權(quán)值和閾值,使神經(jīng)網(wǎng)絡(luò)的誤差平方和最小,如此反復(fù)直至達(dá)到期望要求為止。
萬有引力算法將所有粒子當(dāng)作有質(zhì)量的物體,在尋優(yōu)過程中,所有粒子做無阻力運動。每個粒子都會受到空間中其他粒子萬有引力的影響,并產(chǎn)生加速度,向質(zhì)量更大的粒子運動。由于粒子的質(zhì)量與粒子的適度值相關(guān),適度值大的粒子其質(zhì)量也會更大。因此,質(zhì)量小的粒子在朝質(zhì)量大的粒子趨近的過程中逐漸逼近最優(yōu)解。GSA的具體流程為
(1)設(shè)置初始化算法中所有粒子的位置與加速度,并設(shè)置迭代次數(shù)與算法中的參數(shù)。
(2)對每個粒子計算該粒子的適應(yīng)值,利用公式(1)更新重力常數(shù)。
式中:G(t)表示隨引力變換的萬有引力常數(shù);G0表示在t0時刻的G取值;T表示最大迭代次數(shù);t表示時間;a表示粒子的加速度。
(3)由計算得到的適應(yīng)度,利用公式(2)和公式(3)計算每個粒子的質(zhì)量。
式中:fiti(t)表示粒子i的適應(yīng)值;best(t)表示t時刻的最優(yōu)解;worst(t)表示t時刻的最差解;mi(t)、mj(t)表示將第 i、j個粒子的適應(yīng)值分別規(guī)范化到[0,1]之間;Mi(t)為粒子i的質(zhì)量;N為粒子數(shù)。
(4)利用公式(4)至公式(7)計算每個粒子的加速度。
式中:ε表示1個非常小的常量;Maj(t)表示作用粒子j的慣性質(zhì)量;Rij(t)表示粒子xi和xj的歐氏距離;(t)表示在第t次迭代過程中粒子i受到的作用力;(t)表示在第t次迭代過程中,個體j作用于個體i的力;Mii(t)表示被粒子的慣性質(zhì)量;Mpi(t)表示作用粒子i的慣性質(zhì)量;(t)、(t)為第j個和第i個粒子在第k維空間的位置;xi(t)和xj(t)為t時刻第i個和第j個粒子的位置;randj表示[0,1]區(qū)間的偽隨機(jī)數(shù);t)表示粒子i在第k維空間t時刻的加速度。
(5)根據(jù)公式(8)計算每個粒子的速度,然后更新粒子的位置。
(6)如果未滿足終止條件,返回步驟(2);否則,輸出此次算法的最優(yōu)解。
SOA模擬人的智能搜索行為,立足傳統(tǒng)的直接搜索算法,以搜索隊伍為種群,搜尋者位置為候選解,通過模擬人類搜尋“經(jīng)驗梯度”和不確定推理,完成對問題測定的最優(yōu)求解。SOA的實現(xiàn)步驟及具體過程如下:
(1)t→0。
(2)初始化。在可行解域隨機(jī)產(chǎn)生s個初始位置:
其中,i=1,2,3,…,s;t=0;M 為搜索空間中維數(shù) j的最大值。
(3)評價。計算每個位置的目標(biāo)函數(shù)值。
(4)搜尋策略。計算每個個體i在每一維j的搜索方向dij(t)及步長αij(t)。
(5)位置更新。按公式(9)更新每個搜尋位置。
(6)t→t+1。
(7)若滿足停止條件,停止搜索;否則,轉(zhuǎn)至步驟(3)。
其中,每一步分別計算每個搜尋者i在每一維j的搜索方向 dij(t)和步長 αij(t),且 αij(t)≥0,dij(t)∈{ -1,0,1)(i=1,2,3,…,s;j=1,2,3,…,M)。dij(t)=1 表示搜尋者 i沿著 j維坐標(biāo)的正方向前進(jìn);dij(t)=-1表示搜尋者i沿著j維坐標(biāo)的負(fù)方向前進(jìn);dij(t)=0表示搜尋者i沿著j維坐標(biāo)保持靜止。確定搜索方向和步長后,根據(jù)公式(10)和公式(11),進(jìn)行位置更新,通過不斷更新搜尋者的位置,得到更好的搜尋者,直到得到滿意的結(jié)果。
本研究中的數(shù)據(jù)來源于《中國水土保持公報》[24],樣本為全國不同水土流失典型監(jiān)測點的土壤侵蝕量資料。圍繞影響土壤侵蝕量的諸多因素,從中篩選出物理意義表達(dá)明確和影響程度較高的5項作為該模型的輸入項,分別為地形、坡度、土壤類型、植被措施和降水。該模型的輸出項為土壤侵蝕量,總樣本數(shù)為194個,以7∶3的比例將該樣本分為訓(xùn)練集和預(yù)測集,即樣本數(shù)分別為136個和58個。
當(dāng)隱含層數(shù)量增加時,一定程度上會提高模型精度,但也可能會造成模型過于復(fù)雜等問題,通常選擇單隱含層為宜。隱含層節(jié)點數(shù)量一般通過經(jīng)驗法與試算法相結(jié)合進(jìn)行確定。根據(jù)經(jīng)驗公式(12)可知,最優(yōu)節(jié)點數(shù)范圍為4~12。輸入層和隱含層、隱含層和輸出層之間的信息傳遞分別采用logistic函數(shù)和purlin函數(shù)進(jìn)行傳遞,神經(jīng)網(wǎng)絡(luò)的訓(xùn)練函數(shù)為trainlm,訓(xùn)練目標(biāo)誤差為0.000 1,最大訓(xùn)練次數(shù)為5 000次。
式中:m為輸入層節(jié)點數(shù);q為隱含層節(jié)點數(shù);n為輸出層節(jié)點數(shù);a為1到10之間的整數(shù)。
由圖2可知,當(dāng)隱含層節(jié)點數(shù)增加時,神經(jīng)網(wǎng)絡(luò)模型模擬值與實測值的平均相對誤差(mean absolute percentage error,簡稱MAPE)和均方根誤差(root mean square,簡稱RMSE)均呈現(xiàn)先逐漸減小后逐漸增大的變化趨勢。在多次試算中,當(dāng)隱含層節(jié)點數(shù)為7個時,經(jīng)過2 384次訓(xùn)練后,模型的訓(xùn)練誤差為7.108 9×10-5,能夠達(dá)到模型的訓(xùn)練精度要求。因此,認(rèn)為7個為合理的節(jié)點數(shù)。綜上所述,本研究中模型的拓?fù)浣Y(jié)構(gòu)為5-7-1。
圖3為訓(xùn)練樣本的訓(xùn)練效果圖。由圖3-a可知,BP、GSA-BP和SOA-BP模型的預(yù)測值與實測值間的線性方程的斜率分別為 0.988 3、0.998 3、1.010 0,說明所建立的 3 種模型的預(yù)測值和實測值間均具有較好的一致性。由圖3-b可知,BP、GSA-BP、SOA-BP模型的絕對百分誤差分別介于0.11% ~11.83%、0.07% ~9.85%和 0.10% ~6.70% 之間,平均相對誤差分別為6.73%、4.44%和 3.18%,3種模型的訓(xùn)練誤差大小表現(xiàn)為BP>GSA-BP>SOA-BP。此外,采用t檢驗統(tǒng)計學(xué)方法對3種模型的預(yù)測值和實測值間的差異性進(jìn)行分析。由表1可知,3種模型的預(yù)測值與實測值之間均無統(tǒng)計學(xué)差異。綜上所述,3種模型均滿足較好一致性、較高模擬精度的條件,達(dá)到了訓(xùn)練要求,均可以用來進(jìn)行土壤侵蝕量的預(yù)測工作。總體而言,SOA-BP模型的訓(xùn)練效果最優(yōu)。
表1 實測值與預(yù)測值t配對檢驗結(jié)果(訓(xùn)練組)
由圖4-a可以看出,BP、GSA-BP、SOA-BP模型的預(yù)測值與實測值間線性方程的斜率分別為0.988 3、0.989 0和0.999 5,說明建立的3種模型的預(yù)測值和實測值間均具有較好的一致性。由圖4-b可知,BP、GSA-BP、SOA-BP模型的絕對百分誤差分別介于 0.35% ~13.89%、0.43% ~9.88%、0.01% ~6.81%之間,平均相對誤差分別為7.60%、5.63%、3.62%,說明 SOA-BP模型的預(yù)測誤差最小。此外,采用t檢驗統(tǒng)計學(xué)方法對3種模型預(yù)測值和實測值間的差異性進(jìn)行分析。由表2可知,3種模型的預(yù)測值與實測值間的差異性均未達(dá)到顯著水平。綜上所述,3種模型的預(yù)測值與實測值之間具有較好的一致性和較高的模擬精度,為土壤侵蝕預(yù)測提供了一種高效準(zhǔn)確的定量研究方法。相對而言,3種模型的預(yù)測效果好壞表現(xiàn)為SOA-BP>GSA-BP>BP。
表2 實測值與預(yù)測值t配對檢驗結(jié)果(預(yù)測組)
本研究以我國水土流失典型監(jiān)測點土壤侵蝕模數(shù)為樣本,建立了基于BP神經(jīng)網(wǎng)絡(luò)的土壤侵蝕預(yù)測模型,并分別采用萬有引力搜索算法和人群搜索算法對權(quán)值和閾值進(jìn)行優(yōu)化,從而得到GSA-BP、SOA-BP預(yù)測模型,并對3種模型的性能好壞進(jìn)行對比研究。主要結(jié)論為(1)GSA-BP和SOABP模型分別融合了2種算法的局部搜索、全局迭代能力和神經(jīng)網(wǎng)絡(luò)的泛化能力,可以實現(xiàn)全國水土流失典型監(jiān)測點土壤侵蝕量的準(zhǔn)確預(yù)報。(2)BP、GSA-BP、SOA-BP模型訓(xùn)練樣本的平均相對誤差分別為6.73%、4.44%、3.18%,3種模型的訓(xùn)練樣本誤差大小表現(xiàn)為BP>GSA-BP>SOA-BP。(3)BP、GSA-BP、SOA-BP模型預(yù)測樣本的平均相對誤差分別為7.60%、5.63%、3.62%,3種模型的預(yù)測誤差大小表現(xiàn)為BP>GSA-BP>SOA-BP。