交叉熵损失cross entropy loss

除了均方差,在神经网络中很常用的一个损失函数是交叉熵损失cross entropy loss。这里记录一下它的概念。
Entropy
熵,衡量不确定性。
信息熵越大,混乱程度越大,信息量越大。
当概率均等的时候信息熵最大,这时系统对取什么态没有偏向性,所以混乱度最大。
在这里插入图片描述
Cross Entropy
交叉熵,是与两个分布有关的概念
交叉熵损失cross entropy loss_第1张图片
KL Divergence 散度,衡量两个分布的差别大小:
交叉熵损失cross entropy loss_第2张图片
对于0-1的情况H§=0所以优化H(p,q)就是直接优化散度

举例
五分类问题
真实分布:P1[1 0 0 0 0]
交叉熵损失cross entropy loss_第3张图片
模型分布:Q1=[0.4 0.3 0.05 0.05 0.2]

计算交叉熵:
交叉熵损失cross entropy loss_第4张图片
如果模型分布更接近真实分布:Q1=[0.98 0.01 0 0 0.01]

交叉熵损失cross entropy loss_第5张图片
总结
在分类问题中,相比于均方差,交叉熵损失的梯度会更大。(上例用均方差计算,只会下降0.3-0.4,而用交叉熵可以下降接近0.9)
但是MSE的梯度在计算的时候更加简单。所以有时要根据实际情况进行选择。
在pytorch中,计算softmax和交叉熵损失一般是合在一起的。

你可能感兴趣的:(pytorch)