一文懂KL散度KL Divergence
本文翻译自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相关推荐
- 相对熵与交叉熵_熵、KL散度、交叉熵
公众号关注 "ML_NLP"设为 "星标",重磅干货,第一时间送达! 机器学习算法与自然语言处理出品 @公众号原创专栏作者 思婕的便携席梦思 单位 | 哈工大S ...
- 信息论常见概念:熵、互信息、KL散度和信息增益
文章目录 信息论在机器学习中的常见概念 1. 信息量 2. 熵 3. 联合熵 4. 条件熵 5. 相对熵 6. 互信息 7. 信息增益 公式与推导 信息论在机器学习中的常见概念 信息的不确定度表示. ...
- 一点对 KL 散度的理解
在深度学习中经常用到的一个概念是 KL散度.之前对KL散度进行过一次理解,但后来随着利用次数的减少,开始忘却其具体的定义与物理意义,仅在印象中记得是"描述两个分布的相似度的度量". ...
- KL散度,JS散度,余弦距离,欧式距离
散度:量化两种概率分布P和Q之间差异的方式:相当于衡量两个函数之间的关系 GAN是最小化JS散度 VAE是最小化KL散度 KL散度(不对称):设p为随机变量X的概率分布,即p(x)为随机变量X在X=x ...
- 散度和KL散度的介绍
散度和KL散度的介绍 1. 梯度.散度与旋度 1.1 算子 定义一个向量算子 ∇ \nabla ∇(读作nabla或者del): ∇ = ∂ ∂ x e x ⃗ + ∂ ∂ y e y ⃗ + ∂ ∂ ...
- 【高效炼丹-筑基期】当深度学习遇上概率分布,你不能不知道的神奇度量方法:KL散度!
什么是KL散度 KL散度(Kullback-Leibler divergence),也称为相对熵,是一种用于衡量两个概率分布之间差异的度量方法.它可以描述两个分布之间的距离,用于衡量模型预测结果与真实 ...
- matlab图像信息熵交叉熵,【机器学习】信息量,信息熵,交叉熵,KL散度和互信息(信息增益)...
首先先强烈推荐一篇外文博客Visual Information Theory这个博客的博主colah是个著名的计算机知识科普达人,以前很是著名的那篇LSTM讲解的文章也是他写的.这篇文章详细讲解了信息 ...
- kl散度与js散度_数据集相似度度量之KLamp;JS散度
一.KL散度 1.什么是KL散度 KL散度又叫相对熵,是描述两个概率分布差异的一种方法,有人将KL散度称为KL距离,但实际上它不满足距离概念中的两个条件,a.对称性,即D(P||Q)=D(Q||P); ...
- 机器学习经典损失函数复习:交叉熵(Cross Entropy)和KL散度
目录 1 交叉熵 2 KL散度 时间一长就忘记了,今天看见缩写CE,突然有点陌生,写个图文并茂的博客加深一下印象. 1 交叉熵 交叉熵,在机器学习中广泛用于衡量两个分布的相似度: 交叉熵一般跟在sof ...
最新文章
- 皮一皮:所以说女生的好奇心不能太大...
- 洛谷:P1901 发射站
- 卓越程序员和优秀程序员有哪些区别?
- php最后最后再执行,php最后几个函数
- win10去掉快捷方式小箭头_简单几步,教你怎么去掉win10电脑图标小箭头
- java中jxl飘红_jxl导出excel文件,部署到tomcat中就会报错,为什么呢,求解!
- go语言编程项目_一个项目需要多少种编程语言?
- 【tyvj1520】 树的直径
- FR切换sheet时隐藏参数面板
- 问题3:filesystem:不是std的成员,filesystem:该名称的命名空间或类不存在
- ctf练习之音频文件
- 学子商城电子产品销售系统
- matlab解三角函数方程组,用matlab解三角函数方程组:y=A+Bx+Csin(Dx)+Esin(Fx)
- 超实用超全 || ZBrush笔刷大合集
- Springboot 集成 Camunda
- 将进酒计算机应用技术学院信息门户,《将进酒》信息化教学设计
- 如何解决打开keil工程软件闪退问题
- 【职场心路】一个老DBA的自白
- 计算机二级MS-Office真题及答案-历年汇总
- Vue_实现五星好评效果