目标函数
O
b
j
(
Θ
)
=
L
(
Θ
)
+
Ω
(
Θ
)
Obj(\Theta) = L(\Theta) + \Omega(\Theta)
Obj(Θ)=L(Θ)+Ω(Θ)
其中
L
(
Θ
)
L(\Theta)
L(Θ)为损失(误差)函数,
Ω
(
Θ
)
\Omega(\Theta)
Ω(Θ)为正则化项。
模型
O
b
j
(
Θ
)
=
∑
i
=
0
n
l
(
y
i
,
y
^
i
)
+
∑
k
=
1
K
Ω
(
f
k
)
y
^
i
t
=
∑
k
=
1
t
f
k
(
x
i
)
=
y
^
i
t
−
1
+
f
t
(
x
i
)
Obj(\Theta) = \sum_{i=0}^nl(y_i,\hat y_i) + \sum_{k=1}^K\Omega(f_k)\\ \hat y_i^t=\sum_{k=1}^tf_k(x_i)=\hat y_i^{t-1} + f_t(x_i)
Obj(Θ)=i=0∑nl(yi,y^i)+k=1∑KΩ(fk)y^it=k=1∑tfk(xi)=y^it−1+ft(xi)
前向加法模型
学习算法
第t步只学习
f
t
f_t
ft,则目标优化函数可写为
O
b
j
(
Θ
)
=
∑
i
=
0
n
l
(
y
i
,
y
^
i
t
−
1
+
f
t
(
x
i
)
)
+
Ω
(
f
t
)
+
c
o
n
s
t
a
n
t
Obj(\Theta) = \sum_{i=0}^nl(y_i,\hat y_i^{t-1}+f_t(x_i)) + \Omega(f_t) + constant
Obj(Θ)=i=0∑nl(yi,y^it−1+ft(xi))+Ω(ft)+constant
泰勒展开:
f
(
x
+
Δ
x
)
≈
f
(
x
)
+
f
′
(
x
)
Δ
x
+
1
2
f
′
′
(
x
)
Δ
x
2
f(x+\Delta x) \approx f(x) + f'(x)\Delta x + \frac{1}{2}f''(x)\Delta x^2
f(x+Δx)≈f(x)+f′(x)Δx+21f′′(x)Δx2
定义:
g
i
=
∂
l
(
y
i
,
y
^
t
−
1
)
∂
y
^
t
−
1
h
i
=
∂
2
l
(
y
i
,
y
^
t
−
1
)
∂
(
y
^
t
−
1
)
2
g_i=\frac{\partial l(y_i,\hat y^{t-1})}{\partial \hat y^{t-1}}\\ h_i=\frac{\partial^2 l(y_i,\hat y^{t-1})}{\partial (\hat y^{t-1})^2}
gi=∂y^t−1∂l(yi,y^t−1)hi=∂(y^t−1)2∂2l(yi,y^t−1)
则目标方程可以写为
O
b
j
t
=
∑
i
=
1
n
[
l
(
y
i
,
y
^
i
t
−
1
)
+
g
i
f
t
(
x
i
)
+
1
2
h
i
f
i
2
(
x
i
)
]
+
Ω
(
f
t
)
+
c
o
n
s
t
a
n
t
Obj^t=\sum_{i=1}^n[l(y_i,\hat y_i^{t-1}) + g_if_t(x_i) + \frac{1}{2}h_if_i^2(x_i)] + \Omega(f_t) + constant
Objt=i=1∑n[l(yi,y^it−1)+gift(xi)+21hifi2(xi)]+Ω(ft)+constant
将常数项去除,只留下与优化变量有关的项,其只依赖于每个数据点在误差函数上的一阶导数和二阶导数。
∑
i
=
1
n
[
g
i
f
t
(
x
i
)
+
1
2
h
i
f
i
2
(
x
i
)
]
+
Ω
(
f
t
)
\sum_{i=1}^n[g_if_t(x_i) + \frac{1}{2}h_if_i^2(x_i)] + \Omega(f_t)
i=1∑n[gift(xi)+21hifi2(xi)]+Ω(ft)
树结构
f t f_t ft可以看作是一个树结构,其叶子结构用q表示 q : R d → 1 , 2 , . . . , T q:R^d\to {1,2,...,T} q:Rd→1,2,...,T, ω i \omega_i ωi为叶子节点 i i i对应的值。
定义树结构的复杂度如下,即正则化项:
Ω
(
f
t
)
=
γ
T
+
1
2
λ
∑
j
=
1
T
ω
j
2
\Omega(f_t) = \gamma T + \frac{1}{2}\lambda\sum_{j=1}^T\omega^2_j
Ω(ft)=γT+21λj=1∑Tωj2
核心算法
定义
I
j
=
{
i
∣
q
(
x
i
)
=
j
}
I_j=\{i|q(x_i)=j\}
Ij={i∣q(xi)=j}表示属于叶子
j
j
j的样本点
O
b
j
t
≈
∑
i
=
1
n
[
g
i
f
t
(
x
i
)
+
1
2
h
i
f
t
2
(
x
i
)
]
+
Ω
(
f
t
)
=
∑
i
=
1
n
[
g
i
ω
q
(
x
i
)
+
1
2
h
i
ω
q
(
x
i
)
2
]
+
γ
T
+
1
2
λ
∑
j
=
1
T
ω
j
2
=
∑
j
=
1
T
[
(
∑
i
∈
I
j
g
i
)
ω
j
+
1
2
(
∑
i
∈
I
j
h
i
+
λ
)
ω
j
2
]
+
γ
T
Obj^t \approx \sum_{i=1}^n[g_if_t(x_i) + \frac{1}{2}h_if_t^2(x_i)] + \Omega(f_t)\\ =\sum_{i=1}^n[g_i\omega_{q(x_i)}+\frac{1}{2}h_i\omega^2_{q(x_i)}] + \gamma T + \frac{1}{2}\lambda\sum_{j=1}^T\omega^2_j\\ =\sum_{j=1}^T[(\sum_{i\in I_j} g_i)\omega_j + \frac{1}{2}(\sum_{i\in I_j}h_i+\lambda)\omega^2_j] + \gamma T
Objt≈i=1∑n[gift(xi)+21hift2(xi)]+Ω(ft)=i=1∑n[giωq(xi)+21hiωq(xi)2]+γT+21λj=1∑Tωj2=j=1∑T[(i∈Ij∑gi)ωj+21(i∈Ij∑hi+λ)ωj2]+γT
可以定义
G
j
=
∑
i
∈
I
j
g
i
G_j = \sum_{i\in I_j}g_i
Gj=∑i∈Ijgi,
H
j
=
∑
i
∈
I
j
h
i
H_j = \sum_{i\in I_j}h_i
Hj=∑i∈Ijhi,目标函数可以进一步写为如下函数,假设我们已知树的结构
q
q
q,我们可以通过这个目标函数来求解最好的
ω
\omega
ω
O
b
j
t
=
∑
i
=
1
2
[
(
∑
i
∈
I
j
g
i
)
ω
j
+
1
2
(
∑
i
∈
I
j
h
i
+
λ
)
ω
j
2
]
+
γ
T
=
∑
j
=
1
T
[
G
j
ω
j
+
1
2
(
H
j
+
λ
)
ω
j
2
]
+
γ
T
Obj^t = \sum_{i=1}^2[(\sum_{i\in I_j} g_i)\omega_j + \frac{1}{2}(\sum_{i\in I_j}h_i+\lambda)\omega^2_j] + \gamma T\\ =\sum_{j=1}^T[G_j\omega_j + \frac{1}{2}(H_j + \lambda)\omega_j^2] + \gamma T
Objt=i=1∑2[(i∈Ij∑gi)ωj+21(i∈Ij∑hi+λ)ωj2]+γT=j=1∑T[Gjωj+21(Hj+λ)ωj2]+γT
如上是一个求一维二次函数最小值问题,(
x
∗
=
−
b
2
a
x^*=-\frac{b}{2a}
x∗=−2ab)
w
∗
j
=
−
G
j
H
j
+
λ
O
b
j
=
−
1
2
∑
j
=
1
T
G
j
2
H
j
+
λ
+
γ
T
w*_j=-\frac{G_j}{H_j+\lambda}\\ Obj = -\frac{1}{2}\sum_{j=1}^T\frac{G_j^2}{H_j+\lambda} + \gamma T
w∗j=−Hj+λGjObj=−21j=1∑THj+λGj2+γT
如上Obj越小,代表这个树结构越好。我们可以将其理解为基尼指数或信息增益。因此可以枚举出所有可能的树结构,然后用上述Obj评价指标去选择一颗最好的树,但是这样不可行,所以采用贪心法,在已有叶子节点的基础上尝试添加一个叶节点,观察是否可以获取最大收益,增益公式如下
G
a
i
n
=
1
2
[
G
L
2
H
L
+
λ
+
G
R
2
H
R
+
λ
−
(
G
L
+
G
R
)
2
H
L
+
H
R
+
λ
]
−
γ
Gain = \frac{1}{2}[\frac{G_L^2}{H_L+\lambda}+\frac{G_R^2}{H_R+\lambda} - \frac{(G_L+G_R)^2}{H_L+H_R+\lambda}] - \gamma
Gain=21[HL+λGL2+HR+λGR2−HL+HR+λ(GL+GR)2]−γ
如上式右边共四项,分别为左子树分数,右子树分数,不分割可以拿到的分数,加入一个新的叶子节点引入的复杂度代价。
我们可以枚举所有的特征与所有的可分割点,以此尝试选出最大增益Gain的可分割特征与分割点。但是由于引入正则化项,所以不一定构建一个新的叶子节点就一定会优于原树。