基于双向循环神经网络的空气质量预测模型的实现

2022-10-21 13:44陈春玮张建明贺易栋
科学技术创新 2022年28期
关键词:空气质量污染物神经网络

陈春玮,张建明,贺易栋

(广东职业技术学院,广东 佛山 528000)

概述

目前,随着中国经济的高速发展,工业化建设、交通规模持续扩大,中小型的加工厂的建设随着发展的需要也越来越多,燃油车的保有量逐年增加等能源和环境问题带来的汽车尾气、工业污染排放、建筑颗粒扬尘、垃圾焚烧等增加大气的污染问题。空气污染问题日趋严重,也逐渐成为人民群众日常关注的民生问题。对于空气污染的预测很有必要,用于指导出行计划,工业生产,环境调控等都有一定的科学依据。针对目前很多预测模型都是单向的循环神经网络时序模型,信息利用不充分[1]。本研究结合LSTM 和GRU 双向神经网络为主,卷积神经网络为辅的预测模型,从而提高模型解释方差。

1 相关技术研究

1.1 基于传统机器学习对空气质量的研究

机器学习中有许多的模型可以应用到空气质量的预测,我们主要用sklearn 进行模型的搭建于实验。其中我们用到的模型贝叶斯、SVM、随机森林、梯度提升树、Bagging、KNN、极端随机树[2]。模型上,以被解释方差(R2)来进行评价。其中,贝叶斯(R2 : 0.378)、SVM(R2 : 0.285)、随机森林(R2 : 0.676)、梯度提升树(0.576)、Bagging(R2 : 0.651)、KNN(R2 : 0.523)、极端随机树(R2 : 0.717)。进行了实验以后可以看到,相对于线性模型,非线性模型的R2 会更高。对比各个模型的R2,发现最后一个极端随机树是最高的,其中利用集成学习模型的R2 也相对比较高。但是,传统的机器学习还是存在一个时空问题,也就是说其实影响空气质量指数的相关污染物,与时间的变化也是有关的,传统的机器学习并不能有效解决这个问题。

1.2 基于循环神经网络对空气质量的研究

循环神经网络的来源是为了刻画一个序列当前的输出与之前信息的关系。从网络结构上,循环神经网络会记忆之前的信息,并利用之前的信息影响后面结点的输出。为了处理传统机器学习中突出与时间的关系,解决长序列训练过程中的梯度消失和梯度爆炸问题。我们使用LSTM 和GRU。具体表现LSTM 模型中R2 的CO:0.563,NO2:0.096,O3:0.51,PM2:0.549,PM10:0.567,SO2:0.525; 具体表现GRU 模型中R2 的CO:0.482,NO2:0.113,O3:0.471,PM2:0.602,PM10:0.541,SO2:0.517[3-4]。

对数据进行100 次、批次为1 000 的训练。进行实验后的数据,可以看到R2 的平均值在0.461,而且对与NO2的预测后的R2 尤为低。看到传统的机器学习中的极端随机树的R2 有0.717,这样来看还比不上传统的机器学习。虽然解决了时间相关性问题,但是R2下降了。

1.3 基于BBCNN 模型对空气质量的研究

BBCNN 模型利用了两个双向循环神经网络和一个一维卷积神经网络。双向循环神经网络(BRNN)的基本思想是提出每一个训练序列向前和向后分别是两个循环神经网络(RNN),而且这两个都连接着一个输出层。这个结构提供给输出层输入序列中每一个点的完整的过去和未来的上下文信息。

我们进行100 次、批次为1 000 的训练后得到的数据。具体表现为CO:0.941,NO2:0.972,O3:0.971,PM2:0.983,PM10:0.978,SO2:0.979。从中可以看到对六种污染物的R2 均值在0.977。对循环神经网络R2 有了大幅提高,对极端随机树也有大幅提高,解决了两者的问题。

2 数据描述与处理

2.1 数据的描述

数据来自2021 年华为杯研究生数学建模数据集,数据有24 个特征:

模型运行日期、预测时间、地点、近地2 m 温度(℃)、地表温度(K)、比湿(kg/kg)、湿度(%)、近地10 m 风速(m/s)、近地10m 风向(°)、雨量(mm)、云量、边界层高度(m)、大气压(Kpa)、感热通量(W/m2)、潜热通量(W/m2)、长波辐射(W/m2)、短波辐射(W/m2)、地面太阳能辐射(W/m2)、SO2小时平均浓度(μg/m3)、NO2小时平均浓度(μg/m3)、PM10小时平均浓度(μg/m3)、PM2.5小时平均浓度(μg/m3)、O3小时平均浓度(μg/m3)、CO 小时平均浓度(mg/m3)。

其中,将O2小时平均浓度(μg/m3)、NO2小时平均浓度(μg/m3)、PM10小时平均浓度(μg/m3)、PM2.5小时平均浓度(μg/m3)、O3小时平均浓度(μg/m3)、CO 小时平均浓度(mg/m3)。由于空气质量指数需要这六种污染物作为计算标准,我们将这六种作为预测目标[5]。

2.2 数据处理

先利用pandas 读入数据,检查数据有无确实以及格式问题。经过检查,发现并没有缺失等问题。我们想要将数据放入循环神经网络,需要将数据转化为时序数据。通过观察“预测时间”,发现每个小时会收集一次数据,因此我们将24 h 来当作时序数据一个批的数据量。

3 模型实现与分析

3.1 构建模型的思路

构建模型的时候,发现利用单层LSTM 构建的模型训练结果有比较大的波动;发现利用单层GRU 构建的模型训练结果LOSS 下降的比较慢。LSTM 比GRU 下降的快,而GRU 比LSTM 稳定。为了将两者的优点结合,模型会将两个模型结合使用。在训练后,预测结果出现了一个周期问题。当我们输入正序数据时,预测结果没有出现问题,但当输入的数据没有按照正序输入的时候,发现RMSE 明显增大,预测出来的结果也不正常。这一问题,我们利用双向循环神经网络解决。提高模型对数据的拟合度。为了能获得更高的R2 以及更小的误差,我们引入一维卷积神经网络。为了提高模型的输出的稳定性,最后的增加多一层的全连接神经网络。见图1。

图1 模型思路图

3.2 模型结构

数据在进入模型的后两个输入方向。先进入双向循环神经网络。双向循环神经网络我们利用LSTM 和GRU 混合使用。每个双向循环神经网络输入接入批标准化。然后将两个方向的数据进行拼接。之后进入两层一维卷积神经网络,每个输出都接入批标准化,最后输入全连接神经网络。见图2。

图2 模型结构

3.3 模型优化

我们如果直接选择全部特征输入到我们写好的模型中,那么会存在噪音。我们需要预测的有六个污染物,那么有一些特征对于所需要预测的污染物,有可能会存在负影响。这些负影响就会拉低整个模型预测这一污染物的R2,以及提高预测的误差。为了解决这个问题,我们将每一特征单个删除以后训练模型,然后以训练出来的R2 作为参照标准。见图3。

图3 删除单个特征获取R2 流程

之后我们开始训练模型,训练100 次、批次为1 000。我们会获得每个污染物15 个的R2。我们可以利用R2 来进行判断一个污染物失去了这一特征对其预测的误差以及R2 有什么样的影响。利用这些影响来判断这一特征是否对污染物有着负面的影响, 若是有负面的影响,我们将这一特征删除。

我们将各个特征的R2 进行平均以后和模型训练的R2 进行对比。见表1。

从表1 中,可以看到只有CO 的两者差异较大,我们对CO 进行调整。若每一特征删除后训练的R2 大于平均则删除。我们在观察以后选择删除,['近地2 m温度(℃)']、['比湿(kg/kg)']、['近地10 m 风速(m/s)']、['大气压(Kpa)']、['潜热通量(W/m2)']、['短波辐射(W/m2)']、['地面太阳能辐射(W/m2)']。最后,重新训练,得到的R2 为0.9414。

表1 R2 对比

经过了优化训练以后,我们利用RMSE、MSE、MAE、R2 对模型进行评估。见表2。

表2 各个污染物的误差指标对比

4 结论

目前利用循环神经网络对空气质量进行预测不在少数,循环神经网络用的比较多的也就是LSTM。LSTM 的记忆性能力,让它能够适应和应用在很多场景。单纯的记忆能力能应对的是一段时间内的预测,我在对模型的构建时就想到如若可以将卷积的特性加入进去,就能提高对新数据的拟合度。对于最后的预测数据来说,是非常需要批量标准化,这一步能大大提高模型对数据的拟合度,也能大大降低模型的训练难度。如果可以加入图片数据(加入的数据也就是各种天气下同一个位置的照片,以及各种环境下的照片),那么我们就可以利用二维卷积神经网络来进行辅助判断。能将数据和图片一同输入模型内进行学习,那这一模型也就能对多个场景有适应性。目前这个模型只应用在了空气质量计算上,我们可以将它推广到屋内装修后的空气质量监测,以及进行修改以后对水质的监测。

猜你喜欢
空气质量污染物神经网络
基于神经网络的船舶电力系统故障诊断方法
乌海市雾对空气质量的影响
MIV-PSO-BP神经网络用户热负荷预测
不同取样方式下船机污染物排放结果的研究
基于改进Hopfield神经网络的对地攻击型无人机自主能力评价
你能找出污染物吗?
陆克定:掌控污染物寿命的自由基
三次样条和二次删除相辅助的WASD神经网络与日本人口预测
空气污染物可通过皮肤进入人体