梁達(dá)正
摘 ? 要:基于貝葉斯集成神經(jīng)網(wǎng)絡(luò)原理,構(gòu)建出一個貝葉斯集成長短記憶神經(jīng)網(wǎng)絡(luò)。使用該集成網(wǎng)絡(luò)對我國上證50指數(shù)進(jìn)行預(yù)測。實驗選取2015—2018年近3年來的數(shù)據(jù)進(jìn)行集成學(xué)習(xí)預(yù)測。結(jié)果證明貝葉斯集成長短記憶神經(jīng)網(wǎng)絡(luò)要優(yōu)于集成循環(huán)神經(jīng)網(wǎng)絡(luò)與集成長短記憶神經(jīng)網(wǎng)絡(luò)。為了使貝葉斯集成神經(jīng)網(wǎng)絡(luò)更好的運(yùn)用到時間序列預(yù)測上,本文提出一種貝葉斯集成長短記憶神經(jīng)網(wǎng)絡(luò)來進(jìn)行金融時間序列學(xué)習(xí)。
關(guān)鍵詞:貝葉斯 ?集成學(xué)習(xí) ?神經(jīng)網(wǎng)絡(luò)
中圖分類號:TP183 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 文獻(xiàn)標(biāo)識碼:A ? ? ? ? ? ? ? ? ? ? ? 文章編號:1674-098X(2019)06(b)-0142-03
隨著科技的發(fā)展,計算機(jī)性能的不斷提升,計算機(jī)的計算能力的大幅增長,作為機(jī)器學(xué)習(xí)的重要分支——神經(jīng)網(wǎng)絡(luò)正在不斷的發(fā)展。人工神經(jīng)網(wǎng)絡(luò)在以時間序列為主的金融領(lǐng)域大展身手,對時間序列預(yù)測上占有重要地位。
1958年,Rosenblatt提出了首個實際的人工神經(jīng)網(wǎng)絡(luò)模型——感知機(jī)。1988年,White等最早利用神經(jīng)網(wǎng)絡(luò)來預(yù)測普通股每日報酬率。1997年,Hochreiter與Schmidhuber提出了LSTM(Long Short-Term Memory)長短記憶神經(jīng)網(wǎng)絡(luò),一種利用記憶功能來增強(qiáng)人工神經(jīng)網(wǎng)絡(luò)。2009年,Yang通過貝葉斯正則化BP神經(jīng)網(wǎng)絡(luò)對股票指數(shù)進(jìn)行預(yù)測,得到比其他改進(jìn)算法更好的泛化能力。2015年,Shun通過對BP、RNN與LSTM三種模型對國內(nèi)外股指的研究對比,得出LSTM模型在時間序列預(yù)測上更為準(zhǔn)確并且利用擬牛頓法原理改進(jìn)神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)速率。為了使貝葉斯集成神經(jīng)網(wǎng)絡(luò)更好的運(yùn)用到時間序列預(yù)測上,本文提出一種貝葉斯集成長短記憶神經(jīng)網(wǎng)絡(luò)來進(jìn)行金融時間序列學(xué)習(xí)。
1 ?神經(jīng)網(wǎng)絡(luò)
1.1 傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò)
人工神經(jīng)網(wǎng)絡(luò)由大量神經(jīng)元相互連接而成,每個神經(jīng)元看作一個激活函數(shù)。
BP神經(jīng)網(wǎng)絡(luò)是一種按照誤差反向傳播訓(xùn)練的多層信息前向傳遞的神經(jīng)網(wǎng)絡(luò)。一般BP神經(jīng)網(wǎng)絡(luò)分為三層:輸入層、隱藏層與輸出層。第一層為輸入層,最后一層(L層)為輸出層,中間的(2至L-1)層為隱藏層。
第l隱藏層的神經(jīng)元輸出為,其中mL為第l隱藏層的神經(jīng)元個數(shù)。設(shè)為從l-1層第j個神經(jīng)元與l層第i個神經(jīng)元之間的連接權(quán)重;bil為第l層第i個神經(jīng)元的偏置,f()為激活函數(shù)那么:
輸出層的神經(jīng)元輸出為,為隱藏層神經(jīng)元與輸出層神經(jīng)元之間的連接權(quán)重,bj為輸出層yj神經(jīng)單元的偏置。fy()為激活函數(shù)。
反向傳播算法是LMS算法的推廣,兩個算法都使用均方誤差作為性能指標(biāo)。和LMS算法一樣,用下式近似表示均方誤差:
近似均方誤差的最速下降算法(隨機(jī)梯度下降)為:
其中α是學(xué)習(xí)率。
1.2 LSTM神經(jīng)網(wǎng)絡(luò)
在機(jī)器學(xué)習(xí)中,CNN(卷積神經(jīng)網(wǎng)絡(luò))在分類問題上表現(xiàn)出色,在解決分類問題的判斷要優(yōu)于大部分分類模型,但是無法理解輸入信息中所含有的序列信息。當(dāng)輸入的信息為時間序列或序列數(shù)據(jù)時,其中含有復(fù)雜的時序關(guān)聯(lián)。RNN(循環(huán)神經(jīng)網(wǎng)絡(luò))模型正是解決時序問題誕生的,RNN具有“記憶”能力,能保留輸入信息前后的關(guān)聯(lián)。但是隨著時間的推移,神經(jīng)網(wǎng)絡(luò)的誤差函數(shù)的梯度呈指數(shù)增長或下降,從而導(dǎo)致梯度爆炸或梯度消失。
LSTM(長短記憶神經(jīng)網(wǎng)絡(luò)),一種特殊的RNN網(wǎng)絡(luò),能有效的解決梯度爆炸或梯度消失的問題。
LSTM模型中的一個LSTM單元中有一個cell負(fù)責(zé)將可能需要的信息進(jìn)行儲存,而儲存那些信息并將需要的信息輸入到下一個LSTM單元則由門來決定。這些門是邏輯單元,每個LSTM單元有三個門——遺忘門,輸入門與輸出門。
遺忘門負(fù)責(zé)控制遺忘上層的隱藏細(xì)胞信息。上一個LSTM單元的隱藏狀態(tài)ht-1與該單元的輸入xt通過一個激活函數(shù)輸出隱藏門的ft。
ft等于1時,記憶單元的保存信息,ft等于0時,記憶單元會遺忘之前的信息。
輸入門由兩部分組成
然后更新細(xì)胞狀態(tài)Ct,通過遺忘門處理上一個細(xì)胞狀態(tài)Ct-1
更新完細(xì)胞狀態(tài)Ct后,到了輸出門
生成新的隱藏狀態(tài)ht然后輸入結(jié)果與傳入下一個LSTM單元。
2 ?基于貝葉斯集成長短記憶神經(jīng)網(wǎng)絡(luò)
2.1 貝葉斯公式
貝葉斯學(xué)派認(rèn)為, 先驗分布反映了試驗前對總體參數(shù)分布的認(rèn)識, 在獲得樣本信息后, 對這個認(rèn)識有了改變, 其結(jié)果就反映在后驗分布中, 即后驗分布綜合了先驗分布和樣本的信息。
貝葉斯公式:
P(A)是A的先驗概率或邊緣概率。稱為先驗是因為與B無關(guān)不受事件B影響。
P(A|B)是已知B為條件的A的條件概率,也由于得自B的取值而被稱作A的后驗概率。
P(B|A)是已知A為條件的B的條件概率,也由于得自A的取值而被稱作B的后驗概率。
P(B)是B的先驗概率或邊緣概率。
集成學(xué)習(xí)提供了一種估計不確定性的方法:它將多個獨立神經(jīng)網(wǎng)絡(luò)的估計集合起來,這些神經(jīng)網(wǎng)絡(luò)由不同的初始化方法訓(xùn)練而成,有時還在訓(xùn)練數(shù)據(jù)的噪聲上訓(xùn)練。集成預(yù)測的方差可以解釋為其不確定性。最吸引人的是,集成方法可以很好地擴(kuò)展到大量參數(shù)設(shè)置上,并且每個獨立的神經(jīng)網(wǎng)絡(luò)都以一般的方式精確的訓(xùn)練出來。但是缺點是一般的集成算法不是基于貝葉斯的。不利于集成學(xué)習(xí)的不確定性量化。
對于單個神經(jīng)網(wǎng)絡(luò),正則化可以防止過擬合。但是當(dāng)進(jìn)行集成學(xué)習(xí)時,正則化會產(chǎn)生不好的結(jié)果,因為它鼓勵集成中的所有神經(jīng)網(wǎng)絡(luò)使用相同的單一解決方案。因此,對通常的集成學(xué)習(xí)過程的修正,從先驗分布中提取值的參數(shù)的正則化。為不確定性量化提供了一種實用的、可擴(kuò)展的方法。
過程的修正通過loss函數(shù)。
2.2 貝葉斯集成神經(jīng)網(wǎng)絡(luò)算法
Input 訓(xùn)練數(shù)據(jù)集X_train&Y_train、測試數(shù)據(jù)集X_val&y_val、先驗均值、先驗協(xié)方差,集成學(xué)習(xí)器數(shù)量N、數(shù)據(jù)噪聲方差估計。
Output 預(yù)測值
#設(shè)置正則化矩陣
#訓(xùn)練集成模型
For i in range(N)
通過μ0與對NNi神經(jīng)網(wǎng)絡(luò)進(jìn)行初始化
初始化參數(shù)
NNi神經(jīng)網(wǎng)絡(luò)帶入()
End for
For i in range(N)
End for
Return
為了更好地對時間序列進(jìn)行預(yù)測,將貝葉斯集成神經(jīng)網(wǎng)絡(luò)(BNN)改進(jìn)為貝葉斯集成長短記憶網(wǎng)絡(luò)(BLSTM)。
通過μ0與對LSTMi神經(jīng)網(wǎng)絡(luò)進(jìn)行初始化
初始化參數(shù)
LSTMi神經(jīng)網(wǎng)絡(luò)帶入()
End for
For i in range(N)
3 ?實驗分析
本文使用的數(shù)據(jù)為上證50是日數(shù)據(jù),由2015年1月1日—2018年12月31日的時間長度。考慮到LSTM模型使用到步長,取其中的900個數(shù)據(jù)作為實驗用數(shù)據(jù)。其中訓(xùn)練集為80%,即720個,測試集為后20%,即180個數(shù)據(jù)。自變量為上證50漲跌幅的分判定。自變量為上證50的當(dāng)天收盤價,最高價,最低價,開盤價,成交量,量比,KDJ的K,D,J指標(biāo)與MACD指標(biāo)。自變量做歸一化處理。
根據(jù)樣本結(jié)果與真實值分以下四種:
TP——真正例:預(yù)測為正例,真實為正例。
FN——假反例:預(yù)測為反例,真實為正例。
FP——假正例:預(yù)測為正例,真實為反例。
TN——真反例:預(yù)測為反例,真實為反例。
查準(zhǔn)率P為:
查全率R為:
神經(jīng)網(wǎng)絡(luò)的參數(shù)設(shè)置LSTM模型的步長為5,集成學(xué)習(xí)器數(shù)量為5,LSTM模型的隱藏層單元數(shù)量為128,分塊數(shù)量batch為360,即將測試集分為兩塊,學(xué)習(xí)度為0.005。隱藏層第一層的初始權(quán)重為,隱藏層第二層的初始權(quán)重。數(shù)據(jù)噪聲為0.001。
由表1可以看出集成LSTM神經(jīng)網(wǎng)絡(luò)要優(yōu)于集成RNN神經(jīng)網(wǎng)絡(luò),而貝葉斯集成LSTM神經(jīng)網(wǎng)絡(luò)要比集成LSTM神經(jīng)網(wǎng)絡(luò)與集成RNN神經(jīng)網(wǎng)絡(luò)。貝葉斯集成LSTM神經(jīng)網(wǎng)絡(luò)與集成LSTM神經(jīng)網(wǎng)絡(luò)上,在正確率有1.14%的提升,在查準(zhǔn)率有1.10%的提升,查全率有2.02%的提升,AUC有1.12%的提升。
4 ?結(jié)語
一個貝葉斯集成長短記憶神經(jīng)網(wǎng)絡(luò)。使用該集成網(wǎng)絡(luò)對我國上證50指數(shù)進(jìn)行預(yù)測。通過實驗驗證了正確率,查準(zhǔn)率,查全率與AUC指標(biāo)得出以下記錄:
(1)3種集成神經(jīng)網(wǎng)絡(luò)的正確率與AUC都大于50%,證明集成神經(jīng)網(wǎng)絡(luò)對上證50的預(yù)測有參考價值。
(2)貝葉斯集成LSTM神經(jīng)網(wǎng)絡(luò)與集成LSTM神經(jīng)網(wǎng)絡(luò)上,在正確率有1.14%的提升,在查準(zhǔn)率有1.10%的提升,查全率有2.02%的提升,AUC有1.12%的提升。證明結(jié)合貝葉斯后的集成LSTM神經(jīng)網(wǎng)絡(luò)要優(yōu)于一般的集成神經(jīng)網(wǎng)絡(luò)。
參考文獻(xiàn)
[1] 楊海深,傅紅卓.基于貝葉斯正則化BP神經(jīng)網(wǎng)絡(luò)的股票指數(shù)預(yù)測[J].科學(xué)技術(shù)與工程,2009,9(12):3306-3310,3318.
[2] 田凱,孫永泰,高慧,等.貝葉斯算法BP神經(jīng)網(wǎng)絡(luò)缺陷量化研究[J].中國測試,2014,40(3):93-97.
[3] 孫瑞奇. 基于LSTM神經(jīng)網(wǎng)絡(luò)的美股股指價格趨勢預(yù)測模型的研究[D].首都經(jīng)濟(jì)貿(mào)易大學(xué),2016.