©PaperWeekly 原创 · 作者 | 鬼谷子
引言
到目前为止,两种生成模型和并不能准确地从真实数据中学习出概率分布。以隐变量的生成模型为例,在计算积分时,需要遍历所有的隐变量的取值这是非常困难,且不切实际的。基于的生成模型在正则化流(正则化流是估计概率分布非常有力的工具)帮助下可以更好的解决这个问题。一个的概率分布好的估计可以完成很多任务,比如说数据生成,预测未来事件概率估计,数据样本增强等。
生成模型的种类
当前生成模型的种类可以主要分为三种,分别是基于的生成模型,基于的生成模型和基于的生成模型:
生成对抗网络(GAN): GAN 是由两个神经网络组成,分别是生成器和判别器。生成器的目的是从噪声中学习生成真实的数据样本,而判别器的目的是区分出真实的样本和生成的样本。在训练的过程中,两个网络在玩一个的博弈游戏中相互促进相互提高。
变分自动编码器(VAE): GAN 是也是由两个神经网络组成,分别是编码器和解码器。编码器是将数据样本编码成隐向量,解码器将隐向量映射回样本数据。VAE 是在最大化变分下界中,粗略地优化数据的对数似然估计。
的生成模型: 一个基于的生成模型是由一系列的可逆变换器组成。它可以使得模型能够更加精确的学习到数据分布,它的损失函数是一个负对数似然函数。
预备知识
在了解基于的生成模型之前,需要知道三个关键的数学概念,分别是雅可比矩阵,行列式和变量替换定理。
3.1 雅可比矩阵和行列式
给定一个映射函数,将维输入向量映射为维的输出向量。雅可比矩阵是函数关于输入向量所有分量的一阶偏导数:
而行列式是用于计算一个方阵的,结果为一个实值标量。行列式的绝对值可以被认为是“矩阵的乘法扩展或收缩了多少空间”的度量。一个方阵的行列式如下所示:
其中求和下的下标是集合的所有置换,共有项。表示的是置换的符号。方阵行列式取值为时,则不可逆,反之亦然。行列式乘积公式为:
3.2 变量替换定理
给定一个单变量随机变量,已知它的概率分布为,如果想要用一个映射函数构造一个新的随机变量,即,其中是可逆的,即,则新随机变量的概率分布推导如下所示:
根据定义可知,积分是无穷多个宽度无穷小的矩形之和。该位置处矩形的高度是密度函数的值。当进行变量替换时,由得到和。表示在两个不同的变量坐标中定义矩形面积之间的比例。多变量的版本如下所示:
其中为雅可比矩阵的行列式。
标准化流
对概率分布进行良好的密度估计在许多机器学习问题中有直接的应用,但这是非常困难的。例如,由于我们需要在深度学习模型中运行反向传播,因此嵌入变量的概率分布(即后验)预计足够简单,可以轻松有效地计算导数。这就是为什幺在隐变量生成模型中经常使用高斯分布的原因,尽管大多数真实世界的分布比高斯分布复杂得多。标准化流模型则可以用于更好、更强大的分布近似。标准化流通过应用一系列可逆变换函数将简单分布转换为复杂分布。通过一系列变换,根据变量替换定理反复替换新变量,最终得到最终目标变量的概率分布。
如上图的图示,对应则有以下公式:
根据以上公式可以推知概率分布表示为:
以上公式推导中用到了反函数定理,即如果且
,进而则有:
雅可比矩阵的反函数定理为:一个可逆矩阵逆的行列式为这个矩阵行列式的倒数,即,因为。给定这样一系列概率密度函数,我们知道每对连续变量之间的关系。所以可以通过输出直到追溯到初始分布。
随机变量穿过的路径就是一条流,连续分布形成的全链被称为标准化流。根据方程的计算要求,变换函数应该满足两个特性,分别是函数可逆和雅可比矩阵行列式计算容易。
标准化流模型
通过标准化流求输入数据的精确对数似然变得更加容易,基于流的生成模型的训练损失函数为训练数据集上的负对数似然:
5.1 RealNVP
RealNVP 模型通过叠加可逆双射变换函数序列来实现标准化流。在每个双射中,输入维度分为两部分:
维度保持不变;
第维度到维度,进行仿射变换(“缩放和平移”),缩放和平移参数都是第一维度的函数。
其中和是缩放和平移函数,映射都为,操作符表示的按元素乘积。
对于标准化流的条件 1 为函数可逆在 RealNVP 模型中是非常容易实现的,具体函数如下所示:
对于标准化流条件 2 中雅可比行列式容易计算在 RealNVP 模型同样可以实现,其雅可比矩阵为下三角矩阵,具体矩阵如下所示:
因此,行列式只是对角线上的项的乘积。
到目前为止,仿射耦合层看起来非常适合构建标准化流。更好的是,由于计算不需要计算或的逆,并且计算雅比行列式不涉及计算或的雅可比矩阵,因此这些函数可以是任意复杂的,两者都可以用深层神经网络建模。在一个仿射耦合层中,某些维度(通道)保持不变。为了确保所有的输入都有机会被更改,模型颠倒了每一层中的顺序,以便不同的模块组件保持不变。
按照这种交替模式,在一个转换层中保持相同的单元集总是在下一个转换层中修改。批量标准化有助于使用非常深的耦合层堆栈来训练模型。此外,RealNVP 可以在多尺度体系结构中工作,为大型输入构建更高效的模型。多尺度体系结构将若干“采样”操作应用于普通仿射层,包括空间棋盘模式掩蔽、压缩操作和通道掩蔽。
NICE 模型是 RealNVP 的前作,NICE 中的变换是没有尺度项的仿射耦合层,称为加性耦合层:
5.2 Glow
模型扩展了以前的可逆生成模型和,并通过用可逆卷积替换通道排序上的反向置换操作来简化架构。中的一个流程中的一个步骤包含三个子步骤:
激活归一化: 它使用每个通道的比例和偏置参数执行仿射变换,类似于批量归一化,但适用于批量大小为。参数是可训练的,但已初始化,因此小批量数据在激活归一化之后具有均值为和标准差为。
卷积: 在流的各层之间,通道的顺序是相反的,因此所有数据维度都有机会被更改。具有相同数量的输入和输出通道的卷积是任何通道排序排列的泛化。假设有一个输入张量维度为张量的可逆卷积,其权重矩阵为。
输出是一个的张量,记为。
为了应用变量替换定理,需要计算雅可比行列式
。中的每个元素是一个通道数的向量,每个元素乘以权重矩阵分别得到输出矩阵中对应的元素。每个元素的导数为,并且总计有共有个元素:
可逆卷积取决于逆矩阵。
由于权重矩阵比较小,所以矩阵行列式和求逆的计算量还是在可控范围内的。
仿射耦合层: 的仿射耦合层的结构设计与的仿射耦合层相同。
自回归流的模型
自回归约束是一种对序列数据建模的方法:每个输出只依赖于过去观察到的数据,而不依赖于未来的数据。换句话说,观察的概率是依赖于序列数据,这些条件概率的乘积为提供了观察完整序列的概率:
6.1 MADE
是一种专门设计的架构,可以有效地在自编码器中执行自回归属性。当使用自动编码器来预测条件概率时,不是向自动编码器提供不同观察窗口时间的输入,而是通过乘以二进制掩码矩阵来消除某些隐藏单元的贡献,以便每个输入维度仅从给定的先前维度重构进行一次性传播。
给定一个有个隐层的全连接神经网络,其权重矩阵为,和一个输出层的权重矩阵,输出的每个维度有,当没有掩码矩阵的时候,神经网络前向传播的过程为如下所示:
为了将层之间的一些连接归零,可以简单地将每个权重矩阵按元素乘以一个二进制掩码矩阵。每个隐藏节点都分配有一个随机的“连接整数”,介于和之间;
第层中第个单元的分配值表示为。通过逐元素比较两层中两个节点的值来确定二进制掩码矩阵,则有:
如下图的例子所示,当前层中的一个单元只能连接到前一层中具有相同或更小随机数的其它单元,并且这种类型的依赖关系很容易通过网络传播到输出层。一旦将随机数字分配给所有单元和层,输入维度的顺序就固定了,并且相对于它产生了条件概率。为了确保所有隐单元都通过一些路径连接到输入和输出层,采样等于或大于前一层中的最小连接整数:
6.2 WaveNet
由一堆因果卷积组成,这是一种旨在尊重排序的卷积操作:在某个时间戳的预测只能消耗过去观察到的数据,不依赖于未来。中的因果卷积只是将输出移动多个时间戳到未来,以便输出与最后一个输入元素对齐。卷积层的一大缺点是感受视野的大小非常有限。输出几乎不能依赖于数百或数千个时间步之前的输入,这可能是对长序列建模的关键要求。因此,采用扩张卷积,其中内核应用于输入的更大感受视野中均匀分布的样本子集。使用门控激活单元作为非线性层,因为它被发现在建模一维音频数据方面比
工作得更好,在门控激活之后应用残差连接,具体公式如下所示:
其中和分别是第层的卷积滤波器和门权重矩阵,两者都是可学习的。
6.3 MAF
是一种标准化流,其中转换层构建为自回归神经网络。与后面介绍的非常相似。给定两个随机变量和,并且概率密度函数已知,旨在学习。
生成每个以过去的维度为条件。准确地说,条件概率是的仿射变换,其中尺度和移位项是的观察部分的函数。数据生成时,会产生出一个新的,公式如下所示:
给定时,密度估计为:
该框架的方法优点在于生成过程是顺序的,因此设计速度很慢。而密度估计只需要使用等网络架构。变换函数对逆很简单,雅可比行列式也很容易计算。
6.4 IAF
与类似,逆自回归流也将目标变量的条件概率建模为自回归模型,但采用反向流动,从而实现了非常有效的采样过程。
中的仿射变换为:
如果令:
如下图示所示,打算估计已知的给定的概率密度函数。逆流也是自回归仿射变换,与相同,但尺度和移位项是已知分布中观察变量的自回归函数。
单个元素的计算不相互依赖,因此它们很容易并行化。已知的密度估计效率不高,因为必须按顺序恢复的值,即为,因此总计需要次估计。
Be First to Comment