论文理解【IL - BC】—— An autonomous land vehicle in a neural network

  • 标题:An autonomous land vehicle in a neural network
  • 发表:Advances in Neural Information Processing Systems, 1989 (NIPS对应的期刊)
  • 文章链接:这篇文章1989年的,上古文章了属于是,资源不太好找。第一个链接给出的文章写得很模糊,基本就是大概介绍了一下网络结构,第二个链接的slide讲得比较细致,但是网络结构有点区别。区别主要在于网络输入,文章中的输入包括视觉传感器和激光测距传感器,是一个多模态的设定,而slide中的网络只有一个视觉输入。本文基于slide进行说明,视角倾向模仿学习
    1. An autonomous land vehicle in a neural network
    2. slide
  • 领域:模仿学习 - 行为克隆方法、端到端自动驾驶

  • 前言:虽然这篇文章很老,但是它非常具有开创性。据我所知,这是端到端自动驾驶领域的第一篇文章,其提出的方法也是第一个模仿学习方法(现在看来属于行为克隆方法)。因此,研究自动驾驶和模仿学习的同学应该都会或多或少地听说到这篇文章

  • 在此文之前,自动驾驶方法基本都是 rule-based 的

    这类基于规则的系统是在理解了整个场景之后,再做决策,涉及到很多相关的子问题,比如说车道线,交通标志的识别,行人检测,信号灯检测,车辆的检测等等,基于规则的方法需要将各种各样的因素全部纳入考虑范围,综合决策,这其实是一件非常困难和复杂的事情。

    因此,为了实现自动驾驶,不但要做车道线,交通标志等的视觉识别,还要考虑路径规划等问题,设计规则也很麻烦。所以本文的思想就是不管那么多了,直接用神经网络学一个 image -> action 的映射,也就是所谓的 end2end 系统

1. 网络结构

  • 1989年还没有深度学习的概念,更是没有卷积网络什么的,本文采用的也是很简单的浅层神经网络,如下图所示
    在这里插入图片描述
    • 网络输入是一个 30x32 的图像,中间有一个四个神经元组成的隐藏层,输出层由30个神经元组成,其中每个神经元代表一个转向角度
  • 可见,这个方法的本质是匹配单步动作,可以把它看做一种行为克隆方法

2. 训练数据采集

  • 作者原先想设计一个模拟器,利用一些图形学的方法,可以直接生成各种视角下的公路图像,就好像玩GTA5的第一人称视角那样,因为当时的摄像机分辨率很差,所以对生成图像的质量要求也不高。但是这个系统的开发遇到很多困难,最后放弃了这个思路
  • 最后,作者的方案是把摄像机装在真实的车辆上,在行驶过程中直接采集驾驶时可能看到的图像以及人类驾驶员对应的方向盘动作,这个思路直到今天仍在使用。比较特别的一点是,可能因为以前的数据存储成本较高,本文方法没有像现在一样先收集一堆数据再进行学习,而是搞成了一个在线学习的框架,它维护了一个200张图像的epoch,每轮迭代采集并更新一些图像,然后用这个epoch反向传播更新一次网络参数。具体的训练过程稍后再详细说明
    在这里插入图片描述

3. 损失设计

  • 先用输出层的30个神经元的激活程度拟合一个高斯分布,然后取其均值位置作为网络给出的方向盘控制角度。用网络给出角度和驾驶员真实转向角度之差作为loss在这里插入图片描述

4. 学会纠正错误(克服 compounding error)

  • 作者注意到一个关键问题:If the human drives perfectly, the network never learns to make corrections when it drifts off the desired track。如果我们只采集维持在道路中心行驶的完美的示范数据,那么一旦自动行驶到道路边缘位置,由于缺乏相应的动作数据,自动驾驶网络就不知道该怎么做了,这时只能利用其泛化能力给出大概的动作,这很可能导致车辆进一步偏航,最后驶离道路
  • 由于自动驾驶是一个序贯控制任务,具有马尔可夫性,网络输出的误差都会累计起来,车辆开向道路边缘的情况是不可避免的,这其实就是行为克隆方法共有的级联误差问题(compounding error),为此,必须让自动驾驶网络学会如何从道路边缘恢复到道路中心来,这就要求我们收集大量的 “错误纠正” 样本(即从路边开回中心的数据样本)
  • 作者最初的想法很简单粗暴,因为本文方法是一个在线学习方法,所以执行以下三步就能收集到 “错误纠正” 样本了
    1. Turn learning off temporarily, and drive off course.
    2. Turn learning back on, and let the network observe the human making the necessary corrections.
    3. Repeat
      在这里插入图片描述
  • 以上想法基本就是人工开到路边再开回去,显然这种方法是十分危险且低效的。为了解决这一问题,作者提出了另一个方法:数据增广。这也是影响很大的一个想法,从今天模仿学习的角度看,对专家轨迹进行数据增广是件难事,因为扰动专家动作导致的轨迹结果难以估计,而对于本文这种行为克隆方法来说,因为其仅仅做单步动作匹配,打破了轨迹的马尔可夫性,所以可以使用CV中常见的方法进行数据增广,这个思路也是一直沿用到了今天。
    在这里插入图片描述
    如上图所示,作者对每一张最优的真实图像执行若干次随机平移和旋转,然后用一个物理模型计算其对应的方向盘旋转角度,从而实现单步控制数据的增广。

