2024/11/10周报

文章目录

  • 摘要
  • GCN+CNNGA混合模型预测进水水质
    • 代码
    • 运行结果
  • 文献阅读
    • 题目
    • 研究背景与意义
    • 研究方法
      • 数据采集与预处理
      • GCN–CNNGA混合深度学习框架的构建
    • 模型优化与实验
      • 邻接矩阵的构建与效果分析
      • 模型预测效果对比
      • 多步预测性能
    • 模型优势与应用前景
      • 精度提升与处理效率
      • 运营决策的优化支持
      • 模型的适应性与可扩展性
  • 结论

摘要

本周阅读了一篇基于基于图优化的工业废水进水水质预测混合深度学习框架的文章,并对文中提到的GCN+CNNGA混合模型进行实验,该模型整合图卷积网络(GCN)、卷积神经网络(CNN)、门控循环单元(GRU)和注意力机制,不仅能高效提取高维度数据的局部和全局特征,还能够捕捉长时间依赖性,进而提升进水水质预测的准确性和稳定性。

GCN+CNNGA混合模型预测进水水质

代码

  1. 设备配置
# 检查并配置GPU
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
print(f"Using device: {device}")

这段代码通过检查是否有可用的CUDA支持来决定是否使用GPU进行训练。torch.device("cuda") 指定在GPU上执行模型,如果没有GPU或CUDA不可用,则使用CPU (torch.device("cpu"))。这有助于加速训练,特别是在数据集较大时。

  1. 数据生成
# 数据生成
def generate_data(num_samples=20000, num_features=5, sequence_length=10):"""生成模拟工业污水处理厂的数据,带有随机波动和非线性特征"""np.random.seed(42)data = np.random.randn(num_samples, num_features)for i in range(1, num_features):data[:, i] += 0.5 * data[:, i - 1]return data

这段代码模拟生成工业污水处理厂的数据。我们假设每个时间点的输入有5个特征(num_features=5),数据集包含20000个样本(num_samples=20000)。这里使用 np.random.randn() 生成一个均值为0、标准差为1的随机数据。然后,通过对每个特征应用一定的依赖关系(例如,data[:, i] += 0.5 * data[:, i - 1]),我们模拟了特征之间的波动和非线性依赖。最终生成的 data 是一个大小为 (20000, 5) 的矩阵。

  1. 自定义数据集
# 数据预处理
class TimeSeriesDataset(Dataset):def __init__(self, data, sequence_length=10):self.data = torch.tensor(data, dtype=torch.float32)self.sequence_length = sequence_lengthdef __len__(self):return len(self.data) - self.sequence_lengthdef __getitem__(self, idx):x = self.data[idx:idx + self.sequence_length]y = self.data[idx + self.sequence_length]return x, y

在这段代码中,我们定义了一个自定义的PyTorch数据集类 TimeSeriesDataset,继承自 torch.utils.data.Dataset。该类用于处理时间序列数据,将数据拆分为输入 x 和目标输出 y,每个样本的长度为 sequence_length

  • __init__:将输入数据转化为PyTorch的 tensor 类型,并指定时间序列的长度。
  • __len__:返回数据集中样本的数量(数据长度减去序列长度)。
  • __getitem__:根据索引 idx 提取一个数据样本,返回一个序列长度为 sequence_length 的输入 x 和相应的目标输出 y

这使得我们可以轻松加载和处理时间序列数据。

  1. 手动实现GCN层
# 手动实现GCN层
class GCNLayer(nn.Module):def __init__(self, in_features, out_features):super(GCNLayer, self).__init__()self.weights = nn.Parameter(torch.randn(in_features, out_features))def forward(self, x, adj):"""GCN的基本公式:H = A * X * Wx: 输入特征矩阵 (N, F)adj: 邻接矩阵 (N, N)"""return torch.relu(torch.matmul(torch.matmul(adj, x), self.weights))

