趋近智
标准机器学习算法,如线性回归或具有固定结构的神经网络,其优化通常涉及为预定义模型结构 f(x;θ) 寻找最佳的 参数 θ 集合。梯度下降等方法被用来迭代更新这些参数,以最小化在训练数据上平均的损失函数 L(y,f(x;θ))。更新规则通常是 θnew=θold−η∇θL,其中 ∇θL 是损失函数关于参数的梯度。
梯度提升机(GBM)从不同的角度进行优化。GBM 不在固定的模型结构中优化参数,而是迭代地构建模型本身。我们优化的“参数”是表示集成模型的整个函数 F(x)。我们要在可能的函数空间中寻找一个函数,使其能最大程度最小化训练数据上的总损失。这种优化过程可以被视为在函数空间中执行梯度下降。
设想一个高维空间,其中每个点都对应一个特定函数 F。我们的目标是在此空间中找到函数 F∗,使其最小化数据集 (xi,yi) 在 i=1,…,N 上的总损失:
Ltotal(F)=i=1∑NL(yi,F(xi))就像在参数空间中一样,我们希望迭代地改进当前对最优函数的估计。设 Fm−1(x) 是经过 m−1 次提升迭代后的当前集成模型。我们希望找到一个新的函数 hm(x)(我们的基学习器,通常是决策树),将其添加到当前模型能使我们更接近最小损失。也就是说,我们希望:
Fm(x)=Fm−1(x)+ηhm(x)其中 η 是步长(学习率),且 hm(x) 指向一个能降低总损失 Ltotal 的方向。
在标准梯度下降中,负梯度 −∇θL 指示了在参数空间中能够带来损失最陡峭下降的方向。那么在函数空间中,与之对应的是什么呢?
我们可以将每个训练样本 i 的预测值 F(xi) 视为定义当前在函数空间中位置的“坐标”。总损失 Ltotal 关于这些坐标的梯度是一个向量,其中第 i 个分量是单个损失项 L(yi,F(xi)) 关于模型预测值 F(xi) 的偏导数,在当前模型 Fm−1 处进行评估:
gim=[∂F(x)∂L(yi,F(x))]F(x)=Fm−1(xi)这个向量 (g1m,g2m,…,gNm) 表示在由 Fm−1 定义的函数空间点上,总损失最陡峭上升的方向。
为了最小化损失,我们需要沿着与梯度相反的方向移动。我们定义负梯度分量,通常被称为伪残差,用于迭代 m 中的每个样本 i:
rim=−gim=−[∂F(x)∂L(yi,F(x))]F(x)=Fm−1(xi)这些伪残差 rim 表示我们的下一个基学习器 hm(x) 应该去近似的目标值。为什么叫“伪残差”?
考虑使用平方误差损失的回归情况:L(y,F(x))=21(y−F(x))2。 梯度分量为:
∂F(x)∂L(yi,F(x))=∂F(x)∂(21(yi−F(x))2)=−(yi−F(x))在 Fm−1(xi) 处评估此式得到 −(yi−Fm−1(xi))。 因此,负梯度为:
rim=−[−(yi−Fm−1(xi))]=yi−Fm−1(xi)在这种特定情况下,伪残差恰好是普通的残差(真实值与当前模型预测值之间的差异)。对于其他损失函数,rim 并非简单的残差,但它仍表示当前模型 Fm−1 最需要改进的方向(在函数空间中逐点评估)。
我们不能直接将伪残差向量 (r1m,…,rNm) “添加”到我们的函数 Fm−1(x)。相反,我们拟合一个基学习器 hm(x),以根据输入特征 xi 来预测这些伪残差:
hm=arghmini=1∑N(rim−h(xi))2这个基学习器 hm(x) 提供了在整个输入域上所需的负梯度步长的近似,不仅限于训练点。
最后,我们通过添加这个新的学习器并按学习率 η 进行缩放来更新集成模型:
Fm(x)=Fm−1(x)+ηhm(x)这种更新在函数空间中执行近似的梯度下降步骤。通过基于当前集成模型的误差迭代计算伪残差,并用新的基学习器拟合这些伪残差,GBM 算法逐步最小化总损失函数。这种函数梯度视角提供了一个有力的统一框架,有助于理解梯度提升如何在不同损失函数和基学习器下工作。
这部分内容有帮助吗?
© 2026 ApX Machine Learning用心打造