问题
七月份的时候,女友在复习 xgboost 的时候对目标函数与泰拉展开式的关系有点迷糊,所以就有了这次的答疑。
参考博客:https://blog.csdn.net/v_JULY_v/article/details/81410574
答疑
泰勒展开式:
$$ 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)) $$
这样一套,就是目标函数了,所以用泰勒展开式代替了目标函数。