GBDT为什么拟合上一次的负梯度

简单来讲就一句话,为了可以扩展到更复杂的损失函数中

这时候你可能就有疑问了,难道不是所有的损失函数都在 [公式] 时最小吗?

那可能你忘了正则项这一回事,如果只是经验风险最小化的话非常容易过拟合,所以一个合理的办法就是在每个基模型中加入正则项,所以在有正则项的情况下就不再是 [公式] 时损失函数最小了,所以我们需要计算损失函数的梯度,而不能直接使用分模型来拟合残差。

下面是我对上面的理解:有正则化项的时候我们需要拟合负梯度,我们可以把损失函数看做是\LARGE F_m的函数,当\LARGE F_1的时候损失函数较大,那么下一步\LARGE F_2就是拟合损失函数对\LARGE F_1负梯度,那么\LARGE F_2+F_1相当于\LARGE F_m又向负梯度方向走了一步,相当于每次只沿着负梯度方向走一个步长,得到新的提升树,新的提升树在之前提升树的基础上向负梯度方向走了一步,更加减小了损失函数,所以每个新的提升树,拟合的都是损失函数对之前提升树的负梯度方向。


我们要拟合损失函数的负梯度,可以看做拟合一个方向为负梯度方向,步长为单位长度的值,所以拟合的过程相当于我们沿着负梯度方向走了一个步长,具体走多少步(多少步可以理解为训练多少个决策树来拟合该分类器,使得损失函数最低)达到终止的条件,即走到最优点的附近

作者:知乎用户
链接:https://www.zhihu.com/question/63560633/answer/379959040
来源:知乎

说一下我的理解,GBDT的求解过程就是梯度下降在函数空间中的优化过程。

1.我们能通过一阶泰勒展开证明负梯度方向是下降最快的方向。对于函数f: [公式]

则优化函数f时: [公式]

2.在GB中,对损失函数展开: [公式]

即, [公式]

则在优化 [公式] 的时候: [公式]

即, [公式] 。所以需要当前的弱学习器来学习负梯度,这里和GBDT中差了一个 [公式]

3.在1和2中都是随机梯度下降,但是不同的是:1在参数空间中优化,每次迭代得到参数的增量,这个增量就是负梯度乘上学习率;2在函数空间中优化,每次得到增量函数,这个函数会去拟合负梯度,在GBDT中就是一个个决策树。要得到最终结果,只需要把初始值或者初始的函数加上每次的增量。所以1的优化过程是(假设迭代了M次):

[公式]

等号两边相加,得到最终的优化结果:

[公式]

同样的,2中优化的过程是:

[公式]

等号两边相加,得到:

[公式]

4. 无论损失函数是什么形式,每个决策树拟合的都是负梯度。准确的说,不是用负梯度代替残差,而是当损失函数是均方损失时,负梯度刚好是残差,残差只是特例。


作者:奥奥奥奥噢利
链接:https://www.zhihu.com/question/63560633/answer/581670747
来源:知乎

  • 11
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值