人工智能与大数据技术导论
上QQ阅读APP看书,第一时间看更新

4.1 走进机器学习

大数据是怎么与图像识别、语音识别等具体的AI技术联系起来的呢?靠的就是机器学习。

4.1.1 什么是机器学习

机器学习(Machine Learning)是让机器从大量样本数据中自动学习其规则,并根据学习到的规则预测未知数据的过程。以上是机器学习的一个定义。如果你在网上搜索“机器学习”,你会看到很多版本的定义。毕竟,越是火热的词汇,人们越难给它下一个精准而权威的定义。在机器学习的众多定义中,我们认为这个定义是相对让初学者容易接受的一种说法。这个定义中的关键字是“学习”二字。机器学习的目标是发现数据中暗藏的规律,并由此来对未知进行预测。这个过程要通过“学习”来实现,而学习用到的材料则是数据。

4.1.2 机器学习的感性认识

如果你是第一次接触机器学习,其实机器学习离你绝不遥远。机器学习可以类比小孩认知事物的过程,只不过这里的认知过程是交给机器来完成的,让机器发现事物的规律。在我们小的时候,我们对周边的事物还并不了解,不知道什么是苹果,什么是猫,什么是汽车。但在经过某种“训练”之后,我们逐渐能够自信而准确地判断出我们看到的、听到的、感知到的东西是什么。这个“训练”可能来自外部的教导,也可能源自于我们自身的探索和尝试。

举个例子来说,在我们很小的时候,家长带我们参观动物园。刚刚学会说话和识字的我们会看到很多令我们“惊奇”的未知生物。家长告诉我们那个长鼻子的动物是大象,我们似懂非懂地记住了。走了几步之后,我们又在另一个地方发现了另一只长得很像之前看到过的物体,家长又告诉我们“这也是一只大象”。回到家中,我们拿着洗出来的照片,指着照片上的“长鼻子”问妈妈,“这个是什么来着?”妈妈回答我们说是大象。这时我们已经逐渐发现了这个叫作大象的东西长相的特点(见图4-2)。过了几天后,我们在电视机上的动物园短片中看到了一个熟悉的轮廓,凭借自己对“长鼻子”和其他特征的一些判断,我们向妈妈喊出:“看,是大象”。

图4-2 大象识别样图

机器学习的原理和上面的过程极其相似。假如你想让机器完成从图像中识别大象的任务。就像人的知识不是与生俱来的一样,机器不是一上来就什么都会的,想让机器能够完成任务,要先提供大量的数据让它学习,告诉它大象长什么样子,大象之外的其他动物长什么样子。在经过大量样本的学习后,机器可以从一张新的图像中判定其中是否有大象,如图4-3所示。

图4-3 大象识别样图

4.1.3 机器学习的本质

如图4-4所示,类似人脑思考,机器经过大量样本的训练(training),获得了一定的经验(模型),从而产生了能够预测(inference)新的事物的能力,就是机器学习。这种预测能力,本质上是输入到输出的映射。

图4-4 机器学习与人脑思考

给定一个输入,比如一段语音、一张图片或者一些数据型的信息,计算机能够建立一个函数(可以理解为一种对应关系),生成输出结果(见图4-5)。机器学习的任务就是找到这个函数,找出从输入到输出的规则。

图4-5 机器学习的例子

4.1.4 对机器学习的全面认识

机器学习是一门学科,它基于概率、统计、优化等数学理论的研究,理论严谨,也是已被广泛认可的成熟的知识体系。机器学习在高等教育院校中作为一门独立的课程存在,近年来受到包括数据科学、统计学、计算机、应用数学、运筹学、工程学等众多专业的学生的青睐。在学术研究方面,每年机器学习相关论文发表不计其数,是数理学科重要的学术研究方向之一。

机器学习也是一门技术,它被数据科学家(Data Scientist)广泛应用,是在数据分析中最常用的技术之一。而数据科学家也是21世纪最火热的职业之一,其中机器学习是这个职位最重要的技能和工作内容之一。同时,也有像“机器学习工程师”这样的纯粹做机器学习的岗位。随着大数据时代信息量和数据量的爆炸式提升,人们对未知事物更加好奇,机器学习越来越能够“落地”而发挥使用价值。同时,随着Python等编程语言的普及以及TensorFlow等机器学习框架的完善,这个曾经似乎是高端学术的东西也越来越偏向应用,能够被更多人接受。

