机器学习笔记之十三——对GBDT的疑问:GBDT的负梯度为什么近似于提升树的残差

先验知识:

  提升树的优化目标:\widehat{\Theta } = arg min\sum ^N_{i=1}L(y_i,f_{m-1}(x_i)+T(x_i;\Theta _m))  ,其中yi为真实label,f_{m-1}为第m-1个模型,T(x;\Theta_m)为残差。

                                                                                                                                  ——公式来自 李航《统计学习方法》P148

 

对于上述优化目标,L即损失函数是本次讨论的重点。

平方误差损失函数

当L为平方误差损失函数时,L(y,f(x))=(y-f(x))^2,

带入提升树,为L(y,f_{m-1}+T(x_i;\Theta_m))=[y-f_{m-1}(x)-T(x;\Theta_m)]

                             = [r - T(x;\Theta_m)]

其中,r = [y - f_{m-1(x)}]

可以看出来,损失函数的最小化可以看作让 r 尽量等价于T(x;\Theta_m)残差。

r是什么呢,r = [y - f_{m-1(x)}]使用平方误差损失函数时的残差值。

 

其他损失函数

平方误差损失函数的残差r = [y - f_{m-1(x)}],其他损失函数却不一定是,那么有一个通用的残差吗?

大佬Freidman提出了梯度提升树(gradient boosting),这里就是使用损失函数的负梯度作为残差的近似值。

为什么损失函数的负梯度作为残差的近似值?

回到损失函数L(y,f_{m-1}+T(x_i;\Theta_m))

我们将f(x)而不是θ作为自变量。根据梯度下降法,可以得到损失函数参数的更新公式:

f_m = f_{m-1} - \frac{\partial L}{\partial f},

同时,因为提升树的定义:f_m = f_{m-1}+T(x_i;\Theta _m).

于是,就可以得到残差等于负梯度。

你可能感兴趣的:(GDBT残差,GDBT负梯度,机器学习)