基于遗传算法的BP神经网络时间序列预测算法及其应用

2016-01-05 12:28杨同满郭雨
电脑知识与技术 2015年31期
关键词:时间序列BP神经网络遗传算法

杨同满 郭雨

摘要:对遗传算法以及BP神经网络算法的基本原理进行分析,并将具有良好全局搜索能力的遗传算法与能以任意精度逼近非线性函数的神经网络算法相结合,利用遗传算法的特点对BP算法进行优化,构建基于遗传算法的BP神经网络的时间序列预测算法。并用该算法对股市交易的收盘数据做预测。应用结果表明,该方法具有稳定性好,精确度高的特点。

关键词:遗传算法;BP神经网络;时间序列;预测;

中图分类号:TP18 文献标识码:A 文章编号:1009-3044(2015)31-0160-03

Application of Time Series Prediction based on the Genetic Algoriths and BP Neural Network

YANG Tong-man1,GUO Yu2

(1.College of Meteorology and Oceanography, PLA Univ. of Sci. & Tech. ,Nanjing 211101,China;2.Anhui University of Science and Technology,Huainan 232001,China)

Abstract: The basic principles of genetic algorithms and BP neural network algorithm for analysis, and will have good global search capability of genetic algorithm and can be arbitrary precision approach nonlinear function of neural network algorithm, genetic algorithms to optimize the characteristics of the BP algorithm , time series forecasting algorithm based on genetic algorithm BP neural network build. And use the algorithm to do the closing stock market trading data prediction. Application results show that this method has good stability, high precision characteristics.

Key words:genetic algorithm;BP neural network;time series;prediction

随着经济、科学技术等的快速发展,每天来自商业、社会、科学、工程、医学等各个领域的呈爆炸式增长的数据,注入我们的计算机网络、万维网以及各种数据存储设备,并且这些数据集基本上都具有时变性的特征。因此,目前许多数据集中的数据都是以时间序列的数据形式存在的。在互联网金融、科研项目、医学、工程等各个领域,都存在着在历史数据的基础上预测未来的问题。至今,各行各业的研究人员已经建立了许多的时间序列预测模型及算法,这些预测算法针对线性系统的时间序列预测具有很好的效果。但是,面对自然和社会现象中存在的大量的非线性系统问题,这些方法并不能有效地解决趋势预测问题,解决这类问题效果欠佳[1]。而人工神经网络等智能理论的兴起与发展,为时间序列预测提供了全新且有效的针对非线性预测的分析方法。BP神经网络算法是非循环多级网络的训练算法,具有广泛的适用性。但是BP算法也存在训练速度慢、高纬曲面上局部极小的问题,并且在隐含层网络节点数的选取上缺乏理论指导,这一系列的问题,大大降低了预测的精确性[2]。遗传算法是一种通过模拟自然进化的过程,搜索出最优解的方法,它具有良好的全局搜索能力的特点。因此,本文利用遗传算法的特点,通过对BP算法的初始权值以及阈值进行优化,以达到提高预测精确度的目的。

1基于遗传算法的BP神经网络预测算法

1.1遗传算法

遗传算法(Genetic Algorithm)又叫基因进化算法或进化算法,它是一种启发式的搜索算法。它能在搜索过程中,自动的搜索全局并选择优良的解,并能够自适应的控制搜索过程以达到最优解[3]。遗传算法是具有“生成+检验”的迭代过程的搜索算法[4]。其主要处理流程如下:

1) 首先对优化问题的解进行编码;

2) 适应度函数,它主要依据优化问题的目标函数而定,是遗传算法的关键;

3) 染色体的组合;

4) 变异。

1.2 BP神经网络模型及算法

1.2.1人工神经网络

人工神经网络(Artificial Neural Networks),是对人类的大脑系统的一个特定的描述,它是一个理论化的数学模型。它由大量的处理单元通过适当的方式互联构成,是一个大规模的非线性自适应系统[5]。神经网络是通过对各种各样的样本,进行反复的学习和训练,并不断的调整各连接弧上的权值以及节点的阈值,直到各个权值及阈值达到理想的稳定状态后,神经网络就能正确的反映网络的输入样本对输出样本的映射关系[6],它是通过这些不断的训练来达到训练学习的目的的。

1.2.2 BP神经网络算法

BP神经网络算法,是非线性的连续变换函数的多层感知器的误差向后传播( ErrorBack Propagation,BP)算法。其基本思想是利用输出层的误差来估算输出层的直接前导层的误差,如此循环下去,将获得所有其他各层的误差估计,形成将输出端表现出的误差沿着与输入信号传送相反的方向逐级向网络的输入端传递的过程[5]。目前此算法已经在许多领域获得了应用[7]。BP神经网络算法能学习并存储大量的输入(input)-输出(out)模式的映射关系,并且不需要在事前描述这种映射关系。BP算法的学习规则是使用最快速度的下降法,通过向后传播,不断的调整网络各连接弧上的权值和节点的阈值,使得网络的误差平方和最小[3]。BP神经网络算法的网络结构包括输入层,隐藏层和输出层,如图1所示。

图1 BP算法的网络结构示意图

假设有一个三层BP神经网络,并设其输入层的第i个节点上的输入向量ai;其隐含层上的第j个节点的输入向量sj,输出向量bj;其输出层上的第k个节点的输入向量ck,输出向量ok;设其输入层、隐层和输出层的节点数分别为m、l、n。设输入层和隐层节点间的联接权Xij,隐层和输出层节点间的联结权Mjk,隐层和输出层的各单元的输出阈值分别是Hj和Ck,输出层上的第k个节点的期望输出值tk,若激活函数为f(x),则:

