李旭強,鄭秀清,薛 靜,陳軍鋒,陸帥帥
(太原理工大學水利科學與工程學院,太原 030024)
季節(jié)性凍融期土壤含水量對植被和作物生長以及區(qū)域生態(tài)系統(tǒng)均具有重要作用,準確預測凍融期土壤含水率對制定合理的春灌和春耕措施有重要的指導意義。學者從不同的視角對土壤含水率進行預測,最傳統(tǒng)的方法是利用數理統(tǒng)計法、時間序列法等建立線性回歸方程進行預測。但是由于土壤含水率具有復雜的非線性特征,是多因素相互受制,故而傳統(tǒng)方法預測結果差異較大。目前,隨著人工智能和大數據技術的迅速發(fā)展,一些新的預測方法應運而生,如機器學習[1,2]、遙感[3]等。作為機器學習的一類,BP神經網絡(BPNN)大量應用于預測土壤含水率[4,5],其具有強大非線性映射、高度泛化、自適應學習良好等能力,廣泛應用于擬合。但是也存在容易陷入局部極小值、收斂速度慢、全局搜索能力弱等缺陷,因此,需要優(yōu)化算法對傳統(tǒng)的BPNN進行優(yōu)化改進。遺傳算法(GA)、粒子群算法(PSO)雖然能夠有效地優(yōu)化BPNN彌補缺陷,但其算法比較復雜,運算速度較慢。鑒于此,本文在利用主成分分析法篩選確定凍融期土壤含水率主要影響因子的基礎上,基于天牛須搜索(BAS)對BPNN模型進行改進,建立了一種能夠進行全局搜索、尋優(yōu)速度快、運算量小、預測精度較高的BAS-BPNN模型,利用該模型對凍融期土壤含水率進行預測,并與其他同類模型進行比較分析。
試驗區(qū)位于山西省晉中盆地太谷均衡實驗站,海拔高程為773.0~783.0 m。屬于典型的大陸性半干旱季風性氣候,冬春多風少雨雪,降水主要集中在夏季,年平均降水量約415 mm,年水面蒸發(fā)約1 642 mm。試驗于2016年11月22日至2017年3月15日進行,期間太陽總輻射為91.59 kJ/cm2,平均氣溫1.9 ℃,日最低氣溫為-16.0 ℃(1月19日),總降水量為32.1 mm。
試驗站設有地面氣象觀測站,其主要觀測項目為:太陽輻射I、地表土壤溫度TS、氣溫TA、風速v、氣壓PA、相對濕度RH、降水P、水面蒸發(fā)量EW和土壤蒸發(fā)量ES。觀測時段為每天8∶00、14∶00、20∶00。土壤溫度、土壤含水率θ和土壤蒸發(fā)量樣本值是以周為單位同步進行監(jiān)測,監(jiān)測時段8∶00-9∶00,共監(jiān)測19組。土壤溫度用預埋的熱敏電阻傳感器測定,土壤含水率采用取土烘干法測定;土壤蒸發(fā)量利用自制微型蒸發(fā)器監(jiān)測。
氣象觀測站監(jiān)測的7個因子取3次樣本數據的平均值,而按周監(jiān)測的θ、TS和ES三個因子的樣本數偏少,直接進行建模訓練與測試,預測結果達不到目標精度。因此,需要用插值法對θ、TS和ES三個因子內插生成114組日數據,以滿足BAS-BPNN模型預測凍融期土壤含水率的要求。
1.3.1 BP神經網絡
誤差反向傳播多層前饋神經網絡簡稱為BP神經網絡(Back-Propagation Neural Network)[6]。BP網絡由信號的前向傳遞與誤差的反向傳播兩個過程組成,前向傳遞時,輸入信號經各隱層逐層處理后,從輸入層傳向輸出層。如果輸出層的實際輸出達不到期望的輸出,則轉入誤差的反向傳播,不斷地調整網絡的權值和閾值,使得訓練網絡達到預先設定精度要求或學習次數。
1.3.2 BAS算法原理
天牛須搜索(beetle antennae search, BAS)算法是在2017年提出的一種受天牛覓食原理啟發(fā)的適用于函數優(yōu)化的新智能算法。與果蠅算法、遺傳算法、粒子群算法、灰狼算法等諸多智能優(yōu)化算法相類似,但BAS算法在未知函數的具體形式和梯度信息的條件下即能自動尋求最優(yōu)結果,可以大大提高運行效率。其仿生原理為:天牛是利用食物所散發(fā)出的氣味強弱來覓食,而并不知道食物的具體位置。天牛利用兩只觸角,如果左邊觸角收到的氣味強度大于右邊觸角收到的氣味強度,則天牛下一步就會朝左邊飛,相反則會朝右邊飛[7]。其簡化模型如圖1所示。
圖1 天牛須簡化模型Fig.1 Beetle antennae simplified model
BAS算法建立數學模型的步驟如下:
(1)創(chuàng)立天牛須朝向的隨機向量,并作歸一化處理:
(1)
式中:rands()表示隨機函數;m為空間維度。
(2)創(chuàng)立天牛左右須空間坐標:
(2)
式中:xrt、xlt分別表示天牛右須、左須在第t次迭代時位置坐標;xt表示天牛第t次迭代時質心坐標;d0表示兩須之間間距。
(3)依照適應度函數f(x)判斷左右兩須收到的氣味強度f(xl)和f(xr)的值。
(4)通過比較f(xl)和f(xr)的大小,進行迭代以更新天牛位置:
xt+1=xt-step·dir·sign[f(xrt)-f(xlt)]
(3)
式中:step表示第t次迭代時的步長因子;sign()為符號函數。
1.3.3 BAS-BPNN模型建立
為了更加精確快速的預測凍融期土壤含水率,在采用PCA對試驗數據進行降維的基礎上利用天牛須搜索算法優(yōu)化BPNN的初始權值和閾值,并將其應用到已經設定好的BPNN中,從而構造出最終的BAS-BPNN預測模型。BAS-BPNN預測模型的流程如圖2所示,具體建模步驟如下:
(1)選取的輸入參數7個,輸出參數1個,即輸入層神經元個數為7,輸出層神經元個數為1,隱含層神經元個數經多次訓練確定為15,則模型結構為7-15-1。
(2)初始步長因子step選取可以盡量的大。計算迭代中變步長用式(4):
stept+1=stept·eta(t=0,1,2,…,n)
(4)
式中:eta的值在[0,1]接近1,通常取eta=0.95。
(3)用模型輸出值和實測值的均方誤差MSE作適應度函數,函數表達式為:
(5)
式中:tsim(i)、Tsim(i)分別是第i個樣本的模型期望輸出值和實測值,N是輸入樣本數。
(4)隨機數x=rand(k,1)作為天牛的初始位置保存于X中。
(5)按式(2)更新天牛左右須位置,并比較求出的左右兩須的適應度函數值f(xl)、f(xr)大小,利用式(3)更新天牛位置,調整BPNN的權值和閾值。若適應度函數值優(yōu)于Y,相應更新Y,X。
(6)若適應度函數值達到預設的精度0.001或是迭代的最大次數100次,轉下一步驟,否則,返回步驟(5)繼續(xù)迭代。
(7)當算法停止迭代時,X的值即為BPNN最優(yōu)的初始權值和閾值。
(8)生成的最優(yōu)解與通過主成分分析確定的樣本值輸入BPNN不斷地訓練并計算得到輸出結果,利用MATLAB仿真圖效果獲得最佳模型,形成凍融期含水率預測模型。
圖2 BAS-BPNN預測模型流程Fig.2 Flowing of BAS-BPNN forecasting model
1.3.4 模型精度評價指標
本文選取用決定系數R2和相對誤差Ei來表征模型預測精度和性能優(yōu)劣:
(6)
(7)
凍融期土壤含水率影響因子作為BAS-BPNN模型的輸入參數,即神經網絡神經元個數,直接決定輸入層到隱含層、隱含層到輸出層的權值和閾值。土壤含水率與影響因子之間的關系體現在模型預測精度的高低上,因此,凍融期土壤含水率影響因子的詳細分析和主要因子的選擇是至關重要的。
凍融期該試驗區(qū)剖面土壤含水率主要補給來源為降水或融雪水入滲,直接影響土壤含水率的大小。土壤含水率主要耗散方式為土壤蒸發(fā),影響土壤蒸發(fā)的因子對土壤含水率產生間接影響。因此,除了直接影響土壤含水率變化的降水和蒸發(fā)兩個因子外,還選取了影響土壤蒸發(fā)的因子:太陽輻射、氣溫、地表溫度、風速、相對濕度、氣壓和水面蒸發(fā)。其中,太陽輻射、氣溫、降水量、風速受其他氣象因子的影響較小,獨立性較大;而地表溫度、蒸發(fā)量、相對濕度、氣壓等很大程度上受以上4個因子的影響與制約。土壤凍融期,隨著太陽輻射的不斷降低,引起氣溫與地表溫度的下降,導致土壤水分凍結從而引起土壤蒸發(fā)能力的降低,而土壤蒸發(fā)能力的變化對近地表土壤含水率產生直接影響。相對濕度較高,水汽接近飽和,增大大氣壓強,土壤蒸發(fā)減小,土壤就能長時間保持濕潤[8],相應的土壤含水率會升高且保持在一定的高含量水平。風速增大會促進蒸發(fā),從而減小地表土壤含水率。
與凍融期土壤含水率有關的9個影響因子中,某些因子可能會對預測精度有不利影響或貢獻極小,為了避免信息重疊,有必要篩選剔除這類因子,本文采用主成分分析法(PCA)選取對含水率影響較大的因子。利用SPSS軟件得到的成分特征值及方差貢獻率見表1,各主成分得分系數矩陣見表2。
表1 成分特征值及方差貢獻率Tab.1 Eigenvalue and variance contribution rate of principal component
由表1可知,前3個主成分特征值均大于1,且累積貢獻率達86.231%(>85%)。故選取F1、F2、F3主成分替代原來9個指標的大部分信息。
表2 主成分得分系數矩陣Tab.2 Principal component score coefficient matrix
由表2可知,對于F1主成分得分系數較大的依次是I(0.251)、EW(0.245)、TS(0.229)、TA(0.225),可以看成是反映太陽輻射、水面蒸發(fā)、地表溫度、氣溫的含水率綜合影響因子;對于主成分F2中ES(0.455)、P(0.451)和RH(0.166)得分系數較大,可看作是反映土壤蒸發(fā)、降水和相對濕度的含水率綜合影響因子;主成分F3得分系數較大依次是v(0.524)、RH(-0.511),可認為是反映風速和相對濕度的含水率綜合影響因子。
主成分F1的方差貢獻率為45.168%,對含水率的影響最大;主成分F2的占比為23.183%,對含水率的影響次之;而主成分F3只占17.880%,對含水率的影響最小。綜上所述,將主成分F1和主成分F2看成是影響土壤含水率的主要部分,其主要影響因子分別是:太陽輻射、水面蒸發(fā)、地表溫度、氣溫、土壤蒸發(fā)、降水和相對濕度。
在MATLAB R2019a環(huán)境下,為了盡量消除輸入參數的影響,使用了mapminmax 函數將樣本數據進行歸一化處理,范圍為[-1,1]。運用附加動量法訓練網絡,訓練函數為trainlm;網絡學習率net.trainParam.lr=0.01;允許訓練的最大次數net.trainParam.epochs=1 000;訓練期望誤差net.trainParam.goal=0.001。在監(jiān)測到的114組樣本數據中,選取94組作訓練數據,其余20組作測試數據。訓練達到指定精度時,得到優(yōu)化后的權值和閾值,見表3所示。
表3 最優(yōu)BPNN部分權值和閾值Tab.3 Decentralized value and threshold value of optimal BPNN
本文以凍融期監(jiān)測的114組凍融環(huán)境要素和地表土壤含水率為研究樣本總體,從中隨機選取94組樣本作為訓練集,剩余20組選作測試集,以MATLAB 2019a為平臺,對模型進行驗證。利用訓練好的BAS-BPNN 含水率預測模型對2016年11月至2017年3月含水率進行預測,預測結果誤差分析見表4。
表4 BAS-BPNN模型含水率預測訓練與測試誤差分析Tab.4 BAS-BPNN moisture prediction training and test error analysis
為了更加直觀地觀察預測結果,得到凍融期土壤含水率測試集預測值與實測值對比圖,如圖3所示。
圖3 BAS-BPNN模型含水率測試值預測Fig.3 BAS-BPNN water content test value prediction
由表4和圖3可以看出,模型訓練集平均相對誤差為8.65%(小于允許誤差20%),決定系數為0.917 8;模型測試集平均相對誤差為9.08%,決定系數為0.909 6,表明建立的BAS-BPNN模型有較高預測精度、較好性能,模型預測值與實測值有同樣的變化幅度,相對誤差也較小,模型預測曲線的走勢非常逼近實測值。充分說明所建模型能夠對凍融期土壤含水率進行有效的預測。
為了檢驗BAS-BPNN預測模型與其他優(yōu)化算法在凍融期土壤含水率方面的優(yōu)越性,本文選擇BPNN模型、GA-BPNN模型和PSO-BPNN模型從Ei和R2兩方面與BAS-BPNN模型進行對比,結果見表5。同時,圖4為4種模型最佳適應度變化曲線,對比其尋優(yōu)和收斂速度。
表5 不同模型效果比較Tab.5 Comparison of different model effects
從表5可以看出,相較于BPNN,優(yōu)化后的BAS-BPNN、PSO-BPNN、GA-BPNN模型都對原始數據有更好的預測。BAS-BPNN和PSO-BPNN模型的決定系數相接近但是要高于GA-BPNN模型的,BAS-BPNN模型的相對誤差要遠遠小于PSO-BPNN和GA-BPNN模型,尤其是訓練集相對誤差。因此,從整體訓練誤差、測試誤差以及決定系數分析,BAS-BPNN模型效果最佳,預測精度高,模型性能比較好,能夠反映出BAS-BPNN模型在凍融期土壤含水率預測方面良好的適用性。
圖4 不同模型最佳適應度曲線Fig.4 The fitness curve of different model
由圖4可以看出,BAS-BPNN模型經過約10代即可找到最優(yōu)解,而PSO-BPNN和GA-BPNN模型經過約40代,BPNN型甚至在經過近70代才找到最優(yōu)解,說明BAS-BPNN模型尋優(yōu)和收斂速度明顯高于其他模型。
(1)利用主成分分析法篩選出對凍融期土壤含水率影響較大的7個因子:太陽輻射、水面蒸發(fā)、地表溫度、氣溫、土壤蒸發(fā)、降水和相對濕度。
(2)BAS-BPNN模型訓練預測值與實測值的決定系數為0.917 8,平均相對誤差為8.65%;測試預測值與實測值的決定系數為0.909 6,平均相對誤差為9.08%。BAS-BPNN模型尋優(yōu)及收斂速度明顯高于其他模型,從相對誤差和決定系數兩個指標分析,BAS-BPNN模型預測效果最佳表明模型可以較好地預測凍融期土壤含水率。
(3)BAS-BPNN模型是對凍融期土壤含水率進行預測的一種新的方法,為土壤含水率預測研究拓寬了思路。但也存在著不足,由于試驗條件限制,樣本數據時間頻率精度較低,若用日變化尺度的模擬驗證,會進一步提高預測精度。