数据科学、机器学习、人工智能的区别到底是什么?
微信公众号“AI 前线”,(ID:ai-front)
作者| David Robinson
编译 | 严子怡
编辑|Emily
当我向别人介绍我是一个数据科学家的时候,我常常听到这样的疑问:“这和机器学习有什么区别?”或是“这是不是意味着你在做人工智能?”。我已经回答过太多次这样的问题。我回答的次数已经达到我事不过三的原则
David Robinson 的推文:
当你把相同的代码写了三遍时,请写一个函数。当你面对面的给过了 3 次完全相同的建议时,请写一篇博文。
这些领域之间的确有很大程度上的重合。并且,这其中的每一个领域都存在大量的炒作,以至于选择使用哪一个词这件事好像是一个跟营销有关的问题。 但是,它们并不是可以随意互换的。 即使很难用语言表达出来,大多数这些领域里的专家都能凭直觉地理解哪些工作属于数据科学,哪些工作属于机器学习或者人工智能。
因此,在这篇文章中,我提出了一个非常简单的关于这三个领域之间区别的定义:
- 数据科学产生洞见
- 机器学习产生预测
- 人工智能产生行动
要澄清的是,这不是一个充分条件:不是所有符合某个定义的东西就属于这个领域。(算命先生也产生预测,但我们绝不会认为它们在做机器学习!)这些定义也不是很好的确定一个人的角色和工作的方式(“我是一个数据科学家吗?”),这样的问题是与个人关注的方向和经历有关的。(这对于任何一个关于工作的描述都是对的:我的工作的一部分是写作但我不是一个专业的作家)。
但是,我认为这些定义在用于区分这三种类型的工作时是非常有用的。并且当你谈起这些知识时,这些定义可以让你避免自己听起来很蠢。值得注意的是,我采取的是描述主义而不是规定主义的方法:我感兴趣的并不是这些术语“应该是什么意思”,而是这个领域的人通常是如何使用它们的。
数据科学与其他两个领域的区别在于它的目标其实是人的目标:获得洞见和理解。Jeff Leek 对数据科学能达到的哪些类型的洞见有一个非常好的定义 ,包括描述性(“普通客户有 70%的可能去续费”),探索性(“不同的销售人员有不同的续费率”)和因果关系(“随机化的实验表明分配给 Alice 的客户比分配给 Bob 的客户更有可能续费”)。
再次强调,并非所有产生洞见的都被认为是数据科学(数据科学的经典定义是,它是统计学、软件工程和领域专业知识的组合)。但是我们可以用这个定义把它与机器学习和 AI 区分开来。主要的区别在于,在数据科学的工作流程中,总是存在一个人:这个人正在理解这些洞见,观察图表,或者从结论中受益。所以,我们不能说“我们的象棋算法使用数据科学来选择下一步怎么走”或“Google 地图使用数据科学来推荐行车路线”。
因此,这个关于数据科学的定义强调:
- 统计推断
- 数据可视化
- 实验设计
- 领域知识
- 沟通
数据科学家可能会使用简单的工具:他们可以报告百分比,并根据 SQL 查询制作线图。他们还可以使用非常复杂的方法:他们可能会使用分布式数据存储来分析数以万亿计的记录,开发尖端的统计技术,并构建交互式可视化。无论他们使用什么,他们的目标是更好地了解他们的数据。
我认为机器学习是一个关于预测的领域:“给定某个具有特定特征的实例 X,预测 Y”。这些预测可能是关于未来(“预测这个病人是否会患败血症”),但是它们也可能是一些计算机不容易理解的特质(“预测这个图像是否有鸟 ”)。几乎所有的 Kaggle 比赛都是机器学习问题:他们提供一些训练数据,然后看看参赛选手是否能够对新的例子做出准确的预测。
数据科学和机器学习之间有很多重叠。例如,逻辑回归可以用来获取有关关系的洞见(“用户越有钱,他们购买我们的产品的可能性越大,所以我们应该改变我们的营销策略”),并做出预测(“这个用户有 53%的可能性购买我们的产品,所以我们应该把这个产品推荐给他“)。
像随机森林这样的模型可解释性稍差。因此,它更像是属于机器学习和深度学习等难以解释的方法。如果你的目标是提取洞见而不是做出预测,这些方法可能会阻碍你的工作。因此,我们可以想象一个包含数据科学和机器学习的“光谱”,在其之上,易于解释的模型偏向于数据科学这边,而“黑盒”的模型在机器学习那一边。
大多数从业者能够非常舒适地在两个任务之间来回切换。我在工作中同时使用了机器学习和数据科学:我可能会使用 Stack Overflow 的流量数据训练出来的模型来确定哪些用户可能正在寻找工作(这是机器学习),但是也会构建概括性描述和可视化来检查为什么模型能够正确工作(这是数据科学)。这项工作是发现你的模型中的缺陷,并与算法偏差作斗争的一个重要途径。这是为什么数据科学家经常负责开发产品的机器学习组件。
人工智能是迄今为止这三个领域中最古老也是最广为人知的,因此定义它是最具挑战性的。这个词语被大量的炒作所包围,这要缘于研究人员,记者以及寻求金钱或关注的创业公司。
Baron Schwartz 的推文:
当你在融资时,它是 AI;当你在招聘时,它是机器学习;当你在写代码时,它是线性回归;当你在调 bug 时,它是 printf()
这让我内心产生了很不幸的抗拒情绪。因为这意味着一些应该被称为 AI 的工作没有被当作 AI。一些研究人员甚至抱怨 AI 的效应:“AI 是我们现在还无法做到的”【脚注 1】。那么我们可以把什么工作称作 AI?
“人工智能”定义中的一个共同点是自主行动主体执行或推荐行动(例如 Poole,Mackworth 和 Goebel 1998,Russell and Norvig 2003)。一些我认为应该描述为 AI 的系统包括:
- 游戏算法(深蓝,AlphaGo)
- 机器人和控制理论(运动规划,行走双足机器人)
- 优化算法(Google 地图选择路线)
- 自然语言处理(机器人【脚注 2】)
- 强化学习
同时,我们可以看到人工智能有很多与其他领域重叠的部分。深度学习在实现机器学习到 AI 的跨越这一方面特别引人注意。典型的用例是对数据进行训练,然后进行预测,但它却在 AlphaGo 等游戏算法中获得了巨大的成功。(这与之前的游戏系统形成了鲜明的对比,比如深蓝,它更专注于探索和优化后续的解空间)。
但他们之间也有区别。如果我分析一些销售数据,发现某一行业的客户比其他行业的客户续费的更多(提取洞见),我的输出是一些数字和图表,而不是一个特定的行动。(主管人员可能会用这些结论来改变我们的销售策略,但这种行动不是自主的)这意味着我将会把我的工作形容为数据科学。如果我说:我正在“使用 AI 来改善我们的销售情况”,那将是非常尴尬的。
Dave Gershgorn 的推文:
请不要看到一个只是训练过模型的人就说他掌握了 AI 的力量。
人工智能和机器学习之间的区别有点微妙,历史上机器学习经常被认为是 AI 的一个子领域(尤其是计算机视觉被视作一个经典的 AI 问题)。但是我认为机器学习领域在很大程度上已经从 AI 脱离开来了,部分原因在于上面所说的抗拒情绪:大多数从事预测问题的人不喜欢把自己形容为 AI 研究人员。(有助于实现许多重要的机器学习领域突破的知识,大都来自统计学。而统计学在 AI 领域的其他部分的出现则很少)。这意味着,如果你可以把一个问题描述为“从 Y 预测 X”,我建议避免使用 AI 这个术语。
Amy Hoy 的推文:
按照现在的定义,y=mx+b 是一个可以告诉你一条直线该往哪儿延伸的 AI 机器人。
假设我们正在建造一辆自动驾驶汽车,并且我们正在研究如何停在标志停车旁这样一个具体的问题。我们需要分别在这三个领域中使用以下技能。
- 机器学习:汽车必须使用摄像头识别停车标志。我们构建了包含数百万个街边物体照片的数据集,并且训练一个算法来预测其中哪一个有停车标志。
- 人工智能:一旦我们的车能识别停车标志,就需要决定何时采取刹车的动作。过早或过晚地刹车都是很危险的,我们需要算法能够处理不同的道路条件(例如,在一条光滑的道路上,它能认识到它现在不能足够快地减速),这是一个控制理论问题。
- 数据科学:在街头测试中,我们发现汽车的性能不够好,出现了一些本应该正确地停在停车标志旁的假阴性结果。分析街上的测试数据后,我们获得的洞见是假阴性所占的比率取决于测试在一天的什么时间进行:自动驾驶车很可能在日出前或日落后错过停止标志。我们意识到,我们的大部分训练数据仅包含日光充足环境下的对象。因此我们构建了包含夜间图像的数据集并再次从机器学习那一步开始做起。
脚注:
- 不可否认现在很多人把人工智能通常与能够跨越多个不同领域执行任务的 通用人工智能 相混淆,甚至与超越人类智能的 超人工智能 相混淆。这对任何现在称为“AI”的系统都提出了不切实际的期望。
- 这里所说的“机器人”是指一个能够解释自然语言,然后以某种方式回应的系统。它不同于文本挖掘,其目标是从中获取洞见(数据科学),也不同于文本分类,其目标是对文档进行分类(机器学习)。
查看英文原文:
http://varianceexplained.org/r/ds-ml-ai/