本文翻译自https://naokishibuya.medium.com/demystifying-kl-divergence-7ebe4317ee68

KL散度中的KL全称是Kullback-Leibler,分别表示Solomon Kullback和Richard A.Leibler这两个人。

一、KL散度的定义

KL散度表明概率分布Q和概率分布P之间的相似性,由交叉熵减去熵得到

交叉熵和熵的计算如下

代入到KL散度中,则

上式中,期望可以表示成离散的求和,连续的求积分方式

这种两个概率间的相似性,是否衡量的是这两个概率的距离呢?要回答这个问题,先看KL散度的几个属性。

二、KL散度是非负的

简单的证明如下:

  • 如果P=Q,则

  • 否则,则

这是由于时,交叉熵是大于熵的,因为熵是最小平均编码长度。

三、KL散度是非对称的

由于交叉熵是非对称的,所以交叉熵减去熵得到的KL散度也是非对称的

由于距离指标是对称的,所以KL散度不是个距离衡量指标。通过下面的例子进行一个直观上的解释。假设有下面这样的概率分布P:

然后用一个正态分布Q来近似P,如下所示:

由此可见,KL散度表示的是用概率分布Q来近似真实概率分布P时存在的误差。

如果将P和Q做一个交换,用概率分布P来近似概率分布Q,如下所示:

此时,KL散度表示的是用概率分布P来近似真实概率分布Q时存在的误差。

由此可见,两者虽然表示都是概率分布P与概率分布Q之间的相似误差,但两个KL散度的结果是完全不同。

四、建模真实分布

通过KL散度,可以用已知的常用分布,如正态分布、二项分布等,来建模真实分布。通过KL散度,可以求解机器学习模型,如得到模型的参数等,来建模机器学习对应的真实分布。

五、变分自编码器

KL散度在变分自编码器中也有使用,用来让隐变量尽量接近正态分布,从而能从正态分布中抽样得到隐变量。于是,在变分自编码器的损失函数中加入了KL散度。

六、额外的一些数学问题

1)当p趋于0时,存在如下公式

如果p>0,q=0,则KL散度为无穷大,因为

所以

七、似然比

另外一种从概率分布描述KL散度的方式是如下的似然比:

从前面KL散度的定义中,可以看到这个似然比是KL散度中的一部分,即对数里的部分

参考

https://naokishibuya.medium.com/demystifying-kl-divergence-7ebe4317ee68
https://en.wikipedia.org/wiki/Kullback%E2%80%93Leibler_divergence

一文懂KL散度KL Divergence相关推荐

  1. 相对熵与交叉熵_熵、KL散度、交叉熵

    公众号关注 "ML_NLP"设为 "星标",重磅干货,第一时间送达! 机器学习算法与自然语言处理出品 @公众号原创专栏作者 思婕的便携席梦思 单位 | 哈工大S ...

  2. 信息论常见概念:熵、互信息、KL散度和信息增益

    文章目录 信息论在机器学习中的常见概念 1. 信息量 2. 熵 3. 联合熵 4. 条件熵 5. 相对熵 6. 互信息 7. 信息增益 公式与推导 信息论在机器学习中的常见概念 信息的不确定度表示. ...

  3. 一点对 KL 散度的理解

    在深度学习中经常用到的一个概念是 KL散度.之前对KL散度进行过一次理解,但后来随着利用次数的减少,开始忘却其具体的定义与物理意义,仅在印象中记得是"描述两个分布的相似度的度量". ...

  4. KL散度,JS散度,余弦距离,欧式距离

    散度:量化两种概率分布P和Q之间差异的方式:相当于衡量两个函数之间的关系 GAN是最小化JS散度 VAE是最小化KL散度 KL散度(不对称):设p为随机变量X的概率分布,即p(x)为随机变量X在X=x ...

  5. 散度和KL散度的介绍

    散度和KL散度的介绍 1. 梯度.散度与旋度 1.1 算子 定义一个向量算子 ∇ \nabla ∇(读作nabla或者del): ∇ = ∂ ∂ x e x ⃗ + ∂ ∂ y e y ⃗ + ∂ ∂ ...

  6. 【高效炼丹-筑基期】当深度学习遇上概率分布,你不能不知道的神奇度量方法:KL散度!

    什么是KL散度 KL散度(Kullback-Leibler divergence),也称为相对熵,是一种用于衡量两个概率分布之间差异的度量方法.它可以描述两个分布之间的距离,用于衡量模型预测结果与真实 ...

  7. matlab图像信息熵交叉熵,【机器学习】信息量,信息熵,交叉熵,KL散度和互信息(信息增益)...

    首先先强烈推荐一篇外文博客Visual Information Theory这个博客的博主colah是个著名的计算机知识科普达人,以前很是著名的那篇LSTM讲解的文章也是他写的.这篇文章详细讲解了信息 ...

  8. kl散度与js散度_数据集相似度度量之KLamp;JS散度

    一.KL散度 1.什么是KL散度 KL散度又叫相对熵,是描述两个概率分布差异的一种方法,有人将KL散度称为KL距离,但实际上它不满足距离概念中的两个条件,a.对称性,即D(P||Q)=D(Q||P); ...

  9. 机器学习经典损失函数复习:交叉熵(Cross Entropy)和KL散度

    目录 1 交叉熵 2 KL散度 时间一长就忘记了,今天看见缩写CE,突然有点陌生,写个图文并茂的博客加深一下印象. 1 交叉熵 交叉熵,在机器学习中广泛用于衡量两个分布的相似度: 交叉熵一般跟在sof ...

最新文章

  1. 皮一皮:所以说女生的好奇心不能太大...
  2. 洛谷:P1901 发射站
  3. 卓越程序员和优秀程序员有哪些区别?
  4. php最后最后再执行,php最后几个函数
  5. win10去掉快捷方式小箭头_简单几步,教你怎么去掉win10电脑图标小箭头
  6. java中jxl飘红_jxl导出excel文件,部署到tomcat中就会报错,为什么呢,求解!
  7. go语言编程项目_一个项目需要多少种编程语言?
  8. 【tyvj1520】 树的直径
  9. FR切换sheet时隐藏参数面板
  10. 问题3:filesystem:不是std的成员,filesystem:该名称的命名空间或类不存在
  11. ctf练习之音频文件
  12. 学子商城电子产品销售系统
  13. matlab解三角函数方程组,用matlab解三角函数方程组:y=A+Bx+Csin(Dx)+Esin(Fx)
  14. 超实用超全 || ZBrush笔刷大合集
  15. Springboot 集成 Camunda
  16. 将进酒计算机应用技术学院信息门户,《将进酒》信息化教学设计
  17. 如何解决打开keil工程软件闪退问题
  18. 【职场心路】一个老DBA的自白
  19. 计算机二级MS-Office真题及答案-历年汇总
  20. Vue_实现五星好评效果

热门文章

  1. MySQL语句—DDL语句
  2. 【Flutter实战】六大布局组件及半圆菜单案例
  3. Wireshark使用详解
  4. 计算机专业对口大学,计算机专业对口升学有哪些大学
  5. 关于blocked by CORS policy的跨域问题
  6. 电脑内存不足,QQ数据占用过大,对小白友好清理方法
  7. 项目管理软件用哪个好?推荐这6款项目管理工具
  8. arm 2022.10.22
  9. 大容量光传输技术进展与 400G C+L 系统研究
  10. C++ --取出网址中域名和协议名