AdaBoost二分类
作者:互联网
AdaBoost二分类
AdaBoost算法是一个加性模型
F
(
x
)
=
∑
m
=
1
M
α
m
f
m
(
x
)
(1)
F(x)=\sum_{m=1}^{M}\alpha_mf_m(x)\tag{1}
F(x)=m=1∑Mαmfm(x)(1)
其中
f
m
(
x
)
f_m(x)
fm(x)称为弱分类器或基分类器,
α
m
\alpha_m
αm为弱分类器的集成权重,
F
(
x
)
F(x)
F(x)称为强分类器。
AdaBoost采用迭代式的训练方法。假设已经训练了 m m m个弱分类器,在训练第 m + 1 m+1 m+1个弱分类器时,增加已有弱分类器分错样本的权重,使得第 m + 1 m+1 m+1个弱分类器更关注已有弱分类器分错的样本,因此AdaBoost是通过改变数据的分布来提高弱分类器的差异。
二分类时,其损失函数定义为
L
(
F
)
=
exp
(
−
y
F
(
x
)
)
=
exp
(
−
y
∑
m
=
1
M
α
m
f
m
(
x
)
)
(2)
\begin{aligned} \mathcal L(F)&=\text{exp}(-yF(x))\\ &=\text{exp}(-y\sum_{m=1}^{M}\alpha_mf_m(x)) \end{aligned}\tag{2}
L(F)=exp(−yF(x))=exp(−ym=1∑Mαmfm(x))(2)
其中
y
y
y,
f
m
(
x
)
∈
{
+
1
,
−
1
}
f_m(x)\in\{+1, -1\}
fm(x)∈{+1,−1}。
假设经过
m
−
1
m-1
m−1次迭代,得到
F
m
−
1
(
x
)
=
∑
t
−
1
m
α
t
f
t
(
x
)
(3)
F_{m-1}(x)=\sum_{t-1}^m\alpha_tf_t(x)\tag{3}
Fm−1(x)=t−1∑mαtft(x)(3)
第
m
m
m次迭代是找到一个
α
m
\alpha_m
αm和
f
m
(
x
)
f_m(x)
fm(x)使得下面的损失函数最小
L
(
α
m
,
f
m
(
x
)
)
=
∑
n
=
1
N
exp
(
−
y
(
n
)
(
F
m
−
1
(
x
(
n
)
)
+
α
m
f
m
(
x
(
n
)
)
)
)
(4)
\mathcal L(\alpha_m,f_m(x))=\sum_{n=1}^N\text{exp}(-y^{(n)}(F_{m-1}(x^{{(n)}})+\alpha_mf_m(x^{(n)})))\tag{4}
L(αm,fm(x))=n=1∑Nexp(−y(n)(Fm−1(x(n))+αmfm(x(n))))(4)
令
w
m
(
n
)
=
exp
(
−
y
(
n
)
(
F
m
−
1
(
x
(
n
)
)
)
w_m^{(n)}=\text{exp}(-y^{(n)}(F_{m-1}(x^{{(n)}}))
wm(n)=exp(−y(n)(Fm−1(x(n)))表示
x
(
n
)
x^{(n)}
x(n)在第
m
m
m次迭代时的样本权重,损失函数可以写为
L
(
α
m
,
f
m
(
x
)
)
=
∑
n
=
1
N
w
m
(
n
)
exp
(
−
α
m
y
(
n
)
f
m
(
x
(
n
)
)
)
(5)
\mathcal L(\alpha_m,f_m(x))=\sum_{n=1}^Nw_m^{(n)}\text{exp}(-\alpha_my^{(n)}f_m(x^{(n)}))\tag{5}
L(αm,fm(x))=n=1∑Nwm(n)exp(−αmy(n)fm(x(n)))(5)
将上式在
−
α
m
y
(
n
)
f
m
(
x
(
n
)
)
-\alpha_my^{(n)}f_m(x^{(n)})
−αmy(n)fm(x(n))处二阶泰勒展开,有
L
(
α
m
,
f
m
(
x
)
)
=
∑
n
=
1
N
w
m
(
n
)
(
1
−
α
m
y
(
n
)
f
m
(
x
(
n
)
)
+
1
2
α
m
2
)
(6)
\mathcal L(\alpha_m,f_m(x))=\sum_{n=1}^Nw_m^{(n)}(1-\alpha_my^{(n)}f_m(x^{(n)})+\frac{1}{2}\alpha_m^2)\tag{6}
L(αm,fm(x))=n=1∑Nwm(n)(1−αmy(n)fm(x(n))+21αm2)(6)
首先求解弱分类器
f
m
(
x
)
f_m(x)
fm(x),有
L
(
α
m
,
f
m
(
x
)
)
∝
−
α
m
∑
n
=
1
N
w
m
(
n
)
y
(
n
)
f
m
(
x
(
n
)
)
∝
−
α
m
∑
n
=
1
N
w
m
(
n
)
(
1
−
2
I
(
y
(
n
)
≠
f
m
(
x
(
n
)
)
)
∝
α
m
∑
n
=
1
N
w
m
(
n
)
I
(
y
(
n
)
≠
f
m
(
x
(
n
)
)
)
(7)
\begin{aligned} \mathcal L(\alpha_m,f_m(x))&\propto-\alpha_m\sum_{n=1}^Nw_m^{(n)}y^{(n)}f_m(x^{(n)})\\ &\propto-\alpha_m\sum_{n=1}^Nw_m^{(n)}(1-2\text{I}(y^{(n)}\neq f_m(x^{(n)}))\\ &\propto\alpha_m\sum_{n=1}^Nw_m^{(n)}\text{I}(y^{(n)}\neq f_m(x^{(n)})) \end{aligned}\tag{7}
L(αm,fm(x))∝−αmn=1∑Nwm(n)y(n)fm(x(n))∝−αmn=1∑Nwm(n)(1−2I(y(n)=fm(x(n)))∝αmn=1∑Nwm(n)I(y(n)=fm(x(n)))(7)
当
α
m
>
0
\alpha_m>0
αm>0,最优的分类器
f
m
(
x
)
f_m(x)
fm(x)是使得在样本权重为
w
m
(
n
)
w_m^{(n)}
wm(n)时加权错误率最小的分类器,可以使用基学习器求得。
得到
f
m
(
x
)
f_m(x)
fm(x)后,公式
(
5
)
(5)
(5)可以改写为
L
(
α
m
,
f
m
(
x
)
)
=
∑
y
(
n
)
=
f
m
(
x
(
n
)
)
w
m
(
n
)
exp
(
−
α
m
)
+
∑
y
(
n
)
≠
f
m
(
x
(
n
)
)
w
m
(
n
)
exp
(
α
m
)
(8)
\mathcal L(\alpha_m,f_m(x))=\sum_{y^{(n)}=f_m(x^{(n)})}w_m^{(n)}\text{exp}(-\alpha_m)+\sum_{y^{(n)}\neq f_m(x^{(n)})}w_m^{(n)}\text{exp}(\alpha_m)\tag{8}
L(αm,fm(x))=y(n)=fm(x(n))∑wm(n)exp(−αm)+y(n)=fm(x(n))∑wm(n)exp(αm)(8)
令
ϵ
m
=
∑
y
(
n
)
≠
f
m
(
x
(
n
)
)
w
m
(
n
)
∑
n
=
1
N
w
m
(
n
)
(9)
\epsilon_m=\frac{\sum_{y^{(n)}\neq f_m(x^{(n)})}w_m^{(n)}}{\sum_{n=1}^Nw_m^{(n)}}\tag{9}
ϵm=∑n=1Nwm(n)∑y(n)=fm(x(n))wm(n)(9)
表示
f
m
(
x
)
f_m(x)
fm(x)的加权错误率,则公式
(
8
)
(8)
(8)可以改写为
L
(
α
m
,
f
m
(
x
)
)
∝
(
1
−
ϵ
m
)
exp
(
−
α
m
)
+
ϵ
m
exp
(
α
m
)
(10)
\mathcal L(\alpha_m,f_m(x))\propto(1-\epsilon_m)\text{exp}(-\alpha_m)+\epsilon_m\text{exp}(\alpha_m)\tag{10}
L(αm,fm(x))∝(1−ϵm)exp(−αm)+ϵmexp(αm)(10)
令上式关于
α
m
\alpha_m
αm的导数为0,得到
α
m
=
1
2
log
1
−
ϵ
m
ϵ
m
(11)
\alpha_m=\frac{1}{2}\text{log}\frac{1-\epsilon_m}{\epsilon_m}\tag{11}
αm=21logϵm1−ϵm(11)
AdaBoost的二分类算法总结如下
标签:text,sum,分类,分类器,AdaBoost,exp,alpha,fm 来源: https://blog.csdn.net/qq_40019838/article/details/120937489