这里面每一步的所加的∆G不就是集成学习里边每一步加的弱分类器g(x)吗,第一次你希望加上一个g1(x),第二次加上一个g2(x),一直加到gt(x),最终的大Gt(x)等于什么呢,假设G0(x)=g0(x)=0,Gt(x)=g0(x)+g1(x)+g2(x)……一直加到gt-1(x),这不就是一个另一个视角看的集成学习嘛。对于最小二乘损失函数来说,损失函数是:
对y^求偏导就是2(y-y^),通常在前面还有个学习率,假如学习率是1/2的话那么会和2相乘抵消,所以最后的求导结果是y-y^,对于我们的集成学习来说y^就是上一步的整体的预测结果Gt-1(x)。所以集成学习的损失函数对G(x)的求导结果就是:
所以在t轮我们应该训练出的gt(x)的预测结果应该等于。对于决策树算法来说的话,即为以为新的标签,x为feature,拟合一颗新的决策树。通过这种方式,来训练的G(x),就叫做GBDT。
4、梯度下降的流程:说了这么多,到底什么是梯度下降?所谓梯度下降,也就是对于任何一个函数来说,只要这个函数是个凸函数,它的自变量是x,也就是说这个函数受x改变而改变,你只要瞎蒙出来一代x,你接下来不停的去迭代,每次迭代的准则就是加上一个函数对上一代自变量的求导,即负梯度,表达为xn=xo-∂F/∂x ,这么不停的迭代,最终得到的x就能够找到F(x)的最小值,这个东西就叫做梯度下降。
梯度下降和L-BFGS一样,它就是一个算法,一个函数关于一个变量的算法。每次我就让这个函数加上关于自变量的负梯度,就能让函数越来越小。所以我不限制这个变量到底是w还是G,只要你这个东西能真真切切地影响我的大小,我去求你的负梯度,就能让你越降越低。这就是随机梯度下降算法的过程。它是不挑食的。
你优化的内容就是你去调整的内容,在函数性模型里,真真正正影响损失函数大小的是w,所以我去调整w,让w始终朝着负梯度的方向去改变,最终就能让损失函数降到最低。而在带着树的集成学习里面,最小的能够调整的单位没有w了,你只能调整你加进来那棵小树,所以你就去优化这棵小树,让你新加进来的小树的预测结果尽量等于函数空间上的负梯度方向。
其实它比向量空间的梯度下降的运算量至少是要少的,为什么呢?因为在向量空间中,w是一个向量,它要求一系列偏导,而在函数空间的梯度下降中,此时的变量就是一个数,所以就是一个求导数的概念了,也就是一维空间的梯度下降,每次加上一个数。