李 莉 李文軍 馬德新 楊成飛 孟繁佳
(1.中國農(nóng)業(yè)大學(xué)農(nóng)業(yè)農(nóng)村部農(nóng)業(yè)信息獲取技術(shù)重點(diǎn)實(shí)驗(yàn)室, 北京 100083;2.青島農(nóng)業(yè)大學(xué)山東省智慧農(nóng)業(yè)研究院, 青島 266109;3.中國農(nóng)業(yè)大學(xué)現(xiàn)代精細(xì)農(nóng)業(yè)系統(tǒng)集成研究教育部重點(diǎn)實(shí)驗(yàn)室, 北京 100083)
作物蒸騰量是確定灌水計(jì)劃的重要指標(biāo)[1-3]。植物的蒸騰作用受環(huán)境因子影響較大,根據(jù)設(shè)施環(huán)境因子的變化確定作物灌溉時(shí)間和灌溉量成為溫室水分管理的重要方法,準(zhǔn)確快速地測定作物蒸騰量將直接影響設(shè)施作物水分管理的精確控制[4]。
目前,國內(nèi)外學(xué)者針對(duì)作物蒸騰研究主要集中在FAO56 Penman-Monteith(P-M)公式的應(yīng)用和改進(jìn)[5-7]。李銀坤等[8]綜合考慮了氣溫、相對(duì)濕度、輻射等環(huán)境因素的影響,對(duì)P-M方程中與風(fēng)速有關(guān)的空氣動(dòng)力學(xué)項(xiàng)進(jìn)行修正得到P-Mm,但在實(shí)際應(yīng)用中,P-Mm公式需要計(jì)算多個(gè)參數(shù),且獲取困難、計(jì)算耗時(shí)、耗力。因此,陳士旺等[9]提出了基于基質(zhì)含水率的遺傳算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)模型對(duì)溫室番茄蒸騰量進(jìn)行預(yù)測;孫國祥等[10]提出了基于小波變換和動(dòng)態(tài)神經(jīng)網(wǎng)絡(luò)模型對(duì)溫室黃瓜蒸騰速率進(jìn)行預(yù)測;王升等[11-12]提出了基于隨機(jī)森林算法和基因表達(dá)式編程算法的參考作物蒸發(fā)蒸騰量模型。上述預(yù)測模型屬于淺層結(jié)構(gòu)的機(jī)器學(xué)習(xí)方法,在處理大數(shù)據(jù)上缺少魯棒性,導(dǎo)致模型普遍缺乏長效性和擴(kuò)展能力。
長短期記憶網(wǎng)絡(luò)(Long short term memory, LSTM)作為循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent neural network, RNN)的變種模型,可以有效解決RNN 訓(xùn)練時(shí)存在梯度消失和梯度爆炸等問題,大大提高了RNN 網(wǎng)絡(luò)的準(zhǔn)確性。MOON等[13]利用環(huán)境和栽培信息,通過LSTM預(yù)測閉環(huán)無土栽培條件下根區(qū)營養(yǎng)液的電導(dǎo)率;JIMENEZ等[14]利用實(shí)時(shí)獲取的土壤基質(zhì)勢數(shù)據(jù)的LSTM模型有效減少灌溉投入;周瑞等[15]驗(yàn)證了LSTM 遞歸神經(jīng)網(wǎng)絡(luò)模型對(duì)番茄目標(biāo)產(chǎn)量預(yù)測具有較高準(zhǔn)確性;謝家興等[16]基于氣象數(shù)據(jù)集,應(yīng)用LSTM方法對(duì)大面積柑橘果園蒸散量建立預(yù)測模型,結(jié)果表明,LSTM模型在不同輸入特征數(shù)量下具有較高的精度;謝秋菊等[17]結(jié)合實(shí)際傳感器監(jiān)測的歷史數(shù)據(jù)和豬舍外影響數(shù)據(jù),建立了LSTM網(wǎng)絡(luò)預(yù)測模型,實(shí)現(xiàn)了精確的豬舍內(nèi)溫濕度變化預(yù)測;陳英義等[18]利用改進(jìn)的LSTM模型預(yù)測2 h后水產(chǎn)養(yǎng)殖溶解氧含量,提高了預(yù)測精度;韓永貴等[19]提出了一種改進(jìn)的Elman神經(jīng)網(wǎng)絡(luò)耗水模型對(duì)新疆楊耗水量進(jìn)行模擬。然而利用LSTM神經(jīng)網(wǎng)絡(luò)對(duì)溫室番茄蒸騰量預(yù)測的相關(guān)研究較少。
本文在與非線性自回歸(Nonlinear autoregressive with exogeneous inputs, NARX)神經(jīng)網(wǎng)絡(luò)、Elman神經(jīng)網(wǎng)絡(luò)、RNN等模型進(jìn)行對(duì)比的基礎(chǔ)上,構(gòu)建基于LSTM神經(jīng)網(wǎng)絡(luò)的預(yù)測方法,以提高溫室番茄蒸騰量預(yù)測精確度。
試驗(yàn)分別于2019年9—10月和2020年9—10月在中國農(nóng)業(yè)大學(xué)信息與電氣工程學(xué)院小型日光溫室(40°0′N,116°21′E)進(jìn)行,該溫室南北向布局,尺寸為4.5 m×3.2 m,屬半干旱半濕潤季風(fēng)氣候區(qū)。
試驗(yàn)所種作物為番茄,品種粉冠,苗齡為6~7片葉,選取營養(yǎng)生長期(即幼苗期至開花坐果期)試驗(yàn)數(shù)據(jù)研究溫室番茄蒸騰量模型。采用柱狀盆栽,盆口徑23 cm,底徑18 cm,高21 cm。試驗(yàn)每個(gè)處理4個(gè)重復(fù)。種植番茄所用栽培基質(zhì)為草炭、蛭石和珍珠巖,按照體積比3∶1∶1進(jìn)行均勻混合[20-21]。在此混合模式下,其容重和孔隙度適宜,同時(shí)采用滴灌方式,保證水分在基質(zhì)水平和豎直方向上的平緩運(yùn)移[22]。
使用ZigBee集成傳感器(北京昆侖海岸傳感技術(shù)有限公司,JZH-0xx型)采集溫室內(nèi)空氣溫度(Air temperature, AT)、相對(duì)濕度(Relative humidity, RH)和光照強(qiáng)度(Light intensity, LI),并通過ZigBee網(wǎng)關(guān)傳輸?shù)皆破脚_(tái)。2019年數(shù)據(jù)采集時(shí)間為每日06:00—18:00,間隔10 min上傳1組數(shù)據(jù)。選取14 d數(shù)據(jù),共計(jì)1 022組數(shù)據(jù)用于溫室番茄蒸騰量模型的模擬,如圖1a所示;2020年數(shù)據(jù)采集時(shí)間為每日06:30—17:30,間隔5 min上傳1組數(shù)據(jù)。選取10 d數(shù)據(jù),共計(jì)1 330組數(shù)據(jù)對(duì)所建模型進(jìn)行驗(yàn)證,如圖1b所示。
相對(duì)葉面積指數(shù)(Relative leaf area index,RLAI)為作物垂直的投影面積所占背景總面積的百分比,能夠客觀反映作物的長勢變化,同時(shí)在預(yù)測和實(shí)際應(yīng)用中,具有同一性,差異性較小[23]。獲取番茄RLAI具體步驟如圖2所示,RLAI曲線如圖3所示。
采用稱量法測量單株番茄實(shí)時(shí)蒸騰量(g)。在處理前1 d,對(duì)植株進(jìn)行充分灌水使基質(zhì)水分盡量達(dá)到飽和,如圖4所示,用精密電子計(jì)重秤(ACS-Z系列,上海友聲衡器有限公司,30 kg±1 g)每隔10 min稱花盆和燒杯(500 mL)的質(zhì)量(W1,W2,…,WN),考慮到基質(zhì)水分滲透,將燒杯放置在栽培盆支架下方準(zhǔn)確測量作物蒸騰損失水量,即單株番茄的實(shí)際蒸騰量[24]。番茄莖干周邊基質(zhì)上覆蓋塑料薄膜以防止基質(zhì)水分蒸發(fā)對(duì)測量造成影響,進(jìn)一步提高番茄實(shí)際蒸騰量的獲取精度。蒸騰量ET計(jì)算式為
ETN=WN-WN-1
(1)
針對(duì)前后時(shí)間間隔較大的缺失數(shù)據(jù),可采用天氣類型相同或?qū)ο嘟噜弾滋熘型粫r(shí)刻的數(shù)據(jù)來填補(bǔ);對(duì)出現(xiàn)的異常數(shù)據(jù)采用均值平滑法進(jìn)行處理,即
(2)
式中xb——異常數(shù)據(jù)
xb-1、xb+1——xb相鄰的有效數(shù)據(jù)
為了加快訓(xùn)練速度,對(duì)數(shù)據(jù)進(jìn)行歸一化處理,即
(3)
式中xk——原始數(shù)據(jù)
xmin、xmax——原始數(shù)據(jù)中的最小值和最大值
LSTM是一種時(shí)間循環(huán)神經(jīng)網(wǎng)絡(luò),由HOCHREITER和SCHMIDHUBER[25]首見提出,并在2012年被GRAVES[26]進(jìn)行了改良和推廣,該模型能夠?qū)σ蕾囆畔⑦M(jìn)行長期學(xué)習(xí),同時(shí)解決循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)存在的梯度消失問題。相較于傳統(tǒng)的RNN,LSTM 在RNN的隱藏層的神經(jīng)元中,增加了一種被稱為記憶單元的結(jié)構(gòu),用來存儲(chǔ)過去的序列信息,同時(shí)增加輸入門、輸出門、遺忘門。輸入門用來控制信息輸入,遺忘門用來控制細(xì)胞歷史狀態(tài)信息的保留,輸出門用來控制信息輸出。
設(shè)輸入序列為(x1,x2,…,xt),隱藏層狀態(tài)為(h1,h2,…,ht),則在t時(shí)刻有
it=σ(whiht-1+wxixt+bi)
(4)
ft=σ(whfht-1+wxfxt+bf)
(5)
ct=ftct-1+ittanh(whcht-1+wxcxt+bc)
(6)
ot=σ(whoht-1+wx0xt+wcoct+bo)
(7)
ht=ottanh(ct)
(8)
式中it、ft、ot——輸入門、遺忘門、輸出門
ct——cell單元
ct-1——前一時(shí)刻cell單元
ht-1——前一時(shí)刻隱藏層單元的輸出信息
ht——當(dāng)前輸出信息
whi、wxi——輸入門中與ht-1和xt遞歸連接的權(quán)重矩陣
whf、wxf——遺忘門中與ht-1和xt遞歸連接的權(quán)重矩陣
who、wxo——輸出門中與ht-1和xt遞歸連接的權(quán)重矩陣
whc、wxc——當(dāng)前輸入的單元狀態(tài)中與ht-1和xt遞歸連接的權(quán)重矩陣
wco——ct遞歸連接的權(quán)重矩陣
bi、bf、bc、bo——各個(gè)函數(shù)的偏移值
σ——sigmoid函數(shù),使得遺忘門的輸出值在[0,1]之間,當(dāng)遺忘門的輸出值為0時(shí),表示將上一時(shí)刻的信息全部舍棄,輸出值為1時(shí),則表示全部保留
基于上述算法,為了提高預(yù)測模型的精度,本文預(yù)測番茄蒸騰量預(yù)測流程如圖5所示,其主要步驟包括數(shù)據(jù)獲取及數(shù)據(jù)預(yù)處理、網(wǎng)絡(luò)訓(xùn)練、番茄蒸騰量預(yù)測。
(1)通過布設(shè)傳感器與攝像頭采集與溫室番茄蒸騰量變化相關(guān)的信息,包括AT、RH、LI及RLAI組成原始數(shù)據(jù)集,并對(duì)采集到的數(shù)據(jù)進(jìn)行修復(fù)和歸一化預(yù)處理,得到最終的輔助變量數(shù)據(jù)樣本,并劃分為訓(xùn)練樣本集及測試樣本集。
(2)采用試驗(yàn)方法對(duì)LSTM 模型進(jìn)行初始化設(shè)置,將訓(xùn)練樣本數(shù)據(jù)集輸入模型,不斷調(diào)整模型參數(shù),直到獲取最優(yōu)網(wǎng)絡(luò)參數(shù)設(shè)置,包含學(xué)習(xí)率、隱藏層節(jié)點(diǎn)數(shù)、迭代次數(shù)、批尺寸和時(shí)間步長。
(3)將最優(yōu)網(wǎng)絡(luò)參數(shù)設(shè)置組合代入LSTM預(yù)測模型,得到最終的番茄蒸騰量預(yù)測模型,將測試樣本輸入優(yōu)化后的番茄蒸騰量預(yù)測模型,計(jì)算番茄蒸騰量預(yù)測結(jié)果。
使用預(yù)處理后的數(shù)據(jù)作為模型的輸入,對(duì)基于LSTM的預(yù)測模型進(jìn)行訓(xùn)練和測試。采用平均絕對(duì)誤差(MAE)、均方根誤差(RMSE)和決定系數(shù)(R2)作為預(yù)測模型性能評(píng)價(jià)指標(biāo)。
采用2019年9—10月和2020年9—10月在中國農(nóng)業(yè)大學(xué)信息與電氣工程學(xué)院日光溫室實(shí)測的番茄營養(yǎng)生長期數(shù)據(jù)進(jìn)行仿真,其中選取2019年數(shù)據(jù)總計(jì)1 022個(gè),將預(yù)處理后的關(guān)鍵影響因子以及蒸騰量數(shù)據(jù)序列按照時(shí)間順序進(jìn)行排序,并作為預(yù)測模型的訓(xùn)練數(shù)據(jù)。選取2020年數(shù)據(jù)總計(jì)1 330組,將預(yù)處理后的關(guān)鍵影響因子以及蒸騰量數(shù)據(jù)序列按照時(shí)間順序進(jìn)行排序,并對(duì)所建模型進(jìn)行驗(yàn)證。
在模型中采用Adam算法進(jìn)行優(yōu)化,使用MAE損失函數(shù)計(jì)算誤差,通過跟蹤訓(xùn)練過程中的訓(xùn)練損失和測試損失,在運(yùn)行結(jié)束時(shí)訓(xùn)練損失和測試損失如圖6所示。
由圖6可看出,隨著訓(xùn)練次數(shù)的增加,訓(xùn)練損失和測試損失都在逐漸減少,表明模型訓(xùn)練結(jié)果越來越好,訓(xùn)練損失是訓(xùn)練集損失值,因?yàn)槟P驮跁r(shí)刻變化,前期的訓(xùn)練損失會(huì)比后期的訓(xùn)練損失高。測試損失是測試集損失值,即訓(xùn)練集預(yù)測結(jié)果與測試集的平均絕對(duì)誤差。
為了減少過擬合對(duì)預(yù)測模型的影響,添加dropout正則化,丟棄率取為0.2。通過多次訓(xùn)練效果驗(yàn)證,得到訓(xùn)練及微調(diào)時(shí)的最佳網(wǎng)絡(luò)參數(shù):學(xué)習(xí)率為0.001,迭代次數(shù)為200,批尺寸為73。為了探索網(wǎng)絡(luò)結(jié)構(gòu)參數(shù)(時(shí)間步長及隱含層節(jié)點(diǎn)數(shù))對(duì)模型學(xué)習(xí)性能的影響,將時(shí)間步長設(shè)置為1、3、5、7,隱含層節(jié)點(diǎn)數(shù)設(shè)為50、100、150、200,對(duì)其進(jìn)行兩兩組合,選取RMSE最小的LSTM網(wǎng)絡(luò)結(jié)構(gòu)設(shè)置。表1、2為16次試驗(yàn)所對(duì)應(yīng)的不同網(wǎng)絡(luò)結(jié)構(gòu)下的LSTM模型RMSE和MAE。從表1、2可看出,當(dāng)時(shí)間步長為5,隱含層節(jié)點(diǎn)數(shù)為100時(shí),LSTM網(wǎng)絡(luò)在測試集上的RMSE達(dá)到最小,為11.02 g,MAE為4.53 g。因此,得到LSTM最佳的網(wǎng)絡(luò)參數(shù)如表3所示。

