【自动驾驶行业观察】Drago Anguelov (Waymo) MIT Self-Driving Cars演讲 “长尾”问题

经典MIT的Deep Learning for Self-driving Car课程上,邀请到了Waymo首席科学家Drago Anguelov,分享题为“Taming The Long Tail of Autonomous Driving Challenges(驯服自动驾驶的长尾挑战)”,主要是讲在现实世界中的Long Tail现象,各种异常情况该如何收集、融合、发布和测试。

【自动驾驶行业观察】Drago Anguelov (Waymo) MIT Self-Driving Cars演讲 “长尾”问题_第1张图片

知乎@黄浴总结了此课程的一些新看点:

1. 题目是“长尾”处理;
2. 可以处理道路维修场景;
3. 可以识别特殊车辆(警车/救护车/消防车);
4. 可以预防闯红灯的车辆;
5. 可以对马路自行车行为轨迹预测;
6. 通过NAS学习模型;
7. 不完全依赖机器学习,可以利用专家知识(domain knowledge);
8. 不是E2E学习驾驶行为,而是Mid-2-Mid,就是最近的ChauffeurNet;
9. 学习的行为预测有自适应性,比如激进的或者温和礼貌的;
10. 仿真不能解决所有问题,仿真系统需要更多的agent model,要smart。

视频链接点这里

【自动驾驶行业观察】Drago Anguelov (Waymo) MIT Self-Driving Cars演讲 “长尾”问题_第2张图片

 我毕业于斯坦福大学博士学位,曾研究机器人相关领域。现在Google带领团队研究3D感知,以此来构建一个全新的自动驾驶感知系统。

Waymo这家公司截止上个月已经成立了十周年了(2009年成立)它起源于Google X。

【自动驾驶行业观察】Drago Anguelov (Waymo) MIT Self-Driving Cars演讲 “长尾”问题_第3张图片

【自动驾驶行业观察】Drago Anguelov (Waymo) MIT Self-Driving Cars演讲 “长尾”问题_第4张图片

2015年,我们研发的这款自动驾驶汽车进行公路路测试验,这是世界上第一辆成功实现自动驾驶的汽车。在这个案例中,坐在车里的人是个盲人,我们认为这个项目的意义重大。所以我们不仅仅希望这台车只是一个成功的演示案例,我们更加希望能够实现无人驾驶。

【自动驾驶行业观察】Drago Anguelov (Waymo) MIT Self-Driving Cars演讲 “长尾”问题_第5张图片

【自动驾驶行业观察】Drago Anguelov (Waymo) MIT Self-Driving Cars演讲 “长尾”问题_第6张图片

【自动驾驶行业观察】Drago Anguelov (Waymo) MIT Self-Driving Cars演讲 “长尾”问题_第7张图片

我将给你们展示一个很酷的视频。你们看,这台汽车真的在自己行驶在公路上。2018年,自动驾驶商业化,这台车学习了很多司机用户的驾驶习惯,使它自身拥有强大的自动驾驶能力。它也成功的在公路上自主行驶(无人驾驶状态)超过10,000,000,000公里。我们的路测实验几乎涵盖了所有的不同城市的驾驶场景,收集了很多驾驶数据。

【自动驾驶行业观察】Drago Anguelov (Waymo) MIT Self-Driving Cars演讲 “长尾”问题_第8张图片

 我想解释一下为什么今天的演讲的题目是“项目的长尾问题”。因为我们在自动驾驶这条路上,我们还有很多问题需要处理和解决,才能使得自动驾驶更加完善。

【自动驾驶行业观察】Drago Anguelov (Waymo) MIT Self-Driving Cars演讲 “长尾”问题_第9张图片

自动驾驶系统要求有足够的能力,在没有人类司机干预的情况下,安全地处理所有的突发情况。

事实上,突发的异常情况总是发生,而且这些异常情况经常是比较复杂且少见的,而自动驾驶就是要安全的解决这些突发的复杂且少见的情况。这就是我所说的“长尾巴情况”,它不同于在常见的场景中的自动驾驶,而这种复杂且少见的驾驶场景在自动驾驶领域确实非常重要。

【自动驾驶行业观察】Drago Anguelov (Waymo) MIT Self-Driving Cars演讲 “长尾”问题_第10张图片

我们来看这场景,画面中骑自行车的人带着一块“停止”的标志牌。但是我们并不知道他会停在哪里,什么时候停下。

我们再来看这个场景,有东西掉在路上了,周围的建筑也是一个问题。

现实中存在很多不同的场景和不同的问题,像这个视频中,我们的车辆听到了其他车辆的鸣笛声音,那么如何处理这个鸣笛的声音,这些都需要很好的(安全的)解决掉。

那么我们是如何解决这些问题的呢?

