先放结论:
- 相同点:当输出值与真实值接近的话,cross_entropy和rmse的值都会接近0
- cross_entropy具有rmse不具有的优点:避免学习速率降低的情况,方法是避免了 σ′(⋅) 的出现。 (注意这种效果仅限于输出层,隐藏层的学习速率与其使用的激活函数密切相关。)
- 均方损失:假设误差是正态分布,适用于线性的输出(如回归问题),特点是对于与真实结果差别越大,则惩罚力度越大,这并不适用于分类问题
- 交叉熵损失:假设误差是二值分布,可以视为预测概率分布和真实概率分布的相似程度。在分类问题中有良好的应用。
一、交叉熵与均方误差的对比
下面是3个训练样本经过使用softmax作为激活函数的神经网络的输出(computed)、真实结果(targets)以及是否预测正确的对比表格。
computed | targets | correct? |
---|---|---|
0.3, 0.3, 0.4 | 0, 0, 1 | yes |
0.3, 0.4, 0.3 | 0, 1, 0 | yes |
0.1, 0.2, 0.7 | 1, 0, 0 | no |
这是另外一个网络的输出结果:
computed | targets | correct? |
---|---|---|
0.1, 0.2, 0.7 | 0, 0, 1 | yes |
0.1, 0.7, 0.2 | 0, 1, 0 | yes |
0.3, 0.4, 0.3 | 1, 0, 0 | no |
交叉熵(Average Cross Entropy)
第一个样本的交叉熵为:
−(0∗ln0.3+0∗ln0.3+1∗ln0.4)=−ln0.4
对于神经网络来说,交叉熵的计算有点古怪,因为只有一项会被保留下来。因此三个样本的平均交叉熵为:
−(ln0.4+ln0.4+ln0.1)/3=1.38
第二个网络的平均交叉熵为:
−(ln0.7+ln0.7+ln0.3)/3=0.64
均方误差(Root Mean Square Error, RMSE)
RMSE=1n(yi−