基于图元学习和深度强化学习的大规模交通灯信号控制方法

未命名 07-18 阅读:121 评论:0


1.本发明属于智能交通控制技术领域,主要涉及了一种基于图元学习和深度强化学习的大规模交通灯信号控制方法。


背景技术:

2.交通信号控制是一个重要而具有挑战性的现实问题,其目的是通过协调车辆在十字路口的运动来最小化车辆的行驶时间。现在城市里所广泛使用的交通信号控制系统都依赖人工设计,这种方法配时效率比较低,不够灵活。深度强化学习这类机器学习算法越来越受到关注,多种深度多智能体强化学习算法不断被提出,以优化给定场景中多个智能体的对抗与合作。深度多智能体强化学习被研究用于智能交通信号控制,这类方法灵活,不需要依赖人工配时。目前用于交通信号控制的深度强化学习模型大多基于dqn框架,比如ig-rl、colight、presslight、frap、mplight。选择合适的状态定义和奖励定义是强化学习用于交通信号控制的重要环节,所选择的状态量要能准确快速地反应交通路网的情况,经常使用的状态值有队列长度、等待时间、交通灯相位等。需要找到能反应智能体学习目标的因素作为奖励函数,奖励函数的设计常常考虑队列长度、等待时间、吞吐量等。动作定义通常考虑选择一个交通灯相位,基于dqn框架的模型会根据对应交通灯相位的各个动作的q值选取动作。为了让智能体充分捕捉路网的结构信息,一些模型采用了图神经网络算法,将路网表示成图结构数据,colight把每个交叉口都用一个节点表示,用gat来考虑邻居交叉口的时空影响。
3.这些技术大多只考虑小规模的交通路网场景,难以用于大规模的场景,colight可以用于196个交通灯的场景,但未考虑一千以上交通灯的场景,在大规模的多交叉口环境中,交叉口数量庞大,路网复杂,难以训练,智能体更加难以学会合作交流,学习效率大大降低。mplight考虑了一千个以上交通灯的场景,但是没有考虑将小规模路网训练的模型转移到大规模路网上训练来提高训练效率,减小训练难度。此外,运用图神经网络的模型都把交通路网作为整图来处理,在大规模的场景下,在整图上直接采用图神经网络不能让智能体充分捕捉复杂大路网的结构信息。


技术实现要素:

4.本发明正是针对现有技术中深度强化学习模型难以用于大规模交通路网场景的问题,提供一种基于图元学习和深度强化学习的大规模交通灯信号控制方法,考虑使用交通灯的相位和进入车道的队列长度作为状态值,交通灯的相位作为输出值,将交通路网建模成图结构数据,每个交通灯都为一个节点,并对该路网中每个节点提取多跳邻居节点形成以该节点为中心的子图,再使用基于局部子图的图元学习方法进行深度强化学习训练,使智能体能够根据路网实时状况,进行智能信号控制;本发明适用于一千个以上交通灯的大规模场景,利用基于局部子图的图元学习的优势,将小规模路网中训练的模型迁移至大规模交通灯的场景,减小了大规模路网的训练难度,提高了训练效率。
5.为了实现上述目的,本发明采取的技术方案是:基于图元学习和深度强化学习的大规模交通灯信号控制方法,包括如下步骤:
6.s1:分别对小规模交通路网和大规模交通路网构建图结构数据g=(v,e),v表示节点集合,e表示边集合;对两种交通路网图结构数据中的每个节点提取第1跳到第l跳的邻居节点,形成以该节点为中心的子图;
7.s2:设置超参数,搭建双深度q网络,所述双深度q网络由l层graphsage层和一层全连接层构成;
8.s3:定义离散控制器对应交通灯底层的控制信号,控制器的动作指令对应交通灯的相位,设计状态值,设计奖励函数;
9.s4:使用基于局部子图的图元学习方法在小规模交通路网上进行深度强化学习训练,得到训练后的模型;
10.s5:将步骤s4中在小规模交通路网上训练的模型转移到大规模交通路网上,继续用基于局部子图的图元学习方法进行深度强化学习训练,实现交通信号灯的控制。
11.作为本发明的一种改进,所述步骤s1中的节点为交通路网中的交通灯,若两个交通灯有道路连接,则在图结构数据中对应这两个交通灯的节点之间有无向边连接;以每个节点i为中心节点n
center(i)
提取第1跳到第l跳邻居节点,形成以该节点为中心的子图ui=(vi,ei),同时获得该中心节点在所在子图节点集合ui中的索引indexi。
12.作为本发明的一种改进,所述步骤s2的双深度q网络中,初始化内环参数θ
inner
,内环目标参数外环参数θ
meta
和外环目标参数置时间步数t
step
为0,初始化ε-greedy算法中ε值,初始化经验回放池d,设置经验回放池上限d
max

