APP下载

基于模糊分析的LSTM交通流量预测

2021-04-22王梦灵

计算机工程与设计 2021年4期
关键词:隐层车流量交通流

赵 刚,王梦灵

(华东理工大学 信息科学与工程学院,上海 200237)

0 引 言

随着智能感知技术的不断发展,城市道路的交通运行状态能够获得较为完备的监测和提取。利用综合交通大数据,对交通流状态进行预测一方面可以表征城市交通运行能力,另一方面可以指导交通管理者采取合适的管控措施[1]。由于,交通流具有时空异质性、非线性,路网场景复杂和输入输出耦合性强等特点,使得建立精度高的交通流预测模型十分困难[2]。总言之,不管是基于线性的还是基于非线性的交通流预测方法,大部分都是基于历史数据训练模型,然后利用训练好的模型预测输出。然而,任一模型在特定场景下都存在一定的误差,误差的原因和误差的分布情况很少有研究进行深入讨论。考虑到交通流数据存在周期性[3],历史预测误差和未来时刻的预测误差存在较为相似的分布性的可能。因此,本文提出了基于模糊分析的LSTM神经网络预测模型策略,一方面利用LSTM神经网络的高精度非线性过程表征,另一方面对历史训练模型的误差分布进行统计分析,挖掘误差大小、正负的规律,然后在预测过程中,对误差进行滚动学习,预测输出包含LSTM神经网络模型的输出和误差预测输出,通过误差分析对预测结果进行补偿,进一步提高预测精度。

1 相关研究

最为常用的交通流预测的模型是差分整合移动平均自回归模型(ARIMA)和周期性差分整合移动平均自回归模型(SARIMA),例如,Luo等利用改进的SARIMA模型与自回归模型(autoregressive,AR)模型相结合,并利用遗传算法(genetic algorithm, GA)来分析各个相邻地点之间的相似性,最后得到了比较理想的预测效果[4]。周宏等把ARIMA和SARIMA模型相结合,利用最优化方法求解组合模型参数来预测高速路交通流状态,提高了预测的精度[5]。熊亭等[6]提出了一种基于SARIMA和随机森林(random forest,RF)的短时交通流预测方法,分别利用SARIMA的线性预测能力来拟合交通流的周期性,以及RF的非线性拟合能力来挖掘交通流的时空特性,结果表明该组合预测精度模型优于单一预测模型。

虽然基于ARIMA模型的线性建模方法模型结构简单且具有一定的精度,但对于非线性强度较高的路网场景的预测精度仍然有一定的局限[7]。近年来,随着支持向量回归(SVR),神经网络(ANN)等深度学习算法的兴起,越来越多的学者提出用基于人工智能策略的建模方法来预测交通流状态[8]。王亚朝等利用改进的BP(back propagation)神经网络对北京市某路口的速度做了短时预测,结果表明即使在某些时刻速度缺失的情况下,模型预测结果也能具有较高的准确性[9]。罗文慧等提出了一种基于卷积神经网络(CNN)和支持向量机(SVR)的组合模型,用CNN网络充分提取交通流数据的时空特征,再利用SVR做预测,使得预测精度大为提升[10]。罗向龙等[11]考虑了交通流的时空相关性,提出了基于K近邻算法(K-nearest neighbour,KNN)的LSTM交通流预测模型,首先利用KNN来找出城市路网中与待预测路段存在时空相关性的站点,以此作为模型的输入数据,不仅挖掘出时空相关性,也提升了模型预测精度。Tian等将长短期记忆(long short-term memory)神经网络用于交通流预测,表明LSTM神经网络比大多数非参数模型具有更好的性能[12]。因此,本文选择用LSTM神经网络作为交通流时序预测模型,综合历史交通流预测误差,利用模糊聚类分析历史数据与当前数据的相似度,来预估误差,进而提高模型精度。

2 问题描述

交通流从本质上说是有一定的数学规律的[13],也即是交通流数据并不完全是随机的,因此可以用数据驱动的方法学习交通流的特征挖掘其潜在的模式,建立预测模型,进而对未来时刻交通流进行预测。路网交通流不仅与时间有关,还有很强的空间相关性,比如上下游之间,十字路口之间的车流量有较强的关联。考虑路网所采集的车流量数据矩阵为xi,j

(1)

其中,i=1,2,…,k,j=1,2,…,T。i表示车流采集点或路段编号,一共k个路段。j表示时间,采样时长为T。Xi表示在路段i所采集的连续T个交通流量组成的行向量。通常情况下,许多研究者都是利用某一个路段或某一个采样点所采集的一维交通流时序数据来做预测,也即是用该路段前几个时刻的交通流量值预测下一段时间间隔的流量值。然而,相邻的几个路口在时间和空间上都具有相关性。这种只考虑交通流在时间上的相关性而忽略了交通流空间上的相关性的做法会导致预测模型不能充分挖掘交通流潜在的流动力学模型。因此,本文考虑用如下的历史交通流数据作为模型的输入和输出

X=xi-1,j-1,xi,j

(2)

y=xi+1,j+1

(3)

即选取同一条路的上游两个相邻地点i-1,i分别在j-1,j时刻的车流量X作为预测模型输入,下游地点i+1在j+1时刻的车流量y作为预测模型输出。这样便综合了交通流的时空信息,以便建立更准确的预测模型。

利用历史交通流数据输入到训练好的LSTM神经网络,可得到预测误差向量

ΔE1={e1,e2,…,eT}

(4)

(5)

基于模糊分析LSTM的路口交通流预测模型原理如图1所示,该方法分为两步:①离线误差分析和在线误差估计:离线误差分析模型是通过GK模糊聚类分类方法实现的,对历史数据的误差以及输入数据同时进行聚类,在根据LSTM模型当前输入数据与历史输入数据的相似度,对当前输入进行分类,进而估计出当前数据预测值误差的范围;②预测模型输出:根据第一步所估计的在线误差值进行加权,综合LSTM预测模型的预测值即为最终的交通流预测值。

图1 基于误差补偿的LSTM路口流量预测原理

3 基于误差补偿的LSTM神经网络预测方法

本节给出了基于误差补偿的LSTM路口交通流量预测方法的具体实现步骤。一方面充分利用神经网络能够挖掘交通流时序数据的非线性特征,另一方面对模型的误差分布进行滚动学习,在神经网络模型预测输出上叠加误差估计值。

3.1 LSTM神经网络模型

LSTM网络是在递归神经网络(RNN)的拓扑结构上进行改进得来的,其隐层各单元节点之间存在权连接[14]。图2是一个RNN的结构图,其中x是输入向量节点,h是隐层向量节点,o是输出向量节点,L是损失函数,U,V,W分别是输入到隐层的权值,隐层到输出的权值,隐层到隐层的权值。

图2 RNN网络结构原理

可以看出,随着时间变化,前一时刻的隐层输出通过权矩阵W作用给后一时刻的隐层输入了。这样RNN便拥有了记忆的能力,可以把输入与上个时刻的状态联系起来,因而RNN能够运用到时序预测问题中。

但RNN使用过程中容易出现所谓的梯度消失问题,这样在某一时刻后,权值不再更新,因此无法对长时间序列数据进行处理[15]。一个经典的解决方法是,在 RNN的网络拓扑结构基础上增加了一些记忆单元,进而得到了LSTM,从而使时间序列上的记忆信息可控,所以RNN网络具备了长期记忆功能,而且LSTM可以避免常规RNN的梯度消失。图3是LSTM的网络结构图,LSTM的典型结构除了隐层以外和普通神经网络大致是相同的,隐层是由重复的称之为记忆块组成的,每个块由记忆单元组成。记忆单元包含3个具有开关作用的门结构,分别为输入门、遗忘门、输出门,分别决定当前时刻有多少神经网络的输入xt传递到单元状态ct里、上一时刻的单元状态ct-1有多少会传递给ct、单元状态ct-1有多少到当前网络的输出值ht里去[16]。

图3 LSTM网络结构原理

遗忘门、输入门、输出们的计算公式分别为[17]

ft=σ(Wf·[ht-1,xt]+bf)

(6)

it=σ(Wi·[ht-1,xt]+bi)

(7)

ot=σ(Wo·[ht-1,xt]+bo)

