乐趣区

关于深度学习:生成模型VAEGAN和基于流的模型详细对比

在 Ian Goodfellow 和其余钻研人员在一篇论文中介绍生成反抗网络两年后,Yann LeCun 称反抗训练是“过来十年里 ML 最乏味的想法”。只管 GANs 很乏味,也很有前途,但它只是生成模型家族的一部分,是从齐全不同的角度解决传统 AI 问题,在本文中咱们将比照常见的三种生成模型。

生成算法

当咱们想到机器学习时,首先想到的可能是甄别算法。判断模型是依据输出数据的特色对其标签或类别进行预测,是所有分类和预测解决方案的外围。与这些模型相比生成算法帮忙咱们讲述对于数据的故事并提供数据是如何生成的可能解释,与判断算法所做的将特色映射到标签不同,生成模型试图预测给定标签的特色。

区别模型定义的标签 y 和特色 x 之间的关系,生成模型答复“你如何失去 y”的问题。而生成模型模型则是 P(Observation/Cause),而后应用贝叶斯定理计算 P(Cause/Observation)。通过这种形式,他们能够捕捉 p(x|y),x 给定 y 的概率,或者给定标签或类别的特色的概率。所以实际上,生成算法也是能够用作分类器的,这可能是因为它们对各个类的散布进行了建模。

生成算法有很多,但属于深度生成模型类别的最风行的模型是变分主动编码器(VAE)、gan 和基于流的模型。

VAE

变分自编码器 (VAE) 是一种生成模型,它“提供潜在空间中察看后果的概率形容”。简略地说,这意味着 vae 将潜在属性存储为概率分布。

变分自编码器 (Kingma & Welling, 2014) 或 VAE 的思维深深植根于变分贝叶斯和图形模型办法。

规范的主动编码器包含 2 个类似的网络,一个编码器和一个解码器。编码器承受输出并将其转换为更小的示意模式,解码器能够应用该示意模式将其转换回原始输出。它们将输出转换到的潜在空间以及它们的编码向量所在的空间可能不是间断。这对于生成模型来说是一个问题,因为咱们都心愿从潜在空间中随机采样,或者从间断潜在空间中生成输出图像的变动。

而变分自编码器具备间断的潜在空间,这样能够使随机采样和插值更加不便。为了实现这一点,编码器的暗藏节点不输入编码向量,而是输入两个大小雷同的向量: 一个均值向量和一个标准差向量。每一个暗藏的节点都认为本人是高斯分布的。这里的均值和标准差向量的第 i 个元素对应第 i 个随机变量的均值和规范差值。咱们从这个散布向量中采样,解码器从输出向量的概率分布中随机抽样。这个过程就是随机生成。这意味着即便对于雷同的输出,当平均值和标准差放弃不变时,理论的编码在每一次传递中都会有所不同。

自编码器的损失是最小化重构损失 (输入与输出的类似水平) 和潜在损失(暗藏节点与正态分布的靠近水平)。潜在损失越小,能够编码的信息就越少,这样重构损失就会减少,所以在潜在损失和重建损失之间是须要进行进行衡量的。当潜在损耗较小时,生成的图像与训练的的图像会过于类似,成果较差。在重构损失小的状况下,训练时的重构图像成果较好,但生成的新图像与重构图像相差较大,所以须要找到一个好的均衡。

VAE 能够解决各种类型的数据,序列的和非序列的,间断的或离散的,甚至有标签的或无标签的,这使它们成为十分弱小的生成工具。

然而 VAE 的一个次要毛病是它们生成的输入含糊。正如 Dosovitskiy 和 Brox 所指出的,VAE 模型往往产生不事实的、含糊的样本。这是由数据分布复原和损失函数计算的形式造成的。Zhao 等人在 2017 年的一篇论文中倡议批改 VAEs,不应用变分贝叶斯办法来进步输入品质。

生成反抗的网络

生成反抗网络 (GANs) 是一种基于深度学习的生成模型,可能生成新内容。GAN 架构在 2014 年 Ian Goodfellow 等人题为“生成反抗网络”的论文中首次被形容。

GANs 采纳监督学习办法,应用两个子模型: 生成新示例的生成器模型和试图将示例分类为实在或假 (生成的) 的鉴别器模型。

生成器:用于从问题域生成新的似是而非例子的模型。

鉴频器:用于将示例分类为实在的 (来自畛域) 或假的 (生成的) 的模型。

这两个模型作为竞争对手进行训练。生成器间接产生样本数据。它的对手鉴别器,试图辨别从训练数据中提取的样本和从生成器中提取的样本。这个竞争过程在训练中继续进行,直到鉴别器模型有一半以上的工夫无奈判断虚实,这意味着生成器模型正在生成十分真切的数据。

当鉴别器胜利地甄别出虚实样本时,它会失去处分它的参数放弃不变。如果生成器判断谬误则受到惩办,更新其参数。在现实状况下,每当鉴别器不能分辨出差别并预测“不确定”(例如,50% 的虚实)时,生成器则能从输出域生成完满的正本。

