文章目录
8.提升方法
8.1几个概念
- 集成学习:
使用一系列学习器进行学习,使用某种规则将基本分类器组和,得到比单个学习器效果更好的模型。- 序列方法,当前模型进行学习时,依赖上一个模型的训练结果
- 并行方法,模型间没有依赖关系
- 强可学习:
一个概念/类,如果存在多项式的学习算法,能正确率很高进行学习,这个概念/类是强可学习的。 - 弱可学习:
一个概念/类,如果存在多项式的学习算法,学习的正确率仅比随即猜测略好,这个概念是弱可学习的。 - PAC学习框架(probably approximately correct,很可能接近正确的)
- 等价于训练误差上界定理,用训练误差和 ϵ \epsilon ϵ项以一定的概率控制泛化误差
- 泛化误差上界:对于函数f,至少以概率
1
−
δ
1-\delta
1−δ,以下不等式成立
R ( f ) ⩽ R ^ ( f ) + ϵ ( d , N , δ ) R(f) \leqslant \hat{R}(f) +\epsilon(d,N,\delta) R(f)⩽R^(f)+ϵ(d,N,δ)
ϵ ( d , N , δ ) = 1 2 N ( l o g d + l o g 1 δ ) \epsilon(d,N,\delta)=\sqrt{\frac{1}{2N}(logd + log\frac{1}{\delta})} ϵ(d,N,δ)=2N1(logd+logδ1) - 在PAC的学习框架下,一个概念是强可学习的充要条件是弱可学习的
8.2加法模型的向前分步算法
8.2.1加法模型
- 模型:加法模型,表示为
f ( x ) = ∑ m = 1 M β m b ( x ; γ m ) f(x) = \sum_{m=1}^M\beta_mb(x;\gamma_m) f(x)=m=1∑Mβmb(x;γm)
其中 b ( x ; γ m ) b(x;\gamma_m) b(x;γm)是基函数, γ m \gamma_m γm是参数, β m \beta_m βm是系数 (同一个基函数,只是参数不同) - 损失函数(极小化):
min β m , γ m ∑ i = 1 N L ( y i , ∑ m = 1 M β m b ( x i ; γ m ) ) \min_{\beta_m,\gamma_m}\sum_{i=1}^NL(y_i, \sum_{m=1}^M\beta_mb(x_i;\gamma_m)) βm,γmmini=1∑NL(yi,m=1∑Mβmb(xi;γm)) - 算法:向前分步算法
学习加法模型时,从前向后,每一步只学习一个基函数及其系数,逐步优化损失函数,即可以简化优化的复杂度。即每步只优化 min β , γ ∑ i = 1 N L ( y i , β b ( x i ; γ ) ) \min_{\beta,\gamma}\sum_{i=1}^NL(y_i, \beta b(x_i;\gamma)) minβ,γ∑i=1NL(yi,βb(xi;γ))
8.2.2具体算法
输入:训练数据集
T
=
{
(
x
1
,
y
1
)
,
(
x
2
,
y
2
)
,
⋯
 
,
(
x
N
,
y
N
)
,
}
T=\{(x_1,y_1),(x_2,y_2),\cdots,(x_N,y_N),\}
T={(x1,y1),(x2,y2),⋯,(xN,yN),};损失函数
L
(
y
,
f
(
x
)
)
;
L(y,f(x));
L(y,f(x));基函数集
{
b
(
x
,
r
)
}
\{b(x,r)\}
{b(x,r)}
输出:加法模型f(x)
- (1)初始化 f 0 ( x ) = 0 f_0(x) = 0 f0(x)=0
- (2)每轮训练一个基本学习器
β
m
b
(
x
;
r
m
)
,
m
=
1
,
2
,
⋯
 
