50. 选择管道组件:数据可用性

在构建非端到端学习的管道系统时,管道组件的最佳选择是什么?如何设计管道将极大地影响整个系统的性能,其中一个重要因素是你是否可以轻松收集数据来训练管道的每个组件。

例如,下列这个自动驾驶汽车的算法架构:

50. 选择管道组件:数据可用性 - 图1

你可以使用机器学习算法来检测汽车和行人。此外,获取这些数据并不困难:有许多计算机视觉数据集——大量标记了汽车和行人。你还可以使用众包(比如Amazon Mechanical Turk)来获取更大的数据集。因此,对于训练自动驾驶算法的汽车和行人检测器来说,训练数据的获取相对容易。

相反,考虑一种纯粹的端到端方法:

50. 选择管道组件:数据可用性 - 图2

为了训练这个系统,我们需要一个大的(图像,方向)对数据集。让人们驾驶汽车并记录他们的转向方向来收集这些数据是非常耗时和昂贵的。同时你需要一支特别装备的车队,以及通过大量的驾驶来尽可能的覆盖所有可能遇到的场景,这使得端到端的学习系统很难训练。相比而言,获得大量的有标记的汽车或行人图像的数据集要容易得多。

更一般地说,如果有许多数据可用来训练管道的「中间模块」(例如,汽车检测器或者行人检测器),那么你可以考虑使用具有多个阶段的管道。这种结构可能更优越,因为你可以使用所有可用数据来训练中间模块。

在更多的端到端数据可用之前,我认为非端到端方法对于自动驾驶来说更有希望:它的架构能够更好地发挥出数据的价值来。