13.作为本发明的一种改进,所述步骤s3的状态值设置为该智能体所控制的交通灯的相位和该交通灯路口进入车道的队列长度;奖励函数设置为交通灯路口所有进入车道的队列长度之和的相反数,即其中ri表示智能体i的奖励,是交叉口i进入车道的集合,q(l)表示车道l的队列长度。
14.作为本发明的另一种改进,所述步骤s4具体包括:
15.s41:路网中每个交叉口都由一个智能体控制,每个智能体是参数共享的,收集小规模路网的交通数据,对交通数据进行处理,生成交通路网中各个交通灯的状态值s={s1,s2,

,si,

},其中表示智能体i也即i节点的状态值,e是节点状态值的特征维数;根据小规模路网子图集合{u1,u2,

,uk,

},得到输入节点集合{u1,u2,

,uk,

}以及对应的状态集合其中uk表示第k个子图的节点集合对每个子图uk,累加计算出前k-1个子图{u1,u2,

,u
k-1
}的节点数之和sumk=n1+n2+

+n
k-1
,其中ni表示子图ui的节点数之和,接着把该子图的中心节点n
center(k)
∈uk在所在子图节点集合uk中的索引indexk加上sumk,得到该中心节点在所有输入节点集合{u1,u2,

,uk,

}中的索引将子图状态值和子图集合{u1,u2,

,uk,

}输入双深度q网络,经过l层graphsage层前向传播得到所有输入节点的变换后特征层前向传播得到所有输入节点的变换后特征其中一层graphsage的前向传播表达式如下:
[0016][0017][0018]
其中mean表示平均聚合操作,表示i节点在子图uk上第l+1次变换后的特征,表示i节点在子图uk上第l+1次变换前的特征,nk(i)表示i节点在子图uk上的邻居节点的集合,表示i节点在子图uk上对邻居节点第l次变换后的特征信息的聚合,σ表示relu激活函数,和是要学习的权重矩阵和偏置向量,c是隐藏层神经元数,concat表示拼接操作;然后再根据索引得到对应中心节点n
center(k)
变换后的特征featurek;最后将特征featurek经过一层全连接层前向传播得到各动作的q值qk,该步骤中得到q值的过程使用的神经网络参数都是内环参数,表达式如下:
[0019][0020]
其中,和是要学习的权重矩阵和偏置向量,v是交通灯相位的个数,利用ε-greedy算法得到所有交通灯的动作,交通灯根据这些动作进行行动选择相应的相位,交通路网进入到一个新的状态并返回奖励,将上一时间步的状态、动作、新的状态、奖励存入经验回放池d,ai是i节点的动作,ri是i节点的奖励,d达到上限d
max
则删除早期经验,减少ε的值,t
step
加1;当t
step
没有到达内环训练步数频次也没有到达外环训练步数频次时,返回步骤s41开始;当t
step
到达内环训练步数频次时,进入步骤s42;当t
step
到达外环训练步数频次时,进入步骤s43;当t
step
既到达内环训练步数频次又到达外环训练步数频次时,先执行步骤s42,再执行步骤s43;当t
step
到达测试步数频次时,执行步骤s44;
[0021]
s42:内环训练更新的是内环参数θ
inner
和内环目标参数从d中抽取训练数据根据double dqn公式进行神经网络的更新,更新公式如下:
[0022][0023][0024][0025]
其中,t是这次更新中所含训练数据的总的时间步,w
t
是本次更新所用训练数据中t时间步的节点集合,是目标值,是目标值,是k节点在t时间步的状态值,是相对下一个时间步的状态,是i节点在t时间步的动作,r
it
是i节点在t时间步的回报,γ是折扣,α是内环训练学习率,β为标准化系数,表示损失函数,表示损失函数的梯度,返回步骤s41;
[0026]
s43:外环训练更新的是外环参数θ
meta
和外环目标参数从d中抽取训练数
据,采用步骤s42中的更新方法进行外环参数更新,更新公式中θ
inner
都换成θ
meta
并且最后一步换成其中λ是外环训练学习率;外环目标网络参数使用z次更新前的外环估值网络参数θ
meta
,如果更新不足z次的,使用初始外环估值网络参数,z为外环目标网络更新频数;当外环网络更新后内环参数θ
inner
被替换为最新的外环参数θ
meta
,内环目标网络参数也被替换为最新的外环目标网络参数并且在下一次外环更新前的内环更新都不改变内环目标网络参数,返回步骤s41;
[0027]
s44:内环参数θ
inner
初始化为最新的元学习参数θ
meta
,内环目标网络参数也被替换为最新的外环目标网络参数测试阶段也会进行训练,但只会进行内环训练,不会进行外环训练,智能体根据q值贪婪地选择动作,不会存经验到d,其他部分和步骤s41一样,到达大规模路网训练时间后进入步骤s5。
[0028]
作为本发明的一种改进,所述步骤s5的深度强化学习训练中,置t
step
为0,初始化ε-greedy算法中ε值,初始化d,设置d
max
,将步骤s4训练得到的外环参数θ
meta
作为初始外环参数和初始内环参数,外环目标参数作为初始外环目标参数和初始内环目标参数。
[0029]
与现有技术相比,本发明具有的有益效果:
[0030]
(1)将交通路网构建成图结构数据,用图神经网络graphsage层进行图信息的处理,获取路网中不同交叉口的连接位置关系,一个交叉口节点聚合邻居交叉口节点的信息,加快多交叉口场景下智能体之间的交流合作学习,加快训练。
[0031]
(2)对该路网中每个节点提取第1跳到第l跳邻居节点形成以该节点为中心的子图,图神经网络处理的不是整图,而是子图,减小了图输入规模,提高迁移到大规模路网上的性能。
[0032]
(3)本发明的网络训练分为内环训练和外环训练,可以让网络训练得更好,在迁移到新场景下能训练得更快。在小规模路网上训练的模型迁移到大规模路网上继续训练,利用使用局部子图的图元学习算法的特点,减小了大规模路网的训练难度,提高了训练效率。
附图说明
[0033]
图1是本发明方法的算法框图;
[0034]
图2是本发明方法的步骤流程图;
[0035]
图3是本发明实施例2中实施环境交叉口的示例图;
[0036]
图4是本发明实施例2中八个交通移动信号的示例图;
[0037]
图5是本发明实施例2中交通相位的示例图;
[0038]
图6-9是本发明实施例2中仿真结果图;
具体实施方式
[0039]
下面结合附图和具体实施方式,进一步阐明本发明,应理解下述具体实施方式仅用于说明本发明而不用于限制本发明的范围。
[0040]
实施例1
[0041]
本发明提供了一种基于图元学习和深度强化学习的大规模交通灯信号控制方法,总体算法网络结构和流程图如图1和图2所示。
[0042]
cityflow是一个针对城市大规模交通场景的多智能体强化学习环境,它能灵活地提供各种路网场景与交通流设置。本实施例中利用cityflow环境进行仿真验证。场景有真实4
×
4杭州路网场景、真实28
×
7纽约路网场景、模拟25
×
40大规模路网场景,其中杭州和纽约场景都各采用两种不同的真实交通流数据。
[0043]
仿真验证有两个环节,第一个环节是直接在每个场景的每种交通流情况下进行训练,第二个环节是将在小规模路网杭州场景训练好的模型迁移至25
×
40大规模路网训练。本发明设置的强化学习智能体状态为交通灯的相位和交通灯进入车道的队列长度,奖励设置为所控制的交通灯的所有进入车道的队列长度之和的相反数,交互时cityflow会把实时的状态数据传给智能体,智能体将决策产生动作传给cityflow,cityflow将会给每个交叉口红绿灯一个相位并执行10s,10s过后将有5s的红灯,红灯过后,报酬和新的实时状态数据被传给智能体,智能体再进行决策产生动作。本实施例仿真实验使用的cityflow场景中的车辆可以直行、左转和右转,直行和左转受红绿灯控制,右转不受红绿灯控制,右转车辆到了交叉路口就可右转。进入路网的车辆会按照预先设定好的速度和路线行进直到驶离路网。一个时间步对应15s时间。
[0044]
每个交叉口都有24个车道与它连接,12个进入车道与12个出去车道,如图3所示,标数字的是12个进入车道。这12个进入车道每3个为一组,一组中3个车道分别代表了左转、直行和右转,进入这个交叉口的车必须选择相应的车道来进行转弯或直行。
[0045]
在虚拟25
×
40大规模路网场景中,每个车道的长度是300米,宽度是4米,车辆的相关参数设置如下表所示:
[0046][0047][0048]
车辆预先的轨迹包括一路向北、南、西、东直行,还包括直行接左转接直行接右转循环行进直至抵达终点以及直行接右转接直行接左转循环行进直至抵达终点。一路直行轨迹的车辆进入路网频次为19500辆每300秒,其他轨迹的车辆进入路网频次为1200辆每300秒。
[0049]
真实杭州和纽约场景的路网和交通流数据来自公开数据集[https://trafficsignal-control.github.io]。所有仿真实验都用随机种子进行了五次,结果取五次的平均值。
[0050]
车辆的通行时间定义为离开路网和进入路网的时间差。平均通行时间定义为所有已离开路网的车辆的通行时间的平均值。本发明的目标是通过控制交通灯相位,减少路网
交通拥堵,提高强化学习报酬,最小化路网平均通行时间。
[0051]
基于上述目标,本发明的具体步骤如下,如图2所示:
[0052]
步骤s1:对小规模路网和大规模路网构建图结构g=(v,e),v表示节点集合,e表示边集合,其中把交通路网中的每个交通灯作为图结构的一个节点,再根据交通路网的结构定义图结构的边:如果在交通路网中两个交通灯有道路连接,那么在图结构中对应这两个交通灯的节点之间就有无向边连接;图结构数据构建好之后,以每个节点i为中心节点n
center(i)
提取第1跳到第l跳邻居节点,形成以该节点为中心的子图ui=(vi,ei),同时获得该中心节点在所在子图节点集合ui中的索引indexi。
[0053]
步骤s2:设置超参数,搭建双深度q网络,网络由l层graphsage层和一层全连接层构成,它的输入是步骤s1中构建的子图和所有这些子图中输入节点的状态,输出是对应步骤s3中所述每个动作的q值,网络结构在图1中体现,初始化内环参数θ
inner
,内环目标参数外环参数θ
meta
,外环目标参数将θ
inner
、和的初始值都置为θ
meta
的初始值,置时间步数t
step
为0,一个时间步表示所有智能体动作一次,初始化ε-greedy算法中ε值,初始化经验回放池d,设置经验回放池上限d
max
,初始化一幕经验回放池d’,d’只保存当幕的经验,设置d’上限d’max
,初始化训练幕数epi为0,设置幕数上限epi
max

[0054]
步骤s3:深度强化学习离散控制器定义了对应交通灯相位的动作指令,每个动作对应交通灯的一个相位,交通灯会根据控制器发出的动作指令选择相应的相位;强化学习智能体的状态设置为该智能体所控制的交通灯的相位和该交通灯路口进入车道的队列长度;强化学习智能体的奖励设置为该智能体所控制的交通灯路口所有进入车道的队列长度之和的相反数即其中ri表示智能体i的奖励,是交叉口i进入车道的集合,q(l)表示车道l的队列长度。
[0055]
步骤s4:定义一幕为3600s,置此刻时间t为0s,初始化交通环境,路网中每个交叉口都由一个智能体控制,每个智能体是参数共享的,使用基于局部子图的图元学习方法在小规模路网上进行深度强化学习训练时,具体包括以下几个步骤:
[0056]
步骤s41:收集该小规模路网的交通数据,对交通数据进行处理,生成交通路网中各个交通灯的状态值s={s1,s2,

,si,

},其中表示智能体i也即i节点的状态值,e是节点状态值的特征维数;根据步骤1生成的小规模路网子图集合{u1,u2,

,uk,

},得到输入节点集合{u1,u2,

,uk,

}以及对应的状态集合其中uk表示第k个子图的节点集合,k个子图的节点集合,对每个子图uk,累加计算出前k一1个子图{u1,u2,

,u
k-1
}的节点数之和sumk=n1+n2+

+n
k-1
,其中ni表示子图ui的节点数之和,接着把该子图的中心节点n
center(k)
∈uk在所在子图节点集合uk中的索引indexk加上sumk,得到该中心节点在所有输入节点集合{u1,u2,

,uk,

}中的索引}中的索引神经网络接收到子图状态值后,经过步骤s2中的l层graphsage层前向传播得到所有输入节点的变换后特征得到所有输入节点的变换后特征其中一层graphsage的前向传播表达式如下:
[0057]
[0058][0059]
其中mean表示平均聚合操作,表示i节点在子图uk上第l+1次变换后的特征,表示i节点在子图uk上第l+1次变换前的特征,nk(i)表示i节点在子图uk上的邻居节点的集合,表示i节点在子图uk上对邻居节点第l次变换后的特征信息的聚合,σ表示relu激活函数,和是要学习的权重矩阵和偏置向量,c是隐藏层神经元数,concat表示拼接操作;然后再根据索引得到对应中心节点n
center(k)
变换后的特征featurek;最后将特征featurek经过一层全连接层前向传播得到对应步骤s3中所述各动作的q值qk,该步骤中得到q值的过程使用的神经网络参数都是内环参数,表达式如下:
[0060][0061]
其中,和是要学习的权重矩阵和偏置向量,v是交通灯相位的个数,最后根据得到的q值利用ε-greedy算法得到所有交通灯的动作,交通灯根据这些动作进行行动选择相应的相位,前述智能体与环境互动的过程在图1中体现,交通路网进入到一个新的状态并返回奖励,将上一时间步的状态、动作、新的状态、奖励存入经验回放池d和d

