最近在学GAN和WGAN,遇到了KL散度,JS散度,Wasserstein距离(又叫EM距离)三个衡量概率分布相似度的度量方法。虽然之前也有接触KL,但是为了以后查找方便,还是决定做个记录总结。
本博客参考了下述博主的文章,这篇文章更多是整合及自己理解的总结,也可以说是转载文章,特别是第三篇知乎作者’AI带路党’对WGAN的介绍。
KL
KL,JS,Wasserstein距离
W距离与WGAN
W距离通俗理解

1. KL散度

还是先从最简单的KL散度说起,KL散度描述了连个分布的近似程度,用对数差表示。

写成期望的形式:

由上面式子可以知道KL散度不对称,不能用作距离。更多用作表示信息的损失。

2. JS散度

JS散度衡量了两个概率分布的相似度,是KL的变体。

由上面式子可以知道JS散度是对称的,可以用作刻画距离。下方图片与公式换过来对应。

在KL散度中,当两个分布中有P1在采样点xi处的值为0时而P2不为0时,那么此时KL散度为0,假设这样的点比较少,则没有多大的意义;当两个分布中有P2在采样点xi处的值为0时而P1不为0时,那么此时KL散度为无穷大,导致KL散度没有意义。
在JS散度中,假若其中一个分布为零,另一个不为零,则JS散度为常数,梯度消失,无法更新。

3. GAN与JS散度

GAN的判别器损失函数定义如下:

写成期望的形式:

对其求导求最优:


将最优带入原来的损失函数:

这样就可以用JS散度表示:

因此当两个分布没有重叠或重叠很少时,GAN将无法得到更新。更详细的介绍可以看本文的第三个链接。

4. EM距离

Wasserstein距离度量两个概率分布之间的距离,定义如下:

Π(P1,P2)是P1和P2分布组合起来的所有可能的联合分布的集合。对于每一个可能的联合分布γ,可以从中采样(x,y)∼γ得到一个样本x和y,并计算出这对样本的距离||x−y||,所以可以计算该联合分布γ下,样本对距离的期望值E(x,y)∼γ[||x−y||]。在所有可能的联合分布中能够对这个期望值取到的下界inf(γ∼Π(P1,P2)E(x,y)∼γ[||x−y||])就是Wasserstein距离。

写成积分的形式:

简单的理解就是将分布P1变成P2的最小消耗(最短距离)。更加清晰的推理类比过程可见第四个链接。
将W距离用对偶的方式表示:

5. WGAN与EM距离

下文直接截图本文的第三个链接,作者写的实在是太好了。

