李 楷,黄少伟
(肇庆学院 计算机科学与软件学院,广东 肇庆 526061)
交通流量是判断道路交通状况的关键因素.准确及时的交通流量信息对于智能交通系统的成功部署至关重要,它可以为商业机构和政府管理部门提供可靠的交通信息.短期交通流量预测是微观层面的.交通流量的细微变化会对预测结果产生很大影响.由于交通流量内部固有的随机性和外部噪声[1],例如事故、气候、人工交通控制或探测器故障等,准确识别交通流量的有效变化是关键且具有挑战性的任务.
对于交通流预测研究,已经提出了多种短期交通流量预测方法.特别是传统时间序列模型,如移动平均模型、回归模型、自回归集成移动平均(ARIMA,autoregressive integrated moving average)模型[2]、贝叶斯网络[3]和隐马尔科夫模型[4].此外,这些模型的一些变体及其组合,如Kohonen自回归集成移动平均(KARIMA)模型、指数可变自回归集成移动平均(ARIMAX)模型和季节性自回归集成移动平均(SARIMA)模型,已应用于短期交通流量预测.这些方法可以很好地处理固定和线性时间序列数据.然而道路交通容易出现突发事件,因此实际交通流数据表现出复杂的变化,并不总是稳定的,而存在非线性部分,造成许多机器学习方法,如深度置信网络[5]、模糊逻辑[6]、卡尔曼滤波器(KF,Kalman filter)[7]、支持向量回归(SVR,support vector regression)模型[8]和人工神经网络模型[9]等已被用于交通预测.机器学习方法通过从数据中学习来建立经验函数.当训练数据量足够大时,这些方法通常显示出比经典统计模型更优的预测能力.特别是最近的深度神经网络模型,如堆叠自动编码器[10]、循环神经网络(RNN,recurrentneuralnetwork)[11]、生成对抗网络[12]和极限学习机[13]等进一步提高了预测的准确性,其中许多RNN被学者们设计开发出来用于交通预测,然而传统的RNN具有梯度消失或爆炸的主要缺点.为了克服这些问题,LSTM网络[14]应运而生.但是,经典LSTM网络拟合非线性和复杂函数的能力仍然存在不足.文章提出了一种堆叠LSTM网络模型来预测数据.该方法命名为Stacked-LongShort-termMemory(SLSTM).文章将SLSTM方法应用于短期交通流预测,在四个典型的基准数据集上进行了广泛的实验,并将SLSTM与经典LSTM和常见模型进行了比较.实验结果证实了该方法在短期交通流预测中的优越性.
文章的贡献总结如下.
(1)提出一种堆叠LSTM网络模型,并应用于短期交通流量预测.
(2)通过实验来评估和验证所提出的方法,结果表明其预测性能优于其他常用的机器学习方法.
SLSTM模型的工作流程如图1所示.图左方交通流数据St输入到模型中,然后St会在堆叠结构的LSTM网络中训练,最后通过全连接层Dense来预测结果.
图1 SLSTM模型的总体框图
针对SLSTM模型,提出一种短期交通流预测方法.该方法采用多层堆叠的结构来增加神经网络的深度,从而增强LSTM神经网络的非线性数据和复杂情况的处理能力,提高网络对数据的预测能力.假设公路上的交通探测器在时间t记录的交通流量表示为Xt∊R,则探测器在过去一段时间T内记录的数据可表示为p=[Xt-T+1,…,xt].文章短期交通流预测的任务是通过窗口长度为n的历史时间序列数据St来学习一个映射函数f,来预测下一个时间点的交通流量,可表示为公式(1).
具体操作在下面算法中描述.
算法1 2 3 SLSTM在历史时间T内选择适当的历史窗口长度n,从而确定长度为n的输入序列St.输入序列数据作为堆叠LSTM网络的单步输入在网络中进行训练.滚动到下一个序列St+1进行下一个预测,返回步骤2,直到训练数据结束;最后生成预测模型函数.
在过去的研究中,如杨[15]和ALTHELAYA等[16],增加神经网络深度的方法已被证明在具有挑战性的预测问题中获得成功.研究通过堆叠增加LSTM网络的深度,可以拟合更复杂的函数,提高训练效率,获得更高的准确率.添加的层可以理解为重新组合从先前层中学习到的表示,并在高级抽象层上创建新的表示,但是如果网络深度太深,也会造成梯度消失的问题,因此在3.3节中将讨论堆叠层数对结果的影响.
LSTM中的神经元单元状态和门的方程由(2)-(6)给出,其中Xt是LSTM神经元的输入;ht是LSTM神经元的输出,it,ft和ot是LSTM神经元中门的三种状态,ct是LSTM神经元的输入状态,Wxi,Wxf,Wxc和Wxo是将xt连接到三个门和神经元输入的权重矩阵,Whi,Whf,Whc和Who是将ht-1连接到三个门和神经元输入的权重矩阵,bi,bf,b0和b0是三个门和单元输入的偏差,σi,σf和σ0代表sigmoid函数,σc和σh表示tanh函数.
通过将LSTM单元堆叠在一起来增加LSTM神经网络的深度,本质上堆叠的LSTM网络是将一个LSTM单元的输出输入另一个LSTM单元.例如二层堆叠LSTM网络如图2所示.
图2 二层堆叠LSTM网络结构
荷兰阿姆斯特丹4条高速公路A1、A2、A4和A8的交通流量数据被广泛用于交通流量预测,如ZHOU等[17]和WANG等[18]的研究中用其来验证所提出的方法.数据是通过位于4条高速公路上的MONICA探测器的4个探测点收集的.数据时间范围为2010年5月20日至2010年6月24日,每分钟统计1次,统计该分钟通过的车辆数换算为该分钟每小时的车流量.这4条高速公路具有代表性,具体情况如下.
A1是边境公路.欧洲第一条占用率超过3车道的公路.车道占用率瞬间变化很大,预测难度大.
A2是荷兰最繁忙的高速公路之一,容易出现拥堵,可用于验证预测方法应对交通拥堵的有效性.
A4为国内标准国道,车流量较为适中.
A8为高速公路驳接线,全长约10 km,验证方法对交通突发事件预测的有效性.
文章以10 min的时间间隔从数据集中选取交通流量数据进行实验.交通流数据序列共有5000个时间点,80%的数据用于训练,20%的数据用于测试.
文章采用了2个指标来评估交通流预测的性能,它们在ZHOU等[17]和WANG等[18]研究中也得到了应用.一种是平均绝对百分比误差(MAPE),另一种是均方根误差(RMSE),可按下式(7)和(8)计算.
因为存在时间周期,文章分别从A1、A2、A4和A8的4 000个训练时间点中获取交通流量数据,选取24小时(144个时间点)的数据作为历史数据窗口,也就是n=144作为当前序列st的长度.因此LSTM神经元的输入形状是Shape=(1,144).然后将LSTM单元的隐藏层的维度设置为64,Epoch数设置为100,Bath大小设置为40.网络训练的decayed_learning_rate更新由公式(9)计算.
其中learning_rate=0.1,decaysteps=80和decay_rate=0.96.
网络训练的损失函数设置为平均绝对误差,定义为等式(10).
模型通过将LSTM单元堆叠在一起来增加LSTM网络的深度,以提高训练效率并获得更高的准确率.为了检验堆叠层数对预测效果的影响,表1给出了不同堆叠层数的性能数据,其中堆叠层数分别取n=1、2、3、4.从表中数据得出2层堆叠的LSTM在A1、A2、A4和A8中均实现了最佳预测准确性.
表1 不同堆叠层数的LSTM网络结构预测性能对比
为了分析SLSTM模型在整体预测中的优缺点,在一些传统和先进的方法中使用相同的数据集进行实验,然后根据MAPE和RMSE的值比较这些方法与SLSTM方法的优劣.有代表性的比较方法如下,历史平均模型(HA)、ARIMA、SVR、KF、LSTM共5种.各种方法的MAPE和RMSE的值分别如表2和表3所示.从表中可以得出结论,SLSTM方法比其他方法预测结果更准确.
表2 不同预测方法的MAPE值对比
表3 不同预测方法的RMSE值对比
6种方法在4条高速公路上的预测结果对比,SLSTM模型在实验中取得了最优的结果.此外,图3和图4显示了与HA、ARIMA、SVR、KF和LSTM模型相比,SLSTM模型在每条高速公路上的MAPE和RMSE降低百分比.从图3可以看出SLSTM方法的预测误差的平均MAPE在4条高速公路上与5种方法相比分别降低:30.52%、20.88%、11.10%、6.49%和5.53%.同样,如图4所示,SLSTM方法的预测误差的平均RMSE与4条高速公路上的5种方法相比分别降低:34.18%、23.97%、16.04%、13.96%和4.31%.
图3 SLSTM模型对比其他方法的MAPE降低百分比
图4 SLSTM模型与其他方法的RMSE降低百分比
为了说明改进的程度,文章将SLSTM方法与上述方法进行了比较,在4条公路上MAPE和RMSE整体降低值的分布图如图5所示.实验结果对比分析表明,文章提出的预测方法优于其他常用方法,也充分证明了所提出的方法在短期交通流预测中的有效性.
图5 SLSTM模型对比其他方法在4条公路上降低值的分布
文章提出了一种短期交通流预测方法,以提高预测交通流时序的准确性,利用堆叠的网络结构增加LSTM神经网络的深度,更好地拟合复杂的线性和非线性函数,同时结合交通流时间序列具有周期的性质,选择最合适的历史窗口长度数据作为模型的输入,数据经过多层堆叠LSTM网络进行训练生成交通流预测函数.在荷兰阿姆斯特丹4条典型高速公路的基准数据集上进行了大量的实验,结果表明所提出的方法与常用的机器学习方法相比,MAPE平均提高了14.90%,RMSE平均提高了18.49%,证明了该方法的有效性和优越性.