Adaptive Boosting
Adaptive Boosting也是一种集成模型,课程中以下面的过程为例
老师让同学们对图中的水果进行分类,如同学们说red是苹果,然后老师就将正确分类的水果变小,错误分类的水果变大,这样的话,在下一轮的划分中,同学们就容易从错误的样例中找到“新的正确的”分类方法,最后,将这堂课的所有分类组合起来就是最后的很强的分类方法。Adaptive Boosting就是基于这样的思想。
上一节讲到,多样化
gt
g
t
的一种方法是基于不同数据的,假设此时有数据集
D={(x1,y1),...,(x4,y4)}
D
=
{
(
x
1
,
y
1
)
,
.
.
.
,
(
x
4
,
y
4
)
}
,我们通过bootstrap重新抽样得到了“新的”的数据
{(x1,y1),(x1,y1)...,(x4,y4)}
{
(
x
1
,
y
1
)
,
(
x
1
,
y
1
)
.
.
.
,
(
x
4
,
y
4
)
}
,那么
Ein
E
i
n
可以用权重来表达(反正数据有可能重复,有两个相同数据的话权重为2)
有了上述的背景之后,注意到下图
我们所需要的
gt
g
t
可以由如上定义,之前讲集成模型时,我们知道我们要尽可能地让
gt
g
t
不相同,这样多样化的模型集成起来往往有奇效(回忆一下纵横分割,纵横是两个极端的分类),本算法是这样定义“不相同”的。
假设我们已经有了 gt g t ,那么我们只要让 gt g t 在 ∑Ni=1u(t+1)n[yn≠h(xn)] ∑ i = 1 N u n ( t + 1 ) [ y n ≠ h ( x n ) ] ,在 h(x)=gt(x) h ( x ) = g t ( x ) 时表现很差即可,即如上图黄色部分所示,“差”到和直接丢铜板看正反没有区别,
如红框所示,我们只需要让橙框=绿框即可,最简单的,若在上一轮中
utn
u
n
t
正确分类有6211个,错误分类有1126个,那么只要直接让
即可保证橙框=绿框,更一般地我们用概率来表示(实际上是除了一个分母),我们可以有
而本算法再定义了一个新的指标,即
然后由下式在更新 ut u t
于是我们有,假设此时 ϵ≤12 ϵ ≤ 1 2 ,即本轮 错误率比丢铜板要好,那么我们就有 Δ≥1 Δ ≥ 1 ,于是我们根据这里给出的更新公式就知道错误率提升了,正确率下降了(这里指的是本轮的算法 gt g t 将会在新的 u(n+1)t u t ( n + 1 ) 上表现很差,即有了差别很大的 gt+1 g t + 1 )
之前没有说得太清楚,
gt
g
t
的产生是在给定
D
D
和的时候由某种算法产生的,如果用SVM或者logistic的话,会有
接下来,本文算法作者令权重为 Δ Δ 的自然对数,这样的好处是,当本轮的错误率很高(和丢铜板一样)的话,那么权重会接近0,若错误率很低,接近0的话,此时权重会趋于无穷大,这是合理的。
算法的完整图
从VC bound的角度来看,已经证明了,只要每次的错误率都比丢铜板要好一些些(即小于0.5),那么大概只要
T=O(logN)
T
=
O
(
l
o
g
N
)
次的迭代就可以将
Ein
E
i
n
降到足够小。