VAE/GAN学习笔记:Autoencoding beyond pixels using a learned similarity metric

paper:VAE/GAN

0、摘要

我们提供了一个自动编码器,它利用学习的表示来更好地度量数据空间地相似性。通过将变分自编码器与生成对抗网络相结合,我们可以利用GAN鉴别器中的学习特征表示作为VAE重建目标的基础。因此,我们将元素方面的错误替换为特征方面的错误,以便更好地捕获数据分布,同时提供对例如翻译的不变性对。我们将我们的方法应用到人脸图像上,并证明它在视觉逼真度方面比VAEs表现得更好。此外,我们还证明了该方法学习了一种嵌入方法,可以使用简单的算法提高高级抽象的视觉特征(例如戴眼镜)

1、介绍

深层架构允许广泛的区分模型扩展到大的和不同的数据集。然而,生成模型仍然存在图像和声音等复杂数据分布的问题。在这项工作中,我们展示了目前使用的相似度度量对学习好的生成模型设置了一个障碍,并且我们可以通过使用学习的相似度度量来改进生成模型。

学习变分自动编码器(VAE)模型时,相似度度量的选择是核心,通过重构误差目标提供训练信号的主要部分。

对于这个任务,元素级的度量,如平方误差是默认值。元素度量是简单的,但不太适合图像数据,因为他妈不模拟人类视觉感知的属性。一个小的图像翻译可能会导致一个大的像素错误,而一个几乎不会注意到变化。因为,我们主张使用更高层次和足够不变的图像表示来测量图像的相似性。我们希望为任务学习一个函数,而不是手工设计一个合适的方法来解决元素度量的问题。问题是如何学习这种相似性度量?我们发现,通过联合训练VAE和生成对抗网络(GAN),我们可以使用GAN鉴别器来测量样本相似性。我们通过将VAE和GAN结合实现这一点,如图所示,我们将VAE解码器和GAN生成器合并为一个。让它们共享参数并联合训练它们。对于VAE训练目标,我们将典型的元素重构度量替换为鉴别器中表示的特征度量。

VAE/GAN学习笔记:Autoencoding beyond pixels using a learned similarity metric

1.1 贡献

·我们将VAEs和GANs合并为一个无监督生成模型,同时学习编码、生成和比较数据集样本。

·我们证明,接受过学习相似度度量训练的生成模型比接受过元素误差模拟训练的模型产生更好的图像样本。

·我们证明了无监督训练可以产生更具有解纠缠因子的潜在图像表示法。这一点在一个用视觉属性向量标记的人脸图像数据集中的实验中得到了证明,在学习的潜空间中应用简单的算法可以生成反映这些属性变化的图像。

2、自动编码和学习相似性

在本节中,我们将介绍VAEs和GANs的背景知识。然后,我们介绍了两种方法的结合方法,我们称之为VAE-GAN。正如我们将要描述的,我们所提出的混合模型是作为一种改进VAE的方法而被激发的,因此它依赖于一个更有意义的,更有特征的度量来度量训练期间的重构质量。

2.1 变分自编码器

VAE由两个网络组成,分别将数据样本x编码为潜在表示z,并将潜在表示解码回数据空间:

VAE/GAN学习笔记:Autoencoding beyond pixels using a learned similarity metric

VAE通过对潜在分布p(z)施加一个先验来规范编码器。通过z~N(0,1)选择。VAE损失是减去预期的log似然函数(重构误差)和先验的正则化项的总和。

VAE/GAN学习笔记:Autoencoding beyond pixels using a learned similarity metric

其中DKLVAE/GAN学习笔记:Autoencoding beyond pixels using a learned similarity metric 是KL散度。

2.2 生成对抗网络

GAN由两个网络:生成器Gen(z)由空间数据潜变量z映射,而判别器网络分配概率y=Dis(x)∈[0,1],x是实际的训练样本。GAN的目标是找到一个二进制分类器,它给出了真是数据和生成数据之间最好的区别,并同时鼓励Gen以符合真实的数据分布。因此,我们的目标是最大/最小交叉熵:

