基于SDE的BP神经网络股票价格预测

2018-09-20 11:29刘雯琦
无线互联科技 2018年15期
关键词:BP神经网络

刘雯琦

摘要:股票价格预测是投资者关注的热点问题,用人工智能对股票价格进行预测是近年来十分流行的预测方式。文章针对传统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.

猜你喜欢
BP神经网络
基于神经网络的北京市房价预测研究
提高BP神经网络学习速率的算法研究