改进粒子群优化BP神经网络的PM2.5预测

2021-12-23 04:35贾佳美池凯凯吴哲翔
计算机工程与设计 2021年12期
关键词:权值适应度种群

贾佳美,池凯凯+,吴哲翔

(1.浙江工业大学 计算机科学与技术学院,浙江 杭州 310000; 2.国网浙江省电力公司 金华供电公司,浙江 金华 321000)

0 引 言

随着工业化程度的提升,空气污染问题日益严重,尤其以直径小于2.5 μm的颗粒物为主,学名PM2.5,极大影响着居民的身体健康,带来心血管、支气管炎、哮喘等诸多呼吸类疾病。因此,对空气PM2.5浓度做出精确预测是预防疾病、指导高质量生活出行的关键步骤。

空气质量与污染的影响因素较为复杂,目前PM2.5浓度预测主要分为两种:机理模型和非机理模型。机理模型是基于物理化学原理对污染物的理化反应进行模拟分析,其预测准确度主要由污染源排放数值、空气质量监测数据等因素决定,如:预报模型[1]、多尺度质量模型[2]、多模式预报模型[3]等均是常用机理模型。机理模型预测的实时性较好,准确性也较高,但所涉及的空气、污染物等相关因素的理化反应较为复杂,成本高,实用性较差。非机理模型是基于机器学习和统计学的预测模型,通过历史数据特征发现变化规律,极大简化了PM2.5预测的相关影响因素,应用也越来越成熟。目前非机理预测模型主要有:多元线性回归模型[4,5]、支持向量机模型SVM[6,7]、灰色理论模型[8,9]和BP神经网络模型[10,11]等。多元线性回归和灰色理论模型在预测PM2.5上具有一定适用性,但由于影响PM2.5的污染物因子间具有相互作用,体现强烈非线性特征,故其预测准确度不高。相对而言,BP神经网络更加适用于具有明确非线性环境的预测模型,已广泛应用于诸多领域。如:文献[10]设计了基于BP神经网络的非线性回归PM2.5预测模型,将空气中的几种污染物考虑为神经网络的输入层节点数,但作者对BP神经网络本身易于陷入局部最优的不足未作优化。文献[11]同时考虑气象因素和大气污染物,通过融合粒子群优化和遗传优化对BP神经网络的权重和阈值进行寻优,提升了算法的收敛速度和预测准度,但对群体智能算法本身易于早熟的不足未作优化,这会导致神经网络训练出现“过训练”。文献[12]考虑大气环境的复杂多变和不确定性,利用遗传算法对支持向量机SVM进行参数寻优,进而完成对空气指数的实时预测。文献[13]引入混沌思想改进粒子群的寻优性能,再基于改进粒子群对BP神经网络的参数进行优化,以提升PM2.5预测模型的预测精度,但混沌仅提升了种群跳出局部最优的能力,种群的多样性、粒子的局部开发和全局搜索能力间的均衡,均没有得到改善,这样导致神经网络的训练质量依然有待改善。

对此,提出在改进粒子群寻优精度和效率基础上,设计改进BP神经网络训练模型,进而设计可用于空气PM2.5浓度预测的有效模型。具体做法是:利用改进的粒子群寻优机制对BP神经网络层次间的权值和阈值进行最优化求解,克服其易于陷入局部最优、收敛速度慢的不足,最后以配置最优参数的神经网络进行PM2.5浓度预测,提升预测准确度。最后选取某市某一时期的PM2.5日均浓度数据作为样本进行实验分析,验证了该预测模型和算法可以有效提升PM2.5浓度的预测精度,且算法迭代速度更快。

1 BP神经网络

BP神经网络是一种依据误差反向传播算法训练的多层次前馈神经网络,使用最为广泛,模型如图1所示。在信息正向传播中,若令输入样本为X={x1,x2,…,xn},它将顺次通过输入层、隐含层,最后传输至输出层。网络学习过程包括信息正向传播和误差反向传播,通过反复训练,迭代地在相对误差函数梯度下降的方向上,不断修正网络参数,使实际输出值向期望输出值迭代式逼近。图1中,V和W分别表示输入层与隐含层之间、隐含层与输出层之间的网络权值集,|W|=n×q,|V|=q×m。令网络输出为Y={y1,y2,…,ym},n为输入层节点数,q为隐含层节点数,m为输出层节点数。BP神经网络的数学模型和执行步骤可以参考相关文献,此处不做详细描述。

图1 BP神经网络模型

BP神经网络根据梯度下降法对输入层与隐含层权值、隐含层与输出层权值以及隐含层和输出层的阈值进行更新,但是其使用的方式对于历史权值和阈值没有记忆能力,在增加学习样本时,网络训练需要重新开始。这一特性使得传统的BP神经网络易于生成局部最优解,用于空气质量预测,会导致最终的PM2.5浓度预测值与期望值相差较远,其预测精度有待提高。

2 IPSO:融入混沌和对立学习的PSO

2.1 粒子群算法PSO

粒子群算法PSO是一种面向种群的随机寻优算法,实现了自然界中鸟群和鱼群的捕食社会行为,种群中每个个体称为一个粒子,群体成员通过自身及种群其它成员的搜索经验,不断改变搜索方向和位置,协作搜索最优目标。

(1)

(2)

2.2 改进粒子群算法IPSO

首先从初始种群分布、避免局部最优解以及均衡全局搜索与局部开发能力3个方面对传统PSO进行改进,从而获取更好的寻优性能:

(1)基于对立学习机制的种群初始化

传统PSO以随机方式进行种群初始化,逐步迭代搜索全局最优解。然而,PSO寻优速度与初始种群密切相关。当初始种群分布多样且包含较多优质解时,可以加快算法收敛。为此,算法在种群初始化中引入对立学习机制。对立学习通过同步考虑当前解及其对立解改善候选解质量,将随机初始解和对立解均考虑在初始种群中,不仅可以保证种群多样性,还可以加快搜索速度。以下对相关概念进行描述:

定义1 对立数。令x为[l,u]内的实数,其对立数x’为x’=u+l-x。

初始化步骤如下:

算法1

(1)输入:S个粒子

(2)输出:初始种群X

(3)随机生成规模S的初始种群{X}

(4)fori=1 toSdo//遍历所有粒子

(5)forj=1 toddo//遍历所有维度

(7)endfor

(8)endfor

(9)X’’=X∪X’//原始种群和对立粒子种群进行联立

(10)计算X’’的适应度,根据适应度对X’’做降序排列

(11)选择排序前S的粒子种群X作为最终初始种群

(2)融入混沌Tent映射的搜索机制

由粒子速度更新式(1)可知,速度更新通过两个随机变量r1和r2确保其多样性,但其全局勘探不够充分,易于陷入局部最优解。为此,引入混沌Tent映射机制改进粒子速度更新机制。混沌是一种非线性的动态随机非重复决策系统,表示对初始条件的敏感依赖性。由于混沌系统的可遍历性、非重复性,混沌序列可以实现比随机搜索(随机值r1、r2决定)更广泛的搜索过程。将混沌映射融入PSO可以增强算法搜索能力,更好预防局部最优。改进算法利用Tent混沌映射生成混沌序列,表示为

(3)

式中:混沌参数u=0.7。

气压传感器一旦发生了故障,就会导致气象站不能够准确获取气压信息,一般情况下气压传感器发生了故障之后需要及时进行断电处理,将气压传感器的供电电源快速切断。气压传感器的主要故障表现为气压值具体数值起伏不定,脱离正常的数值范围,此时就需要查看气压传感器的接线状况。首先需要检车各个部件的链接,以及通气口是否畅通,部分的故障是由通气口存在异物造成的。如果不是外界的因素影响到了气压传感器导致故障的产生,那么可能是传感器自身的老化和损坏,需要进行更换新设备。

利用混沌系统生成随机数序列提升粒子搜索速度,基本方法是:利用Tent映射生成的混沌序列替换速度更新中的随机值r。则改进粒子速度更新方式为

(4)

(3)自适应控制的惯性权重机制

惯性权重w决定先代粒子对于速度更新的影响。当w取值较大时,利于PSO的粒子全局勘探能力;当w取值较小时,则利于粒子的局部开发能力。而传统PSO的惯性权重w是定值模式,使得两种搜索模式切换缺乏平滑性,不利于均衡粒子搜索迭代中全局勘探和局部开发过程。算法引入自适应惯性权重机制,将惯性权重定义为

(5)

式中:wmax和wmin分别为惯性权重的最大值与最小值,t为当前迭代数,Tmax为最大迭代。由上式可知,在迭代初期,粒子具有更大的惯性权重,可以进行充分的全局搜索,确保种群多样性;迭代后期,惯性权重逐渐减小,局部开发能力增强,这样可以使算法更快收敛在最优解处。

3 基于IPSO-BP的PM2.5预测模型

基于IPSO-BP的PM2.5预测模型可分3个阶段:确定网络结构、改进粒子群优化BP神经网络和PM2.5浓度预测。

3.1 确定神经网络结构

确定BP神经网络结构(使用最为常用的3层结构),即确定神经网络的输入层、隐含层和输出层节点数量,即n-q-m。由于输出层的结果得到的是某一天的PM2.5浓度预测值,所以该层节点数m=1。输入层节点数决定于影响PM2.5的污染物因素和气象因素。研究表明,PM2.5的浓度在不同温度、风速、季节变化、降水、湿度以及空气中其它污染物平均浓度下显示出不同的变化。对于夏季高温天气,空气中污染物颗粒运动更加剧烈,扩展更快,因此其PM2.5日均浓度更低;而冬季低温天气下,日均PM2.5浓度是最高的,春秋两季较为接近,总体而言,PM2.5浓度值的季节排序是:冬季>秋季>春季>夏季。风速越快时,PM2.5污染物扩散越快,污染随之下降。而降水增加时,PM2.5颗粒物会随雨水下沉,相应污染也减轻。空气湿度越高时,空气流动减弱,不利于污染物扩展,PM2.5浓度越高。除以上气象因素外,空气中的其它污染物也会对PM2.5浓度产生影响。主要的空气污染物包括:二氧化硫SO2、臭氧O3、二氧化氮NO2、一氧化碳CO、PM10及往日PM2.5浓度等。

为了对输入变量进行筛选,引入平均影响值MIV方法评价相关因素的相关性,从而决定输入层节点数。选取温度、风速、降水量、空气湿度、SO2、CO、O3、NO2、PM10和PM2.5浓度作为原始数据,基于MIV方法进行输入变量筛选的具体过程是:首先,输入以上变量进行BP神经网络训练,以原值为基础将相应变量分别增加和减少10%,形成两个新样本数据;然后,利用原始数据训练过的神经网络对两个新样本数据进行测试,得出测试结果;最后,对于两次训练结果的差值,得出该变量的影响变化值IV,并求取在所有样本数据上的均值结果,即为一个影响因素所对应的MIV。根据文献[14]的研究结果,可选取MIV累计值在85%以上的变量作为筛选的变量数量。经过选取后文表1中某市某段时间内的气象数据和污染物数据,经过网络训练分析,以MIV累计值85%为临界点,最终选取SO2、CO、O3、NO2、PM10和PM2.5浓度、以及最低气温、最高气温、湿度作为影响PM2.5浓度的预测因子。因此,BP神经网络的输入层的节点对应于预测因子数量,即n=9。

对于隐含层的节点数,根据以下经验公式确定

(6)

式中:α为常量,取值范围为0<α<10。由此可见,隐含层节点数并不能提前准确预知,此时可根据试凑法以确保误差相对更小的原则确定其取值。依据选取相同样本进行测试,再根据均方差最小为原则,可得q=5为隐含层的最优节点数。

综上,BP神经网络的结构模型为9-5-1。此外,隐含层的激活函数使用tansig函数,输出层的激活函数使用purelin函数,学习函数和训练函数可以使用BP神经网络的默认函数即可。

3.2 基于改进粒子群优化的BP神经网络训练过程

利用改进粒子群优化算法IPSO实现对BP神经网络的优化,首先需要确定粒子位置的编码结构。由3.1节中确定的神经网络结构模型9-5-1可知,神经网络的权值数量为:输入层与隐含层间权值为9×5=45,隐含层与输出层间权值为5×1=5,则总权值数量为45+5=50;隐含层与输出层的阈值数量为5+1=6。在IPSO算法中采用实数值对粒子个体位置进行编码,维度d即对应于权值数量与阈值数量之和,为50+6=56。以下描述IPSO优化BP神经网络的具体步骤:

步骤1依据MIV方法,确定影响PM2.5浓度变化的污染物因素和气象因素,从而确定BP神经网络结构,包括输入层、隐含层和输出层的节点数,及相应激活函数、学习函数及训练函数。

步骤2初始化IPSO算法的初始参数,包括:种群规模S、权重最大值wmax、权重最小值wmin、与网络结构对应的粒子位置维度d、学习因子c1和c2、种群的最大迭代数Tmax、初始速度和位置、位置和速度范围[xmin,xmax]和[vmin,vmax]。

步骤3根据网络结构对粒子进行编码,以对立学习机制进行种群初始化。定义粒子适应度为BP神经网络预测的均方误差函数MSE,表示为

(7)

步骤4计算适应度,确定当前迭代的全局最优解gbest和个体最优解pbest;将当前pbest与前次迭代中所经历的局部最优作比较,若适应度更佳,则更新pbest;然后与全局最优作比较,若适应度更佳,则更新gbest;否则,均保持不变。

步骤5根据式(3)和式(5)重新计算Tent混沌值和惯性权重w,然后分别根据式(4)和式(2)更新粒子速度和位置。

步骤6判断个体位置维度是否越界,若出现越界,则以相应位置上下限修正粒子位置。

步骤7判断终止条件,若满足,返回至步骤4;否则,停止算法迭代,输出最优权值和阈值。

步骤8以步骤7生成的权值和阈值对BP神经网络初始化,并利用训练样本和测试样本检测预测精度,得到PM2.5浓度预测值。

3.3 基于IPSO-BP的PM2.5浓度预测

由于所筛选的9个预测因子的量纲不同,衡量单位不一,首先需要对数据进行归一化处理,将所有预测因子映射至统一区间[0,1]范围内。利用max-min映射函数进行数据归一化处理,函数形式如下

(8)

式中:z*表示预测因子归一化处理后的数值,z表示原始数值,min表示每个预测因子的最小值,max表示每个预测因子的最大值。

基于IPSO-BP模型的PM2.5浓度预测过程如图2所示。

图2 PM2.5浓度预测过程

4 实验分析

4.1 参数配置

通过Matlab进行仿真实验,选择传统BP神经网 络[10]、传统粒子群优化神经网络PSO-BP[11]以及遗传优化支持向量机GA-SVM[12]这3种预测模型进行实验对比分析。对于本文提出的IPSO-BP预测模型,参数设置如下:种群规模S=50,惯性权重最大值wmax=0.9,最小值wmin=0.4,两个学习因子c1=c2=1.5,粒子位置范围[-1,1],速度范围[-0.02,0.02],最大迭代数Tmax=400,混沌参数u=0.7,BP神经网络结构为9-6-1。为了公平性,PSO-BP算法的参数同上。对于GA-SVM预测模型的参数设置如下:交叉概率pc=0.4,变异概率pm=0.1。支持向量机SVM中,核函数参数设置为0.05,惩罚因子设置为5,不损失函数值为0.01,核函数采用径向基函数,交叉验证参数设置为5。对于传统BP神经网络预测模型,其参数可以使用系统库中的默认参数。另外,定义神经网络的训练目标误差为10-4,训练次数为2000次,学习率为0.1。

4.2 样本数据选取

选取环保部环境监测站空气质量发布平台中的提供的数据作为验证算法的数据源(通过Adroid手机天气预测App即可查询相应数据),选取某市在2017年5月1日~2017年7月31日一共92个样本数据进行实验观察。具体数据包括3个气象数据(最低气温、最高气温和空气相对湿度)和大气中6个污染物浓度数据(SO2、CO、O3、NO2、PM10和PM2.5)。数据简况见表1,由于篇幅限制,未将数据全部列出。

表1 原始样本数据

表1中,6个污染物浓度数据的单位是μg/m3,气温单位为℃,湿度为相对湿度,单位%。样本数据值均为日均值。将以上92个样本数据进行归一化处理后,将数据随机均分为两组,每组数据46个样本,一组作为训练样本进行IPSO-BP模型中神经网络的训练,另一组作为测试样本检验IPSO-BP对于PM2.5浓度预测的准确性。

4.3 评价指标

除了选取PM2.5浓度的实际值与预测值、个体适应度作为预测模型的评价指标外,引一步引入平均相对误差MAPE(单位为%)、平均绝对误差MAE(单位为μg/m3)和均方根误差RMSE(单位为μg/m3)进行比较,全方位比较预测精度。3个指标分别定义为

(9)

(10)

(11)

4.4 结果分析

选取样本数据中一个10天的时间段进行PM2.5浓度预测,选择为6月的前10天进行预测。4种算法的预测结果如图3所示。表2是4种算法的MAPE、MAE和RMSE这3个指标的统计结果。可以看到,不同的训练方法对于BP神经网络的预测精度还是具有较大影响的,IPSO-BP得到的浓度预测值是4种算法模型中最接近其实际值的,其预测精度通过改进的粒子群寻优性能得到了有效的提升。从平均相对误差指标上看,仅有本文IPSO-BP和GA-SVM得到的相对误差在10%以下,小于10%的误差说明预测精度是较为可观的,高于20%的误差基本可以认为其预测过程是较为失败的。除了6月的前10天的预测数据,作者还对46个样本中的剩余36个数据进行预测实验分析,最终得到平均相对误差指标低于10%的有28组,剩余8组的MAPE水平介于10%~15%之间,说明高精度预测占据全部预测样本的80%左右。以上结果表明IPSO-BP模型在预测PM2.5浓度上是有效可行的,较3种对比模型可以明显提升预测精度。

图3 PM2.5浓度的实际值与预测值对比

表2 指标统计结果

除了预测精度,进一步通过适应度的变化观察模型的收敛速度和效率表现,结果如图4所示。由适应度式(7)可知,适应度取值越小,说明模型对于PM2.5浓度的预测误差越小,表明模型性能越优秀。从结果可以看到,本文的IPSO-BP模型得到的适应度均值是最小的,且可在约200次迭代时搜索到最优值,说明此时求得了神经网络模型的最优权重和阈值。BP神经网络模型、PSO-BP模型、GA-SVM模型收敛的迭代数分别在约310次、280次和250次。综合来看,对于粒子群优化在种群初始化操作、粒子速度更新以及惯性权重3个方面的改进可以较好改善算法的寻优精度和收敛速度,进化更好地实现BP神经网络的训练和学习过程,对PM2.5浓度做出更精准的预测。

图4 模型的适应度均值

5 结束语

为了准确预测空气中PM2.5的浓度,本文提出在改进粒子群寻优精度和效率的基础上,设计优化的BP神经网络模型,进而设计新的PM2.5浓度预测模型。具体地,利用改进的粒子群寻优机制对BP神经网络层次间的权值和阈值进行最优化求解,克服其易于陷入局部最优、收敛速度慢的不足,最后以配置最优参数的神经网络进行PM2.5预测,有效避免神经网络训练时陷入局部最优,提升预测准确度。选取某市一个时段的PM2.5日均浓度数据作为样本进行实验分析,结果表明,IPSO-BP不仅收敛速度更快,而且预测精度更高。进一步的研究可以考虑健全预测因子,并结合空间因素对PM2.5浓度进行预测,从而进一步提升预测精度。

猜你喜欢
权值适应度种群
改进的自适应复制、交叉和突变遗传算法
山西省发现刺五加种群分布
一种融合时间权值和用户行为序列的电影推荐模型
CONTENTS
中华蜂种群急剧萎缩的生态人类学探讨
一种基于改进适应度的多机器人协作策略
基于权值动量的RBM加速学习算法研究
基于多维度特征权值动态更新的用户推荐模型研究
基于空调导风板成型工艺的Kriging模型适应度研究
岗更湖鲤鱼的种群特征