基于CPSO-BP神经网络的PM2.5浓度预测模型
2020-04-25王腾军刘帅令
张 立,王腾军,刘帅令,方 珂
(长安大学地质工程与测绘学院,陕西 西安 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)