美国当地时间1月16日,全球自动驾驶领头羊Waymo,发布了十年周年庆祝短视频,并且在官方博客上发布了关于“Auto ML(Auto Machine Learning)”的文章,深度剖析了Auto ML与Google AI大脑,是如何帮助Waymo发展自动驾驶技术的。
在Waymo的官方推特上写着:十年前的这个星期,“项目司机”正式成立,其使命是改善道路安全,使交通更加便利。从这个“登月”项目,到谷歌自动驾驶汽车项目,现在是Waymo,一起为下一个十年及更远的将来而努力!
下面是关于Auto ML的文章,在Waymo,机器学习几乎在自动驾驶系统的每个部分都扮演着关键角色。它帮助我们的汽车看清周围的环境,理解世界,预测他人的行为,并决定他们下一步的最佳行动。
以感知为例,Waymo的系统采用了神经网络的组合,使Waymo的车辆能够解读传感器数据、识别物体,并随着时间的推移跟踪它们,从而对周围的世界有一个深入的了解。
创建这些神经网络通常是一项耗时的任务:优化神经网络架构,以达到自动驾驶汽车运行所需的质量和速度,是一个复杂的微调过程,Waymo工程师可能需要数月时间来完成一项新任务。
现在,通过与来自Google AI大脑的研究人员合作,Waymo正在将前沿研究付诸实践,以自动生成神经网络。更重要的是,这些最先进的神经网络比那些由工程师手工调整的神经网络质量更高、速度更快。
为了将Waymo的自动驾驶技术应用到不同的城市和环境中,需要针对不同的场景快速优化Waymo的模型。Auto ML使Waymo能够做到这一点,高效和连续地提供大量ML解决方案。
01
迁移学习:使用现有的自动化架构
Waymo和Google AI大脑的合作始于一个简单的问题:Auto ML能否为汽车生成高质量、低延迟的神经网络?
质量衡量的标准是由神经网络产生的答案的准确性,延迟度量网络提供答案的速度,也称为推理时间。由于驾驶是一种活动,它要求车辆使用实时答案,并且考虑到系统的安全性,神经网络需要在低延迟的情况下运行。大多数网络直接运行在Waymo的车辆上,结果少于10毫秒,这比部署在数千台服务器上的数据中心中的许多网络要快。
在原来的Auto ML论文(Learning Transferable Architectures for Scalable ImageRecognition PDF),谷歌AI的员工能够自动探索12000多个架构解决CIFAR-10的经典图像识别任务:确定一个小形象代表十个类别之一,比如买一辆汽车、飞机、一只狗,等等。
在后续文章(NEURAL ARCHITECTURE SEARCH WITHREINFORCEMENT LEARNING
PDF),他们发现了一个家庭的神经网络的构建块,称为NAS单元,这可能是由自动构建比手工网CIFAR-10和类似的任务。通过这种合作,Waymo的研究人员决定使用这些单元来自动构建针对自动驾驶任务的新模型,从而将CIFAR-10上的知识转移到汽车领域,第一个实验是语义分割任务:识别激光雷达点云中的每个点,如汽车、行人、树等。
图一:一个NAS单元的例子,这个单元在神经网络中处理前两层的输入
为此,Waymo研究人员建立了一个自动搜索算法,在卷积网络架构(CNN)中探索数百种不同的NAS单元组合,为Waymo的激光雷达分割任务训练和评估模型。当Waymo的工程师手工调整这些网络时,只能探索有限数量的架构,但是使用这种方法,可以自动探索了数百个架构。
相比以前的人工微调优化神经网络,Auto ML通过下面两种方式来改进:
一些具有类似质量的延迟显著降低;
其他的则具有更高的质量和类似的延迟。
初步成功后,Waymo将相同的搜索算法应用于另外两个与交通车道检测和定位相关的任务,转移学习技术也适用于这些任务,最后能够在汽车上部署三个新训练和改进的神经网络。
十年前的Waymo自动驾驶汽车(普锐斯)
02
端到端搜索:从头开始搜索新的架构
被最初成功的结果所鼓舞,接着就是更进一步、更广泛地寻找能够提供更好结果的全新架构,通过不局限于组合已经发现的NAS单元,可以更直接地寻找考虑到严格的延迟需求的架构。
执行端到端搜索通常需要手动探索数千个架构,这需要大量的计算成本。探索单一架构需要在具有多个GPU卡的数据中心计算机上进行几天的培训,这意味着搜索单个任务需要数千天的计算时间。相反,通过设计了一个代理任务:一个缩小的激光雷达分割任务,可以在几个小时内解决。
Waymo团队必须克服的一个挑战,是找到一个与最初的细分任务足够相似的代理任务。在确定代理任务上的架构质量与原始任务上的架构质量之间的良好相关性之前,对几个代理任务设计进行了试验。然后,启动了一个类似于AutoML论文的搜索,但现在是代理任务:一个端到端代理搜索。这是这个概念第一次应用在激光雷达数据上。
图二:代理端到端搜索:在一个缩小的代理任务上探索数千个架构,将100个最佳架构应用于原始任务,验证和部署car上最好架构中的最好架构。
Waymo使用了几种搜索算法,对质量和延迟进行优化,因为这对车辆非常重要。观察不同类型的CNN架构,使用不同的搜索策略,如随机搜索和强化学习,能够为代理任务探索超过10,000种不同的架构。通过使用代理任务,在谷歌TPU集群上需要一年以上计算时间的任务只需要两周时间。
当我们刚刚转移了NAS单元,结果发现了比以前更好的网络:
在相同的质量下,神经网络的延迟降低20-30%;
具有更高质量的神经网络,错误率降低8-10%,与以前的架构具有相同的延迟。
图三 :1)第一个图展示了在一组简单的架构上随机搜索发现的大约4000个架构。每个点都是一个经过培训和评估的架构。实线表示不同推理时间约束下的最佳体系结构,红点表示用转移学习构建的网络的延迟和性能。在这种随机搜索中,网络学习效果不如迁移学习。
图三:2)在第二张图中,黄色和蓝色的点表示另外两种搜索算法的结果。黄色的是对一组精致架构的随机搜索。蓝色的那个使用了强化学习,就像在[1]中一样,探索了6000多个架构。它产生了最好的结果。这两个额外的搜索发现,网络明显优于迁移学习的网络。
在搜索中发现的一些架构显示了卷积、池化和反卷积操作的创造性组合,如下图所示。这些架构最终非常适合最初的激光雷达分割任务,并将部署在Waymo的自动驾驶汽车上。
图四:由代理端到端搜索发现的一种神经网络结构
03
接下来是什么
Waymo的Auto ML实验仅仅是个开始。对于激光雷达分割任务,传输学习和代理端到端搜索都提供了比人工制作更好的网络,现在有机会将这些机制应用到新的任务类型上,这可以改善许多其他的神经网络。
这一发展为未来的ML工作开辟了新的令人兴奋的道路,并将提高Waymo的自动驾驶技术的性能和能力,并继续与谷歌AI大脑的合作。