Deep Learning Book 学习笔记(20)

Deep Generative Models

Posted by Wenlong Shen on August 18, 2018

玻尔兹曼机

玻尔兹曼机最初作为一种广义的“联结主义”引入,用来学习二值向量上的任意概率分布。我们在\(d\)维二值随机向量\(x\in \{0,1\}^d\)上定义玻尔兹曼机。玻尔兹曼机是一种基于能量的模型,,意味着我们可以使用能量函数定义联合概率分布:

\[P(x)=\frac{exp(-E(x))}{Z}\]

其中\(Z\)是确保\(\sum_xP(x)=1\)的配分函数,能量函数\(E(x)=-x^TUx-b^Tx\),其中\(U\)是模型参数的“权重”矩阵,\(b\)是偏置向量。

当不是所有变量都能被观察到时,玻尔兹曼机变得更强大。在这种情况下,潜变量类似于多层感知机中的隐藏单元,并模拟可见单元之间的高阶交互。正如添加隐藏单元将逻辑回归转换为MLP,导致MLP成为函数的万能近似器,具有隐藏单元的玻尔兹曼机不再局限于建模变量之间的线性关系。相反,玻尔兹曼机变成了离散变量上概率质量函数的万能近似器。

玻尔兹曼机有一个有趣的性质,当基于最大似然的学习规则训练时,连接两个单元的特定权重的更新仅取决于这两个单元在不同分布下收集的统计信息:\(P_{model}(v)\)和\(P_{data}(v)P_{model}(h \vert v)\)。网络的其余部分参与塑造这些统计信息,但权重可以在完全不知道网络其余部分或这些统计信息如何产生的情况下更新。这意味着学习规则是“局部”的,这使得玻尔兹曼机的学习似乎在某种程度上是生物学合理的。我们可以设想每个神经元都是玻尔兹曼机中随机变量的情况,那么连接两个随机变量的轴突和树突只能通过观察与它们物理上实际接触细胞的激发模式来学习。特别地,正相期间,经常同时激活的两个单元之间的连接会被加强。这是Hebbian学习规则的一个例子,经常总结为好记的短语——“fire together, wire together”。Hebbian学习规则是生物系统学习中最古老的假设性解释之一,直至今天仍然有重 大意义。

受限玻尔兹曼机

受限玻尔兹曼机是深度概率模型中最常见的组件之一。就像普通的玻尔兹曼机,受限玻尔兹曼机也是基于能量的模型,其本身基于二分图的无向图模型,在图的一部分具有可见单元,另一部分具有隐藏单元。可见单元之间没有连接,隐藏单元之间也没有任何连接。

深度信念网络

深度信念网络是第一批成功应用深度架构训练的非卷积模型之一。深度信念网络是具有若干潜变量层的生成模型。潜变量通常是二值的,而可见单元可以是二值或实数。尽管构造连接比较稀疏的深度信念网络是可能的,但在一般的模型中,每层的每个单元连接到每个相邻层中的每个单元(没有层内连接)。顶部两层之间的连接是无向的。而所有其他层之间的连接是有向的,箭头指向最接近数据的层。

由于每个有向层内的相消解释效应,并且由于无向连接的两个隐藏层之间的相互作用,深度信念网络中的推断是难解的。评估或最大化对数似然的标准证据下界也是难以处理的,因为证据下界基于大小等于网络宽度的团的期望。评估或最大化对数似然,不仅需要面对边缘化潜变量时难以处理的推断问题,而且还需要处理顶部两层无向模型内难处理的配分函数问题。

深度玻尔兹曼机

深度玻尔兹曼机与深度信念网络不同的是,它是一个完全无向的模型,同时也是个基于能量的模型,这意味着模型变量的联合概率分布由能量函数\(E\)参数化。

