一文懂KL散度KL Divergence

news/2024/11/17 14:46:36/

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

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

一、KL散度的定义

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

D_{KL}(P||Q)=H(P,Q)-H(P)

        交叉熵和熵的计算如下

H(P,Q)=\mathbb{E}_{x\sim P}[-logQ(x)]

H(P)=\mathbb{E}_{x\sim P}[-logP(x)]

        代入到KL散度中,则

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

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

二、KL散度是非负的

        简单的证明如下:

  • 如果P=Q,则

log\frac{P}{Q}=log1=0

  • 否则P\neq Q,则

H(P,Q)> H(P)

        这是由于P\neq 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时,存在如下公式

\lim_{p\rightarrow 0}plogp=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


http://www.ppmy.cn/news/163688.html

相关文章

机器学习:KL散度详解

KL 散度,是一个用来衡量两个概率分布的相似性的一个度量指标。 我们知道,现实世界里的任何观察都可以看成表示成信息和数据,一般来说,我们无法获取数据的总体,我们只能拿到数据的部分样本,根据数据的部分样…

汇开优店19 条⽤卡经验

汇开优店19 条⽤卡经验 1、单卡刷卡次数每周⼤于 5 次,每⽉⼤于 20 次。每⽉合理递增,每⽉ 25-30 笔最佳。 2、刷卡⾦额要⼩额结合⼤额消费,如果都是鸡⽑蒜⽪的⼩消费,银⾏是不会把你优 质客户的,经常有⼤额消费才能证…

如何在CDH5.12集群中启用Kerberos认证

参考链接: https://www.cloudera.com/documentation/enterprise/5-8-x/topics/security.html 一、前置准备 1、基础环境说明 操作系统:CentOS 6.8 minimal CDM版本: 5.12.1 CDH版本:5.12.1 MySQL版本: 5.1.73 JDK: 1.8.0_131 浏览器版本: ChromeStand…

两种专家经验评分卡的学习

专家经验评分,无论是风控初期冷启动情况,还是对于数据量较少的信贷场景,典型如小微信贷场景等,都是较为不错的实现方法,本次文章我们将介绍两种最常用到的专家经验评分卡。分别是: ①基于ODDS的专家经验的评…

Kali2020设置单用户\Root用户教程

1、首先在启动页面按下“E”键 2、按下E键以后会进入另一个画面,用上下左右键 ↓控制找到linux开头的那一行 3、找到这一行以后,移到下面一行的“ro”这里,将“ro”改成“rw”;再将光标移到最后那里,空一格&#xff0c…

02_如何计算叔块奖励

文章目录 叔块、与奖励计算临时分叉叔块的由来如何计算奖励 区块有意思众筹合约引发的悲剧 叔块、与奖励计算 临时分叉 区块链由于是一种去中心化的技术,全世界所有的矿工同时工作,各自独立的挖掘满足要求的区块。由于是各自独立的工作,就有…

​力扣解法汇总1604. 警告一小时内使用相同员工卡大于等于三次的人

目录链接: 力扣编程题-解法汇总_分享记录-CSDN博客 GitHub同步刷题项目: https://github.com/September26/java-algorithms 原题链接:力扣 描述: 力扣公司的员工都使用员工卡来开办公室的门。每当一个员工使用一次他的员工卡&a…

Akka 学习(九)Akka Cluster

参考文章 Gitter Chat,Akka 在线交流平台Akka Forums,Akka 论坛Akka in GitHub,Akka 开源项目仓库Akka Official Website,Akka 官网Akka Java API,Akka 应用程序编程接口《Akka入门与实践》 [加]Jason Goodwin&#x…