TF2 GAN篇之GAN原理及推导【附WGAN代码和数据集】

TF2 GAN篇之GAN原理及推导

相关文章导航



GAN的起源

在生成对抗网络(Generative Adversarial Network,简称GAN)发明之前,变分自编码器被认为是理论完备,实现简单,使用神经网络训练起来很稳定,生成的图片逼近度也较高,但是人眼还是可以很轻易地分辨出真实图片与机器生成的图片。

2014 年,Université de Montréal 大学Yoshua Bengio(2019 年图灵奖获得者)的学生IanGoodfellow 提出了生成对抗网络GAN [1],从而开辟了深度学习最炙手可热的研究方向之一。从2014 年到2019 年,GAN 的研究稳步推进,研究捷报频传,最新的GAN 算法在图片生成上的效果甚至达到了肉眼难辨的程度,着实令人振奋。由于GAN 的发明,Ian
Goodfellow 荣获GAN 之父称号,并获得2017 年麻省理工科技评论颁发的35 Innovators
Under 35 奖项。如图展示了从2014 年到2018 年,GAN 模型取得了非凡的效果,可以看到不管是图片大小,还是图片逼真度,都有了巨大的提升。

在这里插入图片描述

接下来,我们将从生活中博弈学习的实例出发,一步步引出GAN 算法的设计思想和模型结构。

博弈学习实例

我们用一个漫画家的成长轨迹来形象介绍生成对抗网络的思想。考虑一对双胞胎兄弟,分别称为老二G 和老大D,G 学习如何绘制漫画,D 学习如何鉴赏画作。还在娃娃时代的两兄弟,尚且只学会了如何使用画笔和纸张,G 绘制了一张不明所以的画作,如图(a)所示,由于此时D 鉴别能力不高,觉得G 的作品还行,但是人物主体不够鲜明。在D 的指引和鼓励下,G 开始尝试学习如何绘制主体轮廓和使用简单的色彩搭配。
注: 字母D其实就算代表discriminator 字母G其实就算代表Generator

一年后,G 提升了绘画的基本功,D 也通过分析名作和初学者G 的作品,初步掌握了鉴别作品的能力。此时D 觉得G 的作品人物主体有了,如第二张图(b),但是色彩的运用还不够成熟。数年后,G 的绘画基本功已经很扎实了,可以轻松绘制出主体鲜明、颜色搭配合适和逼真度较高的画作,如第三张图©,但是D 同样通过观察G 和其它名作的差别,提升了画作鉴别能力,觉得G 的画作技艺已经趋于成熟,但是对生活的观察尚且不够,作品没有传达神情且部分细节不够完美。又过了数年,G 的绘画功力达到了炉火纯青的地步,绘制的作品细节完美、风格迥异、惟妙惟肖,宛如大师级水准,如第4张图(d),即便此时的D 鉴别功力也相当出色,亦很难将G 和其他大师级的作品区分开来。

在这里插入图片描述

在原始的GAN 论文中,Ian Goodfellow 使用了另一个形象的比喻来介绍GAN 模型:生成器网络G 的功能就是产生一系列非常逼真的假钞试图欺骗鉴别器D,而鉴别器D 通过学习真钞和生成器G 生成的假钞来掌握钞票的鉴别方法。这两个网络在相互博弈的过程中间同步提升,直到生成器G 产生的假钞非常的逼真,连鉴别器D 都真假难辨。

这种博弈学习的思想使得GAN 的网络结构和训练过程与之前的网络模型略有不同,下面我们来详细介绍GAN 的网络结构和算法原理。

GAN 原理

1. 网络结构

生成对抗网络包含了两个子网络:生成网络(Generator,简称G)和判别网(Discriminator,简称D),其中生成网络G 负责学习样本的真实分布,判别网络D 负责将生成网络采样的样本与真实样本区分开来。

