基于改进粒子群算法的平房仓粮温BP神经网络预测方法与流程

文档序号:23263479发布日期:2020-12-11 18:53阅读:141来源:国知局
基于改进粒子群算法的平房仓粮温BP神经网络预测方法与流程

本发明属于粮食质量检测领域,具体涉及基于改进粒子群算法的平房仓粮温bp神经网络预测方法。



背景技术:

目前我国的粮食储存大多数以平房仓为主要仓型进行储粮;平房仓有着容量大,防潮隔热性能较好等优点,并在不同间隔位置设有粮温监控点以及通风散热等系统,这大大地提高了粮食储存的安全性和可靠性。由于平房仓内部粮食储量大,并且粮食的传热速度慢,平房仓内部粮食被外部粮食包裹,使得内部存在一个冷心,起到一个很好的保温效果。但外部粮食受到外界温度变化的影响,可能会存在局部持续发热的情况出现,加快微生物繁殖生长,最终导致粮食霉变,从而影响粮食的品质,对粮食的储存产生危害。因此,为了保证平房仓内储存的粮食品质,预防不正常粮温的出现,粮食温度的预测模型的研究和应用就十分有意义。

传统的bp神经网络是一种多层前馈神经网络,其主要特点在于信号正向传播;通过反向误差传播不断修正神经网络内部的权值和阈值来实现神经网络的搭建。但在迭代的过程中容易出现局部极值,从而造成神经网络识别能力不足。



技术实现要素:

为了解决现有技术中的不足,本发明通过引入改进的粒子群算法对bp神经网络中的权值和阈值进行不断优化,旨在提供基于改进粒子群算法的平房仓粮温bp神经网络预测方法,能有效提高传统bp神经网络的识别能力与学习能力,并且本发明改进后的粒子群算法拥有更好的局部寻优能力和全局寻优能力,使优化后的bp神经网络能快速的从历史粮温中总结方形仓粮温变化规律,实现平房仓粮温的预测,方法紧凑,预测效果好,能实现提前监测不正常粮温的出现,提前采取防护措施,将会大大地减少了粮食储存消耗,保证了储粮的品质。

为实现上述目的,本发明提供了如下的技术方案:

基于改进粒子群算法的平房仓粮温bp神经网络预测方法,所述方法包括以下步骤:

1)对平房仓历史的粮食温度进行数据采集与整理、数据预处理;

2)初始化bp神经网络和改进的粒子群算法的各项参数;

3)通过改进的粒子群优化bp神经网络权值建立平房仓粮温预测模型,并输出粮温预测结果。

进一步的,步骤1)中平房仓粮食温度数据采集与整理具体包括:

通过平房仓内的粮食温度监测点实时监控来获取粮仓粮食内部不同位置的温度,平房仓内部设有a层温度监测层,每一层有包含b个温度监测点,其中a≥1,b≥1;

平房仓粮食温度初步选取的测温点数据分为两个部分,第一部分选取靠近平房仓四周墙壁、顶层和底层位置处,此为边界温度监测点;第二部分选取平房仓中间位置,其为中部温度测点;通过对不同位置的温度监测点的粮食温度数据进行训练、预测,建立不同温度监控点的预测模型;

所述数据的预处理具体包括:

选取两年的平房仓粮食温度的数据,将其中一年的粮食温度数据作为训练集建立预测模型,另一年的粮食温度数据作为测试集来检验模型的预测效果;利用归一化的方法对初始数据进行处理,公式为:

y=(x-xmin)(xmax-xmin)(1)

其中x为实际的粮食温度;xmin和xmax分别为输入的最小值和最大值;y为归一化的输出向量;上式将数据归一化到[0,1]区间内,预测结束后再将数据反归一化为实际数据;

预测模型的输入由是k个历史时刻的粮食温度组成的,通过这些历史数据来预测下一时刻的目标值;下一时刻的真实测量值则作为输入进行滚动预测,以此类推,直到整个时间序列预测完成;模型预测的策略如表1所示;

表1:模型预测的策略

其中k为选取的历史时间步长;为模型的预测粮温。

进一步的,步骤2)中初始化bp神经网络各项参数时,采用的bp神经网络预测模型具体为:

通过设定初始的阈值和权值以及一定数目的迭代次数来训练bp神经网络来获取预测模型,在第t次迭代的正向传播中,其隐含层的第j个神经元的输出结果如下:

其中选取的激励函数f1和f2为sigmoid函数;ij为第j个隐含层输出;yk为第k个输出层神经元的输出;e(t)为损失函数;dk(t)为实际值;ek为第k个输出层神经元的输出误差值;

