MIT 的 Deep Learning for Self-driving Car 经典课程,邀请到了 Waymo 首席科学家 Drago Anguelov,分享题为「Taming The Long Tail of Autonomous Driving Challenges(驯服自动驾驶的长尾挑战)」,主要是讲在现实世界中的 Long Tail 现象,各种异常情况该如何收集、融合、发布和测试。
课程的一些新看点
课程视频和课件PPT解读
我毕业于斯坦福大学博士学位,曾研究机器人相关领域。现在 Google 带领团队研究 3D 感知,以此来构建一个全新的自动驾驶感知系统。
Waymo 这家公司截止上个月已经成立了十周年了(2009 年成立)它起源于 Google X。
2015 年,我们研发的这款自动驾驶汽车进行公路路测试验,这是世界上第一辆成功实现自动驾驶的汽车。在这个案例中,坐在车里的人是个盲人,我们认为这个项目的意义重大。所以我们不仅仅希望这台车只是一个成功的演示案例,我们更加希望能够实现无人驾驶。
我将给你们展示一个很酷的视频。你们看,这台汽车真的在自己行驶在公路上。 2018 年,自动驾驶商业化,这台车学习了很多司机用户的驾驶习惯,使它自身拥有强大的自动驾驶能力。它也成功的在公路上自主行驶(无人驾驶状态)超过 10,000,000,000 公里。我们的路测实验几乎涵盖了所有的不同城市的驾驶场景,收集了很多驾驶数据。
我想解释一下为什么今天的演讲的题目是「项目的长尾问题」。因为我们在自动驾驶这条路上,我们还有很多问题需要处理和解决,才能使得自动驾驶更加完善。
自动驾驶系统要求有足够的能力,在没有人类司机干预的情况下,安全地处理所有的突发情况。
事实上,突发的异常情况总是发生,而且这些异常情况经常是比较复杂且少见的,而自动驾驶就是要安全地解决这些突发的复杂且少见的情况。这就是我所说的「长尾巴情况」,它不同于在常见的场景中的自动驾驶,而这种复杂且少见的驾驶场景在自动驾驶领域确实非常重要。
我们来看这场景,画面中骑自行车的人带着一块「停止」的标志牌。但是我们并不知道他会停在哪里,什么时候停下。
我们再来看这个场景,有东西掉在路上了,周围的建筑也是一个问题。
现实中存在很多不同的场景和不同的问题,像这个视频中,我们的车辆听到了其他车辆的鸣笛声音,那么如何处理这个鸣笛的声音,这些都需要很好的(安全的)解决掉。
那么我们是如何解决这些问题的呢?
首先是,感知。我们利用传感器感知周围环境,并在屏幕上显示(可以显示周围的建筑、环境等等),以此重新构建一个地图。
感知的复杂性包括,在路上,有很多不同的物体,他们有不同的形状、颜色、状态。比如,有不同样式的信号灯,路上有动物和行人,行人还会穿着不同颜色的衣服,有不同的姿势状态。为了清晰的观察到这些,我们装置了很多传感器,来解决这个问题。
感知的复杂性还包括,很多不同的环境。比如,一天当中不同的时间段(白天/黑夜),不同的季节,不同的天气下雨或者下雪。这些都需要识别。
感知的复杂性还包括,不同的场景配置,或者叫物体之间的关系识别。不同的搭配就有不同的物体之间的关系,比如图片中,一个人拿着一块巨大的板子,第二幅图中,玻璃中有反光现象,第三幅图中人骑着马等等不同的场景和关系。
这种映射功能是一个非常复杂的功能,这是由物体、环境、场景配置共同决定的。
所以这需要我们在观察周围环境的基础上做出预判,对周边人和物体的下一个动作做出预判,即我们要对短时间内发生的事情做出一个预测。
那我们如何来预判呢?
预测的影响因素有过去的动作、高度的场景语义、物体属性和出现提示。我们考虑周围的任何事物,比如有一个自行车想要通过,那么我们需要停下或者放慢速度让它通过,这就需要提前计划设计,做出安全的解决方案。同时,我们也要向周围的人和物发出信号。
学校周围的场景,这是一个非常复杂的问题。机器学习是一个非常好的工具用以应对复杂的情况。所以我们要学习出一个系统,以此优化现实存在的各种场景问题。
传统的学习模式:用工具构建,改造和进化难以实现。
机器学习:更像是一个工厂,我们仅仅需要把数据输入进去,就能得到正确的模型。
关于如何创建更智能的机器学习模型的周期如图中所示。
因为 Waymo 隶属于 Google,有用强大的数据中心,所以他们用 TensorFlow 和 TPU,做出准确的标注,而且分布均匀。
数据收集:这是一个非常重要的环节,这是解决「长尾巴情况」的重要因素。数据收集是激发主动学习的重要环节,也是是机器学习周期运行良好的重要基础。
Google AI 和 DeepMind 都在关注自动驾驶。机器学习自动化已经部署好,几乎所有的事情都接近自动化。
NAS cell 是一种小网络,反复用作构建神经网络体系结构的高级构件。
首先是用 NAS cell 进行激光雷达分割。在这一过程中,延迟也很重要。
稳定平衡的体系结构本身也可以自动化,这是很灵捷并且很强大的。
这条蓝色的线,延迟最小且分割情况最好。
解决机器学习限制问题。但是在某些情况下还是存在限制,需要我们增强鲁棒性。
这幅图片描述的问题是存在冗余和互补的传感器和传统的逻辑。
混合系统:这是将传统 AI 和机器学习相结合的系统,这样可以保证系统鲁棒性,保证自动驾驶安全性。
随着时间的推移,如上图机器学习的范围可能会扩大,甚至完全掌控。
那么我们如何进行大规模的路测呢?
因为特殊罕见的异常情况很少发生,如果使用真实情况进行路测,我们需要等待很长时间,为了解决这个问题,我们自己构建条道路。
因为我们有 Google 的数据支持所以这个想法是可行的,所以我们按照如下图数据做出仿真模型。仿真出足够多的场景供以测试。而我们为什么要做出如此多的仿真模型呢?因为有时会得出截然相反的结果,所以我们要加强系统的鲁棒性,这就要求我们做出足够多的仿真模型,确保系统的准确性。
这是一种抽样方法。
上图正在模拟真实世界可能会发生的事情。如果想要得到准确的数据,我们需要模仿真实的人类在不同的情形下做出的真实举动。
如何评价这个简单的模型呢?
正面:容易调整关键参数,如反应时间,制动轮廓,横向加速。有效再现避碰场景中的基本人类行为;反面:无法处理更复杂的交互行为。
但是定义它本身是一个复杂的问题,所以我们能做什么呢?那就是从实际演示中学习代理模型。
机器学习仿真的解决办法就是构建另一个机器学习模型。
添加排列可能会出现问题,这是一个众所周知的问题。
我们使用了非常不同的体系结构去避免碰撞,例如 RNN 模型。
在一条陌生的路上开着车,需要看到更多的范围和预判更多的特殊情况,如掉头需要处理好。
上图是人类行为分布,可以看到这是个正态分布,所以这就是导致了「长尾巴情况」的根本原因。即使图像两端的情况很少发生,我们的测试也要涵盖进去所有的人类行为情况。
需要我们拓宽这个分布,或者仿真出更多的例子。
行为轨迹优化模型:反 RL 用于找到创建所需轨迹的变量。
许多不同的方法来克服「长尾」问题。
「智能」模型对于自动化是至关重要的。通过模拟更真实人类行为是非常重要的。
因为还存在很多不同的场景,每天都上演着不同的事情,所以「长尾巴情况」还将会在不同的城市,不同的环境中持续下去的。
在一些好的训练步骤如下:对收集的数据进行培训;能够在不确定或不正确的情况下进行量化;能够采取措施,比如向评分者提问;更好的是,通过因果分析直接自我更新。
总结:Waymo 专家举出的有人带着停车标志是一个有趣例子,而且对机器学习的一个非常基本的介绍,其中提到了 AutoML 模型,可以测试多达 10K 的不同架构。然后采用前 100 个架构,在更大的模型上进行测试。Waymo 是一个混合系统,使用 ML 和混合 ML(传统的 ML 编程)。随着 ML 能力的增长,传统场景越来越少。视频中也提到了 waymo 如何测试,结构化测试,是否有封闭的测试环境。在模拟器方面,他们认为代理能够模拟现实世界中发生的事情。不断扩大复杂模型,来处理长尾问题。或者利用专家领域知识,换句话说混合模型或传统编程。以及逆强化学习,值得深入研究。-END-
付付,现在的自动驾驶还是有问题的,可能需要理论上的再次突破后,才能有所改进,类似从专家系统到深度学习的改变
Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved