Advertisement

Traffic speed prediction for urban transportation network: A path based deep learning approach

阅读量:

题目:城市交通网络的交通速度预测:一种基于路径的深度学习方法

年份:2019

成员机构:中山大学、广州大学、深圳网络安全实验室

论文链接:https://www.sciencedirect.com/science/article/pii/S0968090X1831043X?via%3Dihub

摘要

交通预测作为智能交通系统的重要组成部分,在交通状态监测中起着至关重要的作用。虽然许多研究已经使用深度学习模型完成了交通预测任务,但利用时空交通状态特征来获得更好的预测性能仍是一个有待解决的问题,模型的可解释性还没有得到重视。在本研究中,我们提出了一个基于路径的深度学习框架,可以在城市范围内产生更好的交通速度预测,而且该模型是合理和可解释的。具体来说,我们将城市路网划分为许多关键路径,有助于挖掘交通流机制。然后,通过双向长短时记忆网络对每个关键路径进行建模,多个LSTM层被堆叠起来以合并时间信息。在交通预测阶段,从这些过程中获取的时空特征被送入一个全连接层。最后,对每条路径的结果进行综合,用于速度预测。在实验中,我们将提出的模型与之前的多种基本方法进行了比较,在一系列预测情境下,我们所提出的框架效果更好。此外,通过分析隐藏层的输出特征。解释了隐藏特征的物理意义,并说明了模型的可解释性。

关键词:交通速度预测、城市路网、深度学习、双向长短时记忆网络、模型可解释性

方法

在图1中,一个基于路径的深度学习框架被呈现出来。给定由一系列路段组成的路径,我们认为,规律性的交通流往往出现在最常用的交通路径上,这些路径被定义为关键路径。正是由于交通流决定了每一个路段上的交通状态。我们可以通过分析关键路径对这些路段的时空特性有一个深入的认识。基本思想就是从历史轨迹中得到关键路段,每一个路径都可以通过LSTM建模,命名为Path-LSTM。然后,将Path-LSTM叠加 起来,合并时间信息,模拟交通状态的演化。在对每一个关键路径建模之后,并行的启动训练过程。在最后的预测任务中,受到集成学习的启发。训练好的模型独立预测,对关键路径的共享路段的结果取均值以获得更好的泛化结果。

2.1 关键路段选择

在城市道路网上,一个路段的交通状态和它的上下游路段有很大的关系,利用其进行预测是很有价值的。例如,一个路段的拥堵可能是由于上游引起的,从上游路段可能会有大量的交通流向下移动。因此,未来的速度可以根据这种时空关系推导出来。此外,通过考虑一系列片段,更多的信息可以被挖掘出来。因此,对于路径而言,本文通过合并这些路段有效的利用这些信息,我们认为,路径使用的越频繁,这条路径的各个路段关系就会越强,但是,一些和目标路段相邻的路段也有着少量的车流量,或者是交通状态模式不规律,所以他们的信息是没有用的。因此,交通数据不是直接考虑路网数据,而是按照路径去组织交通数据。在关键路径里,更精确的时空特征可以被挖掘出来用来速度预测,同时还能保持较强的可解释性。为此,包含主干路和常规交通流的路径被选择,索引r_p被用来方便选择:
r_p=rac{n_p}{|p|}um_{sn p }rac{n_p}{n_s}

上式中:r_p是路径p重要性和规律性的度量;|p|:路径p上路段的数量;n_p和n_s分别表示历史轨迹集中路径p和路段s的数量;
rac{1}{|p|}um_{sn p }rac{n_p}{n_s}越大,则p的路段越不可能出现在其他关键路径上。因此,所选择的路径对其段的排他性更强,也就是说,关键路径的路段们更可能在同一时间出现,因此呈现出很强的相关性。根据定义,关键路径按照r_p的降序来选择,这一过程将持续到所选路径的路段覆盖了整个道路网。

我将采用的做法找到关键路径:

1)首先确定要研究的路网;

2)然后确定时间(15Min),找出一个月的这15min钟里的所有的车辆的轨迹(轨迹(即路径):1-2-3,轨迹:4-7-5,等等),按照上述方法,求得r_p,降序排序,直到所有的轨迹覆盖整个路网为止。

2.2 时空深度学习模型构建

2.2.1 双向长短时记忆网络

LSTM NN(Hochreiter and Schmidhuber, 1997)是一种以长短时记忆单元为隐含层的递归神经网络。如图2所示,两个LSTM NN被用来构造双向长短时记忆网络,使得能够处理正向和反向的序列数据。值得注意的是,LSTM的cell是LSTM的核心,这有助于克服梯度爆炸和梯度消失问题,它的结构如图3所示。

