馬 川, 廖柏林, 周 俊, 周元玲, 毛凱文
證券市場是一個充滿魅力的市場,每位投資者都想從證券交易中獲取高額利潤.但是,證券市場是一個典型的具有隨機性、時變、波動性較大的非線性系統(tǒng),難以建立精確的數(shù)學(xué)模型.多年來,人們一直在尋找有效方法以實現(xiàn)對證券市場的精確預(yù)測[1-3].許多學(xué)者采用傳統(tǒng)回歸分析和時間序列方法對證券市場進行了預(yù)測和分析,通過證券價格的歷史時間序列挖掘其變化趨勢[4-7].然而這些傳統(tǒng)方法并不能描述實際證券市場的非線性情況,其預(yù)測結(jié)果也不理想.20世紀(jì)80年代以來,神經(jīng)網(wǎng)絡(luò)算法得到了快速發(fā)展和廣泛應(yīng)用[8-11].由于神經(jīng)網(wǎng)絡(luò)具有自組織、自學(xué)習(xí)能力,不需要考慮數(shù)學(xué)模型的內(nèi)部結(jié)構(gòu),可以對非線性系統(tǒng)進行無限逼近和擬合,為證券市場預(yù)測和分析的深入研究開拓了新的空間[12-13].常有的神經(jīng)網(wǎng)絡(luò)預(yù)測方法有BP神經(jīng)網(wǎng)絡(luò)、SVM和小波網(wǎng)絡(luò)等.但由于每種網(wǎng)絡(luò)模型本身的問題,使得其效果不佳.權(quán)值與結(jié)構(gòu)直接確定(WASD)的神經(jīng)網(wǎng)絡(luò)作為一種新型的前向神經(jīng)網(wǎng)絡(luò),通過偽逆直接確定網(wǎng)絡(luò)權(quán)值,減少了迭代過程,避免了訓(xùn)練速度慢、過擬合、局部極值等缺陷,具有訓(xùn)練速度快,全局最優(yōu)和泛化能力優(yōu)異等特點[14-18].針對上證指數(shù)預(yù)測問題,本文提出了一種多輸入單輸出、正弦激勵的WASD神經(jīng)網(wǎng)絡(luò)模型,并對該模型的權(quán)值和結(jié)構(gòu)確定方法進行了理論分析.最后,我們利用1991年12月20日至2016年10月12日的數(shù)據(jù)對WASD神經(jīng)網(wǎng)絡(luò)進行訓(xùn)練,并對其后10天的上證指數(shù)進行預(yù)測.將本文預(yù)測結(jié)果與現(xiàn)有的BP神經(jīng)網(wǎng)絡(luò)和SVM神經(jīng)網(wǎng)絡(luò)的預(yù)測結(jié)果進行對比,結(jié)果顯示本文所提的正弦激勵的WASD神經(jīng)網(wǎng)絡(luò)具有更好的預(yù)測性能.
本文采用的WASD神經(jīng)網(wǎng)絡(luò)是一種三層前向神經(jīng)網(wǎng)絡(luò),其模型如圖1所示.使用單極性正弦函數(shù)作為激勵函數(shù),輸入層神經(jīng)元閥值為0,輸入層神經(jīng)元到隱含層神經(jīng)元的連接權(quán)值w∈[χ1,ζ1]和隱含層神經(jīng)元的閥值β∈[χ2,ζ2],χ1,ζ1,χ2,ζ2 取值可相同也可不相同.在輸入層神經(jīng)元到隱含層神經(jīng)元連接權(quán)值確定的條件下,隱含層神經(jīng)元到輸出層神經(jīng)元連接權(quán)值通過偽逆直接一步算出.
圖1 正弦激勵的WASD神經(jīng)網(wǎng)絡(luò)模型
輸入層神經(jīng)元到隱含層神經(jīng)元的權(quán)值和隱含層的閥值通過隨機確定,其隨機范圍常通過試錯法確定.第n個輸入在第m個隱含層的輸出為hm,n,hm,n通過以下公式計算
所有的輸入通過公式(1)計算得到矩陣H,如下
其中N為樣本數(shù),M為隱含層神經(jīng)元數(shù).
隱含層到輸出層神經(jīng)元的連接權(quán)值μ可以通過公式(2)一步直接確定
其中H+為矩陣H的偽逆,δ為學(xué)習(xí)目標(biāo)樣本所構(gòu)成的列向量.
本文設(shè)定誤差為E,其確定方式如式(3)
其中δn為第n天上證指數(shù)開盤的實際值,μm為第m隱層神經(jīng)元到輸出層的連接權(quán)值.
為了提高神經(jīng)網(wǎng)絡(luò)的穩(wěn)定性和防止過擬合現(xiàn)象的發(fā)生,我們在引入加權(quán)誤差Etol,在神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)同時進行內(nèi)部校驗,并按照式(3)計算得到學(xué)習(xí)誤差Etra以及內(nèi)部校驗誤差Evol.通過(4)式計算出加權(quán)誤差Etol
圖2 權(quán)值與結(jié)構(gòu)確定算法流程圖
并將加權(quán)誤差Etol用于后續(xù)神經(jīng)網(wǎng)絡(luò)最優(yōu)結(jié)構(gòu)的確定.其中,α為用于學(xué)習(xí)的樣本數(shù)在整個訓(xùn)練樣本中所占的比例.
對于網(wǎng)絡(luò)的結(jié)構(gòu),我們使用邊增邊刪原則.以加權(quán)誤差Etol為增刪神經(jīng)元標(biāo)準(zhǔn),并設(shè)定最大的重置次數(shù)max.先逐個增加隱含層神經(jīng)元,當(dāng)Etol不再下降時,重置新增的神經(jīng)元(即重新給定該神經(jīng)元的閥值以及輸入層到隱含層的連接權(quán)值),如果更換次數(shù)達到max(設(shè)定的最大重置次數(shù))次仍不能使Etol下降,則停止,此即為最優(yōu)的WASD神經(jīng)網(wǎng)絡(luò)預(yù)測結(jié)構(gòu).具體流程圖如圖2所示.
本文采用了1990.12.20-2016.10.12期間內(nèi)6 312個交易日每日上證綜合指數(shù)的6種指標(biāo)(開盤價、收盤價、最高價、最低價、成交量和成交金額)用于訓(xùn)練,并對2016年10月12日后面10個工作日的上證指數(shù)進行預(yù)測(本文數(shù)據(jù)來源于http://quotes.money.163.com/trade/lsjysj_zhishu_000001.html).其中我們設(shè)置訓(xùn)練中的最大重置次數(shù)max=10、100、1000,用于討論max的設(shè)定對網(wǎng)絡(luò)預(yù)測精度和穩(wěn)定性的影響.然后我們在常采用的6種指標(biāo)的基礎(chǔ)上進行加減指標(biāo)來確定哪些指標(biāo)是最有使用價值的指標(biāo),使正弦激勵的WASD神經(jīng)網(wǎng)絡(luò)的性能發(fā)揮到極致.
將原始數(shù)據(jù)進行歸一化,使得數(shù)據(jù)分布在[-1,1]區(qū)間內(nèi),取消各維度數(shù)量級差別,避免應(yīng)輸入輸出數(shù)量級差異太大而造成網(wǎng)絡(luò)預(yù)測誤差較大和網(wǎng)絡(luò)的不穩(wěn)定性.在使用時,將數(shù)據(jù)進行反歸一化.
本文將訓(xùn)練數(shù)據(jù)中前5 812個數(shù)據(jù)用來學(xué)習(xí),后500個用來內(nèi)部校驗(即α=5812/6312).在訓(xùn)練時,按照(3)式和(4)式同時計算出學(xué)習(xí)誤差、校驗誤差和加權(quán)誤差.我們以加權(quán)誤差為判斷標(biāo)準(zhǔn),每次增加一個神經(jīng)元,直到加權(quán)誤差增大時重置該隱含層神經(jīng)元.待重置次數(shù)大于預(yù)先設(shè)定的重置次數(shù)max式,仍然大于前面的誤差時,訓(xùn)練結(jié)束.在整個訓(xùn)練中,各誤差隨著隱含層神經(jīng)元個數(shù)的增加而變化情況展示在圖3中.圖中,我們展現(xiàn)的是最大重置次數(shù)max=1000時的情況,可以觀察到通過逐個添加隱藏層神經(jīng)元,加權(quán)誤差先下降,然后開始上升,在轉(zhuǎn)折點(即,隱含層神經(jīng)元個數(shù)等于28個)處即為正弦激勵的WASD神經(jīng)網(wǎng)絡(luò)的最優(yōu)結(jié)構(gòu).因此,最優(yōu)結(jié)構(gòu)為隱含層神經(jīng)元個數(shù)等于28個.
在實驗時,我們發(fā)現(xiàn)最大重置次數(shù)的設(shè)置對我們預(yù)測的精度和穩(wěn)定性有很大的影響.為此,我們對其進行了探討.我們將最大重置次數(shù)max分別設(shè)置為10次、100次和1 000次進行實驗,同時對后面的10天進行了預(yù)測,并按(3)式計算出它們的誤差.為了避免偶然誤差,我們對每類實驗重復(fù)進行了5次,并記錄了相關(guān)實驗數(shù)據(jù),由于篇幅有限,本文將5次數(shù)據(jù)進行了平均處理,其數(shù)據(jù)見表1.
圖3 隱含層神經(jīng)元個數(shù)和各誤差的關(guān)系
表1 WASD神經(jīng)網(wǎng)絡(luò)性能和重置次數(shù)的關(guān)系
圖4 正弦激勵的WASD神經(jīng)網(wǎng)絡(luò)的預(yù)測結(jié)果
從表1我們可以得出:隨著重置次數(shù)的增加,隱含層神經(jīng)元的個數(shù)也隨之增加,而預(yù)測誤差呈數(shù)量級的減小.由此也可得出,前面隨機設(shè)置的w和β這兩個參數(shù)對網(wǎng)絡(luò)性能的影響也在減小.但值得指出的是,重置次數(shù)增加,訓(xùn)練時間也將增加,為此我們需根據(jù)實際需要合理選擇重置次數(shù),本文采用的重置次數(shù)max=1000.圖4為采用6種指標(biāo)作為輸入,正弦激勵的WASD神經(jīng)網(wǎng)絡(luò)對上證指數(shù)的預(yù)測結(jié)果.
從圖4可以看出預(yù)測結(jié)果與實際值基本重合,由此可知預(yù)測結(jié)果非常準(zhǔn)確.為了更直觀的看出預(yù)測結(jié)果與實際值的差異,我們定義預(yù)測的絕對誤差為
Actual_E=yn-δn(5)
其中yn為第n天的預(yù)測值.我們將這10天的絕對誤差展示在圖5中.從圖5可以看出正弦激勵的WASD神經(jīng)網(wǎng)絡(luò)預(yù)測的絕對誤差A(yù)ctual_E在3以內(nèi),進一步說明了本文所提神經(jīng)網(wǎng)絡(luò)的預(yù)測精度非常高.
對上證指數(shù)的預(yù)測時所用的輸入變量一般使用開盤價、收盤價、最高價、最低價、成交量和成交金額這6個指標(biāo).但是,上證指數(shù)的指標(biāo)不僅僅只有6種,實際上共有9種數(shù)據(jù).為了驗證和避免因訓(xùn)練時使用的輸入變量個數(shù)和類型的不準(zhǔn)確而造成預(yù)測結(jié)果的不精確,我們在常規(guī)6種數(shù)據(jù)的基礎(chǔ)上進行了增刪.然后分別進行了實驗,為了減少和避免偶然誤差,我們對每類實驗重復(fù)進行了5次.由于篇幅限,我們在對數(shù)據(jù)進行了平均處理,并將結(jié)果展示在表2中.
通過表2,我們可以發(fā)現(xiàn)不同的輸入類型,其預(yù)測精度和訓(xùn)練時間都不同.預(yù)測精度最高的為輸入類型1和2,而最差的為輸入類型6.此外,輸入類型1的訓(xùn)練時間最短.這也表明了本文所采用的數(shù)據(jù)輸入類型的正確性.
圖5 正弦激勵的WASD神經(jīng)網(wǎng)絡(luò)預(yù)測的實際誤差
表2 WASD神經(jīng)網(wǎng)絡(luò)性能和不同輸入類型的關(guān)系
圖6 正弦激勵的WASD、BP和SVM預(yù)測的實際誤差對比結(jié)果
為了進一步說明正弦激勵的WASD神經(jīng)網(wǎng)絡(luò)在上證指數(shù)預(yù)測中的優(yōu)勢,我們將其與BP神經(jīng)網(wǎng)絡(luò)和SVM兩種傳統(tǒng)預(yù)測方法進行了對比.為了更加直觀的展示,我們給出它們預(yù)測的實際誤差圖,如圖6所示.
從圖6可以看出,相比BP和SVM神經(jīng)網(wǎng)絡(luò),正弦激勵的WASD神經(jīng)網(wǎng)絡(luò)預(yù)測的絕對誤差最小,也即其具有最好的預(yù)測精度.
WASD神經(jīng)網(wǎng)絡(luò)是一種新型前向神經(jīng)網(wǎng)絡(luò),通過權(quán)值與結(jié)構(gòu)直接確定,減少了復(fù)雜的迭代過程.計算機數(shù)值實驗結(jié)果表明:構(gòu)建的正弦函數(shù)激勵的WASD神經(jīng)網(wǎng)絡(luò)能有效地實現(xiàn)其最優(yōu)權(quán)值與最優(yōu)結(jié)構(gòu)的自確定,且此神經(jīng)網(wǎng)絡(luò)在上證指數(shù)應(yīng)用中具有十分優(yōu)越的擬合.另外,本文通過對比正弦函數(shù)激勵的WASD神經(jīng)網(wǎng)絡(luò)與BP和SVM在上證指數(shù)預(yù)測應(yīng)用上的性能差異,證實了正弦函數(shù)激勵的WASD神經(jīng)網(wǎng)絡(luò)在非線性程度增加時具備更為優(yōu)越的學(xué)習(xí)性能,這也展現(xiàn)了正弦函數(shù)激勵的WASD神經(jīng)網(wǎng)絡(luò)在數(shù)據(jù)挖掘等方面的應(yīng)用潛力和前景.
[1]胡杉杉,黨佳瑞,藍柏雄.中國證券市場的可預(yù)測性研究[J].財經(jīng)科學(xué),2001(3):35-39.
[2]楊一文,劉貴忠.基于神經(jīng)網(wǎng)絡(luò)的多變量時間序列預(yù)測及其在股市中的應(yīng)用[J].信息與控制,2001,30(5):413-417.
[3]周廣旭.一種新的時間序列分析算法及其在股票預(yù)測中的應(yīng)用[J].計算機應(yīng)用,2005,25(9):2179-2184.
[4]顧嘉運,劉晉飛,陳明.基于SVM的大樣本數(shù)據(jù)回歸預(yù)測改進算法[J].計算機工程,2014,40(1):161-166.
[5]譚顯勝,周鐵軍.BP算法改進方法的研究進展[J].懷化學(xué)院學(xué)報,2006,25(2):126-130.
[6]南敬昌,田娜.基于改進粒子群算法的模糊小波神經(jīng)網(wǎng)絡(luò)建模[J].計算機工程與應(yīng)用:2017,5(33):120-123.
[7]李軍,黃杰.基于自組織映射神經(jīng)網(wǎng)絡(luò)的局部自回歸方法在網(wǎng)絡(luò)流量預(yù)測中的應(yīng)用 [J].信息與控制,2016,45(1):120-128.
[8]鐘海全,李穎川,劉永輝,等.基于BP神經(jīng)網(wǎng)絡(luò)的多相管流模型優(yōu)選及應(yīng)用分析[J].中國科技論文在線,2008,(11):873-878.
[9]田亞鵬,鞠斌山.基于遺傳算法改進BP神經(jīng)網(wǎng)絡(luò)的頁巖氣產(chǎn)量遞減預(yù)測模型[J].中國科技論文,2016,11(15):1710-1715.
[10]黃宏運,吳禮斌,李詩爭.BP神經(jīng)網(wǎng)絡(luò)在股票指數(shù)預(yù)測中的應(yīng)用[J].通化師范學(xué)院學(xué)報,2016,37(10):32-34.
[11]汪思成,肖林,嚴(yán)慧玲.基于不同誤差函數(shù)的神經(jīng)網(wǎng)絡(luò)求解線性方程組[J].吉首大學(xué)學(xué)報(自然科學(xué)版),2016,37(6):26-28.
[12]陳海英.基于支持向量機的上證指數(shù)預(yù)測和分析[J].計算機仿真,2013,30(1):297-300.
[13]Liao BL,Zhang Y N,Jin L.Taylor O(h3)discretization of ZNN models for dynamic equality-constrained quadratic programming with application to manipu-lators [J].IEEE Transactions on Neural Networks and Learning Systems,2016,27(2):225-237.
[14]Li S,Li Y M.Nonlinearly activated neural network for solving time-varying complex Sylvester equation[J].IEEE Transactions on Cybernetics,2013,44(8):1397-1407.
[15]Jin L,Zhang Y N,Li S.Integration-enhanced Zhang neural network for real-time-varying matrix inversion in the presence of various kinds of noises[J].IEEE transactions on neural networks and learning systems,2016,27(12):2615-2627.
[16]Zhang Y N,Guo D S,Luo Z Y,et al.CP-activated WASD neuronet approach to Asian population predic-tion with abundant experimental verification [J].Neu-rocomputing:2016,198:48-57.
[17]Zhang Y N,Yin Y H,Guo D S,et al.Cross-validation based weights and structure determination of Cheby-shev-polynomial neural networks for pattern classifica-tion[J].Pattern Recognition,2014,47(10):3414-3428.
[18]Zhang Y N,Yu X T,Guo D S,et al.Weights and struc-ture determination of multiple-input feed-forward neural network activated by Chebyshev polynomials of class 2 via crossvalidation[J].Neural Computing and Applications,2014,25(7-8):1761-1770.