1. 引言
空气质量时刻影响着人类的生活环境和健康。目前,我国为了实现“碳达峰”和“碳中和”的“双碳”目标,计划将城市空气质量纳入“十四五”期间地区经济社会发展指标中[1]。世界卫生组织(WHO)指出,每年因空气污染导致的过早死亡人数高达数百万。特别是在城市化快速发展的地区,空气污染问题尤为突出。准确的空气质量预测不仅能够帮助政府和相关机构采取有效的应对措施,还能够为公众提供健康建议,减少空气污染带来的负面影响。
随着人工智能技术的迅速发展,催生了许多能够在不确定性中寻找规律的智能化算法,这些智能化算法可以探索污染物的综合组成成分与空气质量等级之间的密切关系[2],其中BP (Back Propagation)神经网络因其强大的非线性映射能力和自适应学习能力,逐渐成为空气质量预测领域的研究热点。刘杰等人(2014)应用BP神经网络模型对北京市区空气质量进行评价且效果较好[3]。邱晨等人(2019)以云南省昆明市的空气质量样本数据构建BP神经网络的空气质量分类预测模型,预测准确率高达90% [4]。BP神经网络不仅简单易实现,而且具有较强的自学习、自组织和自适应能力。因此,选择了BP神经网络模型预测研究区域的空气质量等级[5]。为了克服BP神经网络训练过程中容易陷入局部最优和收敛速度慢的问题,研究者们提出了多种改进方法。例如,使用不同的激活函数(如ReLU、Leaky ReLU)和优化算法(如Adam、RMSprop)等。胡青等人(2023)提出了一种基于改进粒子群算法(IPSO),建立了IPSO-BP预测模型,解决了传统BP神经网络在预测过程中出现的部分问题[6]。曹盟盟等人(2024)提出在Hadoop平台下考虑MapReduce和粒子群算法的并行BP神经网络预测模型,将其用来进行空气质量指数预测,具有良好性能和预测效果[7]。BFGS (Broyden-Fletcher-Goldfarb-Shanno)算法是一种常用的优化算法,广泛应用于各种机器学习模型的参数优化中。其主要特点是通过近似计算Hessian矩阵的逆矩阵,从而加快优化过程。
本文考虑将BFGS算法与BP神经网络结合,构建一种新的组合模型,实验结果表明,BFGS-BP神经网络模型可以达到较高的准确度和召回率,可以有效预测某省份的空气质量等级。
2. 数据与方法设计
2.1. 样本数据
本文以浙江省各城市2023年1月1日至2023年12月31日的3894组历史空气质量数据为研究样本,数据来源于全国城市空气质量实时发布平台。对原始数据保留城市名称、日期、空气质量等级、空气质量指数(AQI),以及环境空气质量标准中规定的PM2.5 (μg/m3)、PM10 (μg/m3)、SO2 (μg/m3)、NO2 (μg/m3)、CO (μg/m3)及O3 (μg/m3)污染物浓度监测值,共10项指标列,如表1所示。
Table 1. Partial sample data of pollutant concentrations and air quality levels in Zhejiang province, 2023
表1. 2023年浙江省污染物浓度与空气质量等级部分样本
City |
Data |
Quality Grade |
AQI |
PM2.5 |
PM10 |
SO2 |
NO2 |
CO |
O3 |
杭州 |
2023-01-01 |
轻度污染 |
120 |
90.0 |
119.0 |
7.0 |
62.0 |
0.93 |
19.0 |
杭州 |
2023-01-02 |
轻度污染 |
109 |
82.0 |
107.0 |
6.0 |
52.0 |
0.85 |
36.0 |
杭州 |
2023-01-03 |
良 |
68 |
49.0 |
65.0 |
6.0 |
37.0 |
0.73 |
40 |
杭州 |
2023-01-04 |
良 |
64 |
46.0 |
66.0 |
7.0 |
41.0 |
0.67 |
38.0 |
… |
… |
… |
… |
… |
… |
… |
… |
… |
… |
温州 |
2023-12-28 |
良 |
62 |
40.0 |
73.0 |
6.0 |
43.0 |
0.49 |
40.0 |
温州 |
2023-12-29 |
良 |
68 |
48.0 |
79.0 |
5.0 |
47.0 |
0.50 |
53.0 |
温州 |
2023-12-30 |
良 |
99 |
74.0 |
116.0 |
6.0 |
70.0 |
0.74 |
37.0 |
温州 |
2023-12-31 |
良 |
99 |
74.0 |
115.0 |
7.0 |
53.0 |
0.81 |
54.0 |
2.2. BP神经网络
误差逆传播(Back Propagation)神经网络算法,简称BP神经网络,是一种将误差进行逆向传输以完成算法训练的前馈型神经网络[8]。BP神经网络的原理是各层神经元之间相互连接,但同一层内的神经元无连接[9]。其模型结构图见图1。
Figure 1. BP neural network model architecture diagram
图1. BP神经网络模型结构图
该网络的训练过程包含信息的正向传递(前馈网络)和误差的反向回馈,正向传递是将信息输进输入层,经过若干隐含层处理后传到输出层,将输出层的输出值与预期的输出值进行对比,如果误差较大,它将进入到误差的反向回馈部分,将误差向后经隐含层传向输入层,并将误差分摊给各层的神经元,根据梯度下降法对每一层的神经元权值进行修正,此传播过程一直持续到输出的误差减小到可以接受的范围或预先设定的学习次数为止[10]。这一过程赋予了该模型卓越的容错性和泛化能力。
定义输出层神经元为n,输出层神经元为1,中间隐层神经元为m。设输入矢量
,中间隐层的输出矢量
,网络是输出为y值。输入层与第二层之间的连接权为
,阈值为
;第二次与输出层之间的连接权为
,阈值为
;则各层神经元的输出满足:
(1)
其中,
。定义输入样本个数为p,即
,对应的实际值为
。令
,
,
,
,则式(1)改写为:
(2)
总误差:
。其中
,
,且:
(3)
尽管BP神经网络是一种广泛使用的机器学习模型,但在处理复杂任务时,它也面临着一些挑战。例如训练时间较长,尤其在处理大型数据集和深层网络时,训练时间可能非常长,需要大量的计算资源;同时BP神经网络容易在训练集上过拟合,导致在测试集上的性能下降,网络可能会过度学习训练数据中的噪声和异常;并且存在优化困境,即BP神经网络训练过程中,梯度下降算法可能陷入局部最优解,而不是全局最优解,这会限制模型的性能。为了克服这些问题,研究人员在BP神经网络的后续发展中不断寻求更优化的算法和创新的架构。
2.3. BFGS算法
BFGS (Broyden-Fletcher-Goldfarb-Shanno)算法是一种拟牛顿法,用于求解无约束优化问题。它通过迭代方式更新一个近似Hessian矩阵的逆矩阵,从而避免了直接计算Hessian矩阵及其逆矩阵的高昂计算成本和可能的数值不稳定性[11]。对于无约束优化问题
,关键是如何选取搜索方向,使得目标函数最速下降。设
为目标函数
的极小点
的一个近似,将
在
附近进行Taylor展开:
(4)
其中
,
,
。若
正定,则
有唯一极小点,将其取作
的下一次近似
,故
应该满足
,得:
(5)
式(5)即为Newton迭代公式,具有二阶收敛速度。若将式(5)改写为:
(6)
其中
为n阶对称矩阵,
为一维搜索步长。令
,则式(6)为最速下降法;令
,则式(6)为阻尼Newton法。作:
(7)
,
则式(6)即为BFGS算法,具有二次终止性、整体收敛性和超线性收敛性,且算法所产生的搜索方向是共轭的,因此该算法的收敛速度比仅为线性收敛的梯度最速下降法快。此外,在实际计算过程中,由于舍入误差的存在及一维搜索的不精确性,BFGS算法效率所受的影响小于梯度最速下降法和共轭梯度法,因此BFGS算法精度比梯度最速下降法和共轭梯度法高[12]。
2.4. BFGS-BP算法流程
基于BFGS算法的BP神经网络训练算法主要包括以下步骤:
1) 设初始状态,令
,得到初始权向量
;取
,利用式(3)计算
;令k = 0。
2) 令
。
3)
,且令
。
4)
。若
,则
,停止计算;否则利用式(7)计算
;令
,转Step 2。
同时,算法中梯度矢量
的计算步骤:
1) 设初始样本序号
。
2) 在已知p个学习样本中,顺序取样本输入到网络中,令
,输入第
个样本。
3) 按照式(2)计算
。
4) 求出各层误差,对已知的样本结果用式(3)计算
。
5) 记录学习过的样本数
,若
,则转Step2;否则按式(3)计算
。
3. 实例分析
3.1. 描述性分析
首先,从浙江省整体出发,计算每月的平均空气质量指数(AQI),通过绘制时间序列图来展示每月平均AQI的变化趋势,从而直观地观察空气质量的波动和长期趋势,见图2。
Figure 2. Monthly average AQI trend
图2. 月平均AQI变化趋势
由上图2可知,1月至3月呈漏斗形,3月至6月期间AQI持续降低,在6月达到全年最低值。这一趋势可能与逐渐变暖的天气和植物生长有关;从7月开始,AQI逐渐回升,并在12月达到最高值,尤其是从10月至12月,AQI的上升趋势非常明显。总体而言,2023年浙江省的平均AQI呈现出先下降后上升的趋势,最低值出现在6月,这可能与浙江省6月的气候条件(较多降雨和较高湿度)有关,这些因素有助于减少空气污染物浓度。最高值出现在12月,可能与冬季取暖导致的燃煤和其他取暖方式相关的排放增加有关,同时冬季的气象条件(如逆温层的形成)也不利于空气污染物的扩散。因此,相关政府部门可以考虑在空气污染相对严重的冬季加强空气质量监测和控制,减少排放源的影响。但总体来看,平均AQI最大值为65,浙江省的空气质量全年均较好。
Figure 3. Line chart of average AQI for various cities
图3. 各城市平均AQI的折线图
其次,从不同城市出发,计算每个城市的平均AQI,从而比较各个城市之间的空气质量差异,见图3和图4。由图可知,湖州空气污染相对而言较严重,此外湖州的箱线图箱子较高,分布范围较宽,离群值较多,意味着空气质量波动较大;丽水作为一个山区城市,工业活动较少,自然环境优越,AQI值较低且波动小;舟山空气质量最好。最后,绘制污染物浓度分布图见图5,使我们能够直观了解不同污染物的浓度分布特征。
Figure 4. Box plot of AQI for various cities
图4. 各城市AQI的箱线图
见图5可知,PM2.5浓度数据集中在较低的区间,但有长尾现象,表示大多数时间PM2.5浓度较低,但也有一些时间PM2.5浓度较高;PM10浓度数据为右偏分布,尾部较短,PM10比PM2.5颗粒大,常来源于道路扬尘和工业排放,PM10污染相对PM2.5较重;SO2数据右偏分布,集中在较低数值区间,由其SO2主要来源于燃烧含硫化石燃料的排放,较低的浓度表明燃煤措辞控制可能较好;NO2数据右偏分布,集中在较低数值区间,尾部略长,NO2主要来源于机动车、发电厂和工业设施的排放,因此较长的尾部提示交通密集区域可能偶有较高的NO2浓度;CO数据分布集中在低值区间,并呈现右偏分布;O3数据分布均匀,并呈现出双峰分布。
Figure 5. Pollutant concentration distribution map
图5. 污染物浓度分布图
3.2. 模型选择
本文构建了常用于机器学习多分类预测模型中的三种:Logistic Regression、K最近邻(k-Nearest Neighbor, KNN)分类算法、BP神经网络,并将准确率、MSE、R2和多分类Log Loss作为选取不同模型的评估指标,其中多分类的Log Loss (对数损失)是一种常用的评估指标,用于衡量分类模型在多个类别上的预测性能,值越小表示模型的预测越准确。本文采用的三种方法的比较结果见表2,其中BP模型准确率最好,多分类Log Loss最低。综合考虑,选择BP模型作为空气质量分析预测的基本模型。
Table 2. Comparison of evaluation metrics for different models
表2. 不同模型评价指标对比
模型 |
准确率 |
MSE |
R2 |
多分类Log Loss |
Logistic Regression |
0.9579 |
0.0750 |
0.7715 |
0.1828 |
KNN |
0.9292 |
0.0821 |
0.7496 |
0.2832 |
BP |
0.9684 |
0.0723 |
0.8001 |
0.0595 |
3.3. BFGS-BP神经网络模型分析
3.3.1. 数据预处理
由于样本数据存在数量级差异,直接用于训练网络模型易得到同样数量级差异大的权重,导致网络模型不稳健,因此在训练网络模型前将数据进行归一化处理,使得均值为0,标准差为1。对目标变量空气质量等级进行编码处理(优——0、良——1、轻度污染——2、中度污染——3、重度污染——4、严重污染——5)。同时使用one-hot编码,将每个类别转换为一个独立的二进制特征(0或1),使得模型可以处理这些特征,避免类别之间的顺序关系,让模型更清楚地学习到各个类别之间的关系和特征。
3.3.2. BFGS-BP构建
首先确定BP网络结构、每层节点数量。BP神经网络主要由输入层、隐含层、输出层构成,网络输入层节点采用前天的六种污染物浓度值和空气质量指数共7个,因此定义输入层节点数m = 7;输出层节点为当天的空气质量等级,因此定义输出层节点数n = 6;隐含层节点数p则根据经验公式
选取,其中α为常数,一般取1~10之间的整数。训练集和测试集数据占比为7:3,其中训练集构建BP神经网络,测试集观察实际值与期望值的差异。选择sigmiod作为输出层和隐含层的传递函数,训练次数为1000次,误差精度期望值为0.001。流程为初始化神经网络权重,然后计算前向传播的输出,计算交叉熵损失和反向传播的梯度;同时使用Python中的scipy.optimize.minimize中的BFGS方法优化权重。
Figure 6. Comparison of prediction results on training set
图6. 训练集预测结果对比
Figure 7. Comparison of prediction results on test set
图7. 测试集预测结果对比
Figure 8. Confusion matrices for training sets and test sets
图8. 训练集和测试集的混淆矩阵
通过测试定义隐含层节点数为10,使得训练集和测试集两者准确率差值控制在3%以内,不容易出现过度拟合或欠拟合的问题。运行得出决定系数
,说明空气质量等级的总变化量中BP神经网络模型可以解释91.85%的变化量,其余8.15%的变化量是由误差解释的,因为
,所以该BFGS-BP神经网络模型的拟合优度较高,空气质量等级与各污染物间的非线性关系是显著的。
最终,训练集和测试集的准确率分别为99.85%和97.95%,预测效果好,准确率高,表明BFGS-BP神经网络算法对加快网络训练速度、提高网络预测能力方面是有效的。训练集和测试集的预测结果对比图分别见下图6和图7,其中图中的凸起为预测错误点。
在该混淆矩阵中,每一行代表真实类别,每一列代表预测类别。一般而言,我们希望精确率和召回率都较高,同时F1分数也较高。混淆矩阵数据见图8,通过计算类别0的F1分数最高,为97.94%,其中类别0对应空气质量等级优。综上考虑,基于2023年空气质量数据,未来整年浙江省空气质量等级整体为优。
4. 研究结论
本文依据2023年的浙江省空气质量样本数据,通过使用几种常见的机器学习算法,如逻辑回归、KNN和BP神经网络,建立预测模型,比较各方法的性能,得出BP神经网络性能较好,预测准确率高,从而以此作为基模型,在此基础上引入BFGS优化算法,探究BFGS-BP神经网络模型的预测能力。
实验结果表明,BFGS-BP神经网络拟合模型的决定系数
,拟合优度较高,说明该模型可以较准确地描述空气质量等级分类与6项污染物因子浓度间的非线性关系,故将BFGS-BP神经网络模型应用于该地区空气质量预测是可行的。此外,训练集和测试集的准确率分别为99.85%和97.95%,预测效果好,准确率高,表明基于BFGS算法的BP神经网络算法对加快网络训练速度、提高网络预测能力方面是有效的。