[0017] 图1是本发明的基本步骤流程图。
[0018] 图2是本发明的模型结构图;
[0019] 图3为3D卷积神经网络模型结构图。具体实施方案
[0020] 下面结合实施例对本发明作进一步的说明,但并不作为本发明限制的依据。
[0021] 实施例。一种基于3D卷积神经网络的短时交通流预测方法,如图1、图2、图3所示,包括以下步骤:
[0022] 步骤一、交通流数据采集;
[0023] 步骤二、交通流数据预处理;
[0024] 步骤三、模型构建与训练;
[0025] 步骤四、基于模型进行交通流预测。
[0026] 一、交通流数据的采集
[0027] 使用某城市出租车上的GPS设备采集得到该城市范围内各个区域各个时间段车流量信息,为后续3D卷积神经网络的训练提供丰富的当前数据和历史数据。原始数据为:将整T×K×I×J个城市划分为I×J个网格,可以将整个城市的交通流数据定义为张量形式:X∈R ,其中T为时间,K为流量类型(输入流量或输出流量),I为经度,J为维度。
[0028] 二、交通流数据预处理
[0029] 由于数据集采样间隔为半个小时,每一天的样本数为48个,将一天样本数少于48的定义为缺失数据。将原始样本集合中的完整数据取出组成训练集,使用其训练基于3D卷积神经网络的缺失值补全模型,模型结构和训练方式与后续交通流预测模型相同。对于原始样本集合中的缺失数据,使用缺失值补全模型补全。补全完成后,从补全后的数据中得到训练样本(X1,X2,...Xt‑1,Xt),其中(X1,X2,...Xt‑1)为样本特征,Xt为待预测点的交通流数据。例如:当前时间点t为8:00,由于采样间隔为30分钟,Xt‑1为7:30,依次类推。因此,本发明的交通流量任务可抽象为:给定观测到的交通流数据序列和包括节假日和天气状况的不确I×J定因素{Xt,Yn,Znt=1,2,3,......n‑1}来预测Xn,其中Xt如前所述,Yn∈R 表示T时刻整个I×J
城市各个区域的天气状况,Zn∈R 表示T时刻整个城市是否处于节假日的时间范围内。
[0030] 三、模型构建与训练
[0031] 3‑1.模型构建
[0032] 3d卷积神经网络是一种从多维原始数据中提取时空特征进行拟合并将预测结果与观测结果的残差使用优化算法对参数进行迭代逼近的深度学习神经网络架构。一般的3D CNN模型由3D卷积层、3D池化层和全连接层组成。由于本任务中输入与输出的尺寸(长与宽)一致,因此无需池化层与全连接层。卷积层是网络层输入yn‑1到网络层输出yn的映射,表示T为:yn=fn(x)=g(Wnyn‑1+bn),其中,n表示第n层,W为参数,b表示偏置,g()是非线性激活函数,一般使用ReLU函数,其表达式为:
[0033]
[0034] 3D卷积神经网络模型的搭建是一个复杂的过程,其中对预测精度影响最大的为网络模型的超参数,如学习率、正则化参数、激活函数选择、网络层数选择与每一个3D卷积层的卷积核个数等等。
[0035] 对于学习率与正则化参数这两个对模型训练与预测结果影响最大的超参数,使用网格搜索法与随机搜索法相结合的方式。网格搜索法与随机搜索法都是比较常用的超参数搜索算法。本专利在部分超参数调优时,在大范围内使用网格搜索法确定超参数最优值的大致范围,再使用随机搜索法定位到准确值。这种将两者相结合的方法比网格搜索法速度更快,同时搜索效果比随机搜索法更好。在模型中,学习率选择0.008,正则化参数选择0.002。对于激活函数选择、网络层数选择等超参数,本专利采取模型调参经验与实验验证相结合的方式来确定。激活函数如上所述使用ReLU激活函数,网络层数选择7层。
[0036] 同时在网络层的搭建过程中,由于本任务时基于前十二个时间步的交通流量信息对后一个时间步的交通流量信息进行预测,本模型使用时间维度上步长为2的3D卷积核设置对时间信息进行缩减,每次缩减一半,而不是3D池化层。这两种方式的效果差不多,但前者使网络结构更加简洁。在网络层搭建中,将缩减时间信息的网络层均匀分布在所有网络层中,使得时间信息能够被充分提取与处理。
[0037] 3‑2.模型训练
[0038] 本专利使用回归问题中常用的均方根误差作为模型的损失函数,表达式为:
[0039]
[0040] 其中,Y为交通流预测模型中待预测时间点的真实值,X为模型输入,f(X)为模型输出,即待预测时间点的预测值。由于深度学习模型强大的表示能力,需要在损失函数中引入正则化项来减缓模型的过拟合程度。因此在模型的损失函数中本文引入了L2正则化来防止模型陷入严重的过拟合状态中。损失函数的最终表达式为:
[0041]
[0042] 其中Ω(θ)表示模型中所有参数,α表示L2正则化参数。
[0043] 本模型使用Adam优化算法进行训练,并且使用mini‑batch在每次训练时随机选取一部分训练样本对模型进行训练。与传统梯度下降法相比,其训练速度更快,同时给训练过程引入了随机性。在训练中,先使用当前模型生成预测值,再根据预测值与观测值的差与模型的参数分布对模型进行参数迭代优化。模型基本步骤如下:
[0044] 1)使用mini‑batch方法,随机选取一部分有标签数据样本用梯度反向传播算法对3D卷积神经网络进行训练,计算各层的输出;
[0045] 2)使用模型输出与观测值的残差对各层参数进行调整,随着迭代次数的增加,学习率会逐渐减小,使模型趋于稳定;
[0046] 3)根据性能指数判定误差是否满足条件,如果未能满足要求则重复步骤1)和2),直至整个网络输出满足期望要求。
[0047] 4)得到最终的3D卷积神经网络模型。
[0048] 四、基于模型进行交通流预测
[0049] 当实时待预测数据到来时,将待预测时间点前12个时间步的交通流数据堆叠输入到步骤三训练完成的交通流预测模型中,即可输出待预测时间点的交通流数值。