AI 入门 101
什么是梯度提升?

一种常见的机器学习模型,在数据科学竞赛中非常有用,这种模型就是梯度提升模型。 梯度提升 基本上是将弱学习模型转化为强学习模型的过程。然而,这是如何实现的?让我们更详细地了解梯度提升算法,并更好地理解梯度提升模型如何将弱学习器转化为强学习器。
定义梯度提升
本文旨在让您对梯度提升有一个很好的直觉理解,而不需要太多数学解释。一旦您对梯度提升的基本原理有了深入的理解,您就可以更深入地研究数学基础。
让我们首先定义什么是“提升”一个学习器。通过调整学习模型的属性,可以将弱学习器转化为强学习器。那么,到底是什么学习算法被提升了?
提升模型通过增强另一种常见的机器学习模型——决策树——来工作。
决策树模型通过将数据集分解为越来越小的部分来工作,一旦子集不能再分割,结果就是一个具有节点和叶子的树。决策树中的节点是根据不同的过滤标准对数据点做出决定的地方。决策树中的叶子是被分类的数据点。决策树算法可以处理数字和分类数据,树中的分割是基于特定变量/特征的。

提升模型的训练方式图解。
图片来源:SeattleDataBuy via Wikimedia Commons, CC 4.0 (https://commons.wikimedia.org/wiki/File:Boosting.png)
一种提升算法是 AdaBoost 算法。AdaBoost 算法首先训练一个决策树模型,并为每个观察分配相同的权重。第一次树的评估完成后,根据准确性调整不同观察的权重。容易分类的观察的权重降低,而难以分类的观察的权重增加。使用这些调整后的权重创建第二棵树,目标是第二棵树的预测比第一棵树更准确。
模型现在由原始树和新树(或树 1 + 树 2)的预测组成。根据新模型再次评估分类准确性。根据模型的计算误差创建第三棵树,并再次调整权重。这个过程在指定的迭代次数内重复,最后的模型是一个使用所有先前构造树的预测的加权和的集成模型。
上述过程使用决策树和基预测器/模型,但可以使用广泛的模型(如标准分类器和回归器模型)来实现提升方法。要理解的关键概念是,后续预测器从前一个预测器的错误中学习,并且预测器是顺序创建的。
提升算法的主要优势是它们比其他机器学习模型更快地找到当前预测。然而,在使用提升算法时需要谨慎,因为它们容易过拟合。
梯度提升
现在,让我们来看一下最常见的提升算法之一。梯度提升模型(GBM)以其高准确性而闻名,它增强了 AdaBoost 中使用的通用原理。
梯度提升模型和 AdaBoost 之间的主要区别在于,GBM 使用不同的方法来计算哪些学习器正在错误地识别数据点。AdaBoost 通过检查权重较大的数据点来确定模型的性能不佳的地方。另一方面,GBM 使用梯度来确定学习器的准确性,应用损失函数来评估模型。损失函数是衡量模型对数据集的拟合程度的一种方法,计算误差并优化模型以减少该误差。GBM 允许用户根据其目标优化特定的损失函数。
以最常见的损失函数——均方误差(MSE)——为例,梯度下降用于根据预定义的学习率更新预测,目标是找到损失最小的值。
为了更清楚地说明:
新模型预测 = 输出变量 – 旧不完美预测。
从统计学的角度来看,GBM 旨在找到模型残差中的相关模式,并调整模型以适应该模式,将残差尽可能接近零。如果您对模型的预测执行回归,残差将围绕 0(完美拟合)分布,GBM 会找到残差中的模式并根据这些模式更新模型。
换句话说,预测是更新的,以便残差的总和尽可能接近 0,这意味着预测值将非常接近实际值。
注意,GBM 也可以使用其他损失函数(如对数损失)。上面选择 MSE 是为了简单起见。
梯度提升模型的变体
梯度提升模型是贪婪算法,容易在数据集上过拟合。可以使用多种方法来防止这种情况,例如 正则化。
可以使用四种不同的方法来规范 GBM:收缩、树约束、随机梯度提升和惩罚学习。
收缩
如前所述,GBM 中的预测是顺序地加在一起的。在“收缩”中,向总和中添加的每棵树的贡献都被调整。应用了减慢算法学习率的权重,需要添加更多树到模型中,这通常可以提高模型的鲁棒性和性能。然而,代价是模型训练时间更长。
树约束
通过对树施加各种限制,例如增加树的深度或增加树中的节点或叶子数量,可以使模型更难过拟合。强制树分裂的最小观察次数也会产生类似的效果。同样,代价是模型训练时间更长。
随机采样
个别学习器可以通过随机过程创建,基于训练数据集的随机子样本。这样可以减少树之间的相关性,从而防止过拟合。可以在创建树之前或在树中考虑分裂之前对数据集进行子采样。
惩罚学习
除了通过限制树的结构来约束模型外,还可以使用回归树。回归树在每个叶子上都有数值,这些数值可以作为权重,并可以使用常见的正则化函数(如 L1 和 L2 正则化)来调整。