生成网络G(𝒛) 生成网络G 和自编码器的Decoder 功能类似,从先验分布𝑝𝒛(∙)中采样隐藏变量𝒛~𝑝𝒛(∙),通过生成网络G 参数化的𝑝𝑔(𝒙|𝒛)分布,获得生成样本𝒙~𝑝𝑔(𝒙|𝒛), 如图所示。其中隐藏变量𝒛的先验分布𝑝𝒛(∙)可以假设为某中已知的分布,比如多元均匀分布𝑧~Uniform(−1,1)。
在这里插入图片描述
𝑝𝑔(𝒙|𝒛)可以用深度神经网络来参数化,如下图 13.4 所示,从均匀分布𝑝𝒛(∙)中采样出隐藏变量𝒛,经过多层转置卷积层网络参数化的𝑝𝑔(𝒙|𝒛)分布中采样出样本𝒙𝑓。从输入输出层面来看,生成器G 的功能是将隐向量𝒛通过神经网络转换为样本向量𝒙𝑓,下标𝑓代表假样本(Fake samples)。

在这里插入图片描述
判别网络D(𝒙) 判别网络和普通的二分类网络功能类似,它接受输入样本𝒙的数据集,包含了采样自真实数据分布𝑝𝑟(∙)的样本𝒙𝑟𝑝𝑟(∙),也包含了采样自生成网络的假样本𝒙𝑓𝑝𝑔(𝒙|𝒛),𝒙𝑟和𝒙𝑓共同组成了判别网络的训练数据集。判别网络输出为𝒙属于真实样本的概率𝑃(𝒙为真|𝒙),我们把所有真实样本𝒙𝑟的标签标注为真(1),所有生成网络产生的样本𝒙𝑓标注为假(0),通过最小化判别网络D 的预测值与标签之间的误差来优化判别网络参数,如图所示

在这里插入图片描述

2. 网络训练

GAN 博弈学习的思想体现在在它的训练方式上,由于生成器G 和判别器D 的优化目标不一样,不能和之前的网络模型的训练一样,只采用一个损失函数。下面我们来分别介绍如何训练生成器G 和判别器D。

对于判别网络D,它的目标是能够很好地分辨出真样本𝒙𝑟与假样本𝒙𝑓。以图片生成为例,它的目标是最小化图片的预测值和真实值之间的交叉熵损失函数
在这里插入图片描述
其中𝐷𝜃(𝒙𝑟)代表真实样本𝒙𝑟在判别网络𝐷𝜃的输出,𝜃为判别网络的参数集,𝐷𝜃(𝒙𝑓)为生成样本𝒙𝑓在判别网络的输出,𝑦𝑟为𝒙𝑟的标签,由于真实样本标注为真,故𝑦𝑟 = 1,𝑦𝑓为生成样本的𝒙𝑓的标签,由于生成样本标注为假,故𝑦𝑓 = 0。CE 函数代表交叉熵损失函数CrossEntropy。二分类问题的交叉熵损失函数定义为:
在这里插入图片描述

以下的推导过程用手写的形式进行
在这里插入图片描述

统一目标函数

我们把判别网络的目标和生成网络的目标合并,写成min − max博弈形式:

说起来比较高大上,其实就算加起来嘿嘿

在这里插入图片描述在这里插入图片描述

GAN变种

在原始的GAN 论文中,Ian Goodfellow 从理论层面分析了GAN 网络的收敛性,并且在多个经典图片数据集上测试了图片生成的效果,如图 13.9 所示,其中图(a)为MNIST 数据,图(b)为Toronto Face 数据集,图 ( c )、图(d)为CIFAR10 数据集。

在这里插入图片描述
可以看到,原始GAN 模型在图片生成效果上并不突出,和VAE 差别不明显,此时并没有展现出它强大的分布逼近能力。但是由于GAN 在理论方面较新颖,实现方面也有很多可以改进的地方,大大地激发了学术界的研究兴趣。在接下来的数年里,GAN 的研究如火如荼的进行,并且也取得了实质性的进展。接下来我们将介绍几个意义比较重大的GAN变种。

DCGAN

最初始的GAN 网络主要基于全连接层实现生成器G 和判别器D 网络,由于图片的维度较高,网络参数量巨大,训练的效果并不优秀。DCGAN [2]提出了使用转置卷积层实现的生成网络,普通卷积层来实现的判别网络,大大地降低了网络参数量,同时图片的生成效果也大幅提升,展现了GAN 模型在图片生成效果上超越VAE 模型的潜质。此外,DCGAN 作者还提出了一系列经验性的GAN 网络训练技巧,这些技巧在WGAN 提出之前被证实有益于网络的稳定训练。

InfoGAN

InfoGAN [3]尝试使用无监督的方式去学习输入𝒙的可解释隐向量𝒛的表示方法(Interpretable Representation),即希望隐向量𝒛能够对应到数据的语义特征。比如对于MNIST 手写数字图片,我们可以认为数字的类别、字体大小和书写风格等是图片的隐藏变量,希望模型能够学习到这些分离的(Disentangled)可解释特征表示方法,从而可以通过人为控制隐变量来生成指定内容的样本。对于CelebA 名人照片数据集,希望模型可以把发型、眼镜佩戴情况、面部表情等特征分隔开,从而生成指定形态的人脸图片。分离的可解释特征有什么好处呢?它可以让神经网络的可解释性更强,比如𝒛包含了一些分离的可解释特征,那么我们可以通过仅仅改变这一个位置上面的特征来获得不同语义的生成数据,如图所示,通过将“戴眼镜男士”与“不戴眼镜男士”的隐向量相减,并与“不戴眼镜女士”的隐向量相加,可以生成“戴眼镜女士”的生成图片。

在这里插入图片描述

CycleGAN

CycleGAN 是华人朱俊彦提出的无监督方式进行图片风格相互转换的算法,由于算法清晰简单,实验效果完成的较好,这项工作受到了很多的赞誉。CycleGAN 基本的假设是,如果由图片A 转换到图片B,再从图片B 转换到A′,那么A′应该和A 是同一张图片。因此除了设立标准的GAN 损失项外,CycleGAN 还增设了循环一致性损失(CycleConsistency Loss),来保证A′尽可能与A 逼近。CycleGAN 图片的转换效果如图所示。

在这里插入图片描述

WGAN

GAN 的训练问题一直被诟病,很容易出现训练不收敛和模式崩塌的现象。WGAN 从理论层面分析了原始的GAN 使用JS 散度存在的缺陷,并提出了可以使用Wasserstein 距离来解决这个问题。在WGAN-GP [6]中,作者提出了通过添加梯度惩罚项,从工程层面很好的实现了WGAN 算法,并且实验性证实了WGAN 训练稳定的优点。

Equal GAN

从 GAN 的诞生至2017 年底,GAN Zoo 已经收集超过了214 种GAN 网络变种③。这些GAN 的变种或多或少地提出了一些创新,然而Google Brain 的几位研究员在论文中提供了另一个观点:没有证据表明我们测试的GAN 变种算法一直持续地比最初始的GAN要好。论文中对这些GAN 变种进行了相对公平、全面的比较,在有足够计算资源的情况下,发现几乎所有的GAN 变种都能达到相似的性能(FID 分数)。这项工作提醒业界是否这些GAN 变种具有本质上的创新

在 SAGAN 的基础上,BigGAN [9]尝试将GAN 的训练扩展到大规模上去,利用正交
正则化等技巧保证训练过程的稳定性。BigGAN 的意义在于启发人们,GAN 网络的训练同样可以从大数据、大算力等方面受益。BigGAN 图片生成效果达到了前所未有的高度:
Inception score 记录提升到166.5(提高了52.52);Frechet Inception Distance 下降到7.4,降低了18.65,如图所示,图片的分辨率可达512 × 512,图片细节极其逼真。
在这里插入图片描述

纳什均衡

现在我们从理论层面进行分析,通过博弈学习的训练方式,生成器G 和判别器D 分别会达到什么平衡状态。具体地,我们将探索以下两个问题:

❑ 固定 G,D 会收敛到什么最优状态𝐷∗?
❑ 在 D 达到最优状态𝐷∗后,G 会收敛到什么状态?

首先我们通过𝒙𝑟~𝑝𝑟(∙)一维正态分布的例子给出一个直观的解释。如图所示,黑色虚线曲线代表了真实数据的分布𝑝𝑟(∙),为某正态分布𝒩(𝜇, 𝜎2),绿色实线代表了生成网络学习到的分布𝒙𝑓~𝑝𝑔(∙),蓝色虚线代表了判别器的决策边界曲线,图(a)、(b)、©、(d)分别代表了生成网络的学习轨迹。在初始状态,如图(a)所示,𝑝𝑔(∙)分布与𝑝𝑟(∙)差异较大,判别器可以很轻松地学习到明确的决策边界,即图(a)中的蓝色虚线,将来自𝑝𝑔(∙)的采样点判定为0,𝑝𝑟(∙)中的采样点判定为1。随着生成网络的分布𝑝𝑔(∙)越来越逼近真实分布𝑝𝑟(∙),判别器越来越困难将真假样本区分开,如图(b)©所示。最后,生成网络学习到的分布𝑝𝑔(∙) =𝑝𝑟(∙)时,此时从生成网络中采样的样本非常逼真,判别器无法区分,即判定为真假样本的概率均等,如图(d)所示
在这里插入图片描述

判别器状态

现在来推导第一个问题。回顾GAN 的损失函数:
在这里插入图片描述
对于判别器D,优化的目标是最大化ℒ(𝐺, 𝐷)函数,需要找出函数:

在这里插入图片描述

的最大值,其中𝜃为判别器𝐷的网络参数。

我们来考虑𝑓𝜃更通用的函数的最大值情况:
在这里插入图片描述
要求得函数𝑓(𝑥)的最大值。考虑𝑓(𝑥)的导数:

在这里插入图片描述在这里插入图片描述
当对x的偏导为0时,可以求得𝑓(𝑥)函数的极值点:

在这里插入图片描述
因此,可以得知,𝑓𝜃函数的极值点同样为:
在这里插入图片描述
也就是说,判别器网络𝐷𝜃处于𝐷𝜃∗状态时,𝑓𝜃函数取得最大值,ℒ(𝐺, 𝐷)函数也取得最大
值。
现在回到最大化ℒ(𝐺, 𝐷)的问题,ℒ(𝐺, 𝐷)的最大值点在:在这里插入图片描述
时取得,此时也是𝐷𝜃的最优状态𝐷∗

生成器状态

在推导第二个问题之前,我们先介绍一下与KL 散度类似的另一个分布距离度量标准:JS 散度,它定义为KL 散度的组合:
在这里插入图片描述
JS 散度克服了KL 散度不对称的缺陷。
当 D 达到最优状态𝐷∗时,我们来考虑此时𝑝r和𝑝g的JS 散度:
在这里插入图片描述
根据 KL 散度的定义展开为:
在这里插入图片描述
合并常数项可得:
在这里插入图片描述在这里插入图片描述
考虑在判别网络到达𝐷∗时,此时的损失函数为:
在这里插入图片描述
因此在判别网络到达𝐷∗时,𝐷𝐽𝑆(𝑝𝑟||𝑝𝑔)与ℒ(𝐺, 𝐷∗)满足关系:
在这里插入图片描述

在这里插入图片描述
此时生成网络𝐺∗的状态是 : 𝑝𝑔 = 𝑝𝑟
即𝐺∗的学到的分布𝑝𝑔与真实分布𝑝𝑟一致,网络达到平衡点,此时:
在这里插入图片描述

纳什均衡点

通过上面的推导,我们可以总结出生成网络G 最终将收敛到真实分布,即:𝑝𝑔 = 𝑝𝑟

此时生成的样本与真实样本来自同一分布,真假难辨,在判别器中均有相同的概率判定为
真或假,即

𝐷(∙) = 0.5
此时损失函数为:
在这里插入图片描述

GAN 训练难题

尽管从理论层面分析了GAN 网络能够学习到数据的真实分布,但是在工程实现中,常常出现GAN 网络训练困难的问题,主要体现在GAN 模型对超参数较为敏感,需要精心挑选能使模型工作的超参数设定,同时也容易出现模式崩塌现象。

1. 超参数敏感

超参数敏感是指网络的结构设定、学习率、初始化状态等超参数对网络的训练过程影响较大,微量的超参数调整将可能导致网络的训练结果截然不同。如图 13.15 所示,图(a)为GAN 模型良好训练得到的生成样本,图(b)中的网络由于没有采用Batch Normalization层等设置,导致GAN 网络训练不稳定,无法收敛,生成的样本与真实样本差距非常大。

在这里插入图片描述

2. 模式崩塌

模式崩塌(Mode Collapse)是指模型生成的样本单一,多样性很差的现象。由于判别器只能鉴别单个样本是否采样自真实分布,并没有对样本多样性进行显式约束,导致生成模型可能倾向于生成真实分布的部分区间中的少量高质量样本,以此来在判别器中获得较高的概率值,而不会学习到全部的真实分布。模式崩塌现象在GAN 中比较常见,如图
所示,在训练过程中,通过可视化生成网络的样本可以观察到,生成的图片种类非常单一,生成网络总是倾向于生成某种单一风格的样本图片,以此骗过判别器。

在这里插入图片描述
另一个直观地理解模式崩塌的例子如图 13.17 所示,第一行为未出现模式崩塌现象的生成网络的训练过程,最后一列为真实分布,即2D 高斯混合模型;第二行为出现模式崩塌现象的生成网络的训练过程,最后一列为真实分布。可以看到真实的分布由8 个高斯模型混合而成,出现模式崩塌后,生成网络总是倾向于逼近真实分布的某个狭窄区间,如图第2 行前6 列所示,从此区间采样的样本往往能够在判别器中较大概率判断为真实样本,从而骗过判别器。但是这种现象并不是我们希望看到的,我们希望生成网络能够逼近真实的分布,而不是真实分布中的某部分。
在这里插入图片描述
那么怎么解决GAN 训练的难题,让GAN 可以像普通的神经网络一样训练较为稳定
呢?WGAN 模型给出了一种解决方案。

WGAN原理

WGAN 算法从理论层面分析了GAN 训练不稳定的原因,并提出了有效的解决方法。那么是什么原因导致了GAN 训练如此不稳定呢?WGAN 提出是因为JS 散度在不重叠的分布𝑝和𝑞上的梯度曲面是恒定为0 的。如图 13.19 所示,当分布𝑝和𝑞不重叠时,JS 散度的梯度值始终为0,从而导致此时GAN 的训练出现梯度弥散现象,参数长时间得不到更新,网络无法收敛。

接下来我们将详细阐述JS 散度的缺陷以及怎么解决此缺陷。

1.JS散度的缺陷

为了避免过多的理论推导,我们这里通过一个简单的分布实例来解释JS 散度的缺陷。考虑完全不重叠(𝜃 ≠ 0)的两个分布𝑝和𝑞,其中分布𝑝为:

∀(𝑥, 𝑦) ∈ p, 𝑥 = 𝜃, 𝑦 ∼ U(0,1)

分布𝑞为:

∀(𝑥, 𝑦) ∈ 𝑞, 𝑥 = 𝜃, 𝑦 ∼ U(0,1)

其中𝜃 ∈ 𝑅,当𝜃 = 0时,分布𝑝和𝑞重叠,两者相等;当𝜃 ≠ 0时,分布𝑝和𝑞不重叠。
在这里插入图片描述
我们来分析上述分布𝑝和𝑞之间的JS 散度随𝜃的变化情况。根据KL 散度与JS 散度的定义,计算𝜃 = 0时的JS 散度𝐷𝐽𝑆(𝑝||𝑞):

