Sensor/组织: EPFL Sharif University of Technology

Status: Finished

Summary: 看看框架图就行。高效缓解因果混淆问题,将因果作为学习输出前一层进行判断

Type: arXiv

Year: 2021

1. Motivation

模仿学习是一种通过利用来自专家驾驶员演示的数据来学习自动驾驶策略的强大方法。然而,通过模仿学习训练的驾驶策略忽略了专家演示的因果结构会产生两种不良行为:inertia and collision

问题场景

参考文献[9] 提出:

  1. 对于罕见事件的weak performance →datasets bias
  2. 对于学习策略的高方差 → stochastic learning
  3. 对于因果混淆问题 → 缺乏 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

简单图 主要contribution 在高亮 cause discovery 处

在本文中,我们提出了因果模仿模型(CIM)来解决 inertia 和 collision problem。 CIM 显式发现因果模型并利用它来训练策略。 具体来说,CIM 将输入分解为一组 latent variables ,选择因果变量,并通过利用所选变量确定下一个位置。 我们的实验表明,我们的方法在惯性和碰撞率方面优于以前的工作。

此外,由于利用了因果结构,CIM 将输入维度缩小到只有两个,因此可以在几次设置中适应新环境。

2. Method

notation:

  • \(t\) 时间步数
  • \(O^t\) 高维的 scense 观测
  • \(\mathcal T^t\) 专家的未来轨迹
  • 专家策略生成的专家轨迹:\(\mathcal T ∼ \pi(\cdot|O)\)
  • 我们想使用 \((O^t,\mathcal T^t)\) 来近似出来一个策略 \(\pi\)

模仿学习最简单的形式就是行为克隆 behavior cloning,也把policy learning问题变成了一个监督学习,在这个过程中 是 \(\pi\) 直接将 \(O\) 映射得到 \(\mathcal T\),然后再通过一个low-level controller来进行跟踪轨迹即可


根据[10] 的启发,首先把专家的demonstrations 看做一个 sequential decision-making process,所以每一个观测 \(O^t\) 都可以分解 disentangled into some generative factors \(Z^t=[Z^t_1,Z^t_2,\dots,Z^t_k]\)

其中 \(k\) 就是生成出来的因子个数,每一步时间t 都有这样的factor对应。为了规划未来的轨迹:

  1. 通过现在的状态 \(Z^t\) 预测下一步的速度 \(S^t_{\text{forward}}\)
  2. 根据预测的速度 \(S^t_{\text{forward}}\) 和状态 \(Z^t\) 得到下一步的轨迹
  • 也就是把观测先走到因子 可以直接认为成观测输入 一层MLP 输出? latent variable

    是的 只是使用的模型不是单纯的一层FC 走了一个感知模型进行输出

2.1 输入

上帝视角的鸟瞰图和提取其他agent后的渲染图,简述即两幅图

2.2 框架

主要分为两个部分:

  1. imitative model:主要处理静态障碍物 的场景导航,无其他agent 交互的考虑,只考虑专家数据的位置分布密度 \(q(\hat{\mathcal{T}} \mid O ; \theta)\) ,主要使用现有的模仿模型,训练取得最大似然估计

    \[q(\hat{\mathcal{T}} \mid O ; \theta)\theta^{*}=\underset{\theta}{\arg \max } \mathbb{E}[\log q(\hat{\mathcal{T}} \mid O ; \theta)]
    \]
  2. causal pipeline:主要预估速度和一下三个部分

    1. 感知模型 embeds observation into disentangled representation,整个模块使用的是 \(\beta\)-VAE [16] 的模型 然后输出到128个分解出来的变量 \(Z\)

    2. 因果速度预测:识别与速度有关的因果 并找到 the next step speed using them

      主要是使用 Granger-cause 的一些定义: \(X^t\) 是 \(Y^t\) 的 Granger-cause,如果知道过去的 \(X^t\) 可以帮助到预测未来的 \(Y^t\)

      当下列条件满足,则说明 \(X^t\) 是 \(Y^t\) 的 Granger-cause

      \[\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}
      \]

      其中 \(\sigma_{Y}\left(h \mid \Omega^{t}\right)\) 是 时间 \(t\) 下给\(\Omega^{t}\)信息时 h-step下的预测 \(Y^t\) 的MSE 平均方差误差,\(\Omega^{t}\) 是指全局下所有与 \(Y^t\) 有关的信息

  • 温馨链接:Granger causality wiki page

    摘取wiki至:格蘭傑因果關係檢驗(英語:Granger causality test)是一種假設檢定的統計方法,檢驗一組時間序列是否為另一組時間序列{\displaystyle y}的原因。它的基礎是迴歸分析當中的自迴歸模型。迴歸分析通常只能得出不同 變量間的同期 相關性;自迴歸模型只能得出同一 變量前後期 的相關性;但諾貝爾經濟學獎得主克萊夫·格蘭傑(Clive Granger)於1969年論證[1] ,在自迴歸模型中透過一系列的檢定進而揭示不同變量之間的時間落差相關性是可行的。

  • 所以第一部分的现成的是啥模型?输入是啥传感器信息 还是直接是上帝视角?

    见输入,模型使用的是DIM参考文献的

  • 是指下一个step中 使用这些因果的速度吗?

2.3 输出

各自的两部分输出由框架图可知

  1. imitative model 是 输出轨迹点
  2. perception model 走到 disentangled gerative factor 然后输出
  3. cause selector 输出走到 速度预测模块 输出速度,配合前面的轨迹点
  4. 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

温馨提示RIP:

ICML2020: Can Autonomous Vehicles Identify, Recover From, and Adapt to Distribution Shifts?

  • 套娃读一下DIM 对比一下

4. Conclusion

贡献如上,主要是做了一层分解的latent variables 选择因果变量,limitation也指出:

  1. 根据原文5.5 可知分解效果 the performance of the disentabglement method 是本文的一个局限性,更好的 分解方式 可能带来更好的结果
  2. 本文仅针对inertia和collision 这两个问题,并没有扩展到整个 scene navigation 问题
    • 是指传统的行为规划问题吗? behaviour planning

碎碎念

自己提出一个问题 and 解决一个问题,另外标准也由自己定,比较特别的是关于causal selector的选择和使用,就是没对着代码看 还没特别理解这个步骤,但是大概知道了 噢,原来可以这么玩。

  • 看了一眼代码 只给出了MLP的 CIM-MLP... 走 model = MLP().to(device)

【论文阅读】Causal Imitative Model for Autonomous Driving的更多相关文章

  1. #论文阅读# Universial language model fine-tuing for text classification

    论文链接:https://aclweb.org/anthology/P18-1031 对文章内容的总结 文章研究了一些在general corous上pretrain LM,然后把得到的model t ...

  2. tensorfolw配置过程中遇到的一些问题及其解决过程的记录(配置SqueezeDet: Unified, Small, Low Power Fully Convolutional Neural Networks for Real-Time Object Detection for Autonomous Driving)

    今天看到一篇关于检测的论文<SqueezeDet: Unified, Small, Low Power Fully Convolutional Neural Networks for Real- ...

  3. 论文阅读笔记 Word Embeddings A Survey

    论文阅读笔记 Word Embeddings A Survey 收获 Word Embedding 的定义 dense, distributed, fixed-length word vectors, ...

  4. 论文阅读笔记三十九:Accurate Single Stage Detector Using Recurrent Rolling Convolution(RRC CVPR2017)

    论文源址:https://arxiv.org/abs/1704.05776 开源代码:https://github.com/xiaohaoChen/rrc_detection 摘要 大多数目标检测及定 ...

  5. 论文阅读笔记六:FCN:Fully Convolutional Networks for Semantic Segmentation(CVPR2015)

    今天来看一看一个比较经典的语义分割网络,那就是FCN,全称如题,原英文论文网址:https://people.eecs.berkeley.edu/~jonlong/long_shelhamer_fcn ...

  6. Autonomous driving - Car detection YOLO

    Andrew Ng deeplearning courese-4:Convolutional Neural Network Convolutional Neural Networks: Step by ...

  7. 论文阅读笔记 Improved Word Representation Learning with Sememes

    论文阅读笔记 Improved Word Representation Learning with Sememes 一句话概括本文工作 使用词汇资源--知网--来提升词嵌入的表征能力,并提出了三种基于 ...

  8. Event StoryLine Corpus 论文阅读

    Event StoryLine Corpus 论文阅读 本文是对 Caselli T, Vossen P. The event storyline corpus: A new benchmark fo ...

  9. Behavior Trees for Path Planning (Autonomous Driving)

    Behavior Trees for Path Planning (Autonomous Driving) 2019-11-13 08:16:52 Path planning in self-driv ...

  10. YOLO 论文阅读

    YOLO(You Only Look Once)是一个流行的目标检测方法,和Faster RCNN等state of the art方法比起来,主打检测速度快.截止到目前为止(2017年2月初),YO ...