KL,JS,Wasserstein距离相关推荐

  1. 信息量、信息熵、交叉熵、KL散度、JS散度、Wasserstein距离

    前两篇介绍了目标检测中的回归损失函数,本来这篇打算介绍目标检测中的分类损失函数.但是介绍classification loss function自然绕不过交叉熵,所以还是简单的把信息论中的一些概念在这 ...

  2. GANs之信息量、信息熵、交叉熵、KL散度、JS散度、Wasserstein距离

    信息量也叫做香农信息量,常用于刻画消除随机变量X在x处的不确定性所需的信息量大小.假设只考虑连续型随机变量的情况,设p为随机变量X的概率分布,即p(x)为随机变量X在X=x处的概率密度函数值,随机变量 ...

  3. 信息量、熵、交叉熵、KL散度、JS散度、Wasserstein距离

    信息量.熵.交叉熵.KL散度.JS散度 文章目录 信息量.熵.交叉熵.KL散度.JS散度 前言 一.信息量 二.熵 三.交叉熵 四.KL散度 五.JS散度 六. Wasserstein距离 1.解决的 ...

  4. 区别:KL散度,JS散度,Wasserstein距离(EMD)

    1 .KL散度(相对熵): 性质: ①描述两个概率分布P,Q之间的差异 ②非负性:当且仅当两分布相同,相对熵等于0 ③非对称性:D(p||q)≠D(q||p) ④不是距离,且不满足三角不等式 ⑤相对熵 ...

  5. KL散度、JS散度与wasserstein距离

    KL散度 KL散度又称为相对熵,信息散度,信息增益.公式定义如下: KL散度可称为KL距离,但它并不满足距离的性质: (1)KL散度不是对称的: (2)KL散度不满足三角不等式. JS散度 JS散度度 ...

  6. 交叉熵、相对熵(KL散度)、JS散度和Wasserstein距离(推土机距离)

    目录: 信息量 熵 相对熵(KL散度) 交叉熵 JS散度 推土机理论 Wasserstein距离 WGAN中对JS散度,KL散度和推土机距离的描述 信息量: 任何事件都会承载着一定的信息量,包括已经发 ...

  7. python衡量数据分布的相似度/距离(KL/JS散度)

    背景 很多场景需要考虑数据分布的相似度/距离:比如确定一个正态分布是否能够很好的描述一个群体的身高(正态分布生成的样本分布应当与实际的抽样分布接近),或者一个分类算法是否能够很好地区分样本的特征(在两 ...

  8. Wasserstein距离在生成模型中的应用

    作者丨黄若孜 学校丨复旦大学软件学院硕士生 研究方向丨推荐系统 前言 本文是关于 Wasserstein 距离在生成模型中的应用的一个总结,第一部分讲 Wasserstein 距离的定义和性质,第二部 ...

  9. WGAN的成功,可能跟Wasserstein距离没啥关系

    ©PaperWeekly 原创 · 作者|苏剑林 单位|追一科技 研究方向|NLP.神经网络 WGAN,即 Wasserstein GAN,算是 GAN 史上一个比较重要的理论突破结果,它将 GAN ...

最新文章

  1. css3边框线倾斜,使用CSS3倾斜边框的Div?
  2. 中国覆铜板(CCL)行业竞争现状及投资战略研究报告2021年版
  3. 【机器学习】集成学习之boosting AdaBoost
  4. Git之submodule使用总结
  5. 冗余的阿里云实例开启和停止API
  6. Linux Shell获取系统资源使用百分比(CentOS)
  7. c语言糖果游戏,幼儿园小班糖果游戏教案
  8. [转载] Python:Numpy详解
  9. pandas怎么去除nan_pandas缺失值处理之——如何消去Nan值对数字型字符串数据类型的影响,让数字型字符串保持原始str类型,而不会自动变为float类型?...
  10. TFS配置过程中的错误
  11. 教你如何更好的用ubuntu
  12. (Python2.7.x) Systrace 使用的坑,出现 ImportError: No module named XXX
  13. Visual Stdio 无法找到资源编译器DLL
  14. access中如何画斜线_在Excel单元格中如何用斜线分割填写?
  15. 用winpcap实现局域网DNS欺骗之一(基础知识)
  16. vue使用LayIM组件接入第三方通讯平台:融云
  17. input设置disable鼠标移上去怎么出现禁止的红色图标
  18. Apsara Clouder基础技能认证-阿里巴巴编程规范考试流程
  19. 全屏功能-实现全屏-图标切换
  20. Ubuntu下面steam的安装

热门文章

  1. 《Jave并发编程的艺术》学习笔记(1-2章)
  2. 一个初学者→全栈工程师的学习之路(1)——关于全栈工程师的理解
  3. h5页面启动安卓应用_h5启动原生APP总结
  4. 物流面单 标签纸打印机设置
  5. 2范数和F范数的区别
  6. jQuery拆分字符串 split()并且遍历$.each()
  7. 软件测试用例的设计方法(第二篇)
  8. 01-不是过去的原因而是现在目的
  9. python算法工程师需要学什么_一个优秀的算法工程师必须具备哪些素质?
  10. ReentrantLock实现原理(可重入锁 )