基于改进eRCNN的局部路网交通流预测

2021-07-27 02:59姚思佳桂智明郭黎敏
计算机与现代化 2021年7期
关键词:交通流路段时空

姚思佳,桂智明,郭黎敏

(北京工业大学信息学部,北京 100124)

0 引 言

不断增加的海量交通数据使得交通流预测方法的热点逐渐从传统模型驱动的方法转变为以数据为驱动的机器学习方法[1]。传统的研究大多将交通流数据作为时间序列,采用时间序列[2-3]的处理方法进行预测。由于将多条路段数据组成向量,对向量时间序列进行预测时,这些模型大多只考虑了单个位置的流量演化的时间相关性,而没有从网络的角度考虑其空间相关性,使得预测结果的可信度不高。

过去几年来,深度学习在处理图像[4-5]、声音[6]、文本[7]等方面都有着十分出色的表现,卷积神经网络(Convolutional Neural Network, CNN)得到了深入发展。由于CNN能够自动提取简单的空间特征,使得采用CNN进行交通流预测成为热点[8]。文献[9]提出了一种基于CNN的用于城市道路网络非线性和非周期性交通速度预测的有效方法,通过基于交通流动态的特征选择增强了卷积神经网络。该增强方法通过设计一种针对时空域的锥形二进制掩码选择相关的输入特征用于训练和预测,并通过使用卷积神经网络来识别潜在拥堵的城市交通的时空模式,使得该方法能够在交通状况突然变化的情况下,还可以提供准确的短期交通速度预测。文献[10]提出了一种针对大规模路网的基于卷积神经网络(CNN)的交通流学习和预测方法,用图像来描述二维时空交通流,利用卷积神经网络CNN提取图像所包含的时空流量特征并对整个交通网络的交通流量进行预测。

由于城市交通网络的复杂性,鲜有研究把交通网络作为一个整体来对交通演化进行预测,虽然目前出现了可以表征复杂拓扑的图卷积神经网络[11](Graph Convolution Network, GCN),但是由于交通网络的复杂性,将GCN直接用于整体交通网络交通流预测有一定难度,目前的研究主要用于网络结构较为简单的地铁网络进行人流预测[12]或者拓扑结构简单的路网交通流预测[13]。对于交通流预测实际应用需求而言,通常是基于相邻路段的流量数据预测某条或多条路段的交通流量,对于小规模路网或者组成一条道路的路段(如北京市东四环包含的3条路段)而言,由于其拓扑结构简单,节点的度数较小(均为1或2),结构信息和特征信息不明显,采用GCN网络相对而言并不能充分发挥其优点。

由于CNN描述空间特征的能力有限,在交通流预测领域适合应用于小规模、网络结构简单的路网。误差反馈循环卷积神经网络(Error-feedback Recurrent Convolutional Neural Network, eRCNN)[14]是一种在CNN网络结构基础上添加了误差反馈机制的神经网络模型,可以根据模型历史预测误差的反馈机制调整模型的预测结果。将eRCNN应用到短时交通流预测中时,其中的误差反馈层可以使模型提高对异常交通流数据的识别能力,可以识别出由突发事件(例如交通事故、大型集会等)造成的异常交通流数据,提高CNN模型预测的精度和鲁棒性,具有较好的效果。但在eRCNN的误差反馈层中,仅接收到了时序误差序列,没有考虑交通流空间维度信息对误差产生的影响,降低了模型的误差修正能力。另外,在该模型初始化时,参数均为随机设置,但由于模型训练初期接收到的历史误差序列并非异常数据造成,这种方法会导致该模型的收敛速度受到影响。

针对这些问题,本文首先描述和分析eRCNN模型,然后提出一种针对小规模局部路网交通流预测的eRCNN模型优化方法,该方法在误差反馈层结构以及模型训练策略2个方面对eRCNN进行优化,使得该模型可以更加精确、更快捷高效地进行短时交通流的预测。

1 误差反馈循环卷积神经网络

eRCNN的网络整体结构如图1所示,该模型主要分为5个部分,其中包括输入层(Input)、卷积层(C1)、下采样层(P1)、误差反馈层(L)以及输出层(Output)。

图1 eRCNN结构示意图

1.1 输入层的构造

由于eRCNN是在CNN的结构基础上进行的改进,因此其接收的数据与CNN结构相似,均为二维矩阵的格式。交通流数据具有时空特性,时间维度体现在单个路段可以收集到连续时间序列的交通流数据,空间维度则体现在不同路段的拓扑结构相关性[15]。因此,交通流数据可以从时间和空间2个维度展开为时空矩阵的形式作为eRCNN的输入数据。

下面对交通流时空矩阵的构造过程进行具体描述。

(1)

同时,模型最终预测结果为输入每个监测点的预测结果,可以表示为:

(2)

1.2 卷积层的构造

卷积层主要利用局部连接和权值共享2种方式更加高效地对输入数据局部特征进行提取。卷积操作可以表示为:

