其他分享
首页 > 其他分享> > 【论文阅读】Exploring the Limitations of Behavior Cloning for Autonomous Driving

【论文阅读】Exploring the Limitations of Behavior Cloning for Autonomous Driving

作者:互联网

Column: January 16, 2022 11:11 PM
Last edited time: January 21, 2022 12:23 PM
Sensor/组织: 1 RGB
Status: Finished
Summary: carla leaderboard的前身,首次提出 IL BC的几点问题 及较为简单的解决办法 实验结果证明较为有效
Type: ICCV
Year: 2019
引用量: 148

1. Motivation

摘要问题描述写的挺好的,首先说明 driving 不是一件容易的事,然后数千种专家策略对应场景是不现实的,所以behaviour cloning就出来了 (其实感觉和imitation learning说的是同一件事)

BC 有很多都已经实现不错了,但是呢:scaling to the full spectrum of driving behaviors 还是一个未解的问题,所以本文主要就是提出benchmark去调研 scalability and limitationss of BC

简述版:有很多论文都在讲怎么建立end2end IL agent,怎样训练等,将这些模块化进行测试等,但没有论文专门去说 这种技术存在怎样的问题

问题场景

1. Dataset Biases

现实世界中的大多数驾驶都包含一些简单的行为或对罕见事件的复杂反应。 因此,随着收集更多数据,这可能导致性能下降,因为与 main mode of demonstrations 相比,数据集的多样性增长速度不够快。

2. causal confusion 因果混淆

会产生 Inertia Problem 描述:比如会把训练中的low speed识别成没有油门往上踩, low speed → No Throttling;所以特别是在不熟悉的场景中,训练出的agent通常会无理由的直接停下来

oral ppt 中的示意图

同时也和dataset biases 也有关系,比如:当车辆停止时,例如在红灯处,训练集中车辆保持静止的概率非常高。然后这会使得模型在low speed和 no throttling 之间产生虚假的相关性,从而在模仿学习的模型会产生过度停止和难以重新启动的问题。

其他模型,比如先将交通信号灯等,提前进行一层感知 则就没有inertia problem了,但它们在无约束环境中的端到端学习仍然表现不佳,而且并非所有原因都可以被建模(例如,一些潜在的障碍) 并且感知层的错误(例如,漏检)是不可恢复的。

3. high variance 高方差

描述:对于网络初始化的不同和图像采样顺序的不一样都会造成结果的不一致导致模型稳定性较低,另外对于输出的动作也可以看到有高方差的分布情况

oral ppt 中的示意图

数据集和初始化之间的合起来 判断方差计算为:

\[\operatorname{Var}(\pi)=\mathbb{E}_{D}\left[\operatorname{Var}_{I}(\pi \mid D)\right]+\operatorname{Var}_{D}\left(\mathbb{E}_{I}[\pi \mid D]\right) \]

其中\(I\) 为不同的随机初始化,\(D\) 为不同的数据集

Contribution

  1. 提出了一个新benchmark → NoCrash 主要是针对Town01 但是动态障碍物较多的场景测试环境

  2. 调研、分析并总结了 端到端模仿学习中出现的问题及相关原因

  3. 配合CILRS(提出的端到端的框架)证明在大规模 off-policy dataset BC 可以在泛化性能方面大大提高现有技术 ,比如与带有额外监督的感知方法(非端到端 而是在中间感知结果输出做一层loss 有点像)比如GRI和MaRLn的方案

    这要归功于使用更深层次的Resnet以及额外的速度预测目标和良好的正则化

2. Method

主要是根据CIL[12],基于模型更为泛化的 模块思路[26] 、affordance based [37]、RL [27] 改进而成

2.1 输入及输出

输入

仅相机图片 + 测量所得速度,论文中并没有介绍详细输入信息

  1. 代码中,x=2.0,y=0.0,z=1.4, FOV=100,原照片尺寸800x600,然后经过处理到,看到网络输入那边是256x256

    sensor = sensors[name][g_conf.IMAGE_CUT[0]:g_conf.IMAGE_CUT[1], ...]
    
    • [ ] 但是如果单单是cut来讲的话,有点... 截太多了吧
  2. 测量所得速度值

    • [ ] 但是简略看代码时并没有发现速度值到底是谁的速度值,是周边所有车辆的还是仅仅自身速度