5. 平衡样本类别

  • 监督学习中,若样本类别不平衡,那么将会对多数类过拟合,少数类欠拟合,由于作者维护的epoch尺寸较小,就更容易遇到这个问题。距离来说,若车辆在一段时间内一直右转弯,那么epoch中的样本将都被替换为右转的样本,若一直这样更新网络参数,最后训练好的网络就只会右转了
  • 为了解决此问题,作者使用以下方法来替换epoch中的旧样本
    1. Replace the image with the lowest error
    2. Replace the image with the closest steering direction

6. 训练过程

  • Online training details
    1. Take current camera image plus 14 shifted/rotated variants, each with computed steering direction.
    2. Replace 15 old exemplars in the 200 element training exemplar buffer with these 15 new ones.
    3. Perform one epoch of backpropagation learning on the training exemplar buffer.
    4. Repeat steps 1-3 until the network’s predicted steering direction reliably matches the person’s steering direction.

7. 总结

  • 这个简单的自动驾驶网络能实现的效果是:速度0.5m/s,CMU校园,树木覆盖的路面,日落环境下,可以准确行驶400米,证明了端到端学习有形成一个自动驾驶系统的能力
  • 由于这篇文章主要是讨论的端到端自动驾驶任务,所以后面花了不少篇幅说明这个简单的神经网络实现了图像特征的自动提取,不过本文主要从模仿学习角度出发,就不再讨论这方面了
  • 从 IL 角度看,本文的主要贡献是
    1. 提出了第一种行为克隆模仿学习方法,说明了监督学习方法有能力解决序贯决策任务
    2. 作者注意到了 BC 方法的级联错误问题,并提出一种行为克隆方法中的数据增广方法,直到今天仍在使用
    3. 提出了一种专家数据收集方法,其思想直到今天仍在使用
  • 6
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
自2020年以来,自动驾驶汽车(Autonomous Vehicle)在这一领域取得了显著进展。 自动驾驶汽车通过使用先进的传感技术,如雷达、激光雷达和摄像头,以及深度学习和人工智能算法,实现了车辆的自主驾驶。它们能够感知周围环境,了解道路状况,并做出相应的决策和行驶动作,从而实现无需人类操控的车辆行驶。 自动驾驶汽车在2020年迅速崭露头角。它们的技术日益成熟,不断的实验和测试表明其在安全性和性能方面已经取得了显著的突破。虽然仍然存在一些挑战,比如在复杂城市环境中导航和处理紧急情况,但这些问题正经过不断的研究和改进来得以解决。 在未来,自动驾驶汽车有望在各个领域发挥重要作用。首先,它们将可以提高道路交通的安全性。由于自动驾驶车辆不受人类司机的疲劳、分心和驾驶误差的限制,它们的驾驶能力更为稳定和准确。其次,自动驾驶汽车还能够提高交通效率。通过与其他车辆实时通信和协同,它们可以避免交通堵塞和减少事故发生,从而减少交通拥堵和行车时间成本。 此外,自动驾驶汽车也将为交通出行带来便利和舒适性。乘客可以更轻松地进行其他活动,如工作、休息或娱乐,而不必担心驾驶问题。老年人和残障人士也将能够自由独立地出行,提高他们的生活质量。 综上所述,作为2020年的重要趋势,自动驾驶汽车具有广阔的应用前景。通过不断的创新和发展,它们将在道路交通安全、交通效率和出行体验方面取得进一步的提升。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

云端FFF

所有博文免费阅读,求打赏鼓励~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值