(8)

其中,bf、bi、bo为遗忘门、输入门、输出门的偏置,Wf、Wi、Wo分别是是遗忘门、输入门、输出门的权矩阵,σ是sigmoid型激活函数。

(9)

(10)

其中,tanh为激活函数,Wc、bc分别是单元状态的权矩阵和偏置。

当前网络的输出值ht由如下公式计算

ht=ot∘tanh(ct)

(11)

LSTM神经网络的具体结构输出由具体的输入输出决定,本文中输入为X=xi-1,T-1,xi,T,输出为y=xi+1,T+1,因此LSTM网络输出为图2中向量的最后一个元素,也就是

yt+1=tanh(Vht+1+b)

(12)

其中,V为输出层权值矩阵,输出层的激活函数也是tanh,b为输出层的偏置项。

LSTM是用基于时间的反向传播算法来进行训练的。首先根据式(6)~式(12)计算每个记忆单元的输出,然后根据真值计算误差,通过误差反向传播来更新梯度,最后再根据式(6)~式(12)式进行前向计算,反复迭代,直到误差小于设定的阈值才结束训练过程。

3.2 基于模糊分析的LSTM交通流预测算法

通过上一节给出的LSTM神经网络用历史数据进行训练,得到神经网络的参数。本小节基于训练模型的误差进行分析,并给出了误差在线预测的方法。具体包括:对训练模型的误差进行模糊聚类分析,统计分析出误差大小、正负的分布规律;然后分析当前输入与历史输入数据的相似度,结合历史误差聚类结果,进而预估对当前数据的误差;最终的预测结果综合LSTM预测输出和误差预测值。本文考虑3个相邻的路口所采集的交通流数据xi-1,T-1,xi,T作为预测模型输入,xi+1,T+1作为预测模型输出。

(1)历史误差的模糊聚类:历史交通流数据通过LSTM模型所得到的预测误差ΔE1=[e1,e2,…,eT],将预测误差和对应输入x=[xi-1,j-1,xi,j]组成新的数据集dj=[xi-1,j-1,xi,j,ej],j=1,…,T。利用GK模糊聚类方法对数据集dj聚类,得到聚类k个簇,k个聚类中心向量分别为c1,c2,…,ck,类别标签label1(i)。模糊聚类算法步骤如下

(13)

式中:μi,j∈(0,1),表示第j个数据对第i个类的隶属度。对聚类后的每个类的第3个维度的误差值求均值,记为avgi,表示历史误差的范围

(14)

式中:s=1,…,T,i=1,…,k。

(15)

(16)

式中:sign表示符号函数,random(0,1)为取值在0至1之间的随机数函数。

基于模糊分析的LSTM交通流预测算法步骤如下:

Algorithm:模糊分析的LSTM交通流预测算法

算法输入:历史交通流数据D1=[xi-1,j-1,xi,j,xi+1,j+1],数据长度为T。待预测点的当前交通流序列输入数据D2=[xi-1,l-1,xi,l],数据长度为Nl。

算法输出:待预测点的车流预测结果

步骤1 利用历史交通流数据D1训练LSTM神经网络,使网络权值确定下来。

步骤2 对历史交通流数据进行训练得到历史误差ΔE1=[e1,e2,…,eT],利用式(13)迭代计算出k个聚类中心向量分别为c1,c2,…,ck,类别标签记为label1(i),同时根据式(14)计算历史误差均值avgi。

步骤3 根据式(15)对待预测点的输入数据D2计算相似度,并进行分类,类别标签记为label2(i)。

(17)

步骤6 随着输入数据不断增多,为新数据进行分类,如果新数据距离各个类别超过一定阈值,则重新对历史预测误差聚类,利用式(13)更新聚类中心。

4 仿真实验

4.1 数据描述

