【深度学习】时空图卷积网络(STGCN),预测交通流量

论文地址:https://arxiv.org/abs/1709.04875

Spatio-Temporal Graph Convolutional Networks: A Deep Learning Framework for Traffic Forecasting

文章目录

  • 一、摘要
  • 二、数据集介绍
    • 美国洛杉矶交通数据集 METR-LA 介绍
    • 美国加利福尼亚交通数据集 PEMS-BAY 介绍
    • 美国加利福尼亚交通数据集 PEMSD7-M 介绍
    • 数据集含义
  • 三、任务目标
  • 四、训练过程
    • 基础推理过程
    • 邻接矩阵
    • 注意力机制
  • 五、 总结

一、摘要

准时准确的交通预测对城市交通控制和引导至关重要。由于交通流的高非线性和复杂性,传统方法无法满足中长期预测任务的要求,并且通常忽视空间和时间依赖关系。本文提出了一种新颖的深度学习框架,即时空图卷积网络(STGCN),用于解决交通领域的时间序列预测问题。我们不是应用常规的卷积和循环单元,而是在图上制定问题,并利用完整的卷积结构构建模型,这使得训练速度更快,参数更少。实验证明,我们的模型STGCN通过建模多尺度交通网络有效地捕获了全面的时空相关性,并在各种真实世界的交通数据集上始终优于最先进的基线模型。

二、数据集介绍

美国洛杉矶交通数据集 METR-LA 介绍

T-GCN文章选取了该数据集2012年3月1日至3月7日期间的207个传感器及其交通速度。每5分钟汇总一次交通速度。**相似性,数据总结出一个邻接矩阵和一个特征矩阵。邻接矩阵是由交通网络中传感器之间的距离计算出来的。**由于Los-loop数据集包含一些缺失的数据,使用线性插值法来填补缺失值.

SOTA算法:

https://paperswithcode.com/sota/traffic-prediction-on-metr-la

目前第一名是Spatio-Temporal Graph Mixformer for Traffic Forecasting,而本文的STGCN只能排18。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

美国加利福尼亚交通数据集 PEMS-BAY 介绍

PEMS-BAY 数据集由加利福尼亚大学伯克利分校的交通实验室发布。该数据集包含了旧金山湾区高速公路网络上 325 个传感器的实时交通流量数据。这个数据帮助对基于多源数据的交通预测算法进行评估和比较,并被广泛用于交通预测、拥堵控制、出行决策等领域的研究中。

SOTA:

https://paperswithcode.com/sota/traffic-prediction-on-pems-bay

在这里插入图片描述

美国加利福尼亚交通数据集 PEMSD7-M 介绍

SOTA:
https://paperswithcode.com/sota/traffic-prediction-on-pemsd7-m

PEMSD7-M 数据集由美国加州大学洛杉矶分校的智能交通系统实验室发布。该数据集收集了洛杉矶城市高速公路上的交通流量数据,包含了 228 个传感器(探头)每 5 分钟采样一次的方式收集数据。这个数据集旨在帮助进行基于不同时间尺度的交通预测研究,以提高道路网络可持续性和安全性。

在这里插入图片描述

数据集含义

以pems-bay为例,两个csv文件就是2个矩阵。

vel.csv的形状是(16384, 325),代表了16384次观测数据,每次数据都是325个传感器的数据(可能是车流量或者车速的一种综合表达的数据):

在这里插入图片描述
adj.mat.csv的形状是(325, 325),表示了传感器之间的关系,比如距离关系,是邻接矩阵,邻接矩阵是对角阵:
在这里插入图片描述

三、任务目标

还是以pems-bay数据集为例子,我们有16384次时序的观测数据,任务的目标就是预测这325个传感器的后续数据走向,看看哪个模型预测得准。

交通流量是一个很实际的问题,325个传感器分布在地区的各个要点中,邻接矩阵表达了各个传感器之间的关联性,而16384次时序观测数据也表达了传感器随时间变化采集到的数据。如果有一个模型可以很好预测传感器的后续数据,说明模型能很好预测出交通流量走势,这可以应用到交通疏通中或者预测拥堵的应用里去。

四、训练过程

基础推理过程

输入模型的x大小是,32是batchsize,12是时序步数,325是传感器维度。
在这里插入图片描述
输出的是下一次时序里的数据:
在这里插入图片描述

而训练数据条数一共有13108条:
在这里插入图片描述
13090/32
409.0625

所以每次训练是410个iter迭代步数。

x进去后,由self.st_blocks(一系列小波图运算)运算得到了x_stbs ,

在这里插入图片描述

而后 self.output 得到了预测结果。

    def forward(self, x):x_stbs = self.st_blocks(x)# [2, 1, 12, 207]->[2, 64, 4, 207]if self.Ko > 1:x_out = self.output(x_stbs)

邻接矩阵

在上述推理过程中,在哪里使用到邻接矩阵了?

在最开始用wavelet_basis来确定了小波基矩阵。

在这里插入图片描述

这个函数wavelet_basis的主要作用是根据输入的交通流量传感器的邻接矩阵adj(表示传感器之间的连接关系),以及参数s(小波尺度参数)和threshold(阈值),来计算并返回一组小波基矩阵,用于后续在图卷积过程中对信号进行多尺度分析。这个过程涉及图信号处理的核心步骤,包括拉普拉斯矩阵的计算、特征分解、小波变换的构建、阈值化处理和L1范数归一化。下面是各部分的详细解析:

  1. 计算拉普拉斯矩阵:

    • 函数首先调用calculate_laplacian_matrix来计算图的拉普拉斯矩阵L。拉普拉斯矩阵是图论中的重要概念,广泛用于图信号处理和图的谱分析,能体现图的拓扑结构。
  2. 特征分解:

    • 接着,使用fourier函数对拉普拉斯矩阵L进行特征分解,得到特征值lamb和特征向量矩阵U。这一步是图傅里叶变换的基础,用于将信号映射到频域进行分析。
  3. 构建图小波:

    • 利用weight_wavelet函数基于小波尺度s、特征值lamb和特征向量U计算小波权重矩阵Weight,以及通过weight_wavelet_inverse计算逆小波权重矩阵inverse_Weight。这两个矩阵是构建小波基的关键,用于对信号进行多尺度分解和重构。
  4. 阈值化处理:

    • 根据给定的threshold,将Weightinverse_Weight中小于该阈值的元素设为0,这是一种常见的去噪操作,可以减少噪声影响,提升模型的稳健性。
  5. L1范数归一化:

    • Weightinverse_Weight进行L1范数归一化,确保每个行的绝对值之和为1,这有助于保持能量守恒,并使后续的操作(如图卷积)更加稳定。
  6. 转换格式:

    • 最后,将矩阵转换为稀疏矩阵格式coo_matrix,以节省存储空间和加速后续的矩阵运算。

整个函数的输出t_k = (Weight, inverse_Weight)是一对小波基矩阵,它们在基于小波变换的图卷积神经网络(如之前提到的Graph_WaveletsConv)中扮演核心角色,用于捕捉不同尺度的图信号特征,增强模型对复杂时空数据的理解能力。

注意力机制

小波变换真是复杂的作用机制,大体来说,是将有用信息用小波变换方式给入到了模型前向传导。

为了引入自注意力机制,就得找一些层引入,小波卷积层是一个不错的层。

定义一个AttentionModule,它接受节点特征作为输入,通过两层全连接层和ReLU激活函数计算每个节点的注意力分数,然后通过softmax函数标准化这些分数,确保所有节点的注意力权重之和为1。在Graph_WaveletsConvWithAttention中,首先使用原有的小波图卷积操作处理输入,然后将得到的特征传递给注意力模块,实现特征的自适应加权。

在这里插入图片描述
在这里插入图片描述
整体结构在多个尺度会调用上注意力块Graph_WaveletsConvWithAttention:
在这里插入图片描述
效果是没有提升,没提升是正常的,如果一个简单的改进就能得到提升,那大家都好发论文了:

在这里插入图片描述

又试了一下没加注意力之前的模型,如论文所写,的确小波加进去,MAE为1.81:

在这里插入图片描述

五、 总结

综合来看,以普通方式改进STGCN是很难有提升的,而目前的SOTA算法非常厉害,比如
STD-MAE算法(Spatial-Temporal-Decoupled Masked Pre-training for Spatiotemporal Forecasting)在PEMS-BAY的指标MAE为 1.77, 或许要尝试一些别的改进方式才行,我这里就不再进行额外尝试了。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Cocktail for Mac 激活版:一站式系统优化与管理神器

Cocktail for Mac是一款专为Mac用户打造的系统优化与管理工具,凭借其强大的功能和简便的操作,赢得了广大用户的喜爱。这款软件集系统清理、修复和优化于一身,能够帮助用户轻松解决Mac系统中的各种问题,提高系统性能。 Cocktail fo…

Leetcode-有效的括号(带图)

20. 有效的括号 - 力扣(LeetCode)https://leetcode.cn/problems/valid-parentheses/ 题目 给定一个只包括 (,),{,},[,] 的字符串 s ,判断字符串是否有效。 有效字符串需满足&…

在做题中学习(59):除自身以为数组的乘积

238. 除自身以外数组的乘积 - 力扣(LeetCode) 解法:前缀积和后缀积 思路:answer中的每一个元素都是除自己以外所有元素的和。那就处理一个前缀积数组和后缀积数组。 而前缀积(f[i])是:[0,i-1]所有元素的乘积 后缀…

如何利用香港多IP服务器实现定制化的网络服务

如何利用香港多IP服务器实现定制化的网络服务 在当今数字化快速发展的时代,企业对于网络服务的需求日益增加,尤其是对于定制化和高度可调整的网络服务的需求。香港,作为国际金融中心和数据中心的枢纽,提供了优越的网络基础设施和…

什么是蜜罐,在当前网络安全形势下,蜜罐能提供哪些帮助

在当前的互联网时代,网络安全威胁日益严峻,攻击手段层出不穷。为了应对这些威胁,网络安全专家们不断探索新的防御手段,在过去的几年里,一种更加积极主动的网络安全方法正在兴起。蜜罐技术便是这样一种备受瞩目的主动防…

