Entropy

熵是服从某一概率分布事件的理论最小平均编码长度。
E n t r o p y = − ∑ i P ( i ) l o g 2 P ( i ) Entropy =- \sum_{i}P(i)log_{2}P(i) Entropy=iP(i)log2P(i)
即 负的可能性的对数 的期望 代表了该事件理论上的平均最小编码长度。
H ( P ) = E x ∼ P [ − l o g P ( x ) ] H(P) = E_{x \sim P}[-logP(x)] H(P)=ExP[logP(x)]

Cross Entropy

交叉熵使实际编码长度和理论最小编码长度有了对比意义。
H ( P , Q ) = E x ∼ P [ − l o g Q ( x ) ] H(P, Q) = E_{x \sim P}[-logQ(x)] H(P,Q)=ExP[logQ(x)]
其中P是真实概率分布,Q是预估概率分布。
H ( P , Q ) > = H ( P ) H(P, Q) >= H(P) H(P,Q)>=H(P),当且仅当 P = Q P=Q P=Q时等号成立。因此可以将交叉熵用于分类损失函数。
torch.nn.functional.cross_entropy相比nn.torch.CrossEntropyLoss更灵活,可以用来计算指标,不进行梯度计算,反向传播等。
在这里插入图片描述

Binary Cross Entropy

二分类交叉熵是交叉熵的一个特例,当只有两个类别时,有 P ( x 1 ) = 1 − P ( x 2 ) P(x_{1})=1-P(x_{2}) P(x1)=1P(x2) Q ( x 1 ) = 1 − Q ( x 2 ) Q(x_{1})=1-Q(x_{2}) Q(x1)=1Q(x2).
在这里插入图片描述

torch.nn.BCEWithLogitsLoss

相比 torch.nn.BCELoss,其对输入进行Sigmod层,该函数的数值稳定性好于使用Sigmoid层和BCELoss的组合使用。
在这里插入图片描述

参考链接:
https://zhuanlan.zhihu.com/p/149186719
https://pytorch.org/docs/stable/generated/torch.nn.BCEWithLogitsLoss.html#torch.nn.BCEWithLogitsLoss
https://pytorch.org/docs/stable/generated/torch.nn.CrossEntropyLoss.html
https://pytorch.org/docs/stable/generated/torch.nn.BCELoss.html

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