admin 管理员组文章数量: 1086019
2024年3月21日发(作者:python 正则表达式处理文字)
交叉熵损失函数的优点
这篇文章中,讨论的Cross Entropy损失函数常用于分类问题
中,但是为什么它会在分类问题中这么有效呢?我们先从一个
简单的分类例子来入手。
1. 图像分类任务
我们希望根据图片动物的轮廓、颜色等特征,来预测动物的类
别,有三种可预测类别:猫、狗、猪。假设我们当前有两个模
型(参数不同),这两个模型都是通过sigmoid/softmax的方
式得到对于每个预测结果的概率值:
模型1:
预测
真实
是否正确
0.3 0.3 0.4
0 0 1 (猪)
正确
0.3 0.4 0.3
0 1 0 (狗)
正确
0.1 0.2 0.7
1 0 0 (猫)
错误
模型1对样本1和样本2是对的,优势非常微弱,但对样本3
是完全错误的。
模型2:
预测
真实
是否正确
0.1 0.2 0.7
0 0 1 (猪)
正确
0.1 0.7 0.2
0 1 0 (狗)
正确
0.3 0.4 0.3
1 0 0 (猫)
错误
2模型对样本1和样本2很准确,对样本3有错,但也不算
错太多。
好了,有了模型,我们需要定义损失函数来判断模型在样本
上的表现。那么我们可以定义哪些损失函数呢?
1.1 Classification Error(分类错误率)
最为直接的损失函数定义为: classification
error=frac{count of error items}{count of all
items}
模型1:classification error=frac{1}{3}
模型2:classification error=frac{1}{3}
我们知道,模型1和模型2虽然都是预测错了1个,但是相对
来说模型2表现得更好,损失函数值照理来说应该更小,但
是,很遗憾的是, classification error 并不能判断出
来,所以这种损失函数虽然好理解,但表现不太好。
1.2 Mean Squared Error (均方误差)
均方误差损失也是一种比较常见的损失函数,其定义为:
MSE=frac{1}{n}sum_{i}^n(hat{y_i}-y_i)^2
模型1:
begin{aligned} text{sample 1 loss=}(0.3-0)^2 + (0.3-
0)^2 + (0.4-1)^2 = 0.54 text{sample 2 loss=}(0.3-
0)^2 + (0.4-1)^2 + (0.3-0)^2 = 0.54 text{sample 3
loss=}(0.1-1)^2 + (0.2-0)^2 + (0.7-0)^2 = 1.34
end{aligned}
对所有样本的loss求平均:
MSE=frac{0.54+0.54+1.34}{3}=0.81
版权声明:本文标题:交叉熵损失函数的优点 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://roclinux.cn/p/1711029991a584914.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论