• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于BILSTM的棉花價格預(yù)測建模與分析*

      2021-09-13 02:26:54江知航王艷霞顏家均周堂容
      關(guān)鍵詞:棉花價格棉花神經(jīng)網(wǎng)絡(luò)

      江知航,王艷霞,顏家均,周堂容

      (1.重慶師范大學(xué)計(jì)算機(jī)與信息科學(xué)學(xué)院,重慶市,401331;2.重慶市江津區(qū)農(nóng)業(yè)工程建設(shè)服務(wù)中心,重慶市,402260;3.重慶市數(shù)字農(nóng)業(yè)服務(wù)工程技術(shù)研究中心,重慶市,401331;4.重慶市江津區(qū)農(nóng)產(chǎn)品質(zhì)量安全中心,重慶市,402260;5.重慶市江津區(qū)圣泉街道農(nóng)業(yè)服務(wù)中心,重慶市,402218)

      0 引言

      伴隨著現(xiàn)代農(nóng)業(yè)的迅速發(fā)展,國內(nèi)外眾多投資者和從業(yè)者的目光由房地產(chǎn)、金融等熱門領(lǐng)域轉(zhuǎn)向農(nóng)產(chǎn)品領(lǐng)域。作為我國第二大經(jīng)濟(jì)作物的棉花也受到了廣泛的關(guān)注。準(zhǔn)確預(yù)測棉花波動和價格的走勢已經(jīng)成為了新的研究重點(diǎn)。國內(nèi)外對棉價的預(yù)測進(jìn)行了相當(dāng)多的研究[1],人們最開始使用傳統(tǒng)的數(shù)學(xué)模型,主要是用統(tǒng)計(jì)學(xué)相關(guān)的方法,即根據(jù)經(jīng)驗(yàn)進(jìn)行預(yù)測。而后基于簡單智能預(yù)測方法進(jìn)行預(yù)測,雖然克服了傳統(tǒng)方法易受人為主觀性影響的問題,但也易陷入局部極小點(diǎn),導(dǎo)致預(yù)測精度不高等問題。為了降低這種風(fēng)險,隨著深度學(xué)習(xí)人工智能算法的不斷迭代和技術(shù)的不斷革新發(fā)展,使用深度學(xué)習(xí)進(jìn)行語義分類[2],機(jī)器翻譯[3],圖像識別[4],價格預(yù)測[5]等研究等已經(jīng)掀起了新一輪的技術(shù)浪潮。對于具有時間序列和非線性等特征的數(shù)據(jù),一些先進(jìn)的集成算法和深度學(xué)習(xí)算法由于具有高精度和良好的魯棒性已逐漸成為價格預(yù)測問題的最佳選擇。

      吳葉等[6]采用平均影響值(MIV)、遺傳算法(GA)與BP神經(jīng)網(wǎng)絡(luò)相結(jié)合的方法探究MIV-GA-BP神經(jīng)網(wǎng)絡(luò)模型對我國棉花價格預(yù)測的情況,以國家棉花價格指數(shù)為棉花價格波動的重要反映指標(biāo),試驗(yàn)認(rèn)為該組合模型較之于單一模型,擬合精度良好。郭超[7]通過BP神經(jīng)網(wǎng)絡(luò),搭建了棉花價格波動動態(tài)模型,檢驗(yàn)發(fā)現(xiàn),檢測值與目標(biāo)原值誤差控制在較小范圍內(nèi),訓(xùn)練所得的神經(jīng)網(wǎng)絡(luò)模型可以對棉花價格指數(shù)進(jìn)行準(zhǔn)確的預(yù)測,較好的揭示了棉花價格的系統(tǒng)結(jié)構(gòu)和規(guī)律。閆慶華等[8]以2004/2005—2015/2016年國際棉花現(xiàn)貨價格月度數(shù)據(jù)為依據(jù),理論分析了國際棉花現(xiàn)貨價格的波動情況,并使用ARIMA模型實(shí)證分析了短期內(nèi)國際棉花現(xiàn)貨價格的波動趨勢,相對誤差在5%以下。趙梅等[9]利用2003年1月—2014年12月的棉花價格指數(shù)月度數(shù)據(jù),將月度數(shù)據(jù)劃分為訓(xùn)練集和測試集,構(gòu)建ARIMA和平滑ARIMA模型對2014年11月和12月的棉花價格進(jìn)行短期預(yù)測,基于差異率進(jìn)行對比分析,結(jié)論表明平滑ARIMA模型的預(yù)測棉花價格指數(shù)精度優(yōu)于ARIMA模型,Hudson等[10]通過選取美國棉花價格波動的供需關(guān)系、棉花種植、產(chǎn)量、天氣等影響因素,構(gòu)建了ARCH/GARCH的回歸模型,并進(jìn)行了分析研究,Bailey等[11]通過隨機(jī)時間序列方程分析了美國棉花現(xiàn)貨價格與期貨價格之間的相關(guān)性,并預(yù)測了當(dāng)前現(xiàn)貨市場的價格。

      從當(dāng)前的研究成果來看,大多學(xué)者在棉價預(yù)測的特征選擇上主要是基于政策、棉花產(chǎn)銷、對外貿(mào)易、期貨市場等因素進(jìn)行的研究分析。研究表明[12-14],氣候變化對農(nóng)作物生產(chǎn)發(fā)育的影響是巨大的,不同的氣候條件所產(chǎn)出的農(nóng)作物商品質(zhì)量和產(chǎn)量也具有較大的差異性,生產(chǎn)種植的變化從而引起其供需的變化,進(jìn)而影響棉花價格。在棉花價格預(yù)測方法、網(wǎng)絡(luò)模型的選擇上主要采用較傳統(tǒng)的簡單智能預(yù)測方法和簡單的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)模型,對于目前應(yīng)用廣泛的深度學(xué)習(xí)方法在棉花價格預(yù)測方面的應(yīng)用研究甚少。針對目前棉花價格預(yù)測存在的問題,本文對于數(shù)據(jù)特征選擇不僅考慮了影響價格的直接因素如進(jìn)出口貿(mào)易、棉花產(chǎn)銷等,也收集整理了氣象氣候條件和農(nóng)產(chǎn)品生長生命周期中重要的降水、日照、濕度等數(shù)據(jù),在對其進(jìn)行數(shù)據(jù)處理后參與模型運(yùn)算。在棉花價格預(yù)測模型的選擇上,本文采用LSTM[15]和BILSTM[16]兩種神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行棉花價格回歸預(yù)測問題的研究,并且為了避免在模型的訓(xùn)練過程中隨機(jī)梯度下降(SGD)法在梯度下降過程中的頻繁波動,可能得到局部最優(yōu)值。試驗(yàn)采用SWA優(yōu)化算法取SGD軌跡的多點(diǎn)簡單平均值對SGD進(jìn)行優(yōu)化,避免了SGD在梯度下降過程中的頻繁波動問題,使其模型能將Loss和損失值收斂至全局最優(yōu),進(jìn)一步提高訓(xùn)練的穩(wěn)定性。

      1 模型構(gòu)建

      1.1 棉花市場的數(shù)理分析

      1.1.1 非平穩(wěn)性

      在基于傳統(tǒng)計(jì)量經(jīng)濟(jì)方法(如Arma/Arima[17]自回歸模型)的時間序列預(yù)測問題中,需要原始數(shù)據(jù)具有平穩(wěn)性的特征。因此本文對近4年的棉花價格指數(shù)進(jìn)行了Dickey-Fuller(ADF)檢驗(yàn),其檢驗(yàn)結(jié)果如表1所示。

      表1 Dickey-Fuller(ADF)檢驗(yàn)結(jié)果Tab.1 Dickey-Fuller(ADF)test result

      如表1所示,ADF檢驗(yàn)結(jié)果中的Test Statistic為-2.852 254,在1%和5%的置信區(qū)間下,無法拒絕原假設(shè),P-value值較大。可以認(rèn)為該數(shù)據(jù)是不穩(wěn)定的。本文針對檢驗(yàn)情況進(jìn)行了差分處理,檢驗(yàn)結(jié)果顯示,二階差分后的數(shù)據(jù)拒絕原假設(shè),可以認(rèn)為數(shù)據(jù)是平穩(wěn)的。

      1.1.2 高噪音性

      棉花價格的數(shù)理特征之一是時間序列數(shù)據(jù)具有較強(qiáng)的白噪聲。如果用統(tǒng)計(jì)模型來進(jìn)行棉花價格預(yù)測,則需要對時間序列數(shù)據(jù)進(jìn)行預(yù)處理,才能將其引入模型進(jìn)行計(jì)算,否則就沒有規(guī)則可循。而進(jìn)行差分運(yùn)算后,則難以表現(xiàn)市場原始數(shù)據(jù)規(guī)律。

      1.1.3 多變量

      棉花價格指數(shù)的影響因素是多樣且互相關(guān)聯(lián)的,并不是以獨(dú)立個體影響因子單獨(dú)存在,在實(shí)際市場環(huán)境中,棉花價格除了受到基本的供需關(guān)系因素影響以外,還受到國際匯率、資金流動及進(jìn)出口費(fèi)額因素、氣象因素、政策因素的共同影響。

      綜上,棉花價格預(yù)測具有多變量、非線性、高噪音、低頻性等特點(diǎn),因此本文選用Bilstm神經(jīng)網(wǎng)絡(luò)模型來預(yù)測棉花價格序列是最優(yōu)選擇。

      1.2 LSTM和BiLSTM神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)及原理介紹

      長短期記憶網(wǎng)絡(luò)(Long short-term memory,LSTM)實(shí)質(zhì)上可以理解為一種特殊的RNN,主要是為了解決RNN網(wǎng)絡(luò)在長序列訓(xùn)練過程中發(fā)生梯度消失和梯度爆炸的問題。相比于RNN,LSTM主要是引入了細(xì)胞形態(tài)(cell state)用于保存長期狀態(tài),而LSTM的關(guān)鍵就在于如何控制長期狀態(tài)c,從而引用了控制門的機(jī)制,該機(jī)制可以去除或者增加信息到細(xì)胞狀態(tài)的能力。通過sigmoid函數(shù)將門輸出為[0,1]的實(shí)數(shù)向量。當(dāng)門輸出為0時,乘以該向量的任何向量都將得到0向量,即判定為不能通過。當(dāng)輸出為1時,乘以任何向量都不會改變其原值,即可以通過。神經(jīng)元中加入了輸入門(input gate),遺忘門(forget gate),輸出門(output gate),以及內(nèi)部記憶單元(cell),其網(wǎng)絡(luò)結(jié)構(gòu)圖如圖1所示。

      圖1 LSTM網(wǎng)絡(luò)結(jié)構(gòu)Fig.1 LSTM network structure

      在LSTM神經(jīng)網(wǎng)絡(luò)訓(xùn)練學(xué)習(xí)的過程中,第一步是由遺忘門(forget gate)決定從細(xì)胞狀態(tài)中丟棄哪些信息。該步驟會讀取和輸入數(shù)據(jù)點(diǎn)乘計(jì)算得到一個輸出值,其決定了上一時刻的狀態(tài)有多少會保留到當(dāng)前時刻。計(jì)算公式如式(1)所示。

      ft=σ(Wf×[ht-1,xt]+bf)

      (1)

      式中:xt——當(dāng)前細(xì)胞的輸入;

      ht-1——cell的前一次輸出;

      Wf——遺忘門的權(quán)重矩陣;

      bf——遺忘門的偏置項(xiàng);

      σ——sigmoid函數(shù)。

      第二步,將確定哪些新信息將會被添加到網(wǎng)絡(luò)結(jié)構(gòu)或細(xì)胞狀態(tài)中。計(jì)算公式如式(2)所示。

      it=σ(Wi×[ht-1,xt])+bi)

      (2)

      式中:Wi——輸入門的權(quán)重矩陣;

      bi——輸入門的偏置項(xiàng)。

      (3)

      式中:Wc——計(jì)算細(xì)胞狀態(tài)的權(quán)重矩陣;

      bc——計(jì)算細(xì)胞狀態(tài)的偏置項(xiàng)。

      (4)

      第四步,需要決定輸出怎樣的信息。計(jì)算公式如式(5)和式(6)所示。

      Qt=σ(Wo×[ht-1,xt]+bo)

      (5)

      ht=ot×tanh(Ct)

      (6)

      式中:Wo——輸出門的權(quán)重矩陣;

      bo——輸出門的偏置項(xiàng)。

      LSTM是一個單向的循環(huán)神經(jīng)網(wǎng)絡(luò),模型實(shí)際上只接收到了“上文”的信息,而沒有考慮到“下文”的信息,在實(shí)際應(yīng)用場景中,輸出結(jié)果可能需要由前面若干輸入和后面若干輸入共同決定,獲取到整個輸入序列的信息,而BILSTM網(wǎng)絡(luò)就可以同時保存雙向數(shù)據(jù)信息。一個完整的BILSTM網(wǎng)絡(luò)包含輸入層,前向LSTM層、反向LSTM層和輸出層。

      圖2所示,在Forward層從1時刻到t時刻正向計(jì)算一遍,得到并保存每個時刻向前隱含層的輸出,wf表示為前向LSTM層。該步驟數(shù)學(xué)表達(dá)公式如式(7)所示。

      圖2 BILSTM網(wǎng)絡(luò)結(jié)構(gòu)圖Fig.2 BILSTM network structure

      ht=f(w1xt+w2ht-1)

      (7)

      在Backward層沿著時刻t到時刻1反向計(jì)算一遍,得到并保存每個時刻向后隱含層的輸出,表示為后向LSTM層。該步驟數(shù)學(xué)表達(dá)公式如式(8)所示。

      h′t=f(w3xt+w5h′t+1)

      (8)

      最后,在每個時刻將正向?qū)雍头聪驅(qū)釉谙鄳?yīng)時間的輸出結(jié)果進(jìn)行組合從而獲得最終輸出,該輸出結(jié)合了雙向輸入序列的信息。該步驟數(shù)學(xué)表達(dá)公式如式(9)所示。

      ot=g(w4ht+w6h′t)

      (9)

      1.3 神經(jīng)網(wǎng)絡(luò)搭建

      本文所有試驗(yàn)均基于Windows操作系統(tǒng)下,試驗(yàn)通過搭建CPU版本的Keras框架,利用該框架下內(nèi)置神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行模型搭建。編程環(huán)境為Python3.7,三方擴(kuò)展庫包括Numpy、Pandas、Matplotlib、Keras、Sklearn等。在本文試驗(yàn)中采用LSTM、BILSTM神經(jīng)網(wǎng)絡(luò)與全連接層的連接方式,對棉花價格進(jìn)行回歸預(yù)測試驗(yàn),同時添加Dropout機(jī)制避免過擬合現(xiàn)象,提升模型泛化能力,模型采用MAE作為損失函數(shù),SGD優(yōu)化器進(jìn)行訓(xùn)練,然后采用SWA算法對傳統(tǒng)SGD優(yōu)化器進(jìn)行優(yōu)化訓(xùn)練。

      Dense網(wǎng)絡(luò):又稱為全連接層,主要用于綜合隱藏層提取的特征數(shù)據(jù)。

      ReLu函數(shù):稱為線性整流函數(shù)(Rectified Linear Unit),是一種神經(jīng)網(wǎng)絡(luò)中最為常用的激活函數(shù)(activation function)主要目的是為得到神經(jīng)網(wǎng)絡(luò)更為豐富的假設(shè)空間,防止梯度消失,加速梯度下降的收斂速度。

      SGD優(yōu)化算法:主要用于對樣本進(jìn)行梯度更新,在反向傳播時不斷更新其權(quán)值。

      正則化Dropout:主要用于防止過擬合使其不依賴某些局部特征,強(qiáng)化模型的泛化能力。

      BILSTM、LSTM模型網(wǎng)絡(luò)結(jié)構(gòu)和神經(jīng)元個數(shù)分別如圖3(a)和圖3(b)所示。

      (a)BILSTM神經(jīng)網(wǎng)絡(luò)模型

      圖3(a)為BILSTM神經(jīng)網(wǎng)絡(luò)價格預(yù)測模型,其結(jié)構(gòu)如下。

      結(jié)構(gòu)第一層為LSTM層的初始神經(jīng)元個數(shù)為128。結(jié)構(gòu)第二層為BILSTM,初始神經(jīng)元個數(shù)為128,激活函數(shù)使用ReLu。結(jié)構(gòu)第三層為全連接層,神經(jīng)元個數(shù)為128,激活函數(shù)使用ReLu。結(jié)構(gòu)第四層添加正則化Dropout,參數(shù)按0.25比例隨機(jī)置0。結(jié)構(gòu)第五層為全連接層,神經(jīng)元個數(shù)為64,激活函數(shù)ReLu。結(jié)構(gòu)第六層添加正則化Dropout,參數(shù)按0.25比例隨機(jī)置0。結(jié)構(gòu)第七層為輸出層,輸出維度為1,激活函數(shù)使用PReLu。

      LSTM神經(jīng)網(wǎng)絡(luò)模型采用同樣的網(wǎng)絡(luò)結(jié)構(gòu)和神經(jīng)元個數(shù),網(wǎng)絡(luò)優(yōu)化器和損失函數(shù)與BILSTM模型均保持一致。不同之處為該模型將BILSTM神經(jīng)網(wǎng)絡(luò)舍棄,用LSTM神經(jīng)網(wǎng)絡(luò)進(jìn)行模型預(yù)測訓(xùn)練和論證。圖3(b)即LSTM價格預(yù)測模型,其結(jié)構(gòu)如下。

      結(jié)構(gòu)第一層為LSTM,初始神經(jīng)元個數(shù)為128。結(jié)構(gòu)第二層為LSTM,初始神經(jīng)元個數(shù)為128,激活函數(shù)使用ReLu。結(jié)構(gòu)第三層為全連接層,神經(jīng)元個數(shù)為128,激活函數(shù)使用ReLu。結(jié)構(gòu)第四層添加正則化Dropout,參數(shù)按0.25比例隨機(jī)置0。結(jié)構(gòu)第五層為全連接層,神經(jīng)元個數(shù)為64,激活函數(shù)ReLu。結(jié)構(gòu)第六層添加正則化Dropout,參數(shù)按0.25比例隨機(jī)置0。結(jié)構(gòu)第七層為輸出層,輸出維度為1,激活函數(shù)使用PReLu。

      2 數(shù)據(jù)準(zhǔn)備及預(yù)處理

      2.1 數(shù)據(jù)來源

      本文選取了棉花日價格指數(shù)、種植面積、單位產(chǎn)量、棉花產(chǎn)量、紗產(chǎn)量、進(jìn)口量、進(jìn)口費(fèi)額、出口量、出口費(fèi)額、匯率(美元)、平均本站氣壓、日最高本站氣壓、日最低本站氣壓、平均氣溫、日最高氣溫、日最低氣溫、平均相對濕度、小型蒸發(fā)量、大型蒸發(fā)量、日照時數(shù)、平均地表氣溫、日最高地表氣溫、日最低地表氣溫等變量。數(shù)據(jù)主要來源于中國棉花協(xié)會,國家統(tǒng)計(jì)局,中國海關(guān),中國國家氣象局,中國人民銀行數(shù)據(jù)中心板塊,均為國家官方機(jī)構(gòu)或研究機(jī)構(gòu)開放共享的官方統(tǒng)計(jì)數(shù)據(jù),統(tǒng)計(jì)數(shù)據(jù)時間周期為2016—2019年。這些變量共同組成了本文原始數(shù)據(jù)集。

      2.2 數(shù)據(jù)預(yù)處理

      原始數(shù)據(jù)集有可能會存在缺失值、異常值的情況,本文對原始數(shù)據(jù)進(jìn)行插值補(bǔ)全,排序等操作,從而得到了更加有效完整的數(shù)據(jù)集。在將棉花數(shù)據(jù)喂入網(wǎng)絡(luò)模型時,由于其產(chǎn)量、價格指數(shù)、進(jìn)出口費(fèi)額等參數(shù)作為特征輸入時,與其他特征量綱差距過大,如其指數(shù)和費(fèi)額多在千萬量級,而氣象特征多在幾或幾十量級。需對數(shù)據(jù)集進(jìn)行歸一化操作,主要目的是為了消除各特征變量大小的影響以及不同量綱帶來的影響,歸納統(tǒng)一樣本的統(tǒng)計(jì)分布性。歸一化后的數(shù)據(jù)可以加快模型訓(xùn)練階段的求解和收斂的速度,也可以提高預(yù)測的精度。避免由于不同量綱導(dǎo)致的部分特征變量貢獻(xiàn)率過大,即將數(shù)據(jù)統(tǒng)一映射到[0,1]的區(qū)間上。歸一化方法有很多,本文選用Min-max歸一化(Min-max normalization)進(jìn)行處理,數(shù)學(xué)方法如式(10)所示。Min-max歸一化是對原始數(shù)據(jù)的線性轉(zhuǎn)換。其中x為原始輸入數(shù)據(jù),min為樣本數(shù)據(jù)中的最小值,max為樣本數(shù)據(jù)中的最大值。

      (10)

      根據(jù)我國棉花市場的相關(guān)要求,所獲取的棉花市場日交易數(shù)據(jù)均為工作日交易數(shù)據(jù),因此其他特征均依照日交易價格指數(shù)日期進(jìn)行處理,從而構(gòu)建出了更加完整科學(xué)的數(shù)據(jù)集。數(shù)據(jù)集總共包含棉花市場共24個特征指標(biāo),共27 513條數(shù)據(jù)。

      3 試驗(yàn)與分析

      3.1 確定評價指標(biāo)

      本文所采用的模型預(yù)測性能評價指標(biāo)均采用平均絕對誤差(MAE)和均方根誤差(RMSE)來對試驗(yàn)結(jié)果進(jìn)行對比分析[18]。其中MAE是絕對誤差的平均值,RMSE是預(yù)測值和實(shí)際觀測之間平方差異平均值的平方根,其數(shù)學(xué)表達(dá)計(jì)算公式如式(11)和式(12)所示。

      (11)

      (12)

      3.2 時間序列轉(zhuǎn)監(jiān)督學(xué)習(xí)

      在使用BILSTM和LSTM神經(jīng)網(wǎng)絡(luò)進(jìn)行時間序列預(yù)測問題的試驗(yàn)時,其實(shí)質(zhì)在于將時間序列的問題轉(zhuǎn)變?yōu)橛斜O(jiān)督學(xué)習(xí)的問題,從僅僅是一個序列,變成成對的輸入和輸出。

      表2中左半部分為棉花價格指數(shù)部分?jǐn)?shù)據(jù),右半部分則演示為基于前兩個時刻,即Var(t-1),Var(t-2)表示為輸入變量X為t-1時刻的價格指數(shù)和t-2時刻的價格指數(shù)。得到輸出Y時刻的價格指數(shù),即Var(t)。則當(dāng)前天,前一單位歷史特征為監(jiān)督學(xué)習(xí)標(biāo)簽序列整體滯后一個單位,前兩單位歷史特征為監(jiān)督學(xué)習(xí)標(biāo)簽序列整體滯后兩個單位,以此類推。根據(jù)多次試驗(yàn)結(jié)果的對比,本試驗(yàn)中取歷史特征為18個單位為最優(yōu)值,表示參考前24,48,72……18×24個交易日數(shù)據(jù)作為歷史數(shù)據(jù)特征,即將該月前18個月的價格特征作為輸入?yún)⑴c模型運(yùn)算。在本文的試驗(yàn)中,主要使用了python第三方庫pandas科學(xué)計(jì)算包中的series_to_supervised()函數(shù)完成多元變量時間序列的轉(zhuǎn)換。

      表2 棉價指數(shù)轉(zhuǎn)化為有監(jiān)督學(xué)習(xí)問題示例Tab.2 Example of converting cotton price index into supervised learning problem

      3.3 BILSTM模型實(shí)證分析

      本文將2016年1月4日—2019年9月的棉花價格指數(shù)及其他特征向量用于訓(xùn)練和驗(yàn)證,采用五折交叉驗(yàn)證方式,將數(shù)據(jù)集分成五份,輪流將其中4份做訓(xùn)練1份做驗(yàn)證。增強(qiáng)模型的泛化能力。將2019年10月為模型測試集。本試驗(yàn)中,每一層權(quán)重初始化都采用Glorot正態(tài)分布初始化方法,減少loss陷入局部最優(yōu)的概率。在訓(xùn)練過程中,增加了學(xué)習(xí)率衰減的操作,即訓(xùn)練過程中若訓(xùn)練Loss值在50輪內(nèi)無下降,則將學(xué)習(xí)率×0.1,避免由于學(xué)習(xí)率過大而跳過全局最優(yōu)值。以此更為精細(xì)的調(diào)整網(wǎng)絡(luò)。

      圖4中反應(yīng)了BILSTM模型在訓(xùn)練過程中每次迭代后的訓(xùn)練集和驗(yàn)證集的損失情況。

      (a)損失值

      可以看到在模型迭代至100次時,損失值大幅度減小,迭代至300次時,損失值減小至0.021 5,訓(xùn)練誤差和驗(yàn)證誤差均已趨于平穩(wěn),差值較小,表明此模型的泛化水平和擬合效果較好,未出現(xiàn)過擬合和欠擬合的情況。根據(jù)訓(xùn)練集和驗(yàn)證集的迭代數(shù)據(jù)顯示,模型在一定程度上能夠找到全局最優(yōu)值,且能夠得到較好的收斂。因此模型的各項(xiàng)參數(shù)和權(quán)重得以確定,接下來調(diào)用keras框架中的.fit()方法對2019年10月的24個工作日的價格指數(shù)展開預(yù)測,并與真實(shí)值進(jìn)行擬合對比。

      圖5展示了該模型在預(yù)測集上的效果,可以看到模型預(yù)測值與真實(shí)結(jié)果擬合狀況較好,棉花價格在一個較小的波動區(qū)間內(nèi)變化,走勢較為平滑。綜合來看,本次試驗(yàn)中,真實(shí)值與預(yù)測值之間的MAE為60.773,RMSE為70.249,該模型與真實(shí)價格波動走勢基本一致,這反映出BILSTM網(wǎng)絡(luò)在基于時間序列回歸預(yù)測問題的可行性。同時由圖4可見,在模型收斂至接近全局最小值時,更新比較頻繁,造成Cost Function在接近全局最優(yōu)值產(chǎn)生震蕩,導(dǎo)致準(zhǔn)確度會稍顯下降。

      圖5 BILSTM模型測試集結(jié)果Fig.5 BILSTM model test set results

      3.4 LSTM模型實(shí)證分析

      為保證不同模型間具有可對比性。該模型均采用BILSTM模型中所用的數(shù)據(jù)集、損失函數(shù)、評價指標(biāo)和訓(xùn)練過程。同樣的將2016年1月4日—2019年9月的棉花價格指數(shù)及其他特征向量用于訓(xùn)練和驗(yàn)證,采用五折交叉驗(yàn)證方式,將2019年10月為模型測試集。

      圖6反應(yīng)了該模型在訓(xùn)練過程中每次迭代訓(xùn)練集和驗(yàn)證集的損失情況,可以看到在模型迭代至100次時,損失值大幅度減小,迭代至300次時,損失值減小至0.024 8,訓(xùn)練誤差和驗(yàn)證誤差均已趨于平穩(wěn),差值較小,表明此模型的泛化水平和擬合效果較好,未出現(xiàn)過擬合和欠擬合的情況。根據(jù)訓(xùn)練集和驗(yàn)證集的迭代數(shù)據(jù)顯示,模型在一定程度上能夠找到全局最優(yōu)值,且能夠得到較好的收斂。因此模型的各項(xiàng)參數(shù)和權(quán)重得以確定,接下來同樣調(diào)用keras框架中的.fit()方法對2019年10月的24個工作日的價格指數(shù)展開預(yù)測,并與真實(shí)值進(jìn)行擬合對比。

      圖7展示了該模型在測試集上的效果,可以看到模型預(yù)測值與真實(shí)結(jié)果擬合狀況較好,棉花價格在一個較小的波動區(qū)間內(nèi)變化,走勢較為平滑。綜合來看,本次試驗(yàn)中,真實(shí)值與預(yù)測值之間的MAE為62.44,RMSE為74.45,該模型與真實(shí)價格波動走勢基本一致,同時由圖6可見,在該模型收斂至接近全局最小值時,由于是基于SGD優(yōu)化器進(jìn)行梯度下降和迭代更新,出現(xiàn)了與BILSTM模型結(jié)構(gòu)同樣的問題。由于更新比較頻繁,也出現(xiàn)了Cost Function現(xiàn)象,在接近全局最優(yōu)值產(chǎn)生震蕩,導(dǎo)致準(zhǔn)確度會稍顯下降。

      (a)損失值

      圖7 LSTM模型測試集結(jié)果Fig.7 LSTM model test set results

      3.5 SWA算法優(yōu)化

      基于上訴模型產(chǎn)生的震蕩問題,本文采用SWA(隨機(jī)權(quán)值平均)方法對模型使用的SGD優(yōu)化器進(jìn)行優(yōu)化調(diào)整。研究表明該方法只需快速集合集成的一小部分算力,不用增加任何額外成本的情況下改進(jìn)隨機(jī)梯度下降的泛化。典型的深度學(xué)習(xí)網(wǎng)絡(luò)訓(xùn)練過程就是用SGD或其他優(yōu)化器對損失函數(shù)進(jìn)行優(yōu)化,使用一個衰減的學(xué)習(xí)率直到模型收斂。而SWA算法取SGD軌跡的多點(diǎn)簡單平均值,使用一個變化的循環(huán)或高恒定學(xué)習(xí)率。

      SWA的工作主要分為兩個部分,首先SWA使用一個變化的學(xué)習(xí)率策略,迭代至一個相對較高性能,損失值收斂的網(wǎng)絡(luò)。簡單來說,例如第一步可以在前75%的訓(xùn)練時間和迭代周期內(nèi),使用標(biāo)準(zhǔn)衰減學(xué)習(xí)率策略。而后將剩余25%的訓(xùn)練時間和迭代周期中,設(shè)置一個相對較高的恒定學(xué)習(xí)率,對SGD遍歷的網(wǎng)絡(luò)權(quán)值進(jìn)行平均,獲取到最后25%訓(xùn)練時間內(nèi)保持每個Epoch結(jié)束時獲得的權(quán)值運(yùn)行狀態(tài)的平均值,如圖8所示。

      圖8 SWA算法學(xué)習(xí)率策略Fig.8 SWA algorithm learning rate strategy

      3.6 SWA算法優(yōu)化后的實(shí)證分析

      3.6.1 BILSTM模型實(shí)證分析

      根據(jù)圖9所示,使用SWA算法后的訓(xùn)練和驗(yàn)證損失能夠收斂到最小值,且不會產(chǎn)生較大震蕩。在很大程度上使模型的訓(xùn)練不至于陷入局部最優(yōu),能夠使訓(xùn)練Loss收斂到更小值,擬合度更好。同時SWA類似模型集成,使模型更具魯棒性和泛化能力。

      圖10展示了模型在通過SWA優(yōu)化后的測試集上的效果,可以看到BILSTM+SWA模型的預(yù)測值與真實(shí)結(jié)果擬合狀況較之余未優(yōu)化之前的結(jié)果要好。綜合來看,本次試驗(yàn)中,真實(shí)值與預(yù)測值之間的MAE為42.45,RMSE為68.6??梢姶罱ǖ念A(yù)測模型具有良好的泛化能力,SWA算法也取得了良好的效果,試驗(yàn)達(dá)到了預(yù)期結(jié)果的要求。

      (a)損失值

      圖10 SWA優(yōu)化后的BILSTM模型測試集結(jié)果Fig.10 SWA optimized BILSTM model test set results

      3.6.2 LSTM模型實(shí)證分析

      本文為了進(jìn)一步論證研究SWA算法在不同模型結(jié)構(gòu)間是否具有優(yōu)越的泛化性能,本文同樣使用SWA算法對LSTM模型進(jìn)行實(shí)證分析。

      根據(jù)圖11所示,利用SWA算法后的訓(xùn)練和驗(yàn)證損失同樣能夠收斂到最小值,且不會產(chǎn)生較大震蕩。使LSTM模型的訓(xùn)練不至于陷入局部最優(yōu),能夠使損失值收斂到更小值,擬合度更好。然后本文在對測試集進(jìn)行預(yù)測,并與真實(shí)價格進(jìn)行對比分析。

      (a)損失值

      圖12展示了LSTM模型在通過SWA優(yōu)化后的測試集上的效果,可以看到LSTM+SWA的預(yù)測值與真實(shí)結(jié)果擬合狀況較之余未優(yōu)化之前的結(jié)果要好。綜合來看,本次試驗(yàn)中,真實(shí)值與預(yù)測值之間的MAE為52.62,RMSE為69.33??梢姶罱ǖ念A(yù)測模型具有良好的泛化能力,SWA算法也取得了良好的效果,試驗(yàn)達(dá)到了預(yù)期結(jié)果的要求。

      圖12 SWA優(yōu)化后LSTM模型的測試集結(jié)果Fig.12 SWA optimized LSTM model test set results

      3.7 試驗(yàn)結(jié)果對比分析

      為了進(jìn)一步論證BILSTM模型在基于時間序列預(yù)測問題上的優(yōu)越性和SWA優(yōu)化后的模型性能和其算法的泛化能力。又分別建立了LightGBM單模型,并對其進(jìn)行了對比試驗(yàn),幾種模型均采用MAE和RMSE為評價標(biāo)準(zhǔn)對同一數(shù)據(jù)集進(jìn)行結(jié)果輸出。結(jié)果如圖13所示。

      圖13 幾種預(yù)測模型的棉花價格預(yù)測結(jié)果Fig.13 Cotton price forecast results of several prediction models

      為了更加清晰的對比這幾種預(yù)測模型的優(yōu)劣和結(jié)果,對各模型的誤差值進(jìn)行了對比分析,各個模型的誤差如表2所示。

      表2 棉花價格指數(shù)預(yù)測誤差Tab.2 Cotton price index forecast error

      由圖13和表2中的對比試驗(yàn)分析得出:基于SWA優(yōu)化的BILSTM預(yù)測模型的預(yù)測結(jié)果最優(yōu),說明BILSTM神經(jīng)網(wǎng)絡(luò)在基于時間序列的價格預(yù)測問題上同樣可以取得非常好的效果。如圖10中所示,BILSTM+SWA模型預(yù)測價格的曲線與真實(shí)曲線趨近一致,MAE為42.45,在棉花平均價格指數(shù)為15 388的大基數(shù)下,該誤差非常小。該數(shù)據(jù)能夠在一定程度上反映該模型的健壯性。LightGBM、BILSTM、LSTM單模型,其預(yù)測結(jié)果遠(yuǎn)差于SWA優(yōu)化后的神經(jīng)網(wǎng)絡(luò)模型,說明SWA算法在尋求最優(yōu)值域方面具有其優(yōu)越的能力。同時將SWA應(yīng)用于LSTM和BILSTM等不同的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)中,可以得出結(jié)論SWA算法具有較好的泛化能力,較之于未采用該算法之前,提升了LSTM模型的MAE值18%,BILSTM模型的MAE值43%,可以看出其在不同的神經(jīng)網(wǎng)絡(luò)和模型中可以取得不錯的效果,具有良好的泛化能力。

      4 結(jié)論

      本文充分分析了棉花市場的時序信息和價格波動。在棉花價格預(yù)測問題中,特征選擇上重點(diǎn)考慮了天氣氣象因素,模型的選擇上使用BILSTM神經(jīng)網(wǎng)絡(luò)建立模型,并與LSTM神經(jīng)網(wǎng)絡(luò)模型和LightGbm模型進(jìn)行對比試驗(yàn),優(yōu)化算法上使用SWA算法進(jìn)行模型迭代和參數(shù)調(diào)優(yōu)。

      1)BILSTM神經(jīng)網(wǎng)絡(luò)與典型的時間序列預(yù)測模型相比,模型的數(shù)據(jù)擬合和預(yù)測性能整體更優(yōu)。本文驗(yàn)證了BILSTM模型在回歸預(yù)測領(lǐng)域中的可行性和適用性。

      2)SWA優(yōu)化算法可以幫助模型在梯度下降時尋找到最優(yōu)值域,優(yōu)化后的LSTM和BILSTM網(wǎng)絡(luò)結(jié)構(gòu)收斂至近似全局最優(yōu),平均絕對誤差(MAE)分別提高了18%和43%,取得了良好的預(yù)測結(jié)果;與LightGbm單模型,LSTM+SWA、BILSTM+SWA組合的方式進(jìn)行對比試驗(yàn),SWA算法在不同的模型和網(wǎng)絡(luò)結(jié)構(gòu)間都表現(xiàn)出了不錯的效果,具有較強(qiáng)的泛化能力。

      3)通過上述的試驗(yàn)流程和結(jié)果分析表明,針對棉花市場的非線性、多變量、高噪音的特點(diǎn),BILSTM神經(jīng)網(wǎng)絡(luò)應(yīng)用于棉花價格指數(shù)預(yù)測取得了較好的效果,精度較高。該模型和優(yōu)化方法在時間序列數(shù)據(jù)的研究中將會有更為廣闊的應(yīng)用和發(fā)展前景。

      猜你喜歡
      棉花價格棉花神經(jīng)網(wǎng)絡(luò)
      棉花是花嗎?
      基于VEC模型分析新疆棉花價格空間傳導(dǎo)關(guān)系
      棉花
      小讀者(2020年4期)2020-06-16 03:33:54
      中美棉花價格對比研究
      神經(jīng)網(wǎng)絡(luò)抑制無線通信干擾探究
      電子制作(2019年19期)2019-11-23 08:42:00
      棉花市場價格波動性及經(jīng)濟(jì)風(fēng)險分析
      基于神經(jīng)網(wǎng)絡(luò)的拉矯機(jī)控制模型建立
      復(fù)數(shù)神經(jīng)網(wǎng)絡(luò)在基于WiFi的室內(nèi)LBS應(yīng)用
      基于支持向量機(jī)回歸和RBF神經(jīng)網(wǎng)絡(luò)的PID整定
      心中的“棉花糖”
      安西县| 清苑县| 高邑县| 德钦县| 个旧市| 东乡族自治县| 通辽市| 那坡县| 平山县| 万山特区| 上犹县| 建阳市| 阿图什市| 白水县| 平远县| 沛县| 永泰县| 钦州市| 兴仁县| 望城县| 甘德县| 罗源县| 惠州市| 嘉义市| 鄂尔多斯市| 伊吾县| 大城县| 郓城县| 天镇县| 清涧县| 临泉县| 外汇| 彭州市| 磐安县| 孝昌县| 北辰区| 依兰县| 六枝特区| 光山县| 海阳市| 宜兴市|