电子说
经典MIT的Deep Learning for Self-driving Car课程上,邀请到了Waymo首席科学家Drago Anguelov,分享题为“Taming The Long Tail of Autonomous Driving Challenges(驯服自动驾驶的长尾挑战)”,主要是讲在现实世界中的Long Tail现象,各种异常情况该如何收集、融合、发布和测试。
知乎@黄浴总结了此课程的一些新看点:
1. 题目是“长尾”处理;2. 可以处理道路维修场景;3. 可以识别特殊车辆(警车/救护车/消防车);4. 可以预防闯红灯的车辆;5. 可以对马路自行车行为轨迹预测;6. 通过NAS学习模型;7. 不完全依赖机器学习,可以利用专家知识(domain knowledge);8. 不是E2E学习驾驶行为,而是Mid-2-Mid,就是最近的ChauffeurNet;9. 学习的行为预测有自适应性,比如激进的或者温和礼貌的;10. 仿真不能解决所有问题,仿真系统需要更多的agent model,要smart。
下面是智车科技对本次分享的视频解读及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 如何测试,结构化测试,是否有封闭的测试环境。在模拟器方面,他们认为代理能够模拟现实世界中发生的事情。不断扩大复杂模型,来处理长尾问题。或者利用专家领域知识,换句话说混合模型或传统编程。以及逆强化学习,值得深入研究。
全部0条评论
快来发表一下你的评论吧 !