趋近智
为了叠加地构建模型,使每个新组件都能纠正集成模型截至目前的误差,我们需要一个系统方法来确定进行何种修正。这就是优化技术发挥作用的地方,其中最重要的一种是梯度下降 (gradient descent)。尽管您可能在通过调整权重 (weight)参数 (parameter)训练线性回归或神经网络 (neural network)等模型时接触过梯度下降,但它在梯度提升中的应用略有不同但相互关联。在看到它如何应用于提升算法之前,理解其核心机制很重要。
监督学习 (supervised learning)的核心在于最小化损失函数 (loss function),通常表示为 。此函数量化 (quantization)了真实目标值 () 与我们模型 () 所做预测之间的差异。常见例子包括回归中的均方误差(MSE)或分类中的对数损失。我们的目标是找到一个模型 ,使其在整个训练数据上的损失值尽可能小。
把损失函数 (loss function)想象成一片有山丘和山谷的地形,其中任意点的高度代表给定模型配置的损失值。我们想找到这片地形中的最低点,即损失函数的最小值。梯度下降 (gradient descent)提供了一个简单的迭代策略:
如何找到最陡峭的下降方向?微积分告诉我们,损失函数的梯度,表示为 ,指向最陡峭的上升方向。因此,要向下移动,我们只需沿着梯度的反方向移动,即沿着 。
在优化模型参数 (parameter) 时,第 次迭代的基本梯度下降 (gradient descent)更新规则是:
让我们分解理解一下:
该过程重复进行,迭代调整参数以逐步降低损失。
学习率 的选择对算法性能很重要:
找到合适的学习率通常需要实验和调优。在梯度提升中,这个学习率通常被称为收缩率,它在控制学习过程和充当一种正则化 (regularization)形式方面发挥双重作用,我们稍后会进行说明。
一个简化的1D示例 () 展示了不同的学习率 () 如何影响梯度下降 (gradient descent)从 开始所走的步长。目标是达到 。合适的学习率能有效收敛,较小的学习率收敛缓慢,较大的学习率会越过最小值,而过大的学习率会导致发散。
尽管基本更新规则使用在整个数据集上计算的梯度(批量梯度下降),但存在变体。随机梯度下降(SGD) 基于单个数据点计算梯度,而小批量梯度下降使用数据的一个小部分。这些方法的计算成本可能更低,有时有助于逃离浅层局部最小值,尽管标准的GBM通常在整个数据集上计算梯度,除非明确使用了随机子采样。
那么,这与叠加地构建树的集成模型有何关联呢?梯度提升不是优化一组固定的参数 (parameter) ,而是在函数空间中进行优化。我们从一个初始简单模型开始(例如,回归中目标值的均值)。然后在每次迭代 中,我们希望找到一个新函数 (我们的基本学习器,通常是决策树)将其添加到当前集成 中,以便整体损失降低:
梯度提升在此处使用了梯度下降的思想:它计算损失函数 (loss function) 相对于当前模型预测 的负梯度,对每个训练实例 进行评估:
这些负梯度 通常被称为伪残差,代表了在函数空间中,给定当前集成模型的预测,损失对于每个数据点下降最快的“方向”。算法随后拟合新的基本学习器 以近似这些伪残差。本质上,我们正在使用梯度下降来指导集成模型的序列构建,告诉我们下一个树应该侧重于纠正哪些误差(由损失的负梯度定义)。
将提升算法视为函数空间中的梯度下降,这是贯穿本课程所讨论算法的核心思想。我们将在下一章中推导通用的梯度提升机算法时,进一步使其规范化。目前,重要的收获是梯度下降提供了优化机制,通过添加基本学习器来修正剩余误差,正如损失函数的梯度所指明的那样,从而迭代改进集成模型。
这部分内容有帮助吗?
© 2026 ApX Machine Learning用心打造