机器学习进阶(6):Boosting方法

前言

  1. Boosting是机器学习技术,与单纯随机森林依靠累加模型不同,它每一步产生一个弱预测模型,并且加权累加到总模型中。如果每一步的弱模型生成方向都是依据损失函数的梯度方向,则称之为梯度提升(Gradient Boosting)。
  2. 梯度提升算法首先给定一个目标损失函数,它的定义域是所有可行的弱函数集合(基函数);通过迭代的选择一个负梯度方向上的基函数来逐渐逼近局部极小值。
  3. 如果一个问题存在弱分类器,则可以通过Boosting方法得到强分类器。

模型建立

对于输入训练样本 ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x n , y n ) \left( \mathbf{x}_{\mathbf{1}},\mathrm{y}_1 \right) ,\left( \mathbf{x}_{\mathbf{2}},\mathrm{y}_2 \right) ,...,\left( \mathbf{x}_{\mathbf{n}},\mathrm{y}_{\mathrm{n}} \right) (x1,y1),(x2,y2),...,(xn,yn)
来说,boosting的目标是找到近似函数,使得损失函数值最小, L ( y , F ( x ⃗ ) ) L(y,F(\vec{x})) L(y,F(x ))的一般定义为:
L ( y , F ( x ⃗ ) ) = 1 2 ( y − F ( x ⃗ ) ) 2 L(y,F(\vec{x}))=\frac{1}{2}(y-F(\vec{x}))^2 L(y,F(x ))=21(yF(x ))2
或者
L ( y , F ( x ⃗ ) ) = ∣ y − F ( x ⃗ ) ∣ L(y,F(\vec{x}))=|y-F(\vec{x})| L(y,F(x ))=yF(x )
需要求出最优近似函数:
F ∗ ( x ⃗ ) = a r g min ⁡ F E ( x , y ) [ L ( y , F ( x ⃗ ) ) ] F^*(\vec{x})=\underset{F}{\mathrm{arg}\min}E_{(x,y)}[L(y,F(\vec{x}))] F(x )=FargminE(x,y)[L(y,F(x ))]
但是有别于随机森林的是,这里的最优函数不是简单的叠加,而是基函数 f i ( x ) f_i(x) fi(x)的加权和:
F ( x ⃗ ) = ∑ i = 1 M γ i f i ( x ) + c o n s t F(\vec{x})=\sum_{i=1}^M{\gamma _i}f_i(x)+const F(x )=i=1Mγifi(x)+const

模型求解

在梯度提升的方法下求最优解,首先给定常函数:
F 0 ( x ⃗ ) = a r g min ⁡ γ ∑ i = 1 n L ( y i , γ ) F_0(\vec{x})=\underset{\gamma}{\mathrm{arg}\min}\sum_{i=1}^n{L}\left( y_i,\gamma \right) F0(x )=γargmini=1nL(yi,γ)
以贪心算法的思路扩展得到:
F m ( x ⃗ ) = F m − 1 ( x ⃗ ) + a r g min ⁡ f ∈ H ∑ i = 1 n L ( y i , F m − 1 ( x ⃗ i ) + f ( x ⃗ i ) ) F_m(\vec{x})=F_{m-1}(\vec{x})+\underset{f\in H}{\mathrm{arg}\min}\sum_{i=1}^n{L}\left( y_i,F_{m-1}\left( \vec{x}_i \right) +f\left( \vec{x}_i \right) \right) Fm(x )=Fm1(x )+fHargmini=1nL(yi,Fm1(x i)+f(x i))
也就是说,下一次迭代的总函数,需要在上一次迭代的基础上加入新的基函数。但是贪心算法并不能完全满足基函数的选择,这里使用梯度下降的方法近似计算。将训练样本 ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x n , y n ) \left( \mathbf{x}_{\mathbf{1}},\mathrm{y}_1 \right) ,\left( \mathbf{x}_{\mathbf{2}},\mathrm{y}_2 \right) ,...,\left( \mathbf{x}_{\mathbf{n}},\mathrm{y}_{\mathrm{n}} \right) (x1,y1),(x2,y2),...,(xn,yn)代入基函数得到 f ( x 1 ) , f ( x 2 ) , . . . , f ( x n ) \mathrm{f}\left( \mathbf{x}_1 \right) ,\mathrm{f}\left( \mathbf{x}_{\mathbf{2}} \right) ,...,\mathrm{f}\left( \mathbf{x}_{\mathbf{n}} \right) f(x1),f(x2),...,f(xn),从而L退化为向量 L ( y 1 , f ( x 1 ) ) , L ( y 2 , f ( x 2 ) ) , . . . , L ( y n , f ( x n ) ) \mathrm{L}\left( \mathrm{y}_1,\mathrm{f}\left( \mathbf{x}_1 \right) \right) ,\mathrm{L}\left( \mathrm{y}_2,\mathrm{f}\left( \mathbf{x}_2 \right) \right) ,...,\mathrm{L}\left( \mathrm{y}_{\mathrm{n}},\mathrm{f}\left( \mathbf{x}_{\mathrm{n}} \right) \right) L(y1,f(x1)),L(y2,f(x2)),...,L(yn,f(xn))
有:
F m ( x ⃗ ) = F m − 1 ( x ⃗ ) − γ m ∑ i = 1 n ∇ f L ( y i , F m − 1 ( x ⃗ i ) ) F_m(\vec{x})=F_{m-1}(\vec{x})-\gamma _m\sum_{i=1}^n{\nabla _f}L\left( y_i,F_{m-1}\left( \vec{x}_i \right) \right) Fm(x )=Fm1(x )γmi=1nfL(yi,Fm1(x i))
其中 γ \gamma γ为步长,使用线性搜索可以求出最优的步长:
γ m = a r g min ⁡ γ ∑ i = 1 n L ( y i , F m − 1 ( x ⃗ i ) − γ ⋅ ∇ f L ( y i , F m − 1 ( x ⃗ i ) ) ) \gamma _m=\underset{\gamma}{\mathrm{arg}\min}\sum_{i=1}^n{L}\left( y_i,F_{m-1}\left( \vec{x}_i \right) -\gamma \cdot \nabla _fL\left( y_i,F_{m-1}\left( \vec{x}_i \right) \right) \right) γm=γargmini=1nL(yi,Fm1(x i)γfL(yi,Fm1(x i)))
这里不再赘述。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值