一、算法的引出
在集成学习框架中,机器学习模型可写成各子学习器的组合:
G ( x ) = ∑ m = 1 M α m g m ( x ) G(x)=\sum\limits_{m=1}^M\alpha _mg_m(x) G(x)=m=1∑Mαmgm(x)在AdaBoost算法中提供了一种解读Boosting框架的视角,即每一轮子学习器基于上一轮子学习器的表现来调节样本权重,实现模型效果的提升。
但实质上,由于相邻两个子学习器有着直接的关系,根据作用的传递作用,前序子学习器都会对当前的子学习器产生影响。
这启示了我们另一种思考Boosting框架的视角,即基于前序所有子模型及其效果来生成当前轮的子模型。其中最广为使用的即为梯度提升(Gradient Boosting)算法。
二、Gradient Boosting算法模型
假设在第 m m m轮子学习器训练时,前序所有子模型组成的加法总模型为 G m − 1 ( x ) = ∑ t = 1 m − 1 α t g t ( x ) G_{m-1}(x)=\sum\limits_{t=1}^{m-1}\alpha_tg_t(x) Gm−1(x)=t=1∑m−1αtgt(x),对应的损失函数为 L ( G m − 1 ) L(G_{m-1}) L(Gm−1)。那该轮学习器的目标即为: arg min α , g L ( G m ) = arg min α , g 1 N ∑ i = 1 N L ( ∑ t = 1 m − 1 α t g t ( x i ) + α g ( x i ) , y i ) \argmin\limits_{\alpha,g}L(G_{m})=\argmin\limits_{\alpha,g}\frac{1}{N}\sum\limits_{i=1}^NL(\sum_{t=1}^{m-1}\alpha_tg_t(x_i)+\alpha g(x_i),y_i) α,gargminL(Gm)=α,gargminN1i=1∑NL(t=1∑m−1αtgt(xi)+αg(xi),yi)上式中 α , g \alpha,g α,g相互影响,为方便运算,可考虑分离变量,逐个进行优化: arg min α arg min g 1 N ∑ i = 1 N L ( ∑ t = 1 m − 1 α t g t ( x i ) + α g ( x i ) , y i ) \argmin\limits_{\alpha}\argmin\limits_{g}\frac{1}{N}\sum\limits_{i=1}^NL(\sum_{t=1}^{m-1}\alpha_tg_t(x_i)+\alpha g(x_i),y_i)