深度学习 lab14_2 WGAN学习笔记(KL JS divergence, improved WGAN)

Concept

KL JS divergence

https://www.cnblogs.com/smuxiaolei/p/7400923.html

https://www.bilibili.com/video/av19193502?from=search&seid=15708729020988943650

kl divergence

使用entropy公式计算

在这里插入图片描述
(1)以八种天气情况作为例子,这张图是ground truth , entropy是2.23
在这里插入图片描述

(2) bits 数不同
在这里插入图片描述

(3)预测的结果 的 entropy 是4.58
在这里插入图片描述

在这里插入图片描述

如果 q == p(ground truth)兩分佈相同,cross entropy = entropy,KL divergence ==0。

如果q!=p(ground truth),cross entropy = entropy + KL divergence, 所以 KL divergence 必大於0。
在这里插入图片描述
在这里插入图片描述
其中 h(p) 在圖二,圖二是真正分佈。

js divergence

在这里插入图片描述

  • JS散度是利用KL散度来得到的。JS是对称的而且值是有界的[0,1].

  • JS散度解决了KL不对称的问题,JS是对称的。
    很明显,如果P1,P2完全相同,那么JS =0, 如果完全不相同,那么就是1.

但是KL和JS散度来度量时候有一个问题:
如果两个分配P,Q离得很远,完全没有重叠的时候,那么KL值是没有意义的,而JS值是一个常数。这在学习算法中是比较致命的,这就意味这这一点的梯度为0。梯度消失了。




WGAN

  • Pdata : real data 的分布
  • PG : generator 生出来的 data 的分布

在这里插入图片描述

要max 这个 object function,有毛病,如字幕。

所以需要一个平滑函数, 1-lipschitz

  • Ex~pdata
  • x 指 从 real data 分布中的 data。

1-lipschitz

在这里插入图片描述

weight clipping

在这里插入图片描述

improved WGAN

WGAN-GP
在第三部加上 后面的 浪打 项, 有点像是regularization

做不到,因为D(x) 的x是所有的data。所有的imgae 太多,不管在train还是干嘛的都做不到,所以 只拿 Pdata 和 Pg 之间的 penalty出来,即

x~penalty(noun. 处罚,罚款,没见过的单词,查了一下方便背诵) 指 Pdata 和 Pg 分布之间,随机取一点出来,因此有了以上蓝色区域。

  • 实作的时候,实际做法如下,因为论文写道 操作起来 梯度 越接近一越好,所以 替换掉
    在这里插入图片描述



implement(WGAN-GP)

代码

加 WGAN weight clip 的话,浪打项里 使用的 (梯度-1) 的平方,效果惊人的差,换成 relu勉勉强强好一点(relu相当于 max,因为relu本书是max(x,0) ),但是也不能看。

在这里插入图片描述

所以再实作的时候,记得把 WGAN的weight clip去掉

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值