基于深度学习和支持向量机集成学习的PM2.5浓度24 h预测
2022-04-18韦惠红张文言雷建军
韦惠红, 李 剑, 张文言*, 雷建军, 陈 璇
(1.武汉中心气象台, 武汉 430074; 2.湖北第二师范学院计算机学院, 武汉 430205)
PM2.5指的是空气中直径小于等于2.5 μm的固体颗粒,通常携带大量有毒有害物质,可以随呼吸进入人体内部,对人体健康造成严重危害[1].PM2.5也是形成雾霾的重要组成部分,降低城市大气能见度.国家对于PM2.5污染非常关注,2012年2月,国家环境保护部与国家质量监督检验检疫总局颁布的《环境空气质量标准》(GB 3095—2012)增设了 PM2.5质量标准.近年来,范围大、持续时间长的 PM2.5重污染事件,往往导致社会公众负面舆论.因此,高效准确的PM2.5浓度预测对空气污染防控具有重要的经济、健康和社会意义.
PM2.5的形成机理非常复杂,通常认为工业生产、机动车尾气、建筑施工、冬季取暖烧煤等排放是其主因[2-3].PM2.5颗粒还受到大气系统运动的影响,既存在对外输出,又存在周边其他污染源的输入,因此气温、风速、降水、相对湿度及冷空气强度等气象要素也会对PM2.5浓度产生重要影响[4].PM2.5浓度预测方法大致可以分为机理模型、统计学/机器学习和深度学习3类.1) 基于机理模型,通过综合当地气象、地理和工业等信息,对大气污染物的形成和运动进行动力学建模实现对未来大气污染状况的预测[5].此类方法具备预测结果可解释且精度较高的优势,但是模型复杂且数据获得难度大,不具备普适性.2) 基于统计学/机器学习的模型,主要有随机森林(RF)[6]、支持向量机(SVM)[7]和差分整合移动平均自回归模型[8]等.此类方法具备具有底层的数学理论支撑,应用最为广泛,但是由于特征提取能力有限,使用单一统计方法很难建立精度较高的预测模型.3) 深度学习模型,主流采用循环神经网络(RNN)[9],具有很强的时序特征提取的能力,是当前研究的热点,但是现有研究大多实现1 h至6 h的提前预报[10],有待继续提升以满足实际业务中24 h提前预报的需求.
在前人研究的基础上,以堆叠(Stacking)集成策略,设计了由支持向量回归(SVR)、卷积神经网络(CNN)和门控循环网络(GRU)组成的集成深度学习网络(SVR-CNN-GRU).通过充分发挥SVR的非线性特征提取能力进行降维,再采用CNN的强化特征表达,最终利用GRU的时序记忆优势的处理流程,本模型有效改善了当前深度学习仅能预测最近若干小时PM2.5浓度的不足,实现了高精度、高鲁棒性和高泛化性的 PM2.524小时提前预测,能为空气污染防治工作提供决策支持.
1 研究数据与研究方法
1.1 研究数据
使用的数据分为空气质量数据和地面气象数据两大类,共计12个因子.其中逐小时空气质量数据来自湖北省生态环境监测中心站,因子为PM2.5、PM10、NO2、CO、O3、SO2和AQI.地面气象数据来源中国气象数据网CIMISS系统地面气象站逐小时观测资料,因子包括:温度、气压、相对湿度、降水和平均风速.由于风向数据缺失比例较大,因此未采用.
为了提高预测精度,除武汉市外,还采集了武汉四周宜昌市、襄阳市、孝感市、荆州市、荆门市、黄冈市、黄石市、咸宁市、随州市、鄂州市、仙桃市、潜江市和天门市等13市州自动观测站数据.2015年1月1日1时至2020年4月10日23时,共计46 247条的每个市州逐小时数据.恩施自治州、十堰市和神龙架远处湖北西南、西北角山区,结合气象条件分析,其空气污染输送到武汉的比例极低,因此未纳入.
由于GRU等循环神经网络要求完整的时序数据,因此需要对缺失数据进行处理.缺失数据处理可以分为先填补后训练的两阶段模式[11-13];也有直接在训练中填充的模式[14-15].由于已将缺失值较多的气象因子剔除,样本中仅存在少量缺失数据,采用三次样条插值法对其填补,在不会产生显著噪音的同时简化了模型的结构,加快训练的速度.
所有以上数据保存为长度为46 247,宽度为14×12=168的格式的数组,即每一条原始样本由14个市州的12个因子共同组成.后续训练中以此为基础进行裁剪和拼接构成训练用样本.由于气象相关因子有显著的季节性周期性,因此已有类似研究中也有采用相邻时间节点样本进行差分的方式构建新因子[16].由于后续在卷积层会执行类似的操作,因此未采用此编码方式.
1.2 门控循环网络
根据建立预测模型中样本的时间序列结构不同,PM2.5小时浓度预测中有两种主要方式,一种是向量到向量的模式,即每个样本仅保存单个时间节点的信息,用其预报另一个时间节点的PM2.5浓度;另一种是序列到向量的模式,即基于若干时间节点信息预测未来某个时间节点的PM2.5浓度.由于后一种方式样本拥有更丰富的信息,在结合能够提取样本内多个时间节点之间时序特征的技术后,训练得到的模型往往具有更好的性能,并可被扩展为序列到对序列模式.因此基于RNN这种针对序列数据建模具备突出优势的技术[17],建立PM2.524 h预测模型.
传统RNN存在短时记忆问题,即处理较长的序列时,往往只能理解有限长度内的信息,而对于较远距离的有用信息往往不能很好的利用.HOCHREITER 等对其进行了改进,提出了长短期记忆(LSTM)神经网络,通过引入门控机制解决短时记忆问题[18].CHO等通过将门控制单元由原来的3 个减至 2 个对LSTM 的结构做了简化,提出了门控循环网络(GRU)[19],研究证明GRU具有和LSTM相当的性能,并且由于少一个门,参数更少,相对容易训练且可以防止过拟合.因此采用GRU作为时序特征提取的工具.
1.3 支持向量回归降维
基于GRU的PM2.5浓度预测中,设样本时间序列长度为S小时(通常S取值为8~24),则每个样本的因子将达到168×S个,而高维因子会提高网络训练难度.在机器学习领域特征降维具有广泛应用,最常见的方法有主成分分析法[20],通过对协方差矩阵进行特征分解提取主要成分,其本质是一种线性变化,而大气系统是典型的非线性混沌系统.自动编码器(AutoEncode)能实现数据维度压缩和特征表示,被广泛应用于数据降维和去噪[21].然而AutoEncode是基于多层复杂结构的无监督学习模型,因此其本身的训练也存在难度.支持向量机是统计学中一种有效的监督分类和回归方法,在解决非线性及高维模式识别问题中表现出特有的优势,并且具有良好的泛化能力[22].在各种分类和回归问题中,SVM与深度神经网络的融合已经被证实是一种有效的手段[23-24].SVM长于常规特征提取,弱在时间序列特征表达,PM2.5预测模型中将其作为第一层,仅用于特征降维,流程如图1所示.
图1 SVR降维流程Fig.1 Flow chart of SVR dimension reduction
图1中,t表示待预测目标Y(t)的时间索引;H表示提前多少小时预测,固定设为24;S为样本的时间序列长度;X为单小时原始样本,N为其因子数,因此无特征降维的样本总因子数为S×N.SVR(h)为预先训练好的向量到向量形式的SVR模型,实现对hh后的PM2.5数值的回归预测,因此对于序列长度为S的时序样本,需要建立S个不同预测步长的SVR模型,将每个模型预测结果按照时序拼接组成由S个因子的新样本f(t).
SVR降维的思想是训练一系列不同步长的SVR模型,基于不同时间节点的信息对同一个目标节点进行预测,然后将获得的全部预测结果按原时间索引顺序排列.其目的是利用SVR提取非线性特征,并将维度压缩到原来的1/N;新样本内全部因子均被视作对目标预测值的投票,由于具有同属性、同量纲的特性,在此基础上堆叠神经网络对投票聚合模式进行训练将非常迅速和有效.
1.4 卷积神经网络
f(t)中单个因子缺乏时间序列信息,且N维因子被极限压缩至1维,会造成有价值的特征丢失.CNN由于具有强大的特征表达能力,被广泛应用于机器视觉、语音识别和自然语言处理等领域,一维CNN还可以有效的处理时间序列预测问题[25].采用多核一维卷积层,通过合适的卷积核大小以及步长提取相邻因子之间的时间特征,并通过多核将样本映射到更高维空间,以充分提取被SVR过滤的部分有价值信息.
1.5 SVR-GRU-CNN 模型集成学习模型
采用两级结构的堆叠法(Stacking)组织深度学习网络结构及其训练方式[26].将原始样本集按照比率,随机划分为两个相互独立的子集;第一个子集仅用于堆叠结构中的多步长SVR模型训练;第二个子集则通过拼接构成时序长度为S的时序样本,用于第二级CNN-GRU网络训练;第二级网络为由SVR模型层、一维卷积层、GRU层和全连接层等组成的深度神经网络,具体结构如图2所示.
图2 SVR-CNN-GRU网络结构Fig.2 The Structure of SVR-CNN-GRU network
为提取特征信息,受到差分编码的启发,对经SVR模型层降维为S×1结构二级样本采用长度为2的一维核执行两两相邻时间节点之间的一维卷积;为避免高频噪音,采用不填充的方式,因此时间索引减少为S-1;利用40个一维核,线性激活,最终获得40×(S-1)结构的2维时序数据.
同图像处理的方法不同,卷积层后未设置池化层.这是因为池化层的主要作用是下采样、降维、实现非线性、扩大感知野和实现不变性,而采用卷积层的目的是对已被高度降的维数据扩充,并且只关注两两相邻时间节点之间的关系,而非线性化工作则由后续的其他层的激活函数实现.
后续连续采用两个隐藏单元数为20的GRU层进一步提取整个S-1长度时间序列的整体特征,其中GRU1用于初步提取时序特征,输出20×(S-1)结构的二维时序结果;GRU2则深入处理时序特征,输出20×1结构不含时序索引的结果.为了将GRU提取的特征进一步整合,之后连续采用了3个全连接层,其中第一层神经元为64个,采用Relu激活函数,且Dropout=0.1;第二层神经元为16个,采用Relu激活函数,无Dropout;最后一层作为输出层,由于采用序列到向量的回归预测模式,因此仅保留1神经元且无激活函数.
2 实例验证与结果分析
2.1 数据处理
由于采用的气象和空气质量因子均为连续型数值变量,且不同因子之间数值大小差异巨大,因此对其执行z-score 标准化方法标准化,待回归预测后再逆操作恢复原量纲.
为了避免两级网络之间数据集相互的污染,在截取2020/4/2日16∶00∶00至2020/4/10 23∶00∶00共200条样本作为绘制预测对比图以外,其他全部46 047条原始样本随机划分为两个无交集子集.由于SVR模型的精度直接决定了后续神经网络的训练效果,因此经多次实验调整,选择70%原始样本训练SVR,其中60%作为训练集,10%作为校验集.剩余30%用于训练深度神经网络的样本中,其中10%用于训练深度神经网络,其余20%作为测试集.同一般深度神经网络中训练集的规模是测试集3至4倍不同,训练集仅为测试集一半,这是由于为了横向同其他算法比较,测试集占总体样本的比率至少要达到20%,并且由于已经过大样本的SVR训练和优化,深度神经网络训练难度大幅度降低,训练少量的样本也可以获得很好的效果,此条件下还能更好的验证模型的泛化能力.
2.2 参数设置
第一级SVR,基于Scikit-learn工具箱,采用高斯核eplison-SVR,其中不敏感损失系数eplison控制着回归函数对样本数据的不敏感区域的宽度,影响支持向量的数目,其值和样本噪声有密切关系;惩罚系数C反映了算法对超出eplison管道的样本数据的惩罚程度,其值影响模型的复杂性和稳定性;gamma对低维的样本进行高纬度映射,也会影响泛化能力.经过网格化和三折交叉验证,最终选择的参数为:C=50,eplison=0.05,gamma为默认值’scale’.其中,gamma为默认值时会自动根据变量的方差自动调整大小,能够提供更好的泛化性.
第二级深度神经网络的运行软件环境为Window 10操作系统,Tensorflow 2.4版本,Python 3.8以及Cuda 11.1;硬件环境为Nvidia 1650 GPU,Intel i5 3470 CPU和32 G内存.神经网络的内部参数如表1所示.
表1 第二级深度神经网络训练参数
为了验证和分析时间序列长度对预测的影响,分别训练了长度为8,16和24的三种时序样本模型;由于全连接层1规模较大,为了避免过耦合,经实验校正,选择Dropout比率为0.1;Adam优化器是对随机梯度下降的扩展,可以更有效地更新网络权重.
将上述样本按照80%训练集,20%测试集的设置,分别对RF、epsilon-SVR和不含SVR层的CNN-GRU网络进行训练;然后,用上述70%训练集,30%测试集的设置,在图2中删除卷积层和全部GRU层,仅保留SVR层和全连接层进行训练,记作SVR-MFC;最后在图2中仅保留SVR层,添加RF训练SVR层输出,利用RF的集成学习的能力进行训练,记作SVR-RF.对以上所有模型,均独立运行30次,并取其均值.
2.3 结果分析
(1)
(2)
(3)
六个模型对于武汉市PM2.5进行24 h预测的结果如表2所示,其中RF和SVR采用的是向量到向量的预测模式,其余4种均采用时间序列为24(S=24)的样本进行序列到向量的预测模式.
表2 六个模型预测精度
由表可见,未采用SVR降维的三种模型的RMSE和MAPE均相对较差,且R2值也偏低,其中RF方法基于决策树的集成模式,其精度受到决策树对于高维、非线性和混沌的气象问题求解能力不足的影响,因此结果最差;CNN-GRU由于融入了时间序列特征提取,效优于RF,但是受到样本因子规模大和非线性的限制,提高有限;由于SVR具备处理高维和非线性问题的能力,取得三者中最好的结果.三种基于SVR降维的集成学习模型均取得显著更好的结果,SVR-RF模型基于SVR这种强学习能力的模型的集成,因此提高明显;SVR-MFC模型则仅依靠多个全连接层即取得了与SVR-RF相当的性能,展示了深度神经网络的潜力;SVR-CNN-GRU模型则由于融入了时间序列特征的提取,因此取得了最好的结果.综上可知,通过SVR降维和CNN-GRU时序特征提取可以显著的提高预测的精度和泛化能力.
三个集成SVR模型在三个不同时间序列长度样本下的预测结果,如表3所示.
表3 不同时间序列长度下的模型预测精度
在所有的模型在三个序列长度下均有相对于表2中其他方法更好的表现,不仅RMSE更低,且R2均高于0.95这个普遍采用的标准.随着时间序列的增加,三种模型的预测精度均有提高,其中S由8增加到16时,所有模型的提高最为显著;而随着S由16提高到24,性能的提高较为微弱.因此增加样本的时序长度可以有效的提高预测精度,但是存在边际效应,简单的依靠增加时序长度提升预测精度是低效的.
SVR-CNN-GRU模型在S=24条件下对武汉市2020/4/2 16∶00∶00至2020/4/10 23∶00∶00的预测结果,如图3所示.
由图可见,整体上预测值能较为准确预测实际值的变化趋势,特别是在PM2.5值变化剧烈的波段上也能较好的拟合;但是在波峰和波谷等变化的极值点,模型的预测还存在一定的误差,需要后期继续改进模型.
参考PM2.5检测网的空气质量标准,将PM2.5浓度划分为7个级别:优(0~35 μg·m-3)、良(35~75 μg·m-3)、轻度污染(75~115 μg·m-3)、中度污染(115~150 μg·m-3)、重度污染(150~250 μg·m-3)和严重污染(大于250 μg·m-3及以
图3 SVR-CNN-GRU模型预测值与实测值折线图Fig.3 Line charts between forecast value and actual value of SVR-CNN-GRU
上),统计S为24时,各PM2.5浓度级别样本占测试集比例、MAPE和平均绝对误差(MAE)如表4所示.
(4)
表4 分级模型预测精度
由上表可见,由于污染越严重,浓度基数越高,MAE随着污染级别逐步上升;而MAPE则出现相反的趋势,说明了预测有较高的准确度.“严重污染”级别的绝对和相对误差均高于“重度污染”,这是由于其样本占整体样本比例过小,模型学习不充分造成的.按照PM2.5浓度75以上为超标的中国国家标准,SVR-CNN-GRU能够以较高的准确度对超标天气进行预测,达到提前24小时预警的目的.
3 结语
大气是典型的混沌系统,随着时间线的延长,气象系统预测的难度急剧提升,PM2.5与气象条件密切相关,PM2.5预测实现24小时预报需要解决从高维和非线性时序数据中提取特征的难题.采用具有良好高维和非线性处理能力的支持向量机对原始气象数据进行降维和特征提取,然后堆叠由卷积神经网络、循环神经网络和全连接层构成的深度神经网络,进行时序特征提取,以2015年1月1日1时至2020年4月10日23时湖北省武汉等14市州的气象和空气污染共计46 247条数据,训练了六个不同策略的模型.实验效果展现了所有基于SVR降维的集成学习模型均取得较高精度,且拟合优度R2均超过0.96;其中与CNN和GRU结合的模型取得了最佳的精度,泛化能力更强,R2达到0.97.综合来看,SVR降维是解决复杂问题的集成学习的有效前置工具,深度神经网络则表现出强大的时序分析能力.
由于缺失数据处理手段单一,放弃了部分有助于PM2.5预测的气象因子,下一步需要完善缺失数据的填充技术,添加更多因子提高预测精度.虽然使用了武汉13市州4 w的数据,但是仅仅将其同武汉市数据平铺拼接,因此丢失了距离、方位、地形和大气运动等重要信息,湖北省外北方污染源也未纳入考虑,下一步需要建立时空结构的模型进行优化.由于算力条件有限,不同步长的SVR模型均采用同样的参数训练,且作为静态模型应用于深度神经网络,造成了部分步长SVR模型未能优化,需要在下一步深度融合SVR和神经网络,集成和动态的训练SVR模型.采用的深度神经网络的结构是将多层进行串行连接,结构相对简单,影响了特征提取能力,下一步需要针对预测问题的特征,引入残差网络等技术构建更为复杂和有效的网络结构[27].