,ai是i节点的动作,ri是i节点的奖励,d达到上限d
max
则删除一些早期的经验;t
step
加1;t增加15;当t
step
没有到达内环训练步数频次也没有到达外环训练步数频次时,返回该步骤开始;当t
step
到达内环训练步数频次时,进入步骤s42;当t
step
到达外环训练步数频次时,进入步骤s43;当t
step
既到达内环训练步数频次又到达外环训练步数频次时,先执行步骤s42,再执行步骤s43;当t到达3600s时,置t为0s,置t
step
为0,初始化交通环境,清空d’,将最新的外环参数θ
meta
替换θ
inner
,外环目标参数替换减少ε的值,进入步骤s44。
[0062]
步骤s42:内环训练更新的是内环参数θ
inner
和内环目标参数在小规模路网上,使用d’里所有样本作为训练数据,对前述训练数据随机分组,对每组数据采用步骤s2中的神经网络得到中心节点的对应步骤s3中所述动作的q值,然后根据double dqn公式进行神经网络的更新,更新公式如下:
[0063][0064][0065][0066]
其中t是这次更新中所含训练数据的总的时间步,w
t
是本次更新所用训练数据中t时间步的节点集合,是目标值,是目标值,是k节点在t时间步的状态值,是相对下一个时间步的状态,是i节点在t时间步的动作,r
it
是i节点在t时间步的回报,γ是折扣,α是内环训练学习率,β为标准化系数,γ,α,β是预先给定的,表示
损失函数,表示损失函数的梯度。返回步骤s41;内环训练的过程在图1中体现。
[0067]
步骤s43:外环训练更新的是外环参数θ
meta
和外环目标参数外环参数也就是元学习参数,在小规模路网上,从d中抽取训练数据d1,使用训练数据{d1∪d’}采用步骤s42中的更新方法进行外环参数更新,也是对前述训练数据随机分组训练,更新公式中θ
inner
都换成θ
meta
并且最后一步换成并且最后一步换成其中λ是外环训练学习率;外环目标网络参数使用z次更新前的外环估值网络参数θ
meta
,如果更新不足z次的,使用初始外环估值网络参数,z为外环目标网络更新频数;当外环网络更新后内环参数θ
inner
被替换为最新的外环参数θ
meta
,内环目标网络参数也被替换为最新的外环目标网络参数并且在下一次外环更新前的内环更新都不改变内环目标网络参数;返回步骤s41;外环训练的过程在图1中体现。
[0068]
步骤s44:测试时采用内环参数,测试阶段也会进行训练,但只会进行内环训练,不会进行外环训练,智能体根据q值贪婪地选择动作,不会存经验到d,d’,其他部分和步骤s41一样,此外,当t到达3600s时,保存该次测试得到的交叉口奖励的平均值和路网平均通行时间,置t为0s,置t
step
为0,初始化交通环境,清空d’,将最新的外环参数θ
meta
替换θ
inner
,外环目标参数替换epi加1,若epi达到epi
max
,则进入步骤s5;否则进入步骤s41。
[0069]
步骤s5:将步骤s4中在小规模路网上训练的模型转移到大规模路网上继续用基于局部子图的图元学习方法进行深度强化学习训练,置t
step
为0,初始化ε-greedy算法中ε值,置t为0s,初始化d,d’,设置经验回放池上限d
max
,d’max
,初始化训练幕数epi为0,设置幕数上限epi
max
,将步骤s4训练得到的外环参数θ
meta
作为初始外环参数和初始内环参数,外环目标参数作为初始外环目标参数和初始内环目标参数进行深度强化学习训练,训练过程和步骤s4一样,但是使用的子图为步骤1得到的大规模路网各节点子图,此外,当有数据存入d’时,若d’达到上限d’max
,则删除早期经验。
[0070]
将步骤s5中训练得到的模型用于cityflow中大规模路网场景的交通灯控制,实现交通灯的控制指挥。
[0071]
实施例2
[0072]
(1)对4
×
4路网、28
×
7路网、25
×
40路网使用图神经网络模型python包dgl构建图结构数据g=(v,e),把交通路网中的每个交通灯作为图结构的一个节点,再根据交通路网的结构定义图结构的边,如果在交通路网中两个交通灯有道路连接,那么在图结构中对应这两个交通灯的节点之间就有无向边连接;图结构数据构建好之后,以每个节点i为中心节点n
center(i)
提取第1跳和第2跳邻居节点,形成以该节点为中心的子图ui=(vi,ei),同时获得该中心节点在所在子图节点集合ui中的索引indexi。
[0073]
(2)设置超参数,小规模路网中内环训练epoch为5,外环训练epoch为30,大规模路网中内环训练epoch为2,外环训练epoch为10,内环训练间隔时间步数为20,外环训练间隔时间步数为60,隐藏层神经元数为64,α,λ都为0.001,公式(4)中β为20,目标网络替换频数z为5,γ为0.8,ε初始化为0.8,在收集训练数据时每经过一幕e减少5%,ε最小值为0.2,设置经验回放池上限d
max
为3000,设置幕数上限epi
max
为80,搭建由两层graphsage层和一层全连接层构成的神经网络,初始化元学习参数θ
meta
,graphsage层的权重初始值服从xavier初始
化均匀分布,全连接层的权重初始值服从kaiming初始化分布,偏置初始值为0,内环参数θ
inner
,内环目标参数外环目标参数也用前述规则初始化,将θ
inner
、和的初始值都置为θ
meta
的初始值,置时间步数t
step
为0,初始化经验回放池d,初始化一幕经验回放池d’,d和d’中的1容量涵盖了那个时间步t路网所有节点的经验初始化训练幕数epi为0。
[0074]
(3)定义深度强化学习控制器的四个动作指令,分别对应交通灯的四个相位,交通灯的四个相位为南北直行、东西直行、南北左转、东西左转,交通灯会根据控制器发出的动作指令选择相应的相位。强化学习智能体的状态设置为该智能体所控制的交通灯的相位和该交通灯路口进入车道的队列长度;强化学习智能体的奖励设置为该智能体所控制的交通灯路口所有进入车道的队列长度之和的相反数。
[0075]
(4)使用cityflow交通模拟器,使用4
×
4路网或28
×
7路网地图,每一幕时间为3600s,置此刻时间t为0s,初始化cityflow环境。路网中每个交叉口都由一个智能体控制,每个智能体是参数共享的。
[0076]
(5)智能体与交通模拟器cityflow交互,接收cityflow传来的交通数据,对交通数据进行处理,生成交通路网中各个交通灯的状态值state,state是20维向量《m1,

