第31周:文献阅读
目录
摘要
Abstract
文献阅读
问题引入
研究背景
研究动机
创新点
动态预训练方法(DynPT)
深度循环神经网络(DRNN)
传感器选择
方法论
时间序列的动态预训练
异构传感器数据的DRNN
基于稀疏度的传感器过滤
实验研究
数据准备
动态预训练DynPT
传感器数据的DRNN
DRNN v.s. VENUS
传感器的选择
核心代码
拓展分析
DRNN against AR
基准测试
传感器参数调整
总结
摘要
本文献提出了一种基于深度循环神经网络(DRNN)的PM2.5浓度预测模型,该模型采用动态预训练方法(DynPT)以增强时间序列数据的处理能力,并利用弹性网(Elastic Net)进行传感器选择以降低计算成本。模型结构包含多层自编码器和循环层,特点在于其能够捕捉时间依赖性和空间相关性,优势在于提高了预测准确性并减少了过拟合风险。该模型适用于环境监测数据的分析,特别是在空气质量管理和公共健康预警系统中。与现有的VENUS系统和其他基线模型相比,DRNN模型展现出更优的预测性能和泛化能力。未来的改进方向可能包括进一步优化动态预训练算法,提高传感器选择的效率,以及探索模型在其他环境监测领域的应用潜力。
Abstract
This paper proposes a PM2.5 concentration prediction model based on deep recurrent neural network (DRNN), which adopts dynamic pre training method (DynPT) to enhance the processing ability of time series data, and uses Elastic Net for sensor selection to reduce computational costs. The model structure includes multiple layers of autoencoders and loop layers, which are characterized by their ability to capture temporal and spatial dependencies. Its advantage lies in improving prediction accuracy and reducing the risk of overfitting. This model is suitable for analyzing environmental monitoring data, especially in air quality management and public health warning systems. Compared with existing VENUS systems and other baseline models, the DRNN model exhibits better predictive performance and generalization ability. Future improvement directions may include further optimizing dynamic pre training algorithms, improving the efficiency of sensor selection, and exploring the potential applications of the model in other environmental monitoring fields.
文献阅读
Dynamically pre-trained deep recurrent neural networks using environmental monitoring data for predicting PM2.5 | Neural Computing and Applications
问题引入
研究背景
1、对人类健康、环境和气候变化影响重大,准确预测意义重大。日本当前多使用气候模型预测
,该文献提出用 DRNN 结合新预训练方法(DynPT)和传感器选择技术来提高预测精度。
2、浓度的降低可以显著减少因空气污染导致的早死人数,并节省巨大的经济成本。
3、目前用于预测浓度的模型大多是基于气候模型(如欧拉网格、拉格朗日网格或轨迹模型),这些模型需要大量的专家知识和参数化,且在处理大量数据时效率较低。无法满足细微浓度检测的要求
研究动机
深度学习(特别是深度神经网络,DNN)在处理大规模数据和复杂模型方面取得了显著进展。特别是循环神经网络(RNN)在建模时间序列数据方面表现出色。
创新点
动态预训练方法(DynPT)
专门针对时间序列预测任务。该方法通过逐步引入时间序列数据,使网络权重逐渐适应动态变化的输出,从而提高预测的准确性。
深度循环神经网络(DRNN)
利用环境监测数据(如PM2.5浓度、风速、温度等)进行PM2.5浓度的预测。该网络通过利用传感器数据的空间相关性,进一步提高预测的准确性。
传感器选择
通过弹性网(Elastic Net)等正则化方法,实现了传感器选择,降低了计算成本并提高了模型的可解释性。这种方法不仅减少了数据处理成本,还使预测模型更易于解释。
方法论
时间序列的动态预训练
“时间序列+预训练”是一种结合了时间序列分析和预训练模型的方法,旨在提升模型对时间序列数据的理解和预测能力。 在时间序列预测任务中,预训练模型被用来提取数据的特征,这些特征随后被用于预测或分类。这种方法尤其适用于数据量有限或特征不明显的情况,能够显著提高模型的泛化能力。
上图的左半部分是预训练的过程,输入序列X被多个时间片段分为多组进行预训练;右半部分是数据时间序列的训练过程,每个时间步长的数据(用红色方框表示)随着训练的进行(即epoch的增加)逐渐被纳入训练。
异构传感器数据的DRNN
DRNN用于处理多变量时间序列数据并进行PM2.5浓度预测。模型通过多层自编码器、动态自编码器和循环神经网络来学习数据中的复杂特征和时间依赖性。最终,模型输出目标城市未来某个时间点的PM2.5浓度预测值。这种架构能够有效地捕捉环境监测数据中的动态变化和时间依赖性,从而提高PM2.5预测的准确性。
基于稀疏度的传感器过滤
稀疏度原理:稀疏性是指在一组数据中,大部分元素都是零或接近零。在机器学习中,稀疏性可以用来实现特征选择,即通过将不重要的特征权重设置为零,从而在模型中只保留重要的特征,减少不重要的特征。
实验研究
数据准备
数据特征
所需的数据特征包括目标城市及其邻近城市的一系列环境监测数据,这些特征对于捕捉PM2.5浓度的时间动态和空间相关性至关重要。具体特征涉及PM2.5浓度本身,以及可能影响其浓度的环境因素,如风速(WS)、风向(WD)、温度(TEMP)、光照强度(SUN)、湿度(HUM)和降雨量(RAIN)。这些数据以小时为单位的时间分辨率收集,覆盖了一段持续时间以包含足够的历史信息用于预测。
为了提高模型性能,这些特征数据在输入模型之前会经过清洗、标准化处理,并根据时间序列分析的需求进行分割,以确保模型能够学习到过去D个小时内的变化趋势,并预测未来N个小时的PM2.5浓度变化。
数据集
在PM2.5预测实验中,使用了17,545小时的数据,分为训练、验证和测试集。模型基于过去48小时的10个传感器数据来预测未来12小时的PM2.5浓度,考虑了3个邻近城市的信息。训练采用随机梯度下降法,经过3次交叉验证,最大200轮迭代,以优化模型性能。
动态预训练DynPT
为了验证动态预训练模型的训练效果,将它与传统自编码器方法CanAE和去噪自编码器方法DenAE进行对比实验,以均方根误差RMSE来衡量模型的性能好坏,实验结果如下图所示:
结果分析:
1、与传统的自编码器(CanAE)和去噪自编码器(DenAE)相比,提出的动态预训练方法(DynPT)在PM2.5预测任务上具有更低的RMSE值,说明其预测性能更优。
2、误差线(图中的红色线条)表示每种方法RMSE值的变动范围,可以看出DynPT的误差范围也相对较小,进一步证明了其稳定性和优越性。
传感器数据的DRNN
对于预测
任务中的模型参数优化问题,该篇文献通过改变神经网络的层数和改变不同节点数实现不同的模型预测任务,预测结果通过仍旧通过均方误差RMSE进行衡量,对比结果如下图所示:
结果分析:
图a展示了不同层数(4到9层)对模型性能的影响。随着层数的增加,所有模型的RMSE值都有所增加,表明模型可能开始过拟合。在该数据集上,较少的层数(4-5层)已经足够捕捉数据的特征,而更多的层数可能导致过拟合。
图b展示了不同节点数(30和300)对模型性能的影响。在相同的层数下,节点数为300的网络通常比节点数为30的网络表现更好,这表明更多的节点有助于模型捕捉更复杂的特征。所以增加节点数可以提高模型的性能。
DRNN v.s. VENUS
VENUS是一个由日本国立环境研究所开发的区域性PM2.5预测系统,旨在提供大气环境的可视化和分析工具,以支持环境监测和空气质量管理。该文献中提出的改进后的DRNN与原有的系统的性能进行比较,分别以“Precision、Recall和F-measure”三个指标来进行性能比较,比较结果如下表所示:
结果分析:
1、DRNN的精确率为0.634,高于VENUS的0.523,表明DRNN在预测PM2.5浓度时的准确性更高,误报更少。
2、VENUS的召回率为0.653,高于DRNN的0.606,表明VENUS在识别所有实际为正类的样本方面表现更好,召回率更高,漏报更少。
3、DRNN的F-measure为0.615,高于VENUS的0.567,说明DRNN在综合考虑精确率和召回率后的整体性能更优。
传感器的选择
为了确定哪种方法能最有效地提高模型的预测准确性、泛化能力,并同时减少模型复杂度。该文献中的实验研究部分比较了四种不同的正则化方法在PM2.5预测模型中的表现,具体包括Ridge回归(作为基线)、Lasso回归、弹性网络(Elastic Net,简称EN)以及结合稀疏自编码器(Sparse AE)和弹性网络的方法。4种方法在预测模型的表现如下表所示:
结果分析:
结合稀疏自编码器和弹性网络的方法(Sparse AE + EN)在预测准确性(最低的RMSE)、特征选择(最高的稀疏性)和传感器过滤(最高的χ/M值)方面均表现最佳。这表明该方法能够有效地从环境监测数据中选择最相关的特征,同时保持较低的预测误差,为PM2.5预测提供了一种高效且准确的解决方案。
核心代码
数据预处理
data = torch.randn(1000, 48, 10) # 假设data是形状为 (样本数, 时间步长, 特征数) 的数据张量
train_size = int(len(data) * 0.6) # 划分训练集、验证集和测试集
val_size = int(len(data) * 0.2)
test_size = len(data) - train_size - val_size
train_data, val_data, test_data = torch.split(data, [train_size, val_size, test_size])
包含数据格式转换、划分数据集
模型构建
class DRNN(nn.Module):def __init__(self, input_size, hidden_size, output_size):super(DRNN, self).__init__();self.input_size = input_sizeself.hidden_size = hidden_sizeself.output_size = output_sizeself.fc1 = nn.Linear(input_size, hidden_size)self.tanh = nn.Tanh()self.fc2 = nn.Linear(hidden_size, output_size)def forward(self, x):out = self.fc1(x)out = self.tanh(out)out = self.fc2(out)return out
DRNN模型的定义包含了模型的参数初始化以及前向传播网络
动态预训练
def dynamic_pre_training(model, data, num_epochs, num_fragments):time_steps = data.size(1)fragment_size = time_steps // num_fragmentsepoch_per_fragment = num_epochs // num_fragmentscriterion = nn.MSELoss()optimizer = torch.optim.SGD(model.parameters(), lr=1e-2)for epoch in range(num_epochs):for i in range(num_fragments):start = i * fragment_sizeend = (i + 1) * fragment_sizeif epoch < i * epoch_per_fragment:weight = 0elif epoch < (i + 1) * epoch_per_fragment:weight = (epoch - i * epoch_per_fragment) / (epoch_per_fragment - 1)else:weight = 1fragment_data = data[:, start:end, :] * weightoutput = model(fragment_data)loss = criterion(output, fragment_data)optimizer.zero_grad()loss.backward()optimizer.step()
包括初始化网络权重、定义时间序列片段、设置动态权重、预训练
模型训练与评估
def train_model(model, train_data, val_data, num_epochs, lr): #训练模型criterion = nn.MSELoss()optimizer = torch.optim.SGD(model.parameters(), lr=lr)best_val_loss = float('inf')for epoch in range(num_epochs):model.train()output = model(train_data)loss = criterion(output, train_data)optimizer.zero_grad()loss.backward()optimizer.step()model.eval()with torch.no_grad():val_output = model(val_data)val_loss = criterion(val_output, val_data)if val_loss < best_val_loss:best_val_loss = val_losstorch.save(model.state_dict(), 'best_model.pth')
def evaluate_model(model, test_data): #评估模型criterion = nn.MSELoss()model.eval()with torch.no_grad():test_output = model(test_data)rmse = np.sqrt(criterion(test_output, test_data).item())return rmse
传感器选择
def sensors_selection(model, data, threshold):input_weights = model.fc1.weight.data.cpu().numpy()sensor_sparsity = np.mean(np.abs(input_weights) <= 1e-3, axis=1)selected_sensors = np.where(sensor_sparsity >= threshold)[0]return selected_sensors
该函数根据模型第一层(这里是 fc1
全连接层)的权重稀疏性来选择传感器。
拓展分析
DRNN against AR
传统的自回归模型AR是一种常用于时间序列预测的统计方法,它可能无法充分捕捉PM2.5浓度变化的复杂性和动态性,尤其是当数据中存在非线性关系和长期依赖时。所以为了解决传统统计方法在上述方面的缺陷,提出了DRNN对抗自回归模型。
基准测试
模型的基准测试(Benchmarking)是一种评估和比较不同机器学习或深度学习模型性能的方法。该文献中CATS benchmark被用作评估不同模型在时间序列预测任务上的性能。通过比较不同模型在这一标准化测试上的E1得分,研究者可以直观地看到DynPT模型相对于其他模型(如RBMs、ARIMA、MLP)的优势。
E1得分通常用于衡量模型在预测任务中的性能,得分越低表示模型性能越好。
结果分析:
从E1得分可以看出,DynPT模型在这项测试中的表现优于其他三种模型,这意味着DynPT在捕捉数据的时间序列特征方面更为有效。
传感器参数调整
为了选择合适的模型——不仅预测误差最小,而且能在一定程度上实现传感器的选择,从而降低模型的复杂度和计算成本。 通过改变关于正则化参数λ和τ来对模型进行调整,最后用均方根误差(RMSE)和传感器稀疏性(χ/M)来衡量调整后模型的性能。该文献中的实验对传感器参数进行调整如下:
结果分析:
图a中可以看出RMSE的最小值出现在λ=1×10−4和τ=0.9的参数设置处,这表明在这个参数组合下,模型的预测误差最小,即模型性能最优。
图b中可以看出随着λ的增加(即正则化强度的增加),传感器的稀疏性也增加。
最终结果是找到一个平衡点——模型不仅预测误差最小,而且能在一定程度上实现传感器的选择,从而降低模型的复杂度和计算成本。
总结
文献先介绍预测背景引出研究,回顾相关工作后阐述理论基础,接着说明动态预训练和传感器选择等方法,再呈现实验结果,最后讨论并展望未来。特点是采用动态预训练和传感器选择技术。优势在于提升
预测精度、降低计算成本。用于空气质量预测领域,因
对健康和环境影响大。实验表明其在RMSE等指标上优于传统方法。未来可改进预训练和传感器选择技术,拓展应用范围。
相关文章:
第31周:文献阅读
目录 摘要 Abstract 文献阅读 问题引入 研究背景 研究动机 创新点 动态预训练方法(DynPT) 深度循环神经网络(DRNN) 传感器选择 方法论 时间序列的动态预训练 异构传感器数据的DRNN 基于稀疏度的传感器过滤 实验研…...

GenAI + 电商:从单张图片生成可动态模拟的3D服装
在当今数字化时代,电子商务和虚拟现实技术的结合正在改变人们的购物体验。特别是在服装行业,消费者越来越期待能够通过虚拟试衣来预览衣服的效果,而无需实际穿戴。Dress-1-to-3 技术框架正是为此而生,它利用生成式AI模型(GenAI)和物理模拟技术,将一张普通的穿衣照片转化…...

进程(1)
1.什么是进程 要回答这个问题首先我们要解答什么是程序的问题。什么是程序呢?程序本质是就是存放在磁盘上的文件。我们要运行程序,首先必须要将其加载到内存中,这样才能与cpu交互,这是冯诺依曼体系架构所决定的。 程序运行起来后…...

ChatGPT搜索免费开放:AI搜索引擎挑战谷歌霸主地位全面分析
引言 2025年2月6日,OpenAI宣布ChatGPT搜索功能向所有用户免费开放,且无需注册登录。这一重大举措在搜索引擎行业引发巨大反响,有观点认为"谷歌搜索时代即将结束"。本文将深入分析ChatGPT生成式AI搜索对谷歌搜索业务及全球搜索市场…...
hadoop之MapReduce:片和块
假如我现在500M这样的数据,如何存储? 500M 128M 128M 128M 116M 分为四个块进行存储。 计算的时候,是按照片儿计算的,而不是块儿。 块是物理概念,一个块就是128M ,妥妥的,毋庸置疑。 片是逻辑概念&…...

GitPuk快速安装配置教程(入门级)
GitPuk是一款国产开源免费的代码管理工具,工具简洁易用,开源免费,本文将讲解如何快速安装和配置GitPuk,以快速入门上手。 1、安装 支持 Windows、Mac、Linux、docker 等操作系统。 1.1 Linux安装 以下以Centos7安装…...

在CT107D单片机综合训练平台上,8个数码管分别单独依次显示0~9的值,然后所有数码管一起同时显示0~F的值,如此往复。
题目:在CT107D单片机综合训练平台上,8个数码管分别单独依次显示0~9的值,然后所有数码管一起同时显示0~F的值,如此往复。 延时函数分析LED首先实现8个数码管单独依次显示0~9的数字所有数码管一起同时显示0~F的值,如此往…...

深入浅出Java数组:从基础到高阶应用
目录 引言 一、数组概述 1.什么是数组? 2.数组的分类? 3.Java数组存储元素的特点? 4.数组优点? 5.数组缺点? 二、一维数组 1. 静态初始化一维数组 2.增强 for 循环(for-each 循环) 3…...
基于 Nginx 的 CDN 基础实现
概览 本文是对基于Nginx的CDN网络的学习笔记,阅读的代码为:https://github.com/leandromoreira/cdn-up-and-running 其中,先确定CDN中的一些基础概念: Balancer:负载均衡,即请求数据的流量最开始打到Bal…...
讲人话的理解ai学习原理
通过把各种东西打上分数标签存起来。ai不花算力是不可能的,需要巨大的算力,需要要大量gpu芯片,如果大大降低成本,就需要蒸馏别人成果,把这些参数偷偷弄过来。 比如”猫睡在石头上感觉很凉快,很舒服&#x…...