LSTM的cell的方案,它可以用如下方程呈现出来:
f_t=igma
i_t=igma
ilde{C}_t=tanh
C_t=f_tdot C_{t-1}+i_tdot ilde{C}_t
o_t=igma
h_t=o_tdot tanh

上式中,dot:两个向量的对应元素相乘;igma和tanh分别是sigmod和tanh激活函数;四个W分别是输入矩阵和门矩阵的权重矩阵;四个b分别是他们的偏置;双向LSTM和LSTM NN的结构类似,我们可以计算出它的前向和后向网络的结果,分别是。然后将这两个结果串联起来就得到最后的结果:
h_n=

2.2.2 模型构建

由于路径是一系列路段,我们建议将路径的交通状态归因于各个路段的状态。为此,需要建立不同的模型去挖掘不同路径的时空交通状态特征。根据以前的研究,LSTM神经网络或Bi-LSTM神经网络被广泛用于建立时间维模型。然而,他们可能忽略了一个事实,那就是"交通波"促进了路段的状态变化。为了获取这类前向和后向信息,采用Bi-LSTM神经网络对路径进行建模,如图4所示。

被用来对路径建模的Bi-LSTM层被命名为Path-LSTM,前向网络的LSTM神经元和后向网络的LSTM神经元都对应于路径的路段。对于前向网络来说,它的信息流向是按照实际交通流的方向,目的是模拟下游的交通流波动。对于后向网络,它的信息流是相反的,表示交通流可以通过上游。基于该结构,可以综合考虑路段间的交通状态特征。此外,由于交通状态具有很强的时间相关性,为了预测更可靠,对时间信息进行同化是非常重要的。为此,我们引入了以Path-LSTM为隐藏层的前向神经网络框架,我们模拟路径随着时间的状态演化,如图5所示。

给定关键路径p中最后k个时间中各个路段段的速度,T是当前时间,|p|是路径p中路段的数量。需要指出的是,v_{T-i}^p的顺序和交通流的方向一致,因此,v_{T-i}^p代表的是空间维度上的速度序列。图5的模型是要预测下一时刻的速度

对于第一个Path-LSTM层L_j,j=0来说,它的输入是T-K+1+j时刻的速度矩阵,代表着p路段上各个路段的速度。这里我们用第s个路段作为例子来介绍特征提取过程:

上式中:elu是激活函数;f_{T-k+1+j}^+f_{T-k+1+j}^-代表着在当前层LSTM单元的前向和后向网络的计算过程(式2-7);W_{T-k+1+j}^xW_{T-k+1+j}^y是输入和输出的权重,b_{T-k+1+j}^xb_{T-k+1+j}^y是各自的偏差。在开始的时候,各个路段的速度按照式子9被映射到高维空间,产生了输入x_s,s的上游信息是s^+,它是由x_{T-k+1+j}^s和上游交通状态c^+_{s-1}共同决定的,我们得到了输出y_{T-k+1+j}^s,它可以被当作路段s所反应的整个路径的交通状态特征。

对于后续的Path-LSTM层L_j,j=1,2,...,k-1,为了合并时间维度上的信息,将最后一个时间段的交通状态和当前的速度相结合,如式子14所示,因而,这一层的输入包括在T-k+1+j时刻的速度向量和上一层的输出:

(第2个式子的第一个字母不是y是x)

通过叠加Path-LSTM层,引入时间特征,通过该方法可以对时间信息进行同化,模拟交通状态的演化。在预测阶段,将捕获的特征输入到全连通层,预测速度如下:

上式中:W_p和b_p是全连接层的权重和偏置。每一个路段的预测都是由时空特征决定的,它来自逐层提取的路段的交通状态。所以,每一个特征x_T^s,s=1,2,...,|p|暗示路段s对预测任务的贡献。

2.2.3 并行训练和集成预测

在速度预测任务中,我们对每个模型进行训练,使其在相应的道路上分段预测速度。训练过程中,最小化预测速度与均值速度的均方差(MSE),并基于adam进行优化,目标函数如下:

i是路段,t是时间,s是路段。

在对每个模型进行训练之后,我们将它们集合起来,预测未来时间步长在网络上的速度:

3 案例研究

3.1 数据描述

案例研究数据来源于宣城中心区车辆自动识别(AVI)探测器,中国。AVI的覆盖率达到80%,可用于交通速度采集和轨迹推断。研究区域是112个路段组成的路网,如图6,速度数据是近三个月的,时间间隔是5分钟。在本研究中,数据集主要分为两部分。第一部分:在本研究中,数据集主要分为两部分。第一部分从2018年1月23日至2018年4月15日对模型进行训练,随机选取80%的样本建立训练集,剩余的样本进行验证。第二部分2018年4月16日至2018年4月22日为测试集。另外,我们收集了2018年2月18日至2018年3月26日的轨迹进行关键路径选择。

3.2 关键路径选择

在模型建立之前,对路网进行关键路径选择来划分路网。从宣城AVI检测器得到的轨迹用于生成包含9,535,603条路径的历史路径集。根据第2节的选择步骤,为研究区域选择52条关键路径,即本研究将设置52个时空深度学习模型。为了说明所选关键路径的合理性,我们对皮尔逊相关系数进行了分析
(PCC) (Guyon, 2003)在训练数据集中不同段之间的速度。PCC可以测量两个变量之间的线性相关强度,因此我们使用这个指标来表示两个路段的交通速度是否存在显著的线性关系。

如图7所示,对于路网中的每个路段,该目标路段与其最强相关路段之间可能存在4种关系:“属于同一关键路径且相邻”、“仅属于同一关键路径”、“仅相邻”、“其他”。图7表示每个关系的频率。

直观地看,近60%的线段最相关的线段都位于相邻的同一关键路径上,近80%的线段属于同一关键路径。需要注意的是,我们的目标并不是找到最相关的片段,因为可能有两个彼此相距很远的强相关片段,它们的流量状态根本没有因果关系。相反,我们认为关键路径中各部分之间的相关性是一个证据,由此我们得出结论,关键路径具有进一步隐藏时空特征的条件。

3.3 分析

3.3.1 实验设置

本节采用MSE方法对预测性能进行评价,其公式如下:
MSE=rac{1}{n}um_{i=1}{n}(y_i-\hat{y}_i)2 式子21

