从机器学习到深度学习:基于scikit-learn与TensorFlow的高效开发实战
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.1 引言

当下有越来越多的消费类产品被冠以“智能”二字,以智能为主题的科幻电影也比以前拥有更多的观众,这些使得人们越来越多地思考:智能设备到底学到了什么?它们如何理解人类指令?它们会背叛人类吗?

同时,机器学习和人工智能已经成为科技企业、技术专家和管理者最感兴趣的话题,把机器学习和人工智能技术引入产品中并给终端用户提供新的服务,是他们的战略目标。

1.1.1 为什么使用机器学习

在20世纪末电视节目不算丰富的年代,美国动画片《变形金刚》是当时很多孩子每天晚上最渴望的节目。大多数孩子当时都有自己偏爱的角色,擎天柱、大黄蜂、机器恐龙、甚至是惊破天,而令我印象最深刻的却是一个出场不多的组合机器人——“计算王”。它的厉害之处是,在任何战斗前都能根据当时的形势计算出打败对手的可能性,从而可以在胜算不足时开溜,做到只打有把握之仗,这使它能在大多数情况下立于不败之地。

不论变形金刚在创作时是否聘请了人工智能方面的专家当顾问,现在回想起来“计算王”这个强大角色体现的正是机器学习中的有监督学习技术的应用。如果读者现在还不太能区分人工智能、机器学习、有监督学习这些概念的区别,那么本节是一个最好的开始。

思考:人工智能、机器学习、有监督学习、无监督学习有什么区别?

1.人工智能问题的复杂性

自计算机科学问世以来,人们就期望计算机有足够的知识来帮人类解决各种各样的问题。但曾经在很长一段时间里,计算机能解决的只是数字的加减乘除、文字存储传输、固定知识的问答等固定模式的问题。

在机器学习技术之前的人工智能科学家倾向于将所有的人类基本规则告诉计算机,以期在遇到复杂问题时计算机能够自动进行知识推理。这样的模式可以让计算机精确地完成加减乘除这样的简单任务,但当局面越来越复杂时,计算能力却不堪重负。一方面是因为总结这些基本规则的困难性,另一方面,随着规则数量的增加,对推理计算能力的要求成指数级增长。这导致了20世纪80年代人工智能发展的停滞。

以自然语言理解为例。在基于语法规则的系统中,语言专家需要将经过整理的各种语言的单词、词性、基础语法告诉计算机,然后计算机基于这些规则对给定的语句建立语法树以理解句子的含义。语法树举例如图1-1所示。

该图取自于《Python 自然语言处理》,其中的英文短语符号表示短语在句子中的成分类型,比如VP(Verb Phrase)是动词短语,NP(Noun Phrase)是名词短语。计算机通过规则推理由“同时就带了四张熟牛皮和十二头肥牛”这段文字产生如图1-1所示的语法树的复杂度大得惊人。

提示:“同时就带了四张熟牛皮和十二头肥牛”这句话来源于战国时期“弦高救国”的故事,故事中郑商弦高用这些礼品犒劳秦军,避免了秦军侵略郑国。

图1-1 语法树举例

这种系统的挑战性在于宽广的文字空间和无处不在的歧义。随着句子长度的增加,复杂度以无法想象的速度增长。分析树的解析数量是随着句子长度成 Catalan 数增长的,当句子长度为50个字时,需要建立1012个语法树以找到最佳匹配。

提示:Catalan数是以比利时数学家欧仁·查理·卡塔兰命名的一种统计用数列。其公式是,比如当n=1、2、3、4、5、6、7、8、9…时数列是1、2、5、14、42、132、429、1430、16796…,数列越向后增长越快。

2.机器学习的定义

科学家不断地探索能使计算机自己学习基本规则并整理规则之间的联系的方法,成为现代人工智能技术的重要组成部分。在全球使用最广泛的机器学习教材——卡内基梅隆大学的《机器学习》一书中,对完成这类工作的机器学习给出了定义:

如果一个计算机程序针对某类任务T可以用性能P衡量,并且能通过经验E来自我完善,则计算机可以在经验E中学习任务T,这就是机器学习方法。

在这个定义中明确提出了每一个机器学习系统必备的三个元素。

◎ 任务:有明确的目标,这些目标可以是打败一流围棋选手的计算机程序、识别阿拉伯语的手写字符、找出星巴克咖啡馆的最佳选址地点等。但不能是诸如“让系统更智能”这样的模糊概念。

◎ 可衡量:对任务有定量的评价方法,系统通过它来改进性能。对于围棋程序,可以通过其击败人类选手的等级来衡量;手写识别可以用通用文本库识别率来衡量。

◎ 可成长:这在现代机器学习中称为适配、训练。围棋程序可以通过与自己下棋获取经验;手写识别可以根据语料库中大量的已识别信息提高自己。

思考:有哪些生活中常见的机器学习系统?

通过这样的学习系统,计算机已经能完成很多复杂的工作。比如用于全球旅游的自助语言翻译系统、医院里从医疗记录中找到最佳治疗方案的智能诊断系统、在一定程度上脱离驾驶员控制的自动驾驶系统、虚拟商店里的智能导购机器人等。这些领域都用机器学习技术取得了突破性的进展。

3.与机器学习有关的其他学科

机器学习的发展以很多其他学科为基础,包括传统计算机、数据库与数据仓库、信息论、人工智能、计量经济学、统计学、神经科学等。它们之中的大多数是机器学习的理论与实践基础:

◎ 计算机提供基础的计算与存储能力。

◎ 数据库进行结构化数据的保存、查询、修改等;数据仓库ETL几乎是很多机器学习任务的必要环节。

◎ 信息论中的熵理论是很多人研究机器学习算法(如决策树、最大熵算法)的理论基础。

◎ 计量经济学中的回归被直接引用在机器学习中。

◎ 神经网络与深度学习的灵感来自于神经科学。

提示:数据仓库中的ETL是英文 Extract-Transform-Load 的缩写,即数据抽取、转换和加载。

另一方面,数据挖掘与人工智能是两个与机器学习相互影响的领域,也常有人误用这三个概念。

1.1.2 机器学习与数据挖掘

在2001年麻省理工学院出版的《数据挖掘原理》(Principle of Data Mining)一书中,提供了数据挖掘的一个非常简单的定义:

一门从大量资料或者资料库中提取有用信息的科学。

可以看出,数据挖掘强调的只是一个“提取有用信息”的目标,并没有像机器学习那样定义了方法或手段。而随着后来的发展,数据挖掘与机器学习采用了越来越多相同的方法,比如分类、回归、聚类等都是两个学科的共同目标任务。

在不同点方面,机器学习学到的知识通常是一个普适或可以被广泛应用的知识,比如手写识别、自动驾驶。这些知识一旦被掌握,可以迅速普及。而数据挖掘常常是针对某个特定的项目或数据集,被挖掘的知识更适用于特定的服务对象,比如挖掘某个超市中最值得销售的商品。由于每个超市所在社区与居民文化的不同,往往需要根据每个超市自身的销售历史数据进行各自挖掘。

注意:最值得销售的商品并不单单是利润最高的商品,需要结合利润、周转率、仓储体积、过期风险等进行综合衡量。

如图1-2所示从目标、手段、场合等不同方面演示了机器学习与数据挖掘的主要异同点。可以得知两者在方法与算法方面是互通互用的,是两门学科在各自领域最主要的研究课题,这些也是本书后续章节的主要内容。它们的不同之处主要在于出发点的不同:数据挖掘更强调流程、强调结果,而机器学习强调对算法本身的研究。

图1-2 机器学习与数据挖掘的主要异同点

可以肯定的是,一个机器学习专家只需花很少的时间就能成为一个数据挖掘专家,反之应该也是如此。

思考:机器学习与数据挖掘的异同还有哪些?

1.1.3 机器学习与人工智能

人工智能(Artificial Intelligence,AI)是当下最热门的科技词汇,但很多人其实不知道当他们在说“人工智能”时实际是在说机器学习。

人工智能最被认可的定义来自阿兰·图灵于1950年提出的图灵测试验证法:

如果一台计算机能用书面方式回答人类提出的问题,并且一位人类询问者在收到回答后意识不到这是来自于计算机的回答,那么这台计算机就拥有了人工智能。

显然,现在市场上的“智能”产品几乎都无法通过图灵测试。

在被全世界多数大学采用的人工智能教材《人工智能——一种现代的方法》中认为能通过图灵测试的计算机应有如下4个方面的能力。

◎ 自然语言处理:使其能成功用汉语、英语等与人类交流,而不是用固定的表格、关键字提示等方式。

◎ 知识表示:存储和传输计算机所了解的知识。这可以看成一种中间语言,其足够强大以表征所有类型的知识,包括名词、逻辑、运算等。

◎ 自动推理:计算机无法存储所有知识,那么用已有知识解决新的问题就是一种必需的知识。最简单的推理就是三段论:金属可以导电(大前提)→铜是金属(小前提)→铜可以导电(结论)。

◎ 机器学习:适应新的情况并用适配模式预测和解决问题。

可知,机器学习是人工智能的一部分,现在诸如导航软件、语音翻译等其实都是一种机器学习产品,如图1-3所示是机器学习与人工智能的关系。

图1-3 机器学习与人工智能的关系

注意:图1-3中的广义图灵测试是指为人工智能加入物理特性的测试。

由于近代机器学习方法在借鉴统计理论后得到了长足发展,它越来越多地影响到了人工智能的其他方面。比如在自然语言处理领域,当前很多网络店铺的虚拟客服能在很大程度上解决一些客户用自然语言提出的售后问题,其背后正是采用了基于机器学习方法的客户意图分类和搜索系统。