王澤鵬 陳曉燕* 龐 濤 余 富 胡肖楠 汪 震
(1.四川農業大學 信息工程學院,四川 雅安 625014; 2.農業信息工程四川省高校重點實驗室,四川 雅安 625014; 3.四川農業大學 機電學院,四川 雅安 625014)
生豬是我國農產品市場中最基本、最重要的組成部分,生豬價格是農產品市場的核心要素[1]。受較多因素影響,生豬價格存在一定的波動和異常。生豬價格的不確定性增加了參與豬肉供應鏈的利益相關者所面臨的風險,該風險可能損害生豬行業從業者的利益,這不僅不利于生豬產業的健康發展,也不利于國家經濟的健康發展。鑒于生豬價格也是市場物價的重要組成部分,科學的預測方法可以幫助政府,生豬養殖廠等群體及時做出正確的決策,為廣大人民群眾的利益提供有利保障。
目前,生豬價格預測方法主要從傳統農產品價格預測方法中遷移而來。已有研究對農產品價格預測提出了許多簡化的計算模型以及相應的分析方法:1)最簡單的多元線性回歸模型[2];2)ARIMA時間序列分析模型[3];3)灰色雙指數平滑法模型[4];4)傳統的機器學習模型[5-9],其中,傳統的機器學習模型是應用最多和預測效果較好的方法。因為影響豬肉價格的因素較多,所以豬肉價格數據通常是非平穩的、非線性的,以上的研究方法存在預測精度不夠高、容易陷入局部極小值等問題。神經網絡具有強大的非線性計算能力,能夠以任意精度近似任意連續的非線性函數,可以應用于具有輸入和輸出之間一定關系的任何價格預測,它可以很好地捕捉復雜的非線性模式。近年來,神經網絡、深度學習等方法也逐漸地應用到農產品價格預測研究中,如對中國大豆價格[10]、魚價[11]、多種農產品價格[12]等預測,也應用到了生豬價格[13-14]預測研究中,但預測精度有待提高。
時間卷積網絡(TCN)[15]是深度學習領域中一種可以用來解決時間序列預測的算法,不僅具有高度的非線性逼近能力和很強的自學習能力,而且在處理大批量數據時,預測效果更優。Pelletier等[16]將時間卷積網絡應用于衛星圖像分類,Kim等[17]使用深度時間卷積網絡預測生物遺傳變異的突變效應。本研究擬采用改進網絡結構的時間卷積網絡模型,以西南地區某省的生豬價格數據為樣本,進行生豬價格預測研究,以期為政府和企業提供科學的決策依據。
試驗數據來源于西南地區某省2011—2020年每周生豬價格,試驗中按照時間順序將每5周時間段中的前4周豬價作為單個樣本的特征,第5周豬價作為對應的標簽,設生豬價格周數據為xi,(i=0,1,…,n),則單個樣本的特征和對應的標簽映射如下:
feature=xi,xi+1,xi+2,xi+3→label=xi+4(i=0,1,…,n-4)
(1)
式中:feature為單個樣本的特征;label為對應的標簽;→代表一一映射關系。總計產生476個樣本數據,隨機打亂后按照8∶2劃分原則劃分出385個樣本數據作為訓練集,91個樣本數據作為測試集。
為將不同量級的數據統一轉化為同一個量級,以保證數據之間的可比性,對數據進行了Z-Score標準化處理。公式如下:
(2)
式中:x為樣本觀測值;μ為總體平均值;σ為總體標準差;Z為樣本標準化后的值。
本研究所有試驗均在訓練集上采用5折交叉驗證法劃分為子訓練集和子驗證集,進行模型超參數選擇,選取最佳超參數后,重新訓練整個訓練集得到最佳模型,然后在測試集上測試模型效果。其中機器學習方法在交叉驗證的基礎上對訓練集進行網格搜索選取最佳超參數,神經網絡方法在交叉驗證的基礎上對訓練集進行調參、改進網絡結構選取最佳超參數。訓練集訓練時5折交叉驗證見圖1。
1.3.1機器學習方法
1)隨機森林回歸(RFR)。隨機森林屬于Bagging類算法,而Bagging 又屬于集成學習一種方法。集成學習的大致思路是訓練多個弱模型打包起來組成一個強模型,強模型的性能要比單個弱模型好很多。在訓練階段,隨機森林使用bootstrap采樣從輸入訓練數據集中采集多個不同的子訓練數據集來依次訓練多個不同決策樹;在預測階段,隨機森林將內部多個決策樹的預測結果取平均得到最終的結果。
2)極限梯度提升(XGBoost)。極限梯度回升是基于決策樹的集成機器學習算法,它以梯度提升(Gradient boost)為框架,由梯度提升決策樹(GBDT)發展而來,同樣是利用加法模型與前向分步算法實現學習的優化過程,但與梯度提升決策樹

圖1 訓練集訓練時5折交叉驗證示意圖Fig.1 Five-fold cross-validation diagram in the training set
是有區別的,主要是在目標函數、優化方法、缺失值處理、防止過擬合4個方面對梯度提升決策樹進行了改進。
3)輕型梯度提升機(LightGBM)。輕型梯度提升機和極限梯度提升一樣是對梯度提升決策樹(GBDT)的高效實現,原理上它和GBDT及XGBoost類似,都采用損失函數的負梯度作為當前決策樹的殘差近似值,去擬合新的決策樹。它的設計思路主要是減小數據對內存的使用,保證單個機器在不犧牲速度的情況下,盡可能地用上更多的數據;減小通信的代價,提升多機并行時的效率,實現在計算上的線性加速。
本研究隨機森林回歸試驗、極限梯度提升試驗、輕型梯度提升機試驗網格搜索超參數變量見表1。

表1 3種機器學習模型網格搜索超參數變量Table 1 Three machine learning models for the grid search of hyper parametric variables
1.3.2神經網絡方法
1)時間卷積網絡。時間卷積網絡是一種能夠處理時間序列數據的網絡結構,例如給定輸入生豬價格序列x0,x1,…,xn共n+1個價格數據,需要預測輸出序列y0,y1,…,yn,關鍵的約束是預測某個時間點t的輸出yt僅能使用該時間點t及以前的輸入數據x0,x1,…,xt,即
yt=f(x0,x1,…,xt)
(3)
時間卷積網絡在不同的應用場景下有不同的實現方式,韓建勝等[18]提出一種基于雙向時間卷積網絡的情感分析模型,在中文文本情感分類任務中取得了較好的效果。Li等[19]提出了一種用于時間動作分割任務的多階段架構模型,該模型在動作分割任務中的3個經典數據集上取得了較為先進的結果。Yan等[20]將時間卷積網絡應用在天氣預報研究中,預測結果較其他方法表現良好。本研究TCN試驗結合數據集特點從2個方面進行了改進:一是考慮到輸入的時間步為4和較深的網絡在小數據集上容易出現過擬合現象的原因,從網絡結構,即網絡深度方向上進行改進。二是考慮到模型訓練中如果學習率的參數值固定可能導致在訓練迭代后期出現梯度消失或梯度爆炸現象的原因,從學習率設置,即從學習率動態變化角度進行改進。經過大量試驗發現網絡深度過大會導致過擬合,學習率固定在迭代輪次較大情況下會出現梯度爆炸。最終本研究具體改進的時間卷積網絡(TCN)擴張因果卷積結構如圖2所示,輸入與輸出之間有4個隱藏層,膨脹系數是2的指數次方,即1,2,4,8,16。模型訓練時學習率采用動態衰減策略。

表示輸入層節點;表示隱藏層節點;表示輸出層節點。 膨脹系數d=n+1,其中n指每層相鄰的2個尾端之間的節點數,例如圖中A,B,C三點為相鄰的尾端,A與B之間的節點數為1,B與C之間的節點數也為1,所以如圖中第2隱藏層所示,d=1+1=2。 refers to input layer node; refers to hidden layer node; refers to output layer node Dilation: d=n+1, n refers to the number of nodes between two adjacent end of each layer. For example, the three points A, B and C in the figure are the adjacent end, the number of nodes between A and B is 1, and the number of nodes between B and C is also 1. Therefore, as shown in the second hidden layer in the figure, d=1+1=2.圖2 時間卷積網絡擴張因果卷積結構圖Fig.2 TCN dilated causal convolution structure diagram
2)因果卷積[21]。從直觀上,因果卷積類似于將卷積運算劈去一半,令其只能對過去時間步的輸入進行運算。在具體網絡結構實現上,一維的因果卷積主要通過padding實現,二維的因果卷積主要通過mask filter map實現。如果需要考慮較長時間前的輸入變量就必須增加卷積層數,卷積層數的增加就帶來了梯度消失、訓練復雜、擬合效果不好等問題,為了解決這個問題,需要引入擴張卷積[22]。
3)擴張卷積。擴張卷積的主要作用是在不增加參數和模型復雜度的情況下,可以指數倍的擴大視野。對于因果卷積,為使卷積的感受野變大獲得長期依賴,使用擴張卷積作為因果卷積的基本結構。擴張卷積是通過跳過部分輸入使filter可以應用于大于filter本身長度的區域,等同于通過增加零來從原始filter中生成更大的filter。
4)殘差連接[23]。殘差連接在一定程度上消除了深度網絡部分梯度消失和爆炸的影響,并且被證明是訓練深層網絡的有效方法,可使得網絡以跨層的方式傳遞信息。殘差結構將輸出o表述為輸入x和輸入的一個非線性變換f(x)的線性疊加:
o=x+f(x)
(4)
本研究試驗采用的評價指標為回歸問題中的常用3種評價指標,分別為均方誤差(MSE)、平均絕對誤差(MAE)、決定系數(R2)。均方誤差(MSE)是指參數估計值與參數真值之差平方的期望值:
(5)