如表1所示,为了测试所提模型的性能,我们设置了9个预测场景,并选择多个主流模型进行对比。比如说,输入时间是15Min,输出是5min意味着我们要预测这5Min内的速度(给定15min中,3个时间步,对于基准模型来说,以路网的时空状态矩阵为输入,是一个直接考虑整个路网状态的实例,LSTM能够很好的学习序列数据的时间特征,是处理沿着时间维预测的典型模型。

采用传统的神经网络对简单的深度学习模型进行性能评价。此外,我们选择KNN作为深度学习和经典机器学习技术的对比。另外,为了识别关键路径选择的效果,我们根据随机选择的路径建立了另一个模型,其中的路径数目与关键路径相同。

将基于路径的关键路径深度学习框架简称为PBDL-CP,将基于随机选择路径的深度学习框架命名为PBDL-RP。此外,我们还在考虑关键路径的框架下建立了一个普通的单向的LSTM神经网络模型,命名为PBDL-CP(-),从而验证了Bi-LSTM(双向)神经网络在该模型中的重要性。

PBDL-CP和PBDL-RP的结构包括:(输入时间跨度/5)×Path-LSTM层,其中隐藏神经元的大小
LSTM细胞为32;(输入时间跨度/5)×全连通层映射速度到高维空间,尺寸为(1,32);1×全连通层进行最终预测,其大小由输入和预测时间跨度决定。另外,学习率设置为0.0006,批量大小为32。对于PBDL-CP(-),其结构与PBDL-CP相似,隐藏神经元的大小在
LSTM细胞是64。

其他模型的结构和超参数是根据专家经验初步设定的(Cai等,2016;Ma等,
,最终的设置是基于五次交叉验证确定的。具体来说,CNN的结构包括:具有滤波器的卷积层,其尺寸为(3,3,64);具有下采样窗口的最大轮询层,其尺寸为(2,2);LSTM神经网络的结构包括:一个输入层、一个LSTM层和一个输出层,将LSTM单元调整为包含512个隐藏单元。优化后的神经网络由2个隐藏层组成,每层包含400个隐藏单元。KNN被配置为使用5个最近的点。深度学习方法采用提前停止方案,避免过拟合。

3.3.2 预测性能

首先,通过比较不同情景下模型间网络预测的MSE,进行总体评价。如下表所示,展现出了各个模型的MSE,我们所提出的模型和基础模型的错误率也被进行了比较。我们可以观察到PBDL-CP展示了最好的预测性能。此外,各个模型的平均MSE分别是略。主要原因是,对于CNN来说,由于它将输入作为图像来融合时空交通状态,这些信息在一定程度上有利于预测,考虑整个网络可能会引入干扰特性,特别是对于粗粒度的速度数据,在这种情况下,目标段的速度预测受到其他不相关段的干扰;对于LSTM神经网络,由于没有采取措施利用段间空间特征,影响了预测精度,特别是在输入时间跨度较短的情况下。此外,PBDL-CP、PBDL-RP的结果表明基于路径的框架或关键路径选择确实有助于提高预测性能,但同时引入这两种方案,可以得到更好的预测结果,特别是在预测周期较长的情况下。

此外,为了弄清性能如何随时间变化,绘制了2018年4月16日6:00-22:00不同模型的网络明智预测的MSE。图8和图9分别是短期和长期预测效果(短:5min,长:30min),对于较短的输入时间跨度(即(15min),所有模型的性能接近,因为有有限的特征可挖掘,而且这些模型的短期预测很容易。对于较长的输入时间跨度和预测时间跨度,深度学习的优势更明显,因为它可以利用隐藏层的特征去匹配非线性关系。PBDL-CP在大多数时间里都能产生较小的MSE。

3.3.3 模型的高效性

深度学习模型的训练是一项耗时的工作。在大多数情况下,一个易于优化的深度学习模型不仅有利于实际应用,而且表明它具有更好的通过数据挖掘特征的能力,因此,分析不同深度学习模型之间的训练效率是非常重要的。在本研究中,所有的深度学习模型都被进行了实验。显示在图12,其中一个epoch表示整个训练数据集上的一轮训练。通过比较,我们提出的模型训练效率最高,而CNN是最难训练的。其原因是,所提出的模型将路网划分为关键路径,并并行训练,因此所考虑的特征更少。相反,由于CNN直接考虑整个网络的时空特性,如此庞大的信息量加上卷积处理,使得成本更加昂贵。

3.4 模型的可解释性

解释是对人类进行解释的过程(Kim and Doshi-Velez, 2017)。然而,由于神经网络隐含层的输出总是很难理解,因此可解释性仍然是深度学习中的一个关键问题。特别是对于域应用程序。因此,在以往的基于深度学习的交通状态预测研究中,模型被认为是一个“黑匣子”。为了应对这一挑战,本小节将通过分析Path-LSTM层的输出来演示所提模型的时空可解释性。为简单起见,我们将重点考虑输入时间跨度为45分钟,预测时间跨度为5分钟的场景,用于说明的数据为2018年4月17日的路网速度。此外,我们将Path-LSTM层的输出维数设置为1,以便进行显式可视化。

3.4.1 时间特性解释

如前所述,该模型叠加了多个路径lstm层来模拟交通状态的演化并吸收时间信息。分析Path-LSTM的输出将有助于证明模型的可解释性。具体来说,由于时间信息是逐层抽象的,最后一个Path-LSTM层的输出可以是所有时间特征的总和,因此它的可视化更加重要和直观。

如图13(左)所示,关键路段之一如图所示。为了构建模型的输入,我们将这个路径的速度特征按照0:00-0:45,......,23:10-23:55分割。然后,对于每一个输入,下一层的输出可以被收集,这可以被当作一个特征向量,如图13的右图所示。最后,特征向量被堆叠形成了一个矩阵。训练之前和之后的矩阵是F和ilde{F}。为了比较,这条路径的所有速度数据痘被放到时空状态矩阵S里,然后这三个矩阵的可视化如图所示。其中水平轴的索引表示所选路径上线段的标记,交通状态矩阵的可视化意味着各路段的交通状态随时间维数的变化而变化,然而,训练前的特征矩阵是没有意义的,因为它是类噪声的可视化。相比之下,训练后的特征矩阵表现出与状态矩阵相似的强时间分辨能力,通过这种比较,我们可以合理地认为,该模型已经学会了对时间特征进行累积和提取,用于预测。

3.4.2 空间维度的可解释性

在空间特征上,由于我们将路径-LSTM层映射到关键路径,所以其段之间的关系可以通过LSTM单元之间的连接来反映。因此,主要通过分析各LSTM单元对预测结果的影响来进行解释。根据式子18可以得出,路径p上的路段s在T+t时刻的预测被认为是最后一层的输出的线性结合

W_{fc}|p|表示第j行,第(s+(t-1)|p|)列,x_j表示LSTM最后一层的输出。根据所提出的结构,xj是第j段所提供的用于预测的特征。因此,qt j s被认为是第j段对预测的贡献。它越大,说明它对v的影响就越大。根据2018年4月17日的航速数据,对52个模型(即,共进行了83,687个预测。对于关键路径上的每一个预测,通过分析各部分的贡献来解释空间特征。

对于每个部分,有4种交通预测:路段本身,它的上游段,其下游部分和该条关键路径中的其他部分,因此相对应的平均贡献可以计算出来,那么所有的贡献是规范化贡献自己更多明确的表示,定义为平均相对贡献(ARC) 。此外,我们以两个典型的交通场景为例来说明可解释性。第一个场景是自由流交通条件,我们将自由速度定义为每个路段的第85百分位速度值,第二个场景是拥堵交通状况(速度低于20km/h),如图15所示。

如何计算平均贡献???

训练之前,几乎没啥差别,这表示模型还没有学习到空间特征,被训练之后,每一个片段的贡献都被区分开了。如图16,在无交通流和拥挤的情况下,交通流量的自贡献是预测中最重要的部分,这对于城市网络中交通信号频繁干扰交通流是有意义的,在这种情况下,段与段之间的关系可能会减弱,因此预测在很大程度上要依赖于段本身。,本段历史车速),此外,在交通拥堵的情况下,自我贡献仍然占主导地位。然而,在这种情况下,其他三种贡献增加,特别是上游和下游。这是因为当交通变得拥挤时,路段之间的交通流更容易相互影响,关键路径上的交通状态往往有更密切的关系。

四、结论和未来的工作

在本研究中,我们提出一个新的观点,建立一个可解释的深度学习模型,以更好地预测交通速度。主要贡献包括三个部分:

1)通过定义关键路径来划分研究区域,实现了高维网络流量数据的合理分离和有效寻址;

2)据我们所知,这是第一次将Bi-LSTM神经网络用于道路网络中交通预测任务的路径建模。由于我们可以在每条路径上都充分利用时空特征,因此可以对无用信息进行筛选,结果表明该框架具有较好的预测性能;

3)与以往研究不同的是,由于我们将深度学习网络映射到物理网络,因此所提出的方法可以很自然地获取交通领域的知识,并呈现出合理的物理意义,具体来说,通过可视化和定性分析,证明隐含层的输出是可解释的;

