Aurora的无人车开发准则

本文来自《Aurora’s Approach to Developement》感想,所有图片引用来自原文。 上周阅读了无人车公司Aurora的一篇开发方法的文章,写得很有道理,很意外没有看到中文的分析和翻译,于是今天自己来讲一讲。 对于不了解Aurora的人,该公司由Waymo前CTO Chris Urmson创办。他们认为自动驾驶技术能改善交通安全性,可达性和便利性。他们的使命是让这个技术安全,快速和广泛地应用起来。为了完成这项任务,Aurora分享这篇关于他们技术和开发的战术文章。 自动驾驶是应用科学(applied science)问题,不是传统的产品开发。Aurora通过优化组织使他们的员工更好的去解决难题,并与战略伙伴将技术转化为产品。Aurora不相信纯研究计划和与工程师分离的团队能去的成功,他们相信工作中最需要好的工程师与好的领域专家相互协作。他们不相信普通的管理方法,或者工程师是可替代的。Aurora偏向在组织中培养对工作有深刻理解的领导者。 渐进主义的两面性。(笔者言:我这些天和很多无人车工作者聊天,有的公司很相信渐进主义,不断地找connor case,然后找数据训练模型解决问题,我觉得Aurora讲的两面性很有道理。)Aurora认为系统在L2,L3到L4的领域逐渐提高是不太可行的。在逐步提高的情况下,司机并不能无所顾忌的使用系统,我们也不会发布一个误导驾驶员能力的系统,提高驾驶风险。 相反,Aurora支持的渐进主义是先从有应用价值的关键领域入手,首先确保完全自我驾驶能力,再向外扩展。 优先模拟测试,离线测试。在无人车领域一个常见的想法是自动驾驶系统“只是关于数据”,隐含的假设是拥有最多数据的团队将获胜。追求这种观点会导致生成大量的低价值里程。自动驾驶汽车每小时可以产生数TB的数据,远远超过了处理能力。如果没有好的数据处理系统,能从数据中提取价值的团队将淹没在数据中。 Aurora优先数据处理,保证我们能用数据进行测试: Aurora不去测试不能模拟的工作。代码在模拟器里应该最终能成功的,但如果我们知道代码在模拟器里不工作,它肯定不会在现实世界中工作。 Aurora强调单元测试,模块测试和完整模拟测试,在代码都通过后才会在路上进行测试。 测试是强化学习的第一步。失败的测试成为以后系统必须解决的问题,用失败指导工作。 火箭vs梯子。有一句短语说:“不要试图建造一个通往月球的梯子”。这个短语来自Bell Labs,当时人们首次使用卷积神经网络读取商业支票,如今类似的技术被运用到计算机视觉的很多地方。对工程师来说,这个梯子每天都会变得更有用一点。但问题是它可能永远不会达到实际目标。实际上我们可能需要一个火箭,最初看起来几乎没有可见的进展,火箭停在架子上。但经过精心打造和测试,这枚火箭将在几天内飞越25万英里。 每一天,Aurora都需要平衡员工和合作伙伴关于造火箭,和造梯子的需求。 我们的目标是安全快速地推出自动驾驶车辆。这意味着我们需要快速设计模型并学习参数。我们更需要快速实验。如果我们可以使用Python创建原型,我们需要快速尝试,做出判断:新的学习系统能否更好地实现目标?如果是,我们就执行,并不在意他是短期的梯子还是花时间的火箭,我们需要执行去给火箭补充燃料。 Aurora的学习方法: 高质量数据:较高质量的数据比大量的低质量的数据更重要。 经验中学习:我们可以从驾驶员演示中获得非常有价值的数据。驾驶员干预措施表明

Read more