xgboost为啥要用泰勒展开

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了xgboost为啥要用泰勒展开相关的知识,希望对你有一定的参考价值。

参考技术A xgboost使用了一阶和二阶偏导, 二阶导数有利于梯度下降的更快更准. 使用泰勒展开取得函数做自变量的二阶导数形式, 可以在不选定损失函数具体形式的情况下, 仅仅依靠输入数据的值就可以进行叶子分裂优化计算, 本质上也就把损失函数的选取和模型算法优化/参数选择分开了. 这种去耦合增加了xgboost的适用性, 使得它按需选取损失函数, 可以用于分类, 也可以用于回归。

实际上使用二阶泰勒展开是为了xgboost能够自定义loss function,如果按照最小二乘法的损失函数直接推导,同样能够得到xgboost最终的推导式子。

此外,Xgboost官网上有说,当目标函数是MSE时,展开是一阶项(残差)+二阶项的形式(官网说这是一个nice form),而其他目标函数,如log loss的展开式就没有这样的形式。为了能有个统一的形式,所以采用泰勒展开来得到二阶项,这样就能把MSE推导的那套直接复用到其他自定义损失函数上。简短来说,就是为了统一损失函数求导的形式以支持自定义损失函数。当然,这是从为什么会想到引入泰勒二阶的角度来说的。

xgboost

xgboost

基本概念

Given dataset

技术分享图片

a tree ensemble model uses K additive functions to predict the output
技术分享图片

where, 技术分享图片是CART的集合
技术分享图片

优化目标
技术分享图片

其中,技术分享图片为正则项
技术分享图片

when train the model in additive manner, minimize the objective 技术分享图片 for 技术分享图片

技术分享图片

也即,技术分享图片拟合的是技术分享图片技术分享图片的差值

基于二阶泰勒展开

技术分享图片

这是一条过技术分享图片点的二次曲线,是技术分享图片技术分享图片附近的近似
则可以针对技术分享图片进行二次近似
技术分享图片

进一步化解
技术分享图片

其中
技术分享图片

技术分享图片





















以上是关于xgboost为啥要用泰勒展开的主要内容,如果未能解决你的问题,请参考以下文章

XGBoost算法

数学——泰勒公式

泰勒公式(泰勒展开式,泰勒中值定理)使用基本技巧

无穷区间上的泰勒展开

多元函数的泰勒展开(Taylor series expansion)

机器学习算法中 GBDT 和 XGBOOST 的区别有哪些?