MSE

转载自:损失函数 - MSE[1]

数理统计中均方误差是指参数估计值与参数值之差平方的期望值,记为MSE。MSE是衡量“平均误差”的一种较方便的方法,MSE可以评价数据的变化程度,MSE的值越小,说明预测模型描述实验数据具有更好的精确度。

SSE(和方差)

在统计学中,该参数计算的是拟合数据和原始对应点的误差的平方和,计算公式为:

其中是真实数据,是拟合的数据, ,从这里可以看出SSE接近于0,说明模型选择和拟合更好,数据预测也越成功。

缺点:

使用MSE的一个缺点就是其偏导值在输出概率值接近0或者接近1的时候非常小,这可能会造成模型刚开始训练时,偏导值几乎消失。

假设我们的MSE损失函数为:,偏导为:

,其中。可以看出来,在值接近0或者1的时候,的值都会接近于0,其函数图像如下,这导致模型在一开始学习的时候速率非常慢,而使用交叉熵作为损失函数则不会导致这样的情况发生。

举例说明:

预测政治倾向例子:

我们希望根据一个人的年龄、性别、年收入等相互独立的特征,来预测一个人的政治倾向,有三种可预测结果:民主党、共和党、其他党。假设我们当前有两个逻辑回归模型(参数不同),这两个模型都是通过sigmoid的方式得到对于每个预测结果的概率值:

模型1:

对于样本1和样本2以非常微弱的优势判断正确,对于样本3的判断则彻底错误。

模型2

对于样本1和样本2判断非常准确,对于样本3判断错误,但是相对来说没有错得太离谱。

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

分析方法:

  • 1. Classification Error(分类错误率)

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

模型1:cls error = 1/3

模型2:cls error = 1/3

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

  • 2. Mean Squared Error (均方误差)

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

模型1:

对所有样本的loss求平均:

模型2:

对所有样本的loss求平均:

我们发现,MSE能够判断出来模型2优于模型1,那为什么不采样这种损失函数呢?主要原因是逻辑回归配合MSE损失函数时,采用梯度下降法进行学习时,会出现模型一开始训练时,学习速率非常慢的情况。

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

Cross Entropy Error Function(交叉熵损失函数)

转载自损失函数 - 交叉熵损失函数[2]

二分类

在二分的情况下,模型最后需要预测的结果只有两种情况,对于每个类别我们的预测得到的概率为。此时表达式为:

其中:

- —— 表示样本i的label,正类为1,负类为0

-  —— 表示样本i预测为正的概率

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

模型1:

对所有样本的loss求平均:

模型2:

对所有样本的loss求平均:

函数图像:

多分类

多分类的情况实际上就是对二分类的扩展:

其中:

- ——类别的数量;

- ——指示变量(0或1),如果该类别和样本i的类别相同就是1,否则是0;

- ——对于观测样本i属于类别的预测概率。

优缺点

4.1 优点

在用梯度下降法做参数更新的时候,模型学习的速度取决于两个值:一、学习率;二、偏导值。其中,学习率是我们需要设置的超参数,所以我们重点关注偏导值。从上面的式子中,我们发现,偏导值的大小取决于,我们重点关注后者,后者的大小值反映了我们模型的错误程度,该值越大,说明模型效果越差,但是该值越大同时也会使得偏导值越大,从而模型学习速度更快。所以,使用逻辑函数得到概率,并结合交叉熵当损失函数时,在模型效果差的时候学习速度比较快,在模型效果好的时候学习速度变慢。

4.2 缺点

Deng [3]在2019年提出了ArcFace Loss,并在论文里说了Softmax Loss的两个缺点:1、随着分类数目的增大,分类层的线性变化矩阵参数也随着增大;2、对于封闭集分类问题,学习到的特征是可分离的,但对于开放集人脸识别问题,所学特征却没有足够的区分性。对于人脸识别问题,首先人脸数目(对应分类数目)是很多的,而且会不断有新的人脸进来,不是一个封闭集分类问题。

另外,sigmoid(softmax)+cross-entropy loss 擅长于学习类间的信息,因为它采用了类间竞争机制,它只关心对于正确标签预测概率的准确性,忽略了其他非正确标签的差异,导致学习到的特征比较散。基于这个问题的优化有很多,比如对softmax进行改进,如L-Softmax、SM-Softmax、AM-Softmax等。

Reference

[1]损失函数 - MSE

[2]损失函数 - 交叉熵损失函数

[3] Deng, Jiankang, et al. "Arcface: Additive angular margin loss for deep face recognition." Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2019.