Spring boot整合quartz方法
目录 1.定时任务 1.quartz说明 2.Quartz提供了不同的数据存储策略以管理作业调度信息: 1.Quartz引入依赖 2.开发定时任务 (1)更新定时任务 (2)停止定时任务 (3)唤醒定时任务 ÿ…...

网站改HTTPS方法
默认的网站建设好后打开的样子那看起来像是钓鱼网站,现在的浏览器特别只能,就是你新买来的电脑默认的浏览器同样也会出现这样“不安全”提示。 传输协议启动了向全球用户安全传输网页内容的流程。然而,随着HTTPS的推出,传输协议通…...

数据中台是什么?:架构演进、业务整合、方向演进
文章目录 1. 引言2. 数据中台的概念与沿革2.1 概念定义2.2 历史沿革 3. 数据中台的架构组成与关键技术要素解析3.1 架构组成3.2 关键技术要素 4. 数据中台与其他平台的对比详细解析 5. 综合案例:金融行业数据中台落地实践5.1 背景5.2 解决方案5.3 成果与价值 6. 方向…...
Java Stream API:高效数据处理的利器引言
Java Stream API:高效数据处理的利器引言 在 Java 编程中,数据处理是一项极为常见且关键的任务。传统的 for 循环在处理数据集合时,往往会导致代码变得冗长、复杂,这不仅增加了代码的编写难度,还降低了代码的可读性和…...
qml之Text 组件显示当前时间
在 QML 中,显示时间的常用组件是 Text,结合 JavaScript 时间函数或者 Qt 的时间模块来实现动态时间显示。虽然 QML 没有专门用于显示时间的组件,但可以通过 Text 来显示格式化后的时间信息。 1. 使用 Text 组件显示当前时间 示例代码: import QtQuick 2.15 import QtQui…...
两栏布局、三栏布局、水平垂直居中
文章目录 1 两栏布局1.1 浮动 margin1.2 浮动 BFC1.3 flex布局1.4 左绝父相 margin1.5 右绝父相 方向定位 2 三栏布局2.1 子绝父相 margin2.2 flex布局2.3 浮动 margin2.4 圣杯布局2.5 双飞翼布局 3 水平垂直居中3.1 绝对定位 translate3.2 绝对定位 margin3.3 绝对定位…...
Hanoi ( 2022 ICPC Southeastern Europe Regional Contest )
Hanoi ( 2022 ICPC Southeastern Europe Regional Contest ) The original problem “Towers of Hanoi” is about moving n n n circular disks of distinct sizes between 3 3 3 rods. In one move, the player can move only the top disk from on…...

Matplotlib基础01( 基本绘图函数/多图布局/图形嵌套/绘图属性)
Matplotlib基础 Matplotlib是一个用于绘制静态、动态和交互式图表的Python库,广泛应用于数据可视化领域。它是Python中最常用的绘图库之一,提供了多种功能,可以生成高质量的图表。 Matplotlib是数据分析、机器学习等领域数据可视化的重要工…...
SMU寒假训练第二周周报
训练情况 本周是第二周,训练情况比第一周好一点点,也仅仅是好一点点,经过春节以及后遗症,牛客更是打的稀烂,还不如去年,都不知道自己在干嘛,训练赛情况也非常糟糕,还要去搞社会实践…...

解锁全新视界:一键畅享 360 度全景图与多格式转换
软件介绍 各位朋友,大家好!今天要给大家引荐一款超实用的全景图转换“神器”——Pano2VR Pro 的最新版本。在当今这个追求极致视觉体验的时代,它宛如一把神奇的钥匙,能够解锁全新的视觉领域,将平平无奇的不同角度图像…...
conda相比python好处
Conda 作为 Python 的环境和包管理工具,相比原生 Python 生态(如 pip 虚拟环境)有许多独特优势,尤其在多项目管理、依赖处理和跨平台兼容性等方面表现更优。以下是 Conda 的核心好处: 一、一站式环境管理:…...
Ubuntu系统下交叉编译openssl
一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机:Ubuntu 20.04.6 LTSHost:ARM32位交叉编译器:arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...

VB.net复制Ntag213卡写入UID
本示例使用的发卡器:https://item.taobao.com/item.htm?ftt&id615391857885 一、读取旧Ntag卡的UID和数据 Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click轻松读卡技术支持:网站:Dim i, j As IntegerDim cardidhex, …...
从零实现富文本编辑器#5-编辑器选区模型的状态结构表达
先前我们总结了浏览器选区模型的交互策略,并且实现了基本的选区操作,还调研了自绘选区的实现。那么相对的,我们还需要设计编辑器的选区表达,也可以称为模型选区。编辑器中应用变更时的操作范围,就是以模型选区为基准来…...
QMC5883L的驱动
简介 本篇文章的代码已经上传到了github上面,开源代码 作为一个电子罗盘模块,我们可以通过I2C从中获取偏航角yaw,相对于六轴陀螺仪的yaw,qmc5883l几乎不会零飘并且成本较低。 参考资料 QMC5883L磁场传感器驱动 QMC5883L磁力计…...
FastAPI 教程:从入门到实践
FastAPI 是一个现代、快速(高性能)的 Web 框架,用于构建 API,支持 Python 3.6。它基于标准 Python 类型提示,易于学习且功能强大。以下是一个完整的 FastAPI 入门教程,涵盖从环境搭建到创建并运行一个简单的…...

高等数学(下)题型笔记(八)空间解析几何与向量代数
目录 0 前言 1 向量的点乘 1.1 基本公式 1.2 例题 2 向量的叉乘 2.1 基础知识 2.2 例题 3 空间平面方程 3.1 基础知识 3.2 例题 4 空间直线方程 4.1 基础知识 4.2 例题 5 旋转曲面及其方程 5.1 基础知识 5.2 例题 6 空间曲面的法线与切平面 6.1 基础知识 6.2…...

C++ 求圆面积的程序(Program to find area of a circle)
给定半径r,求圆的面积。圆的面积应精确到小数点后5位。 例子: 输入:r 5 输出:78.53982 解释:由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982,因为我们只保留小数点后 5 位数字。 输…...

IoT/HCIP实验-3/LiteOS操作系统内核实验(任务、内存、信号量、CMSIS..)
文章目录 概述HelloWorld 工程C/C配置编译器主配置Makefile脚本烧录器主配置运行结果程序调用栈 任务管理实验实验结果osal 系统适配层osal_task_create 其他实验实验源码内存管理实验互斥锁实验信号量实验 CMISIS接口实验还是得JlINKCMSIS 简介LiteOS->CMSIS任务间消息交互…...
MySQL账号权限管理指南:安全创建账户与精细授权技巧
在MySQL数据库管理中,合理创建用户账号并分配精确权限是保障数据安全的核心环节。直接使用root账号进行所有操作不仅危险且难以审计操作行为。今天我们来全面解析MySQL账号创建与权限分配的专业方法。 一、为何需要创建独立账号? 最小权限原则…...