由于精确的对数似然易处理性、精确的潜变量推断易处理性、训练合成并行性,使得基于流的生成模型具有概念上的吸引力。本文提出Glow,一个使用可逆1x1卷积的简单生成流。文中模型证明了基准标准测试中对数似然的显著改进。也许最引人注目的是,其证明了针对普通对数似然目标优化的生成模型能够实现高效图像的逼真合成和操作。
背景:基于流的生成模型
设x为一个在未知真实分布下的高维随机向量。我们收集一个独立同分布的数据集D,并选择一个带参数Ɵ的模型
。在离散数据x的情况下,对数似然目标等于最小化下列等式:
在连续数据x的情况下,我们最小化目标函数如下:
这里且
,
,其中a由数据的离散化水平决定,M是x的维度。两个目标函数都在测量比特的压缩成本。优化通过最小批次的随机梯度下降完成。
在大多数基于流的生成模型中,生成过程被定义如下:
其中z是潜在变量并且有一个易处理的密度。函数
是可逆的,也叫“双射的”,例如给一个数据点x,潜在变量推断通过
得到。
我们关注的函数f由一系列转换组成,使得x和z的关系被写成:
这种可逆转换的序列被称之为“流”。改变等式4的变量,模型的概率密度函数被写作:
其中,我们定义、
。标量
是Jacobian矩阵
的行列式的绝对值对数,也叫对数行列式。这个值代表从
到
的对数密度的变化。它的值通过明确的转换函数选择可以被极大地简化,其基本思想是选择Jacobian为三角矩阵的转换函数。对于这些转换,对数行列式能被简化为:
被提出的生成流
本文提出的生成流建立在NICE和RealNVP(见文末)的基础上,它由一系列的流的步骤组成,每一个步骤由actnorm、可逆的1x1卷积、耦合层组成(详细见后文)。

Actnorm
——具有数据依赖初始化的缩放和偏置层
由于batchnorm添加的激活噪声的方差和每个处理单元或GPU的最小批量的大小成反比,对于小数目的批量,性能会下降。对于大型图像,由于内存限制,我们只能通过批量大小为1的输入来学习。本文提出actnorm层,通过使用每层的缩放和偏置参数来执行激活的放射变换,类似于batchnorm。这些参数被初始化,使得在给定一个初始的小批量数据时,每个通道的激活后平均值和单位方差为零。这是一种数据依赖的初始化。在初始化后,缩放和偏置将被看做规则的可训练的独立参数。
可逆1x1卷积
(Dinh等人,2014年,2016年)提出了一个包含排列的流,该排列反转了通道的排序。本文提出通过可逆1x1卷积来代替这种固定的排列,其中权重矩阵被初始化为一个随机的旋转矩阵。尺寸为的张量h的可逆1x1卷积的对数行列式包含c x c的权重W,对数行列式被直接计算:
计算或微分的代价为
,相比
的代价为
,我们初始化权重W为一个对数行列式为0的随机旋转矩阵,之后通过一个SGD步,这个值开始偏离0。
LU分解。det(W)的代价通过直接在它的LU分解中参数化W能从减少至O(c)。
其中P是一个排序矩阵,L是一个下三角矩阵,其对角线全为1,U是一个上三角矩阵,其对角线全为0,s是一个向量。对数行列式被简化为:
在该参数化中,我们通过首先对随机旋转矩阵W进行采样来初始化参数,然后计算P的对应值(其保持固定)以及L和U和s的相应初始值(其被优化)。
放射耦合层
放射耦合层是一个强大的可逆转换,其中前向函数、求逆函数和对数行列式是计算有效的。(见表1)。一个附加耦合层是s=1且对数行列式为0的特殊形式。

零初始化。我们初始化每一个NN()的最后一个卷积为0,使得每一个放射耦合层最初执行一个身份函数;我们发现这对于训练非常深的网络有帮助。
拆分和连接。Split()函数沿着channel维度切分输入张量h为两个张量,之后concat()操作执行对应逆向操作:连接成一个tensor。
排列。 上面的流程的每一步都应该先进行变量的某种排列,以确保在流动的足够步骤之后,每个维度都可以影响每个其他维度。在(Dinh等,2014,2016)中特定地进行的排列等同于在执行附加耦合层之前简单地反转通道(特征)的排序。 另一种方法是执行(固定)随机排列,我们的可逆1x1卷积是这种排列的推广。 在实验中,我们比较了这三个选择。
实验
定量实验。在我们的实验中,我们让每个NN()都有三个卷积层,其中两个隐藏层具有ReLU激活函数和512个通道。 第一个和最后一个卷积是3×3,而中心卷积是1×1,因为它的输入和输出都有大量的通道。

我们比较了CIFAR-10(Krizhevsky,2009)数据集的平均负对数似然(每维度的比特),保持所有训练条件不变并对三个随机种子求平均值。 结果如图3所示。正如我们所看到的,对于附加耦合和放射耦合,可逆1×1卷积实现了较低的负对数似然并且收敛更快。 放射耦合模型也比附加耦合模型收敛得更快。 仅为7%,因此该操作在计算上也是有效的。

与RealNVP在标准基准测试中的比较。我们遵循与(Dinh等,2016)相同的预处理。 对于Imagenet,我们使用ImageNet的32×32和64×64下采样版本(Oord等,2016),对于LSUN,我们下采样到96×96并采用64×64的随机作物。 我们还在我们的定性实验中使用256×256 CelebA HQ训练模型的比特/维度。如表2所示,我们的模型在所有数据集上实现了显着的改进。
定性实验。我们现在研究模型在高分辨率数据集上的定性方面。我们选择CelebA-HQ数据集(Karras等,2017),它由来自CelebA数据集的30000个高分辨率图像组成,并训练与上面相同的结构,但现在用于分辨率为2562,K = 32和L = 6的图像。


合成和插值。 图4显示了从我们的模型中获得的随机样本。 对于基于非自动回归可能性的模型,图像具有极高的质量。 为了了解我们如何插值,我们采用一对真实图像,用编码器对它们进行编码,并在潜伏期之间进行线性插值以获得样本。 图5中的结果表明,发生器分布的图像流形非常平滑,几乎所有中间样本看起来都像真实的面。
语义操纵。 我们现在考虑修改图像的属性。 为此,我们使用CelebA数据集中的标签。 每个图像都有一个二进制标签,对应于微笑,金发,年轻等属性的存在与否。这为每个属性提供了30000个二进制标签。
然后我们计算具有属性的图像的平均潜在矢量和没有的图像的
,然后使用差异
作为操纵的方向。 请注意,这是一个相对较少的监督,并且在训练模型后进行(在训练时没有使用标签),使得对于各种不同的目标属性非常容易。 结果如图6所示。

相关文献
Dinh, L., Krueger, D., and Bengio, Y. (2014). Nice: non-linear independent components estimation. arXiv preprint arXiv:1410.8516.
Dinh, L., Sohl-Dickstein, J., and Bengio, S. (2016). Density estimation using Real NVP. arXiv preprint arXiv:1605.08803.
本文
https://arxiv.org/pdf/1807.03039.pdf