KL散度、JS散度和交叉熵
KL散度、JS散度和交叉熵三者都是用来衡量两个概率分布之间的差异性的指标。不同之处在于它们的数学表达。
对于概率分布P(x)和Q(x):
1. KL散度(Kullback–Leibler divergence)
KL散度的定义
KL divergence(KL散度又叫相对熵): 它表示用分布 q(x) 模拟真实分布 p(x) 所需要的额外信息。同时也叫KL距离,就是两个随机分布间距离的度量。
取值范围:
[
0
,
+
∞
]
[0, +\infty ]
[0,+∞],当两个分布接近相同的时候KL散度取值为0,当两个分布差异越来越大的时候KL散度值就会越来越大。
当 p(x) 和 q(x) 的相似度越高,KL散度越小。
注意: 直观来说,由于 p ( x ) 是已知的分布(真实分布),H ( p ) 是个常数,交叉熵和KL散度之间相差一个这样的常数(信息熵)。
KL散度的性质
相对熵(KL散度)主要有两个性质:
- 非负性。相对熵的值是非负值,即: D K L ( p ∣ ∣ q ) ≥ 0 {D}_{K L}({p} ||{q})\geq 0 DKL(p∣∣q)≥0。
- 不对称性。尽管KL散度从直观上是个度量或距离函数,但它并不是一个真正的度量或者距离,因为它不具有对称性,即: D K L ( p ∣ ∣ q ) ≠ D K L ( q ∣ ∣ p ) {D}_{K L}({p} || {q})\neq{D}_{K L}({q} || {p}) DKL(p∣∣q)=DKL(q∣∣p)。
JS散度(Jensen-Shannon divergence)
JS散度也称JS距离,是KL散度的一种变形。
但是不同于KL主要又两方面:
(1)值域范围
JS散度的值域范围是[0,1],相同则是0,相反为1。相较于KL,对相似度的判别更确切了。
(2)对称性
即 JS(P||Q)=JS(Q||P),从数学表达式中就可以看出。
交叉熵(Cross Entropy)
在神经网络中,交叉熵可以作为损失函数,因为它可以衡量P和Q的相似性。
交叉熵和相对熵的关系:
以上都是基于离散分布的概率,如果是连续的数据,则需要对数据进行Probability Density Estimate来确定数据的概率分布,就不是求和而是通过求积分的形式进行计算了。
版权声明:本文为CSDN博主「布衣小张」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/abc13526222160/article/details/103168803