计算机系统应用  2020, Vol. 29 Issue (6): 265-270   PDF    
Elman神经网络在优化空气预报模式结果中的应用
张镝2, 于海飞1,2, 刘闽3, 杜毅明3, 金继鑫2, 曹吉龙4, 赵思彤5     
1. 中国科学院大学, 北京 100049;
2. 中国科学院 沈阳计算技术研究所, 沈阳 110168;
3. 辽宁省沈阳生态环境监测中心, 沈阳 110000;
4. 中国医科大学附属第四医院, 沈阳 110032;
5. 沈阳市第二十二中学, 沈阳 110000
摘要:空气质量与人们的生活息息相关, 空气质量的预测结果是进行空气质量控制的依据. 因此, 提高空气质量的预测精度是本文研究的重点. CMAQ (Community Multiscale Air Quality modeling system)和CAMx (Comprehensive Air quality Model with extensions)是两种常用的空气质量数值模式, 其工作原理是通过大气物理化学方法模拟污染物传输转化过程, 进而预测空气质量. 空气质量数值模式的输入文件质量会影响到空气质量的预测精度, 为了提高空气质量预测的准确率, 本文提出了一种基于Elman神经网络的优化方法, 该方法在CMAQ和CAMx两种空气质量数值模式基础上利用Elman神经网络优化预测结果. 首先, 运行空气质量模式CMAQ和CAMx得到预测结果, 然后对预测结果进行预处理, 处理后的预测数据和实测数据一起作为Elman神经网络的输入, 进行模型的训练, 最后得到神经网络模型. 通过对测试数据集的验证和分析, 实验结果表明, 该方法表现出比单一空气质量数值模式更高的准确率.
关键词: Elman神经网络    空气质量模式    结果优化    空气质量预测    污染物浓度    
Application of Elman Neural Network in Optimizing Air Forecast Model Results
ZHANG Di2, YU Hai-Fei1,2, LIU Min3, DU Yi-Ming3, JIN Ji-Xin2, CAO Ji-Long4, ZHAO Si-Tong5     
1. University of Chinese Academy of Sciences, Beijing 100049, China;
2. Shenyang Institute of Computing Technology, Chinese Academy of Sciences, Shenyang 110168, China;
3. Shenyang Ecological Environment Monitoring Center of Liaoning Province, Shenyang 110000, China;
4. The Fourth Affiliated Hospital of China Medical University, Shenyang 110032, China;
5. Shenyang Twenty-Second Middle School, Shenyang 110000, China
Foundation item: Talent Program of Revitalizing Liaoning, Liaoning Province (XLYC1808004)
Abstract: The air quality is closely related to people’s lives. The prediction results of air quality are the basis for air quality control. Therefore, how to improve the prediction accuracy of air quality is the focus of this study. The Community Multiscale Air Quality modeling system (CMAQ) and the Comprehensive Air quality Model with extensions (CAMx) are two commonly used numerical models of air quality. The prediction principles are based on atmospheric physical and chemical methods to simulate the process of pollutant transmission and conversion, and then air quality is predicted. The quality of the input files of the air quality numerical model affects the accuracy of the air quality prediction. In order to improve the accuracy of air quality prediction, this study proposes a method based on Elman neural network. This method uses Elman neural network to optimize the prediction results of two air quality numerical models of CMAQ and CAMx. First, this study runs the air quality mode CMAQ and CAMx to get the prediction results, and then pre-process the prediction results. The processed prediction data and the measured data are used as the input of the Elman neural network for model training and finally get the neural network model. Through the verification and analysis of the test data set, the experimental results show that the method shows higher accuracy than the single air quality numerical model.
Key words: Elman neural network     air quality model     result optimization     forecasting of air quality     pollutant concentration    

改革开放以来, 我国大力发展工业、制造业, 经济发展的同时, 带来的环境问题也不容忽视. 近年来, 空气质量状况越发得到人们的密切关注, 2017年我国空气污染状况以华北地区为中心呈放射状分布, 空气质量直接影响到人类的日常生活[1]. 绿水青山就是金山银山, 地处东北老工业基地的沈阳市也面临着同样严峻的空气质量问题. 空气质量的精准预测能够为空气质量的治理提供科技支撑, 各项污染物浓度数据是计算空气质量指数进而衡量空气质量的重要依据.

空气质量数值模式是一种通过大气物理化学方式来模拟污染物之间的相互反应、传输和转化过程, 进而预测空气质量的方法. 空气质量模式CMAQ和CAMx是依据大气物理化学方法来模拟污染物的扩散和反应过程进而来预测空气质量的方法. 从最初的采用简单线性机制的第一代空气质量模式, 发展到考虑了物质之间的互相作用和相互转化的第三代空气质量模式, 预测精度不断提高. 但是由于空气质量模式受污染源清单数据, 气象数据, 光解文件等输入文件的影响, 输入文件的质量会影响预测结果误差大小. 因此本文提出了一种集成CMAQ和CAMx两种单一空气质量模式结果的方法, 在单一数值模式的基础上降低误差, 提高预测准确率. 司志娟等[2]将灰色GM(1, 1)模型与人工神经网络模型组合, 对天津市2009到2010的PM10、SO2、NO2进行预测, 预测相对误差在5%以下. 张恒德等[3]利用BP神经网络集成了CUACE、BREMPS和WRF-Chem等3个环境模式预报产品, 2015到2016年在北京和石家庄地区污染物浓度和实测值的均方根误差比各单一模式降低了15%以上. 梅贵琴[4]利用Elman神经网络根据以往臭氧浓度数据预测未来臭氧浓度值, 绝大多数的数据可以达到小于0.2的相对误差. 神经网络具有预测未来非线性数据的能力, 应用于各个地区空气质量预测方面取得了良好的效果. 考虑到过往短时间段内空气质量会对未来空气质量产生影响, 而Elman神经网络能够增加对过往数据的敏感性. 因此本文提出将Elman神经网络用于集成CMAQ和CAMx两种数值模式的预测结果, 在单一数值模式基础上提高空气质量预测结果的准确度.

1 Elman神经网络

Elman神经网络是一种反馈型神经网络, 由输入层, 隐含层, 承接层, 输出层四层组成, 承接层是从隐含层获得反馈信息, 然后再输入到隐含层, 以此来记忆隐含层神经元的上一时刻的输出, 这样的网络结构可以增强对过往数据的敏感度[5-8]. Elman神经网络结构如图1所示. 其中, 输入向量是r维的x向量, $x = [{x_1},{x_2}, \cdots , $ ${x_r}]$ ; 隐含层输出向量是n维的u向量, $u = [{u_1},{u_2}, \cdots , $ ${u_n}]$ ; 输出向量是m维的y向量, $y = [{y_1},{y_2}, \cdots ,{y_m}]$ ; 承接层输出向量是n维的 $x_c$ 向量, ${x_c} = [{x_{c1}},{x_{c2}}, \cdots ,{x_{cn}}]$ . ${w_{\left( {i,k} \right)}}, {w_{\left( {k,j} \right)}},$ ${w_{\left( {s,k} \right)}}$ 分别是输入层到隐含层, 隐含层到输出层, 承接层到隐含层的权重矩阵[9]. $f\left( \cdot \right)$ , $g\left( \cdot \right)$ 分别是隐含层和输出层的激活函数, $h\left( \cdot \right)$ 是承接层激活函数, $X_c$ 是承接层输出, t是时间步长, 输出层输出为:

$ y\left( t \right) = g\left( {f\left( t \right){w_{\left( {k,j} \right)}}} \right) $ (1)

隐含层输出为:

$ u\left( t \right) = f\left( {x\left( t \right){w_{\left( {i,k} \right)}} + {x_c}\left( {t - 1} \right){w_{\left( {s,k} \right)}}} \right) $ (2)

承接层输出为:

$ {x_c} = h\left( {u\left( {t - 1} \right)} \right) $ (3)

Elman神经网络模型的算法学习流程, 首先要初始化各层节点的权值, 然后输入训练数据, 计算各层的输入输出值. 其中将隐含层上一轮的输出, 输入到承接层, 数据经过承接层处理后在本轮和输入层数据一同输入到隐含层. 最后根据输出层的结果和误差函数计算误差, 若误差的大小满足要求或训练次数达到最大, 则停止训练, 否则更新权值, 进入下一轮训练.

图 1 Elman神经网络结构示意图

误差函数为:

$ E\left( t \right) = \dfrac{1}{2}{\left( {y\left( t \right) - {y_a}\left( t \right)} \right)^{\rm T}}\left( {y\left( t \right) - {y_a}\left( t \right)} \right) $ (4)

式(4)中, ${{y_a}\left( t \right)}$ 是标准实际输出数据, ${{y}\left( t \right)}$ 模型输出数据.

根据误差逆向传播算法, 得到:

$ \Delta {w_{\left( {k,j} \right)}} = {\eta _3}{\delta _j}{u_k}\left( t \right) $ (5)
$ \Delta {w_{\left( {i,k} \right)}} = {\eta _2}{\delta _k}{x_{cs}}\left( t \right) $ (6)
$ \Delta {w_{\left( {s,k} \right)}} = {\eta _1}\displaystyle\sum\limits_{k = 1}^n {\left( {{\delta _j}{w_{\left( {k,j} \right)}}} \right)\dfrac{{\partial {x_{cs}}\left( t \right)}}{{\partial {w_{\left( {s,k} \right)}}}}} $ (7)

其中,

