文章目录

  • 1、什么是损失函数
  • 2、为什么要使用损失函数
  • 3、损失函数分类
    • 1、分类一
    • 2、分类二
    • 3、分类三
      • 3.1基于距离度量的损失函数
        • 3.1.1 均方误差损失函数(MSE)
        • 3.1.2 L2损失函数
        • 3.1.3 L1损失函数
        • 3.1.4 Smooth L1损失函数
        • 3.1.5 huber损失函数
      • 3.2 基于概率分布度量的损失函数
        • 3.2.1 KL散度函数(相对熵)
        • 3.2.2 交叉熵损失
        • 3.2.3 softmax损失函数
        • 3.2.4 Focal loss
  • 4. 如何选择损失函数?

1、什么是损失函数

损失函数用来评价模型的预测值和真实值不一样的程度,损失函数越小,通常模型的性能越好。不同的模型用的损失函数一般也不一样。

2、为什么要使用损失函数

损失函数的使用主要是在模型的训练阶段,每个批次的训练数据送入模型后,通过前向传播输出预测值,然后损失函数会计算出预测值和真实值之间的差异值,也就是损失值。得到损失值之后,模型通过反向传播去更新各个参数,来降低真实值与预测值之间的损失,使得模型生成的预测值往真实值方向靠拢,从而达到学习的目的。

3、损失函数分类

1、分类一

损失函数分为经验风险损失函数结构风险损失函数。经验风险损失函数指预测结果和实际结果的差别,结构风险损失函数是指经验风险损失函数加上正则项。

2、分类二

0-1损失函数(zero-one loss)
绝对值损失函数
log对数损失函数
平方损失函数
指数损失函数
Hinge 损失函数
感知损失(perceptron loss)函数
交叉熵损失函数 (Cross-entropy loss function)
注:对数损失函数和交叉熵损失函数应该是等价的!!!
详见:https://zhuanlan.zhihu.com/p/58883095

3、分类三

3.1基于距离度量的损失函数

基于距离度量的损失函数通常将输入数据映射到基于距离度量的特征空间上,如欧氏空间、汉明空间等,将映射后的样本看作空间上的点,采用合适的损失函数度量特征空间上样本真实值和模型预测值之间的距离。特征空间上两个点的距离越小,模型的预测性能越好。

3.1.1 均方误差损失函数(MSE)


在回归问题中,均方误差损失函数用于度量样本点到回归曲线的距离,通过最小化平方损失使样本点可以更好地拟合回归曲线。均方误差损失函数(MSE)的值越小,表示预测模型描述的样本数据具有越好的精确度。由于无参数、计算成本低和具有明确物理意义等优点,MSE已成为一种优秀的距离度量方法。尽管MSE在图像和语音处理方面表现较弱,但它仍是评价信号质量的标准,在回归问题中,MSE常被作为模型的经验损失或算法的性能指标。

3.1.2 L2损失函数


L2损失又被称为欧氏距离,是一种常用的距离度量方法,通常用于度量数据点之间的相似度。由于L2损失具有凸性和可微性,且在独立、同分布的高斯噪声情况下,它能提供最大似然估计,使得它成为回归问题、模式识别、图像处理中最常使用的损失函数。

3.1.3 L1损失函数


L1损失又称为曼哈顿距离,表示残差的绝对值之和。L1损失函数对离群点有很好的鲁棒性,但它在残差为零处却不可导。另一个缺点是更新的梯度始终相同,也就是说,即使很小的损失值,梯度也很大,这样不利于模型的收敛。针对它的收敛问题,一般的解决办法是在优化算法中使用变化的学习率,在损失接近最小值时降低学习率。

3.1.4 Smooth L1损失函数


Smooth L1损失是由Girshick R在Fast R-CNN中提出的,主要用在目标检测中防止梯度爆炸。

3.1.5 huber损失函数


huber损失是平方损失和绝对损失的综合,它克服了平方损失和绝对损失的缺点,不仅使损失函数具有连续的导数,而且利用MSE梯度随误差减小的特性,可取得更精确的最小值。尽管huber损失对异常点具有更好的鲁棒性,但是,它不仅引入了额外的参数,而且选择合适的参数比较困难,这也增加了训练和调试的工作量。

3.2 基于概率分布度量的损失函数

基于概率分布度量的损失函数是将样本间的相似性转化为随机事件出现的可能性,即通过度量样本的真实分布与它估计的分布之间的距离,判断两者的相似度,一般用于涉及概率分布或预测类别出现的概率的应用问题中,在分类问题中尤为常用。

