基于GA-BP 神经网络的股票预测研究
2014-11-28武丽芳王福明
陈 星,武丽芳,王福明
(中北大学 信息与通信工程学院,山西 太原 030051)
股票是市场经济的产物,现已成为金融市场中不可或缺的组成部分。但股票价格受企业经营状况、政策走势、经济大环境等诸多因素的影响,投资股市面临巨大风险。为了减小风险,增加收益,人们通过对股票市场的实际操作和长期观察,逐步发现并总结出股市发展变化的一些规律,对这些规律进行再验证、再分析,进而产生出各类股票预测方法和理论。传统的预测方法主要包括证券投资分析方法、时间序列分析法、市场调查法、马尔可夫法等等。但是,由于股票市场是一个高度复杂的非线性系统,其变化既有内在的规律性,同时也受到市场、宏观经济环境以及非经济原因等诸多因素的影响,所以一般传统的方法应用于股市的预测具有很大的局限性。
近年来,随着人工智能理论的发展成熟,特别是人工神经网络的研究取得了划时代的发展,其在模式识别和复杂系统控制等方面已经取得了巨大的成功,并开始在经济、金融等领域广泛应用。不少研究者将目光投向基于人工神经网络建立的预测模型,并取得了较好的预测效果。首先,基于人工神经网络建立的股票预测模型是样本驱动型的,非专业人士只需将数据样本载入基础模型,对神经网络进行训练和简单调整,就可以建立一个适合自己的新模型,获得准确度较高的预测结果。这对于普通投资者而言,非常具有吸引力。其次,由于人工神经网络具有良好的非线性逼近能力和对杂乱信息的综合处理能力,其特性与股票市场这个多变量非线性动态系统中的研究难点相对应[1]。因此,基于人工神经网络的预测模型应用于股市预测具有很强的现实意义和推广价值融,已成为目前国际上进行股票预测研究的热点。
1 BP 神经网络模型
1.1 BP 神经网络模型的结构
反向传播网络(Back-Propagation Network,简称BP 网络)是将W-H 学习规则一般化,对非线性可微分函数进行权值训练的多层网络。它具有逼近任意非线性映射的能力、泛化能力和容错能力,使其在函数逼近、模式识别、分类和数据压缩等多个领域得到广泛应用,并取得了较好的效果。BP 网络是一种多层前馈神经网络,由一个输入层、一个输出层和若干个隐含层所组成。理论和实践证明具有一个隐含层即三层的BP 神经网络已经具有逼近任意非线性连续函数的能力。
图1 具有一个隐含层的BP 神经网络模型结构图
1.2 BP 算法
BP 网络的产生归功于BP 算法的获得。BP 算法是由两部分组成:信息的正向传递与误差的反向传播。在正向传播过程中,输入信息从输入层经隐含层逐层计算传向输出层,每一层神经元的状态只影响下一层神经元的状态。如果在输出层没有得到期望的输出,则计算输出层的误差变化值,然后反向传播,通过网络将误差信号沿原来的连接通路反传回来修改各层神经元的权值直至达到期望目标。
BP 算法属于δ 算法,是一种监督式的学习算法。其主要思想为:对q 个输入学习样本:P1,P2,…,Pq已知其对应的输出样本为:T1,T2,…,Tq。学习的目的是用网络的实际输出A1,A2,…,Aq与目标矢量T1,T2,…,Tq之间的误差来修正其权值,使Al,(l=1,2,…,q)与期望的Tl尽可能地接近;即:使网络输出层的误差平方和达到最小。它是通过连续不断地在相对于误差函数斜率下降的方向上计算网络权值和偏差的变化而逐渐逼近目标的。每一次权值和偏差的变化都与网络误差的影响成正比,并以反向传播的方式传递到每一层的[2]。
2 GA-BP 算法
BP 算法本身存在收敛速度慢,训练时间长,易陷入局部极小值,权值、阈值调整过程中存在随意性过大,隐藏层节点难确定,抗干扰性较差等问题。此外,股票市场价格的波动具有高度非线性的特性,股价数据伴有高噪声问题。想得到较好的预测精度,一方面要把握好数据样本的选取,尽量减少外界因素产生的高噪声对训练的干扰,另一方面需要引入其它算法来对BP 网络进行优化,解决BP 网络存在的上述不足。
遗传算法(Genetic Algorithms)是上世纪60 年代由美国Michigan 大学的J.H.Holland 提出的模拟自然遗传机制和生物进化理论而得出的一种自适应优化搜索算法,简称GA 算法。GA 算法一般由四个组成部分构成:染色体编码机制、适应度函数、遗传操作、控制参数。它能够实现兼顾全局搜索和局部搜索,避免基于目标函数的相关算法因梯度或高阶导数而易陷入局部最优的缺陷,并且非常适用于大规模并行计算,具备利用简单的编码技术和繁殖机制来表达困难问题复杂结构的能力,这使得GA 算法在优化、并行处理等领域广泛应用。本文中通过引入遗传算法优化BP 算法,建立神经网络的权值和阈值,形成一种混合算法,简称为GA-BP 算法[3]。GA-BP 算法就是在BP 算法之前,先用遗传算法在随机点集中遗传出优化初值,以此作为BP 算法的初始权值和阈值,再由BP 算法进行训练。
遗传算法优化神经网络权值和阈值的算法过程:
1)随机产生一组分布,采用某种编码方案对该组中的每个权值(或阈值)进行编码,进而构造出一个个码链,在网络结构和学习算法已定的前提下,该码链就对应一个权值和阈值取特定值的一个神经网络。
2)对所产生的神经网络计算它的误差函数,从而确定其适应度函数值,误差与适应度成反比关系。
3)采用适应度比例法对个体进行排列,选择若干适应值较大的个体,直接遗传给下一代。
4)进行交叉运算,即按设定概率从种群中随机选择两个个体相互交换。
5)进行变异运算,定义随机的变异点,在变异点上变异为(-1,1)的值。通过对个体进行交叉,变异等自适应调整,采用改进的遗传算子,形成新一代群体。
6)重复步骤(2)~(5),使初始确定的一组权值分布得到不断的进化,直到训练目标得到满足或者迭代次数达到预设目标为止。
3 实证分析
本文基于BP 神经网络,结合遗传算法,建立含有一个隐含层的三层神经网络模型。隐含层采用正切型激活函数(tansig),输出层采用线性函数(purelin),网络训练函数采用动量法和自适应速率相结合的算法(traingdx)。输入选取6 个股票技术指标为开盘价、最低价、最高价、BIAS6、PSY12、MA5,输出为第二天的收盘价。选取2010-08-06~2011-01-20 之间的中国石化历史股票数据,前100 天作为训练样本,后10 天作为测试样本。因此,本文的神经网络模型输入层为6 个节点,输出层为1 个节点,经多次试验隐含层为11 个节点最佳。
3.1 数据的预处理和后处理
为了提高神经网络的训练效率,我们需要在训练前对输入和目标数据进行必要的处理。本文利用premnmx 函数对输入和目标数据进行归一化处理,使其落在[-1,1]区间,再利用postmnmx 函数进行反归一化处理。
3.2 训练结果
通过GA-BP 神经网络进行训练可得出以下结果:
图2 GA-BP 神经网络的训练结果拟合曲线
图3 GA-BP 神经网络的训练误差曲线
图4 GA-BP 神经网络的训练误差收敛曲线
表1 GA-BP 测试数据训练结果和真实值对比
4 结论
通过探讨和实践,可以知道遗传算法和BP 算法相结合的神经网络对股票市场的预测具有很好的效果和研究价值,但由于股票市场的极其复杂性,时间和本人能力的限制,不能对影响因素考虑周全,面面俱到,很多地方亦难尽人意。
[1]石磊.遗传算法优化的BP 神经网络在股市预测中的应用[D].合肥:安徽大学,2011.
[2]丛爽.面向MATLAB 工具箱的神经网络理论与应用[M].北京:中国科学技术出版社,2009.
[3]尹璐.基于GA-BP 神经网络的股票预测理论及应用[M].北京:华北电力大学,2010.
[4]葛哲学,孙志强.神经网络理论与MATLABR2007 实现[M].北京:电子工业出版社,2007.
[5]李旭军.BP 神经网络在经济预测中的应用[D].武汉:华中师范大学,2008.
[6]雷英杰,张善文,李续武,等.MATLAB 遗传算法工具箱及应用[M].西安:西安电子科技大学出版社,2005.