首先用一个形象的例子来说明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. avast从隔离区恢复后,仍无法打开被误杀文件的解决方案

    从隔离区中手动恢复后,隔离区中被恢复的文件将不再展示. 此时,如果手动恢复的文件仍无法打开(图标此时也异常),请: 将avast禁用: 将avast启用. 然后尝试重新打开被误隔离并手动恢复的文件.

  2. 金庸的武侠世界和SAP的江湖

    2018年10月30日晚,成都地铁一号线,Jerry手机app上突然弹出来一条金庸去世的新闻. Jerry识字很早,小学一年级就开始蹭我父亲的<射雕英雄传>看了.小时候,我爸工作的车间里有 ...

  3. 起一个node服务

    使用node开发一个应用,非常简单,甚至都不用去配置一堆文件来启动一个webu服务器,直接去官网把这一段示例代码拷过来 https://nodejs.org/en/about/ 中文网没有这个abou ...

  4. 用蒙特卡洛方法计算派-python和R语言

    用蒙特卡洛方法算pi-基于python和R语言 最近follow了MOOC上一门python课,开始学Python.同时,买来了概率论与数理统计,准备自学一下统计.(因为被鄙视过不是统计专业却想搞数据 ...

  5. Ubuntu下几种常用的文本编辑器

    常见的基于控制台的文本编辑器有以下几种: emacs           综合性的GNU emacs 编辑环境 nano              一个类似于经典的pico的文本编辑器,内置了一个pi ...

  6. OpenMP常用函数

    1.设置线程数目 定义如下: void omp_set_num_threads(int num_threads); 通过该函数来指定其后用于并行计算的线程数目,其中参数num_threads就是指定的 ...

  7. 第27章 LTDC/DMA2D—液晶显示—零死角玩转STM32-F429系列

    第27章     LTDC/DMA2D—液晶显示 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.co ...

  8. 配置伪静态(URL重写)

    本篇借鉴了很多文章,这里做个记录. 有时我们的导航栏出现xx.aspx?id=x&name=xx 等等这样,会显得不好看,我们可以利用伪静态来美化我们的导航栏,伪静态的形式可以自己定义,本质还 ...

  9. pycharm中常用设置

    当安装时检查版本过低 首先 pip --help 进入帮助,找到 复制,然后 pip install --disable-pip-version-check 要安装的包 这样就会跳过版本检测. 在py ...

  10. MyCat实现数据库与数据库之间的读写分离

    一.Mycat的安装准备: 1.jdk:要求jdk必须是1.7及以上版本 2.Mysql:推荐mysql是5.5以上版本 3.Mycat: Mycat的官方网站: http://www.mycat.o ...