1. 引言
计算机技术、通信技术、传感技术等现代信息技术为智能交通系统(Intelligent System, ITS)的蓬勃发展提供了重要的技术支撑。智能交通系统在交通领域中的广泛应用,推动了道路交通管理技术的革新,不仅提高了交通效率,而且也使得行人的出行质量和车辆安全都得到了很大的改善与保障。实时、准确地识别与评估城市交通状态,不仅能够为交通拥堵控制决策提供有效的支持,也为居民出行提供指导 [1] [2]。
短时交通流预测是ITS系统的核心模块之一,相关研究及应用受到学术界和业界的广泛关注 [3] [4] [5]。但由于交通流具有非线性、时间与空间的依赖性及随机性等特征,使得短时交通流预测的研究方面仍然还未能达到让人满意的成果,在预测精度和稳定性上还有待突破。根据近年来的研究成果,可将短时交通流预测方法大致归纳为四类:
1) 基于统计的预测方法:Zhang等 [6] 提出了差分整合移动平均自回归模型和自回归条件异方差模型的短时交通流量预测模型。李文勇等 [7] 基于Box-Cox指数变换方法,研究了交通流量均值与方差间的关系,充分考虑交通流的长相关特征,建立了改进的差分整合移动平均自回归模型的交通流预测模型。周晓等 [8] 以美国明尼苏达州双子城快速路的实际数据为样本,建立了基于卡尔曼滤波的道路平均速度预测模型,仿真实验验证了该模型具有良好的预测性能。统计分析法虽然算法和模型简易,实现方便,但其主要建立在时间序列数据平稳的假设前提下。基于统计的预测模型复杂度低,能够刻画交通流的非线性特征,但该类模型是建立在时间序列数据平稳的假设前提下,而且模型仅能刻画交通流时间性关系,忽略道路之间的空间相关性,没有考虑其他外界因素,当交通流状态不确定性较强时,其预测结果可能会与实际状况严重不符。
2) 传统的机器学习预测方法:Zhu [9] 和Ryu [10] 等考虑了交通流的时空特征,分别应用贝叶斯网络模型和K-近邻模型进行短期预测。Tang等 [11] 等将基于支持向量机(Support Vector Machine, SVM)和去噪算法相结合,建立了交通流多步预测模型,并用明尼苏达州的三个检测器收集的交通量数据验证了模型有效性。Xie等 [12] 分析了影响交通的主要因素,对基于传统机器学习的交通流预测模型进行综述性分析,并基于多源交通数据进行了仿真实验。传统的机器学习方法侧重于短期交通流预测,能够达到较好的预测精度。然而,传统的机器学习模型架构简单、参数有限,适合比较简单的交通环境的流量预测,不能挖掘大数据中深层的、隐含的时空相关性,故对复杂交通环境中的交通流预测能力有限。
3) 基于深度学习的预测方法:深度学习是一种处理大数据非常有效的方法,通过监督学习或者无监督学习,自动学习复杂数据中的模式并提取数据特征。深度学习模型以其强大的分层特征学习能力在各种机器学习任务中取得了巨大的成功,也被广义应用于交通流预测中。杜圣东 [13] 等采用序列到序列时空注意力深度学习模型对交通流进行预测。卢生巧 [14] 等用卷积神经网络和门控循环单元(GRU)神经网络做短时交通流预测,但是忽略了后续序列信息的影响,当时间序列变长时,存在重要信息丢失现象。陆文琦等 [15] 建立了基于双向长短期记忆神经网络BiLSTM (Bi-directional Long Short-Term Memory)和注意力机制混合深度学习预测模型,并以北京市真实的交通流数据进行算法性能验证,实验结果表明提出的模型具有较好的单步与多步预测性能。王博文 [16] 等提出一种基于编码器–解码器(ED)框架的长短期记忆网络(LSTM, Long Short-Term Memory)模型,在PEMS数据集上做多步预测,采用Encoder-Decoder学习框架,解决了因时间序列较长及多步预测所引起的模型预测误差迅速累积的问题。采用LSTM作为编码器对多因素交通流序列的非线性特征进行拟合,充分挖掘了交通流序列中多个变量之间的非线性关系。潘卫鹏 [17] 等提出一种基于图注意力卷积网络(GACN)的短时交通流预测方法,在数据集PEMS上对该模型效果进行验证,结果表明:可以有效地捕获交通数据的动态时空依赖性。Ye [18] 等分别对基于深度学习和基于图卷积神经网络的预测模型进行了文献综述,给出了一般预测框架,讨论了深度学习预测模型要解决的核心问题及存在的挑战。Seng等 [19] 提出一种基于多图卷积网络和门控循环单元的不规则区域交通流量预测模型。并利用公共自行车系统数据集、出租车数据集和无桩共享自行车数据集等三个真实数据集验证了所提模型预测性能。深度学习模型虽然在预测性能上都取得了一定的提升,但是其超参数调整也比较困难,如何对隐藏层神经元数和网络层数进行选择,是值得进一步研究的方向。
4) 基于强化学习的预测方法:Peng等 [20] 应用图卷积网络学习交通网络的空间特征,结合长短期记忆神经网络学习交通流的时间特征,提出了基于强化学习的长期交通流预测模型,并以纽约自行车数据集验证了模型有效性。目前,强化学习方法在城市交通中的应用更侧重于应用深度强化学习解决交通控制问题,研究城市交通系统中客流量控制策略 [21]。
交通网络是一个复杂动态系统,一条道路某时刻的交通状态不仅和该条道路前多个时刻的交通状态有关,而且与其它多条道路的交通状态有关。因此,交通流量预测模型既反映了各相关道路交通流之间的关联关系,又考虑一条道路在不同时间点的交通流之间的相互影响。在短时交通流的预测中,历史数据中隐藏了交通流的一些潜在规律。传统机器学习方法不能深入挖掘历史数据的时序性特点和数据之间所隐藏的潜在规律。深度学习网络能充分挖掘数据之间的关系,获取历史流量数据的周期性规律,提取出较为重要的信息,提高预测精度。针对以上所存在的挑战,本文作如下改进:1) 在流量数据不确定性的情况下,双向门控循环单元神经网络可以有效的对动态时间序列数据进行建模;2) 由于当输入时间序列过长时,双向门控循环单元神经网络会出现信息丢失的现象、从而很难挖掘数据结构之间的信息。为此,通过引入Attention机制加强了关键信息的影响,避免了时间序列过长而出现的信息丢失的问题。因此,针对交通流的非线性、时间动态性、空间相关性等特征,利用深度学习模型的优势,本文提出一种基于注意力机制的卷积神经网络和双向门控循环单元神经网络相结合的集成交通流量预测模型。
2. 基于注意力机制的CNN-BiGRU的短时交通流预测模型的构建
2.1. 卷积神经网络模型CNN
卷积神经网络(Convolutional Neural Networks, CNN)是一种用于深度学习的网络架构,它直接从数据中学习,无需手动提取特征,其结构如图1所示 [22]。CNN结构包括数据输入层、输出层和多个隐藏层,隐藏层由卷积层,池化层及全连接层构成。
数据输入层:数据输入层是整个网络的输入,一般情况需要对原始数据进行预处理。
卷积层:卷积层包括了卷积计算层和激活层,卷积计算层是将卷积核矩阵与对应位置的数据矩阵进行矩阵运算,设输入为
,卷积核为
, 卷积定义为
,其中
为卷积运算符,其运算公式为:
(1)
激活层的功能是通过激活函数实现,该层是应用激活函数将卷积计算层的输出结果进行非线性变换:
,其中
为非线性激活函数,常用的激活函数有Sigmoid、tanh、ReLU、ReLU变形等。
池化层:池化层的主要功能是进行压缩数据,减少神经网络的参数和计算量,同时防止过拟合。常用的池化方式为最大池化(Max Pooling),该方法是将池化区域内的最大值作为该区域的值,突出数据最重要的特征。其他池化方法还包括平均池化、重叠池化和空间金字塔池化、随机池化等。
全连接层:全连接层一般是卷积神经网络的最后一层,该层的神经元与上层的所有神经元全连接。全连接层的作用是整合网络学习到的分布式特征表示,并将它们映射到样本标签空间。
2.2. 双向GRU模型结构
门控循环单元GRU (Gated Recurrent Unit, GRU)是一类基于LSTM的基础上对结构进行了优化改进循环神经网络 [23]。改进的模型预测精度有保证,训练参数减少,时间复杂度较低,能够解决训练中梯度消失与梯度爆炸问题。GRU结构如图2所示,图 中
为输入,表示更新门,
表示重置门,
为隐藏层的输出。GRU门控更新公式为:
(2)
(3)
(4)
(5)
其中
、
、
为可训练的参数矩阵,
、
、
为偏置。
单向GRU状态总是从前往后输出单向传播,只能提取当前状态前向信息,不能利用后续的序列信息。双向的GRU (Bi-direction GRU, BiGRU)让网络从前向和后向传播中都获取信息,充分提取数据相关特征。BiGRU结构如图3所示,其输出同时由这两个GRU的状态共同决定:
(6)
其中
、
分别为正向传播和方向传播的输出,
和
分别为正向和方向传播的权重。这样,通过前后传播的BiGRU对数据特征信息进行叠加,使得最重要的特征得到了最大限度的保留。
2.3. 注意力机制
Attention机制是一种模拟了人脑注意力的资源分配机制,在特定时刻,人脑会将注意力集中在需要重点关注的区域,减少甚至忽略对其他区域的关注,以得到更多需要关注的信息,屏蔽其他无用信息的干扰。其核心思想是改变对信息的注意力,忽略无关信息并放大所需信息。注意力机制是模拟人类的注意力机制来提高深度学习的性能。Attention结构如图4所示 [22]。
Figure 4. Structure of the attention mechanism
图4. 注意力机制结构
假设Attention层的输入向量为
,给定一个与任务有关的查询向量
,计算输入信息的注意力分布
:
(7)
其中
为注意力打分函数,注意力打分函数可采用加法模型、点积模型、双线性模型等。Attention层输出y是注意力分布(即权重系数)对输入信息进行加权求和:
(8)
2.4. 基于注意力机制的CNN-BiGRU的短时交通流预测模型
本文利用卷积神经网络、双向的GRU和注意力机制的优势,融合三种模型,提出一种基于注意力机制的CNN-BiGRU的短时交通流预测模型。模型框架如图5所示 [21]。由多层CNN、BiGRU和注意力机制组成。具体预测步骤为:
1) 输入层:将原始历史数据进行预处理后输入到CNN层;
2) CNN层:CNN层由两个CNN模块和一个全连接层组成,每个CNN模块包括1个卷积层和1个池化层。根据经验和交通流量实验数据的结构,将卷积层设计为一维卷积,并选ReLU函数作为卷积层的激活函数,池化层的池化方法选取最大池化。经过两层卷积层和池化层的处理,得到特征向量经过全连接层结构并由Sigmoid函数激活得到CNN层最终的输出向量;
3) BiGRU层:CNN层的输出特征向量输入到BiGRU网络中,通过前后传递的BiGRU网络对特征信息进行叠加,充分挖掘交通流数据的时间相关性;
4) Attention层:将经过BiGRU网络训练获得的特征向量作为Attention层的输入,计算注意 力系数,并利用注意力系数对特征向量进行有区别的信息聚合,将最重要的特征得到了最大程度的保留;
5) 输出层:将从Attention 层获取的特征向量输入到全连接层,通过Sigmoid激活函数得到交通流预测值。
Figure 5. The framework of prediction model
图5. 预测模型框架
3. 实验结果与分析
3.1. 模型性能指标和基线模型
1) 评价指标
本文选取平均绝对百分比误差(Mean Absolute Percentage Error, MAPE)、平均绝对误差(Mean Absolute Error, MAE)、均方根误差(Root Mean Square Error, RMSE)和拟合优度
为评价标准,各指标的定义分别为:
(9)
(10)
(11)
(12)
其中
为实际交通流,
为预测交通流量,
为实际交通流的均值,
为样本数量。预测模型的MAPE、MAE、RMSE等参数的值越小,说明模型预测性能越好。拟合优度统计量
越接近1表示模型对样本数据的拟合程度越好,预测性能也越好;反之,
越小,模型的预测性能越差。
2) 基线模型设置
本文采用历史平均模型(History average model, HA)、BP神经网络(back propagation, BP)、混合神经网络CNN-GRU (Convolutional Neural Networks-Gated Recurrent Unit, CNN-GRU)和CNN-GRU-Attention等基线模型进行性能比较。
a) HA模型:HA模型是一种经典的时间序列预测方法,是将一个时段内的历史交通流量的平均值作为未来的预测值。
b) BP模型:BP神经网络是一种应用广泛的基于反向传播算法的前馈神经网络。实验中隐藏层神经元为100。
c) CNN-GRU模型:该模型是基于CNN和GRU混合的神经网络预测模型。模型参数设置num_epochs为50、batch_size为256、学习率为0.005,隐含层神经元为10。
d) CNN-GRU-Attention模型:是增加了注意力机制的CNN-GRU模型。模型参数设置num_epochs为50、batch_size为128、学习率为0.005,隐含层神经元为10。
3.2. 数据集和实验参数设置
本研究采用美国加利福尼亚州PEMS公开数据集,被很多学者用于研究,如文献 [16] [17],本文选自2017年1月1日~7月15日,33条高速公路的流量,数据采用间隔为5 Minutes,故每条道路每天有288个数据点,个别缺失数据使用线性插值法进行填充。原始数据需要进行归一化处理:
(13)
其中
为原始流量数据,
是经过归一化后的数据,
和
分别是样本数据的最大值和最小值。
选取数据集70%的数据作为训练集,30%的数据作为测试集。两个CNN的卷积核大小均为3 × 3,卷积核数量分别为6和16,步长为1,padding设置为SAME,激活层函数为ReLU,池化层核均为3 × 3,步长为2。前向BiGRU和后向BiGRU模型的神经元均为120,num_epochs为100、batch_size为256、学习率为0.003。CNN训练参数设置:num_epochs为100、batch_size为32、学习率为0.003本文实验环境采用11th Gen Intel i5-1135G7处理器,NVIDIA-GeForce MX450显卡。算法模型采用Python3.6作为编程语言,软件架构基于Pytorch框架,绘图工具采用matplotlib绘图模块。设置均方误差(MSE)作为损失函数,选择Adam算法作为参数优化器。
3.3. 实验结果分析
1) 对比实验
图6为编号为3的监测点在2017年7月15日00:00到23:55的交通流量真实值和预测值。由图中可知,除了HA模型,其他神经网络模型的预测与真实值都比较接近,但本文提出的基于注意力机制的CNN-BiGRU的短时交通流预测能够较好地捕获交通流量的整体趋势,预测值与真实的交通流量值非常接近。夜间时段的交通流明显低于白天时段的交通流。
表1为本文所提模型与HA、BP、CNN-GRU、CNN-GRU-Attention等模型的预测性能比较。由表1可知本文提出的基于注意力机制的CNN-BiGRU模型的预测在三个评价指标中均具有最好性能。HA模型实现简单,但缺乏对时空时间序列空间特征挖掘,预测精度不高。BP和CNN-GRU模型对于短期预测表现良好,但缺乏对交通流复杂特征的深层次挖掘,相比之下,本文建立的深度学习预测模型,在CNN-BiGRU混合模型基础上引入Attention机制,模型不仅能捕获交通流量的时空特征,而且加强了关键信息的提取,进一步提升了模型的预测性能。
Table 1. The results of comparative experiment
表1. 对比实验结果
Figure 6. Comparison results of predicted value and actual value
图6. 真实值与预测值对比
表1为本文所提模型与HA、BP、CNN-GRU、CNN-GRU-Attention等模型的预测性能比较。由表1可知本文提出的基于注意力机制的CNN-BiGRU模型的预测在三个评价指标中均具有最好性能。HA模型实现简单,但缺乏对时空时间序列空间特征挖掘,预测精度不高。BP和CNN-GRU模型对于短期预测表现良好,但缺乏对交通流复杂特征的深层次挖掘,相比之下,本文建立的深度学习预测模型,在CNN-BiGRU混合模型基础上引入Attention机制,模型不仅能捕获交通流量的时空特征,而且加强了关键信息的提取,进一步提升了模型的预测性能。
2) 消融实验
通过消融实验检验基于注意力机制的CNN-BiGRU模型中的每个组件对预测效果的影响,实验结果如表2所示。
Table 2. The results of ablation experiment
表2. 消融实验结果
由表2可知,单纯CNN预测模型性能最差,是因为该模型没有考虑交通流的时间相关性,相比之下,能够捕获时间相关性的BiGRU模型预测效果较好。BiGRU和CNN-BIGRU模型的预测性能差别不大,增加了注意力机制的BiGRU模型预测性能明显提高,这说明注意力机制能够增加深度学习模型的学习能力,有助于提升模型的预测性能。对比实验和消融实验的结果都表明本文建立的增加了注意力机制的CNN-BiGRU模型预测性能明显优于其他模型。
4. 结论
本文利用卷积神经网络、双向的GRU网络和注意力机制的优势,融合三种模型,提出一种基于注意力机制的CNN-BiGRU的短时交通流预测模型。首先,CNN提取交通流的空间特征,然后利用BiGRU从前向和后向传播中充分提取交通流的时间相关特征,并用Attention机制加强了关键信息的影响,将交通流最重要的特征得到了最大限度的保留,以此来提升模型的预测精度。最后,以真实数据集为样本数据做了对比实验和消融实验。对比实验结果都表明,相较于HA、BP、CNN-GRU和CNN-GRU-Attention四种基线模型,基于注意力机制的CNN-BiGRU模型具有更好的预测效果。与变体CNN、BiGRU、BiGRU-Attention、CNN-BiGRU等的消融实验结果也表明,基于注意力机制的CNN-BiGRU模型预测效果是最好的。在后续研究中,我们将考虑天气、交通事故等外部因素,进一步提升模型的预测准确性。
基金项目
国家自然科学基金/National Natural Science Foundation of China (71761031)。
参考文献