机器之心专栏
本专栏由机器之心SOTA!模型资源站出品,每周日于机器之心公众号持续更新。
本专栏将逐一盘点自然语言处理、计算机视觉等领域下的常见任务,并对在这些任务上取得过 SOTA 的经典模型逐一详解。前往 SOTA!模型资源站(sota.jiqizhixin.com)即可获取本文中包含的模型实现代码、预训练模型及 API 等资源。
本文将分 2 期进行连载,共介绍 16 个在图像生成任务上曾取得 SOTA 的经典模型。
- 第 1 期:ProGAN、StyleGAN、StyleGAN2、StyleGAN3、VDVAE、NCP-VAE、StyleGAN-xl、Diffusion GAN
- 第 2 期:WGAN、SAGAN、BIG-GAN、CSGAN、LOGAN、UNet-GAN、IC-GAN、ADC-GAN
您正在阅读的是其中的第 2 期。前往 SOTA!模型资源站(sota.jiqizhixin.com)即可获取本文中包含的模型实现代码、预训练模型及 API 等资源。
第1期回顾:ProGAN、StyleGAN、Diffusion GAN…你都掌握了吗?一文总结图像生成必备经典模型(一)
本期收录模型速览
模型 | SOTA!模型资源站收录情况 | 模型来源论文 |
WGAN | https://sota.jiqizhixin.com/project/wgan-gp 收录实现数量:96 支持框架:TensorFlow、PyTorch |
Improved Training of Wasserstein GANs |
SAGAN | https://sota.jiqizhixin.com/project/sagan-2 收录实现数量:43 支持框架:TensorFlow、PyTorch |
Self-Attention Generative Adversarial Networks |
BIG-GAN | https://sota.jiqizhixin.com/project/biggan 收录实现数量:29 支持框架:TensorFlow、PyTorch |
Large Scale GAN Training for High Fidelity Natural Image Synthesis |
CSGAN | https://sota.jiqizhixin.com/project/csgan 收录实现数量:1 支持框架:PyTorch |
CSGAN: Cyclic-Synthesized Generative Adversarial Networks for Image-to-Image Transformation |
LOGAN | https://sota.jiqizhixin.com/project/logan-ngd 收录实现数量:2 支持框架:PyTorch |
LOGAN: Latent Optimisation for Generative Adversarial Networks |
UNet-GAN | https://sota.jiqizhixin.com/project/u-net-gan 收录实现数量:1 支持框架:PyTorch |
A U-Net Based Discriminator for Generative Adversarial Networks |
IC-GAN | https://sota.jiqizhixin.com/project/ic-gan 收录实现数量:1 支持框架:PyTorch |
Instance-Conditioned GAN |
ADC-GAN | https://sota.jiqizhixin.com/project/adc-gan 收录实现数量:1 支持框架:PyTorch |
Conditional GANs with Auxiliary Discriminative Classifier |
生成模型是一种训练模型进行无监督学习的模型,即,给模型一组数据,希望从数据中学习到信息后的模型能够生成一组和训练集尽可能相近的数据。图像生成(Image generation,IG)则是指从现有数据集生成新的图像的任务。图像生成模型包括无条件生成和条件性生成两类,其中,无条件生成是指从数据集中无条件地生成样本,即p(y);条件性图像生成是指根据标签有条件地从数据集中生成样本,即p(y|x)。
图像生成也是深度学习模型应用比较广泛、研究程度比较深的一个主题,大量的图像库也为SOTA模型的训练和公布奠定了良好的基础。在几个著名的图像生成库中,例如CIFAR-10、ImageNet64、ImageNet32、STL-10、CelebA 256、CelebA64等等,目前公布出的最好的无条件生成模型有StyleGAN-XL、Diffusion ProjectedGAN;在ImageNet128、TinyImageNet、CIFAR10、CIFAR100等库中,效果最好的条件性生成模型则是LOGAN、ADC-GAN、StyleGAN2等。
我们在这篇文章中介绍图像生成必备的TOP模型,从无条件生成模型和条件性生成模型两个类别分别介绍。图像生成模型的发展非常快,所以与其它几个topic不同,图像生成中必备的TOP模型介绍主要以近两年的SOTA模型为主。
一、条件性生成模型
1.1 WGAN
WGAN即Wasserstein GAN。GAN网络训练的重点在于均衡生成器G与鉴别器D:若鉴别器太好,loss不再下降,则生成器就学不到东西,也就无法继续提升生成图像的质量。所以在原始GAN的(近似)最优判别器下,生成器loss面临着梯度消失、梯度不稳定、对多样性与准确性惩罚不平衡导致的mode collapse等一系列问题。问题的根源是:
1)等价优化的距离衡量(JS散度)不合理;
2)生成器随机初始化后的生成分布很难与真实分布重叠。
WGAN就是为解决上述两个GAN的问题而提出的,即,引入Wasserstein距离衡量两个分布之间的Wasserstein距离,从而实现即使两个分布没有任何重叠,也可以反应他们之间的距离。由于Wasserstein距离相对KL散度与JS 散度具有优越的平滑特性,理论上可以解决梯度消失问题。WGAN最小化一个合理而有效的EM( Earth Mover)距离的近似值。
WGAN与原始GAN第一种形式相比,只改了四点:
1)鉴别器的最后一层中去掉了sigmoid,鉴别器要拟合的是Wasserstein距离,所以不是一个0或1的分类问题,而是回归问题,取值不限于0到1;
2)生成器和鉴别器的loss不取log;
3)每次更新鉴别器的参数之后把它们的值截断到不超过一个固定常数c,即令鉴别器的函数是一个Lipschitz函数,函数的导数小于某个固定的c值;
4)不使用基于动量的优化算法(包括momentum和 Adam),推荐RMSProp。
与原始的GAN相比,WGAN的鉴别器D的作用是一个EM距离的计量器,因此鉴别器越准确,对生成器越有利,可以在训练一个Step时训练D多次,训练G一次,从而获得较为准确的EM距离估计。WGAN的算法流程如下述Algorithm 1。
当前 SOTA!平台收录WGAN共 96 个模型实现资源。
项目 | SOTA!平台项目详情页 |
WGAN | 前往SOTA!模型平台获取实现资源:https://sota.jiqizhixin.com/project/wgan-gp |