知行编程网知行编程网  2022-04-10 13:00 知行编程网 隐藏边栏 |   抢沙发  44 
文章评分 0 次,平均分 0.0

KL散度衡量的是两个概率分布的距离吗?

编辑:忆臻

https://www.zhihu.com/question/345907033

本文仅作为学术分享,如果侵权,会删文处理

机器学习算法与自然语言处理报道

KL散度衡量的是两个概率分布的距离吗?


作者:Chuang
https://www.zhihu.com/question/345907033/answer/823359858


因为KL散度不具有交换性,所以不能理解为“距离”的概念,衡量的并不是两个分布在空间中的远近,更准确的理解还是衡量一个分布相比另一个分布的信息损失(infomation lost)

在概率论或信息论中,KL散度( Kullback–Leibler divergence),又称相对熵(relative entropy),是描述两个概率分布P和Q差异的一种方法。

KL散度在信息论中有自己明确的物理意义,它是用来度量使用基于Q分布的编码来编码来自P分布的样本平均所需的额外的Bit个数。而其在机器学习领域的物理意义则是用来度量两个函数的相似程度或者相近程度。

如果跟最小编码联系起来。上图使用的是公式是均值形式,所以KL散度还可以改写为:

离散概率分布的KL散度计算公式:


KL散度衡量的是两个概率分布的距离吗?


连续概率分布的KL散度计算公式:


KL散度衡量的是两个概率分布的距离吗?


在香农信息论中,用基于P的编码方法去编码来自P的样本,其最优编码平均所需要的比特个数(即这个字符集的熵)为:


KL散度衡量的是两个概率分布的距离吗?


用基于P的编码方法去编码来自Q的样本,则所需要的比特个数变为:


KL散度衡量的是两个概率分布的距离吗?


于是,我们即可得出P与Q的KL散度


KL散度衡量的是两个概率分布的距离吗?


举个例子,假如一个字符发射器,随机发出0和1两种字符,真实发出概率分布为A,但实际不知道A的具体分布。现在通过观察,得到概率分布B与C。各个分布的具体情况如下:

A(0)=1/2,A(1)=1/2

B(0)=1/4,B(1)=3/4

C(0)=1/8,C(1)=7/8

那么,我们可以计算出得到如下:


KL散度衡量的是两个概率分布的距离吗?




KL散度衡量的是两个概率分布的距离吗?


也即,这两种方式来进行编码,其结果都使得平均编码长度增加了。我们也可以看出,按照概率分布B进行编码,要比按照C进行编码,平均每个符号增加的比特数目少。从分布上也可以看出,实际上B要比C更接近实际分布(因为其与A分布的KL散度更近)。

KL散度越小,说明两者分布更接近;当且仅当两者分布相同时,KL散度等于0.

有问题欢迎咨询和扔砖。


作者:匿名用户
https://www.zhihu.com/question/345907033/answer/823466562


KL散度显然并不满足数学上的距离的定义,但是大致可以认为是一种对概率分布间距离的度量,特别是当两个分布的差异很小的时候,是可以看作一个非常局部的分布间的距离的。

其实这个可以类比球面上点之间的欧氏距离,或者是图像之间的基于像素差异的距离,他们在点之间的差异很小的时候,其实都是比较合适的相应空间的点的距离的定义,但是当点之间的差异增大的时候,距离特性被削弱了,但是定性的,还是可以理解为距离。

至于编码长度,本来熵就是平均单信号的信源编码长度啊。


—完—

为您推荐

MIT 学生开发强大 Chrome 插件!功能远超普通 OCR 软件,能直接复制图片中文字!
清华学霸直博简历:CPU、OS、编译器全自主写
GitHub 3W 星超实用技术面试手册,看这篇就够了
如何利用Python开发人工智能入门项目
【微软】AI-神经网络基本原理简明教程

本篇文章来源于: 深度学习这件小事

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写

发表评论

表情 格式 链接 私密 签到
扫一扫二维码分享