从0到1:关于机器学习,知道这些就够了

2018-07-04    来源:raincent

容器云强势上线!快速搭建集群,上万Linux镜像随意使用
到底什么是机器学习?机器学习在商业领域如何应用?和大数据、统计学又有什么关系?美国著名大数据教育机构、全美最佳大数据训练营“纽约数据科学学院”首席数据科学家张尚轩(Vivian Zhang),通过丰富的案例,深入浅出地为我们介绍了机器学习的基础背景、算法和应用。

 

 

(视频说明:从0到1,关于机器学习,知道这些就够了!)

▍机器学习和统计学是何关系?

今天我的分享主题是“从0到1:关于机器学习,知道这些就够了”。因此我主要会讲一些相关的背景知识和案例。

关于机器学习,很多人常常会问到一个问题:机器学习和统计学是什么关系。很多朋友在大学、中学的专业可能是统计学,而也有一些计算机系的朋友也会学到关于机器学习的知识。机器学习和计算机学科、统计学之间的关系,我会通过一些案例来说明。

很多人都用过iPhone手机的Siri助手功能,这就是一个典型的机器学习的例子。当你打开Siri的时候,你可以与它语音沟通:比如你可以让它帮你跟朋友约个会议、自动查询明天拉斯维加斯的天气怎么样等等。

 

 

Siri的原理并不复杂,它首先是试着明白你的语音,从中获取到你的具体指令,接着通过你自己手机本身存储的信息和互联网的信息,来找到你想知道的答案,最后它会将它整理出来的结果和答案直接反馈给你。

 

 

上图可以看出,在整个流程(听懂你的语音-识别你的指令-找到你想要的结果-组织结果回答你的问题)中,Siri反复用到了各种各样的机器学习的算法。

类似的例子还有很多,在当今社会,机器学习已经存在于我们生活的方方面面。比如语音识别、无人驾驶汽车、自动推荐系统、信用卡的防欺诈系统等等,这些领域都有机器学习的影子。机器学习知名学者吴恩达(Andrew Ng)曾经说过:机器学习已经无处不在,你可能在一天中使用过很多次,却不知道已经使用过它。

在学界来说,对于机器学习的一个比较流行的定义是:所谓机器学习就是用算法来教机器自动地从数据中学习知识。

另一个更为被学界接受的定义来自T.M.Mitchell:所谓机器学习就是一个计算机程序,它可以通过你的经验来提高你对处理某些任务的表现。

它包括三个方面的变量,一个是经验值(E)、任务值(T)和你的表现值(P)。当你的算法能够在特殊的任务值T中,通过经验的衡量,来提升你的表现。这样的算法就被认为是好的机器学习的算法。

这样的定义看起来绕口,却可以帮我们理清机器学习的目标、手段等等。

一般来说,机器学习被认为是计算机专业的一个部分,是人工智能的一个小分支。它和计算机科学、统计学、数学紧密关联,当然,很多人也会将机器学习形容为数据挖掘、数据分析和预测模型。因此,它是有很多名字的。

 

 

(图片说明:统计学,“机器学习是我那爱赶时髦的小屁孩儿。”)

我在研究生院的统计学教授就常常开玩笑说,其实他们研究的算法知识与计算机系的算法知识是很接近的。但不同的领域取的名字不一样,拿的政府基金也不一样。计算机系总是更有优势的。

机器学习非常年轻,是非常关注在行业的应用的。而统计学的历史悠久,其源自于对农业和社会学的研究。统计学拥有坚实的基础,而机器学习作为一个年轻的学科,统计学是可以成为其理论基础的。

 

 

(图片说明:统计学的特点是历史悠久而成熟。)

一个很好地比较两个学科的方法,就是看这两个学科的最顶级的杂志。例如机器学习的顶级杂志是《模式识别和机器智能》。我们找到三篇比较典型的文章例子。第一篇杂志文章是“关于浏览检索图像数据的纹理特征”,第二篇文章是一个叫“Pfinder:实时追踪你的人体”,最后一篇是“一个灵活的相机校准新技术”。

 

 

(图片说明:机器学习、统计学两门学科的顶级杂志文章对比。左为机器学习顶级刊物《模式识别和机器智能》,右为统计学顶级刊物《统计学年鉴》)

而统计学的顶级杂志《统计学年鉴》中,我们也可以找到比较典型的机器学习的文章,例如“如何估计一个模型的维度”,又例如“依赖关系下多重测试中的虚假发现率的一个控制方法”等等。

机器学习作为一个新兴的用词,跟高科技的连接是非常紧密的。而统计作为一个比较历史悠久的学科,相比高科技的整个运行要稍微延后一些。

