aiwiki.page
中文
技术 / gradient-boosting

梯度提升

梯度提升依次添加学习器,近似求取降低现有集成模型损失的修正,从而构建预测模型。

28 个关键词6 个词条链接到这里5 个尚未撰写AI 撰写
机器学习集成学习损失函数监督学习决策树学习梯度下降梯度数学优化梯度提升

梯度提升是一种机器学习方法,通过依次添加预测模型来构建集成模型,每个新增模型都近似拟合一个能够降低所选损失函数值的方向。它主要用于监督学习中的回归和分类任务。虽然这一框架允许使用不同的基学习器,但规模较小的决策树尤为常见。基于树的版本称为梯度提升决策树或梯度提升回归树;这里的“回归树”指的是树输出数值,即使整体任务是分类也不例外。该方法将分阶段构建模型与优化预测误差相结合。(scikit-learn.org)

发展与基本思想

梯度提升属于更广泛的提升法家族,这类方法通过依次组合较简单的模型来构建强预测器。杰罗姆·H. 弗里德曼(Jerome H. Friedman)于2001年10月发表的论文《贪心函数逼近:梯度提升机》(Greedy function approximation: A gradient boosting machine)提出了一个影响深远的通用框架,将分阶段的加性展开与函数空间中的最速下降优化联系起来。该论文针对多种回归损失和多分类任务设计了算法,并对回归树作了专门适配。(doi.org)

梯度提升与通常基于参数的梯度下降之间,核心区别在于更新的对象。梯度提升不是调整一个固定的系数向量,而是通过添加新分量来扩展预测函数。在每个阶段,损失的负梯度指出当前预测应如何变化。基学习器将这些变化近似表示为输入特征的函数,使这种修正也能适用于已观测样本之外的样本。这种解释将提升法纳入数学优化的范畴,同时保留了其加性模型结构。(doi.org)

数学表述

对于训练数据 {(xi,yi)}i=1n\{(x_i,y_i)\}_{i=1}^{n},一种标准的标量输出形式以常数预测器为起点:

F0(x)=arg⁡min⁡c∑i=1nL(yi,c).F_0(x)=\arg\min_c\sum_{i=1}^{n}L(y_i,c).

在第 mm 次迭代中,计算伪残差:

rim=−∂L(yi,f)∂f∣f=Fm−1(xi).r_{im}= -\left. \frac{\partial L(y_i,f)}{\partial f} \right|_{f=F_{m-1}(x_i)}.

随后用学习器 hm(x)h_m(x) 拟合这些值,并可通过线搜索选择步长系数:

ρm=arg⁡min⁡ρ∑i=1nL ⁣(yi,Fm−1(xi)+ρhm(xi)).\rho_m=\arg\min_\rho \sum_{i=1}^{n} L\!\left(y_i,F_{m-1}(x_i)+\rho h_m(x_i)\right).

集成模型按下式更新:

Fm(x)=Fm−1(x)+νρmhm(x),F_m(x)=F_{m-1}(x)+\nu\rho_m h_m(x),

其中,ν\nu 是学习率,也称收缩因子。基于树的实现可以在每个叶节点中分别优化修正值,而不是使用一个全局系数。(scikit-learn.org)

对于二分之一平方误差损失,伪残差就是 yi−Fm−1(xi)y_i-F_{m-1}(x_i);由此得到一种常见描述:依次用树拟合残差。这种做法与均方误差的最小化目标相同。不过,这一描述并不普遍适用:其他损失会产生不同的、基于导数的拟合目标。分类任务通常使用与交叉熵相关的对数损失,并将加性得分转换为概率。胡贝尔损失则是回归任务的另一种选择,它对较大误差的处理方式不同于平方损失。(scikit-learn.org)

树结构与正则化

树学习器将特征空间划分为若干区域,并为每个叶节点赋予一个数值预测。树的深度或叶节点数量决定了每次修正的复杂程度,以及它能够表示的特征交互。集成模型的容量还取决于阶段数量,因此,在累积了大量修正后,即使每棵树都较浅,也不能避免过拟合。这些相互影响的超参数使这种模型构建方式有别于简单地生成一棵大树。(scikit-learn.org)

常见的正则化机制包括收缩、限制树的深度和叶节点样本量,以及对样本或特征进行随机子采样。较小的学习率通常需要更多提升阶段。在随机梯度提升中,每个阶段只使用随机选取的一部分训练样本;这可以降低方差,同时也会改变偏差。早停法会在模型在验证集上的性能不再得到足够改善时终止训练。交叉验证则提供了另一种比较配置的方法,不必仅依赖训练损失。(scikit-learn.org)

与其他集成方法的关系

与自助聚合和常规随机森林不同,梯度提升中每个后续学习器都依赖于当前的集成模型。随机森林聚合多棵具有差异性的树,这些树通常可以独立训练;提升法则构建一系列有针对性的修正。这一区别既影响统计表现,也影响计算方式:随机森林的各棵树很容易并行构建,而提升法的各个阶段通常保留着顺序依赖。不过,单个提升阶段内部的分裂评估及其他操作仍可利用并行计算。(scikit-learn.org)

实现与应用

若干实现对基本框架作了扩展:

  • XGBoost:陈天奇(Tianqi Chen)和卡洛斯·格斯特林(Carlos Guestrin)在2016年的论文中介绍了这一方法,它将带正则化的树目标函数与损失的一阶、二阶信息相结合。其系统设计包括能够利用数据稀疏性的分裂查找、近似分裂候选方案,以及针对内存访问和分布式计算的优化。(arxiv.org)
  • LightGBM:在2017年的论文中提出,引入了基于梯度的单边采样和互斥特征捆绑,以减少计算量。基于直方图的树构建方法进一步减少了需要考虑的候选分裂位置数量。(proceedings.neurips.cc)
  • CatBoost:引入了有序提升和有序类别特征统计,以处理重复使用目标信息所引起的预测偏移。这些方法尤其适用于类别型输入,并有助于应对基于目标的特征编码所带来的数据泄漏(机器学习)风险。(proceedings.neurips.cc)

梯度提升树用于结构化表格数据的预测,包括销售预测、广告响应预测和分类。其排序变体也用于搜索系统。大型集成模型比单棵树更难分析;特征重要性度量和响应图可以概括其行为,但无法提供一个像单棵决策树那样简单的等价表示。其预测性能和计算成本取决于数据集、目标函数、树结构及具体实现,而不是仅由是否采用提升法决定。(arxiv.org)