Py学习  »  机器学习算法

数据科学、机器学习、人工智能,都有哪些区别?

AI研习社 • 6 年前 • 297 次点击  

本文为雷锋字幕组编译的技术博客,原标题 What's the difference between data science, machine learning, and artificial intelligence?,作者为 David Robinson。

翻译 | 刘春雷  杨恕权    整理 |  凡江

当我向别人介绍我是数据科学家时,我常常被问到“数据科学和机器学习有什么区别”或者“这是否意味着你在从事人工智能工作?”类似问题我已经回答过很多次,答案可以总结成“三原则”:

这些领域确实有很多重合,而且各自都有各自的说法,选择哪一个看起来更像是一个市场问题。但是他们不可互换:这个领域的大部分专业人士,对如何把特定的工作分成数据科学、机器学习、人工智能,都有自己的一套直觉,尽管它很难用语言描述出来。

所以在这篇文章中,我提出了一个关于相当简化的定义:

  • 数据科学产生见解

  • 机器学习做出预测

  • 人工智能创造行为

需要明确的是,这不是一个充分的定义:不是所有符合定义的都属于这个领域。(算命师做决策,但我们永远不会说他们在做机器学习!)同样也,这也不是决定一个人的角色或者工作头衔的好方法(“我是一个数据科学家吗?”),这是一个关注点和经验的问题。(任何工作都可以这样描述:写作是我工作的一部分,但我不是一个专业的作家)。

但我认为这个定义是一种有效的方式,它可以来帮助你区别这三种类型的工作,这样谈论起来时不会让人觉得很傻。值得注意的是,我在讨论成为一个描述主义者而不是规范主义者的方法:我感兴趣的是这个领域的人如何使用这些术语而非术语本身。

  数据科学产生见解

数据科学和其它两个领域有所区别,是因为它的目标是基于人类:能够获得洞察力和理解。Jeff Leek对数据科学可以实现的洞察类型有很好的定义,包括:描述性(“普通客户有70%的更新机会”),探索性(“不同的销售人员有不同的更新率”)和因果关系(“一个随机实验表明分配给Alice的客户比分配给Bob的客户更有可能更新)。

不是所有产生洞察力的科学都是数据科学(数据科学的经典定义是统计学、软件工程和领域专业知识的组合)。 但是我们可以用这个定义来区分ML和AI。 主要区别在于,数据科学中总有人工介入:有人正在理解、洞察,看到数字,或者从结论中受益。 “我们的象棋游戏算法使用数据科学来决定下一步棋”或者“Google地图使用数据科学来推荐驾驶方向”是毫无意义的。

数据科学的定义因此强调:

  • 统计推断

  • 数据可视化

  • 实验设计

  • 领域知识

  • 交流

数据科学家可能会使用简单的工具:他们可以报告百分比并根据SQL查询制作线图;也可以使用非常复杂的方法:他们可能会使用分布式数据存储来分析数万亿条记录,开发尖端的统计技术并构建交互式可视化。 无论他们使用什么,目标都是为了更好地理解他们的数据。

  机器学习做出预测

我认为机器学习是关于预测的领域:“给定具有特定特征的实例X,预测Y”。 这些预测可能是关于未来的(“预测这个病人是否会得败血症”),但它们也可能是对于计算机不明显的特性(“预测这个图像是否有鸟)”。 几乎所有的Kaggle比赛都可以被认定为机器学习问题:他们提供一些训练数据,然后查看参赛者是否可以对新例子做出准确的预测。

数据科学和机器学习之间有很多重叠。 例如,逻辑回归可以用来获取关于关系的见解(“用户越富有,他们购买我们产品的可能性越大,所以我们应该改变我们的营销策略”)并做出预测(“这个用户有53 %购买我们产品的可能性,所以我们应该向他推荐我们的产品“)。