深度玻尔兹曼机的层可以组织成一个二分图,其中奇数层在一侧,偶数层在另一侧。容易发现,当我们条件于偶数层中的变量时,奇数层中的变量变得条件独立。当然,当我们条件于奇数层中的变量时,偶数层中的变量也会变得条件独立。二分图结构使Gibbs采样能在深度玻尔兹曼机中高效采样。Gibbs采样的方法是一次只更新一个变量,可以将更新分成两个块,一块包括所有偶数层(包括可见层),另一个包括所有奇数层。由于深度玻尔兹曼机二分连接模式,给定偶数层,关于奇数层的分布是因子的,因此可以作为块同时且独立地采样。类似地,给定奇数层,可以同时且独立地将偶数层作为块进行采样。高效采样对使用随机最大似然算法的训练尤其重要。

实值数据上的玻尔兹曼机

虽然玻尔兹曼机最初是为二值数据而开发的,但是许多应用,例如图像和音频建模似乎需要表示实值上概率分布的能力。在一些情况下,我们可以将区间[0, 1]中的实值数据视为表示二值变量的期望。

卷积玻尔兹曼机

超高维度输入(如图像)会对机器学习模型的计算、内存和统计要求造成很大的压力。通过使用小核的离散卷积来替换矩阵乘法是解决具有空间平移不变性或时间结构的输入问题的标准方式。深度卷积网络通常需要池化操作,使得每个连续层的空间大小减小。前馈卷积网络通常使用池化函数,例如池化元素的最大值。目前尚不清楚如何将其推广到基于能量的模型的设定中。

概率最大池化可以用于构建卷积深度玻尔兹曼机。该模型能够执行诸如填补输入缺失部分的操作。虽然这种模型在理论上有吸引力,让它在实践中工作是具有挑战性的,作为分类器通常不如通过监督训练的传统卷积网络。

用于结构化或序列输出的玻尔兹曼机

在结构化输出场景中,我们希望训练可以从一些输入\(x\)映射到一些输出\(y\)的模型,\(y\)的不同条目彼此相关,并且必须遵守一些约束。例如,在语音合成任务中,\(y\)是波形,并且整个波形听起来必须像连贯的发音。表示\(y\)中的条目之间关系的自然方式是使用概率分布,扩展到建模条件分布的玻尔兹曼机可以支持这种概率模型。使用玻尔兹曼机条件建模的相同工具不仅可以用于结构化输出任务,还可以用于序列建模。

其他玻尔兹曼机

玻尔兹曼机框架是一个丰富的模型空间,可以用不同的训练准则扩展。开发新形式的玻尔兹曼机相比于开发新的神经网络层需要更多细心和创造力,因为它通常很难找到一个能保持玻尔兹曼机所需的所有不同条件分布的可解性的能量函数。

通过随机操作的反向传播

传统的神经网络对一些输入变量\(x\)施加确定性变换。当开发生成模型时,我们经常希望扩展神经网络以实现\(x\)的随机变换。这样做的一个直接方法是使用额外输入\(z\)(从一些简单的概率分布采样得到,如均匀或高斯分布)来增强神经网络。神经网络在内部仍可以继续执行确定性计算,但是函数\(f(x,z)\)对于不能访问\(z\)的观察者来说将是随机的。假设\(f\)是连续可微的,我们可以像往常一样使用反向传播计算训练所需的梯度。

有向生成网络

有向图模型构成了一类突出的图模型。下面是一些深度完全有向的模型。

sigmoid信念网络是一种具有特定条件概率分布的有向图模型的简单形式。一般来说,我们可以将sigmoid信念网络视为具有二值向量的状态s,其中状态的每个元素都受其祖先影响。其最常见的结构是被分为许多层的结构,其中原始采样通过一系列多个隐藏层进行,然后最终生成可见层。这种结构与深度信念网络非常相似,但它们在采样过程开始时的单元彼此独立,而不是从受限玻尔兹曼机采样。这种结构由于各种原因而令人感兴趣。一个原因是该结构是可见单元上概率分布的通用近似,即在足够深的情况下,可以任意良好地近似二值变量的任何概率分布(即使各个层的宽度受限于可见层的维度)。

