交通预见未来(12) 基于深度时空残差网络ResNet的城市交通流预测

1、文章信息

《Deep Spatio-Temporal Residual Networks for Citywide Crowd Flows Prediction》。

2017年AAAI大会的一篇会议论文,作者微软研究院的张钧波,会后文章发在爱斯维尔旗下期刊Artificial Intelligence(IF:3.034),目前被引257次。

2、摘要

我们提出了一种基于深度学习的方法,称为时空残差网络ST-ResNet,来同时预测城市中每个区域的流入和流出客流量。更具体地说,我们使用残差神经网络框架来对拥堵流的时间临近性、周期和趋势特性建模(closeness, period, trend,暂且这样翻译吧)。针对每个属性,我们设计了一个残差卷积单元的分支,每个残差卷积单元对拥堵流的空间特性进行建模,ST-ResNet动态整合三个残差神经网络分支的输出,为不同的分支和区域分配不同的权重。将整合结果进一步结合外部因素(external),如天气和一周中的哪一天,来预测每个地区最终流量。北京和纽约市(NYC)的实验表明,提出的ST-ResNet优于六种著名的方法。

3、简介

简介部分用了北京和纽约的两个拥堵踩踏案例引出,第一次见。然后强调介绍了本文同时预测inflow和outflow。同时预测流入流和流出流由于以下因素的影响极具挑战性:

空间依赖性spatial dependency:邻近区域的流入流和流出流相互影响。

时间依赖性temporal dependency:临近时刻的影响,前一天,上一周,季节性等周期特性。

外部因素的影响external factors:天气和突发事件等。

本文的四点主要内容:

1、ST-ResNet采用基于卷积的残差网络对城市中任意两个区域之间的远近空间依赖关系进行建模,同时保证模型的预测精度不受神经网络深度结构的影响。

2、我们将人群流动的时间特性归纳为三类,即时间邻近性、周期性和趋势性。ST-ResNet使用三个残差网络分支分别对这些特性进行建模。

3、ST-ResNet动态地聚合上述三个网络的输出,为不同的分支和区域分配不同的权重。这种聚集进一步与外部因素(如天气)相结合。

4、我们使用北京出租车的轨迹和气象数据,以及纽约自行车的轨迹数据来评估我们的方法。

4、模型介绍

在本研究中,我们根据经纬度将一个城市划分为I×J网格地图,其中网格表示一个区域,如图2(a)所示。设P为第t个时间区间的轨迹集合。网格(i,j)位于第i行和第j列。和既有研究类似,也是将流入流和流出流叠在一起看成一个2×I×J的张量(2个channel,每个channel为I行J列)

网络结构示意图

该网络结构主要由4部分组成,分别提取时间邻近性、周期性、趋势性以及外部因素的影响。

上图右上角,首先将一个城市在每个时间间隔内的流入流和流出流分别转化为一个2通道的类图矩阵,然后我们将时间轴划分为三个片段,表示最近的时间、稍远的时间和遥远的时间(其实文章中这块就是考虑了邻近时间段,前一天相同时间段,上一周相同时间段)。每一个片段分别被输入到三个ResNet分支中用来提取提取时间邻近性、周期性、趋势性。前三个部分与卷积神经网络共享相同的网络结构,然后是残差单元序列。这种结构捕捉了附近和远处区域之间的空间依赖关系。在外部因素的处理上,我们手动从外部数据集中提取一些特征,例如天气条件和事件,并将它们输入一个两层全连接的神经网络。前三部分的输出与外部因素的输出进行融合,然后利用tanh激活函数映射到(-1,1)区间内作为输出。

前三部分的网络结构:

外部因素:

交通流量可以受到许多复杂的外部因素的影响,如天气和事件。图5(a)显示节假日(中国春节)的人流与平时的人流有很大的不同。图5(b)显示,与后一周的同一天相比,暴雨使得办公区域的人流急剧减少。

