boosting思想:叠加多个弱模型,渐进的逼近真实情况。问题在于:如何保证拟合方向正确,如何叠加弱模型的结果。
问题: 以什么目标学习下一棵树,保证损失函数的迭代方向正确?(损失函数的负梯度提升方向)
答案:梯度提升算法(Gradient Boosting),GBDT使用梯度提升(Gradient Boosting)作为训练方法。
问题定义:在梯度提升的 t 步中,已经有一些不完美的模型 F(t-1)。此时,需要增加估计器 f, 来构建新的模型F(t)=F(t-1) + f ,提高整体模型的效果。提升模型的效果,也就是使得损失函数变小。
因此,求解参数是f,一个函数。求解目标是最小化损失函数 L。
求解过程:以一般的损失函数,迭代方向如下。
以负梯度方向求得树后,树节点值,即lambda值/步长(二阶导)。
最后:梯度提升与梯度下降(参数空间 vs 函数空间)
GBDT使用梯度提升算法作为训练方法,而在逻辑回归或者神经网络的训练过程中往往采用梯度下降作为训练方法。两者都是在每一轮迭代中,利用损失函数相对于模型的负梯度方向的信息来对当前模型进行更新,只不过在梯度下降中,模型是以参数化形式表示,从而模型的更新等价于参数的更新。而在梯度提升中,模型并不需要进行参数化表示,而是直接定义在函数空间中,从而大大扩展了可以使用的模型种类。