损失函数

损失函数 (Loss Functions)

损失函数(Loss Function)用于衡量模型预测值与真实值之间的差异。选择合适的损失函数对于模型的训练效果至关重要。

1. 回归损失 (Regression Losses)

主要用于预测连续值的任务。

1.1 L1 Loss (Mean Absolute Error, MAE)

计算预测值与真实值之差的绝对值。

$$ L_1 = \frac{1}{N} \sum_{i=1}^{N} |y_i - \hat{y}_i| $$
  • 特点:
    • 鲁棒性强: 对异常值(Outliers)不敏感,因为误差是线性增长的。
    • 梯度恒定: 无论误差多大,梯度大小都一样(除了0点),这可能导致在0点附近震荡,难以收敛到精确值。
    • 稀疏性: 倾向于产生稀疏解(某些参数为0)。

1.2 L2 Loss (Mean Squared Error, MSE)

计算预测值与真实值之差的平方。

$$ L_2 = \frac{1}{N} \sum_{i=1}^{N} (y_i - \hat{y}_i)^2 $$
  • 特点:
    • 收敛快: 误差越大,梯度越大,训练初期收敛快;随着误差减小,梯度也减小,有利于收敛到微小的最小值。
    • 对异常值敏感: 异常值的误差被平方放大,会主导损失函数,导致模型过度关注异常值。

1.3 Smooth L1 Loss

结合了 L1 和 L2 的优点。在误差较小时使用 L2(平滑,可导),在误差较大时使用 L1(梯度稳定,鲁棒)。

$$ \text{Smooth } L_1(x) = \begin{cases} 0.5 x^2 & \text{if } |x| < 1 \\ |x| - 0.5 & \text{otherwise} \end{cases} $$
  • 应用: 常见于目标检测(如 Faster R-CNN, SSD)的边界框回归。
  • 优点: 既解决了 L1 在 0 点不可导的问题,又解决了 L2 对异常值敏感的问题。

1.4 Huber Loss

Smooth L1 的一种通用形式,引入了超参数 $\delta$ 来控制 L1 和 L2 的切换阈值。

$$ L_{\delta}(y, \hat{y}) = \begin{cases} \frac{1}{2}(y - \hat{y})^2 & \text{for } |y - \hat{y}| \le \delta \\ \delta |y - \hat{y}| - \frac{1}{2}\delta^2 & \text{otherwise} \end{cases} $$
  • 特点: 当 $\delta$ 趋向于 0 时接近 L1 Loss,趋向于无穷大时接近 L2 Loss。

2. 分类损失 (Classification Losses)

主要用于预测离散类别或概率的任务。

2.1 Cross Entropy Loss (交叉熵损失)

衡量两个概率分布之间的差异。

  • 二分类 (Binary Cross Entropy, BCE):

    $$ L = - \frac{1}{N} \sum_{i=1}^{N} [y_i \log(\hat{y}_i) + (1 - y_i) \log(1 - \hat{y}_i)] $$
  • 多分类 (Categorical Cross Entropy):

    $$ L = - \frac{1}{N} \sum_{i=1}^{N} \sum_{c=1}^{C} y_{i,c} \log(\hat{y}_{i,c}) $$
  • 特点:

    • 在分类任务中表现优异,通过 Softmax (多分类) 或 Sigmoid (二分类) 将输出映射为概率。
    • 梯度爆炸风险: 当预测概率接近 0 或 1 时,log 函数的值会趋向负无穷,可能导致数值不稳定。

2.2 Focal Loss

为了解决类别不平衡(Class Imbalance)和难易样本不平衡问题而提出(源自 RetinaNet)。

$$ FL(p_t) = -\alpha_t (1 - p_t)^\gamma \log(p_t) $$
  • $\alpha_t$: 平衡正负样本的权重。
  • $(1 - p_t)^\gamma$: 调节因子。对于易分类样本($p_t$ 接近 1),权重接近 0,减少其对 Loss 的贡献;对于难分类样本($p_t$ 小),权重较大。
  • 应用: 目标检测中背景样本极多,前景样本极少的情况。

2.3 Hinge Loss

主要用于支持向量机(SVM)和一些最大间隔分类任务。

$$ L = \max(0, 1 - y \cdot \hat{y}) $$

(假设标签 $y \in \{-1, 1\}$)

  • 特点: 只要正确分类且有足够的间隔(margin),损失就为 0。鼓励模型不仅分类正确,还要确信度高。