为了验证本文提出方法的有效性,我们采用某市区相邻的3个十字路口实测数据来测试该方法。实验数据是每周一至周五下午3∶50-7∶10分每隔15分钟采样一次,数据长度为1098。每条数据记录包括t-1时刻路口1,t时刻路口2的车流量,以及t+1时刻路口3的车流量。t-1时刻路口1,t时刻路口2的车流量作为LSTM网络输入,t+1时刻路口3的车流量作为LSTM网络输出。前432条数据作为训练集,后666条数据为测试集,其中测试集前432条预测结果作为历史预测误差向量,并和对应的输入构成新的数据集,用来作为GK模糊聚类的输入,剩余234条数据用来验证误差补偿方法。图4展示了路口3采集的部分车流数据图,可以看到其具有非常明显的周期性。

图4 路口3车流数据时序

4.2 LSTM模型框架搭建

本文利用基于TensorFlow和Theano的深度学习Keras搭建LSTM神经网络,其结构有3层,组成如下:输入层包含两个神经元,输出层包含3个神经元,经过试错方法隐层神经元选为50个。考虑到数据样本不大,采取在线学习方法更新权值,epoch为200次,batch大小为4,输入步长为1。梯度下降采用Adam优化算法。这里所采用的激活函数是tanh,所有输入输出数据一起正则化,采用如下正则化公式

(18)

同时,对于由缺失采样的数据,利用不同天数的同一时刻平均的车流量值替代。为评价预测结果,预测指标采用的是均方根误差(RMSE)和平均绝对误差(MAE)

(19)

(20)

4.3 实验结果分析

图5展示了历史交通流预测误差以及输入数据聚类图,数据一共被聚成5个类,可见每个簇之间的界限较为明显,横纵坐标分别表示两个输入,竖坐标表示对应的预测误差。如图6所示,图中给出了带有误差补偿和不带误差补偿的LSTM预测结果,右三角代表有误差补偿的LSTM预测结果,圆圈表示不带误差补偿的LSTM预测结果,上三角代表路口3车流量真实值,横轴数据长度为234,每个长度间隔时间为15 min。从整体效果上看,显然基于误差补偿的LSTM预测值要比不带误差补偿的结果要好,经过补偿后结果更加接近真实值。

图5 历史交通流输入序列及预测误差的模糊聚类

图6 LSTM神经网络车流量预测结果

4.4 对比实验

为了更进一步验证所提出的误差补偿方法的有效性,本小节利用普通BP神经网络作为预测模型,进行对比实验。普通BP神经网络结构和前面的LSTM神经网络的层数以及神经元个数相同,epoch为200次,batch大小为4,输入步长为1,前期数据预处理已经对输入归一化。图7展示了带有误差补偿和不带误差补偿的BP神经网络车流量预测结果。同样可以看出,经过误差补偿后的BP网络预测效果比BP网络预测效果更好。

图7 BP神经网络车流量预测结果

表1给出了带有误差补偿和不带误差补偿的LSTM神经网络和BP神经网络交通流预测结果RMSE和MAE的对比。表1中第二行和第四行分别表示不带误差补偿的LSTM网络预测和BP网络预测指标值。从表1中给出的预测指标上看,经过误差补偿后的RMSE和MAE均明显降低,同时可以看到,LSTM神经网络比BP神经网络的预测结果更准确。

表1 预测指标对比

5 结束语

本文提出了基于模糊分析的LSTM神经网络预测方法对路口交通流进行预测。首先,在选择输入输出数据上充分考虑了交通流的空间相关性,避免了单点交通流数据建模的弊端。针对交通流数据具有周期性,利用LSTM神经网络对非线性过程高精度表征的优点,提出了利用滚动学习的聚类以及相似度分析的方法挖掘训练模型的误差分布规律,在预测过程中不仅包含模型的预测输出还叠加了误差预测输出,提高了整体的预测精度。进一步,通过对比BP神经网络,实验结果表明,基于模糊分析的LSTM交通流预测的预测精度更好。

猜你喜欢

隐层车流量交通流
基于RTD可编程逻辑门的n变量函数实现算法
基于BP神经网络学习算法的图像压缩技术研究
基于RDPSO结构优化的三隐层BP神经网络水质预测模型及应用
一种平稳化短时交通流预测方法
交通流随机行为的研究进展
路内停车对交通流延误影响的定量分析
参考答案
具有负压力的Aw-Rascle交通流的Riemann问题
高速公路重大节假日免费车流量金额算法研究与应用
一种新型多车道车流量检测算法