2023/3/19周报

目录

摘要        

 论文阅读

1、题目和现存问题

 2、数据和相关方法

 3、GAR和ICEEMD

4、LSTM和GRA-ICEEMD-LSTM

5、实验结果和展望

 深度学习

1、元细胞自动机相关公式

2、一些缺陷

 3、演化过程

 总结


摘要        

​        本周在论文阅读上,阅读了一篇基于复合LSTM模型的PM2. 5浓度预测的论文,对于传统单一模块机器学习模型具有训练时间较长和预测精度较低的问题,提出了一种复合模型,由LSTM、GRA、ICEEMD组成。经验证,该模型能有效提升运算效率,减少训练时长,提升预测精度,具有良好的应用效果。在深度学习上,学习了元细胞自动机的公式以及其一些缺陷,同时对于演化过程进行了代码编写。

​        This week,in terms of thesis reading,perusaling  a paper on PM2.5 concentration prediction based on a composite LSTM model.To solve the problem that the traditional single module machine learning model has long training time and low prediction accuracy, a composite model is proposed, which is composed of LSTM, GRA and ICEEMD.It has been verified that this model can effectively improve operational efficiency, reduce training time, improve prediction accuracy, and have good application effects.In deep learning,studying the formulas of cellular automata and some of its shortcomings, as well as have also written code for the evolution process.

 论文阅读

1、题目和现存问题

题目:基于复合LSTM模型的PM2. 5浓度预测

现存问题:对重点污染城市PM2. 5浓度进行模拟和精确预测,具有重要的现实意义。目前,对 PM2. 5及其他大气污染物浓度的预测主要通过基于大气动力学的数值预报模型与基于机器学习算法的统计模型实现。数值预测的精度较高,但是仍存在一些不足,包括计算复杂度高、耗时长,且需要基于可反映污染源时空分布的详细数据。采用单一模型进行预测存在预测精度差和训练时间较长的问题。

 2、数据和相关方法

​        文章选取淄博市2019年19个国控、省控监测站点逐小时大气污染物浓度数据和气象数据,建立预测模型。

 

​        数据集中共1664400 条。空气质量数据包含PM2. 5、PM10、NO2、CO、O3、SO2等6 种污染物浓度数据,气象数据包括能见度、温度、湿度、 风速监测数据。

​        在数据预处理上文章采用填补和去除相结合的方式对原始数据进行处理,得到研究时段内完整时序的污染物浓度和气象数据。将具有较为完整的气象数据的站点的数据填充到其它站点中,根据需求不同增添不同的数据。由于污染物浓度数据和气象数据都具有较强的周期性,所以对于个别缺失的数据,采用全天去除的处理方法。 

​        采用复合多种模块的LSTM模型,用以提升预测精度。复合模型中,ICEEMD模块用于降低PM2. 5浓度数据中的异常值带来的误差;GRA算法用于去除相关性较低的因素,进而降低计算量,减少计算时间。 

 3、GAR和ICEEMD

​        GRA 是一种多因素统计分析方法,是在一个灰色系统中,计算其中某个要素受其他因素影响的相对强弱程度,即:假设某一个指标与其他的某几个因素存在相关关系,计算该指标与其他因素的相关性强弱,并对这些因素进行排序,然后结合先验知识和排序结果,通过实验验证该指标与其他因素的相关性。 

​        第一步,确定分析数列。 确定反映系统行为特征的参考数列( 母序列) 和影响系统行为的比较数列(子序列) 。

 

​        第二步,变量的无量纲化处理。无量纲化处理分为初值化和均值化两种方法。 初值化方法是将初始序列的数据统一除以初始值,均值化方法是将初始序列的数据统一除以均值。文章选用初值化方法进行处理。

 

​        第三步,计算关联系数。 关联系数是比较数列与参考数列在各个时刻的关联程度值。

 

​        第四步,计算关联度。 由于关联系数的值不止一个,信息分散,不便于进行整体性比较,所以使用关联度将各个时刻的关联系数集中到一个点,作为比较数列与参考数列之间关联程度的数值表示。 

 

​        文章研究结果表明,当某一因素与PM2. 5浓度的相关性低于0. 67时,该因素对PM2. 5浓度的影响较小,对预测精度的影响较低,可予以去除。

ICEEMD在极大程度地解决模态混叠问题的同时,也减少了模态中的残余噪声,避免了分解过程中的伪模态的产生。

​        第一步,向原始信号x(t)中加入一组均值和协方差均为0的白噪声 Ek(ωi) ,得到一组新信号。

 

​        第二步,找到所有新信号xi(t)的局部最大值和局部最小值,然后根据最值求出所有上包络线y up,i(t) 、下包络线 ylow,i(t) 。

​        第三步,得出上包络线、下包络线的平均值。

 

​        第四步,重复第一步和第二步i次并求均值,得到第一个减去高频分量的剩余函数r1(t)和第一个IMF分量。

 

​        第五步,重复上述步骤,得到第二个减去高频分量的剩余函数r2( t)和第二个IMF分量 IMF2 ,以及第三个减去高频分量的剩余函数 r3( t) 和第三个 IMF 分量 IMF3 。

 

​            以此类推,第k个减去高频分量的剩余函数rk(t) 和第k个IMF分量IMFk为

 

4、LSTM和GRA-ICEEMD-LSTM

​        同传统的 RNN 相比,LSTM 具有较长期的记忆功能,可以避免梯度消失问题。结构中设计有两个门,用来控制存储单元的状态:一个是遗忘门,表示可以保存多少上一刻单元的“记忆”到记忆单元;另一个是输入门,决定可以保存多少时刻的“ 记忆” 到记忆单元,并控制“ 历史信息”与“ 当前信息” 的融合比例。 LSTM 的输出门用于控制单元状态输出信息。

 

​        文章提出 了GRA-ICEEMD-LSTM 复合预测模型。 该模型不仅将注意力放在各个因素对PM2. 5浓度预测效果的影响上,还聚焦于各个因素之间的关系,通过多模块组合实现对淄博市PM2. 5浓度的精准预测。模型建立流程:

​        (1)、通过对2019年淄博市19个空气质量监测站的监测数据进行分析, 得到2019年淄博市PM2. 5 浓度特征,并进行数据预处理,填补各站点缺失的数据。

​        (2)、分别分析各站点2019年 PM2. 5 浓度数据与SO2 、NO2 、CO、PM10 、O3浓度数据及气象数据的相关性,并用 GRA 进行变量筛选。

​        (3)、将预处理后的PM2. 5浓度数据输入ICEEMD,对分解后的IMF分量与预处理后的PM2. 5数据进行GRA相关性分析,去除相关性低于0. 67的低频分量。

​        (4)、将去除低频分量后的IMF分量重构成新的PM2. 5浓度数据,与之前经GRA筛选后的空气质量指数(AQI)其余5项指标浓度数据和气象数据一起输入LSTM模型。

 

5、实验结果和展望

​        GRA-ICEEMD-LSTM模型的RMSE 最小,R的平方最大,且训练时长最短,达到了预期的模型训练目标。凤凰山站点 3 种模型预测值评价指标:

 

​        淄博市19个空气质量监测站的评价指标系数见下表 :

 

​        GRA-ICEEMD-LSTM 模 型 的 预 测效果仍旧最优。

​        模型预测时长有效性评估:(文章所建模型在前2小时的预测效果最佳)

 

​        文章为了提高PM2. 5浓度预测的精 度, 建立了一种基于机器学习的复合模型——GRA-ICEEMD-LSTM模型。该复合模型实现了对PM2. 5浓度的精准预测,但在突变值和高浓度值的预测精度上仍存在不足,对于站点差异带来的数据差异问题也没有更好的解决办法。 未来,可针对如何提升高浓度数据和突变数据的预测精度,进一步加强研究。

 深度学习

1、元细胞自动机相关公式

​        元胞自动机(Cellular automata,CA)是由一个有限的细胞集合和一组规则组成的离散数学模型,规则根据每个细胞的当前状态和其邻居细胞的状态来确定每个细胞的状态。元胞自动机的公式可以通过定义状态转换函数的规则来推导得到。

​        元胞自动机的本质是简单的局部规则产生复杂的全局行为。通过定义不同的规则和初始状态,可以模拟出各种各样的现象,例如物理系统、生物进化、社会现象等。

​        对于一维元胞自动机,每个细胞在时刻t的状态用Si(t)表示,其中i是细胞的索引。整个元胞自动机在时刻t的状态用S(t) = {Si(t)}表示。

​        每个细胞在时刻t+1的状态可以通过将状态转换函数f应用于该细胞在时刻t的状态和相邻细胞在时刻t的状态来确定。状态转换函数f通常定义为:

​                                Si(t+1) = f(Si-1(t), Si(t), Si+1(t))

