返回 经典机器学习 思维导图
中文·English
📊 经典机器学习ID: loss-huber-focal

Huber 与 Focal Loss

Huber Loss & Focal Loss
🎯核心定义
Huber loss(平滑 L1): 对残差 r=yf(x)r = y - f(x), 小误差用二次、大误差用线性, 分段定义为 Lδ(r)={12r2,rδδ(r12δ),r>δ\mathcal{L}_\delta(r) = \begin{cases} \frac{1}{2}r^2, & |r| \le \delta \\ \delta(|r| - \frac{1}{2}\delta), & |r| > \delta \end{cases}——在 r=δ|r| = \delta 处连续可导, 对大离群点梯度恒定(不爆炸), 对多数样本仍保持 L2 的快速收敛; 目标检测中常以 Smooth L1 形式出现。Focal Loss: FL(pt)=αt(1pt)γlogptFL(p_t) = -\alpha_t (1-p_t)^\gamma \log p_t, 其中 ptp_t 是真实类别的预测概率, γ[0,5]\gamma \in [0,5] 为调制因子(常用 2), αt\alpha_t 为类别权重——当 pt1p_t \to 1(易分样本)时 (1pt)γ0(1-p_t)^\gamma \to 0, 损失被急剧压低; 当 ptp_t 小(难分样本)时权重接近 1, 损失保留, 由 RetinaNet 提出解决“易分负样本淹没梯度”的问题。
💡使用场景
Huber/Smooth L1 — 回归任务含离群点、需要梯度稳定的场景(目标检测框回归、坐标回归); Focal — 稠密目标检测、类别极不平衡的分类(背景框 vs 目标框可达 1:1000)。
解决的核心痛点
对离群点, MSE 梯度随误差线性增长、单个异常样本就能主导梯度, MAE 虽鲁棒但在 0 处不可导且小误差时梯度恒定、收敛慢; Huber 在两者间折中——小误差 L2 收敛快、大误差 L1 梯度被截断在 ±δ\pm\delta 内, 既鲁棒又处处可导。Focal 解决“大量易分负样本(如背景)贡献了绝大部分 CE 损失、梯度被稀释”: 调制因子把易分样本的贡献指数级压低, 使训练注意力转向少数难分正样本, 与重采样/class weight 互补而非替代。
🎯5 个高频面试考点 (Exam Points)
1
写出 Huber loss 分段公式 Lδ(r)\mathcal{L}_\delta(r); δ 的作用是什么? 为什么说它在 r=δ|r|=\delta 处连续可导?
2
Huber 与 MSE/MAE 对比: 对离群点梯度、原点可导性、收敛速度各有什么特点?
3
写出 Focal loss 公式 FL(pt)=αt(1pt)γlogptFL(p_t) = -\alpha_t(1-p_t)^\gamma \log p_t; γ 与 α 各自的作用?
4
为什么 Focal loss 能缓解类别不平衡? 它与重采样、class weight 是替代还是互补关系?
5
Smooth L1 与 Huber 的关系? 目标检测为什么框回归用 Smooth L1 而不是 MSE?
📖 关联深度指南:📄 ml-math-and-eval-metrics
更新于 2026-08-12
🎯
检验攻克程度:针对「Huber 与 Focal Loss」专属刷题排雷
做单选排雷题、推导选项机制,答错自动收录进专属错题本。
🚀 开始本考点专项刷题
上一个知识点重采样方法 SMOTE/ADASYN/Tomek下一个知识点目标编码 Target Encoding

🔗 更多 经典机器学习 知识点卡片

AdaBoost 算法手推Bagging 与随机森林HMM 参数学习 Baum-WelchGBDT 负梯度拟合