这里主要介绍一下Discrete AdaboostReal Adaboost以及Gentle Adaboost 的实现,详细见文章[3]

说明:

  1. Adaboost中更新每一层的权重可以用所有层的弱分类器吗? 不可以,那就多次叠加了

Discrete Adaboost


详细见文章[3], 其弱分类器的设计可以见文章[1],或决策树等, 详细步骤如下:

  • Input

  • 初始化权重值w(也是概率分布D)

  • For t=0, 1…T:
    1. 使用拥有最小的弱分类器作为

      必须小于0.5,大于0.5需要退出循环。因为大于0.5 则下一步就会大于1,无法正确更新权重
    2. 更新权重
      减小分对的权重, 增大分错的权重(或不变)
    3. 归一化权重值
  • 最终的强分类器

Real Adaboost


步骤
详细见文章[3]

  • Input

  • 初始化权重值w(也是概率分布D)

  • For t=0, 1…T:
    1. 基于一个Criteria挑选最佳的弱分类器
    2. 更新权重
    3. 归一化权重
  • 最终分类器
    b是个阈值默认为0
    或者写成自信度函数


弱分类器的设计

  • 文章[2]中的设计
    1. 在每个特征维上, 将样本特征分为n个空间
    2. 计算每个空间中计算正负样本的权重和
    3. 寻找最佳弱分类器的Criteria如下:

Gentle Adaboost


步骤
详细见文章[3],其实就是基于weight MSE的线性回归

  • Input

  • 初始化权重值w(也是概率分布D)

  • For t=0, 1…T:
    1. 基于最小化weighted MSE挑选最佳的弱分类器
    2. 更新权重
    3. 归一化权重
  • 最终分类器
    b是个阈值默认为0
    或者写成自信度函数

  • 效果
    在人脸检测上,与Real Adaboost相比较,其Recal要好Real Adaboost,但是误检也会高一点

References


  1. Robust Real-Time Face Detection
  2. Fast Rotation Invariant Multi-View Face Detection Based on Real Adaboost
  3. Additive Logistic Regression: A statistic view of boosting