![775a32557606a14ff8f360d8cfdefa43.png](https://img-blog.csdnimg.cn/img_convert/775a32557606a14ff8f360d8cfdefa43.png)
什么是Adaboosting
一、boosting介绍
集成学习(ensemble learning)是通过构建和结合一系列机器学习器来完成学习任务。集成学习应用的领域非常广,比如回归问题、分类问题、特征提取问题等。集成学习可以理解为主要包含两个关键模块,第一个是如何构建若干基本机器学习器,第二个是如何结合这些机器学习器。按照基本机器学习器之间的关系,集成学习分为两大类:(1)基本机器学习器之间存在强依赖(比如需要串行执行),代表算法就是boosting系列算法;(2)基本机器学习器依赖较弱(比如可以并行执行),代表算法为bagging和随机森林算法。
如前文所述,boosting算法是集成学习的一种。boosting算法的核心是构造一个预测函数系列(即基本机器学习分类器),并以一定的方式将它们组合成一个预测函数。组合成的预测函数的准确性大大高于每一个基本预测函数的准确性。
boosting算法中有两个比较重要的概念:
-
- 弱学习器:对于一个训练样本,给出一个仅好于随机猜测的假设,比如这个男人长了胡子,推测他是一个孩子的爸爸。
- 强学习器:根据若干弱分类器,及相应的权重,做出更加合理的假设。
boosting算法就是通过结合若干个弱学习器组成一个强学习器。
二、Adabosting介绍
Adaboosting算法是boosting算法中最著名的算法之一,是adaptive boosting(自适应赠券)的简称。本节我们以分类为例,介绍下Adaboosting算法的原理。
Adaboosting是经过数次迭代,通过将若干弱分类器线形加权得到一个强分类器。每一次使用若分类器多样本进行分类后,根据分类结果对样本重新分配权重,分错的样本会得到较大的权重,基于调整后的样本训练下一个分类器。在每一次迭代时会加入一个新的弱分类器,直到准确率到达要求或者迭代次数达到预先设定的值。
三、Adaboosting的算法流程
训练数据集
-
- 步骤1:初始化样本的权重,初始化的权重相同,均为
。
- 步骤1:初始化样本的权重,初始化的权重相同,均为
-
- 步骤2:通过迭代训练更新样本的权重和弱分类器的权重。设当前迭代到第m轮。
- 步骤2.1:基于分布权重为
的样本,得到弱分类器
,分类器输出为
。
- 步骤2.2:计算弱分类器
在数据集上的错误率
:
- 步骤2.1:基于分布权重为
- 步骤2:通过迭代训练更新样本的权重和弱分类器的权重。设当前迭代到第m轮。
即错误率就是被错误分类的样本权重之和。
-
-
- 步骤2.3:根据分类的结果,计算
的权重因子
。
- 步骤2.3:根据分类的结果,计算
-
-
-
- 步骤2.4:更新训练样本权重:
-
其中
-
- 步骤3:将弱分类器按照权重组合为:
则得到的强分类器为:
-
- 步骤4:若步骤3中的强分类器准确性满足要求,或者迭代次数达到最大值,则退出,否则返回步骤2继续迭代。
四、小结
本文主要简要介绍了Adaboosting 算法,作为基于Adaboosting进行人脸检测的基础。下一篇文章将介绍基于Adaboosting算法的人脸检测。