更多好玩的机器学习教程: 进入袋马学院领一份 ,全部免费?.
当构建一个非端到端系统上时,算法流程中,有哪些可以选的组件呢?如何设计算法流程会极大的影响你的系统性能。其中非常重要的一个因素是,你能否非常轻易的为每个组件都采集到数据。
比如,考虑下面这个自动驾驶的例子:
你可以使用机器学习算法检测其他车辆和行人。这种情况下采集数据并不难:有大量的计算机数据数据库中,包含了标记好的汽车和行人。你也可以使用众包(比如亚马逊的Mechanical Turk)来获取更多的数据集。因此很容易获取训练数据,来构建汽车检测器和行人检测器。
相反,在纯端到端方法中:
你需要大量的图片和转向方向对应的数据集。让你一个到处开车并记录转向信息来采集数据,是非常耗时的,而且成本非常高。你需要组建一个装有特殊装备的车队,并让他们到处驾驶,以便覆盖各种可能的场景。这使得端到端系统变得难训练。相反,采集大量标记好的汽车或行人图片,相对简单的多。
更一般的说,如果有大量的数据用来训练流程中的中间模块(比如汽车检测器、行人检测器),那么你可以使用一个多阶段的流程。这种结构可能更好一些,这样你就能使用所有的数据来训练中间模块了。
在没有更多的端到端数据可以之前,我相信在自动驾驶问题上,非端到端的方法还是非常有前景的。它的结构与可用的数据更匹配。
更多好玩的机器学习教程: 进入袋马学院领一份 ,全部免费?.