当前位置: 首页 > article >正文

深度学习基础知识-损失函数

目录

1. 均方误差(Mean Squared Error, MSE)

2. 平均绝对误差(Mean Absolute Error, MAE)

3. Huber 损失

4. 交叉熵损失(Cross-Entropy Loss)

5. KL 散度(Kullback-Leibler Divergence)

6. Hinge 损失

7. 对比损失(Contrastive Loss)

8. 三元损失(Triplet Loss)

9. Focal loss损失


损失函数在深度学习模型训练中起着核心作用,它度量模型的预测输出与真实值的差距,并指导模型更新权重以缩小误差,从而实现更好的拟合。不同任务(如分类、回归、生成)常用不同的损失函数,以适应特定需求。

1. 均方误差(Mean Squared Error, MSE)

定义

其中,y_i 表示真实值,表示模型的预测值,N 为样本数。

推导与解释

  • MSE 通过平方的方式将每个样本的预测误差放大,使得较大误差的影响更显著。这样做的目的是让模型在更新参数时优先关注误差较大的数据点,从而尽可能减少大误差。
  • MSE 具有凸性,因此有利于使用梯度下降等优化算法找到全局最小值。

应用场景: MSE 常用于回归任务(如房价预测),适用于误差服从正态分布的数据。由于对较大误差敏感,因此对异常值多的场景效果不佳。

2. 平均绝对误差(Mean Absolute Error, MAE)

定义

推导与解释

  • MAE 直接对误差取绝对值,避免了平方的操作。因此,MAE 相比 MSE 对异常值的敏感性更低,更关注整体误差的平均水平。
  • MAE 损失函数的优化不如 MSE 简便,因为它的导数在 y_i = 处不可导,造成优化算法收敛相对缓慢。

应用场景: MAE 同样用于回归任务,尤其是误差分布中含有异常值的场景。

3. Huber 损失

Huber 损失结合了 MSE 和 MAE 的优点,使模型对误差具有一定的鲁棒性。

定义

其中 $\delta$ 是超参数。

推导与解释

  • 当误差小于时,Huber 损失与 MSE 相同,这时候我们主要关注小误差的细致调整;
  • 当误差大于时,Huber 损失与 MAE 相似,减少了异常值对模型的影响,使得损失函数更鲁棒。

应用场景: Huber 损失常用于回归问题且数据中含有异常值,它的鲁棒性使其在异常值较多的数据集上效果良好。需要通过交叉验证选择合适的 参数。

4. 交叉熵损失(Cross-Entropy Loss)

二分类交叉熵

多分类交叉熵

其中 C 为类别数, 为真实标签(1 表示第 i 个样本属于第 j 类,0 表示不属于), 为预测的概率分布。

推导与解释

  • 交叉熵计算的是模型输出分布与真实分布的距离,当模型预测越接近真实分布时,交叉熵值越小。
  • 通过 softmax 函数将模型的原始输出转化为概率分布,使得该损失函数适用于分类任务。

应用场景: 交叉熵广泛应用于分类任务(如图像分类、文本分类)。它通过最大化模型预测的概率使模型学到更具区分性的特征。

5. KL 散度(Kullback-Leibler Divergence)

定义

推导与解释

  • KL 散度度量两个概率分布 P 和 Q 的差异性,值越小说明两个分布越接近。
  • KL 散度在生成模型中用于度量生成分布和真实分布的相似性,通过最小化 KL 散度可以生成与真实分布更接近的数据。

应用场景: 常用于生成模型(如 VAE)或对抗学习中,通过最小化模型分布和真实分布的距离提升生成效果。

6. Hinge 损失

Hinge 损失用于支持向量机中,特别适合二分类任务。

定义

推导与解释

  • Hinge 损失会对错误分类的样本产生较大惩罚,使得支持向量机学习到一个能够分隔不同类别的最大边界。
  • 该损失强调的是分类边界的宽度,通过“拉开”分类边界增强模型的鲁棒性。

应用场景: 用于支持向量机的训练,能够有效区分两个类别的边界。由于对类别间隔的强调,也在一些深度学习模型中用于分类任务。

7. 对比损失(Contrastive Loss)

对比损失常用于度量学习和孪生网络中。

定义

其中 y_i 表示样本对的标签(1 表示相似,0 表示不相似),d_i 是样本对的距离,m 是边界阈值。

推导与解释

  • 当样本对相似时(y_i = 1),损失度量的是距离的平方 d_i^2,鼓励相似样本对的距离越小越好。
  • 当样本对不相似时,损失函数度量样本对是否超出距离阈值 m,使得不相似样本的距离更大。

应用场景: 用于图像检索、人脸识别等领域,通过度量样本间的相似度优化模型的特征学习能力。

8. 三元损失(Triplet Loss)

三元损失用于度量学习,利用 Anchor、Positive、Negative 样本的相对距离关系来优化模型。

定义

其中 x_i^a 为 Anchor 样本,x_i^p 为 Positive 样本,x_i^n 为 Negative 样本,为 margin。

推导与解释

  • 三元损失将相似样本(Anchor 和 Positive)拉近,将不相似样本(Anchor 和 Negative)推远,形成更明显的区分度。
  • 是一个距离间隔的超参数,确保相似样本对距离小于不相似样本对。

应用场景: 广泛用于人脸验证、图像检索,通过距离度量的方式获得更具区分度的特征空间。

9. Focal loss损失

Focal 损失是对交叉熵损失的改进,专门应对类别不平衡问题。

定义

其中 是平衡因子,gamma是聚焦因子。

推导与解释

  • Focal 损失通过调整权重因子 和聚焦因子 gamma 来平衡不同类别样本的贡献。对难以分类的样本增加损失权重。
  • 该损失有助于模型从稀有样本中学习更多特征,减少简单样本的影响。

应用场景: 用于目标检测和极度不平衡数据集下的分类任务,使模型对难样本(如小目标)有更好的检测效果。


http://www.kler.cn/a/380824.html

相关文章:

  • Qt 环境实现视频和音频播放
  • Java中的System类、Runtime类、Math类、BigInteger类、BigDecimal类、Random类
  • 【JavaSE】(2) 方法
  • git commit应遵循的提交规范
  • Docker打包自己项目推到Docker hub仓库(windows10)
  • 程序员也要认识下“信创产业”
  • 【C/C++】memcpy函数的模拟实现
  • Mac OS 配置Docker+Mysql
  • C++中的继承——第一篇
  • ​CSS之三
  • 【OJ题解】C++实现字符串大数相乘:无BigInteger库的字符串乘积解决方案
  • vue中强制更新视图
  • 网络信息系统的整个生命周期
  • 服务器作业2
  • AUTOSAR COM 模块的主要功能导读以及示例
  • 【jvm】如何设置Eden、幸存者者区的比例
  • C语言 | Leetcode C语言题解之第521题最长特殊序列I
  • C++模拟实现list
  • NRF52832学习笔记(41)——添加串口库libuarte
  • GPT-SoVITS 部署方案
  • sqlalchemy连接mysql数据库
  • 全面解析:大数据技术及其应用
  • 鸿蒙开启无线调试
  • dockerdockerfiledocker-compose操作nginx
  • Mac电脑技巧:适用于Mac的免费外置硬盘数据恢复软件
  • FreeRTOS 队列详解