Adaboost原理及相关推导
提升思想
一个概念如果存在一个多项式的学习算法能够学习它,并且正确率很高,那么,这个概率是强可学习的。一个概念如果存在一个多项式的学习算法能够学习它,并且学习的正确率仅比随机猜测略好,那么,这个概念是弱可学习的。强可学习与弱可学习是等价的。在学习中,如果已经发现了弱学习算法,那么是否能够将其提升为强学习算法呢?、
Adaboost
设训练数据集T={(x1,y1),(x2,y2),(xN,yN)},对数据集进行初始化训练数据的权重分布:

对于m=1,2,3······M,步骤如下:
使用具有权值分布Dm的训练数据集学习,得到基本分类器:

计算Gm(x)在训练数据集上的分类误差率:

计算Gm(x)的系数:


更新训练数据集的权值分布:

这里,Zm是规范化因子:

这里的规范化因子仅仅是要归一化。
基本分类器的线性组合

最终得到的分类器为:

Adaboost中的误差上限
根据误差计算公式,有如下等式:

当G(xi)不等于yi时,yi*f(xi)<0,故exp(-yi*f(xi))>=1,前半部分得证,对于后面的等号,如下:

由此,可以计算得到训练的误差界,如下:


取r1,r2的最小值,记做r

Adaboost算法解释
Adaboost算法是模型为加法模型,损失函数为指示函数,学习算法为前向分布算法时的二分类学习算法
前向分步算法
对于下面加法模型:

其中,b()函数为基函数,bm为基函数系数,rm为基函数的参数
前向分步算法在给定训练数据及损失函数L(y,f(x))的条件下,学习加法模型f(x)成为经验风险极小化,即损失函数极小化问题:

算法简化:如果能够从前向后,每一步只学习一个基函数及其系数,逐步逼近上式,即每一步只优化:

前向分布算法框架
输入:
训练数据集T,损失函数L(y,f(x)),基函数集{b(x;r)}\
输出:
加法模型f(x)
算法步骤:
初始化f0(x)=0
对于m=1,2,·······M
极小化损失损失函数:

得到参数,b和r,在更新当前模型:

Adaboost算法是前向分布算法的特例,模型是由基本分类器组成的加法模型,损失函数是指数函数:

推导与证明
假设经过m-1轮迭代,前向分布算法已经得到fm-1(x):

在第m轮迭代得到am,Gm(x),fm(x),目标是使前向分布算法得到的am和Gm(x)使fm(x)在训练数据集T上的指数损失最小:



wmi既不依赖α也不依赖G,所以与最小化无关。但依赖于fm-1(x),所以,每轮迭代会发生变化。

计算权值:

将G(x)带入

求导计算,得到:

分类错误率:

权值更新:



权值和错误率的关键解释:

二者做除,得到:

从而:

Adaboost原理及相关推导的更多相关文章
- AdaBoost原理详解
		
写一点自己理解的AdaBoost,然后再贴上面试过程中被问到的相关问题.按照以下目录展开. 当然,也可以去我的博客上看 Boosting提升算法 AdaBoost 原理理解 实例 算法流程 公式推导 ...
 - 集成学习之Boosting —— AdaBoost原理
		
集成学习大致可分为两大类:Bagging和Boosting.Bagging一般使用强学习器,其个体学习器之间不存在强依赖关系,容易并行.Boosting则使用弱分类器,其个体学习器之间存在强依赖关系, ...
 - 【Oracle 集群】ORACLE DATABASE 11G RAC 知识图文详细教程之RAC 工作原理和相关组件(三)
		
RAC 工作原理和相关组件(三) 概述:写下本文档的初衷和动力,来源于上篇的<oracle基本操作手册>.oracle基本操作手册是作者研一假期对oracle基础知识学习的汇总.然后形成体 ...
 - Adaboost原理及目标检测中的应用
		
