wgan 不理解 损失函数_WGAN学习笔记

GAN自从被提出之后就受到了广泛的关注,GAN也被逐渐用于各种有趣的应用之中。虽然GAN的idea对研究者们有着巨大的吸引力,但是GAN的训练却不像普通DNN那样简单,generator和discriminator之间的平衡,训练过程中没有很好的指标度量训练效果成为了训练GAN的难点。WGAN的提出几乎完美解决了这两个问题。

参考文章:

原始GAN存在的问题

要想知道原始GAN存在什么问题,我们先看一下GAN的优化目标。

作者在原始论文中提到,在真正优化G的时候 $log(1-D(G(z))$ 可能无法给G提供足够的梯度,于是可以通过maxmize $log(D(G(z))$ 的方式来更新G。而在WGAN的前序论文中,证明了这两种优化G的方式都是有一定问题的。

优化准则$log(1-D(G(z))$ 带来的梯度消失

在论文中,作者也给出了相关的证明,通过一步步优化公式$ref{gan_target}$,最终的目标就是使得$p_{data}(x) = p_g(x)$ .优化D

由$cfrac{partial Loss}{partial D(x)} = 0$ 可以得到:

优化G

将公式$ref{d_res}$ 中的结果,带入公式$ref{gan_target}$ ,可以得到得到最优的D之后,优化G的目标

在此,介绍连个分布距离度量的指标:KL divergence: $KL(P_1||P_2) = mathbb{E}_{x sim P_1} logcfrac{P_1}{P_2} label{kl_div}tag{4}$

JS divergence: $JS(P_1||P_2)= cfrac{1}{2}KL(P_1||cfrac{P_1+P_2}{2})+cfrac{1}{2}KL(P_2||cfrac{P_1+P_2}{2}) label{js_div}tag{5}$

G的优化目标$ref{g_loss}$可以通过形式的变换转为JS的的形式:

虽然我们将G的loss转为了某种距离,即JS,但是这种距离是有点问题的。看下面两张图,假设p就是真实分布,q是我们生成的分布。可以清晰的看出,KL和JS散度在q的均值为零的时候都为0。但是随着q远离p,KL和JS逐渐趋于定值,而且JS趋于定值的速度更快。既然趋于定值了,那么相应的梯度就是0了。

7000be8f00416cda086fae5a31baa4dc.png

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值