一种基于集成LSTM神经网络的车流量预测方法与流程

文档序号:17845208发布日期:2019-06-11 21:39阅读:653来源:国知局
一种基于集成LSTM神经网络的车流量预测方法与流程

本发明属于交通流量预测领域,涉及一种基于集成长短期记忆(longshort-termmemory,lstm)神经网络的车流量预测方法,本发明属于智能交通技术领域。



背景技术:

车流量预测是智能交通系统的重要研究内容。智能交通系统(intelligencetransportationsystem,its)又称智能运输系统,是一种将科学技术有效地综合运用于整个交通运输管理体系,从而建立起一种大范围内、全方位发挥作用的,实时、准确、高效的综合运输和管理系统。车流量预测作为智能交通系统中的重要环节,能实现对交通流实时、动态地预测。智能交通系统通过车流量预测技术不断的预测未来时间内城市道路的状况,能为即将发生的拥堵事件做出合理的动态调控,一定程度上缓解交通拥堵,提高城市交通管理和运行效率,减少碳排放量和节约资源。

目前车流量预测主要通过采集历史车流量,利用算法进行未来车流量的预测。车流检测技术有视频检测技术、线圈感应检测技术、超声检测技术、红外线检测技术、浮动车监测技术以及rfid技术等。

预测方法有历史均值法、kalman滤波法、非参数回归法和神经网络法等。其中,历史均值法算法简单,但无法研究交通流动态性、非确定性和非线性特性;kalman滤波法对交通流预测精度较高,但受线性估计模型限制,无法适应交通流的非线性变化;非参数回归法适合非线性的动态系统,并符合交通流量的非线性特征,需要大量的历史数据,建立序列内部联系,用来预测当前时间之后的交通流信息,但存在预测速度慢,参数调整需要试凑的缺点;在众多交通流预测方法中,神经网络因其灵活的模型结构,强大的学习和泛化能力受到越来越多的关注。但是交通流量有复杂的历史依赖性,此刻的交通流状态与上一时刻的历史交通流状态有一定程度的关联,且可能导致下一时刻的交通流状态发生变化。传统的前馈神经网络没有时间序列观念,不能记忆早期历史输入信息,因此很难模拟交通流的动态性。而且使用神经网络算法在进行车流量的预测时,初始权值等参数的选取以及网络训练样本集的选择会影响网络梯度下降的收敛速度和梯度下降到最小训练误差的几率,这往往需要技术人员根据经验做出大量调参工作,因此单一的神经网络模型存在准确性不够稳定等问题。

对此,我们发明一种基于集成lstm神经网络的车流量预测方法。作为rnn循环神经网络的一种,lstm神经网络在时间序列问题的解决上要优于传统的前馈神经网络,且由于网络中遗忘门等记忆单元的存在,也使得它克服了一般rnn循环神经网络的梯度消失或爆炸问题。选择lstm神经网络算法,采用集成学习方法优化,构造多个lstm神经网络预测模型进行集成,最后通过加权组合的方式得到最终预测的车流量,能够降低车流量预测模型的泛化误差,提高准确率。



技术实现要素:

针对现有方法的缺陷和技术的不足,本发明提出了一种基于集成lstm神经网络的车流量预测方法,利用车流检测得到的历史数据,基于lstm长短期记忆网络建立集成神经网络模型进行车流量预测,能够降低车流量预测模型的泛化误差,提高准确率。

为达到上述目的,本发明提供如下技术方案:

一种基于集成lstm神经网络的车流量预测方法,包括以下步骤:

步骤s1:数据预处理;

步骤s2:构建数据集;根据预处理后的车流量时间序列值构建车流量矩阵数据集,数据集中每个样本的矩阵形式如下面的矩阵所示:

其中x11,x21,…,xn1,x(n+1)1,表示某路口一个截面历史数据中n+1个时段经过的车流量值,每个时段相隔δt,δt为时间长度,单位为min,利用前n个时段,预测第n+1个时段的车流量,x11,x12,…,x1m,表示有m个样本;

步骤s3:构造集成lstm网络:设计k个lstm神经网络模型,其具有三层神经元结构,分别是输入层、隐藏层、输出层,输入层神经元个数为n,输入向量为某路口前n个时段的历史车流量,每个时段相隔δt,输出层神经元个数为1,每个lstm神经网络用不同的分布区间来初始化权值,利用初始权值的不同来构造差异化的lstm神经网络;

步骤s4:训练与验证:利用bagging集成学习方法构造训练集和验证集,原始样本集为d={(x11,x21,…,x(n+1)1),(x12,x22,…,x(n+1)2),…,(x1m,x2m,…,x(n+1)m)},

对包含m个样本的训练集进行k轮随机有放回采样,每轮采样共采集m次,得到k个包含m个样本的的采样集,将这k个采样集作为训练集,将未采样到的数据留作验证集;

步骤s5:分别使用步骤s4中的k个采样集训练步骤s3中的k个lstm神经网络,得到优化模型;

