C/C++教程

【论文阅读】GRI: General Reinforced Imitation and its Application to Vision-Based Autonomous Driving

本文主要是介绍【论文阅读】GRI: General Reinforced Imitation and its Application to Vision-Based Autonomous Driving,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

Column: December 30, 2021 11:01 PM
Last edited time: January 10, 2022 4:45 PM
Sensor/组织: 3 RGB; 曾经短暂的第一名
Status: 正在套娃
Summary: RL; carla leaderboard
Type: arXiv
Year: 2021

  • 参考与前言

    1. 论文地址:https://arxiv.org/abs/2111.08575

    模块化思想有点意思,但是好像和看过的某一篇特别相似 关于先相机出seg部分 再到下一层,类似于一个中途检查效果 想起来了 和 MaRLn 一个部分很像 → 原文在3.2部分引用说了参考于那边

1. Motivation

DRL [7, 16, 17 22] 慢慢被证实 能处理复杂决策,但是因为DRL同时也具有极高的复杂度和低稳定性。而一般专家数据(模仿学习)能帮忙缓解一下这个问题。所以本文就是融合这两者之间 DRL和 IL 来进行训练。

  • low stability 需要套娃看一下是什么样的低稳定性

Contribution

主要就是针对上面的问题而来的,总结一句就是融合了两者之间的关系,提出一个框架来训练,做了很多实验证明这样效果很好

Untitled

发现learning方向的文章 消融实验做的特别多 为了证明自己这一块加入的重要性

2. Method

整体框架,从下图可以基本看出整体的融合就是先训练其中一个然后反向传播后再联合进入第二阶段

  1. 第一阶段的对比都由输出的结果对比而不是动作进行loss判断
  2. 第二阶段由第一阶段结果add 然后进到DRL框架对输出动作和专家动作进行loss判断

Untitled

  • 具体这个add操作看一下论文有讲吗 不然只能等代码开出来 虽然好像也没说要开

    直接一个输出是224,一个是3x448 然后直接flatten 拉到了1568

2.1 输入

首先是传感器配置位置 三个相机,以车为中心放置于: x = 2.5 m , z = 1.2 m  and  y ∈ { − 0.8 , 0 , 0.8 } x=2.5m,z=1.2m \text{ and } y \in \{-0.8,0,0.8\} x=2.5m,z=1.2m and y∈{−0.8,0,0.8} 也就是left center right分布,两边的相机有 70度的转角偏置,所有相机都是100度FOV。这样看来相机之间有共同部分 也较为合理 感觉更好激活一点

这一层输入应该说需要分阶段去考虑

  1. 首先整体的action数据根据不同的 p demo = 0.25 p_{\text{demo}}=0.25 pdemo​=0.25,然后还有 专家数据的reward=1,得到后的reward进行归一化后,再靠近这个专家reward也就是1
  2. 看相机输入的话,是232x352x3然后放到分类和分割器里 两层均参考于 [23]
  3. 关于动作进行了离散化 27个 steering values 和 4个油门或者刹车值,所以在RL那层动作离散空间就是 27 × 4 = 108 27\times4=108 27×4=108 个
  • 看输出发现问题了,首先是关于两个阶段的loss function都没给

    因为直接用的EfficientNet 那一套?所以

  • reward判定也没给,只说要靠近专家数据的reward 但是你专家数据reward也是从一个评判中获取的,原来还有比MaRLn更简略的 人家只是简略不开那块代码 这个倒好 直接不介绍了 emmm

    话说太早了,看到后面有了 直接参考MaRLn hhhh 所以才没啥介绍 -> 温馨链接:End-to-End Model-Free Reinforcement Learning for Urban Driving Using Implicit Affordances

    以下RL全部摘自上文参考中:

    RL 设置

    首先选的是value-based method,当然这样的设置就导致我们看的动作都是离散的,文中并没有做policy-based的对比(挖坑 后面做),借鉴开源的Rainbow-IQN Ape-X 但是去掉了dueling network

    温馨链接:RL policy-based method和value-based method区别

    Reward Shaping

    原来这个shaping是指… reward setting

    计算的方法主要是 Carla提供了waypoint的API来进行判断,当遇到路口的时候,随机选择(左、右、直走),reward主要由以下三个决定

    • desired speed:reward range [0,1]

      如果在期望速度给最大1,然后线性打分当速度高了或者是低了,本文中期望速度为40km/h

      • 展开可见图片示意

        Untitled

    • desired position:reward range [-1,0]

      如果刚好在道路中心的路径点给0,然后和相距距离成反比的给负reward,以下两种情况episode直接停止,并设reward为-1,本文设置 D m a x = 2 m D_{max}=2\text{m} Dmax​=2m 也正是中心线到路边缘的距离

      • 与中心路径点相距超过 D m a x D_{max} Dmax​
      • 与其他东西相撞,闯红绿灯,前无障碍物/红灯时 车辆停下来
    • desired rotation

      这一个设置的是因为 作者发现只有前两个的时候,车子会在有障碍物的时候直接停下,而不是绕行,因为绕行会让他的第二个reward下降,直行的话又会使他撞上去 → 有做消融实验证明

      reward 和 optimal trajectory的angle差距值成反比

      • 但是看到这点的时候,我本来打算看看rotation的reward范围,然后发现这个作者… 是假开源,他并没有开源RL expert的代码 emmm,也没有给出RL跑的数据集 → 按道理不给代码 给数据集应该不难?代码里只有load他的model~~,连Dataloader都没有 emmm~~
      • 还有一点是在换道的时候 reward还是会偏离原路径点的angle呀,如果是optimal trajectory的角度的话,并没有定义清楚optimal trajectory是由谁给出的

      噢 是不是 他在开头嫌弃的那个carla的expert?→ 不对啊 他不会换道呀

2.2 框架

大框架已经在上面给出,小部分主要是关于reward设置和分类器、分割器的网络分别细节部分

首先reward设置引用至:CVPR2020: End-to-End Model-Free Reinforcement Learning for Urban Driving Using Implicit Affordances

两个部分的框图(建议放大看):

摘自原文中

摘自原文中

然后基本就没啥然后了 因为直接参考的Efficientnet-b1 [23]和Rainbow-IQN Ape-X [25] backbone,看来又是一层套娃之旅

Figure 2也就是说的 视觉子系统,Figure 3就是决策子系统。

  • b1 pytorch 没有集成,难道是自己单独写了一个?但是这种一般用有pretrained的参数的网络会好一点吧?
  • 套娃 Efficientnet-b1
  • 套娃 Rainbow-IQN Ape-X

2.3 输出

首先在训练时 各自层的输出都是基于参考的backbone来的,还没开始套娃。最后的model输出当然就直接是动作,其中包括steering vale, throttle or brake value

3. Conclusion

基本没啥好说的了,重复了一遍contribution:

摘自原文

摘自原文

整体emmm 大框架值得参考,小细节需要套娃看一下,特别是add操作没有解释清楚 也没代码 无法对着看吧。 不过 p demo p_{\text{demo}} pdemo​ 是否也可以当做一个学习参数来进行,选取最好的?但是关于RL那块似懂非懂的 再瞅瞅

这篇关于【论文阅读】GRI: General Reinforced Imitation and its Application to Vision-Based Autonomous Driving的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!