知识卡片

二阶泰勒展开的设计动机

专业/工作 · 277

内容

XGBoost目标函数对损失函数做二阶泰勒展开(而非只用一阶梯度),是因为传统Gradient Boosting只利用一阶梯度信息决定拟合方向,收敛速度和精度有限;引入二阶导数(Hessian)相当于用牛顿法代替普通梯度下降,每一步都能利用曲率信息更精确地定位最优方向,收敛更快。这个设计的关键副作用是:只要损失函数二次可微,就能推导出统一的叶子权重闭式解和分裂增益公式,因此XGBoost可以支持任意自定义损失函数——用户只需提供一阶、二阶导数的计算方法,不需要为每种损失重新设计训练算法。这是”数学近似”反过来带来”工程通用性”的典型例子。

参考来源

《深入理解XGBoost:高效机器学习算法与进阶》第5章《XGBoost原理与理论证明》