2022年最先进的自动驾驶强化学习算法

258 阅读6分钟

用强化学习方法来训练自动驾驶策略是当前决策智能应用研究中的重点方向,但强化学习方法往往需要和环境做大量的交互来学习,样本效率低,在自动驾驶这个学习缓慢,成本昂贵且具有潜在危险的环境中,直接使用强化学习训练受到了限制。构建模拟器可以一定程度上缓解这个问题,但模拟器往往工程量较大,也需要大量的人类知识来建模环境。为此,我们需要一种能够提高样本效率的方法。

除了样本效率不高这个问题之外,在自动驾驶的设定下,不管是在模拟器还是真实环境中,任何一个不好的动作都可能直接导致驾驶过程崩溃,这往往也是不可以接受的。因此,离线学习驾驶策略的形式较为符合我们的期望。在收集数据变得越来越方便的今天,通过海量驾驶数据,离线学习驾驶策略被认为是方便且有效的。然而直接从驾驶数据中学习驾驶策略是具有挑战性的,因为驾驶数据仅覆盖了驾驶策略能够到达的环境空间的一部分,训练好的驾驶模型进行在线驾驶时环境的状态可能与已有的数据中存在的状态不匹配。

本文介绍一种基于模型的离线学习算法,它可以同步解决强化学习需要的环境交互量大,和离线学习的泛化性和安全性难以保障这两个问题。也就是说,我们不仅学习驾驶策略,在学习策略前还学习了一个驾驶环境的预测模型,驾驶模型的学习过程中可以通过该预测模型来减少和环境的迭代,并且通过真实环境的状态和环境模型预测的状态之间的区别来加速驾驶策略的收敛,并避免驾驶模型将车辆开到一个预测模型无法辨识的状态中。

简单总结一下,我们希望从海量驾驶数据中学习一个驾驶动态模型和驾驶策略。此算法分为两步:1.学习环境动态模型;2.通过利用学习到的环境动态模型来产生连续多步的训练样本来训练驾驶策略,同时显式地优化两种损失:驾驶策略的损失和不确定性损失,用来刻画环境动态模型与训练数据分布之间的差异。作者借鉴深度神经网络的不确定性估计来测量驾驶动态模型的不确定性,在实际的计算中,作者采用了dropout 来计算不确定性损失。具体算法的流程如下:

一、环境动态模型的定义与训练:

由于需要计算不确定性,作者采用了变分自编码器(VAE)的网络结构,其维护一个隐变量

[公式] ,而 [公式] 从后验分布 [公式] 中采样得到,其中, [公式] 表示开始至时刻 [公式] 的状态序列, [公式] 表示时刻 [公式] 的动作, [公式] 表示下一时刻状态的真值。因此,网络的损失函数由两部分构成:1.模型对下一时刻状态的重建损失;2.后验分布 与先验分布 [公式] 之间的距离度量损失,作者分别采用MSE Loss和KL-Divergence用于计算。即:

其中,作者定义 [公式] 的先验分布为高斯分布 。此外,作者提出了z-dropout,用于更好地将随机预测迁移到控制任务中。z-dropout将 [公式] 的采样变化为从两个混合高斯分布 [公式][公式] 中采样,使用一个从伯努利分布中采样的变量来决定。因为在控制任务中,我们需要 [公式] 能够对动作做出准确的反应,而不只是用 [公式] 去编码对下一状态的信息。计算过程如下:

当动态模型 [公式] 训练完成后,我们便可以直接从 [公式] 中采样 [公式] 来做随机预测。

二、驾驶策略的定义与训练:

有了学到的动态模型后,便可用它来学习策略函数。正如前文所述,作者考虑了两种损失,即驾驶策略的损失和不确定性损失,算法示意图如下:

考虑在 [公式] 时刻的情况,算法利用学到的驾驶动态模型 [公式] 产生 [公式] 步的训练样本。考虑在第 [公式] 步的情况,驾驶策略 [公式] 以上一时刻的预测状态 [公式] 作为输入,预测当前时刻的动作 [公式] ,动态模型 [公式] 以上一动作时刻的预测状态 [公式] ,驾驶策略 [公式] 预测的动作 [公式] ,和从高斯分布 [公式] 中采样的隐变量 [公式] 为输入,预测当前的状态 [公式] ,因此训练过程可以表示为:

其中, [公式] 为折衷因子, [公式] 为策略的预测损失, [公式] 为预测的不确定度量,作者定义 [公式] 个不同dropout mask的环境动态模型 [公式] 的方差和作为该度量的值,即:

作者将提出的方法命名为MPUR(Model-Predictive Policy with Uncertainty Regularization)。同时,作者考虑了一种特殊情况,即不确定性度量完全由训练数据决定,此时 [公式] ,算法退化为基于模型的模仿学习,同时考虑了不确定度量。具体训练过程可以表示为:

作者将该对比版本命名为MPER(Model-Predictive Policy with Expert Regularization)。

作者在NGSIM I-80数据集做了实验,这个数据集含有45分钟的真实驾驶场景数据,同时驾驶行为复杂包括了突然加速,变道,合道等动作,共拥有5596条驾驶轨迹,大致2百万个样本。实验结果如下:

从实验结果来看,作者提出的方法在效率上对比基线算法有较大提升,能够学习到一个较好的驾驶策略。但是对比人类来说还有一定的差距。

针对自动驾驶环境复杂、昂贵和危险性的特点,基于模型的离线学习方法被认为是非常有前景的,这类方法能从海量驾驶数据中高效率地学习到一个驾驶策略。本文列举了其中一个算法,它主要从神经网络模型的不确定性度量出发,从类似贝叶斯神经网络的原理,构建了一个多步随机动态模型和策略,对驾驶数据的分布不匹配具有一定的鲁棒性