机器学习包含一系列算法,虽说它是这一系列算法的总称,但仅仅把机器学习视为算法或者模型是不准确的。机器学习是解决问题的一种方法,算法只是其中的一部分。这里所谓的算法或者模型,只是从输入到输出之间的一步,而机器学习是实现从输入到输出的全部过程,其中还包括对输入数据的清洗和转换、对特征的提取和整合、对数据的探索分析等。这些必要的步骤不做,拿到数据就盲目地直接套用模型,是不能解决问题的。

4.1.5 机器学习、深度学习与人工智能

机器学习、深度学习和人工智能都是现今人们热议的词汇,这三个概念通常被人们联系在一起讨论,但很多人理不清三者之间的关系。其实这三个概念虽然定义上的动机和角度有所差异,但事实上它们之间存在很清晰的包含关系。普遍认为,人工智能、机器学习、深度学习三者的关系如图4-6所示。

图4-6 人工智能、机器学习和深度学习的包含关系

从概念上来说,机器学习是人工智能的一个分支。机器学习被看作解决人工智能问题的途径或者方案。而深度学习是机器学习的子类,或者可以理解为机器学习众多算法中的一种。只不过因为它最近过于突出的表现,人们越来越习惯把这个概念单独提出来讨论。

从时间轴来看,三者也从大到小有着推进关系。人工智能这个词出现得最早。早在1950年,人工智能的概念就被提出,当时这个全新的领域令人兴奋不已。到了1980年左右,机器学习开始兴起,人们开始用机器学习的方法解决人工智能问题。深度学习在2010年开始流行,作为机器学习中最前沿的部分,推动人工智能发展出现巨大突破。下面介绍深度学习,并重点说明深度学习和机器学习的关系。

最近几年,“深度学习”的概念也越来越火热,并且这个词更多地与人工智能产生了直接联系。深度学习被视为进入人工智能领域的敲门砖,也是很多人工智能项目开展的基石。关于深度学习,我们会在后面的章节中进行详细介绍。这里我们先用几句话说明深度学习与机器学习之间的联系和区别。

前文提到,深度学习和机器学习是包含关系,深度学习是机器学习的一个子类。在传统的介绍机器学习算法的课程中,绝大多数会提到神经网络这个模型,而深度学习其实就是有多个隐藏层的神经网络。所以说,深度学习可以算作机器学习的一个分支领域,从算法来说是机器学习的一种,只不过这个分支由于具有其他算法不具备的显著优势,特别在AI领域的应用中,这些优势使得深度学习解决问题的效果尤为突出,所以在某种程度上,深度学习几乎成了人工智能模型算法的代名词。

在AI很多特定的领域中,我们看到的现象也确实如此,深度学习作为新兴的模型算法,表现出压倒性的统治力,而传统的机器学习算法应用只占极少数。那么,深度学习究竟为何能够在短时间内异军突起,击败它的“老前辈”们,成为新时代的宠儿?深度学习的优势究竟在哪里?在本书介绍完机器学习和深度学习后,相信读者会对它们的本质看得更透彻,也会对二者产生更直观的感性认识,对这个问题我们会在第7章给出解释。

在这个深度学习大有“一统江湖”趋势的时代里,我们还有必要学习传统的机器学习模型理论吗?答案是肯定的。首先,传统的机器学习模型并不落后,至今还有相当大的使用价值,在一些特定的问题中使用起来更为快速、灵活;其次,传统机器学习模型的思想对学习深度学习有重要的帮助。深度学习的许多理论和思想是基于传统机器学习模型的理念而来的。深度学习所用的神经网络可以由简单的机器学习模型(如感知机、逻辑回归)演变而来。

对于初学者来说,可以将深度学习理解为“多层神经网络”。严格来说,深度学习是一种学习的模式,是指采用具有“深度”的模型进行学习,其本身并不是一个模型。多层神经网络是具有“深度”特点的一个学习模型,它实际上是深度学习的一种形式。

