第一部分 机器学习基础
第一部分 机器学习基础
第1章绪论 一个人在不接触对方的情况下,通过一种特殊的方式,和对 方进行一系列的问答.如果在相当长时间内,他无法根据这些问 题判断对方是人还是计算机,那么就可以认为这个计算机是智 能的。 -啊兰·图吴(Alan Turing】 (Computing Machinery and Intelligence 深度学习(Deep Learning)是近年来发展十分迅速的研究领域,并且在人 工智能的很多子领域都取得了巨大的成功.从根源来讲,深度学习是机器学习的 一个分支,是指一类问题以及解决这类问题的方法」 首先,深度学习问题是一个机器学习问题,指从有限样例中通过算法总结出 一般性的规律,并可以应用到新的未知数据上.比如,我们可以从一些历史病例 的集合中总结出症状和疾病之间的规律.这样当有新的病人时,我们可以利用总 结出来的规律,来判断这个病人得了什么疾病. 其次,深度学习采用的模型一般比较复杂,指样本的原始输入到输出目标 之间的数据流经过多个线性或非线性的组件(component).因为每个组件都会 对信息进行加工,并进而影响后续的组件,所以当我们最后得到输出结果时,我 们并不清楚其中每个组件的贡献是多少.这个问题叫作贡献度分配问题(Credit Assignment Problem,CAP)[Minsky,l961].在深度学习中,贡献度分配问题是 面球度分配问题也经 一个很关键的问题,这关系到如何学习每个组件中的参数 常翻译为信用分配问 题成功劳分配问题。 目前,一种可以比较好解决贡献度分配问题的模型是人工神经网络(Art cial Neural Network,ANN).人工神经网络,也简称神经网络,是一种受人脑神 经系统的工作方式启发而构造的数学模型.和目前计算机的结构不同,人脑神经 系统是一个由生物神经元组成的高度复杂网络,是一个并行的非线性信息处理 系统。人脑神经系统可以将声音、视觉等信号经过多层的编码,从最原始的低层 特征不断加工、抽象,最终得到原始信号的语义表示.和人脑神经网络类似,人工
第1章 绪论 一个人在不接触对方的情况下,通过一种特殊的方式,和对 方进行一系列的问答.如果在相当长时间内,他无法根据这些问 题判断对方是人还是计算机,那么就可以认为这个计算机是智 能的. ——阿兰·图灵(Alan Turing) 《Computing Machinery and Intelligence 》 深度学习(Deep Learning)是近年来发展十分迅速的研究领域,并且在人 工智能的很多子领域都取得了巨大的成功.从根源来讲,深度学习是机器学习的 一个分支,是指一类问题以及解决这类问题的方法. 首先,深度学习问题是一个机器学习问题,指从有限样例中通过算法总结出 一般性的规律,并可以应用到新的未知数据上.比如,我们可以从一些历史病例 的集合中总结出症状和疾病之间的规律.这样当有新的病人时,我们可以利用总 结出来的规律,来判断这个病人得了什么疾病. 其次,深度学习采用的模型一般比较复杂,指样本的原始输入到输出目标 之间的数据流经过多个线性或非线性的组件(component).因为每个组件都会 对信息进行加工,并进而影响后续的组件,所以当我们最后得到输出结果时,我 们并不清楚其中每个组件的贡献是多少.这个问题叫作贡献度分配问题(Credit Assignment Problem,CAP)[Minsky, 1961]. 贡献度分配问题也经 常翻译为信用分配问 题或功劳分配问题. 在深度学习中,贡献度分配问题是 一个很关键的问题,这关系到如何学习每个组件中的参数. 目前,一种可以比较好解决贡献度分配问题的模型是人工神经网络(Artificial Neural Network,ANN).人工神经网络,也简称神经网络,是一种受人脑神 经系统的工作方式启发而构造的数学模型.和目前计算机的结构不同,人脑神经 系统是一个由生物神经元组成的高度复杂网络,是一个并行的非线性信息处理 系统.人脑神经系统可以将声音、视觉等信号经过多层的编码,从最原始的低层 特征不断加工、抽象,最终得到原始信号的语义表示.和人脑神经网络类似,人工
1.1人工智能 2021年5月18日 3 神经网络是由人工神经元以及神经元之间的连接构成,其中有两类特殊的神经 元:一类用来接收外部的信息,另一类用来输出信息.这样,神经网络可以看作信 息从输入到输出的信息处理系统。如果我们把神经网络看作由一组参数控制的 复杂函数,并用来处理一些模式识别任务(比如语音识别、人脸识别等),神经网 络的参数可以通过机器学习的方式来从数据中学习.因为神经网络模型一般比 较复杂,从输入到输出的信息传递路径一般比较长,所以复杂神经网络的学习可 以看成是一种深度的机器学习,即深度学习. 神经网络和深度学习并不等价.深度学习可以采用神经网络模型,也可以采 用其他模型(比如深度信念网络是一种概率图模型).但是,由于神经网络模型 可以比较容易地解决贡献度分配问题,因此神经网络模型成为深度学习中主要 采用的模型。虽然深度学习一开始用来解决机器学习中的表示学习问题,但是由表示学习参见第13节 于其强大的能力,深度学习越来越多地用来解决一些通用人工智能问题,比如推 理决策等 在本书中,我们主要介绍有关神经网络和深度学习的基本概念、相关模型、 学习方法以及在计算机视觉、自然语言处理等领域的应用.在本章中,我们先介 绍人工智能的基础知识,然后再介绍神经网络和深度学习的基本概念 1.1人工智能 智能(Intelligence)是现代生活中很常见的一个词,比如智能手机、智能家 “智能”可以理解为“智 居、智能驾驶等.在不同使用场合中,智能的含义也不太一样比如“智能手机”中力”和“能力”,前者是 的“智能”一般是指由计算机控制并具有某种智能行为.这里的“计算机控制”+ 智能的基础,后者是指 被取和用知识求解 “智能行为”隐含了对人工智能的简单定义. 的能力. 简单地讲,人工智能(Artificial Intelligence,AI)就是让机器具有人类的智 能,这也是人们长期追求的目标.这里关于什么是“智能”并没有一个很明确的 定义,但一般认为智能(或特指人类智能)是知识和智力的总和,都和大脑的思 维活动有关.人类大脑是经过了上亿年的进化才形成了如此复杂的结构,但我们 至今仍然没有完全了解其工作机理.虽然随着神经科学、认知心理学等学科的发 展,人们对大脑的结构有了一定程度的了解,但对大脑的智能究竟是怎么产生的 还知道得很少.我们并不理解大脑的运作原理,以及如何产生意识、情感、记忆等 功能因此,通过“复制”人脑来实现人工智能在目前阶段是不切实际的. l950年,阿兰·图灵(Alan Turing)发表了一篇有着重要影响力的论文 《Computing Machinery and Intelligence》,讨论了创造一种“智能机器"的可能 性.由于“智能”一词比较难以定义,他提出了著名的图灵测试:“一个人在不接触 对方的情况下,通过一种特殊的方式和对方进行一系列的问答.如果在相当长时 https://nndl.github.io/
1.1 人工智能 2021 年 5 月 18 日 3 神经网络是由人工神经元以及神经元之间的连接构成,其中有两类特殊的神经 元:一类用来接收外部的信息,另一类用来输出信息.这样,神经网络可以看作信 息从输入到输出的信息处理系统.如果我们把神经网络看作由一组参数控制的 复杂函数,并用来处理一些模式识别任务(比如语音识别、人脸识别等),神经网 络的参数可以通过机器学习的方式来从数据中学习.因为神经网络模型一般比 较复杂,从输入到输出的信息传递路径一般比较长,所以复杂神经网络的学习可 以看成是一种深度的机器学习,即深度学习. 神经网络和深度学习并不等价.深度学习可以采用神经网络模型,也可以采 用其他模型(比如深度信念网络是一种概率图模型).但是,由于神经网络模型 可以比较容易地解决贡献度分配问题,因此神经网络模型成为深度学习中主要 采用的模型.虽然深度学习一开始用来解决机器学习中的表示学习问题,但是由 表示学习参见第1.3节. 于其强大的能力,深度学习越来越多地用来解决一些通用人工智能问题,比如推 理、决策等. 在本书中,我们主要介绍有关神经网络和深度学习的基本概念、相关模型、 学习方法以及在计算机视觉、自然语言处理等领域的应用.在本章中,我们先介 绍人工智能的基础知识,然后再介绍神经网络和深度学习的基本概念. 1.1 人工智能 “智能”可以理解为“智 力”和“能力”.前者是 智能的基础,后者是指 获取和运用知识求解 的能力. 智能(Intelligence)是现代生活中很常见的一个词,比如智能手机、智能家 居、智能驾驶等.在不同使用场合中,智能的含义也不太一样.比如“智能手机”中 的“智能”一般是指由计算机控制并具有某种智能行为.这里的“计算机控制”+ “智能行为”隐含了对人工智能的简单定义. 简单地讲,人工智能(Artificial Intelligence,AI)就是让机器具有人类的智 能,这也是人们长期追求的目标.这里关于什么是“智能”并没有一个很明确的 定义,但一般认为智能(或特指人类智能)是知识和智力的总和,都和大脑的思 维活动有关.人类大脑是经过了上亿年的进化才形成了如此复杂的结构,但我们 至今仍然没有完全了解其工作机理.虽然随着神经科学、认知心理学等学科的发 展,人们对大脑的结构有了一定程度的了解,但对大脑的智能究竟是怎么产生的 还知道得很少.我们并不理解大脑的运作原理,以及如何产生意识、情感、记忆等 功能.因此,通过“复制”人脑来实现人工智能在目前阶段是不切实际的. 1950 年,阿兰·图灵(Alan Turing)发表了一篇有着重要影响力的论文 《Computing Machinery and Intelligence》,讨论了创造一种“智能机器”的可能 性.由于“智能”一词比较难以定义,他提出了著名的图灵测试:“一个人在不接触 对方的情况下,通过一种特殊的方式和对方进行一系列的问答.如果在相当长时 https://nndl.github.io/
11人工智能 2021年5月18日 间内,他无法根据这些问题判断对方是人还是计算机,那么就可以认为这个计算 机是智能的”,图灵测试是促使人工智能从哲学探讨到科学研究的一个重要因素, 引导了人工智能的很多研究方向.因为要使得计算机能通过图灵测试,计算机就 必须具备理解语言、学习、记忆、推理、决策等能力.这样,人工智能就延伸出了很 多不同的子学科,比如机器感知(计算机视觉、语音信息处理)、学习(模式识别、 机器学习、强化学习)、语言(自然语言处理)、记忆(知识表示)、决策(规划、数 据挖掘)等.所有这些研究领域都可以看成是人工智能的研究范畴。 人工智能是计算机科学的一个分支,主要研究、开发用于模拟、延伸和扩展 人类智能的理论、方法、技术及应用系统等.和很多其他学科不同,人工智能这个 学科的诞生有着明确的标志性事件,就是1956年的达特茅斯(Dartmouth)会 议.在这次会议上,“人工智能”被提出并作为本研究领域的名称同时,人工智能 研究的使命也得以确定.John McCarthy提出了人工智能的定义:人工智能就是John MeCarthy(I9 要让机器的行为看起来就像是人所表现出的智能行为一样, 272011).人工智 学科莫基人之一,197 目前,人工智能的主要领域大体上可以分为以下几个方面: 年图灵奖得主, (1)感知:模拟人的感知能力,对外部刺激信息(视觉和语音等)进行感 知和加工.主要研究领域包括语音信息处理和计算机视觉等。 (2)学习:模拟人的学习能力,主要研究如何从样例或从与环境的交互中 进行学习.主要研究领域包括监督学习、无监督学习和强化学习等, (3)认知:模拟人的认知能力,主要研究领域包括知识表示、自然语言理 解推理、规划、决策等 1.1.1人工智能的发展历史 人工智能从诞生至今,经历了一次又一次的繁荣与低谷,其发展历程大体上人工智能低谷,也叫人 可以分为“推理期“知识期”和“学习期”[周志华,2016). 工智能冬天(AIW ter),指人工智能史 1.11.1推理期 研究青金及学术界研 究兴趣都大幅减少的 1956年达特茅斯会议之后,研究者对人工智能的热情高涨,之后的十几年 时期。人工智能倾战经 是人工智能的黄金时期.大部分早期研究者都通过人类的经验,基于逻辑或者 历过好几次低谷期.每 事实归纳出来一些规则,然后通过编写程序来让计算机完成一个任务.这个时期 次狂热高潮之后,紧 中,研究者开发了一系列的智能系统,比如几何定理证明器、语言翻译器等.这 接看是失望、批评以及 研究查全新绝。然后在 些初步的研究成果也使得研究者对开发出具有人类智能的机器过于乐观,低估 儿,十年后又重城研的 了实现人工智能的难度.有些研究者甚至认为:“二十年内,机器将能完成人能做 兴燕.19741980年 到的一切工作”,“在三到八年的时间里可以研发出一台具有人类平均智能的机 1987-1993年是两个主 器”,但随着研究的深入,研究者意识到这些推理规则过于简单,对项目难度评估 要的低谷时期,其他还 有几个较小的低谷 https://nndl.github.io
1.1 人工智能 2021 年 5 月 18 日 4 间内,他无法根据这些问题判断对方是人还是计算机,那么就可以认为这个计算 机是智能的”.图灵测试是促使人工智能从哲学探讨到科学研究的一个重要因素, 引导了人工智能的很多研究方向.因为要使得计算机能通过图灵测试,计算机就 必须具备理解语言、学习、记忆、推理、决策等能力.这样,人工智能就延伸出了很 多不同的子学科,比如机器感知(计算机视觉、语音信息处理)、学习(模式识别、 机器学习、强化学习)、语言(自然语言处理)、记忆(知识表示)、决策(规划、数 据挖掘)等.所有这些研究领域都可以看成是人工智能的研究范畴. 人工智能是计算机科学的一个分支,主要研究、开发用于模拟、延伸和扩展 人类智能的理论、方法、技术及应用系统等.和很多其他学科不同,人工智能这个 学科的诞生有着明确的标志性事件,就是 1956 年的达特茅斯(Dartmouth)会 议.在这次会议上,“人工智能”被提出并作为本研究领域的名称.同时,人工智能 研究的使命也得以确定.John McCarthy提出了人工智能的定义:人工智能就是 要让机器的行为看起来就像是人所表现出的智能行为一样. John McCarthy (19- 27~2011),人工智能 学科奠基人之一,1971 目前,人工智能的主要领域大体上可以分为以下几个方面: 年图灵奖得主. (1) 感知:模拟人的感知能力,对外部刺激信息(视觉和语音等)进行感 知和加工.主要研究领域包括语音信息处理和计算机视觉等. (2) 学习:模拟人的学习能力,主要研究如何从样例或从与环境的交互中 进行学习.主要研究领域包括监督学习、无监督学习和强化学习等. (3) 认知:模拟人的认知能力,主要研究领域包括知识表示、自然语言理 解、推理、规划、决策等. 1.1.1 人工智能的发展历史 人工智能从诞生至今,经历了一次又一次的繁荣与低谷,其发展历程大体上 可以分为“推理期”“知识期”和“学习期”[周志华, 2016]. 人工智能低谷,也叫人 工智能冬天(AI Winter),指人工智能史上 研究资金及学术界研 究兴趣都大幅减少的 时期.人工智能领域经 历过好几次低谷期.每 次狂热高潮之后,紧 接着是失望、批评以及 研究资金断绝,然后在 几十年后又重燃研究 兴趣.1974~1980 年及 1987~1993年是两个主 要的低谷时期,其他还 有几个较小的低谷. 1.1.1.1 推理期 1956 年达特茅斯会议之后,研究者对人工智能的热情高涨,之后的十几年 是人工智能的黄金时期.大部分早期研究者都通过人类的经验,基于逻辑或者 事实归纳出来一些规则,然后通过编写程序来让计算机完成一个任务.这个时期 中,研究者开发了一系列的智能系统,比如几何定理证明器、语言翻译器等.这 些初步的研究成果也使得研究者对开发出具有人类智能的机器过于乐观,低估 了实现人工智能的难度.有些研究者甚至认为:“二十年内,机器将能完成人能做 到的一切工作”,“在三到八年的时间里可以研发出一台具有人类平均智能的机 器”.但随着研究的深入,研究者意识到这些推理规则过于简单,对项目难度评估 https://nndl.github.io/
1.1人工智能 2021年5月18日 不足,原来的乐观预期受到严重打击.人工智能的研究开始陷入低谷,很多人工 智能项目的研究经费也被消减 1.1.1.2知识期 到了20世纪70年代,研究者意识到知识对于人工智能系统的重要性.特别 是对于一些复杂的任务,需要专家来构建知识库,在这一时期,出现了各种各样 的专家系统(Expert System),并在特定的专业领域取得了很多成果.专家系统 可以简单理解为“知识库+推理机”,是一类具有专门知识和经验的计算机智能 程序系统.专家系统一般采用知识表示和知识推理等技术来完成通常由领域专 家才能解决的复杂问题,因此专家系统也被称为基于知识的系统。一个专家系统 必须具备三要素:1)领域专家级知识:2)模拟专家思维:3)达到专家级的水平. 在这一时期,Prolog(Programming in Logic)语言是主要的开发工具,用来建造Prolog是一种基于辽辑 专家系统、智能知识库以及处理自然语言理解等。 学理论而剑建的辽提 编程语言,最初被话用 11.1.3学习期 于自然语言、逻辑推理 对于人类的很多智能行为(比如语言理解、图像理解等),我们很难知道其 等研究倾城 中的原理,也无法描述这些智能行为背后的“知识”,因此,我们也很难通过知 识和推理的方式来实现这些行为的智能系统.为了解决这类问题,研究者开始将 研究重点转向让计算机从数据中自已学习.事实上,“学习”本身也是一种智能行 为.从人工智能的萌芽时期开始,就有一些研究者尝试让机器来自动学习,即机 器学习(Machine Learning,ML).机器学习的主要目的是设计和分析一些学习 算法,让计算机可以从数据(经验)中自动分析并获得规律,之后利用学习到的 规律对未知数据进行预测,从而帮助人们完成一些特定任务,提高开发效率.机 器学习的研究内容也十分广泛,涉及线性代数、概率论、统计学、数学优化、计 算复杂性等多门学科.在人工智能领域,机器学习从一开始就是一个重要的研究 方向.但直到1980年后,机器学习因其在很多领域的出色表现,才逐渐成为热门 学科 图1.1给出了人工智能发展史上的重要事件 推理期 知识期。 学习期 1940194514和19541960196%570197510193519019520002005 达特茅新议 轻网路重新袁 图灵 知识系线起专家系统兴起 保学习的兴 代技餐 图11人工智能发展史 在发展了60多年后,人工智能虽然可以在某些方面超越人类,但想让机 器真正通过图灵测试,具备真正意义上的人类智能,这个目标看上去仍然遥遥 无期 https://nndl.github.io/
1.1 人工智能 2021 年 5 月 18 日 5 不足,原来的乐观预期受到严重打击.人工智能的研究开始陷入低谷,很多人工 智能项目的研究经费也被消减. 1.1.1.2 知识期 到了 20 世纪 70 年代,研究者意识到知识对于人工智能系统的重要性.特别 是对于一些复杂的任务,需要专家来构建知识库.在这一时期,出现了各种各样 的专家系统(Expert System),并在特定的专业领域取得了很多成果.专家系统 可以简单理解为“知识库 + 推理机”,是一类具有专门知识和经验的计算机智能 程序系统.专家系统一般采用知识表示和知识推理等技术来完成通常由领域专 家才能解决的复杂问题,因此专家系统也被称为基于知识的系统.一个专家系统 必须具备三要素:1)领域专家级知识;2)模拟专家思维;3)达到专家级的水平. 在这一时期,Prolog(Programming in Logic)语言是主要的开发工具,用来建造 专家系统、智能知识库以及处理自然语言理解等. Prolog是一种基于逻辑 学理论而创建的逻辑 编程语言,最初被运用 于自然语言、逻辑推理 等研究领域. 1.1.1.3 学习期 对于人类的很多智能行为(比如语言理解、图像理解等),我们很难知道其 中的原理,也无法描述这些智能行为背后的“知识”.因此,我们也很难通过知 识和推理的方式来实现这些行为的智能系统.为了解决这类问题,研究者开始将 研究重点转向让计算机从数据中自己学习.事实上,“学习”本身也是一种智能行 为.从人工智能的萌芽时期开始,就有一些研究者尝试让机器来自动学习,即机 器学习(Machine Learning,ML).机器学习的主要目的是设计和分析一些学习 算法,让计算机可以从数据(经验)中自动分析并获得规律,之后利用学习到的 规律对未知数据进行预测,从而帮助人们完成一些特定任务,提高开发效率.机 器学习的研究内容也十分广泛,涉及线性代数、概率论、统计学、数学优化、计 算复杂性等多门学科.在人工智能领域,机器学习从一开始就是一个重要的研究 方向.但直到1980年后,机器学习因其在很多领域的出色表现,才逐渐成为热门 学科. 图1.1给出了人工智能发展史上的重要事件. 1940 1945 1950 1955 1960 1965 1970 1975 1980 1985 1990 1995 2000 2005 McCulloch 和 Pitts 提出人工神经元网络 图灵机 达特茅斯会议 Rosenblatt 提出“感知器” 推理期 知识期 学习期 知识系统兴起 专家系统兴起 神经网络重新流行 统计机器学习兴起 (支持向量机等) 深度学习的兴起 图 1.1 人工智能发展史 在发展了 60 多年后,人工智能虽然可以在某些方面超越人类,但想让机 器真正通过图灵测试,具备真正意义上的人类智能,这个目标看上去仍然遥遥 无期. https://nndl.github.io/