在这里插入图片描述
当𝜃 = 0时,两个分布完全重叠,此时的JS 散度和KL 散度都取得最小值,即0:
𝐷𝐾𝐿(𝑝||𝑞) = 𝐷𝐾𝐿 (𝑞||𝑝) = 𝐷𝐽𝑆(𝑝||𝑞) = 0
从上面的推导,我们可以得到𝐷𝐽𝑆(𝑝||𝑞)随𝜃的变化趋势:
在这里插入图片描述
也就是说,当两个分布完全不重叠时,无论分布之间的距离远近,JS 散度为恒定值log2,此时JS 散度将无法产生有效的梯度信息;当两个分布出现重叠时,JS 散度才会平滑变动,产生有效梯度信息;当完全重合后,JS 散度取得最小值0。如图 13.19 中所示,红色的曲线分割两个正态分布,由于两个分布没有重叠,生成样本位置处的梯度值始终为0,无法更新生成网络的参数,从而出现网络训练困难的现象。
在这里插入图片描述
因此,JS 散度在分布𝑝和𝑞不重叠时是无法平滑地衡量分布之间的距离,从而导致此位置上无法产生有效梯度信息,出现GAN 训练不稳定的情况。要解决此问题,需要使用一种更好的分布距离衡量标准,使得它即使在分布𝑝和𝑞不重叠时,也能平滑反映分布之间的真实距离变化

2. EM距离

WGAN 论文发现了JS 散度导致GAN 训练不稳定的问题,并引入了一种新的分布距离度量方法:Wasserstein 距离,也叫推土机距离(Earth-Mover Distance,简称EM 距离),它表示了从一个分布变换到另一个分布的最小代价,定义为:
在这里插入图片描述
其中Π(𝑝, 𝑞**)是分布𝑝和𝑞组合起来的所有可能的联合分布的集合**,对于每个可能的联合分布𝛾 ∼ Π(𝑝, 𝑞),计算距离‖𝑥 − 𝑦‖的期望𝔼(𝑥,𝑦)∼𝛾[‖𝑥 − 𝑦‖],其中(𝑥, 𝑦)采样自联合分布𝛾。不同的联合分布𝛾有不同的期望𝔼(𝑥,𝑦)∼𝛾[‖𝑥 − 𝑦‖],这些期望中的下确界即定义为分布𝑝和𝑞的Wasserstein 距离。其中inf{∙}表示集合的下确界,例如{𝑥|1 < 𝑥 < 3, 𝑥 ∈ 𝑅}的下确界为1。

继续考虑上图中的例子,我们直接给出分布𝑝和𝑞之间的EM 距离的表达式:

𝑊(𝑝, 𝑞) = |𝜃|

绘制出 JS 散度和EM 距离的曲线,如图所示,可以看到,JS 散度在𝜃 = 0处不连续,其他位置导数均为0,而EM 距离总能够产生有效的导数信息,因此EM 距离相对于JS 散度更适合指导GAN 网络的训练。

在这里插入图片描述

WGAN-GP

考虑到几乎不可能遍历所有的联合分布𝛾去计算距离‖𝑥 − 𝑦‖的期望𝔼(𝑥,𝑦)∼𝛾[‖𝑥 − 𝑦‖],
因此直接计算生成网络分布𝑝𝑔与真实数据分布𝑝𝑟的𝑊(𝑝𝑟, 𝑝𝑔)距离是不现实的,WGAN 作
者基于Kantorovich-Rubinstein 对偶性将直接求𝑊(𝑝𝑟, 𝑝𝑔)转换为求:
在这里插入图片描述
其中𝑠𝑢𝑝{∙}表示集合的上确界,||𝑓||𝐿 ≤ 𝐾表示函数𝑓: 𝑅 → 𝑅满足K-阶Lipschitz 连续性,即
满足
在这里插入图片描述
于是,我们使用判别网络𝐷𝜃(𝒙)参数化𝑓(𝒙)函数,在𝐷𝜃满足1 阶-Lipschitz 约束的条件下,即𝐾 = 1,此时:

在这里插入图片描述
因此求解𝑊(𝑝𝑟, 𝑝𝑔)的问题可以转化为:

在这里插入图片描述
这就是判别器D 的优化目标。判别网络函数𝐷𝜃(𝒙)需要满足1 阶-Lipschitz 约束:∇𝒙̂𝐷(𝒙̂) ≤ 𝐼
在 WGAN-GP 论文中,作者提出采用增加梯度惩罚项(Gradient Penalty)方法来迫使判别网络满足1 阶-Lipschitz 函数约束,同时作者发现将梯度值约束在1 周围时工程效果更好,因此梯度惩罚项定义为: GP ≜ 𝔼𝒙̂∼𝑃𝒙̂ [(‖𝛻𝒙̂𝐷(𝒙̂)‖2 − 1)2]

因此 WGAN 的判别器D 的训练目标为:
在这里插入图片描述
其中𝒙̂来自于𝒙𝑟与𝒙𝑟的线性差值:

𝑥̂ = 𝑡𝒙𝑟 + (1 − 𝑡)𝒙𝑓 , 𝑡 ∈ [0,1]

判别器 D 的目标是最小化上述的误差ℒ(𝐺, 𝐷),即迫使生成器G 的分布𝑝𝑔与真实分布𝑝𝑟之间EM 距离𝔼𝒙𝑟∼𝑝𝑟[𝐷(𝒙𝑟)]−𝔼𝒙𝑓∼𝑝𝑔 [𝐷(𝒙𝑓)]项尽可能大,‖𝛻𝒙̂𝐷(𝒙̂)‖2逼近于1。

WGAN 的生成器G 的训练目标为
在这里插入图片描述

即使得生成器的分布𝑝𝑔与真实分布𝑝𝑟之间的EM 距离越小越好。考虑到𝔼𝒙𝑟∼𝑝𝑟[𝐷(𝒙𝑟)]一项与生成器无关,因此生成器的训练目标简写为:
在这里插入图片描述
从实现来看,判别网络D 的输出不需要添加Sigmoid 激活函数,这是因为原始版本的判别器的功能是作为二分类网络,添加Sigmoid 函数获得类别的概率;而WGAN 中判别器作为EM 距离的度量网络,其目标是衡量生成网络的分布𝑝𝑔和真实分布𝑝𝑟之间的EM 距离,属于实数空间,因此不需要添加Sigmoid 激活函数。在误差函数计算时,WGAN 也没有log 函数存在。在训练WGAN 时,WGAN 作者推荐使用RMSProp 或SGD 等不带动量的优化器

WGAN 从理论层面发现了原始GAN 容易出现训练不稳定的原因,并给出了一种新的距离度量标准和工程实现解决方案,取得了较好的效果。WGAN 还在一定程度上缓解了模式崩塌的问题,使用WGAN 的模型不容易出现模式崩塌的现象。需要注意的是,WGAN一般并不能提升模型的生成效果,仅仅是保证了模型训练的稳定性当然,保证模型能够稳定地训练也是取得良好效果的前提。如图所示,原始版本的DCGAN 在不使用BN 层等设定时出现了训练不稳定的现象,在同样设定下,使用WGAN 来训练判别器可以避免此现象,如图所示。

不带BN层的DCGAN生成器效果
在这里插入图片描述
不带BN层的WGAN生成器效果
在这里插入图片描述

WGAN实战代码和资源

链接:https://pan.baidu.com/s/1sncma9kCQ5CzyqqMpGgOkA
提取码:d693
复制这段内容后打开百度网盘手机App,操作更方便哦


参考书籍: TensorFlow 深度学习 — 龙龙老师

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值