2023.08.20 学习周报

文章目录

  • 摘要
  • 文献阅读
    • 1.题目
    • 2.现有问题
    • 3.解决方案
    • 4.本文贡献
    • 5.方法
      • 5.1 利用长短期记忆网络学习时空演化特征
      • 5.2 构建用于气象辅助信息编码的堆叠自编码器
      • 5.3 使用多任务学习发现全市通用模式
      • 5.4 模型
    • 6. 实验
      • 6.1 数据集
      • 6.2 实验设置
      • 6.3 实验结果
    • 7.结论
    • 8.展望
  • 大气污染物传输
  • 总结


摘要

This week, I read a computer science that predicted the time series of PM2.5 in multiple locations in Beijing. Existing data-driven methods ignore the dynamic relationship between multiple sites in urban areas, resulting in unsatisfactory prediction accuracy. To solve this problem, a long short-term memory-Autoencoder multitask learning model (LSTM-Autoencoder) is proposed to predict PM2.5 time series at multiple locations across the city. The multi-layer LSTM network can simulate the spatiotemporal characteristics of urban air pollution particles, the autoencoder can encode the key evolution model of urban meteorological system, and the multi-task learning can automatically discover the dynamic relationship between multiple key pollution time series. The simulation results of PM2.5 in Beijing show the effectiveness of the proposed method. In addition, I learn the basic knowledge of air pollutant transmission.

本周,阅读了一篇预测北京市多个地点的PM2.5时间序列的文章。现有的数据驱动方法会忽略城市地区多个站点之间的动态关系,导致预测精度不理想。针对这个问题,提出了一种长短期记忆-自编码器多任务学习模型(LSTM-Autoencoder)来预测全市多个地点的PM2.5时间序列。展开来说,多层LSTM网络可以模拟城市空气污染颗粒物的时空特征,自编码器可以对城市气象系统关键演化模式进行编码,多任务学习可以自动发现多个关键污染时间序列之间的动态关系。对北京市PM2.5进行模拟,实验结果表明了该方法的有效性。此外,我学习了大气污染物传输的基础知识。


文献阅读

1.题目

文献链接:Multitask Air-Quality Prediction Based on LSTM-Autoencoder Model

2.现有问题

现有的基于人工神经网络的PM2.5时间序列预测方法,主要是选择一个地点进行建模,容易造成信息丢失。

3.解决方案

1)采用多位置PM2.5时间序列,利用LSTM学习时空演化特征。
2)考虑到深度学习模型的有效性,提出了带气象信息编码器的多任务LSTM模型,用于PM2.5时间序列的建模。
3)采用多LSTM层提取PM2.5时间序列的时空特征,提出叠置式自编码器对多个地点的气象信息进行编码,使用级联并行架构进行多任务学习。

4.本文贡献

1)考虑到空气污染物的复杂时空动态,通过多层LSTM网络的时空学习,探索城市多个地点颗粒物的时空特征。
2)利用气象信息,采用稀疏约束叠加自编码器对进化信息进行编码。
3)PM2.5时间序列在多个地点之间具有很强的相关性,于是利用多任务学习自动探索重点污染监测站之间的联系,并通过深度学习模型隐式描述各地点之间的关系。
4)对北京市多站PM2.5时间序列和气象观测资料的建模与仿真表明,该方法考虑了多站间的相互关系,取得了满意的效果。

5.方法

5.1 利用长短期记忆网络学习时空演化特征

LSTM网络图:
在这里插入图片描述

5.2 构建用于气象辅助信息编码的堆叠自编码器

1)定义了一个特征学习函数h = fθ (X),其中fθ(·)称为编码器函数。然后,解码函数X = gθ (h)学习重构原始信号。特征向量h是原始输入的压缩表示。
2)目标是构建气象信息的向量表示,并将其用于PM2.5时间序列的建模。气象自编码器的目标函数可表示为:
在这里插入图片描述
其中:XMeteo,i为第i个监测点位置的气象信息,R(θ)是自编码器权值的约束项。

5.3 使用多任务学习发现全市通用模式

1)在硬参数共享中,学习神经网络基础层的公共特征子空间。在基础层中参数是完全相同的,可以防止过拟合问题,有更好的泛化效果。
2)在软参数共享中,任务的模型参数可以是不同的、受规则约束的特征子空间。
3)多任务学习的参数学习图:
在这里插入图片描述
4)多任务学习的目标函数:
在这里插入图片描述
其中:X为多任务输入,Yi为各自的多任务学习目标,θi是第i个任务对应的学习参数,N是任务数。