VAE/GAN学习笔记:Autoencoding beyond pixels using a learned similarity metric

2.3 使用VAE/GAN重构元素误差

GAN的一个吸引人的特性是它的鉴别器网络必须隐式地学习丰富的图像相似度度量,以便区分它们与“生成图像”。因此我们建议利用这一观测结果,将鉴别器所获得的图像的性质转化为VAE的一种更抽象的重构误差。最终的结构是将GAN作为高质量生成模型的有点与VAE作为数据编码器生成到潜在空间z的方法相结合。

具体地说,由于元素的重构误差不适用于图像和其他具有不变性的信号,我们建议将VAE重构(预期的log似然)从等式3中替换为GAN鉴别器中表示的重构误差。为此,让Dis(x)表示鉴别器第l层的隐藏表示。

我们用三重准则训练组合模型:

VAE/GAN学习笔记:Autoencoding beyond pixels using a learned similarity metric

值得注意的是,我们优化了VAE利用LGANVAE/GAN学习笔记:Autoencoding beyond pixels using a learned similarity metric ,这个我们认为除了重构误差之外的一种样式误差,使用Gatys等人的术语可以将其解释为内容误差。此外,由于Dec和Gen从z映射到x,我们两者之间共享参数(换句话说,我们在等式5中使用Dec而不是Gen)。

在实践中,我们在开发和训练这个模型的细节中观察到了魔鬼。因此,我们在这一节中提供了一些实际的考虑事项。关于训练过程的概述,请参见图2和算法1.

VAE/GAN学习笔记:Autoencoding beyond pixels using a learned similarity metric

图2,训练过程中流经VAE/GAN模型。灰色线表示训练目标中的术语。

VAE/GAN学习笔记:Autoencoding beyond pixels using a learned similarity metric

 

将误差信号限制在相关网络上。利用等式8中的损失函数,我们同时训练VAE和GAN。这是可能的,因为我们不利用合并后的损失更新所有网络参数。特别是,Dis不应该试图最小化,因为这会使鉴别器崩溃为0,。我们也通过不将错误信号从LGANVAE/GAN学习笔记:Autoencoding beyond pixels using a learned similarity metric 回传给Enc观察到更好的结果。

带权重的VAE和GAN作为误差信号,我们使用一个参数γ作为判别器重构能力和欺骗能力的折中。这也可以解释为加权样式和内容。而不是对整个模型应用γ,只有当我们更新Dec的权重时:

VAE/GAN学习笔记:Autoencoding beyond pixels using a learned similarity metric

基于p(z)和p(z|x)的采样。我们在GAN目标中使用p(z|x)(即编码器)的样本时,观察到更好的效果:

VAE/GAN学习笔记:Autoencoding beyond pixels using a learned similarity metric

注意,潜在空间LpriorVAE/GAN学习笔记:Autoencoding beyond pixels using a learned similarity metric 的正则化应该使来自p(z)或p(z|x)的样本集类似。然而,对于任何给定的例子x,负样本Dec(Enc(x))比Dec(x)更可能与x相似。当根据LGANVAE/GAN学习笔记:Autoencoding beyond pixels using a learned similarity metric 进行更新时,我们怀疑拥有更相似的正样本和负样本会产生更有用的学习信号。

3、相关工作

元素距离度量对于像图像这样的复杂数据分布来说是出了名的不足。在计算机视觉社区中,预处理图像是一个改进某些扰动鲁棒性的普遍解决方案。预处理的例子是对比度标准化,处理梯度图像或直方图中收集的像素统计信息。我们将这些操作视为度量工程的一种形式,以解释简单的元素距离度量的缺点。Wang(2009)对这一主题进行了更详细的讨论。

神经网络以Siamese体系结构的形式应用于度量学习。对于相似的样本。所学习的距离度量是最小的,对于不同的样本,所学习的距离度量是最大的。但是,由于Siamese网络是在受监督的环境下训练的,所以我们不能讲它们直接应用到我们的问题上。

