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

AdaBoost 算法手推

AdaBoost Derivation
🎯核心定义
AdaBoost 是加法模型 f(x)=m=1MαmGm(x)f(x) = \sum_{m=1}^{M} \alpha_m G_m(x) 在指数损失 Lexp(f)=i=1neyif(xi)L_{\exp}(f) = \sum_{i=1}^{n} e^{-y_i f(x_i)} 下的前向分步加性建模 (Forward Stagewise Additive Modeling)。第 mm 轮固定 fm1f_{m-1}, 记权重 wi(m)=eyifm1(xi)w_i^{(m)} = e^{-y_i f_{m-1}(x_i)}, 只需极小化 i=1nwi(m)eαmyiGm(xi)\sum_{i=1}^{n} w_i^{(m)} e^{-\alpha_m y_i G_m(x_i)}。把样本按对错拆分: 分对 (yiGm(xi)=+1y_i G_m(x_i) = +1) 贡献 eαmwie^{-\alpha_m} w_i, 分错 (yiGm(xi)=1y_i G_m(x_i) = -1) 贡献 eαmwie^{\alpha_m} w_i, 目标化为 eαm(Wmerrm)+eαmerrme^{-\alpha_m}\left(W_m - \text{err}_m\right) + e^{\alpha_m} \text{err}_m, 其中 Wm=i=1nwi(m)W_m = \sum_{i=1}^{n} w_i^{(m)} 为权重总和, errm=yiGm(xi)wi(m)\text{err}_m = \sum_{y_i \neq G_m(x_i)} w_i^{(m)} 为加权错分样本权重和。对 αm\alpha_m 求导置零: eαm(Wmerrm)+eαmerrm=0-e^{-\alpha_m}\left(W_m - \text{err}_m\right) + e^{\alpha_m} \text{err}_m = 0, 即 e2αm=Wmerrmerrme^{2\alpha_m} = \frac{W_m - \text{err}_m}{\text{err}_m}; 定义加权错误率 em=errmWme_m = \frac{\text{err}_m}{W_m}, 得 αm=12ln1emem\alpha_m = \frac{1}{2} \ln \frac{1 - e_m}{e_m} — 弱分类器越准 (em0e_m \to 0) 权重越大, 随机猜测 (em=0.5e_m = 0.5) 权重为 0, 差于随机 (em>0.5e_m > 0.5) 权重为负 (实践中翻转预测即可)。固定 αm>0\alpha_m > 0 时, 目标关于 GmG_m 等价于 i=1nwi(m)1[yiGm(xi)]\sum_{i=1}^{n} w_i^{(m)} \mathbb{1}\left[y_i \neq G_m(x_i)\right] — 带权分类错误率, 这正是每轮用加权数据训练弱分类器的依据。权重更新: wi(m+1)=wi(m)eαmyiGm(xi)w_i^{(m+1)} = w_i^{(m)} e^{-\alpha_m y_i G_m(x_i)}, 即分对乘 eαm=em1em<1e^{-\alpha_m} = \sqrt{\frac{e_m}{1 - e_m}} < 1(权重下降), 分错乘 eαm=1emem>1e^{\alpha_m} = \sqrt{\frac{1 - e_m}{e_m}} > 1(权重放大), 再除以 Wm+1W_{m+1} 归一化。最终分类器 G(x)=sign(m=1MαmGm(x))G(x) = \text{sign}\left(\sum_{m=1}^{M} \alpha_m G_m(x)\right)。指数损失是 0-1 损失的凸上界 (eyf1[yf<0]e^{-yf} \geq \mathbb{1}[yf < 0], 且光滑可微), 使加权训练与函数空间梯度下降严格对齐。
💡使用场景
“推导 AdaBoost 权重”是 ML 面试白板题的高频天花板 — 常追问: 目标函数怎么来、为什么对 αm\alpha_m 求导、权重为什么乘性更新、为什么必须归一化、与 GBDT 的关系。
解决的核心痛点
单个弱分类器 (如深度 1 的 stump) 精度仅略好于随机 — AdaBoost 迭代重加权把训练注意力集中到错分样本, 训练误差以 m=1M2em(1em)\prod_{m=1}^{M} 2\sqrt{e_m(1 - e_m)} 为界: 只要每轮 em<0.5e_m < 0.5(弱学习器条件), 误差随 MM 指数趋于 0, 将“略优于随机”的弱学习器提升为任意精度的强分类器; 代价是指数损失对噪声/离群点过度敏感 (错分样本权重爆炸式增长), 因此 LogitBoost 改用对数似然损失、GBDT 用负梯度框架做了推广。
🎯5 个高频面试考点 (Exam Points)
1
白板推导 AdaBoost 权重: 从指数损失出发, 固定 GmG_m 把样本拆成“分对/分错”两组, 对 αm\alpha_m 求导得 αm=12ln1emem\alpha_m = \frac{1}{2} \ln \frac{1 - e_m}{e_m}
2
推导样本权重乘性更新 wiwieαmyiGm(xi)w_i \leftarrow w_i e^{-\alpha_m y_i G_m(x_i)}: 分对乘 eαme^{-\alpha_m}、分错乘 eαme^{\alpha_m}, 为什么必须归一化? 两个乘子之比是多少?
3
为什么每轮用“带权数据”训练弱分类器? 固定 αm\alpha_m 后目标为什么退化为加权错误率?
4
为什么用指数损失? 它与 0-1 损失、对数损失 (LogitBoost) 的代理关系与各自优劣?
5
训练误差上界 m2em(1em)\prod_m 2\sqrt{e_m(1 - e_m)} 的含义; AdaBoost 与加法模型/GBDT 的关系
📖 关联深度指南:📄 decision-trees-and-ensemble
更新于 2026-08-12
🎯
检验攻克程度:针对「AdaBoost 算法手推」专属刷题排雷
做单选排雷题、推导选项机制,答错自动收录进专属错题本。
🚀 开始本考点专项刷题
上一个知识点Bagging 与随机森林下一个知识点GBDT 负梯度拟合

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

HMM 参数学习 Baum-Welch混淆矩阵线性链条件随机场K-Fold 交叉验证