在Waymo,机器学习在自动驾驶系统的各个部分都发挥着至关重要的作用。它使车辆能够识别周围环境,感知和理解世界,预测其他人的行为,并做出相应的决策。
感知:
我们的系统采用了多种神经网络,使得车辆能够分析传感器数据,识别物体,并随着时间的推移追踪它们,从而更好地理解周围的环境。然而,构建这些神经网络通常是一个耗时的过程,因为需要优化神经网络的结构以达到所需的性能和速度。我们的工程师可能需要几个月的时间来完成一个新任务。
现在,通过与谷歌AI研究团队的合作,我们已经能够利用自动化的方法生成神经网络。这些由机器生成的神经网络不仅比人工调优的网络更优秀,而且速度更快。
传输学习:使用现有的AutoML架构
最初的问题是:AutoML是否可以为我们生成高质量且低延迟的神经网络?“高质量”意味着网络输出结果的准确性,“低延迟”则指网络提供答案的速度。由于驾驶是一项实时任务,对延迟的要求非常高。大多数直接在车上的网络都能在不到10毫秒的时间内给出结果,这比许多在数据中心运行的网络更快。
在之前的AutoML研究中,谷歌AI团队成功地找到了超过12,000种架构来解决CIFAR-10图像分类问题。这些架构包括被称为NAS单元的新型构建模块,这些模块生成的网络比人工设计的网络在性能上更优越。通过这种方式,我们决定使用这些单元来创建适用于自动驾驶任务的新模型,将CIFAR-10上的研究成果应用到我们的领域。
我们首先尝试了语义分割任务,即把LiDAR点云中的每一个点识别为汽车、行人或树木等。为了实现这一目标,我们的研究人员建立了一个自动搜索算法,用于在卷积神经网络架构中寻找数百种不同的NAS单元组合,从而训练和评估模型。这种方法显著提高了模型的性能,在某些情况下,即使是在相似质量下,也能大幅降低延迟;而在另一些情况下,则能在相似延迟下获得更高的精度。
基于这一初步成功,我们进一步将相同的搜索算法应用于与交通车道检测和定位相关的其他任务中。通过迁移学习技术,我们能够在车辆上部署三个新的、经过训练和优化的神经网络。
端到端搜索:从头开始探索新架构
受到初步实验结果的鼓舞,我们决定更广泛地探索全新的架构,而不仅仅是已有的NAS单元。为了找到满足严格延迟要求的架构,我们设计了一个代理任务,简化了原始的LiDAR分割任务,使任务可以在几小时内完成。这大大减少了计算成本。
我们面临的挑战之一是找到一个与原始任务足够相似的代理任务。通过多次尝试,我们最终确定了一个与原始任务性能高度相关的代理任务。然后我们启动了一个类似于早期AutoML论文的搜索过程,但在代理任务上进行,这是一个端到端的搜索过程。这是首次将这一概念应用于激光雷达数据。
我们使用了多种搜索算法,对质量和延迟进行了优化,因为这两者对我们来说都非常关键。我们观察了不同类型的卷积神经网络架构,并使用了随机搜索和强化学习等不同的搜索策略。通过这种方法,我们探索了超过10,000种不同的架构。借助代理任务,我们在Google TPU集群上仅用了两周时间就完成了相当于一年的计算量。我们发现了一些比之前使用的NAS单元更好的网络: - 神经网络在延迟方面降低了20%-30%,同时保持了相同的性能。 - 这些网络的质量更高,错误率降至8%-10%,与之前的架构相比延迟相同。
一些搜索过程中发现的架构展示了卷积、池化和反卷积操作的创新组合,这些架构非常适合我们的最终激光雷达分割任务,并将在Waymo的自动驾驶车辆上部署。
未来展望
尽管我们目前的实验还处于初期阶段,但传输学习和代理端到端搜索已经证明了它们在激光雷达分割任务中的优势。我们期待在未来将这些机制应用于更多的任务中,从而提升各种神经网络的性能。这一进展为未来的机器学习工作开辟了新的道路,也增强了我们的自动驾驶技术的能力。我们期待与谷歌AI团队继续合作,敬请期待更多更新!
参考文献
[1] Barret Zoph and Quoc V. Le. Neural Architecture Search with Reinforcement Learning. ICLR, 2017. [2] Barret Zoph, Vijay Vasudevan, Jonathon Shlens, Quoc V. Le. Learning Transferable Architectures for Scalable Image Recognition. CVPR, 2018.
致谢
Waymo和Google之间的合作是由Waymo的Matthieu Devin和Google的Quoc Le发起和资助的。这项工作由Waymo的Shuyang Cheng和Google的Gabriel Bender和Pieter Jan Kindermans共同完成。特别感谢Vishnu Tirumalashetty的支持。