清华大学最新突破:无监督学习让自动驾驶决策更透明

导读
这篇发表于Transportation Research Part C的文章介绍了一种用于自动驾驶的无监督分层强化学习方法。主要创新点有:(1)提出了一种基于技能的分层强化学习方法,通过无监督学习获得基础驾驶技能,再通过元控制器组织这些技能来完成复杂驾驶任务。(2)创新性地将Transformer模型引入技能学习过程,使系统能够从连续多帧数据中学习到更有语义信息的驾驶技能。(3)在决策部分引入了语义信息,通过分析技能值函数,使决策过程具有一定的可解释性。

©️【深蓝AI】编译

论文名称:Integrating big data analytics in autonomous driving: An unsupervised hierarchical reinforcement learning approach

论文地址:https://www.sciencedirect.com/science/article/abs/pii/S0968090X2400127X

论文作者:Zhiqi Mao, Yang Liu, Xiaobo Qu

1.研究背景

自动驾驶系统的研究在过去十年中取得了显著进展,主要分为两种架构:模块化方法和端到端方法。

模块化方法将自动驾驶系统分解为多个子系统,如场景解释、决策制定和规划操作等模块。目前大多数商业化的自动驾驶项目都采用这种方法,包括已经在限定场景下实现L4级别自动驾驶的Waymo。

而端到端方法则试图将驾驶作为一个统一的任务来训练。这种方法使用神经网络直接处理传感器数据,生成对车辆的控制指令。现有研究表明,端到端方法虽然在理论上很有前景,但在实际应用中仍面临挑战,特别是在决策部分的可解释性方面。

作者指出,虽然已经有大量研究致力于提高编码器部分(感知部分)的可解释性,但对决策部分可解释性的研究相对较少。为了提高端到端系统决策部分的可解释性,本文提出将策略学习过程分解,采用分层强化学习方法。具体来说,包括两个部分:无监督技能学习和元控制器学习。这种方法的主要优势在于:

(1)无需人工设计奖励函数就能训练出基本的驾驶技能;

(2)学习到的技能具有明确的语义含义,提高了系统的可解释性;

(3)通过分层架构提高了系统处理复杂场景的能力

2.研究方法

2.1 基础理论框架

本研究所提出的方法建立在三个关键的理论基础之上:强化学习、分层强化学习和Transformer模型。在自动驾驶领域,强化学习已被广泛应用于优化决策过程。研究采用马尔可夫决策过程对问题进行建模,其中包括当前时刻t的状态s_t、基于该状态选择的动作a_t,以及环境给予的奖励r_t。系统通过策略函数选择动作,并根据环境反馈不断优化这一策略。

在分层强化学习架构中,研究采用了Option-Critic框架。该框架通过三元组(I_\omega,\pi_\omega,\beta_\omega)定义每个选项(option),其中I_\omega表示可选择的选项集合,\beta_\omega为终止函数用于决定当前选项是否需要终止,\pi_\omega则是当前选项对应的具体策略函数。顶层策略πΩ负责在选项集合中进行选择,选定的选项则通过其对应的策略\pi_\omega生成具体动作。

考虑到技能学习过程中时序信息的重要性,研究引入了Transformer模型。不同于传统的循环神经网络,Transformer通过注意力机制能更有效地处理序列数据。本研究仅采用其编码器部分用于提取时序特征,因为技能的语义信息只有在考虑时序特征的情况下才能得到完整的表达。

2.2 方法架构设计