然而这里每个模型都能够压倒另一个。如果鉴别器太好,它将返回十分靠近 0 或 1 的值,生成器则难以获得更新的梯度。如果生成器太好,它就会利用鉴别器的弱点导致漏报。所以这两个神经网络必须具备通过各自的学习速率达到的类似的“技能程度”,这也是咱们常说的 GAN 难以训练的起因之一。

生成器模型

生成器取一个固定长度的随机向量作为输出,在定义域内生成一个样本。这个向量是从高斯分布中随机抽取的。经过训练后,这个多维向量空间中的点将对应于问题域中的点,造成数据分布的压缩示意,这一步相似于 VAE,这个向量空间被称为潜在空间,或由潜在变量组成的向量空间。GAN 的生成器将均匀选定的潜在空间中的点。从潜在空间中提取的新点能够作为输出提供给生成器模型,并用于生成新的和不同的输入示例。训练完结后,保留生成器模型,用于生成新的样本。

鉴别器模型

鉴别器模型将一个示例作为输出 (来自训练数据集的实在样本或由生成器模型生成),并预测一个二进制类标签为 real 或 fake(已生成)。鉴别器是一个失常的(并且很容易了解的) 分类模型。

训练过程完结后,鉴别器被抛弃,因为咱们感兴趣的是生成器。当然鉴别器也可用于其余目标应用

GANs 能够产生可行的样本但最后版 GAN 也有毛病:

  • 图像是由一些任意的噪声产生的。当生成具备特定特色的图片时,不能确定什么初始噪声值将生成该图片,而是须要搜寻整个散布。
  • GAN 只区别于“实在”和“虚伪”图像。然而没有束缚说“猫”的照片必须看起来像“猫”。因而,它可能导致生成的图像中没有理论的对象,但款式看起来却很类似。
  • GANs 须要很长时间来训练。一个 GAN 在单个 GPU 上可能须要几个小时,而单个 CPU 可能须要一天以上的工夫。

基于流的模型

基于流的生成模型是准确的对数似然模型,有易解决的采样和潜在变量推理。基于流的模型将一堆可逆变换利用于来自先验的样本,以便能够计算察看的准确对数似然。与前两种算法不同,该模型显式地学习数据分布,因而损失函数是负对数似然。

在非线性独立重量剖析中,流模型 f 被结构为一个将高维随机变量 x 映射到规范高斯潜变量 z =f(x)的可逆变换。流模型设计的要害思维是它能够是任意的双射函数,并且能够通过叠加各个简略的可逆变换来造成。总结来说:流模型 f 是由组成一系列的可逆流动作为 f(x) =f1◦···◦fL(x),与每个 fi 有一个可解决的逆和可解决的雅可比矩阵行列式。

基于流的模型有两大类: 带有标准化流模型和带有试图加强根本模型性能的自回归流的模型。

标准化流模型

对于许多机器学习问题来说,可能进行良好的密度估计是必不可少的。然而它在实质上是简单的: 当咱们须要在深度学习模型中进行反向流传时,嵌入的概率分布须要足够简略,这样才能够无效地计算导数。传统的解决方案是在潜变量生成模型中应用高斯分布,只管大多数事实世界的散布要简单得多。标准化流 (NF) 模型,如 RealNVP 或 Glow,提供了一个强壮的散布近似。他们通过利用一系列可逆变换函数将一个简略的散布转化为一个简单的散布。通过一系列的变换,依据变量变换定理,能够重复地用新变量替换原变量,最初失去最终目标变量的概率分布。

自回归流的模型

当标准化流中的流动变换被框定为一个自回归模型,其中向量变量中的每个维度都处于先前维度的条件下,流模型的这种变动称为自回归流。与具备标准化流程的模型相比,它向前迈进了一步。

罕用的自回归流模型是用于图像生成的 PixelCNN 和用于一维音频信号的 WaveNet。它们都由一堆因果卷积组成——卷积运算思考到程序: 在特定工夫戳的预测只应用过来察看到的数据。在 PixelCNN 中,因果卷积由一个带掩码的积核执行。而 WaveNet 将输入通过几个工夫戳转移到将来工夫。

基于流的模型在概念上对简单散布的建模是十分敌对的,但与最先进的自回归模型相比,它受到密度估计性能问题的限度。只管流模型最后可能会代替 GANs 产生良好的输入,但它们之间的训练计算成本存在显著差距,基于流的模型生成雷同分辨率的图像所需工夫是 GANs 的几倍。

总结

每一种算法在准确性和效率方面都有其长处和局限性。尽管 GANs 和基于流程的模型通常生成比 VAE 更好或更靠近实在的图像,但后者比基于流程的模型更具备更快工夫和更好的参数效率,上面就是三个模型的比照总结:

能够看到 GAN 因为并行所以它的效率很高,但它并不可逆。相同,流模型是可逆的然而效率却不高,而 vae 是可逆并且高效的,但不能并行计算。咱们能够依据这些个性,在理论应用时依据产出、训练过程和效率之间进行衡量抉择。

https://avoid.overfit.cn/post/a0d01a1c00184d559aeb426a77b163b3

作者:sciforce

退出移动版