机器学习笔记之十三——对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).

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

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值