KL距离,即Kullback-Leibler Divergence,也被成为信息熵(Relative Entropy)。一般KL距离用来衡量同意事件中,两种概率分布的相似程度,这个值越小,则相似程度越高。
计算的实例: 我们抛两枚硬币,真实的概率为A,但是我们只能通过观察得到B和C,如下所示。 A(0) = 1/2, A(1) = 1/2; B(0) = 1/4, A(1) = 3/4; C(0) = 1/8, C(1) = 7/8;
进一步计算A与B和C的KL距离: D(A||B) = (1/2)log((1/2)/(1/4)) + (1/2)log((1/2)/(3/4)) = 1/2log(4/3) D(A||C) = (1/2)log((1/2)/(1/8)) + (1/2)log((1/2)/(7/8)) = 1/2log(16/7)
可以看到,B比C更接近与实际的A分布。
需要注意的是,KL距离虽然叫做距离,但是并不是真正的距离,不符合距离的对称性和三角不等式。
JS散度是基于KL距离提出的改进,取值在0到1之间:
JS散度是对称的并且取值在0-1之间,另外,KL与JSD都存在一个问题,在很极端的情况下,KL值没有意义,JSD会趋于一个常数,这样在算法中梯度变为了0.
欢迎关注!