时空图卷积网络:用于交通流量预测的深度学习框架-1

news/2024/9/18 23:17:14/ 标签: 深度学习, 人工智能

摘要

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

介绍

交通在每个人的日常生活中起着至关重要的作用。根据2015年的一项调查,美国司机每天花在开车上的时间平均约为48分钟在这种情况下,准确的实时交通状况预测对道路使用者、私营部门和政府都至关重要。广泛应用的交通服务,如流量控制、路线规划、导航等,也在很大程度上依赖于高质量的交通状态评价。多尺度交通预测是城市交通控制与诱导的前提和基础,也是智能交通系统(Intelligent Transportation System, ITS)的主要功能之一。

在交通研究中,通常选择交通流的基本变量,即速度、容量和密度作为监测当前交通状况和预测未来的指标。根据预测时间的长短,交通预测分为短期(5 ~ 30分钟)、中期和长期(30分钟以上)。大多数流行的统计方法(例如,线性回归)能够在短区间预测中表现良好。然而,由于交通流的不确定性和复杂性,这些方法对于相对长期的预测效果较差。

现有的中长期流量预测研究大致可分为动态建模和数据驱动两大类。动态建模使用数学工具(如微分方程)和物理知识通过计算模拟来制定交通问题[Vlahogianni, 2015]。为了达到稳态,模拟过程不仅需要复杂的系统编程,而且需要消耗巨大的计算能力。不切实际的假设和模型之间的简化也会降低预测精度。因此,随着交通数据采集和存储技术的快速发展,一大批研究人员开始将注意力转向数据驱动的方法。经典的统计模型和机器学习模型是数据驱动方法的两个主要代表。在时间序列分析中,自回归综合移动平均(ARIMA)及其变体是基于经典统计的最综合的方法之一[Ahmed and Cook, 1979;Williams和Hoel, 2003]。然而,这类模型受限于时间序列的平稳性假设,且未能考虑到时间序列的时空相关性。因此,这些方法对高度非线性的交通流具有有限的表征能力。近年来,经典的统计模型在交通预测任务上受到机器学习方法的挑战。这些模型可以实现更高的预测精度和更复杂的数据建模,如k近邻算法(KNN)、支持向量机(SVM)和神经网络(NN)。

深度学习方法已经被广泛成功地应用于各种交通任务中。相关工作取得了重大进展,例如深度信念网络(DBN) [Jia等人,2016;黄等人,2014],栈式自编码器(SAE) [Lv等人,2015;陈等,2016]。然而,这些Dense网络很难从输入中联合提取空间和时间特征。此外,在空间属性受限甚至完全缺失的情况下,这些网络的代表能力将受到严重阻碍。

为了充分利用空间特征,一些研究人员使用卷积神经网络(convolutional neural network, CNN)捕获交通网络之间的相邻关系,并在时间轴上使用循环神经网络(recurrent neural network, RNN)。Wu和Tan[2016]通过结合长短期记忆(LSTM)网络[Hochreiter和Schmidhuber, 1997]和一维CNN,提出了一种用于短期流量预测的特征级融合架构CLTFP。尽管CLTFP采用了一种直接的策略,但它仍然首次尝试对齐空间和时间规律。之后,Shi等人[2015]提出了卷积LSTM,这是一种嵌入卷积层的扩展全连接LSTM (FC-LSTM)。然而,常规的卷积操作限制了模型只能处理网格结构(例如图像、视频),而不是一般的领域。同时,用于序列学习的递归网络需要迭代训练,会逐步引入误差累积。此外,众所周知,基于RNN的网络(包括LSTM)很难训练,计算量很大。

为了克服这些问题,提出了多种策略来有效地建模交通流的时间动态和空间依赖关系。为了充分利用空间信息,本文将交通网络建模为一个整体图,而不是将其单独处理(如网格或分段)。为了解决递归网络固有的缺陷,在时间轴上采用了全卷积结构。提出了一种新的深度学习架构——时空图卷积网络,用于交通预测任务。该架构包括几个时空卷积块,它们是图卷积层[Defferrard等人,2016]和卷积序列学习层的组合,以对空间和时间依赖性进行建模。这是首次在交通研究中应用纯卷积结构同时从图结构时间序列中提取时空特征。在两个真实世界的交通数据集上评估了所提出的模型。实验表明,所提出框架在具有多个预设预测长度和网络规模的预测任务中优于现有基线。

预备知识

道路图上的交通预测与图卷积

交通预测是一个典型的时间序列预测问题,即在给定前M个交通观测值的情况下,预测未来H个时间步内最可能的交通测量值(如速度或交通流量)。

【这里介绍了道路图的预测方式及数据表示、图卷积,不进行赘述】

提出模型

网络结构

在本节中,我们详细介绍了所提出的时空图卷积网络(STGCN)架构。如图2所示,STGCN由多个时空卷积块组成,每个时空卷积块形成一个“三明治”结构,中间有两个门控序列卷积层和一个空间图卷积层。每个模块的详细描述如下。

图2:时空图卷积网络架构

 STGCN框架由两个时空卷积块(ST-Conv块)和一个全连接输出层组成。每个ST-Conv块中间包含两个时间门控卷积层和一个空间图卷积层。在每个块内部采用残差连接和瓶颈策略。输入vt−M+1,…,通过ST-Conv块对vt进行统一处理,以一致地探索空间和时间依赖关系。综合特征通过输出层集成以生成最终预测vˆ。

提取空间特征的图卷积网络

交通网络一般以图的形式组织。道路网络的数学表示是自然而合理的。然而,以往的研究忽略了交通网络的空间属性:将交通网络划分为多个区段或网格,忽略了网络的连通性和全局性。即使是网格上的二维卷积,由于数据建模的妥协,也只能粗略地捕获空间局部性。因此,在该模型中,直接在图结构数据上使用图卷积,以提取空间域中高度有意义的模式和特征。虽然通过等式(2)计算图卷积中的核Θ可能由于与图傅里叶基的乘法O(n2)而非常昂贵,但采用了两种近似策略来克服这个问题:切比雪夫多项式近似和一阶近似。


http://www.ppmy.cn/news/1518857.html

相关文章

