草庐IT

机器学习:KL散度详解

Re:coder 2023-05-10 原文

KL 散度,是一个用来衡量两个概率分布的相似性的一个度量指标。

我们知道,现实世界里的任何观察都可以看成表示成信息和数据,一般来说,我们无法获取数据的总体,我们只能拿到数据的部分样本,根据数据的部分样本,我们会对数据的整体做一个近似的估计,而数据整体本身有一个真实的分布(我们可能永远无法知道)。

那么近似估计的概率分布和数据整体真实的概率分布的相似度,或者说差异程度,可以用 KL 散度来表示。

KL 散度,最早是从信息论里演化而来的。所以在介绍 KL 散度之前,我们要先介绍一下信息论里有关熵的概念。


信息论中,某个信息  出现的不确定性的大小定义为  所携带的信息量,用  表示。与信息  出现的概率  之间的关系为

例:掷两枚骰子,求点数和为7的信息量

点数和为7的情况为:(1,6) ; (6,1) ; (2,5) ; (5,2) ; (3,4) ; (4,3) 这6种。总的情况为 6*6 = 36 种。

那么该信息出现的概率为 

包含的信息量为 

以上是求单一信息的信息量。但实际情况中,会要求我们求多个信息的信息量,也就是平均信息量。

假设一共有 n 种信息,每种信息出现的概率情况由以下列出:

……
……

并且有

则  ,  , …… ,  所包含的信息量分别为  ,  , …… , 。于是,平均信息量为

与热力学中的熵的定义类似,故这又被称为信息熵

例:设有4个信息 A,B,C,D 分别以概率 1/8,1/8,1/4,1/2 传送,每一个信息的出现是相互独立的。则其平均信息量为:

连续信息的平均信息量可定义为

这里的  是信息的概率密度。

上述我们提到了信息论中的信息熵

这是一个平均信息量,又可以解释为:用基于P的编码去编码来自P的样本,其最优编码平均所需要的比特个数。

接下来我们再提一个概念:交叉熵

这就解释为:用基于P的编码去编码来自Q的样本,所需要的比特个数。

【注】 为各字符出现的频率, 为该字符相应的编码长度, 为对应于Q的分布各字符编码长度。


KL散度

有了以上信息论中的相关知识后,我们再回过头来,看一下KL散度。

KL散度又可称为相对熵描述两个概率分布 P 和 Q 的差异或相似性,用  表示

                      

                      

很显然,散度越小,说明概率 Q 与概率 P 之间越接近,那么估计的概率分布与真实的概率分布也就越接近。

KL散度的性质:

  1. 非对称性:
  2. ,仅在  时等于0

对于性质1的证明,请阅读参考资料第3个。

性质2是很重要的,可以用 Jensen 不等式证明。

 Jensen 不等式与凸函数是密切相关的。可以说 Jensen 不等式是凸函数的推广,而凸函数是 Jensen 不等式的特例。

凸函数

那么什么是凸函数?我们有如下定义:

设函数  在区间  上连续,如果对  上任意两点  恒有

则称函数  在  上是(向下)凸的。这里的  是个参数,

令   有:

这便是同济大学的高等数学中的定义。

我想你现在肯定有一个非常大疑问,这是凸函数的定义?你在开玩笑吧?这明明是凹函数好的吧。别急,这就是凸函数的定义。这是国外对于凸函数的定义,外国人认为,只要函数任意两点的割线都位于从这两点截取下来的函数图像的上方,那么这个函数就是凸函数。如果你在学习同济大学的高等数学关于凹凸性这一节时足够细心,你会看到,对于上式的定义,课本里注明了(向上)凹的;没错,课本里说的是向上凹,而国外的则是向下凹的(即向上凸)。所以凹和凸不是绝对的。感兴趣的读者可以查阅相关知识。现在我们用国外的习惯来。

Jensen 不等式

用数学归纳法,将凸函数的概念泛化,就可得到 Jensen 不等式

对于任意点集 ,凸函数  满足

这就是 Jensen 不等式。

不等式的证明,请阅读参考资料第4个。

将其应用到概率论中:离散变量  对应的概率分布为 ,则有

 为期望)

对于连续变量  ,其对应的概率密度为 ,则有

证明性质2

由于  函数是凹,需要改变 Jensen 不等式的符号方向

那么

因此

————————————————

参考资料

KL散度超详细讲解_程旭员的博客-CSDN博客_kl散度计算KL散度定义KL(Kullback-Leibler divergence)散度多应用于概率论或信息论中,又可称相对熵(relative entropy)。它是用来描述两个概率分布P和Q的差异的一种方法。【记】KL具有非对称性,即D(P||Q) ≠ D(Q||P)。在信息论中,D(P||Q) 表示用概率分布Q来拟合真实分布P时,产生的信息损耗,其中P表示真实分布,Q表示P的拟合分布KL散度公...https://blog.csdn.net/weixin_37763870/article/details/103026505?spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_relevant_t0.none-task-blog-2~default~CTRLIST~Rate-1.pc_relevant_default&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2~default~CTRLIST~Rate-1.pc_relevant_default&utm_relevant_index=1机器学习:Kullback-Leibler Divergence (KL 散度)_Matrix_11的博客-CSDN博客_kld散度今天,我们介绍机器学习里非常常用的一个概念,KL 散度,这是一个用来衡量两个概率分布的相似性的一个度量指标。我们知道,现实世界里的任何观察都可以看成表示成信息和数据,一般来说,我们无法获取数据的总体,我们只能拿到数据的部分样本,根据数据的部分样本,我们会对数据的整体做一个近似的估计,而数据整体本身有一个真实的分布(我们可能永远无法知道),那么近似估计的概率分布和数据整体真实的概率分布的相似度,或者...https://blog.csdn.net/matrix_space/article/details/80550561机器学习中的散度 - 知乎广义的散度指的是一类运算,它将矢量空间上的一个矢量场对应到一个标量场上,通俗的讲,就是输入一组矢量,返回一个标量。 在机器学习中,很多时候我们需要衡量两个概率分布的差异,比如EM算法、GAN,VAE等,那我…https://zhuanlan.zhihu.com/p/45131536Jensen不等式初步理解及证明 - 知乎Jensen不等式(Jensen's inequality)是以丹麦数学家Johan Jensen命名的,它在概率论、机器学习、测度论、统计物理等领域都有相关应用。 在机器学习领域,我目前接触到的是用Jensen不等式用来证明KL散度大于等…https://zhuanlan.zhihu.com/p/39315786

更多阅读

