趙全明 宋子濤, 李奇峰 鄭文剛 劉 宇 張鐘莉莉
(1.河北工業大學電子信息工程學院, 天津 300401; 2.北京農業智能裝備技術研究中心, 北京 100097; 3.北京農業信息技術研究中心, 北京 100097; 4.北京市農林科學院植物保護環境保護研究所, 北京 100097)
目前,我國食用菌的栽培設施類型主要以大棚和溫室為主[1],調控方式大多依靠農業生產者的經驗,通過對當前采集的環境數據進行分析,進而做出調控決策,其數據采集的反饋與調控措施的生效都存在滯后性[2]。建立以出菇房主要環境因子為輸出變量的高精度預測模型可提前掌握主要環境因子在未來一段時間的環境分布趨勢,是進行高效、精準環境預測和出菇房預調控的重要前提。
溫室出菇房內影響食用菌生長發育的小氣候環境因素是相互作用、相互耦合的動態時間變量,且空間分布具有差異性和不均勻性,同時,對其有著重要影響的設施結構、材料、裝備等因素不易測量,所以很難通過機理模型對其整體的環境分布進行精準描述[3-4]。目前,針對溫室小氣候環境因素時序性、非線性的特點采用的預測方法可分為統計學和機器學習的方法,但鮮有研究考慮其環境空間分布差異特性。統計學方法主要有時序分析法[5]、回歸預測法[6]和自回歸積分滑動平均法[7]等,這些方法能夠很好地處理穩定的平穩時間序列數據,但是溫室小氣候環境因素由于受外界氣候變化、溫室內部食用菌生理作用及調控措施等多方面因素影響而具有非平穩性、高波動性[8],所以其預測能力受到很大限制。機器學習方法包括支持向量機[9](SVM)和人工神經網絡[10-12](ANN)等,其能夠很好地處理非線性、非平穩的時間序列數據。SVM較適合處理小樣本數據,而溫室小氣候環境的空間分布包含著大量多點多維稀疏混合特征,使其難以實施;ANN由于具有很強的自適應學習能力而被廣泛應用到了預測領域[13],能解決數據的非線性問題,但是其收斂速度慢、泛化能力差,處理數據維度有限,很難精準地挖掘溫室小氣候環境空間分布、時間序列的相關性。
近年來深度學習因可以實現任意函數的高維逼近、并具有更強大的特征學習能力而逐漸成為研究熱點[14-17]。深度學習可以精準預測溫室出菇房的環境空間分布情況,但是目前鮮見將深度學習與溫室出菇房環境分布預測相結合的研究。卷積神經網絡(CNN)作為在圖像處理、計算機視覺等領域被廣泛應用的模型[18],其特殊的網絡結構通過共享權重的特性可以很好地處理高維稀疏特征[19],對非時序特征的空間結構關系進行有效建模。將時序概念引入網絡結構的門控循環單元神經網絡(GRU)和長短期神經網絡(LSTM)作為循環神經網絡(RNN)的特殊變種,被廣泛地應用到了各個領域[20-25],并取得了不錯的效果。不僅很好地解決了RNN的梯度消失和梯度爆炸的問題,而且能夠充分挖掘時間序列數據的時序性、非線性的關系。但是難以較好地表達非時序性特征的空間結構,影響了預測的精度。
為了精準預測出菇房內多點溫濕度的空間分布情況,本文提出一種基于CNN-GRU的菇房多點溫濕度預測模型。通過傳感器網絡采集出菇房不同區域的環境數據,將室外歷史氣象數據、室內小氣候歷史數據、環境分布特征、加濕特征及通風特征按照時間序列構造二維矩陣作為輸入,采用CNN挖掘數據中蘊含反映溫室環境數據相互聯系的高維有效特征,將提取的特征向量構造為時間序列,輸入到GRU網絡進行多點溫濕度預測。
卷積神經網絡主要包括卷積層、池化層和全連接層,采用局部連接和權值共享的方式。卷積層對原始數據中更高層次、更抽象的特征進行提取,充分挖掘數據的內部聯系,池化層又稱為下采樣層,可以有效降低網絡的復雜度,減少訓練參數的數目[26],對特征進行降維。CNN網絡結構如圖1所示。

