xgboost 目标函数中的泰勒展开式

问题

七月份的时候,女友在复习 xgboost 的时候对目标函数与泰拉展开式的关系有点迷糊,所以就有了这次的答疑。

参考博客:https://blog.csdn.net/v_JULY_v/article/details/81410574

img

 

答疑

泰勒展开式:

$$ f(x + \Delta x) \simeq f(x) + f'(x)\Delta x + \frac{1}{2}f”(x)\Delta x^2 $$

这个是目标函数:

$$ Obj^{(t)} = \sum_{i=1}^n l\Big(y_i, \hat{y}_i^{(t-1)} + f_t(x_i)\Big) + \Omega(f_t) + constant $$

在 xgboost 里,因为整个流程是用第 $t$ 棵子树去拟合前 $t-1$ 棵子树拟合结果的残差。

也就是说假如有 $t$ 棵树,那对类别 $i$ 预测的结果是这 $t$ 棵树分别对 $i$ 预测结果的和。

 

所以有着这样的公式存在:$\hat{y}_i^{(t)}=\hat{y}_i^{(t-1)} + f_t(x_i)$

其中,$\hat{y}_i^{(t-1)}$ 是前 $t-1$ 棵树预测的结果

 

然后对着泰勒展开式,把 $\hat{y}_i^{(t-1)}$ 看成 $x$,$f_t(x_i)$ 看成 $\Delta x$,即:

$$ x = \hat{y}_i^{(t-1)} $$

$$ △x = f_t(x_i) $$

$$ f(x+△x) \simeq f(x)+f'(x)△x+\frac{1}{2}f”(x)△x^2 $$

$$ f(x+△x)=f(\hat{y}_i^{(t-1)}+f_t(x_i))=f(y_i, \hat{y}_i^{(t-1)}+f_t(x_i)) $$

这样一套,就是目标函数了,所以用泰勒展开式代替了目标函数。