本发明属于人工智能技术领域,涉及一种基于强化学习的交通信号灯控制方法,特别涉及一种改进的基于deepq-network模型的强化学习的交通信号灯控制方法。
背景技术:
交通拥挤已经越来越影响人们的日常生活了,如何控制交通灯的切换成了一个亟待解决的问题。但是,传统固定时间(fixed-timelight)切换的方法和基于交通反馈(trafficresponsive)的方法已经能从根本上解决现有的交通拥堵,基于此,有人提出了用强化学习的方法来控制交通灯的切换。现有的基于强化学习的交通信号灯控制主要面临两大挑战,一是如何更好地表示环境(environment),二是如何从环境表示中抽取更有用的信息供代理(agent)学习和预测。本发明主要根据这两大挑战同时针对现有的强化学习方法进行改进,具体体现在对转态(state)的表示和对模型的改进。
空间注意力机制(spatialattentionmechanism)最开始是用于图像处理领域的技术,主要用来关注图片上某些特定的部分,并给这些区域分配更大的权重,以此来表示这些区域的信息很重要。由于十字路口交通状态在表示的时候会出现车辆分布不均匀的情况,即在靠近路口的时候车辆相对比较密集。因此,在矩阵化的过程中也会出现矩阵稀疏的情况,基于此可以用空间注意力机制来给不同的十字路口区域分配不同的权重。
技术实现要素:
本发明的目的是提供一种交通信号灯控制方法,通过强化学习的方法来控制十字路口红绿灯的切换,从而使得车辆尽快的通过十字路口,减少车辆等待时间。发明内容主要包括对现有state表示方法的改进和基于空间注意力机制的强化学习模型。
本发明所采用的技术方案是:一种基于强化学习的十字路口交通信号灯控制方法,其特征在于,包括以下步骤:
步骤1:对十字路口进行建模,分别定义强化学习三要素state,reward,action;
state要素的定义包含车辆位置和速度;首先把路口划分成网格,定义车辆的位置矩阵为p′=[p′0,p′1,p′2,p′3],其中p′0,p′1,p′2,p′3为车道车辆位置表示,其中p′0,p′1,p′2,p′3分别为每条车道车辆位置的表示;定义车辆的速度矩阵为v′=[v′0,v′1,v′2,v′3],速度矩阵表示的是车辆期望以多大的速度尽快离开路口;其中v′0,v′1,v′2,v′3为每条车道车辆速度表示,速度矩阵的每一个元素表示的是vmn=maxspeed-vehiclespeed,vehiclespeed表示车辆到达十字路口当前的速度,maxspeed表示车辆允许通行的最大速度;
action要素的定义表示的是车辆能无碰撞安全的通过路口的红绿灯的状态,即如何在不同的状态之间进行切换能保证车辆安全通过路口;action={ns,nsl,we,wel},其中ns表示南北方向直行和右转绿灯,nsl表示南北方向左转绿灯,we表示东西方向直行和右转绿灯,wel表示东西方向左转绿灯;
reward要素的定义是environment从agent中获取到的奖励,表示经过采取一个action要素之后十字路口车辆减少的数目,即rt=β·wt-wt′;其中,rt表示t时刻agent返回来的奖励,β是折扣系数wt表示在t时刻所有在路口等待车辆的总数,wt′表示经过采取一个action要素之后所有在路口等待车辆的总数;
步骤2:依据强化学习算法构建基于空间注意力机制的deepq-network;
所述基于空间注意力机制的deepq-network主干网络是卷积神经网络cnn,依次为卷积层,spatialattention层,卷积层,然后接上两个全连接层,最后是q-values的输出;
步骤3:结合十字路口场景图自动生成车辆仿真数据,包括仿真模拟的时长车辆数目等,获得训练数据和测试数据集;本发明中仿真一个回合的时长设置为1小时,车辆数目设置为1000。
步骤4:准备训练数据300回合和测试数据100回合,全部由步骤3生成;
步骤5:根据训练数据,训练基于空间注意力机制的deepq-network,训练完之后保存最后的模型;
步骤6:定义评价指标,根据测试集,对基于空间注意力机制的deepq-network进行测试并评估;
步骤7:采用基于空间注意力机制的deep-q-network对卷积神经网络输出的特征向量进行处理。通过对路口进行建模,来对红绿灯进行切换,切换目的是使车辆在路口等待时间最少,切换所采取的行为action由神经网络预测。
本发明与现有技术相比具有如下优点和有益效果:
(1)与其他基于强化学习的交通信号灯控制方法不同的是,本说明在定义state的时候改变了以往的不足,具体体现在对车辆位置和速度建模的时候,本说明克服了矩阵中整型0和浮点型0可能会互相混淆的缺点。
(2)在对十字路口建模之后,针对环境environment的表示可能出现矩阵稀疏的情况,结合空间注意力机制,本发明可以更加有效的提取state中的信息。
(3)本发明使用两种不同车流量密度的仿真场景对所提出的方法进行试验和验证,并从车辆平均时延,车辆平均等待队列,车辆平均到达时间三个不同指标来验证模型的优势。
附图说明
图1为本发明实施例的原理图;
图2为本发明实施例十字路口的建模,包含对state中position和speed的定义;
图3为本发明实施例action的切换示意图;
图4为本发明实施例基于空间注意力机制的deepq-network。
具体实施方式
为了便于本领域普通技术人员理解和实施本发明,下面结合附图及实施例对本发明作进一步的详细描述,应当理解,此处所描述的实施示例仅用于说明和解释本发明,并不用于限定本发明。
请见图1,为本发明原理图,主要包含environment和agent以及强化学习三要素state,reward和action。其执行过程是agent和environment相互交互,通过返回的reward来调整红绿灯的切换,以此来训练模型和优化十字路口车辆的通行。
本发明提供的一种基于强化学习的十字路口交通信号灯控制方法,包括以下步骤:
步骤1:对十字路口进行建模,分别定义强化学习三要素state,reward,action;
state要素的定义包含车辆位置和速度;首先把路口划分成网格,定义车辆的位置矩阵为p′=[p′0,p′1,p′2,p′3],其中p′0,p′1,p′2,p′3为车道车辆位置表示,其中p′0,p′1,p′2,p′分别为每条车道车辆位置的表示;定义车辆的速度矩阵为v′=[v′0,v′1,v′2,v′3],速度矩阵表示的是车辆期望以多大的速度尽快离开路口;其中v′0,v′1,v′2,v′3为每条车道车辆速度表示,速度矩阵的每一个元素表示的是vmn=maxspeed-vehiclespeed,vehiclespeed表示车辆到达十字路口当前的速度,maxspeed表示车辆允许通行的最大速度;对state要素的定义具体见图2。
action要素的定义表示的是车辆能无碰撞安全的通过路口的红绿灯的状态,即如何在不同的状态之间进行切换能保证车辆安全通过路口;action={ns,nsl,we,wel},其中ns表示南北方向直行和右转绿灯,nsl表示南北方向左转绿灯,we表示东西方向直行和右转绿灯,wel表示东西方向左转绿灯;action要素的切换见图3。
reward要素的定义是environment从agent中获取到的奖励,表示经过采取一个action要素之后十字路口车辆减少的数目,即rt=β·wt-wt′;其中,rt表示t时刻agent返回来的奖励,β是折扣系数wt表示在t时刻所有在路口等待车辆的总数,wt′表示经过采取一个action要素之后所有在路口等待车辆的总数;
步骤2:依据强化学习算法构建基于空间注意力机制的deepq-network;
本说明的强化学习模型主干网络是卷积神经网络(cnn),具体模型见图4,依次为卷积层,spatialattention层,卷积层,然后接上两个全连接层,最后是q-values的输出。spatialattention的作用是在一个二维的卷积特征向量上,假设经过第一层卷积之后的特征为m=[m1,m2,...,mn],其中mi∈rwh,n为第一层卷积神经元个数,mi表示一个宽为w,高为h的高为空间向量,r表示向量空间;那么注意力权重的计算和新的特征向量过程如下:
其中ws∈rc*1,bs∈r1分别表示权重和偏置,c表示神经网络中输出神经元的个数,fm表示最终生成的featuremap向量;σ是sigmoid激活函数,r(·)表示向量的reshape操作,
步骤3:结合十字路口场景图自动生成车辆仿真数据,包括仿真模拟的时长车辆数目等,获得训练数据和测试数据集;本发明中仿真一个回合的时长设置为1小时,车辆数目设置为1000。本实施例中,根据道路特征产生车辆数据直行占75%,包含三条lane;左转弯和右转车辆占25%,包含两条lane,每次按韦布尔分布(weibulldistribution)产生一小时的数据。
步骤4:准备训练数据300回合和测试数据100回合,全部由步骤3生成;
步骤5:根据训练数据,训练基于空间注意力机制的deepq-network,训练完之后保存最后的模型;
本实施例采用minibatch训练的方式,每次准备好一个minibatch的数据,扔到模型中训练,训练所采用的梯度计算算法是adam,训练的时候梯度传递方式是反向传递。训练过程为回合制,即回合结束此次强化学习过程算结束。训练数据需要训练直到模型达到收敛转态,loss不再改变;测试数据只需要用预训练模型每次预测出action即可。
具体实现包括以下子步骤:
步骤5.1:初始化统计参数r,twt,l,td,分别为平均奖励,平均等待时间,平均等待车辆队列长度,平均旅行时间,并初始化网络参数w,即神经网络中所有待更新的参数;
步骤5.2:设置回合数即训练迭代数episode为0,1,...,n;
步骤5.3:设置时间步step为0,1,...,t;
步骤5.4:获取t时刻路口的状态st,并根据ε贪婪策略选择一个随机的行为at(即t时刻agent所采取的行动,也就是怎么切换红绿灯),然后按照当前的行为at进行仿真模拟,仿真执行时长为一个绿灯时间的步长,εh=(1-e/n),e为当前的回合数,n为回合总数;执行at之后得到奖励值rt,environment达到下一个状态st 1;最后存储当前的(st,at,rt,st 1)四元组到memory,memory是一个专门存储四元组的数组;
步骤5.5:具体过程包括以下子步骤;
步骤5.5.1:如果当前的行为at的和前一时刻的行为at-1相同那么就执行绿灯轮转,并在绿灯时间结束之前执行:从memory中取出一个批次minibatch大小的数据,并计算当前action从环境返回的q值q(s,a)=r γmaxa(s′,a′,w),γ为折扣系数,r为从环境获得的即时奖励,maxa(s′,a′,w)为表示当前时刻采取行动之后所获得的下一个状态的奖励的最大值,s′,a′表示下一个状态,w表示神经网络的参数。根据q(s,a)训练基于空间注意力机制的deepq-network,其中loss为
如果当前的行为at的和前一时刻的行为at-1不相同那么就执行黄灯轮转,并在黄灯时间结束之前执行:从memory中取出一个批次minibatch大小的数据,并计算当前action从环境返回的q值q(s,a)=r γmaxa(s′,a′,w),根据q(s,a)训练模型,其中loss为
步骤5.5.2:更新完黄灯轮转周期之后,接着按步骤5.5.1更新绿灯轮转周期;
步骤5.6:更新统计参数r,twt,l,td;
步骤5.7:回到步骤5.3,直到总训练步长step为t,表示训练完了一个回合,接下来执行步骤5.8;
步骤5.8:回到步骤5.1,直到总训练回合episode为0,表示训练完所有的回合,接下来执行步骤5.9;
步骤5.9:所有训练回合结束后,保存基于空间注意力机制的deepq-network。
步骤6:定义评价指标,根据测试集,对基于空间注意力机制的deepq-network进行测试并评估;
本实施例中,评价指标包括平均等待时延,平均等待队列长度和平均到达时间;平均等待时延
步骤7:采用基于空间注意力机制的deep-q-network对卷积神经网络输出的特征向量进行处理。通过对路口进行建模,来对红绿灯进行切换,切换目的是使车辆在路口等待时间最少,切换所采取的行为action由神经网络预测。
本发明提供的一个基于强化学习的十字路口交通信号灯控制方法,除了改进state中位置和速度的表示之外,本发明的模型在传统deepq-network的基础上进行了扩充,加入了spatialattention机制,能够更好地提取state中的信息,对不同位置的车辆分配不同的权重,加强了agent和environment之间的紧密联系。
本发明与其他方法相比主要有两大优势,首先是对state表示更加合理有效,避免了速度矩阵和位置矩阵中的0值的混淆,使得卷积神经网络能识别其中的值所代表的含义;另外本发明采用空间注意力机制能够有针对性的对卷积特征进行提取更有用的信息,而不是针对每一个元素分配一样的权重,这样能够使得最终模型效果更好。本发明旨在通过强化学习模型来对交通信号灯的切换顺序进行控制,更加合理的分配信号灯轮转周期,以此来减少车辆在路口等待的时间,提高交通通行效率,环境交通拥堵带来的压力。
应当理解的是,本说明书未详细阐述的部分均属于现有技术。
应当理解的是,上述针对较佳实施例的描述较为详细,并不能因此而认为是对本发明专利保护范围的限制,本领域的普通技术人员在本发明的启示下,在不脱离本发明权利要求所保护的范围情况下,还可以做出替换或变形,均落入本发明的保护范围之内,本发明的请求保护范围应以所附权利要求为准。
1.一种基于强化学习的十字路口交通信号灯控制方法,其特征在于,包括以下步骤:
步骤1:对十字路口进行建模,分别定义强化学习三要素state,reward,action;
state要素的定义包含车辆位置和速度;首先把路口划分成网格,定义车辆的位置矩阵为p′=[p′0,p′1,p′2,p′3],其中p′0,p′1,p′2,p′3为车道车辆位置表示,其中p′0,p′1,p′2,p′分别为每条车道车辆位置的表示;定义车辆的速度矩阵为v′=[v′0,v′1,v′2,v′3],速度矩阵表示的是车辆期望以多大的速度尽快离开路口;其中v′0,v′1,v′2,v′3为每条车道车辆速度表示,速度矩阵的每一个元素表示的是vmn=maxspeed-vehiclespeed,vehiclespeed表示车辆到达十字路口当前的速度,maxspeed表示车辆允许通行的最大速度;
action要素的定义表示的是车辆能无碰撞安全的通过路口的红绿灯的状态,即如何在不同的状态之间进行切换能保证车辆安全通过路口;action={ns,nsl,we,wel},其中ns表示南北方向直行和右转绿灯,nsl表示南北方向左转绿灯,we表示东西方向直行和右转绿灯,wel表示东西方向左转绿灯;
reward要素的定义是environment从agent中获取到的奖励,表示经过采取一个action要素之后十字路口车辆减少的数目,即rt=β·wt-wt′;其中,rt表示t时刻agent返回来的奖励,β是折扣系数wt表示在t时刻所有在路口等待车辆的总数,wt′表示经过采取一个action要素之后所有在路口等待车辆的总数;
步骤2:依据强化学习算法构建基于空间注意力机制的deepq-network;
所述基于空间注意力机制的deepq-network主干网络是卷积神经网络cnn,依次为卷积层,spatialattention层,卷积层,然后接上两个全连接层,最后是q-values的输出;
步骤3:结合十字路口场景图自动生成车辆仿真数据,包括仿真模拟的时长车辆数目,获得训练数据和测试数据集;
步骤4:准备训练数据300回合和测试数据100回合;
步骤5:根据训练数据,训练基于空间注意力机制的deepq-network,训练完之后保存最后的模型;
步骤6:定义评价指标,根据测试集,对基于空间注意力机制的deepq-network进行测试并评估;
步骤7:采用基于空间注意力机制的deep-q-network对卷积神经网络输出的特征向量进行处理,通过对路口进行建模,来对红绿灯进行切换,切换目的是使车辆在路口等待时间最少,切换所采取的行为action由神经网络预测。
2.根据权利要求1所述的基于强化学习的十字路口交通信号灯控制方法,其特征在于:步骤2中,spatialattention的作用是在一个二维的卷积特征向量上,假设经过第一层卷积之后的特征为m=[m1,m2,...,mn],其中mi∈rw·h,n为第一层卷积神经元个数,mi表示一个宽为w,高为h的高为空间向量,r表示向量空间;那么注意力权重的计算和新的特征向量过程如下:
其中ws∈rc*1,bs∈r1分别表示权重和偏置,c表示神经网络中输出神经元的个数,fm表示最终生成的featuremap向量;σ是sigmoid激活函数,r(·)表示向量的reshape操作,
3.根据权利要求1所述的基于强化学习的十字路口交通信号灯控制方法,其特征在于,步骤5的具体实现包括以下子步骤:
步骤5.1:初始化统计参数r,twt,l,td,分别为平均奖励,平均等待时间,平均等待车辆队列长度,平均旅行时间,并初始化网络参数w,即神经网络中所有待更新的参数;
步骤5.2:设置回合数即训练迭代数episode为0,1,...,n;
步骤5.3:设置时间步step为0,1,...,t;
步骤5.4:获取t时刻路口的状态st,并根据ε贪婪策略选择一个随机的行为at,然后按照当前的行为at进行仿真模拟,仿真执行时长为一个绿灯时间的步长,εh=(1-e/n),e为当前的回合数,n为回合总数;执行at之后得到奖励值rt,environment达到下一个状态st 1;最后存储当前的(st,at,rt,st 1)四元组到memory,memory是一个专门存储四元组的数组;其中,at即t时刻agent所采取的行动,也就是怎么切换红绿灯;
步骤5.5:具体过程包括以下子步骤;
步骤5.5.1:如果当前的行为at的和前一时刻的行为at-1相同那么就执行绿灯轮转,并在绿灯时间结束之前执行:从memory中取出一个批次minibatch大小的数据,并计算当前action从环境返回的q值q(s,a)=r γmaxa(s′,a′,w),γ为折扣系数,r为从环境获得的即时奖励,maxa(s′,a′,w)为表示当前时刻采取行动之后所获得的下一个状态的奖励的最大值,s′,a′表示下一个状态,w表示神经网络的参数;根据q(s,a)训练基于空间注意力机制的deepq-network,其中loss为j=1/m∑(q(s,a)-q(s,a,w))2,然后更新step=step 1,绿灯时间g=g-1;
如果当前的行为at的和前一时刻的行为at-1不相同那么就执行黄灯轮转,并在黄灯时间结束之前执行:从memory中取出一个批次minibatch大小的数据,并计算当前action从环境返回的q值q(s,a)=r γmaxa(s′,a′,w),根据q(s,a)训练模型,其中loss为j=1/m∑(q(s,a)-q(s,a,w))2,q(s,a)为模型预测的q值,q(s,a,w)为存储在memory中的q值,然后更新step=step 1,黄灯时间y=y-1;
步骤5.5.2:更新完黄灯轮转周期之后,接着按步骤5.5.1更新绿灯轮转周期;
步骤5.6:更新统计参数r,twt,l,td;
步骤5.7:回到步骤5.3,直到总训练步长step为t,表示训练完了一个回合,接下来执行步骤5.8;
步骤5.8:回到步骤5.1,直到总训练回合episode为0,表示训练完所有的回合,接下来执行步骤5.9;
步骤5.9:所有训练回合结束后,保存基于空间注意力机制的deepq-network。
4.根据权利要求1所述的基于强化学习的十字路口交通信号灯控制方法,其特征在于:步骤6中,所述评价指标包括平均等待时延,平均等待队列长度和平均到达时间;所述平均等待时延