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