赞
踩
将学习器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=Fm−1−dFdL
提升树采用加法模型(基函数的线性组合)与前向分布算法:
F
m
=
F
m
−
1
+
T
F_m=F_{m-1}+T
Fm=Fm−1+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}}
−dFt−1dL(y,Ft−1)
平方损失函数为
L
(
y
,
F
)
=
1
2
(
y
−
F
)
2
L(y,F)=\frac{1}{2}(y-F)^2
L(y,F)=21(y−F)2
负梯度为
−
d
L
(
y
,
F
t
−
1
)
d
F
t
−
1
=
-\frac{dL(y,F_{t-1})}{dF_{t-1}}=
−dFt−1dL(y,Ft−1)=
−
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}}=
−dFt−1d(21(y−Ft−1)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}}=
−dFt−1(y−Ft−1)∗d(y−Ft−1)=
−
(
y
−
F
t
−
1
)
∗
−
d
(
F
t
−
1
)
d
F
t
−
1
=
-\frac{(y-F_{t-1})* -d(F_{t-1})}{dF_{t-1}}=
−dFt−1(y−Ft−1)∗−d(Ft−1)=
(
y
−
F
t
−
1
)
(y-F_{t-1})
(y−Ft−1)
当损失函数为平方损失时,负梯度值等于残差值。
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=1∑NL(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=1∑N∂c∂L(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=1∑N∂c∂(21(yi−c)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=1∑N∂c(yi−c)∗∂(yi−c)=
∑
i
=
1
N
(
c
−
y
i
)
\sum_{i=1}^N(c-y_i)
i=1∑N(c−yi)
令导数等于0
∑
i
=
1
N
(
c
−
y
i
)
=
0
\sum_{i=1}^N(c-y_i)=0
i=1∑N(c−yi)=0
∑
i
=
1
N
c
=
∑
i
=
1
N
y
i
\sum_{i=1}^Nc=\sum_{i=1}^Ny_i
i=1∑Nc=i=1∑Nyi
c
=
(
∑
i
=
1
N
y
i
)
/
N
c=({\sum_{i=1}^Ny_i})/{N}
c=(i=1∑Nyi)/N
初始学习器
f
0
(
x
)
f_0(x)
f0(x) = c = 所有训练样本标签值的均值。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。