吳 峰,謝 聰,謝春美
(1.南寧師范大學(xué)師園學(xué)院,南寧 530226;2.廣西農(nóng)業(yè)職業(yè)技術(shù)大學(xué),南寧 530005;3.南寧理工學(xué)院,南寧 530007)
股票市場(chǎng)是構(gòu)成國(guó)家經(jīng)濟(jì)的最重要組成部分之一。通過(guò)首次公開(kāi)募股(IPO),公司能夠籌集大量資金來(lái)擴(kuò)展業(yè)務(wù)。但是股市動(dòng)蕩,諸如政治局勢(shì)發(fā)展、公司業(yè)績(jī)以及其他意外事件之類的日常新聞事件會(huì)立即以正面或負(fù)面的方式影響股價(jià)。結(jié)果,不可能準(zhǔn)確地預(yù)測(cè)股票價(jià)格及其方向(漲跌),而投資者只是預(yù)測(cè)即將到來(lái)的短期趨勢(shì)。在過(guò)去幾年中,發(fā)布速度和每日新聞發(fā)布數(shù)量都激增,這淹沒(méi)了投資者徹底評(píng)估如此龐大數(shù)據(jù)量的能力。因此,關(guān)于股票價(jià)格的預(yù)測(cè)必不可少,因?yàn)樗鼤?huì)自動(dòng)評(píng)估并顯示即將到來(lái)的價(jià)格趨勢(shì)的預(yù)測(cè)。目前,常見(jiàn)的股票預(yù)測(cè)方法包括計(jì)量經(jīng)濟(jì)學(xué)方法和機(jī)器學(xué)習(xí)方法。
計(jì)量經(jīng)濟(jì)學(xué)方法是人們使用統(tǒng)計(jì)分析模型基于統(tǒng)計(jì)理論預(yù)測(cè)股票價(jià)格的方法。常用的模型是自回歸滑動(dòng)平均(ARMA),自回歸綜合移動(dòng)平均(ARIMA)和廣義自回歸條件異方差模型(自回歸條件異方差或GRACH)。盡管計(jì)量經(jīng)濟(jì)學(xué)模型更為客觀并具有良好的理論支持,但它們的優(yōu)勢(shì)體現(xiàn)在處理線性數(shù)據(jù)(需要嚴(yán)格的基本假設(shè))和股價(jià)序列(其是一個(gè)復(fù)雜的非線性時(shí)間序列)上,因此無(wú)法獲得最佳的預(yù)測(cè)結(jié)果。
與計(jì)量經(jīng)濟(jì)學(xué)模型相比,機(jī)器學(xué)習(xí)方法被廣泛用于股票價(jià)格預(yù)測(cè),因?yàn)樗鼈兛梢灾苯訌臄?shù)據(jù)中挖掘有價(jià)值的信息,而無(wú)需預(yù)先制定假設(shè),并且可以更好地處理非線性數(shù)據(jù)。常用的機(jī)器學(xué)習(xí)方法包括決策樹(shù),支持向量機(jī)(SVM),支持向量回歸(SVR)和神經(jīng)網(wǎng)絡(luò)。其中,神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)機(jī)制使它們具有更強(qiáng)大的學(xué)習(xí)能力和非線性擬合能力,在股票價(jià)格預(yù)測(cè)領(lǐng)域更具優(yōu)勢(shì)。人們避免通過(guò)在某種程度上優(yōu)化網(wǎng)絡(luò)來(lái)使參數(shù)落入局部解中,并通過(guò)減少輸入數(shù)據(jù)的維數(shù)來(lái)減少訓(xùn)練開(kāi)銷并提高模型的預(yù)測(cè)精度,但是傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)通常具有較差的泛化能力和容易出現(xiàn)過(guò)度擬合之類的問(wèn)題。
近年來(lái),隨著大數(shù)據(jù)技術(shù)的不斷發(fā)展以及計(jì)算機(jī)運(yùn)算能力的提升,深度學(xué)習(xí)技術(shù)受到了國(guó)內(nèi)外學(xué)者的廣泛關(guān)注。與傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)相比,深度學(xué)習(xí)模型層數(shù)更多,特征提取能力更強(qiáng)。以深度神經(jīng)網(wǎng)絡(luò)(Deep Neural Networks,DNN)、卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Net?works,CNN)、循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)等為代表的深度學(xué)習(xí)技術(shù),在股票預(yù)測(cè)領(lǐng)域取得了進(jìn)展。但由于股票數(shù)據(jù)的復(fù)雜性及其存在的長(zhǎng)期依賴問(wèn)題,使傳統(tǒng)的RNN、LSTM模型的預(yù)測(cè)性能無(wú)法進(jìn)一步提升,因此門控循環(huán)神經(jīng)網(wǎng)絡(luò)(Gated Recurrent Neural Network,GRNN)成為了目前股票預(yù)測(cè)的主流模型。
Kim等提出了一種新的混合長(zhǎng)、短期記憶(LSTM)模型來(lái)預(yù)測(cè)股票價(jià)格的波動(dòng)性(GEWLSTM),該模型通過(guò)將神經(jīng)網(wǎng)絡(luò)模型與多個(gè)計(jì)量模型而非單個(gè)計(jì)量模型相結(jié)合,顯著提高了現(xiàn)有文獻(xiàn)的預(yù)測(cè)性能。Baek等基于ModAug?Net框架提出了一種用于股票市場(chǎng)指數(shù)預(yù)測(cè)的新穎數(shù)據(jù)增強(qiáng)方法,該框架包括兩個(gè)模塊:過(guò)度擬合預(yù)防LSTM模塊和預(yù)測(cè)LSTM模塊。在實(shí)驗(yàn)中,使用兩個(gè)不同的代表性股票市場(chǎng)數(shù)據(jù)(S&P500和韓國(guó)綜合股票價(jià)格指數(shù)200(KOSPI200))評(píng)估了模型的性能。Zhang等將神經(jīng)網(wǎng)絡(luò)和BP算法結(jié)合起來(lái)應(yīng)用于股票價(jià)格模式的分類和預(yù)測(cè)。該方法為投資者提供了一定的股票預(yù)測(cè)價(jià)值,使政府在宏觀調(diào)控中更加活躍。Si等提出了一個(gè)新的股票市場(chǎng)預(yù)測(cè)框架NuNet,它可以從超高維時(shí)間序列數(shù)據(jù)中成功學(xué)習(xí)高級(jí)特征,采用了一種小批量抽樣技術(shù)在訓(xùn)練時(shí)抽樣更多的最新數(shù)據(jù),采用了一種新穎的正則化方法用于卷積神經(jīng)網(wǎng)絡(luò)的數(shù)據(jù)增強(qiáng)。實(shí)驗(yàn)結(jié)果表明,NuNet優(yōu)于所有基線模型。
為了進(jìn)一步減小股票價(jià)格的預(yù)測(cè)誤差,本文提出了一種基于差分變異GRU的股票預(yù)測(cè)算法(DMGRU)。該算法通過(guò)引入差分進(jìn)化算法并結(jié)合門控循環(huán)單元(Gated Recurrent Unit,GRU)神經(jīng)網(wǎng)絡(luò)對(duì)標(biāo)普500指數(shù)、上證指數(shù)、A股指數(shù)進(jìn)行預(yù)測(cè)。在實(shí)驗(yàn)中,本文首先分析了DE算法標(biāo)度因子的敏感性以及不同的變異策略和種群規(guī)模對(duì)DMGRU算法的影響,然后通過(guò)與其他算法模型的比較,驗(yàn)證了DMGRU算法的有效性。
GRU屬于LSTM神經(jīng)網(wǎng)絡(luò)的變種,由Chung等首次提出。它較之LSTM,升級(jí)了門控制結(jié)構(gòu),同時(shí)把LSTM里的輸入門、遺忘門整合成了z 門(Update Gate),此外,還用r 門將LSTM的輸出門進(jìn)行了替換。其中,z 主要作用是幫助模型進(jìn)行新輸入信息的過(guò)往數(shù)據(jù)歸納,而r 主要影響前一步驟中狀態(tài)信息輸入模型的概率。因?yàn)樯窠?jīng)網(wǎng)絡(luò)中門的數(shù)量從3個(gè)變成了2個(gè),具體參數(shù)被有效降低了,所以無(wú)形中節(jié)省了訓(xùn)練時(shí)間。
GRU神經(jīng)網(wǎng)絡(luò)的訓(xùn)練公式如下:
從式(1)~(4)能夠獲知:如果r 恒等于1同時(shí)z 等于0的話,GRU將直接演變成簡(jiǎn)潔的RNN模型。
差分進(jìn)化算法(Differential evolution,DE)是Store在1995年提出的一種基于種群演化的群體智能算法。作為一種高效的全局優(yōu)化算法,到目前為止已經(jīng)有了很多DE變異操作,本文主要介紹以下兩種DE變異算子:
算子1:
算子2:
式(7)和(8)中,x代表目標(biāo)個(gè)體,v代表變異個(gè)體,代表種群中最佳個(gè)體。x、x、x和x為除x外的不同的個(gè)體(≠≠≠≠∈[1,],為種群大?。?。參數(shù)用來(lái)控制變異個(gè)體中差分向量的影響。
正常情況下,差分進(jìn)化算法中對(duì)個(gè)體進(jìn)行變異操作后需要進(jìn)行交叉操作及選擇操作,但是這會(huì)在一定程度上增加算法的復(fù)雜度,不利于差分進(jìn)化算法與神經(jīng)網(wǎng)絡(luò)的結(jié)合,為此本文在后續(xù)提出的DMGRU算法中并未使用交叉操作及選擇操作。
從上述兩個(gè)變分公式(7)和(8)可以看出,這些變異運(yùn)算的區(qū)別主要在于差分向量本身,以及差分向量的個(gè)數(shù)。差分進(jìn)化是一種穩(wěn)健的進(jìn)化算法,它可以多種方式與神經(jīng)網(wǎng)絡(luò)相結(jié)合。通過(guò)使用不同的變分算子,差分進(jìn)化可以對(duì)神經(jīng)網(wǎng)絡(luò)具有不同的廣度探索能力和局部開(kāi)發(fā)能力。
到現(xiàn)在為止,利用進(jìn)化算法優(yōu)化神經(jīng)網(wǎng)絡(luò)權(quán)重的研究成果很多。由于神經(jīng)網(wǎng)絡(luò)權(quán)重存在維度災(zāi)難,所以采用小規(guī)模網(wǎng)絡(luò)、多目標(biāo)優(yōu)化、超參數(shù)優(yōu)化、權(quán)重降維等間接進(jìn)化的方式優(yōu)化網(wǎng)絡(luò)權(quán)重?,F(xiàn)在還沒(méi)有通過(guò)差分變異梯度的方式優(yōu)化神經(jīng)網(wǎng)絡(luò)權(quán)重的研究,而變異策略是差分進(jìn)化過(guò)程中非常重要的過(guò)程。選擇合適的變異操作是差分進(jìn)化算法結(jié)合GRU神經(jīng)網(wǎng)絡(luò)進(jìn)行梯度優(yōu)化的關(guān)鍵。GRU神經(jīng)網(wǎng)絡(luò)的權(quán)重維度較多,如果直接使用差分進(jìn)化進(jìn)行變異操作,并不能使進(jìn)化算法的特點(diǎn)發(fā)揮出來(lái)。使用梯度進(jìn)行差分操作,生成新的梯度進(jìn)行權(quán)重更新,可以避免這種現(xiàn)象。這樣一來(lái),不僅可以通過(guò)進(jìn)化生成更好的梯度,還可以更新原有的權(quán)重。因此,本文提出了一種基于差分變異GRU的股票預(yù)測(cè)算法(DMGRU),利用差分進(jìn)化的變異操作來(lái)尋找更好的梯度,用于權(quán)重更新,利用權(quán)重更新后的GRU神經(jīng)網(wǎng)絡(luò)進(jìn)行股票價(jià)格預(yù)測(cè)。
DMGRU模型是一種利用差分進(jìn)化變異算子優(yōu)化GRU梯度的股票預(yù)測(cè)算法。DMGRU模型中的變異操作來(lái)自于差分進(jìn)化算法,下面將詳細(xì)算法實(shí)現(xiàn)過(guò)程。
如圖1所示,首先對(duì)原始股票數(shù)據(jù)進(jìn)行預(yù)處理以進(jìn)行平滑和正則化,將處理后的數(shù)據(jù)切割成多個(gè)批次;然后根據(jù)固定的批次大小將數(shù)據(jù)輸入GRU。從這里開(kāi)始,將執(zhí)行DE算法。第一步是初始化種群,具體地說(shuō),將多個(gè)GRU訓(xùn)練后的梯度組成一個(gè)種群并保存下來(lái),然后利用變異操作將群體中的梯度個(gè)體變異成新的梯度,最后利用變異后的梯度和原始GRU權(quán)值進(jìn)行權(quán)值更新,同時(shí)將更新后的權(quán)值分配給GRU算法進(jìn)行下一輪進(jìn)化。DMGRU模型中的權(quán)值更新采用梯度下降為主、進(jìn)化為輔的策略,使DMGRU在變異算子的指導(dǎo)下找到當(dāng)前權(quán)值更新的最優(yōu)梯度,然后對(duì)GRU算法進(jìn)行優(yōu)化,這樣使得模型的預(yù)測(cè)結(jié)果更加準(zhǔn)確穩(wěn)定。
圖1 DMGRU股票預(yù)測(cè)框架圖
DMGRU模型主要用于預(yù)測(cè)股指次日的收盤價(jià)。具體來(lái)說(shuō),它利用GRU模型的內(nèi)在特征來(lái)學(xué)習(xí)股票數(shù)據(jù)的時(shí)間序列特征,從而在現(xiàn)有規(guī)則的基礎(chǔ)上預(yù)測(cè)次日的收盤價(jià)。在DMGRU模型中,采用多種差分變異算子進(jìn)行變異,變異后的個(gè)體進(jìn)行權(quán)值更新,并將更新后的權(quán)值分配給GRU模型,然后開(kāi)始新一輪的進(jìn)化操作。與原GRU算法不同,DMGRU模型采用變異算子指引,變異個(gè)體(梯度)可以幫助權(quán)重找到更好的值,使生成的股票數(shù)據(jù)更接近真實(shí)值,從而使股票預(yù)測(cè)精度更高,預(yù)測(cè)趨勢(shì)更穩(wěn)定有效。DMGRU模型的算法偽代碼如下。
算法1:DMGRU股票算法
Input:種群大小P,初始權(quán)重,DE中的參數(shù),批次數(shù)據(jù)data ,總批次p
Output:下一日的收盤價(jià)
F=,=
初始化模型權(quán)重
For=1 to p
為驗(yàn)證DMGRU股票預(yù)測(cè)算法的性能,本文使用標(biāo)普500指數(shù)、上證指數(shù)和A股指數(shù)來(lái)進(jìn)行DE算法中伸縮因子F的敏感性分析、不同變異策略和種群規(guī)模大小對(duì)DMGRU的影響分析以及DMGRU算法與其他算法的對(duì)比分析。同時(shí)為了更加全面地評(píng)價(jià)和比較DMGRU算法的性能,采用平均絕對(duì)值誤差()、平均絕對(duì)值百分比誤差()、均方誤差()和R平方()作為實(shí)驗(yàn)結(jié)果的評(píng)價(jià)指標(biāo)。
在實(shí)驗(yàn)中,為了能夠保證DMGRU算法始終有效地進(jìn)行預(yù)測(cè),將種群大小設(shè)為4、6和8,用字母表示。
為了分析DMGRU在不同變異策略和種群規(guī)模下的性能差異,設(shè)計(jì)了一個(gè)新的實(shí)驗(yàn)進(jìn)行比較研究。為了確保不同變異策略和種群大小之間實(shí)驗(yàn)比較的公平性,GRU的參數(shù)完全一致,并且均使用上證指數(shù)進(jìn)行實(shí)驗(yàn)。
從表1可以看出,在不同突變策略和種群規(guī)模下,當(dāng)DMGRU模型采用算子1和算子2的變異策略時(shí),種群數(shù)量選擇4的情況下模型效果最好。隨著種群數(shù)量的增加(=4,6,8),DMGRU模型的性能逐漸下降,這表明在使用算子1和算子2的情況下,DMGRU模型中基于差分變異產(chǎn)生的新的梯度逐漸偏離最優(yōu)解,并且當(dāng)=6時(shí)模型性能開(kāi)始下降。出現(xiàn)這種情況的原因和DMGRU模型的設(shè)計(jì)有關(guān),當(dāng)選擇變異個(gè)體的時(shí)候,未被選中的個(gè)體將會(huì)被拋棄,這會(huì)在一定程度上導(dǎo)致該模型的欠擬合,因此DMGRU模型的種群設(shè)置不能太大。
表1 DMGRU在上證指數(shù)上不同變異策略和種群規(guī)模大小的對(duì)比實(shí)驗(yàn)
此外也可以看出,當(dāng)使用算子2時(shí),DMGRU模型在種群規(guī)模(=4,6,8)下都有相對(duì)于使用算子1時(shí)更好的預(yù)測(cè)結(jié)果。這主要是因?yàn)镈MGRU的設(shè)計(jì)目的在于利用差分進(jìn)化算法的探索能力,雖然算子1和算子2的搜索能力相同(差分向量的個(gè)數(shù)相同),但算子2的探索能力都比算子1好,因此當(dāng)使用運(yùn)算符2時(shí),DMGRU的性能比使用運(yùn)算符1時(shí)要好。
因此,在下面DMGRU算法的訓(xùn)練過(guò)程中將優(yōu)先使用探索能力較強(qiáng)的變異策略(算子2),并且將種群大小設(shè)置為=4。
在DMGRU模型中,伸縮因子是一個(gè)非常重要的參數(shù)。每次變異時(shí),差分向量的可伸縮性由控制,同時(shí)也可以控制種群個(gè)體在權(quán)重空間中的搜索步長(zhǎng)。因此,參數(shù)的選取對(duì)DMGRU模型的性能有很大的影響。
為了研究DMGRU模型中參數(shù)對(duì)模型性能的影響,實(shí)驗(yàn)中分別將設(shè)置為0.1到1.0內(nèi)的值進(jìn)行比較。圖2給出了不同數(shù)據(jù)集(上證指數(shù)、A股指數(shù)、標(biāo)準(zhǔn)普爾500指數(shù))的DMGRU(運(yùn)算符2,=4)模型的性能指標(biāo)。
從圖2可以看出,DMGRU模型對(duì)參數(shù)F是敏感的,不同的數(shù)據(jù)集和模型對(duì)值的敏感度不同。其中,DMGRU對(duì)上證指數(shù)和A股指數(shù)更為敏感,特別是在=1.0時(shí),DMGRU受的影響最大,性能表現(xiàn)最差。這是由于搜索步長(zhǎng)擴(kuò)大導(dǎo)致梯度嚴(yán)重偏離最優(yōu)解附近所致。的值在[0.3,0.6]范圍內(nèi)時(shí),DMGRU模型的性能最優(yōu)。
圖2參數(shù)F對(duì)DMGRU模型的M A E、MAPE和M S E指標(biāo)值的敏感度分析
為驗(yàn)證DMGRU算法的有效性,將DMGRU模型與RNN、LSTM、DMLSTM、GRU模型在不同指數(shù)(上證指數(shù)、A股指數(shù)和標(biāo)準(zhǔn)普爾500指數(shù))上進(jìn)行對(duì)比實(shí)驗(yàn)。表2給出了各個(gè)模型在標(biāo)普500指數(shù)上的評(píng)價(jià)指標(biāo)對(duì)比結(jié)果,圖3、圖4分別給出了各個(gè)模型在上證指數(shù)和A股指數(shù)的評(píng)價(jià)指標(biāo)對(duì)比結(jié)果。
表2 各模型在標(biāo)普500指數(shù)上的評(píng)價(jià)指標(biāo)對(duì)比結(jié)果
圖3 各預(yù)測(cè)模型在上證指數(shù)上的對(duì)比實(shí)驗(yàn)結(jié)果
圖4 各預(yù)測(cè)模型在A股票指數(shù)上的對(duì)比實(shí)驗(yàn)結(jié)果
從表2可以看出,DMGRU在標(biāo)普500指數(shù)上預(yù)測(cè)結(jié)果的評(píng)價(jià)指標(biāo)相對(duì)于RNN、LSTM、DMLSTM、GRU模型分別降低了310、278、204、95,評(píng)價(jià)指標(biāo)相對(duì)于RNN、LSTM、DMLSTM、GRU模型分別降低了0.14、0.11、0.09、0.04,評(píng)價(jià)指標(biāo)相對(duì)于RNN、LSTM、DMLSTM、GRU模型分別降低了3.7、3.41、2.64、1.38,R則都要大于另外四種模型。圖3、圖4中,DMGRU模型在上證指數(shù)和A股指數(shù)上的預(yù)測(cè)結(jié)果同樣優(yōu)于其他模型。分別相對(duì)于GRU和LSTM模型,DMGRU和DMLSTM由于利用了DE算法生成的權(quán)重進(jìn)行預(yù)測(cè),使得預(yù)測(cè)結(jié)果更加準(zhǔn)確,這充分說(shuō)明了DMGRU算法是有效的。
本文提出了一種基于差分變異GRU(DMGRU)梯度的股票預(yù)測(cè)算法。該算法利用DE算法變異操作生成新的梯度來(lái)更新GRU神經(jīng)網(wǎng)絡(luò)的模型權(quán)值。由于變異過(guò)程結(jié)合了不同個(gè)體的梯度,利用變異后的新梯度進(jìn)行權(quán)值更新,使得模型預(yù)測(cè)結(jié)果更加準(zhǔn)確、趨勢(shì)更加穩(wěn)定。在實(shí)驗(yàn)中,本文首先分析了DMGRU模型在不同的變異策略和種群規(guī)模下的預(yù)測(cè)性能,結(jié)果表明,當(dāng)選擇變異算子2和種群規(guī)模為4時(shí),該模型的預(yù)測(cè)效果最好;然后對(duì)DE算法伸縮因子的敏感性進(jìn)行了分析,結(jié)果表明,當(dāng)值在[0.3,0.6]范圍內(nèi)時(shí),該模型具有最好的預(yù)測(cè)性能;最后,將DMGRU模型與RNN、LSTM、DMLSTM和GRU模型在標(biāo)普500指數(shù)、上證指數(shù)和A股指數(shù)上進(jìn)行了對(duì)比預(yù)測(cè)實(shí)驗(yàn),結(jié)果表明,DMGRU模型預(yù)測(cè)效果均是最好的。