5.4 模型

1)模型架构图:
在这里插入图片描述
多层LSTM网络对PM2.5时空序列特征进行学习,层叠式自编码器可以逐层压缩有用信息,提高性能。
2)在更高层次的特征学习上,使用两层密集网络学习PM2.5综合演化信息和气象辅助。基于深度特征,利用多个亚密集层对全市范围内多个地点的PM2.5时间序列进行建模,并输出预测值。整个模型的目标函数为:
在这里插入图片描述
其中:yi,j为PM2.5时间序列实值,N为空气质量监测站的个数,n是时间序列的个数。XPM2.5为所有空气质量监测站的记录值,XMeteo是辅助气象信息的输入,θ为所提模型的所有参数。

6. 实验

6.1 数据集

1)主要包括几种空气污染物的浓度:PM2.5(μg/m3)、PM10(μg/m3)、NO2(μg/m3)、CO(mg/m3)、O3(mg/m3)和SO2(μg/m3)。共有18个监测站,站点名称、经纬度如下所示:
在这里插入图片描述
2)时间序列从2017年1月30日下午4点到2018年1月31日下午3点每小时采样一次,共8784个样本。
3)利用气象信息作为辅助信息,包括温度、压力、湿度、风向、风速和天气情况。共有13个气象站,位置如下所示:
在这里插入图片描述

6.2 实验设置

优化方法是最常用的ADAM优化器,使用三个评价指标来比较所提出模型的性能:均方根误差(RMSE)、平均绝对误差(MAE)和对称平均绝对百分比误差(SMAPE)。

6.3 实验结果

1)该模型在北京市多个气象监测站的预报结果:
在这里插入图片描述
从图中可以看出,多个地点的PM2.5时间序列趋势是一致的,但地点之间的细节差异很明显。
2)该方法对PM2.5时间序列的一步前预测结果和三步前预测结果:
在这里插入图片描述
从表中可以看出,提出的方法在各个指标(RMSE、MAE、SMAPE)上都有更好的表现,每个指标的预测误差都比对比方法好10%左右。
3)LSTM-Autoencoder模型和传统LSTM模型的预测结果
在这里插入图片描述
两者之间预测结果相差很大,LSTM-Autoencoder模型在12月21日的预测结果优于传统的LSTM模型。预测曲线增长快,能有效地预测空气质量。相比之下,传统LSTM无法跟踪PM2.5时间序列的趋势。

7.结论

1)提出了一种新的多任务深度学习模型,该模型具有自动编码的辅助信息,用于空气质量时间序列预测。
2)模型可以利用历史PM2.5时间序列和全市多地点的气象时间序列,而多任务学习范式可以隐式捕捉跨任务演化模式,用于时间序列建模。
3)克服了数据驱动的PM2.5预测方法的局限性,模拟结果证实了模型的有效性。
4)模型可以跟踪PM2.5时间序列发生剧烈变化时的演变模式,并且可以隐式学习多个站点的多个PM2.5时间序列的共同模式。

8.展望

在PM2.5时间序列建模中加入更多的辅助信息,如经济因素、气体排放等,即传统PM2.5预测模型从未考虑过的确定性过程。

大气污染物传输

1.大气污染物传输的本质是空气中污染物的扩散和迁移过程,而大气污染物传输的主要因素包括风、大气稳定度、地形、气象条件等。
1)风:风的方向和速度决定了污染物的扩散方向和速率。强风能够将污染物快速地从污染源地带到其他地区,而相对较弱的风可能导致污染物在源地积累。
2)大气稳定度:大气稳定度指的是大气中垂直气流的强弱。在稳定的大气条件下,污染物容易积聚在较低的空气层中,形成雾霾等现象。而在不稳定的大气条件下,污染物可能会被较强的垂直气流带到较高的空气层,减少地表的浓度。
3)地形:山脉、山谷等地形特征能够影响风的流动,并且可能导致污染物在某些地区的积聚或稀释。
4)气象条件:温度的变化可以影响空气密度,从而影响污染物的上升和下沉。湿度可以影响污染物的溶解和反应。

