深度学习中常用损失函数

损失函数是用来估量模型的预测值f(x)与真实值Y的不一致程度,它是一个非负值函数,通常用L(Y,f(x))来表示,损失函数越小,模型的鲁棒性越好。损失函数是经验风险函数的核心部分,也是结构风险函数的重要组成部分。模型的结构风险函数包括了经验风险项和正则项,通常可以表示成如下式子:
在这里插入图片描述
其中,前面的均值函数表示的是经验风险损失函数,L表示的是损失函数,后面的是正则化项。

L1损失函数和L2损失函数

这两个损失函数通常一起比较着来说。
L1损失函数,又叫最小绝对值偏差(LAE)。它把目标值与估计值的绝对差值的总和最小化:
在这里插入图片描述
L2损失函数,也被称为最小平方误差。总的来说,它是把目标值与估计值的差值的平方和最小化。
在这里插入图片描述
L2损失函数对异常点比较敏感,因为L2将误差平方化,使得异常点的误差过大,模型需要大幅度的调整,这样会牺牲很多正常的样本。
而L1损失函数由于导数不连续,可能存在多个解,当数据集有一个微笑的变化,解可能会有一个很大的跳动,L1的解不稳定。

smooth l1损失函数
在目标检测中,在reg坐标中用到smooth l1损失函数。如下式

### 常见深度学习损失函数及其应用场景 #### 1. 均方误差 (Mean Squared Error, MSE) 均方误差是最常见的回归问题中的损失函数之一。它计算预测值与真实值之间的平方差的平均值,适用于连续数值输出的任务。 公式如下: ```python def mse_loss(y_true, y_pred): return ((y_true - y_pred)**2).mean() ``` MSE 对于异常值非常敏感,因为它会放大较大的错误[^1]。 #### 2. 交叉熵损失 (Cross-Entropy Loss) 交叉熵损失广泛应用于分类任务中,尤其是多类别分类问题。对于二分类问题,通常使用的是二元交叉熵;而对于多分类问题,则采用 softmax 和对应的交叉熵组合形式。 公式表示为: \[ \text{Loss} = -\frac{1}{N}\sum_{i=1}^{N}[y_i\log(p_i) + (1-y_i)\log(1-p_i)] \] 其中 \( p_i \) 是模型预测的概率,\( y_i \) 是真实的标签[^2]。 #### 3. Hinge 损失 (Hinge Loss) 主要用于支持向量机(SVM),特别是在二分类场景下表现良好。其目标是最大化正负样本间的间隔。 表达式为: \[ L(y)=\max(0, 1-t \cdot y), t=\pm 1 \] 这种损失适合线性可分的数据集。 #### 4. Kullback-Leibler 散度 (KL Divergence) 衡量两个概率分布P和Q之间差异程度的一种方法,在变分自编码器(VAEs)等生成模型中有重要应用价值。 定义为: \[ D_{KL}(P||Q)=\int P(x)\log{\frac {P(x)}{Q(x)}}dx \] #### 5. Huber 损失 (Huber Loss) 结合了MSE和平滑L1损失的优点,既保持了对较大残差的有效惩罚又不会过分受极端值影响。 当绝对误差小于某个阈值δ时取二次项部分,大于等于δ则转而采用一次项处理方式: \[ loss(a) = \begin{cases} 0.5a^2 & |a|<\delta \\ \delta(|a|-0.5*\delta)& otherwise\\ \end{cases} \] #### 6. Focal Loss 针对极度不平衡数据设计出来的改进版交叉熵损失,能够降低简单样例所占权重从而让网络更关注困难例子的学习效果提升上. 以上列举了几种典型的深度学习领域内的损失函数以及它们各自适用范围介绍.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值