在读《Dive into Deep Learning》关于 regression 的章节时,我产生了这个疑问,思索查询后整理成了这篇博文。
原文在这里:Loss Function
原因之一:
classification 的 predicted label 和 real label 都是概率分布,误差也用概率表达最为自然。我们期望 predicted label 更“极端”、更接近 real label 的 one hot(它就很极端——只有一个值是 1,其余都是 0),数值平均和这个期望背道而驰。
原因之二:
Cross entropy 和 softmax 更般配、节省计算复杂度。前者是对数计算,后者是指数计算。简直天作之合。
原因之三:
用 MSE 的计算方法会“稀释” loss,降低梯度下降的速度。以一个 binary classification 为例:
- True label 是 [1, 0]
- Predicted label 是 [0.01, 0.99]。
可以很直观的看出这个预测错得离谱。我们分别用 MSE 和 Cross entropy 来算一算。
- MSE = $((1-0.01)^2 + (0-0.99)^2)/2$ = 0.49005
- Cross Entropy loss = $-(1*\log 0.01 + 0*\log 0.99)$ = 2.0
从结果可以看出,Cross entropy loss 要比 MSE 大得多,这也就让梯度下降更快,模型优化速度更快。