集成学习 boosting与bagging
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
4.
min 设h' arg min,为 M 最小特征集合,若J(H M )(为漏检率与虚警率的加权和)<Jm , hH m
则删掉此特征,当J(H M )低于预测值或循环次数大于预定值M时,停止循环。
最终的预测函数:
H ( x)sign( hm ( x))
m 1
M
2 bagging算法
如果样本被正确分类 其他
t
t 1 t
1 T 1 1 t ht ( x) 2 t (t ln ) h( x) t 1 t 1 t 0 others
T
AdaBoost 人脸检测
特征计算
Haar Basis Functions 特征提取
最终的强分类器
AdaBoost 学习算法 用于特征选择
24
大约有
180,000 个矩形特征
24
弱分类器训练图示说明
f j (x)
如果 fj(x) > X 是脸部图像
False positive
j wi | h j ( xi ) yi |
i
ex
hj ( xi ) 1
False negative
wt (i )
1 min , i 1,...m;J m =max-value(t=1,...,Max),M=0 m
For t = 1, … , T 1. 每个弱分类器h,在权值下进行训练,得到预测函数 ht . T 1 T 2. 计算误判率,选取参数at: ln 1 ) h ( x) ( 1
wn
每幅图像大约有180,000 个特征
fj
误差
1 2 3
h1 h2 h3
更新权值
min
ht
180,000
h180,000
j wi | h j ( xi ) yi |
i
选出最小误差 t , 分类器ht
w1
错误
w2
正确
wi
正确
wn
错误
wt 1,i wt ,i
t 1 t
1.1 AdaBoost系列
• 应用AdaBoost系列主要解决了:两类问题、 多类单标签问题、多类多标签问题、大类 单标签问题,回归问题。它用全部的训练 样本进行学习。
• 注:一般无特别说明,boosting都是指AdaBoost算法
Step 1: 训练集
图像 正样本 =1 负样本=-1
The AdaBoost 算法
( x1 , y1 ), ( x2 , y2 ), ..., ( xn , yn )
Step 2: 初始化权值
1 1 , for yi 0,1, 2m 2l m 和 l分别为正样本和负样本的个数。 w1,i
For t = 1, … , T 1. 归一化权值, wt ,i
wt ,i
n j 1
wt , j
2. 对于第j个特征,在给定权值条件下训练弱分类器 hj ,弱分类器的分类错误率为:
j wi | h j ( xi ) yi |
i
选择有最小错误率 t的若分类器ht。
3. 更新权值:
End 最终的强分类器:
wt 1,i wt ,i
1 ei t
wt ,i t , wt ,i
级联 AdaBoost
1 2
AdaBoost
h1
Feature Select & Classifier 特征集
T
h1
T
n
AdaBoost
h2
AdaBoost
h10
h1 h2
more
100% Detection Rate 50% False Positive
False
False
非人脸
False
离散AdaBoost-AdaBoost.M1
X (训练集) 脸部图像 非脸部图像
定义一个若分类器h j ( x),其学习算法如下: 1, if Pj f j ( x) Pj j h j ( x) 其他 0 其中, j 是阈值 Pj 取不同符号改变不等号方向
弱分类器训练 图示说明
训练集
归一化权重
w1
fj
特征
w2
fj fj
• Bagging算法的主要思想:
• 给定训练集 S (( x1, y1 ),( x2 , y2 ),...( xn , yn )) 和弱学 习算法,对该学习算法进行T次调用,每次调 用时只使用训练集S中的某个子集作为当前训 练集,每一个训练例在某轮训练集中可以多 次或根本不出现。经过T次调用后,可得到T 个不同的分类器啊,当对于一个测试实例工 进行分类时,分别调用这T个分类器,得到T 个分类结果。最后对分类问题把这T个分类结 果中出现次数多的类赋予测试实例x。
原始图像
Haar Basis Functions Haar Basis Functions
大量的特征
级联结构 小部分特征训练
特征选择
Ada 来自百度文库oost 训练
AdaBoost 应用于分类
特征集
学习处理
各种各样的特征
若分类器 1 若分类器 2 若分类器3
人脸 非人脸 最终的强分类器
训练集 +1 正样本 -1 负样本
Boosting and bagging算法
1 Boosting 算法
• Boosting 算法是近十年最有效的算法之一,其主要代表算 法有Adaboost算法和 AdaBoost算法改进等。(记单词) • AdaBoost算法基本思想:
对同一个训练集使用不同的特征训练出不同的弱分类器 , 然后 将这些弱分类器组合起来 , 提升为一个分类能力更强的强分类器 。 算法是通过数据分布的改变来实现的,根据每次弱分类器训练集 中每个样本的分类正确与否,及上次总体分类的准确率,对每个样本 的权值进行调整,降低弱分类器中分类正确的样本的权值,提高弱分 类器分类错误的样本的权值。修改过权值的新数据表集作为下层分类 器的训练集,经过多次迭代得到相应的弱分类器,对训练得到的这些 弱分类器进行融合 , 得到最终的强分类器 。
图像 Step 1: 训练集
TheHAdaBoost算法 J ( )为此特征集合的目标函数值,
m
( x1 , y1 ), ( x2 , y2 ), ... , ( xm , ym )
正样本 =1 负样本=-1 Step 2: 初始化权值 Step 3: 弱分类器训练
min J m 是目前m个特征构成的集合中目标函数的最小值。
Step 1: 训练
( x1 , y1 ), ( x2 , y2 ), ..., ( xn , yn )
Bagging算法
Step 2: 初始化权值
For t = 1, … , T 1. S’ 为从给定训练集S中,随机抽样(有放回). 2. 在S’ 上训练弱学习器,得到第t 轮的预测函数 ht . 3. t = t + 1 .
End 最终输出: 对未知样本X分类时,每个模型 ht 得到一个分类器, 得票最高的未知样本x 的分类
Bagging 和 AdaBoost 区别
• Bagging的训练集是随机的,各训练集是独的, 而Boosting训练集的选择不是独立的,每一次选 择的训练集都依赖于上一次学习的结果。 • Bagging的每个预测函数(即弱假设)没有权重,而 Boosting根据每一次训练的训练误差得到该次预 测函数的权重。 • Bagging的各个预测函数可以并行生成,而 Boosting的只能顺序生成。对于像神经网络这样 极为耗时的学习方法,Bagging可通过并行训练 节省大量时间开销。
如果样本被正确分类 其他
t
t 1 t
h( x)= argmax log t
yY t 1...T
Floatboost 算法
• 向前增加一个弱分类器之后,就需要向后 回馈r。r的取值取决于当前分类性能的稳定 性。这种弱分类器选择的方法相对于前向 搜索来说具有更大的灵活性,因此,增加 弱分类器组合的多样性,相比AdaBoost中 的单调搜索有更优的解集合。
wt ,i
wt ,i
n j 1
wt , j
2. 对于第j个特征,在给定权值条件下训练若分类器 hj ,若分类器的分类错误率为:
j wi | h j ( xi ) yi |
i
如果 t 1/ 2, 设T t 1, 退出循环
3. 更新权值:
End 最终的强分类器:
w , wt 1,i wt ,i t1ei t ,i t wt ,i
h( x) t 1 0
t t
2
t 1
t
t
j wi | h j ( xi ) yi |
t
others
i
选择有最小错误率 t的若分类器ht。
M Wt ( xi )exp(t yi ht ( xi )) 3. 更新权值: Wt 1 ( xi ) , Zt 是使Wt 1 ( xi )的归一化因子。 Zt i1
• AdaBoost.M1 和 AdaBoost.M2 是用来解决 多分类单标签问题
Step 1: 训练集
AdaBoost.M1 算法
Step 2: 初始化权值
( x1 , y1 ), ( x2 , y2 ), ..., ( xn , yn )
w1,i
1 for yi 0,1, 2n
For t = 1, … , T 1. 归一化权值,