像随机森林这样的模型可解释性稍差,而且更适合“机器学习”的描述,深度学习等方法是众所周知的难解释。 如果你的目标是获得见解而不是做出预测,这可能会阻碍你。 因此,我们可以想象一个数据科学和机器学习的“谱”,其中可解释模型倾向于数据科学,更多“黑盒子”模型则倾向于机器学习这一边[source](https://xkcd.com/1838/)

大多数从业者可以在这两个任务之间非常舒适地来回切换。我在工作中同时使用到机器学习和数据科学:我可以通过机器学习的方法,在Stack Overflow的业务资料上匹配一个模型来判定哪些用户更有可能是在寻找一份工作,然后用数据科学来构筑结论和可视化结果来验证为什么这个模型有效。这是非常重要的方法来发现你模型中的缺点以及解决算法偏见。这也是数据科学经常将机器学习发展为一个产品的原因。

  人工智能创造行为

人工智能是目前为止这三个类中最古老和最广为承认的,但结果也是最具挑战性来定义的。由于寻求资金和关注的学者、记者和创业者,人工智能也得到了大肆宣传。 

因为这也意味着一些本应该被称为人工智能的工作却并不是按照这样进行描述的,这也引起了我的强烈反对。一些学者也在抱怨人工智能的作用:“人工智能是我们现在还无法做到的”。所以什么工作可以让我们合理地描述人工智能?

一个定义“人工智能”的通用思路是一种自发代理行为执行或者推荐行为行为 (e.g. Poole, Mackworth and Goebel 1998Russell and Norvig 2003)。我认为也属于人工智能的系统包括:

  • 人机博弈算法 (Deep BlueAlphaGo)

  • 机器人学和控制理论 (运动规划, 两足机器人的步行行为)

  • 优化选择 (谷歌地图路径选择)

  • 自然语言处理 (机器人2)

  • 强化学习

此外,人工智能与其他领域也有很多交叠。深度学习因为横跨机器学习和人工智能两个领域,所以特别有趣。典型应用例子就是训练数据然后作出预测,这已经在人人机博弈算法中表现出巨大的成功,比如Alphago(与更早之前的人机博弈系统,如深蓝相比,Alphago更聚焦于探索和优化未知的解决方案空间)。

但这之间也有区别。如果我分析一些销售数据,会发现来自特定行业的客户比其他更多  (提取出一些调查结果), 输出结果是一些数字和图表,不是特定行为。(管理者可能会根据这些结论改变销售策略,但这个行为不是自发性的) 这意味着我会将我的工作描述为数据科学: 如果将提高销售额的方法归结于人工智能将会是很尴尬的说法。

请不要将经受过算法训练的人都写作具有人工智能能力的人

——Dave Gershgorn  ✔@davegershgorn 3:17 AM - Sep 19, 2017

人工智能与机器学习的差异更加微妙,从发展历史来说,机器学习通常被认为人工智能的一个子领域 (计算机视觉尤其是一个经典人工智能问题)。但我认为机器学习领域已经与人工智能有较大割离,一定程度上是由于上面所提及的冲击:大多数研究预测问题的人都不喜欢把自己描述成人工智能研究人员。 (很多重要的机器学习所取得的突破来自于数据分析,而这些数据在AI领域的其他领域很少出现。) 这意味着,如果你能把一个问题描述为“从Y中预测X”,我建议你完全避免使用“人工智能”这个词。

  案例研究:怎样将这三者一起使用

假设我们正在开发一辆自动驾驶汽车,并且正在研究将车停靠在停车标志处的特定问题。我们需要从这三个领域中获得的技能。

  • 机器学习:  汽车必须使用它的摄像头识别停车标志。我们构造一个包含数百万街边对象的照片数据集,然后训练一个算法来判断那些照片中有停车标注。

  • 人工智能:一旦我们的汽车识别出停车标志,它就需要决定什么时候采取刹车动作。太早或太晚应用它们是危险的,我们需要它来处理不同的路况  (例如,需要识别一条光滑道路,并不足以较快地将速度降下来识到它的速度不够快), 这就是控制理论范畴。

  • 数学科学:在街头测试中我们发现车的性能并不是足够好,通过停车标志来驱动停车还是会有一些疏漏。在分析街边测试数据后,我们再次洞察到漏判率与每天的时间有关:在日出之前或日落之后更容易出现漏判 停车标志。我们意识到我们大多数训练数据仅都是大白天下的停车标志,所以我们构建了一个更好的数据集,包括夜间图片然后在返回去进行机器学习步骤。

  1. 通常将人工智能与能够在不同的领域执行任务的通用人工智能或者超过人类智力的超人工智能混为一谈并没有任何帮助。这对任何被描述为“人工智能”的系统都有不切实际的期望。

  2. 此处我提及到“机器人”是指用于解释自然语言并以同样方式回复的系统。这可以与用于提取数据的文本挖掘和用于分类文档的文本分类相区分。

博客原址 http://varianceexplained.org/r/ds-ml-ai/

更多文章,关注雷锋网(公众号:雷锋网),添加雷锋字幕组微信号(leiphonefansub)为好友

备注「我要加入」,To be a  AI  Volunteer !

NLP 工程师入门实践班:基于深度学习的自然语言处理

三大模块,五大应用,手把手快速入门 NLP

海外博士讲师,丰富项目经验

算法 + 实践,搭配典型行业应用

随到随学,专业社群,讲师在线答疑

▼▼▼





新人福利




关注 AI 研习社(okweiwu),回复  1  领取

【超过 1000G 神经网络 / AI / 大数据,教程,论文】



一张图看懂数据科学家、数据工程师和软件工程师之间的区别


今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/t/rvtJeIyDAw
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/8672
 
297 次点击