APP下载

基于CPSO-BP神经网络的PM2.5浓度预测模型

2020-04-25王腾军刘帅令

甘肃科学学报 2020年2期
关键词:种群次数粒子

张 立,王腾军,刘帅令,方 珂

(长安大学地质工程与测绘学院,陕西 西安 710054)

近年来,由于我国工业化程度不断的提高,导致空气中颗粒污染物的浓度不断加大,尤其是空气动力学直径<2.5 μm的颗粒物PM2.5。PM2.5进入人的呼吸系统后,容易引发哮喘、支气管炎和心血管病等方面的疾病,并且已经引起了政府以及研究人员的高度重视。因此如何对PM2.5浓度做出准确以及高效的预测对人类的生产、生活及出行具有重要的实践意义。

付倩娆[1]采用散点图筛选出主要影响因子,建立了多元线性回归模型预测北京市PM2.5日均浓度,但由于多元线性回归模型难以顾及各影响因素之间的非线性关系,故预测精度较低。李祥等[2]采用自回归移动平均模型(ARMA,auto re-ressive and moving average)用于短期内空气污染物浓度的预测,但该模型很难对特定的数据构造合适的模型,对模型的应用受到一定的限制。苏筱倩等[3]采用支持向量机(SVMR,support vector machine regression)分别预报了南京工业区03的小时值、日最大值和最大8小时滑动平均值,但是该模型很难对大规模样本进行实施。李朝阳等[4]采用GM(1,1)模型,对乌鲁木齐未来4 a的环境空气质量进行了预测分析,但该模型对原始数据的要求较高,当原始数据波动较大时预测精度往往较低。

BP神经网络是一种机器学习方法,由于它具有实现复杂非线性映射的功能,这使它特别适合去解决内部机理问题,因此利用BP神经网络去预测PM2.5浓度相比于其他方法有一定的优势。例如王敏等[5]针对PM2.5日均浓度采用BP神经网络预测了研究区域空气中PM2.5浓度的空间变异,较常规方法相比取得了不错的预测结果。但是传统BP神经网络是一个弱预测器,往往会陷入局部最优解的问题,因此模型预测精度有待提高。

为此研究采用混沌粒子群(CPSO,chaos particle swarm optimization)算法对传统BP神经网络的初始权值和阈值进行优化,可以有效避免神经网络易陷入局部最优解的问题,以达到提高PM2.5浓度预测精度的目的。

1 CPSO-BP神经网络模型的建立

1.1 MIV算法

平均影响值(MIV,mean impact value)算法是目前在神经网络应用中评价变量相关性最好的指标之一[6]。该算法可用于确定输入变量对输出变量的影响大小,其符号代表相关的方向,绝对值代表影响的大小,其算法流程如图1所示。

图1 MIV算法流程Fig.1 MIV algorithm process

具体的训练过程[7]如下:

(1) 在原值的基础上加/减10%,构成2个新的样本A1和A2。

(2) A1和A2分别作为仿真样本,并且利用原始样本训练好的网络进行仿真,得到2个仿真结果B1和B2。

(3) 求出B1和B2的差值,得到该变量对输出结果产生的影响变化值(IV,impacet value),最后将IV按照样本个数求取平均值,即MIV。

1.2 BP神经网络基本原理

BP神经网络是一种前馈传递的网络模型,其特点是网络中的正常信号正向传播,误差信号反向传播。在正向传播过程中,输入信息经过输入层、隐含层处理并传向输出层;如果输出层得不到期望的输出,则进入误差反向传播过程,将误差信号沿原来的路径返回,通过反复修改权值和阈值,使其达到期望的输出[8]。它的拓扑结构如图2所示。

图2 BP神经网络拓扑结构Fig.2 BP neural network topology structure diagram

在图2中X1,X2,…,Xn为输入变量;Y1,…Ym为输出变量;wij和wjk分别为输入层与隐含层和隐含层与输出层的连接权值。由此可以看到输入层和输出层是一个非线性的映射关系。

1.3 CPSO算法基本原理

(1) 粒子群算法概述 粒子群(PSO,particle swarm optimization)算法是Kennedy和Eberhart根据鸟类的觅食过程提出的[9]。作为一个新兴的智能优化算法,它最大的特点是收敛速度快、鲁棒性高、具有较好的全局搜索能力[10]。

在PSO算法中,每个粒子代表了一个问题的潜在解,并且在迭代过程中不断更新个体最优解和全局最优解直至找到满足要求的解。

设粒子群中粒子的总数为N,问题解的维数为M,因此粒子种群X=(X1,X2,…,XN),第i个粒子Xi=(Xi1,Xi2,…,XiM),第i个粒子经历的最优位置Pi=(Pi1,Pi2,…,PiM),种群全局最优位置Pg=(Pg1,Pg2,…,PgM),第i个粒子的速度Vi=(Vi1,Vi2,…,ViM)。则每个粒子的位置以及速度的变化公式为

(1)

(2)

其中:i=1,2,…,N;d=1,2,…,M;K为迭代次数;C1和C2为学习因子;r1和r2为[0,1]之间的随机数。

(2) 混沌粒子群算法 混沌粒子群(CPSO)算法是近年来提出来的一种混合优化算法,它将混沌理论和粒子群算法相结合以达到寻优目的。目前混沌粒子学主要分为3类:第1类采用混沌序列替换基本粒子群算法的一个或者多个参数;第2类采用混沌序列初始化粒子群算法的粒子;第3类采用混沌序列对粒子群算法搜索到的解进行混沌迭代,且第3类有3种方法:对粒子群中所有粒子进行混沌迭代;对粒子群中部分粒子进行混沌迭代;对粒子群中最优粒子进行迭代。

研究采用第3类的第3种情况,即对粒子群中最优粒子进行混沌迭代。该算法的具体步骤[11]如下:

(1) 对种群进行初始化。确定种群数量N,问题解维数D,最大迭代次数Kmax,混沌最大迭代次数M,惯性权重W,学习因子C1和C2,速度和位置范围[Vmin,Vmax]、[Pmin,Pmax]。

(2) 计算每个粒子的适应度,并更新每个粒子的最优位置Pbest和全局最优位gbest。

(5) 将得到的新解进行适应度计算,若得到的新解优于旧解时,输出新解。

(6) 判断是否达到混沌迭代最大迭代次数,如不满足,返回步骤(2)。

1.4 CPSO-BP模型的构建

由于BP神经网络易出现陷入局部最优解的问题,从而导致对PM2.5浓度预测达不到要求。混沌粒子群算法可以很好地解决BP神经网络的问题,因此可以将混沌粒子群算法与BP神经网络相结合,具体算法步骤如下[12]:

(1) 确定BP神经网络的拓扑结构。主要问题是确定隐含层的节点个数。为了提高BP神经网络的预测精度,一般隐含层节点个数用经验公式确定[13],即

(3)

其中:i为隐含层的个数;m和n分别为输入层和隐含层的个数;a为常数且1

(2) 初始化混沌粒子群。确定粒子群数、初始位置和速度、惯性权重W、学习因子C1和C2,最大种群迭代次数和最大混沌迭代次数。

(3) BP神经网络的均方误差作为粒子的适应度值,计算公式为

(4)

其中:N为粒子群数;D为问题维数;dij为样本i在BP神经网络的输出值;yij为期望输出值。

(4) 更新每个粒子的最优解以及全局最优解。

(5) 对全局最优解进行混沌迭代,当得到新解优于全局最优解,就用新解代替旧解。

(6) 判断是否满足结束条件(适应度值小于误差限或者种群目前迭代次数大于种群最大迭代次数),若满足,停止迭代并输出权值和阈值。若不满足,返回步骤(4)。

(7) 将步骤(6)得到的权值和阈值初始化BP神经网络。

(8) 利用样本训练BP神经网络并检查其预测精度。

2 数据处理与分析

2.1 数据来源与选取