【转载】损失函数 - 交叉熵损失函数相关推荐

  1. 损失函数 -交叉熵损失函数

    参考文献: 1)https://zhuanlan.zhihu.com/p/35709485 2)https://jackon.me/posts/why-use-cross-entropy-error- ...

  2. 损失函数——交叉熵损失函数(CrossEntropy Loss)

    损失函数--交叉熵损失函数(CrossEntropy Loss) 交叉熵函数为在处理分类问题中常用的一种损失函数,其具体公式为: 1.交叉熵损失函数由来 交叉熵是信息论中的一个重要概念,主要用于度量两 ...

  3. 损失函数——交叉熵损失函数

    交叉熵代价函数(Cross-entropy cost function)是用来衡量人工神经网络(ANN)的预测值与实际值的一种方式.与二次代价函数相比,它能更有效地促进ANN的训练.在介绍交叉熵代价函 ...

  4. 损失函数 - 交叉熵损失函数

    Cross Entropy Error Function(交叉熵损失函数) 例子 表达式 函数性质 学习过程 优缺点 这篇文章中,讨论的Cross Entropy损失函数常用于分类问题中,但是为什么它 ...

  5. sigmoid函数求导_交叉熵损失函数的求导(Logistic回归)

    目录 前言 交叉熵损失函数 交叉熵损失函数的求导 前言 最近有遇到些同学找我讨论sigmoid训练多标签或者用在目标检测中的问题,我想写一些他们的东西,想到以前的博客里躺着这篇文章(2015年读研时机 ...

  6. 人脸识别-Loss-2010:Softmax Loss(Softmax激活函数 + “交叉熵损失函数”)【样本3真实标签为c_5,则样本3的损失:loss_3=-log(\hat{y}_5^3)】

    一般一个CNN网络主要包含卷积层,池化层(pooling),全连接层,损失层等. 全连接层:等号左边部分就是全连接层做的事, W W W 是全连接层的参数,我们也称为权值, X X X 是全连接层的输 ...

  7. 【交叉熵损失函数】关于交叉熵损失函数的一些理解

    目录 0. 前言 1.损失函数(Loss Function) 1.1 损失项 1.2 正则化项 2. 交叉熵损失函数 2.1 softmax 2.2 交叉熵 0. 前言 有段时间没写博客了,前段时间主 ...

  8. python交叉熵损失函数实现_Softmax和交叉熵的深度解析和Python实现

    原标题:Softmax和交叉熵的深度解析和Python实现 作者 | PARAS DAHAL 译者 | zzq [导读]如果你稍微了解一点深度学习的知识或者看过深度学习的在线课程,你就一定知道最基础的 ...

  9. 交叉熵损失函数优缺点_交叉熵损失函数的优点(转载)

    第一篇: 利用一些饱和激活函数的如sigmoid激活时,假如利用均方误差损失,那么损失函数向最后一层的权重传递梯度时,梯度公式为 可见梯度与最后一层的激活函数的导数成正比,因此,如果起始输出值比较大, ...

最新文章

  1. 单片机值得学吗?会单片机能找什么工作?
  2. windows下sse性能对比
  3. Spring+Hibernate的典型配置
  4. Cortex-A 处理器运行模型
  5. Netgear wndr3700v2 路由器刷OpenWrt打造全能服务器(五)SVN服务
  6. CRM One order里user status和system status的mapping逻辑
  7. Mock2 moco框架的http协议get方法Mock的实现
  8. 以为来自东华理工大学学生的SCI投稿经验
  9. linux安装.AppImage后缀安装包
  10. 0005-Windows Kerberos客户端配置并访问CDH
  11. Q114:阅读PBRT-V3官方源代码的正确姿势
  12. selenium官网下载地址以及相关介绍
  13. 北向接口jms消息服务器,运行日志 - eSight V300R010C00SPC600 维护指南 18 - 华为
  14. Exadata想要补装Oracle 11g的注意事项
  15. linux cat获取ip,linux – “cat / proc / net / dev”和“ip -s link”显示不同的统计信息.哪一个在撒谎?...
  16. 电信 dns服务器 不稳定,知名DNS服务商114DNS故障,你访问受影响了吗?
  17. element中table表格和已选数据联动
  18. 广告机-开机自动播放-视频-电影-图片-竖屏-分屏-展示机
  19. 解决国外链接下载软件速度慢的方法
  20. oracle IF_Oracle实时同步大数据平台解决方案

热门文章

  1. 电脑操作最忌讳18个小动作
  2. HashMap底层详讲
  3. C语言字符串笔试题含答案
  4. 【学习笔记】Python基础入门知识笔记,万字攻略带你走进Python编程
  5. [LiteratureReview]A survey of image semantics-based visual simultaneous localization and mapping....
  6. linux指令查询ip地址
  7. 人人都是产品经理 产品经理培训 互联网产品经理
  8. 机器学习-各类学习器评价指标
  9. kafka的isr理解
  10. win7升级win10后出现VisualSVN Server提供程序无法执行所尝试的操作 0x80041024