Ada Boosting (自适应提升,adaptive boosting)
训练多个弱分类器,将弱分类器组合起来,形成强分类器。
一、关于计算学习理论(2010)中的霍夫丁不等式

x:总样本中正样本的比例
y:抽样的样本中正样本的比例

这个公式说明:当总样本足够大,抽样的结果和总样本的结果之间的差,超过误差范围的概率就非常小
二、概率近似正确(probably approximately correct,PCA)
解释了是否可以将从多个角度完成训练的“弱模型”,组合形成一个“强模型”。
弱可学习模型:学习模型仅能完成若干部分样本的识别与分类,其精度略高于随机猜测。
如果已经发现了“弱学习算法”,可将其提升为“强学习算法”。Ada Boosting算法就是将一系列弱分类器组合起来,构成一个强分类器。
三、 Ada Boosting算法核心
1、算法核心
- 弱分类器学习过程中,改变训练数据的权重,提高在上一轮中分类错误样本的权重。
- 将一系列弱分类器组合成强分类器,通过加权多数表决的方法,提高【分类误差小的弱分类器的】权重,同时减小【分类误差大的弱分类器的】权重。
2、算法描述
样本初始化
1)初始化每个训练样本的权重 D1=(w11,w12,…,w1N) 都等于1/N,平均权重
第m个弱分类器训练 (筛出第m-1轮训练的错误并放大)
2)使用具有分布权重Dm的训练数据来学习得到第m个基分类器(也叫弱分类器)。
也就是说经过上一个弱分类器的分类,我们对分类错误的数据给予更高的权重,
这样得到一个新的样本分布,在这个数据集上再次训练新的分类器
最终的分类器
3)重复上述步骤,当分类器个数达到要求,将所有分类器按权重相加。
得到最终的分类器。(权重在每一步单独计算)
四、反推一下公式:
优化目标:

其中,f(xi)是弱分类器,由每一层的分类器Gm(x)线性加权组合得到。

- G(x)其实是给出一个标记位置,一刀切。以二分类为例,就是:

- 弱分类器Gm(x)的权重αm:

其中errm就是弱分类器Gm(x)在训练数据集上的分类误差。 分错的个数/总个数
更新样本权重的公式:

Zm是权重分布的规范化因子,保证所有权值加起来等于1,也就是使得权值分布是一个概率分布。
五、所以训练过程:
-
初始化样本权重,平均权重,1/N
-
更新样本权重
找到错误率最小的弱分类器G,计算其权重α
计算下一轮训练数据的权重W,也就是在这轮的基础上把分类错的样本加大权重,分类对的减小
重复多次(何时停止?后面写了) -
将弱分类器线性组合,得到f(x)
-
得到最终的分类器

停止生成弱分类器 Gm(x)
每新生成一个子分类器后,用新的分类器sign[f(x)]测试已给的训练样本集,
如果分类后的标记集合和训练数据的标记集合的误差个数=0,全部分类正确,或者小于自己定的一个误差个数上限值,自己设定误差下界,就可以终止子分类器的生成,得到最终的分类器sign[f(x)]。
参考博客:
https://blog.csdn.net/u012421852/article/details/80201506

2265

被折叠的 条评论
为什么被折叠?



