首先用一个形象的例子来说明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更弱的了,但就是这么弱的分类器,经过组合也产生了伟大的工作。

工作就是实时人脸识别。

【Adaptive Boosting】林轩田机器学习技法的更多相关文章

  1. 【Matrix Factorization】林轩田机器学习技法

    在NNet这个系列中讲了Matrix Factorization感觉上怪怪的,但是听完第一小节课程就明白了. 林首先介绍了机器学习里面比较困难的一种问题:categorical features 这种 ...

  2. 【Deep Learning】林轩田机器学习技法

    这节课的题目是Deep learning,个人以为说的跟Deep learning比较浅,跟autoencoder和PCA这块内容比较紧密. 林介绍了deep learning近年来受到了很大的关注: ...

  3. 【Neural Network】林轩田机器学习技法

    首先从单层神经网络开始介绍 最简单的单层神经网络可以看成是多个Perception的线性组合,这种简单的组合可以达到一些复杂的boundary. 比如,最简单的逻辑运算AND  OR NOT都可以由多 ...

  4. 【Radial Basis Function Network】林轩田机器学习技法

    这节课主要讲述了RBF这类的神经网络+Kmeans聚类算法,以及二者的结合使用. 首先回归的了Gaussian SVM这个模型: 其中的Gaussian kernel又叫做Radial Basis F ...

  5. 【Random Forest】林轩田机器学习技法

    总体来说,林对于random forest的讲解主要是算法概况上的:某种程度上说,更注重insights. 林分别列举了Bagging和Decision Tree的各自特点: Random Fores ...

  6. 【Decision Tree】林轩田机器学习技法

    首先沿着上节课的AdaBoost-Stump的思路,介绍了Decision Tree的路数: AdaBoost和Decision Tree都是对弱分类器的组合: 1)AdaBoost是分类的时候,让所 ...

  7. 【Linear Support Vector Machine】林轩田机器学习技法

    首先从介绍了Large_margin Separating Hyperplane的概念. (在linear separable的前提下)找到largest-margin的分界面,即最胖的那条分界线.下 ...

  8. 【Support Vector Regression】林轩田机器学习技法

    上节课讲了Kernel的技巧如何应用到Logistic Regression中.核心是L2 regularized的error形式的linear model是可以应用Kernel技巧的. 这一节,继续 ...

  9. 【Dual Support Vector Machine】林轩田机器学习技法

    这节课内容介绍了SVM的核心. 首先,既然SVM都可以转化为二次规划问题了,为啥还有有Dual啥的呢?原因如下: 如果x进行non-linear transform后,二次规划算法需要面对的是d`+1 ...

随机推荐

  1. 如何在CRM WebClient UI里使用HANA Live Report

    1. 使用业务角色ANALYTICSPRO登录SAP CRM WebClient UI: 点击新建按钮创建一个新的HANA live report: 类型选择SHL: 弹出窗口,维护report的名称 ...

  2. IOS Git源代码管理工具

    .新建一个“本地仓库” $ git init .配置仓库 >告诉git你是谁 git config user.name lnj >告诉git怎么联系你 git config user.em ...

  3. 四大CPU体系结构ARM、X86/Atom、MIPS、PowerPC

    http://blog.csdn.net/wangjianno2/article/details/52140936 RISC(reduced instruction set computer,精简指令 ...

  4. 虚方法(virsual method)

    虚方法(virsual method)挺起来玄乎其玄,向从未听说过这个概念的人解释清楚是一件相当困难的事情. 因为这是一个很不容易理解的概念,但它在比较抽象的代码里边是不可少的. 那么既然用枯燥的文字 ...

  5. wcf 的 知识点

    1. wcf 的9种 协议

  6. Deep Learning Libraries by Language

    Deep Learning Libraries by Language Tweet         Python Theano is a python library for defining and ...

  7. js中的变量提升(Hoisting)

    <script> function test(){ console.log(a); console.log(foo()); var a=1; function foo(){ return ...

  8. django验证码功能

    1.目的 现在我们一般访问网页都需要输入验证码,比如博客园,有的甚至是通过手机验证码实时登录.这样做的目的主要还是为了防止其他人的恶意访问,比如爬虫,下面就来看看验证码是如何实现的 2.StringI ...

  9. BAT及各大互联网公司2014前端笔试面试题

    很多面试题是我自己面试BAT亲身经历碰到的.整理分享出来希望更多的前端er共同进步吧,不仅适用于求职者,对于巩固复习前端基础更是大有裨益. 而更多的题目是我一路以来收集的,也有往年的,答案不确保一定正 ...

  10. Python 遗传算法实现字符串

    Python 遗传算法实现字符串 流程 1. 初始化 2. 适应度函数 3. 选择 4. 交叉 5. 变异 适应度函数计算方法 计算个体间的差:分别计算每个元素与目标元素的差取平方和 种群:计算总体均 ...