${\delta _j}{\rm{ = }}\left( {{y_j}\left( t \right) - {y_{aj}}\left( t \right)} \right){{g'}_j}\left( . \right) $ (8)
$ {\delta _k}{\rm{ = }}\displaystyle\sum\limits_{j = 1}^m {\left( {{\delta _j}{w_{\left( {k,j} \right)}}} \right){{f'}_k}\left( . \right)} $ (9)
$ \dfrac{{\partial {x_{cs}}\left( t \right)}}{{\partial {w_{\left( {s,k} \right)}}}} = {{f'}_k}\left( . \right){x_{cs}}\left( {t - 1} \right) + \alpha \dfrac{{\partial {x_{cs}}\left( {t - 1} \right)}}{{\partial {w_{\left( {s,k} \right)}}}} $ (10)

${\eta _1}$ , ${\eta _2}$ , ${\eta _3}$ 分别是 ${w_{\left( {i,k} \right)}}$ , ${{w_{\left( {k,j} \right)}}}$ , ${{w_{\left( {s,k} \right)}}}$ 的学习率, ${\delta _j}$ 是输出层神经元的梯度项, ${\delta _k}$ 是隐含层神经元的梯度项[10]. ${x_{cs}}$ 是承接层第 $s$ 维输出, $u_k$ 是隐含层第 $k$ 维输出. ${{y_j}\left( t \right)}$ 是第 $j$ 个结点第 $t$ 轮的输出值, ${{y_{aj}}\left( t \right)}$ 是第 $t$ 轮第 $j$ 个结点的标准输出值. ${{g'}_j}\left( . \right)$ 是输出层的导数, ${{f'}_k}\left( . \right)$ 是隐含层的导数, $0 \le \alpha < 1$ .

学习算法伪代码如算法1所示.

算法1. 学习算法. 训练集 $\scriptstyle D = \left\{ {\left( {{x_t},{y_t}} \right)} \right\}$

1. 初始化Elman神经网络中所有连接权重和阈值.

2. for all $\scriptstyle \left( {{x_t},{y_t}} \right) \in D$ do

3. 根据式(1)~式(3)计算每一层的输出值;

4.   根据式(8)计算输出层神经元梯度项;

5.   根据式(9)计算隐含层神经元梯度项;

6.   根据式(5)~式(7)更新权值;

7.   if(达到停止条件)

8.     break;

9.   end if

10. end for

2 实验分析

本文数据集来源为空气质量数值模式CMAQ和CAMx输出的辽宁省沈阳市6项常规污染物(包括PM2.5、PM10、SO2、CO、NO2、O3)的浓度结果, 以及在中国空气质量在线监测分析平台所下载的6项常规污染物的实测数据. 本文中的数据集的大小为2019年1月到2019年6月共181天, 起报时刻为20时, 预报时长为未来4天的6项常规污染物24小时平均浓度数据, 其中选取30条数据用作测试数据来评价模型的效果, 剩余数据用于训练模型.

2.1 数据预处理

空气质量模式受气象数据, 地理数据, 以及污染源清单数据等输入文件的影响, 会出现数据缺测情况, 首先要去除缺测值, 减少缺测数据对模型训练的影响.

为了减少不同量纲对后续数据分析和模型训练造成影响, 需要先采用Min-Max线性归一化方法对数据进行归一化处理, 将原数据映射到(0, 1)之间, 公式如式(11)所示:

$ {x_{\rm norm}} = \dfrac{{x - {x_{\min }}}}{{{x_{\max }} - {x_{\min }}}} $ (11)

其中, ${x_{\rm norm}}$ 表示归一化后的数据, $x$ 表示原数据, ${{x_{\min }}}$ 表示的是数据集中的最小值, ${{x_{\max }}}$ 表示的是数据集中的最大值.

2.2 实验过程

实验过程如图2所示, 首先运行空气质量模式CMAQ和CAMx, 对得到的空气质量模式预测结果去除缺测数据处理, 然后将空气质量模式预测结果和实测数据进行归一化处理, 处理后的数据作为Elman神经网络的输入, 初始化各层结点的权值, 进行训练.

图 2 实验流程图

由于本算法需要结合CMAQ和CAMx两个模型优化预测值, 所以把输入层节点数设置为2, 输出层节点数设置为1, 经过敏感性实验得到隐含层节点数设置为10时效果最佳; 输出层激活函数设置为输入和输出相等的Purelin函数; 隐含层激活函数设置为Sigmoid函数, 其公式如下所示:

$ f\left( x \right) = \dfrac{1}{{1 + {e^{ - x}}}} $ (12)

当训练误差达到最小(0.01)或达到最大训练轮数(10 000)停止训练. 将测试数据输入到训练好的模型中, 得到模型输出结果, 对模型输出结果进行反归一化处理, 得到Elman神经网络模型优化的CMAQ和CAMx预测结果.

2.3 评价指标

本文使用均方根误差(RMSE), 平均绝对误差(MAD), 和平均绝对百分比误差(MAPE), 来定量分析模型结果的精度[11-14]. 3个评价指标公式如下:

$ RMSE = \sqrt {\dfrac{1}{N}\displaystyle\sum\limits_{i = 1}^N {{{\left( {{y_{ai}} - {y_i}} \right)}^2}} } $ (13)
$ MAD = \dfrac{1}{N}\displaystyle\sum\limits_{i = 1}^N {\left| {\left( {{y_{ai}} - {y_i}} \right)} \right|} $ (14)
$ MAPE = \dfrac{{\displaystyle\sum\limits_{i = 1}^N {\frac{{\left| {{y_{ai}} - {y_i}} \right|}}{{{y_{ai}}}}} }}{N} \times 100\% $ (15)

其中, ${{y_i}}$ 是预测值, ${{y_{ai}}}$ 是实测值. 均方根误差(RMSE)是预测值与实测值误差的平方和与实验次数N比值的平方根, 它能反应出预测值和实测值的偏差大小以及预测结果的稳定程度. 平均绝对误差(MAD)是预测值和实测值的绝对误差和与实验次数N的比值. 平均绝对百分比误差(MAPE)能反应模型的优劣程度, 是相对误差的和与试验次数的比值.

2.4 结果分析

图3是对比实验结果图, 横坐标表示时间序列, 纵坐标表示污染物浓度, 从图3中可以看到, CMAQ和CAMx两个单一数值模式的SO2和PM2.5预测结果偏高, NO2预测峰值时结果偏高, PM10和CO预测趋势和实测值大致相同, 个别地方相差较大; 而经过Elman神经网络优化的预测结果与单一模式相比较更为接近实际值.

空气质量模式CMAQ, CAMx和基于Elman神经网络集成后结果的评价指标对比情况, 如表1所示. 综合表1图3我们可以看到, 就沈阳市的预报结果而言, 两种单一模式对于6项污染物的预测结果都有不同程度的误差. 而集成后的6项污染物预测结果的预测误差有所下降, 综合对比3个评价指标可以看到PM2.5和SO2MADRMSE都有下降, MAPE有大幅度下降, 其中PM2.5MAPE下降了50%–88%, SO2MAPE下降了110%–209%; 而PM10, CO, NO2和O3MADRMSE有小幅度下降或持平, MAPE都有所下降. 总体来说, 基于Elman神经网络优化两种单一空气质量模式的结果相比于单一空气质量模式的预测精度和稳定性有所提高.

图 3 实验结果图

表 1 实验结果对比

3 结论

本文针对空气质量预测提出了在CMAQ和CAMx两个空气质量数值模型基础上, 通过Elman神经网络集成两个数值模式结果的方法. 实验结果表明, 本文提出的方法结合了两种模型的优势, 提高了预测精度和稳定性, 降低了单一空气质量数值模式的预测误差, 从而能够为后续空气质量预报以及空气质量控制提供数值依据.

参考文献
[1]
谷金科. 中国城市空气质量影响因素研究[硕士学位论文]. 太原: 山西财经大学, 2019.
[2]
司志娟. 基于灰色神经网络组合模型的空气质量预测[硕士学位论文]. 天津: 天津大学, 2012.
[3]
张恒德, 张庭玉, 李涛, 等. 基于BP神经网络的污染物浓度多模式集成预报. 中国环境科学, 2018, 38(4): 1243-1256.
[4]
梅贵琴. 改进的Elman神经网络和网络参数优化算法研究[硕士学位论文]. 重庆: 西南大学, 2017.
[5]
李丹. 基于神经网络的北京联通GSM话务量预测[硕士学位论文]. 北京: 北京邮电大学, 2009.
[6]
林春燕, 朱东华. 基于Elman神经网络的股票价格预测研究. 计算机应用, 2006, 26(2): 476-477, 484.
[7]
韩旭明. Elman神经网络的应用研究[硕士学位论文]. 天津: 天津大学, 2006.
[8]
Zhang Y, Wang XP, Tang HM. An improved elman neural network with piecewise weighted gradient for time series prediction. Neurocomputing, 2019, 359: 199-208. DOI:10.1016/j.neucom.2019.06.001
[9]
夏杨. 基于改进型Elman神经网络的电力负荷预测[硕士学位论文]. 西安: 西安理工大学, 2017.
[10]
周志华. 机器学习. 北京: 清华大学出版社, 2016.
[11]
江琪, 王飞, 张恒德, 等. 北京市PM2.5和反应性气体浓度的变化特征及其与气象条件的关系 . 中国环境科学, 2017, 37(3): 829-837.
[12]
闫以聪. 回归方程与神经网络在数值预测方面的对比研究综述. 数理医药学杂志, 2007, 20(1): 66-69.
[13]
姚文强. 基于数值预报的空气质量预测模型的研究[硕士学位论文]. 杭州: 浙江理工大学, 2017.
[14]
Rotich NK, Backman J, Linnanen L, et al. Wind resource assessment and forecast planning with neural networks. Journal of Sustainable Development of Energy, Water and Environment Systems, 2014, 2(2): 174-190. DOI:10.13044/j.sdewes.2014.02.0015