GAN损失函数和JS散度的关系

GAN损失函数原始形式为
\mathcal{L}D^{real} = -\mathbb{E}{x \sim p_{\text{data}}(x)} [\log D(x)]
固定G调整D时,使判别器损失函数最大化,提高判别能力
固定D调整G时,使生成器损失函数最大化,提高生成能力
GAN损失函数是一个二元交叉熵损失函数,二元交叉熵损失函数原始是这样的:
在这里插入图片描述
第一相对应yi=0,第二相对应yi=1,在GAN中,真实像本为1,生成样本为0,即:
在这里插入图片描述

可以把式子转化成以下形式,分别对应判别器和生成器的损失函数,这样可以更直观的看出是如何取最大化和最小化的
在这里插入图片描述
注意这个式子相比于上面的式子,加了负号。
让我解释一下里面的各个参数:
xi:原始数据
ϕ:判别器参数
zj:正态分布中随机生成的数据
theta:生成器参数
g():生成器函数
对于判别器,可以写成,这其实跟前面式子是一样的,因为第一项和第二项都跟判别器有关,所以两项都要有:
在这里插入图片描述
这里也是加了负号的,上面说到,要把判别器损失函数最大化,加了负号后,就是最小化问题了,这是符合对损失函数的理解的。
判别器是要给生成图像低分,给真是的图像高分,带入到上面式子中,第一项中f给生成的图像低分,会让第一项更小,第二项中f给真实图像打高分,这也让第二项更小。第一项中,要用1减去sigmiod[f],这样就可以给生成器图像打低分的时候,让整体的输出更小,同时定义域还是在【0,1】
对于生成器,可以看到,只保留了第一项,因为第二项跟生成器无关;而且这里没有负号,因为生成器要骗过判别器,就得要更低的损失,这里不加负号才是一个最小化问题。
在这里插入图片描述
生成器想让判别器给他生成的图像打高分,即f更大,用1减去sigmoid[f]后,这个损失就更小了,也是符合平时对损失函数越低越好的理解习惯。

在这里插入图片描述
下面解释GAN损失函数为什么跟JS散度有关
正如第一个公式,GAN损失函数原始形式是求数学期望,这里贴一下数学期望的概念:
请添加图片描述
把GAN损失函数中的期望展开,可以写成如下形式
在这里插入图片描述

这里是连续的形式,不过不影响。

JS散度:JS散度(Jensen-Shannon divergence)是一种衡量两个概率分布之间差异的方法,可以通过KL散度来表示。
在这里插入图片描述
其中:
在这里插入图片描述
KL散度公式:
在这里插入图片描述
KL散度是非对称的,JS散度就是用于解决KL散度的对称问题。
把M带入到JS散度公式,得到:
在这里插入图片描述
在GAN的优化过程中,判别器的优化目标可以被理解为在最小化JS 散度的过程中,使得判别器能够有效地区分真实数据分布 ( P_data ) 和生成数据分布 ( P_G ),从而推动生成器生成更真实的数据样本。
所以可以我们说GAN损失函数跟JS散度有关,并且把损失函数第一项第二线分别于JS散度第一项第二项对应起来。
当P_data和P_G完全不相交时,JS散度结果为log2,这也就解释了梯度消失的原因!在GAN中,梯度消失表示,真实数据和生成数据完全不相关了。这也就表现出了用JS散度来衡量GAN损失的弊端。

  • 11
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值