趙萌 王倩影
摘? 要:針對目前股價預測模型在隨著網(wǎng)絡層數(shù)增加而導致梯度發(fā)生極端變化的問題,提出一種并聯(lián)殘差神經(jīng)網(wǎng)絡(ResNet)和門控循環(huán)單元(GRU)網(wǎng)絡模型對股票數(shù)據(jù)的收盤價進行預測。在滬深300股票價格數(shù)據(jù)上的實驗結果表明,該模型的平均絕對誤差(MAE)為6.714,均方根誤差(RMSE)為60.961,預測誤差均低于其他模型;且決定系數(shù)(R2)為99.472%,表明預測值和真實值較為接近。該模型對股票價格預測的效果較好。
關鍵詞:股價預測;股票價格;殘差神經(jīng)網(wǎng)絡;門控循環(huán)單元
中圖分類號:TP183;F832.5? 文獻標識碼:A? 文章編號:2096-4706(2023)04-0113-04
Stock Price Prediction Based on Parallel ResNet-GRU Model
ZHAO Meng, WANG Qianying
(Hebei University of Economics and Business, Shijiazhuang, Hebei? 050061, China)
Abstract: Aiming at the problem that the current stock price prediction model changes the gradient extremely as the number of layers of the network increases, a parallel ResNet and GRU network model are proposed to predict the closing price of stock data. Experimental results on the CSI 300 stock price data show that the Mean Absolute Error (MAE) of the model is 6.714, the Root Mean Square Error (RMSE) is 60.961, and the prediction error is lower than that of other models. And the coefficient of determination (R2) is 99.472%, which indicates that the predicted value and the true value are relatively close. The model has a better effect on stock price prediction.
Keywords: stock price prediction; stock price; ResNet; GRU
0? 引? 言
在股票時間序列數(shù)據(jù)中存在許多噪聲信息和不確定性因素,是一個具有非線性、非平穩(wěn)性和長期記憶性等特點的復雜系統(tǒng),準確預測股票價格可以降低交易風險且對于投資者來說具有重要意義。
股價預測的傳統(tǒng)方法有多元線性回歸法、自回歸移動平均法(ARIMA)等。如李俊豪[1]通過使用因子分析改進的多元線性回歸模型對貴州茅臺股票的收盤價進行預測;劉松等[2]通過建立ARIMA模型對西南證券股票的短期數(shù)據(jù)收盤價進行研究;齊天鏵[3]建立了灰色模型和ARIMA模型,分析了模型的應用場景并對股票價格進行預測。近年來,伴隨著人工智能網(wǎng)絡技術的飛速發(fā)展,機器學習和深度學習等算法在各領域中得到廣泛應用。通過引入支持向量機、神經(jīng)網(wǎng)絡等方法,進而由線性回歸過渡到非線性模型的擬合,來對股價進行預測研究[4-9]。然而,伴隨著預測周期的加長和網(wǎng)絡層數(shù)的增加,容易產(chǎn)生梯度極端變化等問題[10],這樣會使得模型的預測效果較差。殘差神經(jīng)網(wǎng)絡可以簡化深層網(wǎng)絡的訓練,避免模型梯度的極端變化問題。
綜合以上模型思想,提出一種并聯(lián)ResNet-GRU模型方法對股票價格進行預測。該模型通過引入殘差卷積神經(jīng)網(wǎng)絡和記憶循環(huán)神經(jīng)網(wǎng)絡技術對股票價格數(shù)據(jù)進行訓練以提取高維特征。利用了并聯(lián)殘差神經(jīng)網(wǎng)絡(Residual Neural Network, ResNet)的簡化深層網(wǎng)絡訓練能力和門控循環(huán)單元(Gate Recurrent Unit, GRU)網(wǎng)絡對時間序列數(shù)據(jù)的記憶能力,將ResNet網(wǎng)絡和GRU網(wǎng)絡的輸出結果進行拼接作為總輸出。這進一步提升了對股票價格的預測精度。
1? 模型構建
1.1? 卷積神經(jīng)網(wǎng)絡(CNN)
卷積神經(jīng)網(wǎng)絡是具有局部連接和權重共享等性質的深度神經(jīng)網(wǎng)絡,其通常是由Conv層、Pooling層和全連接層共同組成。一般來說,在卷積神經(jīng)網(wǎng)絡中可以有一個或多個Conv層、Pooling層和全連接層。網(wǎng)絡的基本模型結構如圖1所示。具體內容有:
(1)Conv層。其作用是利用特征提取器(卷積核)對局部區(qū)域的特征進行提取,特征提取器的選擇可以相同,也可以不同。
(2)Pooling層。也稱采樣層。作用是對區(qū)域特征值進行特征選擇,從而降低特征維數(shù),避免過擬合。常用的池化方式有兩種:一種是最大值池化(Max Pooling),最大值池化是選取某個區(qū)域所有數(shù)值中最大的一個作為該區(qū)域的代表值;另一種是平均值池化(Mean Pooling),通常是選取區(qū)域內所有數(shù)值的平均值作為該區(qū)域的代表值。
(3)全連接層。其作用是連接所有特征,將卷積、池化輸出的二維特征數(shù)據(jù)處理成一維特征向量,用來綜合所有信息。
1.2? 殘差網(wǎng)絡模型(ResNet)
與CNN模型相比,ResNet模型在其中加入了Shortcut直連邊分支結構(也稱殘差連接(Residual Connection)),使其與殘差單元以直連邊拼接的方式實現(xiàn)來提升網(wǎng)絡信息的傳播效率。殘差網(wǎng)絡中的基本模塊結構如圖2所示。模塊中包含兩種映射:一是恒等映射,即圖2中右側的x連線;二是殘差映射F(x),最終輸出目標函數(shù)H(x)=F(x)+x。
圖2中,輸入數(shù)據(jù)通過兩個卷積層得到:
F=W2σ(W1x)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (1)
其中Wi代表權重,σ代表非線性函數(shù)relu,然后與一個Shortcut連接,再經(jīng)過非線性函數(shù)relu,最終獲得輸出目標函數(shù)為:
H=F(x,{Wi})+x? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(2)
當輸入維度與輸出維度不一致時,在Shortcut處對x做線性變換WS,最終輸出目標函數(shù)為:
H=F(x,{Wi})+WSx? ? ? ? ? ? ? ? ? ? ? ? ? ?(3)
1.3? 門控循環(huán)單元模型(GRU)
GRU是LSTM網(wǎng)絡的進化神經(jīng)網(wǎng)絡,與LSTM不同,其網(wǎng)絡結構比LSTM網(wǎng)絡更加簡單。GRU網(wǎng)絡通過引入門控機制重置門(Reset Gate)rt與更新門(Update Gate)zt去選擇信息。GRU神經(jīng)網(wǎng)絡的結構如圖3所示。其門控狀態(tài)來源于前一刻的信息狀態(tài)ht-1和當前時刻的信息狀態(tài)xt。
GRU網(wǎng)絡的具體傳播過程如下:
(1)重置門rt與更新門zt。其作用都是將前一刻的狀態(tài)信息ht-1與當前時刻信息xt通過門控狀態(tài)進行運算,σ為sigmoid激活函數(shù)。計算表達式為:
rt=σ(Wxr xt+Whr ht-1+br)? ? ? ? ? ? ? ? ? ? ? ? (4)
zt=σ(Wxz xt+Whzht-1+bz)? ? ? ? ? ? ? ? ? ? ? ? ?(5)
(2)當前時刻的候選狀態(tài) 。在重置門rt對上一時刻的狀態(tài)信息ht-1實現(xiàn)信息狀態(tài)的重置后,再將其與當前時刻信息xt通過函數(shù)tanh激活,具體計算表達式為:
(6)
(3)輸出層為當前狀態(tài)ht。表示要從前一時刻信息狀態(tài)ht-1中提取多少信息,且從候選狀態(tài)? 中保留多少信息,即通過更新門的遺忘和選擇記憶與當前時刻候選狀態(tài)共同控制輸出。計算表達式為:
(7)
在式(4)~(7)中:Wxr,Wxz,,Whr,Whz分別為當前時刻與前一時刻中各輸入層之間連接的權重矩陣;br,bz, 分別為重置門、更新門和當前時刻隱藏層的偏置項;“·”表示點乘。
1.4? 并聯(lián)ResNet-GRU模型
綜合以上模型思想,為了提高對股票價格的預測精度,提出了如圖4所示的并聯(lián)ResNet-GRU神經(jīng)網(wǎng)絡模型。該模型可分為3個層次,即ResNet通道層、GRU通道層和特征融合層。在搭建ResNet神經(jīng)網(wǎng)絡時,分別嘗試了4種不同深度的神經(jīng)網(wǎng)絡模型,分別為8層、10層、14層和18層,通過實驗訓練得出14層網(wǎng)絡模型的預測效果要優(yōu)于其他3種模型。因此,在上層ResNet通道中,最終選擇由14個Conv層、兩個Pooling層、一個Flatten層和一個全連接層組成。在下層GRU通道中,包含兩個GRU單元和一個全連接層。特征融合層是由上層ResNet神經(jīng)網(wǎng)絡通道經(jīng)過逐層卷積提取的股票價格信息在空間維度上的特征和下層GRU神經(jīng)網(wǎng)絡通道通過重置門和更新門提取的股票價格信息在時間維度上的特征融合而成,最終對預測結果進行輸出。
2? 實證分析
2.1? 數(shù)據(jù)采集與處理
實驗數(shù)據(jù)選取滬深300(股票代碼399300)中1991年4月4日至2022年7月6日股票數(shù)據(jù)進行訓練和測試,具體用到開盤價、最高價、收盤價、最低價、前收盤和成交金額六個指標。通過對原始數(shù)據(jù)中預測變量缺失值進行刪除得到,有效數(shù)據(jù)共計4 253條,將數(shù)據(jù)集劃分為訓練集和測試集兩部分,分別占整個數(shù)據(jù)集的80%和20%。為消除指標間不同量綱產(chǎn)生的影響,采用Min-Max標準化處理數(shù)據(jù),計算公式為:
(8)
其中,xnorm表示標準化得到的結果;xmin(axis=0)表示數(shù)據(jù)x矩陣中每列的最小值組成的行向量;xmax(axis=0)表示數(shù)據(jù)x矩陣中每列最大值組成的行向量。
2.2? 模型參數(shù)設置
所選數(shù)據(jù)集中共有六個指標,設置以6個單元為一個窗口大小,分別將數(shù)據(jù)的訓練集和測試集劃分為6×6的單個樣本結構,并得到訓練集的窗口數(shù)據(jù)個數(shù)為3 396,測試集的窗口數(shù)據(jù)個數(shù)為845。對于ResNet神經(jīng)網(wǎng)絡,通過Reshape層將每一組數(shù)據(jù)變換為6×6×1的二維圖像輸入數(shù)據(jù)形式,即長寬數(shù)值為6,通道數(shù)為1的圖像。那么在ResNet網(wǎng)絡上股價數(shù)據(jù)的訓練集結構為3 396×36,測試集結構為845×36;在GRU神經(jīng)網(wǎng)絡上股價數(shù)據(jù)的訓練集結構為3 396×6×6,測試集結構為845×6×6。對于ResNet通道層,在Conv卷積層中,卷積核大小為3×3,個數(shù)為64,填充padding為3,步長為1,激活函數(shù)為relu,池化層采用最大值池化,步長參數(shù)為2,填充padding為1,輸出大小為6×6×64;在ResConv1層中,該層包括4個殘差單元層,共有8個卷積層,每層的卷積核大小為3×3,個數(shù)為64,填充padding為3,步長為1,激活函數(shù)為relu,輸出大小為6×6×64;在ResConv2層中,該層包括2個殘差單元層和一個Shortcut分支結構,共有5個卷積層,殘差單元的卷積層中,每層的卷積核大小為3×3,個數(shù)為128,填充padding為1,步長為1,激活函數(shù)為relu;為了使數(shù)據(jù)的輸入和輸出有相同的維度,設置Shortcut分支結構卷積層卷積核大小為3×3,個數(shù)為128,填充padding為1,步長為2,激活函數(shù)為relu,輸出大小為3×3×128;最后池化層采用平均值池化,輸出大小為1×1×128。通過以上設置參數(shù)構成了ResNet神經(jīng)網(wǎng)絡模型。對于GRU通道層,設置了兩層GRU單元,每層的序列滑動窗口大小為6,步長為1,激活函數(shù)為sigmoid。通過以上設置參數(shù)構成了GRU神經(jīng)網(wǎng)絡模型。
2.3? 評價指標
本文將均方根誤差(RMSE)、平均絕對誤差(MAE)和決定系數(shù)(R2)作為評價指標,分別對并聯(lián)和串聯(lián)的CNN-LSTM,CNN-GRU,ResNet-LSTM,ResNet-GRU模型的股票價格預測效果進行評估,其具體計算公式為:
(9)
(10)
(11)
在式(9)~(11)式中,yi表示樣本的真實值, 表示樣本的預測值, 表示樣本均值,N為總樣本量。其中RMSE和MAE反映了股票價格的預測值與真實值之間的誤差信息,RMSE、MAE值越小,表明模型預測的失真率越??;R2反映股票價格的預測值與真實值之間的相似程度,R2值越大表示模型的預測值與真實值越接近,預測效果越好。
2.4? 結果分析
實驗分別在并聯(lián)和串聯(lián)的CNN-LSTM,CNN-GRU,ResNet-LSTM,ResNet-GRU模型上進行預測。經(jīng)過多次訓練模型得到,當滬深300股票價格數(shù)據(jù)訓練的batch_size為68,epochs為50,優(yōu)化算法為Adam時,模型的擬合效果達到最好。為直觀表達視圖結果,在這里僅將并聯(lián)ResNet-LSTM和ResNet-GRU模型的預測結果進行圖例化對比,結果如圖5所示。
由圖5可以看出,模型融合了ResNet神經(jīng)網(wǎng)絡優(yōu)化深層神經(jīng)網(wǎng)絡訓練能力和GRU神經(jīng)網(wǎng)絡對時間序列數(shù)據(jù)的記憶能力的特點,使得測試數(shù)據(jù)集的預測值一直逼近真實值,預測結果較好。
依據(jù)評價指標將所有模型通過測試集測試的預測效果進行對比,如表1所示。由表1可以看出,模型在滬深300數(shù)據(jù)集上的均方根誤差為60.961;平均絕對誤差為6.714;決定系數(shù)為99.472%。相比于其他模型,該模型的誤差值降到最低,決定系數(shù)達到最大,表明該模型的預測效果最好,精度更高。
3? 結? 論
本文建立了并聯(lián)ResNet-GRU模型對股票價格進行預測。模型通過在傳統(tǒng)卷積神經(jīng)網(wǎng)絡中加入短連接分支結構形成殘差神經(jīng)網(wǎng)絡,解決了因網(wǎng)絡深化而導致梯度極端變化的問題,同時也對股票價格的高維特征進行有效提取,還融合了GRU神經(jīng)網(wǎng)絡對時序數(shù)據(jù)長期歷史信息的記憶能力,并在滬深300的股票數(shù)據(jù)上進行實證分析。通過模型預測結果發(fā)現(xiàn),與其他模型相比,該模型在評價指標上的效果較好,預測值與實際值的吻合度較高。這證實了殘差神經(jīng)網(wǎng)絡的引入提高了模型對股價的預測性能。
參考文獻:
[1] 李俊豪.基于改進多元線性回歸的股票價格預測模型 [J].科技經(jīng)濟市場,2019(8):61-62+64.
[2] 劉松,張帥. 運用ARIMA模型對股價預測的實證研究 [J].經(jīng)濟研究導刊,2021(25):76-78.
[3] 齊天鏵.基于灰色模型與ARIMA模型的股票價格預測 [J].計算機時代,2021(10):83-85+89.
[4] 徐浩然,許波,徐可文.機器學習在股票預測中的應用綜述 [J].計算機工程與應用,2020,56(12):19-24.
[5] 張青.基于ARIMA-SVM組合模型的創(chuàng)業(yè)板股票價格預測分析 [J].廣西質量監(jiān)督導報,2019(12):131-132.
[6] 黃超斌,程希明.基于LSTM神經(jīng)網(wǎng)絡的股票價格預測研究 [J].北京信息科技大學學報:自然科學版,2021,36(1):79-83.
[7] 羅鑫,張金林.基于多時間尺度復合深度神經(jīng)網(wǎng)絡的股票價格預測 [J].武漢金融,2020(9):32-40.
[8] 張倩玉,嚴冬梅,韓佳彤.結合深度學習和分解算法的股票價格預測研究 [J].計算機工程與應用,2021,57(5):56-64.
[9] 趙紅蕊,薛雷.基于LSTM-CNN-CBAM模型的股票預測研究 [J].計算機工程與應用,2021,57(3):203-207.
[10] HE K M,ZHANG X Y,REN S Q,et al. Deep Residual Learning for Image Recognition [C]//Proceedings of 2016 IEEE Conference on Computer Vision and Pattern Recognition.Las Vegas:IEEE,2016:770-778.
作者簡介:趙萌(1997—),男,漢族,河北邯鄲人,碩士研究生在讀,研究方向:調查與大數(shù)據(jù)分析;王倩影(1984—),女,漢族,河北保定人,副教授,博士研究生,研究方向:深度學習。
收稿日期:2022-08-03