(3)Adaboost算法解释:
AdaBoost算法是模型为加法模型、损失函数为指数函数、学习算法为前向分布算法时的二类分类学习方法。
(i)前向分布算法
考虑加法模型
f
(
x
)
=
∑
m
=
1
M
β
m
b
(
x
;
γ
m
)
f(x)=\sum_{m=1}^{M} \beta_{m} b\left(x ; \gamma_{m}\right)
f(x)=m=1∑Mβmb(x;γm)
其中,基函数:
b
(
x
;
γ
m
)
,
b\left(x ; \gamma_{m}\right),
b(x;γm),基函数参数:
γ
m
\gamma_{m}
γm,基函数的系数:
β
m
\beta_{m}
βm。
在给定训练数据集及损失函数
L
(
y
,
f
(
x
)
)
\mathrm{L}(\mathrm{y}, \mathrm{f}(\mathrm{x}))
L(y,f(x))的条件下,学习加法模型f(x)成为经验风险最小化即损失函数最小化问题:
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}^{N} L\left(y_{i}, \sum_{m=1}^{M} \beta_{m} b\left(x_{i} ; \gamma_{m}\right)\right)
β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}^{N} L\left(y_{i}, \beta b\left(x_{i} ; \gamma\right)\right)
minβ,γ∑i=1NL(yi,βb(xi;γ))
前向分步算法的算法框架
输入:训练数据集
T
=
{
(
x
1
,
y
1
)
,
(
x
2
,
y
2
)
…
(
x
N
,
y
N
)
}
\mathrm{T}=\{(\mathrm{x} 1, \mathrm{y} 1),(\mathrm{x} 2, \mathrm{y} 2) \ldots(\mathrm{xN}, \mathrm{yN})\}
T={(x1,y1),(x2,y2)…(xN,yN)},损失函数
L
(
y
,
f
(
x
)
)
\mathrm{L}(\mathrm{y}, \mathrm{f}(\mathrm{x}))
L(y,f(x)),基函数集
{
b
(
x
;
γ
)
}
\{\mathrm{b}(\mathrm{x} ; \gamma)\}
{b(x;γ)}。
输出:加法模型
f
(
x
)
\mathrm{f}(\mathrm{x})
f(x)。
算法步骤:
初始化
f
0
(
x
)
=
0
\mathrm{f}_{0}(\mathrm{x})=0
f0(x)=0;
对于
m
=
1
,
2
,
…
M
\mathrm{m}=1,2, \ldots \mathrm{M}
m=1,2,…M
极小化损失函数
(
β
m
,
γ
m
)
=
arg
min
β
,
γ
∑
i
=
1
N
(
y
i
,
f
m
−
1
(
x
i
)
+
β
b
(
x
i
;
γ
)
)
\left(\beta_{m}, \gamma_{m}\right)=\arg \min _{\beta, \gamma} \sum_{i=1}^{N}\left(y_{i}, f_{m-1}\left(x_{i}\right)+\beta b\left(x_{i} ; \gamma\right)\right)
(βm,γm)=argminβ,γ∑i=1N(yi,fm−1(xi)+βb(xi;γ)),得到参数
β
m
γ
m
\beta_{m} \gamma_{m}
βmγm
更新当前模型:
f
m
(
x
)
=
f
m
−
1
(
x
)
+
β
m
b
(
x
;
γ
m
)
f_{m}(x)=f_{m-1}(x)+\beta_{m} b\left(x ; \gamma_{m}\right)
fm(x)=fm−1(x)+βmb(x;γm)
得到加法模型:
f
(
x
)
=
f
M
(
x
)
=
∑
m
=
1
M
β
m
b
(
x
;
γ
m
)
f(x)=f_{M}(x)=\sum_{m=1}^{M} \beta_{m} b\left(x ; \gamma_{m}\right)
f(x)=fM(x)=∑m=1Mβmb(x;γm)
(ii)前向分布算法和Adaboost算法
Adaboost算法是前向分布算法的特例,这时,模型是基本分类器组成的加法模型,损失函数是指数函数。损失函数取
L
(
y
,
f
(
x
)
)
=
exp
(
−
y
f
(
x
)
)
L(y, f(x))=\exp (-y f(x))
L(y,f(x))=exp(−yf(x))
证明:
假设经过m-1轮迭代,前向分步算法已经得到
f
m
−
1
(
x
)
:
f
m
−
1
(
x
)
=
f
m
−
2
(
x
)
+
α
m
−
1
G
m
−
1
(
x
)
=
α
1
G
1
(
x
)
+
⋯
+
α
m
−
1
G
m
−
1
(
x
)
\begin{aligned} \mathrm{f}_{\mathrm{m}-1}(\mathrm{x}): & f_{m-1}(x)=f_{m-2}(x)+\alpha_{m-1} G_{m-1}(x) \\ &=\alpha_{1} G_{1}(x)+\cdots+\alpha_{m-1} G_{m-1}(x) \end{aligned}
fm−1(x):fm−1(x)=fm−2(x)+αm−1Gm−1(x)=α1G1(x)+⋯+αm−1Gm−1(x)
在第m轮迭代得到
α
m
,
G
m
(
x
)
\alpha_{m}, G_{m}(x)
αm,Gm(x) 和
f
m
(
x
)
f_{m}(x)
fm(x);
目标是使前向分布算法得到的
α
m
,
G
m
(
x
)
\alpha_{m}, G_{m}(x)
αm,Gm(x) 和
f
m
(
x
)
f_{m}(x)
fm(x)在训练数据集上损失最小,即
(
α
m
,
G
m
(
x
)
)
=
arg
min
α
,
G
∑
i
=
1
N
exp
(
−
y
i
(
f
m
−
1
(
x
i
)
+
α
G
(
x
i
)
)
)
\left(\alpha_{m}, G_{m}(x)\right)=\arg \min _{\alpha, G} \sum_{i=1}^{N} \exp \left(-y_{i}\left(f_{m-1}\left(x_{i}\right)+\alpha G\left(x_{i}\right)\right)\right)
(αm,Gm(x))=argα,Gmini=1∑Nexp(−yi(fm−1(xi)+αG(xi)))
进一步:
(
α
m
,
G
m
(
x
)
)
=
arg
min
α
,
G
∑
i
=
1
N
w
ˉ
m
i
exp
(
−
y
i
α
G
(
x
i
)
)
\left(\alpha_{m}, G_{m}(x)\right)=\arg \min _{\alpha, G} \sum_{i=1}^{N} \bar{w}_{m i} \exp \left(-y_{i} \alpha G\left(x_{i}\right)\right)
(αm,Gm(x))=argα,Gmini=1∑Nwˉmiexp(−yiαG(xi))
其中,
w
ˉ
m
i
=
exp
(
−
y
i
f
m
−
1
(
x
i
)
)
\bar{w}_{m i}=\exp \left(-y_{i} f_{m-1}\left(x_{i}\right)\right)
wˉmi=exp(−yifm−1(xi)),
w
ˉ
m
i
\bar{w}_{mi}
wˉmi既不依赖
α
\alpha
α也不依赖G,但依赖于
f
m
−
1
(
x
)
f_{m-1}(x)
fm−1(x),所以每轮迭代都会发生变化。
求基本分类器
G
∗
(
x
)
\mathrm{G}^{*}(\mathrm{x})
G∗(x)
对于任意的
α
>
0
\alpha>0
α>0,是上式最小的G(x)由下式得到:
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} \bar{w}_{m i} I\left(y_{i} \neq G\left(x_{i}\right)\right)
Gm∗(x)=argGmini=1∑NwˉmiI(yi=G(xi)), 其中,
w
ˉ
m
i
=
exp
(
−
y
i
f
m
−
1
(
x
i
)
)
\bar{w}_{m i}=\exp \left(-y_{i} f_{m-1}\left(x_{i}\right)\right)
wˉmi=exp(−yifm−1(xi))
权值计算:
求权值: