当我跟别人介绍自己是一名数据科学家时,别人总会问我“数据科学与机器学习之间有什么区别?”或者“那你从事的工作一定是跟人工智能有关吧?”关于这些问题我已经回答过了无数次了,每次解释的答案都是基于我自己总结的“三原则”:
相同的代码如果写了3次,那最好把它写成函数 当相同的建议跟别人说了3次,那最好把这些建议写成一篇博客 — David Robinson(@drob)2017年11月9日
这几个领域之间的确存在着很多重叠的地方,但是其实它们之间并不是可互换的:这些领域的大多数专业人士对如何将特定的工作分类为数据科学、机器学习还是分类为人工智能,都有一种直观的见解,即使这种见解很难用语言表达。
所以在这篇文章里面,我将对三个领域之间的差异性做一个简短的定义,该定义如下:
需要清楚的是,这三者之间的限定并不是那么绝对:并不是所有符合每个定义的东西都只属于这个领域。(就像算命先生在做预测,但是他们并不是机器学习!)当然,这些差异也不是确定某个人角色或职位的好方法(“我是数据科学家吗?”),这是跟经验相关的。
但是我认为这个定义是区分这三种工作的有效方法,并且如果谈论三者之间的区别的时候,这个回答听起来也不会很傻。值得注意的是,我使用的是描述性的方法而不是说明性的方法:我对这些术语“应该是什么”并不感兴趣,而是对该领域的人们通常如何使用它们感兴趣。
数据科学与其他两个领域不同,因为它的目标跟人类的目标尤其接近:获得洞察力和理解力。Jeff Leek对数据科学所能达到的见解类型有一个很好的定义,包括描述性,探索性和因果关系。
同样,并不是所有产生见解的东西都有资格成为数据科学(数据科学的经典定义是它包含了统计、软件工程和领域专家的结合)。但是我们可以用这个定义把数据科学同机器学习和人工智能区别出来。它们之间的主要区别在于,在数据科学中,总是有一个人在循环当中:某人理解这个观点,看到数字,或者从结论中获益。说“下棋算法使用数据科学来选择下一步行动”,或者“谷歌地图使用数据科学来推荐驾驶方向”都是毫无意义的。
因此,数据科学的定义强调:
数据科学家可能使用一些简单的工具:可以报告百分比,并根据SQL查询绘制线形图。还可以使用非常复杂的方法:可能与分布数据商店合作,分析数以万亿计的记录,开发前沿的统计技术,建立交互式可视化。不管使用什么,目的是为了更好地理解数据。
我认为机器学习是一个预测领域:“给定实例X具有特定的特征然后进行预测”。这些预测可能是关于未来的(“预测这个病人是否会进入脓毒症”),但也可能是对于计算机来说并不是很轻易就识别出来的一些特质(“预测这个图像是否有鸟在里面”)。几乎所有的Kaggle竞赛都认为是机器学习的问题:提供一些训练数据,然后看看竞争对手能否对新的例子做出准确的预测。
数据科学和机器学习之间有很多重叠。例如,可以使用逻辑回归得出见解的关系(“富裕的用户更有可能会买我们的产品,所以我们应该改变我们的营销策略”),从而进行预测(“该用户有53%机会购买我们的产品,所以应该把产品推荐给他们”)。
像随机森林这种模型可解释性稍差,更适合“机器学习”的描述,而深度学习等方法则难以解释。如果你的目标是获取真知灼见,而不是做出预测,这可能会妨碍你。因此,我们可以假设有一个数据科学和机器学习的“光谱”,更倾向于数据科学的可解释模型和机器学习方面更多的“黑匣子”模型。
大多数的实践者会在两个任务之间来回切换非常轻松。在我的工作中使用了机器学习和数据科学:我可以在Stack Overflow上安装一个模型,以确定哪些用户可能正在寻找工作(机器学习),然后构建总结和可视化来检验模型的工作原理(数据科学)。 这是发现模型中的缺陷,并与算法偏见作斗争的重要途径。这是数据科学家经常负责开发产品的机器学习组件的原因之一。
人工智能是这三个名称当中迄今为止最古老以及最广为人知的,因此它的定义也是最具有挑战性的。感谢那些寻求金钱或关注的研究人员、记者和初创公司,使得人工智能这一术语被大量的传播和营销。
当你筹集资金的时候,这属于人工智能。 当你在招聘时,这属于机器学习。 当你执行时,这属于线性回归。 调试时,这属于printf() — Baron Schwartz (@xaprb) 2017年11月15日
在“人工智能”的所有定义中,有一个共同点就是自主代理人执行或推荐操作(例如Poole, Mackworth和Goebel 1998, Russell和Norvig 2003)。一些我认为应该描述为AI的系统包括:
同样,我们可以看到很多与其他领域的重叠。深度学习既属于机器学习范畴,又属于AI领域,这是非常有趣的。典型的用例是对数据进行训练,然后生成预测,在像AlphaGo这样的博弈算法中已经取得了巨大的成功。
但也有区别。如果我分析一些销售数据并发现特定行业的客户比其他行业的客户更新更多,那么输出是一些数字和图形,而不是特定的操作。(高管们可能会用这些结论来调整销售策略,但这种做法并不是自动的)。
人工智能和机器学习之间的区别更加微妙,历史上的机器学习经常被认为是人工智能的一个分支(特别是计算机视觉,这是一个典型的人工智能问题)。但我认为,机器学习领域很大程度上已经从人工智能独立出来了,部分原因是上面描述的反弹案例:大多数从事预测问题的人不喜欢把自己描述为人工智能研究人员。
根据今天的定义,y=mx+b是一个人工智能机器人,它可以告诉你一条线的去向。 — 艾米Hoy✨(@amyhoy)3月29日,2017年
假设正在建造一辆无人驾驶车,现在卡在了停车标志这个具体问题上面。我们需要用到这三个领域之间的相关技术。