而两个学科在处理结构化和非结构化的数据的能力方面也不尽相同。机器学习是为机器而设计的算法,所以其关注点是做预测和做决策。

它会从非常早期就开始更关注于计算的有效性,因为算不算得出来直接决定这个算法的成败。而统计学更多是为我们人类的理解和预测而设计的。例如整个社会的就业率这一类的问题,是不用太关心整个计算的成本的。一直到最近,计算成本才在统计行业中得到关注。

就统计学而言,其主要应用于经济学、社会科学、医学等一些领域。大部分情况下,数据量并不大。所以统计学家并不认为计算成本是一个很大的问题,但最近10年,这种情况发生了较大的改变。因为在生物和基因学中,单纯的统计模型已经无法解决里面的统计难点了。

很多朋友会问我们到底什么时候使用机器学习、什么时候会用到统计学知识。当你的数据非常特别的时候,例如如果你的数据是视频流数据,或者Youtube的数据,又如在美国有一家非常知名的安全数据计算公司叫做Palantir,他们受美国国土安全局的委托,通过他们的算法来寻找恐怖分子的位置。

这样的数据是非常大的。又或者像Facebook,它拥有很多实时上传的数据,这一类数据用传统模型和算法都无法处理。因此较好的方法是机器学习。

而当你的结果需要非常仔细地诠释的时候,而这种诠释又非常重要的时候,你应该使用统计。例如说,整个人口的增长率、社会的就业率,又比如说数据有明显的结构,比如说你的预测变量和反应变量是有很清楚的定义的。

又例如在一些很重要的行业,比如风险控制,理论基础是非常重要的。你不能通过黑箱的操作来做模型的时候,就必须使用统计。

像金融海啸之后,美国的司法部门和监管部门是禁止将非常复杂的算法用于金融行业的。因为它们没有办法被诠释。所有的算法似乎是黑盒子里计算出来的。因而在这些领域,更传统的统计模型得到了青睐。

机器学习科学家和统计学家现在有了越来越多的交流,比如,机器学习已经开始发展出更多的理论基础。

而通过与机器学习科学家的合作,统计学家也试图结合机器学习来拓宽他们的研究领域。在不久的未来,这两个学科的边界将越来越不明显,而同时演化成数据科学。

 

 

(图片说明:机器学习和统计学未来很有可能演变成同一个新学科:数据科学。)

▍有监督学习和无监督学习,如何区分?

现在我们来看一些机器学习在业界应用的具体例子。

首先,机器学习可以分成有监督学习和无监督学习。二者之间的区分,可以举个例子,比如,现在有一堆石头,你采集石头样本中各种元素的含量,想知道这块石头是不是陨石。

由于陨石和非陨石的定义是很清楚的,这样的例子就叫做有监督学习。相应的无监督学习的意思是,当你没有清晰定义的因变量,也没有清楚标注过的数据,这样的情况就叫做无监督学习。就如你拥有很多不同用户的手机使用数据,但你并不清楚每个使用者可以被归为哪个类型。你只知道这些用户的行为模式。

我们再看另外的例子,比如你可以通过社交媒体如Facebook等采集关于大选投票人的数据,我们可以将不同的人群分成不同的政治倾向,标注为共和党或者民主党员,或者是青睐这两个党的不同受众。

 

 

(图片说明:有监督学习和无监督学习的区别在于:监督学习有明确的标签,比如上图中,可以按照政治倾向,将美国的人群分为共和党支持者、民主党支持者。)

相应的,一个无监督学习的例子是你可以做一个所谓的社区分类。社区分类被广泛使用在整个网络(Network)的分析,可以帮助我们找到一些我们之前不了解的关于用户的信息。

比如这个用户并没有明显地展示他的政治倾向的时候,但它属于一个偏向民主党的社区,那么这个用户就可能成为一个支持民主党的人。

 

 

(图片说明:无监督学习中,往往会将人群分为一个个社区。通过人群所在的社区,再去推测他们的政党倾向。)

可以来看上图这个例子中的不同颜色,每一种颜色指的是一个大致的社区的分类。这种社区的区分概念现在越来越多地得到整个学界的关注,因为它的边界是很模糊的,需要更多的研究方法来找到它们的聚类,来找到区分方法。

再看另一个例子,比如亚马逊公司想要研究哪一类人最有可能购买Kindle阅读器。这一类的研究方法就是有监督的学习,因为他们已经收集了很多关于用户的信息,他们有明显的标签,买或者没买。

