GAN万字长文综述

本文全面介绍了生成对抗网络(GAN)的基础知识,包括GAN的基本概念、目标函数、模型结构、训练障碍及解决方案,以及与其他生成式模型的对比。文章深入探讨了GAN的隐空间理解,展示了GAN在图像生成、序列生成、半监督学习和域适应等领域的广泛应用,并列举了多个实例。最后,文章讨论了GAN的评价指标、与强化学习的关系、优缺点和未来研究方向。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

生成对抗网络(GAN,Generative Adversarial Networks)作为一种优秀的生成式模型,引爆了许多图像生成的有趣应用。GAN相比于其他生成式模型,有两大特点:

  • 不依赖任何先验假设。传统的许多方法会假设数据服从某一分布,然后使用极大似然去估计数据分布。关于这点,我们后面还会讲到,没懂的同学先不用着急。

  • 生成real-like样本的方式非常简单。GAN生成real-like样本的方式通过生成器(Generator)的前向传播,而传统方法的采样方式非常复杂,有兴趣的同学可以参考下周志华老师的《机器学习》一书中对各种采样方式的介绍。

这篇综述主要参考最新的一篇有关GAN综述的paper[1],详细探讨了GAN的各种细节,以及改进,应用。本文对于论文内容做了一些调整以及补充,方便入门的同学阅读。目录如下(吐槽下简书竟然不支持markdown目录,csdn又广告太多,某乎markdown体验又差。要找一个好用的编辑器真是难!):


1794530-7e81ec64a8c9dee7.png

1794530-89ef94d66d9678c3.png

1794530-450f1c560c1f2099.png

文中许多内容大都根据自己所学总结,有不当之处欢迎指出。此外,本文参考了许多博客资料,已给出参考链接。如有侵权,请私信删除。

1. GAN的基本介绍

1.1 GAN的基本概念

GAN(Generative Adversarial Networks)从其名字可以看出,是一种生成式的,对抗网络。再具体一点,就是通过对抗的方式,去学习数据分布的生成式模型。所谓的对抗,指的是生成网络和判别网络的互相对抗。生成网络尽可能生成逼真样本,判别网络则尽可能去判别该样本是真实样本,还是生成的假样本。示意图如下:


1794530-d29ca1c6d5c30419.png
GAN overview.png

隐变量(通常为服从高斯分布的随机噪声)通过Generator生成, 判别器负责判别输入的data是生成的样本还是真实样本。优化的目标函数如下:

对于判别器D来说,这是一个二分类问题,为二分类问题中常见的交叉熵损失。对于生成器G来说,为了尽可能欺骗D,所以需要最大化生成样本的判别概率,即最小化,一项与生成器G无关,可以忽略。

实际训练时,生成器和判别器采取交替训练,即先训练D,然后训练G,不断往复。值得注意的是,对于生成器,其最小化的是,即最小化的最大值。为了保证取得最大值,所以我们通常会训练迭代k次判别器,然后再迭代1次生成器(不过在实践当中发现,k通常取1即可)。当生成器G固定时,我们可以对求导,求出最优判别器:

把最优判别器代入上述目标函数,可以进一步求出在最优判别器下,生成器的目标函数等价于优化的JS散度(JSD, Jenson Shannon Divergence)。

可以证明,当G,D二者的capacity足够时,模型会收敛,二者将达到纳什均衡。此时,,判别器不论是对于还是中采样的样本,其预测概率均为,即生成样本与真实样本达到了难以区分的地步。

1.2 目标函数

前面我们提到了GAN的目标函数是最小化两个分布的JS散度。实际上,衡量两个分布距离的方式有很多种,JS散度只是其中一种。如果我们定义不同的距离度量方式,就可以得到不同的目标函数。许多对GAN训练稳定性的改进,比如EBGAN,LSGAN等都是定义了不同的分布之间距离度量方式。

1.2.1 f-divergence

f-divergence使用下面公式来定义两个分布之间的距离:

上述公式中为凸函数,且。采用不同的f函数(Generator),可以得到不同的优化目标。具体如下:

1794530-a02d21b863223508.png
f-divergence.png

值得注意的是,散度这种度量方式不具备对称性,即和不相等。

LSGAN

上面提到,LSGAN是f-divergence中时的特殊情况。具体来说LSGAN的Loss如下:

原作中取。LSGAN有两大优点2

  • 稳定训练:解决了传统GAN训练过程中的梯度饱和问题
  • 改善生成质量:通过惩罚远离判别器决策边界的生成样本来实现

对于第一点,稳定训练,可以先看一张图:

1794530-18254004b5e499c6.png
lsgan loss compare.png

上图左边是传统GAN使用sigmoid交叉熵作为loss时,输入与输出的对照关系图。上图右边是LSGAN使用最小二乘loss时,输入与输出的对照关系图。可以看到,在左图,输入比较大的时候,梯度为0,即交叉熵损失的输入容易出现梯度饱和现象。而右边的最小二乘loss则不然。

对于第二点,改善生成质量。这个在原文也有详细的解释。具体来说:对于一些被判别器分类正确的样本,其对梯度是没有贡献的。但是判别器分类正确的样本就一定是很接近真实数据分布的样本吗?显然不一定。

考虑如下理想情况,一个训练良好的GAN,真实数据分布和生成数据分布完全重合,判别器决策面穿过真实数据点,所以,可以利用样本点离决策面的远近来度量生成样本的质量。

1794530-0c838fa6e81c9e41.png
lsgan决策面示意图.png

上图b中,一些离决策面比较远的点,虽然被分类正确,但是这些并不是好的生成样本。传统GAN通常会将其忽略。而对于LSGAN,由于采用最小二乘损失,计算决策面到样本点的距离,如图c,可以把离决策面比较远的点“拉”回来,也就是把离真实数据比较远的点“拉”回来。

1.2.2 Integral probality metric(IPM)

IPM定义了一个评价函数族,用于度量任意两个分布之间的距离。在一个紧凑的空间中,定义为在上的概率测度。那么两个分布,之间的IPM可以定义为如下公式:

类似于f-divergence,不同函数也可以定义出一系列不同的优化目标。典型的有WGAN,Fisher GAN等。下面简要介绍一下WGAN。

WGAN

WGAN提出了一种全新的距离度量方式——地球移动距离(EM, Earth-mover distance),也叫Wasserstein距离。具体定义如下:

表示一组联合分布,这组联合分布里的任一分布的边缘分布均为和。

直观上来说,概率分布函数(PDF&#x

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值