电子说
编者按:如果你要写3段同样的代码,你最好调用函数;如果你被人当面问了3次同样的问题,你最好写一篇文章……数据科学、机器学习、人工智能,随着这些词日渐频繁地出现在公众视野里,一些类似“程序员=修电脑”的误会也逐渐变得常见起来。那么,这三者的区别究竟是什么呢?近日,Stack Overflow的一位数据科学家David Robinson就不堪误会之扰,专门撰写了文章解释这三个名词的区别,让我来看看他的理解吧。
当我介绍自己是一名数据科学家的时候,我经常会遇到“机器学习和数据科学有什么区别?”“你是搞人工智能的吗?”这样的问题,我回答了一遍一遍又一遍,但所谓事不过三,现在我已经受不了了。
诚然,这些领域确实有很多重叠,再加上媒体连续不断的捆绑营销炒作,人们很容易把它们误解为同一种东西。但事实上,数据科学、机器学习、人工智能这三个概念是不可混淆的:大多数领域内的专业人士都对其中的区别有直观理解,但一旦涉及用语言描述出来,这个事情就变得困难重重了。
所以在这篇文章中,我想谈一谈这三个领域之间差异的简单定义:
数据科学产生见解;
机器学习产生预测;
人工智能产生行为。
需要注意的是,这些定义只是泛泛而谈:符合这些定义的东西未必能被归类于相对应的领域(算命先生天天帮人预测,但我不会说他们是在搞机器学习);这些定义也不是确定某人方向、职位的衡量标准(“我是数据科学家吗?”);其中包含的是三者各自偏重的重点和经验(任何工作都是这样:写文章是我工作的一部分,但我不是专业作家)。
虽然“严谨”不足,但我依然认为这些定义是区分数据科学、机器学习、人工智能这三个概念的有效方法,它至少可以让你在聊天的时候不那么门外汉。事实上,我在这篇文章内只做描述,不做定义。我对告诉你这些术语“应该是什么意思”完全不感兴趣,但我会告诉你相应领域的人会对用这些术语做什么事感兴趣。
数据科学产生见解
数据科学和机器学习、人工智能有显著区别,它关注的是人类目标:得到见解和理解。对此,杰夫·李克(Jeff Leek)在Types of Data Science Questions中给出了很好的定义,他认为数据科学应该包含描述性(如“普通客户的续订概率为70%”)、探索性(如“不同销售人员手中客户的续订率不同”)以及因果关系(研究表明分配给小明的客户的续订率比小红高)。
当然,并非所有带有一定见解的数据资料都属于数据科学范畴,从学科上讲,数据科学应该是统计学、软件工程和相关领域专业的结合,但这一点能把它和机器学习、AI明显区分开来。这三者的一个主要区别在于,在数据科学中,人是循环中不可缺少的一个组成部分:算法得出数字、结果,人从中得到见解,挖掘原因。对于机器学习,DeepMind的围棋算法不需要依靠人来选择下一步;对于AI,Google地图推荐行车路线时也不需要人来帮忙。
因此,数据科学强调的是:
统计推理;
数据可视化;
实验设计;
专业领域知识;
沟通。
数据科学家可能会使用一些简单的工具:计算百分比,并根据SQL查询制作线图。他们也会使用非常复杂的方法:用分布式数据存储分析数以万亿计的数据,开发尖端统计技术,并构建可视化交互工具。无论他们做了什么,怎么做,目标都是更好地解读数据。
机器学习产生预测
我认为机器学习的特点是产生预测:给定具有特定特征的样本X,预测Y。这些预测可能是关于未来的(如预测病人的疾病恶化情况),也有可能是关于计算机的弱势领域的(如预测图像中是否有鸟)。Kaggle上的所有项目比赛几乎都可以被视为机器学习问题:他们提供一些训练数据,看参赛者的模型能否基于数据集准确预测全新样本。
数据科学和机器学习有许多交叉,逻辑回归就是其中的一个典型。例如,我们可以用逻辑回归算法分析客户:客户越有钱,他买我们的商品的几率就越大,那我们就需要相应地改变营销策略。那么怎么制定营销策略呢?一个可参考的标准就是算法的预测:这个客户的购买几率是53%,所以我们应该向他推销产品。
但数据科学和机器学习毕竟是不同的。像随机森林这样的模型,我们在数据科学上很难对它作出解释,但它在机器学习领域却是最简单基础的模型之一,而深度学习的内容就更难理解了。如果你的目标是提取见解而不是做出预测,那么机器学习并不适合你。因此我们可以为数据科学和机器学习画一个简单的界限:数据科学更倾向于使用可解释的模型,而机器学习会更多地涉及“黑盒”模型。
事实上,大多数领域内的人都能在这两者之间轻松地来回切换,比如我就经常会在工作中用到数据科学和机器学习:我会基于Stack Overflow的业务数据建立一个模型来预测哪些用户可能正在找工作(机器学习),但与此同时我也需要就模型为什么能起作用给出总结并进行可视化测试(数据科学)。这是发现模型缺陷、和算法偏差作斗争的重要途径,也是数据科学家经常负责开发产品的机器学习组件的原因之一。
人工智能产生行为
迄今为止,人工智能可以称得上是三者中历史最悠久、社会认可度最高的领域,因此定义它颇具挑战性。谈及人工智能,最直观的一个感受就是炒作,研究人员、媒体、创业公司……人工智能堪称炒作的温床,搭上它,你就能获得名誉、热度和金钱。
如果你想融资,写AI;
如果你想招聘,写ML;
如果你想实现,线性回归;
如果你在debugging,printf()。
这就导致了我对它的悲观看法,因为这种“万物皆AI”的炒作会使一些理应被作为AI内容的基础工作“无家可归”。对此,一些研究人已经员开始抱怨AI效应:“我们现在根本无法实现AI。”那么,哪些工作可以被视为AI的一部分呢?
在Poole、Mackworth和Goebel于1998年出版的《计算智能》里,和Stuart Russell、Peter Norvig于2003年出版的《人工智能:现代方法》里,他们定义的“人工智能”有一个共同点,就是首先我们需要一个模拟人类智能的智能体代理,其次它能自主执行任务,并能根据行为作出反馈。所以以下是我认为应该被描述为AI的内容:
游戏算法(Game-playing algorithms),如AlphaGo;
机器人及控制论;
优化,如Google地图选择驾驶路线;
自然语言处理;
强化学习。
同样的,人工智能也和其他两个领域有大量交叉内容,尤其是深度学习在机器学习和人工智能上表现出来的跨界成就。深度学习的一个典型用法是基于数据进行训练,然后再进行预测,这很机器学习,但它的模型在游戏中也大获成功。和之前仗着算力提升,简单粗暴算出所有下法的超级计算机“深蓝”不同,AlphaGo虽然也有不低的算力要求,但它不再穷举,而是专注于探索和优化解决方案的未来空间。
但人工智能也很不一样。如果我正在用模型分析一些销售数据,发现某特定行业的客户比其他行业的客户拥有更高的续订率,那我会输出它的一些数字和图表,而不是简单下个结论(尽管主管会需要这个结论并基于它调整销售策略,但这一系列行为不是自主的)。在这种情况下,我在做的事叫做数据科学。
请!千万!千万!千万不要说:我正在用AI来提高销售额!(请联系某些金融机构的广告自行判断)
人工智能和机器学习之间也存在微妙的区别。以前我们会把机器学习作为人工智能的一个子领域,尤其是计算机视觉,它是后者的一个经典问题。但现在,我认为机器学习很大程度上已经从人工智能中剥离出来了,其中的一个原因是从业人员的反感:大多数从事机器学习的人都不愿意把自己形容为AI研究人员(许多机器学习突破都源于统计学)。独立意味着你可以把问题描述为“从Y预测X”,而不是用AI这样颇具玄学的词汇。
根据今天的定义,y=mx+b都成了一个人工智能机器人,因为它能告诉你函数线会往哪儿走。
案例研究:三者的组合
假设我们正在制造一辆自动驾驶汽车,需要研究汽车识别停车标志这个问题,那么我们需要结合这三个领域的知识。
机器学习:汽车必须使用摄像头识别停车标志。我们构建了一个包含数百万个包含路标的街景图像的数据集,并基于它训练一个能够准确识别停车标志的算法。
人工智能:一旦我们的车识别出了停车标志,它必须能自主判断何时刹车。过早过晚都是很危险的,同时它也要兼顾路况(如雨雪天气光滑路面),这是控制论的问题。
数据科学:在实际路测时,我们发现汽车性能不够好,因为停车标志出现了不少导致错误的消极因素。分析路测数据后,我们得到的结论是假阴性率(漏判率)取决于时间:日出前、日落后,汽车容易错过路标。由此我们发现大部分训练数据都是全天候的,汽车并没有针对夜间环境做过训练,所以我们搜集了很多夜间停车标志图像,返回机器学习步骤。
全部0条评论
快来发表一下你的评论吧 !