算法强化 —— XGBoost

XGBoost

xgboost也是使用提升树相同的前向分步算法。其区别在于:xgboost通过结构风险极小化来确定下一个决策参数 Θ m {\Theta}_{m} Θm

Θ ^ m = arg ⁡ min ⁡ Θ m ∑ i = 1 N L ( y ~ i , f m ( x → i ) ) + Ω ( h m ( x → ) ) \hat{\Theta}_{m}=\arg \min _{\Theta_{m}} \sum_{i=1}^{N} L\left(\tilde{y}_{i}, f_{m}\left(\overrightarrow{\mathbf{x}}_{i}\right)\right)+\Omega\left(h_{m}(\overrightarrow{\mathbf{x}})\right) Θ^m=argΘmmini=1NL(y~i,fm(x i))+Ω(hm(x ))

其中 Ω ( h m ) \Omega(h_{m}) Ω(hm)为第m个决策树的正则化项。这是xgboost和GBT的一个重要区别。
L = ∑ i = 1 N L ( y ~ i , f m ( x → i ) ) + Ω ( h m ( x → ) ) \mathcal{L}=\sum_{i=1}^{N} L\left(\tilde{y}_{i}, f_{m}\left(\overrightarrow{\mathbf{x}}_{i}\right)\right)+\Omega\left(h_{m}(\overrightarrow{\mathbf{x}})\right) L=i=1NL(y~i,fm(x i))+Ω(hm(x ))为目标函数

泰勒展开式

定义:
y ^ i < m − 1 > = f m − 1 ( x → i ) , g i = ∂ L ( y ~ i , y ^ i < m − 1 > ) ∂ y ^ i < m − 1 > , h i = ∂ 2 L ( y ~ i , y ^ i < m − 1 > ) ∂ 2 y ^ i < m − 1 > \hat{y}_{i}^{<m-1>}=f_{m-1}\left(\overrightarrow{\mathbf{x}}_{i}\right), \quad g_{i}=\frac{\partial L\left(\tilde{y}_{i}, \hat{y}_{i}^{<m-1>}\right)}{\partial \hat{y}_{i}^{<m-1>}}, \quad h_{i}=\frac{\partial^{2} L\left(\tilde{y}_{i}, \hat{y}_{i}^{<m-1>}\right)}{\partial^{2} \hat{y}_{i}^{<m-1>}} y^i<m1>=fm1(x i),gi=y^i<m1>L(y~i,y^i<m1>),hi=2y^i<m1>2L(y~i,y^i<m1>)
即:
g i g_i gi L ( y ~ i , y ^ i < m − 1 > ) L(\tilde{y}_{i}, \hat{y}_{i}^{<m-1>}) L(y~i,y^i<m1>) y ^ i < m − 1 > \hat{y}_{i}^{<m-1>} y^i<m1>的一阶导数
h i h_i hi L ( y ~ i , y ^ i < m − 1 > ) L(\tilde{y}_{i}, \hat{y}_{i}^{<m-1>}) L(y~i,y^i<m1>) y ^ i < m − 1 > \hat{y}_{i}^{<m-1>} y^i<m1>的二阶导数

对目标函数 L \mathcal{L} L执行二阶泰勒展开:
L = ∑ i = 1 N L ( y ~ i , f m ( x → i ) ) + Ω ( h m ( x → ) ) = ∑ i = 1 N L ( y ~ i , y ^ i < m − 1 > + h m ( x → i ) ) + Ω ( h m ( x → ) ) ≃ ∑ i = 1 N [ L ( y ~ i , y ^ i < m − 1 > ) + g i h m ( x → i ) + 1 2 h i h m 2 ( x → i ) ] + Ω ( h m ( x → ) ) +  constant  \begin{aligned} \mathcal{L} &=\sum_{i=1}^{N} L\left(\tilde{y}_{i}, f_{m}\left(\overrightarrow{\mathbf{x}}_{i}\right)\right)+\Omega\left(h_{m}(\overrightarrow{\mathbf{x}})\right)=\sum_{i=1}^{N} L\left(\tilde{y}_{i}, \hat{y}_{i}^{<m-1>}+h_{m}\left(\overrightarrow{\mathbf{x}}_{i}\right)\right)+\Omega\left(h_{m}(\overrightarrow{\mathbf{x}})\right) \\ & \simeq \sum_{i=1}^{N}\left[L\left(\tilde{y}_{i}, \hat{y}_{i}^{<m-1>}\right)+g_{i} h_{m}\left(\overrightarrow{\mathbf{x}}_{i}\right)+\frac{1}{2} h_{i} h_{m}^{2}\left(\overrightarrow{\mathbf{x}}_{i}\right)\right]+\Omega\left(h_{m}(\overrightarrow{\mathbf{x}})\right)+\text { constant } \end{aligned} L=i=1NL(y~i,fm(x i))+Ω(hm(x ))=i=1NL(y~i,y^i<m1>+hm(x i))+Ω(hm(x ))i=1N[L(y~i,y^i<m1>)+gihm(x i)+21hihm2(x i)]+Ω(hm(x ))+ constant 

决策树改写

对一个决策树 h m ( x → ) h_{m}(\overrightarrow{\mathbf{x}}) hm(x )假设不考虑复杂的推到过程,仅考虑决策树的效果
给定输入 x → \overrightarrow{\mathbf{x}} x 该决策树将该输入经过不断的划分,最终划分到某个叶结点上去。
给定一个叶节点,该叶节点有一个输出值

因此将决策树拆分成结构部分 q ( ) q() q(),和叶节点权重部分 w → = ( w 1 , w 2 , . . . w T ) \overrightarrow{w} = (w_1,w_2,...w_T) w =(w1,w2,...wT),其中T为叶节点的数量
结构部分 q ( x → ) q(\overrightarrow{x}) q(x )的输出是叶节点编号d。它的作用是将输入的 x → \overrightarrow{x} x 映射到编号为d的叶节点
叶节点权重部分就是每个叶节点的值。它的作用是输出编号为d的叶节点的值 w d w_d wd
因此决策树改写为 h m ( x → ) = w q ( x → ) h_m(\overrightarrow{x}) = w_{q(\overrightarrow{x})} hm(x )=wq(x )

结构分

定义出具体的正则项
定义一个决策树的复杂度为 Ω ( h m ( x → ) ) = γ T + 1 2 λ ∑ j = 1 T w j 2 \Omega\left(h_{m}(\overrightarrow{\mathrm{x}})\right)=\gamma T+\frac{1}{2} \lambda \sum_{j=1}^{T} w_{j}^{2} Ω(hm(x ))=γT+21λj=1Twj2
其中:T为叶节点的个数, w j w_j wj为每个叶节点的输出值, γ , λ ≥ 0 \gamma,\lambda \geq 0 γ,λ0为系数,控制这两个部分的比重。
叶节点越多,则决策树越复杂
每个叶节点输出值的绝对值越大,则决策树越复杂。
L ≃ ∑ i = 1 N [ g i w q ( x → i ) + 1 2 h i w q ( x → i ) 2 ] + γ T + 1 2 λ ∑ j = 1 T w j 2 +  constant  \mathcal{L} \simeq \sum_{i=1}^{N}\left[g_{i} w_{q\left(\overrightarrow{\mathbf{x}}_{i}\right)}+\frac{1}{2} h_{i} w_{q\left(\overrightarrow{\mathbf{x}}_{i}\right)}^{2}\right]+\gamma T+\frac{1}{2} \lambda \sum_{j=1}^{T} w_{j}^{2}+\text { constant } Li=1N[giwq(x i)+21hiwq(x i)2]+γT+21λj=1Twj2+ constant 
对于每个样本 x → i \overrightarrow{{x}}_i x i,它必然被划分到树 h m h_m hm的某个叶节点。定义划分到叶节点j的样本的集合为: I j = { i ∣ q ( x → i ) = j } \mathbb{I}_{j}=\left\{i | q\left(\overrightarrow{\mathbf{x}}_{i}\right)=j\right\} Ij={iq(x i)=j},则有:
L ≃ ∑ j = 1 T [ ( ∑ i ∈ I j g i ) w j + 1 2 ( ∑ i ∈ I j h i + λ ) w j 2 ] + γ T +  constant  \mathcal{L} \simeq \sum_{j=1}^{T}\left[\left(\sum_{i \in \mathbb{I}_{j}} g_{i}\right) w_{j}+\frac{1}{2}\left(\sum_{i \in \mathbb{I}_{j}} h_{i}+\lambda\right) w_{j}^{2}\right]+\gamma T+\text { constant } Lj=1TiIjgiwj+21iIjhi+λwj2+γT+ constant 

进一步化简
定义 G j = ∑ i ∈ I j g i , H j = ∑ i ∈ I j h i \mathbf{G}_{j}=\sum_{i \in \mathbb{I}_{j}} g_{i}, \mathbf{H}_{j}=\sum_{i \in \mathbb{I}_{j}} h_{i} Gj=iIjgi,Hj=iIjhi
G j G_j Gj刻画了隶属于叶节点j的那些样本的一阶偏导数之和
H j H_j Hj刻画了隶属于叶节点j的那些样本的二阶偏导数之和

L ≃ ∑ j = 1 T [ ( ∑ i ∈ I j g i ) w j + 1 2 ( ∑ i ∈ I j h i + λ ) w j 2 ] + γ T +  constant  \mathcal{L} \simeq \sum_{j=1}^{T}\left[\left(\sum_{i \in \mathbb{I}_{j}} g_{i}\right) w_{j}+\frac{1}{2}\left(\sum_{i \in \mathbb{I}_{j}} h_{i}+\lambda\right) w_{j}^{2}\right]+\gamma T+\text { constant } Lj=1TiIjgiwj+21iIjhi+λwj2+γT+ constant 
转化为
L ≃ ∑ j = 1 T [ G j w j + 1 2 ( H j + λ ) w j 2 ] + γ T +  constant  \mathcal{L} \simeq \sum_{j=1}^{T}\left[G_j w_{j}+\frac{1}{2}\left(H_j+\lambda\right) w_{j}^{2}\right]+\gamma T+\text { constant } Lj=1T[Gjwj+21(Hj+λ)wj2]+γT+ constant 
此时如果 w j w_j wj和T, G J , H j G_J,H_j GJ,Hj都无关的话,那么损失函数实质上是一个关于 w j w_j wj的一元二次方程
对于一元二次方程 a x 2 + b x + c = 0 ax^2+bx+c = 0 ax2+bx+c=0当x= -b/2a时去极值,因而有 w j ∗ = − G j H j + λ w_{j}^{*}=-\frac{\mathbf{G}_{j}}{\mathbf{H}_{j}+\lambda} wj=Hj+λGj
带回原式可得
L ∗ = − 1 2 ∑ j = 1 T G j 2 H j + λ + γ T \mathcal{L}^{*}=-\frac{1}{2} \sum_{j=1}^{T} \frac{\mathbf{G}_{j}^{2}}{\mathbf{H}_{j}+\lambda}+\gamma T L=21j=1THj+λGj2+γT

上一步的简化, w j w_j wj和T, G j , H j G_j,H_j Gj,Hj都无关, w j w_j wj表示树的叶子节点,所以实质是在假设已知树的结构,而事实上损失函数与T是相关的,甚至和树的结构相关,所以定义L*为一种scoring function,来衡量已知树结构情况下目标函数的最小值。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值