圖1 CNN網絡結構Fig.1 Structure of CNN network
為了克服RNN的長期依賴問題[27],HOCHREITER等[28]在1997年提出了長短期記憶神經網絡(LSTM),通過將隱藏層的神經元替換成具有3個門結構的特殊細胞狀態控制信息,從而解決了梯度消失、梯度爆炸等問題,實現了信息的記憶和更新。
由于LSTM的內部結構非常復雜會導致訓練的時間過長,CHO等[29]在LSTM的基礎上提出新變體門控循環單元神經網絡(GRU),它具有更加簡潔的模型結構,在保證預測精度的同時減少了網絡訓練的參數,收斂速度更快。GRU相對于LSTM的內部結構最大的改進在于將LSTM中的3個門結構簡化為更新門和重置門2個門結構,具有更高的計算效率。更新門主要決定被添加到當前狀態信息中的歷史信息量,傳遞的歷史信息越多其值越大。重置門主要決定歷史信息被遺忘的程度,被忘記的歷史信息越多其值越小[30]。GRU內部結構單元如圖2所示。

圖3 CNN-GRU網絡混合模型Fig.3 Hybrid model of CNN-GRU network

圖2 GRU網絡結構Fig.2 Structure of GRU network
門控循環單元神經網絡計算公式為
(1)
式中xt——輸入rt——重置門
zt——更新門
Wr——重置門權重矩陣
Wz——更新門權重矩陣

ht——隱藏層輸出

σ(·)——sigmoid激活函數
tanh(·)——雙曲正切激活函數
影響出菇房內各點溫濕度的因素包括室外空氣溫度、室外空氣相對濕度、室外風速、室內基質溫度、室內光照強度等相互獨立的時間序列特征以及環境分布特征、通風特征、加濕特征等非時序性特征。為了耦合這些影響溫室出菇房內溫濕度的特征信息,充分挖掘這些特征的內部潛在聯系及空間規律,對溫室出菇房的溫濕度空間分布情況進行精準預測,本文將卷積神經網絡(CNN)與門控循環單元神經網絡(GRU)相結合,構建了基于CNN-GRU的菇房多點溫濕度預測模型,網絡結構如圖3所示。
(1)輸入層。將出菇房內某一時刻的溫濕度與其相關的室外空氣溫度、室外空氣相對濕度、室外風速、室內基質溫度、室內光照強度、環境分布特征、通風特征和加濕特征串聯成全新的時間序列特征向量,將出菇房室外的歷史氣象數據、室內的歷史小氣候數據表達為時間步長×特征向量的二維矩陣,對其預處理后輸入預測模型中。
(2)CNN層。CNN層主要捕捉輸入的歷史序列中深層次的時間、空間特征規律,根據輸入數據非線性、稀疏性、強耦合性的特點,設計4層卷積層(Conv2D),卷積核數目依次為16、16、32、32,并選取ReLU激活函數進行激活。每經過2次連續卷積進行一次最大池化(MaxPooling2D),對提取的高維特征進行降維,壓縮數據,加快運行效率。為了充分利用現有的出菇房室外氣象數據、室內環境分布數據、非時序多特征數據,將卷積核尺寸設為3×3,池大小為2,最后通過Flatten操作,將其提取的深層次抽象特征轉換為全局特征向量作為GRU層的輸入。
(3)GRU層。GRU層對CNN層提取的全局特征向量進行學習,經過不斷改進可得,構建2層GRU結構達到了最好的預測效果,激活函數采用ReLU激活函數,神經元數目分別為64、128,最后將全連接層(Dense)的輸出經過反歸一化得20 min后的溫濕度。
實驗地點為北京市農林科學院日光溫室出菇房,共4間,每間面積約90 m2,總高度約6 m,室內裝有加濕噴霧設備。實驗期間相鄰2間出菇房內栽植不同基質的平菇,出菇方式為袋裝,采用的碼堆栽培方式有普通式、架桿式、花式3種,每種碼堆方式堆3~4層菌袋,行與行之間的走道間距為0.5 m左右,適宜的溫度為5~30℃,適宜的空氣相對濕度為85%~90%。為符合平菇的種植要求,防止病害發生,出菇房內需常開窗進行換氣通風,如遇持續惡劣天氣時需人工進行關閉,出菇房內的加濕噴霧設備的閾值設定為90%,當相對濕度高于90%時,加濕噴霧設備自動關閉。有時會在臨近傍晚時分將加濕器關閉以減少電力消耗,同時關閉窗戶蓋下保溫被保持室內溫濕度,在第2天清晨或中午時卷起保溫被并同時開窗通風。如果白天開窗通風換氣或天氣惡劣,相對濕度可能達不到所需的需求,需根據實際情況進行人工噴濕。實驗場地示意圖如圖4所示。

