CrossEntropyLoss

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

s(x)=iP(xi)logbP(xi)s(x)=-\sum_{i} P\left(x_{i}\right) \log _{b} P\left(x_{i}\right)

KL散度

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

  • 对于离散分布

DKL(AB)=iPA(xi)log(PA(xi)PB(xi))=iPA(xi)log(PA(xi))PA(xi)log(PB(xi))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)

  • 对于连续分布

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

KL散度与交叉熵

交叉墒定义

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

可以发现

H(A,B)=DKL(AB)+S(A)H(A, B)=D_{K L}(A \| B)+S(A)

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

FocalLoss