一、均方差Mean Squared Error
torch.norm(y-pred, 2).pow(2)
二、交叉熵Cross Entropy
信息熵:,越大越稳定。
交叉熵:,。
其中KL散度代表了两个分布的,重合度越高,KL散度值越低,完全重合KL散度为0。 如果P=Q时,H(p,q) = H(p), 对于one-hot编码,若使模型预测的Pθ(p,q)接近真实值Pr(p,q),两者相等时即为H(p,q)=0。
二分类问题举例:非cat即dog
设真实值为y,预测值为p,H(y,p) = -(ylogp + (1-y)log(1-p)), 若y=1的话,H(y,p) = -logp,H(y,p)要最小,即p要最大化, 而p = P(y = 1 | x), 故优化是合理的,刚好让y=1的概率最大,与目标y=1,是一致的。 若y=0,H(y,p) = -log(1-p),H(y,p)要最小, 即要最大化log(1-p), 即p最小化, 而p = P(y = 1 | x),也就是最大化y=0的概率,与目标y=0,是一致的, 故优化是合理的。
多分类问题举例:
上面的Q1和下面的Q1算出来的H,上面的H大,下面的H小,说明下面的效果好,与我们实际观测到的下面的Q1比上面的Q1好是一致的,说明通过交叉熵来优化也是可行的。对比于mse,0.4到0.98,优化了0.3~0.4,而cross entropy优化了0.9左右,梯度更大了,优化更快了。
关于MSE和cross Entropy的取舍:
代码:F.cross_entropy()自动完成了softmax+cross-entropy