陳琪琪
摘 要:提出了使用卷積神經(jīng)網(wǎng)絡(luò)和長(zhǎng)短期記憶(CNN-LSTM)神經(jīng)網(wǎng)絡(luò)模型來(lái)分析股票價(jià)格變動(dòng)。CNN-LSTM神經(jīng)網(wǎng)絡(luò)通過(guò)CNN進(jìn)行數(shù)據(jù)的空間結(jié)構(gòu)特征提取,然后通過(guò)使用LSTM對(duì)輸入的時(shí)間序列特征進(jìn)行特征提取,最后有效地預(yù)測(cè)短時(shí)間內(nèi)的當(dāng)日股票最高價(jià)。實(shí)驗(yàn)證明,CNN-LSTM神經(jīng)網(wǎng)絡(luò)模型可以成功地應(yīng)用于股票價(jià)格變動(dòng)的研究。
關(guān)鍵詞:卷積神經(jīng)網(wǎng)絡(luò)(CNN);長(zhǎng)短期記憶神經(jīng)網(wǎng)絡(luò)(LSTM);股票價(jià)格變動(dòng)
中圖分類(lèi)號(hào):F832.5? ? ? 文獻(xiàn)標(biāo)志碼:A? ? ? 文章編號(hào):1673-291X(2020)02-0157-04
一、股票價(jià)格研究的可行性分析
股票價(jià)格體系內(nèi)部結(jié)構(gòu)的復(fù)雜性和外部因素的多樣性(國(guó)家政策、銀行利率、價(jià)格指數(shù)、報(bào)價(jià)公司的表現(xiàn)以及投資者的心理因素)決定了股票市場(chǎng)的復(fù)雜性、股票價(jià)格預(yù)測(cè)任務(wù)的不確定性和不確定性。股票市場(chǎng)具有高回報(bào)、高風(fēng)險(xiǎn)的特點(diǎn)。CNN是特定的DNN架構(gòu),涉及在多個(gè)層中使用卷積而不是更傳統(tǒng)的矩陣乘法,并且是處理常規(guī)采樣數(shù)據(jù)(例如2D和3D圖像)的理想工具。用于圖像分析任務(wù)的典型CNN體系結(jié)構(gòu)由四個(gè)關(guān)鍵層類(lèi)型組成,即卷積層、非線性激活、池化和完全連接層[1]。為了獲得更好的回報(bào),我們采用了遞歸神經(jīng)網(wǎng)絡(luò)(RNN),它已被證明是處理順序數(shù)據(jù)的最強(qiáng)大模型之一。長(zhǎng)短期記憶(LSTM)是最成功的RNN架構(gòu)之一,用于解決神經(jīng)網(wǎng)絡(luò)中的消失梯度問(wèn)題[2]。對(duì)于時(shí)間序列數(shù)據(jù)(例如文本、信號(hào)、股票價(jià)格等),較長(zhǎng)的短期記憶(LSTM)對(duì)于學(xué)習(xí)深度神經(jīng)網(wǎng)絡(luò)(DNN)中的時(shí)間模式更為優(yōu)越。LSTM克服了遞歸神經(jīng)網(wǎng)絡(luò)(RNN)中消失的梯度問(wèn)題,可以使用存儲(chǔ)單元和門(mén)來(lái)學(xué)習(xí)時(shí)間序列數(shù)據(jù)中的長(zhǎng)期依賴性。所以,CNN-LSTM神經(jīng)網(wǎng)絡(luò)模型可以從歷史數(shù)據(jù)集中找到潛在的規(guī)則,研究股票價(jià)格變動(dòng)是可行的。
二、CNN網(wǎng)絡(luò)和LSTM網(wǎng)絡(luò)介紹
(一)卷積神經(jīng)網(wǎng)絡(luò)(CNN)介紹
卷積神經(jīng)網(wǎng)絡(luò)是一種多層神經(jīng)網(wǎng)絡(luò),擅長(zhǎng)處理與圖像,尤其是大圖像有關(guān)的機(jī)器學(xué)習(xí)問(wèn)題。通過(guò)一系列的方法,卷積網(wǎng)絡(luò)成功地用大量的數(shù)據(jù)降低了圖像識(shí)別問(wèn)題的維數(shù),最終使其得到訓(xùn)練。CNN最早由Yann LeCun提出并應(yīng)用在手寫(xiě)字體識(shí)別上(MINST)。LeCun提出的網(wǎng)絡(luò)稱為L(zhǎng)eNet,其網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
這是一個(gè)由卷積層、池化層和全連接層共同組成的基本的卷積神經(jīng)網(wǎng)絡(luò)[4]。卷積層與池化層結(jié)合形成了多個(gè)卷積組,并逐層提取特征。最后,通過(guò)多個(gè)全連接層完成分類(lèi)。卷積層完成的操作可以看做是受到了局部感受野概念的啟發(fā),而池化層主要目的是減小數(shù)據(jù)維度。一般來(lái)說(shuō),CNN通過(guò)卷積來(lái)模擬特征區(qū)分,通過(guò)卷積的權(quán)重共享和卷積的池化來(lái)降低網(wǎng)絡(luò)參數(shù)的數(shù)量級(jí),最后運(yùn)用傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)完成分類(lèi)等任務(wù)。
(二)長(zhǎng)短期記憶網(wǎng)絡(luò)(LSTM)介紹
長(zhǎng)短期記憶網(wǎng)絡(luò)(LSTM)是RNN(Recurrent neural network,循環(huán)神經(jīng)網(wǎng)絡(luò))的一種特殊形式,是一系列能夠處理序列數(shù)據(jù)的神經(jīng)網(wǎng)絡(luò)的統(tǒng)稱。LSTM在許多問(wèn)題上取得了很大的成功,并且得到了廣泛的應(yīng)用[4]。
1.循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)
循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)不同于深度神經(jīng)網(wǎng)絡(luò)和卷積神經(jīng)網(wǎng)絡(luò),它可以處理有關(guān)于序列的問(wèn)題。例如,基于時(shí)間的序列:一段連續(xù)的語(yǔ)音通話、一段連續(xù)的手寫(xiě)文本。這些序列相對(duì)較長(zhǎng),長(zhǎng)度不同,難以分離成獨(dú)立樣本進(jìn)行訓(xùn)練[5]。
循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)是一種專(zhuān)門(mén)處理時(shí)序數(shù)據(jù)樣本的神經(jīng)網(wǎng)絡(luò)。它的每個(gè)層不但要輸出下一層,還輸出一個(gè)當(dāng)前層在處理下一個(gè)樣本時(shí)使用的隱藏狀態(tài)。類(lèi)似于卷積神經(jīng)網(wǎng)絡(luò),可以很容易地?cái)U(kuò)展到擁有較大高度和寬度的圖像,并且一些卷積神經(jīng)網(wǎng)絡(luò)還可以處理具有不同大小的圖像。循環(huán)神經(jīng)網(wǎng)絡(luò)同樣也可以擴(kuò)展到具有較長(zhǎng)周期的序列數(shù)據(jù),并且大部分的循環(huán)神經(jīng)網(wǎng)絡(luò)可以處理不同序列長(zhǎng)度的數(shù)據(jù),例如,for循環(huán)、長(zhǎng)度可變變量。循環(huán)神經(jīng)網(wǎng)絡(luò)可以看做是一個(gè)具有自循環(huán)反饋的全連接神經(jīng)網(wǎng)絡(luò)[6],其網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示。
其中,X是輸入序列(長(zhǎng)度為T(mén)),h是隱藏層序列,o是輸出序列,L是總體損失,y是目標(biāo)標(biāo)記序列,U是從輸入層到隱藏層的參數(shù)矩陣,W是從隱藏層到隱藏層的自循環(huán)參數(shù)矩陣,V是隱藏層到輸出層的參數(shù)矩陣。需要注意的是,圖中的輸入節(jié)點(diǎn)(多個(gè))、隱藏節(jié)點(diǎn)和輸出節(jié)點(diǎn)的數(shù)量都用一個(gè)個(gè)小圓圈來(lái)表示的,它們之間是完全連接的,并且在隱藏層之間添加了一個(gè)自循環(huán)反饋(通過(guò)權(quán)重共享),這也是它能夠處理不同序列長(zhǎng)度數(shù)據(jù)的原因。
2.長(zhǎng)短期記憶網(wǎng)絡(luò)(LSTM)
LSTM是一種遞歸神經(jīng)網(wǎng)絡(luò)(RNN),它可以從長(zhǎng)期的依賴信息中學(xué)習(xí)。與常規(guī)RNN不同,當(dāng)有任意大小的時(shí)間步長(zhǎng)時(shí),它非常適合從經(jīng)驗(yàn)中學(xué)習(xí)以預(yù)測(cè)時(shí)間序列。另外,通過(guò)存儲(chǔ)單元將與時(shí)間相關(guān)的信息保留任意時(shí)間量,可以解決梯度消失的問(wèn)題[7]。有證據(jù)表明,它比常規(guī)的RNN更有效。通常,長(zhǎng)短期記憶(LSTM)旨在通過(guò)引入存儲(chǔ)單元和輸入/輸出門(mén)來(lái)解決RNN網(wǎng)絡(luò)中的長(zhǎng)期時(shí)間依賴性,以解決遞歸神經(jīng)網(wǎng)絡(luò)中的梯度爆炸或消失問(wèn)題[8]。
LSTM的單一節(jié)點(diǎn)的結(jié)構(gòu)如圖3所示。LSTM對(duì)于時(shí)間序列預(yù)測(cè)顯示出令人鼓舞的結(jié)果。它的單元由三個(gè)門(mén)組成:輸入門(mén)、忘記門(mén)和輸出門(mén)。它之所以受歡迎,是因?yàn)樗哂袑W(xué)習(xí)隱藏的長(zhǎng)期順序依存關(guān)系的能力,這實(shí)際上有助于學(xué)習(xí)時(shí)間序列的基本表示形式。但是,現(xiàn)實(shí)世界中的時(shí)間序列數(shù)據(jù)通?;蚨嗷蛏俚匕恍┊惓V?,尤其是在網(wǎng)絡(luò)攻擊中,這些異常通常在監(jiān)視網(wǎng)絡(luò)流量某些度量的時(shí)間序列數(shù)據(jù)中顯示為異常。這些離群值在提取時(shí)間序列的真實(shí)表示時(shí)誤導(dǎo)了學(xué)習(xí)方法,并降低了預(yù)測(cè)的性能[9]。
根據(jù)LSTM網(wǎng)絡(luò)的結(jié)構(gòu),每個(gè)LSTM單元的計(jì)算公式如圖4所示。其中,F(xiàn)t代表的是遺忘門(mén)限,It代表的是輸入門(mén)限,Ct代表的是cell狀態(tài)(這里意思是循環(huán)發(fā)生的地方),t代表的是前一時(shí)刻cell狀態(tài),Ot代表的是輸出門(mén)限,Ht代表的是當(dāng)前單元的輸出,Ht-1代表的是前一時(shí)刻單元的輸出。
三、實(shí)驗(yàn)和分析
(一)CNN-LSTM網(wǎng)絡(luò)結(jié)構(gòu)
我們實(shí)施了CNN-LSTM神經(jīng)網(wǎng)絡(luò)模型,用于對(duì)股票價(jià)格變動(dòng)的研究。CNN-LSTM流程圖和參數(shù)的細(xì)節(jié)在圖5和表1中描述如下。
在我們的CNN-LSTM模型中,LSTM部分由順序?qū)咏M成,后跟1個(gè)LSTM層和具有Tanh激活的密集層。過(guò)擬合問(wèn)題是神經(jīng)網(wǎng)絡(luò)訓(xùn)練時(shí)最難以避免的事情之一。過(guò)擬合意味著模型在訓(xùn)練數(shù)據(jù)中表現(xiàn)良好,但對(duì)于其他數(shù)據(jù),預(yù)測(cè)器效果較差。原因是“死記硬背”的數(shù)據(jù)和噪音通常會(huì)導(dǎo)致復(fù)雜的模型。為了避免過(guò)擬合問(wèn)題,將Dropout添加到CNN-LSTM模型中,并將正則化項(xiàng)應(yīng)用于權(quán)重。Dropout指的是隨機(jī)丟棄一些特征以提高模型的穩(wěn)健性。正則化是指在計(jì)算損失函數(shù)時(shí)添加L2范數(shù),使得一些接近0的權(quán)重值避免對(duì)每個(gè)特征的強(qiáng)制適應(yīng)。然后它提高了穩(wěn)定性,也獲得了功能選擇的效果[10]。
(二)實(shí)驗(yàn)結(jié)果
根據(jù)股票歷史數(shù)據(jù)中的開(kāi)盤(pán)價(jià)、收盤(pán)價(jià)、最低價(jià)、最高價(jià)、交易量、交易額、跌漲幅等因素,對(duì)下一日股票最高價(jià)進(jìn)行預(yù)測(cè)。本次實(shí)驗(yàn)的數(shù)據(jù)信息的元素維度為10個(gè),也就是10個(gè)對(duì)股票價(jià)格造成影響的信息數(shù)據(jù),分別為股票序號(hào)、股票號(hào)、時(shí)間、開(kāi)盤(pán)價(jià)、閉盤(pán)價(jià)、最低價(jià)、最高價(jià)、交易量、交易額、跌漲幅[11]。
本次實(shí)驗(yàn)主要是預(yù)測(cè)在比較短時(shí)間內(nèi)的下一個(gè)時(shí)間段的最高價(jià)。由圖6可以看出,test為測(cè)試集的真實(shí)最高價(jià),pred為模型預(yù)測(cè)的最高價(jià),在短時(shí)間的價(jià)格變動(dòng)中預(yù)測(cè)的最高價(jià)還是逼近與真實(shí)的最高價(jià)的。由此可以發(fā)現(xiàn),紅色預(yù)測(cè)值能夠很好地接近藍(lán)色代表的真實(shí)值,并能有效預(yù)測(cè)出股票未來(lái)短期的走勢(shì)等。
結(jié)語(yǔ)
我們將深度學(xué)習(xí)應(yīng)用在股票價(jià)格的變動(dòng)的分析與研究上,首先說(shuō)明了運(yùn)用神經(jīng)網(wǎng)絡(luò)方法研究股票價(jià)格變動(dòng)是可行的。然后提出了CNN和LSTM神經(jīng)網(wǎng)絡(luò)相結(jié)合的股票預(yù)測(cè)神經(jīng)網(wǎng)絡(luò)模型,可以稍微有效率地研究股票價(jià)格的變化,從而提供了一種基于股票數(shù)據(jù)的特征構(gòu)建神經(jīng)網(wǎng)絡(luò)模型的思路。但是現(xiàn)在對(duì)長(zhǎng)時(shí)間股票數(shù)據(jù)的預(yù)測(cè)的方面并不理想,我們還需要對(duì)神經(jīng)網(wǎng)絡(luò)進(jìn)行進(jìn)一步的優(yōu)化與改善,例如改進(jìn)誤差函數(shù),提高神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)未來(lái)股票價(jià)格的高精度。
參考文獻(xiàn):
[1]? 基于卷積神經(jīng)網(wǎng)絡(luò)的K線圖有效性驗(yàn)證.2018.
[2]? 盧興沄.一種類(lèi)人機(jī)器人手勢(shì)識(shí)別算法及其實(shí)現(xiàn)[D].長(zhǎng)沙:湖南大學(xué),2017.
[3]? 顧帥.Android移動(dòng)平臺(tái)下基于深度學(xué)習(xí)的目標(biāo)檢測(cè)技術(shù)研究[D].西安:西安電子科技大學(xué),2018.
[4]? 曹成遠(yuǎn).基于深度學(xué)習(xí)的蛋白質(zhì)殘基相互作用預(yù)測(cè)[D].蘇州:蘇州大學(xué),2016.
[5]? 陳再發(fā),劉彥呈,劉厶源.長(zhǎng)短期記憶神經(jīng)網(wǎng)絡(luò)在機(jī)械狀態(tài)預(yù)測(cè)中的應(yīng)用[J].大連海事大學(xué)學(xué)報(bào),2018,44(1).
[6]? 沈榮,張保文.深度學(xué)習(xí)淺談[J].電腦知識(shí)與技術(shù),2017,16(13):156.
[7]? BAO W,YUE J,RAO Y.A deep learning framework for financial time series using stacked autoencoders and long-short term memory[J].Plos One,2017,12(7):e0180944.
[8]? 基于時(shí)空上下文建模的行為識(shí)別研究[D].蘇州:蘇州大學(xué),2017.
[9]? YANG H,PAN Z,TAO Q.Robust and Adaptive Online Time Series Prediction with Long Short-Term Memory[J].Computational Intelligence and Neuroscience,2017:1-9.
[10]? LIU S,CHAO Z,MA J:CNN-LSTM Neural Network Model for Quantitative Strategy Analysis in Stock Markets.In International Conference on Neural Information Processing 2017.
[11]? KIM T,KIM H Y.Forecasting stock prices with a feature fusion LSTM-CNN model using different representations of the same data[J].2019,14(2):e0212320.