编辑:忆臻
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散度计算公式:
在香农信息论中,用基于P的编码方法去编码来自P的样本,其最优编码平均所需要的比特个数(即这个字符集的熵)为:
用基于P的编码方法去编码来自Q的样本,则所需要的比特个数变为:
于是,我们即可得出P与Q的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
那么,我们可以计算出得到如下:
也即,这两种方式来进行编码,其结果都使得平均编码长度增加了。我们也可以看出,按照概率分布B进行编码,要比按照C进行编码,平均每个符号增加的比特数目少。从分布上也可以看出,实际上B要比C更接近实际分布(因为其与A分布的KL散度更近)。
KL散度越小,说明两者分布更接近;当且仅当两者分布相同时,KL散度等于0.
有问题欢迎咨询和扔砖。
作者:匿名用户
https://www.zhihu.com/question/345907033/answer/823466562
KL散度显然并不满足数学上的距离的定义,但是大致可以认为是一种对概率分布间距离的度量,特别是当两个分布的差异很小的时候,是可以看作一个非常局部的分布间的距离的。
其实这个可以类比球面上点之间的欧氏距离,或者是图像之间的基于像素差异的距离,他们在点之间的差异很小的时候,其实都是比较合适的相应空间的点的距离的定义,但是当点之间的差异增大的时候,距离特性被削弱了,但是定性的,还是可以理解为距离。
至于编码长度,本来熵就是平均单信号的信源编码长度啊。
为您推荐
本篇文章来源于: 深度学习这件小事
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ 你可能需要一份《深度学习500问》03/05
- ♥ 数据科学很性感?不,其实它非常枯燥!07/17
- ♥ 你可能不再需要Attention:这是一个贼简单的神经机器翻译架构03/06
- ♥ 视觉增强词向量:我是词向量,我开眼了!02/11
- ♥ 图解谷歌神经机器翻译核心部分:注意力机制03/14
- ♥ 异常处理的其他3个小技巧02/27
内容反馈