变分推断(Variational Inference) - 彼岸花杀是条狗 - 博客园变分对于普通的函数f(x),我们可以认为f是一个关于x的一个实数算子,其作用是将实数x映射到实数f(x)。那么类比这种模式,假设存在函数算子F,它是关于f(x)的函数算子,可以将f(x)映射成实数F(https://www.cnblogs.com/yifdu25/p/8181185.html

有关机器学习:KL散度详解的更多相关文章

  1. ruby - 在 Windows 机器上使用 Ruby 进行开发是否会适得其反? - 2

    这似乎非常适得其反,因为太多的gem会在window上破裂。我一直在处理很多mysql和ruby​​-mysqlgem问题(gem本身发生段错误,一个名为UnixSocket的类显然在Windows机器上不能正常工作,等等)。我只是在浪费时间吗?我应该转向不同的脚本语言吗? 最佳答案 我在Windows上使用Ruby的经验很少,但是当我开始使用Ruby时,我是在Windows上,我的总体印象是它不是Windows原生系统。因此,在主要使用Windows多年之后,开始使用Ruby促使我切换回原来的系统Unix,这次是Linux。Rub

  2. LC滤波器设计学习笔记(一)滤波电路入门 - 2

    目录前言滤波电路科普主要分类实际情况单位的概念常用评价参数函数型滤波器简单分析滤波电路构成低通滤波器RC低通滤波器RL低通滤波器高通滤波器RC高通滤波器RL高通滤波器部分摘自《LC滤波器设计与制作》,侵权删。前言最近需要学习放大电路和滤波电路,但是由于只在之前做音乐频谱分析仪的时候简单了解过一点点运放,所以也是相当从零开始学习了。滤波电路科普主要分类滤波器:主要是从不同频率的成分中提取出特定频率的信号。有源滤波器:由RC元件与运算放大器组成的滤波器。可滤除某一次或多次谐波,最普通易于采用的无源滤波器结构是将电感与电容串联,可对主要次谐波(3、5、7)构成低阻抗旁路。无源滤波器:无源滤波器,又称

  3. CAN协议的学习与理解 - 2

    最近在学习CAN,记录一下,也供大家参考交流。推荐几个我觉得很好的CAN学习,本文也是在看了他们的好文之后做的笔记首先是瑞萨的CAN入门,真的通透;秀!靠这篇我竟然2天理解了CAN协议!实战STM32F4CAN!原文链接:https://blog.csdn.net/XiaoXiaoPengBo/article/details/116206252CAN详解(小白教程)原文链接:https://blog.csdn.net/xwwwj/article/details/105372234一篇易懂的CAN通讯协议指南1一篇易懂的CAN通讯协议指南1-知乎(zhihu.com)视频推荐CAN总线个人知识总

  4. 深度学习部署:Windows安装pycocotools报错解决方法 - 2

    深度学习部署:Windows安装pycocotools报错解决方法1.pycocotools库的简介2.pycocotools安装的坑3.解决办法更多Ai资讯:公主号AiCharm本系列是作者在跑一些深度学习实例时,遇到的各种各样的问题及解决办法,希望能够帮助到大家。ERROR:Commanderroredoutwithexitstatus1:'D:\Anaconda3\python.exe'-u-c'importsys,setuptools,tokenize;sys.argv[0]='"'"'C:\\Users\\46653\\AppData\\Local\\Temp\\pip-instal

  5. ruby - 我的 Ruby IRC 机器人没有连接到 IRC 服务器。我究竟做错了什么? - 2

    require"socket"server="irc.rizon.net"port="6667"nick="RubyIRCBot"channel="#0x40"s=TCPSocket.open(server,port)s.print("USERTesting",0)s.print("NICK#{nick}",0)s.print("JOIN#{channel}",0)这个IRC机器人没有连接到IRC服务器,我做错了什么? 最佳答案 失败并显示此消息::irc.shakeababy.net461*USER:Notenoughparame

  6. ruby - 我正在学习编程并选择了 Ruby。我应该升级到 Ruby 1.9 吗? - 2

    我完全不是程序员,正在学习使用Ruby和Rails框架进行编程。我目前正在使用Ruby1.8.7和Rails3.0.3,但我想知道我是否应该升级到Ruby1.9,因为我真的没有任何升级的“遗留”成本。缺点是什么?我是否会遇到与普通gem的兼容性问题,或者甚至其他我不太了解甚至无法预料的问题? 最佳答案 你应该升级。不要坚持从1.8.7开始。如果您发现不支持1.9.2的gem,请避免使用它们(因为它们很可能不被维护)。如果您对gem是否兼容1.9.2有任何疑问,您可以在以下位置查看:http://www.railsplugins.or

  7. ruby - 我如何学习 ruby​​ 的正则表达式? - 2

    如何学习ruby​​的正则表达式?(对于假人) 最佳答案 http://www.rubular.com/在Ruby中使用正则表达式时是一个很棒的工具,因为它可以立即将结果可视化。 关于ruby-我如何学习ruby​​的正则表达式?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/1881231/

  8. 深度学习12. CNN经典网络 VGG16 - 2

    深度学习12.CNN经典网络VGG16一、简介1.VGG来源2.VGG分类3.不同模型的参数数量4.3x3卷积核的好处5.关于学习率调度6.批归一化二、VGG16层分析1.层划分2.参数展开过程图解3.参数传递示例4.VGG16各层参数数量三、代码分析1.VGG16模型定义2.训练3.测试一、简介1.VGG来源VGG(VisualGeometryGroup)是一个视觉几何组在2014年提出的深度卷积神经网络架构。VGG在2014年ImageNet图像分类竞赛亚军,定位竞赛冠军;VGG网络采用连续的小卷积核(3x3)和池化层构建深度神经网络,网络深度可以达到16层或19层,其中VGG16和VGG

  9. 机器学习——时间序列ARIMA模型(四):自相关函数ACF和偏自相关函数PACF用于判断ARIMA模型中p、q参数取值 - 2

    文章目录1、自相关函数ACF2、偏自相关函数PACF3、ARIMA(p,d,q)的阶数判断4、代码实现1、引入所需依赖2、数据读取与处理3、一阶差分与绘图4、ACF5、PACF1、自相关函数ACF自相关函数反映了同一序列在不同时序的取值之间的相关性。公式:ACF(k)=ρk=Cov(yt,yt−k)Var(yt)ACF(k)=\rho_{k}=\frac{Cov(y_{t},y_{t-k})}{Var(y_{t})}ACF(k)=ρk​=Var(yt​)Cov(yt​,yt−k​)​其中分子用于求协方差矩阵,分母用于计算样本方差。求出的ACF值为[-1,1]。但对于一个平稳的AR模型,求出其滞

  10. 建模分析 | 平面2R机器人(二连杆)运动学与动力学建模(附Matlab仿真) - 2

    目录0专栏介绍1平面2R机器人概述2运动学建模2.1正运动学模型2.2逆运动学模型2.3机器人运动学仿真3动力学建模3.1计算动能3.2势能计算与动力学方程3.3动力学仿真0专栏介绍?附C++/Python/Matlab全套代码?课程设计、毕业设计、创新竞赛必备!详细介绍全局规划(图搜索、采样法、智能算法等);局部规划(DWA、APF等);曲线优化(贝塞尔曲线、B样条曲线等)。?详情:图解自动驾驶中的运动规划(MotionPlanning),附几十种规划算法1平面2R机器人概述如图1所示为本文的研究本体——平面2R机器人。对参数进行如下定义:机器人广义坐标

随机推荐