当前位置:   article > 正文

GBDT推导-拟合负梯度和残差_损失函数的负梯度

损失函数的负梯度
梯度提升树-为什么拟合负梯度

将学习器F看做一个参数,损失函数
L ( y , F ) L(y,F) L(y,F),为使L损失最小,采用梯度下降法:
F m = F m − 1 − d L d F F_m=F_{m-1}-\frac{dL}{dF} Fm=Fm1dFdL
提升树采用加法模型(基函数的线性组合)与前向分布算法:
F m = F m − 1 + T F_m=F_{m-1}+T Fm=Fm1+T
T为训练的新树,所以有:
T = − d L d F T=-\frac{dL}{dF} T=dFdL
因此每次需要拟合的是损失函数的负梯度值。
平方损失是特例(拟合残差)。

平方损失函数-为什么拟合残差

第t轮损失函数的负梯度为
− d L ( y , F t − 1 ) d F t − 1 -\frac{dL(y,F_{t-1})}{dF_{t-1}} dFt1dL(y,Ft1)
平方损失函数为
L ( y , F ) = 1 2 ( y − F ) 2 L(y,F)=\frac{1}{2}(y-F)^2 L(y,F)=21(yF)2
负梯度为
− d L ( y , F t − 1 ) d F t − 1 = -\frac{dL(y,F_{t-1})}{dF_{t-1}}= dFt1dL(y,Ft1)=
− d ( 1 2 ( y − F t − 1 ) 2 ) d F t − 1 = -\frac{d(\frac{1}{2}(y-F_{t-1})^2)}{dF_{t-1}}= dFt1d(21(yFt1)2)=
− ( y − F t − 1 ) ∗ d ( y − F t − 1 ) d F t − 1 = -\frac{(y-F_{t-1})* d(y-F_{t-1})}{dF_{t-1}}= dFt1(yFt1)d(yFt1)=
− ( y − F t − 1 ) ∗ − d ( F t − 1 ) d F t − 1 = -\frac{(y-F_{t-1})* -d(F_{t-1})}{dF_{t-1}}= dFt1(yFt1)d(Ft1)=
( y − F t − 1 ) (y-F_{t-1}) (yFt1)
当损失函数为平方损失时,负梯度值等于残差值。

初始化弱学习器

f 0 ( x ) = a r g m i n c ∑ i = 1 N L ( y i , c ) f_0(x)=arg min_c\sum_{i=1}^NL(y_i,c) f0(x)=argminci=1NL(yi,c)
f 0 ( x ) f_0(x) f0(x)为最小值时,求c的取值。使用平方损失函数,由于平方损失是凸函数,直接求导数为0时c的取值
∑ i = 1 N ∂ L ( y i , c ) ∂ c = \sum_{i=1}^N\frac{\partial L(y_i,c)}{\partial c}= i=1NcL(yi,c)=
∑ i = 1 N ∂ ( 1 2 ( y i − c ) 2 ) ∂ c = \sum_{i=1}^N\frac{\partial(\frac{1}{2}(y_i-c)^2)}{\partial c}= i=1Nc(21(yic)2)=
∑ i = 1 N ( y i − c ) ∗ ∂ ( y i − c ) ∂ c = \sum_{i=1}^N\frac{(y_i-c)*{\partial(y_i-c)}}{\partial c}= i=1Nc(yic)(yic)=
∑ i = 1 N ( c − y i ) \sum_{i=1}^N(c-y_i) i=1N(cyi)
令导数等于0
∑ i = 1 N ( c − y i ) = 0 \sum_{i=1}^N(c-y_i)=0 i=1N(cyi)=0
∑ i = 1 N c = ∑ i = 1 N y i \sum_{i=1}^Nc=\sum_{i=1}^Ny_i i=1Nc=i=1Nyi
c = ( ∑ i = 1 N y i ) / N c=({\sum_{i=1}^Ny_i})/{N} c=(i=1Nyi)/N
初始学习器 f 0 ( x ) f_0(x) f0(x) = c = 所有训练样本标签值的均值。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/358953?site
推荐阅读
相关标签
  

闽ICP备14008679号