随机推荐

  1. 批量解压上传SAP Note

    最近在做印度GST相关的东西,需要手动给系统实施上百个SAP Note,十分繁琐. 标准事务代码SNOTE只支持每次上传一个Note,逐个上传大量Note会很麻烦,为此摸索出一个批量解压上传的流程,下 ...

  2. C++指针与引用(Pointers OR References)

    一.Pointers Pointer是指针,可以用来指向任何一个objects,包括一般变量: 1 int i = 3; 2 int * pi = &i; 3 cout << pi ...

  3. 模型压缩与部署-书生浦语大模型实战营学习笔记5&大语言模型11

    大语言模型-11.模型压缩与部署 书生浦语大模型实战营学习笔记4-模型压缩与部署 本文包括第二期实战营的第5课内容,介绍关于模型压缩的相关内容,主要包括.模型量化和模型部署的相关内容. 模型部署 定义 ...

  4. Docker手工部署GO环境

    参考: (最新2020)Golang 使用Dockerfile 打包部署到 docker https://blog.csdn.net/weixin_44042863/article/details/1 ...

  5. EAV模型(实体-属性-值)的设计和低代码的处理方案(1)

    一般我们在开发的时候,习惯上使用常规的关系型数据库来设计数据库表,对于一些业务表的字段比较固定的场景,是一种非常不错的选择,而且查询的时候,由于是基于固定的表字段进行查询,性能基本上是最优的.不过有一 ...

  6. 数据库中存储bool对象的数据,使用Bit和Integer有什么区别,性能上有多大的差异

    在数据库中存储布尔(Boolean)值时,常见的两种选择是使用 BIT 类型或 INTEGER 类型.两者在存储.性能和使用上的区别如下: 1. BIT 类型 存储:BIT 类型专门用于存储布尔值.通 ...

  7. smtplib详解,发送邮件

    创建邮箱账号 1.官网登录邮箱. 2.在邮箱的主界面找到"设置",新版的主界面与旧版稍有不同,一般位于上方,齿轮状的即是. 3.点击齿轮状的设置标志,会弹出一个下拉菜单,在最后有我 ...

  8. VSCode配置JetBrains Mono字体

    1. 下载JetBrains Mono字体 官网下载地址:https://www.jetbrains.com/lp/mono/ 2. 在VSCode配置字体 { "editor.fontFa ...

  9. C# WinForm控件及其子控件转成图片(支持带滚动条的长截图)

    概述(Overview) 参考了网上的分析,感觉都不太理想:1.一个控件内如果包含多个子控件时没有考虑顺序问题:2.超出控件可显示区域时不能长截图,有滚动条会多余截取了滚动条.这个随笔旨在解决这个问题 ...

  10. Qt-FFmpeg开发-打开本地摄像头录制视频(7)

    音视频/FFmpeg #Qt Qt-FFmpeg开发-打开本地摄像头录制视频[软解码+ OpenGL显示YUV] 目录 音视频/FFmpeg #Qt Qt-FFmpeg开发-打开本地摄像头录制视频[软 ...