zoukankan      html  css  js  c++  java
  • 【Adaptive Boosting】林轩田机器学习技法

    首先用一个形象的例子来说明AdaBoost的过程:

    1. 每次产生一个弱的分类器,把本轮错的样本增加权重丢入下一轮

    2. 下一轮对上一轮分错的样本再加重学习,获得另一个弱分类器

    经过T轮之后,学得了T个弱分类器,再将这T个弱分类器组合在一起,形成了一个强分类器。

    由于每一轮样本的权重都在变化,因此分类器学习的目标函数也产生了变化:

    无论是SVM还是Logistic Regression都可以用这种方式学习,给每个样本增加不同的权重。

    接下来问题就变成了,如何调整样本的权重?目的是什么?

    林介绍了一个原则:

    目的:如果想要多个分类器的组合效果好,多个分类器之间的差异就要大一些

    方法:上一轮分对的样本在下一轮权重降低,上一轮分错的样本在下一轮提高,这样gt和gt+1的对不同样本的分类能力就有区别了

    林接着介绍了一种有实际操作可行性的re-weighting方法。

    分对样本权重乘以错误率,分对样本权重乘以(1-错误率):上张PPT提到了,这样做的结果就是ut+1对于gt分类器来说是random的;但是,本轮对ut+1的学习结果gt+1分类器(如果真的学的靠谱)肯定要优于random的,;这样一来,既保证了差异性,又不至于调整的太过分

    每一轮分类器怎么学习解决了,但是分类器怎么组合还没有提到。

    林介绍了一种Linear Aggregation on the Fly的方法:

    这种方法每一轮学完分类器,分类器前面的权重也就有了:

    对scaling factor取一个ln当成分类器权重

    1)系数为正,表示分类器能起到一定的正确分类作用

    2)系数为0,表示分类器跟随机的效果一样

    3)系数为负,表示分类器判断结果与真实结果更可能是相反的

    如果是工程化编程,这里需要考虑如果error rate=0的情况,做一个特殊的处理。

    最后林从理论上讲了AdaBoost的依据:

    这种方法为什么能行呢?

    1)每次前进一小步,Ein可能会越来越小

    2)样本量足够多,VC bound可以保证Ein与Eout接近(泛化性好)

    林接着介绍了一个AdaBoost的经典例子:

    要想找一个弱分类器,那没有比one-dimension stump更弱的了,但就是这么弱的分类器,经过组合也产生了伟大的工作。

    工作就是实时人脸识别。

  • 相关阅读:
    第十二章学习笔记
    UVa OJ 107 The Cat in the Hat (戴帽子的猫)
    UVa OJ 123 Searching Quickly (快速查找)
    UVa OJ 119 Greedy Gift Givers (贪婪的送礼者)
    UVa OJ 113 Power of Cryptography (密文的乘方)
    UVa OJ 112 Tree Summing (树的求和)
    UVa OJ 641 Do the Untwist (解密工作)
    UVa OJ 105 The Skyline Problem (地平线问题)
    UVa OJ 100 The 3n + 1 problem (3n + 1问题)
    UVa OJ 121 Pipe Fitters (装管子)
  • 原文地址:https://www.cnblogs.com/xbf9xbf/p/4694338.html
Copyright © 2011-2022 走看看