劉雯琦



摘要:股票價格預測是投資者關注的熱點問題,用人工智能對股票價格進行預測是近年來十分流行的預測方式。文章針對傳統BP神經網絡的預測精度受初始化權值和閾值影響較大的不足,給出一種使用差分進化算法對BP神經網絡的初始權值和閾值進行優化的方法,建立了一種基于自適應差分進化算法的BP神經網絡股票價格預測模型,利用真實的股票數據通過仿真實驗驗證了模型的有效性。
關鍵詞:股票價格預測;BP神經網絡;自適應差分進化算法
近年來,隨著人工智能和計算機專業軟件的發展,股票價格預測出現了許多新方法。其中神經網絡在非線性逼近和對復雜信息進行綜合處理方面具有良好表現,其自身具備的自學習、自適應等特性,能夠克服普通預測方法存在的局限性,因此神經網絡在人工智能領域處于領先地位,并得到了廣泛應用和關注。所以,使用神經網絡對股票價格進行預測有獨特的優勢,能有效克服股票價格高度非線性的問題[1]。
1 差分進化算法
差分進化算法(Differential Evolution,DE)是一種新型的模擬自然界生物進化的群智能隨機優化算法,由美國學者Stora和Price于1995年提出。算法通過采用實數編碼的方式在連續域空間內對問題的解進行隨機捜索和優化[2]。差分進化算法的原理簡單,控制參數較少,易于實現,目前已被證實是一種高效的全局啟發式進化算法,具有廣泛的研究和應用前景[3]。
差分進化算法是一種基于種群遺傳進化的隨機優化算法,包括變異、交叉、選擇3種遺傳操作[3]。
標準DE算法包括種群初始化、變異操作、交叉操作和選擇操作[4]。
1.1 種群初始化
差分進化算法使用實數編碼機制,種群中的每個個體都被視為問題搜索空間中的一個解。初始化群體大小Np,染色體長度,縮放或突變因子F,交叉率CR和基因值范圍[Umin,Umax]這幾個參數。種群用式(l)隨機初始化,產生個體Xij:
1.2 變異操作
在進化計算模型中變異則指的是通過隨機擾動方法來對某個位置的數值進行改變。差分進化算法通過變異操作來保持群體的多樣性。
1.3 交叉操作
完成變異操作之后,個體i就會有一個貢獻向量(Vi)生成,此時再把目標向量x與貢獻向量v交叉,交叉操作后就產生了試驗向量u。
交叉操作按照式(3)產生:
1.4 選擇操作
差分進化算法采用了一對一的競爭機制,經變異與交叉算子操作以后產生了試驗向量uiG+1和xiG,選擇適應度較高的個體進入新一代的種群。選擇操作的方程如式(4)所示:
2 自適應差分進化算法
DE算法中涉及的各種關鍵參數的設置對算法的性能存在顯著影響。本文通過引入自適應變異因子和自適應交叉因子來對標準的差分進化算法進行改進,形成自適應差分進化算法(Self-adaptive DE,SDE),以提高算法性能。
自適應的變異因子由式子(5)計算所得:
式中的CRmin與CRmax分別為交叉因子的最小值和最大值。
2.1 基于自適應差分進化算法的BP神經網絡
基于SDE的BP神經網絡是把自適應差分進化算法和BP神經網絡算法相結合,該算法的基本思想就是先利用SDE算法預先搜索全局最優連接權值和BP神經網絡的閾值,然后將最優的搜索結果分配給初始BP神經網絡的權值與閾值。
基于SDE優化的BP神經網絡的算法流程如下:
(1)種群初始化。首先初始化種群規模Np、迭代次數,以及變異因子F和交叉因子CR,然后用式(5)產生初始種群。
(2)評估迭代以確定其是否完成。如果當前最小的適應度值達到預設的精度要求或迭代次數G與最大迭代次數相同,則SDE算法終止,獲得適應度最佳個體;否則,程序進入下一個步驟。
(3)根據自適應差分算法中變異、交叉與選擇的操作方法生成后代個體xiG+1。
(4)重復步驟(3)并生成后代種群。
(5)對后代的適合度值進行評價,最小值就是當前的最優值,相應的個體就是全局的最優個體。
(6)設置G=G+l,然會返回步驟(2)。
(7)把來自SDE優化的最優個體指定為網絡初始權值與閾值,然后用訓練樣本對網絡進行訓練,從而建立最佳網絡。
(8)在網絡中輸入測試樣本,使用訓練完成的網絡對其進行預測。
綜上可知,基于自適應差分進化算法優化的BP神經網絡,其網絡權值和閾值均為經自適應差分進化算法優化得到的最優網絡權值和閾值。
2.2 SDE-BP神經網絡設置
SDE-BP神經網絡的設計主要是對網絡的各項參數進行設置,主要包括了網絡層數、神經元個數及其余各項參數初始的值。本節主要對BP神經網絡所需的各項參數進行分析和設置。SDE-BP神經網絡的各項參數如下。網絡層數:3;輸入層、隱含層、輸出層的神經元數分別為:20, 5, 1;隱含層、輸出層激活函數分別為:tansig,purelin;訓練函數:trainln;學習率:0.25;初始權值和初始閾值隨機選取,后經SDE優化;神經網絡訓練目標誤差:le-6;神經網絡訓練次數:200;種群規模:50,迭代次數:500;變異因子:Fmax=0.9,Fmin=0.2;交叉因子:CRmax=0.5,CRmin=0.1。
3 實驗分析
3.1 樣本數據選取
本文實驗用到的股票數據來源于股票證券交易分析軟件同花順,以三峽水利(600116)作為本文的研究對象。使用股票開盤價、最低價、最高價以及收盤價為股票的預測數據,然后選取第1?20個交易日中股票的開盤價、最低價、最高價及收盤價,將這些數據作為模型的訓練數據,將第21日的收盤價作為模型的測試數據;再選取第2?21個交易日中的開盤價、最低價、最高價及收盤價來作為訓練數據,用22日的收盤價來測試。按照此方法依次對樣本數據進行訓練,然后再將待預測日之前的20日股票數據作為測試樣本,輸入訓練完成的BP神經網絡,網絡最終的輸出即為要預測的股票收盤價,最終通過預測值與真實值比對來分析模型預測的精度。
3.2 樣本數據處理
為防止股價參差不齊影響預測精度,本文對股價進行了歸一化處理。將股價格歸一化至[0,1]這個區間之內,縮減了BP神經網絡訓練的時間,式(7)為采用的歸一化公式:
式中X表示歸一化后的股票價格,X是原始股票價格的序列;Xmax是原始股票價格序列中的最大值;而Xmin則為原始股票價格序列中的最小值。
3.3 實驗結果分析
表1為BP神經網絡與SDE-BP神經網絡模型的訓練次數與訓練時間,經過對比發現,SDE-BP神經網絡預測模型相比傳統的BP網絡預測模型而言,能有效減少訓練次數,縮短訓練時間,從而改善了BP神經網絡模型的預測效率。
圖1為分別用兩種模型對實際的股票價格進行預測后得到的誤差曲線圖,可知,基于自適應差分進化算法優化的BP神經網絡預測誤差顯著低于傳統BP神經網絡的預測誤差。
實驗結果表明,基于SDE的BP神經網絡明顯縮短了傳統BP神經網絡預測模型的訓練時間,在用其對股票價格進行預測時,降低了網絡預測的誤差,在股票價格預測方面的效果比傳統BP神經網絡效果更好。因此說明基于自適應差分進化算法的BP神經網絡提高了傳統BP神經網絡的預測效率和預測精度。
4 結語
本文首先介紹了標準的差分進化算法,針對標準差分
進化算法缺陷提出引入自適應的交叉和變異因子的方法對算法進行改進,給出了一種自適應差分進化算法。使用改進后的差分進化算法對BP神經網絡進行優化,給出一種基于自適應差分進化算法優化的BP神經網絡模型。最后通過實驗,驗證了基于自適應差分進化算法優化的BP神經網絡在股票價格預測方面的高效性和優越性。
[參考文獻]
[1]朱元.證券投資學原理[M].上海:立信會計圖書用品社,1992.
[2]王超學.智能優化算法與應用[M].西安:西北大學出版社,2012.
[3]張慶科.粒子群優化算法及差分進行算法研究[D].濟南:山東大學,2017.
[4]WANG L, ZENG Y, CHEN T.Back propagation neural network with adaptive differential evolution algorithm for time seriesforecasting[J].Expert Systems with Applications, 2015(2):855-863.