简介

Loss function

损失函数

用于定义单个训练样本与真实值之间的误差

Cost function

代价函数

用于定义单个批次/整个训练集样本与真实值之间的误差

Objective function

目标函数

泛指任意可以被优化的函数

损失函数用于衡量模型所做出的预测离真实值(GT)之间的偏离程度。

损失函数分为两种:回归损失(针对连续型变量)和分类损失(针对离散型变量)

知道每一种损失函数的优点和局限性,才能更好的利用它们去解决实际问题

回归损失(Regression Loss)

L1 Loss

也称为Mean Absolute Error,即平均绝对误差(MAE),它衡量的是预测值与真实值之间的距离的平均误差幅度。

作用范围:0到正无穷。

公式如下:(N个样本,M个类别)

优点:收敛速度快,能够对梯度给予合适的惩罚权重,使梯度更新的方向可以更加精确。

缺点:对异常值敏感,梯度更新的方向很容易受离群点所主导,不具备鲁棒性。

L2 Loss

也称为Mean Squared Error,即均方差(MSE),它衡量的是预测值与真实值之间距离的平方和。

作用范围:0到正无穷。

公式如下:(N个样本,M个类别)

优点:对离群点(outliers)或者异常值更具有鲁棒性。

缺点:

  1. 在0点处的导数不连续,使得求解效率低下,导致收敛速度慢

  2. 对于较小的损失值,其梯度也与其他区间损失值的梯度一样大,不利于网络学习

异常值对于实际业务非常重要,可使用MSE作为损失函数

异常值仅仅表示损坏的数据,可使用MAE作为损失函数

Smooth L1 Loss

出自 Fast RCNN

综合L1和L2损失的优点,在0点处附近采用了L2损失中的平方函数,解决了L1损失在0点处梯度不可导的问题,使其更加平滑易于收敛。

公式如下:

IoU Loss

出自 UnitBox

常规的Lx损失中,都是基于目标边界中的4个坐标点信息之间分别进行回归损失计算,因此,这些边框信息之间相互独立。

IoU损失将候选框的四个边界信息作为一个整体进行回归,从而实现准确、高效的定位,具有很好的尺度不变性。

为了解决IoU度量不可导的现象,引入了负Ln范数来间接计算IoU损失。

GIoU Loss

出自 Generalized Intersection over Union

分类损失(Classification Loss)

Cross Entropy Loss

其中y_i​为真实值,p_i​​为该类别的预测值(对单个样本)

Focal Loss

出自 Focal Loss for Dense Object Detection

出发点:解决one-stage算法不如two-stage算法准确率高的问题。

主要原因:样本的类别不均衡(比如前景和背景)

比如在很多输入图片中,我们利用网格去划分小窗口,大多数的窗口是不包含目标的。

直接运用原始的交叉熵损失,那么负样本所占比例会非常大,主导梯度的优化方向,即网络会偏向于将前景预测为背景。即使使用OHEM(在线困难样本挖掘)算法来处理不均衡的问题,虽然其增加了误分类样本的权重,但也容易忽略掉易分类样本。

解决方案:Focal loss聚焦于训练一个困难样本的稀疏集,通过直接在标准的交叉熵损失函数基础上做改进,引进了两个惩罚因子,来减少易分类样本的权重,使得模型在训练过程中更专注于困难样本。

Reference

一文看尽深度学习中的各种损失函数

损失函数|交叉熵损失函数

深度学习——损失函数(Regression Loss、Classification Loss)相关推荐

  1. 深度学习损失函数大全

    深度学习损失函数大全 比focal loss好的GHM 常见损失函数汇总 - 知乎 有图展示,效果还可以: 激活函数/损失函数汇总 - 知乎 这个也不错: 损失函数汇总(全网最全) - WSX_199 ...

  2. 深度学习基础(三)loss函数

    loss函数,即损失函数,是决定网络学习质量的关键.若网络结构不变的前提下,损失函数选择不当会导致模型精度差等后果.若有错误,敬请指正,Thank you! 目录 一.loss函数定义 二.常见的lo ...

  3. 网络收敛是什么意思_深度学习网络收敛之后的loss数值代表什么?

    忽略loss函数直接对loss数值进行讨论... 嗯--- 天呐!流氓! loss数值代表啥呢?我觉得代表的就是你的模型输出与真实结果之间的距离(度量),这个距离的计算方式是你自己定义的(loss函数 ...

  4. c++ log函数_认识这19种深度学习损失函数,才能说你了解深度学习!

    编辑:深度学习自然语言处理小编zenRRan 损失函数是深度学习中重要的概念,选择合适的损失函数是系统能够得到理想结果的保证,本文将以pytorch工具为例,介绍这19中损失函数与实现方法. 19种损 ...

  5. 收藏 | 深度学习损失函数大全(附代码实现)

    点击上方,选择星标或置顶,不定期资源大放送! 阅读大概需要15分钟 Follow小博主,每天更新前沿干货 来源:机器学习与数学 Tensorflow 和 PyTorch 很多都是相似的,这里以 PyT ...

  6. 深度学习损失函数不下降的解决方法

    https://blog.csdn.net/qq_37764129/article/details/94042702 当我们训练一个神经网络模型的时候,我们经常会遇到这样的一个头疼的问题,那就是,神经 ...

  7. 利用Theano理解深度学习——Logistic Regression

    一.Logistic Regression 1.LR模型 Logistic回归是广义线性模型的一种,属于线性的分类模型,在其模型中主要有两个参数,即:权重矩阵 W W W和偏置向量 b b b.在Lo ...

  8. 深度学习——损失函数推导过程(三个方面诠释损失函数的由来意义)

    三个维度诠释损失函数 我们在学习机器学习的过程中,通常利用损失函数来衡量模型所做出的预测离真实值之间的偏离程度. 损失函数大致分为3类方法 最小二乘法 极大似然估计法 交叉熵 1.最小二乘法 这个方法 ...

  9. [深度学习] - 网络模型训练过程的 loss 变化分析 (loss / val_loss / test_loss)

    目录 一.train set 和 test set 基础知识 二.分析 loss 和 val_loss (test_loss) 变化情况 一.train set 和 test set 基础知识 tra ...

最新文章

  1. 封装、继承、多态、访问符,范围修饰符
  2. 2017年深度学习优化算法最新进展:改进SGD和Adam方法
  3. 报告称苹果正扩展CareKit 组建团队推动医疗数据数字化
  4. linux服务器网卡做聚合,Linux物理网卡聚合及桥接
  5. Java黑皮书课后题第3章:*3.20(科学:风寒温度)编写一个程序,提示用户输入一个温度值和一个风速值。如果输入值合法,那么显示风寒温度,否则显示温度或风速是不合法数据
  6. GPIO8种方式小总结
  7. unsigned char s1 : 2的用法
  8. 拳王虚拟项目公社:2020年虚拟资源项目的特别的最新正确玩法
  9. Path of Equal Weight (30 分)
  10. 创建海思Hi3559a音视频同时播放的例子
  11. 输出三角形字符阵列图形(C语言)
  12. 高等数学总结(无穷级数)
  13. html中svg修改背景颜色,如何更改SVG图像中的背景颜色?
  14. 关于u盘运行veket系统这件事
  15. 活动预告:美团、Envoy、网易杭研、微博大咖齐聚,多角度剖析云原生实践
  16. 生命科学名言15:免疫
  17. MAC无法识别硬盘的解决方案
  18. C#的timer控件简介
  19. 前端代码统计行数(工具cloc)用法
  20. android p通话录音功能,Android编程实现通话录音功能的方法

热门文章

  1. 计算机电池电源转换,图吧小白教程 篇七十七:只需一步,延长MACBOOK电池寿命(硬改电源)...
  2. bcb 操作 Excel
  3. python split()函数
  4. Linux下安装window xp虚拟机
  5. 卷积神经网络 ——卷积神经网络的结构
  6. 记录载入页面时与 ws://XXX地址/sockjs-node/xxx/websocket 的连接中断---解决办法
  7. 对C语言中警告(warning)的处理方法
  8. 第二章:Djgo后台管理
  9. 使用tar分别压缩文件夹为文件
  10. MPP大规模并行计算数据库与分布式数据库的区别