整个数据挖掘和分析过程并不是一蹴而就的,你会发现在对商业数据的采集、建模过程中,可能要好几个来回,才能最终定下所有阶段的需求、项目的分析等等,以上都是需要很多时间来调整的。这里可以看某个样本数据的分析过程:

 

 

这其实是一个语音素材的文本识别和提取的过程,并不是一步两步就可以轻松解决的。

▍机器学习案例:购买过iPhone 5的人,还会买iPhone 6吗?

另外一个常见的问题是,机器学习告诉我们的是已经知道的知识吗?并不是。机器学习更关注的是不那么容易得到的非表面化的一些知识。能通过简单的统计分析而了解到的知识,不能称它为机器学习。

另一点要强调的是,整个数据探索和分析的过程,是想通过自动化和半自动化的方法来对大量的数据,做有意义的行为模式的探索。

机器学习的算法可以被分为另外两类:一类是预测性的方法,这种方法是通过一些变量来预测未知的、可能的变量数值,另一类叫做描述性的方法,是告诉你一些人类可以轻松理解的行为模式,而这种模式可以很好地描述这个数据。

举例来说,分类算法、线性回归、非寻常情况的检测都是一种预测性的方法。而聚类、相关规则的探索则是一种描述性的方法。

每种算法操作起来都是非常不同的。比如说,分类算法要求这个数据集中的每条记录都有很多不同的属性,你的目标是通过这些所有的属性来寻找一个模型,这个模型可以将你没有见过的一个新的数据分配成正确的那种。

 

 

上面这张图片中展示的是一个经典的Iris数据集的例子。这一数据集采集了各种花卉的花萼的宽度、长度等信息,通过机器学习的方法,通过分类算法,可以有效地将三类花区分出来。

例如左边第二排第一张图,你可以明显的看到,绿色、橘色、蓝色的三个分组。当然你可能会注意到,这个分组的边界并不是那么清晰,橘色和蓝色会有一些重叠的部分,这些部分就是没有办法百分之百准确预测到的部分。

一个比较常见的分类算法在商业中的应用,例如我们可以找到正确的受众群,来减少我们推广的成本。比如,我们想寄邮件、寄信给消费者,促使其购买新的手机产品,一个比较常见的做法是用类似的产品的数据来做预测。

如果这个人购买过iPhone 5,其购买iPhone 6的可能性也可以做些预测。

如果我们可以采集到购买iPhone 5 和不购买iPhone 5的消费者的行为模式和其他一些基本资料,比如地域分布、生活习惯、他们在网上看什么数据、有没有搜索过iPhone 6的数据,是否有给苹果支持中心打过电话要求支持等等,这一类的数据都可以帮助我们来作为自变量,来做一个分类模型,从而帮助我们做出决定,找到购买可能性比较高的那些消费者。

 

 

另外一个案例是如何检测出非正常的情况。上面这张图中有很多图像的识别处理,左上角的灰色图片是不同的时间点截下来的图片,将这些图片进行降维分析,从多维数据降到三维数据,然后你可以看到第二排的第一张图——所谓的热点图,其中那个红色和黄色的热点,是区分出这个人的行为跟大部分在人行道上的人的行为不同之处。

他也许是走在了人行道的边界,即将走出人行道,或者是他有撞上别人,或者是他在人行道上骑自行车。这些非正常的行为都是可以通过图像识别来抓取的。据我了解,中国的警方已经实现了这类基本的图像识别,来检测道路上的非正常行为模式。

机器学习的例子很多,接下来再举一个美国的例子。美国的国立卫生研究所(NIH)每年都会给很多不同的学科以基金资助,通过机器学习,你可以找到这些学科之间的聚类关系。比如说神经网络系统和生物分子、生物系统是有很强的连接的。而健康信息和行为模式的分类下又有风险管理、风险预防这一类的研究方向。这样区分之后,可以帮助你更好地作出选择,看你的文章适合发到哪一类的杂志上,应该去申请哪一类的基金支持。

机器学习在商业中的应用方式还有很多,希望今后能有更多的机会再跟大家分享。

本文作者张尚轩(Vivian Zhang),美国纽约数据科学学院(NYC Data Science Academy)首席数据科学家。有多年数据挖掘、数据分析经验,擅长R、Python、Handoop、Spark等编程语言。曾被福布斯杂志评为“数据分析领域的9位女性”之一。

标签: 安全 大数据 互联网 金融 媒体 数据分析 搜索 推广 网络

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点!
本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。

上一篇:从零开始用Python构建神经网络

下一篇:为什么你需要改进训练数据,如何改进?