首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >均方误差,交叉熵损失函数举例计算

均方误差,交叉熵损失函数举例计算

作者头像
zhangjiqun
发布2024-12-13 20:43:44
发布2024-12-13 20:43:44
3900
举报
文章被收录于专栏:计算机工具计算机工具

我们希望根据图片动物的轮廓、颜色等特征,来预测动物的类别,有三种可预测类别:猫、狗、猪。假设我们当前有两个模型(参数不同),这两个模型都是通过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判断错误,但是相对来说没有错得太离谱。

好了,有了模型之后,我们需要通过定义损失函数来判断模型在样本上的表现了,那么我们可以定义哪些损失函数呢?

Classification Error(分类错误率)

最为直接的损失函数定义为:

模型1:

模型2:

我们知道,模型1模型2虽然都是预测错了1个,但是相对来说模型2表现得更好,损失函数值照理来说应该更小,但是,很遗憾的是,classification error 并不能判断出来,所以这种损失函数虽然好理解,但表现不太好。

Mean Squared Error (均方误差)

均方误差损失也是一种比较常见的损失函数,其定义为:

模型1:

对所有样本的loss求平均:

模型2:

对所有样本的loss求平均:

我们发现,MSE能够判断出来模型2优于模型1,那为什么不采样这种损失函数呢?主要原因是在分类问题中,使用sigmoid/softmx得到概率,配合MSE损失函数时,采用梯度下降法进行学习时,会出现模型一开始训练时,学习速率非常慢的情况(MSE损失函数)。

有了上面的直观分析,我们可以清楚的看到,对于分类问题的损失函数来说,分类错误率和均方误差损失都不是很好的损失函数,下面我们来看一下交叉熵损失函数的表现情况。

交叉熵损失函数

现在我们利用这个表达式计算上面例子中的损失函数值:

模型1

对所有样本的loss求平均:

模型2:

对所有样本的loss求平均:

可以发现,交叉熵损失函数可以捕捉到模型1模型2预测效果的差异。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-12-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Classification Error(分类错误率)
  • Mean Squared Error (均方误差)
  • 交叉熵损失函数
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档