Adaboost原理及目标检测中的应用 whowhoha@outlook.com Adaboost原理 Adaboost(AdaptiveBoosting)是一种迭代算法,通过对训练集不断训练弱分类器 ...
 - SSH深度历险(十一) AOP原理及相关概念学习+xml配置实例(对比注解方式的优缺点)
		
接上一篇 SSH深度历险(十) AOP原理及相关概念学习+AspectJ注解方式配置spring AOP,本篇我们主要是来学习使用配置XML实现AOP 本文采用强制的CGLB代理方式 Security ...
 - SSH深度历险(十) AOP原理及相关概念学习+AspectJ注解方式配置spring AOP
		
AOP(Aspect Oriented Programming),是面向切面编程的技术.AOP基于IoC基础,是对OOP的有益补充. AOP之所以能得到广泛应用,主要是因为它将应用系统拆分分了2个部分 ...
 - SpringBoot启动原理及相关流程
		
一.springboot启动原理及相关流程概览 springboot是基于spring的新型的轻量级框架,最厉害的地方当属自动配置.那我们就可以根据启动流程和相关原理来看看,如何实现传奇的自动配置 二 ...
 - 机器学习之AdaBoost原理与代码实现
		
AdaBoost原理与代码实现 本文系作者原创,转载请注明出处: https://www.cnblogs.com/further-further-further/p/9642899.html 基本思路 ...
 - 深度学习课程笔记(九)VAE 相关推导和应用
		
深度学习课程笔记(九)VAE 相关推导和应用 2018-07-10 22:18:03 Reference: 1. TensorFlow code: https://jmetzen.github.io/ ...
 
随机推荐
- str_pad 和 filter_var
			
这两个函数都是php内置函数,filter_var可直接过滤,比如邮箱,ip等,str_pad可补充字符串eg: 1 => 001
 - AjaxControlToolkit的安装步骤
			
1.下载: 下载地址:http://www.codeplex.com/AtlasControlToolkit/Release/ProjectReleases.aspx 打开网址后找到这些: AjaxC ...
 - Excel导入异常Cannot get a text value from a numeric cell解决及poi导入时注意事项
			
POI操作Excel时偶尔会出现Cannot get a text value from a numeric cell的异常错误. 异常原因:Excel数据Cell有不同的类型,当我们试图从一个数字类 ...
 - 高可用性GRE+IPSEC中心—分支
			
在实际网络运用中我们时常跑GRE+IPSEC来实现我们中心到分支的远程访问回话,这样以来容易配置,而来可用性高,我们知道L2L无论是链路备份还是设备备份,都不是状态备份,当一个点断掉后,用经过几十秒甚 ...
 - 数学--数论--HDU 2802 F(N) 公式推导或矩阵快速幂
			
Giving the N, can you tell me the answer of F(N)? Input Each test case contains a single integer N(1 ...
 - 使用Redis构建文章投票网站
			
涉及到的key: 1. article_time, 记录文章的发布时间,zset结构 2. article_score, 记录文章的得分, zset结构 得分 = 发布时间 + 投票用户数 X 432 ...
 - Nginx入门资料
			
最近在学习Nginx,记录一下自己的学习历程. 1. Nginx开发从入门到精通 (淘宝技术团队编写,值得一看) 2. <深入理解Nginx:模块开发与架构解析> 3. Nginx模块开发 ...
 - E - No Pain No Game   线段树 离线处理 区间排序
			
E - No Pain No Game HDU - 4630 这个题目很好,以后可以再写写.这个题目就是线段树的离线写法,推荐一个博客:https://blog.csdn.net/u01003321 ...
 - .NET Core+QQ第三方授权登录
			
安装包 dotnet add package AspNet.Security.OAuth.QQ 接上文GitHub第三方授权登录 申请过程不介绍了,申请者资料,个人也是可以申请成功的. 这时候有二个参 ...
 - Oracle创建包
			
包: 在公司中,如果业务逻辑比较复杂,需要定义很多过程或者函数.有可能需要定义几十个过程或者函数,这些过程或者函数如果都放到一起,是不是不好管理?我们一般使用包来管理过程或者函数,一个包中可以定义多个 ...