xgboost为啥使用二阶泰勒展开?

1. 直接理解一阶导指引梯度方向,二阶导指引梯度方向如何变化,所以二阶信息本身就能让梯度收敛更快更准确。

这里可以对比牛顿法和SGD。牛顿法是二阶收敛,梯度下降是一阶收敛,当初始点选取合理的情况下,牛顿法比梯度下降法收敛的速度快。通俗的讲,比如你想找一条最短的路径走到一个盆地的最底部,梯度下降法每次只从你当前所处位置选一个坡度最大的方向走一步,牛顿法在选择方向时,不仅会考虑坡度是否够大,还会考虑你走了一步之后,坡度是否会变得更大。所以,可以说牛顿法比梯度下降法看得更远一点,能更快地走到最底部。(牛顿法目光更加长远,所以少走弯路;相对而言,梯度下降法只考虑了局部的最优,没有全局思想。)



2. 【模块化】可以很方便地自定义损失函数,只要这个损失函数可以求一阶和二阶导

《机器学习技法》中从GBDT求回归问题可以看到,如果只是1阶泰勒展开的话,这时候想要最小化损失函数,寻找的函数h就会变成负无穷。这时,GBDT想,反正最小化损失函数会用h * 步长(参考梯度下降),因为步长后续可以优化,h的大小我无所谓。于是用了打补丁的方式对h作限制,加入h^2项。

preview

2、而Xgboost我理解是从根本上为了防止h等于负无穷这种尴尬的情况出现,从泰勒展开这一步就避免:

f(x + h) =  二阶导h(x) ^2 + 一阶导h(x) + f(x)

最终求最小化是关于h的二次方程,这样就可以直接求最小化h,而不用打补丁。

所以:相比于GBDT每次一阶导后要打补丁,Xgboost我理解更加模块化,直接塞进去一个可二阶泰勒展开的损失函数就行

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值