江知航,王艷霞,顏家均,周堂容
(1.重慶師范大學計算機與信息科學學院,重慶市,401331;2.重慶市江津區(qū)農(nóng)業(yè)工程建設服務中心,重慶市,402260;3.重慶市數(shù)字農(nóng)業(yè)服務工程技術研究中心,重慶市,401331;4.重慶市江津區(qū)農(nóng)產(chǎn)品質(zhì)量安全中心,重慶市,402260;5.重慶市江津區(qū)圣泉街道農(nóng)業(yè)服務中心,重慶市,402218)
伴隨著現(xiàn)代農(nóng)業(yè)的迅速發(fā)展,國內(nèi)外眾多投資者和從業(yè)者的目光由房地產(chǎn)、金融等熱門領域轉(zhuǎn)向農(nóng)產(chǎn)品領域。作為我國第二大經(jīng)濟作物的棉花也受到了廣泛的關注。準確預測棉花波動和價格的走勢已經(jīng)成為了新的研究重點。國內(nèi)外對棉價的預測進行了相當多的研究[1],人們最開始使用傳統(tǒng)的數(shù)學模型,主要是用統(tǒng)計學相關的方法,即根據(jù)經(jīng)驗進行預測。而后基于簡單智能預測方法進行預測,雖然克服了傳統(tǒng)方法易受人為主觀性影響的問題,但也易陷入局部極小點,導致預測精度不高等問題。為了降低這種風險,隨著深度學習人工智能算法的不斷迭代和技術的不斷革新發(fā)展,使用深度學習進行語義分類[2],機器翻譯[3],圖像識別[4],價格預測[5]等研究等已經(jīng)掀起了新一輪的技術浪潮。對于具有時間序列和非線性等特征的數(shù)據(jù),一些先進的集成算法和深度學習算法由于具有高精度和良好的魯棒性已逐漸成為價格預測問題的最佳選擇。
吳葉等[6]采用平均影響值(MIV)、遺傳算法(GA)與BP神經(jīng)網(wǎng)絡相結合的方法探究MIV-GA-BP神經(jīng)網(wǎng)絡模型對我國棉花價格預測的情況,以國家棉花價格指數(shù)為棉花價格波動的重要反映指標,試驗認為該組合模型較之于單一模型,擬合精度良好。郭超[7]通過BP神經(jīng)網(wǎng)絡,搭建了棉花價格波動動態(tài)模型,檢驗發(fā)現(xiàn),檢測值與目標原值誤差控制在較小范圍內(nèi),訓練所得的神經(jīng)網(wǎng)絡模型可以對棉花價格指數(shù)進行準確的預測,較好的揭示了棉花價格的系統(tǒng)結構和規(guī)律。閆慶華等[8]以2004/2005—2015/2016年國際棉花現(xiàn)貨價格月度數(shù)據(jù)為依據(jù),理論分析了國際棉花現(xiàn)貨價格的波動情況,并使用ARIMA模型實證分析了短期內(nèi)國際棉花現(xiàn)貨價格的波動趨勢,相對誤差在5%以下。趙梅等[9]利用2003年1月—2014年12月的棉花價格指數(shù)月度數(shù)據(jù),將月度數(shù)據(jù)劃分為訓練集和測試集,構建ARIMA和平滑ARIMA模型對2014年11月和12月的棉花價格進行短期預測,基于差異率進行對比分析,結論表明平滑ARIMA模型的預測棉花價格指數(shù)精度優(yōu)于ARIMA模型,Hudson等[10]通過選取美國棉花價格波動的供需關系、棉花種植、產(chǎn)量、天氣等影響因素,構建了ARCH/GARCH的回歸模型,并進行了分析研究,Bailey等[11]通過隨機時間序列方程分析了美國棉花現(xiàn)貨價格與期貨價格之間的相關性,并預測了當前現(xiàn)貨市場的價格。
從當前的研究成果來看,大多學者在棉價預測的特征選擇上主要是基于政策、棉花產(chǎn)銷、對外貿(mào)易、期貨市場等因素進行的研究分析。研究表明[12-14],氣候變化對農(nóng)作物生產(chǎn)發(fā)育的影響是巨大的,不同的氣候條件所產(chǎn)出的農(nóng)作物商品質(zhì)量和產(chǎn)量也具有較大的差異性,生產(chǎn)種植的變化從而引起其供需的變化,進而影響棉花價格。在棉花價格預測方法、網(wǎng)絡模型的選擇上主要采用較傳統(tǒng)的簡單智能預測方法和簡單的神經(jīng)網(wǎng)絡結構模型,對于目前應用廣泛的深度學習方法在棉花價格預測方面的應用研究甚少。針對目前棉花價格預測存在的問題,本文對于數(shù)據(jù)特征選擇不僅考慮了影響價格的直接因素如進出口貿(mào)易、棉花產(chǎn)銷等,也收集整理了氣象氣候條件和農(nóng)產(chǎn)品生長生命周期中重要的降水、日照、濕度等數(shù)據(jù),在對其進行數(shù)據(jù)處理后參與模型運算。在棉花價格預測模型的選擇上,本文采用LSTM[15]和BILSTM[16]兩種神經(jīng)網(wǎng)絡結構進行棉花價格回歸預測問題的研究,并且為了避免在模型的訓練過程中隨機梯度下降(SGD)法在梯度下降過程中的頻繁波動,可能得到局部最優(yōu)值。試驗采用SWA優(yōu)化算法取SGD軌跡的多點簡單平均值對SGD進行優(yōu)化,避免了SGD在梯度下降過程中的頻繁波動問題,使其模型能將Loss和損失值收斂至全局最優(yōu),進一步提高訓練的穩(wěn)定性。
1.1.1 非平穩(wěn)性
在基于傳統(tǒng)計量經(jīng)濟方法(如Arma/Arima[17]自回歸模型)的時間序列預測問題中,需要原始數(shù)據(jù)具有平穩(wěn)性的特征。因此本文對近4年的棉花價格指數(shù)進行了Dickey-Fuller(ADF)檢驗,其檢驗結果如表1所示。
表1 Dickey-Fuller(ADF)檢驗結果Tab.1 Dickey-Fuller(ADF)test result
如表1所示,ADF檢驗結果中的Test Statistic為-2.852 254,在1%和5%的置信區(qū)間下,無法拒絕原假設,P-value值較大??梢哉J為該數(shù)據(jù)是不穩(wěn)定的。本文針對檢驗情況進行了差分處理,檢驗結果顯示,二階差分后的數(shù)據(jù)拒絕原假設,可以認為數(shù)據(jù)是平穩(wěn)的。
1.1.2 高噪音性
棉花價格的數(shù)理特征之一是時間序列數(shù)據(jù)具有較強的白噪聲。如果用統(tǒng)計模型來進行棉花價格預測,則需要對時間序列數(shù)據(jù)進行預處理,才能將其引入模型進行計算,否則就沒有規(guī)則可循。而進行差分運算后,則難以表現(xiàn)市場原始數(shù)據(jù)規(guī)律。
1.1.3 多變量
棉花價格指數(shù)的影響因素是多樣且互相關聯(lián)的,并不是以獨立個體影響因子單獨存在,在實際市場環(huán)境中,棉花價格除了受到基本的供需關系因素影響以外,還受到國際匯率、資金流動及進出口費額因素、氣象因素、政策因素的共同影響。
綜上,棉花價格預測具有多變量、非線性、高噪音、低頻性等特點,因此本文選用Bilstm神經(jīng)網(wǎng)絡模型來預測棉花價格序列是最優(yōu)選擇。
長短期記憶網(wǎng)絡(Long short-term memory,LSTM)實質(zhì)上可以理解為一種特殊的RNN,主要是為了解決RNN網(wǎng)絡在長序列訓練過程中發(fā)生梯度消失和梯度爆炸的問題。相比于RNN,LSTM主要是引入了細胞形態(tài)(cell state)用于保存長期狀態(tài),而LSTM的關鍵就在于如何控制長期狀態(tài)c,從而引用了控制門的機制,該機制可以去除或者增加信息到細胞狀態(tài)的能力。通過sigmoid函數(shù)將門輸出為[0,1]的實數(shù)向量。當門輸出為0時,乘以該向量的任何向量都將得到0向量,即判定為不能通過。當輸出為1時,乘以任何向量都不會改變其原值,即可以通過。神經(jīng)元中加入了輸入門(input gate),遺忘門(forget gate),輸出門(output gate),以及內(nèi)部記憶單元(cell),其網(wǎng)絡結構圖如圖1所示。
圖1 LSTM網(wǎng)絡結構Fig.1 LSTM network structure
在LSTM神經(jīng)網(wǎng)絡訓練學習的過程中,第一步是由遺忘門(forget gate)決定從細胞狀態(tài)中丟棄哪些信息。該步驟會讀取和輸入數(shù)據(jù)點乘計算得到一個輸出值,其決定了上一時刻的狀態(tài)有多少會保留到當前時刻。計算公式如式(1)所示。
ft=σ(Wf×[ht-1,xt]+bf)
(1)
式中:xt——當前細胞的輸入;
ht-1——cell的前一次輸出;
Wf——遺忘門的權重矩陣;
bf——遺忘門的偏置項;
σ——sigmoid函數(shù)。
第二步,將確定哪些新信息將會被添加到網(wǎng)絡結構或細胞狀態(tài)中。計算公式如式(2)所示。
it=σ(Wi×[ht-1,xt])+bi)
(2)
式中:Wi——輸入門的權重矩陣;
bi——輸入門的偏置項。
(3)
式中:Wc——計算細胞狀態(tài)的權重矩陣;
bc——計算細胞狀態(tài)的偏置項。
(4)
第四步,需要決定輸出怎樣的信息。計算公式如式(5)和式(6)所示。
Qt=σ(Wo×[ht-1,xt]+bo)
(5)
ht=ot×tanh(Ct)
(6)
式中:Wo——輸出門的權重矩陣;
bo——輸出門的偏置項。
LSTM是一個單向的循環(huán)神經(jīng)網(wǎng)絡,模型實際上只接收到了“上文”的信息,而沒有考慮到“下文”的信息,在實際應用場景中,輸出結果可能需要由前面若干輸入和后面若干輸入共同決定,獲取到整個輸入序列的信息,而BILSTM網(wǎng)絡就可以同時保存雙向數(shù)據(jù)信息。一個完整的BILSTM網(wǎng)絡包含輸入層,前向LSTM層、反向LSTM層和輸出層。
圖2所示,在Forward層從1時刻到t時刻正向計算一遍,得到并保存每個時刻向前隱含層的輸出,wf表示為前向LSTM層。該步驟數(shù)學表達公式如式(7)所示。
圖2 BILSTM網(wǎng)絡結構圖Fig.2 BILSTM network structure
ht=f(w1xt+w2ht-1)
(7)
在Backward層沿著時刻t到時刻1反向計算一遍,得到并保存每個時刻向后隱含層的輸出,表示為后向LSTM層。該步驟數(shù)學表達公式如式(8)所示。
h′t=f(w3xt+w5h′t+1)
(8)
最后,在每個時刻將正向?qū)雍头聪驅(qū)釉谙鄳獣r間的輸出結果進行組合從而獲得最終輸出,該輸出結合了雙向輸入序列的信息。該步驟數(shù)學表達公式如式(9)所示。
ot=g(w4ht+w6h′t)
(9)
本文所有試驗均基于Windows操作系統(tǒng)下,試驗通過搭建CPU版本的Keras框架,利用該框架下內(nèi)置神經(jīng)網(wǎng)絡結構進行模型搭建。編程環(huán)境為Python3.7,三方擴展庫包括Numpy、Pandas、Matplotlib、Keras、Sklearn等。在本文試驗中采用LSTM、BILSTM神經(jīng)網(wǎng)絡與全連接層的連接方式,對棉花價格進行回歸預測試驗,同時添加Dropout機制避免過擬合現(xiàn)象,提升模型泛化能力,模型采用MAE作為損失函數(shù),SGD優(yōu)化器進行訓練,然后采用SWA算法對傳統(tǒng)SGD優(yōu)化器進行優(yōu)化訓練。
Dense網(wǎng)絡:又稱為全連接層,主要用于綜合隱藏層提取的特征數(shù)據(jù)。
ReLu函數(shù):稱為線性整流函數(shù)(Rectified Linear Unit),是一種神經(jīng)網(wǎng)絡中最為常用的激活函數(shù)(activation function)主要目的是為得到神經(jīng)網(wǎng)絡更為豐富的假設空間,防止梯度消失,加速梯度下降的收斂速度。
SGD優(yōu)化算法:主要用于對樣本進行梯度更新,在反向傳播時不斷更新其權值。
正則化Dropout:主要用于防止過擬合使其不依賴某些局部特征,強化模型的泛化能力。
BILSTM、LSTM模型網(wǎng)絡結構和神經(jīng)元個數(shù)分別如圖3(a)和圖3(b)所示。
(a)BILSTM神經(jīng)網(wǎng)絡模型
圖3(a)為BILSTM神經(jīng)網(wǎng)絡價格預測模型,其結構如下。
結構第一層為LSTM層的初始神經(jīng)元個數(shù)為128。結構第二層為BILSTM,初始神經(jīng)元個數(shù)為128,激活函數(shù)使用ReLu。結構第三層為全連接層,神經(jīng)元個數(shù)為128,激活函數(shù)使用ReLu。結構第四層添加正則化Dropout,參數(shù)按0.25比例隨機置0。結構第五層為全連接層,神經(jīng)元個數(shù)為64,激活函數(shù)ReLu。結構第六層添加正則化Dropout,參數(shù)按0.25比例隨機置0。結構第七層為輸出層,輸出維度為1,激活函數(shù)使用PReLu。
LSTM神經(jīng)網(wǎng)絡模型采用同樣的網(wǎng)絡結構和神經(jīng)元個數(shù),網(wǎng)絡優(yōu)化器和損失函數(shù)與BILSTM模型均保持一致。不同之處為該模型將BILSTM神經(jīng)網(wǎng)絡舍棄,用LSTM神經(jīng)網(wǎng)絡進行模型預測訓練和論證。圖3(b)即LSTM價格預測模型,其結構如下。
結構第一層為LSTM,初始神經(jīng)元個數(shù)為128。結構第二層為LSTM,初始神經(jīng)元個數(shù)為128,激活函數(shù)使用ReLu。結構第三層為全連接層,神經(jīng)元個數(shù)為128,激活函數(shù)使用ReLu。結構第四層添加正則化Dropout,參數(shù)按0.25比例隨機置0。結構第五層為全連接層,神經(jīng)元個數(shù)為64,激活函數(shù)ReLu。結構第六層添加正則化Dropout,參數(shù)按0.25比例隨機置0。結構第七層為輸出層,輸出維度為1,激活函數(shù)使用PReLu。
本文選取了棉花日價格指數(shù)、種植面積、單位產(chǎn)量、棉花產(chǎn)量、紗產(chǎn)量、進口量、進口費額、出口量、出口費額、匯率(美元)、平均本站氣壓、日最高本站氣壓、日最低本站氣壓、平均氣溫、日最高氣溫、日最低氣溫、平均相對濕度、小型蒸發(fā)量、大型蒸發(fā)量、日照時數(shù)、平均地表氣溫、日最高地表氣溫、日最低地表氣溫等變量。數(shù)據(jù)主要來源于中國棉花協(xié)會,國家統(tǒng)計局,中國海關,中國國家氣象局,中國人民銀行數(shù)據(jù)中心板塊,均為國家官方機構或研究機構開放共享的官方統(tǒng)計數(shù)據(jù),統(tǒng)計數(shù)據(jù)時間周期為2016—2019年。這些變量共同組成了本文原始數(shù)據(jù)集。
原始數(shù)據(jù)集有可能會存在缺失值、異常值的情況,本文對原始數(shù)據(jù)進行插值補全,排序等操作,從而得到了更加有效完整的數(shù)據(jù)集。在將棉花數(shù)據(jù)喂入網(wǎng)絡模型時,由于其產(chǎn)量、價格指數(shù)、進出口費額等參數(shù)作為特征輸入時,與其他特征量綱差距過大,如其指數(shù)和費額多在千萬量級,而氣象特征多在幾或幾十量級。需對數(shù)據(jù)集進行歸一化操作,主要目的是為了消除各特征變量大小的影響以及不同量綱帶來的影響,歸納統(tǒng)一樣本的統(tǒng)計分布性。歸一化后的數(shù)據(jù)可以加快模型訓練階段的求解和收斂的速度,也可以提高預測的精度。避免由于不同量綱導致的部分特征變量貢獻率過大,即將數(shù)據(jù)統(tǒng)一映射到[0,1]的區(qū)間上。歸一化方法有很多,本文選用Min-max歸一化(Min-max normalization)進行處理,數(shù)學方法如式(10)所示。Min-max歸一化是對原始數(shù)據(jù)的線性轉(zhuǎn)換。其中x為原始輸入數(shù)據(jù),min為樣本數(shù)據(jù)中的最小值,max為樣本數(shù)據(jù)中的最大值。
(10)
根據(jù)我國棉花市場的相關要求,所獲取的棉花市場日交易數(shù)據(jù)均為工作日交易數(shù)據(jù),因此其他特征均依照日交易價格指數(shù)日期進行處理,從而構建出了更加完整科學的數(shù)據(jù)集。數(shù)據(jù)集總共包含棉花市場共24個特征指標,共27 513條數(shù)據(jù)。
本文所采用的模型預測性能評價指標均采用平均絕對誤差(MAE)和均方根誤差(RMSE)來對試驗結果進行對比分析[18]。其中MAE是絕對誤差的平均值,RMSE是預測值和實際觀測之間平方差異平均值的平方根,其數(shù)學表達計算公式如式(11)和式(12)所示。
(11)
(12)
在使用BILSTM和LSTM神經(jīng)網(wǎng)絡進行時間序列預測問題的試驗時,其實質(zhì)在于將時間序列的問題轉(zhuǎn)變?yōu)橛斜O(jiān)督學習的問題,從僅僅是一個序列,變成成對的輸入和輸出。
表2中左半部分為棉花價格指數(shù)部分數(shù)據(jù),右半部分則演示為基于前兩個時刻,即Var(t-1),Var(t-2)表示為輸入變量X為t-1時刻的價格指數(shù)和t-2時刻的價格指數(shù)。得到輸出Y時刻的價格指數(shù),即Var(t)。則當前天,前一單位歷史特征為監(jiān)督學習標簽序列整體滯后一個單位,前兩單位歷史特征為監(jiān)督學習標簽序列整體滯后兩個單位,以此類推。根據(jù)多次試驗結果的對比,本試驗中取歷史特征為18個單位為最優(yōu)值,表示參考前24,48,72……18×24個交易日數(shù)據(jù)作為歷史數(shù)據(jù)特征,即將該月前18個月的價格特征作為輸入?yún)⑴c模型運算。在本文的試驗中,主要使用了python第三方庫pandas科學計算包中的series_to_supervised()函數(shù)完成多元變量時間序列的轉(zhuǎn)換。
表2 棉價指數(shù)轉(zhuǎn)化為有監(jiān)督學習問題示例Tab.2 Example of converting cotton price index into supervised learning problem
本文將2016年1月4日—2019年9月的棉花價格指數(shù)及其他特征向量用于訓練和驗證,采用五折交叉驗證方式,將數(shù)據(jù)集分成五份,輪流將其中4份做訓練1份做驗證。增強模型的泛化能力。將2019年10月為模型測試集。本試驗中,每一層權重初始化都采用Glorot正態(tài)分布初始化方法,減少loss陷入局部最優(yōu)的概率。在訓練過程中,增加了學習率衰減的操作,即訓練過程中若訓練Loss值在50輪內(nèi)無下降,則將學習率×0.1,避免由于學習率過大而跳過全局最優(yōu)值。以此更為精細的調(diào)整網(wǎng)絡。
圖4中反應了BILSTM模型在訓練過程中每次迭代后的訓練集和驗證集的損失情況。
(a)損失值
可以看到在模型迭代至100次時,損失值大幅度減小,迭代至300次時,損失值減小至0.021 5,訓練誤差和驗證誤差均已趨于平穩(wěn),差值較小,表明此模型的泛化水平和擬合效果較好,未出現(xiàn)過擬合和欠擬合的情況。根據(jù)訓練集和驗證集的迭代數(shù)據(jù)顯示,模型在一定程度上能夠找到全局最優(yōu)值,且能夠得到較好的收斂。因此模型的各項參數(shù)和權重得以確定,接下來調(diào)用keras框架中的.fit()方法對2019年10月的24個工作日的價格指數(shù)展開預測,并與真實值進行擬合對比。
圖5展示了該模型在預測集上的效果,可以看到模型預測值與真實結果擬合狀況較好,棉花價格在一個較小的波動區(qū)間內(nèi)變化,走勢較為平滑。綜合來看,本次試驗中,真實值與預測值之間的MAE為60.773,RMSE為70.249,該模型與真實價格波動走勢基本一致,這反映出BILSTM網(wǎng)絡在基于時間序列回歸預測問題的可行性。同時由圖4可見,在模型收斂至接近全局最小值時,更新比較頻繁,造成Cost Function在接近全局最優(yōu)值產(chǎn)生震蕩,導致準確度會稍顯下降。
圖5 BILSTM模型測試集結果Fig.5 BILSTM model test set results
為保證不同模型間具有可對比性。該模型均采用BILSTM模型中所用的數(shù)據(jù)集、損失函數(shù)、評價指標和訓練過程。同樣的將2016年1月4日—2019年9月的棉花價格指數(shù)及其他特征向量用于訓練和驗證,采用五折交叉驗證方式,將2019年10月為模型測試集。
圖6反應了該模型在訓練過程中每次迭代訓練集和驗證集的損失情況,可以看到在模型迭代至100次時,損失值大幅度減小,迭代至300次時,損失值減小至0.024 8,訓練誤差和驗證誤差均已趨于平穩(wěn),差值較小,表明此模型的泛化水平和擬合效果較好,未出現(xiàn)過擬合和欠擬合的情況。根據(jù)訓練集和驗證集的迭代數(shù)據(jù)顯示,模型在一定程度上能夠找到全局最優(yōu)值,且能夠得到較好的收斂。因此模型的各項參數(shù)和權重得以確定,接下來同樣調(diào)用keras框架中的.fit()方法對2019年10月的24個工作日的價格指數(shù)展開預測,并與真實值進行擬合對比。
圖7展示了該模型在測試集上的效果,可以看到模型預測值與真實結果擬合狀況較好,棉花價格在一個較小的波動區(qū)間內(nèi)變化,走勢較為平滑。綜合來看,本次試驗中,真實值與預測值之間的MAE為62.44,RMSE為74.45,該模型與真實價格波動走勢基本一致,同時由圖6可見,在該模型收斂至接近全局最小值時,由于是基于SGD優(yōu)化器進行梯度下降和迭代更新,出現(xiàn)了與BILSTM模型結構同樣的問題。由于更新比較頻繁,也出現(xiàn)了Cost Function現(xiàn)象,在接近全局最優(yōu)值產(chǎn)生震蕩,導致準確度會稍顯下降。
(a)損失值
圖7 LSTM模型測試集結果Fig.7 LSTM model test set results
基于上訴模型產(chǎn)生的震蕩問題,本文采用SWA(隨機權值平均)方法對模型使用的SGD優(yōu)化器進行優(yōu)化調(diào)整。研究表明該方法只需快速集合集成的一小部分算力,不用增加任何額外成本的情況下改進隨機梯度下降的泛化。典型的深度學習網(wǎng)絡訓練過程就是用SGD或其他優(yōu)化器對損失函數(shù)進行優(yōu)化,使用一個衰減的學習率直到模型收斂。而SWA算法取SGD軌跡的多點簡單平均值,使用一個變化的循環(huán)或高恒定學習率。
SWA的工作主要分為兩個部分,首先SWA使用一個變化的學習率策略,迭代至一個相對較高性能,損失值收斂的網(wǎng)絡。簡單來說,例如第一步可以在前75%的訓練時間和迭代周期內(nèi),使用標準衰減學習率策略。而后將剩余25%的訓練時間和迭代周期中,設置一個相對較高的恒定學習率,對SGD遍歷的網(wǎng)絡權值進行平均,獲取到最后25%訓練時間內(nèi)保持每個Epoch結束時獲得的權值運行狀態(tài)的平均值,如圖8所示。
圖8 SWA算法學習率策略Fig.8 SWA algorithm learning rate strategy
3.6.1 BILSTM模型實證分析
根據(jù)圖9所示,使用SWA算法后的訓練和驗證損失能夠收斂到最小值,且不會產(chǎn)生較大震蕩。在很大程度上使模型的訓練不至于陷入局部最優(yōu),能夠使訓練Loss收斂到更小值,擬合度更好。同時SWA類似模型集成,使模型更具魯棒性和泛化能力。
圖10展示了模型在通過SWA優(yōu)化后的測試集上的效果,可以看到BILSTM+SWA模型的預測值與真實結果擬合狀況較之余未優(yōu)化之前的結果要好。綜合來看,本次試驗中,真實值與預測值之間的MAE為42.45,RMSE為68.6??梢姶罱ǖ念A測模型具有良好的泛化能力,SWA算法也取得了良好的效果,試驗達到了預期結果的要求。
(a)損失值
圖10 SWA優(yōu)化后的BILSTM模型測試集結果Fig.10 SWA optimized BILSTM model test set results
3.6.2 LSTM模型實證分析
本文為了進一步論證研究SWA算法在不同模型結構間是否具有優(yōu)越的泛化性能,本文同樣使用SWA算法對LSTM模型進行實證分析。
根據(jù)圖11所示,利用SWA算法后的訓練和驗證損失同樣能夠收斂到最小值,且不會產(chǎn)生較大震蕩。使LSTM模型的訓練不至于陷入局部最優(yōu),能夠使損失值收斂到更小值,擬合度更好。然后本文在對測試集進行預測,并與真實價格進行對比分析。
(a)損失值
圖12展示了LSTM模型在通過SWA優(yōu)化后的測試集上的效果,可以看到LSTM+SWA的預測值與真實結果擬合狀況較之余未優(yōu)化之前的結果要好。綜合來看,本次試驗中,真實值與預測值之間的MAE為52.62,RMSE為69.33??梢姶罱ǖ念A測模型具有良好的泛化能力,SWA算法也取得了良好的效果,試驗達到了預期結果的要求。
圖12 SWA優(yōu)化后LSTM模型的測試集結果Fig.12 SWA optimized LSTM model test set results
為了進一步論證BILSTM模型在基于時間序列預測問題上的優(yōu)越性和SWA優(yōu)化后的模型性能和其算法的泛化能力。又分別建立了LightGBM單模型,并對其進行了對比試驗,幾種模型均采用MAE和RMSE為評價標準對同一數(shù)據(jù)集進行結果輸出。結果如圖13所示。
圖13 幾種預測模型的棉花價格預測結果Fig.13 Cotton price forecast results of several prediction models
為了更加清晰的對比這幾種預測模型的優(yōu)劣和結果,對各模型的誤差值進行了對比分析,各個模型的誤差如表2所示。
表2 棉花價格指數(shù)預測誤差Tab.2 Cotton price index forecast error
由圖13和表2中的對比試驗分析得出:基于SWA優(yōu)化的BILSTM預測模型的預測結果最優(yōu),說明BILSTM神經(jīng)網(wǎng)絡在基于時間序列的價格預測問題上同樣可以取得非常好的效果。如圖10中所示,BILSTM+SWA模型預測價格的曲線與真實曲線趨近一致,MAE為42.45,在棉花平均價格指數(shù)為15 388的大基數(shù)下,該誤差非常小。該數(shù)據(jù)能夠在一定程度上反映該模型的健壯性。LightGBM、BILSTM、LSTM單模型,其預測結果遠差于SWA優(yōu)化后的神經(jīng)網(wǎng)絡模型,說明SWA算法在尋求最優(yōu)值域方面具有其優(yōu)越的能力。同時將SWA應用于LSTM和BILSTM等不同的神經(jīng)網(wǎng)絡結構中,可以得出結論SWA算法具有較好的泛化能力,較之于未采用該算法之前,提升了LSTM模型的MAE值18%,BILSTM模型的MAE值43%,可以看出其在不同的神經(jīng)網(wǎng)絡和模型中可以取得不錯的效果,具有良好的泛化能力。
本文充分分析了棉花市場的時序信息和價格波動。在棉花價格預測問題中,特征選擇上重點考慮了天氣氣象因素,模型的選擇上使用BILSTM神經(jīng)網(wǎng)絡建立模型,并與LSTM神經(jīng)網(wǎng)絡模型和LightGbm模型進行對比試驗,優(yōu)化算法上使用SWA算法進行模型迭代和參數(shù)調(diào)優(yōu)。
1)BILSTM神經(jīng)網(wǎng)絡與典型的時間序列預測模型相比,模型的數(shù)據(jù)擬合和預測性能整體更優(yōu)。本文驗證了BILSTM模型在回歸預測領域中的可行性和適用性。
2)SWA優(yōu)化算法可以幫助模型在梯度下降時尋找到最優(yōu)值域,優(yōu)化后的LSTM和BILSTM網(wǎng)絡結構收斂至近似全局最優(yōu),平均絕對誤差(MAE)分別提高了18%和43%,取得了良好的預測結果;與LightGbm單模型,LSTM+SWA、BILSTM+SWA組合的方式進行對比試驗,SWA算法在不同的模型和網(wǎng)絡結構間都表現(xiàn)出了不錯的效果,具有較強的泛化能力。
3)通過上述的試驗流程和結果分析表明,針對棉花市場的非線性、多變量、高噪音的特點,BILSTM神經(jīng)網(wǎng)絡應用于棉花價格指數(shù)預測取得了較好的效果,精度較高。該模型和優(yōu)化方法在時間序列數(shù)據(jù)的研究中將會有更為廣闊的應用和發(fā)展前景。