不同损失函数适用于不同任务:Focal Loss 处理类别不平衡,Dice Loss 适合图像分割,交叉熵用于分类,MSE/L1 用于回归,Huber Loss 对离群值鲁棒。
交叉熵损失 (Cross Entropy Loss)
衡量两个概率分布之间的差异,广泛用于分类任务。
二分类:
$$\text{Cross Entropy} = - \left( y \log(p) + (1 - y) \log(1 - p) \right)$$
其中 $y$ 是真实标签(0 或 1),$p$ 是模型对类别 1 的预测概率。
多分类:
$$\text{Cross Entropy} = - \sum_{i=1}^{N} y_i \log(p_i)$$
Focal Loss
解决类别不平衡问题,特别适用于目标检测(如 RetinaNet)。
$$FL(p_t) = -\alpha_t (1 - p_t)^\gamma \log(p_t)$$
参数说明:
- $p_t$:模型对正确类别的预测概率
- $\alpha_t$:平衡因子,减少类别不平衡影响
- $\gamma$:调节因子,$\gamma > 0$ 时聚焦于难以分类的样本
优势:
- 解决类别不平衡,提升稀有类别检测性能
- 有效抑制大量负样本
Dice Loss
基于 Dice 系数,广泛应用于医学图像分割。
Dice 系数:
$$Dice = \frac{2 |A \cap B|}{|A| + |B|}$$
Dice Loss:
$$Dice_{Loss} = 1 - \frac{2 |A \cap B|}{|A| + |B|}$$
其中 $A$ 和 $B$ 分别是预测和真实的二值化掩码。
优势:
- 适用于类别不平衡的分割任务
- 特别适合小目标、不规则形状(如肿瘤分割)
常用损失函数汇总
| 损失函数 | 公式 | 适用场景 | 特点 |
|---|---|---|---|
| MSE | $\frac{1}{N} \sum (y_i - \hat{y}_i)^2$ | 回归 | 对离群值敏感 |
| L1 Loss | $\sum |y_i - \hat{y}_i|$ | 回归 | 对离群值鲁棒 |
| Huber Loss | 分段函数 | 回归 | 结合 MSE 和 L1 优点 |
| IoU Loss | $1 - \frac{|A \cap B|}{|A \cup B|}$ | 检测/分割 | 衡量重叠程度 |
Huber Loss 公式:
$$Huber Loss = \sum_{i=1}^{N} \begin{cases} \frac{1}{2} (y_i - \hat{y}_i)^2, & \text{if } |y_i - \hat{y}_i| \leq \delta \ \delta |y_i - \hat{y}_i| - \frac{1}{2} \delta^2, & \text{otherwise} \end{cases}$$
其中 $\delta$ 控制误差容忍范围。
选择指南
| 任务 | 推荐损失函数 |
|---|---|
| 多分类 | 交叉熵损失 |
| 类别不平衡分类 | Focal Loss |
| 图像分割 | Dice Loss |
| 回归(无离群值) | MSE |
| 回归(有离群值) | L1 Loss / Huber Loss |
| 目标检测 | IoU Loss |
张芷铭的个人博客
Comments