目录

代码

回归问题的损失函数

分类问题的损失函数

1、 0-1损失 (zero-one loss)

2、Logistic loss

3、Hinge loss

4、指数损失(Exponential loss)

机器学习的损失函数

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

交叉熵优点

Mean Squared Error (均方误差)

均方差不足

实例

​ 交叉熵求解损失:

均方差函数求损失

学习过程

学习笔记

参考文献


代码

损失函数的一般表示为L(y,f(x)),用以衡量真实值y和预测值f(x)之间不一致的程度,一般越小越好。为了便于不同损失函数的比较,常将其表示为单变量的函数,在回归问题中这个变量为yf(x),在分类问题中则为yf(x)。下面分别进行讨论。

回归问题的损失函数

回归问题中yf(x)皆为实数∈R,因此用残差 yf(x)来度量二者的不一致程度。残差 (的绝对值) 越大,则损失函数越大,学习出来的模型效果就越差(这里不考虑正则化问题)。

其中最常用的是平方损失,然而其缺点是对于异常点会施以较大的惩罚,因而不够robust。如果有较多异常点,则绝对值损失表现较好,但绝对值损失的缺点是在yf(x)=0处不连续可导,因而不容易优化。
Huber损失是对二者的综合,当|yf(x)|小于一个事先指定的值δ时,变为平方损失,大于δ时,则变成类似于绝对值损失,因此也是比较robust的损失函数。三者的图形比较如下:

huber函数与smoothL1函数差不多


分类问题的损失函数

对于二分类问题,y∈{−1,+1}

,损失函数常表示为关于yf(x)

的单调递减形式。如下图:

yf(x)被称为margin,其作用类似于回归问题中的残差 yf(x)。
二分类问题中的分类规则通常为 sign(f(x))={+1ifyf(x)≥0−1ifyf(x)<0

可以看到如果 yf(x)>0,则样本分类正确,yf(x)<0 则分类错误,而相应的分类决策边界即为 f(x)=0

。所以最小化损失函数也可以看作是最大化 margin 的过程,任何合格的分类损失函数都应该对 margin<0 的样本施以较大的惩罚。

1、 0-1损失 (zero-one loss)

0-1损失对每个错分类点都施以相同的惩罚,这样那些“错的离谱“ (即 margin→−∞)的点并不会收到大的关注,这在直觉上不是很合适。另外0-1损失不连续、非凸,优化困难,因而常使用其他的代理损失函数进行优化。

2、Logistic loss

3、Hinge loss

L(y,f(x))=max(0,1−yf(x))

hinge loss为svm中使用的损失函数,hinge loss使得yf(x)>1的样本损失皆为0,由此带来了稀疏解,使得svm仅通过少量的支持向量就能确定最终超平面。

hinge loss被翻译为“合页损失”,那么合页究竟长啥样?如图,确实有点像hinge loss的形状:

4、指数损失(Exponential loss)

L(y,f(x))=eyf(x)

exponential loss为AdaBoost中使用的损失函数,使用exponential loss能比较方便地利用加法模型推导出AdaBoost算法 (具体推导过程)。然而其和squared loss一样,对异常点敏感,不够robust。

最后来张全家福:

从上图可以看出上面介绍的这些损失函数都可以看作是0-1损失的单调连续近似函数,而因为这些损失函数通常是凸的连续函数,因此常用来代替0-1损失进行优化。它们的相同点是都随着margin→−∞

而加大惩罚;不同点在于,logistic loss和hinge loss都是线性增长,而exponential loss是以指数增长。

值得注意的是上图中modified huber loss的走向和exponential loss差不多,并不能看出其robust的属性。其实这和算法时间复杂度一样,成倍放大了之后才能体现出巨大差异:

机器学习的损失函数

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

交叉熵优点

Mean Squared Error (均方误差)

均方差不足

实例

交叉熵求解损失:

均方差函数求损失

学习过程

4、根据损失函数进行梯度计算,反向传播更新参数,反复1-4

学习笔记

参考文献

https://zhuanlan.zhihu.com/p/35709485

常见回归和分类损失函数比较

【深度学习】——分类损失函数、回归损失函数、交叉熵损失函数、均方差损失函数、损失函数曲线、相关推荐

  1. 深度学习基础入门篇[五]:交叉熵损失函数、MSE、CTC损失适用于字识别语音等序列问题、Balanced L1 Loss适用于目标检测

    [深度学习入门到进阶]必看系列,含激活函数.优化策略.损失函数.模型调优.归一化算法.卷积模型.序列模型.预训练模型.对抗神经网络等 专栏详细介绍:[深度学习入门到进阶]必看系列,含激活函数.优化策略 ...

  2. 机器学习入门(08)— 损失函数作用和分类(均方误差、交叉熵误差)

    神经网络的学习中的"学习"是指从训练数据中自动获取最优权重参数的过程. 为了使神经网络能进行学习,将导入损失函数这一指标.而学习的目的就是以该损失函数为基准,找出能使它的值达到最小 ...

  3. 大白话5分钟带你走进人工智能-第十八节逻辑回归之交叉熵损失函数梯度求解过程(3)

                                                   第十八节逻辑回归之交叉熵损失函数梯度求解过程(2) 上一节中,我们讲解了交叉熵损失函数的概念,目标是要找到 ...

  4. 【TensorFlow系列二】经典损失函数(交叉熵、均方差)

    ↑ 点击上方[计算机视觉联盟]关注我们 1.交叉熵 交叉熵是分类问题中使用比较广的一种损失函数,刻画了两个概率分布之间的距离. 给定两个概率分布p和q,通过q来表示p的交叉熵为: 交叉熵刻画的是两个概 ...

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

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

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

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

  7. 为什么LR模型损失函数使用交叉熵不用均方差?

    如果使用均方差作为损失函数 所以,如果当前模型的输出接近0或者1时,σ′(z)就会非常小,接近0,使得求得的梯度很小,损失函数收敛的很慢. 如果使用交叉熵作为损失函数 原文链接:为什么LR模型损失函数 ...

  8. 神经网络学习中的SoftMax与交叉熵

    简 介: 对于在深度学习中的两个常见的函数SoftMax,交叉熵进行的探讨.在利用paddle平台中的反向求微分进行验证的过程中,发现结果 与数学定义有差别.具体原因还需要之后进行查找. 关键词: 交 ...

  9. 深度学习分类pytorch_pytorch使用转移学习的狗品种分类器

    深度学习分类pytorch So have you heard the word deep learning before? Or have you just started learning it? ...

  10. 深度学习基础--SOFTMAX回归(单层神经网络)

    深度学习基础–SOFTMAX回归(单层神经网络) 最近在阅读一本书籍–Dive-into-DL-Pytorch(动手学深度学习),链接:https://github.com/newmonkey/Div ...

最新文章

  1. return view前端怎么获取_前端判断上传图片格式
  2. NOIP2016普及组第四题——魔法阵
  3. 进站公交车碾起积水溅上轿车两男子驾车撞伤公交司机
  4. 分享程序员提升自身能力的7个实用网站
  5. Flask 源代码阅读笔记
  6. c语言突然出现图片,c语言能显示图片吗
  7. Python3安装核心价值观包报错
  8. 如何给awk传外部参数
  9. 树的计数 + prufer序列与Cayley公式 学习笔记
  10. mysql查询语句中使用星号真的慢的要死?
  11. 修真院七种教学工具之学习日报
  12. Excel基础(01)认识excel
  13. PHP CLI模式 - 执行代码
  14. 苹果7服务器是什么系统版本,最新系统 iOS14.7 Beta1 版本推出!
  15. 中职计算机应用专业核心素养的,基于核心素养的中职计算机应用专业“课程革命”...
  16. oracle escape关键字用法
  17. C/C++ 用递归(分治法)解决多米诺骨牌问题
  18. 5.1.6 守护进程daemon
  19. 数字图像处理第十章 图像分割
  20. 考研复试英语口语最全攻略!

热门文章

  1. 数据同步工具MongoShake
  2. 爬虫--百度翻译(自动识别中英文)
  3. 网页设计浮动和定位小总结
  4. java通过文件路径实现抠图
  5. Android-日历
  6. FPGA DS18B20温度传感器的开发
  7. 基于Web的Kafka管理器工具之Kafka-manager的编译部署详细安装 (支持kafka0.8、0.9和0.10以后版本)(图文详解)(默认端口或任意自定义端口)...
  8. 陀螺研究院 | 产业区块链发展周报(12.26—1.1)
  9. MS2107 CVBS转USB2.0 音视频采集芯片,支持1080P@30HZ输出
  10. 写多了博客,就想沽名钓誉