GCNLayer 类实现了一个基本的图卷积层,功能是根据邻接矩阵 adj 对输入特征矩阵 x 进行图卷积操作。

  • __init__:初始化权重矩阵 self.weights,它是一个训练参数,随机初始化形状为 (in_features, out_features),即输入特征维度和输出特征维度。
  • forward:在前向传播中,输入的特征矩阵 x 和邻接矩阵 adj 会先进行矩阵相乘(torch.matmul(adj, x)),再与权重矩阵 self.weights 相乘,得到卷积后的结果。然后使用 ReLU 激活函数进行非线性变换。

这是一个简单的图卷积层实现,用于提取图数据中的结构信息。

  1. 模型定义
# 模型定义
class GCN_CNNGA(nn.Module):def __init__(self, input_dim, hidden_dim, output_dim):super(GCN_CNNGA, self).__init__()# CNN层self.cnn = nn.Conv1d(input_dim, hidden_dim, kernel_size=3, padding=1)# GCN层self.gcn = GCNLayer(hidden_dim, hidden_dim)# GRU层self.gru = nn.GRU(hidden_dim, hidden_dim, batch_first=True)# 注意力机制self.attention = nn.Linear(hidden_dim, hidden_dim)self.fc = nn.Linear(hidden_dim, output_dim)

GCN_CNNGA 是整个模型的核心,结合了 卷积神经网络(CNN)图卷积网络(GCN)门控循环单元(GRU)注意力机制

  • CNN层:通过 nn.Conv1d 实现,用于提取时间序列数据的局部特征。输入和输出的特征维度分别为 input_dimhidden_dim,卷积核大小为3,padding设置为1。
  • GCN层:如上所述,用于提取图结构数据的特征信息。
  • GRU层:用于捕获时间序列数据中的长期依赖性,特别是在时序问题中,GRU能有效避免梯度消失问题。
  • 注意力机制:通过 nn.Linear 实现,用来加权不同时间步的特征信息,从而增强模型对重要时间步的关注。
  1. 模型前向传播
    def forward(self, x, adj):# CNN特征提取x = x.permute(0, 2, 1)  # 转换为(N, C, L)x = torch.relu(self.cnn(x))x = x.permute(0, 2, 1)  # 转回(N, L, C)# GCN特征聚合x = self.gcn(x, adj)# GRU处理时间依赖x, _ = self.gru(x)# 注意力机制attn_weights = torch.softmax(self.attention(x), dim=1)x = torch.sum(attn_weights * x, dim=1)# 输出层out = self.fc(x)return out
  • CNN:首先将输入数据 x 转置为 (N, C, L),然后应用CNN层提取局部特征,再转回 (N, L, C) 以适应后续操作。
  • GCN:将通过CNN提取的特征传入GCN层,使用邻接矩阵进行图卷积。
  • GRU:对GCN处理后的特征序列应用GRU,以捕捉长期的时间依赖。
  • 注意力机制:计算每个时间步的注意力权重,通过softmax归一化,并加权特征信息,最终进行加和。
  • 输出层:经过GRU和注意力机制后的特征传入全连接层进行最终预测。
  1. 训练与评估
# 初始化模型、优化器和损失函数
model = GCN_CNNGA(input_dim=input_dim, hidden_dim=hidden_dim, output_dim=output_dim).to(device)
optimizer = optim.Adam(model.parameters(), lr=0.001)
criterion = nn.MSELoss()# 训练模型
num_epochs = 50
for epoch in range(num_epochs):model.train()train_loss = 0for x, y in train_loader:x, y = x.to(device), y.to(device)  # 数据转移到GPUoptimizer.zero_grad()output = model(x, adj)loss = criterion(output, y)loss.backward()optimizer.step()train_loss += loss.item()print(f"Epoch {epoch+1}, Train Loss: {train_loss/len(train_loader):.4f}")
  • 训练:模型使用Adam优化器(optim.Adam)和均方误差损失函数(nn.MSELoss)进行训练。每个epoch中,通过将数据从CPU转移到GPU进行训练。在每个批次中,模型进行前向传播、损失计算、反向传播,并

优化参数。

  1. 评估与结果
# 模型评估
model.eval()
test_loss = 0
with torch.no_grad():for x, y in test_loader:x, y = x.to(device), y.to(device)  # 数据转移到GPUoutput = model(x, adj)loss = criterion(output, y)test_loss += loss.item()print(f"Test Loss: {test_loss/len(test_loader):.4f}")
  • 评估:在测试阶段,模型进入评估模式(model.eval())。不计算梯度(torch.no_grad()),减少内存消耗和加速计算。计算测试集的损失,得到模型的性能。

运行结果

在这里插入图片描述

总结

  • 这段代码实现了一个包含CNN、GCN、GRU和注意力机制的复合模型,用于处理工业污水处理厂的数据。
  • 使用自定义的数据集类 TimeSeriesDataset,结合手动实现的GCN层,完成了图卷积操作。
  • 通过优化器和损失函数,训练模型并评估其在测试集上的表现。
  • 在GPU上加速训练,提高了训练效率,尤其是在数据集规模较大的情况下。

文献阅读

题目

A hybrid deep learning framework for predicting industrial wastewater influent quality based on graph optimisation
本文提出了一种名为GCN–CNNGA的混合深度学习框架,用于应对工业污水处理厂(IETP)进水水质预测中的复杂时空非线性特征。通过整合图卷积网络(GCN)、卷积神经网络(CNN)、门控循环单元(GRU)和注意力机制,该模型不仅能高效提取高维度数据的局部和全局特征,还能够捕捉长时间依赖性,进而提升进水水质预测的准确性和稳定性。研究通过实验对比和模型优化,验证了GCN-CNNGA在处理工业污水波动性强、参数间复杂依赖关系的问题上具有显著的优势。以下是具体的研究内容和方法、模型优化过程、实验结果和未来展望。
下面我将详细分析和解释上述代码中的各个部分,并说明每个部分的功能和它们如何相互配合实现图卷积网络(GCN)模型的训练和预测。

研究背景与意义

工业化的快速发展导致了环境污染的加剧,尤其是工业污水处理,因其成分复杂、污染物浓度高,对污水处理技术提出了更高的要求。工业污水处理厂(IETP)需满足更高的水质标准,以减少对环境的负面影响。然而,由于进水水质和水量波动较大,传统污水处理技术难以实现稳定的污染物去除效果【5†source】。随着深度学习技术的发展,基于数据驱动的预测方法成为了工业污水处理中的重要工具。通过预测污水处理厂的进水负荷与成分,管理者可以提前进行系统维护和优化操作,以应对可能的波动,保障出水水质。然而,由于工业污水数据的非线性、复杂性和高维度特征,单一的深度学习模型难以准确捕捉其特征和动态变化。因此,本文提出了一种基于GCN的混合深度学习框架,以实现对工业污水处理厂进水水质的高精度预测,从而为工业污水处理提供技术支持,保护生态环境并推动可持续发展。

研究方法

数据采集与预处理

在这里插入图片描述

本研究的数据来源于中国东部某工业园区内的一座工业污水处理厂,该园区包含52家以生产环氧树脂、聚酯树脂和苯酐等化工产品为主的企业。数据收集时间为2022年9月1日至2023年4月1日,每小时采集一次数据,共获得了5136条数据。数据内容涵盖了进水流量、化学需氧量(COD)、氨氮(NH3-N)、总磷(TP)和总氮(TN)等关键进水参数。

数据预处理过程中,由于在线监测系统在收集水质数据时可能受到设备故障或存储技术限制,导致数据存在缺失值或异常值,因此本文采用K近邻算法(KNN)对缺失数据进行插补。此外,数据在进入模型之前进行了线性归一化处理,将所有特征值标准化到[0, 1]的范围内,以避免输入特征间的数量级差异对模型性能的影响。

GCN–CNNGA混合深度学习框架的构建

在这里插入图片描述
该模型的结构超参数包含一个CNN层,具有32个神经元,内核大小为3,激活函数为ReLU。GCN层包含128个神经元,丢弃率为0.01。该模型包含两个GRU层,每层有258个和128个神经元。参与注意机制的神经元数量为256个。基于Adam optimiser进行模型训练,并将损失函数设置为平均绝对误差。Epochs设置为150,batch size设置为512。