输出

2.2 框架

非常简单的框架图,直接输入的image 用resnet34来走,原因可以减少bias和方差,特别是由于网络宽度和深度的训练集采样而保持恒定的方差

这块论文并没有仔细解释,代码中看起来更快一点,但是因为没运行就没写出准确的输入输出的大小了,Image进来 b x 3 x 256 x 256,然后经过resnet输出为B x flatten后长度

①:经过几层全连接 最后输出预测速度

②:从resnet输出的flatten 配合 ③全连接输出的 合在一起

③:测量得到的速度值经过几层全连接 拉平后和②合在一起

④:合在一起后进入CM(实际在代码中也是几层全连接层)最后输出动作

3. 实验及结果

首先是场景:

  1. Empty Town:指环境中没有动态障碍物
  2. Regular Traffic:环境中有适量的车和行人
  3. Dense Traffic:环境中有大量的车和行人

专家数据使用的是ground truth得到的信息进行的,但是文章并没有过多解释专家数据的建立,只说专家数据在Nocrash这个benchmark中保证不会有错误数据,比如撞车现象发生。

一共收集了100个小时的驾驶数据 CARLA100,然后每个模型仅用10个小时的子集进行训练。训练中详情:

  1. 使用120个minnibatch,用的Adam进行训练,初始的学习率为0.0002
  2. 每1000个iter没有检测到train error下降,则将学习率除10
  3. 每20k个iter做一次2小时的val,如果val error在3个迭代次数中上升 则停止这个训练并使用此次退出来的模型参数进行测试

metric 评判标准:不是现在的leaderboard上的碰撞扣分制,而是只要有碰撞超过固定时间就算失败 不继续下面的任务,以此来计算成功次数

4. Conclusion

和contribution一致,总结了论文干了什么:

  1. 提出benchmark 主要针对 动态障碍物多的场景对 模型构成的问题,用来验证自身模型的泛化性
  2. 提出一个baseline,指出e2e的方案 带残差模型的时候,比其他中途输出感知再拉平add的效果会更好

然后以此为基点后的问题还有什么,原因是什么:

  1. 场景中动态对象的数量直接伤害了所有policy learning,因为multi-agent dynamics不是直接捕获的。
  2. BC的自我监督性质使其能够扩展到large dataset,但会出现 diminishing returns 所需对特定 驾驶数据集偏差 进行处理,特别是造成因果混淆的偏差 (intertia problem)、收益递减。现有的缓解方法是获取更多的 informative intermediate representations,either learning[3],or using strong domian knowledge[5]
  3. 初始化和采样顺序导致的巨大差异表明,在相同的 off-policy 数据上多次运行是确定最佳策略的关键。This is a part of the broader deep learning challenges regrading non-convexity and initialization, curriculum learning, and traing stability

碎碎念

  1. 原来nocrash的benchmark是这里来的... 看了好几篇排行榜上的论文提到这个场景下的东西 → 但是这个是0.8的老版本,看好像都是.txt的场景生成

    后面仔细看发现 这个应该是carla leaderboard的前身,是Carla 团队的文章,后面才以此为基准做了整个carla leaderboard

  2. 感觉这篇文章的主要贡献就是提出了一个benchmark 给大家以后做实验 去验证自己的模型有多好,其余说的问题 说出来了,但是解决办法很简单 而且没有进行前后对比说明是这个办法解决了这个问题 emmm 直接对比的是结果

    事实证明 做了 CILR 和 CILRS 就是关于有无 速度预测正则化

  3. 也就是说这个benchmark 只有一个目标点,不像现在进化的leaderboard 多个目标点 仅中途还带换道,和124个事故场景测试等等,所以就算知道ground truth也很难写出一个完全完美的专家数据 → 所以才衍生出这么多拿DRL来试的方案

  4. 这篇的benchmark其实没有现在进化版leaderboard的场景复杂且大,做单个问题/模型方法验证比较合适,但是也正因为数据集场景还是单一了 比如换道、高速别车等没考虑 所以metirc 只用success也还行 emmm

标签:Limitations,Exploring,场景,Driving,训练,输出,outputs,模型,benchmark
来源: https://www.cnblogs.com/kin-zhang/p/15830742.html