则其第t+1次迭代的反向传播为

其中xi为第i个输入;ωij为输入层到隐含层的连接权值;ωjk为隐含层到输出层的连接权值;α和β为阈值;ij为第j个隐含层输出;m和n为隐含层和输出层神经元个数;δ(t)为输出层到隐含层的误差项;φ(t)为隐含层到输入层的误差项;η为学习率;dk(t)为实际值;yk为第k个输出层神经元的输出;ek为第k个输出层神经元的输出误差值;

其中,初始化改进的粒子群算法的参数时,采用粒子群算法具体为:

通过优化一群粒子,然后不断迭代并跟踪当前最优的粒子来搜索最优值;首先设多维搜索空间中,存在m个粒子构成一个群体,在第t次迭代中,第i个粒子的速度和位置为xi,t和vi,t,粒子通过两个最优解来更新自己的合适位置和速度;这两个最优解分别为粒子自身找寻的最优解即个体极值pi和整个种群当前找寻的最优解即全局最优解gi;在迭代过程中,粒子通过公式(8)和(9)进行更新自己的速度和新的位置:

vi,t+1=w·vi,t+1+c1·rand·(pi-xi,t)+c2·rand·(gi-xi,t)(8)

xi,t+1=xi,t+λ·vi,t+1(9)

其中w为惯性权重;rand为[0,1]之间的任意随机数;c1和c2为学习因子;λ为速度系数并且λ=1;

改进的粒子群算法具体为:

采用非线性变化的惯性权重代替固定的惯性权重来提高粒子群算法的性能;因此新的非线性变化的惯性权重表达式如下:

其中wmin和wmax分别为惯性权重w的最小值和最大值;t为当前迭代次数;tmax为最大迭代次数;当t较小时,w接近于wmax,并且w的减少速度也较慢;随着t增大,w以非线性变化递减且w的减少速度加快;通过多次迭代,不断更新全局极值和个体极值,得到bp神经网络的最优权值和阈值参数。

进一步的,步骤3)中建立平房仓粮温预测模型具体为;

通过bp神经网络训练样本得到的预测均方根误差作为粒子群适应度函数,通过步骤2)中多次迭代后得到的bp神经网络最优权值和阈值参数,建立平房仓粮温预测模型;具体步骤如下:

31)设计bp神经网络各层神经元节点数;其中预测模型设置bp神经网络输入层神经元个数为3;隐含层神经元个数设置为10;输出层神经元个数为1;

32)将bp神经网络的初始权值和阈值转化成粒子群算法中的粒子,随机初始化粒子的速度vi和位置xi,将预测结果与实际值的平方和作为适应度值,

其中和yi分别是预测值和真实值;k为误差放大系数;

33)通过改进的粒子群算法计算个体和全局的最优极值,得到的最优初始权值和阈值即神经网络的最优初始权值和阈值;具体计算公式如(8)(9)(10);学习因子c1=c2=2,最大和最小的惯性权重分别为wmax=0.9;wmin=0.1;最大迭代次数tmax=2000。

34)将优化得到的最优极值即最优初始权值和阈值矩阵代入bp神经网络公式(5)(6)(7)中,用训练数据和测试数据分别对神经网络训练和测试,输出预测结果,预测模型建立完成。

本发明具有的有益效果为:

本发明较传统的bp神经网络预测拥有更精确的预测精度,更小的预测误差;针对平房仓内部不同温度监测点处的粮食温度建立预测模型,对仓内不同位置的粮食温度进行细化,可以更精确的定位到不正常粮温出现了位置,提高了设备利用率,设备利用率和管理人员工作效率进一步提高,有效提升了仓储管理的精细化程度,为保证储粮的品质和安全提供了保障。特别的,本发明克服了平房仓传统bp神经网络温度预测算法的收敛速度缓慢、易陷入局部极值、预测精度低的缺点,能够实现对平房仓粮食温度的精准预测,对不正常粮食温度的出现提前预测,对监控粮食的质量提供参考依据,大大减少了粮食发生霉变的可能性。

附图说明

图1为平房仓内部温度监测点分布的俯视图;

图2为bp神经网络内部结构图;

图3为建立基于改进的粒子群算法优化的bp神经网络预测模型的流程图;

图4为2019年平房仓1号第一层的温度监测点处的粮食温度预测对比图;

图5为2019年平房仓1号第三层的温度监测点处的粮食温度预测对比图;

图6为2019年平房仓5号第二层的温度监测点处的粮食温度预测对比图;

图7为2019年平房仓5号第四层的温度监测点处的粮食温度预测对比图;

图8为2019年平房仓30号第一层的温度监测点处的粮食温度预测对比图;

图9为2019年平房仓30号第三层的温度监测点处的粮食温度预测对比图;

图10为2019年平房仓52号第二层的温度监测点处的粮食温度预测对比图;

图11为2019年平房仓52号第四层的温度监测点处的粮食温度预测对比图;

图12为2019年平房仓56号第二层的温度监测点处的粮食温度预测对比图;

图13为2019年平房仓56号第四层的温度监测点处的粮食温度预测对比图;

图14为2019年平房仓75号第一层的温度监测点处的粮食温度预测对比图;

图15为2019年平房仓75号第三层的温度监测点处的粮食温度预测对比图;

图16为2019年平房仓104号第二层的温度监测点处的粮食温度预测对比图;

图17为2019年平房仓104号第四层的温度监测点处的粮食温度预测对比图。

具体实施方式

本发明提出了基于改进粒子群算法的平房仓粮温bp神经网络预测方法,该方法包括以下步骤:

步骤1)对平房仓历史的粮食温度进行数据采集与整理、数据预处理。

其中平房仓粮食温度数据采集与整理具体包括:

通过平房仓内的粮食温度监测点实时监控来获取粮仓粮食内部不同位置的温度,,其中平房仓内部的温度监测点分布俯视图如图1所示,平房仓内部设有4层温度监测层,每一层有包含104(8×13)个温度监测点。

考虑到平房仓内部粮食中间的冷心作用,使得中间位置的粮食受外界环境的影响较小,而粮仓四周的粮食受外界环境的影响较大。平房仓粮食温度初步选取的测温点数据分为两个部分,第一部分选取靠近平房仓四周墙壁、顶层和底层位置处,此为边界温度监测点;第二部分选取平房仓中间位置,其为中部温度测点;通过对不同位置的温度监测点的粮食温度数据进行训练、预测,建立不同温度监控点的预测模型,以实现对不同温度监控点位置粮食温度的精确预测。

数据的预处理具体包括:

本发明选取现有平房仓2018年和2019年两年的平房仓粮食温度的数据,将2018年的粮食温度数据作为训练集建立预测模型,2019年的粮食温度数据作为测试集来检验模型的预测效果。利用归一化的方法对初始数据进行处理,公式为:

y=(x-xmin)(xmax-xmin)(12)

其中x为实际的粮食温度;xmin和xmax分别为输入的最小值和最大值;y为归一化的输出向量;上式将数据归一化到[0,1]区间内,预测结束后再将数据反归一化为实际数据。

预测模型的输入由是k个历史时刻的粮食温度组成的,通过这些历史数据来预测下一时刻的目标值;下一时刻的真实测量值则作为输入进行滚动预测,以此类推,直到整个时间序列预测完成;模型预测的策略如表1所示;

表1:模型预测的策略

其中k为选取的历史时间步长;本发明中设定k=3。为模型的预测粮温。

步骤2)初始化bp神经网络和改进的粒子群算法的各项参数。

其中bp(backpropagation)神经网络全称为误差反向传播神经网络,包含输入层、隐含层和输出层构成。同一层的节点之间互不相连,而不同层之间全部互联,输入层、输出层的节点数的选取通常取决于输入及输出向量的维数,隐含层节点数目没有明确的规定,通常根据实际情况来确定。bp神经网络具有能逼近任意一个非线性映射函数的特性,且无需建立数学解析式模型,因此在预测方面的应用最为广泛。其网络结构如图2所示。

因此,在初始化bp神经网络各项参数时,建立的bp神经网络预测模型具体为:

bp神经网络是将训练出的所有信息以神经元节点权值和阈值的形式存放在训练网络中,通过正向传播和反向传播不断迭代,从而使该网络有较好的自学习效果和泛化能力。本发明将2018年平房仓粮食温度的数据作为训练集,通过设定初始的阈值和权值以及一定数目的迭代次数来训练bp神经网络来获取预测模型,在第t次迭代的正向传播中,其隐含层的第j个神经元的输出结果如下:

其中选取的激励函数f1和f2为sigmoid函数;ij为第j个隐含层输出;yk为第k个输出层神经元的输出;e(t)为损失函数;dk(t)为实际值;ek为第k个输出层神经元的输出误差值。

则其第t+1次迭代的反向传播为

其中xi为第i个输入;ωij为输入层到隐含层的连接权值;ωjk为隐含层到输出层的连接权值;α和β为阈值;ij为第j个隐含层输出;m和n为隐含层和输出层神经元个数;δ(t)为输出层到隐含层的误差项;φ(t)为隐含层到输入层的误差项;η为学习率;dk(t)为实际值;yk为第k个输出层神经元的输出;ek为第k个输出层神经元的输出误差值。

