chap 无监督学习

2020-03-01 149浏览

  • 1.第9章 无监督学习 大脑有大约 1014 个突触,我们只能活大约 109 秒。所以我们 有比数据更多的参数。这启发了我们必须进行大量无监督学习 的想法,因为感知输入(包括本体感受)是我们可以获得每秒 105 维约束的唯一途径。 — Geoffrey Hinton, 2014 AMA on Reddit 更 早 的 正 式 描 述 见 [Hinton et al., 1999] 无监督学习(Unsupervised Learning)是指从无标签的数据中学习出一些 有用的模式。无监督学习算法一般直接从原始数据中学习,不借助于任何人工 给出标签或者反馈等指导信息。如果监督学习是建立输入-输出之间的映射关 系,无监督学习就是发现隐藏的数据中的有价值信息,包括有效的特征、类别、 结构以及概率分布等。 典型的无监督学习问题可以分为以下几类: 无监督特征学习 无监督特征学习(Unsupervised Feature Learning)是从无标 签的训练数据中挖掘有效的特征或表示。无监督特征学习一般用来进行 降维、数据可视化或监督学习前期的数据预处理。 密度估计 密度估计(Density Estimation)是根据一组训练样本来估计样本空 间的概率密度。密度估计可以分为参数密度估计和非参数密度估计。参 数密度估计是假设数据服从某个已知概率密度函数形式的分布(比如高 斯分布),然后根据训练样本去估计概率密度函数的参数。非参数密度估 计是不假设数据服从某个已知分布,只利用训练样本对密度进行估计,可 以进行任意形状密度的估计。非参数密度估计的方法有直方图、核密度估 计等。 聚类 聚类(Clustering)是将一组样本根据一定的准则划分到不同的组(也称 为集群(Cluster)) 。一个比较通用的准则是组内的样本的相似性要高于 组间样本的相似性。常见的聚类算法包括 K-Means 算法、谱聚类等。 特征学习也包含很多的监督 学习算法,比如线性判别分 析等。
  • 2.2019 年 4 月 10 日 220 第9章 无监督学习 和监督学习一样,无监督学习方法也包含三个基本要素:模型、学习准则 和优化算法。无监督学习的准则非常多,比如最大似然估计、最小重构错误等。 在无监督特征学习中,经常使用的准则为最小化重构错误,同时也经常对特征 进行一些约束,比如独立性、非负性或稀释性等。而在密度估计中,经常采用 最大似然估计来进行学习。 本章介绍两种无监督学习问题:无监督特征学习和密度估计。 9.1 无监督特征学习 无监督特征学习是指从无标注的数据中自动学习有效的数据表示,从而能 够帮助后续的机器学习模型更快速地达到更好的性能。无监督特征学习主要方 法有主成分分析、稀疏编码、自编码器等。 9.1.1 主成分分析 主成分分析(Principal Component Analysis,PCA)一种最常用的数据降 维方法,使得在转换后的空间中数据的方差最大。如图9.1所示的两维数据,如 果将这些数据投影到一维空间中,选择数据方差最大的方向进行投影,才能最 大化数据的差异性,保留更多的原始数据信息。 图 9.1 主成分分析 假设有一组 d 维的样本 x(n) ∈ Rd , 1 ≤ n ≤ N ,我们希望将其投影到一维空 间中,投影向量为 w ∈ Rd 。不失一般性,我们限制 w 的模为 1,即 wT w = 1。 邱锡鹏: 《神经网络与深度学习》https://nndl.github.io/
  • 3.9.1 2019 年 4 月 10 日 无监督特征学习 221 每个样本点 x(n) 投影之后的表示为 z (n) = wT x(n) . (9.1) 我们用矩阵 X = [x(1) , x(2) , · · · , x(N ) ] 表示输入样本,x̄ = 1 N PN n=1 x(n) 为原始 样本的中心点,所有样本投影后的方差为 σ(X; w) = N 1 X T (n) (w x − wT x̄)2 N n=1 1 (wT X − wT X̄)(wT X − wT X̄)T N = wT Sw, = 其中 X̄ = x̄1Td 为 d 列 x̄ 组成的矩阵,S = 1 N (X (9.2) (9.3) (9.4) − X̄)(X − X̄)T 是原始样本的协 方差矩阵。 最大化投影方差 σ(X; w) 并满足 wT w = 1,利用拉格朗日方法转换为无约 束优化问题, max wT Sw + λ(1 − wT w), w (9.5) 其中 λ 为拉格朗日乘子。对上式求导并令导数等于 0,可得 Sw = λw. (9.6) 从上式可知,w 是协方差矩阵 S 的特征向量,λ 为特征值。同时 σ(X; w) = wT Sw = wT λw = λ. (9.7) λ 也是投影后样本的方差。因此,主成分分析可以转换成一个矩阵特征值分解 问题,投影向量 w 为矩阵 S 的最大特征对应的特征向量。 ′ 如果要通过投影矩阵 W ∈ Rd×d 将样本投到d′ 维空间, 投影矩阵满足W T W = I,只需要将 S 的特征值从大到小排列,保留前 d′ 个特征向量,其对应的特征向 量即使最优的投影矩阵。 SW = W diag(Λ), (9.8) 其中 Λ = [λ1 , · · · , λd′ ] 为 S 的前 d′ 个最大的特征值。 主成分分析是一种无监督学习方法,可以作为监督学习的数据预处理方法, 用来去除噪声并减少特征之间的相关性,但是它并不能保证投影后数据的类别 可分性更好。提高两类可分性的方法一般为监督学习方法,比如线性判别分析 (Linear Discriminant Analysis,LDA)。 邱锡鹏:《神经网络与深度学习》 参见习题9-3。https://nndl.github.io/
  • 4.2019 年 4 月 10 日 222 9.1.2 第9章 无监督学习 稀疏编码 稀疏编码(Sparse Coding)也是一种受哺乳动物视觉系统中简单细胞感受 野而启发的模型。在哺乳动物的初级视觉皮层(primary visual cortex)中,每 个神经元仅对处于其感受野中特定的刺激信号做出响应,比如特定方向的边缘、 条纹等特征。局部感受野可以被描述为具有空间局部性、方向性和带通性(即 带通滤波(bandpass filter) 不同尺度下空间结构的敏感性)[Olshausen et al., 1996]。也就是说,外界信息 是指容许某个频率范围的信 经过编码后仅有一小部分神经元激活,即外界刺激在视觉神经系统的表示具有 号通过,同时屏蔽其他频段 很高的稀疏性。编码的稀疏性在一定程度上符合生物学的低功耗特性。 的设备。 在数学上,(线性)编码是指给定一组基向量 A = [a1 , · · · , ap ],将输入样 本 x ∈ Rd 表示为这些基向量的线性组合 x= p X zi ai (9.9) i=1 = Az, (9.10) 其中基向量的系数 z = [z1 , · · · , zp ] 称为输入样本 x 的编码(encoding),基向 量 A 也称为字典(dictionary)。 编码是对 d 维空间中的样本 x 找到其在 p 维空间中的表示(或投影),其目 标通常是编码的各个维度都是统计独立的,并且可以重构出输入样本。编码的 关键是找到一组“完备”的基向量 A,比如主成分分析等。但是主成分分析得 到编码通常是稠密向量,没有稀疏性。 数学小知识 完备性 如果 p 个基向量刚好可以支撑 p 维的欧氏空间,则这 p 个基向量是 完备的。如果 p 个基向量可以支撑 d 维的欧氏空间,并且 p > d,则这 p ♣ 个基向量是过完备的,冗余的。 “过完备”基向量一般是指的是基向量个数远远大于其支撑空间维 度。因此这些基向量一般是不具备独立、正交等性质。 为了得到稀疏的编码,我们需要找到一组“超完备”的基向量(即 p > d) 来进行编码。在超完备基向量之间往往会存在一些冗余性,因此对于一个输入 样本,会存在很多有效的编码。如果加上稀疏性限制,就可以减少解空间的大 小,得到“唯一”的稀疏编码。 邱锡鹏: 《神经网络与深度学习》https://nndl.github.io/
  • 5.9.1 2019 年 4 月 10 日 无监督特征学习 223 给定一组 N 个输入向量 x(1) , · · · , x(N ) ,其稀疏编码的目标函数定义为:  N  X 2 L(A, Z) = (9.11) x(n) − Az(n) + ηρ(z(n) ) , n=1 其中 ρ(·) 是一个稀疏性衡量函数,η 是一个超参数,用来控制稀疏性的强度。 对于一个向量 z ∈ Rp ,其稀疏性定义为非零元素的比例。如果一个向量只 有很少的几个非零元素,就说这个向量是稀疏的。稀疏性衡量函数 ρ(z) 是给向 量 z 一个标量分数。z 越稀疏,ρ(z) 越小。 以得到,因此如果一个向量 稀疏性衡量函数有多种选择,最直接的衡量向量 z 稀疏性的函数是 ℓ0 范式 ρ(z) = p X 严格的稀疏向量有时比较难 I( zi > 0)) (9.12) 只有少数几个远大于零的元 素,其它元素都接近于 0,我 们也称这个向量为稀疏向量。 i=1 但 ℓ0 范数不满足连续可导,因此很难进行优化。在实际中,稀疏性衡量函数通 常使用 ℓ1 范数 p X zi (9.13) log(1 + zi2 ) (9.14) − exp(−zi2 ). (9.15) ρ(z) = i=1 或对数函数 ρ(z) = p X i=1 或指数函数 ρ(z) = p X i=1 9.1.2.1 训练方法 给定一组 N 个输入向量 x(1) , · · · , x(N ) ,需要同时学习基向量 A 以及每个输 入样本对应的稀疏编码 z(1) , · · · , z(N ) 。 稀疏编码的训练过程一般用交替优化的方法进行。 1) 固定基向量 A,对每个输入 x(n) ,计算其对应的最优编码 min x(n) − Az(n) x(n) 2 − ηρ(z(n) ), ∀n ∈ [1, N ]. (9.16) 2) 固定上一步得到的编码 z(1) , · · · , z(N ) ,计算其最优的基向量 min A N  X x (n) − Az (n) 2 n=1  1 + λ ∥A∥2 , 2 (9.17) 其中第二项为正则化项,λ 为正则化项系数。 邱锡鹏:《神经网络与深度学习》https://nndl.github.io/
  • 6.2019 年 4 月 10 日 224 9.1.2.2 第9章 无监督学习 稀疏编码的优点 稀疏编码的每一维都可以看作是一种特征。和基于稠密向量的分布式表示 相比,稀疏编码具有更小的计算量和更好的可解释性等优点。 计算量 稀疏性带来的最大好处就是可以极大地降低计算量。 可解释性 因为稀疏编码只有少数的非零元素,相当于将一个输入样本表示为少 数几个相关的特征。这样我们可以更好地描述其特征,并易于理解。 特征选择 稀疏性带来的另外一个好处是可以实现特征的自动选择,只选择和 输入样本相关的最少特征,从而可以更好地表示输入样本,降低噪声并减轻过 拟合。 9.1.3 自编码器 自编码器(Auto-Encoder,AE)是通过无监督的方式来学习一组数据的有 效编码(或表示) 。 假设有一组 d 维的样本 x(n) ∈ Rd , 1 ≤ n ≤ N ,自编码器将这组数据映射到 特征空间得到每个样本的编码 z(n) ∈ Rp , 1 ≤ n ≤ N ,并且希望这组编码可以 重构出原来的样本。 自编码器的结构可分为两部分: 编码器(encoder) f : Rd → Rp , (9.18) g : R p → Rd . (9.19) 和解码器(decoder) 自编码器的学习目标是最小化重构错误(reconstruction errors) L= N X ∥x(n) − g(f (x(n) ))∥2 (9.20) ∥x(n) − f ◦ g(x(n) )∥2 . (9.21) n=1 = N X n=1 如果特征空间的维度 p 小于原始空间的维度 d,自编码器相当于是一种降维 或特征抽取方法。如果 p ≥ d,一定可以找到一组或多组解使得 f ◦ g 为单位函 单位函数 I(x) = x。 数(Identity Function),并使得重构错误为 0。但是,这样的解并没有太多的 意义。但是如果再加上一些附加的约束,就可以得到一些有意义的解,比如编 邱锡鹏: 《神经网络与深度学习》https://nndl.github.io/
  • 7.9.1 2019 年 4 月 10 日 无监督特征学习 225 码的稀疏性、取值范围,f 和 g 的具体形式等。如果我们让编码只能取 k 个不同 的值 (k < N ),那么自编码器就可以转换为一个 k 类的聚类(Clustering)问题。 最简单的自编码器是如图9.2所示的两层神经网络。输入层到隐藏层用来编 码,隐藏层到输出层用来解码,层与层之间互相全连接。 解码器 编码器 x′1 x1 x2 z1 x′2 x3 z2 x′3 x′4 x4 图 9.2 两层网络结构的自编码器 对于样本 x,中间隐藏层为编码 z = s(W (1) x + b(1) ), (9.22) x′ = s(W (2) z + b(2) ), (9.23) 输出为重构的数据 其中 W, b 为网络参数, s(·) 为激活函数。如果令 W (2) 等于 W (1) 的转置, 即 W (2) = T W (1) ,称为捆绑权重(tied weights)。 给定一组样本 x(n) ∈ [0, 1]d , 1 ≤ n ≤ N ,其重构错误为 L= N X ∥x(n) − x′(n) )∥2 + λ∥W ∥2F . (9.24) n=1 其中 λ 为正则化项系数。通过最小化重构错误,可以有效地学习网络的参数。 我们使用自编码器是为了得到有效的数据表示,因此在训练结束后,我们 一般去掉解码器,只保留编码器。编码器的输出可以直接作为后续机器学习模 型的输入。 9.1.4 稀疏自编码器 自编码器除了可以学习低维编码之外,也学习高维的稀疏编码。假设中间 隐藏层 z 的维度为 p 大于输入样本 x 的维度 d,并让 z 尽量稀疏,这就是稀疏自 邱锡鹏:《神经网络与深度学习》https://nndl.github.io/
  • 8.2019 年 4 月 10 日 226 第9章 无监督学习 编码器(Sparse Auto-Encoder)。和稀疏编码一样,稀疏自编码器的优点是有 很高的可解释性,并同时进行了隐式的特征选择。 通过给自编码器中隐藏层单元 z 加上稀疏性限制,自编码器可以学习到数 据中一些有用的结构。 L= N X ∥x(n) − x′(n) )∥2 + ηρ(z(n) )) + λ∥W ∥2 , (9.25) n=1 其中 ρ(·) 为稀疏性度量函数,W 表示自编码器中的参数。 稀疏性度量函数 ρ(·) 除了可以选择公式 (9.13)∼(9.15) 的定义外,还可以定 义为一组训练样本中每一个神经元激活的频率。 给定 N 个训练样本,隐藏层第 j 个神经元平均活性值为 ρ̂j = N 1 X (n) z , N n=1 j (9.26) ρ̂j 可以近似地看作是第 j 个神经元激活的概率。我们希望 ρ̂j 接近于一个事先给 定的值 ρ∗ ,比如 0.05,可以通过 KL 距离来衡量 ρ̂j 和 ρ∗ 的差异,即 KL(ρ∗ ρ̂j ) = ρ∗ log ρ∗ 1 − ρ∗ + (1 − ρ∗ ) log . ρ̂j 1 − ρ̂j (9.27) 如果 ρ̂j = ρ∗ ,则 KL(ρ∗ ρ̂j ) = 0。 稀疏性度量函数定义为 ρ(z (n) )= p X KL(ρ∗ ρ̂j ). (9.28) j=1 9.1.5 堆叠自编码器 对于很多数据来说,仅使用两层神经网络的自编码器还不足以获取一种好 的数据表示。为了获取更好的数据表示,我们可以使用更深层的神经网络。深 层神经网络作为自编码器提取的数据表示一般会更加抽象,能够更好地捕捉到 数据的语义信息。在实践中经常使用逐层堆叠的方式来训练一个深层的自编码 器,称为堆叠自编码器(Stacked Auto-Encoder,SAE)。堆叠自编码一般可以 采用逐层训练(layer-wise training)来学习网络参数 [Bengio et al., 2007]。 9.1.6 降噪自编码器 我们使用自编码器是为了得到有效的数据表示,而有效的数据表示除了具 有最小重构错误或稀疏性等性质之外,我们还可以要求其具备其它性质,比如 对数据部分损坏(partial destruction)的鲁棒性。高维数据(比如图像)一般 邱锡鹏: 《神经网络与深度学习》https://nndl.github.io/
  • 9.9.2 2019 年 4 月 10 日 概率密度估计 227 都具有一定的信息冗余,比如我们可以根据一张部分破损的图像联想出其完整 内容。因此,我们希望自编码器也能够从部分损坏的数据中得到有效的数据表 示,并能够恢复出完整的原始信息。 降噪自编码器(Denoising Autoencoder)就是一种通过引入噪声来增加编 码鲁棒性的自编码器 [Vincent et al., 2008]。对于一个向量 x,我们首先根据一 个比例 µ 随机将 x 的一些维度的值设置为 0,得到一个被损坏的向量 x̃。然后将 被损坏的向量 x̃ 输入给自编码器得到编码 z,并重构出原始的无损输入 x。 图9.3给出了自编码器和降噪自编码器的对比,其中 fθ 为编码器,gθ′ 为解 损坏比例 µ 一般不超过 0.5。 也可以使用其它的方法来损 坏数据,比如引入高斯噪声。 码器,L(x, x′ ) 为重构错误。 z fθ z gθ ′ x̃ gθ ′ fθ x′ x x′ x L(x, x′ ) L(x, x′ ) (a) 自编码器 (b) 降噪自编码器 图 9.3 自编码器和降噪自编码器 降噪自编码器的思想十分简单,通过引入噪声来学习更鲁棒性的数据编码, 并提高模型的泛化能力。 9.2 概率密度估计 概率密度估计(Probabilistic Density Estimation),简称密度估计(Density Estimation),是基于一些观测样本来估计一个随机变量的概率密度函数。密 度估计在数据建模、机器学习中使用广泛。 密度估计方法可以分为两类:参数密度估计和非参数密度估计。 9.2.1 参数密度估计 参数密度估计(Parametric Density Estimation)是根据先验知识假设随机 变量服从某种分布,然后通过训练样本来估计分布的参数。 令 D = {x(n) }N i=1 为从某个未知分布中独立抽取的 N 个训练样本,假设这 邱锡鹏:《神经网络与深度学习》https://nndl.github.io/
  • 10.2019 年 4 月 10 日 228 第9章 无监督学习 些样本服从一个概率分布函数 p(x θ),其对数似然函数为 log p(D θ) = N X log p(x(n) θ). (9.29) n=1 我们要估计一个参数 θM L 来使得 θM L = arg max θ N X log p(x(n) θ). (9.30) n=1 这样参数估计问题就转化为最优化问题。 9.2.1.1 正态分布 假设样本 x ∈ Rd 服从正态分布 N (x µ, Σ) = 1 (2π)d/2 Σ 1/2   1 exp − (x − µ)T Σ−1 (x − µ) , 2 (9.31) 其中 µ 和 Σ 分别为正态分布的均值和方差。其对数似然函数为 log p(D µ, Σ) = − N   1X N log (2π)2 Σ − (x − µ)T Σ−1 (x − µ). 2 2 n=1 (9.32) 分别上式关于 µ, Σ 的偏导数,并令其等于 0。可得, ML µ N 1 X (n) = x , N n=1 ΣM L = 9.2.1.2 多项分布参见第D.2.2.1节。 (9.33) N 1 X (x − µ)(x − µ)T . N n=1 (9.34) 多项分布 假设样本服从 K 个状态的多项分布,令 onehot 向量 x ∈ [0, 1]K 来表示第 k 个状态,即 xk = 1,其余 xi,i̸=k = 0。样本 x 的概率密度函数为 p(x µ) = K Y µxkk , (9.35) k=1 其中 µk 为第 k 个状态的概率,并满足 这里没有多项式系数。 PK k=1 µk = 1。 数据集 D = {x(n) }N n=1 的对数似然函数为 log p(D µ) = N X K X (n) xk log(µk ). (9.36) n=1 k=1 邱锡鹏: 《神经网络与深度学习》https://nndl.github.io/
  • 11.9.2 2019 年 4 月 10 日 概率密度估计 229 多项分布的参数估计为约束优化问题。引入拉格朗日乘子 λ,将原问题转 拉格朗日乘子参考??。 换为无约束优化问题。 max µ,λ K N X X (n) xk log(µk ) + λ n=1 k=1 K X  µk − 1 . (9.37) k=1 分别上式关于 µk , λ 的偏导数,并令其等于 0。可得, L µM = k 其中 mk = PN n=1 mk , N 1≤k≤K (9.38) (n) xk 为数据集中取值为第 k 个状态的样本数量。 在实际应用中,参数密度估计一般存在以下问题: (1)模型选择问题:即如何选择数据分布的密度函数。实际数据的分布往 往是非常复杂的,而不是简单的正态分布或多项分布。 (2)不可观测变量问题:即我们用来训练的样本只包含部分的可观测变量, 还有一些非常关键的变量是无法观测的,这导致我们很难准确估计数据的真实 包含不可观测变量的密度估 计问题一般需要使用 EM 算 分布。 法,参见第11.4.2.1节。 (3)维度灾难问题:即高维数据的参数估计十分困难。随着维度的增加,估 计参数所需要的样本数量指数增加。在样本不足时会出现过拟合。 9.2.2 非参数密度估计 非参数密度估计(Nonparametric Density Estimation)是不假设数据服从 某种分布,通过将样本空间划分为不同的区域并估计每个区域的概率来近似数 据的概率密度函数。 对于高维空间中的一个随机向量 x,假设其服从一个未知分布 p(x),则 x 落 入空间中的小区域 R 的概率为 Z P = p(x)dx. (9.39) R 给定N 个训练样本 D = {x(n) }N 落入区域R的样本数量 K 服从二项分布 n=1 ,   N P K (1 − P )1−K , PK = (9.40) K 其中 K/N 的期望为 E[K/N ] = P ,方差为 var(K/N ) = P (1 − P )/N 。当 N 非 常大时,我们可以近似认为 P ≈ 邱锡鹏:《神经网络与深度学习》 K . N (9.41)https://nndl.github.io/
  • 12.2019 年 4 月 10 日 230 第9章 无监督学习 假设区域 R 足够小,其内部的概率密度是相同的,则有 P ≈ p(x)V, (9.42) 其中 V 为区域 R 的体积。结合上述两个公式,得到 p(x) ≈ K . NV (9.43) 根据公式(9.43),要准确地估计 p(x) 需要尽量使得样本数量 N 足够大,区 域体积 V 尽可能地小。但在具体应用中,样本数量一般是有限的,过小的区域 会导致落入该区域的样本比较少,这样估计的概率密度就不太准确。因此,实 践中非参数密度估计通常使用两种方式:(1)固定区域大小 V ,统计落入不同 区域的数量,这种方式包括直方图方法和核方法两种。(2)改变区域大小以使 得落入每个区域的样本数量为 K,这种方式称为 K 近邻方法。 9.2.2.1 直方图方法 直方图方法(Histogram Method)是一种非常直观的估计连续变量密度函 Histogram 源 自 希 腊 语 his- 数的方法,可以表示为一种柱状图。 以一维随机变量为例,首先将其取值范围分成 M 个连续的、不重叠的区间 tos(竖立)和 gramma(描 绘),由英国统计学家卡尔· 皮尔逊于 1895 年提出。 (bin),每个区间的宽度为 ∆m 。给定 N 个训练样本 D = {x(n) }N n=1 ,我们统计 这些样本落入每个区间的数量 Km ,然后将它们归一化为密度函数。 pm = Km , N ∆m 1≤m≤M (9.44) 其中区间宽度 ∆m 通常设为相同的值 ∆。直方图方法的关键问题是如何选取一 个合适的区间宽度 ∆。如果 ∆ 太小,那么落入每个区间的样本数量会比较少,其 估计的区间密度也具有很大的随机性。如果 ∆ 太大,其估计的密度函数变得十 分平滑,很难反映出真实的数据分布。图9.4给出了直方图密度估计的例子,其 中蓝线表示真实的密度函数,红色的柱状图为直方图方法估计的密度。 (a) 10 个区间(bin) (b) 30 个区间(bin) 图 9.4 直方图密度估计 邱锡鹏: 《神经网络与深度学习》https://nndl.github.io/
  • 13.9.2 2019 年 4 月 10 日 概率密度估计 231 直方图通常用来处理低维变量,可以非常快速地对数据的分布进行可视化, 但其缺点是很难扩展到高维变量。假设一个 d 维的随机向量,如果每一维都划分 为 M 个区间,那么整个空间的区间数量为 M d 个。直方图方法需要的样本数量 会随着维度 d 的增加而指数增长,从而导致维度灾难(Curse of Dimensionality) 问题。 9.2.2.2 核方法 核密度估计(Kernel Density Estimation),也叫 Parzen 窗方法,是一种 直方图方法的改进。 假设 R 为 d 维空间中的一个以点 x 为中心的“超立方体”,并定义核函数   1 z − x  if zi − xi < h2 , 1 ≤ i ≤ d ϕ = (9.45)  h  0 else 来表示一个样本 z 是否落入该超立方体中,其中 h 为超立方体的边长,也称为核 函数的宽度。 给定 N 个训练样本 D = {x(n) }N n=1 ,落入区域 R 的样本数量 K 为 K= N  x(n) − x  X , ϕ h n=1 (9.46) 则点 x 的密度估计为 p(x) = N K 1 X  x(n) − x  = ϕ , N hd N hd n=1 h (9.47) 其中 hd 表示区域 R 的体积。 除了超立方体的核函数之外,我们还可以选择更加平滑的核函数,比如高 斯核函数, ϕ z − x h =  ∥z − x∥2  1 , exp − 2h2 (2π)1/2 h (9.48) 其中 h2 可以看做是高斯核函数的方差。这样点 x 的密度估计为 N  ∥z − x∥2  1 X 1 p(x) = exp − . N n=1 (2π)1/2 h 2h2 9.2.2.3 (9.49) K 近邻方法 核密度估计方法中的核宽度是固定的,因此同一个宽度可能对高密度的区 域过大,而对低密度区域过小。一种更灵活的方式是设置一种可变宽度的区域, 邱锡鹏:《神经网络与深度学习》https://nndl.github.io/
  • 14.2019 年 4 月 10 日 232 第9章 无监督学习 并使得落入每个区域中样本数量为固定的 K。要估计点 x 的密度,首先找到一 个以 x 为中心的球体,使得落入球体的样本数量为 K,然后根据公式(9.43),就 可以计算出点 x 的密度。因为落入球体的样本也是离 x 最近的 K 个样本,所以 K 近邻方法并不是一个严格 这种方法称为 K 近邻(K-Nearest Neighbor)方法。 的密度函数估计方法,参见 习题9-5。 在 K 近邻方法中,K 的选择也十分关键。如果 K 太小,无法有效地估计密 度函数,而 K 太大也会使得局部的密度不准确,并且增加计算开销。 K 近邻方法也经常用于分类问题,称为 K 近邻分类器。当 K = 1 也称为最 近邻分类器。最近邻分类器的一个性质是,当 N → ∞ 时,其分类错误率不超 参见习题9-6。 过最优分类器错误率的两倍 [Cover and Hart, 1967]。 9.3 总结和深入阅读 无监督学习是一种十分重要的机器学习方法。广义上讲,监督学习也可以 看作是一个类特殊的无监督学习,即估计条件概率 p(y x)。条件概率 p(y x) 可 以通过贝叶斯公式转为估计概率 p(y) 和 p(x y),并通过无监督密度估计来求解。 无监督学习问题主要可以分为聚类、特征学习、密度估计等几种类型。关 于聚类方面的内容,可以参考《机器学习》[周志华, 2016] 中的第 9 章。无监督 特征学习是一种十分重要的表示学习方法。当一个监督学习任务的数据比较少 时,可以通过大规模的无标注数据,学习到一种有效的数据表示,并有效提高 监督学习的性能。关于无监督特征学习的内容,可以参考《机器学习》[周志华, 2016] 中的第 10 章和《Pattern Classification》[Duda et al., 2001] 的第 10 章。 本章简单介绍了两种概率密度估计方法:参数方法和非参数方法。参数方 法是假设数据分布服从某种参数化的模型。我们在本书的后面章节会陆续介绍 更多的参数密度估计模型。在第11章中,我们通过概率图模型介绍更一般的参 数密度估计方法,包括含隐变量的参数估计方法。当估计出一个数据分布的参 数化模型后,我们可以根据这个模型来生成数据,因此这些模型也称为生成模 型。第12章介绍两种比较复杂的生成模型:玻尔兹曼机和深度信念网络。第13章 介绍了两种深度生成模型:变分自编码器和对抗生成网络。第15章介绍了几种 序列数据的生成模型。 关于非参数密度估计的方法一般性介绍可以参考 [Duda et al., 2001] 和[Bishop, 2007],理论性介绍可以参考 [Devroye and Gyorfi, 1985]。 但目前无监督学习并没有像监督学习那样取得广泛的成功,主要原因在于 无监督学习缺少有效的客观评价方法,导致很难衡量一个无监督学习方法的 好坏。 邱锡鹏: 《神经网络与深度学习》https://nndl.github.io/
  • 15.2019 年 4 月 10 日 参考文献 233 习题 习题 9-1 分析主成分分析为什么具有数据降噪能力? 习题 9-2 证明对于 N 个样本(样本维数 d > N )组成的数据集,主成分分 析的有效投影子空间不超过 N − 1 维。 习题 9-3 对于一个两类分类问题,试举例分析什么样的数据分布会使得主 成分分析得到的特征反而会使得分类性能下降。 习题 9-4 若数据矩阵 X ′ = X − X̄,则对 X ′ 奇异值分解 X ′ = U ΣV ,则 U 为主成分分析的投影矩阵。 习题 9-5 举例说明,K 近邻方法估计的密度函数不是严格的概率密度函数, 其在整个空间上的积分不等于 1。 习题 9-6 对于一个 C 类的分类问题,使用 K 近邻方法估计每个类 c (1 ≤ c ≤ C) 的密度函数 p(x c),并使用贝叶斯公式计算每个类的后验概率 p(c x)。 参考文献 周志华. 机器学习. 清华大学出版社, 北京, Richard O. Duda, Peter E. Hart, and 2016. ISBN 978-7-302-206853-6. Yoshua Bengio, Pascal Lamblin, David G. Stork. Pattern classification, 2nd Popovici, and Hugo Larochelle. Dan Greedy layer-wise training of deep networks. In Advances in neural information processing systems, pages 153–160, 2007. Christopher M. Bishop. Pattern recogni- Edition. Wiley, 2001. ISBN 9780471056690. Geoffrey E Hinton, Terrence Joseph Sejnowski, and Tomaso A Poggio. Unsupervisedlearning:foundations of neural computation. MIT press, 1999. tion and machine learning, 5th Edition. In- Bruno A Olshausen et al. formation science and statistics. Springer, of simple-cell receptive field properties by 2007. ISBN 9780387310732. Thomas Cover and Peter Hart. learning a sparse code for natural images. Nearest neighbor pattern classification. IEEE transactions on information theory, 13(1):21–27, 1967. Luc Devroye and Laszlo Gyorfi. Nonparametric DensityEstimation:The L1 View. Wiley Series in Probability and Statistics. Wiley,New York, 1985. 邱锡鹏:《神经网络与深度学习》 Emergence Nature, 381(6583):607–609, 1996. Pascal Vincent, Hugo Larochelle, Yoshua Bengio, and Pierre-Antoine Manzagol. Extracting and composing robust features with denoising autoencoders. In Proceedings of the International Conference on Machine Learning, pages 1096–1103. ACM, 2008.https://nndl.github.io/
  • 16.