摘" 要:黃金是一種特殊的金融商品,具有避險功能。黃金期貨價格受多方面因素的影響,一般認為黃金期貨價格變化趨勢呈現(xiàn)非線性非平穩(wěn)的時間序列,傳統(tǒng)的預測模型難以對其進行有效的預測。文章向傳統(tǒng)在線學習算法中加入信息傳遞,提出基于RNN的在線學習算法ROA(RNN-based Online Algorithm);選用芝加哥商品交易所黃金期貨價格數(shù)據(jù)進行實證分析,使用CNN-LSTM作為基礎預測模型,以MAE、RMSE、R2作為評價指標,結(jié)果表明在所有評價指標中ROA的預測性能均優(yōu)于傳統(tǒng)在線學習算法。
關鍵詞:RNN;黃金期貨價格;在線學習算法
中圖分類號:TP39;TP183 文獻標識碼:A 文章編號:2096-4706(2024)11-0141-05
Prediction of Gold Future Prices Using CNN-LSTM Model under RNN Online Learning Framework
SHI Yansong1, YANG Bo1,2
(1.School of Mathematics, Yunnan Normal University, Kunming" 650500, China; 2.Yunnan Key Laboratory of Modern Analytical Mathematics and Applications, Yunnan Normal University, Kunming" 650500, China)
Abstract: Gold is a special financial commodity with a safe-haven function. The price of gold futures is affected by many factors and is generally regarded as a non-linear and non-stationary time series, which is difficult to be predicted by traditional forecasting models. We introduce information transmission into traditional online learning algorithms and proposes an online learning algorithm ROA (RNN based Online Algorithm) based on RNN (Recurrent Neural Network). Empirical analysis is conducted using the Chicago Mercantile Exchange gold futures price data, with CNN-LSTM (Convolutional Neural Networks-Long Short Term Memory) as the basic prediction model and MAE (Mean Absolute Error), RMSE (Root Mean Square Error), and R2 as evaluation indicators. The results show that the predictive performance of ROA is superior to traditional online learning algorithms in all evaluation indicators.
Keywords: RNN; gold future price; online learning algorithm
0" 引" 言
黃金是一種具有貨幣和商品雙重屬性的特殊貴金屬,因其擁有避險功能和對抗通貨膨脹的能力,一直是投資的熱點。其價格變化也直接決定了黃金投資者和生產(chǎn)者的價值行為,因此,找到可靠的黃金價格預測方法是十分必要的[1]。
對金融時間序列預測較常使用的模型為自回歸移動平均模型(ARMA)[2]、廣義自回歸條件異方差性(GARCH)[3]等。除了經(jīng)典的計量經(jīng)濟學時間序列預測方法外,決策樹[4]、遺傳算法[5]、支持向量機(SVM)[6]和其他機器學習方法也被應用于金融時間序列的預測[7]。面對非線性非平穩(wěn)的金融時間序列數(shù)據(jù),機器學習方法能夠較好地描述各種高度非線性的變化,在量化投資、風險控制等方面表現(xiàn)優(yōu)異[8]。
在機器學習領域,可以將機器學習算法分為在線學習算法和離線學習算法。以往在時間序列預測的研究中較多地使用了離線學習算法[9]。離線學習可以充分利用訓練數(shù)據(jù),通過多次的迭代和調(diào)整參數(shù)來優(yōu)化模型的性能。離線學習的不足在于無法及時適應數(shù)據(jù)的變化,如果新的數(shù)據(jù)規(guī)律和訓練數(shù)據(jù)規(guī)律有很大的差異,那么模型可能會失效,此時需要重新訓練模型。因此,離線學習適合于數(shù)據(jù)變化規(guī)律穩(wěn)定且不需要實時更新的場景,例如圖像識別、語音識別、自然語言處理等。但固定參數(shù)的離線學習算法并不能很好地適應金融時間序列數(shù)據(jù)的變化,尤其是在數(shù)據(jù)產(chǎn)生的規(guī)律發(fā)生變化時這種不適應性表現(xiàn)得更為突出。
在線學習算法能夠持續(xù)不斷地接收數(shù)據(jù),實時動態(tài)地更新模型,適合大規(guī)模和流式數(shù)據(jù)的處理,受到研究者的高度重視,是當前機器學習領域的研究熱點[10]。由此,隨著機器學習的發(fā)展,在線學習算法開始被大家所關注[11]。在線學習算法讓模型一直處于學習狀態(tài),使模型的參數(shù)隨著數(shù)據(jù)的更新而更新,解決了由于離線學習算法參數(shù)固定而導致模型不能適應新數(shù)據(jù)產(chǎn)生規(guī)律的問題。
傳統(tǒng)的在線學習算法只是將模型的參數(shù)更新,將學習好的參數(shù)作為下一次模型學習的初始參數(shù),在模型的每一次學習中并沒有進行數(shù)據(jù)歷史信息的傳遞。這時我們注意到RNN(Recurrent Neural Network)具有一定的記憶功能,可以傳遞過往的歷史信息[12],這能幫助模型更好地處理序列數(shù)據(jù),所以我們擬基于RNN的原理對傳統(tǒng)在線學習算法進行改進得到ROA。
為了提升在線學習下模型對黃金期貨的預測效果,我們在獨立的模型學習中加入了信息傳遞,以幫助模型更好地學習,由此構(gòu)建了ROA框架。使用CNN-LSTM(Convolutional Neural Networks-Long Short Term Memory)模型在ROA框架下對黃金期貨價格進行預測。最后利用MAE、RMSE、R2來評價所提出的ROA框架。
1" 方法與原理
1.1" RNN神經(jīng)網(wǎng)絡
RNN是Elman等人提出的網(wǎng)絡模型,RNN是一種能夠處理序列數(shù)據(jù)的神經(jīng)網(wǎng)絡,RNN的出現(xiàn)解決了傳統(tǒng)神經(jīng)網(wǎng)絡無法捕捉時間序列數(shù)據(jù)間順序關系的局限性[12]。傳統(tǒng)神經(jīng)網(wǎng)絡不能直接利用時間序列的歷史信息,但現(xiàn)實中,很多時間序列數(shù)據(jù)(如金融時間序列數(shù)據(jù))前后都是相互關聯(lián)的。RNN具有記憶能力,能產(chǎn)生信息流,在面對時間序列數(shù)據(jù)時能有更好的預測效果。RNN結(jié)構(gòu)圖如圖1所示,xt-1、xt和xt+1輸入模型時,模型都為同一個,共用參數(shù)θ,通過計算每一個樣本的損失函數(shù)Loss,再通過總誤差LOSS對模型進行學習,得到最優(yōu)參數(shù)θ*。
RNN在學習時,將前一時刻的信息It-1和當前時刻的輸入xt一同輸入到模型中得到輸出 ,并將當前時刻的信息It傳遞到下一時刻使用,如圖1所示。在同一次學習中,所有時刻的模型共享本次學習的參數(shù)θ,得到每一時刻的誤差 ,基于總誤差最小的原則" 對模型參數(shù)進行更新學習。這樣的信息流使得RNN在面對時間序列數(shù)據(jù)時較傳統(tǒng)神經(jīng)網(wǎng)絡擁有更好的效果。
1.2" 在線學習和離線學習
1.2.1" 離線學習
離線學習算法是一種機器學習中模型學習的方式[10],是指在有限的數(shù)據(jù)集上進行模型的訓練和評估,然后再將模型應用于新的數(shù)據(jù)。從式(1)中可以看到,利用訓練集Xtrain和測試集Xtest將模型訓練好以后,得到最優(yōu)參數(shù)θ*,模型訓練好的參數(shù)將不再發(fā)生變化。之后在獲取新的數(shù)據(jù)后進行預測。
(1)
1.2.2" 在線學習
當數(shù)據(jù)產(chǎn)生的規(guī)律發(fā)生變化時,學習后參數(shù)固定的離線學習方式,不容易適應變化后的數(shù)據(jù)。對于變化后的數(shù)據(jù),模型需要重新更新參數(shù)以保證預測效果,因此在線學習被提出[10]。
(2)
結(jié)合圖2,從式(2)中我們可以看到在線學習在數(shù)據(jù)不斷到來的過程中,動態(tài)地更新模型。以之前學習得到的參數(shù)" 表示初始學習參數(shù),在線學習通過最近的歷史數(shù)據(jù)集Xt-1對模型進行學習,得到最優(yōu)參數(shù) ,然后進行預測,得到t時刻的預測值 。當產(chǎn)生新數(shù)據(jù)xt時,利用新數(shù)據(jù)xt對模型重新學習,對t+1時刻進行預測,得到預測值 ,如此循環(huán)往復。由此可以看出,在線學習具有實時性,可以快速適應新數(shù)據(jù)的特征變化。
傳統(tǒng)在線學習將數(shù)據(jù)輸入模型進行學習,模型學習好后進行預測,等出現(xiàn)新的數(shù)據(jù)后,模型重新學習,重新預測,如此循環(huán)往復。如圖2所示,傳統(tǒng)的在線學習將每一批樣本集" 輸入模型學習,其中每一個樣本" 按時間順序輸入模型得到對應的損失函數(shù) ,模型通過對總誤差" 進行更新,在模型學習完畢后進行測試。但從圖2可以看到模型在每個批次學習之間,只對模型參數(shù)θ進行傳遞,沒有信息的傳遞,即不能捕捉數(shù)據(jù)的前后關聯(lián)。此時考慮對模型引入信息流,讓模型具有記憶性。
1.3" 在線學習算法ROA
RNN會將當前時刻的信息保存以便后續(xù)輸出,也會將信息傳遞到下一時刻使用,解決了傳統(tǒng)神經(jīng)網(wǎng)絡處理序列信息時的局限性。傳統(tǒng)在線學習只是將模型的參數(shù)進行傳遞,將模型上一時刻學習好的參數(shù)作為下一時刻模型學習的初始參數(shù),但沒有考慮時間序列數(shù)據(jù)之間的相關性,沒有進行信息的傳遞。利用RNN的信息傳遞機制,我們可以對在線學習進行改進,加入信息傳遞,對模型的輸入加入信息I,把上一時刻的信息和當前時刻的數(shù)據(jù)作為模型下一時刻的輸入,構(gòu)建ROA,讓模型擁有記憶性,如式(3)和圖3所示。
(3)
從圖3中可以看到,模型在每一次的學習過程中,將上一時刻信息It-1和當前時刻的數(shù)據(jù)xt輸入到模型中,得到當前時刻的信息It和預測值 ,同時將當前信息It傳遞到下一時刻使用。在對數(shù)據(jù)的處理中,當前時刻模型學習所用到的樣本集Xt中的數(shù)據(jù)會與其他時刻的樣本集數(shù)據(jù)存在重復。可以看到樣本集" 與樣本集" 中的數(shù)據(jù)由于通過滑動窗口截取,數(shù)據(jù)" 到" 和" 到" 是相同的,為了讓信息的傳遞符合實際情況,把每批次模型學完后第一個數(shù)據(jù)的信息" 作為下一批次模型學習的初始信息 。在模型學習中,把每批樣本Xt的前Wtrain個數(shù)據(jù)作為訓練集,計算每個數(shù)據(jù)輸入模型后與真實值的損失函數(shù) ,然后用總誤差函數(shù)" 來優(yōu)化模型。當總損失值小于規(guī)定閾值或達到學習次數(shù)時模型停止學習,對第Wtrain+1至Wtrain + Wtest數(shù)據(jù)進行預測。
2" 實證分析
2.1" 模型選取
選擇被廣泛應用于金融時間序列預測的CNN-LSTM [11]作為ROA的基礎模型,其中CNN-LSTM的結(jié)構(gòu)圖如圖4所示。
CNN-LSTM模型中構(gòu)建了卷積層(conv1d)、LSTM層和一個全連接層(FC),數(shù)據(jù)依次通過一維卷積層、LSTM層和全連接層,最終得到輸出。
CNN-LSTM參數(shù)設計如表1所示,輸入的訓練集數(shù)據(jù)為三維數(shù)據(jù)向量(1,60,5),其中,60表示時間步長的大小(即有60步的數(shù)據(jù)進行多步預測),5表示輸入維度的5個特征(即黃金期貨價格數(shù)據(jù)的開盤價、收盤價、最高價、最低價和交易量)。
首先,數(shù)據(jù)進入一維卷積層,進一步提取特征,得到一個三維輸出向量(1,60,20)(其中20表示卷積核的大?。?。然后,輸出向量進入LSTM層進行訓練,得到輸出數(shù)據(jù)(1,60,20)(其中20表示LSTM節(jié)點大小)。將數(shù)據(jù)進行扁平化操作得到數(shù)據(jù)(1,1 200),進入一層全連接層,得到最終輸出(1,1)。為了減少計算時間,快速得到結(jié)果,將模型首次學習最高學習次數(shù)設置為3 000,學習次數(shù)達到3 000時,模型停止學習進行測試,之后批次學習的學習次數(shù)最高為1 000。
2.2" 實驗數(shù)據(jù)及模型評價指標
本次實驗使用芝加哥商品交易所2011年11月28日至2023年11月20日黃金期貨價格共2 000條數(shù)據(jù),選取開盤價、收盤價、最高價、最低價和交易量共5個指標作為多特征輸入,對黃金期貨每天的收盤價進行預測。為了更好地訓練模型,采用多數(shù)研究較常使用的歸一化對數(shù)據(jù)進行[11]處理:
其中, 表示樣本均值,σ表示樣本標準差。在得到預測結(jié)果后,對預測結(jié)果進行反標準化處理,得到預測值。
作為神經(jīng)網(wǎng)絡預測模型,選取如下評價指標。
平均絕對誤差指標(Mean Absolute Error, MAE)為:
均方根誤差指標(Root Mean Square Error, RMSE)為:
R2擬合優(yōu)度指標為:
其中,m表示數(shù)據(jù)集的長度,yi表示i時刻的真實值, 表示i時刻的預測值。
2.3" 實驗結(jié)果及分析
在ROA算法和傳統(tǒng)在線學習算法下使用CNN-LSTM模型對黃金期貨價格進行預測,分別畫出股票價格的真實值(real,紅色)、ROA算法下CNN-LSTM模型的預測值(ROA,藍色)和傳統(tǒng)在線學習算法下CNN-LSTM模型的預測值(online,黑色)的折線圖,結(jié)果如圖5所示。
從圖5中可以看出,CNN-LSTM模型在ROA和傳統(tǒng)在線學習算法下都有較好的預測效果,其中ROA算法下模型的預測值更為貼合真實值。
為了對ROA和傳統(tǒng)在線學習算法的預測能力進行更為充分的評價,下面分別計算MAE、RMSE和R2指標值,得到的預測評價結(jié)果如表2所示。
從表2中可以看出,在所有評價指標中,ROA效果均優(yōu)于傳統(tǒng)在線算法,實驗結(jié)果表明向傳統(tǒng)在線學習算法中加入信息傳遞的確能提升模型的預測性能。
3" 結(jié)" 論
為了提高傳統(tǒng)在線學習算法下模型對黃金期貨的預測效果,采用CNN-LSTM模型向傳統(tǒng)在線學習算法中加入信息傳遞,得到ROA。結(jié)果表明,向在線學習算法中加入信息傳遞的確能提升模型的預測性能。這對未來使用在線學習算法進行時間序列預測有一定的參考意義。
參考文獻:
[1] 費一凡,陶雨芊.基于ARMA模型的黃金價格短期預測分析 [J].時代金融,2018(30):236-237.
[2] ASKARI M,ASKARI H. Time Series Grey System Prediction-based Models: Gold Price Forecasting [J].Trends in Applied Sciences Research,2011,6(11):1287-1292.
[3] BASHER S A,SADORSKY P. Hedging Emerging Market Stock Prices with Oil, Gold, VIX, and Bonds: A Comparison between DCC, ADCC and GO-GARCH [J].Energy Economics,2016,54:235-247.
[4] CHANG P C,F(xiàn)AN C Y,LIN J L. Trend Discovery in Financial Time Series Data Using a Case Based Fuzzy Decision Tree [J].Expert Systems with Applications,2011,38(5):6070-6080.
[5] SRINIVASAN N,LAKSHMI C. Stock Price Prediction Using Fuzzy Time-series Population Based Gravity Search Algorithm [J].International Journal of Software Innovation (IJSI),2019,7(2):50-64.
[6] GUO Y H,HAN S M,SHEN C H,et al. An Adaptive SVR for High-frequency Stock Price Forecasting [J].IEEE Access,2018,6:11397-11404.
[7] UROLAGIN S. Text Mining of Tweet for Sentiment Classification and Association with Stock Prices [C]//2017 International Conference on Computer and Applications (ICCA). Doha:IEEE,2017:384-388.
[8] WANG J Y,LI Y F,WANG T T,et al. A Gold Futures Price Forecast Model Based on SGRU-AM [J].IEEE Access,2021,9:146745-146754.
[9] SINGH T,KALRA R,MISHRA S,et al. An Efficient Real-time Stock Prediction Exploiting Incremental Learning and Deep Learning [J].Evolving Systems,2022,14:919-937.
[10] 劉成昊.在線學習算法研究與應用 [D].杭州:浙江大學,2017.
[11] LU W J,LI J Z,LI Y F,et al. A CNN-LSTM-based Model to Forecast Stock Prices [J].Complexity,2020(1):1-10.
[12] ELMAN J. Finding Structure in Time [J].Cognitive Science,1990,14(2):179-211.
作者簡介:石巖松(1999—),男,漢族,云南保山人,碩士研究生在讀,研究方向:機器學習;通訊作者:楊博(1987—),男,白族,云南昆明人,副教授,博士,研究方向:應用數(shù)學。
收稿日期:2023-12-04