本研究提出的自动驾驶方法包含两个核心组成部分:无监督技能学习和基于这些技能的元控制器学习。首先,系统从CARLA模拟平台获取原始数据,包括RGB图像、语义分割图、激光雷达点云和道路拓扑等信息。这些数据被处理成完整的鸟瞰图(Bird's Eye View, BEV),随后被分割成更易于处理的局部图像。采用Transformer模型同时处理多帧图像序列,将其编码为特征向量,这些特征向量既用于策略网络的输入,也为元控制器提供决策依据。

在系统运行过程中,元控制器基于完整的BEV图像感知环境并选择合适的技能ω。这个技能作为潜在变量与特征向量一起输入到策略网络,最终生成具体的控制动作。这种分层设计使得系统能够将复杂的驾驶任务分解为一系列基本技能的组合,提高了系统的可解释性和泛化能力。

▲图1:所提出模型的学习框架©️【深蓝AI】编译

2.2.1 无监督技能学习方法

在本研究中,我们对动作(Action)和技能(Skill)做出了明确的定义区分。动作被定义为直接影响车辆运动的控制输入,具体包括方向盘转角和油门深度等基本控制量。而技能则代表了更高层次的行为指令,它是多个连续帧动作的组合,例如完成一次变道或转弯等复杂驾驶行为。

本文采用的技能学习框架建立在DIAYN (Diversity Is All You Need)的基础之上,但进行了显著的改进。在训练过程中,系统首先根据先验分布p(\omega)选择一个技能,随后通过两种不同的方法来训练策略函数:一种是基于单帧状态的处理方法,另一种是利用Transformer模型处理多帧序列的方法。

在单帧处理方法中,系统使用策略网络\pi_{\theta}\left(a_{t}|s_{t},\omega\right)根据当前状态和选定的技能采样动作。同时,引入判别器网络f\left(\omega|s_t,a_t\right)来评估所选技能是否具有可区分性。判别器的评估结果作为内在奖励r_e,替代了传统强化学习中需要人工设计的外部奖励。这种设计鼓励系统学习更容易区分的技能,提高了技能的多样性和有效性。

考虑到单帧状态可能无法充分表达技能的语义信息,研究创新性地引入了基于Transformer的多帧处理方法。将连续T帧状态表示为skill_{seq}=(s_t,s_{t-1},\ldots,s_{t-T+1}),类比于自然语言处理中的句子结构,其中每个时刻的状态对应句子中的词,而技能编号则类似于句子的主题。这种设计使得系统能够捕捉到更丰富的时序语义信息。 为了实现这一目标,研究采用神经网络对每一帧状态进行嵌入,得到对应的向量表示。这些向量随后通过Transformer编码器进行处理,学习帧间的关系,表示为\tau_t=Encoder\left(s_t,s_{t-1},\ldots,s_{t-T+1}\right)。系统通过最大化期望奖励和策略熵的组合来优化策略,其中策略熵的引入确保了探索的多样性。

▲图2:技能学习框架©️【深蓝AI】编译

上述两种方法的结合不仅提高了技能学习的效果,还增强了学习到的技能的可解释性。通过观察车辆轨迹等环境反馈,我们能够理解不同技能的功能含义,为后续的元控制器学习提供了良好的基础。

2.2.2 元控制器学习机制

本节主要探讨如何在分层强化学习框架下构建和训练元控制器。基于前期通过Transformer架构训练的技能,我们将其作为Option-Critic框架中的子策略,记为\pi_\phi\left(a_t|\tau_t,\omega\right)。由于子策略的参数已经通过无监督学习获得,在元控制器训练阶段这些参数将被冻结,这种设计显著简化了Option-Critic方法的实现复杂度。

在元控制器的具体实现中,引入了两个关键的函数组件:Q值函数Q_{\delta}\left(\tau_{t},\omega\right)和终止函数\beta_{\mu}\left(\tau_{t},\omega\right),其中\deltau是待优化的参数。终止函数的输出是二元的,即\beta_{\mu}(\tau_{t},\omega)=\{0,1\}。当输出为0时,表示当前技能应当继续执行;输出为1时,表示需要终止当前技能,系统将根据Q值函数选择新的技能。

为了优化元控制器的参数,研究采用深度Q网络(DQN)方法,通过时序差分(TD)损失进行训练。其核心优化目标可以表达为最小化期望TD误差:

L_{\pi_{\Omega}}(\delta)=\mathbb{E}\left[\left(y_{t}-Q_{\delta}\left(\tau_{t},\omega\right)\right)^{2}\right]

其中目标值yt的计算需要考虑技能的连续性和终止条件,体现了系统在技能选择上的长期规划能力。对于终止函数参数的更新,则遵循Option-Critic框架的标准方法,其状态值函数定义为:

U\left(\tau_{t},\omega\right)=\left(1-\beta_{\mu}\left(\tau_{t},\omega\right)\right)Q\left(\tau_{t},\omega\right)+\beta_{\mu}V\left(\tau_{t}\right)

这种设计确保了元控制器能够在适当的时机切换技能,同时保持行为的连贯性。通过反复迭代训练,元控制器逐步学会在不同场景下选择合适的技能,从而完成复杂的驾驶任务。

值得注意的是,这种分层学习方法不仅提高了系统的性能,还增强了决策过程的可解释性。通过分析Q值函数和终止函数的输出,我们能够理解系统在不同状态下选择特定技能的原因,这对于自动驾驶系统的安全性和可靠性验证具有重要意义。

2.2.3 与传统方法的系统性比较分析

本节重点分析了所提出方法与传统分层强化学习方法在训练稳定性、多样性和架构设计等方面的关键差异。

训练稳定性与多样性方面,传统的Option-Critic算法在训练子策略时往往表现出对初始条件的高度敏感性,导致训练结果的不稳定。相比之下,本文提出的方法通过无监督学习机制显著提高了训练的稳定性,使得学习到的子策略对初始条件的依赖性大大降低。特别是通过引入基于信息熵的奖励机制,系统能够自发地学习多样化的子策略,这种多样性有助于应对复杂的驾驶场景。

在架构设计方面,传统的分层强化学习方法通常采用上下层同时训练的方式,这种耦合训练存在两个主要问题:一是难以准确定位性能瓶颈,二是上下层相互影响可能导致训练不稳定。本研究创新性地采用解耦训练策略,将训练过程分为两个独立的阶段:首先是下层的技能学习,然后是上层的元控制器训练。这种设计不仅简化了训练过程,还为每一层的训练提供了明确的优化目标。

更重要的是,这种解耦设计使得我们能够为下层技能学习引入特定的训练目标。例如,我们通过引入Transformer模型来增强技能的语义信息,同时利用技能多样性来提高系统的泛化能力。这些创新在传统的耦合训练框架下难以实现。

3.实验设置

作者的实验实现包含多个关键组件,包括模拟环境构建、无监督技能学习和元控制器学习。本节将首先介绍模拟平台的基本设置和环境构建过程,然后详细说明技能学习的细节,最后介绍奖励设计、测试任务和评估指标。

3.1 仿真平台

实验在城市道路模拟器CARLA上进行,该平台基于虚幻引擎4作为其核心物理引擎。CARLA提供了丰富多样的道路信息和结构,包括城市街道、高速公路和乡村道路。同时,它允许定制环境条件,如天气和光照,以增强模拟的真实性。

▲图3:实验场景©️【深蓝AI】编译

在传感器配置方面,CARLA支持多种类型的传感器:RGB相机,深度相机,语义分割相机,地理位置信息,惯性传感器,激光雷达,语义激光雷达。这些传感器可以根据需求进行动态或静态布置。CARLA还提供了一系列官方地图,主要特征是不同规模和特点的城镇,为模拟提供了全面而灵活的环境。为了提高真实性,研究团队在CARLA中引入了真实交通流,并考虑了模型的不确定性。

作者构建的模拟环境遵循Gym接口标准,包含以下模块:路径导航算法(使用A*算法),自我车辆控制模块,背景车辆控制模块,行人控制模块和奖励模块。其中,自我车辆控制模块可以访问传感器收集的所有信息,包括RGB相机图像、GPS定位信息,以及车辆的速度和方向等背景数据。背景车辆控制模块能够管理各种交通条件和驾驶行为,包括可能的交通规则违反和危险操作。行人控制模块则负责管理背景行人的行为,特别是他们对交通规则的遵守情况。

在天气条件设置方面,研究团队保持了一致的晴天天气设置。这是因为他们使用鸟瞰图(BEV)作为输入数据,而BEV表示已经过预处理,不受天气变化或光照条件的影响。在场景生成方面,他们在地图中随机放置了100-200辆车辆和20-50个行人。

这篇论文使用从CARLA模拟器后端获取的数据生成鸟瞰图作为原始观察空间。

3.2 无监督技能学习

在无监督技能学习部分,实验基于强化学习进行,同时集成了transformer模型,并使用连续帧状态作为输入。强化学习的基本框架包含四个核心要素:状态空间、动作空间、奖励和终止条件。

状态空间由CARLA后端数据生成的BEV图像提供。动作空间包括方向盘角度和油门,同时记录技能标识符以辅助训练。奖励由判别器网络以无监督方式生成,实验的终止条件设置为车辆碰撞时触发。

作者特别指出,与传统的DIAYN方法相比,他们的技能训练使用连续多帧的局部BEV图像作为状态空间输入,这是一个重要的创新点。训练过程遵循如下步骤:

  1. 首先初始化策略网络中的演员网络和评论家网络、判别器网络以及transformer网络

  2. 使用滚动模块进行数据采样,在特定步数内收集数据

  3. 使用队列管理帧数据,包含T帧的单帧数据

  4. 将队列中的单帧数据作为当前状态存储在经验回放缓冲区

  5. 使用训练模块从经验回放缓冲区随机采样,对策略网络和判别器网络进行迭代训练

  6. 在训练策略网络之前,transformer网络会处理队列中的多帧数据

3.3 元控制器学习

随后,学习到的技能被应用到分层强化学习框架中,用于解决自动驾驶挑战。如图2所示,该框架首先从模拟平台生成的完整BEV图像中提取状态BEV图像用于技能训练。

在元控制器组件中的编码器被训练来感知BEV图像中描述的完整场景。通过编码器,系统获得包含场景理解的特征向量。元控制器随后使用option-critic算法(一种分层强化学习算法)从这些特征向量中学习最优技能来控制自我车辆。

元控制器推断和优化的技能作为输入指令传递给技能决策网络,该网络已通过无监督技能学习方法训练。这最终产生单帧动作。在这个过程中,决策网络的权重保持固定以供后续训练。

3.3.1 动作空间设计

元控制器的输出动作由技能的标识符表示。在实验开始时,作者已经预先了解技能子策略网络中的技能数量。在前期实验中,他们在四种场景下训练了技能子策略网络,分别包含5、10、20和30个技能。本研究特别关注了使用5个和30个技能训练的子网络。每个技能都使用独热编码表示,使元控制器的动作空间与技能子策略的对应编码保持一致。

3.3.2 奖励设计

环境奖励设计包含两个组成部分:正向奖励和负向奖励(惩罚)。为简单起见,作者将这两种类型统称为"奖励",因为它们的值可以是正数也可以是负数。这些奖励考虑了影响驾驶场景的各种因素:车辆速度,位置,旋转角度,对指定路径的遵循或偏离程度,碰撞事件(具体分为与行人、其他车辆或不同物体的碰撞)。此外,奖励系统还考虑了堵塞情况和违反交通信号的行为。作者强调,奖励设计必须基于先验信息,如交通规则。例如,闯红灯或造成碰撞等违规行为会被分配负面奖励,这与现实世界的后果相一致。

3.3.3 终止条件

与传统的基于轮次(epoch)的训练方案不同,本实验采用了任务导向的训练方法,按顺序从一个任务进行到下一个任务。每个任务的初始化包括以下步骤:

  1. 在CARLA中选择地图

  2. 生成测试车辆、行人和背景车辆

  3. 选择起点和终点

  4. 生成路径

  5. 在建立的环境中开始强化学习训练

作者定义了两类终止条件:

  1. 任务完成:测试车辆成功到达终点(通过全球坐标确认)

  2. 任务失败:包括以下几种情况:
    (1)碰撞终止:测试车辆发生碰撞;
    (2)闯红灯终止:检测到违反红灯;
    (3)堵塞终止(超时惩罚):车辆在特定位置停留时间过长,可能表明陷入局部最优解;(4)路径偏离终止:车辆持续偏离导航路线。

4.实验结果

4.1 无监督技能的观察空间选择

在无监督技能学习阶段的判别器网络训练中,首先需要确定推理变量。作者最初考虑使用完整的BEV图像作为推理变量,但实验结果显示这种方法存在问题:
(1)判别器的损失曲线表明:即使经过150万步的训练,使用完整BEV图像作为输入时,损失值一直没有收敛,维持在初始水平。
(2)技能奖励曲线显示:在前20万步时,技能的奖励增加了1个单位,这是由于在奖励设计中添加了速度奖励项,以避免学习低速动作。然而,从判别器的损失曲线来看,没有显示收敛迹象,损失反而持续增加。

▲图4:基于完整BEV图像的技能训练损失和奖励曲线©️【深蓝AI】编译

这些结果提示了两个可能的问题:
(1)参数调整可能不够充分;
(2)网络架构可能过于简单,无法处理如此复杂的任务。 研究发现,虽然BEV图像能直观简洁地表示自动驾驶环境状态,但对于技能学习来说仍然过于复杂。为了解决这个问题,作者将完整的BEV图像分割成几个部分,如图7所示。这种方法允许灵活组合这些分割部分,构建适合训练目的的状态空间。不同的状态空间组合可以产生不同的技能解释和功能。

▲图5:增加的一个局部BEV图像示例©️【深蓝AI】编译

在新的实验中,作者采用了自我车辆和道路的组合(一个局部BEV图像)作为输入,实验结果表明:
(1)在使用完整BEV图像训练时,判别器的损失无法收敛,技能的奖励值基本保持不变。
(2)当在60万步时将输入数据从完整BEV图像转换为局部BEV图像,去除了无关的背景元素后,判别器网络开始显示明显的收敛,损失函数显著减少。
(3)相应地,技能获得的奖励也出现了增长。这些结果证明,使用最小化不相关背景信息的局部BEV图像能够促进判别器和评论家网络的更有效训练,从而提高技能学习的效果。

4.2 基于DIAYN的技能学习

在前一节中,作者使用新的状态空间(仅包含路线和自我车辆的BEV图像)训练了5个DIAYN技能。但是,仅使用单个时间步的状态可能无法完全展示技能的本质和功能。为了更全面地理解技能,实验中叠加了5个时间步的车辆状态,有效地展示了每种技能下车辆的轨迹。

值得注意的是,所有展示的技能图像都是以自我车辆为中心进行坐标变换。这意味着当车辆执行左转或右转时,显示的自我车辆保持静止,而周围的道路会在转向方向上倾斜。 因此,为了增强技能的语义信息,我们需要考虑使用多个连续帧状态作为推理变量。相关实验结果将在下一节中介绍。

4.3 基于Transformer的技能学习

基于DIAYN的技能学习方法使用单帧状态进行技能推理存在局限性。从直觉上来说,从单帧状态推断出的语义信息是有限的。例如,在日常驾驶中,方向盘可能会有轻微震动,但这种短暂的震动对研究目的来说并不重要,因为人类的基本反应时间约为0.2秒。

在实验中,作者采用10Hz的数据采样率,导致帧间隔为0.1秒,这甚至比人类平均反应时间还要快。为了解决这个问题,作者提出了基于transformer的技能学习方法,该方法考虑了多帧状态用于技能推理。

▲图6:多帧技能演示©️【深蓝AI】编译

采用5技能进行生成,实验生成的技能如上图所示,表示直行,左转,大幅左转,右转,大幅右转。

4.4 不同技能数量的比较

作者进行了涉及5、10、20和30个技能的实验。超过5个技能的情况下,技能表现主要分为三类:直行、右转和左转。区别在于5个技能中每种转向只有两种变体,而直行只有一种变体。随着技能数量的增加,可以训练出更多样的技能变体。

作者发现,增加技能数量导致训练时间延长。作者还发现,不同技能数量的最终收敛损失值也不同。这是因为所有实验使用了相同大小的判别器,而分类类别增加通常会导致更高的损失。技能奖励(rewardskill)也与判别器损失相关。因此图13显示,随着技能类别的增加,技能在最终收敛时获得的奖励会减少。

作者认为确定最优的技能数量十分关键。在技能训练过程中,目标是最大程度地覆盖整个动作空间,使技能之间具有多样性。因此,随着技能数量增加,它们之间的差异会逐渐减小。这种差异的减少不仅让人类难以区分,也给判别器的技能区分带来困难。

技能之间的差异减小会使元控制器的训练过程变得复杂。当技能之间非常相似时,它们的值也会变得相近,训练过程中的微小扰动可能导致最优技能选择的振荡。这种现象会降低训练效率并影响最终性能。同时,使用30个技能在城市道路驾驶场景中能获得显著高于5个技能的奖励。这表明技能数量过少会导致控制精度不足,可能引发碰撞事故和操作不够精确的问题。
 

5.讨论和总结

作者指出,无论智能程度如何,在环境探索过程中,智能体都会不可避免地从环境中获取一些知识,特别是那些有利于其生存的知识。然而,简单的智能体可能难以系统地组织和利用所获取的知识。本文提出的推理方法旨在总结和解释智能体从环境中无意识学习到的知识,这个过程产生了具有特定含义的驾驶技能。这些技能的编码类似于机器语言,设计用于区分不同技能,实际上形成了智能体的一种语言。通过建立技能编码和自然语言之间的联系,本文为这些技能赋予了语义信息。

作者指出了几个关键的局限性和未来研究方向:

(1)其一是技能数量的固定性,当前方法要求在训练开始时就固定技能数量,而技能数量的选择影响技能训练的收敛性和计算成本,此外,如果技能数量无限,技能会退化为单帧动作。

(2)其二是无监督奖励的挑战,具体而言,用无监督奖励替代手动奖励是一个具有挑战性的任务,这是因为机器和人类对区别的感知存在固有差异,同时,当前的无监督训练没有引入人类先验知识,作者建议,在训练中引入特定任务的先验知识,以提高效率。

(3)其三是关于技能遗忘问题,具体而言,随着新数据取代经验池中的旧技能相关经验,之前学习的技能可能会减弱,作者建议结合大型语言模型(如GPT)来处理语义信息相关问题。

总体而言,本文探索了分层强化学习在自动驾驶领域的应用。主要创新点包括:

(1)在底层使用无监督强化学习训练基本驾驶技能,无需手动设计奖励函数;

(2)在高层使用强化学习训练元控制器进行技能选择和控制;

(3)引入Transformer模型扩展单帧技能到多帧技能学习,提高了技能的可解释性;

(4)通过语义信息的引入和技能值函数的分析,提供了决策过程的解释能力。

这种方法不仅能够完成复杂的驾驶任务,还提供了决策过程的清晰解释,为自动驾驶系统的可解释性研究提供了新的思路。

作者认为,这项研究为自动驾驶技能的学习和决策提供了一个新的框架,但仍有许多值得深入研究的方向,特别是在提高技能学习的效率和稳定性方面。通过继续改进这些方面,该方法有望在实际应用中发挥更大的作用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值