王 鈞 張 鵬 袁 帥
(寧夏大學(xué),寧夏 銀川 750021)
隨著我國(guó)市場(chǎng)經(jīng)濟(jì)的快速發(fā)展,股票作為金融產(chǎn)品的重要部分,不僅是人們生活水平的體現(xiàn),也是市場(chǎng)經(jīng)濟(jì)的“晴雨表”,對(duì)股票走勢(shì)的預(yù)測(cè)已成為研究者越來越關(guān)注的課題[1]。因此,不論是對(duì)政府宏觀管理,還是對(duì)于投資者都有很強(qiáng)的現(xiàn)實(shí)意義。
人工智能技術(shù)的快速發(fā)展,基于深度神經(jīng)網(wǎng)絡(luò)對(duì)金融市場(chǎng)進(jìn)行研究成為該領(lǐng)域研究的熱點(diǎn)??紤]到金融數(shù)據(jù)的時(shí)序性,RNN和LSTM神經(jīng)網(wǎng)絡(luò)存在梯度消失、過擬合等問題,本文使用Seq2Seq模型對(duì)股票時(shí)序數(shù)據(jù)進(jìn)行預(yù)測(cè)。在相同的條件下,通過多組對(duì)比實(shí)驗(yàn),研究影響模型精度的因素,以此來提高模型的預(yù)測(cè)精度,根據(jù)實(shí)驗(yàn)結(jié)果發(fā)現(xiàn)Seq2Seq對(duì)于不定長(zhǎng)的序列數(shù)據(jù)具有更好的預(yù)測(cè)性能。
遞歸神經(jīng)網(wǎng)絡(luò)(RNN)是一類由各單元連接形成的有向循環(huán)的神經(jīng)網(wǎng)絡(luò),它是前饋神經(jīng)網(wǎng)絡(luò)在處理時(shí)間序列數(shù)據(jù)的延伸,通過各單元之間的連接,RNN神經(jīng)網(wǎng)絡(luò)可以存儲(chǔ)神經(jīng)元當(dāng)前時(shí)刻的輸入和前一時(shí)刻的輸出關(guān)系。[2]根據(jù)這一性質(zhì),時(shí)間序列信息可以在該網(wǎng)絡(luò)模型中循環(huán)任意長(zhǎng)時(shí)間。
循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)模型包括輸入層、輸出層、隱藏層。每個(gè)節(jié)點(diǎn)表示序列中,代表RNN網(wǎng)絡(luò)的一層,當(dāng)給定輸入向量序列計(jì)算隱藏層的一組序列通過迭代下列公式中的輸出序列
長(zhǎng)短時(shí)間記憶網(wǎng)絡(luò)(LSTM)是一種基于遞歸神經(jīng)網(wǎng)絡(luò)(RNN)模型的改進(jìn),它由一組特殊的記憶模塊單元替換遞歸神經(jīng)網(wǎng)絡(luò)的隱藏層神經(jīng)元,這些模塊可以記憶隱藏層的任意時(shí)間狀態(tài),從而解決梯度消失等問題。當(dāng)使用長(zhǎng)短時(shí)間記憶模型進(jìn)行相應(yīng)數(shù)據(jù)反向傳遞時(shí),使得序列數(shù)據(jù)在循環(huán)神經(jīng)網(wǎng)絡(luò)中很長(zhǎng)一段時(shí)間的學(xué)習(xí),從而保證信息進(jìn)行遠(yuǎn)距離傳遞,將誤差保持在更為恒定的水平。
通常長(zhǎng)短時(shí)間記憶單元模塊包括輸入門、輸出門、遺忘門和記憶單元。根據(jù)門用進(jìn)行保存和調(diào)節(jié)存儲(chǔ)單元和環(huán)境之間的相互作用,這樣保證存儲(chǔ)單元的狀態(tài)從一個(gè)單元到另一個(gè)單元保持不變。當(dāng)信息通過長(zhǎng)短時(shí)間記憶模型的門控制單元,記憶單元根據(jù)們開關(guān)控制信息進(jìn)行增加、修改、刪除。LSTM網(wǎng)絡(luò)通過遞歸方程更新網(wǎng)絡(luò)單元,激活從輸入到輸出的映射。
不論是RNN網(wǎng)絡(luò)模型,還是長(zhǎng)短時(shí)間記憶(LSTM)網(wǎng)絡(luò)模型,它們都存在處理固定長(zhǎng)度序列數(shù)據(jù)的限制。為了解決不定長(zhǎng)的序列數(shù)據(jù)提出了Seq2Seq模型,該模型將一個(gè)序列作為輸入映射到另一個(gè)輸出序列時(shí),主要完成編碼輸入與解碼輸出兩個(gè)基本環(huán)節(jié)。其中:編碼端根據(jù)輸入序列數(shù)據(jù)進(jìn)行編碼,并在網(wǎng)絡(luò)末端輸出編碼后的狀態(tài)。解碼端接收編碼端最后的狀態(tài),將其作為初始狀態(tài),同時(shí)解碼得到的每一步輸出值是下一步的輸入值。因此Seq2Seq模型訓(xùn)練過程能夠更好的學(xué)習(xí)數(shù)據(jù)之間時(shí)序關(guān)系,也能夠有保持更強(qiáng)的魯棒性。
解碼層采用此編碼的特征向量,并生成標(biāo)記的輸出序列。此層通常也用RNN架構(gòu)(LSTM或RU)構(gòu)建。
當(dāng)使用固定序列的情況下,通過編碼器-解碼器框架進(jìn)行整個(gè)模型的聯(lián)合訓(xùn)練,獲得目標(biāo)序列的概率最大化。但是由于固定長(zhǎng)度編碼的特征向量包含信息數(shù)量的限制,Seq2Seq模型性能會(huì)隨著源序列長(zhǎng)度的增加而降低。為解決此問題,Bahdanau等提出了關(guān)注機(jī)制。在關(guān)注機(jī)制中,解碼器試圖在編碼器序列中查找最重要信息所在的位置,并使用該信息和以前解碼的單詞來預(yù)測(cè)序列中的下一個(gè)標(biāo)記,如下圖所示:
圖1 關(guān)注機(jī)制結(jié)構(gòu)
實(shí)驗(yàn)數(shù)據(jù)來源于tushare提供的數(shù)據(jù)接口,收集相關(guān)數(shù)據(jù)進(jìn)行驗(yàn)證分析。為了使得測(cè)試數(shù)據(jù)具有代表性,選取上證50指數(shù)成份股所在股票于2015-01-01至2017年12月30日作為測(cè)試集評(píng)估數(shù)據(jù),在每一輪的訓(xùn)練中,過去5天的數(shù)據(jù)構(gòu)造的輸入序列的80%作為訓(xùn)練集,20%作為驗(yàn)證集,隨后3個(gè)月的數(shù)據(jù)構(gòu)造的序列作為測(cè)試集。根據(jù)其歷史交易數(shù)據(jù),預(yù)測(cè)未來5天的價(jià)格趨勢(shì)。
本實(shí)驗(yàn)采用tensorflow作為深度學(xué)習(xí)框架,實(shí)驗(yàn)環(huán)境在E5-2620v4雙CPU、內(nèi)存為64GB操作系統(tǒng)為Ubuntu18.04的的PC機(jī)上進(jìn)行。
為了評(píng)估預(yù)測(cè)模型的性能,本文選取了平均絕對(duì)誤差(Mean Absolute Error,MAE)、平均絕對(duì)百分誤差(Mean Absolute Percentage Error,MAPE)和標(biāo)準(zhǔn)誤差(Root Mean Square Error,RMSE)三個(gè)指標(biāo)衡量模型的預(yù)測(cè)精度,其中:
本實(shí)驗(yàn)將Seq2Seq網(wǎng)絡(luò)與傳統(tǒng)的RNN,LSTM神經(jīng)網(wǎng)絡(luò)進(jìn)行對(duì)比分析,并在次基礎(chǔ)上使用Seq2Seq+attention模型進(jìn)行優(yōu)化。傳統(tǒng)RNN模型的準(zhǔn)確率只有78.36%,比LSTM模型的準(zhǔn)確率低了5個(gè)百分點(diǎn),隨著訓(xùn)練次數(shù)的增加,RNN模型幾乎沒有改進(jìn),模型出現(xiàn)了梯度消失,而LSTM模型可以改善梯度問題。LSTM神經(jīng)網(wǎng)絡(luò)可以解決傳統(tǒng)RNN容易梯度消失的問題。從LSTM模型的準(zhǔn)確率只有82.69%,比Seq2Seq模型的準(zhǔn)確率低了3個(gè)百分點(diǎn)。雖然LSTM神經(jīng)網(wǎng)絡(luò)從理論上說具備了時(shí)序性,當(dāng)輸入不定長(zhǎng)時(shí)序的信息,LSTM也容易出現(xiàn)梯度消失問題,此時(shí)LSTM網(wǎng)絡(luò)并不具備任何優(yōu)勢(shì)。但是采用Seq2Seq網(wǎng)絡(luò)模型進(jìn)行不定場(chǎng)時(shí)間序列信息進(jìn)行預(yù)測(cè)的情況下,其預(yù)測(cè)的精度明顯高于LSTM神經(jīng)網(wǎng)絡(luò),也說明了Seq2Seq模型對(duì)不定長(zhǎng)序列具有一定的優(yōu)勢(shì)。
綜上,相比于傳統(tǒng)RNN與LSTM網(wǎng)絡(luò),Seq2Seq深度神經(jīng)網(wǎng)絡(luò)能夠有效解決不定長(zhǎng)序列數(shù)據(jù)的梯度消失問題,并且能夠提高預(yù)測(cè)精度,對(duì)于股市時(shí)間序列的預(yù)測(cè)具有明顯的優(yōu)勢(shì)。
為了比較4種網(wǎng)絡(luò)模型的性能,將每個(gè)模型對(duì)上證50成分股數(shù)據(jù)做訓(xùn)練與預(yù)測(cè),設(shè)定每個(gè)模型epoch為100,通過訓(xùn)練輸出每只股票未來5天的價(jià)格趨勢(shì),和該模型預(yù)測(cè)輸出的RMSE值。下圖為選取中信證券(600030.SH)作為分析對(duì)象。
(d)seq2seq+attention預(yù)測(cè)價(jià)格
通過圖(a)到圖(d)綜合分析得知,RNN和LSTM網(wǎng)絡(luò)模型在股價(jià)波動(dòng)較大的時(shí)段預(yù)測(cè)輸出與實(shí)際輸出現(xiàn)嚴(yán)重偏離,而且預(yù)測(cè)效果比較差。基于Seq2Seq神經(jīng)網(wǎng)及其優(yōu)化模型對(duì)上證50成分股指數(shù)預(yù)測(cè)效果,比其它兩種網(wǎng)絡(luò)模型效果較好。
本文選取A股上證成份指數(shù),使用RNN、LSTM、Seq2Seq及其優(yōu)化模型進(jìn)行股票價(jià)格短期預(yù)測(cè),核心內(nèi)容主要引入Seq2Seq及其優(yōu)化模型,并使用該網(wǎng)絡(luò)模型對(duì)數(shù)據(jù)進(jìn)行挖掘?qū)W習(xí)。實(shí)驗(yàn)表明,深度學(xué)習(xí)能夠更好的發(fā)現(xiàn)和利用數(shù)據(jù)之間的相互作用。同時(shí),通過使用Seq2Seq網(wǎng)絡(luò)模型提高了預(yù)測(cè)的準(zhǔn)確性,并且在解決不定長(zhǎng)時(shí)間序列的數(shù)據(jù)方面更有優(yōu)勢(shì)。雖然Seq2Seq模型的損失值比較高,但是Seq2Seq模型能較好的預(yù)測(cè)金融時(shí)間序列的趨勢(shì),并且在數(shù)值上也與真實(shí)的金融時(shí)間序列較為接近,提高該模型的預(yù)測(cè)精度是未來研究的重點(diǎn)。