GCN–CNNGA模型通过结合CNN、GCN、GRU和注意力机制来捕捉IETP进水数据的高维度特征和复杂非线性时空模式:

  • 卷积神经网络(CNN): CNN通过局部连接和权重共享的机制提取进水时间序列数据的局部特征。通过卷积操作,逐层提取高维抽象特征,减少网络模型的复杂性,使模型能够集中在与预测目标最相关的特征上。
  • 图卷积网络(GCN): 在GCN–CNNGA模型中,GCN用于捕捉进水参数间的拓扑信息。基于互信息(MuI)构建的特征邻接矩阵能够反映变量间的复杂依赖关系,从而更准确地揭示污染物之间的内在关联。在特征聚合过程中,GCN通过邻接特征的加权聚合来更新节点的特征表示,从而学习到局部拓扑结构与节点特征信息,提升模型对水质动态变化的预测能力。
  • 门控循环单元(GRU): GRU模块用于捕捉数据的长期依赖特征。与长短期记忆网络(LSTM)相比,GRU参数较少,收敛速度快,并且具有较强的学习数据特征的能力,能够高效处理时间序列数据中的复杂依赖关系。
  • 注意力机制: 为了进一步提升预测精度,注意力机制在GCN–CNNGA模型中用于优化权重分配,使模型更加关注关键的时间段信息,强化不同特征信息的时变影响,从而提高模型的预测效果。

模型优化与实验

邻接矩阵的构建与效果分析

在这里插入图片描述

在这里插入图片描述

在GCN–CNNGA模型中,邻接矩阵的构建是关键步骤。本文尝试了基于互信息(MuI)、皮尔逊相关系数(PCC)和斯皮尔曼相关系数(SCC)构建的不同邻接矩阵,评估了其对模型预测精度的影响。结果表明,基于MuI构建的邻接矩阵能够更全面地捕捉变量间的非线性和双向关系,比PCC和SCC在处理复杂非线性关系时更为有效。因此,使用MuI作为邻接矩阵能够显著提升GCN的学习效果,并优化模型的预测性能。

模型预测效果对比

本文将GCN–CNNGA模型与传统的时间序列预测模型(如SVM和RF)、经典深度学习模型(如ANN和LSTM)进行了对比。实验结果显示,GCN–CNNGA模型在IETP数据集的四种污染物指标(COD、NH3-N、TN和TP)的预测任务中,均取得了最优的RMSE、MAE和R²指标。此外,与CNNGA模型相比,GCN–CNNGA通过引入GCN显著提升了预测精度,尤其是在高维度特征的时空依赖关系处理上表现尤为突出。
在这里插入图片描述

多步预测性能

在这里插入图片描述

GCN–CNNGA模型在1至8小时的多步预测任务中表现优异。随着预测步长的增加,虽然预测误差逐步累积,但GCN–CNNGA总体上的预测效果仍然优于对比模型,尤其在COD和NH3-N指标的长期预测中表现尤为突出。相比于LSTM,GCN–CNNGA模型的平均RMSE在四种水质指标上减少了36%以上,说明GCN在长时间序列预测中的信息捕获能力更为显著。

模型优势与应用前景

精度提升与处理效率

GCN–CNNGA模型在IETP进水水质参数的预测中展现出显著的精度提升,使得污水处理厂能够提前预测水质变化,从而灵活调整处理工艺,提高资源利用效率。这种精准的预测能力在高污染环境中尤为重要。

运营决策的优化支持

通过准确的水质预测,污水处理厂能够在水质剧烈波动之前,灵活调整操作策略,例如调节生物处理单元的微生物活性或调整物理过滤系统的运行参数,有效保障处理效率并降低操作风险。

模型的适应性与可扩展性

GCN–CNNGA模型在处理水质显著波动和复杂条件方面表现出良好的适应性,具备推广到多种类型污水处理设施的潜力,为环境保护和资源管理提供了新的技术支持。未来,可以将该模型与多目标优化方法结合,以实现更高效的资源利用和环境保护。

结论

本文创新性地提出了一种基于GCN优化的混合深度学习框架GCN–CNNGA,用于预测IETP进水水质参数。实验结果表明,GCN–CNNGA在COD、NH3-N、TN和TP四项指标的预测任务中RMSE显著降低,平均降低幅度为10-74%。相比传统的单一模型和混合模型框架,GCN的引入有效提升了模型在捕捉变量间非线性复杂关系中的表现,使得该模型在环境波动剧烈的工业污水处理场景中表现出色。此外,该模型在IETP多步预测任务中的鲁棒性进一步证明了GCN–CNNGA在处理复杂时空依赖性问题中的适应性和广泛应用潜力。

未来研究中,GCN–CNNGA模型可以进一步与多目标优化策略集成,以平衡水质合规性和经济效益,从而推动更加智能的污水处理管理。此外,结合传统的机制模型增强模型的可解释性,将是提升深度学习在环境工程领域应用效果的重要方向。

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

公司内部最好用的开源导航网站(EasyNav)

公司导航门户 一个现代化的企业内部导航门户系统,用于集中管理和展示公司各类系统和资源的链接。 项目地址:https://github.com/starslink/EasyNav体验地址:www.easynav.icu/ 功能特点 🔐 用户认证与授权邮箱注册与验证 JWT t…

pulsar源码--3-官方文档杂技

消息队列中间件会保存消息,直到收到消费者消费成功并确认,在此之后消息便可以删除,不过什么时候删除,由中间件自己决定 ack消息会一直储存,直到现有的所有订阅都确认了这条消息,在此之后如果要继续保存则需…

为什么一些工业厂房的配电箱和供电线路要安装ALP?

1、什么是ALP? ALP 低压线路保护装置是一种智能型电气保护设备,适用于额定电压至 AC660V、额定电流至 AC400A、额定频率为 50/60Hz 的低压系统。集保护、测量、控制、总线通讯为一体,是低压馈线终端的智能化综合装置。 2、功能特点 ①能够…

如何让 AI 更懂你:提示词的秘密

目录 前言常见概念大语言模型(Large Language Model)大模型输入常见参数提示词工程的限制 战略思想效果评测复杂任务拆解提示词结构化加示例加要求加维度 提示词框架 前言 小册推荐:https://juejin.cn/book/7399064580883742774 评估响应内…

特征值分解原理和实战

特征值分解(Eigenvalue Decomposition)是线性代数中的一种重要技术,用于分析矩阵的内在属性。这种分解方法主要适用于方阵(即行数和列数相等的矩阵),用于将矩阵分解为其特征向量和特征值。 基本原理 假设 …

99人!关于第十八届中国青年科技奖拟表彰对象的公示!

本期精选SCI&EI ●IEEE 1区TOP 计算机类(含CCF); ●EI快刊:最快1周录用! 知网(CNKI)、谷歌学术期刊 ●7天录用-检索(100%录用),1周上线; 免费稿件评估 免费匹配…

cherno引擎课 -

感谢b站星云图形的翻译:【双语】【最佳游戏引擎教程实战】【入门】(1):Introducing the GAME ENGINE series!_哔哩哔哩_bilibili Introducing the GAMEENGINE series 希望:它是一个制作(互动)3D实时渲染应用程序的引…

【自然资源】吉林一号卫星有关知识,你要了解

吉林一号卫星有关知识,你要了解 吉林一号商业卫星是中国第一套自主研发的商用遥感卫星星座,由长光卫星技术有限公司研制。 “吉林一号”商业卫星组星包括1颗光学遥感卫星、2颗视频卫星和1颗技术验证卫星,工作轨道均为高约650公里的太阳同步轨…

博图与Factory I/O结合实现运料小车自动往返四次控制

一、示例要求 按照上图所示完成运料小车的往返控制,由于对虚拟工厂中零件应用不熟悉,所以料斗门和小车底门都用M0.x代替完成;只对传送带有了解,因此此处借助传送带使得纸箱达到往返运动。 二、I/O分配表 类别元件I/O端口编号备注…

扩散模型和重新照明的未来

重新照明(relighting)是在给定输入场景的情况下,在指定的目标照明条件下渲染场景的任务。这是计算机视觉和图形学中的关键任务。然而,这是一个不适定问题,因为场景中物体的外观是由光源、几何形状和表面材料属性等因素…

