文章信息
《Short-Term Traffic Flow Prediction with ConvLSTM》。
这篇文章是一篇会议论文,2017第九届无线通信与信号处理国际会议(WCSP),福州大学物理与信息工程学院的几位老师,被引10次。
主体内容
本文提出了一种基于深度学习的短时交通流预测方法。交通流数据包含三个主要特征:时间特征、空间特征和周期性特征。我们把CNN和LSTM结合起来生成一个ConvLSTM模块,用于提取交通流的时空特征,然后使用Bi-LSTM(双向LSTM,Keras中有相应模块)提取交通流的周期特征。
利用ConvLSTM模块对相邻区域的短时交通流数据进行处理,提取时空特征;利用双向LSTM对预测点历史交通数据进行处理,提取交通流数据的周期特征。提出了一种无需数据预处理和数据特征提取的端到端深度学习短时交通流预测体系结构。最后,集中时空特征和周期特征对交通流进行预测。
创新点
既使用了ConvLSTM,又使用了Bi-LSTM, 结构新颖。
大家比较关注的算法实现
我们将交通流数据映射到一维向量。我们将预测点的交通流数据放入向量中心,根据与预测点的距离,将其他点的交通流数据依距离放在该向量中心(预测点)两侧。
将不同时刻的一维空间信息向量组合成矩阵如下:
其中s表示预测点(一列代表一个预测点),t表示时间。
周期数据可以表示为以下矩阵:
其中d代表昨天的相同时刻,w代表上周的相同时刻。
上述数据矩阵即为本文提出的深度神经网络结构的输入数据。其中,损失函数为MSE,优化器为RMSprop。
1、ConvLSTM的结构
ConvLSTM的输入数据既为公式3.1。一行作为一个向量,代表着一个time step所有预测点之间的空间信息,我们使用一维Conv(Conv1D)对公式3.1中的每一行进行处理,自然也是利用一维卷积核滤波器(kernal size=1),通过滑动滤波器获取每个time step局部感知域的卷积信息(空间信息)。然后,将局部特征聚合成全局特征。
紧接着加池化层,不同之处在于池化滤波器不进行复杂的卷积运算。本文中使用一维平均池化层(AveragePooling1D)。通过池化将生成的特征序列C缩减到原维度的一半大小。这两种特征提取使得深度神经网络在处理交通流数据时具有更高的失真容忍度。
分别对时间序列向量(式3.1中的每一行)的各个元素进行卷积和池化处理后,输出结果变为时间序列向量Ct = (C1, C2, C3,…,Ct)。向量中的每个元素都是区域内各点间交通流的空间相关性。(该表达式中每个元素代表着一个行向量,行向量的维度比式3.1中行向量的维度要小,因为经过了池化)
上面得到的时间序列向量Ct即为LSTM的输入数据。
2、 双向LSTM的结构(Bi-directional LSTM)
交通流也具有很强的周期性特征。本文将增加交通流的周期性特征作为补充信息来预测短期交通流。在提取交通流数据的周期性特征时,我们会同时处理前一天的同一时间和上一周的同一时间的交通流信息。在处理了历史信息后,得到了全时间序列数据(我想应该是将上一周的数据和前一天的数据放到预测当天数据的前面,组成全时间序列数据以获取周期性信息。)。
双向LSTM的结构由上下堆叠的两个单向LSTM组成。因此,Bi-LSTM的输入包含预测时间前后的时间序列,在每个T时刻,输入序列被输入给两个方向相反LSTM,输出由两个LSTM决定。每个反向LSTM的误差传播与正向LSTM传播算法相同。Bi-LSTM结构如下图所示,其中xi为LSTM的输入,Of为正向LSTM的输出,Ob表示反向LSTM的输出。
简单来说,就是再Keras中将LSTM换成Bidirectional(LSTM)即可。一些细节信息例如使用了多少个timestep, 历史数据如何处理输入到Bi-LSTM中,池化前后的维度变化 等,文章交代的并不清楚,毕竟会议论文。
Attention
如果你和我一样是轨道交通、交通运输、城市规划相关领域的,也愿意分享自己的科研生活,请加下面的二维码扫码进群,人数满员后加微信:Dr_JZhang,备注“进群”,我会拉你进交通大数据分享群!不愿意分享的请勿打扰哈!希望我们共同进步!
未来的你,一定会感谢,曾经拼命的自己。
—— 致未来的自己
Transportation-ML
与你分享科研成长的乐趣
长按二维码关注