,
M
\beta_mb(x;r_m),m=1,2,\cdots,M
βmb(x;rm),m=1,2,⋯,M,且到当前轮时
f
m
(
x
)
=
f
m
−
1
(
x
)
+
β
m
b
(
x
;
r
m
)
f_m(x) = f_{m-1}(x) + \beta_mb(x;r_m)
fm(x)=fm−1(x)+βmb(x;rm)
- (a) 极小化损失函数
( β m , γ m ) = a r g min β , γ ∑ i = 1 N L ( y i , f m ( x ) ) = a r g min β , γ ∑ i = 1 N L ( y i , f m − 1 ( x ) + β m b ( x ; r m ) ) \begin{aligned} (\beta_m,\gamma_m) &= arg\min_{\beta,\gamma}\sum_{i=1}^NL(y_i, f_m(x)) \\ &= arg\min_{\beta,\gamma}\sum_{i=1}^NL(y_i, f_{m-1}(x) + \beta_mb(x;r_m)) \end{aligned} (βm,γm)=argβ,γmini=1∑NL(yi,fm(x))=argβ,γmini=1∑NL(yi,fm−1(x)+βmb(x;rm))
得到参数 β m , γ m \beta_m,\gamma_m βm,γm - (b) 更新 f m ( x ) = f m − 1 ( x ) + β m b ( x ; r m ) f_m(x) = f_{m-1}(x) + \beta_mb(x;r_m) fm(x)=fm−1(x)+βmb(x;rm)
- (a) 极小化损失函数
- (3) 得到加法模型 f ( x ) = f M ( x ) = ∑ m = 1 M β m b ( x ; γ m ) f(x) =f_M(x) = \sum_{m=1}^M\beta_mb(x;\gamma_m) f(x)=fM(x)=∑m=1Mβmb(x;γm)
8.3 提升方法
- 主要思想:
- 如果发现了“弱学习算法”,将其提升为“强学习算法”。
- 即从一个弱学习算法出发,通过反复学习不同的参数,得到一系列基本分类器,通过组和这些弱分类器,构成一个强分类器。
- 大多数的提升方法:在每轮学习中改变训练数据的概率分布(即训练数据的权值分布);在下轮学习中通过有新的概率分布的训练数据,用相同的基本学习方法学习到不同的参数,构成另一个基本分类器;将这些基本分类器组和为强分类器。
- 问题一:如何改变训练数据的概率分布
- 问题二:如何将弱分类器(基本分类器)组和成一个强分类器
8.3.1 AdaBoost算法
- 用于解决二分类问题
- 每轮训练中,提高被前一轮弱分类器错误分类的样本的权值,降低被正确分类的样本的权值
- 通过加权多数表决的方法组和弱分类器:加大分类误差率小的弱分类器的权值,使其有更多的决定权;减少分类误差率大的弱分类器的权值,使其有更小的决定作用。
- 在学习过程中不断减少训练误差,即分类误差率
AdaBoost算法的解释
- 模型:二分类加法模型, f ( x ) = ∑ m = 1 M α m G m ( x ) f(x) = \sum_{m=1}^M\alpha_mG_m(x) f(x)=∑m=1MαmGm(x)
- 损失函数:指数函数, L = ∑ e x p ( − y f ( x ) ) L= \sum exp(-yf(x)) L=∑exp(−yf(x))
- 学习算法:向前分步算法
在第m轮学习时,使损失函数最小,得到
α
m
,
G
m
(
x
)
\alpha_m,G_m(x)
αm,Gm(x)
(
α
m
,
G
m
(
x
)
)
=
a
r
g
min
α
,
G
∑
i
=
1
N
e
x
p
(
−
y
i
f
m
(
x
i
)
)
=
a
r
g
min
α
,
G
∑
i
=
1
N
e
x
p
[
−
y
i
(
f
m
−
1
(
x
i
)
+
α
G
(
x
i
)
)
]
L
=
∑
i
=
1
N
e
x
p
[
−
y
i
(
f
m
−
1
(
x
i
)
+
α
G
(
x
i
)
)
]
=
∑
i
=
1
N
[
e
x
p
(
−
y
i
f
m
−
1
(
x
i
)
)
e
x
p
(
−
y
i
α
G
(
x
i
)
)
]
=
∑
i
=
1
N
w
m
i
‾
e
x
p
(
−
y
i
α
G
(
x
i
)
)
\begin{aligned} (\alpha_m,G_m(x)) &= arg\min_{\alpha,G}\sum _{i=1}^Nexp(-y_if_m(x_i))\\ &=arg\min_{\alpha,G}\sum _{i=1}^Nexp[-y_i(f_{m-1}(x_i) + \alpha G(x_i))] \\ L &= \sum _{i=1}^Nexp[-y_i(f_{m-1}(x_i) + \alpha G(x_i))] \\ &= \sum_{i=1}^N\Big[exp(-y_if_{m-1}(x_i)) exp(-y_i\alpha G(x_i))\Big] \\ &=\sum _{i=1}^N\overline{w_{mi}}exp(-y_i\alpha G(x_i)) \end{aligned}
(αm,Gm(x))L=argα,Gmini=1∑Nexp(−yifm(xi))=argα,Gmini=1∑Nexp[−yi(fm−1(xi)+αG(xi))]=i=1∑Nexp[−yi(fm−1(xi)+αG(xi))]=i=1∑N[exp(−yifm−1(xi))exp(−yiαG(xi))]=i=1∑Nwmiexp(−yiαG(xi))
其中
w
m
i
‾
=
e
x
p
(
−
y
i
f
m
−
1
(
x
i
)
)
\overline{w_{mi}} =exp(-y_if_{m-1}(x_i))
wmi=exp(−yifm−1(xi)),与待求参数
α
,
G
\alpha,G
α,G无关。
由于模型的基本模型是二分类器,
y
∈
{
−
1
,
1
}
,
α
>
0
y \in \{-1,1\},\alpha >0
y∈{−1,1},α>0,因此第m轮
G
m
∗
(
x
)
=
arg
min
G
∑
i
=
1
n
w
m
i
‾
I
(
y
i
≠
G
(
x
i
)
)
G^*_m(x) = \arg\min_G \sum_{i=1}^n \overline{w_{mi}}I(y_i \quad \neq G(x_i))
Gm∗(x)=argGmini=1∑nwmiI(yi̸=G(xi))
求解
α
∗
\alpha^*
α∗
L
=
∑
i
=
1
N
w
m
i
‾
e
x
p
(
−
y
i
α
G
(
x
i
)
)
=
∑
y
i
=
G
m
(
x
i
)
w
m
i
‾
e
x
p
(
−
α
)
+
∑
y
i
≠
G
m
(
x
i
)
w
m
i
‾
e
x
p
(
α
)
=
(
e
α
−
e
−
α
)
∑
i
=
1
n
w
m
i
‾
I
(
y
i
≠
G
m
(
x
i
)
)
+
e
−
α
∑
i
=
1
n
w
m
i
‾
∂
L
∂
α
=
(
e
α
+
e
−
α
)
∑
i
=
1
n
w
m
i
‾
I
(
y
i
≠
G
m
(
x
i
)
)
−
e
−
α
∑
i
=
1
n
w
m
i
‾
=
0
e
2
α
=
∑
i
=
1
n
w
m
i
‾
∑
i
=
1
n
w
m
i
‾
I
(
y
i
≠
G
m
(
x
i
)
)
−
1
α
∗
=
1
2
l
n
∑
i
=
1
n
w
m
i
‾
∑
i
=
1
n
w
m
i
‾
I
(
y
i
≠
G
m
(
x
i
)
)
−
1
\begin{aligned} L &= \sum _{i=1}^N\overline{w_{mi}}exp(-y_i\alpha G(x_i)) \\ &= \sum_{y_i = G_m(x_i)}\overline{w_{mi}} exp(-\alpha) + \sum_{y_i \quad \neq G_m(x_i)}\overline{w_{mi}} exp(\alpha) \\ &= (e^\alpha - e^{-\alpha})\sum_{i=1}^n \overline{w_{mi}} I(y_i\quad \neq G_m(x_i)) + e^{-\alpha} \sum_{i=1}^n \overline{w_{mi}} \\ \frac{\partial L}{\partial \alpha} &= (e^\alpha + e^{-\alpha}) \sum_{i=1}^n \overline{w_{mi}} I(y_i\quad \neq G_m(x_i)) - e^{-\alpha} \sum_{i=1}^n \overline{w_{mi}} =0 \\ e^{2\alpha} &= \frac{ \sum_{i=1}^n\overline{w_{mi}}}{\sum_{i=1}^n \overline{w_{mi}} I(y_i\quad \neq G_m(x_i)) } -1 \\ \alpha^* &= \frac{1}{2}ln \frac{\sum_{i=1}^n \overline{w_{mi}}}{\sum_{i=1}^n \overline{w_{mi}} I(y_i\quad \neq G_m(x_i)) } -1 \end{aligned}
L∂α∂Le2αα∗=i=1∑Nwmiexp(−yiαG(xi))=yi=Gm(xi)∑wmiexp(−α)+yi̸=Gm(xi)∑wmiexp(α)=(eα−e−α)i=1∑nwmiI(yi̸=Gm(xi))+e−αi=1∑nwmi=(eα+e−α)i=1∑nwmiI(yi̸=Gm(xi))−e−αi=1∑nwmi=0=∑i=1nwmiI(yi̸=Gm(xi))∑i=1nwmi−1=21ln∑i=1nwmiI(yi̸=Gm(xi))∑i=1nwmi−1
令
e
m
=
∑
i
=
1
n
w
m
i
‾
I
(
y
i
≠
G
m
(
x
i
)
)
∑
i
=
1
n
w
m
i
‾
=
∑
i
=
1
n
w
m
i
I
(
y
i
≠
G
m
(
x
i
)
)
\begin{aligned} e_m &= \frac{ \sum_{i=1}^n \overline{w_{mi}} I(y_i\quad \neq G_m(x_i))}{\sum_{i=1}^n\overline{w_{mi}} } \\ &= \sum_{i=1}^n w_{mi} I(y_i \quad \neq G_m(x_i)) \end{aligned}
em=∑i=1nwmi∑i=1nwmiI(yi̸=Gm(xi))=i=1∑nwmiI(yi̸=Gm(xi))
得到
α
∗
=
1
2
l
n
(
1
−
e
m
e
m
)
\alpha^* = \frac{1}{2} ln(\frac{1-e_m}{e_m})
α∗=21ln(em1−em)
其中
w
m
i
=
w
m
i
‾
∑
i
=
1
n
w
m
i
‾
=
e
x
p
(
−
y
i
f
m
−
1
(
x
i
)
)
∑
i
=
1
n
e
x
p
(
−
y
i
f
m
−
1
(
x
i
)
)
w
m
+
1
,
i
=
w
m
+
1
,
i
‾
∑
i
=
1
n
w
m
+
1
,
i
‾
=
e
x
p
(
−
y
i
f
m
(
x
i
)
)
∑
i
=
1
n
e
x
p
(
−
y
i
f
m
(
x
i
)
)
=
e
x
p
(
−
y
i
f
m
−
1
(
x
i
)
)
e
x
p
(
−
y
i
α
m
G
m
(
x
i
)
)
∑
i
=
1
n
e
x
p
(
−
y
i
f
m
−
1
(
x
i
)
)
e
x
p
(
−
y
i
α
m
G
m
(
x
i
)
)
=
e
x
p
(
−
y
i
f
m
−
1
(
x
i
)
)
∑
i
=
1
n
e
x
p
(
−
y
i
f
m
−
1
(
x
i
)
)
e
x
p
(
−
y
i
α
m
G
m
(
x
i
)
)
∑
i
=
1
n
e
x
p
(
−
y
i
f
m
−
1
(
x
i
)
)
∑
i
=
1
n
e
x
p
(
−
y
i
f
m
−
1
(
x
i
)
)
e
x
p
(
−
y
i
α
m
G
m
(
x
i
)
)
=
w
m
i
e
x
p
(
−
y
i
α
m
G
m
(
x
i
)
)
∑
i
=
1
n
w
m
i
e
x
p
(
−
y
i
α
m
G
m
(
x
i
)
)
\begin{aligned} w_{mi} & = \frac{\overline{w_{mi}}}{\sum_{i=1}^n\overline{w_{mi}}} = \frac{exp(-y_if_{m-1}(x_i))}{\sum_{i=1}^nexp(-y_if_{m-1}(x_i))} \\ w_{m+1,i} &= \frac{\overline{w_{m+1,i}}}{\sum_{i=1}^n\overline{w_{m+1,i}}} = \frac{exp(-y_if_{m}(x_i))}{\sum_{i=1}^nexp(-y_if_{m}(x_i))} \\ &=\frac{exp(-y_if_{m-1}(x_i))exp(-y_i\alpha_mG_m(x_i))}{\sum_{i=1}^n exp(-y_if_{m-1}(x_i))exp(-y_i\alpha_mG_m(x_i))} \\ &= \frac{exp(-y_if_{m-1}(x_i))}{\sum_{i=1}^n exp(-y_if_{m-1}(x_i))}\frac{exp(-y_i\alpha_mG_m(x_i))}{\sum_{i=1}^n \frac{exp(-y_if_{m-1}(x_i))}{\sum_{i=1}^n exp(-y_if_{m-1}(x_i))}exp(-y_i\alpha_mG_m(x_i))} \\ &= \frac{w_{mi}exp(-y_i\alpha_mG_m(x_i))}{\sum_{i=1}^nw_{mi}exp(-y_i\alpha_mG_m(x_i))} \end{aligned}
wmiwm+1,i=∑i=1nwmiwmi=∑i=1nexp(−yifm−1(xi))exp(−yifm−1(xi))=∑i=1nwm+1,iwm+1,i=∑i=1nexp(−yifm(xi))exp(−yifm(xi))=∑i=1nexp(−yifm−1(xi))exp(−yiαmGm(xi))exp(−yifm−1(xi))exp(−yiαmGm(xi))=∑i=1nexp(−yifm−1(xi))exp(−yifm−1(xi))∑i=1n∑i=1nexp(−yifm−1(xi))exp(−yifm−1(xi))exp(−yiαmGm(xi))exp(−yiαmGm(xi))=∑i=1nwmiexp(−yiαmGm(xi))wmiexp(−yiαmGm(xi))
总结:
- 每轮迭代时,训练得到该轮基本学习器 G m ∗ G_m^* Gm∗;
- 计算 e m = ∑ i = 1 n w m i I ( y i ≠ G m ( x i ) ) e_m= \sum_{i=1}^n w_{mi} I(y_i \quad \neq G_m(x_i)) em=∑i=1nwmiI(yi̸=Gm(xi));
- 计算这一轮学习器的权重 α ∗ = 1 2 l n ( 1 − e m e m ) \alpha^* = \frac{1}{2} ln(\frac{1-e_m}{e_m}) α∗=21ln(em1−em);
- 更新每个样本的下一轮权重 w m + 1 , i = w m i e x p ( − y i α m G m ( x i ) ) ∑ i = 1 n w m i e x p ( − y i α m G m ( x i ) ) w_{m+1,i} =\frac{w_{mi}exp(-y_i\alpha_mG_m(x_i))}{\sum_{i=1}^nw_{mi}exp(-y_i\alpha_mG_m(x_i))} wm+1,i=∑i=1nwmiexp(−yiαmGm(xi))wmiexp(−yiαmGm(xi))
算法
输入:训练数据集
T
=
{
(
x
1
,
y
1
)
,
(
x
2
,
y
2
)
,
⋯
 
,
(
x
N
,
y
N
)
,
}
T=\{(x_1,y_1),(x_2,y_2),\cdots,(x_N,y_N),\}
T={(x1,y1),(x2,y2),⋯,(xN,yN),},其中
x
i
∈
X
⊆
R
n
,
y
i
∈
Y
=
{
−
1
,
+
1
}
x_i \in X \subseteq R^n,y_i \in Y=\{-1,+1\}
xi∈X⊆Rn,yi∈Y={−1,+1};及弱学习算法
输出:最终分类器G(x)
- (1) 初始化训练数据的权值分布, D 1 = ( w 11 , ⋯   , w 1 i , ⋯   , w 1 N ) , w 1 i = 1 N D_1 = (w_{11},\cdots,w_{1i},\cdots,w_{1N}),w_{1_i}=\frac{1}{N} D1=(w11,⋯,w1i,⋯,w1N),w1i=N1
- (2) 反复学习分类器,共要学习M个弱分类器,对于第m次学习,
m
=
1
,
2
,
⋯
 
