陳 亮,裴曉輝,劉韻婷
(沈陽理工大學(xué) 自動(dòng)化與電氣工程學(xué)院,沈陽 110159)
因?yàn)闅夂蜃兓?、人口增加、勞?dòng)力減少和食品安全等因素,促使農(nóng)業(yè)尋求更多創(chuàng)新措施來保護(hù)和提高農(nóng)作物產(chǎn)量。目前主流的大棚控制方法是采用農(nóng)業(yè)物聯(lián)網(wǎng)技術(shù)對溫室大棚進(jìn)行智能控制,通過智能傳感器對大棚內(nèi)環(huán)境數(shù)據(jù)進(jìn)行采集,然后專家系統(tǒng)根據(jù)大棚內(nèi)的環(huán)境狀況提供控制設(shè)備的下一步動(dòng)作[1]。由于專家系統(tǒng)是根據(jù)種植專家的經(jīng)驗(yàn)來設(shè)定的,不能根據(jù)實(shí)際情況做出實(shí)時(shí)決策,從長遠(yuǎn)來看不利于植物的生長。
深度學(xué)習(xí)的飛速發(fā)展為現(xiàn)代農(nóng)業(yè)的進(jìn)步帶來了新的契機(jī),深度學(xué)習(xí)技術(shù)與農(nóng)業(yè)物聯(lián)網(wǎng)技術(shù)的結(jié)合可以為植物提供更加適宜的生長環(huán)境。深度學(xué)習(xí)技術(shù)能根據(jù)大量的歷史信息和實(shí)時(shí)數(shù)據(jù)對未來進(jìn)行合理的推斷。物聯(lián)網(wǎng)技術(shù)和深度學(xué)習(xí)技術(shù)相輔相成。物聯(lián)網(wǎng)技術(shù)為深度學(xué)習(xí)提供持續(xù)的數(shù)據(jù)需求,深度學(xué)習(xí)技術(shù)可以處理和從中學(xué)習(xí)的數(shù)據(jù)越多,其預(yù)測的準(zhǔn)確率也會(huì)越高。
大棚環(huán)境變量數(shù)據(jù)具有時(shí)間序列特征。近年來,隨著深度學(xué)習(xí)技術(shù)的不斷發(fā)展,一些深度學(xué)習(xí)模型逐漸被應(yīng)用到時(shí)序數(shù)據(jù)的研究中[2]。在深度學(xué)習(xí)模型中,循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)將時(shí)序的概念引入到網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計(jì)中,使其在時(shí)序數(shù)據(jù)分析中表現(xiàn)出更強(qiáng)的適應(yīng)性。在眾多的RNN變體中,長短期記憶(longshort-term memory,LSTM)模型[3]彌補(bǔ)了梯度消失和梯度爆炸、長期記憶能力不足等問題。近年來,LSTM在故障序列預(yù)測[4]、空氣污染時(shí)空預(yù)報(bào)[5]、短時(shí)交通流預(yù)測[6]、鐵水硅含量預(yù)測[7]等領(lǐng)域取得了良好的預(yù)測效果。與傳統(tǒng)的RNN相比,LSTM能學(xué)習(xí)具有長時(shí)間跨度的時(shí)間序列并自動(dòng)確定最優(yōu)時(shí)間滯后預(yù)測,更有效地利用長距離的時(shí)序信息。
本文采用LSTM對溫室大棚植物生長環(huán)境變量——溫度、濕度、二氧化碳濃度進(jìn)行時(shí)間序列預(yù)測,通過數(shù)據(jù)預(yù)處理、改進(jìn)模型網(wǎng)絡(luò)層數(shù)和參數(shù)等方法,提高預(yù)測精度,協(xié)助管理員更好地進(jìn)行溫室環(huán)境控制。
圖1為標(biāo)準(zhǔn)RNN網(wǎng)絡(luò)結(jié)構(gòu)圖。
圖1 RNN網(wǎng)絡(luò)結(jié)構(gòu)圖
圖中x為輸入層,給定一個(gè)序列xt=(x1,x2,……xt,xt+1)輸入到RNN細(xì)胞中,根據(jù)式(1)、式(2)可計(jì)算出一個(gè)隱藏層序列st和一個(gè)輸出序列yt。
st=f(Uxt+Wst-1+bs)
(1)
yt=softmax (Vst+by)
(2)
式中:下標(biāo)t指時(shí)間;f為激活函數(shù);b為偏置向量;V、W、U為權(quán)重系數(shù)矩陣。
標(biāo)準(zhǔn)RNN能有效地處理非線性時(shí)間序列,但存在以下兩個(gè)問題[8]:
(1)標(biāo)準(zhǔn)RNN不能預(yù)處理延遲過長的時(shí)間序列(長期依賴問題);
(2)實(shí)際應(yīng)用中訓(xùn)練RNN模型很難自動(dòng)獲取延遲窗口長度的最優(yōu)值。
為解決上述兩個(gè)問題,提出了LSTM模型。
LSTM是RNN的一種特殊類型[9],由Hochreiter & Schmidhuber(1997)提出,并被Alex Graves進(jìn)行了改良和推廣。LSTM通過對標(biāo)準(zhǔn)RNN細(xì)胞結(jié)構(gòu)進(jìn)行改進(jìn)來避免長期依賴問題。
LSTM用三個(gè)門來控制單元狀態(tài)c的內(nèi)容,其中遺忘門用來決定上一時(shí)刻的單元狀態(tài)c
LSTM細(xì)胞前向計(jì)算方法可以表示為[11]
I
(3)
f
(4)
c
(5)
o
(6)
h
(7)
式中:I、f、c、o分別表示LSTM細(xì)胞中的輸入門、遺忘門、細(xì)胞狀態(tài)、輸出門;h
圖2 LSTM細(xì)胞內(nèi)部結(jié)構(gòu)圖
LSTM訓(xùn)練模型采用的是BPTT算法,大致可以分為四個(gè)步驟[12]:
(1)按照前向計(jì)算方法公式(3)~(7)計(jì)算LSTM細(xì)胞的輸出值;
(2)在時(shí)間和網(wǎng)絡(luò)層級兩個(gè)方向上計(jì)算每個(gè)LSTM細(xì)胞的誤差項(xiàng);
(3)按照相應(yīng)的誤差項(xiàng),計(jì)算每個(gè)權(quán)重的梯度;
(4)選用基于梯度的優(yōu)化算法更新權(quán)重。
根據(jù)環(huán)境變量時(shí)間序列有限樣本點(diǎn)的數(shù)據(jù)特點(diǎn)及循環(huán)神經(jīng)網(wǎng)絡(luò)從簡的設(shè)計(jì)原則,本文構(gòu)建的基于LSTM的大棚環(huán)境變量預(yù)測模型整體框架圖如圖3所示,框架包括輸入層、隱藏層、輸出層、網(wǎng)絡(luò)訓(xùn)練及網(wǎng)絡(luò)預(yù)測五個(gè)部分。
圖3 基于LSTM的大棚環(huán)境變量預(yù)測模型
原始的大棚環(huán)境變量數(shù)據(jù)的預(yù)處理包括對數(shù)據(jù)中的異常值和缺失值處理以及數(shù)據(jù)標(biāo)準(zhǔn)化處理。由于原始數(shù)據(jù)中前后兩個(gè)時(shí)刻的值差值較小,所以對于缺失值和異常值均選取該值前后兩個(gè)時(shí)刻的平均值代替該時(shí)刻的值。
對數(shù)據(jù)標(biāo)準(zhǔn)化操作可加快網(wǎng)絡(luò)訓(xùn)練收斂速度,提高模型訓(xùn)練的精度,消除范圍較大的特征值給梯度更新所帶來的影響。本文采用以下方法對數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化處理。數(shù)據(jù)標(biāo)準(zhǔn)化用公式表示為
xnorm=(x-xmin)/(xmax-xmin)
(8)
式中:xnorm為標(biāo)準(zhǔn)化后的數(shù)據(jù);x為原始數(shù)據(jù)序列;xmax、xmin分別為原始數(shù)據(jù)集的最大值和最小值。
網(wǎng)絡(luò)訓(xùn)練主要針對的是隱藏層。在輸入層中,定義原始的大棚環(huán)境變量數(shù)據(jù)序列為
Tn=(x1,x2,…,xt,…,xn)
(9)
式中:xt={at,bt,ct},at、bt、ct分別表示為t時(shí)刻大棚環(huán)境變量溫度、濕度、二氧化碳濃度的值。從Tn中劃分訓(xùn)練集、測試集。
Ttr=(x1,x2,…,xm)
Tte=(xm+1,xm+2,…,xn)
1≤m≤o,m、n∈N
(10)
用2.1中的標(biāo)準(zhǔn)化方法處理的訓(xùn)練集、測試集可表示為
(11)
為適應(yīng)隱藏層輸入的特點(diǎn),構(gòu)建短時(shí)間輸入序列,通過固定步長來確定時(shí)間序列的長度。設(shè)步長取值為L,則模型輸入為
(12)
對應(yīng)的理論輸出為
(13)
將X輸入隱藏層,經(jīng)過隱藏層的輸出為
P=(P1,P2,…,Pm-L)
Pt=LSTM (xt,c< t-1 >,h< t-1 >)
1≤L≤m,m∈N
(14)
式中c
本文使用均方根誤差RMSE作為誤差計(jì)算公式,用公式表示為
(15)
式中:L(m-L)為訓(xùn)練的樣本總數(shù);Pi為預(yù)測值;Yi為真實(shí)值。
本文通過Adam優(yōu)化方法更新網(wǎng)絡(luò)的權(quán)重,使網(wǎng)絡(luò)損失最小。該優(yōu)化方法的步驟描述為[13]:
(1)初始化參數(shù)向量θ0;一階矩向量λ0=0;初始化二階矩陣變量v0=0;初始化時(shí)間步t=0
(2)循環(huán)開始:
(3)t=t+1;
(5)λt=β1λt-1+(1-β1)gt,更新偏差的一階矩估計(jì);
(6)vt=β2vt-1+(1-β2)gtgt,更新二階原始矩估計(jì);
(10)重復(fù)(3)~(9),循環(huán)直至達(dá)到約束條件,結(jié)束循環(huán);
(11)返回θt。
其中α為步長;β1和β2為指數(shù)衰減速率并位于區(qū)間0到1之間;ε為常數(shù);f(θ)為隨機(jī)目標(biāo)函數(shù)。
針對實(shí)際訓(xùn)練中常常存在過擬合的問題,本文采用 Dropout方法來對神經(jīng)網(wǎng)絡(luò)進(jìn)行正則化[14]。由于大棚中環(huán)境變量數(shù)據(jù)量大且變化緩慢,所以在訓(xùn)練過程中以0.1的概率隨機(jī)丟棄網(wǎng)絡(luò)中的一些神經(jīng)元以及相互之間的權(quán)重連接,提升模型的泛化能力,不易對訓(xùn)練數(shù)據(jù)過擬合。
本文采用迭代預(yù)測的方法對訓(xùn)練過的LSTM網(wǎng)絡(luò)進(jìn)行預(yù)測,理論輸出的最后L個(gè)數(shù)據(jù)為
(16)
輸入訓(xùn)練好的網(wǎng)絡(luò)LSTM,得到輸出為
Pp=LSTM (Yp)=Pm+1
(17)
即m+1時(shí)刻預(yù)測值為Pm+1,將最后L-1個(gè)數(shù)據(jù)和測試集中的第m+1個(gè)數(shù)據(jù)合并為新的數(shù)據(jù)并輸入網(wǎng)絡(luò),得到m+2時(shí)刻的輸出Pm+2,依次類推得到預(yù)測序列為
(18)
本文所用的數(shù)據(jù)來自遼寧省農(nóng)業(yè)研究院大棚農(nóng)作物西紅柿的環(huán)境監(jiān)測數(shù)據(jù)(溫度、濕度、二氧化碳濃度),數(shù)據(jù)采樣間隔為1分鐘,共計(jì)1440×15個(gè)數(shù)據(jù)點(diǎn)。樣本數(shù)據(jù)劃分為二部分:訓(xùn)練集、測試集;比例分別為:90%、 10%;選擇RMSE作為模型精度的評估指標(biāo)。
實(shí)驗(yàn)過程中,首先確定隱藏層層數(shù),根據(jù)數(shù)據(jù)的特點(diǎn)和經(jīng)驗(yàn)設(shè)置模型參數(shù),選擇批次為1440,輸入步長為15,學(xué)習(xí)率為0.03,訓(xùn)練步數(shù)為1000。在該模型參數(shù)條件下,選擇不同的隱藏層層數(shù),通過觀察訓(xùn)練集擬合的RMSE和測試集預(yù)測的RMSE,確定最佳隱藏層層數(shù)。實(shí)驗(yàn)結(jié)果如表1所示。
表1 不同隱藏層層數(shù)的RMSE對比
表1在四個(gè)不同隱藏層層數(shù)實(shí)驗(yàn)對比中發(fā)現(xiàn),當(dāng)隱藏層層數(shù)為2時(shí),訓(xùn)練和測試樣本的RMSE最小,預(yù)測精度最高。
所以本文選取隱藏層層數(shù)為2的LSTM網(wǎng)絡(luò)作為本實(shí)驗(yàn)的網(wǎng)絡(luò)模型,在該模型的基礎(chǔ)上進(jìn)一步調(diào)節(jié)網(wǎng)絡(luò)參數(shù)優(yōu)化模型。本文主要針對網(wǎng)絡(luò)模型參數(shù)——批次、學(xué)習(xí)率進(jìn)行實(shí)驗(yàn),以RMSE作為評價(jià)準(zhǔn)則,選出網(wǎng)絡(luò)模型最適合的網(wǎng)絡(luò)參數(shù)。不同網(wǎng)絡(luò)參數(shù)的RMSE對比如圖4所示。
由圖4可知,不同學(xué)習(xí)率下,當(dāng)批次小于720時(shí),訓(xùn)練集擬合的RMSE和測試集預(yù)測的RMSE下降速度較快;批次大于720時(shí),訓(xùn)練集擬合的RMSE和測試集預(yù)測的RMSE下降速度緩慢。由于批次的增大,訓(xùn)練時(shí)間隨之增加,綜合考慮模型的訓(xùn)練速度和預(yù)測精度,本文選擇批次為720。當(dāng)批次為720,學(xué)習(xí)率0.01和0.03的精度都是在0.05附近,學(xué)習(xí)率越高,網(wǎng)絡(luò)收斂速度越快,故本文將學(xué)習(xí)率設(shè)置為0.03。
在批次為720,學(xué)習(xí)率為0.03的實(shí)驗(yàn)條件下,對網(wǎng)絡(luò)輸入步長問題進(jìn)行實(shí)驗(yàn),以RMSE作為評價(jià)指標(biāo),實(shí)驗(yàn)結(jié)果如表2所示。
圖4 不同網(wǎng)絡(luò)參數(shù)的RMSE對比圖
步長訓(xùn)練樣本RMSE測試樣本RMSE50.05930.0719100.04620.0543150.03520.0415200.07910.0837250.10230.0925
由表2可知,當(dāng)步長為15時(shí),訓(xùn)練和測試樣本的RMSE值最小,網(wǎng)絡(luò)的預(yù)測精度達(dá)到最高。所以將步長設(shè)置為15。
針對溫室大棚種植西紅柿的溫度、濕度、二氧化碳濃度三個(gè)環(huán)境變量數(shù)據(jù),分別利用LSTM、RNN、GRU對環(huán)境變量數(shù)據(jù)進(jìn)行預(yù)測,圖5、圖6、圖7為測試集若干點(diǎn)的預(yù)測結(jié)果對比圖。
圖5 三種不同模型溫度預(yù)測結(jié)果與原始溫度數(shù)據(jù)對比圖
圖6 三種不同模型濕度預(yù)測結(jié)果與原始濕度數(shù)據(jù)對比圖
圖7 三種不同模型二氧化碳濃度預(yù)測結(jié)果與原始二氧化碳濃度數(shù)據(jù)對比圖
由圖5、圖6、圖7可以看出,相同參數(shù)條件下,采用RNN模型預(yù)測出現(xiàn)了較大偏差并且預(yù)測趨勢與真實(shí)溫度、濕度、二氧化碳濃度的變化趨勢相差較大;GRU模型預(yù)測的趨勢與原始數(shù)據(jù)趨勢基本一致,但數(shù)值仍存在一定的偏差,說明這兩個(gè)模型預(yù)測效果均不是很理想;采用LSTM模型的環(huán)境變量預(yù)測,其預(yù)測趨勢與真實(shí)趨勢基本一致,預(yù)測值更接近于真實(shí)值,預(yù)測效果更好。綜上所述,LSTM模型對溫室大棚環(huán)境變量(溫度、濕度、二氧化碳濃度)的預(yù)測效果優(yōu)于其它兩種模型,能很好地?cái)M合真實(shí)溫度、濕度、二氧化碳濃度的變化趨勢,達(dá)到了比較理想的預(yù)測效果。
以LSTM為模型,通過模型網(wǎng)絡(luò)層數(shù)和參數(shù)選擇的方法,以農(nóng)科院溫室大棚的西紅柿數(shù)據(jù)為樣本得到訓(xùn)練模型,該模型具有較強(qiáng)的預(yù)測和泛化能力,在實(shí)際應(yīng)用中有一定的參考價(jià)值,為實(shí)現(xiàn)大棚的智能控制提供了理論依據(jù)?;谀壳暗墓ぷ?后續(xù)可開展進(jìn)一步的研究,將LSTM溫室大棚的環(huán)境變量預(yù)測模型與溫室大棚控制系統(tǒng)相結(jié)合,實(shí)現(xiàn)大棚的整體智能控制。