,m8,q1,

,q
12
》,其中m表示八个交通移动信号,如图4所示,q表示的是进入车道的队列长度,12个进入车道如图3所示,采取步骤s41得到(3)中所述四个动作的q值,再根据q值利用ε-greedy算法得到所有交通灯的动作,将这些动作输入给交通模拟器cityflow,cityflow根据这些动作进行行动,交通路网会进入到一个新的状态并返回奖励,将所有节点的上一时间步的状态、动作、新的状态、奖励存入经验回放池d和d

,ai是i节点的动作,ri是i节点的奖励,d达到上限3000会删除一些早期的经验;t
step
加1;t增加15s;当t
step
没有到达内环训练步数间隔20也没有到达外环训练步数间隔60时,返回该步骤开始;当t
step
到达内环训练步数间隔20时,进入(6);当t
step
到达外环训练步数间隔60时,进入(7);当t
step
既到达内环训练步数步数间隔20又到达外环训练步数间隔60时,先执行(6),再执行(7);当t到达3600s时,置t为0s,置t
step
为0,初始化cityflow环境,清空d’,将最新的外环参数θ
meta
替换θ
inner
,外环目标参数替换ε减少5%,但不小于0.2,进入(8)。
[0077]
(6)内环训练更新的是内环参数θ
inner
和内环目标参数使用d’里所有样本作为训练数据,对前述训练数据随机分组,对每组数据根据(4)、(5)、(6)公式进行训练,训练epoch为5,返回(5)。
[0078]
(7)外环训练更新的是外环参数θ
meta
和外环目标参数外环参数也就是元学习参数,从d中抽取训练数据d1,d1容量为240,使用训练数据{d1∪d’},随机分组对每组数据根据(4)、(5)、(6)公式进行训练,更新公式中θ
inner
都换成θ
meta
并且最后一步换成训练epoch为30;外环目标网络参数使用5次更新前的外环估值网络参数θ
meta
,如果更新不足5次的,使用初始外环估值网络参数;当外环网络更新后内环参数θ
inner
被替换为最新的外环参数θ
meta
,内环目标网络参数也被替换为最新的外环目标网络参数并且在下一次外环更新前的内环更新都不改变内环目标网络参数;返回(5)。
[0079]
(8)测试时采用内环参数,测试阶段也会进行训练,但只会进行内环训练,不会进行外环训练,智能体根据q值贪婪地选择动作,不会存经验到d,d’,其他部分和(5)一样,此外,当t到达3600s时,保存该次测试得到的交叉口奖励的平均值和路网平均通行时间,置t为0s,置t
step
为0,初始化cityflow环境,清空d’,将最新的外环参数θ
meta
替换θ
inner
,外环目标参数替换epi加1,若epi达到80,则进入(9);否则进入(5)。
[0080]
(9)进行结果比较。作为比较的方法有fixedtime:交通灯执行预先设定的包含相位序列和持续时间的控制方案;colight:使用gat来获取邻接交叉口的时间和空间的影响的深度强化学习方法;ql-dqn:把队列长度和当前相位作为状态,把队列长度作为奖励。每一个交叉口由一个智能体控制,智能体之间是参数共享的,一个智能体不能观察邻居智能体的信息;gcn:与ql-dqn相比,神经网络架构替换为两层gcn和一层全连接层,gcn会提取相邻路口的信息,其他设置比如参数共享与ql-dqn相同;graphsage:与ql-dqn相比,神经网络架构被替换为两层graphsage和一层全连接层。graphsage层中的聚合器类型是取平均,其他设置与ql-dqn相同;gmslight是我们的发明。fixedtime采用的是八相位设置,其他都采用的是四相位设置如图5。纵坐标reward表示交叉口奖励的平均值。纵坐标travel time表示平均通行时间。曲线的横坐标episode表示幕,我们让两个幕之间不同算法训练所使用的数据量d
episode
基本相同。d
episode
指的是集合的数目。在4
×
4路网上两幕之后,gmslight的d
episode
是7680,其他方法d
episode
是8000。在28
×
7路网上一幕之后,ql-dqn的d
episode
是80000,其他方法的d
episode
是94080。在25
×
40路网上一幕之后,所有方法的d
episode
都是300000。图6和图7是在两个杭州交通流数据集上的结果,和其他方法相比,gmslight取得了最高的奖励和最低的平均通行时间。图6显示了gmslight在10幕之后比colight学的更快,在42幕之后gmslight非常稳定。图8是在两个纽约交通流数据集上的结果。进入(10)。
[0081]
(10)将前述在4
×
4路网上训练得到的元学习参数θ
meta
作为初始外环参数和初始内环参数,外环目标参数作为初始外环目标参数和初始内环目标参数在25
×
40路网上进行深度强化学习训练,置t
step
为0,初始化ε-greedy算法中ε值为0.8,置t为0s,初始化d,d’,设置经验回放池上限d
max
为2000,d’max
为150,当有数据存入d’时,若d’达到上限d’max
,则删除早期经验,初始化训练幕数epi为0,epi
max
改为15,外环训练时从d中抽取训练数据d1,d1容量改为150,使用的子图为步骤(1)得到的25
×
40路网各节点子图,其他部分与(5)中进行的深度强化学习一样。若epi达到15,则进行结果比较。转移训练的结果如图9所示,跟其他算法相比,gmslight获得了最好的效果,并且经过一开始的少量训练就取得很好效果,不同算法在相同横坐标间隔使用的数据量大致相同,gmslight学习效率更高。
[0082]
(11)将(10)中训练得到的模型用于cityflow中大规模路网场景的交通灯控制。
[0083]
需要说明的是,以上内容仅仅说明了本发明的技术思想,不能以此限定本发明的保护范围,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰均落入本发明权利要求书的保护范围之内。

技术特征:
1.基于图元学习和深度强化学习的大规模交通灯信号控制方法,其特征在于,包括如下步骤:s1:分别对小规模交通路网和大规模交通路网构建图结构数据g=(v,e),v表示节点集合,e表示边集合;对两种交通路网图结构数据中的每个节点提取第1跳到第l跳的邻居节点,形成以该节点为中心的子图;s2:设置超参数,搭建双深度q网络,所述双深度q网络由l层graphsage层和一层全连接层构成;s3:定义离散控制器对应交通灯底层的控制信号,控制器的动作指令对应交通灯的相位,设计状态值,设计奖励函数;s4:使用基于局部子图的图元学习方法在小规模交通路网上进行深度强化学习训练,得到训练后的模型;s5:将步骤s4中在小规模交通路网上训练的模型转移到大规模交通路网上,继续用基于局部子图的图元学习方法进行深度强化学习训练,实现交通信号灯的控制。2.如权利要求1所述的基于图元学习和深度强化学习的大规模交通灯信号控制方法,其特征在于:所述步骤s1中的节点为交通路网中的交通灯,若两个交通灯有道路连接,则在图结构数据中对应这两个交通灯的节点之间有无向边连接;以每个节点i为中心节点n
center(i)
提取第1跳到第l跳邻居节点,形成以该节点为中心的子图u
i
=(v
i
,e
i
),同时获得该中心节点在所在子图节点集合u
i
中的索引index
i
。3.如权利要求2所述的基于图元学习和深度强化学习的大规模交通灯信号控制方法,其特征在于:所述步骤s2的双深度q网络中,初始化内环参数θ
inner
,内环目标参数外环参数θ
meta
和外环目标参数置时间步数t
step
为0,初始化ε-greedy算法中ε值,初始化经验回放池d,设置经验回放池上限d
max
。4.如权利要求3所述的基于图元学习和深度强化学习的大规模交通灯信号控制方法,其特征在于:所述步骤s3的状态值设置为该智能体所控制的交通灯的相位和该交通灯路口进入车道的队列长度;奖励函数设置为交通灯路口所有进入车道的队列长度之和的相反数,即其中r
i
表示智能体i的奖励,是交叉口i进入车道的集合,q(l)表示车道l的队列长度。5.如权利要求4所述的基于图元学习和深度强化学习的大规模交通灯信号控制方法,其特征在于:所述步骤s4具体包括:s41:路网中每个交叉口都由一个智能体控制,每个智能体是参数共享的,收集小规模路网的交通数据,对交通数据进行处理,生成交通路网中各个交通灯的状态值s={s1,s2,

,s
i
,

},其中表示智能体i也即i节点的状态值,e是节点状态值的特征维数;根据小规模路网子图集合{u1,u2,

,u
k
,

},得到输入节点集合{u1,u2,

,u
k
,

}以及对应的状态集合其中u
k
表示第k个子图的节点集合对每个子图u
k
,累加计算出前k-1个子图{u1,u2,

,u
k-1
}的节点数之和sum
k
=n1+n2+

