分享

关于Tesla模仿学习方法的理论分析

 ZHAOHUI 2020-08-13

《关于特斯拉模仿学习方法的理论》——暨使用神经网络复制驾驶员的行为。


本文发表于2019年9月17日,作者是一个长期研究Tesla及其自动驾驶算法Autopilot演进的技术专栏作者,Yarrow Eady(不确定为真名还是笔名)。他同时还关注Tesla的股票市场变化,及Tesla自动驾驶出租车计划——RoboTaxi。因为其文章作品同时具备相当的技术性和深入性,在面对黑盒般存在的Autopilot系统演进过程,不失为海外技术从业者的一种有价值的观点。因此我们开始有针对性挑选其作品进行翻译和评注(蓝色字体),希望能够拓展国内从业者对于Tesla,对于Autopilot,及其所代表的视觉+AI派,有更新更全面和更多角度的理解。

文末给出文章链接,对英文原文有兴趣的读者可以直接访问。
 
A Theory about Tesla’s Approach to Imitation Learning
 
特斯拉如何才能最好地利用其配备有“完全自动驾驶”硬件的约60万辆汽车的车队?【Tesla Fleet目前的数量已经不止60万辆,如果计算从搭载Autopilot HW2.0开始到FSD3.0的车辆团体数量,应该在80-100万辆。这些车辆中,可能相当一部分硬件是无法承载需要大量神经网络计算力的新一代Autopilot系统的,但这个并不影响这个传感器配置标准下,提供给位于云端的Autopilot服务器以大量的现场真实数据】更具体地说,它如何利用这一庞大的舰队进行模仿学习/ImitationLearning:训练神经网络来模仿人类驾驶员的行为?如果只是一直从所有的Tesla汽车收集全时驾驶数据很可能无济于事。因为在某一个时间点/积累点之后,神经网络很可能将掌握在高速公路的直行路段上跟随车道线驾驶。此时如果继续将更多人类驾驶示例不断追加添加到数据堆中只会使高速直道数据集泛滥,并有可能使神经网络偏向认为它们应该一直向前行驶。【这个分析很有趣,也很新颖。虽然我们都知道Tesla现有的Autopilot还处在Level-2的自动驾驶级别之上,从而造成在越规范的道路设施条件下,Autopilot系统被激活的可能性越高。因此一般的推断可以证明,在高速上,Autopilot激活的状态下,Tesla车辆所上报的有价值的数据总是更多的。因此可以印证作者的设想,如果不假思索去处理所有的真实驾驶场景数据上报,那么就有可能会引发作者的担心。】因此,我们需要缩小数据接收集合的范围。【作者的潜台词是,要确保数据的多样性和有效性,这是模仿学习的精髓。】
 
【当有价值的驾驶数据被记录在本地之后……】有多种触发上传的方法。比如:当驾驶员用力刹车或猛拉方向盘时;当神经网络检测到某种物体(例如马)或某种场景(例如道路上的临时建筑区域是影响驾驶安全的重要因素)时;【关于这种对于稀有场景的识别,我们在之前的多篇文章中都有涉及,它体现了现有Autopilot系统强大的对于稀有场景的捕捉和归类能力,良好的捕捉corner cases能力将极大地拓展Autopilot系统对于Long tail场景的覆盖,从而变得更加强壮,而逐步拉开和竞争对手的能力差距,比如:Waymo。】
 
另一个技术想法是,通过模仿学习Imitation Learning的方法来训练Autopilot神经网络来进行正确的驾驶行为学习。通过在有人驾驶时,在汽车后台中安静地运行它们,每当神经网络的输出是不同于驾驶员实际操作的动作时,都会触发关联信息的上传。【这里对于所谓被上传的“关联信息”的定义还不明确,但从模仿学习的理论上看,如果Autopilot最终演变为End-to-End的驾驶系统,那么这个关联信息就是指,在某时刻,自动驾驶车辆油门、方向和刹车动作所对应的全部8个摄像头/or1个毫米波雷达/超声波雷达的即时刻数据。但实际上Tesla的Autopilot不是端到端的自动驾驶系统,至少目前还不是。因此这里的模仿学习所触发的上报数据上下文,还需要具体分析。请参照下文思路。】伊隆·马斯克(Elon Musk)曾经多次提到特斯拉能够在汽车中被动运行自动驾驶软件的能力,称其为“影子模式”【ShadowMode】。影子模式的既定目的是将软件的输出与人为行为进行比较。【这里的软件的是输出,是指躲在后台运行的Autopilot对于当前感知、预测、规划后的驾驶动作输出,我们暂时不讨论其是否端到端的驾驶方法。】因此,选择要收集的数据以进行模仿学习似乎是影子模式的完美应用。【Tesla的影子模式,在小编的角度看,是Tesla Autopilot自动驾驶系统能够潜移默化逐步完成自动驾驶Level升级的最大的技术秘密,也是最大的差异体现。放眼全世界车企和各种自动驾驶新锐,无出其右者。】
 