4.1.6 机器学习、数据挖掘与数据分析

除了深度学习之外,另一个和机器学习类似而被人们广泛谈论的词语是数据挖掘(Data Mining)。另外,数据分析(Data Analysis)和大数据分析(Big Data Analysis)也似乎和机器学习有着密切的联系。下面我们把这几个概念放到一起谈谈。

无论是机器学习、数据挖掘还是数据分析,都没有一个学术上的权威定义。这几个词本身从定义上的出发点不同,并且提出概念的动机和背景上的差异比之前提到的人工智能、机器学习和深度学习之间的差异更大,因此它们直接的界定更为模糊。因为它们在定义上有相通和重叠之处,我们也没有必要刻意去区分这几个概念之间的关系。这几个概念不像之前的人工智能、机器学习、深度学习那样容易通过维恩图来阐述。不过我们还是简单比较一下它们之间的异同。我们先来看一个数据分析的例子,如表4-1所示。

表4-1 数据分析的例子

对比上述三组数据,我们会发现B组的得分显著高于A组和对照组。通过建立统计学模型,我们会得出B组的得分显著高于A组的结论,于是证明药物B更加有效。根据已知信息进行分析总结,得出有意义的结论,就是一般数据分析要做的工作。

人们通常所说的数据分析是对小规模数据而言的,而当我们需要处理大规模数据时,往往会用大数据分析这个说法。大数据分析和数据分析相比,主要是数据量的区别以及因此而带来的运算模式和方法上的差异。大数据分析通常需要依赖多台计算机和分布式系统架构进行计算。除去这一点,大数据分析在目标上和数据分析是大致相同的。大数据分析与数据挖掘、机器学习的概念也更接近一些,因为数据挖掘和机器学习几乎都是建立在大数据基础上的。

相比数据分析,数据挖掘要做的事情更深入,跟机器学习的意义也更为贴近。数据挖掘不仅是对数据进行分析总结,还要“挖掘”表层所看不到的信息。从概念上来说,二者既有交叉,又有区别。数据挖掘的范围更大,是指从数据中获得有价值的信息。数据挖掘经常会通过机器学习来完成。事实上,两者的区别我们只需从字面上理解即可。数据挖掘侧重于“挖掘”二字,是从海量数据中发现和提取有用信息的过程。这里所谓有用的信息,可以是任何具有指导意义、在商业环境中能够帮助人们进行决策的信息。

数据挖掘的一个经典案例是“啤酒和尿布”的故事。在20世纪90年代,美国沃尔玛超市的管理人员从销售数据中发现了一个有趣的现象:在某些特定的情况下,“啤酒”与“尿布”两件看上去毫无关系的商品经常会出现在同一个购物篮中。经过后续分析发现,同时购买这两种商品的顾客通常是年轻的父亲。这样问题得到了解释:在美国有婴儿的家庭中,母亲一般在家中照看婴儿,而去超市买尿布的任务通常会落在父亲身上。父亲在购买尿布的同时,往往会顺便为自己购买啤酒。因此,啤酒和尿布竟然成为“会经常同时购买”的商品。这样一来,沃尔玛想出了一个点子,将啤酒和尿布尝试摆放在同一个货架区域,从而让年轻父亲能够在找到尿布的同时发现啤酒,从而大大提升了两种商品的购买率,最终为超市带来了更高的营业收入。通过数据挖掘,沃尔玛员工给公司挖掘出了商业价值。这就是数据挖掘的魅力所在。

反观机器学习,从机器学习的定义来说,它最终落在“预测”两个字上,由此可见,通常机器学习是基于预测未知信息给人们带来决策上的收益的。但数据挖掘则不限于如此。发现数据的规律后不一定要跟着做预测,一条有价值的总结性信息可以直接帮助人们进行决断。

机器学习、数据挖掘、数据分析、大数据分析的相同点总结如下:


• 都是从数据中提取信息的过程。

• 都是数学和计算机结合的产物。

• 都可以帮助人们进行判断和决策。