APP下载

基于改进遗传算法优化BP神经网络的销售预测模型①

2019-12-20圣文顺赵翰驰孙艳文

计算机系统应用 2019年12期
关键词:预测值遗传算法神经网络

圣文顺,赵翰驰,孙艳文

1(南京工业大学浦江学院,南京 211200)

2(河海大学 计算机与信息学院,南京 210008)

随着经济环境的高速发展,众多企业步入科学化管理时代,但企业管理人员对企业的销售预测管理方面仍有疏漏,甚至出现了各种问题.比如管理人员常用的销售预测模型为专家法,就是靠有经验者的从事经验来对销售进行人为主观预测,与本文提出的改进BP神经网络算法相比有这快速、简单的优点.但同时也有不可弥补的缺点,每位专家的预测可能不一样,带有严重的差异性与客观上的不可靠性.还有时间序列方法中最为简单的指数平滑法[1],通过不同的权重来控制预测的精度,但是随着预测时间的延长精确率会大打折扣.再者如ARIMA模型,相对于前两者就较为复杂,其原理是利用历史销量对未来销量进行预测,但是ARIMA模型的建立,需要数据集具有趋势性强的特点,对于趋势性弱的数据集,则通过ARIMA模型得到的结果预测效果也不理想.

作者就以上3种预测方法的优缺点,提出进行改进优化后的BP神经网络算法预测模型,同时利用指数平滑法和遗传算法模型得到的结果与改进后的BP神经网络算法进行对比实验,以验证其在准确度、对数据集趋势性依赖强度、预测时间长度失准度方面的优化提升.

1 优化BP神经网络的算法设计基础

1.1 时间序列模型

时间序列,是一组按时间顺序排列并随时间的变化而变化的数据序列[2].一个时间序列往往是由上两点或多点以变化的方式叠加或耦合起来的.

所选择的二次指数平滑法[3]处理数据可预防实际在时间序列出现直线形式的上下波动时产生的“滞后”现象[4],并能自动识别数据模式的变化,加以调整.

1.2 BP神经网络

BP神经网络是带有隐含层的多层前馈网络,是一种误差反向传播算法[5].此算法由信息正向传递和误差反向传播组成,其基本原理是不停地修正网络中各层节点的权值、阈值,直到网络输出达到目标输出值,且具有很好的泛化能力.

2 优化BP神经网络的具体算法设计

2.1 算法原理

可泛化型时间序列校正下的遗传算法优化BP神经网络预测模型(简称TC_GA_BP神经网络预测模型),使用了合并传统BP神经网络以及遗传算法[6-8]对BP神经网络进行改进,利用时间序列预测值和改进后的GA_BP神经网络[9-11]进行“误差值”比较,利用时间序列模型预测结果误差呈增函数关系的特点,使用其与GA_BP神经网络的差值进行一元线性回归[12,13],讨论出两者之间误差值的函数拟合关系,再利用拟合函数[14]进行误差测算,最后通过两者误差规律,校正其中一者的预测值,这里选择对GA_BP神经网络的预测值进行校正,从而最后得到校正后的预测值.

已知BP神经网络算法的收敛速度较慢是由于BP神经网络算法究其本质是梯度下降法,因为需要优化的目标函数非常复杂,所以出现“锯齿形现象”在所难免,这会使得BP算法低效.与此同时正也因为目标函数的复杂,BP网络的神经元输出在接近0或1的情况下,会出现一些平坦区,在这些平坦区内,权值误差变化很小,使训练过程几乎停滞.再者为了使网络执行BP算法,必须预先赋予网络的步长更新规则,这样也会使得算法低效.就此引发出利用遗传算法优化BP神经网络的优化方式.

而在面临小数据量的处理情况时,由每个个体独立讨论是有可能利用线性关系处理非线性问题,真实值与预测值之间一定会存在误差.故令距离为d,那么就有dtr为时间序列预测与真实值之间的误差,dnr为改进后BP神经网络与真实值之间的误差,会出现数值大小关系上不同的6种情况.

为解决此问题,对时间与真实值之间的误差dtr和改进后BP神经网络与真实值之间的误差dnr进行一次减法运算,距离令为dtn,对dtn与试验次数之间进行一元线性回归,线性回归的函数关系结果,视为自校正函数的核心部分,得到的一元回归模型忽略随机扰动项并记总体回归系数为 α.

得到了一元回归模型的具体表达,利用时间序列预测值减去回归模型得出的对应误差量,得出修正E值,即可以用来的再次优化GA_BP神经网络的传递权值和各个神经元的阈值,以达到利用校正函数[15]修正GA_BP神经网络的目的.

在GA_BP神经网络的优化后,依旧存在步长 η的选择问题,过大的 η会导致收敛过快引起不稳定,过小的 η虽然避免了不稳定,但是收敛速度就会很慢.此时针对于利用增加优化因子 α的方法再对GA_BP算法进行二次优化,利用该动量有效的改变 η的值,使得 η不再是一个恒定的值,引入这个优化因子之后,使得调节向着底部的平均方向变化,不至于产生大的摆动,即优化因子起到缓冲平滑的作用.若系统进入误差函数面的平坦区,那么误差将变化很小,于是 Δw(t+1)近似于Δw(t),而平均的 Δw将变为:其中系数变得更为有效,使调节尽快脱离饱和区,具体在算法中加入“优化因子”的关系式,见式(1):

其中,第二项是传统BP神经网络的修正量,第一项就是上文提及的优化因子,α为某一个正数优化因子具体所起作用就是:当顺序加入训练样本时,上式可写成以t为变量的时间序列,t取0到n,因此,上式可看做是Δwij的一阶差分方程,对Δwij(n)求解,见式(2):

结合上面分析结果,二次改进后wij=wij-ηdjOi的简单形式,见式(3):

其中,O为各层元素的实际输出值.

经过对GA_BP神经网络预测值修正后,可以得到误差平方和Ec,及E的修正值.利用数学方法,对GA_BP神经网络的权值与阈值进行再一次带有优化因子的优化,步骤如下:

已知输出层的输出误差Ec,见式(4):

其中,W为权矢量,X为输入矢量,yj为期望输出.展开至隐层误差Ec,见式(5):

最后推导至输入层Ec,见式(6):

根据误差就可以得出权值函数wc和vc.最后成功通过再一次的权值和阈值调整来更新校正函数,修正GA_BP神经网络,得到TC_GA_BP神经网络.

2.2 算法构建

基于优化BP神经网络的流程图如图1所示.

图1 基于优化BP神经网络的流程图

3 优化BP神经网络在Kaggle竞赛数据集中的应用

利用上文提到的算法对Kaggle竞赛数据集[16]进行销售预测.

3.1 时间序列仿真实验

使用由Kaggle竞赛提供的Restaurant Revenue Prediction数据集,抽取其中的一家名为“Stanbul”的餐厅作为实验对象进行仿真实验.利用已有销售额统计的50条数据,使用时间序列预测模型的二次指数平滑法对其进行时间序列仿真预测,而且与一次指数平滑法的结果做对比仿真结果如图2、图3.

图2 一次平滑指数预测图

图3 二次平滑指数预测图

经过试验,实验结果与理论预测完全符合,一次指数平滑法在25个数据集仿真结果中,出现了大量的滞后反应,无论α=0.2,α=0.5还是α=0.8都无法改变滞后反映,这也正体现了二次指数平滑预测较高的准确度(误差率25.7471%),为下文提供了可行方案.

3.2 算法实现过程

将优化后的 BP 神经网络算法,与经典 BP 神经网络、时间序列模型、遗传算法改进神经网络进行销售预测的比较.在已有销售额统计的50条数据中,抽取其中的25条作为仿真训练集,剩余的25条作为仿真验证集,用于验证误差.3种算法的误差对比分析如图4、图5和图6所示.

图4 传统BP神经网络预测图(误差为50.2401%)

图5 遗传算法BP神经网络预测图(误差为23.629%)

图6 TC_GA_BP神经网络预测图(误差为12.088%)

由图像直观看出,在相应的被修正点上,预测值比遗传算法改进BP神经网络的结果预测值更为接近真实值结果,而误差率也降至约12%,提高近11%.由此可知,新提出的TC_GA_BP神经网络模型的预测输出结果,在预测的准确度上大大改善,比另外3种模型的预测更加接近未来真实值.

3.3 结果分析

部分预测结果如表1所示.

表1 预测结果对比

统计数据表明,TC_GA_BP神经网络预测模型的仿真效果最好,达到12.088%;而传统BP神经网络的结果误差最大,达到50.2401%,被认为是不可信的预测模型;时间序列预测模型和改进后的BP神经网络都有良好的仿真实验,但仍没达到TC_GA_BP神经网络的预测精度.因此TC_GA_BP神经网络在同属性的数据集预测上优于其他3种预测模型.

4 总结与展望

文章首先采用时间序列模型减少源数据的误差,利用优化后的BP 神经网络,建立起适当的销售预测模型,并具体应用于某数据集中.实验表明优化后的 BP神经网络算法在提高了预测准确度和收敛速度的同时,也简化了网络结构,减少了数据的误差.由于可利用于训练网络的数据量太少,导致网络训练情况不佳,达到的准确度不是太高.如需进一步的深入研究,可考虑在现有算法基础上训练更多的数据集.

猜你喜欢

预测值遗传算法神经网络
基于神经网络的船舶电力系统故障诊断方法
基于改进遗传算法的航空集装箱装载优化
MIV-PSO-BP神经网络用户热负荷预测
加拿大农业部下调2021/22年度油菜籽和小麦产量预测值
基于改进Hopfield神经网络的对地攻击型无人机自主能力评价
基于改进遗传算法的航空集装箱装载问题研究
基于遗传算法的高精度事故重建与损伤分析
AI讲座:ML的分类方法
自体荧光内镜对消化道肿瘤诊断临床应用分析
物流配送车辆路径的免疫遗传算法探讨