12机器学习 2021年5月18日 1.1.2人工智能的流派 目前我们对人类智能的机理依然知之甚少,还没有一个通用的理论来指导 如何构建一个人工智能系统不同的研究者都有各自的理解,因此在人工智能的 研究过程中产生了很多不同的流派.比如一些研究者认为人工智能应该通过研 究人类智能的机理来构建一个仿生的模拟系统,而另外一些研究者则认为可以 使用其他方法来实现人类的某种智能行为.一个著名的例子是让机器具有飞行 能力不需要模拟鸟的飞行方式,而是应该研究空气动力学 尽管人工智能的流派非常多,但主流的方法大体上可以归结为以下两种: 关于人工智能的流派 并没有严将的划分定 (1)符号主义(Symbolism),又称逻辑主义、心理学派或计算机学派,是 义,也不严格对立 指通过分析人类智能的功能,然后用计算机来实现这些功能的一类方法.符号有很多文献将人工智 主义有两个基本假设:a)信息可以用符号来表示:b)符号可以通过显式的规则 能流派分为符号主义, (比如逻辑运算)来操作.人类的认知过程可以看作符号操作过程.在人工智能 连接主义和行为主叉 三种其中行为幸 的推理期和知识期,符号主义的方法比较盛行,并取得了大量的成果 (Actionism)主从生 (2)连接主义(Connectionism),又称仿生学派或生理学派,是认知科学 物进化的角度考虑,主 领域中的一类信息处理的方法和理论.在认知科学领域,人类的认知过程可以看 张从和外界环境的 作一种信息处理过程.连接主义认为人类的认知过程是由大量简单神经元构成 动中茂取智能 的神经网络中的信息处理过程,而不是符号运算.因此,连接主义模型的主要结 构是由大量简单的信息处理单元组成的互联网络,具有非线性、分布式、并行化、 局部性计算以及自适应性等特性 符号主义方法的一个优点是可解释性,而这也正是连接主义方法的弊端.深 度学习的主要模型神经网络就是一种连接主义模型.随着深度学习的发展,越来 越多的研究者开始关注如何融合符号主义和连接主义,建立一种高效并且具有 可解释性的模型 1.2机器学习 机器学习(Machine Learning,ML)是指从有限的观测数据中学习(或“猜机器学习的详细介绍 测”)出具有一般性的规律,并利用这些规律对未知数据进行预测的方法.机器学 参见第2章. 习是人工智能的一个重要分支,并逐渐成为推动人工智能发展的关键因素。 传统的机器学习主要关注如何学习一个预测模型.一般需要首先将数据表 示为一组特征(Feature),特征的表示形式可以是连续的数值,离散的符号或其 他形式.然后将这些特征输入到预测模型,并输出预测结果.这类机器学习可以 看作浅层学习(Shallow Learning).浅层学习的一个重要特点是不涉及特征学 习,其特征主要靠人工经验或特征转换方法来抽取. https://nndl.github.io/
1.2 机器学习 2021 年 5 月 18 日 6 1.1.2 人工智能的流派 目前我们对人类智能的机理依然知之甚少,还没有一个通用的理论来指导 如何构建一个人工智能系统.不同的研究者都有各自的理解,因此在人工智能的 研究过程中产生了很多不同的流派.比如一些研究者认为人工智能应该通过研 究人类智能的机理来构建一个仿生的模拟系统,而另外一些研究者则认为可以 使用其他方法来实现人类的某种智能行为.一个著名的例子是让机器具有飞行 能力不需要模拟鸟的飞行方式,而是应该研究空气动力学. 尽管人工智能的流派非常多,但主流的方法大体上可以归结为以下两种: 关于人工智能的流派 并没有严格的划分定 义,也不严格对立. 有很多文献将人工智 能流派分为符号主义、 连接主义和行为主义 三 种,其 中行 为 主 义 (Actionism)主要从生 物进化的角度考虑,主 张从和外界环境的互 动中获取智能. (1) 符号主义(Symbolism),又称逻辑主义、心理学派或计算机学派,是 指通过分析人类智能的功能,然后用计算机来实现这些功能的一类方法.符号 主义有两个基本假设:a)信息可以用符号来表示;b)符号可以通过显式的规则 (比如逻辑运算)来操作.人类的认知过程可以看作符号操作过程.在人工智能 的推理期和知识期,符号主义的方法比较盛行,并取得了大量的成果. (2) 连接主义(Connectionism),又称仿生学派或生理学派,是认知科学 领域中的一类信息处理的方法和理论.在认知科学领域,人类的认知过程可以看 作一种信息处理过程.连接主义认为人类的认知过程是由大量简单神经元构成 的神经网络中的信息处理过程,而不是符号运算.因此,连接主义模型的主要结 构是由大量简单的信息处理单元组成的互联网络,具有非线性、分布式、并行化、 局部性计算以及自适应性等特性. 符号主义方法的一个优点是可解释性,而这也正是连接主义方法的弊端.深 度学习的主要模型神经网络就是一种连接主义模型.随着深度学习的发展,越来 越多的研究者开始关注如何融合符号主义和连接主义,建立一种高效并且具有 可解释性的模型. 1.2 机器学习 机器学习(Machine Learning,ML)是指从有限的观测数据中学习(或“猜 测”)出具有一般性的规律,并利用这些规律对未知数据进行预测的方法. 机器学习的详细介绍 参见第2章. 机器学 习是人工智能的一个重要分支,并逐渐成为推动人工智能发展的关键因素. 传统的机器学习主要关注如何学习一个预测模型.一般需要首先将数据表 示为一组特征(Feature),特征的表示形式可以是连续的数值、离散的符号或其 他形式.然后将这些特征输入到预测模型,并输出预测结果.这类机器学习可以 看作浅层学习(Shallow Learning).浅层学习的一个重要特点是不涉及特征学 习,其特征主要靠人工经验或特征转换方法来抽取. https://nndl.github.io/
1.3表示学习 2021年5月18日 7 当我们用机器学习来解决实际任务时,会面对多种多样的数据形式,比如声 音、图像、文本等.不同数据的特征构造方式差异很大.对于图像这类数据,我们 可以很自然地将其表示为一个连续的向量.而对于文本数据,因为其一般由离散 将图像教据表示为向 最的方法有很多种此 符号组成,并且每个符号在计算机内部都表示为无意义的编码,所以通常很难找 如直接将一幅国像的 到合适的表示方式.因此,在实际任务中使用机器学习模型一般会包含以下几个 所有像素值(灰度值 步骤(如图1.2所示): RGB值)如成一个连 (1)数据预处理:对数据的原始形式进行初步的数据清理(比如去掉一些 续向量 有缺失特征的样本,或去掉一些冗余的数据特征等)和加工(对数值特征进行缩 放和归一化等),并构建成可用于训练机器学习模型的数据集 (2)特征提取:从数据的原始特征中提取一些对特定机器学习任务有用的 高质量特征.比如在图像分类中提取边缘、尺度不变特征变换(Scale Invariant Feature Transform,SIFT)特征,在文本分类中去除停用词等. (3)特征转换:对特征进行进一步的加工,比如降维和升维,降维包括特征很多特征转换方法也 抽取(Feature Extraction)和特征选择(Feature Selection)两种途径.常用的 富是机器季习方法 特征转换方法有主成分分析(Principal Components Analysis,PCA)、线性判 主成分分析参见 别分析(Linear Discriminant Analysis,LDA)等 第9.11节 (4)预测:机器学习的核心部分,学习一个函数并进行预测 原始数据 一一数据预处理一特征提取 一特征转换 一预测 一结 特征处理 浅层学习 图1.2传统机器学习的数据处理流程 上述流程中,每步特征处理以及预测一般都是分开进行的.传统的机器学 习模型主要关注最后一步,即构建预测函数.但是实际操作过程中,不同预测模 型的性能相差不多,而前三步中的特征处理对最终系统的准确性有着十分关键 的作用.特征处理一般都需要人工干预完成,利用人类的经验来选取好的特征, 并最终提高机器学习系统的性能.因此,很多的机器学习问题变成了特征工程 (Feature Engineering)问题.开发一个机器学习系统的主要工作量都消耗在了 预处理、特征提取以及特征转换上 1.3表示学习 为了提高机器学习系统的准确率,我们就需要将输入信息转换为有效的特 征,或者更一般性地称为表示(Representation).如果有一种算法可以自动地学 习出有效的特征,并提高最终机器学习模型的性能,那么这种学习就可以叫作表 示学习(Representation Learning) https://nndl.github.io/
1.3 表示学习 2021 年 5 月 18 日 7 当我们用机器学习来解决实际任务时,会面对多种多样的数据形式,比如声 音、图像、文本等.不同数据的特征构造方式差异很大.对于图像这类数据,我们 可以很自然地将其表示为一个连续的向量. 将图像数据表示为向 量的方法有很多种,比 如直接将一幅图像的 所有像素值(灰度值或 RGB 值)组成一个连 续向量. 而对于文本数据,因为其一般由离散 符号组成,并且每个符号在计算机内部都表示为无意义的编码,所以通常很难找 到合适的表示方式.因此,在实际任务中使用机器学习模型一般会包含以下几个 步骤(如图1.2所示): (1) 数据预处理:对数据的原始形式进行初步的数据清理(比如去掉一些 有缺失特征的样本,或去掉一些冗余的数据特征等)和加工(对数值特征进行缩 放和归一化等),并构建成可用于训练机器学习模型的数据集. (2) 特征提取:从数据的原始特征中提取一些对特定机器学习任务有用的 高质量特征.比如在图像分类中提取边缘、尺度不变特征变换(Scale Invariant Feature Transform,SIFT)特征,在文本分类中去除停用词等. (3) 特征转换:对特征进行进一步的加工,比如降维和升维. 很多特征转换方法也 都是机器学习方法. 降维包括特征 抽取(Feature Extraction)和特征选择(Feature Selection)两种途径.常用的 特征转换方法有主成分分析(Principal Components Analysis,PCA)、 主 成 分 分 析 参 见 第9.1.1节. 线性判 别分析(Linear Discriminant Analysis,LDA)等. (4) 预测:机器学习的核心部分,学习一个函数并进行预测. 原始数据 数据预处理 特征提取 特征转换 预测 结果 特征处理 浅层学习 图 1.2 传统机器学习的数据处理流程 上述流程中,每步特征处理以及预测一般都是分开进行的.传统的机器学 习模型主要关注最后一步,即构建预测函数.但是实际操作过程中,不同预测模 型的性能相差不多,而前三步中的特征处理对最终系统的准确性有着十分关键 的作用.特征处理一般都需要人工干预完成,利用人类的经验来选取好的特征, 并最终提高机器学习系统的性能.因此,很多的机器学习问题变成了特征工程 (Feature Engineering)问题.开发一个机器学习系统的主要工作量都消耗在了 预处理、特征提取以及特征转换上. 1.3 表示学习 为了提高机器学习系统的准确率,我们就需要将输入信息转换为有效的特 征,或者更一般性地称为表示(Representation).如果有一种算法可以自动地学 习出有效的特征,并提高最终机器学习模型的性能,那么这种学习就可以叫作表 示学习(Representation Learning). https://nndl.github.io/
1.3表示学习 2021年5月18日 语义鸿沟表示学习的关键是解决语义鸿沟(Semantic Gap)问题.语义鸿沟问 题是指输入数据的底层特征和高层语义信息之间的不一致性和差异性.比如给 定一些关于“车“的图片,由于图片中每辆车的颜色和形状等属性都不尽相同,因 此不同图片在像素级别上的表示(即底层特征)差异性也会非常大.但是我们理 解这些图片是建立在比较抽象的高层语义概念上的.如果一个预测模型直接建 立在底层特征之上,会导致对预测模型的能力要求过高.如果可以有一个好的表 示在某种程度上能够反映出数据的高层语义特征,那么我们就能相对容易地构 建后续的机器学习模型, 在表示学习中,有两个核心问题:一是“什么是一个好的表示”:二是“如何学 习到好的表示” 1.3.1局部表示和分布式表示 “好的表示”是一个非常主观的概念,没有一个明确的标准.但一般而言, 个好的表示具有以下几个优点: (1)一个好的表示应该具有很强的表示能力,即同样大小的向量可以表示 更多信息 (2)一个好的表示应该使后续的学习任务变得简单,即需要包含更高层的 语义信息 (3)一个好的表示应该具有一般性,是任务或领域独立的.虽然目前的大 部分表示学习方法还是基于某个任务来学习,但我们期望其学到的表示可以比 较容易地迁移到其他任务上 在机器学习中,我们经常使用两种方式来表示特征:局部表示(Local Rep: resentation)和分布式表示(Distributed Representation). 以颜色表示为例,我们可以用很多词来形容不同的颜色,除了基本的“红” “蓝”“绿”“白"“黑”等之外,还有很多以地区或物品命名的,比如“中国红”“天蓝 色”“咖啡色”“琥珀色”等.如果要在计算机中表示颜色,一般有两种表示方法 一种表示颜色的方法是以不同名字来命名不同的颜色,这种表示方式叫 作局部表示,也称为离散表示或符号表示.局部表示通常可以表示为one-hot向one-hot向量参见 量的形式.假设所有颜色的名字构成一个词表V,词表大小为1八.我们可以用 第A14节. 一个|1维的one-hot向量来表示每一种颜色.在第i种颜色对应的one-hot向量 中,第i维的值为1,其他都为0. 局部表示有两个优点:1)这种离散的表示方式具有很好的解释性,有利于 人工归纳和总结特征,并通过特征组合进行高效的特征工程:2)通过多种特征 I据不完全统计,现有的颜色命名已经有1300多种https/en.wikipedia.org/wiki/Lists_of_colors https://nndl.github.io/
1.3 表示学习 2021 年 5 月 18 日 8 语义鸿沟 表示学习的关键是解决语义鸿沟(Semantic Gap)问题.语义鸿沟问 题是指输入数据的底层特征和高层语义信息之间的不一致性和差异性.比如给 定一些关于“车”的图片,由于图片中每辆车的颜色和形状等属性都不尽相同,因 此不同图片在像素级别上的表示(即底层特征)差异性也会非常大.但是我们理 解这些图片是建立在比较抽象的高层语义概念上的.如果一个预测模型直接建 立在底层特征之上,会导致对预测模型的能力要求过高.如果可以有一个好的表 示在某种程度上能够反映出数据的高层语义特征,那么我们就能相对容易地构 建后续的机器学习模型. 在表示学习中,有两个核心问题:一是“什么是一个好的表示”;二是“如何学 习到好的表示”. 1.3.1 局部表示和分布式表示 “好的表示”是一个非常主观的概念,没有一个明确的标准.但一般而言,一 个好的表示具有以下几个优点: (1) 一个好的表示应该具有很强的表示能力,即同样大小的向量可以表示 更多信息. (2) 一个好的表示应该使后续的学习任务变得简单,即需要包含更高层的 语义信息. (3) 一个好的表示应该具有一般性,是任务或领域独立的.虽然目前的大 部分表示学习方法还是基于某个任务来学习,但我们期望其学到的表示可以比 较容易地迁移到其他任务上. 在机器学习中,我们经常使用两种方式来表示特征:局部表示(Local Representation)和分布式表示(Distributed Representation). 以颜色表示为例,我们可以用很多词来形容不同的颜色1,除了基本的“红” “蓝”“绿”“白”“黑”等之外,还有很多以地区或物品命名的,比如“中国红”“天蓝 色”“咖啡色”“琥珀色”等.如果要在计算机中表示颜色,一般有两种表示方法. 一种表示颜色的方法是以不同名字来命名不同的颜色,这种表示方式叫 作局部表示,也称为离散表示或符号表示.局部表示通常可以表示为one-hot 向 量的形式. one-hot 向 量 参 见 第A.1.4节. 假设所有颜色的名字构成一个词表 𝒱,词表大小为 |𝒱|.我们可以用 一个|𝒱|维的one-hot向量来表示每一种颜色.在第𝑖 种颜色对应的one-hot向量 中,第𝑖 维的值为1,其他都为0. 局部表示有两个优点:1)这种离散的表示方式具有很好的解释性,有利于 人工归纳和总结特征,并通过特征组合进行高效的特征工程;2)通过多种特征 1 据不完全统计,现有的颜色命名已经有1 300多种.https://en.wikipedia.org/wiki/Lists_of_colors https://nndl.github.io/
1.3表示学习 2021年5月18日 9 组合得到的表示向量通常是稀疏的二值向量,当用于线性模型时计算效率非常 高.但局部表示有两个不足之处:l)one-hot向量的维数很高,且不能扩展.如果 有一种新的颜色,我们就需要增加一维来表示:2)不同颜色之间的相似度都为 0,即我们无法知道“红色”和“中国红”的相似度要高于“红色”和“黑色”的相 似度 另一种表示颜色的方法是用RGB值来表示颜色,不同司颜色对应RG、B三 维空间中一个点,这种表示方式叫作分布式表示.分布式表示通常可以表示为低将分布式表示叫作分 维的稠密向量 散式表示可能更客易 理解,即一种颜色的语 和局部表示相比,分布式表示的表示能力要强很多,分布式表示的向量维度义分数到语义空间中 一般都比较低.我们只需要用一个三维的稠密向量就可以表示所有颜色.并且, 的不同基向量上 分布式表示也很容易表示新的颜色名.此外,不同颜色之间的相似度也很容易 计算 表1.1列出了4种颜色的局部表示和分布式表示 表1.1局部表示和分布式表示示例 颜色 局部表示 分布式表示 统珀色 1,0.0,0 [1.00,0.75,0.00 天蓝色 [0.1,0,0r [0.00.0.5.1.00] 中国红 [0,0,1,0 [0.67,0.22,0.12 咖啡色 0,0.0,1 [0.44,0.310.22 我们可以使用神经网络来将高维的局部表示空间R闪映射到一个非常低维 的分布式表示空间®D,D《L.在这个低维空间中,每个特征不再是坐标轴上 的点,而是分散在整个低维空间中.在机器学习中,这个过程也称为嵌入(E: bedding).嵌入通常指将一个度量空间中的一些对象映射到另一个低维的度量 空间中,并尽可能保持不同对象之间的拓扑关系,比如自然语言中词的分布式表 示,也经常叫作词嵌入 图1.3展示了一个3维one-hot向量空间和一个2维嵌入空间的对比.图中有 三个样本心1,w2和心3.在one-hot向量空间中,每个样本都位于坐标轴上,每个 坐标轴上一个样本.而在低维的嵌入空间中,每个样本都不在坐标轴上,样本之 间可以计算相似度, https://nndl.github.io/
1.3 表示学习 2021 年 5 月 18 日 9 组合得到的表示向量通常是稀疏的二值向量,当用于线性模型时计算效率非常 高.但局部表示有两个不足之处:1)one-hot向量的维数很高,且不能扩展.如果 有一种新的颜色,我们就需要增加一维来表示;2)不同颜色之间的相似度都为 0,即我们无法知道“红色”和“中国红”的相似度要高于“红色”和“黑色”的相 似度. 另一种表示颜色的方法是用RGB值来表示颜色,不同颜色对应到R、G、B三 维空间中一个点,这种表示方式叫作分布式表示. 将分 布 式 表 示叫 作分 散式表示可能更容易 理解,即一种颜色的语 义分散到语义空间中 的不同基向量上. 分布式表示通常可以表示为低 维的稠密向量. 和局部表示相比,分布式表示的表示能力要强很多,分布式表示的向量维度 一般都比较低.我们只需要用一个三维的稠密向量就可以表示所有颜色.并且, 分布式表示也很容易表示新的颜色名.此外,不同颜色之间的相似度也很容易 计算. 表1.1列出了4种颜色的局部表示和分布式表示. 表 1.1 局部表示和分布式表示示例 颜色 局部表示 分布式表示 琥珀色 [1, 0, 0, 0]T [1.00, 0.75, 0.00]T 天蓝色 [0, 1, 0, 0]T [0.00, 0.5, 1.00]T 中国红 [0, 0, 1, 0]T [0.67, 0.22, 0.12]T 咖啡色 [0, 0, 0, 1]T [0.44, 0.31 0.22]T 我们可以使用神经网络来将高维的局部表示空间ℝ|𝒱| 映射到一个非常低维 的分布式表示空间 ℝ𝐷, 𝐷 ≪ |𝒱|.在这个低维空间中,每个特征不再是坐标轴上 的点,而是分散在整个低维空间中.在机器学习中,这个过程也称为嵌入(Embedding).嵌入通常指将一个度量空间中的一些对象映射到另一个低维的度量 空间中,并尽可能保持不同对象之间的拓扑关系.比如自然语言中词的分布式表 示,也经常叫作词嵌入. 图1.3展示了一个3维one-hot向量空间和一个2维嵌入空间的对比.图中有 三个样本 𝑤1,𝑤2 和 𝑤3.在 one-hot 向量空间中,每个样本都位于坐标轴上,每个 坐标轴上一个样本.而在低维的嵌入空间中,每个样本都不在坐标轴上,样本之 间可以计算相似度. https://nndl.github.io/
1.4深度学习 2021年5月18日 10 ,战人空同 03 图1.3one-hot向量空间与嵌入空间 1.3.2表示学习 要学习到一种好的高层语义表示(一般为分布式表示),通常需要从底层特连续多次的线性转换 征开始,经过多步非线性转换才能得到.深层结构的优点是可以增加特征的重用 等价于一次线性转换 性,从而指数级地增加表示能力.因此,表示学习的关键是构建具有一定深度的 多层次特征表示[Bengio et al,.2013】. 在传统的机器学习中,也有很多有关特征学习的方法,比如主成分分析、线参见第2.6.1节. 性判别分析、独立成分分析等.但是,传统的特征学习一般是通过人为地设计 些准则,然后根据这些准则来选取有效的特征特征的学习是和最终预测模型的 学习分开进行的,因此学习到的特征不一定可以提升最终模型的性能 1.4深度学习 为了学习一种好的表示,需要构建具有一定“深度”的模型.并通过学习算法 来让模型自动学习出好的特征表示(从底层特征,到中层特征,再到高层特征). 从而最终提升预测模型的准确率。所谓“深度”是指原始数据进行非线性特征转 换的次数.如果把一个表示学习系统看作一个有向图结构,深度也可以看作从输 入节点到输出节点所经过的最长路径的长度 这样我们就需要一种学习方法可以从数据中学习一个“深度模型”,这就 是深度学习(Deep Learning,DL).深度学习是机器学习的一个子问题,其主要深度学习虽然平期主 目的是从数据中自动学习到有效的特征表示. 票用来进行表示学习 但后来越来越多地用 图1.4给出了深度学习的数据处理流程.通过多层的特征转换,把原始数据 来处理更加复杂的 变成更高层次、更抽象的表示.这些学习到的表示可以替代人工设计的特征,从理、决策等同题 而避免“特征工程" https://nndl.github.io/
1.4 深度学习 2021 年 5 月 18 日 10 𝑤1 𝑤2 𝑤3 嵌入空间 图 1.3 one-hot向量空间与嵌入空间 1.3.2 表示学习 要学习到一种好的高层语义表示(一般为分布式表示),通常需要从底层特 征开始,经过多步非线性转换才能得到. 连续多次的线性转换 等价于一次线性转换. 深层结构的优点是可以增加特征的重用 性,从而指数级地增加表示能力.因此,表示学习的关键是构建具有一定深度的 多层次特征表示[Bengio et al., 2013]. 在传统的机器学习中,也有很多有关特征学习的方法,比如主成分分析、线 性判别分析、独立成分分析等. 参见第2.6.1节. 但是,传统的特征学习一般是通过人为地设计一 些准则,然后根据这些准则来选取有效的特征.特征的学习是和最终预测模型的 学习分开进行的,因此学习到的特征不一定可以提升最终模型的性能. 1.4 深度学习 为了学习一种好的表示,需要构建具有一定“深度”的模型,并通过学习算法 来让模型自动学习出好的特征表示(从底层特征,到中层特征,再到高层特征), 从而最终提升预测模型的准确率.所谓“深度”是指原始数据进行非线性特征转 换的次数.如果把一个表示学习系统看作一个有向图结构,深度也可以看作从输 入节点到输出节点所经过的最长路径的长度. 这样我们就需要一种学习方法可以从数据中学习一个“深度模型”,这就 是深度学习(Deep Learning,DL).深度学习是机器学习的一个子问题,其主要 目的是从数据中自动学习到有效的特征表示. 深度学习虽然早期主 要用来进行表示学习, 但后来越来越多地用 来处理更加复杂的推 理、决策等问题. 图1.4给出了深度学习的数据处理流程.通过多层的特征转换,把原始数据 变成更高层次、更抽象的表示.这些学习到的表示可以替代人工设计的特征,从 而避免“特征工程”. https://nndl.github.io/