圖4 溫室出菇房內部環境與監測設備布局Fig.4 Internal environment of greenhouse mushroom house and layout of monitoring equipment1.1號采集器 2.2號采集器 3.3號采集器 4.4號采集器 5.5號采集器 6.6號采集器
本文所需的溫室出菇房室外空氣溫度、空氣相對濕度、風速等氣象數據通過溫室北側約20 m的HOBO氣象站自動采集記錄,采樣間隔為5 min,時間為2019年11月18日至2020年1月6日。溫室出菇房室內采用國家農業智能裝備工程技術研究中心研發的溫室云環境EP400型數據采集器進行環境監測,每個數據采集器可對空氣溫度(量程:-40~80℃,精度: ±0.5℃)、空氣相對濕度(量程: 0~100% ,精度: ±3%)、土壤溫度(量程:-40~80℃,精度:±0.5℃ )、光照強度(量程: 0~100 klx,精度:±10 klx)進行測量。本實驗共選取6個數據采集點,如圖4所示。在相鄰兩間溫室出菇房內各架設3個儀器進行數據采集,其都呈三角式分布。溫室出菇房1中的5號采集器正對窗戶,1號采集器斜靠窗,6號采集器位于加濕器另一側(靠室內)。溫室出菇房2的3號采集器放置在加濕器正下方,2號采集器與4號采集器均勻分布在加濕器兩側,其中2號采集器靠窗戶,4號傳感器靠室內。數據采集器安裝在三腳架上, 距地面高度約為1.1 m,儀器于2019年11月18日至2020年1月6日每20 min利用GPRS網絡模塊將數據發送至服務器進行存儲,減少了硬件的傳輸損耗,使得傳感器保持穩定、高效的數據傳輸,從而保證對出菇房環境的有效監測,同時又可以滿足模型對大量數據的需求。
2.2.1異常數據處理
溫室出菇房內的相對濕度較大,長時間放置于出菇房內進行監測的傳感器的精度會受到一定的影響。同時由于白天的通風換氣、外界氣候變化使得出菇房的相對濕度達不到所需的要求,因此會根據實際情況進行人工噴濕,存在著人為干擾,加上網絡傳輸的質量、設備故障等問題,使得傳感器在進行數據采集的過程中出現數據異常、數據缺失等情況。這些因素都會對預測模型的精度造成一定的影響,因此針對短時數據的缺失采用線性插值法進行插補,即
(2)
式中xa+i——a+i時刻缺失數據
xa、xa+j——a、a+j時刻原始數據
若數據連續缺失較多或其缺失時間跨度較大,則將天氣狀況相同或者相臨近幾天中同一時刻的數據對其進行填補。對于數據異常處理則采用均值法對數據進行平滑修復,即
(3)
式中xk——異常數據
xk-1、xk+1——相鄰的有效數據
2.2.2歸一化處理
為了消除出菇房室內外環境參數量綱的差異對預測的精度造成不良影響,本文對各影響因子和目標變量進行歸一化處理。計算公式為
(4)
式中xmax——最大值xmin——最小值
x*——歸一化值
為了評估模型的預測效果與精度,選用平均絕對誤差(MAE)、均方根誤差(RMSE)、平均絕對百分比誤差(MAPE)3個指標對其進行評價[31],MAE、RMSE、MAPE越小,表明模型的預測結果更加精準。
MAE、RMSE、MAPE的計算公式為
(5)
(6)
(7)
式中N——預測結果總個數
yi——第i個采樣點實際溫濕度