在过去的一年里,已经有人提出了一些改进生成模型元素距离的尝试。Ridgeway(2015)将结构相似性指数作为灰度图像的自动编码器(AE)重构度量。Yan(2015)让VAE输出两个额外的图像来更明确地学习形状和边缘结构。Masimov(2015)在他们的生成模型中加入了基于gan-base的锐化步骤。Mathieu(2015)用GAN和基于图像梯度的相似性度量来补充平方误差测量,以提高视频预测的图像清晰度。虽然所有这些扩展都生成明显更清晰的图像,但与深度学习方法相比,它们在捕获高级结构方面没有相同的潜力。

与AEs直接模拟数据集样本和潜在表示的关系相比,GANs学会了间接的生成样本。通过优化GAN生成器根据GAN判别器生成模拟数据集的样本,通过构造避免元素间的相似性度量。这可能解释了它们制作高质量图像的能力,Denton(2015)就证明了这一点。

最近,具有向上采样的卷积网络已经显示从潜在的表示中生成图像的有用性。这引起了人们对学习图像嵌入的兴趣,在这种情况下,语义关系可以通过简单的算术来表达—类似于Mikolov等人在word2vec模型中令人惊讶的结果。首先,Dosovitskiy等人利用监督训练来训练复杂的网络,以生成椅子的高级信息。之后,kulkarni等已经演示了带有解离特征表示的编码解码器架构,但是他们的训练方案依赖于有监督的信息。Radford在训练后检查GAN的潜在空间,找到与眼镜和微笑对应的方向。然而,由于它们依赖于纯GANs,它们无法对图像进行编码,这使得探索潜在空间变得很困难。

我们关于学习相似度的概念部分都是受到Gatys等人的审计艺术风格网络的启发,该网络展示了深层卷积特征的代表性力量。他们通过优化图像来获得令人印象深刻的结果,使其具有与主题图像相似的特征,并与训练前的卷积网络中的样式图像具有相似的特征的相关性。在我们的VAE-GAN模型中,可以将LllikeDislVAE/GAN学习笔记:Autoencoding beyond pixels using a learned similarity metric 视为内容,将LGANVAE/GAN学习笔记:Autoencoding beyond pixels using a learned similarity metric 视为样式。不过,我们的样式项不是从特征相关性计算出来的,而是试图骗过GAN鉴别器的错误信号。

4、实验

由于现在的评估方法对较大的自然图像存在问题,因此评估生成模型的质量具有挑战性。在这项工作中,我们使用64×64大小的图像,并着重与更定性的评估,因为传统的log似然度量不能捕获视觉逼真度。实际上,我们已经尝试在VAE/GAN模型训练后丢弃GAN鉴别器,并使用剩余的VAE计算一个机遇像素的log似然。结果远比普通的VAE模型(在CIFAR-10数据集上)要好。

在本节中,我们将研究不同生成模型的性能。

  • 基于元素的高斯观察模型的普通VAE。
  • 学习距离的VAE。我们首先训练一个GAN,并使用鉴别器网络作为学习的相似度度量。我们选择一个单层l,根据DislVAE/GAN学习笔记:Autoencoding beyond pixels using a learned similarity metric 测量相似度。选择l,以便在卷积编码器中对每个因子2进行3次下采样后进行比较。
  • VAE/GAN组合模型。该模型类似于VAEDislVAE/GAN学习笔记:Autoencoding beyond pixels using a learned similarity metric ,但我们也优化了Dec关于LGANVAE/GAN学习笔记:Autoencoding beyond pixels using a learned similarity metric
  • GAN。这种模式最近被证明能够生存高质量的图像。

所有的模型分别为Enc、Dec和Dis共享相同的结构。在我们所有的实验中,我们使用卷积结构和逆向卷积。在Dec,通过改变卷积方向,使之产生向上的采样,从而实现了步2到高阶的分数阶化卷积,我们的模型使用RMSProp进行训练,学习速率为0.0003,批处理大小为64,。在表1中,我们列出了网络结构。我们在线可用的实现参考网址:

https://github.com/andersbll/autoencoding_beyond_pixels

VAE/GAN学习笔记:Autoencoding beyond pixels using a learned similarity metric

 

4.1 CelebA人脸图片

我们将我们的方法应用于CelebA数据中的人脸图像。这个数据集包含202599张图片注释与40个二进制属性,如眼镜、刘海、苍白的皮肤等等。我们的规律和作物64×64像素的图像和只使用无监督的图像(而不是属性)训练。

经过训练,我们从p(z)中抽取样本,通过Dec生成新的图像,如图3所示。普通的VAE可以把脸的前部画得很明显,但是离开中心的图像会变得模糊。这是因为数据集使用前额标志物对人脸进行对齐。当我们离对齐的部分太远时,由于不能假定像素对应,识别模型就会崩溃。VAEDislVAE/GAN学习笔记:Autoencoding beyond pixels using a learned similarity metric 甚至在中心外也能生成更清晰的图像,因为重构误差超过了像素。然而,我们看到了严重的噪音—我们认为这些噪音是由严厉的降级计划造成的,相比之下,VAE/GAN和pure GAN的图像更清晰,更自然的纹理和面部部分。

VAE/GAN学习笔记:Autoencoding beyond pixels using a learned similarity metric

图3:来自不同生成模型的样本

VAE/GAN学习笔记:Autoencoding beyond pixels using a learned similarity metric

图4:从不同的自动编码器重建

另外,我们让VAEs重构从一个单独的测试集中获取的图像。由于GAN模型缺乏编码器网络,所以用GAN模型重构是不可能的。结果如图4所示,我们的结论与我们从随机样本进行的观察相似。注意,VAEDislVAE/GAN学习笔记:Autoencoding beyond pixels using a learned similarity metric 在一些重构中产生了噪声蓝色模式。我们怀疑基于gan-based的相似性度量在某些情况下会崩溃到0(例如我们服务的模式),这鼓励Dec生成这样的模型。

4.1.1 视觉属性向量

在尝试学习如何用简单的算术表达语义概念的嵌入的启发下,我们检查了训练有素的VAE/GAN模型的潜在空间。这个想法是为了在与图像空间中的特定视觉特征相对应的潜在空间寻找方向。

我们使用数据集的二进制属性来提取视觉属性向量。对于所有的图像,我们使用编码器来计算潜在向量表示,对于每个属性,我们计算具有属性的图像的均值向量和没有属性的图像的均值向量。然后计算视觉属性向量作为两个均值向量的差值。这是一种非常简单的方法,用于计算视觉属性向量,这些向量与高度相关的视觉属性(如浓妆和涂口红)存在问题。在图5中,我们将不同的视觉属性加入到潜在的表现形式中,展示了人脸图像以及重构。虽然不完美,但我们可以清楚地看到属性向量捕捉到了眼镜、刘海等语义概念。例如当把刘海添加到脸部时,头发的颜色和发质都与原脸相匹配。我们还发现,作为一个男人与胡子高度相关,这是数据集中的属性相关性造成的。

VAE/GAN学习笔记:Autoencoding beyond pixels using a learned similarity metric

图5:使用VAE/GAN模型重构数据集样本,将视觉属性向量添加到它们的潜在表示中。

4.2 属性相似,标记人脸属性

受到Yan等人(2015)的属性相似实验的启发,我们寻求对生成的图像进行更定量的评价。这个想法是为了学习一个基于面部特征的面部图像的生成模型。在测试时,我们通过从选择的属性配置中检索人脸图像,并让一个单独训练的退化网络从生成的图像中预测属性。一个好的生产模型应该能够产生被回归模型正确识别的视觉属性。为了模仿原始实验,我们在野生(wild LEW)图像中使用标记的面孔和属性。我们根据Zhu的地标来排列人脸图像。此外,我们作物和调整64×64像素的图像和增加数据集与常见的操作。同样,我们要了解更多的细节,请参阅我们的online实现。

我们构造条件VAE、GAN和VAE/GAN模型,通过将属性向量连接到Enc、DEC和DIS中的输入的向量表示。对于Enc和Dis,属性向量连接到顶层完全连接层的输入。我们的回归网络几乎与Enc具有相同的体系结构。我们使用LEW训练集进行训练,在测试期间,我们对通过回归网络传播的测试集属性和样本面进行条件。图6显示了对来自测试集的属性向量进行条件作用生成的人脸。我们在表2中报告回归函数性能数。与普通的VAE模型相比,VAE/GAN模型在视觉上产生的属性明显更好,从而导致较小的识别错误。GAN网络的性能非常差,我们怀疑这是由于训练过程中的不稳定性(GAN模型由于极小极大目标函数而很难可靠地训练)。请注意,我们的结果与Yan等人(2015)的结果没有直接可比性,因为我们无法获得他们的预处理方案和回归模型。

VAE/GAN学习笔记:Autoencoding beyond pixels using a learned similarity metric

图6:生成基于LFW属性的样本在相应的图像旁边列出。

VAE/GAN学习笔记:Autoencoding beyond pixels using a learned similarity metric

表2:属性相似度分数。将余弦相似度作为测试集中每个属性向量的10个样本中最好的一个,在测试集中计算均值平方误差,统计量超过25次。

4.3 对监督任务进行无监督的预训练

为了完整起见,我们报告说,我们已经尝试在一个半监督的设置中对VAE/GAN进行评估,该设置由无监督的预训练完成,然后使用少量的标记示例进行优化。不幸的是,我们未能取得与最先进的技术相竞争的结果。我们推测,对于VAE/GAN模型来说,内部类的变化可能太高了,无法学习不同对象类的良好概括。

5、讨论

在文献中,对元素距离度量的问题是众所周知的,并且许多尝试都是在超越像素的情况下进行的—通常使用手工工程的方法。本着深度学习的精神,我们认为相似度度量是一个可以被一个可捕获与数据分布相关的高级结构的学习模型所取代的组件。在这项工作中,我们的主要贡献是一个学习和应用这种距离测量的无监督方案。通过学习距离测量,我们可以训练图像编码器网络生成前所未有的视觉逼真度的图像,如我们的实验所示。此外,我们还证明了我们的网络能够解开输入数据分布变化的因素,并在潜在空间的高级表示中发现视觉属性。原则上,这让我们可以使用一组大的未标记图像进行训练,并使用一组小的标记图像来发现隐藏空间中的特征。

我们认为我们的方法是VAE框架的扩展。但是,我们生成的图像的高质量是由于Dec同时作为VAE解码器和GAN生成器进行训练。这使得我们的方法更像是VAE和GAN之间的混合,或者,我们可以将我们的方法看作GAN的扩展,其中p(z)受到额外网络的约束。

GAN的鉴别器网络为不同的任务提供了有用的相似度度量,即能够从真实的样本中识别生成的样本。然而,卷积特征通常对传输学习非常有用,正如我们所展示的,在我们的例子中,卷积特性对图像的元素距离有足够的改善。如果在距离测量中有更好的功能可以改进模型,那将是很有趣的,例如,通过使用Siamese网络提供的相似度测量方法,因为他们需要标记数据。或者可以研究使用预先训练的前馈网络的效果相似度度量。

综上所述,我们演示了在无监督学习编码器模型已经相似度度量方面的首次尝试。我们的结果表明,我们的方法的视觉逼真度与GAN是竞争的,在这方面被认为是最先进的。因此,我们认为学习到的相似性度量是将生成模型扩展到更复杂的数据分布的一个有希望的步骤。

 

6 自己的一些思考

本文着重提出来的问题是关于VAE中真实数据和解码生成数据的相关性(距离)度量问题。之前采用的element-wise distance Metrics,这种metrics其实对于很多hidden feature/space 的学习并不好。

本文针对上述问题,提出的解决方案是:结合GAN网络的优势,将这种度量相似性的任务交给判别器去learn去就行。