为什么梯度提升决策树是在拟合负梯度
🪵

为什么梯度提升决策树是在拟合负梯度

Property
我们都知道,GBDT叫做梯度提升决策树,后面的每一棵树都是在拟合剩下的残差。其改进版XGBoost则有一种说法,即每一棵树是在拟合负梯度,为什么?
参考多篇文章,这篇文章我相信最为简单明了:
GBDT理解难点------拟合负梯度
(于20210421补充,文末增加GBDT的系统化理解思路,简单明了) 终于写下了知乎的第一篇个人文章。最近放假,终于有时间给自己充下电了。回顾这一年,做过广告业务的粗排相关性,也做过query改写,向量召回,自己对业务效果也比较满意。但这些工作更多的是针对不同业务场景给出合适的算法并落地,很少能触及到算法数学层面的细节理解。 最近看到一些关于GBDT的文章,感觉都很泛,只是在说GBDT是什么,和一些随处可见的公式。笔者写这篇文章的目的,是因为觉得之前对于GBDT的理解不够深入,以前是带着找工作功利的角度学习GBDT,现在是本着一种探索、提高自己的态度去学习。 一方面是记录自己的思考,二是希望和大家一起交流、验证自己的思考,希望自己能从一个更全面的角度来学习GBDT。 笔者认为理解GBDT的难点在于,为什么GBDT是在拟合负梯度。笔者目前几乎没有看到任何文章去说明这点,好像大家都默认"GBDT就是拟合负梯度",包括李航老师《统计学习方法》中,也只是简单的说"负梯度去近似残差"。个人觉得李航老师的"负梯度去近似残差"描述不够准确,负梯度只有在GBDT的loss为square error loss时才等于残差,而不是简单的"负梯度近似残差",后面会给出详细的数学证明(希望大家不要看到数学证明就跑了)。 大家别嫌我啰嗦。个人觉得这个名字的由来十分重要,对刚入门的同学有一些帮助。 GBDT全名Gradient Boosted Decision Tree。其实他还有几个别称:GBRT(Gradient Boosted Regression Tree) 、MART(multi Additive Regression Tree)。 其实理解这2个别称的含义对了解GBDT很有帮助,比如第一个别称中,告诉你GBDT用的是决策树中的回归树,而不是分类树,很多文章都忽略了GBDT用的是回归树。第二个别称中,multi additive其实就在告诉你这是一个加法模型。什么是加法模型? f(x)=\sum_{m=1}^{M}{\beta_{m}}b(x;\gamma_{m}) , 其中 b(x;\gamma_m) 是一个基函数, \gamma_m 是基函数的参数, \beta_m 是基函数的系数。即加法模型是由一些有限的基模型经过线性运算得到,其实是集成学习的思想(Ensemble Learning)。同时第二个别称又在告诉你,基函数的加法是有意义的,分类树结果相加肯定无意义,所以也是在提醒你,GBDT用的是回归树。 先给出Friedman在Greedy Function Approximation: A Gradient Boosting Machine 中基于 square error loss 的 Gradient boosting算法伪代码。 其中最关键的一步是上面飘红的计算,可以看出要想计算出当前基函数的参数,需要去拟合负梯度。所有文章都在说,你要去拟合负梯度,有些文章也觉得负梯度近似残差等等。先不说这些结论对不对,你有没有想过,为什么要去和负梯度打交道,为什么上来就要想到负梯度? 我们用泰勒展开来解释这个问题。 注意,GBDT是个加法模型,这个前提很重要。 f(x)\approx f(x_{0})+f'(x_0)(x-x_0)\\ 则 f(x_k)\approx f(x_{k-1})+f'(x_{k-1})(x_k-x_{k-1})\\ 为了构造出Gradient boost里的负梯度, 由于负梯度是偏微分 ,所以我们考虑loss funtion 这个二元函数的泰勒展开。 L(y,f(x)) \approx L(y,f_{k-1}(x))+[\frac{\partial L(y,f(x))}{\partial f(x)}]_{f(x)=f_{{k-1}}(x)}(f(x)-f_{k-1}(x))]\\ 令f(x)=f_k(x)~~~\\ L(y,f_k(x)) \approx L(y,f_{k-1}(x))+[\frac{\partial L(y,f(x))}{\partial f(x)}]_{f(x)=f_{{k-1}}(x)}(f_k(x)-f_{k-1}(x))]~~~~(1) 看到这发现,构造出了负梯度 。接下来继续。 由于是加法模型,我们目的是在第k步,学习第k棵树的参数,所以: f_k(x)=f_{k-1}(x)+T_k(x;\Theta_k)~~~~(2) 将(2)式带入(1)式,有: L(y,f_k(x)) \approx~L(y,f_{k-1}(x))+[\frac{\partial L(y,f(x))}{\partial ...
GBDT理解难点------拟合负梯度

泰勒展开可以说明

下面是GBDT的算法流程:
notion image
 
notion image