研究采用的数据为2017年西安市 SO2、CO、O3、PM10、PM2.5、NO26种污染物日均浓度(http//:www.tianqihoubao.com)。由于当日PM2.5的日均浓度与前几日的污染物浓度有一定的关系,因此选择前三日的PM2.5、前一日SO2、前一日CO、前一日PM10、前一日NO2、前一日O3日均浓度作为样本输入变量,当天PM2.5日均浓度作为样本的输出变量。

2.2 数据处理

(1) 数据归一化 由于输入变量污染物的日均浓度不在一个量纲上,这种情况下会影响到预测的精度。为了消除各指标量纲影,需要对各数据进行归一化处理。研究采用mapminmax()函数将其归一化到[-1,1]之间,其公式为

(5)

(2) BP神经网络结构的确定 研究采用一个隐含层的BP神经网络,即神经网络的层数为3层。研究的输入层节点数8个,输出层节点个数为1,隐含层节点个数由公式(3)确定为5。

(3) 输入变量筛选 利用MIV算法和建立的BP神经网络对输入的变量进行筛选。但是由于传统BP神经网络预测结果具有一定的波动性,导致每次得到的MIV值都不相同。因此对每一个输入变量筛选时,可以求50次MIV,并取平均值作为结果。计算完每个输入变量的MIV结果后,对输入变量的MIV值进行降序排列,取MIV绝对值累计百分比不小于85%的全部变量[14]。结果如表1所列。

表1 输入变量MIV

由表1可知,选择前一日PM2.5、前一日CO、前一日NO2、前三日PM2.5,前一日SO2日均浓度就可以满足要求。

(4) CPSO-BP神经网络初始化 通过对输入变量进行筛选,BP神经网络的输入层和隐含层的节点个数也会发生相应的变化[15]。试验表明,BP神经网络的隐含层节点个数为2比较合适。因此最后确定的BP神经网络的输入层、隐含层和输出层的节点个数分别为5、2、1。训练次数1 000次,学习率0.1,训练目标误差为0.000 1,隐含层和输出层的激活函数分别为tansig和purelin函数,学习函数和训练函数采用默认函数。

根据神经网络拓扑结构图确定粒子的维数为15,粒子的种群数为20,最大种群更新次数和最大混沌迭代次数均为100,学习因子c1和c2均为1.494,惯性权重w计算公式[16]为

(6)

其中:h代表当前种群更新次数;H代表种群最大更新次数。每个粒子的速度位于[-1,1]之间,每个粒子的位置位于[-4,4]之间。

2.3 预测结果及结果分析

以2017年积日第213天到第334天数据构成122个训练样本,以年积日第340天到年积日第349天数据构成10个测试样本,对它们分别进行BP神经网络预测和CPSO-BP神经网络预测,其预测结果如图3所示。

图3 模型预测结果对比Fig.3 Comparison of model prediction results

为了更好的描述本次PM2.5日均浓度预测的精度,采用平均相对误差和均方根误差做为预测精度高低的指标,其结果如表2所列。

表2 精度对比

由表2可知,相较传统的BP神经网络,改进的算法在预测精度方面有了一定的提高,这说明CPSO算法对BP神经网络起到了优化作用。但是本次预测平均相对误差和均方根误差都相对比较大,这是由于年积日第344天出现了预测异常导致的。其原因可能是由于当天对PM2.5日均浓度的主要影响因素没在所输入的变量之中,从而导致预测偏差较大。将除了年积日第344天以外的预测数据分别计算平均相对误差和均方根误差,BP神经网络的预测精度为22.3%和22.9;CPSO-BP神经网络的预测精度为17.1%和16.2。因此在整体上本次的优化算法还是起到了预测精度提高的作用。

3 结语

研究在PM2.5浓度预测中,首先采用MIV算法筛选出对大气中PM2.5浓度有影响的主要变量,与此同时将BP神经网络与CPSO算法相结合以提高PM2.5浓度的预测精度。通过预测结果可知:相对于传统BP神经网络,改进的算法对预测精度有了一定的提高,但是还有一定的误差,在对PM2.5浓度预测时出现延时性的问题。因此在以后的研究中将考虑在输入变量中加入其他影响因子以提高PM2.5浓度预测精度,例如压强、风速、空气湿度等。

猜你喜欢

种群次数粒子
山西省发现刺五加种群分布
碘-125粒子调控微小RNA-193b-5p抑制胃癌的增殖和侵袭
机场航站楼年雷击次数计算
2020年,我国汽车召回次数同比减少10.8%,召回数量同比增长3.9%
基于双种群CSO算法重构的含DG配网故障恢复
一类无界算子的二次数值域和谱
基于膜计算粒子群优化的FastSLAM算法改进
Conduit necrosis following esophagectomy:An up-to-date literature review
中华蜂种群急剧萎缩的生态人类学探讨
基于粒子群优化极点配置的空燃比输出反馈控制