aoi学院

Aisaka's Blog, School of Aoi, Aisaka University

深度学习-VAE与GAN的关系

VAE 与 GAN 的关系

VAE(Variational Auto-Encoder)和 GAN(Ganerative Adversarial Networks)都是生成模型(Generative model)。

所谓生成模型,即能生成样本的模型。我们可以将训练集中的数据点看作是某个随机分布抽样出来的样本,比如:MNIST 手写体样本,我们就可将每一幅图像看作是一个随机分布 p(x) 的抽样(实例)。

如果我们能够得到这样的一个随机模型,我们就可以无限制地生成样本,再无采集样本的烦恼。但这个随机分布 p(x) 我们并不知道,需要通过对训练集的学习来得到它,或者逼近它。

要逼近一个随机分布,其基本思想是:将一个已知的,可控的随机分布 q(z) 映射到目标随机分布 p(x) 上。在深度学习领域中,有两个典型的生成模型:VAE,变分自编码器;GAN,生成对抗性网络。它们的结构如图 1、图 2:

图 1 VAE 结构图

图 2 GAN 结构图

VAE 的工作流程是:

  1. 在训练集(Dataset)中抽样,得到样本x_i,x_i经过神经网络编码器(NN Encoder)得到一个正态分布(N(μ_i, (σ_i)^2))的充分统计量:均值(以图 1 为例进行解释,μ_i = (m1, m2, m3))和方差(σ_i = (σ1, σ2, σ3))
  2. 由 N(μ_i, (σ_i)^2) 抽样得到 z_i, 已知 z_i 的分布是标准正态分布 N(0, 1)
  3. z_i 经过 NN_Decoder 得到输出x_i
  4. Loss = ‖x^i−xi‖,训练过程就是让 Loss 取得最小值
  5. 训练好的模型,我们可以利用 Decoder 生成样本,即将已知分布 q(z) 的样本通过 Decoder 映射成目标 p(x) 分布的样本

以上过程可以用图 3 进行概括。

图 3 VAE 原理图

为比较 VAE 和 GAN 的差异,参考图 4,简述 GAN 的工作原理如下:

  1. 在一个已知的、可控的随机分布 q(z) (e.g.: 多维正态分布 q(z)=N(μ,σ^2))采样,得到z_i
  2. zi 经过生成器映射 G(z_i) 得到在样本空间(高维空间)的一个数据点 x^g_i,有 x^g_i = G * (z_i)
  3. x^g_i 与样本流型(Manifolds)之间的距离在图中表示为 D = ‖x^g_i−x^^g_i‖,其中 x^^g_i 表示 x^g_i 在流型上的投影,生成器的目标是减少此距离,可以将此距离定义为生成器的损失(Loss)
  4. 因为不能直接得到样本的流型,因而需要借助判别器 (Discriminator) 间接地告诉生成器(Generator)它生成的样本距样本流型是 “远了” 还是“近了”,即判别真(real)和假(fake)正确的概率,一方面要判别器提高判别准确性,一方面又要提高生成器的以假乱真的能力,由此形成了竞争导致的均衡,使判别器和生成器两者性能同时提高,最后我们可获得最优的生成器
  5. 理想的最优生成器,能将生成的 x^g_i 映射到样本分布的流型中(即图中阴影部分)

图 4 GAN 原理

由 GAN 的生成过程,我们可以很直观地得到两个 GAN 缺陷的解释(详细分析可见《Wasserstein GAN》):

  1. 模型坍塌(Model collapse)
    GAN 只要求将 x^g_i 映射至离样本分布流型尽可能近的地方,却不管是不是同一个点,于是生成器有将所有 z_i 都映射为一点的倾向,于是模型坍塌就发生了。
  2. 不收敛 由于生成器的 Loss 依赖于判别器 Loss 后向传递,而不是直接来自距离 D = ‖x^g_i−x^^g_i‖ ,因而若判别器总是能准确地判别出真假,则向后传递的信息就非常少(体现为梯度为 0),则生成器便无法形成自己的 Loss,因而便无法有效地训练生成器。正是因为这个原因,《Wasserstein GAN》才提出了一个新的距离定义(Wasserstein Distance)应用于判别器,而不是原型中简单粗暴的对真伪样本的分辨正确的概率。Wasserstein Distance 所针对的就是找一个方法来度量 D = ‖x^g_i−x^^g_i‖

比较 VAE 与 GAN 的效果,我们可以得到以下两点:

  • GAN 生成的效果要优于 VAE
    我认为GAN和VAE的一个本质区别就是loss的区别
    VAE是pointwise loss,一个典型的特征就是pointwise loss常常会脱离数据流形面,因此看起来生成的图片会模糊
    GAN是分布匹配的loss,更能贴近流行面,看起来就会清晰
    但分布匹配的难度较大,一个例子就是经常发生mode collapse问题,小分布丢失,而pointwise loss就没有这个问题,可以用于做初始化或做纠正,因此发展了一系列GAN+VAE的工作
    VAE 是一个在数学上具有完美证明的模型,其优化目标和过程都是显式的。由于 VAE 设计的强预设性,其优化过程强制性地把数据拟合到有限维度的混合高斯或者其他分布上,这导致两个结果:
    1. 映射过程中必然导致信息损失,特别是次要信息的损失
    2. 不符合预设分布的信息的编码和恢复效果差,如果强制性的把这样的分布投射到高斯分布上,就必然导致模糊
      对应地,GAN 的训练中没有这样的强预设,它是通过判别器网络来进行优化的,让生成器产生数据的分布直接拟合训练数据的分布,而对具体的分布没有特别的要求。
  • GAN 比 VAE 要难于训练
    文章:Variational Inference: A Unified Framework of Generative Models and Some Revelations,为两个生成模型建立了统一的框架,并提出一种为训练 Generator 而设计的正则项原理,它可以作为《Wasserstein GAN》的一个补充,因为 WGAN 给出的是 GAN 判别器 Loss 的改进意见,而该文却是对生成器下手,提出生成器的一个正则项原则。

参考资料

https://www.cnblogs.com/jiading/articles/13174298.html