【深度学习中的损失函数整理与总结】

本文介绍了深度学习中损失函数的重要性,区分了损失函数与成本函数,并详细讲解了回归损失(如均方误差、平均绝对误差、胡伯损失)和分类损失(如二元交叉熵、分类交叉熵)的概念及优缺点,帮助读者理解和选择合适的损失函数。

介绍

损失函数在机器学习或深度学习中非常重要,假设您正在处理任何问题,并且您已经在数据集上训练了一个机器学习模型,并准备将其放在您的客户面前,但是你怎么能确定这个模型会给出最佳结果呢?是否有指标或技术可以帮助您快速评估数据集上的模型?

是的,这里损失函数在机器学习或深度学习中就发挥了重要的作用。

在本文中,我整理并总结了不同类型的损失函数。

什么是损失函数?

维基百科说,在数学优化和决策理论中,损失或成本函数(有时也称为误差函数) 是将事件或一个或多个变量的值映射到一个实数上的函数,该实数直观地表示了本事件。
简单来说,损失函数是一种评估算法对数据集建模效果的方法,它是机器学习算法参数的数学函数。

为什么损失函数很重要?

著名作家彼得·德鲁克 (Peter Druker) 说:你无法改进你无法衡量的东西。这就是为什么要使用损失函数来评估您的算法对数据集建模的效果。如果损失函数的值较低,那么它是一个好的模型,否则,我们必须改变模型的参数并最小化损失。

损失函数与成本函数

大多数人混淆了损失函数和成本函数,让我们了解什么是“损失函数”和“成本函数”。成本函数和损失函数是同义词,可以互换使用,但它们是不同的。

损失函数:

损失函数/误差函数用于单个训练示例/输入。

成本函数:

成本函数是整个训练数据集的平均损失。

深度学习中的损失函数

  1. 回归
    MSE(均方误差)
    MAE(平均绝对误差)
    哈伯损失

  2. 分类
    二元交叉熵
    分类交叉熵

  3. 自动编码器
    KL 散度

  4. GAN
    鉴别器损失
    Minmax GAN 损失

  5. 物体检测
    焦点损失

  6. 词嵌入
    三重损失

在本文中,我们将了解回归损失和分类损失。

A. 回归损失

1. 均方误差/平方损失/L2 损失

均方误差 (MSE) 是最简单和最常见的损失函数,要计算 MSE,您需要获取实际值和模型预测值之间的差异,对其进行平方,然后在整个数据集上对其进行平均。

在这里插入图片描述

优点

  1. 易于解释。
  2. 总是因方而微分。
  3. 只有一个局部最小值。

缺点

  1. 方格中的误差单位。因为没有正确理解广场中的单位。

  2. 对异常值不稳健

    注意:在最后一个神经元的回归中使用线性激活函数。

2. 平均绝对误差/L1 损失

平均绝对误差(MAE)也是最简单的损失函数,要计算 MAE,您需要获取实际值和模型预测值之间的差异,然后在整个数据集中对其进行平均。

在这里插入图片描述
优点

  1. 直观简单
  2. Error Unit 与输出列相同。
  3. 对异常值具有鲁棒性

缺点

  1. 不能直接使用梯度下降,可以进行次梯度计算。
    注意:在最后一个神经元的回归中使用线性激活函数。

3. 胡伯损失

在统计学中,Huber 损失是一种用于稳健回归的损失函数,它对数据中的异常值的敏感性低于平方误差损失。

在这里插入图片描述
n——数据点的数量。
y——数据点的实际值,也称为真值。
ŷ——数据点的预测值,该值由模型返回。
δ——定义 Huber 损失函数从二次型转变为线性的点。

优点

  1. 对异常值具有鲁棒性
  2. 它位于MAE和MSE之间。

缺点

  1. 它的主要缺点是关联复杂度,为了最大限度地提高模型精度,还需要优化超参数 δ,这会增加训练的要求。

B. 分类损失

1. 二元交叉熵/对数损失

它用于像两个类这样的二元分类问题,例如,一个人是否感染了新冠病毒,或者我的文章是否受欢迎。
二元交叉熵将每个预测概率值,可能是 0 或 1 ,与实际类输出进行比较。然后它根据与期望值的距离计算惩罚概率的分数,这意味着离实际值有多近或多远。
在这里插入图片描述
yi——实际值
yi^——神经网络预测值

优点

  1. 成本函数是微分函数。

缺点

  1. 多个局部最小值
  2. 不直观

注意 :在最后一个神经元的分类中使用 sigmoid 激活函数。

2. 分类交叉熵

分类交叉熵用于多类分类问题,也用于 softmax 回归。

在这里插入图片描述

注意:在最后一个神经元的多类分类中使用 softmax 激活函数。

何时使用分类交叉熵和稀疏分类交叉熵?

如果目标列为 0 0 1、0 1 0、1 0 0 等类似的热编码,则使用分类交叉熵。如果目标列为 1,2,3,4….n 等类似的数字编码,则使用稀疏分类交叉熵。

哪个更快?

稀疏分类交叉熵比分类交叉熵快。

结论

在本文中,我主要整理并总结了深度学习中不同类型的损失函数供大家参考和学习,若有不正确的地方,还请大家指正,谢谢!