+n
k-1
,其中n
i
表示子图u
i
的节点数之和,接着把该子图的中心节点n
center(k)
∈u
k
在所在子图节点集合u
k
中的索引index
k
加上sum
k
,得到该中心节点在所有输入
节点集合{u1,u2,

,u
k
,

}中的索引将子图状态值和子图集合{u1,u2,

,u
k
,

}输入双深度q网络,经过l层graphsage层前向传播得到所有输入节点的变换后特征层前向传播得到所有输入节点的变换后特征其中一层graphsage的前向传播表达式如下:其中一层graphsage的前向传播表达式如下:其中mean表示平均聚合操作,表示i节点在子图u
k
上第l+1次变换后的特征,表示i节点在子图u
k
上第l+1次变换前的特征,n
k
(i)表示i节点在子图u
k
上的邻居节点的集合,表示i节点在子图u
k
上对邻居节点第l次变换后的特征信息的聚合,σ表示relu激活函数,和是要学习的权重矩阵和偏置向量,c是隐藏层神经元数,concat表示拼接操作;然后再根据索引得到对应中心节点n
center(k)
变换后的特征feature
k
;最后将特征feature
k
经过一层全连接层前向传播得到各动作的q值q
k
,该步骤中得到q值的过程使用的神经网络参数都是内环参数,表达式如下:其中,和是要学习的权重矩阵和偏置向量,v是交通灯相位的个数,利用ε-greedy算法得到所有交通灯的动作,交通灯根据这些动作进行行动选择相应的相位,交通路网进入到一个新的状态并返回奖励,将上一时间步的状态、动作、新的状态、奖励存入经验回放池d,a
i
是i节点的动作,r
i
是i节点的奖励,d达到上限d
max
则删除早期经验,减少ε的值,t
step
加1;当t
step
没有到达内环训练步数频次也没有到达外环训练步数频次时,返回步骤s41开始;当t
step
到达内环训练步数频次时,进入步骤s42;当t
step
到达外环训练步数频次时,进入步骤s43;当t
step
既到达内环训练步数频次又到达外环训练步数频次时,先执行步骤s42,再执行步骤s43;当t
step
到达测试步数频次时,执行步骤s44;s42:内环训练更新的是内环参数θ
in ner
和内环目标参数从d中抽取训练数据根据double dqn公式进行神经网络的更新,更新公式如下:dqn公式进行神经网络的更新,更新公式如下:dqn公式进行神经网络的更新,更新公式如下:
其中,t是这次更新中所含训练数据的总的时间步,w
t
是本次更新所用训练数据中t时间步的节点集合,是目标值,是目标值,是k节点在t时间步的状态值,是相对下一个时间步的状态,是i节点在t时间步的动作,r
it
是i节点在t时间步的回报,γ是折扣,α是内环训练学习率,β为标准化系数,表示损失函数,表示损失函数的梯度,返回步骤s41;s43:外环训练更新的是外环参数θ
met a
和外环目标参数从d中抽取训练数据,采用步骤s42中的更新方法进行外环参数更新,更新公式中θ
inner
都换成θ
met a
并且最后一步换成其中λ是外环训练学习率;外环目标网络参数使用z次更新前的外环估值网络参数θ
met a
,如果更新不足z次的,使用初始外环估值网络参数,z为外环目标网络更新频数;当外环网络更新后内环参数θ
in ner
被替换为最新的外环参数θ
met a
,内环目标网络参数也被替换为最新的外环目标网络参数并且在下一次外环更新前的内环更新都不改变内环目标网络参数,返回步骤s41;s44:内环参数θ
in ner
初始化为最新的元学习参数θ
met a
,内环目标网络参数也被替换为最新的外环目标网络参数测试阶段也会进行训练,但只会进行内环训练,不会进行外环训练,智能体根据q值贪婪地选择动作,不会存经验到d,其他部分和步骤s41一样,到达大规模路网训练时间后进入步骤s5。6.如权利要求5所述的基于图元学习和深度强化学习的大规模交通灯信号控制方法,其特征在于:所述步骤s5的深度强化学习训练中,置t
step
为0,初始化ε-greedy算法中ε值,初始化d,设置d
max
,将步骤s4训练得到的外环参数θ
met a
作为初始外环参数和初始内环参数,外环目标参数作为初始外环目标参数和初始内环目标参数。

技术总结
本发明公开了一种基于图元学习和深度强化学习的大规模交通灯信号控制方法,使用交通灯的相位和进入车道的队列长度作为状态值,交通灯的相位作为输出值,将交通路网建模成图结构数据,每个交通灯都为一个节点,并对该路网中每个节点提取多跳邻居节点形成以该节点为中心的子图,再使用基于局部子图的图元学习方法进行深度强化学习训练,使智能体能够根据路网实时状况,进行智能信号控制;本发明适用于一千个以上交通灯的大规模场景,利用基于局部子图的图元学习的优势,将小规模路网中训练的模型迁移至大规模交通灯的场景,减小了大规模路网的训练难度,提高了训练效率。提高了训练效率。提高了训练效率。


技术研发人员:张亚 周志成 张辉
受保护的技术使用者:东南大学
技术研发日:2023.02.20
技术公布日:2023/5/18
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