Boosting基本思想
按照监督机器学习算法的模式,希望
L
(
y
,
F
(
x
)
)
L(y,F(x))
L(y,F(x))尽可能的小。
从传动的平方损失函数就是:
希望对所有样本,
m
i
n
1
N
∑
i
=
1
N
(
y
i
−
F
(
x
i
)
)
2
min\frac{1}{N}\sum^N_{i=1}(y_i-F(x_i))^2
minN1∑i=1N(yi−F(xi))2
但是因为
F
(
x
)
F(x)
F(x)是由多个含有不同参数的弱分类器组成,无法像传统的梯度下降的形式进行直接优化,所以:
我们的目标是最小化
m
i
n
(
y
−
F
(
x
)
)
2
min(y-F(x))^2
min(y−F(x))2,y是向量形式,包含所有样本的label。
1.我们构造
f
1
(
x
)
f_1(x)
f1(x),希望
(
y
−
f
1
(
x
)
)
2
(y-f_1(x))^2
(y−f1(x))2尽可能最小
2.我们构造
f
2
(
x
)
f_2(x)
f2(x),希望
(
y
−
f
1
(
x
)
−
f
2
(
x
)
)
2
(y-f_1(x)-f_2(x))^2
(y−f1(x)−f2(x))2尽可能最小
…
一次类推到
f
M
(
x
)
f_M(x)
fM(x)
从上面的构造角度来看,我们发现第
t
+
1
t+1
t+1个分类器的时候,前
t
t
t个分类器是固定的,也就是
t
+
1
t+1
t+1步,我们的目标是
m
i
n
(
y
−
∑
j
=
1
t
f
j
(
x
)
−
f
t
+
1
(
x
)
)
2
min(y-\sum^t_{j=1}f_j(x)-f_{t+1}(x))^2
min(y−∑j=1tfj(x)−ft+1(x))2
我们令
r
=
y
−
∑
j
=
1
t
f
j
(
x
)
r=y-\sum^t_{j=1}f_j(x)
r=y−∑j=1tfj(x)表示我们的残差,而我们的下一个分类器
f
t
+
1
(
x
)
f_{t+1}(x)
ft+1(x)就是尽可能拟合我们的残差
r
r
r.使得:
y
−
∑
j
=
1
t
f
j
(
x
)
−
f
t
+
1
(
x
)
)
2
)
=
(
r
−
f
t
+
1
(
x
)
)
2
<
(
y
−
∑
j
=
1
t
f
j
(
x
)
)
2
y-\sum^t_{j=1}f_j(x)-f_{t+1}(x))^2)=(r-f_{t+1}(x))^2<(y-\sum^t_{j=1}f_j(x))^2
y−∑j=1tfj(x)−ft+1(x))2)=(r−ft+1(x))2<(y−∑j=1tfj(x))2
每次迭代一轮,损失误差就会继续变小。
参考:
https://www.zhihu.com/question/58883125