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