一文懂KL散度KL Divergence

news/2024/5/3 13:12:55/文章来源:https://blog.csdn.net/liveshow021_jxb/article/details/129784404

        本文翻译自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.luyixian.cn/news_show_283602.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ARM Linux 内核启动1 —— 汇编阶段

一、Makefile分析 1、Makefile 分析 (1) kernel 的 Makefile 写法和规则等,和 uboot 的 Makefile 是一样的,甚至 Makefile 中的很多内容都是一样的。 (2) kernel 的 Makefile 比 uboot 的 Makefile 要复杂,这里我们并不会一行一行的详细分析…

【20】核心易中期刊推荐——计算机科学电子通信(EI索引)

🚀🚀🚀NEW!!!核心易中期刊推荐栏目来啦 ~ 📚🍀 核心期刊在国内的应用范围非常广,核心期刊发表论文是国内很多作者晋升的硬性要求,并且在国内属于顶尖论文发表,具有很高的学术价值。在中文核心目录体系中,权威代表有CSSCI、CSCD和北大核心。其中,中文期刊的数…

进阶C语言:文件操作

文件操作不仅仅是我们使用鼠标用来操作文件的各项功能,还可以使用C语言来操作文件的内容,可以使用C语言来对文件的读、写、拷贝...等等,话不多说,直接开始: 目录 1.为什么要使用文件 2.什么是文件 2.1程序文件 2.…

蓝桥杯【第14届省赛】Python B组

本题解不一定正确,欢迎大家指正 A:2023 【问题描述】 请求出在 12345678 至 98765432 中,有多少个数中完全不包含 2023 。 完全不包含 2023 是指无论将这个数的哪些数位移除都不能得到 2023 。 例如 20322175,33220022 都完全不包…

python实现获取当前目录下的树形结构

python实现获取当前目录下的树形结构 程序实现 在有些Linux上自带了tree命令来一树状结构显示一个目录,但是在有些linux上没有自带这个程序,所以这里用python写了一个小程序来实现这个功能,代码如下: import osdef print_tree(…

共模电感(扼流圈) 差模电感(扼流圈)

共模电感 共模电感,也叫共模扼流圈。常用于电脑的开关电源,过滤共模的电磁干扰信号。 共模电感器由软磁铁芯(铁氧体磁芯)和两组同相绕制的线圈组成。对于共模信号,由于两组线圈产生的磁场不是抵消。而是相互叠加&…

存量市场之下,电商之战深入腹地且逻辑未变

纵然是在流量依然见顶的大背景下,电商行业的竞争并未结束。无论是以百亿补贴为代表的烧钱策略,还是以跨境出海为代表的规模策略,几乎都是这样一种现象的直接体现。种种迹象表明,未来的电商行业,依然会有新的战役发生。…

Hadoop集群环境搭建与应用回顾

文章目录一、 实训项目名称二、 学习情况小结三、 项目中用到的知识点四、 实训项目中负责功能板块五、 实训项目实现六、 实训项目过程中遇到的问题及解决方法七、实训体会与心得一、 实训项目名称 Hadoop集群环境搭建与应用 二、 学习情况小结 实操一部分: 通…

linux 服务器 docker 安装 nacos 2.0.3

docker 镜像 https://registry.hub.docker.com/r/nacos/nacos-server/tags 1.下载nacos镜像 这里下载的是2.0.3 docker pull nacos/nacos-server:2.0.32.查看镜像是否下载成功 如下图 docker images3.创建文件夹 注: 自定义创建,用于把docker内部的文件…

【基金学习】基金的相关计算题目

文章目录一、基金收益计算1. 累计收益/持有收益2. 年化收益/年化收益率3. 涨跌幅4. 分红二、风险计算1. 贝塔系数2. 波动率三、费用计算1. 托管费2. 管理费3. 销售服务费4. 申购/赎回费一、基金收益计算 1. 累计收益/持有收益 累计收益 持仓金额 - 本金 累计收益率 &#xf…

TCP 的 NACK 与 SACK

可靠传输,一旦丢包,必然 HoL blocking,NACK 和 SACK 必须二选一驱动重传: NACK:receiver 主动通告没有收到的报文,sender 收到后重传。 SACK:receiver 主动通告收到的报文,sender …

一文带你深入了解算法笔记中的前缀与差分(附源码)

📖作者介绍:22级树莓人(计算机专业),热爱编程<目前在c++阶段,因为最近参加新星计划算法赛道(白佬),所以加快了脚步,果然急迫感会增加动力>——…

笔记本上就能跑的 LLM 好使吗?GPT4ALL 体验

是骡子是马,牵出来遛遛正名看到这个标题,你可能会觉得是噱头。谁不知道 ChatGPT 模型有 1750 亿以上的参数,别说是在笔记本电脑上跑,就是使用高性能 GPU 的台式机,也无法带得动啊。老老实实调用 API 不好吗&#xff1f…

torchvision.transforms 常用方法解析(含图例代码以及参数解释)

本文代码和图片完全源于 官方文档: TRANSFORMING AND AUGMENTING IMAGES 中的 Illustration of transforms,参数介绍源自函数对应的官方文档。 代码中的变换仅仅使用了最简单的参数:pad,size 等,这里展现的只是简单的变换&#xf…

中间表示- 数据流分析

数据流分析往往与优化绑定在一起,如下图所示。 优化的一般模式 程序分析 (1)控制流分析、数据流分析、依赖分析等。 (2)得到被优化程序的静态保守信息,是对动态运行行为的近似。 程序重写 以上一步得到…

用于3D分子生成的等变扩散模型ICML2022

现代深度学习方法开始对分子科学产生重要影响。在Alphafold在蛋白质折叠预测方面取得成功的背后,越来越多的工作开发了深度学习模型来分析或合成分子。分子存在于物理3D空间中,因此受制于几何对称性,如平移、旋转。这些对称性被称为三维欧几里…

Compose(?/N) - 标准布局

组合函数不指定布局默认是Box堆叠。 一、纵向 Colum inline fun Column( modifier Modifier, verticalArrangement Arrangement.Top, //子元素纵向排列规则 horizontalAlignment Alignment.Start, //子元素横向排列规则 content: Composable ColumnScope.() -…

蓝桥杯基础12:BASIC-3试题 字母图形

资源限制 内存限制:256.0MB C/C时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s 问题描述 利用字母可以组成一些美丽的图形,下面给出了一个例子: ABCDEFG BABCDEF CBABCDE DCBABCD EDC…

【设计模式】设计模式概述以及UML图

设计模式概述以及UML图设计模式概述1. 设计模式的概念2. 学习设计模式的必要性3. 设计模式的分类UML图1. 什么是UML图2. 类图的概念和作用3. 类图的表示法4. 类与类之间的表示方式4.1 关联关系4.2 聚合关系4.3 组合关系4.4 依赖关系4.5 继承关系4.6 实现关系设计模式概述 1. 设…

工作面试老大难-MySQL中的锁类型

MySQL 是支持ACID特性的数据库。我们都知道”C”代表Consistent,当不同事务操作同一行记录时,为了保证一致性,需要对记录加锁。在MySQL 中,不同的引擎下的锁行为也会不同,本文将重点介绍 MySQL InnoDB引擎中常见的锁。…