KL散度、JS散度和交叉熵都是用来衡量两个概率分布之间的差异性的指标。不同之处在于它们的数学表达。
对于概率分布P(x)和Q(x)
KL散度
又称KL距离,相对熵
其中 p(x) 是目标分布,q(x)是去匹配的分布,当P(x)和Q(x)的相似度越高,KL散度越小。
KL散度主要有两个性质:
-
不对称性
尽管KL散度从直观上是个度量或距离函数,但它并不是一个真正的度量或者距离,因为它不具有对称性,即D(P||Q)!=D(Q||P)。 -
非负性
相对熵的值是非负值,即D(P||Q)>0。
JS散度
JS散度也称JS距离,是KL散度的一种变形。
但是不同于KL主要又两方面:
(1)值域范围
JS散度的值域范围是[0,1],相同则是0,相反为1。相较于KL,对相似度的判别更确切了。
(2)对称性
即 JS(P||Q)=JS(Q||P),从数学表达式中就可以看出。
交叉熵
在神经网络中,交叉熵可以作为损失函数,因为它可以衡量P和Q的相似性
交叉熵和相对熵的关系: