李森林, 唐 波, 馬竹根, 印 東
(懷化學(xué)院,湖南 懷化 418008)
湖南省地處我國(guó)中部,特殊的地理位置和環(huán)境使得其農(nóng)業(yè)的發(fā)展對(duì)我國(guó)農(nóng)產(chǎn)品產(chǎn)量供給的作用非常重要[1]。農(nóng)產(chǎn)品產(chǎn)量預(yù)測(cè)一直是農(nóng)業(yè)科技研究的重要方向和熱點(diǎn)問(wèn)題。傳統(tǒng)的農(nóng)產(chǎn)品產(chǎn)量預(yù)測(cè)方法存在預(yù)測(cè)精度低、易受人為因素影響等問(wèn)題,如著名反饋網(wǎng)絡(luò)(Back Propagation,BP)預(yù)測(cè)模型[2],盡管能擬合輸入和輸出變量之間復(fù)雜的非線性關(guān)系,但由于BP 算法是一種局部搜索的優(yōu)化方法,在訓(xùn)練中易陷入局部極值,使訓(xùn)練失敗。近年來(lái),隨著深度學(xué)習(xí)技術(shù)的快速發(fā)展,基于深度學(xué)習(xí)的時(shí)間序列數(shù)據(jù)預(yù)測(cè)方法表現(xiàn)優(yōu)異,尤其長(zhǎng)短期記憶網(wǎng)絡(luò)(Long Short-term Memory,LSTM)模型作為一種善于處理長(zhǎng)期依賴性的循環(huán)神經(jīng)網(wǎng)絡(luò),已經(jīng)廣泛應(yīng)用于金融、氣象、交通、能源、農(nóng)業(yè)等領(lǐng)域,取得了很好的預(yù)測(cè)效果[3-5]。為此,我們提出了基于深度學(xué)習(xí)LSTM 的湖南農(nóng)產(chǎn)品產(chǎn)量預(yù)測(cè)模型。
本文的研究目的如下:第一,研究人工神經(jīng)網(wǎng)絡(luò)(Artificial Neural Network,ANN)模型是否能夠有效預(yù)測(cè)典型氣候條件下湖南農(nóng)產(chǎn)品產(chǎn)量;第二,建立湖南農(nóng)產(chǎn)品的LSMT 預(yù)測(cè)模型;第三,評(píng)估LSTM 神經(jīng)網(wǎng)絡(luò)模型相對(duì)于參數(shù)變化的性能;第四,比較LSTM 模型與BP 模型的有效性;第五,總結(jié)研究結(jié)果,指出研究的不足之處,提出未來(lái)的研究方向。
時(shí)間序列數(shù)據(jù)預(yù)測(cè)模型一般以歷史數(shù)據(jù)為基礎(chǔ),通過(guò)數(shù)學(xué)模型來(lái)預(yù)測(cè)未來(lái)的趨勢(shì)和變化,如移動(dòng)平均法、回歸分析等。自從人工神經(jīng)網(wǎng)絡(luò)出現(xiàn)以來(lái),基于梯度下降算法的BP 神經(jīng)網(wǎng)絡(luò)及其變體模型得到快速發(fā)展。例如,路思恒等[7]利用BP 神經(jīng)網(wǎng)絡(luò)對(duì)云南省糧食產(chǎn)量進(jìn)行預(yù)測(cè),研究了不同的輸入特征、神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)和訓(xùn)練方法對(duì)預(yù)測(cè)精度的影響;Kohzadi[8]比較了BP 神經(jīng)網(wǎng)絡(luò)和時(shí)間序列模型在預(yù)測(cè)商品價(jià)格方面的性能。這些模型的應(yīng)用需要工作人員具有一定領(lǐng)域的專業(yè)知識(shí),進(jìn)行數(shù)據(jù)特征提取,參數(shù)配置等,因此模型的推廣和應(yīng)用并不容易。Hochreiter 等[9]于1997 年提出深度學(xué)習(xí)循序模型,基本思想是通過(guò)引入記憶單元來(lái)捕捉時(shí)間序列數(shù)據(jù)中的長(zhǎng)期依賴關(guān)系。之后,LSTM模型在結(jié)構(gòu)和訓(xùn)練方法上被不斷改進(jìn)和拓展。例如,Gers 等[10]在2002 年提出了帶“忘記門”的LSTM模型,用于消除過(guò)去信息對(duì)當(dāng)前預(yù)測(cè)的干擾;Sunny 等人在使用雙向LSTM模型,用于對(duì)時(shí)間序列金融數(shù)據(jù)進(jìn)行雙向建模[11]。這些應(yīng)用表明了LSTM 模型在時(shí)間序列預(yù)測(cè)中的廣泛適用性和優(yōu)越性。然而,目前的研究大多集中在某一種農(nóng)產(chǎn)品上,對(duì)于多種農(nóng)產(chǎn)品的預(yù)測(cè)研究仍然較少,同時(shí),模型的優(yōu)化和改進(jìn)仍然是一個(gè)值得研究的問(wèn)題。
本部分首先簡(jiǎn)要敘述人工神經(jīng)網(wǎng)絡(luò)基本模型,然后重點(diǎn)闡述使用的深度學(xué)習(xí)LSTM模型和評(píng)估指標(biāo),最后給出基于LSTM模型的預(yù)測(cè)流程。
人工神經(jīng)網(wǎng)絡(luò)是一種模擬人類神經(jīng)系統(tǒng)的計(jì)算模型,由多個(gè)神經(jīng)元(節(jié)點(diǎn))組成,通過(guò)神經(jīng)元之間的連接和傳遞信息來(lái)實(shí)現(xiàn)對(duì)數(shù)據(jù)的學(xué)習(xí)和處理。BP 人工神經(jīng)網(wǎng)絡(luò)至少需要3 層:輸入層、隱藏層和輸出層,如圖1 所示。輸入層和輸出層分別包含對(duì)應(yīng)于輸入和輸出變量的節(jié)點(diǎn)。數(shù)據(jù)通過(guò)加權(quán)在層之間移動(dòng)連接。1 個(gè)節(jié)點(diǎn)接受來(lái)自上1 層的數(shù)據(jù),所有輸入的加權(quán)和ti計(jì)算公式為

圖1 3 層神經(jīng)網(wǎng)絡(luò)
其中n是輸入的數(shù)量,wij是節(jié)點(diǎn)i和j之間連接的權(quán)重,x是來(lái)自節(jié)點(diǎn)j的輸入值。然后對(duì)加權(quán)值ti應(yīng)用激活函數(shù)來(lái)計(jì)算節(jié)點(diǎn)輸出Oi
隱藏層和輸出層最常用的激活函數(shù)是Sigmoid 函數(shù),而輸入層通常使用線性激活函數(shù)。隱藏節(jié)點(diǎn)的數(shù)量決定了輸入和輸出之間的連接數(shù)量。
循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)模型是一種深度的遞歸神經(jīng)網(wǎng)絡(luò)模型,LSTM是RNN的一個(gè)變體。Hochreiter[9]于2011 利用LSTM模型解決了RNN 模型隨著網(wǎng)絡(luò)層數(shù)的增加和迭代次數(shù)的增加,后續(xù)節(jié)點(diǎn)會(huì)逐漸忘記之前的信息,導(dǎo)致梯度遞減或梯度爆炸問(wèn)題。
LSTM模型將信息存儲(chǔ)在一個(gè)個(gè)記憶細(xì)胞中,不同隱藏層的記憶細(xì)胞之間通過(guò)少量線性交互形成1條傳送帶,實(shí)現(xiàn)信息的流動(dòng)。圖2 顯示LSTM 模型引入了一種“門”的結(jié)構(gòu),用來(lái)新增或刪除記憶細(xì)胞中的信息,控制信息的流動(dòng)內(nèi)存單元專門用于保存歷史信息。其中,F(xiàn)t是遺忘門,負(fù)責(zé)遺忘記憶單元Ht-1中多少記憶得以保存,其計(jì)算公式為:

圖2 LSTM 單元
It為輸入門,主要選擇需要流入當(dāng)前記憶細(xì)胞的信息,其計(jì)算公式為:
Qt為輸出門,主要選擇需要流入隱藏狀態(tài)的記憶信息,其計(jì)算公式為:
Ct為當(dāng)前記憶細(xì)胞,由候選記憶細(xì)胞及上一時(shí)間步記憶細(xì)胞組合而來(lái),其計(jì)算公式為:
Ht為當(dāng)前時(shí)刻的輸出,是通過(guò)輸出門更新當(dāng)前的記憶細(xì)胞得到的,其計(jì)算公式為:
為了證明所提出的湖南農(nóng)產(chǎn)品預(yù)測(cè)模型的有效性,本文使用了3 種常用的統(tǒng)計(jì)指標(biāo),即相關(guān)系數(shù)(Correlation Coefficient,R)、平均絕對(duì)誤差(Mean Absolute Error,MAE)和均方根誤差(Root Mean Squared Error,RMSE),來(lái)綜合評(píng)估預(yù)測(cè)性能。R的值在0 和1 之間,其值越接近于1,性能越好。MAE和RMSE的值越接近于0,其精度越高。R、MAE和RMSE的計(jì)算公式如下:
上述公式中,n表示待評(píng)估樣本的總數(shù);yi和是觀察值和預(yù)測(cè)值;和分別是測(cè)量的時(shí)間序列均值和預(yù)測(cè)的時(shí)間序列均值。
本文旨在研究基于LSTM 模型的農(nóng)產(chǎn)品產(chǎn)量預(yù)測(cè)方法,圖3 顯示了其主要研究?jī)?nèi)容,包括構(gòu)建LSTM模型、獲取和預(yù)處理數(shù)據(jù)、模型訓(xùn)練和預(yù)測(cè)、分析等。具體方法為:第一,從氣象網(wǎng)和統(tǒng)計(jì)年鑒中獲取了歷史的氣象數(shù)據(jù)和農(nóng)產(chǎn)品產(chǎn)量數(shù)據(jù),包括不同品種的年度產(chǎn)量情況;第二,數(shù)據(jù)預(yù)處理包括特征提取、數(shù)據(jù)清洗、歸一化等;第三,數(shù)據(jù)集劃分為訓(xùn)練集和測(cè)試集,其中訓(xùn)練集為前n年的數(shù)據(jù),測(cè)試集為后m年的數(shù)據(jù);第四,基于Keras 平臺(tái)構(gòu)建了LSTM 模型,包括輸入層、LSTM 層、全連接層和輸出層等。訓(xùn)練時(shí),模型采用Adam 優(yōu)化器和均方誤差損失函數(shù)。測(cè)試階段,測(cè)試集輸入到模型中得到預(yù)測(cè)結(jié)果。

圖3 預(yù)測(cè)模型示意圖
數(shù)據(jù)取自于2021 年湖南統(tǒng)計(jì)年鑒(http://222.240.193.190/2021tjnj/indexch.htm)。我們主要針對(duì)油料、糧食和棉花3 種農(nóng)產(chǎn)品的產(chǎn)量開(kāi)展研究。首先我們獲取了與農(nóng)業(yè)產(chǎn)量有關(guān)的因素,如有效灌溉面積、用電量和機(jī)械總動(dòng)力數(shù)據(jù)。我們對(duì)數(shù)據(jù)集進(jìn)行預(yù)處理操作,與其他數(shù)據(jù)集一樣,數(shù)據(jù)集也存在缺失值,常用的缺失值填充方法有均值填充、線性插補(bǔ)和最近鄰插補(bǔ)等方法。在此,我們使用了如下2 種方法,第一,極個(gè)別數(shù)據(jù)的缺失用線性插值補(bǔ)全;第二,數(shù)據(jù)塊缺失補(bǔ)全使用了線性插值加隨機(jī)擾動(dòng)相結(jié)合,這是因?yàn)樵趯?duì)無(wú)缺失變量分析時(shí),我們發(fā)現(xiàn)數(shù)據(jù)具有近似線性的特征。然后,我們使用sklearn.preprocessing包中LabelEncoder方法將字符串類型的農(nóng)產(chǎn)品種類列轉(zhuǎn)換為數(shù)值,并在用于模型之前,完成最大最小數(shù)據(jù)標(biāo)準(zhǔn)化縮放。為了避免異常值的影響,采用了4 分位間距構(gòu)建箱形圖來(lái)檢測(cè)異常點(diǎn)和修正。最后我們對(duì)數(shù)據(jù)集按照8∶1∶1 的比例分為訓(xùn)練數(shù)據(jù)塊、驗(yàn)證塊和測(cè)試塊,分別用于模型的訓(xùn)練、驗(yàn)證和測(cè)試。
我們需要認(rèn)真考慮輸入何種變量,這是因?yàn)檩斎胱兞康慕M合對(duì)模型性能的影響取決于在多大程度上利用相關(guān)信息和去除冗余信息。選擇的變量過(guò)少可能出現(xiàn)多擬合,從而導(dǎo)致模型沒(méi)有足夠的輸入信息來(lái)做出令人滿意的預(yù)測(cè);而使用所有變量或過(guò)多的變量往往會(huì)導(dǎo)致欠擬合,同樣結(jié)果不理想,這2 種情況都會(huì)導(dǎo)致模型性能下降。由于我們使用了相對(duì)復(fù)雜的LSMT模型,這需要一定數(shù)量的數(shù)據(jù)集用于訓(xùn)練提高精度,為此我們完成了盡量多農(nóng)產(chǎn)品數(shù)據(jù)的爬取。
選擇適合的模型對(duì)數(shù)據(jù)進(jìn)行訓(xùn)練,訓(xùn)練集用于模型的訓(xùn)練,驗(yàn)證集用于模型的選擇和調(diào)參,測(cè)試集用于評(píng)估模型的性能。
本文基于湖南農(nóng)業(yè)數(shù)據(jù),創(chuàng)建基于LSTM的3 種時(shí)間序列預(yù)測(cè)模型和BP模型,包括單層LSTM 模型(S_L)、堆疊LSTM 模型(D_L)、雙向LSMT 模型(B_L)和BP模型(BP)。
我們給出第2 種堆疊模型的基本配置,如表1 所示,模型包括2 層LSTM、2 層Dropout 和1 層Dense,參數(shù)總計(jì)為7 2651 個(gè)。

表1 模型參數(shù)
本節(jié)詳細(xì)分析和討論模型的預(yù)測(cè)性能。表2 顯示了4 種結(jié)構(gòu)的性能指標(biāo),結(jié)果表明單層LSTM模型性能較好,其次是BP網(wǎng)絡(luò),D_L和B_L模型。這說(shuō)明模型性能并不總與其復(fù)雜性成正相關(guān)關(guān)系,也與數(shù)據(jù)特性、參數(shù)選擇等相關(guān)。

表2 不同模型的性能指標(biāo)
為了驗(yàn)證提出各種LSTM預(yù)測(cè)模型的有效性,在實(shí)例中我們預(yù)測(cè)所選的3 種農(nóng)產(chǎn)品的產(chǎn)量,可視化了數(shù)據(jù)預(yù)測(cè)的結(jié)果如圖4—7 所示。

圖4 堆疊LSTM 模型農(nóng)產(chǎn)品模型預(yù)測(cè)與實(shí)際值變化

圖5 單層LSTM 模型農(nóng)產(chǎn)品模型預(yù)測(cè)與實(shí)際值變化曲線

圖6 雙向LSTM 模型農(nóng)產(chǎn)品模型預(yù)測(cè)與實(shí)際值變化曲線

圖7 BP 模型農(nóng)產(chǎn)品模型預(yù)測(cè)與實(shí)際值變化曲線
4 種模型預(yù)測(cè)結(jié)果圖表明,第一,這些模型在現(xiàn)有數(shù)據(jù)集上的預(yù)測(cè)效果都很好;第二,堆疊或雙向的復(fù)雜LSTM模型相對(duì)于簡(jiǎn)單的單層LSTM模型,在預(yù)測(cè)精度和泛化能力上差別并不明顯;第三,傳統(tǒng)淺層BP 模型與深度神經(jīng)網(wǎng)絡(luò)LSTM 模型相比,性能并不差,甚至更好。這都進(jìn)一步驗(yàn)證了模型精度不只與復(fù)雜度有關(guān),更與數(shù)據(jù)直接相關(guān)。
我們基于湖南農(nóng)產(chǎn)品構(gòu)建了3 種LSTM 模型和1 個(gè)BP 模型,并對(duì)3 種農(nóng)產(chǎn)品產(chǎn)量進(jìn)行了預(yù)測(cè)。實(shí)驗(yàn)結(jié)果表明,3 種LSTM 模型和BP 模型都得到了較為準(zhǔn)確的預(yù)測(cè)結(jié)果。因此,這些模型可以用于有限數(shù)據(jù)集上的其他預(yù)測(cè)問(wèn)題。在實(shí)驗(yàn)過(guò)程中,我們發(fā)現(xiàn)模型參數(shù)、模型結(jié)構(gòu)與性能有關(guān),合理調(diào)整這些參數(shù)同樣重要,數(shù)據(jù)量多少非常重要。為此,我們將進(jìn)一步獲取農(nóng)產(chǎn)品如農(nóng)林牧副漁、各種水果、蔬菜等種類,從而增加數(shù)據(jù)量,深入研究深度LSTM神經(jīng)網(wǎng)絡(luò)的在農(nóng)業(yè)領(lǐng)域的應(yīng)用。