gan网络损失函数_GAN论文阅读笔记1:从零推导GAN

gan网络损失函数_GAN论文阅读笔记1:从零推导GAN_第1张图片

生成式对抗网络(GAN, Generative Adversarial Networks )毫无疑问是近几年来较为火热的生成模型。其核心思想非常简单:引入对抗的概念,让两个网络——生成器网络(Generator)和判别器网络(Discriminator)互相对抗。

0. 符号定义

在介绍GAN之前,先简要介绍一下符号定义和必要的概念。

记生成器为

,判别器为
,真实(real)数据分布为
,高斯随机噪声分布为
,生成器伪造的(faked)数据分布为

KL散度(Kullbakc-Leibler divergence)常常用来刻画两个概率分布的差异的一种测度,其定义如下:

注意KL散度是不对称的,对KL散度稍加修改即可得到其对称形式,也就是JS散度(Jensen-Shannon divergence):

  1. 原理

GAN的原理也非常简单直接:生成器网络根据随机噪声

生成伪造的图片,而判别器网络判断图片真假。判别器的目标是:尽量判断真实图片为真,判断判别器伪造的图片为假,提高判断真假的准确度。生成器的目标是:尽量让伪造图片看起来真,降低判别器的准确度。

2. 从零推导GAN

基于这个对抗的思想,很自然地就能推导出原始GAN的公式了。

首先考虑判别器D的公式,这是一个二分类问题,那么熟悉机器学习的同学很容易想到采用交叉熵损失函数作为判别器的优化目标。令

为图片
为真实的概率,那么其损失函数为

接下来考虑生成器G的公式,G的目标是与判别器D唱反调,既然D的目标是最小化

,那么G的目标就设定为最小化
,也就是

综合起来,我们就得到了原始GAN的标准公式:

3. GAN的性质

我们靠着“对抗”的思想,就得到了GAN的公式,那么这个公式到底有没有数学依据呢?在原始的GAN论文中,证明了在一定假设条件下,GAN能够使得生成器G(z)生成的数据分布

逼近真实的数据分布

首先,对于固定的生成器G,我们总能找到一个最优的

。注意到
,我们只需令
,即可得到

代入
,有

也就是说,如果D对于所有的G都能够迅速变化为最优判别器

,那么,生成器G实际上是在最小化真实数据分布
与伪造数据分布
之间的JS散度。当JS散度为0的时候,两个数据分布也就重合了。

所以,基于这个理想的假设——“完美的D”,GAN的结论看起来非常漂亮!仅仅依靠这种简单的对抗思想,就可以让生成器生成的数据分布接近真实分布。

然而,现实中GAN的应用,却不可避免地会出现两类问题,一是梯度消失,二是模型坍塌。梯度消失,顾名思义,就是损失函数对生成器和判别器的参数的梯度变为零导致GAN无法收敛;模型坍塌,则是指生成器生成的图像局限于某一小的区域,对输入的噪声不再敏感,失去了生成图片的多样性。关于前者,引发了以WGAN为代表的广泛的讨论,也是我后面的阅读笔记会详细讨论的;关于后者,目前似乎还没有比较权威的解释,建议对GAN有比较深入的理解后再阅读这一篇博客 《Mode collapse in GANs》。

4. GAN另一种形式

观察下图

gan网络损失函数_GAN论文阅读笔记1:从零推导GAN_第2张图片

对于标准的GAN,一般在算法刚开始的时候,也就是判别器D能够很好地区分真实数据分布

与伪造数据分布
的时候,对于伪造数据
判别器的取值
很小。此时由
提供的梯度对生成器G来说非常平缓,不利于GAN的收敛。为此Goodfellow提出了可以的
替代
作为G的损失函数,如上图所示,梯度会更为合适。

这个改进思路,也可以从原公式推导得到。如前面所说,D的损失函数

G要与D(x)唱反调,有两种思路:

第一种是与D(x)取相反的损失函数,也就是刚才推导标准GAN的结果,G的损失函数为

第二种是交换真实数据和伪造数据的位置,然后取和D一样的损失函数,这是上面提到的改进形式,此时G的损失函数为

5. 总结:

原始的GAN有如下三个要点:

(1) D刻画了

的差异,而G的目标是最小化这个差异

(2) 原始的GAN,D(x)表示的是数据x真实的概率,为此D(x)的值域是[0,1]。

(3) 原始的GAN,采用的是logistic分类器作为D的结构。

那么,对应地,我们也该有这些思考:

(1) D(x)的值域一定要是[0,1]吗?如果 D(x)表示的是数据x真实的程度,而不是概率的?

(2) 除了logistic分类器,我们还有别的二分类器选择吗?

(3) 对于所以的G,我们是不是总能以很低的代价,找个一个完美的D?

这三个问题,将在后面的阅读笔记中能找到答案~有兴趣的读者请戳:

后续阅读笔记:

《GAN论文阅读笔记2:不懂W距离也能理解WGAN》

《GAN论文阅读笔记3:WGAN的各种变体WGAN-GP/CTGAN/SNGAN/WGAN-div》

《GAN论文阅读笔记4:最小二乘GAN/f-GAN》

《GAN论文阅读笔记5:从SVM的Margin到GAN》

《GAN论文阅读笔记6:DRAGAN/Relativistic GAN》

参考论文:

Generative Adversarial Networks​arxiv.org

参考链接:

马天猫Masn:GAN原理学习笔记​zhuanlan.zhihu.com
gan网络损失函数_GAN论文阅读笔记1:从零推导GAN_第3张图片

你可能感兴趣的:(gan网络损失函数)