汪志峰 錢萌

摘要:股票市場數據通常是一個具有極強波動性的非線性時間序列,一般構建小波神經網絡(WNN)進行股票預測。但使用BP算法的WNN收斂速度慢且易陷入局部最小,為改善模型性能,提高預測精度,用粒子群算法(PSO)優化WNN,優化WNN參數以建立股票預測模型PSO-WNN。運用MATLAB進行仿真實驗,通過分析實驗結果,證明該方法的可行性。并將實驗結果與優化前的實驗結果進行對比分析,證明PSO-WNN的預測精度優于WNN。
關鍵詞:WNN;PSO;PSO-WNN;股票預測
中圖分類號:TP311 文獻標識碼:A
文章編號:1009-3044(2019)09-0181-03
Abstract:The stock market data is usually a nonlinear time series with very strong volatility, and the general construction of the wavelet neural network (WNN) is used to predict the stock. But the WNN convergence rate of BP algorithm is slow and easy to fall into local optimum. In order to improve the performance of the model and improve the prediction accuracy, particle swarm optimization (PSO) is used to optimize WNN and optimize WNN parameters to establish PSO-WNN prediction model. The simulation experiment was carried out by MATLAB, and the feasibility of the method was proved by the analysis of the experimental results. The experimental results are compared with the experimental results before the optimization, and it is proved that the prediction accuracy of PSO-WNN is better than that of WNN.
Key words:WNN;PSO;PSO-WNN;stock prediction
股票預測即對股票價格指數的運行趨勢進行預測,這也是國內外在統計金融領域的研究熱點。隨著人工智能技術的逐步發展,理論成果也日趨成熟,其在金融領域也得到廣泛應用,將神經網絡與股票預測相結合構建神經網絡股票預測模型成為一種突破性地嘗試。但任何模型都會受其在某些方面的局限性而不能完全滿足預測要求,所以要將更多的理論相互融合,取長補短,從而達到更佳的預測效果。
將小波理論與神經網絡結合起來形成的小波神經網絡(WNN)已經成為主要的股票預測方法,WNN是基于小波變換而構成的神經網絡模型,即用非線性小波基取代通常的神經元非線性激勵函數,這使其融合了小波分析的多尺度分析能力和神經網絡的非線性學習能力。在WNN的權值參數修正過程中一般采用梯度修正法,通過修正網絡權值和小波基參數使WNN的預測輸出不斷逼近期望輸出,其固定的梯度變化方向會限制參數的優化方向從而導致進化緩慢且易陷入局部最小,這樣便難以得到全局最優參數。為了搜索WNN的全局最優參數使預測效果更好,可運用粒子群優化(PSO)算法優化WNN參數修正過程從而尋取最優參數,建立基于粒子群優化小波神經網絡(PSO-WNN)的股票預測模型[1-3]。
1 WNN結構及算法
1.1 小波理論
小波函數(wavelet function)是由母小波函數經過平移與尺寸伸縮得到的。
小波變換(wavelet transform)是時間(空間)和頻率的局部分析,是時間(空間)和頻率的局部變換,因而能有效地從信號中提取信息。通過伸縮和平移等運算功能可對函數或信號進行多尺度的細化分析,解決了Fourier變換不能解決的許多困難問題。具體就是指把某一小波函數如上公式平移后,在不同尺度a下與待分析的信號做內積。
小波分析(wavelet analysis)即把信號分解成一系列小波函數的疊加,通過小波基函數的變換分析信號的局部特征,并且在二維情況下具有信號選擇性能力[4-5]。
1.2 小波神經網絡拓撲結構
小波神經網絡是基于小波變換而構成的神經網絡模型,是小波變換與神經網絡的有機結合,即用非線性小波基取代通常的神經元非線性激勵函數。
圖1表示的就是WNN的結構,其由一個輸入層、一個隱含層和一個輸出層構成。根據神經網絡理論,一個三層神經網絡具備精確逼近一般非線性函數的能力,運用小波正交或斜交基對函數逼近使得網絡節點的冗余度較小。小波基函數取代原Sigmoid函數作為隱含層的激勵函數,這樣融合了小波分析的時頻局部分析特性和神經網絡的自適應學習特性的WNN會具備較強的非線性逼近能力[6]。
2.2 PSO算法訓練WNN網絡學習速率
先設置好原始WNN的網絡學習速率,再運用PSO算法搜索WNN的網絡學習速率[η]以建立PSO-WNN預測模型。其中WNN的網絡學習速率可理解為誤差更正的幅度。
PSO-WNN的算法實現步驟如下:
Step1:初始化粒子群。初始化每個粒子的初始位置[x]和初始速度[v],確定粒子群規模為[m],設置最大迭代次數和終止條件精度[Eg]。
Step2:歸一化訓練數據。利用粒子群算法的迭代公式(10)、(11)在算法規定的最大值內對粒子的速度和位置進行更新,記錄每個粒子的歷史最優位置。
Step3:將每個粒子的當前位置的適應度值與其歷史最優位置適應度值進行比較,更新其最優位置,并記錄當前適應度值。
Step4:再將每個粒子的最優位置的適應度值與全局最優位置的適應度值進行比較,更新全局最優位置,并記錄當前適應度值。
Step5:計算隱含層的每個節點的實際輸入和輸出及誤差。
Step6:當誤差達到終止條件精度或達到最大迭代次數時,終止訓練;否則返回步驟3。
Step7:確定WNN的最優參數,輸入訓練數據到訓練好的WNN進行預測[13-17]。
3 仿真實驗
3.1 數據來源及處理
本實驗所用數據來源于中國證監會官網(www.csrc.gov.cn/pub/newsite/sjtj/zqscyb/),從中采集了從2003年1月到2013年9月共129個月的月末上證指數數據。
將129月的數據當作一組時間序列,前106個時間點的數據作為訓練樣本,后23個時間點作為測試樣本,用訓練樣本分別訓練WNN和PSO-WNN得到預測數據,將預測數據與測試樣本進行對比,并分析比較WNN與PSO-WNN的預測精度。具體的實驗數據如圖。
3.2 實驗及結果分析
實驗步驟如下:
Step1:初始化網絡結構、權值和參數,并對訓練數據進行歸一化處理。
Step2:用訓練數據訓練WNN,使WNN具有股票預測能力。
Step3:用訓練好的WNN預測股票數據,并以圖表的形式表示WNN的預測結果。
Step4:將WNN的預測結果與測試數據進行比較,并用統計指標衡量預測精度。
Step5:運用PSO算法訓練WNN參數,建立粒子群優化小波神經網絡模型PSO-WNN。
Step6:用訓練數據訓練PSO-WNN,使PSO-WNN具有股票預測能力。
Step7:用訓練好的PSO-WNN預測股票數據,并以圖表表示PSO-WNN的預測結果。
Step8:將PSO-WNN的預測結果與測試數據進行比較,并用統計指標衡量預測精度。
Step9:將WNN與PSO-WNN的預測效果進行對比,比較步驟4與步驟8的統計量。
平均絕對誤差MSE主要衡量預測精度,數值越小,精度越高。平均相對變動值ARV主要衡量預測值與期望值之間的差別,即泛化能力,ARV越小,泛化能力越強。
實驗所使用的仿真軟件為MATLABLAB R2016a,所使用計算機的處理器為Intel (R) Core(TM)i7-7700HQ CPU @ 2.80GHz,內存為16.0GB,操作系統為Windows 10。
明確實驗相關參數。確定WNN拓撲結構為2-6-2,學習概率分別為0.01和0.001,最大訓練次數為100,學習速率分別設為0.15和0.2;PSO-WNN的速度更新系數[c1]=[c2]=1.49445,速度為[-0.5,0.5]。圖4和圖5為學習率為0.15時的WNN和PSO-WNN的預測結果,圖6和圖7為學習率為0.2時WNN和PSO-WNN的預測結果。
表2和表3分別為學習率為0.15和0.2時,優化前后的MSE、ARV數值變動情況。由表2可以看出PSO-WNN的MSE值和ARV值相較于優化前提高了38.38%和62.03%。由表3可以看出PSO-WNN的MSE值和ARV值相較于優化前提高了34.68%和57.33%。綜合表2和表3,優化效果較為明顯,PSO-WNN相比WNN其預測精度得到一定的提升,并擁有更強的泛化能力。學習率設為0.15相比學習率設為0.2在總體上具有更高的預測精度提升比率。表4為優化后預測精度提升比率。但在單個模型的預測精度上,0.2較0.15有更高的預測精度。
參考文獻:
[1] Anthony Joseph,MauriceLarrain,ClaudeTurner.Daily stock returns Characteristics and forecastability[J].Procidia computer science.2017(114):481-490.
[2]楊進,陳亮.基于小波神經網絡與ARIMA組合模型在股票預測中的應用[J].經濟數學,2018,35(2):62-65.
[3]孫冰潔,唐瑞,左毅,等.小波分析下的神經網絡股票預測研究[J].計算機與數字工程,2016,44(6):1031-1034.
[4] AmjadyN,KeyniaF.Short-term load forecasting of power systems by combination of wavelet transform and neuroevolutionary.algorithm[J].Energy,2009,34(1):46-57.
[5] 王小川,史峰,郁磊,等.MATLAB神經網絡43個案例分析[M].北京:航空航天大學出版社,2013:279-282,306-307.
[6]孟飛,蘭巨龍,胡宇翔.基于改進的量子粒子群優化小波神經網絡的網絡流量預測[J].計算機應用研究,2015,32(5):1450-1453.
[7] 潘玉民,張曉宇,張全柱,等.基于量子粒子群優化的小波神經網絡預測模型[J].信息與控制,2012,41(6):745-746.
[8] Wang Q,Wang P H,Su Z G.A hybird search strategy-based particles swarm optimization algorithm[C]//IEEE Conference on Industrial Electronics and Applications,2013:301-306.
[9] Higashi N,IbaH.Particle Swarm Optimization with Gaussian mutation[C]//Proceedings of the 2003 Congress on Evolutionary Computation.Piscataway,NJ:IEEE Press,2003:72-79.
[10] 何佳佳,李平,劉井平,等.改進PSO優化神經網絡算法的人體姿態識別[J].傳感器與微系統,2017,36(1):115-118.
[11] 雷秀娟,史忠科,周亦鵬.PSO優化算法演變及其融合策略[J].計算機工程與應用,2007,43(7):90-91.
[12] 岑翼剛,孫德寶,李寧.WNN中的改進PSO算法及參數初始化[J].華中科技大學學報,2006,34(8):43-45.
[13]VarshneySarika,SrivastavaLaxmi,andPanditManjaree.Parameter tuning of Statcom using particle swarm optimization based neural network[J].Advances in Intelligent and Soft Computing,2012,130:813-824.
[14] Shi Y,Eberhart R C.A modified particle swarm optimizer[C]//Proce.of the Conference on Evolutionary Computation.Anchorage,USA:IEEE Press,1998:899-907.
[15] 郭通,蘭巨龍,李玉峰,等.基于量子自適應粒子群優化徑向基函數神經網絡的網絡流量預測[J].電子與信息學報,2013,35(9):2220-2222.
[16] 羅勇,鄭金,寧美鳳.基于相似日搜索的PSO-WNN組合模型在短期電力負荷預測中的應用[J].信息與控制,2013,42(3):371-375.
[17] 李樹榮,雷陽,張強,等.一種求解最優控制問題的混合WNN-PSO算法[J].系統仿真學報,2013,25(3):425-429.
【通聯編輯:代影】