序言
深度学习作为人工智能领域的重要分支,其核心在于表示学习( Representation Learning \text{Representation Learning} Representation Learning),尤其是分布式表示( Distributed Representation \text{Distributed Representation} Distributed Representation)。这一领域的兴起,源于对人类大脑处理信息方式的深刻洞察与模仿。表示学习旨在通过模型参数,以有效的方式表示观测样本,从而简化问题处理的难度。而分布式表示,则进一步强调了数据特征的分散与协作,使得深度学习模型能够更加灵活地捕捉和表达复杂数据的内在结构。
分布式表示
-
分布式表示的概念——由很多元素组合的表示,这些元素之间可以设置成可分离的——是表示学习最重要的工具之一。
- 分布式表示非常强大,因为他们能用具有 k k k个值的 n n n 个特征去描述 k n k^n kn 个不同的概念。
- 正如我们看到的,具有多个隐藏单元的神经网络和具有多个潜变量的概率模型都利用了分布式表示的策略。
- 我们现在再介绍一个观察结果。
- 许多深度学习算法基于的假设是,隐藏单元能够学习表示出解释数据的潜在因果因子,就像
深度学习之表示学习 - 半监督解释因果关系篇
中讨论的一样。 - 这种方法在分布式表示上是自然的,因为表示空间中的每个方向都对应着一个不同的潜在配置变量的值。
-
n n n 维二元向量是一个分布式表示的示例,有 2 n 2^n 2n 种配置,每一种都对应输入空间中的一个不同区域,如
图例1
所示。- 这可以与符号表示相比较,其中输入关联到单一符号或类别。
- 如果字典中有 n n n 个符号,那么可以想象有 n n n 个特征监测器,每个特征探测器监测相关类别的存在。
- 在这种情况下,只有表示空间中
n
n
n 个不同配置才有可能在输入空间中刻画
n
n
n 个不同的区域,如
图例2
所示。 - 这样的符号表示也被称为 one-hot \text{one-hot} one-hot表示,因为它可以表示成各位排斥的 n n n 维二元向量(其中只有一位是激活的)。
- 符号表示是更广泛的非分布式表示类中的一个具体示例,可以包含很多条目,但是每个条目没有显著意义的单独控制作用。
-
以下是基于非分布式表示的学习算法的示例:
- 聚类算法,包含 k k k-均值算法:每个输入点恰好分配到一个类别。
- k k k-最近邻算法:给定一个输入,一个或几个模板或原型样本与之关联。在 k > 1 k > 1 k>1的情况下,每个输入都使用多个值来描述,但是它们不能彼此分开控制,因此这不能算真正的分布式表示。
- 决策树:给定输入时,只有一个叶节点(和从根到该叶节点路径上的点)是被激活的。
- 高斯混合体和专家混合体:模板(聚类中心)或专家关联一个激活的程度。和 k k k-最近邻算法一样,每个输入用多个值表示,但是这些值不能轻易地彼此分开控制。
- 具有高斯核 (或其他类似的局部核)的核机器:尽管每个 “支持向量’’ 或模板
样本的激活程度是连续值,但仍然会出现和高斯混合体相同的问题。 - 基于 n − gram n-\text{gram} n−gram的语言或翻译模型:根据后缀的树结构划分上下文集合(符号序列)。例如,一个叶节点可能对应于最后两个单词 w 1 w_1 w1 和 w 2 w_2 w2。树上的每个叶节点分别估计单独的参数(有些共享也是可能的)。
-
对于这些非分布式算法中的部分而言,有些输出并非是恒定的,而是在相邻区域之间内插。参数(或样本)的数量和它们能够定义区域的数量之间保持线性关系。
-
将分布式表示和符号表示区分开来的一个重要概念是,由不同概念之间的共享属性而产生的泛化。
- 作为纯符号, ‘‘猫’’ 和 ‘‘狗’’ 之间的距离和任意其他两种符号的距离一样。
- 然而,如果将它们与有意义的分布式表示相关联,那么关于猫的很多特点可以推广到狗,反之亦然。
- 例如,我们的分布式表示可能会包含诸如 ‘‘具有皮毛’’或 ‘‘腿的数目’’ 这类在 ‘‘猫’’ 和 ‘‘狗’’ 的嵌入上具有相同值的项。
- 正如
深度学习应用 - 自然语言处理(NLP)篇 - 神经语言模型
所讨论的,作用于单词分布式表示的神经语言模型比其他直接对单词 one-hot \text{one-hot} one-hot表示进行操作的模型泛化得更好。 - 分布式表示具有丰富的相似性空间,语义上相近的概念(或输入)在距离上接近,这是纯粹的符号表示所缺少的特点。
-
在学习算法中使用分布式表示何时以及为什么具有统计优势?
- 当一个明显复杂的结构可以用较少参数紧致地表示时,分布式表示具有统计上的优点。
- 一些传统的非分布式学习算法仅仅在平滑假设的情况下能够泛化,也就是说如果 u ≈ v u \approx v u≈v,那么学习到的目标函数 f f f 通常具有 f ( u ) ≈ f ( v ) f(u) \approx f(v) f(u)≈f(v) 的性质。
- 有许多方法来形式化这样一个假设,但其结果是如果我们有一个样本 ( x , y ) (x, y) (x,y),并且我们知道 f ( x ) ≈ y f(x) \approx y f(x)≈y,那么我们可以选取一个估计 f ^ \hat{f} f^ 近似地满足这些限制,并且当我们移动到附近的输入 x + ϵ x + \epsilon x+ϵ 时, f ^ \hat{f} f^尽可能少地发生改变。
- 显然这个假设是非常有用的,但是它会遭受维数灾难:学习出一个能够在很多不同区域上增加或减少很多次的 目标函 数 注 1 目标函数^{注1} 目标函数注1,我们可能需要至少和可区分区域数量一样多的样本。
- 可以将每一个区域视为一个类别或符号:通过让每个符号(或区域)具有单独的自由度,我们可以学习出从符号映射到值的任意解码器。
- 然而,这不能推广到新区域的新符号上。
-
如果我们幸运的话,除了平滑之外,目标函数可能还有一些其他规律。例如,具有最大池化的卷积网络 可以不考虑对象在图像中的位置(即使对象的空间变换不对应输入空间的平滑变换),而识别出对象。
-
让我们检查分布式表示学习算法的一个特殊情况,它通过对输入的线性函数进行阀值处理来提取二元特征。
- 该表示中的每个二元特征将
R
d
\mathbb{R}^d
Rd 分成一对半空间,如
图例1
所示。 - n n n 个相应半空间的指数级数量的交集确定了该分布式表示学习器能够区分多少区域。
- 空间 R d \mathbb{R}^d Rd 中的 n n n 个超平面的排列组合能够生成多少区间?
- 通过应用关于超平面交集的一般结果 ( Zaslavsky, 1975 \text{Zaslavsky, 1975} Zaslavsky, 1975),我们发现 ( Pascanu et al., 2014b \text{Pascanu et al., 2014b} Pascanu et al., 2014b) 这个二元特征表示能够区分的空间数量是: ∑ j = 0 d ( n j ) = O ( n d ) \sum\limits_{j=0}^d(\begin{matrix}n\\j\end{matrix})=O(n^d) j=0∑d(nj)=O(nd) — 公式1 \quad\textbf{---\footnotesize{公式1}} —公式1
- 因此,我们会发现关于输入大小呈指数级增长,关于隐藏单元的数量呈多项式级增长。
- 该表示中的每个二元特征将
R
d
\mathbb{R}^d
Rd 分成一对半空间,如
-
这提供了分布式表示泛化能力的一种几何解释: O ( n d ) O(n^d) O(nd) 个参数(空间 R d \mathbb{R}^d Rd 中的 n n n个线性阀值特征)能够明确表示输入空间中 O ( n d ) O(n^d) O(nd) 个不同区域。
- 如果我们没有对数据做任何假设,并且每个区域使用唯一的符号来表示,每个符号使用单独的参数去识别 R d \mathbb{R}^d Rd 中的对应区域,那么指定 O ( n d ) O(n^d) O(nd) 个区域需要 O ( n d ) O(n^d) O(nd) 个样本。
- 更一般地,我们对分布式表示中的每个特征使用非线性的、可能连续的特征提取器,代替线性阀值单元,更加有利于体现分布式表示的优势。
- 在这种情况下,如果带有 k k k 个参数的参数化变换可以学习输入空间中的 r r r 个区域( k ≪ r k \ll r k≪r),如果学习这样的表示有助于感兴趣的任务,那么我们可以将这种方式潜在地推广到比非分布式情景更好的表示,我们只需要 O ( r ) O(r) O(r) 个样本来获得相同的特征,并将输入空间相关联地划分成 r r r 个区域。
- 使用较少的参数来表示模型意味着我们只需拟合较少的参数,因此只需要更少的训练样本去获得良好的泛化。
-
另一个解释基于分布式表示的模型泛化能力更好的说法是,尽管能够明确地编码这么多不同的区域,但它们的容量仍然是很有限的。
- 例如,线性阀值单元神经网络的 VC \text{VC} VC维仅为 O ( w log w ) O(w \log w) O(wlogw),其中 w w w 是权重的数目 ( Sontag, 1998 \text{Sontag, 1998} Sontag, 1998)。
- 这种限制出现的原因是,虽然我们可以为表示空间分配非常多的唯一码,但是我们不能完全使用所有的码空间,也不能使用线性分类器学习出从表示空间 h \boldsymbol{h} h 到输出 y \boldsymbol{y} y 的任意函数映射。
- 因此使用与线性分类器相结合的分布式表示传达了一种先验信念,待识别的类在 h \boldsymbol{h} h代表的潜在因果因子的函数下是线性可分的。
- 我们通常想要学习类别,例如所有绿色对象的图像集合,或是所有汽车图像集合,但不会是需要非线性 XOR \text{XOR} XOR逻辑的类别。
- 例如,我们通常不会将数据划分成所有红色汽车和绿色卡车作为一个集合,所有绿色汽车和红色卡车作为另一个集合。
-
到目前为止讨论的想法都是抽象的,但是它们可以通过实验验证。
- Zhou et al.(2015) \text{Zhou et al.(2015)} Zhou et al.(2015) 发现,在 ImageNet \text{ImageNet} ImageNet和 Places \text{Places} Places基准数据集上训练的深度卷积网络中的隐藏单元学习到的特征通常是可以解释的,对应人类自然分配的标签。
- 在实践中,隐藏单元并不能总是学习出具有简单语言学名称的事物,但有趣的是,这些会在计算机视觉深度网络的顶层附近出现。
- 这些特征的共同之处在于,我们可以想象学习其中的每个特征不需要知道所有其他特征的所有配置。
- Radford et al. (2015) \text{Radford et al. (2015)} Radford et al. (2015) 发现生成模型可以学习人脸图像的表示,在表示空间中的不同方向捕获不同的潜在变化因素。
图例3
展示表示空间中的一个方向对应着该人是男性还是女性,而另一个方向对应着该人是否戴着眼镜。这些特征都是自动发现的,而非先验固定的。- 没有必要为隐藏单元分类器提供标签:只要该任务需要这样的特征,梯度下降就能在感兴趣的目标函数上自然地学习出语义上有趣的特征。
- 我们可以学习出男性和女性之间的区别,或者是眼镜的存在与否,而不必通过涵盖所有这些值组合的样本来表征其他 n − 1 n − 1 n−1个特征的所有配置。
- 这种形式的统计可分离性质能够泛化到训练期间从未见过的新人的特征。
- 注1:一般来说,我们可能会想要学习一个函数,这个函数在指数级数量区域的值都是不同的:在 d d d-维空间中,为了区分每一维,至少有两个不同的值。我们想要函数 f f f 区分这 2 d 2^d 2d 个不同的区域,需要 O ( 2 d ) O(2^d) O(2d) 量级的训练样本
- 图例1:图示基于分布式表示的学习算法如何将输入空间分割成多个区域。
-
图示基于分布式表示的学习算法如何将输入空间分割成多个区域
-
说明:
- 这个例子具有二元变量 h 1 h_1 h1, h 2 h_2 h2, h 3 h_3 h3。
- 每个特征通过为学习到的线性变换设定输出阀值而定义。
- 每个特征将 R 2 \mathbb{R}^2 R2 分成两个半平面。令 h i + h_i^+ hi+ 表示输入点 h i = 1 h_i = 1 hi=1 的集合; h i − h_i^- hi− 表示输入点 h i = 0 h_i = 0 hi=0 的集合。
- 在这个图示中,每条线代表着一个 h i h_i hi 的决策边界,对应的箭头指向边界的 h i + h_i^+ hi+ 区域。
- 整个表示在这些半平面的每个相交区域都指定一个唯一值。
- 例如,表示值为 [ 1 , 1 , 1 ] ⊤ [1, 1, 1]^\top [1,1,1]⊤ 对应着区域 h 1 + ∩ h 2 + ∩ h 3 + h_1^+\cap h_2^+\cap h_3^+ h1+∩h2+∩h3+ 。
- 可以将以上表示和
图例2
中的非分布式表示进行比较。 - 在输入维度是 d d d 的一般情况下,分布式表示通过半空间(而不是半平面)的交叉分割 R d \mathbb{R}^d Rd。
- 具有 n n n 个特征的分布式表示给 O ( n d ) O(n^d) O(nd) 个不同区域分配唯一的编码,而具有 n n n 个样本的最近邻算法只能给 n n n 个不同区域分配唯一的编码。
- 因此, 分布式表示能够比非分布式表示多分配指数级的区域。
- 注意并非所有的 h \boldsymbol{h} h 值都是可取的(这个例子中没有 h = 0 \boldsymbol{h}= 0 h=0),在分布式表示上的线性分类器不能向每个相邻区域分配不同的类别标识;甚至深度线性阀值网络的 VC \text{VC} VC维只有 O ( w log w ) O(w \log w) O(wlogw)(其中 w w w 是权重数目) ( Sontag, 1998 \text{Sontag, 1998} Sontag, 1998)。
- 强表示层和弱分类器层的组合是一个强正则化项。
- 试图学习 ‘‘人’’ 和 ‘‘非人’’ 概念的分类器不需要给表示为 ‘‘戴眼镜的女人’’ 和 ‘‘没有戴眼镜的男人’’ 的输入分配不同的类别。
- 容量限制鼓励每个分类器关注少数几个 h i h_i hi,鼓励 h \boldsymbol{h} h 以线性可分的方式学习表示这些类别。
-
- 图例2:图示最近邻算法如何将输入空间分成不同区域。
-
图示最近邻算法如何将输入空间分成不同区域
-
说明:
- 最近邻算法是一个基于非分布式表示的学习算法的示例。
- 不同的非分布式算法可以具有不同的几何形状,但是它们通常将输入空间分成区域, 每个区域具有不同的参数。
- 非分布式方法的优点是,给定足够的参数,它能够拟合一个训练集,而不需要复杂的优化算法。
- 因为它直接为每个区域独立地设置不同的参数。
- 缺点是,非分布式表示的模型只能通过平滑先验来局部地泛化,因此学习波峰波谷多于样本的复杂函数时,该方法是不可行的。
- 和分布式表示对比,可以参照
图例1
。
-
- 图例3:以上生成模型学习分布式表示,能够从戴眼镜的概念中区分性别的概念。
-
以上生成模型学习分布式表示,能够从戴眼镜的概念中区分性别的概念
-
说明:
- 如果我们从一个戴眼镜的男人的概念表示向量开始,然后减去一个没戴眼镜的男人的概念表示向量,最后加上一个没戴眼镜的女人的概念表示向量,那么我们会得到一个戴眼镜的女人的概念表示向量。
- 生成模型将所有这些表示向量正确地解码为可被识别为正确类别的图像。
- 图片转载许可自 Radford et al. (2015) \text{Radford et al. (2015)} Radford et al. (2015)。
-
总结
- 深度学习中的表示学习,特别是分布式表示,为人工智能的发展注入了新的活力。通过模拟人脑对信息的逐级抽象和分布式处理机制,深度学习模型能够自动从大量数据中提取出有用的特征表示,进而实现高效的分类、回归和信息检索等任务。分布式表示不仅提高了模型的泛化能力,还降低了计算复杂度,使得深度学习在图像识别、语音识别、自然语言处理等领域取得了显著进展。
- 未来,随着技术的不断进步和应用场景的持续拓展,深度学习之表示学习及分布式表示有望为人类带来更多惊喜和突破。
往期内容回顾
深度学习之表示学习 - 半监督解释因果关系篇
深度学习应用 - 自然语言处理(NLP)篇