(3)

1.3 下采样层的构造

下采样层的输入一般来源于上一个卷积层,主要作用是对数据特征进行进一步提取,同时降低维度,减少网络参数数量,防止过拟合情况的发生。下采样层的计算公式为:

(4)

1.4 误差反馈层的构造

误差反馈层是eRCNN中的关键部分,与传统前馈神经网络不同,该层不仅将模型预测误差作为反向传播[17]中梯度计算的标准,同时还将其作为判断异常数据的信号。误差反馈层接收到的数据分为2个部分,分别为CNN部分的输出以及模型历史预测误差。其中CNN输出数据特征向量是由最后一层下采样展开得到,其输出结果可以表示为:

pC=δ(wCv+bC)

(5)

式中:wC为连接权值,bC为输出偏置,δ(·)为激励函数,此处为Leaky-ReLU函数。

对于模型历史预测误差,其计算过程可以表示为:

e=[y(t-l)-o(t-l),…,y(t-1)-o(t-1)]

(6)

式中:y(t-l)与o(t-l)分别表示在之前l个时间步长的真实数据和预测数据,最终模型历史预测误差向量处理结果可以表示为:

pE=sigmoid(wEe+bE)

(7)

式中:wE为误差向量加权值,bE为输出偏置,sigmoid(·)为该层激励函数。

1.5 输出层构造

输出层中对误差反馈层输出的pC与pE通过全连接的方式进行融合,最终模型的预测结果可以表示为:

o=ReLU(wOPpC+wOEpE+bO)

(8)

式中:wOP,wOE和bO分别为输出层神经元的连接权重和偏置项,ReLU(·)为输出层的激励函数。

2 误差反馈循环卷积神经网络的优化设计

2.1 误差数据的时空特征提取设计

为了提高eRCNN的误差修正能力,本文设计了能够接收误差时空特征的误差反馈层。图2展示了改进后的误差反馈机制内部结构。与该层原结构不同,改进后的误差反馈层接收到的是一个误差时空矩阵,其中包含了历史预测误差的时间和空间2个维度的信息。

图2 改进误差反馈机制内部结构图

对于单个路段,误差输入层预测误差向量可以表示为:

(9)

(10)

(11)

得到误差时空矩阵后,利用一维卷积操作对时间维度的特征进行提取,即通过一个1×l大小的卷积核对矩阵进行一维卷积操作,在保留空间相对性的同时提取时间维度的误差特征,得到各个预测路段的误差特征数据。假设一维卷积核K=(k1,k2,…,kl),对误差矩阵中的第i行的卷积计算过程可以表示为:

(12)

(13)

2.2 模型训练过程优化设计

eRCNN中的误差反馈机制所接收的是模型的历史预测误差,其作用是将预测误差作为异常交通流数据的评价指标。然而当模型初始化后,各项参数均为随机数,因此模型在没有训练的情况下同样会出现较大的预测误差,这种情况的预测误差是模型在训练过程必然造成的,而不是异常交通流数据所产生的[18]。因此本文通过在模型训练的过程中分离模型产生的2种误差,使得模型构建过程更加高效。

模型初始化后便可利用训练数据对模型进行分步训练,如图3所示。首先对eRCNN模型中的CNN部分进行预训练,由于参数全零初始化会导致网络不可训练[19],因此使用He正态分布初始化[20]方法对卷积层中的卷积核权值参数进行初始化,而偏置参数则采用全零初始化方式,这样便可保证在训练CNN阶段误差反馈层输入输出层的数据为零向量,不会对CNN部分的预测结果产生干扰。eRCNN的循环机制体现在以下方面:当CNN部分训练完成后,通过将误差反馈层中的参数恢复为可训练状态,并继续进行新一轮的训练,以此保证误差反馈层所接收到的误差数据均为eRCNN模型中CNN部分的预测误差,从而减小训练过程所产生误差对误差反馈层相关参数更新的影响,提高模型整体收敛速度。

图3 eRCNN训练过程优化

3 模型验证与分析

3.1 实验数据集

为了分析模型预测效果,本实验以北京市四环道路平均车速作为研究对象。该数据集中包含了北京市2015年4月和5月四环顺时针方向12条路段(包括西四环南路、西四环中路、西四环北路、北四环西路、北四环中路、北四环东路、东四环北路、东四环中路、东四环南路、南四环东路、南四环中路、南四环西路)的道路平均车速,数据记录时间步长为5分钟,即每天各个路段包含12×24=288(5分钟1条数据,1个小时12条数据,1天24小时)条车速信息。路段之间首尾相接,形成最简单的环状拓扑网络。考虑到工作日与周末交通状况的差异性,本实验只选取了4月和5月中工作日的车速数据作为数据集,为保留道路之间的拓扑相邻关系,数据集中数据按照道路的相邻顺序依次选取。经过统计,基础数据集中共包含12×43×288=148608条四环道路速度数据。