3.2.1 KL散度函数(相对熵)


公式中Y代表真实值,f(x)代表预测值。

KL散度( Kullback-Leibler divergence)也被称为相对熵,是一种非对称度量方法,常用于度量两个概率分布之间的距离。KL散度也可以衡量两个随机分布之间的距离,两个随机分布的相似度越高的,它们的KL散度越小,当两个随机分布的差别增大时,它们的KL散度也会增大,因此KL散度可以用于比较文本标签或图像的相似性。基于KL散度的演化损失函数有JS散度函数。JS散度也称JS距离,用于衡量两个概率分布之间的相似度,它是基于KL散度的一种变形,消除了KL散度非对称的问题,与KL散度相比,它使得相似度判别更加准确。

相对熵是恒大于等于0的。当且仅当两分布相同时,相对熵等于0。

3.2.2 交叉熵损失


交叉熵是信息论中的一个概念,最初用于估算平均编码长度,引入机器学习后,用于评估当前训练得到的概率分布与真实分布的差异情况。为了使神经网络的每一层输出从线性组合转为非线性逼近,以提高模型的预测精度,在以交叉熵为损失函数的神经网络模型中一般选用tanh、sigmoid、softmax或ReLU作为激活函数。

交叉熵损失函数刻画了实际输出概率与期望输出概率之间的相似度,也就是交叉熵的值越小,两个概率分布就越接近,特别是在正负样本不均衡的分类问题中,常用交叉熵作为损失函数。目前,交叉熵损失函数是卷积神经网络中最常使用的分类损失函数,它可以有效避免梯度消散。在二分类情况下也叫做对数损失函数。

当正负样本不均衡的时候,通常会在交叉熵损失函数类别前面加个参数α

3.2.3 softmax损失函数


从标准形式上看,softmax损失函数应归到对数损失的范畴,在监督学习中,由于它被广泛使用,所以单独形成一个类别。softmax损失函数本质上是逻辑回归模型在多分类任务上的一种延伸,常作为CNN模型的损失函数。softmax损失函数的本质是将一个k维的任意实数向量x映射成另一个k维的实数向量,其中,输出向量中的每个元素的取值范围都是(0,1),即softmax损失函数输出每个类别的预测概率。由于softmax损失函数具有类间可分性,被广泛用于分类、分割、人脸识别、图像自动标注和人脸验证等问题中,其特点是类间距离的优化效果非常好,但类内距离的优化效果比较差。

softmax损失函数具有类间可分性,在多分类和图像标注问题中,常用它解决特征分离问题。在基于卷积神经网络的分类问题中,一般使用softmax损失函数作为损失函数,但是softmax损失函数学习到的特征不具有足够的区分性,因此它常与对比损失或中心损失组合使用,以增强区分能力。

3.2.4 Focal loss

focal loss的引入主要是为了解决难易样本不均衡的问题,注意有区别于正负样本不均衡的问题。难易样本分为四个类型:

易分样本虽然损失很低,但是数量太多,对模型的效果提升贡献很小,模型应该重点关注那些难分样本,因此需要把置信度高的损失再降低一些

4. 如何选择损失函数?

通常情况下,损失函数的选取应从以下方面考虑:

(1) 选择最能表达数据的主要特征来构建基于距离或基于概率分布度量的特征空间。

(2)选择合理的特征归一化方法,使特征向量转换后仍能保持原来数据的核心内容。

(3)选取合理的损失函数,在实验的基础上,依据损失不断调整模型的参数,使其尽可能实现类别区分。

(4)合理组合不同的损失函数,发挥每个损失函数的优点,使它们能更好地度量样本间的相似性。

(5)将数据的主要特征嵌入损失函数,提升基于特定任务的模型预测精确度。

做下记录,一步一步解决。
初极狭,才通人。复行数十步,豁然开朗。

参考:
https://zhuanlan.zhihu.com/p/261059231
https://zhuanlan.zhihu.com/p/58883095

