损失函数专题(Loss Functions)
一、定义与本质
损失函数(loss function) 衡量预测 与真值 的差距,是可微标量 。训练本质是用梯度下降最小化训练集上损失的期望:
损失的选择由任务性质(分类/回归/检测/序列生成)与数据特性(是否不平衡、含噪)共同决定,直接影响梯度形态与收敛行为。
二、分类损失
Cross-Entropy / NLL
logits 经 softmax 得 ,对 one-hot 真值 :
等价于负对数似然(NLL)。语言模型与 AR 自回归生成 中逐 token 求和:
这也是 OCR 后端 AR 解码器的默认训练目标。
Label Smoothing
硬 one-hot 软化为 ( 类别数),缓解过度自信、改善校准与泛化,Transformer 类常取 。
三、回归损失
- MSE(L2):,对大误差敏感,易被离群点主导。
- L1(MAE):,对离群点鲁棒,但零点不可导。
- Smooth L1 / Huber:误差小用 L2、大用 L1:
广泛用于检测框坐标回归。
四、检测损失(重点)
IoU 系列 loss
直接以交并比优化框,比逐坐标回归更贴合评测指标。
- IoU loss:1−IoU,但两框不相交时梯度消失。
- GIoU:引入最小闭包框惩罚,解决不相交问题。
- DIoU:加中心点距离项,收敛更快。
- CIoU:DIoU 基础上再加长宽比一致性项,综合最优。
Focal Loss
解决前景/背景 类别不平衡,在 CE 上加调制因子压低易分样本:
(常取 2)使模型聚焦难样本。
DETR:Set Prediction + 匈牙利匹配
DETR 将检测视为 集合预测(set prediction),输出固定数量框,无需 NMS。训练用 匈牙利算法(Hungarian) 求预测与真值的最优 二分匹配(bipartite matching):
匹配代价综合类别概率与框相似度;匹配确定后对配对样本计算分类 CE + 框损失(L1 + GIoU),未匹配预测监督为「no object」。前端检测即基于此范式(backbone 常用 ViT)。
五、序列 / AR 生成损失
AR 生成在 teacher forcing 下训练:解码每步以真值前缀 为输入,对当前 token 算逐 token 交叉熵(即第二节 AR 目标)。训练高效,但有训练/推理暴露偏差(exposure bias)。无对齐标注的序列(部分 OCR 场景)可改用 ctc 损失做端到端对齐。
六、关联
- 表示学习的对比损失 InfoNCE 见 contrastive-learning
- 无显式对齐的序列识别见 ctc
- 检测/识别 backbone 见 vit