GBDT,英文全称:Gradient Boosting Decision Tree,属于Ensemble Learning的范畴,在回归和分类问题上的良好性能受到工业界和机器学习比赛的青睐。之前对GBDT的理解总是模模糊糊的,这篇文章梳理下GBDT的原理。
上式表达的意思是L在F空间做优化,找到最贴近真实分布的F。这与一般的机器学习问题的求解方式有所不同,一般的是直接求解L在x空间做优化。我们做个类比:
基于参数空间的optimize,通过梯度下降的方式,一步一步逼近Loss最低点。同样地,基于函数空间的梯度下降,即每次基于当前的函数模型做梯度下降,求出增量函数部分。然后将每一次得出的函数增量部分相加,就能得到Loss低点对应的函数。GBM的算法步骤如下:
其中,T为CART的数目。关键部分是公式2.1,表示L对F在Ft-1处的负偏导。2.2式表示第t棵树的学习过程,可以看出第t棵树拟合的是公式2.1给出的负偏导。有人可能会有疑问,那”残差“是啥?残差是L对F的负偏导的特例。一般而言,回归树使用的是均方误差,而当L为均方误差时,负偏导就是我们认为的”残差“的形式。2.3式是选择步长,2.4式阐明,第t棵树是步长乘以负偏导。这里有个很重要的认识,高数中曾经学过泰勒公式,如下:
可以看出,第t棵树拟合的其实是L对F在前t-1个f累加处的一阶泰勒展开。图中x0对应着f0+f1+...+ft-1,后面正好是步长乘偏导的形式,步长学习的是x0-x。
这是general GBDT,后来陈天奇大神做了改进,加入了正则项和拟合泰勒二阶展开,效果与性能更进一步。