M2-032M2: Classical Machine Learning梯度提升 (GBDT/XGBoost)Easy
Mastery:
梯度提升 (GBDT/XGBoost): 解释 GBDT 的核心思想:为什么是'拟合负梯度'。
📐 Mathematical Definition
⚡ Executive Summary
Core Concept: 每轮拟合当前模型损失函数的负梯度(伪残差),等价于在函数空间做梯度下降。
📌 Key Takeaways
- •学习率 ν(shrinkage)控制步长
- •对平方损失,负梯度就是残差
📐 Mathematical Derivations
函数空间梯度下降的推导:目标是最小化 L(F)=Σᵢℓ(yᵢ,F(xᵢ)),其中 F 是函数(不是参数向量)。若把 F 视为'无穷维参数',则泛函梯度为 ∂L/∂F(xᵢ)=∂ℓ(yᵢ,F(xᵢ))/∂F(xᵢ)。梯度下降的更新为 F←F−η·∇L,即<strong>在函数空间中沿负梯度方向走一步</strong>。由于无法直接表示任意函数,GBDT 用一棵树 h_t 去<strong>拟合负梯度</strong>(在训练样本点上),再用它作为更新方向:F_t=F_{t−1}+ν·h_t。<strong>关键特例</strong>:若损失是平方损失 ℓ=(y−F)²/2,则负梯度 = y−F = <strong>残差</strong>——这解释了为什么 GBDT 的原始形式(Friedman 之前)就是'反复拟合残差'。对于其他损失(逻辑损失、Huber 等),负梯度是'伪残差',是残差的推广。
🏭 Production Trade-offs
实践要点:① <strong>学习率(shrinkage)ν</strong>——控制每步的贡献,ν 小则需更多树但泛化更好(更接近真正的梯度下降);ν=0.1 + 几百棵树是常见配置,ν=0.01 可能需数千棵树。② <strong>为什么小学习率提升泛化</strong>——它使模型以更小的步长逼近最优,相当于更强的正则(类似早停与 L2);理论上 ν 与树数 T 存在权衡关系(ν·T 大致固定)。③ <strong>损失函数的灵活性</strong>——GBDT 的核心优势是只需损失<strong>一阶可导</strong>即可,故可用于任意可微损失(分位数损失、排序损失、Poisson 损失),这使它远超只适用平方损失的线性回归。④ <strong>与加法模型的关系</strong>——GBDT 是<strong>前向分步加法模型</strong>(forward stagewise additive modeling)的特例:每步加一个基学习器以最小化当前损失,只是 GBDT 用梯度方向而非直接求解(对复杂损失无闭式解)。
⚠️ Common Interview Pitfalls
- ✕认为 GBDT 只能用于回归(可配任意可微损失)
- ✕用大学习率 + 少树(欠拟合且不稳)
🎯 Interviewer Follow-ups
- ?为什么加学习率能提升泛化?
- ?GBDT 与加法模型的联系?
📚
Associated Knowledge Base Guides & Mindmaps
Explore the comprehensive technical article, exam cards, and global architecture tree.