损失函数(loss function)相关推荐

  1. 损失函数(Loss function) 和 代价函数(Cost function)

    1损失函数和代价函数的区别: 损失函数(Loss function):指单个训练样本进行预测的结果与实际结果的误差. 代价函数(Cost function):整个训练集,所有样本误差总和(所有损失函数 ...

  2. smoothl1函数_Faster RCNN的损失函数(Loss Function)

    Faster RCNN的损失函数(Loss Function)的形式如下: : Anchor[i]的预测分类概率: Anchor[i]是正样本时, :Anchor[i]是负样本时, ; 什么是正样本与 ...

  3. python如何画损失函数图_Pytorch 的损失函数Loss function使用详解

    1.损失函数 损失函数,又叫目标函数,是编译一个神经网络模型必须的两个要素之一.另一个必不可少的要素是优化器. 损失函数是指用于计算标签值和预测值之间差异的函数,在机器学习过程中,有多种损失函数可供选 ...

  4. 损失函数(Loss function)、代价函数(成本函数)(Cost function)、目标函数(objective function)的区别与联系

    基本概念: 损失函数(Loss function):计算的是一个样本的误差. 损失函数是定义在单个训练样本上的,也就是就算一个样本的误差,比如我们想要分类,就是预测的类别和实际类别的区别,是一个样本的 ...

  5. 神经网络常用损失函数Loss Function

    深度学习神经网络常用损失函数 损失函数--Loss Function 1. MSE--均方误差损失函数 2. CEE--交叉熵误差损失函数 3. mini-batch版交叉熵误差损失函数 损失函数–L ...

  6. 损失函数(Loss Function) -1

    http://www.ics.uci.edu/~dramanan/teaching/ics273a_winter08/lectures/lecture14.pdf Loss Function 损失函数 ...

  7. 经验 | 深度学习中常见的损失函数(loss function)总结

    点上方蓝字计算机视觉联盟获取更多干货 在右上方 ··· 设为星标 ★,与你不见不散 仅作分享,不代表本公众号立场,侵权联系删除 转载于:机器学习算法与自然语言处理出品    单位 | 哈工大SCIR实 ...

  8. 机器学习模型中的损失函数loss function

    1. 概述 在机器学习算法中,有一个重要的概念就是损失函数(Loss Function).损失函数的作用就是度量模型的预测值f(x)f\left ( \mathbf{x} \right )f(x)与真 ...

  9. 机器学习之常见的损失函数(loss function)

    解决一个机器学习问题主要有两部分:数据和算法.而算法又有三个部分组成:假设函数.损失函数.算法优化.我们一般在看算法书或者视频教学时,更多的是去推算或者说参数估计出其假设函数,而往往不太注重损失函数, ...

  10. 代价函数Cost Function ,损失函数Loss Function,经验风险empirical risk,期望风险expected risk,结构风险structural risk

    损失函数,代价函数,目标函数 损失函数(Loss Function )是定义在单个样本上的,算的是一个样本的误差. 代价函数(Cost Function )是定义在整个训练集上的,是所有样本误差的平均 ...

最新文章

  1. NLP突破性成果 BERT 模型详细解读 bert参数微调
  2. Linux 计算某文件夹下的所有文件的md5值
  3. cmake简明使用指南
  4. linux复制文件命令cat ,Linux学习之四(复制移动文件命令cp等及查看文本命令cat等)2017-03-28...
  5. 关于分页插件PageHelper不起作用的问题
  6. 带你从源码了解SpringBoot启动流程
  7. PowerDesigner生成数据库时的列中文注释乱码问题[mysql]
  8. java 数组下标 变量_Java基础语法:数组
  9. windows下命令
  10. riemann的安装和使用
  11. python解释执行器_有关Python脚本相关说明介绍
  12. linux下proc文件的读写(部分转载)
  13. Latex 书写 IEEE 会议论文
  14. Codeforces #555 (Div. 3)--C2 Increasing Subsequence (hard version)--投石问路+deque/双指针
  15. 几种前端h264播放器记录
  16. FLV格式转换成MP4格式使用什么软件好
  17. Windows不显示图片缩略图,显示图标的解决方法
  18. PostGIS教程二:PostGIS的安装
  19. AIPNet: Image-to-Image Single Image Dehazing with Atmospheric Illumination Prior
  20. 世界睁大眼睛关注中国春节

热门文章

  1. OpenCV3之——漫水填充:floodFill函数
  2. 【技术变现小技巧】-- Boss直聘 批量打招呼
  3. 中华网母公司指责Evolution Capital损害利益
  4. jQuery - 删除元素
  5. unity实现坦克第一人称视角移动 鼠标发射,位置改变
  6. 程序员减脂神仙吃法分享
  7. 润迈德医疗通过上市聆讯:预计亏损将增加,霍云飞兄弟持股约33%
  8. 推荐给大家一个php代码格式化在线工具
  9. 龙ol服务器维护补偿boss,九死一生《龙OL》凶险副本大盘点
  10. 【转自猫大】宏定义的黑魔法 - 宏菜鸟起飞手册