CrossEntropyLoss

熵即一个事件所包含的信息量

$$
s(x)=-\sum_{i} P\left(x_{i}\right) \log {b} P\left(x{i}\right)
$$

KL散度

KL散度可用来描述两个分布的距离,KL散度不具备有对称性。
KL散度的定义

  • 对于离散分布

$$
D_{K L}(A | B)=\sum_{i} P_{A}\left(x_{i}\right) \log \left(\frac{P_{A}\left(x_{i}\right)}{P_{B}\left(x_{i}\right)}\right)=\sum_{i} P_{A}\left(x_{i}\right) \log \left(P_{A}\left(x_{i}\right)\right)-P_{A}\left(x_{i}\right) \log \left(P_{B}\left(x_{i}\right)\right)
$$

  • 对于连续分布

$$
D_{K L}(A | B)=\int a(x) \log \left(\frac{a(x)}{b(x)}\right)
$$

KL散度与交叉熵

交叉墒定义

$$
H(A, B)=-\sum_{i} P_{A}\left(x_{i}\right) \log \left(P_{B}\left(x_{i}\right)\right)
$$

可以发现

$$
H(A, B)=D_{K L}(A | B)+S(A)
$$

对于深度学习来说,A即测试集数据分布。但是测试集在训练过程中是不可见的,所以我们一般认定测试集和训练集是同分布的,所以A可看为训练集的分布。
因此S(A)可以看作为常量,最小化KL散度等价于最小化交叉熵。但事实测试集与训练集分布并不一致,故一般还需要假设存在一个高斯误差。

FocalLoss