粒子群算法原理:

粒子群优化算法(ps0)是一种基于群体智能理论的优化算法,首先通过优化一群粒子,然后不断迭代并跟踪当前最优的粒子来搜索最优值。设多维搜索空间中,存在m个粒子构成一个群体,在第t次迭代中,第i个粒子的速度和位置为xi,t和vi,t,粒子通过两个最优解来更新自己的合适位置和速度;这两个最优解分别为粒子自身找寻的最优解即个体极值pi和整个种群当前找寻的最优解即全局最优解gi。在迭代过程中,粒子通过公式(8)和(9)进行更新自己的速度和新的位置:

vi,t+1=w·vi,t+1+c1·rand·(pi-xi,t)+c2·rand·(gi-xi,t)(19)

xi,t+1=xi,t+λ·vi,t+1(20)

其中w为惯性权重;rand为[0,1]之间的任意随机数;c1和c2为学习因子;λ为速度系数并且λ=1。

本发明改进后的粒子群权重优化算法:

由于基本的粒子群算法的收敛速度和全局迅优能力有限,本发明采用非线性变化的惯性权重代替固定的惯性权重来提高粒子群算法的性能。新的非线性变化的惯性权重表达式如下:

其中wmin和wmax分别为惯性权重w的最小值和最大值;t为当前迭代次数;tmax为最大迭代次数。当t较小时,w接近于wmax,并且w的减少速度也较慢,这保证了粒子群算法的全局寻优能力;随着t增大,w以非线性变化递减且w的减少速度加快,提高了粒子群算法的局部寻优能力,从而使改进的粒子群算法能更灵活地调整局部寻优能力和全局寻优能力。

通过多次迭代,不断更新全局极值和个体极值,得到bp神经网络的最优权值和阈值参数。

步骤3)通过改进的粒子群优化bp神经网络权值建立平房仓粮温预测模型,并输出粮温预测结果。

建立平房仓粮温预测模型具体为;

改进的粒子群算法优化的bp神经网络是通过bp神经网络训练样本得到的预测均方根误差作为粒子群适应度函数,通过多次迭代,不断更新全局极值和个体极值,从而得到bp神经网络的最优权值和阈值参数,建立平房仓粮温预测模型。如图3所示,具体步骤如下:

31)设计bp神经网络各层神经元节点数;其中预测模型设置bp神经网络输入层神经元个数为3;隐含层神经元个数设置为10;输出层神经元个数为1,训练目标取0.0001,迭代次数设置为1000次。

32)将bp神经网络的初始权值和阈值转化成粒子群算法中的粒子,随机初始化粒子的速度vi和位置xi,将预测结果与实际值的平方和作为适应度值,

其中和yi分别是预测值和真实值;k为误差放大系数。

33)通过改进的粒子群算法计算个体和全局的最优极值,得到的最优初始权值和阈值即神经网络的最优初始权值和阈值;具体计算公式如(8)(9)(10);种群数量为5;进化次数为20,学习因子c1=c2=2,最大和最小的惯性权重分别为wmax=0.9;wmin=0.1;最大迭代次数tmax=2000。

34)将优化得到的最优极值即最优初始权值和阈值矩阵代入bp神经网络公式(5)(6)(7)中,用训练数据和测试数据分别对神经网络训练和测试,输出预测结果,预测模型建立完成。效果评估:

通过不同的误差评价指标对比本发明与传统bp神经网络的预测效果。

为了对比本发明与bp神经网络预测的效果,保证预测结果的精确性和可靠性,在粮食温度预测效果的评测上,选取平均绝对误差(mae)和均方根误差(rmse)来表示,公式为:

其中n为平房仓实际粮温的样本数目。本发明的预测模型与bp神经网络在不同位置的粮温监测点处的预测误差对比如表2所示,

表2:本发明预测模型与bp神经网络在不同位置的粮温监测点处的预测误差对比

通过改进的粒子群算法对bp神经网络的阈值和权值进行优化来建立平房仓粮食温度的预测模型,并对所建立的预测模型与bp神经网络预测对比进行误差效果评估。

图4-17为本发明与bp神经网络预测对比图,由图可知本发明较bp神经网络预测有更好的预测效果;同时表2对两种预测方法进行了误差数值分析,由表2可知本发明的预测方法较bp神经网络预测有更小的平均绝对误差和均方根误差,预测结果更加精确。因此本发明可以更好地实现对平房仓内部粮食温度的提前预测,预防不正常粮温和粮食霉变的出现,更好地保证了平房仓内部粮食的品质。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1