想学习海量数据的管理方法?听这节课就够了

在大模型时代,由于模型规模的升级,需要处理的数据量也大幅增加,因此对数据管理提出了更高的要求。 首先,分布式存储系统对于企业来说至关重要,将数据分散存储在多个节点上,可以提高数据的访问速度和处理能…

Works With线上开发者大会将提供物联网行业深入的专业知识和技能

Silicon Labs2024年Works With线上开发者大会定于11月20日至21日举行,将汇集全球各地的物联网开发人员、设备制造商、无线技术专家、工程师和商业领袖,观众可免费注册参加。同时,为了方便中文观众,所有在线视频均配有中文字幕。 芯…

2024 年(第 7 届)“泰迪杯”数据分析技能赛B 题 特殊医学用途配方食品数据分析 完整代码 结果 可视化分享

一、背景特殊医学用途配方食品简称特医食品,是指为满足进食受限、消化吸收障碍、代谢素乱或者特定疾病状态人群对营养素或者膳食的特殊需要,专门加工配置而成的配方食品,包括0月龄至12月龄的特殊医学用途婴儿配方食品和适用于1岁以上的特殊医…

【日记】总感觉搞这些才回到了自己的老本行……(1179 字)

正文 前两天忘记写了几件事。 一是,周五晚上打开自己的博客,准备翻自己的笔记,然后…… 我发现,博客的子列表打不开了。我知道,完蛋了。Mdbook 它又双叒叕更新了。这次不知道又把 index.hbs 哪里给改了。 反正&#xf…

2024年11月11日历史上的今天大事件早读

700年11月11日宰相狄仁杰逝世 1821年11月11日《罪与罚》的作者陀思妥耶夫斯基诞辰 1844年11月11日清政府在五口通商口岸解除天主教禁 1851年11月11日御史王茂荫提出请变科举 1861年11月11日清皇太子载淳即皇帝位 1891年11月11日热河金丹教杨悦春发动反洋教起义 1918年11月…

【ESP】一小时速通入门笔记

【ESP】一小时速通入门笔记 前言: 之前上学时就用过一次esp32, 当时初次使用搭建编译环境费了老大功夫.在我第一篇esp32笔记中也有说明.以至于我好像忘记记录完整的入门笔记了.最近因为工作需要又开始接触esp32才发现,现在已经方便得多了.顺利的话一小时速通. 前排提醒: 本笔记…

海量小文件挑战下的CephFS:优化策略与实践探索

文章目录 1.背景2.基本概念2.1 CephFS IO流程2.2 Ceph-FUSE 3. 问题3.1 问题源起3.2 理论分析3.3 原因排查3.3.1 Ceph-FUSE日志分析3.3.2 提出猜想3.3.3 代码验证3.3.3.1 MDS端3.3.3.2 Ceph-FUSE端 3.4 小结 1.背景 随着大数据、人工智能技术的蓬勃发展,人类对于算…

团队发展与个人价值的共生

一、团队属性 团队的本质属性,在很大程度上表现为一种选择性和甄别性,即排外与排异。这意味着团队需要筛选出具有相同目标、价值观以及能力互补的成员,以达成高效的协作与共同进步。在团队运作的过程中,首要任务是明确并深入理解…

git命令及原理

git: 目录则被称之为“树” 文件被称作 Blob 对象. git help <command>: 获取 git 命令的帮助信息 git init: 创建一个新的 git 仓库&#xff0c;其数据会存放在一个名为 .git 的目录下 git status: 显示当前的仓库状态 git add <filename>: 添加文件到暂存区 git …

大模型的记忆困境:平衡持续学习与灾难性遗忘

1. 引言 持续学习是智能的关键方面。它指的是从非平稳数据流中增量学习的能力&#xff0c;对于在非平稳世界中运作的自然或人工智能体来说是一项重要技能。人类是优秀的持续学习者&#xff0c;能够在不损害先前学习技能的情况下增量学习新技能&#xff0c;并能够将新信息与先前…