孫存浩,胡 兵, 鄒雨軒
(四川大學數(shù)學學院,成都 610064)
隨著計算機計算能力的提升,機器學習及神經(jīng)網(wǎng)絡(luò)在越來越多領(lǐng)域得到應(yīng)用.
神經(jīng)網(wǎng)絡(luò)主要包含BP(back propagation)神經(jīng)網(wǎng)絡(luò),卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural networks, CNN)和循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural network, RNN)等.其中,BP神經(jīng)網(wǎng)絡(luò)已被應(yīng)用于搜索引擎、推薦系統(tǒng)優(yōu)化等方面,CNN被應(yīng)用于圖像識別與目標檢測,而RNN在處理自然語言數(shù)據(jù)等時序信息時也有良好的表現(xiàn).
近年來,神經(jīng)網(wǎng)絡(luò)在金融領(lǐng)域的運用逐漸增加.越來越多的研究者開始使用神經(jīng)網(wǎng)絡(luò)進行金融數(shù)據(jù)處理與預(yù)測.譚朵朵[1]使用BP神經(jīng)網(wǎng)絡(luò)進行了指數(shù)期權(quán)定價,說明BP神經(jīng)網(wǎng)絡(luò)相比傳統(tǒng)BS(black-scholes)公式有更好的適用性,但是沒有考慮期權(quán)價格數(shù)據(jù)的時序性.陳佳等[2-4]針對標的價格的時序特征使用LSTM模型進行了價格預(yù)測,說明LSTM模型在進行金融時序預(yù)測時相比于傳統(tǒng)方法具有更高的預(yù)測精確度,但其僅使用歷史價格作為主要輸入特征,特征維度單一,不能全面地反映市場狀態(tài).文宇[5]提出了CNN-LSTM模型,對金融二級市場數(shù)據(jù)進行分析,根據(jù)標的的歷史價格和成交量信息擴展了更多維度的特征,并用CNN模型進行了空間上的特征提取,但是CNN模型在處理全局性的特征時具有一定的局限性.
考慮到股指數(shù)據(jù)高時序依賴、多組合特征的特點,本文針對股指數(shù)據(jù)的時序特征提出了一種基于BP神經(jīng)網(wǎng)絡(luò)與長短期記憶(long short-term memory, LSTM)神經(jīng)網(wǎng)絡(luò)的BP-LSTM模型.其中,BP神經(jīng)網(wǎng)絡(luò)主要負責對日內(nèi)全局特征進行特征提取與特征組合,將輸入數(shù)據(jù)自適應(yīng)地組合成特征傳入LSTM神經(jīng)網(wǎng)絡(luò);LSTM神經(jīng)網(wǎng)絡(luò)提取特征中的時序特征,在處理具有強時序趨勢的數(shù)據(jù)方面有顯著的效果;該模型最后通過一層帶有sigmoid激活函數(shù)的BP神經(jīng)網(wǎng)絡(luò)將輸出結(jié)果非線性地映射到(0,1)區(qū)間內(nèi),由此對次日股票指數(shù)漲跌情況進行預(yù)測.實證分析的結(jié)果表明,BP-LSTM模型比邏輯回歸、梯度提升樹[6]等傳統(tǒng)預(yù)測方法及LSTM模型等神經(jīng)網(wǎng)絡(luò)方法具有更高預(yù)測準確率.
下圖是一個從生物神經(jīng)元中得到啟發(fā)被設(shè)計出的M-P神經(jīng)元[7]的示意圖.
圖1 M-P神經(jīng)元Fig.1 M-P neural cell
神經(jīng)元正向傳播的過程為
(1)
神經(jīng)元接收n個輸入信號(這些輸入信號帶有一定的權(quán)重進行傳遞),并將接收加權(quán)后的總輸入與該神經(jīng)元的閾值進行對比,通過激活函數(shù)處理產(chǎn)生輸出,把多個這樣的神經(jīng)元按照一定的層次結(jié)構(gòu)連接起來就形成了神經(jīng)網(wǎng)絡(luò).神經(jīng)網(wǎng)絡(luò)理論上可以以任意精度自適應(yīng)非線性逼近連續(xù)函數(shù).1989年,Hecht-Nielsen[8]證明了單隱藏層的BP神經(jīng)網(wǎng)絡(luò)可以逼近閉區(qū)間內(nèi)的任意連續(xù)函數(shù),即萬能逼近定理.
嚴格意義下的激活函數(shù)f應(yīng)為單位階躍函數(shù),它將我們的輸入映為“0”或“1”.然而,由于階躍函數(shù)非連續(xù),我們常用Sigmoid函數(shù)作為激活函數(shù),它將實數(shù)域內(nèi)的輸入映射到(0,1)區(qū)間內(nèi).
在訓練時,神經(jīng)網(wǎng)絡(luò)先輸入數(shù)據(jù)進行正向預(yù)測,再結(jié)合預(yù)測結(jié)果與實際結(jié)果求誤差并進行逆?zhèn)鬟f,通過不斷地以梯度下降的方式調(diào)節(jié)神經(jīng)元中的權(quán)重與閾值,來提高預(yù)測的準確率.
常見的BP神經(jīng)網(wǎng)絡(luò)是形如圖2所示的層級結(jié)構(gòu),每層神經(jīng)元都與下一層的神經(jīng)元完全互連,神經(jīng)元之間不存在同層、跨層連接的情況.在圖2中,輸入層第i個神經(jīng)元與隱層第h個神經(jīng)元間的權(quán)重與隱層第h個神經(jīng)元的閾值分別用vih與γh表示,隱層第h個神經(jīng)元與輸出層第j個神經(jīng)元間的權(quán)重與輸出層第j個神經(jīng)元的閾值分別用ωhj與θj表示,神經(jīng)網(wǎng)絡(luò)的“學習”過程就是根據(jù)輸入的訓練數(shù)據(jù)調(diào)整神經(jīng)元之間的權(quán)重以及閾值.
圖2 單隱層BP神經(jīng)網(wǎng)絡(luò)
Fig.2 Back propagation neural network with one hidden layer
RNN[9-10]是一種特殊的神經(jīng)網(wǎng)絡(luò),它的算法考慮了數(shù)據(jù)中存在的時序信息,具有時間維度,因而常于用被對具有時序規(guī)律的數(shù)據(jù)進行建模.一個常見的RNN結(jié)構(gòu)如圖3所示:每個RNN cell會做定向循環(huán)把某些信息傳到下一個時間的隱藏層中,從而保留數(shù)據(jù)之間的時序關(guān)系,有效處理時序數(shù)據(jù).
然而,RNN在進行循環(huán)的過程中,隨著循環(huán)次數(shù)的增大,反向傳播時往往會出現(xiàn)梯度極大(梯度爆炸)或者梯度極小(梯度消失)的情況,因而無法處理過長的時序信息,否則會忘記較長期的信息.
圖3 RNN網(wǎng)絡(luò)結(jié)構(gòu)和展開結(jié)構(gòu)Fig.3 RNN network structure and expansion
在這種情況下,人們基于RNN的設(shè)計提出了LSTM神經(jīng)網(wǎng)絡(luò).相比于傳統(tǒng)的RNN,LSTN能夠處理更長的信息序列.
LSTM神經(jīng)網(wǎng)絡(luò)是RNN的一種變體,最早由Hochreiter與Schmidhuber在1997年提出[11],設(shè)計初衷是解決神經(jīng)網(wǎng)絡(luò)中的長期依賴問題.LSTM神經(jīng)網(wǎng)絡(luò)針對很多時序中間隔和延遲較長的問題(例如語音識別、智能問答、機器翻譯、視頻分類及情感分析等)都有較好的表現(xiàn),此外它還可用于服務(wù)器響應(yīng)時間預(yù)測[12].LSTM神經(jīng)網(wǎng)絡(luò)的基本結(jié)構(gòu)與RNN的結(jié)構(gòu)類似,如圖4所示.
圖4 LSTM網(wǎng)絡(luò)結(jié)構(gòu)Fig.4 Structure of LSTM network
我們將數(shù)據(jù)與特征傳入一個BP神經(jīng)網(wǎng)絡(luò),通過神經(jīng)網(wǎng)絡(luò)進行特征重組合,然后將重組后的特征輸出到LSTM網(wǎng)絡(luò)中來提取數(shù)據(jù)在時間序列上的特征,最終通過有一個帶Sigmoid激活函數(shù)的神經(jīng)元進行分類結(jié)果輸出.這就是BP-LSTM模型,見圖5.
3.1.1 數(shù)據(jù)收集與特征選擇 數(shù)據(jù)的收集與特征的選擇對一個模型的表現(xiàn)至關(guān)重要.合適的特征處理不僅可以提高模型的準確率,還可以加快收斂速度.根據(jù)金融相關(guān)知識,我們將數(shù)據(jù)特征分為兩類:(i)上證指數(shù)的交易數(shù)據(jù),主要是指數(shù)的開、高、低、收與交易量等指標;(ii)相關(guān)的技術(shù)指標,基于統(tǒng)計學的研究,以數(shù)據(jù)來論證股票的趨向、買點賣點,較好地量化市場狀態(tài).我們所用的指標主要是基于歷史數(shù)據(jù)走勢計算出的KDJ、MACD、BIAS、AMA、MOM以及部分根據(jù)個人經(jīng)驗設(shè)計的指標,共25維,按照時間順序有序傳入模型進行預(yù)測.
圖5 BP-LSTM模型結(jié)構(gòu)示意圖
對收集的數(shù)據(jù)及數(shù)值特征還進行了如下的歸一化處理.考慮到部分特征非負的特點,利用特征數(shù)據(jù)的最大值與最小值,將特征的值縮放到[0,1]區(qū)間:
(2)
需要注意的是,此處歸一化使用的最大值與最小值均為訓練集中數(shù)據(jù).在測試集上進行測試時,也根據(jù)訓練集數(shù)據(jù)進行歸一化,有效防止數(shù)據(jù)泄露問題(即在當前時間可以獲得未來的數(shù)據(jù)).此類歸一化作用不僅可以增強模型在小方差數(shù)據(jù)集上的穩(wěn)定性,還可以維持稀疏特征中為0的樣本.實驗結(jié)果也顯示帶有預(yù)先數(shù)據(jù)歸一化的模型預(yù)測表現(xiàn)較不帶預(yù)先歸一化的模型更好.
3.1.2 構(gòu)建用于特征處理的全連接神經(jīng)網(wǎng)絡(luò) 全連接神經(jīng)網(wǎng)絡(luò)可以全局接收傳入模型的n維的數(shù)據(jù)與特征,通過單層含有m個神經(jīng)元的全連接神經(jīng)網(wǎng)絡(luò)作用輸出m維數(shù)據(jù),以此來進行特征提取與特征降維(當m 3.1.3 構(gòu)建處理時序數(shù)據(jù)的長短期記憶網(wǎng)絡(luò) 長短期記憶網(wǎng)絡(luò)將全連接神經(jīng)網(wǎng)絡(luò)的輸出按日期順序傳入長短期記憶網(wǎng)絡(luò)中進行訓練,有效處理時間序列問題與循環(huán)神經(jīng)網(wǎng)絡(luò)不同,長短期記憶網(wǎng)絡(luò)可以學習更長的時間序列數(shù)據(jù).我們分別對7天、15天的歷史數(shù)據(jù)集進行了建模預(yù)測,證明更長的數(shù)據(jù)周期對長短期記憶網(wǎng)絡(luò)模型的預(yù)測準確度有較明顯的提升.我們主要使用的是帶64個cell的長短期記憶網(wǎng)絡(luò)模型,即經(jīng)過神經(jīng)網(wǎng)絡(luò)處理會輸出64維的輸出特征. 3.1.4 構(gòu)建用于數(shù)據(jù)輸出的神經(jīng)元 數(shù)據(jù)輸出由單個神經(jīng)元負責.它接收長短期記憶網(wǎng)絡(luò)輸出的64維特征.將其與自帶權(quán)重及閾值進行線性組合,通過Sigmoid激活函數(shù)將結(jié)果映射到(0,1)區(qū)間內(nèi)即為對下一日上證指數(shù)漲跌的預(yù)測結(jié)果. 本次實驗所用數(shù)據(jù)為1991年3月4日至2018年12月27日上證指數(shù)價量數(shù)據(jù)(數(shù)據(jù)來源:Tushare).其中,前80%交易日的數(shù)據(jù)作為訓練集與驗證集,后20%交易日的數(shù)據(jù)作為測試集,以保證測試數(shù)據(jù)在天級別的連續(xù)性.經(jīng)統(tǒng)計,訓練集與測試集中正、反例分布均勻,沒有數(shù)據(jù)傾斜情況.我們選用的Adam優(yōu)化器[14]比傳統(tǒng)的基于梯度下降的SGD優(yōu)化器具有更快的收斂速度,并且可以根據(jù)數(shù)據(jù)分布自適應(yīng)調(diào)整學習率.模型選用的損失函數(shù)為: (3) 為防止過擬合問題,除了在長短期記憶網(wǎng)絡(luò)的輸出層加入Dropout層[15]之外,我們還在訓練過程中加入了Early Stopping[16]處理,使模型僅保留在驗證集上最佳表現(xiàn)的參數(shù). 圖6為BP-LSTM網(wǎng)絡(luò)的模型架構(gòu). 在特征工程環(huán)節(jié)我們選取25個維度的技術(shù)指標反映市場狀態(tài),并用有25個隱藏層的BP神經(jīng)網(wǎng)絡(luò)對特征進行自適應(yīng)組合,然后將原始輸入特征進行組合后傳入LSTM神經(jīng)網(wǎng)絡(luò)進行時序信息學習.LSTM神經(jīng)網(wǎng)絡(luò)作為RNN的變體對時序問題同樣有好的學習能力,且多個門的設(shè)計有效解決了梯度消失與梯度爆炸的問題,對學習長時間序列數(shù)據(jù)有更好的作用.最后,我們通過單個含有Sigmoid激活函數(shù)的神經(jīng)元對數(shù)據(jù)進行非線性輸出.BP-LSTM模型的訓練同樣通過反向傳播完成,模型中的每個參數(shù)都可以通過反向傳播計算梯度進行更新.為了防止訓練停止在局部最小值點,我們使用Adam優(yōu)化器代替SGD.這也是一個效果很好的優(yōu)化算法. 圖6 BP-LSTM模型架構(gòu)圖 模型評估使用的指標是預(yù)測的準確率與F1值,計算方式如表1所示. 表1 評估指標 其中TP、TN、FP和FN可以通過圖7的混淆矩陣得到. 圖7 混淆矩陣Fig.7 Confusion matrix 實驗主要分為三類,分別為:在相同的數(shù)據(jù)集上構(gòu)建傳統(tǒng)的邏輯回歸模型和梯度決策樹模型,普通LSTM模型及帶有初始數(shù)據(jù)歸一化(表中以processing標示)的BP-LSTM模型.各模型預(yù)測準確率與F1值如表2所示. 表2 不同模型的預(yù)測結(jié)果 對比各項指標,基于較長期數(shù)據(jù)的BP-LSTM模型在上證指數(shù)趨勢預(yù)測方面具有更高的準確率.實驗表明BP-LSTM模型是一種比較有效的方法. 本文提出了基于BP神經(jīng)網(wǎng)絡(luò)與LSTM神經(jīng)網(wǎng)絡(luò)的BP-LSTM模型,模型相比于傳統(tǒng)的機器學習模型及普通的LSTM神經(jīng)網(wǎng)絡(luò)具有更高的預(yù)測準確率.當然,鑒于本文所使用的數(shù)據(jù)及特征全部基于上證指數(shù)歷史價量數(shù)據(jù),缺乏更多維度的特征(如市場情緒、宏觀決策等),在后續(xù)研究中我們還可以收集互聯(lián)網(wǎng)上股民留言數(shù)據(jù),使用LSTM網(wǎng)絡(luò)進行市場情緒分析,然后加入本文的特征數(shù)據(jù)集中,以得到準確率更高的結(jié)果.3.2 模型訓練與預(yù)測
3.3 模型分析與評估
3.4 數(shù)值實驗
4 總 結(jié)