数据科学,机器学习和人工智能有什么区别
当我作为数据科学家介绍自己的时候,我经常会遇到像“数据科学和机器学习有什么区别”或者“这是否意味着你在从事人工智能研究?”这样的问题,我已经回答了无数遍,这些回答已经符合了我的 “三次准则”:
当你写相同的代码写了三遍时,你就应该去写一个函数 当你给出相同的个人建议三次时,你就应该将建议写在博客里
这些领域确实有很多重叠之处,再加上三个领域都充斥着媒体的营销炒作,导致人们很容易对他们产生混淆。 **但是它们之间是不可混淆的:**大多数这些领域的专业人员都能够去直观地理解一些特定的工作是如何被归类为数据科学、机器学习或人工智能的,即使这很难用语言去表达。
所以在这篇文章中,我提出了一个“这三个领域之间差异”的简单定义:
数据科学产生见解
机器学习产生预测
人工智能产生行为
要清楚的是,这个定义并不是绝对的权威的:并不是所有符合这些定义的事物都是这个领域的一部分。(算命先生每天都在预测,但是我们永远不会说他们搞机器学习!),同样这也不是一个确定某人角色或职位的好方法(“我是数据科学家吗?”),定义只是偏重各自领域的重点和不同的经验。(任何工作描述都是如此:写作是我工作的一部分,但我不是一个专业的作家)。
但是我认为这个定义仍然是区分这三种概念的一个有效的方法,并且当你谈论它们的时候不再会听起来很愚蠢。值得注意的是,我采取的是描述的方法而不是只对他们下定义:我感兴趣的不是这些术语“应该是什么意思”,而是这个领域的人们通常如何使用这些术语。
数据科学产生见解
数据科学与其他两个领域是有显著区别的,因为它的目标与人类的目标尤为契合:去获取见解和理解力。杰夫·李克(Jeff Leek)对数据科学提供的见解的类型给出了一个很好的定义,他认为数据科学应包括描述性(“普通客户有70%的可能再次续订”),探索性(“不同的销售人员有不同的续订率”)和因果关系(“随机实验表明分配给Alice客户的续订率比分配给Bob客户的续订率更高”)。
同样,并非所有可以产生见解的数据都有可以被认为是数据科学(数据科学的经典定义是它包含统计学,软件工程和领域专业知识的结合)。但是我们可以用这个定义来将数据科学与机器学习和人工智能区分开来。它们的主要的区别在于,在数据科学中,人是循环中不可缺少的一部分:算法得出数据结果,人们通过数据得到见解,或从结论中受益。这使得我们说“围棋演算法是使用数据科学来选择下一步”或“Google地图是使用数据科学来推荐行车路线”变得毫无意义,因为围棋算法与google地图推荐行车路线根本不需要人来帮助。
数据科学的定义强调的是:
统计推断
数据可视化
实验设计
领域知识
沟通
数据科学家可能会使用一些简单的工具:他们计算报告百分比,并根据SQL查询制作线性图。 他们也可以使用非常复杂的方法:使用分布式数据存储来分析数以万亿计的数据记录,开发尖端的统计技术,并构建交互式可视化模型。 无论他们使用什么,目标都是更好地解读他们的数据。
机器学习产生预测
我认为机器学习是属于预测领域的:“给定具有特定特征的样本X,预测它的Y值”。这些预测可能是关于未来(“预测这个病人是否会得败血症”),但也可能是一些对计算机而言的弱势领域(“例如预测这个图像中是否有鸟”)。几乎Kaggle的所有比赛项目都可以被认为是机器学习问题:他们提供一些训练数据,然后看看选手们能否使用自己的模型对新的示例做出准确的预测。
数据科学和机器学习之间有很多重叠之处。例如,逻辑回归可以用来获取各种数据之间的关联并做出预测(“用户越富有,他们会购买我们的产品的可能性越大,因此我们应该相应的改变我们的营销策略,如果这个用户有53 %的可能性购买我们的产品,那我们就应该去向他推销”)。
像随机森林这样的模型可解释性稍差,而且更适合“机器学习”算法去描述,而深度学习等方法则是十分难以解释的。如果你的目标是获取见解而不是做出预测,那么机器学习并不适合你。因此,我们可以想象机器学习和数据科学之间有一个简单的界限,更多可解释的模型倾向于数据科学,更多的“黑盒”模型则在机器学习方面。
大多数从业者可以非常轻松地在这两个领域之间来回切换。 我就会在工作中同时使用机器学习和数据科学:我可能会使用堆栈溢出流量数据建立一个模型来确定哪些用户可能正在寻找工作(机器学习),但与此同时我也需要就模型为什么能起作用给出总结并进行可视化测试(数据科学)。这是发现你模型中的缺陷,并与算法偏差作斗争的重要途径。 这是数据科学家经常负责开发产品的机器学习组件的原因之一。
人工智能产生行动
人工智能是迄今为止这三个领域中中最古老也是最社会认可度最高的,因此定义它最具有挑战性。 人工智能被大量的炒作所包围,这要“归功于”研究人员,记者以及一些寻求金钱或者关注的创业公司。
物极必反,这导致我对它感到很悲观,因为这意味着一些本应被称为人工智能的工作却无法得到它应有的描述。一些研究人员甚至抱怨AI效应:“AI是我们现在根本无法实现的事情”。那么我们可以把哪些工作恰当的描述为AI呢?
诸多“人工智能”定义中的一个共同点是:一个模拟人类智能的智能体代理,它能自主执行任务,并能根据行为作出反馈。(Poole,Mackworth和Goebel 1998,Russell and Norvig 2003)。 一些我认为应该描述为人工智能的系统包括:
游戏演算法(Deep Blue,AlphaGo)
机器人和控制理论(运动规划,双足走路机器人)
优化(Google地图选择驾驶路线)
自然语言处理
强化学习
同样,我们也可以看到人工智能与其他两领域有很多重叠的部分。深度学习在机器学习和人工智能上表现出来的跨界成就。典型的用法示例是对数据进行训练,然后进行预测,但在AlphaGo等游戏算法中却显示出巨大的成功。 (这与之前的游戏系统形成了鲜明的对比,比如Deep Blue,它更专注于探索和优化未来的解决方案空间)。
但人工智能也有很多区别。 如果我分析一些销售数据,发现特定行业的客户比其他行业的客户续订率更高,那么我会输出一些数字和图表,而不是采取特定的行动。(主管人员可能会用这些结论来改变我们的销售策略,但这种行为并不是自主的),这意味着我应将我的工作形容为数据科学:如果说我正在使用AI来提高我们的销售额,这会是令人气愤的。”
Dave Gershgorn: “拜托!” “拜托!“ ”拜托千万不要写一个训练算法的人是利用了AI的力量”
人工智能和机器学习之间的区别是十分微妙的,历史上机器学习经常被认为是人工智能的一个子领域(特别是计算机视觉是一个经典的AI问题)。 但是我认为机器学习领域在很大程度上已经从AI中剥离出来了,部分原因在于上面所说的反感:大多数从事机器学习的人不喜欢把自己形容为AI研究人员。 (许多重要的机器学习突破都源于统计学)。 这意味着如果你可以把一个问题描述为“从Y预测X”,我建议避免使用AI这个术语。
Amy Hoy: “根据今天的定义,y=mx+b都可以成为一个人工智能机器人,因为它可以告诉你函数线会往哪走。”
案例研究:三者如何一起使用?
假设我们正在建造一辆无人驾驶的汽车,并正在研究车可自动停靠在有停车标识位置这个特定的问题。 我们需要从这三个领域分别提取我们所需的知识技能。
**机器学习:**汽车必须使用摄像头识别停车标志。我们构建了包含数百万个街景标识图像的数据集,并且训练一个算法来预测哪里会有停车标识。
**人工智能:**一旦我们的车可以识别停车标志,它就需要决定何时采取刹车这个行为。过早或过晚刹车都是很危险的,并且我们需要它可以处理不同的道路状况(例如,识别一条光滑道路,它并不能很快减速),这是一个控制理论问题。
**数据科学:**在街道测试中,我们发现汽车的表现并不足够好,停车标识出现了不少导致错误的消极因素。在分析街道测试数据之后,我们得到的结论是漏判率取决于时间:在日出之前或日落之后,更有可能错过停车标志。我们意识到,我们的大部分训练数据仅包含白天时的对象,因此我们构建了包含夜间图像的更好的数据集,并返回到机器学习步骤。
by bigquant量化 《数据科学,机器学习和人工智能有什么区别?》