在今后的工作中,由于关键路径选择过程是模型构建的重要步骤,仍有空间分析更多的选择准则。此外,提高深度学习模型在交通运输应用中的可解释性仍然是一个有待解决的问题,我们将继续在这方面做更多的研究。而如何利用可解释性也是一个有趣的研究方向。

五、模型核心代码实现

导入包并设置参数

复制代码
 #导入相关包

    
 import tensorflow as tf
    
 import numpy as np
    
 import matplotlib.pyplot as plt
    
  
    
 #设置相应的参数
    
 hidden_size=32 #LSTM中隐藏节点的个数
    
 num_layers=1 #LSTM的层数
    
 timesteps=10 #训练神经网络的训练序列长度
    
 training_steps=1000 #训练轮数
    
 batch_size=32 #batch大小
    
 training_examples=1000 #训练数据个数
    
 testing_examples=1000 #测试数据个数
    
 sample_gap=0.01 #采样间隔
    
    
    
    

生成数据:

复制代码
 #该模块用来生成数据,输入的是sin函数的纵坐标,总共有1010个数

    
 def generate_data(seq):
    
     x=[]
    
     y=[]
    
     Y=[]
    
     #用前timesteps项(也就是前10项),去预测后一项的结果;也就是输入是前10项,输出是后一项。
    
     for i in range(len(seq)-timesteps):
    
     seq_10=seq[i:i+10]
    
     apj=[]
    
     for j in range(10):
    
         seq_10_i=[seq_10[j]]
    
         apj.append(seq_10_i)
    
     x.append(apj)
    
     y.append([seq[i+timesteps]])
    
     Y.append(seq[i:i+timesteps])
    
     return np.array(x,dtype=np.float32),np.array(Y,dtype=np.float32)    
    
  
    
 test_start=(training_examples+timesteps)* sample_gap #10.1
    
 test_end=test_start+(testing_examples+timesteps)* sample_gap #20.2
    
 train=np.sin(np.linspace(0,test_start,training_examples+timesteps,dtype=np.float32))
    
 test=np.sin(np.linspace(test_start,test_end,training_examples+timesteps,dtype=np.float32))
    
 #调用函数生成训练集和测试集
    
 train_x,train_y=generate_data(train)  
    
 test_x,test_y=generate_data()
    
    
    
    

建立模型:

全部评论 (0)

还没有任何评论哟~