王 靜 鄒慧敏 曲東東 白 麗
(大連海事大學(xué)信息科學(xué)與技術(shù)學(xué)院 遼寧 大連 116026)
時間序列是各行各業(yè)的數(shù)據(jù)按照不同的時間間隔依次、連續(xù)產(chǎn)生的,它們通常包含著豐富且復(fù)雜的信息。由于人們需要從時間序列中獲取有價值的信息,因此時間序列分析技術(shù)應(yīng)運而生。時間序列分析領(lǐng)域的關(guān)鍵一環(huán)是預(yù)測。時間序列預(yù)測是根據(jù)數(shù)據(jù)的歷史規(guī)律以及變化趨勢,對未來數(shù)據(jù)的發(fā)展狀況做出合理的推測。金融時間序列是時間序列的一種,對于政府、投資機構(gòu)和投資者均有著重要的意義,一直以來都是金融領(lǐng)域和計算機領(lǐng)域的研究熱點。
由于金融時間序列非線性且非平穩(wěn)的特性,進行預(yù)測時存在預(yù)測精度不高的問題,所以國內(nèi)外學(xué)者進行了大量的研究,并提出了包括自回歸滑動平均模型(Auto-RegressiveandMovingAverageModel,ARMA)[1]、隨機森林(RandomForest,RF)[2]、長短時記憶神經(jīng)網(wǎng)絡(luò)[3]等多種金融時間序列方法,這些模型都是有監(jiān)督的學(xué)習(xí)方法。近年來,生成對抗網(wǎng)絡(luò)[4]以其獨特的對抗思想和無監(jiān)督學(xué)習(xí)方式成為深度學(xué)習(xí)領(lǐng)域中的重要分支。Mathieu等[5]提出了一種用于視頻預(yù)測的GAN網(wǎng)絡(luò)結(jié)構(gòu);王玉龍等[6]提出了一種用于地面新增建筑檢測的GAN網(wǎng)絡(luò)模型;文獻[7]提出了一種使用注意力機制以提高生成圖像質(zhì)量的SAGAN模型。上述文獻表明,雖然GAN已成功應(yīng)用于計算機視覺并取得了不錯的效果,但是在金融時間序列分析領(lǐng)域的應(yīng)用卻少之又少,本文將生成對抗網(wǎng)絡(luò)模型應(yīng)用于金融時間序列預(yù)測領(lǐng)域。
鑒于GAN具有良好的捕捉數(shù)據(jù)間隱含深層關(guān)系的能力,本文致力于將GAN應(yīng)用于金融時間序列預(yù)測。Zhou等[8]首次采用GAN對高頻股票市場進行預(yù)測,并有效地提高股價方向預(yù)測精度,降低預(yù)測誤差;Zhang等[9]將GAN應(yīng)用于股票市場的預(yù)測。上述文獻雖然將GAN應(yīng)用于金融時間序列預(yù)測,但都采用了原始GAN模型,存在預(yù)測精度不高、模型不穩(wěn)定等問題。為了解決上述問題,首先本文在保留WGAN-GP[10]優(yōu)點的基礎(chǔ)上,將經(jīng)驗?zāi)B(tài)分解[11]與LSTM結(jié)合作為生成器,卷積神經(jīng)網(wǎng)絡(luò)[12]作為判別器;然后將WGAN-GP生成器的損失函數(shù)與均方誤差結(jié)合作為本文生成器的損失函數(shù);最后,使用該模型對滬深300指數(shù)進行實驗,驗證了該模型預(yù)測的準確性。
為了解決生成對抗網(wǎng)絡(luò)對金融時間序列進行預(yù)測時存在預(yù)測精度不高、模型不穩(wěn)定等問題。本文提出了一種新型的用于金融時間序列預(yù)測的生成對抗網(wǎng)絡(luò)模型。由于金融時間序列大多數(shù)都是非線性且非平穩(wěn)的,而經(jīng)驗?zāi)B(tài)分解非常適合分析這類數(shù)據(jù),故本文將經(jīng)驗?zāi)B(tài)分解和生成對抗網(wǎng)絡(luò)的生成器結(jié)合;又因為生成對抗網(wǎng)絡(luò)生成器的目標函數(shù)和樣本數(shù)據(jù)沒有直接關(guān)聯(lián),會導(dǎo)致模型不穩(wěn)定,所以對其目標函數(shù)進行改進。
經(jīng)驗?zāi)B(tài)分解生成對抗網(wǎng)絡(luò)的網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示,主要包括:數(shù)據(jù)預(yù)處理、生成模型G和判別模型D三部分。
圖1 EMD-WGAN結(jié)構(gòu)
數(shù)據(jù)預(yù)處理可以從原始數(shù)據(jù)中獲取更多的信息,便于進一步分析及預(yù)測。本文首先對原數(shù)據(jù)中的異常數(shù)據(jù)進行降噪,得到降噪后的數(shù)據(jù),然后進行線性歸一化處理:
(1)
式中:Xn表示歸一化后的數(shù)據(jù);X表示降噪后的數(shù)據(jù);Xmin表示降噪后數(shù)據(jù)的最小值;Xmax表示降噪后數(shù)據(jù)的最大值。
生成模型由經(jīng)驗?zāi)B(tài)分解和N個長短時記憶神經(jīng)網(wǎng)絡(luò)組成。LSTM具有良好的記憶性能,并且在對金融時間序列進行預(yù)測時表現(xiàn)出了良好的特性,所以采用LSTM作為生成對抗網(wǎng)絡(luò)生成模型的一部分。本文的生成模型與原始GAN生成模型不同之處在于其采用EMD和LSTM結(jié)合作為生成模型。改進后的生成對抗網(wǎng)絡(luò)不是直接將預(yù)處理后的數(shù)據(jù)輸入到生成模型中,而是將預(yù)處理后的數(shù)據(jù)先進行經(jīng)驗?zāi)B(tài)分解得到N-1個包含原數(shù)據(jù)不同時間尺度特征的本征模態(tài)函數(shù)(Intrinsic Mode Function,IMF)和一個余波。然后將這N組數(shù)據(jù)分別輸入N個LSTM神經(jīng)網(wǎng)絡(luò)中。最后將LSTM的輸出進行求和作為生成數(shù)據(jù)與真實數(shù)據(jù)一起輸入給判別模型。這樣做的優(yōu)勢在于:經(jīng)過EMD后的數(shù)據(jù)頻率相似并且具有良好的規(guī)律性,不僅可以降低生成模型的復(fù)雜度,而且可以提高預(yù)測精度。
本文采用CNN作為判別模型,結(jié)構(gòu)如圖2所示。
圖2 卷積神經(jīng)網(wǎng)絡(luò)
判別模型的作用是判別輸入數(shù)據(jù)是真實數(shù)據(jù)還是生成模型的生成數(shù)據(jù),相當于一個二分類器。因為CNN具有良好的特征提取能力,并且在分類任務(wù)上表現(xiàn)良好,所以判別模型采用CNN。CNN是一種深度前饋神經(jīng)網(wǎng)絡(luò),由輸入層、輸出層和多個隱藏層組成,其中隱藏層包括卷積層、池化層、全連接層。首先輸入層輸入數(shù)據(jù),然后卷積層通過卷積運算提取特征,池化層進行特征降維、壓縮數(shù)據(jù)和參數(shù),防止過擬合,最后經(jīng)過全連接層連接并進行輸出。
目標函數(shù)的設(shè)計是生成對抗網(wǎng)絡(luò)模型研究中的一個重要部分,一般可以采用交叉熵、均方誤差和Wasserstein距離等。均方誤差表示的是真實數(shù)據(jù)與預(yù)測數(shù)據(jù)之間距離平方和的平均數(shù)。本文使用WGAN-GP中使用的Wasserstein距離和均方誤差作為本文的目標函數(shù):
(2)
本文判別器的目標函數(shù)采用WGAN-GP判別器的目標函數(shù):
(3)
式中:m為小批量樣本的大小。
本文生成器的目標函數(shù):
(4)
(5)
(6)
本文采用Adam優(yōu)化算法[13]訓(xùn)練EMD-WGAN,使模型參數(shù)達到最優(yōu),具體步驟如下:
1) 初始化生成器和判別器的學(xué)習(xí)率lg和ld,權(quán)重θ和w;設(shè)置超參數(shù)λ和ε;給定m組歷史數(shù)據(jù)X:(x(1),x(2),…,x(m))和真實數(shù)據(jù)Y:(y(1),y(2),…,y(m))。
2) 若模型未收斂,則:
(2) 更新判別器D:由更新好的生成器G*可以得到生成數(shù)據(jù)G*(z):(G*(z)(1),G*(z)(2),…,G*(z)(n)};將生成數(shù)據(jù)G*(z)和真實數(shù)據(jù)Y輸入給判別器,根據(jù)Adam算法更新判別器的權(quán)重w:w←Adam(▽wLD)。
3) 若模型收斂,則訓(xùn)練結(jié)束。
本文數(shù)據(jù)釆集自“wind”上2002年1月-2019年3月的滬深300指數(shù)。數(shù)據(jù)集的生成方式為每天采集一次數(shù)據(jù)樣本,使用前20天的收盤價預(yù)測第21天的收盤價。由于金融時間序列在實際應(yīng)用中,還存在各種數(shù)據(jù)處理時間及訓(xùn)練時間的要求,所以在研究中采用了總數(shù)據(jù)中的最后4000個數(shù)據(jù),其中前2/3作為訓(xùn)練集,后1/3作為測試集。
誤差準則用來評估預(yù)測模型的性能。目前對于評價指標的選擇有很多種,一般是從不同的角度選取不同的評價指標對模型進行科學(xué)的衡量與評估。本文采用平均絕對誤差(MAE)、均方誤差(MSE)、均方根誤差(RMSE)、平均絕對百分比誤差(MAPE)作為模型評價指標,計算公式如下:
(7)
(8)
(9)
(10)
本文將分析非線性數(shù)據(jù)性能良好的EMD和WGAN-GP的生成器進行結(jié)合,即先將預(yù)處理后的數(shù)據(jù)進行EMD,再將分解后的數(shù)據(jù)輸入給LSTM,最后生成器和判別器進行對抗訓(xùn)練得到最終的輸出。為了驗證本文金融時間序列預(yù)測算法的準確性,選取了已經(jīng)成功應(yīng)用于金融時間序列預(yù)測的LSTM和深度學(xué)習(xí)中具有代表性的WGAN-GP與本文模型進行對比。
本文模型生成器由EMD和9個LSTM神經(jīng)網(wǎng)絡(luò)構(gòu)成,每個神經(jīng)網(wǎng)絡(luò)有2層LSTM隱藏單元,每層包含10個神經(jīng)元,激活函數(shù)為tanh,學(xué)習(xí)率為0.0006并采用Dropout防止過擬合。判別器由3層CNN構(gòu)成,卷積核分別為[1,32]、[1,64]、[1,128],激活函數(shù)為LReLU,學(xué)習(xí)率為0.0006,池化方法為最大池化,并采用Dropout防止過擬合。
圖3給出WGAN-GP、LSTM和EMD-WGAN的預(yù)測值與真實值,可以看出,LSTM、WGAN-GP與EMD-WGAN模型預(yù)測的數(shù)據(jù)走勢總體與實際數(shù)據(jù)的走勢相同,但EMD-WGAN相比于其他兩個模型能夠更好地擬合實際數(shù)據(jù);EMD-WGAN模型相比于未加經(jīng)驗?zāi)B(tài)分解的WGAN-GP能夠更多地提取到原始金融時間序列的非線性特征,能提高金融時間序列預(yù)測的精度;EMD-WGAN和LSTM相比,雖然LSTM對于一些轉(zhuǎn)折點的數(shù)據(jù)也能夠較好地擬合,但是LSTM的整體預(yù)測卻遠不如EMD-WGAN。雖然EMD-WGAN模型整體預(yù)測精度提高了,但在某些峰值處未能較好擬合,其主要原因是:1) 實驗中使用的金融時間序列的技術(shù)指標有限,僅僅使用了滬深300指數(shù)的收盤價。2) 實驗中使用的金融時間序列的數(shù)量有限,僅僅使用了2002年-2019年的數(shù)據(jù)。3) 實驗中使用的金融時間序列沒有考慮到政策、新聞等因素對股票價格的影響,僅僅從數(shù)據(jù)本身特征進行分析。
(a) WGAN-GP預(yù)測結(jié)果
(c) EMD-WGAN預(yù)測結(jié)果圖3 不同方法預(yù)測結(jié)果對比
為了進一步驗證本文算法的有效性,我們選取了最近一年LSTM、WGAN-GP、EMD-WGAN預(yù)測值與真實值的誤差進行對比,如圖4所示??梢钥闯鯡MD-WGAN的整體誤差最小,LSTM最差。但是在2019年1月-2019年3月,LSTM和EMD-WGAN誤差接近且比WGAN-GP誤差小,結(jié)合圖3可以看出,在這段時間內(nèi)有一個較大的轉(zhuǎn)折點說明對于突變數(shù)據(jù)LSTM和EMD-WGAN擬合的效果比WAGN好。
圖4 預(yù)測誤差
由表1可以看出,從MAE、MSE、MAPE和RMSE這四個指標上來看,本文算法最優(yōu),WGAN-GP次之,LSTM效果最差。本文算法和WGAN-GP相比,加入經(jīng)驗?zāi)B(tài)分解后能夠更好地捕捉金融時間序列的非線性特征,降低了預(yù)測誤差。
表1 不同預(yù)測方法結(jié)果對比
針對金融時間序列預(yù)測,本文提出了基于經(jīng)驗?zāi)B(tài)分解的生成對抗網(wǎng)絡(luò)的時間序列預(yù)測模型。該模型的生成模型由EMD和LSTM神經(jīng)網(wǎng)絡(luò)組成,判別模型為CNN。生成器的目標函數(shù)引入真實值和預(yù)測值的均方誤差以提高模型穩(wěn)定性,并對其進行論證。采用滬深300指數(shù)對LSTM、WGAN-GP和本文模型進行實驗,綜合MAPE、MSE、MAE和RMSE四個指標,實驗結(jié)果表明本文模型具有較高的預(yù)測精度。后續(xù)研究工作將考慮政策、新聞等因素對股票價格的影響,以便得到預(yù)測準確率更高的模型。