← 返回题目列表

类别不平衡时 Class Weight 和 Focal Loss 怎么选?

中等 第 21 / 25 题 更新于 2026/09/19
深度学习机器学习面试题模型训练

简化版

类别权重通过放大少数类或高成本样本的损失改变整体贡献;Focal Loss 额外用 (1-p_t)^γ 压低易样本权重,集中学习难样本。二者可组合,但会改变概率含义,需在原始分布上重新校准和选阈值。

详细版

  • class weight 解决类别总贡献失衡,Focal Loss 解决大量易样本主导梯度。

  • γ=0 时 Focal Loss 退化为交叉熵,γ 越大越强调低置信样本。

  • α 是类别平衡项,γ 是难度调制项,不能混为一个参数。

  • 噪声标签也常是难样本,过大的 γ 会持续放大它们。

  • 用 PR-AUC、召回、成本和校准联合评估,不能只看准确率。

完整版教学

一、两种方法作用在不同的权重维度

普通交叉熵中每个样本都贡献 -log p_t

类别权重只按标签缩放,Focal 因子则随当前预测置信度动态变化。

这意味着同一正类内部,已正确预测的样本会逐渐降权,边界样本继续产生较大梯度;但模型无法自动区分真正困难与错误标注。

二、底层机制与公式

weighted CE = -alpha_y * log(p_t)
focal = -alpha_y * (1-p_t)^gamma * log(p_t)

三、带数字的推演

γ=2:易样本 p_t=0.9 的调制因子为 0.01,难样本 p_t=0.20.64,仅调制项就相差 64 倍。

若 γ=0,两者都回到普通交叉熵。

四、方案对比

方案/对象核心特点代价或边界
Class weight按类别/成本固定缩放简单但不区分难易
Focal Loss动态压低易样本对噪声与 γ 敏感
阈值移动只改决策操作点不改变表征学习

五、执行流程

定义业务成本与原始比例 -> 建 CE 基线 -> 加权或 focal 消融
-> 训练折内调 α/γ -> 原始验证分布选阈值 -> 检查概率校准

六、边界条件与工程代价

若通过过采样又使用 inverse-frequency 权重,少数类可能被重复补偿,导致过度预测。

所有权重都应在同一有效采样分布下计算。

Focal Loss 常改善检测中的前景/背景失衡,却不保证分类概率可靠;用概率做风险决策时需单独校准。

记忆钩子:先分清“哪个类别重要”与“哪个样本困难”:α 或 class weight 回答前者,(1-p_t)^γ 回答后者。

七、常见误区与追问

  • 误区:类别不均衡就一定需要 Focal Loss。 可分性强时普通 CE 加阈值已经足够。

  • 追问:α 和 γ 分别控制什么? α 控类别或成本,γ 控易难样本调制强度。

  • 误区:γ 越大越关注真正有价值的难例。 标签噪声也会获得大权重。

  • 追问:加权后为什么要重选阈值? 训练目标改变后输出分数和先验不再保持原含义。

  • 追问:如何公平比较? 固定采样与训练预算,在原始分布报告 PR 和成本曲线。

八、加强记忆

先分清“哪个类别重要”与“哪个样本困难”:α 或 class weight 回答前者,(1-p_t)^γ 回答后者。

组合越强,越要检查噪声放大与校准偏移。