,
M
m=1,2,\cdots,M
m=1,2,⋯,M
- (a) 使用具有权值分布
D
m
D_m
Dm的训练数据集学习,得到基本分类器
G m ( x ) : X → { + 1 , − 1 } G_m(x):X \rightarrow \{+1,-1\} Gm(x):X→{+1,−1} - (b) 计算
G
m
(
x
)
G_m(x)
Gm(x)在训练数据集上的分类误差率(
e
m
<
0.5
e_m<0.5
em<0.5永远成立,可以把正负的标记反过来)
e m = P ( G m ( x i ) ≠ y i ) = ∑ i = 1 N w m i I ( G m ( x i ) ≠ y i ) e_m=P(G_m(x_i) \neq y_i) = \sum_{i=1}^N w_{m_i}I(G_m(x_i) \neq y_i) em=P(Gm(xi)̸=yi)=i=1∑NwmiI(Gm(xi)̸=yi) - (c )计算
G
m
(
x
)
G_m(x)
Gm(x)的系数(分类误差率
e
m
e_m
em越小,
α
m
\alpha_m
αm越大,且
α
m
>
0
\alpha_m>0
αm>0,在最终分类器中作用越大)
α m = 1 2 l o g 1 − e m e m \alpha_m=\frac{1}{2}log\frac{1-e_m}{e_m} αm=21logem1−em - (d) 更新训练数据集的权值分布(当样本
(
x
i
,
y
i
)
(x_i,y_i)
(xi,yi)在上一个分类器中误分类时,即
y
i
G
m
(
x
i
)
<
0
y_iG_m(x_i)<0
yiGm(xi)<0,
w
m
+
1
w_{m+1}
wm+1会被放大)
D m + 1 = ( w m + 1 , 1 , ⋯   , w m + 1 , i , ⋯   , w m + 1 , N ) D_{m+1} = (w_{m+1,1},\cdots,w_{m+1,i},\cdots,w_{m+1,N}) Dm+1=(wm+1,1,⋯,wm+1,i,⋯,wm+1,N)
w m + 1 , i = w m i Z m e x p ( − α m y i G m ( x i ) ) , i = 1 , 2 , ⋯   , N w_{m+1,i} = \frac{w_{mi}}{Z_m}exp(-\alpha_my_iG_m(x_i)),i=1,2,\cdots,N wm+1,i=Zmwmiexp(−αmyiGm(xi)),i=1,2,⋯,N
Z m = ∑ i = 1 N w m i e x p ( − α m y i G m ( x i ) ) Z_m = \sum_{i=1}^Nw_{mi}exp(-\alpha_my_iG_m(x_i)) Zm=i=1∑Nwmiexp(−αmyiGm(xi))
其中 Z m Z_m Zm是一个规范化因子,使 D m + 1 D_{m+1} Dm+1称为一个概率分布,因为 ∑ w m i = 1 \sum w_{mi} = 1 ∑wmi=1
- (a) 使用具有权值分布
D
m
D_m
Dm的训练数据集学习,得到基本分类器
- (3) 构建基本分类器的线性组和
f ( x ) = ∑ m = 1 M α m G m ( x ) f(x) = \sum_{m=1}^M\alpha_m G_m(x) f(x)=m=1∑MαmGm(x)
。得到最终的分类器
G ( x ) = s i g n ( f ( x ) ) = s i g n ( ∑ m = 1 M α m G m ( x ) ) G(x) = sign(f(x))=sign(\sum_{m=1}^M\alpha_mG_m(x)) G(x)=sign(f(x))=sign(m=1∑MαmGm(x))
8.3.2 提升树
- 提升树是以树做基本分类器的提升方法
- 回归树,解决回归问题;当采用的损失函数不同时,可用算法不同
- 向前分布算法:采用平方误差损失函数
- 梯度提升算法:其他损失函数
- 分类树,解决分类问题(二分类树的情况与AdaBoost以分类树做基本分类器的情况类似)
- 回归树,解决回归问题;当采用的损失函数不同时,可用算法不同
- 新一轮的训练模型根据损失函数最小化求取
- 基本分类器的组和方式: 相加
f
M
(
x
)
=
∑
m
=
1
M
T
(
X
;
Θ
m
)
f_M(x)=\sum_{m=1}^MT(X;\Theta_m)
fM(x)=∑m=1MT(X;Θm)
T ( X ; Θ m ) T(X;\Theta_m) T(X;Θm)表示决策树
CART生成二叉回归树算法
- 模型表示:将输入空间X划分为两个单元R1,R2;对应不同的固定输出c1,c2。将模型表示为 f ( x ) = ∑ m = 1 2 c m I ( x ∈ R m ) f(x) = \sum_{m=1}^2c_m I(x \in R_m) f(x)=∑m=12cmI(x∈Rm)。
- 损失函数:平方误差
∑
x
i
∈
R
m
(
y
i
−
f
(
x
i
)
)
2
=
∑
x
i
∈
R
1
(
c
1
−
y
i
)
2
+
∑
x
i
∈
R
2
(
c
2
−
y
i
)
2
\sum_{x_i \in R_m}(y_i - f(x_i))^2 = \sum_{x_i \in R_1}(c_1-y_i)^2 + \sum_{x_i \in R_2}(c_2-y_i)^2
∑xi∈Rm(yi−f(xi))2=∑xi∈R1(c1−yi)2+∑xi∈R2(c2−yi)2
损失函数最小化可得,对于每个确定区域, f ( x ) = c m = 1 n ∑ x i ∈ R m y i f(x) = c_m = \frac{1}{n}\sum_{x_i\in R_m}y_i f(x)=cm=n1∑xi∈Rmyi - 算法:
- (1)对于每个样本,
i
=
1
,
2
,
⋯
 
