郭祥云 連京華 李慧敏 孫 凱
(1.北京信息科技大學(xué) 信息管理學(xué)院,北京 100192;2.山東省農(nóng)業(yè)科學(xué)院 家禽研究所,濟(jì)南 250023)
氨氣是一種無色、有毒、有強(qiáng)烈刺激性氣味的氣體,研究表明蛋雞生長(zhǎng)環(huán)境的氨氣濃度過高會(huì)對(duì)雞只的呼吸道黏膜和眼結(jié)膜產(chǎn)生刺激并誘發(fā)各種炎癥[1-3]。氨氣濃度受養(yǎng)殖場(chǎng)內(nèi)溫度、濕度、通風(fēng)條件等環(huán)境因素影響,依靠監(jiān)測(cè)設(shè)備可以獲取氨氣濃度數(shù)據(jù)并對(duì)其進(jìn)行監(jiān)測(cè)和調(diào)控,但存在調(diào)控滯后性問題[4]。及時(shí)、準(zhǔn)確地預(yù)測(cè)雞舍內(nèi)氨氣濃度的變化情況,進(jìn)而輔助管理人員管理和控制雞舍內(nèi)環(huán)境,對(duì)于改善雞只生存環(huán)境和提高動(dòng)物福利具有重要意義。
已有研究對(duì)畜禽養(yǎng)殖場(chǎng)氨氣濃度的預(yù)測(cè)提出了一些方法,主要分為2大類: 基于物理化學(xué)統(tǒng)計(jì)的氨氣排放機(jī)理模型和基于經(jīng)驗(yàn)的智能算法。機(jī)理模型從物理化學(xué)角度定量分析氨氣排放的變化規(guī)律;基于經(jīng)驗(yàn)的智能算法是黑箱模型,不關(guān)注系統(tǒng)內(nèi)部結(jié)構(gòu),可以用來解決機(jī)理復(fù)雜且未知的非線性建模問題[5]。雞舍內(nèi)氨氣濃度與其他環(huán)境因素間存在復(fù)雜的非線性關(guān)系[6],因此,采用基于經(jīng)驗(yàn)的智能算法預(yù)測(cè)雞舍內(nèi)氨氣濃度是可行的方法之一。
常用的基于經(jīng)驗(yàn)的智能算法有經(jīng)驗(yàn)?zāi)B(tài)分解和長(zhǎng)短時(shí)記憶神經(jīng)網(wǎng)絡(luò)模型(Empirical mode decomposition-long short term memory, EMD-LSTM)[7]、Logistic回歸模型[8]、自適應(yīng)模糊神經(jīng)網(wǎng)絡(luò)(Adaptive neuro fuzzy inference system, ANFIS)[2]、灰色隱馬爾可夫模型(Grey hidden markov model,GHMM)[9]、深度信念網(wǎng)絡(luò)(Deep belief networks,DBN)[10]、粒子群優(yōu)化極限學(xué)習(xí)機(jī)(Particle swarm optimization-extreme learning machine,PSO-ELM)[11]、反向傳播神經(jīng)網(wǎng)絡(luò)(Back propagation neural network,BPNN)[12-14]等,且多用在豬舍氨氣濃度預(yù)測(cè)[2,9,15-16]、水體氨氮預(yù)測(cè)[10-11]、農(nóng)田和牛舍氨氣濃度[12,17]等領(lǐng)域,有關(guān)雞舍氨氣濃度預(yù)測(cè)算法的研究相對(duì)較少。
近年來,循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent neural network, RNN)在自然語言處理、機(jī)器翻譯和時(shí)序預(yù)測(cè)中取得了很好的效果[5]。RNN可以使用內(nèi)部存儲(chǔ)器單元來處理任意輸入序列,從而保證學(xué)習(xí)時(shí)間序列的能力,捕捉系統(tǒng)時(shí)間和空間的演變。但是,RNN存在梯度消失現(xiàn)象,無法捕捉序列中的長(zhǎng)時(shí)間依賴性。長(zhǎng)短時(shí)記憶(Long short-term memory, LSTM) 網(wǎng)絡(luò)完整地考慮時(shí)間序列中長(zhǎng)短期依賴關(guān)系,極大程度上避免了梯度消失的發(fā)生[13]?;陔p階段注意力機(jī)制的編碼器-解碼器(Encoder-Decoder)模型以LSTM為基本單元,最初被用來解決機(jī)器翻譯問題,因其能夠自適應(yīng)的提取輸入數(shù)據(jù)特征,同時(shí)記憶時(shí)間序列的長(zhǎng)期依賴關(guān)系,在時(shí)間序列預(yù)測(cè)中展現(xiàn)了良好的性能[18-19]。本研究擬采用基于雙階段注意力機(jī)制和LSTM的Encoder-Decoder模型構(gòu)建雞舍內(nèi)氨氣濃度預(yù)測(cè)算法,以期為雞舍氨氣濃度高精度預(yù)測(cè)提供技術(shù)支持。
本研究數(shù)據(jù)采集自山東省濟(jì)南市商河縣北部某蛋雞養(yǎng)殖場(chǎng),雞舍長(zhǎng)60 m,寬12 m(圖1),采用自動(dòng)飼喂和自由飲水方式,全天供水,通風(fēng)方式為自然通風(fēng)和強(qiáng)制通風(fēng)相結(jié)合。數(shù)據(jù)采集時(shí)間為2020-04-01—04-07,每15 min采集1次,此時(shí)雞齡為160~166 d。采集的雞舍環(huán)境數(shù)據(jù)包括:二氧化碳(CO2)、氧氣(O2)和氨氣(NH3)體積分?jǐn)?shù),細(xì)顆粒物(PM2.5)質(zhì)量濃度,溫度和相對(duì)濕度[6]?;谖锫?lián)網(wǎng)的雞舍環(huán)境參數(shù)采集系統(tǒng)拓?fù)浣Y(jié)構(gòu)見圖2,傳感器參數(shù)見表1。表2示出2020年4月2日8:00—11:00試驗(yàn)雞舍環(huán)境數(shù)據(jù)。
圖1 試驗(yàn)雞舍Fig.1 Layer house
1.2.1數(shù)據(jù)預(yù)處理
1)缺失值處理:本研究中缺失值主要來源于傳感器通信故障,缺失值填充方法為缺失值所在時(shí)間點(diǎn)前后相鄰兩個(gè)時(shí)間點(diǎn)數(shù)據(jù)值的平均值[7]。
2)異常數(shù)據(jù)處理:本研究中異常數(shù)據(jù)識(shí)別標(biāo)準(zhǔn)為測(cè)量值與其平均值之差的絕對(duì)值大于其標(biāo)準(zhǔn)差的3倍,異常點(diǎn)處數(shù)據(jù)將被替換為異常點(diǎn)兩側(cè)數(shù)據(jù)的平均值。
3)歸一化處理:為消除環(huán)境參數(shù)量綱不同造成的收斂困難問題[20],本研究采用最大最小法對(duì)環(huán)境參數(shù)進(jìn)行歸一化處理,歸一化計(jì)算公式為[7]:
圖2 雞舍環(huán)境參數(shù)采集系統(tǒng)拓?fù)浣Y(jié)構(gòu)Fig.2 Topological structure of environmental parameters collection system in layer house
表1 本研究所用傳感器技術(shù)參數(shù)Table 1 Technical data of sensors in this research
表2 2020-04-02 T8:00—11:00試驗(yàn)雞舍環(huán)境數(shù)據(jù)Table 2 Environmental data of layer house at 8:00—11:00 on April 2nd, 2020
(1)
式中:X′為歸一化后的值;X為原始值;Xmin和Xmax分別為原始值中最小值和最大值。
1.2.2雙階段注意力機(jī)制模型
雞舍內(nèi)氨氣濃度受溫度、濕度等多種環(huán)境參數(shù)影響,環(huán)境變量在同一時(shí)刻具有相互依賴性,同時(shí),不同時(shí)刻的環(huán)境變量數(shù)據(jù)對(duì)其他時(shí)刻的環(huán)境變量數(shù)據(jù)影響也不同,雙階段注意力機(jī)制模型在編碼器和解碼器階段均引入注意力機(jī)制,能夠獲取雞舍環(huán)境變量之間的依賴性和環(huán)境變量數(shù)據(jù)序列的時(shí)間依賴性。
1)雙階段注意力模型結(jié)構(gòu)。
雙階段注意力機(jī)制預(yù)測(cè)模型的結(jié)構(gòu)見圖3。模型輸入為雞舍中CO2和O2的體積分?jǐn)?shù)、PM2.5質(zhì)量濃度以及溫度、相對(duì)濕度序列數(shù)據(jù),時(shí)間窗口大小為T。輸入注意力機(jī)制模塊用以捕捉環(huán)境變量之間的依賴性,該模塊能夠自適應(yīng)地提取環(huán)境變量對(duì)氨氣濃度的影響程度,并賦予環(huán)境變量不同的權(quán)重;經(jīng)過輸入注意力機(jī)制加權(quán)的環(huán)境數(shù)據(jù)傳遞給編碼器模塊進(jìn)行編碼,然后進(jìn)入時(shí)間注意力機(jī)制模塊,時(shí)間注意力模塊自適應(yīng)提取不同時(shí)刻環(huán)境數(shù)據(jù)對(duì)氨氣濃度的影響程度,并對(duì)不同時(shí)刻的環(huán)境數(shù)據(jù)進(jìn)行加權(quán),經(jīng)過時(shí)間注意力模塊加權(quán)后進(jìn)入解碼器進(jìn)行解碼。最后將信息傳輸給全連接層輸出氨氣濃度預(yù)測(cè)值。
圖3 雙階段注意力模型結(jié)構(gòu)Fig.3 Two-stage attention mechanism structure
2)長(zhǎng)短時(shí)記憶網(wǎng)絡(luò)(LSTM)。
本研究中編碼器和解碼器均采用LSTM算法(圖4),LSTM算法由Hochreiter等提出[21],其隱藏層神經(jīng)元包括細(xì)胞狀態(tài)和3個(gè)門結(jié)構(gòu),實(shí)現(xiàn)控制信息在細(xì)胞狀態(tài)上的更新。
圖4 LSTM單元結(jié)構(gòu)Fig.4 LSTM cell structure
LSTM單元主要計(jì)算公式如下:
(2)
Ut=σ(Wu[ht-1,xt]+bu)
(3)
Ft=σ(Wf[ht-1,xt]+bf)
(4)
Ot=σ(Wo[ht-1,xt]+bo)
(5)
(6)
ht=Ot⊙tanh(ct)
(7)
3)輸入注意力機(jī)制。
(8)
(9)
(10)
4)時(shí)間注意力機(jī)制。
(11)
(12)
時(shí)間注意力模塊的輸出ot計(jì)算公式為:
(13)
5)解碼器。
解碼器結(jié)合全連接層對(duì)T+1時(shí)刻的氨氣體積分?jǐn)?shù)進(jìn)行預(yù)測(cè),Y=(y1,y2,…,yt,…,yT)表示T時(shí)間窗口內(nèi)各個(gè)時(shí)刻的氨氣體積分?jǐn)?shù),yt表示t時(shí)刻的氨氣體積分?jǐn)?shù)。具體過程為:
(14)
(15)
圖5 輸入注意力機(jī)制Fig.5 Input attention mechanism
圖6 時(shí)間注意力機(jī)制Fig.6 Temporal attention mechanism
(16)
式中:oT為時(shí)間注意力模塊T時(shí)刻的輸出;Vy,Wy,bw,b為待訓(xùn)練參數(shù)。
1.2.3模型評(píng)價(jià)方法
為了比較不同預(yù)測(cè)模型的性能,采用平均絕對(duì)誤差(Mean absolute error, MAE)、均方根誤差(Root mean square error, RMSE)2個(gè)指標(biāo)衡量各模型的預(yù)測(cè)結(jié)果[6]。MAE和RMSE的計(jì)算公式分別為:
(17)
(18)
本研究中CO2、NH3和O2的體積分?jǐn)?shù),溫度和相對(duì)濕度數(shù)據(jù)的缺失率分別為0.299%,0.747%,0.149%,0.897%,0.897%,PM2.5質(zhì)量濃度數(shù)據(jù)無缺失。數(shù)據(jù)集的劃分采用holdout方法,訓(xùn)練集占比為80%,測(cè)試集占比為20%。經(jīng)多次試驗(yàn),選擇的優(yōu)化函數(shù)為Adam,學(xué)習(xí)率為0.001,隱藏狀態(tài)大小為64,時(shí)間窗口T∈{2,3,4,8},分別對(duì)應(yīng)實(shí)際時(shí)間為30, 45, 60和120 min。對(duì)比算法為支持向量回歸 (Support vector regression,SVR)、人工神經(jīng)網(wǎng)絡(luò)(Artificial neural network,ANN) 和無注意力機(jī)制的LSTM算法。SVR模型參數(shù)為:核函數(shù)為徑向基函數(shù)(Radial Basis Function,RBF);時(shí)間窗口T∈{2,3,4,8}的懲罰系數(shù)分別為1.0,0.5,0.5,1.0;ANN模型為1個(gè)輸入層,5個(gè)隱藏層和1個(gè)輸出層,5個(gè)隱藏層神經(jīng)元個(gè)數(shù)分別為5,10,25,10,5,激活函數(shù)為tanh;無注意力機(jī)制的LSTM模型參數(shù)與本研究中模型參數(shù)相同。模型采用Python 3.6、sklearn 0.23.2、Pytorch 1.1.0框架進(jìn)行開發(fā)。
圖7示出不同時(shí)間窗口T下測(cè)試集NH3體積分?jǐn)?shù)預(yù)測(cè)結(jié)果對(duì)比。直觀地看,隨著T的增加,模型擬合效果逐漸向好。當(dāng)T為8時(shí),NH3體積分?jǐn)?shù)波動(dòng)較小時(shí)刻,模型預(yù)測(cè)能力強(qiáng);NH3體積分?jǐn)?shù)波動(dòng)幅度較大時(shí)刻,模型預(yù)測(cè)能力較弱。
圖7 不同時(shí)間窗口T下測(cè)試集氨氣體積分?jǐn)?shù)觀測(cè)值和預(yù)測(cè)值Fig.7 Observations and predictions of NH3 volume fraction on testing set under different window size
圖8示出不同時(shí)間窗口T下的測(cè)試集NH3體積分?jǐn)?shù)預(yù)測(cè)殘差。T=2時(shí),殘差區(qū)間為±2.0 μL/L;T∈{3,4}時(shí),殘差區(qū)間為±3.0 μL/L,T=4時(shí)殘差波動(dòng)幅度較T=3時(shí)??;T=8時(shí),最大殘差超過了4.0 μL/L。對(duì)于不同時(shí)間窗口T,最大殘差均出現(xiàn)在氨氣濃度波動(dòng)較大的時(shí)刻,表明在氨氣濃度波動(dòng)較大時(shí),模型預(yù)測(cè)能力較弱。同時(shí),隨著時(shí)間窗口T的增加,在氨氣濃度變化較小的區(qū)間內(nèi),殘差較??;相反地,氨氣濃度波動(dòng)劇烈的區(qū)間殘差較大。
圖8 不同時(shí)間窗口T下測(cè)試集NH3體積分?jǐn)?shù)預(yù)測(cè)殘差Fig.8 Residual of NH3 volume fraction under different window size
表3示出不同模型RMSE和MAE指標(biāo)對(duì)比。本研究模型的RMSE在T為2,3和4時(shí)分別為0.433 4,0.394 8和0.379 9 μL/L, 逐漸減小;T=8時(shí),相較之前有所增加,為0.405 1 μL/L,與文獻(xiàn)[19]研究呈現(xiàn)類似的變化趨勢(shì),表明時(shí)間窗口T太大或太小會(huì)導(dǎo)致模型魯棒性和泛化性的變化,在進(jìn)行氨氣濃度預(yù)測(cè)時(shí)需要選擇合適的時(shí)間窗口。MAE在4個(gè)時(shí)間窗口T下分別為0.267 4,0.262 9,0.228 9和0.272 4 μL/L,呈現(xiàn)同樣的變化趨勢(shì)。
從RMSE指標(biāo)看,相較于SVR,在T為2,3,4和8時(shí)分別降低了43.61%,57.77%,48.50%和43.85%,相較于ANN分別降低了43.77%,57.51%,48.66%和45.21%。從MAE指標(biāo)看,相較于SVR, 在T為2,3,4和8時(shí)分別降低了20.01%, 28.79%, 35.84%和12.91%, 相較于ANN分別降低了24.07%,32.88%,38.71%,25.36%??梢钥闯?,SVR和ANN模型預(yù)測(cè)結(jié)果接近,本模型的預(yù)測(cè)結(jié)果在RMSE和MAE評(píng)價(jià)指標(biāo)框架下優(yōu)于SVR和ANN。
無注意力機(jī)制的LSTM算法表現(xiàn)優(yōu)于SVR和ANN,略遜于雙階段注意力機(jī)制的LSTM模型,在T為2,3,4和8時(shí),RMSE分別為0.474 6,0.504 5,0.450 4和0.535 2 μL/L,MAE分別為0.270 2,0.283 7,0.243 2和0.272 6 μL/L,相比于該模型,基于雙階段注意力機(jī)制的LSTM模型在RMSE指標(biāo)上分別降低了8.68%,21.74%,15.65%和24.98%;在MAE指標(biāo)上分別降低了1.04%,7.33%,5.88%和0.07%。
表3 各模型測(cè)試集氨氣體積分?jǐn)?shù)預(yù)測(cè)誤差對(duì)比Table 3 Comparison of prediction error of NH3 volume fraction with different models on test dataset
本研究采用基于雙階段注意力機(jī)制和LSTM算法對(duì)雞舍氨氣濃度進(jìn)行預(yù)測(cè),并與傳統(tǒng)的SVR和ANN算法以及無注意力機(jī)制的LSTM算法進(jìn)行比較研究。結(jié)果表明,基于雙階段注意力機(jī)制和LSTM的模型相較于SVR、ANN和無注意力機(jī)制的LSTM模型,在不同時(shí)間窗口下RMSE和MAE均較低?;陔p階段注意力機(jī)制和LSTM的模型能夠提高雞舍氨氣濃度時(shí)序數(shù)據(jù)變化趨勢(shì)的預(yù)測(cè)精度,能更準(zhǔn)確地預(yù)測(cè)雞舍氨氣濃度變化和趨勢(shì)。
循環(huán)神經(jīng)網(wǎng)絡(luò)訓(xùn)練需要大量數(shù)據(jù)集,為了提高模型的魯棒性,今后研究可以采取增加數(shù)據(jù)集等方法改善模型表現(xiàn);同時(shí)雞舍環(huán)境受如溫度、濕度、氣象因素、飲食等眾多因素影響,且環(huán)境變量間存在復(fù)雜的非線性關(guān)系,考慮更多環(huán)境因子或有助于提高模型預(yù)測(cè)精度及魯棒性。