赞
踩
模型
f
M
(
x
)
=
∑
m
=
1
M
T
(
x
,
θ
m
)
f_M(x)=\sum_{m=1}^MT(x,\theta_m)
fM(x)=m=1∑MT(x,θm)
优化目标
a r g m i n θ L ( y , f M ( x ) ) \underset{\theta}{arg\ min}L(y,f_M(x)) θarg minL(y,fM(x))
梯度提升
向量空间
对函数
f
(
θ
)
f(\theta)
f(θ),将
f
(
θ
t
)
f(\theta^t)
f(θt)在
θ
t
−
1
\theta^{t-1}
θt−1处一阶泰勒展开
f
(
θ
t
)
≈
f
(
θ
t
−
1
)
+
f
′
(
θ
t
−
1
)
Δ
θ
f(\theta^t)\approx f(\theta^{t-1})+f'(\theta^{t-1})\Delta\theta
f(θt)≈f(θt−1)+f′(θt−1)Δθ
要使
f
(
θ
t
)
>
f
(
θ
t
−
1
)
f(\theta^t)>f(\theta^{t-1})
f(θt)>f(θt−1),可以取
Δ
θ
=
−
α
f
′
(
θ
t
−
1
)
\Delta\theta=-\alpha f'(\theta^{t-1})
Δθ=−αf′(θt−1)
则有:
θ
t
=
θ
t
−
1
−
α
f
′
(
θ
t
−
1
)
\theta^t=\theta^{t-1}-\alpha f'(\theta^{t-1})
θt=θt−1−αf′(θt−1)
此处
α
\alpha
α为步长
若以上式对 θ t − 1 \theta^{t-1} θt−1进行更新,可以令 f ( θ t ) > f ( θ t − 1 ) f(\theta^t)>f(\theta^{t-1}) f(θt)>f(θt−1),即函数值提升
此处的 θ \theta θ若为标量,直接求导更新;若为向量,进行向量求导并更新
函数空间与负梯度拟合
对函数
g
(
f
(
θ
)
)
g(f(\theta))
g(f(θ)),同样有梯度提升更新
f
(
θ
t
)
=
f
(
θ
t
−
1
)
−
α
g
′
(
f
(
θ
t
−
1
)
)
f(\theta^t)=f(\theta^{t-1})-\alpha{g'(f(\theta^{t-1}))}
f(θt)=f(θt−1)−αg′(f(θt−1))
此处不同处在于对函数负梯度 ∇ f ( θ ) g ( f ( θ ) ) \nabla_{f(\theta)}g(f(\theta)) ∇f(θ)g(f(θ))的求解,难以通过解析方式求解,因此考虑通过数值方法求解
已知 ( f ( θ ) , g ( f ( x ) ) ) (f(\theta),g(f(x))) (f(θ),g(f(x)))对,使用数值方法求得对应点处梯度,构成 ( θ , ∇ f ( θ ) g ( f ( θ ) ) ) (\theta,\nabla_{f(\theta)}g(f(\theta))) (θ,∇f(θ)g(f(θ)))点对
要求的负梯度应该是一个函数,其可以根据任意 θ \theta θ求得对应的梯度,而上一步只是得到有限点处的数值梯度
因此还需要引入一个用于回归的学习器,以 ( θ , ∇ f ( θ ) g ( f ( θ ) ) ) (\theta,\nabla_{f(\theta)}g(f(\theta))) (θ,∇f(θ)g(f(θ)))点对学习 θ \theta θ到梯度的映射关系
CART回归树学习过程
依照前向分步算法的过程逐一学习基学习器,假设已经经过 m − 1 m-1 m−1轮迭代,得到累加模型 f m − 1 ( x ) f_{m-1}(x) fm−1(x)
在当前步骤下(第m步),优化目标为:
a
r
g
m
i
n
f
m
L
(
f
m
(
x
)
,
y
i
)
\underset{f_m}{arg\ min}\ L(f_{m}(x),\ y_i)
fmarg min L(fm(x), yi)
L ( f m ( x ) , y i ) = L ( f m − 1 ( x ) , y i ) + ∇ f m − 1 ( x ) L ( f m − 1 ( x ) , y i ) L(f_{m}(x),\ y_i)=L(f_{m-1}(x),y_i)+\nabla_{f_{m-1}(x)}L(f_{m-1}(x),y_i) L(fm(x), yi)=L(fm−1(x),yi)+∇fm−1(x)L(fm−1(x),yi)
f
m
(
x
)
f_m(x)
fm(x)更新:
f
m
(
x
)
=
f
m
−
1
(
x
)
−
α
∇
f
m
−
1
(
x
)
L
(
f
m
−
1
(
x
)
,
y
i
)
f_m(x)=f_{m-1}(x)-\alpha\nabla_{f_{m-1}(x)}L(f_{m-1}(x),y_i)
fm(x)=fm−1(x)−α∇fm−1(x)L(fm−1(x),yi)
有:
T
m
(
x
,
θ
m
)
=
f
m
(
x
)
−
f
m
−
1
(
x
)
=
−
∇
f
m
−
1
(
x
)
L
(
f
m
−
1
(
x
)
,
y
i
)
T_m(x,\theta_m)=f_m(x)-f_{m-1}(x)=-\nabla_{f_{m-1}(x)}L(f_{m-1}(x),y_i)
Tm(x,θm)=fm(x)−fm−1(x)=−∇fm−1(x)L(fm−1(x),yi)
初始化:
f
0
(
x
)
=
a
r
g
m
i
n
c
∑
i
=
1
n
L
(
y
i
,
c
)
f_0 (x)=\underset{c}{argmin} \sum_{i=1}^nL(y_i,c)
f0(x)=cargmini=1∑nL(yi,c)
对 m = 1 , 2 , … , M m=1,2,…,M m=1,2,…,M
对
i
=
1
,
2
,
…
,
N
i=1,2,…,N
i=1,2,…,N分别计算样本点处负梯度
−
[
∂
L
(
y
i
,
f
(
x
)
)
∂
f
(
x
)
]
∣
f
(
x
)
=
f
m
−
1
(
x
)
-[\frac{\partial{L(y_i,f(x))}}{\partial{f(x)}}]|_{f(x)=f_{m-1}(x)}
−[∂f(x)∂L(yi,f(x))]∣f(x)=fm−1(x)
对负梯度点对使用回归树进行拟合,得到树 T ( x , θ m ) T(x,\theta_m) T(x,θm),及回归树对区域的划分
对各区域,计算
c
m
j
=
a
r
g
m
i
n
c
∑
x
i
∈
R
m
j
L
(
y
i
,
c
m
j
)
c_{mj}=\underset{c}{arg\ min}\sum_{x_i\in{R_{mj}}}L(y_i,c_{mj})
cmj=carg minxi∈Rmj∑L(yi,cmj)
更新 f m ( x ) = f m − 1 ( x ) + ∑ j = 1 J c m j I ( x ∈ R m j ) f_m(x)=f_{m-1}(x)+\sum_{j=1}^Jc_{mj}I(x\in{R_mj}) fm(x)=fm−1(x)+∑j=1JcmjI(x∈Rmj)
得到最终提升树 f M ( x ) f_M(x) fM(x)
【1】《集成学习》周志华
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。