<think>嗯,用户想了解深度学习中常用的损失函数及其应用场景。我需要先回忆一下常见的损失函数有哪些,然后逐个整理它们的数学表达式、作用以及适用的场景。首先,分类任务回归任务通常会使用不同的损失函数,所以应该分开讨论。 首先是回归任务,常用的损失函数有均方误差(MSE)平均绝对误差(MAE)。MSE计算预测值真实值差的平方的平均值,对异常值敏感,适用于回归问题,比如预测房价、温度等连续值。MAE则是计算绝对差的平均值,鲁棒性更好,适合有噪声或异常值的情况。还有Huber损失,结合了MSEMAE的优点,在误差较小时用平方,较大时用线性,适用于需要平衡鲁棒性平滑梯度的场景。 然后是分类任务,二分类常用二元交叉熵损失函数,比如逻辑回归或神经网络输出概率的情况。多分类的话,交叉熵损失函数更常见,特别是配合Softmax激活函数使用。而多标签分类可能需要用二元交叉熵逐个处理每个类别。此外,合页损失(Hinge Loss)用于支持向量机,适合需要最大间隔分类的情况,比如线性SVM或某些神经网络。 还有一些特殊的损失函数,比如KL散度用于分布差异,比如变分自编码器;对比损失用于度量学习,比如人脸识别;Dice损失在图像分割中处理类别不平衡问题。 用户可能还想知道如何选择合适的损失函数,比如根据任务类型(分类或回归)、数据分布(是否有异常值)、模型类型(比如SVM需要合页损失)等因素。另外,可能需要结合特定领域的知识,比如图像分割常用Dice损失。 需要确保每个损失函数都有数学公式,用$$包围,并且行内公式用$。比如MSE的公式是$$MSE = \frac{1}{n}\sum_{i=1}^{n}(y_i - \hat{y}_i)^2$$。还要注意引用给出的参考资料,比如引用[1]、[2]、[3],在适当的位置添加引用标识。比如在交叉熵部分引用[2],在应用场景部分引用[1][3]。 最后生成相关问题,可能包括损失函数的选择方法、不同损失函数的优缺点比较、实际应用案例,或者损失函数评估指标的关系等。例如:如何根据任务选择损失函数?交叉熵损失为什么适合分类问题?Huber损失如何平衡鲁棒性梯度?Dice损失在医学图像处理中的具体应用?</think>### 深度学习常见损失函数及应用场景 #### 一、回归任务中的损失函数 1. **均方误差(MSE)** $$MSE = \frac{1}{n}\sum_{i=1}^{n}(y_i - \hat{y}_i)^2$$ - **作用**:衡量预测值真实值的平方误差均值。 - **场景**:适用于连续值预测(如房价、温度),对异常值敏感[^1]。 2. **平均绝对误差(MAE)** $$MAE = \frac{1}{n}\sum_{i=1}^{n}|y_i - \hat{y}_i|$$ - **作用**:计算绝对误差均值,鲁棒性更强。 - **场景**:数据含噪声或异常值时(如金融时序预测)[^3]。 3. **Huber损失** $$ L_\delta(y, \hat{y}) = \begin{cases} \frac{1}{2}(y - \hat{y})^2 & \text{若 } |y - \hat{y}| \leq \delta \\ \delta|y - \hat{y}| - \frac{1}{2}\delta^2 & \text{其他情况} \end{cases} $$ - **作用**:结合MSE的平滑性MAE的鲁棒性。 - **场景**:需平衡梯度稳定性异常值影响(如自动驾驶中的目标检测)。 --- #### 二、分类任务中的损失函数 1. **二元交叉熵损失(Binary Cross-Entropy)** $$L = -\frac{1}{n}\sum_{i=1}^{n} \left[y_i \log \hat{y}_i + (1 - y_i)\log(1 - \hat{y}_i)\right]$$ - **作用**:衡量概率分布差异,通过最大似然估计优化。 - **场景**:二分类问题(如垃圾邮件检测),常配合Sigmoid函数使用[^2]。 2. **多分类交叉熵损失(Categorical Cross-Entropy)** $$L = -\frac{1}{n}\sum_{i=1}^{n}\sum_{c=1}^{C} y_{i,c} \log \hat{y}_{i,c}$$ - **作用**:扩展至多类别概率比较。 - **场景**:多分类任务(如图像分类),需搭配Softmax输出。 3. **合页损失(Hinge Loss)** $$L = \frac{1}{n}\sum_{i=1}^{n} \max(0, 1 - y_i \hat{y}_i)$$ - **作用**:强调分类边界的“间隔最大化”。 - **场景**:支持向量机(SVM)或需要强分类边界的场景。 --- #### 三、特殊场景损失函数 1. **KL散度(Kullback-Leibler Divergence)** $$D_{KL}(P \parallel Q) = \sum P(x) \log \frac{P(x)}{Q(x)}$$ - **作用**:衡量两个概率分布的差异。 - **场景**:生成模型(如变分自编码器)。 2. **对比损失(Contrastive Loss)** $$L = \frac{1}{2n}\sum_{i=1}^{n} \left[d(x_i^1, x_i^2)^2 + \max(0, m - d(x_i^1, x_i^2))^2\right]$$ - **作用**:学习相似样本的嵌入表示。 - **场景**:度量学习(如人脸识别、语义相似度计算)。 3. **Dice损失(Dice Loss)** $$Dice = 1 - \frac{2|A \cap B|}{|A| + |B|}$$ - **作用**:优化重叠区域的相似度。 - **场景**:医学图像分割(类别不平衡问题)。 --- #### 四、选择损失函数的关键因素 1. **任务类型**:回归任务选MSE/MAE,分类任务选交叉熵。 2. **数据特性**:异常值多时选MAE或Huber损失。 3. **模型目标**:需概率解释时用交叉熵,强调边界用Hinge Loss。 4. **领域需求**:如图像分割常用Dice Loss。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

vcsir

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值