基于Encoder-Decoder的长时交通流预测方法
技术领域
本发明属于交通流预测领域,具体为一种基于Encoder-Decoder的长时交通流预测方法。
背景技术
近年来,随着国民经济的快速发展,人均车辆保有量不断增长,城市路网压力越来越大,全国各大城市拥堵问题相继爆发,严重地影响到了城市居民的正常生活出行。因此,合理的规划道路、合理的布置交通设施和及时的车流诱导成为道路交通部门和运输控制管理中心的首要任务。而高精度、实时的交通流预测是其中的关键,它不仅为交通流诱导和分流提供理论基础和数据支持,而且还可以帮助出行者做出更好的出行决策,缓解交通拥堵,减少碳排放,提高交通运营效率。
根据交通流预测周期,交通流预测分为短时交通流预测与长时交通流预测,短时交通流预测指预测周期小于1小时的交通流预测,主要应用于实时交通控制,如红绿灯自动配时,车载导航等。长时交通流预测指预测周期为数小时、一天、甚至更长的交通流预测,可以帮助管理者及早做出决策、采取措施、统筹安排,对提高交通管理和服务质量起到积极作用。相较于短时预测,长时预测不仅可以为提高有限交通管理资源的效率提供有益的参考,而且可以帮助出行者提前制定计划,避免拥堵。因此,提供更高精度的长时预测,将为决策提供更多的数据支持,对科学管理具有重要意义。然而目前的交通流预测方案大多针对短时交通流预测,缺乏有效的长时交通流预测方案。
Encoder-Decoder是一个典型的序列到序列的模型框架,早期主要用于机器翻译,自然语言处理等领域,由于模型的预测结果是一个序列,因此在长时交通流预测等预测结果为序列的问题中不会像LSTM多歩预测模型一样出现随着预测步长的增加预测效果快速下降的现象。
发明内容
发明目的:针对上述问题,本发明引入一种基于Encoder-Decoder的长时交通流预测方法。该方法在Encoder-Decoder模型的基础上,引入Soft attention机制对编码向量C的数值进行动态调整,从而提高了Encoder-Decoder模型的长期记忆能力,提高了预测精度。
技术方案:一种基于Encoder-Decoder的长时交通流预测方法,包括如下步骤:
步骤1)获取交通流数据,计算不同路段的交通流数据与目标路段的交通流数据之间的皮尔逊相关系数,选取相关系数高于阈值的多个路段的交通流数据作为输入数据;
步骤2)将所述输入数据进行标准化处理,使用处理好的输入数据集构建训练集、验证集和测试集;
步骤3)构建基于Encoder-Decoder的长时交通流预测模型,确定长时交通流预测模型的基本结构参数;
步骤4)使用步骤2)构建的训练集训练基于Encoder-Decoder的长时交通流预测模型,预测目标路段后一天的交通流数据。
进一步地,所述步骤1中,通过下式计算路段i的交通流数据与目标路段O的交通流数据之间的皮尔逊相关系数Ri:
其中n表示交通流数据序列的总长度,Tij和TOj分别代表第j个时段路段i与目标路段O的交通流数据,分别为路段i与目标路段O的交通流数据的平均数。
进一步地,所述步骤2中,使用Z-score标准化方法对交通流数据进行标准化处理,通过下式计算T*:
其中Tj为原始的交通流序列第j个时间段的交通流数据,为原始交通流序列的均值,Tσ为原始交通流序列的标准差,其计算公式为:
标准化后的数据集为:
T*={(T1 *,T2 *,...,Ti *)1,(T1 *,T2 *,...,Ti *)2,...,(T1 *,T2 *,...,Ti *)n}
其中(T1 *,T2 *,...,Ti *)j为第1~i条道路j时刻Z-score标准化后的交通流数据。
进一步地,所述步骤3中,构造的基于Encoder-Decoder的长时交通流预测模型其Encoder部分由GRU组成,每一个GRU结构中的计算如下所示:
重置门:rt=σ(Yr·[ht-1,Xt]+ar);
更新门:ut=σ(Yu·[ht-1,Xt]+au);
单元状态
当前状态:
输出:yt=σ(Yy*ht+ay);
其中Yr、Yu、Yh、Yy为GRU的参数矩阵,其初始值为范围为[-0.1,0.1]的随机矩阵,ar、au、ah、ay为GRU的偏置,其初始值为零向量。*代表哈达玛积。rt、ut分别是GRU的更新门和重置门,通过sigmoid函数输出0-1的数以控制门的开关程度从而实现对系统状态h的输入量的控制,原有状态的保持以及输出量的控制。
Encoder部分的输入值为标准化后的训练集Ttrain,输出值为系统状态序列h。
进一步地,所述步骤3中,构造的基于Encoder-Decoder的长时交通流预测模型其编码向量序列C由soft attention机制计算,其计算方式如下:
αj=softmax(relu(Y2*(relu(Y1*h+a1))+a2))
Cj=αj*h,i∈[1,n]
其中αj为第j个时刻编码向量C的attention系数,h为Encoder部分输出的系统状态序列,采用多层全连接网络去计算attention系数,Y2、Y1为该全连接网络的权重,a1、a2为该全连接网络的偏置,利用softmax函数对attention系数进行缩放使sum(α)=1。
进一步地,所述步骤3中,构造的基于Encoder-Decoder的长时交通流预测模型其Decoder部分由LSTM组成,每一个LSTM结构中的计算如下所示:
单元状态:
输入门:it=σ(Yi·[ht-1,Xt]+ai);
遗忘门:ft=σ(Yf·[ht-1,Xt]+af);
输出门:Ut=σ(Yo·[ht-1,Xt]+ao);
当前状态:
输出:p(t)=tanh(s(t))*o(t);
其中YC、Yi、Yf、Yo为LSTM的参数矩阵,其初始值为范围为[-0.1,0.1]的随机矩阵,aC、ai、af、ao为LSTM的偏置,其初始值为零向量。*代表哈达玛积。it、ft、Ut分别是系统的输入门,遗忘门,输出门,3个门通过sigmoid函数输出0-1的数以控制门的开关程度从而实现对LSTM状态H的输入量的控制,原有状态的保持以及输出量的控制。
Decoder部分的输入值为编码向量序列C,该序列为soft attention机制的输出,其输出值经过单层的全连接网络映射之后即为LSTM的预测结果。该全连接网络的表达式如下所示:
result=relu(Yresult*p+aresult)
式中p为LSTM的输出结果,Yresult为该全连接层的参数矩阵,aresult为该全连接层的偏置。
进一步地,所述步骤4中,使用训练集训练基于Encoder-Decoder的长时交通流预测模型预测目标路段后一天的交通流数据,具体步骤如下:
步骤4-1:将训练集Ttrain中相关路段的前一天的车流量数据作为输入,输入到基于Encoder-Decoder的长时交通流预测模型,通过模型得到对应的实际输出
步骤4-2:使用均方误差计算交通流实际输出值与预期输出值的误差,式中m为训练集数据条数;利用反向传播算法将每次运算的误差传递给模型的每一个神经元,随后利用adam算法更新每一个连接权重;
步骤4-3:设置迭代次数,在迭代中不断更新LSTM神经网络连接权重,并在迭代过程中用该网络对验证集Tverify的数据进行预测;
步骤4-4:选取迭代过程中在验证集Tverify中表现最好的参数作为模型的最终参数进行保存。
步骤4-5:将作为测试集Ttest的交通流利用基于Encoder-Decoder的长时交通流预测模型进行输出,得到预测的交通流数据对模型进行测试。
有益效果:本发明提出一种基于Encoder-Decoder的长时交通流预测方法,在Encoder-Decoder中引入soft attention机制对编码向量C的数值进行动态调整,从而提高了Encoder-Decoder模型的长期记忆能力,提高了预测精度,使得长时交通流预测具有更高的准确率和可靠性。
附图说明
图1为本发明的基于Encoder-Decoder的长时交通流预测方法步骤示意图;
图2为本发明的基于Encoder-Decoder的长时交通流预测方法的训练流程图;
图3为本发明的基于Encoder-Decoder的长时交通流预测方法的结构示意图;
图4为本发明的基于Encoder-Decoder的长时交通流预测模型某一案例的测试集数据拟合结果。
具体实施方式
下面结合说明书附图对本发明的技术方案做进一步的详细说明。
如图1-4所示,一种基于Encoder-Decoder的长时交通流预测方法,包括如下步骤:
步骤1)获取交通流数据,计算不同路段的交通流数据与目标路段的交通流数据之间的皮尔逊相关系数,选取相关性较高相关系数高于阈值的多个路段的交通流数据作为输入数据;
所述步骤1中,通过下式计算路段i的交通流数据与目标路段O的交通流数据之间的皮尔逊相关系数Ri:
其中n表示交通流数据序列的总长度,Tij和TOj分别代表第j个时段路段i与目标路段O的交通流数据,分别为路段i与目标路段O的交通流数据的平均数。
实施例中采用的开源数据集为数字道路交互式可视化与评价网络(DRIVENET,http://uwdrive.net/STARLab)5号州际公路(I5)2015年12月1日到2016年12月31日时间间隔为5分钟的交通流数据,以距离温哥华163.02英里的传感器(42号传感器)监控的路段为目标路段,相关性阈值为0.95,39号-44号这6个传感器监控的路段前一天的交通流数据与目标路段的交通流数据的相关性系数大于阈值。
步骤2)将处理过后的数据进行标准化处理,使用处理好的输入数据构建训练集,验证集和测试集;
所述步骤2中,使用Z-score标准化方法对交通流数据进行标准化处理,通过下式计算T*:
其中Tj为原始的交通流序列第j个时间段的交通流数据,为原始交通流序列的均值,Tσ为原始交通流序列的标准差,其计算公式为:
标准化后的数据集为:
T*={(T1 *,T2 *,...,Ti *)1,(T1 *,T2 *,...,Ti *)2,...,(T1 *,T2 *,...,Ti *)n)
其中n表示原始数据集T在Z-score标准化后的记录数量,(T1 *,T2 *,...,Ti *)j为第1~i条道路j时刻Z-score标准化后的交通流数据。标准化处理后将数据集按比例划分为训练集,验证集,测试集。
实施例中采用的标准化方案为Z-score标准化,标准化后处理的数据集按60%,20%,20%的比例划分训练集,验证集,测试集。
步骤3)构建基于Encoder-Decoder的长时交通流预测模型,确定长时交通流预测模型的基本结构参数;
所述步骤3中,构造的基于Encoder-Decoder的长时交通流预测模型共分为Encoder部分,Decoder部分和编码向量计算部分,其Encoder部分由GRU组成,GRU的个数与输入序列的长度一致,本实施例采用的是5分钟间隔数据集的日交通流预测,输入序列的长度为288,在实际使用过程中可根据需要调节输入序列长度。每一个GRU结构中的计算如下所示:
重置门:rt=σ(Yr·[ht-1,Xt]+ar);
更新门:ut=σ(Yu·[ht-1,Xt]+au);
单元状态
当前状态:
输出:yt=σ(Yy*ht+ay);
其中Yr、Yu、Yh、Yy为系统的参数矩阵,其初始值为范围为[-0.1,0.1]的随机矩阵,ar、au、ah、ay为系统的偏置,其初始值为零向量。*代表哈达玛积。rt、ut分别是系统的更新门和重置门,通过sigmoid函数输出0-1的数以控制门的开关程度从而实现对系统状态h的输入量的控制,原有状态的保持以及输出量的控制。
Encoder部分的输入值为标准化后的训练集Ttrain,输出值为系统状态序列h。
模型的编码向量序列C由soft attention机制计算,其计算方式如下:
αj=softmax(relu(Y2*(relu(Y1*h+a1))+a2))
Cj=αj*h,i∈[1,n]
其中αj为第j个时刻编码向量C的attention系数,h为Encoder部分输出的系统状态序列,采用多层全连接网络去计算attention系数,Y2、Y1为该全连接网络的权重,a1、a2为该全连接网络的偏置,利用softmax函数对attention系数进行缩放使sum(α)=1。其Decoder部分的基本单元由LSTM组成,每一个LSTM结构中的计算如下所示:
单元状态
输入门:it=σ(Yi·[ht-1,Xt]+ai);
遗忘门:ft=σ(Yf·[ht-1,Xt]+af);
输出门:Ut=σ(Yo·[ht-1,Xt]+ao);
当前状态:
输出:p(t)=tanh(s(t))*o(t);
其中YC、Yi、Yf、Yo为LSTM的参数矩阵,其初始值为范围为[-0.1,0.1]的随机矩阵,aC、ai、af、ao为LSTM的偏置,其初始值为零向量。*代表哈达玛积。it、ft、Ut分别是LSTM的输入门,遗忘门,输出门,3个门通过sigmoid函数输出0-1的数以控制门的开关程度从而实现对LSTM状态H的输入量的控制,原有状态的保持以及输出量的控制。
Decoder部分的输入值为编码向量序列C,该序列为soft attention机制的输出,其输出值经过单层的全连接网络映射之后即为系统的预测结果。该全连接网络的表达式如下所示:
result=relu(Y_result*p+a_result)
式中p为LSTM的输出结果,Y_result为该全连接层的参数矩阵,a_result为该全连接层的偏置。
步骤4)使用构造的训练集训练构建的基于Encoder-Decoder的长时交通流预测模型预测目标路段后一天的交通流数据。
所述步骤4中,所述步骤4中,使用训练集训练基于Encoder-Decoder的长时交通流预测模型预测目标路段后一天的交通流数据,具体步骤如下:
步骤4-1:将训练集Ttrain中相关路段的前一天的车流量数据作为输入,输入到基于Encoder-Decoder的长时交通流预测模型,通过模型得到对应的实际输出
步骤4-2:使用均方误差计算交通流实际输出值与预期输出值的误差;利用反向传播算法将每次运算的误差传递给模型的每一个神经元,随后利用adam算法更新每一个连接权重;
步骤4-3:设置次数,在迭代中不断更新LSTM神经网络连接权重,并在迭代过程中用该网络对验证集Tverify的数据进行预测。
实施例中迭代次数设置为1000次。
步骤4-4:选取迭代过程中在验证集Tverify中表现最好的参数作为模型的最终参数进行保存。
实时例中最终参数为第978次训练更新后的参数。
步骤4-5:将作为测试集Ttest的交通流利用基于Encoder-Decoder的长时交通流预测模型进行输出,得到预测的交通流数据对模型进行测试。
实施例的测试结果中2016年11月25日(工作日)与11月27日(双休日)的预测结果如图4所示,测试结果的均方误差(MAE)为25,平均绝对百分比误差(MAPE)为9.13%,预测结果较为准确
本发明提出一种基于Encoder-Decoder的长时交通流预测方法,在Encoder-Decoder中引入soft attention机制对编码向量C的数值进行动态调整,从而提高了Encoder-Decoder模型的长期记忆能力,提高了预测精度,使得长时交通流预测具有更高的准确率和可靠性。
以上所述仅为本发明的具体实施方式,本发明保护范围并不局限于此,但凡本领域普通技术人员根据本发明所揭示内容可想到的多种等价替换和修饰变化,皆应纳入本发明的保护范围之内,本发明的保护范围以所附权利要求为准。