(6)

(7)

3種機器學習模型網格搜索后最佳超參數變量見表2。隨機森林回歸(RFR)模型預測的91個生豬價格數據和真實標簽值擬合見圖3(a),預測值與真實標簽值基本重合,但第55~60樣本段預測效果較差。極端梯度提升(XGBoost)模型的預測值折線趨勢基本與真實標簽值折線趨勢重合,但第55~60樣本段預測折線較真實標簽值折線略微突出(圖3(b))。輕型梯度提升機(LightGBM)模型的第50~55樣本段預測值與真實標簽值偏差較大,預測值折線較真實標簽值折線向下突出,第55~60樣本段預測效果也比較差(圖3(c))。
綜上,3種機器學習模型的預測值折線趨勢與真實標簽值折線趨勢基本一致,其中極端梯度提升(XGBoost)模型預測效果更好。

表2 3種機器學習模型最佳變量取值Table 2 Optimal variable values list of three machine learning models
經過大量試驗發現,在時間卷積網絡(TCN)的損失函數為mse、迭代次數為2 000、學習率初始為0.01,每迭代500次學習率衰減一半,結構為4個隱藏層,每個隱藏層節點數為3,卷積核尺寸為2,丟棄率為0.2的情況下,取得了較為出色的預測效果。預測值與真實標簽值的趨勢擬合見圖4,預測值折線趨勢基本上與真實標簽值折線趨勢重合,預測值與真實標簽值偏差非常小。預測值與真實標簽值的線性擬合公式為:
y=x+0.15
(8)
式中:y為預測值;x為真實標簽值。圖5示出時間卷積網絡模型預測結果與真實值線性擬合結果,可見散點數據基本在直線y=x上,零星幾個散點偏離,但偏差較小。

圖3 3種機器學習模型對生豬價格的預測結果與真實標簽值的擬合Fig.3 Fitting of prediction results of three machine learning models for hog prices with real label values

圖4 時間卷積網絡模型Fig.4 Temporal convolutional network model

圖5 時間卷積網絡模型預測結果與真實值線性擬合Fig.5 Linear fitting of prediction results and real value of temporal convolutional network model
本研究4種模型預測結果與真實標簽值的回歸評價指標結果見表3。可知,TCN模型預測結果的MSE為0.340 606,MAE為0.288 424,R2為0.995 683,均優于其他3種機器學習模型結果,且與傳統機器學習模型中預測效果最好的XGBoost預測結果(MSE為0.460 842,MAE為0.315 601,R2為0.994 159)比較,3個指標分別提升了26%、8%和0.15%。對比結果表明,TCN相比傳統機器學習模型,更加充分地學習到生豬價格之間的非線性變化規律。

表3 4種模型指標結果對比Table 3 Comparison Table of four model index results
本研究針對生豬價格數據具有非線性、突變性、非平穩性的特點,將時間卷積網絡(TCN)模型應用于生豬價格預測研究中。結合實際的生豬價格數據,調整改進網絡結構及參數,進行大量試驗,并同其他3種機器學習模型比較,得到如下結論:
1)從曲線擬合程度和3個評估指標的對比結果看,調優改進后的時間卷積網絡模型(TCN)充分地學習生豬價格之間的非線性關系,同機器學習模型預測結果比較,預測效果更優。
2)本研究所采用的時間卷積網絡(TCN)模型是高效的時間序列預測算法,在處理大批量數據時,預測效果更為明顯,為具有更大數據量的農產品價格預測研究提供了一種思路。