第二十章 深度生成模型
在本章中,我们介绍几种具体的生成模型,这些模型可以使用第十六章至第十九章中出现的技术构建和训练。所有这些模型在某种程度上都代表了多个变量的概率分布。有些模型允许显式地计算概率分布函数。其他模型则不允许直接评估概率分布函数,但支持隐式获取分布知识的***作,如从分布中采样。这些模型中的一部分使用第十六章中的图模型语言,从图和因子的角度描述为结构化概率模型。其他的不能简单地从因子角度描述,但仍然代表概率分布。
玻尔兹曼机
玻尔兹曼机最初作为一种广义的“联结***’’ 引入,用来学习二值向量上的任意概率分布。玻尔兹曼机的变体(包含其他类型的变量)早已超过了原始玻尔兹曼机的流行程度。在本节中,我们简要介绍二值玻尔兹曼机并讨论训练模型和进行推断时出现的问题。
受限玻尔兹曼机
受限玻尔兹曼机以簧风琴(harmonium)之名(Smolensky, 1986) 面世之后,成为了深度概率模型中最常见的组件之一。我们之前在第16.7.1 节简要介绍了RBM。在这里我们回顾以前的内容并探讨更多的细节。RBM 是包含一层可观察变量和单层潜变量的无向概率图模型。RBM 可以堆叠起来(一个在另一个的顶部)形成更深的模型。图20.1 展示了一些例子。特别地,图20.1 a 显示RBM 本身的图结构。它是一个二分图,观察层或潜层中的任何单元之间不允许存在连接。我们从二值版本的受限玻尔兹曼机开始,但如我们之后所见,这还可以扩展为其他类型的可见和隐藏单元。
更正式地说,令观察层由一组nv 个二值随机变量组成,我们统称为向量v。我们将nh 个二值随机变量的潜在或隐藏层记为h。
条件分布
训练受限玻尔兹曼机
算配分函数的模型的技术来训练RBM。这包括CD、SML(PCD)、比率匹配等。与深度学习中使用的其他无向模型相比,RBM 可以相对直接地训练,因为我们可以以闭解形式计算P(h|v)。其他一些深度模型,如深度玻尔兹曼机,同时具备难处理的配分函数和难以推断的难题。
深度信念网络
深度信念网络(deep belief network, DBN)是第一批成功应用深度架构训练的非卷积模型之一(Hinton et al., 2006a; Hinton, 2007b)。2006 年深度信念网络的引入开始了当前深度学习的复兴。在引入深度信念网络之前,深度模型被认为太难以优化。具有凸目标函数的核机器引领了研究前沿。深度信念网络在MNIST 数据集上表现超过内核化支持向量机,以此证明深度架构是能够成功的(Hinton et al., 2006a)。尽管现在与其他无监督或生成学习算法相比,深度信念网络大多已经失去了青睐并很少使用,但它们在深度学习历史中的重要作用仍应该得到承认。
深度玻尔兹曼机
深度玻尔兹曼机(Deep Boltzmann Machine, DBM)(Salakhutdinov and Hin-ton, 2009a) 是另一种深度生成模型。与深度信念网络(DBN)不同的是,它是一个完全无向的模型。与RBM 不同的是,DBM 有几层潜变量(RBM 只有一层)。但是像RBM 一样,每一层内的每个变量是相互独立的,并条件于相邻层中的变量。见图20.2 中的图结构。深度玻尔兹曼机已经被应用于各种任务,包括文档建模(Srivastava et al., 2013)。
有趣的性质
DBM 在DBN 之后开发。与DBN 相比,DBM 的后验分布P(h j v) 更简单。
有点违反直觉的是,这种后验分布的简单性允许更加丰富的后验近似。在DBN 的情况下,我们使用启发式的近似推断过程进行分类,其中我们可以通过MLP(使用sigmoid 激活函数并且权重与原始DBN 相同)中的向上传播猜测隐藏单元合理的均匀场期望值。任何分布Q(h) 可用于获得对数似然的变分下界。因此这种启发式的过程让我们能够获得这样的下界。但是,该界没有以任何方式显式优化,所以该界可能是远远不紧的。特别地,Q 的启发式估计忽略了相同层内隐藏单元之间的相互作用以及更深层中隐藏单元对更接近输入的隐藏单元自顶向下的反馈影响。因为DBN 中基于启发式MLP 的推断过程不能考虑这些相互作用,所以得到的Q 想必远不是最优的。DBM 中,在给定其他层的情况下,层内的所有隐藏单元都是条件独立的。这种层内相互作用的缺失使得通过不动点方程优化变分下界并找到真正最佳的均匀场期望(在一些数值容差内)变得可能的。使用适当的均匀场允许DBM 的近似推断过程捕获自顶向下反馈相互作用的影响。这从神经科学的角度来看是有趣的,因为根据已知,人脑使用许多自上而下的反馈连接。由于这个性质,DBM 已被用作真实神经科学现象的计算模型(Series et al.,2010; Reichert et al., 2011)。
DBM 一个不理想的特性是从中采样是相对困难的。DBN 只需要在其顶部的一对层中使用MCMC 采样。其他层仅在采样过程末尾涉及,并且只需在一个高效的原始采样过程。要从DBM 生成样本,必须在所有层中使用MCMC,并且模型的每一层都参与每个马尔可夫链转移。
DBM均匀场推断
DBM 的参数学习
逐层预训练
实值数据上的玻尔兹曼机
虽然玻尔兹曼机最初是为二值数据而开发的,但是许多应用,例如图像和音频建模似乎需要表示实值上概率分布的能力。在一些情况下,我们可以将区间[0; 1] 中的实值数据视为表示二值变量的期望。例如,Hinton (2000) 将训练集中灰度图像的像素值视为定义[0; 1] 间的概率值。每个像素定义二值变量为1 的概率,并且二值像素的采样都彼此独立。这是评估灰度图像数据集上二值模型的常见过程。然而,这种方法理论上并不特别令人满意,并且以这种方式独立采样的二值图像具有噪声表象。在本节中,我们介绍概率密度定义在实值数据上的玻尔兹曼机。
Gaussian-Bernoulli RBM
条件协方差的无向模型
虽然高斯RBM 已成为实值数据的标准能量模型,Ranzato et al. (2010a) 认为高斯RBM 感应偏置不能很好地适合某些类型的实值数据中存在的统计变化,特别是自然图像。问题在于自然图像中的许多信息内容嵌入于像素之间的协方差而不是原始像素值中。换句话说,图像中的大多数有用信息在于像素之间的关系,而不是其绝对值。由于高斯RBM 仅对给定隐藏单元的输入条件均值建模,所以它不能捕获条件协方差信息。为了回应这些评论,已经有学者提出了替代模型,设法更好地考虑实值数据的协方差。这些模型包括均值和协方差RBM(mean and covarianceRBM, mcRBM)1、学生t 分布均值乘积(mean product of Student t-distribution,mPoT)模型和尖峰和平板RBM(spike and slab RBM, ssRBM)。
卷积玻尔兹曼机
如第九章所示,超高维度输入(如图像)会对机器学习模型的计算、内存和统计要求造成很大的压力。通过使用小核的离散卷积来替换矩阵乘法是解决具有空间平移不变性或时间结构的输入问题的标准方式。Desjardins and Bengio (2008) 表明这种方法应用于RBM 时效果很好。深度卷积网络通常需要池化***作,使得每个连续层的空间大小减小。前馈卷积网络通常使用池化函数,例如池化元素的最大值。目前尚不清楚如何将其推广到基于能量的模型的设定中。我们可以在n 个二值检测器单元d 上引入二值池化单元p,强制p = maxi di,并且当违反约束时将能量函数设置为1。因为它需要评估2n 个不同的能量设置来计算归一化常数,这种方式不能很好地扩展。对于小的33 池化区域,每个池化单元需要评估29 = 512 个能量函数!Lee et al. (2009) 针对这个问题,开发了一个称为概率最大池化(probabilisticmax pooling) 的解决方案(不要与‘‘随机池化’’ 混淆,‘‘随机池化’’ 是用于隐含地构建卷积前馈网络集成的技术)。概率最大池化背后的策略是约束检测器单元,使得一次最多只有一个可以处于活动状态。这意味着仅存在n + 1 个总状态(n 个检测器单元中某一个状态为开和一个对应于所有检测器单元关闭的附加状态)。当且仅当检测器单元中的一个开启时,池化单元打开。所有单元的状态关闭时,能量被分配为零。我们可以认为这是在用包含n + 1 个状态的单个变量来描述模型,或者等价地具有n + 1 个变量的模型,除了n + 1 个联合分配的变量之外的能量赋为无穷。
用于结构化或序列输出的玻尔兹曼机
在结构化输出场景中,我们希望训练可以从一些输入x 映射到一些输出y 的模型,y 的不同条目彼此相关,并且必须遵守一些约束。例如,在语音合成任务中,y是波形,并且整个波形听起来必须像连贯的发音。
其他玻尔兹曼机
通过随机***作的反向传播
通过离散随机***作的反向传播
有向生成网络
可微生成器网络
变分自编码器
变分自编码器(variational auto-encoder, VAE)(Kingma, 2013; Rezende et al.,2014) 是一个使用学好的近似推断的有向模型,可以纯粹地使用基于梯度的方法进行训练。
生成式对抗网络
生成矩匹配网络
卷积生成网络
自回归网络
线性自回归网络
NADE
从自编码器采样
与任意去噪自编码器相关的马尔可夫链
夹合与条件采样
回退训练过程
生成随机网络
判别性GSN
其他生成方案
目前为止我们已经描述的方法,使用MCMC 采样、原始采样或两者的一些混
合来生成样本。虽然这些是生成式建模中最流行的方法,但它们绝不是唯一的方法。
评估生成模型
结论