本实验选取了北京市四环路2015年4月1日至5月27日的道路速度数据作为模型的训练集,并将5月28日与29日(5月30日、31日为周末)的速度数据作为测试集。为了体现模型对数据波动频繁的预测效果,实验分析采用时间段限定在交通量相对高峰时间段(7-11点,16-20点)的预测结果。

3.2 模型相关参数设置

本文实验通过前5个时间单位的车速数据对下一个时间单位各个路段的交通流进行预测,根据3.1节的描述,四环路共分为12个路段,因此eRCNN的输入交通流时空矩阵大小为5×12。eRCNN的相关参数根据经验设置,卷积层包含5个大小为2×2的卷积核,下采样层中下采样窗口大小为2×2,采用平均下采样方法。eRCNN中的误差反馈步长这里设置为5,即误差反馈层可接收到之前5个时间单位的历史预测误差,因此误差反馈层接收到的历史误差时空矩阵大小为5×12。模型的训练过程采用在线学习法,即batchSize为1,损失函数为均方误差。模型迭代次数为50次,采用Adam优化器[21],学习率为10-4,学习率衰减值为1e-6。

3.3 模型预测效率和精度对比

图4展示了使用正常训练方法与改进后的分步训练方法对eRCNN的训练过程的误差曲线图。由于分步训练中采用了He正态分布初始化对卷积层的相关参数进行初始化,模型中参数分布更加符合实际情况,因此模型初始预测误差相较于原模型的随机初始化方式更小,同时分步预测在第15次迭代时误差开始升高,说明此时误差反馈层开始参与训练。从整体效果来看,分步训练的方法可以加快eRCNN模型的收敛速度,可以在更少的迭代中使模型达到稳定状态,提高了算法效率。

图4 模型训练误差变化曲线

为了客观地对数据预测结果进行比较,本文采用3种指标来评估预测模型的性能,分别为平均绝对误差(MAE)、平均绝对百分比误差(MAPE)以及均方误差(MSE),计算公式分别可以表示为:

(14)

(15)

(16)

为了对比改进后的eRCNN模型的预测效果,本实验中还加入了CNN模型、LSTM模型以及DMVST模型[22]进行对比。

图5展示了改进后的eRCNN与原模型以及上述2种对比模型对北京市四环12个路段交通数据的MSE误差比较,其中1~12的路段编号表示的是由南四环西路顺时针方向对各个路段进行的排序。由于LSTM模型对时序数据有较好的预测结果,仅通过时间维度信息来预测道路车速,不能利用空间维度信息,因此相较于CNN预测的结果预测误差较大。CNN预测模型所接收的数据中包含了时间和空间维度信息,同时卷积和池化操作可高效地提取交通流的时空特征。因此CNN相对于LSTM预测模型效果更好。DMVST模型结合了CNN以及LSTM模型,在提取时空特征方面效果都显著提升,但是在遇到较多的异常交通数据时,模型并不能很好地处理。在CNN基础上加入误差反馈模块可以更好地适应具有高度不确定性的交通流数据。因此从对比图中可以看出,经过改进后的eRCNN预测模型在大多数路段预测结果MSE有所减少,说明改进后eRCNN模型的预测精度有所提升。

图5 四环各路段均方误差MSE对比

表1展示了四环12个预测路段的误差指标平均值,经过对于eRCNN误差反馈层的改进,模型预测结果的MAE、MAPE、MSE这3项指标平均值相较于eRCNN原模型分别降低了19.25%、22.08%、32.54%,相较于DMVST模型,改进后的eRCNN这3项指标分别降低了17.12%、12.96%、27.37%,从而验证了本文对于误差反馈层的优化可以有效地提升eRCNN预测精度,是一种可行的模型优化方案。

表1 模型预测结果对比

4 结束语

本文提出了一种针对网络拓扑结构较为简单的局部路网短时交通流预测的eRCNN模型优化方法,该方法从模型结构以及模型训练方法2个方面对eRCNN短时交通流预测模型进行了改进。通过利用一维卷积的方式,使得eRCNN中的误差反馈层可以处理误差的空间相关性,从而该层可以利用更加全面隐含的时空信息对CNN部分预测结果进行修正,提高了预测结果的准确性,能够更适应交通流波动大情况下的预测。同时,采用分步训练的方法使得模型的训练过程更加符合eRCNN中的误差反馈机制,从而提高模型的训练效率,使得模型更快收敛,提高了模型的计算效率。

猜你喜欢
交通流路段时空
冬奥车道都有哪些相关路段如何正确通行
跨越时空的相遇
部、省、路段监测运维联动协同探讨
A Survey of Evolutionary Algorithms for Multi-Objective Optimization Problems With Irregular Pareto Fronts
镜中的时空穿梭
基于XGBOOST算法的拥堵路段短时交通流量预测
一种平稳化短时交通流预测方法
玩一次时空大“穿越”
交通流随机行为的研究进展
时空之门