3. 分割与生成损失 (Segmentation & Generative Losses)

3.1 Dice Loss

源自 Dice 系数,用于衡量两个集合的重叠程度。常用于医学图像分割。

$$ \text{Dice} = \frac{2 |X \cap Y|}{|X| + |Y|} $$

$$ L_{\text{Dice}} = 1 - \text{Dice} = 1 - \frac{2 \sum y_i \hat{y}_i}{\sum y_i + \sum \hat{y}_i + \epsilon} $$
  • 特点:
    • 解决样本不平衡: 直接优化评价指标(IoU/Dice),对前景背景比例不敏感。
    • 训练不稳定: 梯度变化剧烈,通常结合 CE Loss 一起使用。

3.2 IoU Loss (Jaccard Loss)

Intersection over Union,即交并比。

$$ \text{IoU} = \frac{|X \cap Y|}{|X \cup Y|} $$

$$ L_{\text{IoU}} = 1 - \text{IoU} $$
  • 应用: 语义分割、目标检测框回归(GIoU, DIoU, CIoU 等变体)。

3.3 GAN Losses (生成对抗网络损失)

  • Minimax Loss (原始 GAN):

    $$ \min_G \max_D V(D, G) = \mathbb{E}_{x \sim p_{data}(x)}[\log D(x)] + \mathbb{E}_{z \sim p_z(z)}[\log(1 - D(G(z)))] $$
    • 生成器 G 试图欺骗判别器 D,判别器 D 试图区分真假。
    • 问题: 容易出现模式崩塌(Mode Collapse)和梯度消失。
  • Wasserstein Loss (WGAN): 引入 Earth Mover’s Distance (EM距离)。

    $$ L = \mathbb{E}[D(x)] - \mathbb{E}[D(G(z))] $$
    • 特点: 即使两个分布不重叠,也能提供有意义的梯度,训练更稳定。

4. 相似度与分布损失 (Similarity & Distribution Losses)

4.1 KL Divergence (Kullback-Leibler Divergence)

衡量两个概率分布 $P$ 和 $Q$ 之间的差异(非对称)。

$$ D_{KL}(P || Q) = \sum P(x) \log \frac{P(x)}{Q(x)} $$

假设先验 $P(z) \sim \mathcal{N}(0, I)$,后验 $Q(z|x) \sim \mathcal{N}(\mu, \sigma^2)$。两个高斯分布之间的 KL 散度有解析解:

$$ D_{KL} = -\frac{1}{2} \sum_{j=1}^J (1 + \log((\sigma_j)^2) - (\mu_j)^2 - (\sigma_j)^2) $$
kld_element = mu.pow(2).add_(logvar.exp()).mul_(-1).add_(1).add_(logvar)
loss_kld = torch.sum(KLD_element).mul_(-0.5) * lambda_kld

4.2 Triplet Loss (三元组损失)

用于度量学习(Metric Learning),如人脸识别。 输入三元组:Anchor ($A$), Positive ($P$), Negative ($N$)。

$$ L = \max(0, d(A, P) - d(A, N) + \text{margin}) $$
  • 目标: 拉近同类样本距离 $d(A, P)$,推远异类样本距离 $d(A, N)$。

4.3 Cosine Similarity Loss

衡量两个向量在方向上的相似度。

$$ L = 1 - \cos(\theta) = 1 - \frac{A \cdot B}{\|A\| \|B\|} $$
  • 应用: 文本语义相似度、自监督学习(如 SimCLR)。

5. 总结与对比 (Summary & Comparison)

损失函数类型常用函数典型应用场景核心特点
回归MSE (L2)一般数值预测收敛快,但对异常值敏感
MAE (L1)异常值较多的回归鲁棒性强,解稀疏
Smooth L1目标检测 (Bounding Box)结合 L1/L2 优点,稳定
分类Cross Entropy图像分类、文本分类标准分类损失,概率解释性强
Focal Loss目标检测 (RetinaNet)解决正负样本极度不平衡问题
Hinge LossSVM最大化分类间隔
分割Dice / IoU医学图像分割、语义分割直接优化重叠度,抗样本不平衡
生成WGAN Loss图像生成 (GAN)解决 GAN 训练不稳定和梯度消失
相似度Triplet Loss人脸识别、ReID拉近同类,推远异类
KL DivergenceVAE、蒸馏衡量分布差异