Generative Adversarial Nets由伊恩·古德费洛(Ian J.Goodfellow)等人于2014年发表在Conference on Neural Information Processing Systems (NeurIPS)上。NeurIPS是机器学习和计算神经科学领域的顶级国际学术会议之一。
论文地址:styleGAN styleGAN2
图像生成是生成模型的基本问题,GAN相对先前的生成模型能够生成更高图像质量的图像。如生成逼真的人脸图像。https://thispersondoesnotexist.com是一个叫做‘这个人不存在’的网站,它是基于GAN的一个随机人脸生成网站,每次刷新该网站都将生成一个不同的人脸。
论文地址:SRGAN
将图像放大时,图片会变得模糊。使用GAN将32*32的图像扩展为64*64的真实图像,放大图像的同时提升图片的分辨率。
论文地址:CycleGAN
CycleGAN,即循环生成对抗网络,出自发表于 ICCV17 的论文《Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks》,和它的兄长Pix2Pix(均为朱大神作品)一样,用于图像风格迁移任务。以前的GAN都是单向生成,CycleGAN为了突破Pix2Pix对数据集图片一一对应的限制,采用了双向循环生成的结构,因此得名CycleGAN。
生成对抗网络(GANs)在多个领域都取得了显著的成就,其灵活性和强大的生成能力使其能够应用于各种应用。
图像生成与转换:
人脸生成和编辑:
图像修复和超分辨率:
生成式艺术:
医学图像生成与分割:
风格迁移和设计:
文本生成:
无监督学习和数据增强:
pix2pix: https://affinelayer.com/pixsrv/
DiscoGAN:https://github.com/carpedm20/DiscoGAN-pytorch
TPGAN: https://arxiv.org/pdf/1704.04086.pdf
pix2pix HD:https://tcwang0509.github.io/pix2pixHD/
stackGAN: https://arxiv.org/pdf/1612.03242.pdf
AttnGAN:https://arxiv.org/abs/1711.10485
DTN:https://arxiv.org/pdf/1611.02200.pdf
MGAN: https://arxiv.org/pdf/1604.04382.pdf
Age-cGAN:https://arxiv.org/pdf/1702.01983.pdf
StarGAN:https://arxiv.org/abs/1711.09020
Image Inpainting:https://arxiv.org/abs/1804.07723
MaskGAN:https://arxiv.org/abs/1801.07736
生成对抗网络(GAN)由两个主要部分组成:生成器(Generator)和判别器(Discriminator)。这两个部分通过对抗的方式共同学习,使得生成器能够生成逼真的数据,而判别器能够区分真实数据和生成器生成的数据。
在统计学眼中,整个世界是通过采样各种不同的分布得到的。
生成模型:对整个数据的分布进行建模,使得能够生成各种分布。
生成图片、生成文本、生成各种东西就是去抓住整个数据的一个分布。
生成器(Generator):
判别器(Discriminator):
论文提到深度学习的前景是发现丰富的分层模型,这些模型代表了AI应用中遇到的各种数据的概率分布。即深度学习不仅仅是深度神经网络,更多的是对整个数据分布的一个特征的表示。
深度学习在辨别上做的不错,但在生成上的效果不好,难点在于去最大化似然函数时,我们要对概率函数很多近似,近似带来了很大的计算困难。这篇文章的关键是不用近似似然函数而可以用别的方法来得到一个计算上更好的模型
作者在文中做了一个形象的比喻:将生成器比作一个生产假币的造假者,而判别模型类似于警察,试图检测假币。造假者和警察会不断学习,造假者提升自己造假的手段,警察会提升自己判别真假币的能力。最后希望得到这样一个结果:造假者获胜,造的假钱跟真的一样,使得警察无法区分真币假币。
该框架可以针对多种模型和优化算法给出具体的训练算法。在本文中,我们探究了生成模型通过多层感知机传递随机噪声生成样本时的特殊情况,而判别模型也是多层感知机。我们把这种特殊情况称为adversarial nets。在这种情况下,我们可以只使用非常成功的反向传播和dropout算法来训练这两个模型,也可以只使用前向传播从生成模型中采样。不需要任何近似推断或马尔可夫链。
在这一部分,作者提到之前的大多数关于深度生成模型的工作:一个是构造出一个分布函数,然后提供参数供其学习,学习出真实的分布,明白其均值、方差到底是什么。一个是不去构造分布函数,而是学一个模型来近似这个分布,但是不知道最后的分布是怎样的,算起来较容易。
随后提到他们观察到的一个结果:对 f f f的期望求导,等价于对 f f f自己求导。这也就是为什么他们使用误差反向传播的原因。
之后作者提到了一些相关的工作,包括VAE、NCE,并解释了与predictability minimization算法的区别
发现这里有总结的较好的,后续可以查看这里:https://blog.csdn.net/qq_45138078/article/details/128366117
训练不稳定:外层循环迭代N次直到完成,如何判断是否收敛,这里有两项,一个是往上走(max),一个是往下走(min),有两个模型,所以如何判断收敛并不容易。整体来说,GAN的收敛是非常不稳定的。
判别器训练得太好:在价值函数中,等式右边的第二项存在一定的问题:在早期的时候G比较弱,生成的数据跟真实的数据差得比较远,这就很容易将D训练的特别好(D能够完美地区分开生成的数据和真实的数据),就导致log(1-D(G(z)))会变成0,求梯度再更新G的时候,就会发现求不动了。
随着OpenAI发布DALL-E 2,自回归模型和扩散模型一夜之间成为大规模生成模型的新标准,而在此之前,生成对抗网络(GAN)一直都是主流选择,并衍生出StyleGAN等技术。
扩散模型:当前DALL-E, Midjourney, Stable Diffusion图片生成的核心都是Diffusion Model,它就是通过不停去除噪音期望获得好结果的生成模型。
扩散模型只需要训练一个模型,优化过程更加稳定。
扩散模型在条件生成任务上确实要优于GAN,特别是在生成的多样性方面。
扩散模型的训练过程相对简单,优化更为容易。
两阶段扩散模型可以进一步提高生成图片的质量,其效果通常超过了单一的GAN模型
针对增加StyleGAN架构容量会导致不稳定的问题,来自浦项科技大学(韩国)、卡内基梅隆大学和Adobe研究院的研究人员提出了一种全新的生成对抗网络架构GigaGAN,打破了模型的规模限制,展示了 GAN 仍然可以胜任文本到图像合成模型。(https://arxiv.org/abs/2303.05511)