,
N
i=1,2,\cdots,N
i=1,2,⋯,N
- (a)选择该样本 x x x值,将输入空间切分为 X ⩽ x , X > x X \leqslant x,X > x X⩽x,X>x两部分;对样本集切分为两个子集
- (b)分别计算两个子集的 y y y值平均值 1 n m ∑ x ∈ R m y \frac{1}{n_m}\sum_{x\in R_m} y nm1∑x∈Rmy,做二叉树模型的参数 c m c_m cm
- (c ) 计算损失函数 L = ∑ x i ∈ R 1 ( y i − c 1 ) 2 + ∑ x j ∈ R 2 ( y j − c 2 ) 2 L = \sum_{x_i \in R_1}(y_i - c_1)^2 + \sum_{x_j \in R_2}(y_j - c_2)^2 L=∑xi∈R1(yi−c1)2+∑xj∈R2(yj−c2)2
- (2)比较所有的损失函数,损失函数最小时的样本 x x x值为最优切分点。
- (1)对于每个样本,
i
=
1
,
2
,
⋯
 
,
N
i=1,2,\cdots,N
i=1,2,⋯,N
- 算法总结:
min j , s [ min c 1 ∑ x i ∈ R 1 ( j , s ) ( y i − c 1 ) 2 + min c 2 ∑ x j ∈ R 2 ( j , s ) ( y j − c 2 ) 2 ] \min_{j,s}[\min_{c_1}\sum_{x_i \in R_1(j,s)}(y_i-c1)^2 + \min_{c_2}\sum_{x_j \in R_2(j,s)}(y_j-c2)^2] j,smin[c1minxi∈R1(j,s)∑(yi−c1)2+c2minxj∈R2(j,s)∑(yj−c2)2]
即找到使损失函数最小的第j个样本的x取值s,和使损失函数最小的c1,c2(取平均值即可)
提升树算法
-
模型:将输入空间划分为J个互不相交的区域 R 1 , R 2 , ⋯   , R J R_1,R_2,\cdots,R_J R1,R2,⋯,RJ,并在每个区域上确定输出的常量 c j c_j cj,树可以表示为
T ( x ; Θ ) = ∑ j = 1 J c j I ( x ∈ R j ) T(x;\Theta) = \sum_{j=1}^Jc_jI(x \in R_j) T(x;Θ)=j=1∑JcjI(x∈Rj)
其中参数 Θ = { ( R 1 , c 1 ) , ( R 2 , c 2 ) , ⋯   , ( R J , c J ) } \Theta = \{(R_1,c_1),(R_2,c_2),\cdots,(R_J,c_J)\} Θ={(R1,c1),(R2,c2),⋯,(RJ,cJ)}表示树的区域划分和各区域上的常数,J是回归树的复杂度即叶节点个数 -
损失函数:平方误差损失函数,每轮训练的损失函数为
L ( y , f ( x ) ) = ( y − f ( x ) ) 2 L ( y , f m − 1 ( x ) + T ( x ; Θ ) ) = [ y − f m − 1 ( x ) − T ( x ; Θ ) ] 2 = [ r − T ( x ; Θ ) ] 2 \begin{aligned} L(y,f(x)) &= (y-f(x))^2 \\ L(y,f_{m-1}(x) + T(x;\Theta))&=[y-f_{m-1}(x) - T(x;\Theta)]^2 \\ &=[r - T(x;\Theta)]^2 \end{aligned} L(y,f(x))L(y,fm−1(x)+T(x;Θ))=(y−f(x))2=[y−fm−1(x)−T(x;Θ)]2=[r−T(x;Θ)]2
其中 r = y − f m − 1 ( x ) r=y-f_{m-1}(x) r=y−fm−1(x)是当前模型拟合数据的残差。因此训练本轮回归树的数据源为上一轮训练结果( f m − 1 ( x ) = ∑ i = 1 m − 1 T ( x , Θ i ) f_{m-1}(x)=\sum_{i=1}^{m-1}T(x,\Theta_i) fm−1(x)=∑i=1m−1T(x,Θi))的残差。 -
算法
输入:训练数据集 T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , ⋯   , ( x N , y N ) } T=\{(x_1,y_1),(x_2,y_2),\cdots,(x_N,y_N)\} T={(x1,y1),(x2,y2),⋯,(xN,yN)}
输出:提升树 f M ( x ) f_M(x) fM(x)- (1)初始化 f 0 ( x ) = 0 f_0(x) = 0 f0(x)=0
- (2)对m=1,2,…,M
- (a) 按照 r = y i − f m − 1 ( x i ) , i = 1 , 2 , ⋯   , N r=y_i-f_{m-1}(x_i),i=1,2,\cdots,N r=yi−fm−1(xi),i=1,2,⋯,N计算残差
- (b)拟合残差 r r r学习一个回归树,得到 T ( x ; Θ m ) T(x;\Theta_m) T(x;Θm)
- (c )更新 f m = f m − 1 + T ( x ; Θ m ) f_m = f_{m-1} + T(x;\Theta_m) fm=fm−1+T(x;Θm)
- (3)得到回归问题提升树 f M ( x ) = ∑ m = 1 M T ( x ; Θ m ) f_M(x) = \sum_{m=1}^MT(x;\Theta_m) fM(x)=∑m=1MT(x;Θm)
梯度提升算法
- 对于一般损失函数(非平方损失函数和指数损失函数),每步优化并不简单,用损失函数的负梯度 − [ ∂ L ( y , f ( x i ) ) ∂ f ( x i ) ] f ( x ) = f m − 1 ( x ) -\Big[\frac{\partial L(y,f(x_i))}{\partial f(x_i)}\Big]_{f(x)=f_{m-1}(x)} −[∂f(xi)∂L(y,f(xi))]f(x)=fm−1(x)作为回归问题中残差的近似值,拟合一个回归树
- 利用损失函数的负梯度作为残差的近似值,拟合一个回归树
- 算法:
输入:训练数据集 T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , ⋯   , ( x N , y N ) , } T=\{(x_1,y_1),(x_2,y_2),\cdots,(x_N,y_N),\} T={(x1,y1),(x2,y2),⋯,(xN,yN),},其中 x i ∈ X ⊆ R n , y i ∈ Y ⊆ R x_i \in X \subseteq R^n,y_i \in Y \subseteq R xi∈X⊆Rn,yi∈Y⊆R;损失函数 L ( y , f ( x ) ) L(y,f(x)) L(y,f(x))
输出:提升树 f ^ ( x ) \hat{f}_(x) f^(x)- (1)初始化(估计使损失函数极小化的常数值c,是只有根节点的树)
f 0 ( x ) = a r g min c ∑ i = 1 N L ( y i , c ) f_0(x) = arg\min_c \sum_{i=1}^NL(y_i,c) f0(x)=argcmini=1∑NL(yi,c) - (2)对m=1,2,…,M
- (a)对i=1,2,…,N计算损失函数的负梯度在当前模型的值
r m i = − [ ∂ L ( y i , f ( x i ) ) ∂ f ( x i ) ] f ( x ) = f m − 1 ( x ) r_{mi} = -\Bigg[\frac{\partial L(y_i,f(x_i))}{\partial f(x_i)}\Bigg] _{f(x) = f_{m-1}(x)} rmi=−[∂f(xi)∂L(yi,f(xi))]f(x)=fm−1(x)
(对于一般的损失函数,此值为残差的估计。假设 L = [ y − f ( x ) ] 2 , ∂ L / ∂ f = − 2 ( y − f ( x ) ) L=[y - f(x)]^2, \partial L/\partial f = -2(y-f(x)) L=[y−f(x)]2,∂L/∂f=−2(y−f(x)) ; 残差前有系数,因此需要根据(c )步计算 c m c_m cm) - (b) 对 r m i r_{mi} rmi拟合一个回归树,得到第m棵树的叶节点区域 R m j , j = 1 , 2 , ⋯   , J R_{mj},j=1,2,\cdots,J Rmj,j=1,2,⋯,J;
- (c ) 对
j
=
1
,
2
,
⋯
 