可微生成器网络使用可微函数将潜变量\(z\)的样本变换为样本\(x\)或样本\(x\)上的分布,可微函数通常可以由神经网络表示。这类模型包括将生成器网络与推断网络配对的变分自编码器、将生成器网络与判别器网络配对的生成式对抗网络,以及孤立地训练生成器网络的技术。

变分自编码器是一个使用学好的近似推断的有向模型,可以纯粹地使用基于梯度的方法进行训练。其具有一个非常好的特性是,同时训练参数编码器与生成器网络的组合迫使模型学习一个编码器可以捕获的可预测的坐标系。这使得它成为一个优秀的流形学习算法。

生成式对抗网络是基于可微生成器网络的另一种生成式建模方法。其基于博弈论场景,生成器网络必须与对手竞争。

生成矩匹配网络是另一种基于可微生成器网络的生成模型。其不需要将生成器网络与任何其他网络配对。

卷积生成网络常用于识别任务,具有从图像到网络顶部的某些概括层(通常是类标签)的信息流。

自回归网络是没有潜在随机变量的有向概率模型。

从自编码器采样

得分匹配、去噪自编码器和收缩自编码器之间有着密切的联系。这些联系表明某些类型的自编码器以某些方式学习数据分布。

某些类型的自编码器,例如变分自编码器,明确地表示概率分布并且允许直接的原始采样。而大多数其他类型的自编码器则需要MCMC采样。收缩自编码器被设计为恢复数据流形切面的估计。这意味着使用注入噪声的重复编码和解码将引起沿着流形表面的随机游走。这种流形扩散技术是马尔可夫链的一种。更一般的马尔可夫链还可以从任何去噪自编码器中采样。

生成随机网络

生成随机网络是去噪自编码器的推广。去噪自编码器和生成随机网络不同于经典的概率模型(有向或无向),它们自己参数化生成过程而不是通过可见和潜变量的联合分布的数学形式。

其他生成方案

其他生成方案还有如,基于非平衡热力学学习生成模型的扩散反演训练方案。该方法基于我们希望从中采样的概率分布具有结构的想法。这种结构会被递增地使概率分布具有更多熵的扩散过程逐渐破坏。为了形成生成模型,我们可以反过来运行该过程,通过训练模型逐渐将结构恢复到非结构化分布。通过迭代地应用使分布更接近目标分布的过程,我们可以逐渐接近该目标分布。在涉及许多迭代以产生样本的意义上,这种方法类似于MCMC方法。然而,模型被定义为由链的最后一步产生的概率分布。与去噪自编码器一样,扩散反演训练一个尝试概率地撤消添加的噪声效果的转移算子。不同之处在于,扩散反演只需要消除扩散过程的一个步骤,而不是一直返回到一个干净的数据点。这解决了去噪自编码器的普通重建对数似然目标中存在的以下两难问题:小噪声的情况下学习者只能看到数据点附近的配置,而在大噪声的情况下,去噪自编码器被要求做几乎不可能的工作(因为去噪分布是高度复杂和多峰值的)。利用扩散反演目标,学习者可以更精确地学习数据点周围的密度形状,以及去除可能在远离数据点处出现的假性模式。

样本生成的另一种方法是近似贝叶斯计算框架。在这种方法中,样本被拒绝或修改以使样本选定函数的矩匹配期望分布的那些矩。虽然这个想法与矩匹配一样使用样本的矩,但它不同于矩匹配,因为它修改样本本身,而不是训练模型来自动发出具有正确矩的样本。

评估生成模型

为了证明新发明的生成模型比之前存在的模型更能捕获一些分布,研究者往往需要将一个生成模型与另一个生成模型比较。

通常,我们不能实际评估模型下数据的对数概率,但仅可以评估一个近似。在这些情况下,重要的是思考和沟通清楚正在测量什么。另外,评估指标本身就是一个困难的研究问题,我们可能很难确定模型是否被公平比较。