步骤s6:利用步骤s4中构造的验证集计算各单个lstm模型加权系数;

步骤s7:利用训练好的模型进行车流量预测,将预测出的车流量值进行逆变换和反归一化得到预测车流量大小,集成加权得到最终模型预测的车流量值。

进一步,步骤s1包括以下步骤:

步骤s11:格式化:将某路段经过的车辆数目,按δt时间段聚合,δt为时间长度,单位为min,提取出车流量时间序列值,使用车流量时间序列作为模型输入;

步骤s12:数据差分变换与归一化:判断车流量时间值序列是否是平稳时间序列,若不平稳则对其进行差分变换,并对数据进行归一化,归一化方式采用min-max标准化线性归一处理,计算表达式如下所示:

进一步,步骤s5包括以下步骤:

s51:采用均方误差函数作为损失函数:

其中fi表示lstm神经网络的预测值,x(n+1)t表示真实的第n+1个时刻的车流量值,m为神经网络输入的样本数目;

s52:将样本p=(x11,x21,…,xn1,x(n+1)1)的前n个时刻值x11,x21,…,xn1作为lstm输入层的输入向量,第n+1个时刻值x(n+1)1作为和网络预测值比较的车流量真实值,lstm隐藏层中每个lstm单元的前向计算如下所示:

ft=σ(wf×[ht-1,xt]+bf)

it=σ(wi×[ht-1,xt]+bi)

ot=σ(wo×[ht-1,xt]+bo)

ht=ot*tanh(ct)

其中,×表示矩阵叉乘,*表示矩阵点乘,wf,wi,wc,wo分别表示遗忘门、输入门,状态单元、输出门的权重矩阵,bf,bi,bc,bo分别表示遗忘门、输入门、状态单元、输出门的偏置,xt,ft,it,ct,ot,ht分别表示当前时刻网络的输入,遗忘门输出,输入门输出、状态单元输出、输出门输出以及记忆单元的最终输出,ct-1,ht-1分别表示前一时刻的状态门输出和单元输出,表示记忆单元的状态,σ表示sigmod函数;

s53:使用随机梯度下降优化算法sgd更新网络权重,将模型预测值和真实的车流量值相比较,计算模型的预测误差,反向计算每个神经元的误差,对网络进行迭代训练;

s54:当网络迭代训练到均方误差不再下降或满足一定精度时,保存网络参数,得到k个训练好的lstm模型。

进一步,步骤s6中利用构造的验证集计算各单个lstm模型加权系数,包括以下步骤:

s61:将验证集中的样例分别输入每个训练好的lstm模型,并将得到的预测车流量值进行逆变换和反归一化得到预测车流量大小;

s62:计算lstm模型对于验证集的平均准确率;准确率计算公式如下:

其中,q代表准确率,q代表预测车流量大小,b代表实际车流量大小;用上式计算验证集中所有样例的准确率,取平均得到平均准确率;

s63:计算各单个lstm模型加权系数:单个lstm模型加权系数tn计算公式为:

其中rn(n为1~k)代表每个lstm模型在验证集上的平均准确率。

进一步,步骤s7中利用训练好的模型进行车流量预测,集成加权得到模型预测的车流量值的步骤包括:

s71:将待预测数据构造成预测集,分别输入k个lstm模型,并将得到的预测车流量值进行逆变换和反归一化得到预测车流量大小;

s72:集成加权求出最终预测的车流量,计算公式为:

q=t1q1+t2q2+t3q3+t4q4+…+tkqk

其中,tn(n为1~k)代表步骤s6中得到的各单个lstm模型的加权系数,qn(n为1~k)代表单个lstm模型的预测结果,q代表最终集成模型预测的车流量值。

本发明的有益效果在于:对于交通流数据而言,同一路段的车流量在时间关系上并不是完全无关的,此刻的交通流状态与上一时刻的历史交通流状态有一定程度的关联,且可能导致下一时刻的交通流状态发生变化。本发明提供的集成lstm神经网络车流量预测模型,利用lstm神经网络中遗忘门等单元的存在,对交通流历史数据进行学习和预测,考虑到了交通流复杂的历史依赖性。另外,本发明利用bagging集成学习方法对lstm神经网络进行优化,建立并训练多个差异化的lstm神经网络模型,在预测时将多个模型的加权平均值作为最终模型的预测结果,降低了车流量预测模型的泛化误差,提高了预测准确率。

附图说明

为了使本发明的目的、技术方案和有益效果更加清楚,本发明提供如下附图进行说明:

图1为本发明提供的集成lstm车流量预测模型中单个lstm神经网络模型图;

图2为本发明提供的集成lstm车流量预测模型图。

具体实施方式

下面将结合附图,对本发明的优选实施例进行详细的描述。

参照图1和图2,一种基于集成lstm神经网络的车流量预测方法,包括以下步骤:

步骤s1:数据预处理。

步骤s11:格式化。将某路段经过的车辆数目,按δt时间段(δt为时间长度,单位为min)聚合,提取出车流量时间序列值,使用车流量时间序列作为模型输入;

