参考文献:
1)https://zhuanlan.zhihu.com/p/35709485
2)https://jackon.me/posts/why-use-cross-entropy-error-for-loss-function/
一、相关知识
1)熵:即衡量信息不确定性的大小
2)交叉熵:真实标签与预测标签之间的不同(越不同,包含的信息量越大,即熵越大)
3)损失函数:Loss(y_pred,y_ture)
二、交叉熵损失函数
-交叉熵损失函数:作用在softmax函数输出的概率分布向量之上,评估label和predicts之间的差距(熵越小即两者越接近)
计算公式:
- q——表示预测样本分布
- p——表示真实样本分布
在具体分类中:
- y——表示样本的label,正类为1,负类为0
- p——表示样本预测为正的概率
与相对熵(KL散度)的区别:
- 相对熵是衡量两个概率分布之间的差异
- 交叉熵是衡量真实与预测之间的概率分布差异,是相对熵的特殊情况,即其中一个分布(p(x))为已知(也就是熵为0),所以相对熵的后半部分删掉就是交叉熵
三、为什么要用交叉熵损失函数:
利用classification error = count of error items / count of all items来计算,无法更细致地衡量损失。具体例子:
模型一:(其中computed为预测结果,targets为实际结果)
模型二:
两个模型的classification error均为:=1/3=0.33,但显然第二个模型要优于第一个模型
而用交叉熵损失,可以清晰地体现两个模型的优劣:
第一个模型的 ACE ( average cross-entropy error ) 为:−(ln(0.4)+ln(0.4)+ln(0.1))/3=1.38
第二个模型的 ACE 是:−(ln(0.7)+ln(0.7)+ln(0.3))/3=0.64