第 1 章. 从产品目标到 ML 框架
本作品已使用人工智能进行翻译。欢迎您提供反馈和意见:translation-feedback@oreilly.com
ML 允许机器从数据中学习,并以概率方式行事,通过优化给定目标来解决问题。这与传统的编程方式截然不同,在传统编程方式中,程序员要一步一步地编写说明,描述如何解决问题。这使得 ML 特别适用于构建我们无法定义启发式解决方案的系统。
图 1-1描述了编写系统检测猫的两种方法。左边的程序由人工编写的程序组成。右边是一种 ML 方法,利用标有相应动物的猫狗照片数据集,让模型学习从图像到类别的映射。在 ML 方法中,没有关于如何实现结果的说明,只有一组示例输入和输出。
图 1-1. 从定义程序到展示示例
人工智能功能强大,可以开发出全新的产品,但由于它基于模式识别,因此会带来一定程度的不确定性。重要的是要确定产品的哪些部分将受益于 ML,以及如何以一种能将用户体验不佳的风险降至最低的方式制定学习目标。
例如,人类几乎不可能根据像素值编写一步一步的指令来自动检测图像中是哪种动物(尝试这样做也非常耗时)。然而,通过将数千张不同动物的图像输入 卷积神经网络(CNN),我们可以建立一个模型,比人类更准确地完成这种分类。因此,使用 ML 处理这项任务非常有吸引力。
另一方面,自动计算税款的应用程序应依赖于政府提供的指南。正如你可能听说过的,报税表上出现错误通常是不受欢迎的。因此,使用 ML 自动生成报税表是一个值得怀疑的提议。
当你可以用一套易于管理的确定性规则来解决问题时,你永远不会想使用 ML。所谓 "可管理",我指的是你可以自信地编写一套规则,而且维护起来不会太复杂。
因此,虽然 ML 开启了一个不同的应用世界,但重要的是要思考哪些任务可以并应该由 ML 来解决。在构建产品时,您应该从具体的业务问题出发,确定它是否需要人工智能,然后努力寻找能够让您尽可能快速迭代的人工智能方法。
我们将在本章介绍这一过程,首先介绍估算哪些任务可以用 ML 解决、哪些 ML 方法适合哪些产品目标以及如何处理数据要求的方法。我将通过我们在"我们的案例研究 "中提到的 ML 编辑器案例研究来说明这些方法:我们的案例研究:ML 辅助写作 "中提到的ML Editor 案例研究,以及对 Monica Rogati 的采访,来说明这些方法。
估计可能出现的情况
由于 ML 模型可以在无需人类逐步指导的情况下处理任务,这意味着它们能够完成一些比人类专家更好的任务(如从放射学图像中检测肿瘤或下围棋),以及一些人类完全无法完成的任务(如从数百万人的文章库中推荐文章或将说话者的声音变为别人的声音)。
人工智能直接从数据中学习的能力使其在广泛的应用中大有用武之地,但也使人类更难准确区分哪些问题可以用人工智能来解决。在研究论文或企业博客中发表的每一个成功结果,都有数百个听起来很合理的想法完全失败了。
虽然 目前还没有预测 ML 成功的万无一失的方法,但有一些指导原则可以帮助您降低处理 ML 项目的相关风险。最重要的是,您应该始终以产品目标为出发点,然后再决定如何最好地解决这个问题。在这一阶段,无论是否需要人工智能,都要对任何方法持开放态度。在考虑 ML 方法时,一定要根据这些方法对产品的适用性来评估,而不是简单地根据这些方法在真空中的有趣程度来评估。 ...