文本主要是对Gradient Boosting框架的复习,温故而知新,进一步理解Gradient Boosting框架~
文章结构为:
1、从adaboost损失函数理解Gradient Boosting的目的(扩展损失函数)
2、从梯度下降角度理解前向加法模型(为什么拟合的是损失函数的负梯度)
3、同林轩田技法中方法做结合
4、总结不同boosting和GBDT
1、从前向加法模型角度思考
为什么能够自定义函数?
自定义函数后每一个基学习器是怎么学习的?
前向加法算法的过程?
输入:(x,y), T(基学习器的数量), L(损失函数)
1、初始化f0,f0一般为一个常数
2、针对每一次基学习器的学习
- 2-1、计算需要拟合的负梯度
- 2-2、根据负梯度,学习基学习器的权重参数(增加缩减)
- 2-3、通过线性搜索寻找步长
- 2-4、根据步长和基学习器,更新总函数(求和)
3、输出总求和函数
2、怎么理解前向加法算法模型,为什么要去拟合负梯度
Gradient Boosting里的梯度和梯度下降里的梯度有什么联系?
梯度下降的角度
1、参数空间的优化:梯度下降是每次小步走,每小步都往函数值下降最快的方向走,不断优化权重 w w w:
w k = w 0 + α 1 ∗ g 1 + α 2 ∗ g 2 . . . + α k ∗ g k w_k = w_0 + \alpha_1*g_1 + \alpha_2*g_2 ... + \alpha_k*g_k wk=w0+α1∗g1+α2∗g2...+αk∗gk
2、从梯度下降得到启发,将梯度下降的优化方法扩展到函数空间的优化,那么目标就是寻找最优的F,使得预测值对应的损失函数最小:
F = arg min F L ( y , F ( x ) ) 其 中 F ( x ) = ∑ m = 0 M f m ( x ) F = \arg\min\limits_FL(y, F(x)) \\ 其中F(x) = \sum_{m=0}^Mf_m(x) F=argFminL(y,F(x))其中F(x)=m=0∑