【自动驾驶行业观察】Drago Anguelov (Waymo) MIT Self-Driving Cars演讲 “长尾”问题_第11张图片

首先是,感知。我们利用传感器感知周围环境,并在屏幕上显示(可以显示周围的建筑、环境等等),以此重新构建一个地图。

【自动驾驶行业观察】Drago Anguelov (Waymo) MIT Self-Driving Cars演讲 “长尾”问题_第12张图片

感知的复杂性包括,在路上,有很多不同的物体,他们有不同的形状、颜色、状态。比如,有不同样式的信号灯,路上有动物和行人,行人还会穿着不同颜色的衣服,有不同的姿势状态。为了清晰的观察到这些,我们装置了很多传感器,来解决这个问题。【自动驾驶行业观察】Drago Anguelov (Waymo) MIT Self-Driving Cars演讲 “长尾”问题_第13张图片

 感知的复杂性还包括,很多不同的环境。比如,一天当中不同的时间段(白天/黑夜),不同的季节,不同的天气下雨或者下雪。这些都需要识别。【自动驾驶行业观察】Drago Anguelov (Waymo) MIT Self-Driving Cars演讲 “长尾”问题_第14张图片

 感知的复杂性还包括,不同的场景配置,或者叫物体之间的关系识别。不同的搭配就有不同的物体之间的关系,比如图片中,一个人拿着一块巨大的板子,第二幅图中,玻璃中有反光现象,第三幅图中人骑着马等等不同的场景和关系。【自动驾驶行业观察】Drago Anguelov (Waymo) MIT Self-Driving Cars演讲 “长尾”问题_第15张图片

这种映射功能是一个非常复杂的功能,这是由物体、环境、场景配置共同决定的。

所以这需要我们在观察周围环境的基础上做出预判,对周边人和物体的下一个动作做出预判,即我们要对短时间内发生的事情做出一个预测。

【自动驾驶行业观察】Drago Anguelov (Waymo) MIT Self-Driving Cars演讲 “长尾”问题_第16张图片

【自动驾驶行业观察】Drago Anguelov (Waymo) MIT Self-Driving Cars演讲 “长尾”问题_第17张图片

那我们如何来预判呢?

预测的影响因素有过去的动作、高度的场景语义、物体属性和出现提示。我们考虑周围的任何事物,比如有一个自行车想要通过,那么我们需要停下或者放慢速度让它通过,这就需要提前计划设计,做出安全的解决方案。同时,我们也要向周围的人和物发出信号。

【自动驾驶行业观察】Drago Anguelov (Waymo) MIT Self-Driving Cars演讲 “长尾”问题_第18张图片

【自动驾驶行业观察】Drago Anguelov (Waymo) MIT Self-Driving Cars演讲 “长尾”问题_第19张图片

学校周围的场景,这是一个非常复杂的问题。机器学习是一个非常好的工具用以应对复杂的情况。所以我们要学习出一个系统,以此优化现实存在的各种场景问题。

传统的学习模式:用工具构建,改造和进化难以实现。

【自动驾驶行业观察】Drago Anguelov (Waymo) MIT Self-Driving Cars演讲 “长尾”问题_第20张图片

【自动驾驶行业观察】Drago Anguelov (Waymo) MIT Self-Driving Cars演讲 “长尾”问题_第21张图片

 机器学习:更像是一个工厂,我们仅仅需要把数据输入进去,就能得到正确的模型。

【自动驾驶行业观察】Drago Anguelov (Waymo) MIT Self-Driving Cars演讲 “长尾”问题_第22张图片

关于如何创建更智能的机器学习模型的周期如图中所示。 

【自动驾驶行业观察】Drago Anguelov (Waymo) MIT Self-Driving Cars演讲 “长尾”问题_第23张图片

 【自动驾驶行业观察】Drago Anguelov (Waymo) MIT Self-Driving Cars演讲 “长尾”问题_第24张图片

因为Waymo隶属于Google,有用强大的数据中心,所以他们用TensorFlow和TPU,做出准确的标注,而且分布均匀。

数据收集:这是一个非常重要的环节,这是解决“长尾巴情况”的重要因素。数据收集是激发主动学习的重要环节,也是是机器学习周期运行良好的重要基础。

【自动驾驶行业观察】Drago Anguelov (Waymo) MIT Self-Driving Cars演讲 “长尾”问题_第25张图片

 Google AI和DeepMind都在关注自动驾驶。机器学习自动化已经部署好,几乎所有的事情都接近自动化。

【自动驾驶行业观察】Drago Anguelov (Waymo) MIT Self-Driving Cars演讲 “长尾”问题_第26张图片

【自动驾驶行业观察】Drago Anguelov (Waymo) MIT Self-Driving Cars演讲 “长尾”问题_第27张图片

  NAS cell是一种小网络,反复用作构建神经网络体系结构的高级构件。

【自动驾驶行业观察】Drago Anguelov (Waymo) MIT Self-Driving Cars演讲 “长尾”问题_第28张图片

首先是用NAS cell进行激光雷达分割。在这一过程中,延迟也很重要。

【自动驾驶行业观察】Drago Anguelov (Waymo) MIT Self-Driving Cars演讲 “长尾”问题_第29张图片

稳定平衡的体系结构本身也可以自动化,这是很灵捷并且很强大的。 

【自动驾驶行业观察】Drago Anguelov (Waymo) MIT Self-Driving Cars演讲 “长尾”问题_第30张图片

 这条蓝色的线,延迟最小且分割情况最好。

【自动驾驶行业观察】Drago Anguelov (Waymo) MIT Self-Driving Cars演讲 “长尾”问题_第31张图片

 解决机器学习限制问题。但是在某些情况下还是存在限制,需要我们增强鲁棒性。

【自动驾驶行业观察】Drago Anguelov (Waymo) MIT Self-Driving Cars演讲 “长尾”问题_第32张图片

 这幅图片描述的问题是存在冗余和互补的传感器和传统的逻辑。

【自动驾驶行业观察】Drago Anguelov (Waymo) MIT Self-Driving Cars演讲 “长尾”问题_第33张图片

【自动驾驶行业观察】Drago Anguelov (Waymo) MIT Self-Driving Cars演讲 “长尾”问题_第34张图片

【自动驾驶行业观察】Drago Anguelov (Waymo) MIT Self-Driving Cars演讲 “长尾”问题_第35张图片

混合系统:这是将传统AI和机器学习相结合的系统,这样可以保证系统鲁棒性,保证自动驾驶安全性。

随着时间的推移,如上图机器学习的范围可能会扩大,甚至完全掌控。

【自动驾驶行业观察】Drago Anguelov (Waymo) MIT Self-Driving Cars演讲 “长尾”问题_第36张图片

混合系统:这是将传统AI和机器学习相结合的系统,这样可以保证系统鲁棒性,保证自动驾驶安全性。

随着时间的推移,如上图机器学习的范围可能会扩大,甚至完全掌控。

【自动驾驶行业观察】Drago Anguelov (Waymo) MIT Self-Driving Cars演讲 “长尾”问题_第37张图片

【自动驾驶行业观察】Drago Anguelov (Waymo) MIT Self-Driving Cars演讲 “长尾”问题_第38张图片

因为我们有Google的数据支持所以这个想法是可行的,所以我们按照如下图数据做出仿真模型。仿真出足够多的场景供以测试。而我们为什么要做出如此多的仿真模型呢?因为有时会得出截然相反的结果,所以我们要加强系统的鲁棒性,这就要求我们做出足够多的仿真模型,确保系统的准确性。 

【自动驾驶行业观察】Drago Anguelov (Waymo) MIT Self-Driving Cars演讲 “长尾”问题_第39张图片

这是一种抽样方法。 

【自动驾驶行业观察】Drago Anguelov (Waymo) MIT Self-Driving Cars演讲 “长尾”问题_第40张图片

【自动驾驶行业观察】Drago Anguelov (Waymo) MIT Self-Driving Cars演讲 “长尾”问题_第41张图片

上图正在模拟真实世界可能会发生的事情。如果想要得到准确的数据,我们需要模仿真实的人类在不同的情形下做出的真实举动。

【自动驾驶行业观察】Drago Anguelov (Waymo) MIT Self-Driving Cars演讲 “长尾”问题_第42张图片

【自动驾驶行业观察】Drago Anguelov (Waymo) MIT Self-Driving Cars演讲 “长尾”问题_第43张图片

如何评价这个简单的模型呢?

正面:容易调整关键参数,如反应时间,制动轮廓,横向加速。有效再现避碰场景中的基本人类行为;反面:无法处理更复杂的交互行为。

但是定义它本身是一个复杂的问题,所以我们能做什么呢?那就是从实际演示中学习代理模型。

【自动驾驶行业观察】Drago Anguelov (Waymo) MIT Self-Driving Cars演讲 “长尾”问题_第44张图片

【自动驾驶行业观察】Drago Anguelov (Waymo) MIT Self-Driving Cars演讲 “长尾”问题_第45张图片

【自动驾驶行业观察】Drago Anguelov (Waymo) MIT Self-Driving Cars演讲 “长尾”问题_第46张图片

 机器学习仿真的解决办法就是构建另一个机器学习模型。 

【自动驾驶行业观察】Drago Anguelov (Waymo) MIT Self-Driving Cars演讲 “长尾”问题_第47张图片

【自动驾驶行业观察】Drago Anguelov (Waymo) MIT Self-Driving Cars演讲 “长尾”问题_第48张图片

 添加排列可能会出现问题,这是一个众所周知的问题。

【自动驾驶行业观察】Drago Anguelov (Waymo) MIT Self-Driving Cars演讲 “长尾”问题_第49张图片

【自动驾驶行业观察】Drago Anguelov (Waymo) MIT Self-Driving Cars演讲 “长尾”问题_第50张图片

【自动驾驶行业观察】Drago Anguelov (Waymo) MIT Self-Driving Cars演讲 “长尾”问题_第51张图片

我们使用了非常不同的体系结构去避免碰撞,例如RNN模型。

【自动驾驶行业观察】Drago Anguelov (Waymo) MIT Self-Driving Cars演讲 “长尾”问题_第52张图片

 【自动驾驶行业观察】Drago Anguelov (Waymo) MIT Self-Driving Cars演讲 “长尾”问题_第53张图片

 【自动驾驶行业观察】Drago Anguelov (Waymo) MIT Self-Driving Cars演讲 “长尾”问题_第54张图片

 【自动驾驶行业观察】Drago Anguelov (Waymo) MIT Self-Driving Cars演讲 “长尾”问题_第55张图片

 在一条陌生的路上开着车,需要看到更多的范围和预判更多的特殊情况,如掉头需要处理好。

【自动驾驶行业观察】Drago Anguelov (Waymo) MIT Self-Driving Cars演讲 “长尾”问题_第56张图片

上图是人类行为分布,可以看到这是个正态分布,所以这就是导致了“长尾巴情况”的根本原因。即使图像两端的情况很少发生,我们的测试也要涵盖进去所有的人类行为情况。

【自动驾驶行业观察】Drago Anguelov (Waymo) MIT Self-Driving Cars演讲 “长尾”问题_第57张图片

【自动驾驶行业观察】Drago Anguelov (Waymo) MIT Self-Driving Cars演讲 “长尾”问题_第58张图片

 需要我们拓宽这个分布,或者仿真出更多的例子。

【自动驾驶行业观察】Drago Anguelov (Waymo) MIT Self-Driving Cars演讲 “长尾”问题_第59张图片

【自动驾驶行业观察】Drago Anguelov (Waymo) MIT Self-Driving Cars演讲 “长尾”问题_第60张图片 【自动驾驶行业观察】Drago Anguelov (Waymo) MIT Self-Driving Cars演讲 “长尾”问题_第61张图片

 行为轨迹优化模型:反RL用于找到创建所需轨迹的变量。

【自动驾驶行业观察】Drago Anguelov (Waymo) MIT Self-Driving Cars演讲 “长尾”问题_第62张图片

许多不同的方法来克服“长尾”问题。 

【自动驾驶行业观察】Drago Anguelov (Waymo) MIT Self-Driving Cars演讲 “长尾”问题_第63张图片

“智能”模型对于自动化是至关重要的。通过模拟更真实人类行为是非常重要的。

【自动驾驶行业观察】Drago Anguelov (Waymo) MIT Self-Driving Cars演讲 “长尾”问题_第64张图片

【自动驾驶行业观察】Drago Anguelov (Waymo) MIT Self-Driving Cars演讲 “长尾”问题_第65张图片

因为还存在很多不同的场景,每天都上演着不同的事情,所以“长尾巴情况”还将会在不同的城市,不同的环境中持续下去的。 

【自动驾驶行业观察】Drago Anguelov (Waymo) MIT Self-Driving Cars演讲 “长尾”问题_第66张图片

【自动驾驶行业观察】Drago Anguelov (Waymo) MIT Self-Driving Cars演讲 “长尾”问题_第67张图片

在一些好的训练步骤如下:对收集的数据进行培训;能够在不确定或不正确的情况下进行量化;能够采取措施,比如向评分者提问;更好的是,通过因果分析直接自我更新。

总结:Waymo 专家举出的有人带着停车标志是一个有趣例子,而且对机器学习的一个非常基本的介绍,其中提到了AutoML模型,可以测试多达10K的不同架构。然后采用前100个架构,在更大的模型上进行测试。Waymo是一个混合系统,使用ML和混合ML(传统的ML编程)。随着ML能力的增长,传统场景越来越少。视频中也提到了waymo 如何测试,结构化测试,是否有封闭的测试环境。在模拟器方面,他们认为代理能够模拟现实世界中发生的事情。不断扩大复杂模型,来处理长尾问题。或者利用专家领域知识,换句话说混合模型或传统编程。以及逆强化学习,值得深入研究。

参考资料:

Waymo首席科学家MIT开讲:我们这样解决自动驾驶的挑战

你可能感兴趣的:(自动驾驶)