跳到主内容

什么是梯度提升?一棵棵补上误差的原理

2026-10-06 发布 来源:我告诉你AI导航 阅读

一张几千行的表格,几十列特征,第一棵决策树跑完,预测值和真实值之间还差着一截。梯度提升的处理方式很直接:再种一棵,专门学这一截差距,然后一棵接一棵种下去,最后把所有树的输出加起来。它是 AI 里少见的、在表格数据上长期压过深度模型的...

一张几千行的表格,几十列特征,第一棵决策树跑完,预测值和真实值之间还差着一截。梯度提升的处理方式很直接:再种一棵,专门学这一截差距,然后一棵接一棵种下去,最后把所有树的输出加起来。它是 AI 里少见的、在表格数据上长期压过深度模型的方法,代价是训练慢、参数敏感,也更容易把噪声一起学进去。下面把残差、学习率、树深这几个概念拆开,说清它强在哪、什么时候会坏。

它补的不是标签,是上一棵留下的差额

第一棵树按常规方式拟合目标,比如预测房价,给出一个粗略值,真实价格减掉这个值就是残差。第二棵树的目标换成这个残差,输出再乘一个系数加到前面的结果上。第三棵继续补前两棵剩下的部分。最终模型是所有树的加权和,任何单独一棵都只是个修正项。

这个「接力」的结构带来一个直接后果:每棵树只需要学一点点。单棵树可以很浅,通常三四层就够,因为它面对的不是完整问题,而是一个已经被削掉大半的差额。浅树训练快、方差小,几百棵加起来反而比一棵深树稳。

残差方向就是负梯度,名字由此而来

平方损失下,残差恰好等于损失函数对预测值的负梯度。换成别的损失函数,残差这个词就不准了,但「沿负梯度方向补一步」的做法仍然成立——每棵新树拟合的是当前模型还不够的那部分下降方向。这也是它比「残差拟合」这个说法更一般的地方:分类、排序、计数问题都能套进来,只是每种问题算梯度的方式不同。

理解这一点,就能明白它为什么对损失函数的选择很敏感。换一个损失,梯度变了,树的生长方式也跟着变,原来那套参数往往要重调一遍。梯度下降怎么一步步走向更低点讲的是同一个方向,区别只在于这里每一步由一整棵树来走。

四个概念,各自解决什么、各自要付什么

关键概念解决什么代价
残差(负梯度)指明每棵新树该往哪个方向补损失函数一换就要重算,差值不能照搬
学习率(收缩系数)让每棵树只补一部分,避免一步迈过头调小就要更多棵树,训练时间与内存一起涨
树深与叶子数控制单棵树能表达多复杂的修正太浅补不动,太深单棵树就把噪声记下来
行/列子采样每棵树只看一部分数据与特征,降低方差数据量小时会丢信息,效果反而不稳
树的数量与早停决定补到什么时候收手早停依赖验证集,验证集不具代表性就停错

树深和树的数量是一对。树深放开、树的数量给足,训练集误差能一路降到接近零,验证集却在中途就开始回升。这条曲线的拐点,才是该停的地方;凭感觉定「跑五百棵」,多半已经跑过了。

学习率和树数是同一个旋钮的两端

学习率取 0.1 配三百棵树,和取 0.05 配六百棵树,效果可能差不多,但后者训练时间翻倍、占的内存也翻倍。经验做法是从 0.05 到 0.1 起步,先定树的数量上限,再看验证集曲线决定停在哪。

学习率调到 0.01 以下,通常意味着你需要的树已经多到不划算。这个区间偶尔有人用,前提是数据量小、精度要求高、训练时间不成问题;日常业务场景里,它带来的那点提升多数撑不起翻几倍的成本。

和随机森林的差别,不在谁更强

随机森林并行种树、各自独立、最后平均,降的是方差,对付的是「单棵树换个样本就变样」。梯度提升串行种树、后一棵看前一棵的错,降的是偏差,对付的是「模型根本拟合不够」。两者解决的是不同症状,谈不上替代关系。

所以选择看症状:验证集和训练集差距大,往森林那边想;两边都高,说明欠拟合,提升更对症。两者也可以叠着用,把提升树当基学习器再装一层,代价是调参复杂度上一个台阶。集成学习里并行与串行的两条路把这个分野讲得更细。

补得够久,噪声也会被当成信号

这是它最实际的风险。数据里的标注错误、一次性的异常、某个巧合的特征组合,都会被当成「还没拟合到的部分」继续补。表现是训练集指标漂亮,换一批数据就掉下来。三个手段配合用:学习率压低、单棵树限制深度、按验证集早停。三个都上还过拟合,问题多半在数据,不在参数。

另一层限制是它不擅长外推。树模型的分裂基于阈值切分,遇到训练集里没出现过的区间,输出会停在边界值上——房价预测里,超过历史最高价的房子,它给不出更高的估计。时间序列的趋势外推、超出历史范围的需求预测,都不该指望它。过拟合在验证集上是什么样子,值得在调参前先看一眼。

表格数据先试它,是有道理的

特征含义明确、样本量几千到几十万、允许训练花几分钟到几小时,这几个条件凑齐,梯度提升类方法通常是最先该试的。它对特征缩放不敏感,缺失值和类别特征有成熟处理方式,调参的每一步也都能从验证集上看到反馈。

短板同样清楚:训练串行,加机器不一定变快;参数比随机森林敏感,树深、学习率、子采样都要动;可解释性介于线性模型和深度网络之间,能给特征重要性,说不清具体判断路径。这三点里,前两点是成本,第三点在需要向人解释决策的场合是硬伤——那时该考虑换成单棵树或线性模型。单棵决策树是怎么切分的,是理解这一切的起点。

速查:梯度提升的五个要点

  • 它补的是残差,不重新拟合原目标
  • 学习率调小,树的数量要跟着加,成本翻倍
  • 树深和树数一起放开,等于请噪声进来
  • 早停靠验证集,验证集不具代表性就停错
  • 超出历史范围的外推,它给不出合理值

反馈页面信息

请描述需要更正的地方,页面标题和网址会自动附上。

也可以发邮件至 [email protected]