2.利用高维数学方法来建立模型预测大气污染物传输
1)偏微分方程:大气污染物传输通常涉及多个自变量,如时间、空间坐标等。偏微分方程是用来描述多个自变量之间关系的数学方程。
2)扩散方程:扩散方程是描述物质传输和扩散过程的数学模型。在高维数学中,可以使用偏微分方程来表示扩散方程。这些方程可以考虑污染物浓度随时间和空间的变化,同时考虑风速、大气稳定度等因素。
3)数值模拟方法:由于复杂的大气流动和扩散过程难以解析地求解,数值模拟方法成为了预测大气污染物传输的重要工具。通过将扩散方程离散化,可以在计算机上模拟大气污染物的传输过程。
4)数据同化:将观测数据与模型预测结果进行融合,从而提高预测的准确性。数据同化技术可以将实际观测数据与模型预测进行比较,通过优化算法来调整模型参数,使模型的输出与实际观测数据更加一致。
5)随机过程:大气传输过程中存在不确定性因素,如风速和方向的随机变化。随机过程理论可以用来建立随机扩散模型,考虑这些不确定性因素对污染物传输的影响。

3.大气污染物传输过程需要遵循的物理规律
1)质量守恒:在任何给定的空间区域内,污染物的质量不能凭空产生或消失,只能通过传输和转化来改变。这意味着传输过程中,污染物的流入流出量必须相等。
2)扩散:它描述了污染物在浓度梯度驱动下在空气中的随机运动。扩散过程可以使用菲克定律来描述,该定律表明扩散通量与浓度梯度成正比。
3)对流:对流可以通过空气的运动来将污染物从一个地区传输到另一个地区,其中风的方向和速度决定了污染物的传输路径。
4)沉降:大气中的颗粒物和气溶胶等污染物会因重力作用而沉降到地面,这被称为沉降过程。沉降速率取决于颗粒物的大小、密度以及空气的粘度和密度。
5)化学反应:大气中的污染物可能会发生化学反应,导致浓度的变化。其中化学反应可以影响污染物的浓度分布和组成。
6)辐射传输:辐射传输是指太阳辐射或其他电磁辐射对污染物传输的影响。一些污染物可能吸收或散射辐射,从而影响大气的温度和辐射平衡。


总结

本周,我阅读了一篇预测北京市多个地点的PM2.5时间序列的文章,它是一个基于神经网络的预测模型,该模型使用神经网络来模拟气候污染物的运输过程。 此外,我学习了大气污染物传输的基础知识,其中包含了大气污染物传输的影响因素以及需要遵循的物理规律。下周,我会学习一些数学方法或者模型能够有效地分析大气污染的变化规律,预测大气污染物未来的走势,理解其中的优势点。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/85739.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Leetcode刷题笔记--Hot21-30

1--全排列(46) 主要思路1: 经典全排列,每次枚举每一位时,重头开始枚举,用一个访问数组记录当前已经被访问过的数字; 这道题不包含重复数字,所以不需要进行树层上的剪枝; …

[ MySQL ] — 如何理解索引以及索引的操作

目录 初识索引 认识磁盘 MySQL与存储 了解磁盘 mysql与磁盘的交互 索引的理解 理解单个Page 理解多个Page 页目录 单页情况 多页情况 索引结构 - B树 聚簇索引 和 非聚簇索引 索引操作 创建主键索引 唯一索引的创建 ​编辑 普通索引的创建 全文索引的创建 查询…

Ae 效果:CC Light Sweep

生成/CC Light Sweep Generate/CC Light Sweep CC Light Sweep(CC 光线扫描)可以创建一个动态的光线扫描,常用于模拟一束光在图像上移动的效果。支持 Alpha 通道并能基于 Alpha 通道边缘创造逼真的光照。 ◆ ◆ ◆ 效果属性说明 Center 中心…

Unity怎么制作魔法火焰特效?Unity制作魔法火焰特效方法

Unity制作魔法火焰特效方法: 在第一次玩Supergiant Games的RPG游戏《Hades》时,游戏的美术和视觉效果让人非常吃惊。受此启发,希望能够尝试制作类似风格的作品。 工作流程 整个工作从制作简单的火焰贴图开始。首先,我使用PhotoS…

深入了解Maven(一)

目录 一.Maven介绍与功能 二.依赖管理 1.依赖的配置 2.依赖的传递性 3.排除依赖 4.依赖的作用范围 5.依赖的生命周期 一.Maven介绍与功能 maven是一个项目管理和构建工具,是基于对象模型POM实现。 Maven的作用: 便捷的依赖管理:使用…

html动态爱心代码【三】(附源码)

目录 前言 特效 内容修改 完整代码 总结 前言 七夕马上就要到了,为了帮助大家高效表白,下面再给大家带来了实用的HTML浪漫表白代码(附源码)背景音乐,可用于520,情人节,生日,表白等场景,可直…

