交叉熵损失函数

参考文献:

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之间的差距(熵越小即两者越接近)
计算公式:
交叉熵损失函数_第1张图片

  • q——表示预测样本分布
  • p——表示真实样本分布

在具体分类中:
在这里插入图片描述

  • y——表示样本的label,正类为1,负类为0
  • p——表示样本预测为正的概率

与相对熵(KL散度)的区别:
在这里插入图片描述

  • 相对熵是衡量两个概率分布之间的差异
  • 交叉熵是衡量真实与预测之间的概率分布差异,是相对熵的特殊情况,即其中一个分布(p(x))为已知(也就是熵为0),所以相对熵的后半部分删掉就是交叉熵

三、为什么要用交叉熵损失函数:

利用classification error = count of error items / count of all items来计算,无法更细致地衡量损失。具体例子:
模型一:(其中computed为预测结果,targets为实际结果)
交叉熵损失函数_第2张图片
模型二:
交叉熵损失函数_第3张图片
两个模型的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

你可能感兴趣的:(神经网络构建)