蘭雪萍 陳晉瑩 姜友軍 鄒 瀟 陳 猛
(中儲糧成都儲藏研究院有限公司1,成都 610091) (西南財經大學統計學院2,成都 611130)
糧食是國家戰略物資,生產環節具有明顯的季節性,不能像工業產品流通一樣零庫存周轉,因此需要保證一定的儲備數量[1,2]。同時,在大部分儲糧環境下,糧食存放數年后品質會逐步劣變,最終失去食用價值[3]。為了保證儲備糧品質,一方面,需要準確預測糧食品質變化趨勢,調整儲糧條件;另一方面,要在品質快速劣變前用新糧輪換舊糧,減少儲糧企業錯過最佳輪換時機而產生的損失。
互聯網的發展帶來海量數據信息,計算機深度學習算法的快速發展給利用這些信息帶來可能。模擬和抽象生物的神經系統在生物學中的結構、狀態和基本工作原理,人工神經網絡技術(Artificial Neural Network, ANN)通過構建數學模型并不斷調整內部大部分節點間互相連接關系表現出一些技能特性,如學習能力、自適應能力和自組織能力,在信號處理、自動控制、模式識別和預測分析方面解決了許多其他機器系統很難處理的問題[4-6]。
BP算法是神經網絡模型中最常用的一種算法,也叫誤差反向傳播算法,其模擬學習過程包括輸入信號正向傳播和誤差信號反向傳播,通過不斷的誤差反饋調節網絡隱層權值,使實際輸出值逐步接近期望值[7]。根據氣候、地理以及耕種差異,可從地域上將我國劃分為7個儲糧生態區:第一區:高寒干燥儲糧區;第二區:低溫干燥儲糧區;第三區:低溫高濕儲糧區;第四區:中溫干燥儲糧區;第五區:中溫高濕儲糧區;第六區:中溫低濕儲糧區;第七區:高溫高濕儲糧區[8]。本研究按不同儲糧生態區的不同糧食品種分類,運用BP神經網絡算法建立數學模型,深度挖掘和分析龐大的儲糧數據,運用Python神經網絡工具箱構建不同地區、不同品種糧食儲存品質預測模型。形成數據采集、數據處理、數據分析、數據決策反饋改進的閉環,實現糧食儲存品質時間序列預測,為探索不同地區不同品種糧食的質量標準及合理輪換周期提供直觀參考。
1.1.1 數據的來源
構建預測模型的數據來源于中國儲備糧管理集團有限公司的糧情測控系統,完全覆蓋7個儲糧生態區。糧食儲存品質短期內變化不明顯,質量普查通常半年1次,分別在3月和9月,因此研究中時間序列的跨度為6個月,不同糧食品種對應的指標類型見表1。
同時還獲取了糧食平均溫度和倉內濕度的數據,以探究糧食品質變化與儲藏環境條件的關系。溫濕度數據是月度數據,一年中4—9月溫度最高,一般認為對糧食質量的影響較大,本研究則以4—9月的溫濕度數據進行建模預測。

表1 不同糧種對應的指標類型[9-12]
1.1.2 數據的提取
從歷史數據庫中按庫點為單位將數據提取成Excel表格,再從Excel中篩選出每一批糧食的指標數據,并按時間順序排列。共取得2014—2018年中儲糧各分子公司春季、秋季糧食質量檢驗數據186 787條,通過大數據模型篩選獲得有效數據111 805條,涉及26個分公司,1 453個庫點,64 745個貨位,其中小麥檢驗數據43 074條,玉米檢驗數據24 215條,粳稻檢驗數據13 475條,秈稻檢驗數據27 177條,大豆檢驗數據3 864條。
BP神經網絡是應用較為廣泛的神經網絡模型之一,在復雜的非線性系統中具有較高的建模能力,在預測方面應用廣泛。模型運行的本質是先利用樣本數據建立起神經網絡模型,然后施加輸入,通過模型運算得到預測結果,實際操作過程分為三步:創建-訓練-仿真[13]。
1.2.1 數據的歸一化處理