React前端开发架构:构建现代响应式用户界面

在当今的Web应用开发中,React已经成为最受欢迎的前端框架之一。它的出色性能、灵活性和组件化开发模式,使得它成为构建现代响应式用户界面的理想选择。在这篇文章中,我们将探讨React前端开发架构的核心概念和最佳实践,以帮助您构建…

使用 MATLAB 和 Simulink 对雷达系统进行建模和仿真

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

正则表达式:贪婪与非贪婪模式

正则中的三种模式,贪婪匹配、非贪婪匹配和独占模式。 在这 6 种元字符中,我们可以用 {m,n} 来表示 (*)()(?) 这 3 种元字符: 贪婪模式,简单说就是尽可能进行…

【golang】结构体及其方法的使用(struct)

函数是独立的程序实体。我们可以声明有名字的函数,也可以声明没名字的函数,还可以把它们当做普通的值传来传去。我们能把具有相同签名的函数抽象成独立的函数类型,以作为一组输入、输出(或者说一类逻辑组件)的代表。 …

【学会动态规划】摆动序列(27)

目录 动态规划怎么学? 1. 题目解析 2. 算法原理 1. 状态表示 2. 状态转移方程 3. 初始化 4. 填表顺序 5. 返回值 3. 代码编写 写在最后: 动态规划怎么学? 学习一个算法没有捷径,更何况是学习动态规划, 跟我…

Office ---- excel ---- 怎么批量设置行高

解决方法: 调整行高即可

使用Kind搭建本地k8s集群环境

目录 1.前提条件 2.安装Kind 3.使用Kind创建一个K8s集群 3.1.创建一个双节点集群(一个Master节点,一个Worker节点) 3.2.验证一下新创建的集群信息 3.3.删除刚刚新建的集群 4.安装集群客户端 4.1.安装kubectl 4.1.1.验证kubectl 4.2.安…

一文读懂设备管理系统:是什么、谁需要、怎样选

工业的迅猛发展让人类向前迈出了史无前例的步伐,工业4.0将我们又带入了一个信息化技术促进工业变革的新时代——智能化时代。一台台机器设备是工业发展史上必不可少的参与者,但企业对设备的管理存在种种痛点,比如生产设备多,但备件…

无涯教程-PHP - 简介

PHP 7是最期待的&#xff0c;它是PHP编程语言的主要功能版本。 PHP 7于2015年12月3日发布。本教程将以简单直观的方式教您PHP 7的新功能及其用法。 无涯教程假设您已经了解旧版本的PHP&#xff0c;现在就可以开始学习PHP 7的新功能。 使用下面的示例- <html><head&…

node安装node-sass依赖失败(版本不一致)

1.官网对应node版本 https://www.npmjs.com/package/node-sass2.node-sass版本对应表

WPS右键新建没有docx pptx xlsx 修复

解决wps右键没有新建文档的问题 右键没有新建PPT和Excel 1 wps自带的修复直接修复没有用 以上不管咋修复都没用 2 先编辑注册表 找到 HKEY_CLASSES_ROOT CTRLF搜文件扩展名 pptx docx xlsx 新建字符串 三种扩展名都一样操作 注册表编辑之后再次使用wps修复 注册组件&am…

使用Netplan建立Linux网络,简便的声明性方法

除了周围网络环境的复杂性之外&#xff0c;由于使用的技术堆栈和工具范围很广&#xff0c;Linux 网络可能会令人困惑。网桥、绑定、VRF 或路由的配置可以通过编程、声明、手动或自动化方式使用 ifupdown、ifupdown2、ifupdown-ng、iproute2、NetworkManager、systemd-networkd …

u盘数据丢失但占内存如何恢复?不要着急,这里有拯救方案

U盘数据丢失但占内存如何恢复&#xff1f;数据丢失是一种让人非常头疼的问题&#xff0c;尤其是当我们的U盘数据丢失了&#xff0c;但内存仍然被占用时&#xff0c;更令人困惑和焦虑。然而&#xff0c;不要慌张&#xff01;在本文中&#xff0c;将为大家介绍一些有效的方法来恢…

Apache Hudi初探(二)(与flink的结合)--flink写hudi的操作(JobManager端的提交操作)

背景 在Apache Hudi初探(一)(与flink的结合)中&#xff0c;我们提到了Pipelines.hoodieStreamWrite 写hudi文件,这个操作真正写hudi是在Pipelines.hoodieStreamWrite方法下的transform(opName("stream_write", conf), TypeInformation.of(Object.class), operatorFa…