為了比較各模型方法的預測效率,本文選取訓練時間作為其評價標準,在模型訓練的損失函數值趨于穩定時將其記錄,訓練時間越短其效率越高,損失函數采用均方誤差。
選取了相鄰兩間溫室出菇房內的6個數據采集點進行數據采集,從2019年11月18日至2020年1月6日每個數據采集點均采集了3 600條數據,共21 600條數據,將其和室外氣象數據、非時序多特征數據相融合后用于模型訓練和測試,其中將每個數據點從2019年11月18日至2020年1月1日采集的共19 440條數據用于訓練,2020年1月2日至2020年1月6日的共2 160條數據用于測試,數據的采樣間隔均為20 min,24 h連續采集。將下載好的數據采用One-hot編碼對環境分布特征、通風特征、加濕特征進行特征編碼。例如數據點1的特征編碼為6列矩陣,第1位為1,其余為0。對于開窗通風和加濕器的特征編碼為開啟置1,否則為0。最后將處理好的Excel格式數據轉換為csv格式,方便程序對環境數據進行讀取和保存。
實驗所使用的計算機硬件配置如下:處理器為Intel(R) Core(TM) i5-8250U,內存8 GB,操作系統為64位Windows 10系統,GPU顯卡NVIDIA GeForce MX150 2G。軟件框架結構為Keras深度學習工具,以Tensorflow深度學習框架(版本為GPU2.0)作為后端支持,編程語言為Python(版本為3.7),集成開發環境(IDE)為Pycharm。
采用CNN-GRU神經網絡構建溫室出菇房多點溫濕度預測模型,作為評價出菇房的整體環境狀態。對于時間步長的選取,若時間步長過長則會造成數據冗余,影響模型的收斂速度,若時間步長過短,則不能對模型的輸出進行完全充分的表達,影響其預測精度,設置時間步長為9。利用Adam優化算法不斷地調整模型參數,使模型的性能達到最優。為了避免模型陷入局部最小值,經過多次實驗,初始學習率設置為0.001,每迭代100次學習率調整為原來的10%,迭代200次后損失值趨于穩定值,效果達到最優。
圖5為CNN-GRU模型對2020年1月2日至2020年1月6日各點溫濕度預測值與真實值的平均相關性程度分析。在開窗通風、加濕器開閉的瞬間,以及室外氣象短暫突變時,室內的溫濕度會發生較大的波動,對預測精度造成一定的影響。由圖5可以看出,溫室出菇房內各點的溫度、相對濕度的真實值與預測值整體在直線y=x附近呈均勻分布狀態,決定系數R2分別平均達到了0.983 9、0.970 7,表明預測值與真實值之間存在強相關性,說明模型對溫室出菇房內的各點溫濕度有較好的擬合程度,總體上能較好地應對突變情況,達到了理想的預測精度。

圖5 CNN-GRU模型對各點溫濕度預測值與真實值的相關性分析Fig.5 Correlation analysis between predicted and actual values of temperature and humidity at each point of CNN-GRU model
表1為異常數據修復前后CNN-GRU模型對2020年1月2日至2020年1月6日各點溫濕度預測效果對比分析。數據的缺失會導致模型在訓練過程中損失值出現NaN值現象而無法進行,因此在訓練模型之前需通過預處理對缺失數據進行填補。由表1可以看出,在異常數據修復后CNN-GRU模型對各點溫度、相對濕度預測的MAPE較異常數據修復前分別降低了4.56%、7.46%,原因為異常數據作為訓練樣本所提取的樣本特征不夠完整、準確,對模型的預測效果有著直接的影響,表明了采用均值法對異常數據修復的有效性。