Et为表示这些外部因素在预测时间区间t的特征向量。在本文中,我们主要考虑天气、假日事件和元数据(即工作日、工作日/周末)。为了预测t时段的流量,可以直接获取假日事件和元数据。然而,未来时间间隔t的天气是未知的,可以使用时间间隔t的天气预报或时间间隔t - 1的近似天气预报。在形式上,我们将两个全连接层叠加在Et上,第一层可以看作是每个子因子的带激活函数的嵌入层。第二层用于将上一层的输出映射成与Xt相同形状便于融合。

融合:

对于前三部分的融合,由于不同区域都受时间邻近性、周期性、趋势性的影响,但影响程度可能不同。在此基础上,提出了一种基于参数矩阵的融合方法:

对于前三部分和外部因素的融合,直接相加再激活:

损失函数:MSE。

5、模型超参数

在ST-ResNet的输出中,使用tanh作为最后的激活函数,其范围在-1到1之间。使用Min-Max归一化方法将数据缩放到[- 1;1]。在评估中,我们将预测值重新缩放到正常值,并与ground truth进行比较。对于外部因素,我们使用one hot编码来转换元数据(即, Day Of Week, Weekend/Weekday),节假日和天气条件为二元向量,利用Min-Max归一化将温度和风速等缩放为[0;1]。

使用Python中的 Theano和Keras构建模型。Conv1和所有剩余单元使用64个尺寸为3×3的滤波器,Conv2使用2个尺寸为3×3的滤波器进行卷积。批次大小为32。90%的训练集,剩下的10%作为验证集。在固定数量的epoch(例如10,100个epoch)的完整训练数据上训练模型。考虑前一天和上一周的数据。评价指标RMSE。

6、实验部分

本文采用了两个案例,北京的出租车轨迹数据和纽约的共享单车轨迹数据,数据量和数据范围都很大,实验部分比较复杂,不再赘述。

7、思考

该篇论文也用到了前面共享过的纽约公开的共享单车轨迹数据集。

此外,该类复杂结构模型的一个鸡肋点是如何选择基准进行比较,输入因素这么多,其他基准模型输入是什么,模型配置是什么样的,这在既有文献中大多是直接给出结果,过程基本是一个黑箱子,目前也没有统一的解决办法。

关注微信公众号《当交通遇上机器学习》,

后台回复“数据”即可获取高达175G的四个月的滴滴GPS数据和滴滴订单数据的获取方式,以及从数据处理(Oracle数据库)、模型构建(机器学习)、编程实现(python)到可视化(ArcGIS)等一系列视频教程。

后台回复“纽约”获取美国纽约10年的出租车轨迹数据以及7年的共享单车轨迹数据下载地址。

公众号以交通大数据为主线,专注于人工智能、机器学习、深度学习在道路交通和轨道交通领域内的科研前沿与应用,在交通大数据与机器学习的道路上越走越远!

(12) 基于深度时空残差网络ResNet的城市交通流预测相关推荐

  1. 深度时空残差网络在城市人流量预测中的应用

    文章目录 摘要 简介 预备知识 人流量问题的制定 深度残差学习 深度时空残差网络 前三个成分的结构 外部组件的结构 融合 算法和优化 实验 设置 结果TaxiBJ 结果BikeNYC 相关工作 总结及 ...

  2. unet是残差网络吗_基于深度监督残差网络的肝脏及肝肿瘤分割

    摘要: 针对医生手动对肝脏肿瘤CT图像分割耗时,耗力,且易受主观判断影响的问题,该研究提出一种深度监督残差网络(Deeply Supervised Residual Unet,DS-ResUnet)算 ...

  3. 深度学习——残差网络(ResNet)

    随着卷积神经网络的发展和普及,我们了解到增加神经网络的层数可以提高模型的训练精度和泛化能力,但简单地增加网络的深度,可能会出现"梯度弥散"和"梯度爆炸"等问题. ...

  4. 基于残差网络的城市人群流动预测

    基于残差网络的城市人群流动预测 摘要 Abstract 目录 第一章  绪论 1.1 研究背景及意义 1.2 研究现状 1.3 论文主要工作 1.4 论文组织结构 第二章 相关理论与技术基础 2.1 ...

  5. 深度学习目标检测 RCNN F-RCNN SPP yolo-v1 v2 v3 残差网络ResNet MobileNet SqueezeNet ShuffleNet

    深度学习目标检测--结构变化顺序是RCNN->SPP->Fast RCNN->Faster RCNN->YOLO->SSD->YOLO2->Mask RCNN ...

  6. dlibdotnet 人脸相似度源代码_使用dlib中的深度残差网络(ResNet)实现实时人脸识别 - supersayajin - 博客园...

    opencv中提供的基于haar特征级联进行人脸检测的方法效果非常不好,本文使用dlib中提供的人脸检测方法(使用HOG特征或卷积神经网方法),并使用提供的深度残差网络(ResNet)实现实时人脸识别 ...

  7. 深度残差网络RESNET

    一.残差神经网络--ResNet的综述 深度学习网络的深度对最后的分类和识别的效果有着很大的影响,所以正常想法就是能把网络设计的越深越好, 但是事实上却不是这样,常规的网络的堆叠(plain netw ...

  8. 何恺明编年史之深度残差网络ResNet

    文章目录 前言 一.提出ResNet原因 二.深度残差模块 1.数学理论基础 2.深度网络结构 三.Pytorch代码实现 四.总结 前言 图像分类是计算机视觉任务的基石,在目标监测.图像分割等任务中 ...

  9. 【深度学习】深度残差网络ResNet

    文章目录 1 残差网络ResNet 1.1要解决的问题 1.2 残差网络结构 1.3 捷径连接 1.4 总结 1 残差网络ResNet 1.1要解决的问题   在传统CNN架构中,如果我们简单堆叠CN ...

  10. TF2.0深度学习实战(七):手撕深度残差网络ResNet

    写在前面:大家好!我是[AI 菌],一枚爱弹吉他的程序员.我热爱AI.热爱分享.热爱开源! 这博客是我对学习的一点总结与记录.如果您也对 深度学习.机器视觉.算法.Python.C++ 感兴趣,可以关 ...

最新文章

  1. redis mysql排行榜实现_redis实现排行榜
  2. 北京科技大学计算机科学与技术复试,【2017年整理】北京科技大学计算机科学与技术考研经验.doc...
  3. 1、leetcode209 长度最小的子数组
  4. 改善开发进程 微软谈新Visual Studio(zz)
  5. poj 2299 (归并排序)
  6. Xcode 修改工程名以及注意事项
  7. 大学英语四六各项分值
  8. 3198元起!vivo X27/X27 Pro发布 升降摄像头+4800万三摄
  9. Oracle 9i和10g安装后的基本环境与服务
  10. SCCM 2012 R2 从入门到精通 Part8 软件部署
  11. CodeDom系列--事件(event)定义和反射调用
  12. 【数学建模】预测模型——多元回归分析 SPSS实现
  13. Ubuntu 安装包安装搜狗输入法
  14. ZigBee--CC2530单片机--按键控制LED灯
  15. 人工神经网络—神经元的数学模型
  16. 【洛谷P4234】最小差值生成树
  17. 计算机文件怎么取消隐藏文件,隐藏文件夹,教您电脑隐藏文件夹怎么恢复
  18. 从磁盘到B树到B+树
  19. 智慧仓储:打造仓储管理一张图
  20. 美国大学生足球联赛数据集football——node2vec

热门文章

  1. 计算机备份打印机驱动程序,windows7如何快速备份打印机驱动
  2. Laplacian算子-Log算子-Dog算子边缘检测原理合集及实现
  3. k2p刷机丢失eeprom_刷机经验分享,K2P无线路由器救砖必备,无线和MAC恢复窍门
  4. 一行数据顺序改变函数matlab,MATLAB中的排序函数
  5. 手写springboot
  6. 一次完整的http请求全过程(知识体系版)
  7. spring动态代理之cglib动态代理
  8. 1.R语言基本绘图分类
  9. vasp计算-INCAR文件
  10. 小丸工具箱\FFmpeg踩坑记录