AdaBoost
在Overview部分我们提到了AdaBoost可以看作是模型为加法模型、损失函数为指数损失函数、学习算法为前向分步算法的分类模型。我认为在AdaBoost中,最重要的两个概念就是两组权重:基学习器权重和样本权重分布。
Weights
首先来看这两组权重,样本的权重和基学习器的权重。其实提升算法,听这个名字,就能感觉出它是在不断地提升模型的能力。
Sample weight
对于数据集
D
=
{
(
x
1
,
y
1
)
,
(
x
2
,
y
2
)
,
…
,
(
x
N
,
y
N
)
}
D=\{(x_1,\ y_1),(x_2,\ y_2),\dots,(x_N,\ y_N)\}
D={(x1, y1),(x2, y2),…,(xN, yN)},我们令
D
t
(
x
)
{D}_{t}(x)
Dt(x)表示在第
t
t
t轮迭代时样本集的权重分布,即
D
t
(
x
)
=
(
β
1
,
β
2
,
…
,
β
N
)
{D}_{t}(x)\ =\ (\beta_1, \beta_2, \dots, \beta_N)
Dt(x) = (β1,β2,…,βN)。在每一轮迭代,我们都会更新样本的权重,具体来说,对于那些被分类错误的样本,我们会提高它们地权重;对于分类正确的样本,我们会减小它们的权重。这样一来,在第
t
+
1
t+1
t+1轮迭代,我们所训练的新的基学习器就会更关注那些之前被分类错误的样本。
举个例子来说,我们在期末考试之前是不是都会着重复习错题,因为对了的题说明我们会了,基本不会再错。但是错题是我们没有掌握的东西,因此应该给予更多的关注。
Learner weight
同样,对于每一轮迭代所训练出的基学习器 h t h_{t} ht,我们也会通过某种方法计算出一个它的权重 α t \alpha_{t} αt。对于那些分类效果好的基学习器,我们会赋予它一个较大的权重;对于那些分类效果不好的基学习器,我们会赋予它一个较小的权重。
Algorithm
在介绍算法之前,我们先介绍一个概念:指数损失函数
Exponential Loss
指数损失函数也是损失函数的一种,最典型的应用就是在AdaBoost当中,公式为:
L
(
y
,
f
(
x
)
)
=
e
x
p
(
−
y
f
(
x
)
)
L(y,\ f(x))\ =\ exp(-yf(x))
L(y, f(x)) = exp(−yf(x))
它的特点是对噪声、离群点非常敏感
接下来我们先直接看算法的流程:
之前我们谈到Boosting算法中最重要的两个概念就是两组权重(样本权重和基学习器权重),因此下面我们就来看一下算法中两组权重的更新公式是怎么来的。
Learner Part
从算法流程中我们看到基学习器的权重更新公式为:
α
t
=
1
2
l
n
(
1
−
ϵ
t
ϵ
t
)
\alpha_t\ =\ \frac{1}{2}ln(\frac{1-\epsilon_t}{\epsilon_t})
αt = 21ln(ϵt1−ϵt)
其中
ϵ
t
=
P
x
∼
D
t
(
h
(
x
)
≠
f
(
x
)
)
\epsilon_t=P_{x\sim D_t}(h(x)\ne f(x))
ϵt=Px∼Dt(h(x)=f(x))。
AdaBoost的学习算法采用的是前向分布算法,因此在第
t
t
t轮迭代时,我们所要找的最优基学习器应该满足指数损失最小。
l
e
x
p
(
α
t
h
t
∣
D
t
)
=
E
x
∼
D
t
[
e
x
p
(
−
f
(
x
)
α
t
h
t
(
x
)
)
]
=
E
x
∼
D
t
[
e
−
α
t
I
(
f
(
x
)
=
h
t
(
x
)
)
+
e
α
t
I
(
f
(
x
)
≠
h
t
(
x
)
)
]
=
e
−
α
t
P
x
∼
D
t
(
f
(
x
)
=
h
t
(
x
)
)
+
e
α
t
P
x
∼
D
t
(
f
(
x
)
≠
h
t
(
x
)
)
=
e
−
α
t
(
1
−
ϵ
t
)
+
e
α
t
ϵ
t
l_{exp}(\alpha_th_t|D_t)\ =\ E_{x \sim D_t}[exp({-f(x)\alpha_th_t(x)})]\\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =\ E_{x \sim D_t}[e^{-\alpha_t}I(f(x)=h_t(x))\ +\ e^{\alpha_t}I(f(x) \ne h_t(x))] \\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =\ e^{-\alpha_t}P_{x \sim D_t}(f(x) = h_t(x)) + e^{\alpha_t}P_{x \sim D_t}(f(x) \ne h_t(x)) \\ \ \ \ \ \ \ \ \ \ \ \ = e^{-\alpha_t}(1-\epsilon_t) \ + \ e^{\alpha_t}\epsilon_t
lexp(αtht∣Dt) = Ex∼Dt[exp(−f(x)αtht(x))] = Ex∼Dt[e−αtI(f(x)=ht(x)) + eαtI(f(x)=ht(x))] = e−αtPx∼Dt(f(x)=ht(x))+eαtPx∼Dt(f(x)=ht(x)) =e−αt(1−ϵt) + eαtϵt
求指数损失函数对
α
t
\alpha_t
αt的偏导得:
∂
l
e
x
p
(
α
t
h
t
∣
D
t
)
∂
α
t
=
−
e
−
α
t
(
1
−
ϵ
t
)
+
e
α
t
ϵ
t
\frac{\partial l_{exp}(\alpha_th_t|D_t)}{\partial{\alpha_t}} = -e^{-\alpha_t}(1-\epsilon_t)+e^{\alpha_t}\epsilon_t
∂αt∂lexp(αtht∣Dt)=−e−αt(1−ϵt)+eαtϵt
令偏导等于0得到:
α
t
=
1
2
l
n
(
1
−
ϵ
t
ϵ
t
)
\alpha_t\ =\ \frac{1}{2}ln(\frac{1-\epsilon_t}{\epsilon_t})
αt = 21ln(ϵt1−ϵt)
于是我们就得到算法中基学习器权重的更新公式(第6行)
下面是一个关于最优的 h t ( x ) h_t(x) ht(x)能够在样本分布 D t {D}_t Dt下最小化分类误差的证明
在得到
H
t
−
1
H_{t-1}
Ht−1后我们会更新样本权重得到
D
t
{D}_{t}
Dt。我们之前提到理想的
h
t
(
x
)
h_t(x)
ht(x)能够纠正
H
t
−
1
H_{t-1}
Ht−1的全部错误,这等价于最小化
l
e
x
p
(
H
t
−
1
+
α
t
h
t
∣
D
)
l_{exp}(H_{t-1} + \alpha_th_t|D)
lexp(Ht−1+αtht∣D)
可以简化为最小化:
l
e
x
p
(
H
t
−
1
+
h
t
∣
D
)
=
E
x
∼
D
t
[
e
x
p
(
−
f
(
x
)
(
H
t
−
1
(
x
)
+
h
t
(
x
)
)
]
=
E
x
∼
D
t
[
e
x
p
(
−
f
(
x
)
H
t
−
1
(
x
)
)
⋅
e
x
p
(
−
f
(
x
)
h
t
(
x
)
)
]
l_{exp}(H_{t-1} + h_t|D)\ =\ E_{x \sim D_t}[exp({-f(x)(H_{t-1}(x) + h_t(x)})]\\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ = \ E_{x \sim D_t}[exp({-f(x)H_{t-1}(x)})\cdot exp({-f(x)h_t(x)})]
lexp(Ht−1+ht∣D) = Ex∼Dt[exp(−f(x)(Ht−1(x)+ht(x))] = Ex∼Dt[exp(−f(x)Ht−1(x))⋅exp(−f(x)ht(x))]
由于
f
2
(
x
)
=
h
t
2
(
x
)
=
1
f^2(x)=h_t^2(x)=1
f2(x)=ht2(x)=1,因此对上式进行二阶泰勒展开可以得到:
于是,最优的基学习器
h
t
(
x
)
=
a
r
g
m
i
n
h
l
e
x
p
(
H
t
−
1
+
h
∣
D
)
=
a
r
g
m
a
x
h
E
x
∼
D
[
e
x
p
(
−
f
(
x
)
H
t
−
1
(
x
)
)
+
f
(
x
)
h
(
x
)
]
=
a
r
g
m
a
x
h
E
x
∼
D
[
e
x
p
(
−
f
(
x
)
H
t
−
1
(
x
)
)
E
x
∼
D
e
x
p
(
−
f
(
x
)
H
t
−
1
(
x
)
)
+
f
(
x
)
h
(
x
)
]
h_t(x)\ =\ argmin_{h} \ \ \ l_{exp}(H_{t-1} + h|D) \\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =argmax_{h}\ \ \ E_{x \sim { D}}\ \ [{exp(-f(x)H_{t-1}(x)) + f(x)h(x)}] \\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ = argmax_{h} \ \ \ E_{x \sim { D}}\ \ [\frac{exp(-f(x)H_{t-1}(x))}{E_{x \sim {D} }\ exp(-f(x)H_{t-1}(x))} + f(x)h(x)]
ht(x) = argminh lexp(Ht−1+h∣D) =argmaxh Ex∼D [exp(−f(x)Ht−1(x))+f(x)h(x)] =argmaxh Ex∼D [Ex∼D exp(−f(x)Ht−1(x))exp(−f(x)Ht−1(x))+f(x)h(x)]
令
D
t
(
x
)
=
D
(
x
)
e
x
p
(
−
f
(
x
)
H
t
−
1
(
x
)
)
E
x
∼
D
e
x
p
(
−
f
(
x
)
H
t
−
1
(
x
)
)
{D}_t(x)\ =\ {D}(x)\frac{exp(-f(x)H_{t-1}(x))}{E_{x \sim {D} }\ exp(-f(x)H_{t-1}(x))}
Dt(x) = D(x)Ex∼D exp(−f(x)Ht−1(x))exp(−f(x)Ht−1(x))
则根据数学期望的定义
h
t
(
x
)
=
a
r
g
m
a
x
h
E
x
∼
D
[
e
x
p
(
−
f
(
x
)
H
t
−
1
(
x
)
)
E
x
∼
D
e
x
p
(
−
f
(
x
)
H
t
−
1
(
x
)
)
+
f
(
x
)
h
(
x
)
]
=
a
r
g
m
a
x
h
E
x
∼
D
t
[
f
(
x
)
h
(
x
)
]
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ h_t(x)\ =\ argmax_{h} \ \ \ E_{x \sim {D}}\ \ [\frac{exp(-f(x)H_{t-1}(x))}{E_{x \sim {D} }\ exp(-f(x)H_{t-1}(x))} + f(x)h(x)] \\ \ \ \ \ =argmax_{h}\ \ E_{x \sim {D}_t}\ [f(x)h(x)]
ht(x) = argmaxh Ex∼D [Ex∼D exp(−f(x)Ht−1(x))exp(−f(x)Ht−1(x))+f(x)h(x)] =argmaxh Ex∼Dt [f(x)h(x)]
由于
f
(
x
)
,
h
(
x
)
∈
{
−
1
,
1
}
f(x),\ h(x) \in\ \{-1, 1\}
f(x), h(x)∈ {−1,1},因此
f
(
x
)
h
(
x
)
=
1
−
2
I
[
f
(
x
)
≠
h
(
x
)
]
f(x)h(x)\ =\ 1\ -\ 2I[f(x)\ne h(x)]
f(x)h(x) = 1 − 2I[f(x)=h(x)]
则最优的学习器
h
t
(
x
)
=
a
r
g
m
i
n
h
E
x
∼
D
t
[
I
(
f
(
x
)
≠
h
(
x
)
)
]
h_t(x)\ =\ argmin_{h}\ \ E_{x \sim { D}_t}\ [I(f(x) \ne h(x))]
ht(x) = argminh Ex∼Dt [I(f(x)=h(x))]
因此可以证明,最优的
h
t
(
x
)
h_t(x)
ht(x)能够在样本分布
D
t
{D}_t
Dt下最小化分类误差
Sample Part
首先来说明一下算法中样本权重分步更新公式中得Normalization term Z t Z_t Zt,这是一个归一化项,目的是确保得到的是一个分布。