当前位置:
文档之家› 基于人工鱼群算法和BP神经网络的时间序列预测研究
基于人工鱼群算法和BP神经网络的时间序列预测研究
P神经网络的时间序列预测研究
中北大学机械工程与自动化学院 叶 超 姚竹亭
【摘要】时间序列的普遍存在性使得对于它的预测有着极为深刻的意义和丰富的内涵。本文研究了时间序列的相关理论和方法,将人工鱼群算法和BP神经网络应 用于时间序列预测中,讨论了人工鱼群算法与BP神经网络在时间预测中的优劣,以及其有效性和实用性。 【关键词】人工鱼群算法;BP神经网络;时间序列;预测
图1 基于人工鱼群算法和BP神经网络的计算流程
图2 基于BP神经网络时间序列预测模型的部分程序
-110-
规模为N,每个人工鱼看为一个前向神经网 (U 1 U 2) 络,任意两人工鱼个体的和 或差 (U 1 U 2 ) 其中i,j∈{0,1,.,N—l})仍看 作不同神经网络:待寻优神经网络的参数设 有权值矩阵 [wij ] 和 [vki ] ,其中 [wij ] 为第i个隐层 神经元与第j个输入神经元之间的权值, [vki ] 为第k个输出神经元与第i个隐层神经元之间 的权值;阈值向量 [ wio ] 和 [vko ] ,而 [ wio ] 为第i 个隐层神经元的阈值, [vko ] 为第k个输出神 经元的阈值;其参数也随着人工鱼的迭代进 化而不断优化。 设神经网络的输入和输出节点分别为 S 和 P ,而网络隐层节点数一般取输入输出 节点的平均值,以Sigmoid函数作为BP网络 的激励函数,根据前向网络计算算法求出相 应每组输入样本的网络输出结果;把网络输 出均方误差的倒数作为改进人工鱼群算法的 适应函数(食物浓度)Y来指导人工鱼群的进 化。通过人工鱼群算法的优化搜索来训练神 经网络的权值和阈值,当神经网络输出均方 误差指标达到最小时,搜索出就是最优BP网 络,而该网络相应的权值和阈值等参数也是 最佳的。其算法的适应函数表示如下:
参考文献 [1]李晓磊,邵之江,钱积新.一种基于动物自治体的寻优 模式:鱼群算法[J].系统工程理论与实践,2002,22(11):3238. [2]张冬,明新国等.基于BP神经网络和设备特性的工业 设备备件需求预测[J].机械设计与研究,2010,26(1):7277. [3]康进,刘敬伟.非参数回归估计与人工神经网络方 法的预测效果比较[J].统计与决策,2009(23):153-155. [4]王西邓.人工鱼群算法的改进研究[D].西安:西安建 筑科技大学,2007. [5]李晓磊.一种新型的智能优化方法——人工鱼群算 法[D].杭州:浙江大学,2003. [6]魏崇辉,金福禄,何亚群.基于粗糙集和神经网络的 空军航材消耗预测方法[J].东南大学学报(自然科学 版),2004,34(Sup):68-70. [7]Martin T.Hagan Howard B.Demuth Mark H.Beale. 神经网络设计[M].戴葵,等译.北京:机械工业出版 社,2006. 作者简介:叶超(1987—),男,湖北黄冈人,中 北大学机械工程与自动化学院硕士研究生在读。
图3 仿真结果
-111-
》 》
科研发展
只能得到系统的满意解域;当寻优的区域较 大,或处于变化平坦的区域时,收敛到全局 最优解的速度变慢,搜索效率劣化;算法一 般在优化初期具有较快的收敛性,而后期却 往往收敛较慢。这些算法本身存在的问题, 在一定程度上也影响了算法的实际应用[5]。 在当今已经有许多的研究方向,首先 采用人工鱼群算法拟合时间序列并求出大量 的数据训练神经网络,弥补了历史数据缺乏 的问题;然后用训练好的神经网络代替传统 的最小二乘法拟合时间序列因素,从而求出 预测值。仿真结果表明,此模型能够有效地 改善模型的拟合能力并提高预测精度。为实 现更好的预测,有时采用神经网络,但前馈 神经网络结构难以确定,运用BP算法时又极 易陷入局部解。本文将改进人工鱼群算法与 BP算法相结合的IAFSA+BP算法,实现了人工 鱼群算法的全局搜索能力与BP算法的局部寻 优性能的互补结合。将所设计的神经网络利 用MATLAB/SIMULINK进行传感器控制系统的 建模仿真实验结果表明,该算法具有良好辨 识效果[6]。 2.2 方法的计算流程与实施步骤 由于BP神经网络存在对初始参数要求 高、学习收敛速度慢,网络性能差,优化权 值时容易陷入局部极小值等缺陷。而人工鱼 群算法具有对初值和参数要求不高,克服局 部极值、更好地协调全局和局部搜索能力等 优点。因此,将人工鱼群算法与BP算法相结 合的混合算法训练人工神经网络,可实现两 种算法的取长补短。 构造人工鱼个体模型是改进人工鱼群 算法优化训练BP神经网络关键,设人工鱼群
步骤二:设置初始迭代次数 num 0 , 在控制变量可行域内随机生成 N 个人工鱼 个体,形成初始鱼群,即产生 N 组 [ wij ] , [ wio ] , [vki ] , [vko ] 且各个分量均为 [1,1] 区间 内的随机数。 步骤三:计算初始鱼群各人工鱼个体 当前位置的食物浓度值 FC ,并比较大小, 取 FC 为最大值者进入公告板,将此鱼赋值 给公告板。 步骤四:各人工鱼分别模拟追尾行为 和聚群行为,选择行动后 FC 值较大的行为 实际执行,缺省行为方式为觅食行为。 步骤五:各人工鱼每行动一次后,检 验自身的 FC 与公告板的 FC ,如果优于公 告板,则以自身取代之。 步骤六:中止条件判断:判断 num 是 否已达到预置的最大迭代次数 number ,若 是 , 则 输 出 计 算 结 果 ( 即 公 告 板 的 FC 值),否则 num 1 ,转步骤一。 基于人工鱼群算法和BP神经网络的计 算流程图如图1所示。 3.实例仿真分析 本论文对建立时间序列预测的BP神经 网络的过程加以规范化,建立了基于BP神 经网络的时间序列预测的通用方法,并通 过实例来检验该时间序列预测模型的预测 能力。MATLAB神经网络工具箱给出了两种 用于提高神经网络推广能力的方法,即正则 化方法(Regularization)和提前停止(Early stopping)方法,本文的模型建立过程中, 用到正则化方法,利用sim函数可以对训练 后的网络进行仿真。sim函数的常用格式如 下: ①[Y,Pf,AL E,perf]=sim(net,P, Pi,Ai,T) ②[Y,Pf,Af,E,perf]=sim(net,
只要隐节点足够多,就可以以任意精度逼近 一个非线性函数[2]。 但是神经网络方法有它的缺点,比如: (1)计算速度慢(计算量大,学习算法 不成熟,不同的算法针对不同的问题收敛才 快些)。 (2)输入信号与训练信号相差加大时, 可能导致结果完全错误(不同的区域可能有 不同的极值)。 因此可以将人工鱼群算法与BP神经网络 相结合。人工鱼群(Artificial Fish-swarm Algorithm,AFSA)是一种基于模拟鱼群行为 的优化算法,是由李晓磊等于2002年提出的 一种新型的寻优算法。AFSA是一种新型的思 路,从具体的实施算法到总体的设计理念, 都不同于传统的设计和解决方法,但同时它 又能与传统方法相融合。因此,AFSA自提出 以来,得到了国内外学者的广泛关注,对算 法的研究应用已经渗透到多个应用领域,并 由解决一维静态优化问题发展到解决多维动 态组合优化问题。AFSA己经成为交叉学科中 一个非常活跃的前沿性研究问题[3]。 在基本人工鱼群算法(AFSA)中,主要 是利用了鱼群的觅食、聚群和追尾行为,从 构造单条鱼的底层行为做起,通过鱼群中各 个体的局部寻优,达到全局最优值在群体中 突现出来的目的。从目前对人工鱼群算法的 研究来看,绝大部分集中在如何应用AFSA解 决实际问题。通过深入研究和实践发现, AFSA虽然具有很多优良的特性,但它本身也 还是存在一些问题,如随着人工鱼数目的增 多,将会需求更多的存储空间,也会造成计 算量的增长[4];对精确解的获取能力不够,
1.引言 时间序列是由一个低维的具有非线性 和确定性的动态系统产生的外表象随机信号 但并非是随机信号的时间序列,这些序列中 存在着一些与产生该序列的非线性动力学系 统相关的固有的确定性和一些几何拓扑不变 性。预测是人们根据事物的发展规律、历史 和现状,分析影响其变化的因素,对其发展 前景和趋势预先进行的一种推测。对于现实 中大量存在的非线性、非平稳的复杂动力系 统问题,需要确定合适的模型阶数,这是比 较困难的,为了更好地解决这一困难,本论 文通过建立在对人工鱼群算法和BP神经网络 算法的掌握及应用在时间序列预测上,提出 了基于人工鱼群算法和BP神经网络算法的时 间序列预测系统模型[1]。 2.基于人工鱼群算法和BP神经网络的 时间序列预测模型介绍 2.1 方法的引出 无论是在自然科学,还是在社会科学 领域的实际工作者和研究人员都要和一系列 的观测数据打交道,这些观测数据随时间变 化而相互关联,其排列顺序与大小体现了不 同时刻的观测值之间的相互联系,观测值之 间的这种依赖关系或相关性,表征了产生这 些数据的现象、过程或系统的某些时间变 化特征和规律。我们把这些按照时间顺序产 生和排列的观测数据序列称为时间序列。从 系统意义上看,时间序列就是某一系统在不 同时间(地点、条件等)的响应。在时间序列 预测中,BP神经网络是最常使用的网络。BP 网络是一种非线性神经网络,Robert Hecht Nielson已证明只有一个隐层的神经网络,
Y 1 ( 1 N
( y
i 1 j 1
N
p
d ji
y ji ) 2 )
式中:参数N,P, y dji , y ji 分别为训练 样本总数,网络输出神经元的个数,第i个 样本的第j个网络输出的目标值,第i个样本 依据输入计算出的第j个网络输出的实际 值。 基于人工鱼群算法的BP网络训练算法 流程如下: 步骤一:输入人工鱼群的群体规模 N , 最 大 迭 代 次 数 number , 人 工 鱼 的 可 视 域 VISUAL ,人工鱼的最大移动步长 STEP , 拥挤度因子 。
{Q,TS},Pi,Ai,T) ③[Y,Pf,Af,E,perf]=sim(net, Q,Pi,Ai,T) 在sim函数的调用形式①中,输入net 为神经网络对象,P为网络输入,Pi为输入 延迟的初始状态,Ai为层延迟的初始状态, T为目标矢量。在函数返回值中,Y为网络 输出,Pf为训练终止时的输入延迟的初始状 态,Af为训练终止时的层延迟状态,E为输 出和目标矢量之间的误差,perf为神经网 络的性能值。该函数中的P、T、Pi、Y、E、 Pf和Af等参量可以是单元数组或矩阵。sim 函数的调用形式②③用于没有输入的神经网 络,其中,Q为批处理数据的个数,TS为神 经网络仿真的时间步数。此外,神经网络工 具箱还提供了postreg函数,该函数可对训 练后网络的实际输出(仿真输出)和目标输出 做线性回归分析,以检验神经网络的训练效 果。使用MATLAB语言进行程序编写,实现基 于BP神经网络的时间序列预测模型,程序片 断如图2所示。 根据2.2中提出的方法,在MATLAB软件 中对算法进行编程与实施,得到的仿真结果 如图3所示。 其中,检测误差:SSE=8.0059e-004, rerror21=-0.0054。 4.结语 本文给出了基于人工鱼群算法的BP神 经网络的训练模型,并形成了一种新的BP网 络训练算法。从试验结果比较分析可见: (1)该方法具有较好的收敛性、初值不 敏感和参数不敏感等特点; (2)算法具有较快的收敛速度,算法收 敛过程有明显优势。 (3)算法用于对时间序列的预测,其结 果表明是可行的。如何更好地将觅食、聚群 和追尾三种优化行为,体现在算法的处理 上,以便使运算更加简单,还需要进一步提 高。