Sensor/组织: EPFL Sharif University of Technology
Status: Finished
Summary: 看看框架图就行。高效缓解因果混淆问题,将因果作为学习输出前一层进行判断
Type: arXiv
Year: 2021
-
参考与前言
主页:
Causal Imitative Model for Autonomous Driving
arxiv地址:
Causal Imitative Model for Autonomous Driving
github:https://github.com/vita-epfl/CIM
1. Motivation
模仿学习是一种通过利用来自专家驾驶员演示的数据来学习自动驾驶策略的强大方法。然而,通过模仿学习训练的驾驶策略忽略了专家演示的因果结构会产生两种不良行为:inertia and collision
问题场景
参考文献[9] 提出:
- 对于罕见事件的weak performance →datasets bias
- 对于学习策略的高方差 → stochastic learning
- 对于因果混淆问题 → 缺乏 explicit causal model
而这篇文章主要解决的就是第三点 → 提出 causal model,接下来是更为明确的问题场景
inertia problem
在这篇 [9] 提出的问题并没有针对性解决 ICCV2019: Exploring the Limitations of Behavior Cloning for Autonomous Driving
这篇文章主要把inertia problem看做是因果混淆问题 causality 在[10] 中提出了这点但是因为算法复杂度与latent variable是指数级别增长,所以对于自动驾驶来说 [10] 解法可能还是太贵了
-
有空再套娃 [10] 看看怎么解决因果混淆问题的 Dagger
[10] 摘要部分:通过有针对性的干预——环境交互或专家查询——来确定正确的因果模型来解决因果混淆问题。 我们表明,因果错误识别发生在几个基准控制域以及现实驾驶设置中,并针对 DAgger 和其他基线和消融验证我们的解决方案
collision problem
主要是训练好的agent 并没有躲避其他车辆,就是和其他车辆撞上了
总结起来,论文指出应该要同时考虑这两个东西,因为如果分开考虑的话,就很有可能为了避免一方而牺牲一方,例如:为了解决inertia问题,一种trick是可以在某些情况下加速 开油门; 然而,这样很有可能导致撞车
Contribution
![](https://i-blog.csdnimg.cn/blog_migrate/533af876442c7f26962fa39cc43e8add.png)
简单图 主要contribution 在高亮 cause discovery 处
在本文中,我们提出了因果模仿模型(CIM)来解决 inertia 和 collision problem。 CIM 显式发现因果模型并利用它来训练策略。 具体来说,CIM 将输入分解为一组 latent variables ,选择因果变量,并通过利用所选变量确定下一个位置。 我们的实验表明,我们的方法在惯性和碰撞率方面优于以前的工作。
此外,由于利用了因果结构,CIM 将输入维度缩小到只有两个,因此可以在几次设置中适应新环境。
2. Method
notation:
- t t t 时间步数
- O t O^t Ot 高维的 scense 观测
- T t \mathcal T^t Tt 专家的未来轨迹
- 专家策略生成的专家轨迹: T ∼ π ( ⋅ ∣ O ) \mathcal T ∼ \pi(\cdot|O) T∼π(⋅∣O)
- 我们想使用 ( O t , T t ) (O^t,\mathcal T^t) (Ot,Tt) 来近似出来一个策略 π \pi π
模仿学习最简单的形式就是行为克隆 behavior cloning,也把policy learning问题变成了一个监督学习,在这个过程中 是 π \pi π 直接将 O O O 映射得到 T \mathcal T T,然后再通过一个low-level controller来进行跟踪轨迹即可
根据[10] 的启发,首先把专家的demonstrations 看做一个 sequential decision-making process,所以每一个观测 O t O^t Ot 都可以分解 disentangled into some generative factors Z t = [ Z 1 t , Z 2 t , … , Z k t ] Z^t=[Z^t_1,Z^t_2,\dots,Z^t_k] Zt=[Z1t,Z2t,…,Zkt]
其中 k k k 就是生成出来的因子个数,每一步时间t 都有这样的factor对应。为了规划未来的轨迹:
- 通过现在的状态 Z t Z^t Zt 预测下一步的速度 S forward t S^t_{\text{forward}} Sforwardt
- 根据预测的速度 S forward t S^t_{\text{forward}} Sforwardt 和状态 Z t Z^t Zt 得到下一步的轨迹
-
也就是把观测先走到因子 可以直接认为成观测输入 一层MLP 输出? latent variable
是的 只是使用的模型不是单纯的一层FC 走了一个感知模型进行输出
2.1 输入
上帝视角的鸟瞰图和提取其他agent后的渲染图,简述即两幅图
![](https://i-blog.csdnimg.cn/blog_migrate/1414f3e8cc1b6b6da6bf7d7f5b2ffbb8.png)
2.2 框架
![](https://i-blog.csdnimg.cn/blog_migrate/a260582ba167eae3286fa591a7abf435.png)
主要分为两个部分:
-
imitative model:主要处理静态障碍物 的场景导航,无其他agent 交互的考虑,只考虑专家数据的位置分布密度 q ( T ^ ∣ O ; θ ) q(\hat{\mathcal{T}} \mid O ; \theta) q(T^∣O;θ) ,主要使用现有的模仿模型,训练取得最大似然估计
q ( T ^ ∣ O ; θ ) θ ∗ = arg max θ E [ log q ( T ^ ∣ O ; θ ) ] q(\hat{\mathcal{T}} \mid O ; \theta)\theta^{*}=\underset{\theta}{\arg \max } \mathbb{E}[\log q(\hat{\mathcal{T}} \mid O ; \theta)] q(T^∣O;θ)θ∗=θargmaxE[logq(T^∣O;θ)]
-
causal pipeline:主要预估速度和一下三个部分
-
感知模型 embeds observation into disentangled representation,整个模块使用的是 β \beta β-VAE [16] 的模型 然后输出到128个分解出来的变量 Z Z Z
-
因果速度预测:识别与速度有关的因果 并找到 the next step speed using them
主要是使用 Granger-cause 的一些定义: X t X^t Xt 是 Y t Y^t Yt 的 Granger-cause,如果知道过去的 X t X^t Xt 可以帮助到预测未来的 Y t Y^t Yt
当下列条件满足,则说明 X t X^t Xt 是 Y t Y^t Yt 的 Granger-cause
∃ h > 0 , s.t. σ Y ( h ∣ Ω t ) < σ Y ( h ∣ Ω t \ { X i } i = 0 t ) (1) \exists h>0, \text { s.t. } \sigma_{Y}\left(h \mid \Omega^{t}\right)<\sigma_{Y}\left(h \mid \Omega^{t} \backslash\left\{X^{i}\right\}_{i=0}^{t}\right) \tag{1} ∃h>0, s.t. σY(h∣Ωt)<σY(h∣Ωt\{Xi}i=0t)(1)
其中 σ Y ( h ∣ Ω t ) \sigma_{Y}\left(h \mid \Omega^{t}\right) σY(h∣Ωt) 是 时间 t t t 下给 Ω t \Omega^{t} Ωt信息时 h-step下的预测 Y t Y^t Yt 的MSE 平均方差误差, Ω t \Omega^{t} Ωt 是指全局下所有与 Y t Y^t Yt 有关的信息
-
-
温馨链接:Granger causality wiki page
摘取wiki至:格蘭傑因果關係檢驗(英語:Granger causality test)是一種假設檢定的統計方法,檢驗一組時間序列{\displaystyle x}是否為另一組時間序列{\displaystyle y}的原因。它的基礎是迴歸分析當中的自迴歸模型。迴歸分析通常只能得出不同 變量間的同期 相關性;自迴歸模型只能得出同一 變量前後期 的相關性;但諾貝爾經濟學獎得主克萊夫·格蘭傑(Clive Granger)於1969年論證[1] ,在自迴歸模型中透過一系列的檢定進而揭示不同變量之間的時間落差相關性是可行的。
-
所以第一部分的现成的是啥模型?输入是啥传感器信息 还是直接是上帝视角?
见输入,模型使用的是DIM参考文献的
-
是指下一个step中 使用这些因果的速度吗?
2.3 输出
各自的两部分输出由框架图可知
- imitative model 是 输出轨迹点
- perception model 走到 disentangled gerative factor 然后输出
- cause selector 输出走到 速度预测模块 输出速度,配合前面的轨迹点
- contrller 输出动作:油门 方向盘 刹车
3. 实验
指标:
- Inertia rate:来源于[9] 超过15s的 零速度即视为 inertia rate
- Collision rate:与其他车辆相撞
- Error rate:前两者相加
用DIM [32],RIP [12] 做对比实验
外加两组消融实验,把CIM里面的cause selector直接换成 MLP进行再输出速度的 CIM-MLP;还有感知模型,直接使用原有的VAE而不是 β \beta β-VAE的 CIM-entangled
![](https://i-blog.csdnimg.cn/blog_migrate/be777d08f06075c3b6454483690cbfc5.png)
温馨提示RIP:
ICML2020: Can Autonomous Vehicles Identify, Recover From, and Adapt to Distribution Shifts?
- 套娃读一下DIM 对比一下
4. Conclusion
贡献如上,主要是做了一层分解的latent variables 选择因果变量,limitation也指出:
- 根据原文5.5 可知分解效果 the performance of the disentabglement method 是本文的一个局限性,更好的 分解方式 可能带来更好的结果
- 本文仅针对inertia和collision 这两个问题,并没有扩展到整个 scene navigation 问题
- 是指传统的行为规划问题吗? behaviour planning
碎碎念
自己提出一个问题 and 解决一个问题,另外标准也由自己定,比较特别的是关于causal selector的选择和使用,就是没对着代码看 还没特别理解这个步骤,但是大概知道了 噢,原来可以这么玩。
- 看了一眼代码 只给出了MLP的 CIM-MLP… 走
model = MLP().to(device)