本发明涉及深度学习与数据挖掘领域,具体涉及一种基于融合时空特征的交通流预测方法。
背景技术:
交通流预测作为智能交通系统(its)的重要组成部分,在执行动态交通控制、交通指导、减少交通拥堵等方面发挥了重要作用。为了得到准确及时的交通流预测,早期的方法是用参数模型对交通流进行预测,但是参数模型通常需要稳定且准确的数据,而实际的交通数据是不稳定且非线性的。随着深度学习技术的迅速发展,使得准确及时的预测交通流成为可能。通过探测器等设备采集历史交通数据,并经计算机处理,便可预测未来时刻的交通数据,该方法可以通过分析大量的实时和历史交通数据来获得更好的预测结果,大大提高了预测的准确性。
现有的仍存在没有很好地提取出交通流的时空特征、无法完全融合交通流的时空特征以及没有充分考虑交通流长期依赖性的不足。交通流的时空特征和长期依赖性对于交通流的发展趋势有非常大的影响,如果不能充分提取并融合交通流的相关特征,极大地降低预测的精度和准确性。此外,不同时间位置和空间位置的交通数据对预测任务不同程度的影响,也是影响交通流预测性能的重要因素之一。
技术实现要素:
有鉴于此,本发明的目的在于提供一种基于融合时空特征的深度网络的交通流预测方法,解决了交通流预测中特征提取不完整和特征融合不完全的问题。
为实现上述目的,本发明采用如下技术方案:
一种基于融合时空特征的深度网络的交通流预测方法,包括以下步骤:
步骤a:获取包含时空信息的历史交通流数据,并构建交通流数据训练集;
步骤b:对交通流数据训练集进行预处理,得到历史交通流数据的时空矩阵表征;
步骤c:以时空矩阵表征作为深度学习网络的输入,训练深度学习网络tsnn;
步骤d:将待预测的交通流数据序列输入到训练好的深度学习网络中,得到预测结果。
进一步的,所述步骤a具体为:
步骤a1:从交通平台中获取交通流量监测点的监测数据,其中每个交通流量监测点的数据表示为:
mi={(pi,ti,1,xi,1),(pi,ti,2,xi,2),...,(pi,ti,k,xi,k),...,(pi,ti,t,xi,t),i=1,2,...,n}
其中,mi表示第i个监测点的交通流数据序列,pi表示第i个监测点的位置、ti,k表示第i个监测点的第k个时刻的时间信息、xi,k表示第i个监测点的第k个时刻的交通流量,i=1,2,...,n表示监测点序号,k=1,2,...,t表示每个监测点所需的历史监测数据数量;
步骤a2:将获取到的各监测点的交通流数据序列以监测点为单位,构成包含时空信息的交通流数据训练集se=(m1,m2,...,mn)。
进一步的,所述步骤b具体为:
步骤b1:遍历交通流数据训练集se中的所有监测点的交通流数据;
步骤b2:对每一个监测点mi,遍历其交通流数据序列,以第k个时刻对应的监测数据信息mi,k=(pi,ti,k,xi,k)为中心,计算se中其他监测点mq,(q=1,2,...,i-1,i 1,...,n)与当前监测点mi的距离,构造一维空间向量
其中se中其他监测点mq,(q=1,2,...,i-1,i 1,...,n)与当前监测点mi的距离计算公式如下:
步骤b3:将第i个监测点不同时刻对应的一维空间信息向量组合在一起,得到如下的时空矩阵:
其中,t表示时刻数;
步骤b4:按照步骤b2和步骤b3遍历将训练集se中的所有监测点,结束遍历后得到所有监测点的时空矩阵集合sf=(f1,f2,...,fn)。
进一步的,所述步骤b2具体为;
步骤b21:将当前监测点的第k个时刻的监测数据mi,k=(pi,ti,k,xi,k)中的xi,k作为元素
步骤b22:选择与当前监测点mi距离较小的个监测点,依照距离升序将(s-1)个监测点的第k个时刻的交通流量数据作为元素
进一步的,所述tsnn由线性整流函数控制的卷积层、双层bi-gru、记忆网络以及注意力机制构成。
进一步的,所述步骤c具体为:
步骤c1:将时空矩阵集合sf中每个监测点对应的交通流时空矩阵fi分别输入到融合时空特征的深度学习网络;
步骤c2:根据目标损失函数mse,利用反向传播算法计算tsnn中各参数的梯度,并利用随机梯度下降法更新参数;
其中,目标损失函数mse定义如下:
步骤c3:重复进行上述c1和c2步骤,直至步骤c2中计算得到的mse值收敛到阈值,保存网络参数,完成训练过程。
进一步的,所述步骤c1具体为:
步骤c11:将每个监测点对应的时空矩阵表征输入到由线性整流函数relu控制的卷积层,按如下公式输出原始卷积特征:
其中,k表示卷积核的数量,ei表示输入fi通过卷积层获得的原始卷积特征映射,
然后,将原始卷积特征映射ei输入到激活层以获得特征映射ci,按如下公式计算特征映射:
ci=σ(ei)
其中,ci表示激活层激活后的特征映射,σ表示线性整流函数,其公式如下:
a表示relu函数的输入值;
步骤c12:对步骤c11得到的激活后的局部特征映射ci进行拼接,得到全局特征映射c=[c1,c2,...,ck];
步骤c13:将步骤c12得到的全局特征向量c=[c1,c2,...,ck]作为注意力机制的输入,生成一组大小与输入特征相同的注意力权重矩阵vm=[v1,v2,...,vk]其中,权重vi按如下公式计算:
其中,exp表示以自然常数为底的指数函数,ci表示全局特征向量c的第i个元素;
按如下公式计算经注意力机制处理后的包含时空相关性的向量序列c′:
c′=vmec
其中c′=[c'1,c'2,...,c'k]表示对输入特征向量映射c的加权特征向量,e表示矩阵元素的乘积运算。
步骤c14:将步骤c13得到的经注意力机制处理后的包含时空相关性的向量序列c′作为双层门控循环神经网络bi-gru的输入,提取时间和周期性特征,从而得到交通流的时空特征向量表示
其中,按如下公式计算bi-gru第t个时刻的输出
其中,
其中,
步骤c15:将步骤c14得到的交通流时空特征向量序列
步骤c16:将步骤c15得到的最终交通流时空特征向量表示[h1,h2,...,hk]输入到到包含线性激活函数relu的单层神经网络记忆更新模块用于更新、保存记忆,计算公式如下:
mt=relu(wm[mt-1;ht] bm)
其中,mt表示t时刻的记忆,wm表示记忆更新部分的权重系数,mt-1表示t-1时刻的记忆,bm表示记忆更新部分的偏差;
步骤c17:根据输入的交通流时空特征向量表示从步骤c16保存的记忆中选择合适的记忆抽取出来并组合在一起,以预测未来时刻的交通流量。
进一步的,所述步骤c15具体为:
步骤c151:利用注意力门gt替换传统gru中的更新门zt;
步骤c152:使用注意力门gt更新门控循环神经网络的内部状态,得到t时刻的最终交通流时空特征向量表示ht,计算公式如下:
其中,ht-1表示前一时刻的交通流时空特征向量表示,
候选状态
其中,w1、w2表示权重系数,b1、b2表示偏差,at表示注意力的输出,计算公式如下:
其中,
进一步的,所述步骤d具体为:
步骤d1:将待预测的交通流数据序列进行预处理,得到交通流数据的时空矩阵表征;
步骤d2:将时空矩阵表征作为训练好的深度学习网络的输入,得到预测结果。
本发明与现有技术相比具有以下有益效果:
本发明解决了交通流预测中特征提取不完整和特征融合不完全的问题,并提高了交通流预测的准确度和精度。
附图说明
图1是本发明一实施例中的方法流程图;
图2是本发明一实施例中的系统结构示意图;
图3是本发明一实施例中的模型框架图。
具体实施方式
下面结合附图及实施例对本发明做进一步说明。
请参照图1,本发明提供一种基于融合时空特征的深度网络的交通流预测方法,包括以下步骤:
步骤a:获取包含时空信息的历史交通流数据,并构建交通流数据训练集;
步骤b:对交通流数据训练集进行预处理,得到历史交通流数据的时空矩阵表征;
步骤c:以时空矩阵表征作为深度学习网络的输入,训练深度学习网络tsnn;
步骤d:将待预测的交通流数据序列输入到训练好的深度学习网络中,得到预测结果。
在本实施例中,所述步骤a具体为:
步骤a1:从交通平台中获取交通流量监测点的监测数据,其中每个交通流量监测点的数据表示为:
mi={(pi,ti,1,xi,1),(pi,ti,2,xi,2),...,(pi,ti,k,xi,k),...,(pi,ti,t,xi,t),i=1,2,...,n}
其中,mi表示第i个监测点的交通流数据序列,pi表示第i个监测点的位置、ti,k表示第i个监测点的第k个时刻的时间信息、xi,k表示第i个监测点的第k个时刻的交通流量,i=1,2,...,n表示监测点序号,k=1,2,...,t表示每个监测点所需的历史监测数据数量;
步骤a2:将获取到的各监测点的交通流数据序列以监测点为单位,构成包含时空信息的交通流数据训练集se=(m1,m2,...,mn)。
在本实施例中,所述步骤b具体为:
步骤b1:遍历交通流数据训练集se中的所有监测点的交通流数据;
步骤b2:对每一个监测点mi,遍历其交通流数据序列,以第k个时刻对应的监测数据信息mi,k=(pi,ti,k,xi,k)为中心,计算se中其他监测点mq,(q=1,2,...,i-1,i 1,...,n)与当前监测点mi的距离,构造一维空间向量
其中se中其他监测点mq,(q=1,2,...,i-1,i 1,...,n)与当前监测点mi的距离计算公式如下:
将当前监测点的第k个时刻的监测数据mi,k=(pi,ti,k,xi,k)中的xi,k作为元素
步骤b3:将第i个监测点不同时刻对应的一维空间信息向量组合在一起,得到如下的时空矩阵:
其中,t表示时刻数;
步骤b4:按照步骤b2和步骤b3遍历将训练集se中的所有监测点,结束遍历后得到所有监测点的时空矩阵集合sf=(f1,f2,...,fn)。
在本实施例中,所述tsnn由线性整流函数控制的卷积层、双层bi-gru、记忆网络以及注意力机制构成,所述步骤c具体为:
步骤c1:将时空矩阵集合sf中每个监测点对应的交通流时空矩阵fi分别输入到融合时空特征的深度学习网络;
步骤c2:根据目标损失函数mse,利用反向传播算法计算tsnn中各参数的梯度,并利用随机梯度下降法更新参数;
其中,目标损失函数mse定义如下:
步骤c3:重复进行上述c1和c2步骤,直至步骤c2中计算得到的mse值收敛到阈值,保存网络参数,完成训练过程。
在本实施例中,所述步骤c1具体为:
步骤c11:将每个监测点对应的时空矩阵表征输入到由线性整流函数relu控制的卷积层,按如下公式输出原始卷积特征:
其中,k表示卷积核的数量,ei表示输入fi通过卷积层获得的原始卷积特征映射,
然后,将原始卷积特征映射ei输入到激活层以获得特征映射ci,按如下公式计算特征映射:
ci=σ(ei)
其中,ci表示激活层激活后的特征映射,σ表示线性整流函数,其公式如下:
a表示relu函数的输入值;
步骤c12:对步骤c11得到的激活后的局部特征映射ci进行拼接,得到全局特征映射c=[c1,c2,...,ck];
步骤c13:将步骤c12得到的全局特征向量c=[c1,c2,...,ck]作为注意力机制的输入,生成一组大小与输入特征相同的注意力权重矩阵vm=[v1,v2,...,vk]其中,权重vi按如下公式计算:
其中,exp表示以自然常数为底的指数函数,ci表示全局特征向量c的第i个元素;
按如下公式计算经注意力机制处理后的包含时空相关性的向量序列c′:
c′=vmec
其中c′=[c'1,c'2,...,c'k]表示对输入特征向量映射c的加权特征向量,e表示矩阵元素的乘积运算。
步骤c14:将步骤c13得到的经注意力机制处理后的包含时空相关性的向量序列c′作为双层门控循环神经网络bi-gru的输入,提取时间和周期性特征,从而得到交通流的时空特征向量表示
其中,按如下公式计算bi-gru第t个时刻(此处t是指向量序列c′中的第t个向量)的输出
其中,
其中,
步骤c15:将步骤c14得到的交通流时空特征向量序列
步骤c16:将步骤c15得到的最终交通流时空特征向量表示[h1,h2,...,hk]输入到到包含线性激活函数relu的单层神经网络记忆更新模块用于更新、保存记忆,计算公式如下:
mt=relu(wm[mt-1;ht] bm)
其中,mt表示t时刻的记忆,wm表示记忆更新部分的权重系数,mt-1表示t-1时刻的记忆,bm表示记忆更新部分的偏差;
步骤c17:根据输入的交通流时空特征向量表示从步骤c16保存的记忆中选择合适的记忆抽取出来并组合在一起,以预测未来时刻的交通流量。
在本实施例中,所述步骤c15具体为:
步骤c151:利用注意力门gt替换传统gru中的更新门zt;
步骤c152:使用注意力门gt更新门控循环神经网络的内部状态,得到t时刻的最终交通流时空特征向量表示ht,计算公式如下:
其中,ht-1表示前一时刻的交通流时空特征向量表示,
候选状态
其中,w1、w2表示权重系数,b1、b2表示偏差,at表示注意力的输出,计算公式如下:
其中,
在本实施例中,所述步骤d具体为:
步骤d1:将待预测的交通流数据序列进行预处理,得到交通流数据的时空矩阵表征;
步骤d2:将时空矩阵表征作为训练好的深度学习网络的输入,得到预测结果。
参考图2,本实施例还提供了用于实现上述方法的交通流预测系统,包括数据收集模块,用于收集从交通平台获取包含时空信息的历史交通流数据,得到包含时空信息的原始交通流数据集;
数据预处理模块,对收集的包含时空信息的交通流数据集进行预处理,对包含时空信息的历史交通流数据进行预处理,得到历史交通流数据的时空矩阵表征;
神经网络训练模块,将预处理得到的交通流时空矩阵表征输入到深度学习网络中,利用卷积神经网络提取交通流数据集中的空间特征,利用双向门控循环神经网络提取交通流数据集中的时间特征和周期性特征,生成交通流特征向量表示,输入到结合注意力机制和门控循环神经网络的记忆网络中,计算相对于的损失值,以最小化损失值为目标对整个融合时空特征的交通流预测模型进行训练,得到训练好的交通流预测模型。根据目标损失函数mse,利用反向传播算法计算模型中各参数的梯度,并利用随机梯度下降法更新参数,通过多次迭代更新,得到最终需要的训练好的交通流预测模型。
交通流预测模块,通过输入的待预测的交通流数据序列,输出预测结果。
以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。
1.一种基于融合时空特征的深度网络的交通流预测方法,其特征在于,包括以下步骤:
步骤a:获取包含时空信息的历史交通流数据,并构建交通流数据训练集;
步骤b:对交通流数据训练集进行预处理,得到历史交通流数据的时空矩阵表征;
步骤c:以时空矩阵表征作为深度学习网络的输入,训练深度学习网络tsnn;
步骤d:将待预测的交通流数据序列输入到训练好的深度学习网络中,得到预测结果。
2.根据权利要求1所述的基于融合时空特征的深度网络的交通流预测方法,其特征在于,所述步骤a具体为:
步骤a1:从交通平台中获取交通流量监测点的监测数据,其中每个交通流量监测点的数据表示为:
mi={(pi,ti,1,xi,1),(pi,ti,2,xi,2),...,(pi,ti,k,xi,k),...,(pi,ti,t,xi,t),i=1,2,...,n}
其中,mi表示第i个监测点的交通流数据序列,pi表示第i个监测点的位置、ti,k表示第i个监测点的第k个时刻的时间信息、xi,k表示第i个监测点的第k个时刻的交通流量,i=1,2,...,n表示监测点序号,k=1,2,...,t表示每个监测点所需的历史监测数据数量;
步骤a2:将获取到的各监测点的交通流数据序列以监测点为单位,构成包含时空信息的交通流数据训练集se=(m1,m2,...,mn)。
3.根据权利要求2所述的基于融合时空特征的深度网络的交通流预测方法,其特征在于,所述步骤b具体为:
步骤b1:遍历交通流数据训练集se中的所有监测点的交通流数据;
步骤b2:对每一个监测点mi,遍历其交通流数据序列,以第k个时刻对应的监测数据信息mi,k=(pi,ti,k,xi,k)为中心,计算se中其他监测点mq,(q=1,2,...,i-1,i 1,...,n)与当前监测点mi的距离,构造一维空间向量
其中se中其他监测点mq,(q=1,2,...,i-1,i 1,...,n)与当前监测点mi的距离计算公式如下:
步骤b3:将第i个监测点不同时刻对应的一维空间信息向量组合在一起,得到如下的时空矩阵:
其中,t表示时刻数;
步骤b4:按照步骤b2和步骤b3遍历将训练集se中的所有监测点,结束遍历后得到所有监测点的时空矩阵集合sf=(f1,f2,...,fn)。
4.根据权利要求3所述的基于融合时空特征的深度网络的交通流预测方法,其特征在于,所述步骤b2具体为;
步骤b21:将当前监测点的第k个时刻的监测数据mi,k=(pi,ti,k,xi,k)中的xi,k作为元素
步骤b22:选择与当前监测点mi距离较小的个监测点,依照距离升序将(s-1)个监测点的第k个时刻的交通流量数据作为元素
5.根据权利要求3所述的基于融合时空特征的深度网络的交通流预测方法,其特征在于,所述tsnn由线性整流函数控制的卷积层、双层bi-gru、记忆网络以及注意力机制构成。
6.根据权利要求5所述的基于融合时空特征的深度网络的交通流预测方法,其特征在于,所述步骤c具体为:
步骤c1:将时空矩阵集合sf中每个监测点对应的交通流时空矩阵fi分别输入到融合时空特征的深度学习网络;
步骤c2:根据目标损失函数mse,利用反向传播算法计算tsnn中各参数的梯度,并利用随机梯度下降法更新参数;
其中,目标损失函数mse定义如下:
步骤c3:重复进行上述c1和c2步骤,直至步骤c2中计算得到的mse值收敛到阈值,保存网络参数,完成训练过程。
7.根据权利要求6所述的基于融合时空特征的深度网络的交通流预测方法,其特征在于,所述步骤c1具体为:
步骤c11:将每个监测点对应的时空矩阵表征输入到由线性整流函数relu控制的卷积层,按如下公式输出原始卷积特征:
其中,k表示卷积核的数量,ei表示输入fi通过卷积层获得的原始卷积特征映射,
然后,将原始卷积特征映射ei输入到激活层以获得特征映射ci,按如下公式计算特征映射:
ci=σ(ei)
其中,ci表示激活层激活后的特征映射,σ表示线性整流函数,其公式如下:
a表示relu函数的输入值;
步骤c12:对步骤c11得到的激活后的局部特征映射ci进行拼接,得到全局特征映射c=[c1,c2,...,ck];
步骤c13:将步骤c12得到的全局特征向量c=[c1,c2,...,ck]作为注意力机制的输入,生成一组大小与输入特征相同的注意力权重矩阵vm=[v1,v2,...,vk]其中,权重vi按如下公式计算:
其中,exp表示以自然常数为底的指数函数,ci表示全局特征向量c的第i个元素;
按如下公式计算经注意力机制处理后的包含时空相关性的向量序列c′:
c′=vmec
其中c′=[c′1,c′2,...,c′k]表示对输入特征向量映射c的加权特征向量,e表示矩阵元素的乘积运算。
步骤c14:将步骤c13得到的经注意力机制处理后的包含时空相关性的向量序列c′作为双层门控循环神经网络bi-gru的输入,提取时间和周期性特征,从而得到交通流的时空特征向量表示
其中,按如下公式计算bi-gru第t个时刻的输出
其中,
其中,
步骤c15:将步骤c14得到的交通流时空特征向量序列
步骤c16:将步骤c15得到的最终交通流时空特征向量表示[h1,h2,...,hk]输入到到包含线性激活函数relu的单层神经网络记忆更新模块用于更新、保存记忆,计算公式如下:
mt=relu(wm[mt-1;ht] bm)
其中,mt表示t时刻的记忆,wm表示记忆更新部分的权重系数,mt-1表示t-1时刻的记忆,bm表示记忆更新部分的偏差;
步骤c17:根据输入的交通流时空特征向量表示从步骤c16保存的记忆中选择合适的记忆抽取出来并组合在一起,以预测未来时刻的交通流量。
8.根据权利要求7所述的基于融合时空特征的深度网络的交通流预测方法,其特征在于,所述步骤c15具体为:
步骤c151:利用注意力门gt替换传统gru中的更新门zt;
步骤c152:使用注意力门gt更新门控循环神经网络的内部状态,得到t时刻的最终交通流时空特征向量表示ht,计算公式如下:
其中,ht-1表示前一时刻的交通流时空特征向量表示,
候选状态
其中,w1、w2表示权重系数,b1、b2表示偏差,at表示注意力的输出,计算公式如下:
其中,
9.根据权利要求1所述的基于融合时空特征的深度网络的交通流预测方法,其特征在于,所述步骤d具体为:
步骤d1:将待预测的交通流数据序列进行预处理,得到交通流数据的时空矩阵表征;
步骤d2:将时空矩阵表征作为训练好的深度学习网络的输入,得到预测结果。
技术总结