1.2.2 創建BP神經網絡架構
BP神經網絡架構包括輸入層、隱藏層、Dropout層、Dense層和輸出層,輸入層輸入經過預處理的數據,然后依次經過隱藏層使用現行加權函數和激活函數對輸入數據進行計算,Dropout層為了防止訓練出來的模型過擬合,在模型訓練過程中更新參數時暫時隨機斷開指定數量的神經元;Dense層是全連接層,其運算為output=activation(dot(input,weight)+bias),其中activation是激活函數,dot為矩陣相乘運算函數,input是Dense層的輸入,也是輸入層的數據依次經過隱藏層和Dropout層的運算得到的輸出值,weight是權重矩陣,bias為偏置值,output為最后輸出的預測結果。
1.2.3 BP神經網絡計算過程
ft=relu((Wf*X)+b0)
it=relu((Wi*ft)+b0)
output=(Woutput*it)+boutput
式中:ft為第一隱藏層的輸出;it為第二隱藏層的輸出;output為輸出值;Wf為當前層的權重矩陣;b0為當前層的偏置項;relu()為ReLU激活函數。BP神經網絡輸入數據是形狀為(samples,timesteps)的2D矩陣,samples為樣本數量,timesteps為輸入數據的維度。
進一步通過以下公式進行模型驗證:
式中:RE為相對誤差;Ot為第t期糧食儲存品質指標實測數據;Pt為通過構建完成的BP神經網絡模型預測的第t期糧食儲存品質指標數據;n為模型驗證樣本數。
1.2.4 確定模型參數
使用網格搜索思想,按照均方誤差(MSE)最小的原則確定最優層數和單元數量。通過對不同預測維度的模型比較分析,確定最終分級模型組結構。
在BP神經網絡模型中,需要人工設定的重要參數包括3個:訓練集和測試集的數據維度、網絡層數、網絡隱層神經單元數量。訓練集和測試集維度,即構建模型所需數據的期數,數據越連續且維度越大,用于模型學習的機會越多,越有利于預測。根據各糧種儲備數據實際情況,維度在3~5之間。
第二個參數網絡的層數,在前期對抽樣的庫點測試之后,數據顯示雙隱層神經網絡和三隱層神經網絡的效果沒有明顯的差別,但是三隱層網絡的訓練時間要遠大于雙隱層網絡,所以選擇雙隱層作為模型的結構。第三個參數是網絡隱藏層神經單元的數量,按照網格搜索思想,以MSE最小為原則,確定神經單元的數量。
基于3月的質量、儲存品質指標,以及4—9月的溫濕度數據,預測9月的儲存品質指標,公式為:
Yt=F(X1,t-1,…,X6,t-1,Yt-1,Z1,t-1,…,Z6,t-1)+εt
其中,Yt和Yt-1為9月和3月的儲存品質指標,X1,t-1~X6,t-1為3月到8月的溫濕度數據,Z1,t-1~Z6,t-1為3月的水分、雜質等其他質量指標。模型見圖1,該模型綜合考慮了質量指標、環境條件對儲存品質指標的影響,可用于模型學習的數據種類較多。

圖1 溫濕度-品質預測模型
各生態區的溫濕度條件和儲糧手段不同,一般認為處于相同儲糧生態區的糧食品質變化規律更為接近,因此本研究的品質時間序列預測模型分生態區進行構建。以維度為4的情況為例,基于連續三期的品質指標預測第四期的品質指標,公式為:yt=F(yt-3,yt-2,yt-1),模型見圖2。該模型中,可用于學習的數據量較多,可預測儲存時間超過3期(1.5年)的糧食情況。

圖2 時間序列品質預測模型
以小麥、玉米、粳稻、秈稻、大豆5個糧食品種為研究對象,按品種建立溫濕度-品質預測模型,隨機選取4/5的數據組為訓練集進行網絡訓練,另外1/5的數據組作為測試集,對訓練好的網絡進行測試,模型基本情況見表2。預測模型中包含糧食平均溫度、倉內濕度以及其他質量指標等多個變量,神經網絡可獲得多種因素對儲存品質指標的影響。該模型是用3月的春季普查數據和春夏兩季的溫濕度數據來預測9份的秋季普查結果,可為糧食安全度夏政策提供參考。

表2 溫濕度-品質預測模型基本情況
為增加預測的準確性,探討儲存品質指標的變化規律,通過對各生態區中的數據進行收集和預處理,按照時間順序排列形成3~5個數據維度,構建了25個時間序列品質預測模型。隨機選取訓練集和測試集,25個BP神經網絡的預測情況如表3所示。各糧種分生態區建模,平均預測誤差如圖3所示。

圖3 時間序列品質預測模型效果

表3 時間序列品質預測模型基本情況

該模型對小麥面筋吸水量的預測效果較好,平均預測誤差均小于5%,對玉米、秈稻、粳稻的脂肪酸值平均預測誤差在5%~10%之間,對大豆粗脂肪酸值的平均預測誤差較高,在10%~22%之間。由于該模型訓練數據來源于同一生態區,糧食儲存環境相似,儲存品質具有相似的變化規律,因此該模型與溫濕度-品質時間序列預測模型的預測結果相比,5個糧種的平均預測誤差分別降低12.8%、6.4%、8.4%、8.0%和8.1%,預測效果更好。
上述模型的訓練和測試所用數據為2014年至2018年產生的數據,為驗證數據更新后的預測效果,繼續采集2019年的儲糧數據對時間序列品質預測模型進行驗證。圖4為5個糧種驗證試驗中的預測值與實測值比較,表4為驗證后的平均預測誤差。從圖4和表4中可以看出,預測值與實測值變化趨勢基本一致,平均預測誤差在15%以下。

表4 各糧種平均預測誤差驗證結果
本研究構建了兩種應用模型,時間序列品質預測模型使用連續2~4期的品質指標預測下一期的品質指標,分生態區構建了25個預測模型,預測誤差在0.75%~22.71%之間;溫濕度-品質時間序列預測模型使用1期的多種指標預測下一期的品質指標,預測誤差在13%~27%之間。
由于時間序列品質預測模型分生態區建模,同一生態區內的數據具有相似的變化規律,從測試結果來看,時間序列品質預測模型對于糧食儲存品質指標具有更好的預測效果。通過采用更新后的數據進行驗證,基于BP神經網絡構建的時間序列品質預測模型平均預測誤差均小于15%,可用于儲糧企業分析糧情并指導生產作業。