> 这是arxiv上最新发表的一篇前沿交叉综述报告。主要讨论了如何使用深度强化学习方法解决智能交通系统问题,特别是智能信号灯控制问题。将分4次发布本综述报告的翻译,仅供大家参考学习。 ####系列预告<br> [● 深度强化学习智能交通 (I) :深度强化学习概述](#1)<br> [● 深度强化学习智能交通 (II) :交通信号灯控制表示为 Deep RL 问题](#2)<br> [● 深度强化学习智能交通 (III) :Deep RL 在交通信号灯控制中的应用](#3)<br> [● 深度强化学习智能交通 (IV) :自动驾驶、能源管理与道路控制](#4)<br> <div id="1"></div> # 深度强化学习智能交通 (I) :深度强化学习概述<br> ##**0 介绍**<br><br> 随着城市化进程的加快和自动技术的最新发展,交通研究逐渐向智能化方向发展,称为智能交通系统(ITS)。人工智能(AI)试图用最少的人工干预来控制系统。智能交通系统与人工智能的结合为21世纪的交通研究提供了有效的解决方案。ITS 的主要目标是为参与者提供安全、有效和可靠的交通系统。为此,优化交通信号控制(TSC)、自动车辆控制、交通流控制等是研究的重点。<br><br> 未来的交通系统预计将包括完全自动,如自动交通管理和自动驾驶。即使是现在,半自动驾驶汽车也占据了道路,而且在不久的将来,自动水平可能会提高。政府希望在这方面拥有自动权的原因有很多,例如为司机节省时间,为环境节约能源,以及为所有参与者提供安全保障。通过使用自动控制系统,可以更有效地控制协调和连接的交通系统,可以节省出行时间。当车辆在交通上花费更多时间时,油耗会增加,这会对环境和经济产生影响。人类干预被尽量减少的另一个原因是人类行为的不可预测性。预计自动驾驶将减少交通事故,提高交通运输质量。基于上述原因,智能交通系统对自动控制的各个方面都有很高的要求。一种流行的方法是使用基于经验的学习模型,类似于人类的学习。<br><br> 城市地区人口的增长导致了交通量的增加,2018年,平均一个美国司机每年的拥堵代价为 97 小时和1348美元[1]。因此,利用自适应模块控制交通信号灯是智能交通系统(ITS)的一个研究热点。通过交通信号设计一个自适应的交通管理系统是减少交通拥挤的有效途径。优化红绿灯的最佳方法对研究人员来说仍然是一个悬而未决的问题,但是一个有希望的优化 TSC 的方法是使用基于学习的人工智能技术。<br><br> 机器学习的模式主要有三种。有监督学习根据训练中提供的输出标签做出决策。无监督学习基于模式发现,不需要预先知道输出标签。第三种机器学习范式是强化学习(RL),它以马尔可夫决策过程(MDP)为基础,以奖励或惩罚为准则,采取序列化的行动。RL 与深度学习相结合,被称为 deep RL,是目前控制系统中最先进的学习框架。RL 可以解决复杂的控制问题,而深度学习有助于从复杂的数据集中逼近高度非线性函数。<br><br> 近年来,针对不同的应用领域,提出了许多基于深度 RL 的求解方法。基于 RL 的控制机制在交通管理系统和自动驾驶应用中的应用越来越受到人们的关注。综述与 deep RL 相关的所有数据驱动的 ITS 研究,并在一篇论文中讨论这些应用,是为 ITS 研究人员提供关于 deep RL 的信息,以及 deep RL 研究人员提供关于 ITS 的信息。<br><br> 本文综述了针对智能交通系统提出的 deep RL 应用,主要是针对 交通信号灯控制的 deep RL 应用。讨论了不同于文献中的的 RL 方法。基于传统 RL 技术的 TSC 解决方案在 deep RL 发明之前就已经被研究过。因此,对于智能交通系统,传统的 RL 方法对于启发我们提出 deep RL 的方法也至关重要,特别是智能信号灯控制。由于交通断面模型主要是连通的和分布式的,因此多智能体动态控制技术在基于RL的 ITS 应用中起着关键的作用。<br><br> Deep RL 是最成功的人工智能模型之一,也是最接近人类学习模式的机器学习范式。它结合了深层神经网络和强化学习,使得函数逼近更为有效和稳定,特别是对于高维和无限状态问题。本节介绍了传统 RL 的理论背景以及在 ITS 应用中实现的主要深度 RL 算法。<br><br> ##**1 强化学习**<br><br> 强化学习是一种通用的学习工具。在强化学习中,智能体与环境进行交互,在没有任何先验知识的情况下,通过最大化一个数值定义的奖励(或者最小化惩罚)来学习如何在环境中表现。在每一个时间步$t$采取一个行动后, RL 智能体会从环境中得到一个度量其行动效果的反馈。根据这个反馈(奖励或惩罚),智能体迭代地更新其行动策略直到达到最优控制策略。<br><br> RL 从环境的经验中学习,利用的是一种与人类学习类似的不断试错反复尝试(trial-and-error)的学习模式[11]。RL 中基本的探索利用权衡在新的行动和已有行动之间建立平衡。从计算的视角,RL 利用一种数据驱动的方法迭代的计算近似方案来逼近最优控制策略。因此,它也被称为近似动态规划(approximate dynamic programming)[11],是动态规划(DP)中的一类序列优化问题。<br><br> 在一般的 RL 模型中,智能体由一个算法控制,在每一个时间步$t$观察到系统状态$s_t$,采取行动$a_t$后,从系统/环境得到奖励$r_t$。在当前策略在当前策略 $\pi$下采取行动后,系统转移到下一个状态$s_{t+1}$。每一次交互后,RL 智能体更新它拥有的环境的知识。图1显示了强化学习过程的示意图。 <div style="text-align: center;"><img src="http://cookdata.cn/media/topic_images/318_640.jpg" width="" ></div> <center>图1 强化学习的控制环路</center><br><br> ###1.1 马尔可夫决策过程<br><br> 强化学习方法可以形式化为马尔可夫决策过程(MDP),MDP 是序列决策算法的一般数学框架。MDP 可以表示成一下五元组:<br> ● 状态集合 $\mathcal{S}$,<br> ● 行动集合 $\mathcal{A}$,<br> ● 转移函数 $\mathcal{T}(s_{t+1}|s_t, a_t)$,将时间 $t$ 时的状态行动对映射为下一个状态 $s_{t+1}$ 的分布,<br> ● 奖励函数 $\mathcal{R}(s_t, a_t, s_{t+1})$ 代表智能体在状态 $s_t$ 下采取行动 $a_t$ 后,系统转移到状态 $s_{t+1}$ 时所获得的奖励。<br> ● 折扣因子 $\gamma$ 表示对未来奖励的折扣,取值为0到1之间。<br><br> 基本的马尔科夫性质告诉我们,给定当前的状态 $s_t$,系统的下一个状态 $s_{t+1}$ 与之前的状态 $(s_0,s_1,\dots,s_{t-1})$ 独立。 在交通系统等控制系统中,MDP 模型通常是回合制(episodic)的,系统在每一回合有一个明确的终止点,基于终止时间 $T$ 或终止状态 $s_T$。MDP 智能体的目标是寻找最佳策略 $\pi^*$,最大化累计奖励期望 $\mathbb{E}(R_t|s,\pi)$ ,其中累计折扣奖励为 $$ R_t = \sum_{i=0}^{T-1}\gamma^i r_{t+i}, \quad (1) $$ 折扣因子 $\gamma$ 反映的是未来奖励的重要性。选择大的 $\gamma$ 代表智能体的行动对未来奖励有较大依赖性。小的 $\gamma$ 则代表智能体的行动更关心实时的奖励 $r_t$。<br><br> 通常,RL 智能体表现为两种形式:(i) 已知或者学习状态$s_t$到$s_{t+1}$的转移概率$\mathcal{T}$,称为基于模型的强化学习;(ii) 通过探索环境而不直接学习转移模型,称为无模型强化学习。无模型的强化学习算法可以进一步分为两种类型:基于价值的方法和基于策略的方法。在基于价值的强化学习中,智能体的每一步迭代更新将状态行动对映射为一个值的价值函数。在基于策略的方法中,策略在每一步迭代中直接通过策略梯度来更新[11]。下面我们详细地介绍基于价值和基于策略的强化学习方法。<br><br> ###1.2 基于价值的强化学习<br><br> 价值函数决定了智能体处于某一个状态的好坏。在某个策略 $\pi$ 下智能体处于状态 $s$ 时的价值(即期望奖励)为 $$ V^\pi(s) = \mathbb{E}(r_t|s,\pi). \quad (2) $$ 最优价值函数 $V^*(s)$ 描述了在所有的策略中价值函数的最大值,即 $$V^*(s) = \max_{\pi} V^\pi(s), \forall s \in \mathcal{S}. \quad (3)$$ 考虑行动的影响,状态行动价值函数,也称为质量函数(Q函数),通常用来反映一个状态行动对的期望奖励 $$Q^\pi (s,a) = \mathbb{E}[R_t|s,a,\pi]. \quad (4)$$ 最优行动价值函数的计算方法与最优状态价值函数蕾西,通过在每一个状态下,最大化期望奖励来实现。最优状态值函数和最优行动值函数的关系为 $$ V^\ast(s) = \max_{a} Q^\ast(s,a),\forall s \in \mathcal{S}. \quad (5) $$ Q函数 $Q^\*(s,a)$通过选择最大化Q值的行动,能够得到最优策略 $\pi^*$: 基于以上定义,有两种主要的基于价值的强化学习算法:Q-learning[12] 和 SARSA[13],分别为 on-policy 和 off-policy 强化学习算法。在这两个算法中,状态行动对的价值(Q值)都以Q表的形式存储,通过利用贝尔曼方程的递归本质和马尔可夫性质来学习: $$Q^\pi(s_t,a_t) = \mathbb{E}_\pi[r_t + \gamma Q^\pi(s_{t+1},\pi(s_{t+1}))]. \quad (7)$$ 在实践中,通常使用一个学习率 $\alpha$ 来优化价值函数的估计: $$Q^\pi(s_t,a_t) \leftarrow Q^\pi(s_t,a_t) + \alpha (y_t - Q^\pi(s_t,a_t) ) \quad (8)$$ 其中 $y_t$ 是 $Q^\pi(s_t,a_t) $ 的时间差分目标值(TD target)。TD 步数大小是一个待确定的参数,决定了在计算新的对 $Q^\pi(s_t,a_t) $ 的实时估计 $y_t$ 时使用多少经验步数。假设 TD 步数为 $n$ ,则奖励 $R^{(n)}_t =\sum_{i=0}^n \gamma^i r_{t+i}$ 和 $n$ 步以后的Q值 $Q^\pi(s_{t+n,} a_{t+n})$ 确定了 $y_t$。现在可以很明确地看到 Q-learning 和 SARSA 在这个过程中的不同。Q-learning 是一个 off-policy 模型,行动是通过最大化 Q 值来获得的。而 SARSA 是一个 on-policy 模型,智能体的行动是通过从 Q 函数中得到的策略来更新的。 $$ y_t^{Q-learning} = R^{(n)}_t + \gamma^n \max_{a_{t+n}} Q^\pi(s_{t+n},a_{t+n}), \quad(9) $$ $$y_t^{SARSA} = R^{(n)}_t + \gamma^n Q^\pi(s_{t+n},a_{t+n}), \quad(10) $$ Q-learning 算法使用贪心算法来更新其Q值,SARSA 算法使用同样的策略来更新Q值和采取行动。为了鼓励探索,Q-learning 算法和 SARSA 算法都使用 $\epsilon$-贪心策略来采取行动。在 $\epsilon$-贪心策略中,以 $\epsilon$ 的概率随机选取行动,以 $1 - \epsilon$ 的概率根据 Q 表来选取最优行动.<br><br> 在 Q-learning 和 SARSA 中,最大的时间差分步数,通常记为 $n=\infty$ 代表回合的结束,对应一种完全经验技术称为 蒙特卡洛 RL。在蒙特卡洛 RL 中,每一个回合只在回合的结束时更新一次 Q 值。 $\text{TD}(\lambda)$ 技术则进一步推广了 TD 学习,它用一个衰减系数 $\lambda$ 对回合中所有步数的目标值进行平均[11]。<br><br> ###1.3 基于策略的强化学习<br><br> 基于策略的 RL 将策略 $\pi_{\theta}$ 当作是状态行动对上的分布,其中 $\theta$ 为参数。策略参数 $\theta$ 通过最大化某个目标函数 $J(\theta)$ (例如期望奖励 $\mathbb{E}_{\pi_{\theta}}[r_t|\theta] = \mathbb{E}_{\pi_{\theta}}[Q^{\pi_{\theta}}(s_t,a_t)|\theta]$)来进行更新。基于策略的方法在具有无限维动作空间或高维问题的连续控制问题上的性能通常优于基于值的方法,因为策略不需要在一个大的连续空间中探索所有状态并将它们存储在表中。尽管有一些有效的无梯度方法用于优化非 RL 方法中的策略[14],但是基于梯度的方法在所有类型的 RL 算法中都更有用。 <br><br> 这里我们简要地讨论基于策略梯度的强化学习算法,它们通过目标函数 $J(\theta)$ 对于参数 $\theta$ 的梯度(称为策略梯度)来选择行动。在著名的策略梯度算法 REINFORCE 中[15],目标函数是期望奖励,使用对数技巧 $\nabla \log \pi_\theta = \frac{\nabla \pi_\theta}{\pi_\theta}$ 后,策略梯度可以写成 $$\nabla_\theta J(\theta) = \mathbb{E}_{\pi_\theta}[Q^{\pi_{\theta}}(s,a)\nabla_\theta \log \pi_\theta]. \quad (11)$$ 由于直接计算全梯度不高效,REINFORCE 使用随机梯度下降技术来对梯度近似近似。它使用时间 $t$ 下的奖励 $R_t$ 来作为 $Q^{\pi_{\theta}}(s_t,a_t)$ 的估计,在每一步蒙特卡洛迭代中执行以下更新: $$\theta \leftarrow \theta + \alpha \nabla_\theta \log \pi_\theta R_t, \quad (12)$$ 其中 $\alpha$ 为学习率。$\theta$ 在 $\nabla_\theta \log \pi_\theta$ 方向上以权重 $R_t$ 进行更新,即如果近似的策略梯度对应一个高的奖励 $R_t$, 则更新参数时,梯度方向是加强(reinforced)的。<br><br> 蒙特卡洛策略梯度的一个问题是其高方差。为了在策略梯度估计中较小方差,Actor-Critic 算法使用状态价值函数 $V^{\pi_\theta(s)}$ 作为一个基准(baseline)。在策略梯度中,使用优势函数 $A^{\pi_\theta}(s,a)=Q^{\pi_{\theta}}(s,a) - V^{\pi_\theta}(s')$ 代替 $Q^{\pi_{\theta}}(s,a)$ : $$\nabla_\theta J(\theta) = \mathbb{E}_{\pi_\theta}[A^{\pi_{\theta}}(s,a)\nabla_\theta \log \pi_\theta]. \quad (13)$$ 优势函数是正负决定了更新的方向:朝着比平均值高/低的奖励相同/相反的方向前进。我们将在讨论深度强化学习时进一步讨论 Actor-Critic 算法。<br><br> ###1.4 多智能体强化学习<br><br> 现实世界中的许多问题都需要多个智能体之间的交互来最大化学习性能。多智能体学习是一项具有挑战性的任务,因为每个智能体都应该考虑其他智能体的行为,以达到全局最优解。增加智能体的数量也会增加状态和行动的维度,因此智能体之间的任务分解是大型控制系统可扩展的方法。<br><br> 多智能体 RL 中高维系统(状态和行动)存在两个主要问题:智能体的稳定性和对环境的适应性[17]。当各智能体在不考虑近邻智能体的情况下对其行动进行优化时,整个系统的最优学习将变得非平稳。在多智能体 RL 系统中,有几种方法可以解决这个问题,如分布式学习、合作学习和竞争学习[17]。<br><br> ##**2 深度强化学习**<br><br> 在高维的状态空间,传统的 RL 算法不能有效地为每一个状态计算价值函数和策略函数。虽然在 RL 中有一些线性函数逼近的方法被提出来解决大的状态空间问题,它们的能力还是有限。在高维和复杂系统中,传统的 RL 方法无法学习环境的有信息的特征来进行高效的函数逼近。然而,这个问题可以使用基于深度学习的逼近器很容易地解决。可以训练一个深层神经网络来学习最优策略或价值函数。在大的状态空间,不同的神经网络结构,例如卷积神经网络(CNN)和循环神经网络(RNN)都被用来训练强化学习算法[18]。<br><br> 深度学习的主要思想是从数据中提取有用的模式。深度学习模型是从人类神经系统的多层结构中获得启发。如今,深度学习在计算机视觉、语音识别、自然语言处理和强化学习等诸多领域得到了广泛的应用。<br><br> ###2.1 深度 Q 网络<br><br> 基于价值的 RL 算法通过填充 Q 表来学习 Q 函数,对于状态空间很大和连续行动问题,逐个访问所有的状态和行动的方法非常低效。一个主要的解决这一问题的方法为深度 Q 网络(DQN),即通过深层神经网络来近似 Q 函数。最初的 DQN 将原始图片输入当作状态,从中使用卷积神经网络估计 Q 值。将神经网络的参数记为 $\theta$,则 Q 函数的近似为 $Q(s,a;\theta)$。神经网络的输出为根据公式(6)从一个离散的近似行动值中选取的最优行动。<br><br> 文献[19]的主要贡献是提出了两种新颖的技术稳定深层神经网络中的学习:目标网络和经验回放。最初的 DQN 算法在一系列经典的 Atari 视频游戏上超过了人类的水平。完整的包含经验回放和目标网络的 DQN 算法见算法1。<br><br> <div style="text-align: center;"><img src="http://cookdata.cn/media/topic_images/318_640.png" width="" ></div><br><br> **目标网络**:DQN 中稳定学习的主要方法是目标网络。 DQN 中包含两个单独的神经网络:近似 Q 函数的主网络和给出 TD 目标值以更新主网络的目标网络。在训练阶段,在每一个行动后更新主网络的参数 $\theta$,而目标网络的参数 $\theta^-$ 则经过一个固定的时间段后再更新。不再每一次迭代更新目标网络是为了调整主网络的更新以保持价值函数可控。如果两个网络同时更新,由于目标网络的反馈回路,主网的变化会被放大,导致网络不稳定。与公式(9)类似,1步时间差分目标 $y_t$ 为 $$y^{DQN}_{t} = r_t + \gamma \max_{a_{t+1}} Q^\pi (s_{t+1}, a_{t+1};\theta_{t}^{-}),\quad (14)$$ 其中 $Q^\pi (s_{t+1}, a_{t+1};\theta_{t}^{-})$ 为目标网络。<br><br> **经验回放**:DQN 提出了另外一种不同的特性叫做经验回放(experience replay),在回放存储中存放最近的经验 $(s_t,a_t,r_t,s_{t+1})$。训练神经网络时从回放存储中均匀地采样样本。在 DQN 中使用经验回放主要有两个原因。首先,由于 RL 智能体在连续的样本中容易产生时间相关性,因此通过随机抽样防止智能体陷入最近的轨迹。其次,DQN 可以通过在小批量样本中训练来代替在全部观察中训练,来提高训练效率。在固定大小存储的经验回放中,只存储最近的 $M$ 个样本,更早的样本会用新的样本来取代。同样的技术在其他深度强化学习算法中也被使用[20,21]。<br><br> **优先经验回放**:经验回放从存储中均匀采样,然而对于学习来说,有些样本比其他样本更重要。一种新的方法对于重要的行动给予优先,从而在 DQN 算法中改变了采样的分布[22]。优先经验回放的总体思想是采用比例优先或者排序优先的方法来使 TD 误差 $y^{DQN}_{t} - Q^\pi (s_{t}, a_{t};\theta_{t}^{-})$ 大的样本采样到的概率会更大。经验样本根据设置的概率来进行采样。<br><br> ###2.2 Double Dueling DQN<br><br> DQN 是传统的 Q-learning 算法的改进版本。由于都只有一个 Q 函数估计器,DQN 和 Q-learning 都会高估某些行动。文献[23]的作者提出使用双网络,用一个主网络进行行动选择,用一个目标网络来对行动进行评价。使用和传统的表格 double Q-learning 算法相同的损失最小化方法[24]。Double DQN 使用主网络来选择行动,目标网络来评价行动,而不是使用目标网络来选择 Q 值(参考公式(14))。为了更好地估计Q值,行动选择与目标网络解耦:<br><br> $$y^{DDQN}_{t} = r_t + \gamma Q^\pi(s_{t+1}, arg\max_{a_{t+1}} Q^\pi (s_{t+1}, a_{t+1};\theta);\theta_{t}^{-}),\quad (14)$$ DQN 的另一个改进是每一个行动使用一个竞争网络架构来估计状态价值函数 $V^\pi(s)$ 和使用优势函数 $A^\pi(s,a)$[25]。这两个网络组合的输出是通过聚合层的离散行动集的 Q 值。通过这种方式竞争 DQN 学习到重要状态的价值而不用去考虑不同行动的影响,因为状态价值 $V^\pi(s)$ 是一个行动无关的估计。<br><br> 以上这两种 doubling 和 dueling DQN 模型在使用优先经验回放时在离散行动的深度强化学习中取得了当前最好的性能。<br><br> ###2.3 Actor Critic 方法<br><br> Actor-critic 强化学习模型介于基于策略的算法和基于价值的算法之间,因为需要维护两个估计:使用 Q-value 估计的 Actor 和使用状态价值函数估计的 Critic,如图2所示。Actor 基于策略来控制智能体的行为,而 Critic 基于价值函数来对采取的行动进行评价。最新的研究也使用深度强化学习方法来提出 Actor-critic 模型的变种[20,21,26],在这些模型中 Actor 和 Critic 都是基于深层神经网络。<br><br> <div style="text-align: center;"><img src="http://cookdata.cn/media/topic_images/318_640-1.png" width="" ></div><center>图2 Actor Critic 控制环路</center><br><br> 只有一个网络的传统 DQN 适合于低维离散行动空间的问题。最近,一个 Actor-critic 算法 DDPG (deep deterministic policy gradient)被提出来,用于解决高维连续控制问题。DDPG 在状态空间使用确定性的策略梯度方法,而不是同时在状态空间和行动空间都使用随机梯度下降[20]。DDPG 与传统的 DQN 的一个不同是它使用一个新的软性的目标更新模型执行频繁的软性更新。<br><br> ###2.4 异步方法<br><br> 硬件系统的进展使得强化学习研究人员能够使用多个 CPU 或 GPU 进行并行计算来加快学习速度。首次在 DQN上测试的并行模型提高了智能体的性能,训练时间更短且收敛性更好。例如,文献[27]中提出的异步多 Actor 学习模型在连续和离散行动空间问题上都获得了高性能。多 Actor 学习使得 RL 智能体能够在不同的探索率下对环境进行探索。此外,异步更新不再需要回放存储,学习器在一个预先定义的更新周期 $T$ 下能够利用多个试验累计的梯度。A3C (Asynchronous Advantage Actor-Critic),一种先进的深度强化学习算法,可以在多个并行处理器上异步地更新策略和价值网络。在更新周期 $T$ 内,每一个网络分别进行更新,共享的主网络则根据 $\theta^\pi$ 和 $\theta^V$ 来进行更新。A3C 的同步和简化算法称为 A2C (Advantage Actor-Critic)。<br><br> ##**3 Deep RL 小结**<br><br> 在这一部分中,我们讨论了深度 RL 的背景,包括基于策略和基于价值的 RL 模型。在讨论ITS中deep RL应用的细节之前,值得一提的是,某些 deep RL算法是根据应用域的规格,在不同的应用程序中首选。虽然开发新的深度RL技术是一个活跃的研究领域,但基于Q学习的DQN和 基于 actor-critic 的DDPG 算法仍然是基于 RL 的 ITS 控制的主流。<br><br> 对于高维状态空间,deep RL 方法优于传统 RL方法。在行动空间方面,基于策略的 deep RL方法比基于值的 deep RL 方法更适合于连续行动空间。对于离散行动空间,其控制器通常使用 DQN 及其变体,因为与基于策略的方法相比,它们的结构更简单。<br><br> 一般来说,基于 Q 学习的 DQN 模型通常用于具有有限状态空间和行动空间的较不复杂系统,而基于策略或 actor-critic 的算法主要用于大型复杂系统,包括多智能体控制系统。在许多情况下,设计者可以在设置问题时在离散和连续状态空间和行动空间之间进行选择。例如,在 TSC 中,一些作者将连续行动定义为延长绿灯的时间,而另一些作者将离散行动空间定义为选择绿灯方向。<br><br> <div id="2"></div> ## 深度强化学习智能交通 (II) :交通信号灯控制表示为 Deep RL 问题 <br><br> 到目前为止,我们已经讨论了 AI 对交通系统的重要性以及强化学习的理论背景。Deep DL 在智能交通系统中的一个主要应用领域之一为交叉口信号控制。大部分已有工作都是面向应用的,因此提出的方法在许多方面会有所不同,例如用应用 deep DL 使用不同的技术提出不同的交叉口模型来监控交通,使用不同的状态-行动-奖励表示来刻画 RL 模型,以及使用不同的神经网络结构等。因此,对不同的方法直接做性能对比通常十分困难。<br><br> 在这些应用中,在交通信号控制中心实现一个学习算法(deep RL)控制交通信号适应交通流。首先,控制单元收集状态信息。状态信息可以是不同的格式,例如排队长度,汽车位置,车速等。然后,控制单元基于 deep RL 方法给出的策略采取行动。最后,智能体(控制单元)获得一个奖励信号。通过这些步骤智能体尝试找到能够最小化交叉口拥堵的最优策略。<br><br> 在模拟器使用 RL 算法解决 TSC 问题需要一个好的问题形式化,包括状态、行动、奖励的定义,以及神经网络结构的设计。在本节,我们讨论在交通模拟器中这些主要的 deel RL 配置。<br><br> ##1 状态<br><br> 学习性能与准确和具体的状态定义高度相关。在用 RL 应用于交通信号灯时,已有工作提出了很多不同的状态表示。文献[28]和[29]使用最初的 DQN [19]相同的方法,将原始的 RGB 图像作为状态表示。另一种类图像的状态表示方法是获取受控交叉口的快照,以形成车辆的位置和速度[30]。<br><br> 在 TSC 应用中,类图像表示格式,称为离散交通状态编码(DTSE),是最流行的状态定义方法[29,31-39]。研究人员之所以喜欢使用 DTSE,是因为它能从交叉口获得最高的可用分辨率和一组现实的信息。假设交叉口有$n$条车道,每个交叉口被划分为几个单元,每个单元的大小平均为一辆车,从交叉口的停车点开始到$m$米后。车辆的速度、位置、信号相位和加速度在 DTSE 中以单独的阵列显示。不同的研究者使用上述四种输入类型的变种。例如,一些研究中同时选择速度和位置[31,33],另一些研究者只选择上述四种输入中的一种(例如汽车位置)[23,29]。<br><br> DTSE 只考虑车道属性,文献[30]在输入状态定义中考虑完整的摄像头视角,包括路侧信息。如今,许多交叉口都有高质量的摄像头监控交叉口的交通。为了增强 DTSE 类型的状态表示,可以很容易地扩展这些设备来监控连接到交叉口的道路。<br><br> 另一种常用的状态表示方法是使用一个基于特征的值向量。在值向量状态表示与基于车的状态表示不同的是,每个车道特定信息的平均值和总和表示在一个向量中。队列长度、相位周期中的累积等待时间、车道上的平均速度、相位持续时间(绿色、红色、黄色)和每条车道上的车辆数是用于状态表示的一些常见特征。这些信息的组合也是从交叉口中收集而来[40-43]。使用这些信息的一个优点是它们可以很容易地被道路传感器或环路检测器收集。还有一些其他研究人员不常用的独特交通特征,例如基于车道检测器最大速度的评分[41]、信号控制阈值指标[44]和左转侵占[45]等。<br><br> DTSE 和特征向量这两种常见的状态表示如图3所示。<br><br> ![](http://cookdata.cn/media/bbs/images/f22c72018c42476c7fa369522cee65d3_1604029048449_5d14.jpg) 图3 两种主要的状态表示:DTSE 矩阵(中)和基于特征的向量(右)。左图显示的用对应的基于汽车的状态数组的交通模型。每一个格子表示一辆车。中图中的矩阵显示的是一个交叉口的完整矩阵,每条路用不同颜色表示。右图表示基于特征的状态向量,每一个格子表示一个车道。<br><br> 对于有多个交叉口的 TSC 模型,状态定义还包括临近交通信号灯信息,例如信号相位,汽车数量和平均车速等[34,44,46]。<br><br> ## 2 行动<br><br> RL 算法在接收到状态后从一组可能的行动中采取某个行动对学习有着至关重要的影响。在单个四路交叉口,每一个方向都由红灯、绿灯和黄灯控制。有很多单交叉口的行动选择,最常用的选择其中一个可能的绿灯相位。另一个二元行动可以设置为保持当前相位还是改变其方向。第三个不太常用的行动模型是根据预先定义的长度来更新相位时长。<br><br> 对于单交叉口,主要有四种可能的绿灯相位:North-South Green (NSG),East-West Green (EWG),North-South Advance Left Green (NSLG) 和 East-West Advance Left Green (EWLG)。在某个相位的绿灯相位期间,汽车向交叉口允许的方向前进。如果行动设置为选择其中一个可能会的绿灯相位, deep RL 智能体在每个时间 t 选择四个绿灯相位中的一个。在黄灯和红灯转移后,选择的行动在交通灯上执行。<br><br> 早期的应用将相位定义简化为 NSG 和 EWG 两种,而不考虑左转[32,40]。在另一种二元行动模型中,绿灯相位时长是预先定义的,例如NSG→EWG→NSLG→EWLG,智能体决定是保持在当前相位还是转移到下一相位。如果智能体决定改变相位,则黄灯和红灯转换需要先执行完,以确保交通流的安全[33,37,38,42,47]。<br><br> 大部分应用考虑的是离散的行动,即从一组行动集合中选择某个行动。当然,也有少量工作考虑连续的输出,仅仅控制下一个相位的时长[20]。这种类型的行动定义适合多交叉口的情形。基于预先定义的最小和最大相位时长,算法为当前的相位预测一个合适的时间长度[41,48]。<br><br> ## 3 奖励<br><br> 在强化学习中,状态可以是一个特征向量或高维矩阵,行动可以是连续值或者离散选择的向量。然而,奖励总是标量值,且为交通数据的函数。在强化学习中奖励的作用是分析某个状态下采取某个行动的质量,也即对智能体采取特定行动的惩罚或奖赏。<br><br> 等待时间、累积延迟和队列长度是 TSC 中最常见的奖励定义。等待时间可以所有汽车停留时间的总和来表示。延迟是指连续绿灯相位中等待时间的差。队列长度针对交叉口中每个车道进行计算。<br><br> 美国公共道路局(BPR)在交通规划中定义的一个特殊拥堵函数也被一些工作用来作为奖励的定义[34,47]。在另一些工作中,交通数据的绝对值被用来定义奖励,其他工作也使用交通数据的负值和平均值来定义奖励。<br><br> ## 4 神经网络结构<br><br> 在 deep RL 中,深层神经网络的结构也对学习有着重要的影响。在 TSC 领域,研究者提出了很多不同的网络结构。多层感知机(MDP),即标准的全连接前馈神经网络模型,在传统数据分类中是一个有用的工具。卷积神经网络(CNN)是 MDP 使用核滤波器的一个扩展,在将图像映射为输出方面取得了很好的效果。<br><br> 标准的 DQN 使用 CNN 网络结构,将连续的原始像素帧作为状态定义。有很多 TSC 领域的论文在 DTSE 状态定义下使用 CNN 作为网络结构(见图3,[31,33,49])。<br><br> 残差网络(ResNet)通常用来解决基于 CNN 的深层网络结构的过度拟合问题[34]。另外一种在图中进行操作的基于卷积的网络结构是图卷积网络(GCN)。<br><br> 循环神经网络(RNN),例如长短期记忆(LSTM)常常用户时间序列数据。由于 TSC 控制通常是时序进行,RNN 也被用于深度强化学习场景中[35,37]。另外一种神经网络模型是自编码器,可以为高维数据数据学习低维子空间表示,通常被用于清洗输入数据中的噪音[40]。<br><br> ##5 模拟环境<br><br> 早期的一个交通模拟器是基于 Java 的 Green Light District (GLD) 模拟器[51],最开始提出来解决基于强化学习的 TSC 问题。许多研究论文在 GLD 上进行实验(见表II)。<br><br> 最流行的开源交通模拟器是 SUMO (Simulation Urban Mobility)[52]。开源平台允许用户按照他们自己的目的自由地修改模拟器。SUMO 支持用户通过 Python 中的交通控制接口库 TraCI 来与环境进行交互。不同的交通模型可以动态地模拟,包括私家车、公共汽车和行人等。<br><br> AIMSUN 是一个商业交通模拟器,由西班牙交通模拟系统公司设计和销售[53]。Paramics 是最流行的交通模拟器之一,是英国 Quadstone Paramics 公司发布的[54]。研究人员更喜欢使用 VISSIM, 因为它和 AIMSUN 类似,与 MATLAB 的交互更好。<br><br> ![](http://cookdata.cn/media/bbs/images/640_1604029239573_5d14.jpg) <div id="3"></div> # 深度强化学习智能交通 (III) :Deep RL 在交通信号灯控制中的应用 ### A 标准的 RL 应用 1)**单智能体 RL** 20世纪90年代后半页,使用一个可学习的智能体来优化交叉口的研究得到研究人员的极大关注。智能体通过与一个模拟环境进行交互来学习交叉口交通的最优控制策略。虽然最终的目标主要是控制一个协同的交叉口网络,但本研究的第一步是如何用 RL 控制单个交叉口。现在我们介绍一些基于 RL 的单交叉口研究,我们将对这些研究的独特特点进行描述。 文献[56]是基于 RL 的机器学习交通信号控制领域的先驱工作,使用无模型(model-free)的 SARSA 算法应用于单交叉口。在这项工作中,Thorpe and Anderson 考虑了两个场景:一个没有黄灯相位的四车道交叉口;以及一个 $4\times4$ 网格状相连的交叉口网络,每一个交叉口单独地学习自己的 Q 值。在这个早期工作以后,研究人员提出了一系列单交叉口和多交叉口交通网络的解决方法,其中最主流的方法包括协作多智能体和多目标 RL。文献[59]提出了一种更现实交通场景下的随机控制机制,这也是一种基于 SARSA 的 TSC 方法。这项工作同时提出了一种特定的状态空间,将汽车的数量划分到稀疏的离散值。作者现实了他们提出的方法比固定时间的控制以及感应式控制的要求更优(使用队列中汽车数量作为评价指标)。 在文献[57]中,作者提出了一种无模型的 Q-learning 单交叉口算法,将队列长度作为状态表示,两个行动周期间的总延迟作为奖励函数。这是第一篇提出简单的二元行动模型(只改变相位方向)的论文。本文的研究结果与固定时间信号控制器在不同交通流模式下的平均车辆延误进行了比较。Camponogara 和Kraus Jr.[58]提出了一个基于 Q-learning 的 RL 模型,该模型基于两个交叉口上的分布式 Q-learning 技术,为每个智能体分配单独的 Q 值。 Abdulhai等人[60]提出了加拿大多伦多的第一个基于 RL 的真实交叉口场景,使用三种不同状态定义的 Q-learning。第一种状态定义是两个值的函数:当前绿灯方向行驶的汽车数量和红灯方向排队的汽车数量。其他的状态定义为队列长度和不考虑红绿灯的累计延迟。这项工作在单交叉口中四个可能相位(NSG,EWG, NSLG, EWLG)中选择一个绿灯相位来代替固定周期下的二元行动模型。该工作被扩展到一个更一般的概念,从实验的角度讨论了几种关于不同状态、动作、奖励定义的on-policy、off-policy RL算法[61]。除了[60]中提出的三种状态表示和可变相位行动模型,作者进一步测试了固定绿灯相位周期的二元行动模型和四种奖励函数,即时延迟、累计延迟、队列长度和停车次数。在单交叉口场景下,Q-learning, SARSA 和 时分误差等模型在不同的状态、行动和奖励下进行了测试。此外,还考虑了两种不同的多交叉口配置,在Paramics simulator上,对多伦多市中心的 5 个交叉口和多伦多市中心的一个大型网络,与定时信号控制进行比较和驱动信号控制模型进行了比较。 Toubhi等人[63]在单交叉口下使用 Q-learning 评估了三个奖励定义、队列长度、累积延迟和吞吐量。 在高需求和低需求流量模式下,研究了每个奖励定义的性能。还有一些其他的工作也使用 Q-learning 方法来处理单交叉口控制问题[62,64]。表1 列出了所介绍工作的概要。 ![表1 单智能体智能交通控制强化学习方法概览](http://cookdata.cn/media/bbs/images/640-1_1604029339408_5d14.jpg) 2)**多智能体 RL** 在一定程度上,对不同的交叉口单独地应用单智能体 RL 算法会是一个好方案,然而这种方法却不适合大型交叉口网络。对整个网络达到最优策略需要一种协作的学习方法。研究者提出了几种用于控制的多智能体学习模型多个交叉口协同工作。 大部分单交叉口的强化学习应用使用的是 Q-learning 和 SARSA 等无模型(model-free)算法。而早期的多智能体文章提出使用状态转移概率的有模型(model-based)强化学习方法。一个重要的大型交通网络的多智能体强化学习工作由 Wiering 提出[65],基于车辆与交叉口之间的协调考虑局部和全局信息的状态函数,提出了三个算法:TC-1,TC-2 和 TC-3 。状态由交通信号灯的配置、汽车的位置和每个交叉口汽车的目的地组成。这个早期工作中的状态表示是不现实的,因为不太可能知道汽车的目的地信息。文中提出的模型迭代地更新值函数来最小化汽车的等待时间。模拟运行的结果与四个标准的 TSC 模型进行了对比:固定时间控制、随机控制、最长队列优先和最多汽车优先。 很多工作从不同的角度对 Wiering 的方法进行了拓展。例如 Steingrover 等人在 TC-1 方法的基础上,进一步将其他交叉口拥堵信息包含进来[66],提出了 TC-SBC 和 TC-GAC 两种拓展模型。前者通过向状态空间中添加拥塞值来增加状态大小,而后者在计算值函数时使用拥塞因子而不是增加状态空间。Isa 等人[67]进一步考虑了拥堵信息和交通事故信息。 前述工作都没有考虑多个智能体之间联合行动选择协调。Kuyer 等人介绍了一种新的方法,能够使用 max-plus 算法支持智能体之间的协调[68]。在这项工作中,智能体之间经过有限的协调迭代,能够找到最优的联合行动。另一个代表性的工作由 Bakker 等人提出,使用相连交叉口的部分状态信息,当系统由于某些原因(如传感器故障)无法访问完整的状态信息时,这种情况很有意义。这些工作[66-69]都使用 Wiering 的方法[65]为基准。 在强化学习中,多目标学习由于其处理复杂环境的能力而受到关注[95]。为整个交通系统选择一个单一的目标,例如 Wiering 的工作中目标数是减小所有汽车的等待时间,可能难以应对不同交通条件下的需求。文献[70]在 多智能体 TSC 工作中使用了一种多目标方法。汽车停车、平均等待时间、最大队列长度分别设置为高、中等和低交通流量下的优化目标。在不同交通流量下, Q 函数使用对应的奖励函数进行更新。Taylor 等人提出了一种非强化学习的算法 DCEE 来解决 TSC 问题。文献[71] 和 [80] 提出了一种基于 SARSA 算法的平铺编码多智能体强化学习方法,在不同交通流量条件下与 DCEE 进行了对比。 Khamis等人在三篇论文[73]-[75]对多目标 RL 交通信号控制进行了研究。在第一篇论文[73]中,作者考虑了贝叶斯转移概率的有模型 RL 方法,使用几个目标来形成奖励函数。第二篇论文采用了同样的方法[74],目标更加明确。第三篇论文[75]将先前的工作扩展到了总共七个目标,具有新的合作探索函数,并在多种道路条件和车辆需求下进行了实验。还从连续控制、概率出行需求等不同角度提高了 GLD 交通仿真系统的实用性。这三篇论文的结果与 Wiering 提出的TC-1 [65] 和自适应 SOTL 方法[76]进行了比较。 最新最具有影响力的基于 RL 的多目标多智能体 TSC 研究是 [77] 。在这项研究中,交通延迟和燃料消耗定义为智能体的学习目标,使用一种称为阈值词典排序的技术来支持在线多目标适应。该工作基于 SARSA 算法使用多种函数逼近器来实验,其中一种是神经网络。需要指出的是,基于 SARSA 算法的 Q 值估计在深度强化学习中通常不多见,因为它不包括经验回放和目标网络技巧,我们将在下一节介绍。 在 DQN 提出以前,函数逼近是一种流行的解决状态空间很大时的 Q 函数学习方法。例如, 文献[78] 和 [79] 提出了基于函数逼近 Q-learning 和 的 actor-critic 策略迭代两种 TSC 强化学习模型。文献[82]对 TSC 问题提出了一种新颖的基于神经网络的多智能体 RL 方法,分别使用了局部和全局智能体。局部智能体通过最长队列优先算法控制交通信号灯,全局智能体则使用一个基于神经网络的 Q-learning 方法控制交通信号灯,这种方法与后文将要介绍的 DQN 十分类似。 基于 actor-critic 的多agent RL 是一个新兴的研究领域,它使用连续的状态空间表示。将状态空间离散化通常会丢失状态信息。Aslani 等人提出了一种多交叉口连续空间 actor-critic 控制模型[88],使用了平铺编码和基于径向基函数的函数逼近器。虽然状态空间是连续的,决定下一个绿灯相位的行动空间是离散的。在实验中,研究人员分别使用离散状态和连续状态的 actor-critic 模型在德黑兰进行了测试。一项工作提出了一个两层多智能体强化学习模型[81],首先使用 Q-learning 为每个交叉口实现单独的智能体,然后在第二层使用基于平铺编码的函数逼近器来控制宽域网络。有几项研究提供了相邻智能体之间的协调以达到联合最优性能。Tantawy等人提出了一种基于 Q-learning 的多智能体道路网络协调 RL 方法[83],[84]。RL 可以直接或间接地学习协调,分别称为 MARLIN-DC 和 MARLIN-IC。 文献[83]提出了一个小规模的道路网,在扩展的文献[84]中,作者研究了多伦多市中心 59 个交叉口的大型道路网。[91]提出了另一种基于协调的 TSC 模型,该模型实现了大型网络中的分布式 Q-learning 智能体,其中相邻智能体之间共享拥堵值。在Paramics仿真环境下,以新加坡的实际交通网络为例,对不同的出行需求配置进行了模拟实验。Xu等人[89]针对多智能体 RL 环境,提出了一种基于非零和Markov游戏的协调模型。将 Q-learning 作为一个单智能体应用于每个交叉口,并采用基于马尔可夫博弈的数学模型对其协调进行控制。 文献[87]利用R-Markov平均奖励技术和 RL 的多目标奖励定义,提出了一种适用于多交叉口环境的新方法。在参数模拟环境下,通过对18个交叉口网络的模拟,将结果与固定时间控制器、驱动控制器、Q-learning 和SARSA 进行了比较。Chu等人[96]提出了一个适用于大规模交通网络的区域到中心的多智能体 R L模型。在低流量密度下,作者认为对于大规模网络,区域间不需要协作,即在局部区域学习流量模型就足以获得全局合适的学习。Araghi等人[94]提出了一种基于分布式 Q-learning 的多智能体 RL 控制器,该控制器预测下一个相位周期的绿相位持续时间。在[85]、[90]、[93]中研究了其他多智能体 RL 应用。表二概述了多智能体 RL 的工作。 ![](http://cookdata.cn/media/bbs/images/640-2_1604029452717_5d14.jpg) ### B Deep RL 应用 本小节我们考虑基于 Deep RL 的 TSC 应用。表三根据所使用的 Deep RL 算法,网络结构,模拟环境和与基准的比较几个方面对现有工作进行了归纳总结。 ![](http://cookdata.cn/media/bbs/images/640-3_1604029484222_5d14.jpg) 1)**单智能体 Deep RL**: 近年来,基于deep RL 的自适应交叉口控制学习工具受到交通研究者的广泛关注。近二十年来,研究人员提出了几种基于标准 RL 的交通场景架构,deep RL 的出现对其研究产生了巨大的影响,尤其是 TSC 。由于其对大状态空间的处理能力,人们提出了许多用于交通灯控制的 deep RL 模型。deep RL 范式基本上是基于深度神经网络逼近 Q 函数。在 TSC 使用这种方法的最早工作是[82],虽然文中提出了一种基于神经网络的 RL 模型,但缺乏**经验回放**和**目标网络**这两个 DQN 的重要组成部分[19],因此并不是一个完整的 DQN 算法。 Genders等人[31] 是使用 deep RL 进行控制交通信号的早期研究。在这项工作中,作者使用离散交通状态编码模型,称为 DTSE ,以交通环境中的详细信息为基础,形成一个类似于图像的状态表示。所提出的状态模型是 CNN 的输入,用于逼近离散动作的 Q 值。实验是在 SUMO 模拟环境下进行的,在 SUMO 模拟环境中,选择 4 个绿色相位作为动作。为了显示 CNN 在 DTSE 状态表上的能力,将结果与单层神经网络的 Q-learning 进行了比较。 在[98]中,同样的作者使用 A3C 算法研究了不同状态对交叉口优化的影响。使用动态交通环境在单个交叉口上试验了三种不同的状态定义。文中考虑的第一种状态形式是由每条车道的占用率和平均速度。第二种状态是每条车道的排队长度和车辆密度。第三种状态形式是具有布尔位置信息的类图像表示(DTSE),其中车辆的存在性用 1 表示。结果表明,状态表示的分辨率对 RL 智能体的延迟和队列长度没有影响。在最近的一篇论文[103]中,同样的作者研究了 TSC 的异步 deep RL模型。在异步 $n$ 步 Q-learning [27]中,主任务被划分为多个处理器,每个处理器分别学习其局部最优参数。一般网络的全局参数在每 $n$ 步后更新。在[103]中提出的架构与固定时间和驱动交通控制器相比,性能提高了近40%。 文献[40]中,作者提出了一种基于自动编码器(autoencoder)的动态交通流单交叉口 deep RL 算法。使用自动编码器进行行动选择,将输入队列长度映射到低维行动集。瓶颈层是解码部分的输出,用于 Q 函数逼近。作者与用 Paramics 模拟器进行的标准 Q-learning 进行了比较。目前,这是文献中唯一使用自动编码器来近似行动值的工作。在[33]中,Gao等人提出了一种基于 DTS E的车辆速度和位置相结合的神经网络结构。神经网络的输出是二元行动:保持同一行动还是在预定的相位周期内改变行动。作者将该模型与固定时间控制器和最长队列优先控制器进行了比较。 [28]提出了两种用于控制孤立交叉口的 deep RL 算法:基于价值的DQN 和基于策略的 actor-critic 。两个智能体的状态都是原始的连续图像帧,采用与原始 DQN 完全相同的方法。如文献[19]所述,DQN 算法存在不稳定性问题。[28]表明基于策略的 deep RL 技术通过平滑收敛和收敛后的稳定趋势来解决这个问题。Shabestary 等人[36]提出了一种基于 DQN 的孤立交叉口交通信号自适应控制的新方法。文中定义的奖励和行动是累积延迟和 8 个不同的绿灯相位的变化,而不是常用的二元行动集或单个交叉口的4个绿灯相位。 Choe 等人提出了单交叉口 TSC 场景下基于 RNN 的 DQN 模型[37]。结果表明,与目前流行的 CNN 结构相比,基于 RNN 的 DQN 降低了传输时间。文[29]提出了一种基于策略梯度的 deep RL 自适应交叉口控制方法,该方法在一个新的现实交通环境 Unity3D 上进行了实验,将原始像素作为基于策略的 DQN 的输入状态。该模型与固定时间交叉口控制模型具有相似的结果。Wan等人提出了一种基于行动值的具有新折扣因子的 DQN[45]。提出的动态折扣因子在无穷几何级数的帮助下考虑了执行时间。通过与固定时间控制器和基于 DQN 的标准控制器的比较,利用 SUMO 模拟器在单交叉口上对该模型进行了测试。 [38]中描述了一种新的基于 DQN 的控制器,称为 IntelliLight,具有新的网络结构。奖励函数由多个部分组成:所有车道的排队长度之和、延误时间之和、等待时间之和、红绿灯状态指示灯、自上一个行动以来通过交叉口的车辆数和自上一个行动以来的行驶时间之和。该方法在 SUMO 单交叉口上进行了实验。一个真实的数据集是从中国的真实相机收集到的,作为 SUMO 的输入。在[107]中,IntelliLight被选为一个基准,它引入了一个新的带有批学习框架的迁移学习模型。将相同的真实数据和生成均匀分布交通流的综合迷你数据用于孤立交叉口的试验。文献[50]中提出了另一种基于 DQN 的交通灯控制研究。数据来自黎巴嫩的一个三向非均匀实交叉口。实验结果与实际交叉口使用的固定时间控制器在队列长度和延迟方面进行了比较。 Liang 等人[30]根据行动集和 deep RL 算法研究了不同的 deep RL 模型。此工作将更新阶段周期中的下一阶段持续时间,而不是从绿色相位中选择行动。在一个 4 相单交叉口,定义了相位变化持续时间。选定的阶段持续时间可以从下一个周期阶段的持续时间加上或减去。在该模型中,对于四向交叉口,行动集包含 9 个离散行动。文中提出的算法考虑了新的 DQN 技术,即 dueling DQN 和优先经验重放,以提高性能。在另一篇论文中,Jang 等人[43]讨论了如何通过基于 Java 的AnyLogic 多用途模拟器将 DQN 智能体与交通模拟器集成。Liu 等人提出了一种不同的状态定义方法[105],用于检查 DQN 对线性道路拓扑中绿波模式的影响。实验只在不使用任何流量模拟器,而是根据概率分布创建流量数据的 Python 环境中进行。此外,考虑到车辆到基础设施(V2I)通信的专用短程通信(DSRC)技术,Zhang 等人[106]在交叉口部分检测到车辆的情况下处理 TSC。他们研究未检测车辆的 TSC 的动机来自于并非所有车辆都使用 DSRC 的情况。 2)**多智能体 Deep RL** 文献[32]提出了第一种基于 deep RL 的多交叉口控制机制,定义了一种新的奖励函数,并提出了一种多交通灯协调工具。文中的奖励定义考虑了特定交通条件的组合,即事故或拥堵、紧急停车和红绿灯改变,以及所有车辆的等待时间。奖励函数适当地惩罚每个特定的交通状况。为了使多个交叉口的协调具有较高的交通流量,本文对较小的一组交叉口采用了转移规划技术,并用 max-plus 协调算法将学习结果与较大的一组交叉口相连接。在这项工作中,基准是[65]中提出的早期基于协调的 RL 方法之一。如预期的那样,基于 DQN 的协调方法优于早期标准的基于 RL 的方法。通过给出单智能体场景和不同多智能体场景的结果,文章扩展为硕士论文[23]。文献[35]与文献[32]相似,提出了一种基于 $2 \times 2$ 交叉网格模型的多智能体 deep RL 方法,该方法利用 max-plus 和迁移学习来达到协调的全局最优学习。与文献[32]不同的是,本文主要是用 RNN,特别是 LSTM 层来代替全连通层进行 Q 函数逼近。结果表明,与 Q-learning 和固定时间控制相比,RNN 结构的 deep RL 方法在低流量和高流量需求情况下均能获得较低的平均延迟。 Liu 等人[34]提出了一种用于多智能体控制多个交叉口的协作式 deep RL 模型。该算法是一种基于 ResNet 结构的 DQN 算法。奖励函数根据驾驶员的行为和等待时间使用 BPR 功能对系统进行处罚(见第IV-C节)。通过每 $n$ 步与其他智能体共享策略,保证了智能体之间的合作。在 SUMO 上使用 $2\times 2$ 交叉模型进行了实验,选择 SOTL、Q-learning 和 DQN 作为验证模型的参考点。 多个交通交叉口可以表示为一个网络图,车道通过道路连接形成一个有向图。Nish等人[100]提出了一种基于 GCN 的 RL 智能体神经网络结构。GCN 与一种称为 $k$ 步神经拟合Q迭代[101]的特定 RL 算法相结合,该算法通过为每个交叉点分配一个智能体,以分布式方式更新智能体,同时考虑整个网络以形成状态空间。实验结果表明,与基于固定时间控制器和标准 CNN 的 RL 控制器相比,基于 GCN 的算法减少了 6 个交叉口的等待时间。[44]提出了 TSC 的分级控制结构。下层通过交叉口控制优化局部区域交通,上层通过调整下层局部区域的优化程度优化城市级交通。在本研究中,多交叉口学习是建立在从个别交叉口收集的阈值上。高级控制器的行动集是增加或减少阈值,从而改变每个交叉口对相邻交叉口的灵敏度。与不同于其他基于 deep RL 的交叉口控制器不同的是,它通过一种基于阈值的机制来降低算法复杂度,而不是设置相位周期或相位持续时间。 文献[39]研究了协作多智能体 deep RL 模型。这里,为每个交叉口分配了一个具有 dueling DQN 模型并支持优先级经验重放的智能体。为了提高协调性能,在经验回放中采用了一种特殊的采样技术,即指纹技术。指纹技术通过贝叶斯推理利用邻居代理策略估计Q-函数[108]。该模型在具有异构多交叉口的 SUMO 上进行了验证。结果表明,该算法在多个出行需求场景下均优于固定时间控制器和无经验重放的 DQN 控制器。 多智能体系统中的一种方法是只更新关键边以提高效率。[47]首先使用一种特定排序算法 CRRank 基于多个标准识别重要节点,CRRank 使用双向三部图创建一个 trip 网络。基于数据和三部图,系统根据指定的分数对边缘进行排序。一旦确定了关键交叉口,RNN 结构的 DQN 智能体就学习最优策略。该模型在 SUMO 的20个、50个和100个交叉口上进行了测试,并与固定时间控制器、SOTL 控制器、Q-learning 控制器和 DQN 控制器进行了比较。最近,在文献[46]中提出了一种具有Q值转移的协作 deep RL 方法。在每个交叉口,DQN 智能体通过从其他智能体接收Q值来控制红绿灯,以学习最优策略。该算法在均匀和非均匀交叉口上得到了广泛的实验支持。有一个异质的交通场景是很重要的,因为所有的交叉口不具有相同的特征,如道路数量和车道数量。作者将他们的结果与两篇基准论文进行了比较:协调 Q-learning [32]和分布式 Q-learning[94]方法。 文[41]中的工作研究了深度确定策略梯度(DDPG)算法在城市规模交通网络中的应用。通过连续控制相位持续时间,提出了 DDPG 的 TSC 问题。该模型通过保持总相位周期不变,一次更新所有网络的相位持续时间,以控制整个网络的同步。在这项工作中,一个被称为速度分数的特定信息,使用每个检测器上的最大速度计算,被考虑用于形成状态向量。从小型到大型的交通网络测试了三种交通场景:孤立交叉口、$2 \times 3$ 网格交叉口和巴塞罗那市 43 个交叉口的比例尺地图。该方法比多智能体 Q-learning 控制器具有更高的奖励性能。值得注意的是,actor-critic 模型可以应用于大型交叉口模型,而无需任何额外的多智能体控制技术。Genders在博士论文[48]中研究了另一种基于 DDPG 的大规模网络 deep RL 控制器。系统模型由一个并行体系结构组成,每个交叉口都有分散的参与者,每个中心学习者都覆盖交叉口的子集。该策略确定每个交叉口中绿灯相位的持续时间。为了测试该模型的性能,我们在拥有 196 个交叉口的 SUMO 上使用了卢森堡城市地图,这是迄今为止基于 RL 的 TSC 最大的测试环境。 Lin 等人提出了一种考虑 A2C 算法的多行动学习系统。在[42]中多个行动者观察不同的状态,使用不同的探索策略。由于 actor-critic 方法建立在优势函数上,因此作者考虑在学习过程中使用一种称为一般优势估计函数的技术[109]。在 SUMO 的 $3\times3$ 交叉网格上进行了实验,并与定时控制器和驱动控制器进行了比较。 自主 Q-learning 是近年来研究较多的多智能体 RL 方法之一。Chu 等人[102]最近将此方法扩展到自主 A2C 多智能体 TSC。利用两种方法,即相邻交叉口的指纹和空间折扣因子来解决稳定性问题。前者为每个智能体提供有关本地策略和邻居智能体流量分布的信息,后者则使每个智能体能够集中精力改善本地流量。A2C 算法使用基于 LSTM 的 RNN 模型的网络结构。采用 $5\times5$ 网格的综合交通网络和来自摩纳哥市的30个交叉口的真实交通网络进行性能评估。 在文[104]中,通过合作实现了大规模交通网络的系统学习。将一个大系统划分为若干个子集,其中每个局部区域由 RL 智能体控制。全局学习是通过将学习策略传递给全局智能体来实现的。对于本地控制器,作者研究了两种 deep RL 算法:基于值的 peraction DQN 和基于 actor-critic 的 Wolpertinger DDPG[110]。每个行动 DQN 与标准的 DQN 算法相似,不同的是它将状态行动对作为输入,并生成单个 Q 值。Wolpertinger-DDPG为大规模离散行动空间提供了一种基于 k 近邻方法的新策略方法。在实验中,使用了三种不同的交通网络,并将其结果与一种带有线性函数逼近器的分散 Q-learning 算法和两种基于规则的基准(固定时间和随机时间控制器)进行了比较。 Coskun等人[99]将[28]扩展到多个交叉口使用基于值的 DQN 和基于策略的 A2C 。两种算法在深入学习后的结果与标准 RL 方法在每轮平均奖励方面的结果一致,其中 DQN 的平均奖励高于A2C。 <div id="4"></div> # 深度强化学习智能交通 (IV) :自动驾驶、能源管理与道路控制 在 ITS 的其他应用中引入了几种有用的 deep RL 机制。智能交通系统中 AI 的一个主要应用领域是自动驾驶,其中深度强化学习在该领域起到了非常关键的作用。Deep RL 方法能够应用到自主控制问题的多个方面,包括匝道计量、车道变换、速度加减速和交叉口通行等(见表四)。 ![](http://cookdata.cn/media/bbs/images/640-4_1604029746881_5d14.jpg) ### A 自动驾驶 最初的论文提出的基于 deep RL 的自主车辆控制在 TORCS 游戏环境下进行模型实验[151]。Sallab 等人提出的控制框架。[111]使用了两种类型的深度RL方法:离散行动集的带 RNN 的 DQN 方法和连续行动集的基于 actor critic 的 DDPG 方法。作者在 TORCS 上进行了不使用经验回放的算法实验,结果表明收敛速度更快。Xia 等人[112]提出一种称为带过滤经验的深度 Q-learning(DQFE)的控制策略,用于教授自主车辆如何驾驶。在 TORCS 游戏模拟器上,该方法的学习性能优于神经拟合的 Q-learning 方法。 文献[113]提出的连续控制策略将连续行动的 DDPG 算法与安全控制策略结合起来。这种组合是必要的,因为仅仅依靠过去的经验不能提供一个安全的自动车辆控制。Hoel 等人[115]引入了一个自主驾驶模型,包括使用蒙特卡罗树搜索和 deep RL 进行规划和学习。驾驶规划是通过蒙特卡罗树搜索完成的,学习如何驾驶是通过使用 AlphaGO Zero 算法的 deep RL 智能体完成的[152]。这个工作与 IDM/MOBIL 智能体的专家驾驶行为基准进行了比较[153,154]。 [120]在 VISSIM 上使用 DDDP 方法研究了自主车辆的跟车和换道行为。Makantasis 等人提出了另一种基于 RL 的自动驾驶策略。[121]在混合自治场景中使用具有优先体验回放的 DDQN。在不同的交通密度下,在 SUMO 上对基于 deep RL 的驾驶策略与基于 DP 的最优策略进行了比较。Deep RL 自主驾驶研究通常是在混合自主环境或完全自主环境中寻找最佳驾驶策略的单个智能体。文献[122]提出了一种具有动态协调图的多智能体 deep RL 方法。在这项研究中,自主车辆协同学习如何在高速公路场景中表现。研究了基于身份的动态协调和基于位置的动态协调两种不同的协调图模型。Qian 等人[123]从不同的角度描述了使用双延迟 DDPG 的自动驾驶[155]。他们提出了一个两级策略来填补自主汽车决策和未来规划之间的空白。Zhou 等人提出了在信号交叉口采用 DDPG 方法的自主驾驶[124]。在最近的一项自主驾驶研究[125]中,使用从摄像机采集的 RGB 图像输入,在交通模拟器 CARLA [156]上分析了 RL 方法。作者在[127]中使用一种称为 IPG 汽车制造商的人在回路动态模拟器,对基于 DDPG 的自动驾驶进行了不同的训练和测试策略的试验。当驾驶者在这个软件上控制车辆时,DDPG 智能体学习如何在两种不同的情况下驾驶,向前驾驶和停车。 在交通研究中,利用自主车辆控制停行波是一种新的方法,[130]提出了一种基于 deep RL 的解决方案。为了增加交通流量,作者实现了多个由独立的 deep RL 智能体控制的自主车辆。Isele 等人[128]使用 DQN 方法研究了一种特殊情况下的自动驾驶车辆,即当驾驶员对交叉口有部分了解时,在交叉口进行通行。文中测试了三种行动选择模式。第一个模式是停止或前进,第二个模式是连续行动、加速、减速或保持恒定速度,最后一个模式是前两个行动模式的组合,等待、缓慢移动或前进。三种行动模式都在 5 种不同的情况下进行了测试。 文献[116]提出了一种采用 double DQN 的有包围车辆的自动货车挂车的速度和车道变换框架。为了推广该算法,文中考虑了高速公路交通和双向超车两种交通情况。Sharifzadeh 等人使用逆 deep RL 方法[114]提出了一种在具有连续轨迹的自编程交通模拟器上实现无碰撞换道的驾驶模型。模型包含两个独立的智能体。一个智能体只控制无速度调整的换道,另一个智能体控制有加速度的换道动作。文献[118]中给出了考虑 DQN 和二次 Q 函数近似的自主车辆换道应用。将分层控制技术实现为离散域的变道模块和连续域的间隙调整模块,并分别采用 deep RL 智能体。与其他文献类似,[119]提出了一种基于规则的 DQN 方法来解决自主车辆的换道问题。 大多数基于学习的控制模型的测试都是在汽车自主控制、交通信号控制、交通流控制等模拟器上进行的。Chalaki 等人研究了从模拟器到真实世界实验的第一个学习策略迁移[132]。本研究的实验平台是美国特拉华大学的城市地图,利用 deep RL 控制技术,对环形交叉口内多辆自主车辆的行为进行观测。为了有效地传递策略,在状态空间和行动空间中注入对抗噪声。文献[133]研究了具有高斯噪声的单智能体的初步结果。 ### B 能源管理 能源管理系统是未来交通运输的重要组成部分。电动汽车有不同的资源分配方案。动力消耗在不同的车辆单元中不同,这会对电池的性能产生很大影响。Chaoui等人提出了一种基于 deep RL 能量管理解决方案,以提高并联电池的生命周期[136]。[138]提出了一个使用 DQN 模式的混合动力汽车能耗优化模型。提出的自适应学习模型通过基于 deep RL 的能量管理方案提供了更好的燃料消耗。吴等人[137]提出了一种基于 actor-critic 的 DDPG 算法的混合动力公交车能量管理解决方案。在考虑乘客数量和交通信息两个参数的情况下,deep RL 智能体可以通过连续控制来优化能耗。 ### C 道路控制 道路控制人员是智能交通系统中交通控制的重要组成部分。目前,在高速公路的限速控制、收费公路定价、匝道计量等方面都采用了 deep RL 方法,车道间的动态限速控制是交通运输中一项具有挑战性的任务。We 等人[140]研究了一种采用 actor-critic 连续控制方案的变转速限值控制的动态求解方法。文献[143]提出了基于 deep RL 的收费公路车道定价模型,以使多个出入口的总收入最大化。文献[145]提出了另一种快车道动态定价模型,利用多目标 RL 模型和多类小区传输模型来提高 deep RL 智能体的性能,并用信号匝道表来控制来自侧道的高速公路连接。为了提高主干道交通流的效率,[134]提出了一种基于离散化偏微分方程的交通模型多智能体 deep RL 技术。该控制模型在一个模拟的高速公路场景中进行了测试。吴等人[141]针对高速公路的不同路段,提出了一种基于不同智能体的 deep RL 高速公路控制模型。作者建议使用入口匝道表控制智能体、动态车道限速控制智能体和动态车道变更控制器智能体进行协调。传统道路有固定数量的进出车道。为了改善交通流,[146]研究了多智能体 deep RL 和动态图结构下的车道转向,[117]提出了基于DQN的自动制动系统,在需要立即采取行动的情况下提供了交通安全。 ### D 不同的 ITS 应用 最近,Schultz 提出了一种新的交通模拟器优化工具[149]。交通模拟器的输入(交通特性)和输出(交通拥挤)与使用 DQN 的自适应学习技术相关。Flow 计算接口使得 deep RL 库 RLlib [157]与 SUMO 和Aimsun 很容易集成,以解决 ITS [158]中的各种控制问题。Flow 的用户可以通过 Python 创建一个自定义网络来测试复杂的控制问题,如匝道表控制、自适应交通信号化和具有自主车辆的流量控制。[150]介绍了一种交通模拟器,它为分析自主车辆的行为提供了一种新的环境和协作多智能体学习方法。它能够测试各种流量场景。Min等人[147]提出了一种使用分位数回归 DQN 的驾驶员辅助系统,用于各种控制,如车道保持、车道变换和加速控制。 ## 7 挑战与开放性研究问题 尽管在基于 deep RL 的 ITS 解决方案方面做了巨大的兴趣和努力,目前也取得了一些有希望的结果,但要产生真实世界的产品,仍有许多重大挑战需要解决。本节我们讨论 deep RL 在 ITS 方面的主要挑战和开放性研究问题。 由于现实应用对生命的威胁,所有基于 RL 的 ITS 控制的研究成果都在模拟器上进行实验。最近,文献[132]提出了一个从模拟到城市级自动驾驶测试环境的策略迁移应用程序,但这一研究仍处于起步阶段。实际部署与使用学习算法的基于模拟器的应用之间存在巨大差距。对于 TSC 和 ITS 中的其他控制应用,需要在实际中进行部署,以证明基于deep RL 的自动控制的适用性。 具体到 TSC,基于模拟的应用有两种方法:一是用人工数据模拟人工路网,二是基于真实数据集模拟路网。虽然第二个测试接近于实际测试,但它只考虑一天中不同时间的交通需求,没有实际的挑战。研究人员需要考虑的另一点是增加模拟环境的真实性,例如包括人工干预场景。为了减少人工干预 TSC,控制系统应能适应最坏情况下不稳定的交通状况。要做到这一点,应该研究具有一些可预测的极端场景的城市网络,而不是标准交通模型,以便了解 deep RL 实现的后果。我们期望在模拟环境中实现行人和公共交通将对学习性能产生很大的影响。 已有文献提出了许多用于交通灯控制的 deep RL 模型。虽然标准 RL 模型之间有相互比较以验证其建议,但 TSC 上的 deep RL 模型与现有的工作没有令人满意的比较。对于多个交叉口,研究者大多选择DQN、标准 RL 和定时控制器作为基准。然而,与文献中的其他多智能体方法,如分布式控制、协调控制等相比,应该更具代表性。另一个具有挑战性的结果是,很少有文献将它们的性能与驱动控制器进行比较,驱动控制器是现实世界中最流行的 TSC 实现方法。 状态定义是 deep RL 应用中的一个关键点。因此,研究人员关注不同硬件系统(如摄像机、环路检测器和传感器)的不同状态形式,但在基于 deep RL 的 TSC 应用中,对状态形式还没有明确的一致性。状态定义高度依赖于静态设备,因此所有这些设备都应始终正确地收集数据。一个新的研究方向可能是研究部分可观测和噪声状态定义,其中一些设备不能正常工作。当基于 RL 的自适应交通信号在交叉口上实现时,系统必须得到保护和稳定(即鲁棒性和弹性),以防此类故障。 关于自主车辆,研究人员一直在提出非常具体的子系统的解决方案,而没有考虑这些子系统之间的相互作用。对于更实际的解决方案,需要对多个组件采用统一的管理和自适应控制策略。例如,一个好的 deep RL 系统应该同时控制车道变换、中断、流量安排和能量管理组件。为不同的自主车辆子系统实现不同的学习算法可能会导致互操作性问题。 ## 8 总结 考虑到世界人口的增长和城市化的趋势,研究者们一直在利用基于学习的人工智能技术对智能交通应用进行研究。交通系统的动态特性决定了我们无法对所有智能交通系统(ITS)应用使用一个清晰易用的控制机制。通过强化学习(RL)方法控制交通系统在工业界和学术界都越来越流行。近年来,针对智能交通系统中的自动控制问题,例如交通信号灯、自动驾驶、自动中断、车辆能源管理等方面的研究成果层出不穷。在 ITS 中最流行的深度强化学习应用是交叉口的自适应交通信号控制(TSC)。 本文综述了深度强化学习在 ITS 中的应用。讨论了 RL 和 deep RL 的关键概念,以及它们应用于 TSC 的配置。为便于明确比较,使用单独的表格中比较了几个类别的现有工作的特征细节。最后,我们还讨论了开放性的研究方向以及现有研究成果与实际应用的差距。研究表明,在模拟环境中 TSC 有不同的单智能体和多智能体 RL 解决方案,其性能优于标准控制方法。但是,除了针对特定场景的自动车辆应用之外,现有的工作尚未在实际环境中进行测试。
深度强化学习在智能交通中的应用.pdf
836.92 K
下载29次