从AdaBoost到GBDT(part 2)


注:本文假设读者已经有了AdaBoost和GBDT的背景知识。


看到网上关于AdaBoost和GBDT资料都不少,可是鲜有资料介绍他们联系,刚好之前有看过,最近复习到此,觉得有所收获,所以记录下来。此为读书笔记,若有错误,请予纠正。

前情概要:涉及公式较多,如要阅读,请提前找一个安静场所。

转载请标明出处:http://blog.csdn.net/wuzqchom/article/details/69487888
本篇文章分为两部分,第一部分:http://blog.csdn.net/wuzqChom/article/details/69487847

从AdaBoost到GBDT

若上面的式子使用梯度下降求解,则可将式子变换为:

minηminh1NNn=1exp(yn(T1t=1αtgt(xn)+ηh(xn)))

h 可以想象为一个方向,η为往该方向走多远,和梯度下降完全一个概念。对应到AdaBoost上面, h 即为一棵决策树,而η即为该树的权重。
上面的AdaBoost损失函数是指数函数,把它generalize一点:

minηminh1NNn=1err(T1t=1αtgt(xn)+ηh(xn),yn)

上面的式子就是GradientBoost 的优化式子了。但是损失函数要求平滑。
err 损失函数换成squared-error,并一阶泰勒展开(先不考虑 η ):

minh1Nn=1Nerr(t=1T1αtgt(xn)sn+ηh(xn),yn)minh1Nn=1Nerr(sn,yn)+1Nn=1Nηh(xn)2(snyn)

由于我们现在是要优化关于 h 的函数,所以第一项可以看成是常数,还记得吗,h即相当于确定了一个方向而已,至于走多远,我们可以交由 η 来决定(即第二步优化确定),但我们目前仅关注应该往哪个方向走。我们可以加限制条件令 h 的长度为1,但是约束化的优化问题比较不容易求,可以加一个L2正则转换成无约束的优化问题。上式就变成了:

minhC1+ηNn=1N(h(xn)2(snyn)+(h(xn))2)=C1+ηNn=1N(C2+(h(xn)(ynsn))2)

C1,C2 为常数项,第一个式子到第二个式子用了配方,并把无关项设为常数 C2 .
从上面的式子可以看出,加了正则化的优化目标即为求平方错误的回归问题 {xn,ynsn} , ynsn 即为残差。GBDT每一棵决策树就是为了拟合残差,这是朝着 h 方向走的结果,而h为一个函数,在GBDT当中即为一棵决策树。
好了,现在我们方向找到了,究竟应该朝这个方向走多远,那么就是 η 来决定啦。优化 η 容易得多,即为单变量的优化问题(注意此时已经从 g 的集合h中找到了最优的 gt ):
minη1Nn=1N(yn(t=1T1αtgt(xn)sn+ηgt(xn)yn))2=1N((ynsn)ηgt(xn))2

又见残差!!
经过上述的优化之后,我们就得到了 αt gt ,对了,上述所说的准确来说还只是GB回归问题,假如我们的每一个 g 都是有决策树学术来的,那么就是我们要的GBDT了。
简单总结一下GBDT的过程:

  1. 用决策树算法学,以{xn,ynsn}为目标学得棵决策树 gt
    • 在学得 gt 之后,解{ gt(xn) , ynsn }的单变量的线性回归问题得到 αt
    • 更新 sn=sn+αtgt(xn)
    • 重复1-3,到一定次数为止,返回 G(x)=Tt=1αtgt(x)
    • ps:
      GBDT实际上是用回归树来作为基分类器,所以用GBRT可能更合适一点。

      The end.

      参考资料:林轩田. 机器学习技法课程 Lecture 11.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值