表1 異常數據修復對MAPE的影響分析Tab.1 Analysis of influence of abnormal data repair on MAPE %
為了驗證所提出的預測模型的科學性和穩定性,本文將BP模型、LSTM模型和GRU模型進行實驗對比分析,模型定量分析評價結果如表2所示。由表2可以看出,相比較其他3種預測模型,CNN-GRU模型可以更好地處理多點多維稀疏特征數據,其預測精度最高,效果最優。對于出菇房內各點溫度預測的平均RMSE和MAE,CNN-GRU模型分別達到了0.211、0.140℃,較BP模型分別下降了31.49%、33.33%;較LSTM模型分別下降了9.83%、5.41%;較GRU模型分別下降了6.64%、4.11%。對于出菇房內各點濕度預測的平均RMSE和MAE,CNN-GRU分別達到了2.731%、1.713%,較BP模型分別下降了15.66%、16.48%;較LSTM模型分別下降了11.65%、8.93%;較GRU模型分別下降了10.75%、7.51%。由此可以得出,CNN-GRU模型預測的效果更加理想,泛化性能更好,與實際的溫室出菇房內各點溫濕度較為接近,能夠更好地評估溫室出菇房整體的環境分布狀態。
圖6為BP模型、LSTM模型、GRU模型和CNN-GRU模型的誤差對比,其中實線為零基準線,虛線為誤差區間。由圖6可見,基于CNN-GRU模型的多點溫濕度預測值誤差最小,擬合性能最優,BP模型的誤差較大,偏離實際的溫濕度最大,GRU模型對于整體的預測性能稍優于LSTM模型。由表2可得出,對于溫室出菇房內各點溫度的預測,BP模型、LSTM模型、GRU模型和CNN-GRU模型的預測誤差控制在±0.5℃范圍內的各點平均比例分別為91.38%、94.67%、95.43%、97.57%,CNN-GRU模型相比其他3種模型分別提高了6.19、2.90、2.14個百分點。對于溫室出菇房內各點相對濕度的預測,BP模型、LSTM模型、GRU模型和CNN-GRU模型的預測誤差控制在±5%范圍內的各點平均比例分別為90.86%、91.52%、91.72%、92.62%,CNN-GRU模型相比其他3種模型分別提高了1.76、1.10、0.90個百分點,可以看出與其他3種模型相比,CNN-GRU模型對于整體的預測效果最優,誤差的波動性較小,能夠更準確預測溫室出菇房內未來20 min的多點溫濕度的空間分布趨勢,可以為溫室出菇房的整體環境調控提供決策依據。

表2 1月2—6日各模型預測精度評價分析Tab.2 Analysis of prediction accuracy of each model from January 2th to 6th

圖6 1月2—6日菇房各區域溫濕度預測結果誤差Fig.6 Errors of temperature and humidity prediction results in various areas of mushroom house from January 2th to 6th

表3 各模型的預測效率比較Tab.3 Comparison of prediction efficiency of each model
表3為各模型的預測效率比較。由表3可知, CNN-GRU模型的耗時比結構較簡單的BP模型長,但模型損失值與其相比降低了18.18%,預測精度更好。由于CNN局部連接和權值共享的特性,在捕捉高層次特征的同時可由池化層特征降維,減少參數,CNN-GRU模型相比LSTM模型和GRU模型的訓練時間明顯縮短,并且模型的損失值更低,預測效果更好,損失值較LSTM模型和GRU模型均降低了10%。結果表明,CNN-GRU對于復雜多變的出菇房小氣候環境數據有著很好的適應能力,同時模型的運行效率也得到了提升。
(1)將食用菌溫室出菇房室外的氣象數據及室內的海量環境數據構造時間步長×特征向量的二維矩陣作為輸入,考慮影響食用菌溫室出菇房內溫濕度的多特征數據特點,通過CNN模型的特殊結構,捕捉環境數據的時間、空間分布的內在規律,挖掘了深層次的有效信息。
(2)GRU模型能更好地學習CNN提取的高維時間序列特征,針對其時序性、非線性、高波動性、強耦合性的特點進行有效的動態時間序列數據建模。
(3)CNN-GRU網絡混合模型充分利用了CNN模型和GRU模型的優勢,實驗結果表明,與BP模型、LSTM模型、GRU模型相比,本文方法在提高預測精度的同時還兼顧了運行效率,提升了整個模型的預測性能。