abstract

大多数条件生成任务在给定单个条件情况下,需要不同的输出。然而,条件生成对抗网络(conditional generative adversarial networks ,CGAN)通常只关注先验条件信息,而忽略输入噪声向量,这会导致输出变化。最近解决CGAN模式崩溃问题的尝试通常是特定于任务的,并且计算成本很高。在这项工作中,我们提出了一个简单而有效的正则化项来解决CGAN的模式崩溃问题。该方法明确地最大化了生成的图像与相应的潜在代码之间的距离比,从而鼓励生成器在训练期间探索更多的次要模式。这种寻求模式(Mode Seeking)的正则化项很容易适用于各种条件生成任务,而无需增加训练开销或修改原始网络结构。我们在三个条件图像合成任务上验证了所提出的算法,包括条件生成、图像到图像的翻译和不同基线模型下的文本到图像的合成。定性和定量结果都证明了所提出的正则化方法,在不损失质量的情况下有效的改善输出多样性。
categorical generation, image-to-image translation, text-to-image synthesis with differentbaselinemodels

image.png


Illustration of motivation

动机说明
真实的数据分布包含多种模式样本。然而,当模式崩溃发生时,Generators 只能产生少数几个模式的样本。从模式崩溃(model collapse)时的数据分布可以看出,对于潜在向量 z1和 z2,当两个潜在向量之间的距离减小时,它们映射图像 I1和 I2之间的距离将不成比例地缩短。我们在右边显示了图像之间的距离与相应的潜在向量之间的距离的比值,发现一个反常的情况(红色数值) ,在这里模式崩溃发生。这一观察激励我们明确地利用这个比率作为培训目标。

Diverse Conditional Image Synthesis
Mode Seeking GANs
image.png
Z是隐式空间(lantent space),z是隐空间的一个向量,I是生成数据样本。
当模式坍塌发生时,映射的数据被压缩成几个模式。此外,当z1和z2距离较近时,I1和I2,容易生成一个模式样本。
为了解决这个问题,提出了一个模式搜索正则化项(mode seeking regularization term),以直接最大化G(c,z1)和G(c,z2)之间的距离与z1和z2之间的距离之比,公式如下
image.png

我们将提出的方法命名为 Mode Seeking GANs (MSGANs)

其中d(⋅)表示距离计算,文中具体使用的是L1 norm。


FID 用于评价生成图像的质量
LPIPS 用于评价生成图像的多样性
NDB 和 JSD 用于评价真实图像分布与生成图像分布的相似度


生成效果


image.png
image.png
image.png

Experiment

image.png

代码

  1. def update_G(self):
  2. self.gen_opt.zero_grad()
  3. self.loss_G_GAN = self.backward_G(self.D, self.fake_image1, self.label_one_hot)+ \
  4. self.backward_G(self.D, self.fake_image2, self.label_one_hot)
  5. # mode seeking loss
  6. lz = torch.mean(torch.abs(self.fake_image2 - self.fake_image1)) / torch.mean(
  7. torch.abs(self.z_random2 - self.z_random))
  8. eps = 1 * 1e-5
  9. self.loss_lz = 1 / (lz + eps)
  10. self.loss_G = self.loss_G_GAN + self.loss_lz
  11. self.loss_G.backward()
  12. self.gen_opt.step()