KL散度(Kullback–Leibler divergence)

来源:互联网 发布:淘宝app是h5开发的吗 编辑:程序博客网 时间:2024/05/21 08:04

统计学上,KL散度用来衡量一个概率分布Q对另一个概率分布P偏离的程度,记为DKL(P||Q). 在信息论的编码理论中,KL散度也称为相对熵(relative entropy)或信息增益(information gain). 在,用来度量使用Q的最优编码(而不是使用P的最优编码)来编码来自P的样本平均额外所需的比特数,即用概率分布Q来拟合真实分布P时产生的信息损耗

由香农信息论,给定一个字符集的概率分布,可以设计一种编码,使得表示该字符集组成的字符串平均需要的比特数最少. 假设这个字符集是XxXx出现的概率为P(x),那么其最优编码所需要的比特数等于这和字符集的(entropy):

H(x)=xXP(x)logP(x)

假设在字符集X上的另一个分布Q(x),则使用Q来编码平均每个字符编码所多需要的比特数(即KL散度)为:
DKL(P||Q)=xXP(x)logQ(x)(xXP(x)logP(x))=xXP(x)logP(x)Q(x)

X为连续型随机变量时,KL散度形式为:
DKL(P||Q)=p(x)logp(x)q(x)dx

其中p(x),q(x)为对应分布的密度函数。

直观上来看,KL散度是对两个概率分布“距离”的度量。但实际上,它并不是一个真正的距离:KL散度违反了三角形不等式和对称性DKL(P||Q)DKL(Q||P)
事实上,DKL(P||Q)0。由于对数函数是上凸函数,所以:

DKL(P||Q)=p(x)logp(x)q(x)dx=E[logp(x)q(x)]=E[logq(x)p(x)]logp(x)q(x)p(x)dx=logq(x)dx=0

当且仅当p(x)=q(x)时,等号成立。即两个分布相同时,KL散度为0。

原创粉丝点击