Carla中实现车辆轨迹获得( 三 )


表中的数值为成功率,可以看到三个方法中 总体表现更好,RL则更差
模仿学习( )
参考链接:知乎-暨华-End-to-endviaIL
参考论文 > End-to-endvia
链接: arxiv
假设了最优的动作可以通过感知的输入直接得到 。但是直接通过感知数据会引入,最终输出的这些动作不一定是人类真的想要的 。相比起传统的模仿学习算法,直接输入观察输出控制信号,本方法model不仅拿到了专家的行为和观察,还拿到了专家的意图() 。在测试的时候则可以通过或者乘客来提供high-level的信号 。这样的话,本方法就把决策模块和控制模块区分开来,使得神经网络就能够只专注于底层的控制(油门多少、方向盘转多少),而不考虑高层的决策问题了(前面路口要左转还是右转) 。目标:? θ ∑ i l ( F ( o i ; θ ) , a i ) \{}_{\theta} \sum_{i} l\left(F\left(o_{i} ; \theta\right), a_{i}\right) θ?i∑?l(F(oi?;θ),ai?),其中F表示agent的策略,a表示专家的动作 。通常的模仿学习方法,有一个隐含的假设:专家的行为可以通过其观察来完全的解释 。
如果这个假设成立,那么一个很强的近似器就能学会专家的行为 。但是这个假设是有问题的 。专家在十字路口转弯,这个行为不能够通过十字路口的观察来解释,这实际上来自于专家的内部状态:他的意图 。如果我们直接使用随机的策略来最大化专家动作的这个,那么学到的agent最后肯定就是在十字路口瞎转悠 。假设专家存在一个隐变量h,专家的动作是隐变量和观察共同导致的: a i = E ( o i , h i ) a_{i}=E\left(o_{i}, h_{i}\right) ai?=E(oi?,hi?),E表示专家的将专家的意图暴露给之后的控制器,以的形式:c = c(h),若意图是左转,则就是打左转灯,训练时专家负责提供,测试时导航或乘客提供,因此数据集变为: D = { ( o i , c i , a i ) } i = 1 N \{D}=\left\{\left(o_{i}, c_{i}, a_{i}\right)\right\}_{i=1}^{N} D={(oi?,ci?,ai?)}i=1N?,此时-(命令条件模仿学习)的判决便是:? θ ∑ i l ( F ( o i , c i ; θ ) , a i ) \{}_{\theta} \sum_{i} l\left(F\left(o_{i}, c_{i} ; \theta\right), a_{i}\right) θ?i∑?l(F(oi?,ci?;θ),ai?)
c是一个 (分类变量),是一个one-hot 网络以图像和测量作为输入,以两个连续值,作为输出 。文章使用了两种方式来输入,第一种为 input,将 c和input一起输入可以支持连续和离散的任意维度的,第二种为, 为离散的,每一个可选的对应一个网路, c作为开关,选择最合适的作为控制器输入 。损失函数 : l ( a , a g t ) = ∥ s ? s g t ∥ 2 + λ a ∥ a ? a g t ∥ 2 l\left(a, a_{g t}\right)=\left\|s-s_{g t}\right\|^{2}+\{a}\left\|a-a_{g t}\right\|^{2} l(a,agt?)=∥s?sgt?∥2+λa?∥a?agt?∥2,s和a分别表示方向盘和加速度使用三个前置摄像机给控制信号添加噪音,之后让其演示如何从这些噪音中恢复,模拟在理想的轨迹上渐渐偏移的现象 。噪音大致为一个三角波,通过记录专家数据中对与噪音的反应作为数据设置
在训练时使用2小时人类驾驶数据,其中12分钟是加入噪音的使用标准模仿学习和goal-作为首先看到goal-的的学习率好一点,但是车辆学会了猛地出界然后抄近路!看到两次交通违章之间的距离要比纯IL小得多 。用的网络结构比 input的网络结构要好很多 。使用大网络有非常重大的影响 。小的网络无法学会。
4. 作者在居民区里进行了数据采样 。在测试的时候,允许agent错过一次十字路口,不计算 。上图是测试结果 。可以看到不使用data 的话,训练结果非常糟糕 。作者在没见过的环境上进行了泛化性测试 。效果不错 。