《统计学习方法》——李航
回顾上一篇讲的Gradient Boosting方法, 其中比较经典的就是用于分类的AdaBoost。
其具体算法步骤如下:
注:步骤(2)(b)中,计算得到 e m e_m em后需要判断其值是否小于0.5,如果是则继续下面的步骤,否则需要重启:数据的权值分布设为离散均匀分布,重新采样并训练基分类器。重启的原因很简单,因为 e m > 0.5 e_m>0.5 em>0.5时,权重 α < 0 \alpha<0 α<0,这显然不是我们希望看到的。
大体流程
是不断在新抽取(依概率权重抽取)的样本集合上训练(同一个)基分类器,然后计算该分类器在整体训练集上的分类结果以及分类误差率,这个分类误差率决定了该基分类器的整体权重;上一个基分类器对整体训练集的分类结果及其分类误差率决定了下一次抽样的样本权重(即下一个基分类器的训练样本)。
(2)(d) 中的训练集数据权值更新公式可以写为:
w
m
+
1
,
i
=
{
w
m
,
i
Z
m
exp
(
−
α
m
)
,
i
f
G
m
(
x
i
)
=
y
i
w
m
,
i
Z
m
exp
(
α
m
)
,
i
f
G
m
(
x
i
)
≠
y
i
w_{m+1,i}=\left\{ \begin{aligned} \frac{w_{m,i}}{Z_m}\exp(-\alpha_m) ,\quad & if \quad G_m(x_i)=y_i \\ \frac{w_{m,i}}{Z_m}\exp(\alpha_m), \quad & if \quad G_m(x_i)\ne y_i\\ \end{aligned} \right.
wm+1,i=⎩⎪⎨⎪⎧Zmwm,iexp(−αm),Zmwm,iexp(αm),ifGm(xi)=yiifGm(xi)=yi
注意重启步骤保证了 e m < 0.5 e_m<0.5 em<0.5,则 α m > 0 \alpha_m>0 αm>0,说明在第m个分类器下被正确分类的样本观测 i 的(在下一轮抽样中的)权重会缩小,反之被错误分类的观测的权重会增大。说明后续基分类器将着重解决分类效果差的样本,从而提升整体分类正确率。
接下来讨论
f
(
x
)
f(x)
f(x)的损失函数。
考虑二分类问题,求指数损失函数对应的风险(损失函数的期望即为风险函数):
R
(
f
)
=
E
[
l
(
f
)
∣
X
]
=
E
Y
[
e
−
Y
f
(
X
)
∣
X
]
=
P
r
(
Y
=
1
∣
X
)
e
−
f
(
X
)
+
P
r
(
Y
=
−
1
∣
X
)
e
f
(
X
)
\mathcal R(f) =\mathbb E[l(f)|X]=\mathbb E_{Y}[e^{-Yf(X)}|X]=Pr(Y=1|X)e^{-f(X)}+Pr(Y=-1|X)e^{f(X)}
R(f)=E[l(f)∣X]=EY[e−Yf(X)∣X]=Pr(Y=1∣X)e−f(X)+Pr(Y=−1∣X)ef(X)
求导:
∂
∂
f
R
(
f
∣
X
)
=
−
P
r
(
Y
=
1
∣
X
)
e
−
f
(
X
)
+
P
r
(
Y
=
−
1
∣
X
)
e
f
(
X
)
=
0
\frac{\partial}{\partial f}\mathcal R(f|X)=-Pr(Y=1|X)e^{-f(X)}+Pr(Y=-1|X)e^{f(X)}=0
∂f∂R(f∣X)=−Pr(Y=1∣X)e−f(X)+Pr(Y=−1∣X)ef(X)=0
得到:
f
(
X
)
=
1
2
l
o
g
(
P
r
(
Y
=
1
∣
X
)
P
r
(
Y
=
−
1
∣
X
)
)
f(X)=\frac 12log(\frac{Pr(Y=1|X)}{Pr(Y=-1|X)})
f(X)=21log(Pr(Y=−1∣X)Pr(Y=1∣X))
上面这些推导可以说明指数损失函数是合理的。因为最小化风险函数得到的分类器结果即为理想状况下的分类器。当
P
r
(
Y
=
1
∣
X
)
>
P
r
(
Y
=
−
1
∣
X
)
Pr(Y=1|X)>Pr(Y=-1|X)
Pr(Y=1∣X)>Pr(Y=−1∣X)时,显然分类器预测结果为1,这与真实情况吻合。
另外,上面这个式子对应
α
m
\alpha_m
αm的计算公式,因此最终的基分类器线性组合式子
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)是合理的。
也可以通过举例子说明,比如当损失函数最小时,
Y
f
(
X
)
Yf(X)
Yf(X)达到最大,Y与
f
(
X
)
f(X)
f(X)最接近,即当
y
=
1
y=1
y=1,
f
(
x
)
=
∑
m
α
m
f(x)=\sum_m \alpha_m
f(x)=∑mαm时损失函数最小。
贪心算法
AdaBoost使用贪心算法进行优化。
f
(
x
)
=
∑
m
α
m
G
m
(
x
)
f(x)=\sum_m \alpha_mG_m(x)
f(x)=∑mαmGm(x)
只考虑最近的一步,即
R
(
α
m
G
m
∣
X
m
)
=
E
X
∼
D
m
[
e
−
Y
α
m
G
m
(
X
)
]
=
e
−
α
m
P
r
X
∼
D
m
(
Y
=
G
m
(
X
)
)
+
e
α
m
P
r
X
∼
D
m
(
Y
≠
G
m
(
X
)
)
=
e
−
α
m
(
1
−
ϵ
m
)
+
e
α
m
ϵ
m
\begin{aligned} \mathcal R(\alpha_mG_m|X_m)&=\mathbb E_{X\sim \mathcal D_m}[e^{-Y\alpha_mG_m(X)}]\\ &=e^{-\alpha_m}Pr_{X\sim \mathcal D_m}(Y=G_m(X))+e^{\alpha_m}Pr_{X\sim \mathcal D_m}(Y\ne G_m(X))\\ &=e^{-\alpha_m}(1-\epsilon_m)+e^{\alpha_m}\epsilon_m \end{aligned}
R(αmGm∣Xm)=EX∼Dm[e−YαmGm(X)]=e−αmPrX∼Dm(Y=Gm(X))+eαmPrX∼Dm(Y=Gm(X))=e−αm(1−ϵm)+eαmϵm
在上式中对
α
m
\alpha_m
αm求导即可得到其更新公式:
α
m
=
1
2
l
o
g
(
1
−
ϵ
m
ϵ
m
)
\alpha_m=\frac 12log(\frac{1-\epsilon_m}{\epsilon_m})
αm=21log(ϵm1−ϵm)
数据分布
D
m
\mathcal D_m
Dm的更新
理想状况下,我们想要最小化:
R
(
f
m
−
1
+
G
m
∣
D
)
=
E
X
∼
D
[
e
−
Y
(
f
m
−
1
+
G
m
)
]
=
E
X
∼
D
[
e
−
Y
f
m
−
1
e
−
Y
G
m
)
]
≈
E
X
∼
D
[
e
−
Y
f
m
−
1
(
1
−
Y
G
m
(
X
)
+
1
2
)
]
\begin{aligned} \mathcal R(f_{m-1}+G_m|\mathcal D) &=\mathbb E_{X\sim \mathcal D}[e^{-Y(f_{m-1}+G_m)}]\\ &=\mathbb E_{X\sim \mathcal D}[e^{-Yf_{m-1}}e^{-YG_m})]\\ &\approx \mathbb E_{X\sim \mathcal D}[e^{-Yf_{m-1}}(1-YG_m(X)+\frac 12)]\\ \end{aligned}
R(fm−1+Gm∣D)=EX∼D[e−Y(fm−1+Gm)]=EX∼D[e−Yfm−1e−YGm)]≈EX∼D[e−Yfm−1(1−YGm(X)+21)]
只考虑第m步的情况,并假设前m-1步的情况如
f
m
−
1
f_{m-1}
fm−1已知。则上述优化问题等价于最大化以下式子:
maximize
E
X
∼
D
[
e
−
Y
(
X
)
f
m
−
1
Y
G
m
(
X
)
]
\text{maximize} \mathbb E_{X\sim \mathcal D}[e^{-Y(X)f_{m-1}}YG_m(X)]
maximizeEX∼D[e−Y(X)fm−1YGm(X)]等价于:
maximize
E
X
∼
D
m
[
Y
(
X
)
G
m
(
X
)
]
\text{maximize} \mathbb E_{X\sim \mathcal D_m}[Y(X)G_m(X)]
maximizeEX∼Dm[Y(X)Gm(X)]
其中, (为了使得上面两个最小化问题的最优解相同)
D
m
=
D
e
−
Y
(
X
)
f
m
−
1
E
X
∼
D
(
e
−
Y
(
X
)
f
m
−
1
)
\mathcal D_m=\frac{\mathcal De^{-Y(X)f_{m-1}}}{\mathbb E_{X\sim\mathcal D}(e^{-Y(X)f_{m-1}})}
Dm=EX∼D(e−Y(X)fm−1)De−Y(X)fm−1
下标加1则得到
D
m
+
1
=
D
e
−
Y
f
m
E
X
∼
D
(
e
−
Y
f
m
)
=
D
e
−
Y
f
m
−
1
e
−
α
m
Y
G
m
E
X
∼
D
m
(
e
−
Y
(
X
)
f
m
)
=
e
−
α
m
Y
G
m
E
X
∼
D
(
e
−
Y
f
m
−
1
)
E
X
∼
D
(
e
−
Y
(
X
)
f
m
)
\begin{aligned} \mathcal D_{m+1}&=\frac{\mathcal De^{-Yf_{m}}}{\mathbb E_{X\sim\mathcal D}(e^{-Yf_{m}})} \\ &= \frac{\mathcal De^{-Yf_{m-1}}e^{-\alpha_mYG_m}}{\mathbb E_{X\sim\mathcal D_{m}}(e^{-Y(X)f_{m}})}\\ &= e^{-\alpha_mYG_m}\frac{\mathbb E_{X\sim\mathcal D}(e^{-Yf_{m-1}})}{\mathbb E_{X\sim\mathcal D}(e^{-Y(X)f_{m}})} \end{aligned}
Dm+1=EX∼D(e−Yfm)De−Yfm=EX∼Dm(e−Y(X)fm)De−Yfm−1e−αmYGm=e−αmYGmEX∼D(e−Y(X)fm)EX∼D(e−Yfm−1)
此即对应第m步时数据的分布
{
w
m
,
i
,
i
=
1
,
.
.
.
,
n
}
\{w_{m,i},i=1,...,n\}
{wm,i,i=1,...,n}
基分类器
G
m
G_m
Gm在
G
m
−
1
G_{m-1}
Gm−1没有训练好的样本上加强训练,这与Boosting的思想一致。