【教学类-55-05】20240516图层顺序挑战(三格长条纸加黑色边框、3*3、5张,不重复7186张,9坐标点颜色哈希值去重、保留5色)

背景需求: 前期测试了4*4框格种的8种颜色,随机抽取7种,随机排列图层,去掉相同的图片、保留7种颜色的图片,最后获得5400张样图 【教学类-55-04】20240515图层顺序挑战(四格长条纸加黑色边框、4*4、7张&…

Python程序设计 文件处理(二)

实验十二 文件处理 第1关:读取宋词文件,根据词人建立多个文件 读取wjcl/src/step1/宋词.txt文件, 注意:宋词文件的标题行的词牌和作者之间是全角空格(" ")可复制该空格 在wjcl/src/step3/cr文件夹下根据每…

【CSND博客纪念】“创作纪念日:从灵感迸发到小有成就——我的CSND博客创作之旅”

🎩 欢迎来到技术探索的奇幻世界👨‍💻 📜 个人主页:一伦明悦-CSDN博客 ✍🏻 作者简介: C软件开发、Python机器学习爱好者 🗣️ 互动与支持:💬评论 &…

算法分析与设计复习__递归方程与分治

总结自:【算法设计与分析】期末考试突击课_哔哩哔哩_bilibili 1.递归,递归方程 1.1递归条件: 1.一个问题的解可以分解为几个子问题的解; 2.这个问题与分解之后的子问题,除了数据规模不同,求解思路完全一样; 3.存在…

【面试干货】一个数组的倒序

【面试干货】一个数组的倒序 1、实现思想2、代码实现 💖The Begin💖点点关注,收藏不迷路💖 1、实现思想 创建一个新的数组,然后将原数组的元素按相反的顺序复制到新数组中。 2、代码实现 package csdn;public class…

一个强大的在线解析网站,无需登录,只用把视频链接粘贴进去就能免费解析下载视频。

TiQu.cc是什么? TiQu.cc是一个强大的在线工具,让用户可以从包括Facebook、VK、Twitter、Tiktok、Instagram等在内的100多个平台下载他们喜爱的视频。不论是音乐、电视节目、电影、短片还是个人上传的内容,TiQu.cc都可以帮助您随时随地以离线…

ChatGPT 4o 使用案例之一

2024年GPT迎来重大更新,OpenAI发布GPT-4o GPT-4o(“o”代表“全能”) 它可以接受任意组合的文本、音频和图像作为输入,并生成任意组合的文本、音频和图像输出。它可以在 232 毫秒内响应音频输入,平均为 320 毫秒&…

把tif的值映射到shp栅格

目录 问题描述代码结果示例 问题描述 假如目前有一个(多个)tif文件和一个shp文件,想要把tif中每个像素的值集成到shp文件的新字段中。如果栅格和像素是一一对应的,问题将会变得非常简单:直接把每个像素的值映射到每个…

【Python探索之旅】字典

字典的基本特性 创建字典 修改字典 添加键值对 删除键值对 字典方法 遍历字典 完结撒花​ 前言 字典是 Python 中内建的一种具有弹性储存能力的数据结构,可存储任意类型对象,与序列使用整数索引不同,它使用键(key)进行索引。 通常任何不…

小白也会SQL:大模型改变交互方式(上)

在人工智能与自然语言处理交汇点,有一种技术正悄然改变与数据交互的方式——将日常语言转化为精准SQL查询。这一“text-to-sql”转换任务,使非专业人士也能轻松驾驭复杂的数据库操作,极大地拓宽了数据应用的边界。 然而,现有前沿…

linux系统查看服务器硬件信息

1、查看服务器型号、序列号 # dmidecode|grep "System Information" -A9 | egrep "Manufacturer|Product|Serial" 2、查看主板型号 # dmidecode |grep -A16 "System Information$" 或 dmidecode -t1 3、查看BIOS信息 # dmidecode -t bios 4、…

vue嵌套路由

一、嵌套 children配置 1.父类路由 mymusic 2.子类路由 musicson 1.创建MusicSon组件 <template><div><p>从前和后来</p><p>唯一</p><p>运气来的似有若无</p></div> </template><script>export defaul…

通俗易懂的策略模式讲解

什么是策略模式&#xff1f; 策略模式是一种设计模式&#xff0c;它允许你定义一系列的算法&#xff08;策略&#xff09;&#xff0c;并将每个算法封装成一个对象。这样&#xff0c;你可以轻松地切换不同的算法&#xff0c;而不需要改变原始代码。 一个简单的例子 假设你是…

这10款安卓APP,简直好用到爆!

AI视频生成&#xff1a;小说文案智能分镜智能识别角色和场景批量Ai绘图自动配音添加音乐一键合成视频http://AI视频生成&#xff1a;小说文案智能分镜智能识别角色和场景批量Ai绘图自动配音添加音乐一键合成视频 1.追书——追书神器 追书神器是小说追新大神&#xff0c;全网实…