1、概念
Kullback-Leibler Divergence,即K-L散度。是一种量化两种概率分布P和Q之间差异的方式,又叫相对熵。
先给出结论:
其实我们可以把每张图像都看作是一个像素x的概率分布,那么使用K-L散度就可以量化predict图像和label图像之间的差异。
(其实最开始我是一位loss function定义为 IoU就好呢,后来发现绝大多数都使用K-L散度,只在Kaggle挑战赛上见过使用IoU的)
(交叉熵是相对熵的扩展)
2、详解
2.1 K-L散度
已知 P(x) 和 Q(x) 是随机变量x的两种不同分布,则 P 对 Q 的 K-L散度为:
由于 代表随机变量x的每一个取值,那么:
可以看出,K-L散度其实是数据的分布 P 和分布 Q 之间的对数差值的期望,同时也表示 P 和 Q 间信息损失的二进制位数。
2.2 交叉熵(cross entropy)
对于 K-L散度公式进行变形:
等式的前一部分恰巧就是 P(x)的熵,等式的后一部分,就是交叉熵:
在深度学习中,需要使用K-L散度评估labels和predicts间的差距,即:
但是由于KL散度中的前一部分 不变,故在优化过程中,只需要关注交叉熵 CE 就好。
所以一般在深度学习中直接用交叉熵做Loss,评估模型。
其实我们也可以直接把交叉熵理解判断两个分布相似性的依据,本文则进一步解释了交叉熵的由来,即交叉熵是由相对熵(K-L散度)衍生出来的。
参考: