APP下载

基于人工鱼群算法和BP神经网络的时间序列预测研究

2013-01-26中北大学机械工程与自动化学院姚竹亭

电子世界 2013年19期
关键词:鱼群人工神经网络

中北大学机械工程与自动化学院 叶 超 姚竹亭

1.引言

时间序列是由一个低维的具有非线性和确定性的动态系统产生的外表象随机信号但并非是随机信号的时间序列,这些序列中存在着一些与产生该序列的非线性动力学系统相关的固有的确定性和一些几何拓扑不变性。预测是人们根据事物的发展规律、历史和现状,分析影响其变化的因素,对其发展前景和趋势预先进行的一种推测。对于现实中大量存在的非线性、非平稳的复杂动力系统问题,需要确定合适的模型阶数,这是比较困难的,为了更好地解决这一困难,本论文通过建立在对人工鱼群算法和BP神经网络算法的掌握及应用在时间序列预测上,提出了基于人工鱼群算法和BP神经网络算法的时间序列预测系统模型[1]。

2.基于人工鱼群算法和BP神经网络的时间序列预测模型介绍

2.1 方法的引出

无论是在自然科学,还是在社会科学领域的实际工作者和研究人员都要和一系列的观测数据打交道,这些观测数据随时间变化而相互关联,其排列顺序与大小体现了不同时刻的观测值之间的相互联系,观测值之间的这种依赖关系或相关性,表征了产生这些数据的现象、过程或系统的某些时间变化特征和规律。我们把这些按照时间顺序产生和排列的观测数据序列称为时间序列。从系统意义上看,时间序列就是某一系统在不同时间(地点、条件等)的响应。在时间序列预测中,BP神经网络是最常使用的网络。BP网络是一种非线性神经网络,Robert Hecht Nielson已证明只有一个隐层的神经网络,只要隐节点足够多,就可以以任意精度逼近一个非线性函数[2]。

但是神经网络方法有它的缺点,比如:

(1)计算速度慢(计算量大,学习算法不成熟,不同的算法针对不同的问题收敛才快些)。

(2)输入信号与训练信号相差加大时,可能导致结果完全错误(不同的区域可能有不同的极值)。

因此可以将人工鱼群算法与BP神经网络相结合。人工鱼群(Artificial Fish-swarm Algorithm,AFSA)是一种基于模拟鱼群行为的优化算法,是由李晓磊等于2002年提出的一种新型的寻优算法。AFSA是一种新型的思路,从具体的实施算法到总体的设计理念,都不同于传统的设计和解决方法,但同时它又能与传统方法相融合。因此,AFSA自提出以来,得到了国内外学者的广泛关注,对算法的研究应用已经渗透到多个应用领域,并由解决一维静态优化问题发展到解决多维动态组合优化问题。AFSA己经成为交叉学科中一个非常活跃的前沿性研究问题[3]。

在基本人工鱼群算法(AFSA)中,主要是利用了鱼群的觅食、聚群和追尾行为,从构造单条鱼的底层行为做起,通过鱼群中各个体的局部寻优,达到全局最优值在群体中突现出来的目的。从目前对人工鱼群算法的研究来看,绝大部分集中在如何应用AFSA解决实际问题。通过深入研究和实践发现,AFSA虽然具有很多优良的特性,但它本身也还是存在一些问题,如随着人工鱼数目的增多,将会需求更多的存储空间,也会造成计算量的增长[4];对精确解的获取能力不够,只能得到系统的满意解域;当寻优的区域较大,或处于变化平坦的区域时,收敛到全局最优解的速度变慢,搜索效率劣化;算法一般在优化初期具有较快的收敛性,而后期却往往收敛较慢。这些算法本身存在的问题,在一定程度上也影响了算法的实际应用[5]。

在当今已经有许多的研究方向,首先采用人工鱼群算法拟合时间序列并求出大量的数据训练神经网络,弥补了历史数据缺乏的问题;然后用训练好的神经网络代替传统的最小二乘法拟合时间序列因素,从而求出预测值。仿真结果表明,此模型能够有效地改善模型的拟合能力并提高预测精度。为实现更好的预测,有时采用神经网络,但前馈神经网络结构难以确定,运用BP算法时又极易陷入局部解。本文将改进人工鱼群算法与BP算法相结合的IAFSA+BP算法,实现了人工鱼群算法的全局搜索能力与BP算法的局部寻优性能的互补结合。将所设计的神经网络利用MATLAB/SIMULINK进行传感器控制系统的建模仿真实验结果表明,该算法具有良好辨识效果[6]。

图1 基于人工鱼群算法和BP神经网络的计算流程

图2 基于BP神经网络时间序列预测模型的部分程序

2.2 方法的计算流程与实施步骤

由于BP神经网络存在对初始参数要求高、学习收敛速度慢,网络性能差,优化权值时容易陷入局部极小值等缺陷。而人工鱼群算法具有对初值和参数要求不高,克服局部极值、更好地协调全局和局部搜索能力等优点。因此,将人工鱼群算法与BP算法相结合的混合算法训练人工神经网络,可实现两种算法的取长补短。

构造人工鱼个体模型是改进人工鱼群算法优化训练BP神经网络关键,设人工鱼群规模为N,每个人工鱼看为一个前向神经网络,任意两人工鱼个体的和(U1+U2)或差(U1-U2)其中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网络,而该网络相应的权值和阈值等参数也是最佳的。其算法的适应函数表示如下:

基于人工鱼群算法的BP网络训练算法流程如下:

步骤一:输入人工鱼群的群体规模N,最大迭代次数number,人工鱼的可视域VISUAL,人工鱼的最大移动步长STEP,拥挤度因子δ。

步骤二:设置初始迭代次数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,{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。

图3 仿真结果

4.结语

本文给出了基于人工鱼群算法的BP神经网络的训练模型,并形成了一种新的BP网络训练算法。从试验结果比较分析可见:

(1)该方法具有较好的收敛性、初值不敏感和参数不敏感等特点;

(2)算法具有较快的收敛速度,算法收敛过程有明显优势。

(3)算法用于对时间序列的预测,其结果表明是可行的。如何更好地将觅食、聚群和追尾三种优化行为,体现在算法的处理上,以便使运算更加简单,还需要进一步提高。

[1]李晓磊,邵之江,钱积新.一种基于动物自治体的寻优模式:鱼群算法[J].系统工程理论与实践,2002,22(11):32-38.

[2]张冬,明新国等.基于BP神经网络和设备特性的工业设备备件需求预测[J].机械设计与研究,2010,26(1):72-77.

[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.

猜你喜欢

鱼群人工神经网络
人工3D脊髓能帮助瘫痪者重新行走?
人工,天然,合成
人工“美颜”
神经网络抑制无线通信干扰探究
鱼群漩涡
新型多孔钽人工种植牙
基于改进鱼群优化支持向量机的短期风电功率预测
基于人工鱼群算法的光伏阵列多峰MPPT控制策略
基于神经网络的拉矫机控制模型建立
复数神经网络在基于WiFi的室内LBS应用