数据科学,机器学习和人工智能有什么区别?

数据科学,机器学习和人工智能有什么区别?

当我介绍自己时,经常会被人问到诸如“机器学习和xx有何区别?”或“你在使用人工智能吗?”等问题。类似问题我已经回复了很多次,按照我的"3原则”我决定写一篇博文:

如果你写了3次相同的代码,请写一个函数;

如果你提供了3次相同问题的建议给他人,请写一篇博文。

- David Robinson(@drob)2017年11月9日



的确,这些领域实际上存在很多重叠的部分,很多人处于在营销宣传的目的把他们混为一谈。但实际它们是不能相互取代的:稍有专业知识的人仅凭直观,也能理解特定领域的工作到底是属于数据科学、机器学习还是人工智能。

在这篇文章中,我讲发表我对三个领域的定义(或描述):

  • 数据科学产生洞察

  • 机器学习产生预测

  • 人工智能产生行动

  • 需要说明的是,这不是一个必要条件:并不是符合定义的都是属于这个领域的(算命先生会做出预测,但我们绝不会说他们在做机器学习!),而且这也不是确定某人的角色或职位的好方法,比如“我是数据科学家吗?”之类的问题(写作是我工作的一部分,但我不是专业作家)。

    但我认为这个描述是区分这三个领域的一种简单实用的方法,它会让你在谈论相关话题时显得更专业。注意,我采用的是描述而不是定义他:我不想去探讨他们究竟“是什么”,我感兴趣的是他们看起来“像什么”。

    数据科学产生洞察

    数据科学不同于其他两个领域,它的目标是站在人类视角的,它关注人如何获得对事物的洞察和理解。 Jeff Leek对数据科学可以实现的洞察类型有很恰当的定义,包括描述性洞察(“客户平均有70%的再购率”),探索性洞察(“不同的销售人员的客户可能有不同的再购率”)和因果关系(“随机实验表明分配给Alice的客户比分配给Bob的客户更有可能再购“)。

    并非所有产生洞察的行为都符合数据科学的定义(数据科学的经典定义涉及统计学、软件工程和领域专业知识的组合)。但是我们至少可以用这个定义来区分数据科学与ML和AL。

    在数据科学中,我们总是离不开人的主观行为:如某人正在理解和进行洞察,他们分析数字,从结论中受益。

    下面这样的描述就是不恰当的,如 “我们的象棋游戏算法使用数据科学来选择下一步棋”或“Google地图使用数据科学来推荐驾驶方向”。

    数据科学的定义强调下面几点:

  • 统计推断

  • 数据可视化

  • 实验设计

  • 领域知识

  • 通讯

  • 数据科学家会使用简单的工具:如输出百分比报告并根据SQL查询结果制作线图,当然他们也会使用更复杂的方法:如使用分布式数据库来分析数万亿条记录,研究并开发基于统计分析的系统并实现数据可视化,所做的这些都是为了更好地理解数据。



    机器学习产生预测

    机器学习主要用于预测:“如给定具有特定特征的实例X,预测Y”。这些预测可能是关于未来的(如“预测这个病人是否会出现败血症”),但也可能是关于计算机图形识别方面的(如“预测这幅图像是否有鸟)”。几乎所有的Kaggle比赛都是机器学习问题:他们提供训练数据,然后让参赛者提供数学模型,以便可以对新的数据做出准确的预测。

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

    像随机森林这样的模型可解释性差一些,他们更适合用“机器学习”来描述。另外,深度学习这样的方法解释性可能会更差,所以他和随机森林一样都是属于"机器学习"的范畴。如果你的目标是获取洞察而不是做出预测,很显然不适合用机器学习。由此我们可以这样区分:数据科学产生可解释的模型,而机器学习的模型更多是“黑盒子”,或者说是不可解释的。

    数据科学,机器学习和人工智能有什么区别?

    大多数从业者会可以在数据科学和机器学习之间平滑切换。我在工作中就同时使用机器学习和数据科学:我会使用Stack Overflow的流量数据来确定哪些用户可能正在寻找工作(属于机器学习),但也会通过摘要数据和可视化图来验证为什么模型会有效(属于数据科学),这也是发现模型缺陷并纠正算法偏差的重要方法。

    人工智能产生行动

    人工智能是这三个词汇中最古老也是最被大家熟知的,因此定义它很有挑战性。这个词现在很火,研究人员、媒体以及寻求金主或关注的创业公司都在为它的流行推波助澜。

    当你筹资时,你会说AI

    当你招人时,你会说ML

    当你实施时,你会说线性回归

    当你在调试时,它就是个printf()

    - Baron Schwartz(@xaprb)2017年11月15日

    很显然人工智能这个词现在用滥了。一些研究人员甚至抱怨外界对AI 的理解就是:“那些我们现在还做不了的事情 (注1) “。 到底我们应该怎么理解AI呢?

    人工智能定义有很多,有一个共同点就是:它可以自动代替人执行动作或给出推荐的动作(例如Poole,Mackworth和Goebel 1998,Russell和Norvig 2003)。一些我认为定义AI的系统包括:

  • 棋类算法(Deep Blue,AlphaGo)

  • 机器人控制理论(运动规划,行走双足机器人)

  • 优化(Google地图选择路线)

  • 自然语言处理(bots 注2)

  • 强化学习

  • 我们可以看到人工智能(AI)与其他领域有很多重叠,如深度学习就是跨越ML和AI领域的,深度学习典型的场景就是对数据进行训练,然后预测结果,这在AlphaGo等棋类比赛算法中获得了巨大的成功。 (这与早期的游戏系统形成鲜明对比,比如Deep Blue,它更专注于探索和优化下期策略)。

    人工智能和其他领域也是有区别的。如果我分析销售数据,并发现了特定领域的客户购买意向要高于其他人(获取洞察力),我只需要输出一些数字和图表,而不是特定的行动。 尽管高层管理人员可能会用使用这些图表的分析结论来改变销售策略,但这种行动不是自动进行的。所以这种情况你只能把它描述为数据科学,如果你说我们在“使用AI来提高我们的销售额,这是弄拧了。 



    请、请、请(重要的事情说三遍)不要把用训练算法说成“我利用了AI能力”

    - Dave Gershgorn(@davegershgorn)2017年9月18日

    人工智能和机器学习之间的区别有点微妙,历史上ML经常被认为是AI的一个子领域(特别是在计算机视觉)。但我认为ML在和AI越走越远了,分手的原因在于:大多数从事预测问题的研究人员不喜欢将自己描述为AI研究人员。 (其实许多重要的ML突破来自传统的统计学,而非AI领域)。这意味着如果你可以将问题描述为“从Y预测X”(属于机器学习),那么你最好不要使用AI这个词汇。

    按照现在某些人的定义,你甚至可以说y = mx + b是人工智能,原因它可以告诉你一条线的走向。(译者注:有反讽AI过度使用的意思,能做预测的未必是人工智能)

    - 艾米霍伊 @amyhoy)2017年3月29日

    案例研究:三者如何一起使用?

    最后我们用一个案例来说明这三个领域的区别。 

    假设我们正要建造一辆自动驾驶汽车,并正在研究汽车遇到停车标识后自动停车这样一个问题。我们需要分别从这三个领域获取能力:

    机器学习:汽车必须使用摄像头识别停车标识。我们构建了包含数百万街头物体照片的数据集,并对算法进行了训练,以预测哪些物体中有停止标识。

    人工智能:一旦我们的汽车可以识别停车标识,它需要决定何时采取刹车措施。过早或过晚都很危险,我们需根据道路条件(例如在湿滑的道路上)进行判断,这是一个控制论问题。



    数据科学:在实际测试中,我们发现汽车的表现不够好,有特定因素影响了它,导致它并没有在停车标志前停下来。在分析数据后,我们了解到,这个特定因素取决于一天的时间:在日出之前或日落之后,更有可能错过停车标志。我们意识到我们的大多数训练数据仅包含白天的,因此我们构建了包含夜间图像的数据集并重复机器学习步骤。



    注释:

    1)AI effect:有这么一种倾向,他们通常混淆了人工智能和通用人工智能的区别,认为所有的人工智能都可以行跨越多个不同领域的任务,甚至超越人类智能。

    2)在这里,“Bots”指意图理解人类语言并进行响应的自动化技术(属于机器学习)。这和文本挖掘是不同的,文本挖掘的目标是获取洞察(属于数据科学)或文本分类(属于机器学习)。



    End

    PPV课翻译,转载需授权

    数据科学,机器学习和人工智能有什么区别?