[sj=i=1maiωij-θjj=1,2,...,l]

[bj=f(sj)j=1,2,...,l]

[ck=j=1lbjvjk-γkk=1,2,...,n]

[ok=f(ck)k=1,2,...,n]

误差函数为:

[E=12k(tk-ok)2]

BP神经网络算法将按照误差减小的最快的方向,也就是负梯度的方向,来改变各层之间的联接权,使得网络慢慢地收敛。联接权的增量的变化为:

[Δω=-η?E?ω]

其中[η]为学习率。

考虑到学习率的变化会影响网络的性能[9],所以在权值调整公式中增加一个动量项,达到微调权值修正量防止振荡的效果[3]。通过增加动量项不仅仅考虑了误差在梯度上的作用,同时也考虑了误差曲面上变化的方向。

[Δwij(n+1)=ηδj(n+1)yi(n+1)+aΔwij(n)]

其中a是动量因子,一般a[η](0,1)动量项反映了以前的调整经验,对下一时刻的调整起到一定阻尼作用。因此可以减小振荡的趋势,并促使联接权值的变化方向为误差曲面底部的平均方向。这不仅能够降低网络对误差曲面上存在的局部的细节敏感性,还能够在一定程度上缓解局部存在极小的问题。

1.3 遗传算法对BP算法的优化

利用遗传算法能够在全局搜索的优势,对BP算法的初始权值和阈值进行优化。其流程图如图2所示:

图2 遗传算法对BP算法优化流程图

(1) 将BP算法的初始权值和权值优化,表示为编码;随机产生一组串长为n的群体,为初始群体;

(2) 将编码串译码成寻优参数,并计算其对应的目标函数,从目标函数中获得各个体的适应度值;

(3) 根据得到的各个体适应度值,选择产生适应度值高的中间群体(父辈),并对其执行复制、交叉和变异的操作,产生新的群体;

(4) 返回步骤(2),并反复执行步骤(2)到步骤(4),使得群体能够一代代的不断的进化,直到满足条件,输出最优个体解为止。

2基于遗传算法的BP神经网络预测算法的应用

股票市场是一个高度复杂的非线性动态系统[8],股价的波动通常都具有很强的非线性的特征。股价的走势及其波动受制于各种政治、经济、心理等诸多因素,以至于人们往往难以精确的预测股价的走势。而股票的价格,却是每一位投资者最关心的问题。自从有了股票交易市场,各种专家和投资资深者都在探索分析和预测股票价格走势的方法,期望能够准确地对股价的走势进行预测。

基于以上因素,本实验选择了2004年11月到2010年3月的股市交易数据作为实验数据。对2004年到2010年2月份的数据做模型训练,并对2010年3月份的数据进行预测。本算法对股市交易数据中的收盘数据做了预测。从表(1)可以看出,该算法对3月份收盘数据的预测值与实际值的绝对误差、相对误差值都很小,精度很高。从图(3)可以看出,预测数据与实际数据的趋势很相近,几乎重合。

表1 截取的5个样本的预测结果

图3 原始数据与预测数据趋势图

3 结论

本文针对非线性趋势预测问题,在前人对BP算法存在的问题改进的基础上,利用遗传算法具有的良好全局搜索能力的特点,再次对BP神经网络算法进行了优化,并将该算法应用于对股市交易收盘数据的预测。经过检验,证实了该方法的有效性。

参考文献:

[1]曹星平,易东云,吴翊.基于神经网络的时间序列预测方法进展[J].电脑与信息技术, 1999(6).

[2]胡冰蕾.基于遗传优化的BP神经网络算法的短期负荷预测[J]. 供用电,2010(6):42-44.

[3]任谢楠. 基于遗传算法的BP神经网络的优化研究及MATLAB仿真[D].天津师范大学,2014.

[4]王宏刚,钱锋.基于遗传算法的前向神经网络结构优化[J],2007,14(4):387-190.

[5]蒋宗礼. 人工神经网络导论[M].北京:高等教育出版社, 2001.

[6]王成宝,任传祥,尹唱唱,等. 基于遗传算法的BP神经网络短时交通流预测[J]. 山东交通科技,2012(5):5-7.

[7]Chen Hai-bo,Muller S G.Use of sequential learning for short- term traffic flow forecasting[J].TransportationResearch,2000,7( 06) : 11 - 13.

[8]欧阳金亮,陆黎明. 综合改进BP神经网络算法在股价预测中的应用[J].计算机与数字工程,2011(2):57-59.

[9] Zarei J, Poshtan J . Bearing fault detection using wavelet packet transform of induction motor stator current[J].Tribology International, 2007,40(5):763-769.

猜你喜欢
时间序列BP神经网络遗传算法
基于自适应遗传算法的CSAMT一维反演
一种基于遗传算法的聚类分析方法在DNA序列比较中的应用
基于遗传算法和LS-SVM的财务危机预测
基于时间序列的我国人均GDP分析与预测
复杂背景下的手势识别方法
BP神经网络在软件质量评价中的应用研究 
基于线性散列索引的时间序列查询方法研究
BP神经网络算法在数值预报产品释用中的应用
基于组合模型的能源需求预测
基于改进的遗传算法的模糊聚类算法