在Ubuntu 18.04上安装MySQL的方法

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。 介绍 MySQL 是一个开源的数据库管理系统,通常作为流行的 LAMP(Linux、Apache、MySQL、PHP/Python/Perl&#xf…

discuz Upload Failed.

baidu搜索关键词 NGINX上传文件大小限制 在Nginx中设置文件上传大小限制,你需要修改client_max_body_size指令。默认情况下,该指令的值为1M,意味着上传文件大小不能超过1MB。 打开Nginx配置文件(通常是nginx.conf或者位于/etc/…

pyautogui的一些自动化示例,附代码

以下为您提供一些 pyautogui 的自动化示例及代码: 模拟鼠标点击和移动:import pyautogui # 获取屏幕的宽度和高度 screen_width, screen_height pyautogui.size() # 将鼠标移动到屏幕中心 pyautogui.moveTo(screen_width / 2, screen_height / 2) # 在…

Linux的常见指令

前言 Hello,今天我们继续学习Liunx,上期我们简单了解了Linux的基本用处,并了解了Linux的重要性,今天我们就继续更加深入的学习Linux,进行指令方面的学习,我们可以通过先学习简单的基础命令来学习Linux,并在…

css设置让整个盒子的内容渐变透明(非颜色渐变透明)

css设置让整个盒子的内容渐变透明(非颜色渐变透明) 效果核心css代码 效果 核心css代码 /* 设置蒙版上下左右渐变显示 */ mask-image: linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 1) 10%, rgba(0, 0, 0, 1) 90%, rgba(0, 0, 0, 0) 1…

LuaJit分析(一)LuaJit交叉编译

​​​​​​Android 使用ndk版本 r16b 在luajit2.1.0-beta3目录下创建一个脚本文件,armv7编译代码如下: make clean NDKE:/android-ndk-r16b #ndk路径 NDKABI21 NDKTRIPLEarm-linux-androideabi NDKVER$NDK/toolchains/$NDKTRIPLE-4.9 NDKP$NDKVER/…

QT基础之【模块】

QT基础之【模块】 写在前面版本信息内容全部模块QT基本模块QT附加模块增值模块技术预览模块QT工具 补充模块路径网络资料简要描述 摘要: 1.本文介绍了QT5.12.9的模块,主要核心内容来源于帮助文档,少量整理网络中的资料 2.分析查看安装中径中的…

代码随想录——回文子串(Leetcode 647)

题目链接 我的题解(双指针) 思路: 当然,以下是对您提供的代码的解释: class Solution {public int countSubstrings(String s) {// 初始化回文子字符串的数量int count 0;// 遍历字符串的每个字符,使用…

嵌入式Linux C应用编程指南-进程、线程(速记版)

第九章 进程 9.1 进程与程序 9.1.1 main()函数由谁调用? C 语言程序总是从 main 函数开始执行,main()函数的原型是: int main(void) 或 int main(int argc, char *argv[])。 操作系统下的应用程序在运行 main()函数之前需要先执行一段引导代…

深入解析HarmonyOS Image组件的使用与优化

在现代移动应用开发中,图像处理是一个至关重要的部分。HarmonyOS 提供了功能强大的图像组件,允许开发者从多种来源显示图像,如本地资源、网络资源、资源文件、媒体库和 Base64图像编码。本篇博客将深入探讨如何接地使用图像组件,并…

Golang | Leetcode Golang题解之第385题迷你语法分析器

题目: 题解: func deserialize(s string) *NestedInteger {index : 0var dfs func() *NestedIntegerdfs func() *NestedInteger {ni : &NestedInteger{}if s[index] [ {indexfor s[index] ! ] {ni.Add(*dfs())if s[index] , {index}}indexreturn…

C/C++二维码生成库qrencode编译与使用

1 qrencode介绍 qrencode 是一个用于生成 QR 码(Quick Response Code)的工具和库。QR 码是一种矩阵条形码或二维条形码,能够在水平和垂直方向上存储信息。qrencode 支持多种编码方式,并能够生成不同复杂度和错误校正级别的 QR 码…

R语言统计分析——单因素协方差分析

参考资料:R语言实战【第2版】 单因素协方差分析(ANCONA)扩展了单因素方差分析(ANOVA),包含一个或多个定量的协变量。下面使用multcomp包中的litter数据集进行操作: # 加载数据集 data(litter,p…

web笔记:JSP基础

一、什么是JSP? 建立在Servlet规范之上的动态网页开发技术。在JSP文件中,HTML代码与Java代码共同存在。 HTML代码用来实现网页中静态内容的显示。Java代码用来实现网页中动态内容的显示。 二、JSP的运行原理 由JSP引擎(JSP容器)将jsp转换为Servlet 当客…

【生成模型系列(初级)】自编码器——深度学习的数据压缩与重构

【通俗理解】自编码器——深度学习的数据压缩与重构 第一节:自编码器的类比与核心概念 1.1 自编码器的类比 你可以把自编码器想象成一个“智能压缩机”,它能够把输入的数据(比如图片)压缩成一个更小的表示(编码&#…

React 入门第七天:探索状态管理与Context API

在React学习的第七天,我深入了解了React的状态管理机制,特别是如何通过Context API来实现跨组件的状态共享。React的状态管理是组件交互的核心,而Context API则为全局状态的共享提供了一个简洁而强大的解决方案。 1. React 中的状态管理 Re…

在Ubuntu 16.04上安装MongoDB的方法

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。 简介 MongoDB 是一款常用于现代 Web 应用程序的免费开源 NoSQL 文档数据库。本教程将帮助您在服务器上为生产应用程序环境设置 MongoDB…

Python画笔案例-023 绘制一朵小花

1、绘制一朵小花 通过 python 的turtle 库绘制一朵小花的图案,如下图: 2、实现代码 绘制一朵小花,以下为实现代码: """一朵小花.py """ import turtle as t # 导入海龟模块做为tt.bgcolor…

Electron快速上手

什么是Electron 一款应用广泛的跨平台的桌面应用开发框架。Electron的本质是结合了 Chromium 与Node.js。使用HTML、CSS、JS 等Web技术构建桌面应用程序。 .vue,.tsx,.less,.ts也可以使用 Electron 流程模型 主进程是纯node环境,可以访问__dirname,fs模块等&#…

《C++打造高效网络爬虫:突破数据壁垒》

在当今信息爆炸的时代,网络爬虫成为了获取大量数据的重要工具。而 C作为一种高效、强大的编程语言,在实现高效网络爬虫方面具有独特的优势。 首先,C的高效性能是实现高效网络爬虫的关键。与其他编程语言相比,C在运行速度和内存管…