“影子模式”的这个技术应用工作原理十分类似于特斯拉为“行为预测网络”收集数据所做的事情。例如其Cut-in邻车换道检测器:换道检测器可以预测相邻车道的汽车的换道行为运行状况。当汽车做的事情与Cut-in检测器的预测结果不同时,将上载示例以进一步训练Cut-in检测器。
   
                 
【上图所示即为Cut-in检测网络的工作图样,我们在之前的好几篇介绍Autopilot工作原理的技术文章中都提到了这个原理。Cut-in检测网络本质为神经网络,Autopilot的研发人员并不会去编写如何判断车辆换道发生与否的各种判断条件,比如通过持续观察车辆和邻道线的距离变化趋势、比如通过判定车辆的方向等是否在闪烁……等等,来决策是否会发生邻道车辆的换道动作。而是通过神经网络的输入和输出直接映射何种条件下车辆会发生换道,直接得出预测结论。通过对于Cut-in神经网络的维护和相关数据的大量收集和训练过程,网络模型最终会收敛到一个很高准确度的判断结果上,从而逼近甚至超越人类司机。
 
而影子模式/Shadow mode的工作积累十分类似,同时可以被应用到Autopilot内部的多个神经网络的维护上,不仅仅是Cut-in,其它的预测、识别和规划神经网络,都可以通过影子模式在后台静默的条件下虚拟工作。一旦发生人类驾驶员的选择和相关神经网络的预测、识别和规划输出结果不相吻合,则立刻触发上报。
 
上报的数据的上下文就包含触发状态的视觉信息(可以是原始视觉信息,也可能是CNN主干网络处理过之后的Meta数据/元数据,以及和目标的动作趋势(比如是否发生了Cut-in动作)。这些关联数据(或者你把他称作合格的人类司机标注数据也可)被送入云端,在分门别类归类完毕后即可重复训练尚不完善的相关神经网络,离线训练和在线训练皆可,客观上实现“模仿学习”的效果。
 
我们需要特别注意的是,这个原理分析告诉我们,并非模仿学习就一定是跨越从传感器直接到油门/刹车/方向盘的直接端到端行为模仿学习。模仿学习同样可以工作在每一个端到端中的任意环节所对应的神经网络上。因为非常明显的是,Tesla的Autopilot系统并不是端到端的模仿学习模式。】
 
行为预测和行为生成(模仿学习往往是行为生成的一种方法)在自动驾驶语境内可以说是同一枚硬币的两个方面。行为预测神经网络执行预测特斯拉车辆周围的其它驾驶员将要做什么;而模仿网络/ImitationLearning Networks则被用于预测特斯拉车辆自身内部驾驶员【指人类驾驶员而非处于影子模式的自动驾驶Autopilot系统】的行为。在这两种方法下,都应用相同的原理:当相关网络做出错误的预测时,触发上传数据并对在后台离线针对该示例进行额外的完善和训练。【这是清晰的模仿学习在Autopilot系统内得到应用的解释。我们可以这样理解,模仿学习将会有助于Autopilot系统在得到充分的训练后,迅速达到人类驾驶员的水准(或者说是人类驾驶员的最好水平),这也是尽可能降低对外界设备依赖的前提下,单车智能所能达到的最高水准了。因为单车智能所依赖的无非是摄像头和车载AI,并未利用任何上帝视角的全局数据,比如V2X等技术手段获取的超视距场景数据。当然人类对于自动驾驶的期望,一方面是解放人类的创造力和重复劳动;另一方面更是期望自动驾驶规模部署以后,大幅度降低事故率和通行效率。从这个角度出发,仅仅依赖单车智能是不够的。小编承认有增益,但是远远不够。但后续的问题留给后续解决,留给道路、车辆、交管的通力合作,甚至再造全新的交通系统,那都是后话了。】
 
从理论上讲,特斯拉可以被动地测试模仿网络和驾驶员之间的意见分歧的频率。一旦分歧低于某个安全阈值,模仿网络就可以逐步运行自动驾驶功能,例如自动转向操作。【注意,Autopilot系统截至目前,是无法提供转向自动化操作的(换道不算),必须人工干预。】一旦发生彻底分歧的情况,则人类驾驶员会立刻干预Autopilot自动驾驶从而触发上传。这可能就是Elon说“将所有输入都视为错误”时的意思:当驾驶员从自动驾驶仪接管时,他们会立即演示自动驾驶仪应执行的操作–通过执行该操作。模仿失败从而产生了新的训练实例。它与Cut-in/换道检测器的原理相同:故障案例是培训示例。【写到这里小编又想起了前段时间在深圳发生的搭载HW2.5的Autopilot系统/Model3和电动卡车所发生的Cut-in剐蹭事故。我相信Model3驾驶员在最后时刻的干预,虽然未能避免事故发生,但是一定触发了场景上报……去美国的Autopilot服务器?】

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多