机器学习技法(8)--Adaptive Boosting
本节课主要讲解AdaBoost算法。
步骤:
1. 先产生一个表现一般或者不好的分类器,将这个分类器发生的错误进行权重的放大;
2. 对上一轮被方法的错误再一次产生另一个分类器进行学习,再一次产生错误并放大进入下一轮;
3. 重复以上步骤,直到表现令人满意。
先利用bootstrap进行有放回抽样产生新的数据集。
再对错误进行计算和加权。被重复抽取的数据权重大(U大);被单次抽取的数据权重小(U小)。
所以最小化的目标就是加权平均的Ein:
并且,我们也可以通过改变u来产生更加高的弱分类器的差异,从而提高最后融合后的表现。
通过调整权重u让旧的hypothesis表现变差,从而产生新的hypothesis。这个权重就是1/2,也就是二元分类中的随机或者瞎猜的概率。
橙色是犯错的部分,绿色是正确的部分。只要这两个部分相等,就可以得出1/2的结果了。
最后放缩的方法:
通过错误率得到方块t这样的乘子:
可见,通过放大错误,缩小正确可以产生不一样的hypothesis。
但是,一开始的权重u怎么样设置合理呢?等权重。
介绍新的演算法:linear aggregation on the fly,就是算出一个g的同时,决定它的α。
我们的目标是:
给不同gt投票的α的设定可以将每个gt的错误方块t联系起来。
完整的AdaBoost:
AdaBoost的理论证明:
每个弱分类器只要比瞎猜好一点(>1/2),通过这个boost的过程最后的结果就会保证很好。
In action那部分略。
总结: