End-to-End Urban Driving by Imitating a Reinforcement Learning Coach
CARLA-Roach
ICCV‘21论文:模仿一个强化学习教练的端到端城市驾驶
文章目录
- Roach输入
- BEV语义分割图像
- 测量向量
- Roach输出
- 训练
- 策略网络
- 价值网络
- 具体实现
- 由 Roach 监督的模仿学习(IL)智能体
- 硬目标
- 动作分布损失
- 特征损失
- 价值损失
Roach输入
BEV语义分割图像
采用 BEV 语义分割图像 i∈ [ 0 , 1 ] W ∗ H ∗ C [0,1]^{W * H *C} [0,1]W∗H∗C 来降低问题复杂度。它由基于真实模拟状态(GT)渲染的c个大小为W * H 的灰度图像组成。
自车(ego - vehicle)朝上,在图像中位于底部上方 D像素处且不被渲染。通过不同的通道来表示不同的信息,
Fig. 2a 渲染可行驶区域,
Fig. 2b 展示预期路线,
Fig. 2c 中实线为白色、虚线为灰色表示车道边界,
Fig. 2d 是包含自行车和车辆(以白色边界框表示)的 个灰度图像的时间序列
Fig. 2e 类似但针对行人
Fig. 2f 渲染交通灯的停止线和停车标志的触发区域,且不同颜色的交通灯和停车标志有不同的亮度表示。红灯和停车标志按最亮的级别着色,黄灯按中间级别着色,绿灯按较暗级别着色。当停车标志处于激活状态(自车进入其附近且自车完全停止后消失)时进行渲染,这样 BEV 表示能够记忆自车是否停止,从而可以使用无循环结构的网络架构,减小了 Roach 的模型尺寸。
所有通道的彩色组合在 Fig. 1 中可视化呈现。
测量向量
Roach 输入测量向量 m R L ∈ R 6 m_{RL}∈R^{6} mRL∈R6 ,它包含 BEV 中未表示的自车状态,如转向、油门、刹车、挡位、横向和水平速度的真实测量值。这些额外的信息有助于 Roach 更全面地了解自车的动态情况,从而做出更准确的决策
Roach输出
CARLA 的低级动作包括转向(steering)∈[-1,1]、油门(throttle)∈[0,1] 和刹车(brake)∈[0,1]
降低问题复杂度的一种有效方法是预测路径点计划,然后由 PID 控制器跟踪这些计划以产生低级动作 [9, 40]。然而,PID 控制器对于轨迹跟踪并不可靠,且需要大量的参数调整。
基于模型的控制器会是一个更好的解决方案,但无法直接获取 CARLA 的车辆动力学模型。为避免参数调整和系统识别,Roach 直接预测动作分布:
其转向和加速度的动作空间为a∈
[
−
1
,
1
]
2
[-1,1]^2
[−1,1]2,其中正加速度对应油门,负加速度对应刹车。
我们使用 Beta 分布B(α,β)来描述动作,其中αβ>0,分别是对 1 和 0 的集中程度。与在无模型强化学习中常用的高斯分布相比,Beta 分布的取值范围是有界的,从而避免了为强制满足输入约束而进行的截断或挤压操作。这使得学习问题的表现更好,因为不需要 tanh 层,并且可以显式地计算熵和 KL 散度。此外,Beta 分布的形态也适合驾驶。
训练
训练采用带裁剪的proximal policy optimization (PPO)方法训练策略网络和价值网络
价值网络训练回归期望回报,而策略网络更新通过以下公式:
策略网络
Lppo使得新策略在保证性能提升的同时不会过度偏离旧策略,从而实现稳定的学习过程,引导策略网络朝着能获得更高奖励的方向调整动作决策,不断优化驾驶策略,例如在路口、弯道等场景下做出更合理的转向、加速或减速决策。
Lent避免过早陷入局部最优解,增加对环境的探索。比如在面对复杂交通状况时,车辆不会局限于已有的经验动作,而是有一定概率尝试新的操作方式,可能发现更优的驾驶路径或应对策略,提高模型在不同场景下的通用性。
Lexp引导车辆在后续训练中避免再次出现类似的危险情况,同时保持转向不受影响(在某些情况下)。例如,如果车辆发生了碰撞或即将闯红灯,会在加速度上施加一个特定的分布(如pz=B(1,2.5)表示在加速维度上倾向于减速),帮助模型快速学习并纠正错误决策,增强在复杂交通规则场景下的安全性和适应性。它的主要作用是在训练过程中引导智能体进行更有针对性的探索,以避免重复出现导致情节终止的不良行为。当智能体处于类似的状态时,尝试不同的转向角度或速度,以找到更合适的行驶路线,避免再次偏离/碰撞
价值网络
未知???
具体实现
在(a)Roach架构中,用六个卷积层对 BEV 进行编码,两个全连接 (FC) 层对测量向量进行编码;两个编码器的输出连接在一起,由另外两个 FC 层处理产生潜在特征 jRL,然后输入到价值头和策略头中,每个头都有两个 FC 隐藏层;轨迹以 10 FPS 频率从六个 CARLA 服务器收集,每个服务器对应六个LeaderBoard地图的一个;在每个情节开始时,随机选择一对起始位置和目标(target)位置,并使用 A* 搜索算法计算所需的路线;一旦达到目标,就选择一个新的随机目标;除非满足 Z 的终止条件之一,否则该插曲不会结束。我们采用 [47] 中的奖励设置,并额外对大的转向变化进行惩罚,以防止车辆出现振荡操作。为避免高速违规,我们会添加一个与自车速度成比例的额外惩罚。
由 Roach 监督的模仿学习(IL)智能体
硬目标
动作分布损失
利用基于动作分布的新动作损失来替代LA
CILRS 的动作头被修改以预测分布参数,并且损失被定义为 Roach 专家预测的动作分布与 CILRS 智能体预测的之间的 KL 散度
为什么用KL散度呢:KL 散度能够有效度量两个概率分布之间的差异。
相比于传统的基于确定性动作的损失,利用 KL 散度基于动作分布的损失能够让智能体从更丰富的信息中学习,有助于提升智能体的性能和泛化能力。
特征损失
Roach 的潜在特征 jRL 是一种紧凑的表示,它包含驾驶所需的关键信息,因为它可以通过仅由两个 FC 层组成的动作头映射到专家动作(参见图 3a)。此外,由于 Roach 使用鸟瞰图(BEV)表示,jRL 对渲染和天气变化具有不变性。学习将相机图像嵌入到 jRL 的潜在空间中应该有助于 IL 智能体泛化到新的天气和新的情况。因此,我们提出特征损失
价值损失
Roach 预测的值包含驾驶相关信息,因为它估计了预期的未来回报,这与情况的危险程度相关。因此,我们给 CILRS 增加一个价值头并将价值回归作为一个辅助任务。价值损失是 Roach 估计的值v帽与 CILRS 预测的值 v 之间的均方误差