机器学习中的数学(3)-模型组合(Model Combining)之Boosting与Gradient Boosting

机器学习 4824 Views

对于模型的参数{β,α},我们可以用下面的式子来进行表示,这个式子的意思是,对于N个样本点(xi,yi)计算其在模型F(x;α,β)下的损失函数,最优的{α,β}就是能够使得这个损失函数最小的{α,β}表示两个m维的参数:

写成梯度下降的方式就是下面的形式,也就是我们将要得到的模型fm(x)的参数{αm,βm}能够使得fm的方向是之前得到的模型Fm-1(x)的损失函数下降最快的方向:

对于每一个数据点xi都可以得到一个gm(xi),最终我们可以得到一个完整梯度下降方向

为了使得fm(x)能够在gm(x)的方向上,我们可以优化下面的式子得到,可以使用最小二乘法:

得到了α的基础上,然后可以得到βm 最终合并到模型中:

算法的流程图如下

之后,作者还说了这个算法在其他的地方的推广,其中,Multi-class logisticregression and classification就是GBDT的一种实现,可以看看,流程图跟上面的算法类似的。这里不打算继续写下去,再写下去就成论文翻译了,请参考文章:Greedy function Approximation– A Gradient Boosting Machine,作者Freidman

总结:

本文主要谈了谈BoostingGradient Boosting的方法,Boosting主要是一种思想,表示知错就改。而Gradient Boosting是在这个思想下的一种函数(也可以说是模型)的优化的方法,首先将函数分解为可加的形式(其实所有的函数都是可加的,只是是否好放在这个框架中,以及最终的效果如何)。然后进行m次迭代,通过使得损失函数在梯度方向上减少,最终得到一个优秀的模型。值得一提的是,每次模型在梯度方向上的减少的部分,可以认为是一个的或者的模型,最终我们会通过加权(也就是每次在梯度方向上下降的距离)的方式将这些的模型合并起来,形成一个更好的模型。

有了这个Gradient Descent这个基础,还可以做很多的事情。也在机器学习的道路上更进一步了:)

如未说明则本站原创,转载请注明出处:NULL » 机器学习中的数学(3)-模型组合(Model Combining)之Boosting与Gradient Boosting