外观
第六讲:集成学习、AdaBoost 与梯度提升
约 2053 字大约 7 分钟
Machine LearningBoostingXGBoost
本文由 GPT-5.6-sol 完成。
集成学习的基本判断是:与其把全部希望寄托在一个模型上,不如让一组模型共同决定。Bagging 通过并行重采样降低方差;Boosting 则让模型按顺序加入,每一步都试图弥补当前集成的不足。
这两类方法都在“组合模型”,但机制完全不同。本讲重点放在 Boosting:弱学习器为什么能够组成强学习器,AdaBoost 的权重更新从哪里来,以及梯度提升如何把这一思想推广到一般可微损失。
一、为什么集成可能更强
设 M 个二分类器独立地以概率 p>1/2 预测正确,多数投票出错意味着正确分类器不超过一半。由 Hoeffding 不等式可得
Pr(多数投票错误)≤exp[−2M(p−21)2].
理想的独立性在现实中很少成立,但公式揭示了两个必要条件:基学习器要比随机猜测好,同时它们的错误要有差异。若所有模型永远犯同样的错,投票不会创造新信息。
Bagging 主要通过数据与特征随机化制造差异;Boosting 则根据已有模型的错误重新分配注意力,让后续模型专门处理难点。
二、Boosting 的基本形式
考虑二分类标签 yi∈{−1,+1},弱学习器输出 ht(x)∈{−1,+1}。Boosting 构造加法模型
FT(x)=t=1∑Tαtht(x),HT(x)=sgnFT(x).
“弱学习器”通常指在当前加权分布上错误率严格小于 1/2 的学习器。Boosting 并不是简单重复训练同一个模型,而是让训练分布随着轮次变化。
三、AdaBoost 算法
1. 样本权重与弱分类器
初始化
D1(i)=n1.
第 t 轮在加权数据上训练 ht,其加权错误率为
εt=i=1∑nDt(i)I(ht(xi)=yi).
分类器权重取为
αt=21logεt1−εt.
当 εt<1/2 时,αt>0;错误率越低,话语权越大。
2. 更新样本分布
Dt+1(i)=ZtDt(i)exp[−αtyiht(xi)],
其中 Zt 是归一化常数。正确分类时 yiht(xi)=1,权重乘 e−αt;错误分类时乘 eαt。归一化以后,错分样本相对权重提高。
需要稍微克制一种常见说法:AdaBoost 不是“只看错分样本”。它仍然使用全部样本,只是改变它们在下一轮目标中的相对分量。
四、从指数损失推导 AdaBoost
AdaBoost 可以看成逐坐标最小化经验指数损失
L(F)=i=1∑nexp[−yiF(xi)].
已知 Ft−1 后,加入 αh:
L(Ft−1+αh)=i∑e−yiFt−1(xi)e−αyih(xi).
把
Dt(i)∝e−yiFt−1(xi)
视为当前样本分布,则选择 ht 等价于最小化加权分类错误。固定 ht 后,按正确与错误样本分组:
Zt(α)=(1−εt)e−α+εteα.
令导数为零,得到
αt=21logεt1−εt.
所以“提高错分样本权重”和“最小化指数损失”不是两个独立技巧,而是同一推导的两种表达。
五、训练误差界与间隔
1. 经验错误率上界
因为
I(yiFT(xi)≤0)≤e−yiFT(xi),
训练错误率满足
R^(HT)≤n1i∑e−yiFT(xi)=t=1∏TZt.
代入最优 αt 后
Zt=2εt(1−εt).
令弱学习优势 γt=21−εt,利用 1−x≤e−x/2,可得
R^(HT)≤exp(−2t=1∑Tγt2).
只要每轮都保持正优势,训练错误会指数下降。这解释了 AdaBoost 为何常能很快把训练错误压到零。
2. 为什么训练零误差后还可能继续改善
定义归一化间隔
ρi=∑t=1T∣αt∣yiFT(xi).
间隔为正表示分类正确,绝对值表示预测的稳健程度。Boosting 在训练错误已经为零后,仍可能继续把许多样本推向更大的正间隔。基于间隔分布和基学习器复杂度,可以得到泛化界;这比只数训练错误更能解释其后续收益。
另一方面,指数损失会对严重错分点赋予极大权重,因此对标签噪声与异常点可能敏感。稳健变体或较温和的损失在这类场景中更合适。
六、梯度提升:在函数空间里下降
AdaBoost 针对指数损失。Gradient Boosting 把思路推广为:对任意可微损失,每一轮训练一个基学习器去拟合当前损失关于模型输出的负梯度。
加法模型写成
Ft(x)=Ft−1(x)+ηρtht(x),
其中 η 是学习率。第 t 轮的伪残差为
rit=−∂F(xi)∂ℓ(yi,F(xi))F=Ft−1.
先让 ht(xi) 拟合 rit,再通过一维搜索或叶节点优化确定步长 ρt。
1. 平方损失
若
ℓ(y,F)=21(y−F)2,
则
rit=yi−Ft−1(xi),
恰好是真实残差。因此“不断拟合残差”是梯度提升在平方损失下的特例。
2. 二元对数损失
若 pi=σ(F(xi)),交叉熵对分数的负梯度为
rit=yi−pi.
这时拟合的是概率残差,而不是直接拟合 0-1 分类错误。
七、正则化的梯度提升
梯度提升树通常通过以下方式控制复杂度:
- 使用较小学习率 η;
- 限制树深、叶节点数和叶节点最少样本;
- 对样本和特征进行子采样;
- 使用早停;
- 惩罚叶节点权重与新增叶子。
树的数量与学习率存在明显联动:较小学习率通常需要更多轮,却往往得到更平滑、可控的拟合过程。
八、XGBoost 的二阶目标
第 t 轮加入一棵回归树 ft:
y^i(t)=y^i(t−1)+ft(xi).
正则化目标为
L(t)=i=1∑nℓ(yi,y^i(t−1)+ft(xi))+Ω(ft),
常用树复杂度
Ω(f)=γT+2λj=1∑Twj2,
其中 T 是叶节点数,wj 是第 j 个叶子的输出。
1. 二阶 Taylor 展开
在当前预测处展开损失:
L(t)≈i∑[gift(xi)+21hift2(xi)]+Ω(ft),
其中
gi=∂y^(t−1)ℓi,hi=∂y^(t−1)2ℓi.
设叶子 j 包含样本集合 Ij,并记
Gj=i∈Ij∑gi,Hj=i∈Ij∑hi.
则与该叶权重有关的目标是
G_jw_j+ rac12(H_j+\lambda)w_j^2.
最优叶权重为
wj∗=−Hj+λGj,
固定树结构的最优目标值为
−21j=1∑THj+λGj2+γT.
2. 分裂增益
把一个叶节点分成左右两部分,增益为
Gain=21[HL+λGL2+HR+λGR2−HL+HR+λ(GL+GR)2]−γ.
只有增益足够大,分裂才值得发生。这里的一阶梯度说明当前预测应向哪里改,二阶梯度刻画局部曲率,λ 收缩叶权重,γ 则直接惩罚结构增长。
LightGBM 等系统在采样、直方图、叶子生长策略和工程实现上进一步加速,但核心仍是正则化的加法树模型,不宜只把它们理解为“更快的随机森林”。
九、小结
Boosting 的演化路线是
加权分类⟶指数损失⟶函数空间梯度⟶二阶近似与正则化树.
AdaBoost 展示了弱学习器如何经由自适应重加权组成强分类器;Gradient Boosting 把“纠正错误”精确化为拟合负梯度;XGBoost 再把二阶信息、树结构代价和高效搜索结合起来。贯穿三者的不是某一棵特殊的树,而是逐步构造加法模型的思想。
更新日志
2026/9/27 10:05
查看所有更新日志
eea03-update 0927 japaneseVocabulary.js于