表1 LSTM不同網(wǎng)絡(luò)參數(shù)下的RMSETab.1 RMSE under different network parameters of LSTM g

表2 LSTM不同網(wǎng)絡(luò)參數(shù)下的MAETab.2 AME under different network parameters of LSTM g

表3 模型參數(shù)調(diào)節(jié)結(jié)果Tab.3 Model parameters adjustment result
將2019年訓(xùn)練樣本集輸入已構(gòu)建的LSTM網(wǎng)絡(luò)進(jìn)行訓(xùn)練,采用2020年測試樣本在已訓(xùn)練的網(wǎng)絡(luò)進(jìn)行模型性能測試,測試集的預(yù)測值和稱量法得到的蒸騰量進(jìn)行相關(guān)性分析,結(jié)果如圖7a所示。整體預(yù)測精度較為理想,其R2達(dá)到了0.992 5,可以很好地?cái)M合環(huán)境因子以及作物因子與番茄蒸騰量之間復(fù)雜的非線性關(guān)系。
為了驗(yàn)證在相同輸入?yún)?shù)條件下模型的性能,更好地說明LSTM模型在番茄蒸騰量預(yù)測中的優(yōu)越性,同時(shí)利用NARX、Elman及RNN模型對(duì)番茄蒸騰量進(jìn)行預(yù)測并對(duì)比分析。NARX、Elman及RNN模型測試集的預(yù)測值與稱量法測得值的相關(guān)性分別如圖7b~7d所示。
4個(gè)算法在相同的運(yùn)算環(huán)境的輸入?yún)?shù)條件下,番茄蒸騰量隨測試樣本序號(hào)的變化曲線如圖8所示。由圖8可知,LSTM 和RNN的預(yù)測值更加接近真實(shí)值,且變化趨勢幾乎一致,其中3 d蒸騰量較低,但預(yù)測效果良好,普適性較強(qiáng),而Elamn和NARX預(yù)測值在上午時(shí)刻與真實(shí)值差距較大,無法準(zhǔn)確預(yù)測番茄蒸騰量的變化。
LSTM、NARX、Elman 及RNN模型的絕對(duì)誤差曲線如圖9所示。由圖9可知,LSTM誤差曲線隨著樣本序號(hào)增大變化幅度較小,RNN其次,而其他2種算法曲線變化波動(dòng)較大。因此,LSTM 算法性能明顯優(yōu)于其他算法性能,并且算法受樣本變化影響較小,再次證明了LSTM具有較高的泛化能力和良好的穩(wěn)定性。
表4 給出了LSTM、NARX、Elman 及RNN方法在測試樣本的評(píng)價(jià)指標(biāo)。從表4可得, NARX、Elman及RNN 對(duì)溫室番茄蒸騰量預(yù)測的R2分別為0.910 8、0.980 9和0.984 4,LSTM模型的R2為0.992 5,其R2分別提高了0.081 7、0.011 6和0.008 1。LSTM模型運(yùn)行時(shí)間18 s,僅次于RNN模型,但由圖9所知,RNN誤差范圍波動(dòng)更大,表明基于LSTM模型的番茄蒸騰量預(yù)測的相關(guān)性更好。同時(shí),基于LSTM模型的RMSE和MAE均比NARX模型、Elman模型、RNN模型的小,表明LSTM模型能夠有效地提高番茄蒸騰量預(yù)測精度。

表4 不同模型對(duì)溫室番茄蒸騰量預(yù)測性能對(duì)比Tab.4 Comparison of predicting performance of greenhouse tomato transpiration by different models
試驗(yàn)結(jié)果表明,所提模型預(yù)測精度明顯優(yōu)于其他3種方法的精度。基于LSTM的番茄蒸騰量預(yù)測模型可以提取數(shù)據(jù)的高層次特征,獲得了較傳統(tǒng)方法更好的非線性函數(shù)逼近效果,在一定程度上提高了算法的精度和泛化能力。試驗(yàn)結(jié)果表明,基于LSTM模型在農(nóng)業(yè)大數(shù)據(jù)挖掘中能夠表現(xiàn)出良好的特征學(xué)習(xí)能力。在構(gòu)建預(yù)測模型時(shí),不同的網(wǎng)絡(luò)結(jié)構(gòu)會(huì)導(dǎo)致不同的預(yù)測結(jié)果,因此在模型性能優(yōu)化過程中,根據(jù)不同的應(yīng)用領(lǐng)域、不同的數(shù)據(jù)構(gòu)建不同的LSTM模型,再尋找最優(yōu)網(wǎng)絡(luò)參數(shù)設(shè)置,確定LSTM 預(yù)測模型的最優(yōu)網(wǎng)絡(luò)設(shè)置。
研究了LSTM、NARX、Elman和RNN 4種模型對(duì)番茄蒸騰量的預(yù)測效果。結(jié)果表明,在番茄營養(yǎng)生長期中,LSTM模型能夠準(zhǔn)確地預(yù)測番茄蒸騰量,預(yù)測精度和穩(wěn)定性較高,模型RMSE、MAE和R2分別為11.02 g、4.53 g和0.992 5,均優(yōu)于其他預(yù)測算法。良好的預(yù)測效果充分證明了基于LSTM的番茄蒸騰量預(yù)測模型的有效性和實(shí)用性,及解決復(fù)雜、非線性問題的作物蒸騰預(yù)測能力。