步骤s12::数据差分变换与归一化。判断车流量时间值序列是否是平稳时间序列,若不平稳则对其进行差分变换,并对数据进行归一化。归一化方式采用min-max标准化线性归一处理,计算表达式如下所示:

步骤s2:构建数据集。根据预处理后的车流量时间序列值构建车流量矩阵数据集,数据集中每个样本的矩阵形式如下面的矩阵所示:

其中x11,x21,…,xn1,x(n+1)1,表示某路口一个截面历史数据中n+1个时段经过的车流量值(每个时段相隔δt,δt为时间长度,单位为min),本方法利用前n个时段,预测第n+1个时段的车流量。x11,x12,…,x1m,表示有m个样本;

步骤s3:构造集成的lstm网络:设计k个lstm神经网络模型,每个lstm神经网络具有三层神经元结构,分别是输入层、隐藏层、输出层。输入层神经元个数为n,输入向量为某路口前n个时段(每个时段相隔δt)的历史车流量,输出层神经元个数为1。每个lstm神经网络用不同的分布区间来初始化权值,利用初始权值的不同来构造差异化的lstm神经网络;

步骤s4:训练与验证。利用bagging集成学习方法构造训练集和验证集,原始样本集为d={(x11,x21,…,x(n+1)1),(x12,x22,…,x(n+1)2),…,(x1m,x2m,…,x(n+1)m)},

对包含m个样本的训练集进行k轮随机有放回采样,每轮采样共采集m次,得到k个包含m个样本的的采样集,将这k个采样集作为训练集。将未采样到的数据留作验证集;

步骤s5:分别使用步骤s4中的k个采样集训练步骤s3中的k个lstm神经网络,得到优化模型。具体步骤为:

步骤s51:采用均方误差函数作为损失函数:

其中fi表示lstm神经网络的预测值,x(n+1)t表示真实的第n+1个时刻的车流量值,m为神经网络输入的样本数目;

步骤s52:将样本p=(x11,x21,…,xn1,x(n+1)1)的前n个时刻值x11,x21,…,xn1作为lstm输入层的输入向量,第n+1个时刻值x(n+1)1作为和网络预测值比较的车流量真实值,lstm隐藏层中每个lstm单元的前向计算如下所示:

ft=σ(wf×[ht-1,xt]+bf)

it=σ(wi×[ht-1,xt]+bi)

ot=σ(wo×[ht-1,xt]+bo)

ht=ot*tanh(ct)

其中,×表示矩阵叉乘,*表示矩阵点乘,wf,wi,wc,wo分别表示遗忘门、输入门,状态单元、输出门的权重矩阵,bf,bi,bc,bo分别表示遗忘门、输入门、状态单元、输出门的偏置,xt,ft,it,ct,ot,ht分别表示当前时刻网络的输入,遗忘门输出,输入门输出、状态单元输出、输出门输出以及记忆单元的最终输出,ct-1,ht-1分别表示前一时刻的状态门输出和单元输出,表示记忆单元的状态,σ表示sigmod函数;

步骤s53:使用sgd(随机梯度下降优化算法)更新网络权重,将模型预测值和真实的车流量值相比较,计算模型的预测误差,反向计算每个神经元的误差,对网络进行迭代训练;

步骤s54:当网络迭代训练到均方误差不再下降或满足一定精度时,保存网络参数,得到k个训练好的lstm模型。

步骤s6:利用步骤s4中构造的验证集计算各单个lstm模型加权系数,具体步骤如下:

步骤s61:将验证集中的样例分别输入每个训练好的lstm模型,并将得到的预测车流量值进行逆变换和反归一化得到预测车流量大小;

步骤s62:计算每个lstm模型对于验证集的平均准确率。准确率计算公式如下:

其中,q代表准确率,q代表预测车流量大小,b代表实际车流量大小。用上式计算验证集中所有样例的准确率,取平均得到平均准确率;

步骤s63:计算各单个lstm模型加权系数:单个lstm模型加权系数tn计算公式为:

其中rn(n为1~k)代表各lstm模型在验证集上的平均准确率;

步骤s7:利用训练好的模型进行车流量预测,并集成加权计算最终结果,具体步骤为:

步骤s71:将待预测数据构造成预测集,分别输入k个lstm模型,并将得到的预测车流量值进行逆变换和反归一化得到预测车流量大小;

步骤s72:集成加权求出最终预测的车流量,计算公式为:

q=t1q1+t2q2+t3q3+t4q4+…+tkqk

其中,tn(n为1~k)代表步骤s63中得到的单个lstm模型的加权系数,qn(n为1~k)代表单个lstm模型的预测结果,q代表最终集成模型预测的车流量值。

最后说明的是,以上优选实施例仅用以说明本发明的技术方案而非限制,尽管通过上述优选实施例已经对本发明进行了详细的描述,但本领域技术人员应当理解,可以在形式上和细节上对其作出各种各样的改变,而不偏离本发明权利要求书所限定的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1