劉璐,婁磊,劉先俊,施三支
(長春理工大學(xué) 理學(xué)院,長春 130022)
黃金期貨市場在金融市場有著十分重要的位置,因此其預(yù)測問題也被視為重點(diǎn)問題。在預(yù)測方法上可分成傳統(tǒng)預(yù)測模型和非線性預(yù)測模型。傳統(tǒng)預(yù)測模型包含ARIMA模型(移動(dòng)平均自回歸模型)、GARCH模型(自回歸條件異方差模型)、指數(shù)平滑模型等,并在黃金價(jià)格預(yù)測研究上取得了很大進(jìn)步。比如在2014年,Sharma A M和Baby S[1]運(yùn)用ARIMA模型對印度的黃金價(jià)格進(jìn)行預(yù)測分析。同時(shí),諸多學(xué)者也利用ARIMA模型對紐約商品交易所、倫敦國際金融期貨交易所、上海期貨交易所等具有明顯交易特點(diǎn)的黃金或黃金期貨交易數(shù)據(jù)進(jìn)行建模預(yù)測[2-3]。在此基礎(chǔ)之上,一部分研究者運(yùn)用了ARIMA-GARCH模型,對黃金價(jià)格進(jìn)行了研究與分析[4-7]。比如潘貴豪等人[6]選用 ARMA-GARCH模型對黃金價(jià)格的動(dòng)態(tài)演化過程進(jìn)行了實(shí)證闡述,黃金價(jià)格數(shù)據(jù)的生成的動(dòng)態(tài)變化過程可以被該模型精確的刻畫表明,平均誤差較小。傳統(tǒng)預(yù)測模型的各項(xiàng)研究均證明了其在預(yù)測黃金價(jià)格的走勢或動(dòng)態(tài)特征方面是有效的,但是,鑒于黃金期貨價(jià)格時(shí)間序列具有非線性及高噪聲的數(shù)據(jù)特征,對其精確預(yù)測依舊十分困難,同時(shí)由于時(shí)間的動(dòng)態(tài)變化,使得自變量和因變量二者之間的關(guān)系也會(huì)隨之發(fā)生變動(dòng),因此傳統(tǒng)時(shí)間序列模型很難精準(zhǔn)得對黃金期貨市場進(jìn)行預(yù)測。
近年來,隨著計(jì)算機(jī)硬件水平提升得越來越快,對神經(jīng)網(wǎng)絡(luò)的研究也逐漸深入,由此非線性模型逐漸取代了時(shí)間序列模型在黃金期貨預(yù)測方面的應(yīng)用,非線性預(yù)測模型包括基于ANN模型(人工神經(jīng)網(wǎng)絡(luò)模型)及其演化的各種模型,如BPNN、SVR模型(支持向量回歸模型)、DNN模型(深層神經(jīng)網(wǎng)絡(luò)模型)及其演化的各種模型,如CNN、RNN等。2010年曾濂等人[7]提出了一種基于BP神經(jīng)網(wǎng)絡(luò)的改進(jìn)模型,研究首先使用定性分析找到倫敦黃金期貨價(jià)格變動(dòng)的影響因素,然后利用投影尋蹤方法篩選出非線性因素中影響力最大的因素輸入神經(jīng)網(wǎng)絡(luò),并改進(jìn)算法進(jìn)行網(wǎng)絡(luò)學(xué)習(xí),最后訓(xùn)練得出所需的BPNN[8]?;跍\層神經(jīng)網(wǎng)絡(luò)對黃金期貨價(jià)格及趨勢進(jìn)行預(yù)測的研究較之深層神經(jīng)網(wǎng)絡(luò)的要多,包括ANN 模型[9]、基于 GA-BP神經(jīng)網(wǎng)絡(luò)[10-12]、RBF神經(jīng)網(wǎng)絡(luò)[13]、廣 義 回歸 神經(jīng) 網(wǎng) 絡(luò)[14-15]和 SVR 模型[16-17]等等。
近年來,LSTM模型(長短期記憶網(wǎng)絡(luò)模型)開始逐步應(yīng)用在金融序列預(yù)測問題上,眾多研究者開始利用LSTM模型對股票市場進(jìn)行建模預(yù)測,2015年,Chen等人[17]將其運(yùn)用于我國股票市場的股價(jià)預(yù)測,相較于其他預(yù)測模型,LSTM的預(yù)測效果得到了大幅提升。多個(gè)應(yīng)用LSTM模型的金融序列預(yù)測,都獲得了更佳的預(yù)測效果[18-20],但目前應(yīng)用在黃金期貨市場預(yù)測上的研究成果相對較少。
綜上所述,為了尋找一種更合適的黃金期貨價(jià)格預(yù)測方法,建立了多層及雙向LSTM預(yù)測模型。以COMEX黃金期貨價(jià)格序列為研究對象,先將原始黃金期貨價(jià)格序列進(jìn)行歸一化處理,然后進(jìn)行不同參數(shù)下模型的比較,最后,選擇出最適應(yīng)歸一化數(shù)值下的參數(shù)模型,輸出預(yù)測的結(jié)果。結(jié)果表明,雙向LSTM模型預(yù)測精度得到了明顯的進(jìn)步,也驗(yàn)證了模型的有效性。
傳統(tǒng)的黃金期貨價(jià)格預(yù)測模型不能充分描述黃金期貨價(jià)格很強(qiáng)的非線性、非平穩(wěn)性和高噪聲的特點(diǎn),因此在預(yù)測問題上存在許多困難,而神經(jīng)網(wǎng)絡(luò)能夠發(fā)現(xiàn)并刻畫數(shù)據(jù)自身復(fù)雜的內(nèi)部結(jié)構(gòu)特征,也能自適應(yīng)得學(xué)習(xí)和構(gòu)建數(shù)據(jù)的非線性的復(fù)雜關(guān)系,不會(huì)對輸入變量施加限制,也具備更好的遷移學(xué)習(xí)(transfer learning)性質(zhì),因此非常適合處理如黃金期貨價(jià)格這樣的金融數(shù)據(jù)。其中LSTM模型更是經(jīng)由丟棄和保留的機(jī)制有效解決了梯度反傳進(jìn)程中產(chǎn)生的梯度消失(vanishing gradient problem)與梯度爆炸(explod?ing gradient problem)問題。由于LSTM能夠?qū)π畔⑦M(jìn)行全局化處理,因此其更適合于處理和預(yù)測時(shí)間序列。因此,本文建立了一個(gè)基于LSTM的雙向網(wǎng)絡(luò)預(yù)測模型,該模型僅基于相關(guān)黃金期貨價(jià)格的時(shí)間序列數(shù)據(jù),不考慮其他影響因素,因此有效地消除了數(shù)據(jù)輸入變量和模型參數(shù)的不確定性。
LSTM網(wǎng)絡(luò)模型最早由Hochreiter和Schmidhu?ber(1997)[20]提出。LSTM 每一個(gè)神經(jīng)元的結(jié)構(gòu)如圖1所示,其內(nèi)部包括一個(gè)細(xì)胞狀態(tài)(Cell)和三個(gè)門控(Gates)設(shè)置,細(xì)胞狀態(tài)(Cell)記錄神經(jīng)元狀態(tài),綜合隱藏和時(shí)間步的事件,通常是經(jīng)由三種門控機(jī)制實(shí)現(xiàn)這類記憶方式,即輸入門(Input Gate)、遺忘門(Forget Gate)和輸出門(Out?put Gate)。輸入門和輸出門用來接收、輸出和修正參數(shù),遺忘門用來決定上一單元狀態(tài)信息的保留程度。
圖1 LSTM單個(gè)神經(jīng)元結(jié)構(gòu)圖
圖1中ht、Xt、tanh和σ分別表示t時(shí)刻細(xì)胞的輸出狀態(tài)值、t時(shí)刻細(xì)胞的輸入狀態(tài)值、雙曲正切函數(shù)前饋網(wǎng)絡(luò)層和sigmoid函數(shù)前饋網(wǎng)絡(luò)層,?表示點(diǎn)乘,⊕表示向量拼接。經(jīng)由拼接向量乘上權(quán)重矩陣之后,再經(jīng)由激活函數(shù)轉(zhuǎn)換來作為一種門控狀態(tài)。下面介紹各個(gè)門控的計(jì)算原理及過程。
首先計(jì)算t時(shí)刻下遺忘門(Forget Gate)的激活值ft,公式如下:
其次計(jì)算t時(shí)刻下輸入門(Input Gate)it的值和輸入細(xì)胞的候選狀態(tài)(Cell)的值,公式如下:
由以上計(jì)算可以得到t時(shí)刻下的細(xì)胞狀態(tài)(Cell)的更新值Ct,公式如下:
在計(jì)算得到細(xì)胞狀態(tài)(Cell)更新值后,最后就可以計(jì)算輸出門(Output Gate)的值,其計(jì)算公式如下:
通過以上的計(jì)算,LSTM就可以確定最終的輸出值。
在Windows10操作系統(tǒng)下搭建Python的keras框架。keras包含兩種模型,一種是Sequential模型,另一種是Model模型,本實(shí)驗(yàn)選用Model模型來搭建多層的LSTM網(wǎng)絡(luò)模型以及雙向LSTM模型分別對數(shù)據(jù)進(jìn)行分析預(yù)測。
多層LSTM模型是將單層細(xì)胞狀態(tài)(Cell)進(jìn)行堆疊,把每層神經(jīng)元的個(gè)數(shù)都藏到Cell中間,其優(yōu)點(diǎn)是可以更抽象的表達(dá)模型特征,并且按照數(shù)據(jù)特征,有效改善預(yù)測效果,但并非絕對的。有時(shí)針對簡單的數(shù)據(jù),多層LSTM的預(yù)測效果反而會(huì)因?yàn)檫^擬合而降低準(zhǔn)確率。多層LSTM不是定義一個(gè)基礎(chǔ)細(xì)胞狀態(tài)之后屢次調(diào)用,而是每次都界定一個(gè)新的基礎(chǔ)細(xì)胞狀態(tài)。也就是說,前一層的LSTM的輸出就是后一層的輸入,即輸入數(shù)據(jù)整體上是一個(gè)時(shí)間序列,而對每個(gè)內(nèi)層特征數(shù)據(jù)來說,輸入數(shù)據(jù)也是一個(gè)時(shí)間序列及二維數(shù)組,因此也可以稱為數(shù)組的數(shù)組。舉一個(gè)簡單的例子:一個(gè)雙層LSTM模型,第一層的隱藏神經(jīng)元個(gè)數(shù)是128,第二層的隱藏神經(jīng)元個(gè)數(shù)為64,在t時(shí)刻的輸入向量是一維的。那么經(jīng)過第一層的計(jì)算以及Cell的操作,第一層的輸出就會(huì)變成128維。疊加第二層LSTM后,此時(shí)第二層的t時(shí)刻的輸入即為128維,同樣的道理,經(jīng)過運(yùn)算其輸出為64維。最后經(jīng)過Cell的操作,最終的輸出維度變?yōu)橐痪S。
雙向LSTM模型是隱藏層要保留兩個(gè)值,C參與正向計(jì)算,C'參與反向計(jì)算。對于每個(gè)時(shí)刻t,輸入向量會(huì)同時(shí)賦值于兩個(gè)方向的LSTM并進(jìn)行計(jì)算,這兩個(gè)單向LSTM同時(shí)影響著最后的輸出。在正向計(jì)算時(shí),前饋層的ht與ht-1有關(guān);而反向計(jì)算時(shí),反饋層的ht則與ht+1有關(guān)。
多層LSTM網(wǎng)絡(luò)模型以及雙向單層LSTM模型的結(jié)構(gòu)如圖2、圖3所示。
圖2 三層LSTM神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
圖3 雙向單層LSTM神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
所有數(shù)據(jù)均來源于相關(guān)財(cái)經(jīng)網(wǎng)站,由于2008年全球性金融危機(jī)對金融市場產(chǎn)生了非常大的影響,使得金融市場發(fā)生了很大的震蕩,因此2008年以前的數(shù)據(jù)研究意義較差,本文選取的數(shù)據(jù)范圍為2009年1月1日到2018年12月31日,共10年2 698個(gè)數(shù)據(jù)。
數(shù)據(jù)選取的是紐約商品交易所COMEX分部的黃金期貨數(shù)據(jù),由于世界黃金期貨市場中,紐約商品交易所(COMEX)的黃金期貨指數(shù)發(fā)展較為成熟,同時(shí)美國財(cái)政部以及國際貨幣基金組織(IMF)也在此處進(jìn)行相關(guān)買賣交易,是以COMEX的交易量占全球主導(dǎo)位置,也經(jīng)常主導(dǎo)全球金價(jià)的走向,所以本文選擇COMEX黃金期貨價(jià)格數(shù)據(jù)作為研究對象。
為避免LSTM對輸入數(shù)據(jù)的限制,同時(shí)也有利于提高模型性能,加快訓(xùn)練網(wǎng)絡(luò)的收斂性,在對序列進(jìn)行量化分析前,首先將數(shù)據(jù)進(jìn)行歸一化處理。根據(jù)選取數(shù)據(jù)的特點(diǎn)和LSTM的要求,本文采用線性函數(shù)歸一化方法對數(shù)據(jù)進(jìn)行預(yù)處理。公式如下:
其中,xi代表第i個(gè)變量;minxi、maxxi分別代表xi的最小值與最大值。
對于黃金期貨價(jià)格這類數(shù)據(jù)規(guī)模及范圍不是非常大的情況,實(shí)驗(yàn)?zāi)P偷念A(yù)測性能評價(jià)指標(biāo)采用均方根誤差(RMSE)、平均絕對誤差(MAE)、平均誤差百分比(MAPE)、擬合度(R2)對實(shí)驗(yàn)結(jié)果進(jìn)行對比。其中RMSE、MAE、MAPE、R2的計(jì)算公式如下:
其中yi、y?i分別代表實(shí)際值與預(yù)測值,N代表預(yù)測窗寬.
模型初步建立后,為了使模型更加適合本數(shù)據(jù),首先對單層模型進(jìn)行了模型內(nèi)部的參數(shù)優(yōu)化。為了確定最合適的數(shù)據(jù)量,本文將數(shù)據(jù)分成了6組(分別是近5年、6年、7年、8年、9年和10年)在數(shù)據(jù)按上述方式確定數(shù)據(jù)特征及標(biāo)簽后,在測試集均為2019年上半年的數(shù)據(jù)的情況下(2019.01.01-2019.06.30),當(dāng)訓(xùn)練集年限為9年(即2 068個(gè)數(shù)據(jù))時(shí),模型在測試集上的預(yù)測效果最佳。因此本文將2010年至2018年的數(shù)據(jù)作為TrainSet(訓(xùn)練集),2019年1-6月的數(shù)據(jù)作為TestSet(測試集),負(fù)責(zé)訓(xùn)練模型的召回率和正確率,最后訓(xùn)練集據(jù)按9∶1的比例劃分,最后10%的數(shù)據(jù)作為ValidationSet(驗(yàn)證集),負(fù)責(zé)調(diào)整模型相應(yīng)的超參數(shù)以及模型的過擬合現(xiàn)象。實(shí)驗(yàn)用數(shù)據(jù)集劃分如表1所示。
表1 數(shù)據(jù)集實(shí)驗(yàn)數(shù)據(jù)劃分
對實(shí)驗(yàn)參數(shù)進(jìn)行選擇,在不同神經(jīng)元個(gè)數(shù)的情況下在訓(xùn)練集和測試集上進(jìn)行預(yù)測,當(dāng)單向單層LSTM模型的神經(jīng)元個(gè)數(shù)為128時(shí),模型在測試集上的預(yù)測效果最佳;在不同迭代次數(shù)的情況下對在訓(xùn)練集和測試集上進(jìn)行預(yù)測,當(dāng)次數(shù)為500時(shí),模型在測試集上的預(yù)測效果最佳;激活函數(shù)則同時(shí)選取了tanh及relu函數(shù)以緩解梯度消失問題;在不同訓(xùn)練步長的情況下,訓(xùn)練步長為3時(shí),模型在測試集上的預(yù)測效果最佳;神經(jīng)網(wǎng)絡(luò)優(yōu)化算法使用Adam來更新參數(shù),并應(yīng)用dropout機(jī)制來規(guī)避實(shí)驗(yàn)的過擬合.表2是實(shí)驗(yàn)所用參數(shù)的具體說明。
表2 實(shí)驗(yàn)參數(shù)
本文中采用ARIMA模型、RNN模型、SVR模型、雙層LSTM模型、雙向單層LSTM模型來進(jìn)行對比實(shí)驗(yàn),通過比較測試集上MSE、RMSE、MAE、R2的值來進(jìn)行優(yōu)劣評判。同時(shí)實(shí)驗(yàn)還在各個(gè)模型中嵌入了回調(diào)參數(shù)(totaltime),以計(jì)算不同模型下數(shù)據(jù)預(yù)測運(yùn)行的時(shí)間。實(shí)驗(yàn)對比結(jié)果如圖4所示,并將對比結(jié)果進(jìn)行了整理,如表3所示。
圖4 各模型預(yù)測結(jié)果
表3 對比結(jié)果
對比表3的實(shí)驗(yàn)結(jié)果可以看出,在LSTM模型中,預(yù)測效果并未隨著模型層數(shù)增加而變好,反而出現(xiàn)了過擬合現(xiàn)象。這說明多層LSTM模型并不適用于本文所選用的數(shù)據(jù)信息。但本文給出的雙向LSTM模型相比于ARIMA模型、RNN模型、SVR模型、雙層LSTM模型,雙向LSTM模型評價(jià)指標(biāo) RMSE、MAE、MAPE、R2超過了所有對比的模型,達(dá)到了較好的效果,預(yù)測模型均得到了良好的提升,同時(shí)在確保預(yù)測準(zhǔn)確性的前提下,雙向LSTM模型和SVR模型的運(yùn)行時(shí)間較短。綜上,說明本文給出的雙向LSTM模型對于黃金期貨價(jià)格預(yù)測效果的提升是有效的。
對于黃金期貨市場來說,只要知道近期黃金期貨的走勢以及價(jià)格,就對投資者的選擇帶來有價(jià)值的參考。本文將深度學(xué)習(xí)方法應(yīng)用在黃金期貨價(jià)格預(yù)測方面,可以看出LSTM神經(jīng)網(wǎng)絡(luò)既承繼了RNN在處理序列問題上的優(yōu)點(diǎn),又進(jìn)一步提升了時(shí)間序列數(shù)據(jù)的高精度的預(yù)測結(jié)果。通過對黃金期貨價(jià)格數(shù)據(jù)進(jìn)行歸一化等預(yù)處理操作后,對LSTM神經(jīng)網(wǎng)絡(luò)的各項(xiàng)參數(shù)作出調(diào)整,并引入了dropout機(jī)制,對實(shí)驗(yàn)結(jié)果進(jìn)行比較,探索出適宜的雙向網(wǎng)絡(luò)模型,實(shí)現(xiàn)對COMEX黃金期貨價(jià)格序列的分析預(yù)測,通過觀察RNN模型、SVR模型、雙層LSTM模型和雙向LSTM神經(jīng)網(wǎng)絡(luò)的表現(xiàn),可以發(fā)現(xiàn)雙向LSTM模型在黃金期貨價(jià)格預(yù)測方面有較好的使用前景,下一步可研究如何在LSTM網(wǎng)絡(luò)引入其他模型并構(gòu)成混合模型,進(jìn)一步提高其預(yù)測精度。