,
J
j=1,2,\cdots,J
j=1,2,⋯,J,使损失函数最小化求得该区域回归树参数c。计算
c m j = a r g min c ∑ x i ∈ R m j L ( y i , f m − 1 ( x i ) + c ) c_{mj} = arg\min_c \sum_{x_i \in R_{mj}}L(y_i,f_{m-1}(x_i) + c) cmj=argcminxi∈Rmj∑L(yi,fm−1(xi)+c)
利用线性搜索估计叶节点区域的值,使损失函数极小化(c是待求的最优值 c m j c_{mj} cmj) - (d)更新 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)
- (a)对i=1,2,…,N计算损失函数的负梯度在当前模型的值
- (1)初始化(估计使损失函数极小化的常数值c,是只有根节点的树)
- 得到回归树
f ^ ( x ) = f M ( x ) = ∑ m = 1 M ∑ j = 1 J c m j I ( x ∈ R m j ) \hat{f}(x) = f_M(x) = \sum_{m=1}^M\sum_{j=1}^Jc_{mj}I(x\in R_{mj}) f^(x)=fM(x)=m=1∑Mj=1∑JcmjI(x∈Rmj)
对于对于每个待预测值,在每棵基本树上只有1个区域内 I I I函数不为0,此函数最终只有M项
8.4 AdaBoost训练误差证明
8.4.1 训练误差上界
1
N
∑
i
=
1
N
I
(
G
(
x
i
)
≠
y
i
)
⩽
1
N
∑
i
=
1
N
e
x
p
(
−
y
i
f
(
x
i
)
)
=
∏
m
=
1
M
Z
m
\frac{1}{N}\sum_{i=1}^NI(G(x_i)\neq y_i) \leqslant \frac{1}{N}\sum_{i=1}^Nexp(-y_if(x_i)) = \prod_{m=1}^MZ_m
N1i=1∑NI(G(xi)̸=yi)⩽N1i=1∑Nexp(−yif(xi))=m=1∏MZm
G
(
x
)
=
s
i
g
n
(
∑
m
=
1
M
α
m
G
m
(
x
)
)
G(x)=sign(\sum_{m=1}^M\alpha_mG_m(x))
G(x)=sign(∑m=1MαmGm(x)),
f
(
x
)
=
∑
m
=
1
M
α
m
G
m
(
x
)
f(x)=\sum_{m=1}^M\alpha_m G_m(x)
f(x)=∑m=1MαmGm(x),
Z
m
=
∑
i
=
1
N
w
m
i
e
x
p
(
−
α
m
y
i
G
m
(
x
i
)
)
Z_m=\sum_{i=1}^Nw_{mi}exp(-\alpha_my_iG_m(x_i))
Zm=∑i=1Nwmiexp(−αmyiGm(xi))。
此定理说明:
-
使 Z m Z_m Zm最小,从而使训练误差下降最快
-
在每轮训练中, Z m = ∑ i = 1 N w m i e x p ( − α m y i G m ( x i ) ) Z_m=\sum_{i=1}^Nw_{mi}exp(-\alpha_my_iG_m(x_i)) Zm=∑i=1Nwmiexp(−αmyiGm(xi)); w m i w_{mi} wmi在上一轮训练中确定, G m ( x i ) G_m(x_i) Gm(xi)在本轮训练中确定;
-
通过 min Z m \min Z_m minZm求 α m \alpha_m αm,使训练误差上界下降最快
∂ Z m ∂ α m = ∑ i = 1 N − w m i y i G m ( x i ) e x p ( − α m y i G m ( x i ) ) = 0 \frac{\partial Z_m}{\partial \alpha_m} = \sum_{i=1}^N-w_{mi}y_iG_m(x_i)exp(-\alpha_my_iG_m(x_i)) = 0 ∂αm∂Zm=i=1∑N−wmiyiGm(xi)exp(−αmyiGm(xi))=0
算法中 α m = 1 2 l o g 1 − e m e m \alpha_m=\frac{1}{2}log\frac{1-e_m}{e_m} αm=21logem1−em就是上式的一个解
证: -
(1)证 I ( G ( x i ) ≠ y i ) ⩽ e x p ( − y i f ( x i ) ) I(G(x_i)\neq y_i) \leqslant exp(-y_if(x_i)) I(G(xi)̸=yi)⩽exp(−yif(xi))
当 G ( x i ) ≠ y i G(x_i)\neq y_i G(xi)̸=yi,此时 − y i f ( x i ) > 0 -y_if(x_i)>0 −yif(xi)>0,因此 e x p ( − y i f ( x i ) ) > I ( G ( x i ) ≠ y i ) = 1 exp(-y_if(x_i))>I(G(x_i)\neq y_i)=1 exp(−yif(xi))>I(G(xi)̸=yi)=1;
当 G ( x i ) = y i G(x_i)= y_i G(xi)=yi,此时 − y i f ( x i ) < 0 -y_if(x_i)<0 −yif(xi)<0,因此 e x p ( − y i f ( x i ) ) > I ( G ( x i ) ≠ y i ) = 0 exp(-y_if(x_i))>I(G(x_i)\neq y_i)=0 exp(−yif(xi))>I(G(xi)̸=yi)=0; -
(2)证 1 N ∑ i = 1 N e x p ( − y i f ( x i ) ) = ∏ m Z m \frac{1}{N}\sum_{i=1}^Nexp(-y_if(x_i)) = \prod_mZ_m N1∑i=1Nexp(−yif(xi))=∏mZm
1 N ∑ i = 1 N e x p ( − y i f ( x i ) ) = 1 N ∑ i = 1 N e x p ( − y i ∑ m = 1 M α m G m ( x i ) ) = ∑ i = 1 N w 1 i e x p ( − y i ∑ m = 1 M α m G m ( x i ) ) = ∑ i = 1 N w 1 i ∏ m = 1 M e x p ( − y i α m G m ( x i ) ) = ∑ i = 1 N w 1 i e x p ( − y i α 1 G 1 ( x i ) ) ∏ m = 2 M e x p ( − y i α m G m ( x i ) ) = Z 1 ∑ i = 1 N w 2 i ∏ m = 2 M e x p ( − y i α m G m ( x i ) ) = ∏ j = 1 M − 1 Z j ∑ i = 1 N w M i e x p ( − y i α M G M ( x i ) ) = ∏ m = 1 M Z m \begin{aligned} &\frac{1}{N}\sum_{i=1}^Nexp(-y_if(x_i)) \\ &= \frac{1}{N}\sum_{i=1}^Nexp(-y_i\sum_{m=1}^M\alpha_mG_m(x_i)) \\ &= \sum_{i=1}^Nw_{1i}exp(-y_i\sum_{m=1}^M\alpha_mG_m(x_i)) = \sum_{i=1}^Nw_{1i}\prod_{m=1}^Mexp(-y_i\alpha_mG _m(x_i)) \\ &=\sum_{i=1}^Nw_{1i}exp(-y_i\alpha_1G _1(x_i))\prod_{m=2}^Mexp(-y_i\alpha_mG _m(x_i)) \\ &= Z_1\sum_{i=1}^Nw_{2i}\prod_{m=2}^Mexp(-y_i\alpha_mG _m(x_i)) = \prod_{j=1}^{M-1}Z_j\sum_{i=1}^Nw_{Mi}exp(-y_i\alpha_MG_M(x_i)) \\ &= \prod_{m=1}^MZ_m \end{aligned} N1i=1∑Nexp(−yif(xi))=N1i=1∑Nexp(−yim=1∑MαmGm(xi))=i=1∑Nw1iexp(−yim=1∑MαmGm(xi))=i=1∑Nw1im=1∏Mexp(−yiαmGm(xi))=i=1∑Nw1iexp(−yiα1G1(xi))m=2∏Mexp(−yiαmGm(xi))=Z1i=1∑Nw2im=2∏Mexp(−yiαmGm(xi))=j=1∏M−1Zji=1∑NwMiexp(−yiαMGM(xi))=m=1∏MZm
8.4.2二分类问题AdaBoost的训练误差界
∏
m
=
1
M
Z
m
=
∏
m
=
1
M
[
2
e
m
(
1
−
e
m
)
]
=
∏
m
=
1
M
1
−
4
γ
m
2
⩽
e
x
p
(
−
2
∏
m
=
1
M
γ
m
2
)
\prod_{m=1}^MZ_m=\prod_{m=1}^M[2\sqrt{e_m(1-e_m)}] = \prod_{m=1}^M\sqrt{1-4\gamma^2_m} \leqslant exp(-2\prod_{m=1}^M\gamma^2_m)
m=1∏MZm=m=1∏M[2em(1−em)]=m=1∏M1−4γm2⩽exp(−2m=1∏Mγm2)
其中
e
m
=
∑
y
i
≠
G
m
(
x
i
)
w
m
i
=
∑
i
=
1
N
w
m
i
I
(
y
i
≠
G
m
(
x
i
)
)
e_m =\sum_{y_i\neq G_m(x_i)}w_{mi} = \sum_{i=1}^Nw_{mi}I(y_i \neq G_m(x_i))
em=∑yi̸=Gm(xi)wmi=∑i=1NwmiI(yi̸=Gm(xi)),
γ
m
=
1
2
−
e
m
\gamma_m = \frac{1}{2}-e_m
γm=21−em,
此定理说明:
- e m e_m em代表每轮的分类误差率, e m e_m em越小分类效果越好, r m r_m rm越大
- r m r_m rm代表当前基本分类器对随机猜测结果的提升程度
- 不等式 ∏ m = 1 M Z m ⩽ e x p ( − 2 ∏ m = 1 M γ m 2 ) \prod_{m=1}^MZ_m \leqslant exp(-2\prod_{m=1}^M\gamma^2_m) ∏m=1MZm⩽exp(−2∏m=1Mγm2) 代表,随着训练轮数m的增加,训练误差减少,且降低的速度很快(指数)
证:
- 前半部分
Z m = ∑ i = 1 N w m i e x p ( − α m y i G m ( x i ) ) = ∑ y i = G m ( x i ) w m i e − α m + ∑ y i ≠ G m ( x i ) w m i e α m = ( 1 − e m ) e − α m + e m e α m = 2 e m ( 1 − e m ) = 1 − 4 γ m 2 \begin{aligned} Z_m &=\sum_{i=1}^Nw_{mi}exp(-\alpha_my_iG_m(x_i)) \\ &= \sum_{y_i=G_m(x_i)}w_{mi}e^{-\alpha_m} + \sum_{y_i\neq G_m(x_i)}w_{mi}e^{\alpha_m} \\ &= (1-e_m)e^{-\alpha_m} + e_me^{\alpha_m} \\ &= 2\sqrt{e_m(1-e_m)} = \sqrt{1-4\gamma^2_m} \end{aligned} Zm=i=1∑Nwmiexp(−αmyiGm(xi))=yi=Gm(xi)∑wmie−αm+yi̸=Gm(xi)∑wmieαm=(1−em)e−αm+emeαm=2em(1−em)=1−4γm2 - 后半部分:
∏
m
=
1
M
1
−
4
γ
m
2
⩽
e
x
p
(
−
2
∏
m
=
1
M
γ
m
2
)
\prod_{m=1}^M\sqrt{1-4\gamma^2_m} \leqslant exp(-2\prod_{m=1}^M\gamma^2_m)
∏m=1M1−4γm2⩽exp(−2∏m=1Mγm2)
- 对
f
(
x
)
=
(
1
−
x
)
1
/
2
f(x)=(1-x)^{1/2}
f(x)=(1−x)1/2,泰勒展开
-
求导, f ′ ( x ) = − 1 2 ( 1 − x ) − 1 2 , f ′ ′ ( x ) = − 1 4 ( 1 − x ) − 3 2 f'(x) = -\frac{1}{2}(1-x)^{-\frac{1}{2}},f''(x)=-\frac{1}{4}(1-x)^{-\frac{3}{2}} f′(x)=−21(1−x)−21,f′′(x)=−41(1−x)−23
-
展开, f ( x ) = f ( 0 ) + x f ′ ( 0 ) + 1 2 x 2 f ′ ′ ( 0 ) + . . . . ≈ 1 − 1 2 x − 1 8 x 2 f ( 4 r 2 ) ≈ 1 − 2 r 2 − 2 r 4 \begin{aligned}f(x) &= f(0) + xf'(0)+\frac{1}{2}x^2f''(0)+....\\&\approx1-\frac{1}{2}x-\frac{1}{8}x^2 \\f(4r^2)&\approx1-2r^2-2r^4\end{aligned} f(x)f(4r2)=f(0)+xf′(0)+21x2f′′(0)+....≈1−21x−81x2≈1−2r2−2r4
-
- 对
g
(
x
)
=
e
x
g(x)=e^x
g(x)=ex,泰勒展开
- 求导, g ′ ( x ) = e x , g ′ ′ ( x ) = e x g'(x) = e^x,g''(x)=e^x g′(x)=ex,g′′(x)=ex
- 展开, g ( x ) = g ( 0 ) + x g ′ ( 0 ) + 1 2 x 2 g ′ ′ ( 0 ) + . . . . ≈ 1 + x + 1 2 x 2 g ( − 2 r 2 ) ≈ 1 − 2 r 2 + 2 r 4 \begin{aligned}g(x) &= g(0) + xg'(0)+\frac{1}{2}x^2g''(0)+....\\&\approx1+x+\frac{1}{2}x^2 \\g(-2r^2)&\approx1-2r^2+2r^4\end{aligned} g(x)g(−2r2)=g(0)+xg′(0)+21x2g′′(0)+....≈1+x+21x2≈1−2r2+2r4
- f ( 4 r 2 ) < g ( − 2 r 2 ) f(4r^2)<g(-2r^2) f(4r2)<g(−2r2)
- 对
f
(
x
)
=
(
1
−
x
)
1
/
2
f(x)=(1-x)^{1/2}
f(x)=(1−x)1/2,泰勒展开