​        其中,Si-1(t)和Si+1(t)分别表示Si在时刻t的左右相邻细胞的状态。以上公式表示了一维元胞自动机的基本规则。它表明每个细胞在时刻t+1的状态仅依赖于其在时刻t的相邻细胞的状态。

​        对于二维元胞自动机,每个细胞在时刻t的状态用Si,j(t)表示,其中i和j是细胞的行和列索引。状态转换函数f定义为:

​                        Si,j(t+1) = f(Si-1,j(t), Si,j-1(t), Si,j(t), Si,j+1(t), Si+1,j(t))

​        其中,Si-1,j(t)、Si,j-1(t)、Si,j+1(t)和Si+1,j(t)分别表示Si,j在时刻t的垂直、水平和对角线方向上的相邻细胞的状态。以上公式表示了二维元胞自动机的基本规则。它表明每个细胞在时刻t+1的状态取决于其在时刻t的垂直、水平和对角线方向上的相邻细胞的状态。

​        状态转换函数f可以任意选择,但需要满足某些约束条件,如局部性和确定性。状态转换函数的具体形式决定了元胞自动机的行为,不同的状态转换函数会导致不同的模式和行为。

2、一些缺陷

1. 可能会陷入静态状态或周期状态:在某些规则下,元细胞自动机可能会陷入静态状态或周期状态,这使得它无法展现出更加复杂的演化行为。虽然一些规则能够产生有趣的演化行为,但并不是所有规则都能够产生足够丰富的演化行为。
2. 只能模拟离散空间和时间:元细胞自动机只能模拟离散空间和时间,无法模拟连续的空间和时间。这意味着它的模拟精度可能不够高,也可能无法准确地模拟某些物理现象或生物现象。
3. 依赖于初始状态和规则:元细胞自动机的演化行为严重依赖于初始状态和规则。如果选择了一个不好的初始状态或规则,可能会导致元细胞自动机无法展现出有趣的演化行为,这使得元细胞自动机在一些应用场景中的可用性受到限制。
4. 计算复杂度较高:由于元细胞自动机的演化过程涉及到大量的细胞状态更新,因此其计算复杂度较高。在模拟大规模元细胞自动机时,可能需要消耗大量的计算资源和时间。

 3、演化过程

​        规则函数 rule(cell, left, right),其中 cell、left 和 right 分别表示当前细胞自身的状态、左侧细胞的状态和右侧细胞的状态。这个函数根据这三个状态的组合返回一个新的细胞状态,这个新状态就是在下一个时刻该细胞的状态。

​        在演化过程中,我们按照元胞自动机的规则,对于数组中的每个细胞都应用规则函数,计算出它在下一个时刻的状态,并更新状态数组。这个过程被实现在 evolve(state) 函数中。


import numpy as np
import matplotlib.pyplot as plt

# 设置元胞自动机的大小和迭代次数
size = 100
steps = 100

# 定义元胞自动机的初始状态,全部设为0,只有中间的一个细胞状态为1
init_state = np.zeros(size)
init_state[size//2] = 1

# 定义元胞自动机的规则函数
def rule(cell, left, right):
    if left == 1 and cell == 1 and right == 1:
        return 0
    elif left == 1 and cell == 1 and right == 0:
        return 1
    elif left == 1 and cell == 0 and right == 1:
        return 1
    elif left == 1 and cell == 0 and right == 0:
        return 0
    elif left == 0 and cell == 1 and right == 1:
        return 1
    elif left == 0 and cell == 1 and right == 0:
        return 0
    elif left == 0 and cell == 0 and right == 1:
        return 0
    else:
        return 1

# 定义元胞自动机的演化过程
def evolve(state):
    new_state = np.zeros(size)
    for i in range(size):
        left = state[(i-1)%size]
        cell = state[i]
        right = state[(i+1)%size]
        new_state[i] = rule(cell, left, right)
    return new_state

# 迭代演化元胞自动机,并绘制演化图形
state = init_state
fig, ax = plt.subplots()
for i in range(steps):
    state = evolve(state)
    ax.imshow([state], cmap="binary")
    ax.axis("off")
    plt.pause(0.05)

plt.show()

 总结

​        本周仍然是继续学习相关模型和元细胞自动机,对于CA中的细胞演化有了一个大致的了解,在一维CA中,中间细胞的状态由左右两边细胞的状态决定,在二维CA中,中间细胞的状态由垂直、水平和对角线方向上的相邻细胞的状态决定。下周将继续对这方面进行学习。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值