图像算法研究---adaboost算法具体解释

author author     2022-09-03     796

关键词:

本篇文章先介绍了提升放法和AdaBoost算法。已经了解的可以直接跳过。后面给出了AdaBoost算法的两个样例。附有详细计算过程。

1、提升方法(来源于统计学习方法)

  提升方法是一种经常使用的统计学习方法,应用十分广泛且有效。在分类问题中,它通过改变训练样本的权重,学习多个分类器,并将这些分类器进行线性组合,提高分类的性能。

提升算法基于这样一种思路:对于一个复杂任务来说,将多个专家的推断进行适当的综合所得出的推断。要比当中不论什么一个专家单独的推断好。

实际上。就是“三个臭皮匠顶个诸葛亮”的道理。 
  历史上,Kearns和Valiant首先提出了“强可学习(strongly learnable)”和“弱可学习(weakly learnable)”的概念。指出:在概率近似正确(probably approximately correct,PAC)学习框架中,一个概念(一个分类)。假设存在一个多项式的学习算法可以学习它,而且正确率非常高,那么就称这个概念是强可学习的。一个概念,假设存在一个多项式的学习算法可以学习它,学习的正确率仅比随机推測略好,那么就称这个概念是弱可学习的。非常有趣的是Schapire后来证明强可学习与弱可学习是等价的。也就是说。在PAC学习的框架下,一个概念是强可学习的充分必要条件是这个概念是弱可学习的。 
  这样一来,问题便成为。在学习中。假设已经发现了“弱学习算法”,那么是否能将它提升(boost)为“强学习算法”。大家知道,发现弱学习算法通常要比发现强学习算法easy得多。那么怎样详细实施提升,便成为开发提升方法时所要解决的问题。

关于提升方法的研究非常多,有非常多算法被提出。最具代表性的是AdaBoost算法(AdaBoost algorithm)。 
  对于分类问题而言。给定一个训练样本集,求比較粗糙的分类规则(弱分类器)要比求精确的分类规则(强分类器)easy得多。提升方法就是从弱学习算法出发,重复学习。得到一系列弱分类器。然后组合这些分类器,构成一个强分类器。 
  这样。对于提升算法来说。有两个问题须要回答:一是在每一轮怎样改变训练数据的权值分布。二是怎样将弱分类器组合成为一个强分类器。

2、AdaBoost算法

  对于上一小节末尾提出的提升方法的两个问题。AdaBoost算法的做法是:1、提高那些被前一轮弱分类器错误分类样本的权值。而减少那些被正确分类样本的权值。

2、採用加权多数表决的方法。详细的。加大分类误差率小的弱分类器的权值。使其在表决中起较大的作用,减小分类误差大的弱分类器的权值,使其在表决中起较小的作用。

 
  以下给出AdaBoost算法的公式:

输入:训练数据集,当中;弱学习算法。 
输出:终于分类器G(x)。

 
(1)初始化训练数据的权值分布 
   


   注:第一次训练弱分类器时各个样本的权值是相等的。

 
(2)对m=1,2。…,M     注:这里是个循环 
(a)使用具有权值分布的训练数据集学习,得到基本分类器


(b)计算在训练集上的分类误差率

注::不等函数I值为1.相等函数值为0。 
(c)计算的系数
这里的对数是自然对数。注:显然的调单减函数。这里就解释了为什么对于没有正确分类的数据要加大权值。

 
(d)更新训练数据集的权值分布 


这里,是规范化因子 
它使成为一个概率分布。 
注:自已比較的表达式。会发现这里的就是在对进行归一化工作。

 
(3)构建基本分类器的线性组合

得到终于分类器

注:对于增大分类错误数据的权值和分类误差计算的说明:

1、的系数

表示在终于分类器中的重要性。由的表达式可知。当时, ,而且随着的减小而增大。所以分类误差越小的基本分类器在终于分类器中的作用越大。 
2、计算基本分类器在加权训练数据集上的分类误差率:
,这里。表示第m轮中第i个实例的权值,(由于权值利用进行了归一化)。这表明,在加权的训练数据集上的分类误差是被误分类杨蓓的权值之和,由此可以看出数据权值分布与基本分类器的分类误差率的关系。

3、AdaBoost算法实例

以下提供一个样例帮助大家理解上面的概念。

 
给定例如以下表所看到的的训练数据。

假设弱分类器由产生,其阈值使该分类器在 训练数据集上分类误差率最低。试用AdaBoost算法学习一个强分类器

序号12345678910
x0123456789
y111-1-1-1111-1

解:初始化数据权值分布


对m=1。 
(a)在权值分布为的训练数据上,阈值v取2.5时分类误差率最低。故基本分类器为

(b)显然序号为7、8、9数据产生了错误。在训练数据集上的误差率等于将这3个数据的权值相加,即

注:表示当不等于时 函数I()的值为1,等于时值为0。

这里仅仅有i=7,8,9时函数I值为1。其余为0。 
(c)计算的系数


(d)更新训练数据的权值分布:
分类器在训练数据集上有3个误分点。 
对m=2, 
(a)在权值分布为的训练数据上,阈值v取8.5时分类误差率最低。故基本分类器为

(b)显然序号为4、5、6数据产生了错误。

在训练数据集上的误差率等于将这3个数据的权值相加,即


注:表示当不等于时 函数I()的值为1,等于时值为0。

这里仅仅有i=4,5,6时函数I值为1,其余为0。 
(c)计算的系数


(d)更新训练数据的权值分布:
分类器在训练数据集上有3个误分点。 
对m=3, 
(a)在权值分布为的训练数据上。阈值v取5.5时分类误差率最低,故基本分类器为

(b)显然序号为1、2、3、10的数据产生了错误。

在训练数据集上的误差率等于将这4个数据的权值相加,即


注:表示当不等于时 函数I()的值为1,等于时值为0。这里仅仅有i=1,2,3,10时函数I值为1。其余为0。 
(c)计算的系数

(d)更新训练数据的权值分布:
分类器在训练数据集上有0个误分点。 
于是终于分类器为:

adaboost算法的原理推导及解释(代码片段)

文章目录Adaboost算法的原理推导及解释前置知识:Boosting概述Boosting方法的基本思想Boosting方法的的学习方法核心部分:Adaboost算法的原理推导和解释Adaboost算法的基本思想Adaboost算法的算法流程Adaboost算法的原理推导及解释... 查看详情

向非技术人员解释 AdaBoost 算法

】向非技术人员解释AdaBoost算法【英文标题】:ExplainingtheAdaBoostAlgorithmstonon-technicalpeople【发布时间】:2010-12-2717:40:31【问题描述】:我一直在尝试理解AdaBoostalgorithm,但没有取得多大成功。以ViolaJonespaperonFaceDetection为例,我很难... 查看详情

人脸检测——基于机器学习3adaboost算法

简介主要工作AdaBoost算法的人脸检测算法包含的主要工作:(1)通过积分图快速求得Haar特征;(2)利用AdaBoost算法从大量的特征中选择出判别能力较强的少数特征用于人脸检测分类;(3)提出一个级联结构模型,将若干个弱分... 查看详情

apache hama 是不是适合实现 adaboost 算法?

】apachehama是不是适合实现adaboost算法?【英文标题】:Isapachehamasuitableforimplementingadaboostalghoritm?apachehama是否适合实现adaboost算法?【发布时间】:2014-03-2718:53:54【问题描述】:我有兴趣在hadoop环境中实现adaboost算法。我进行了研... 查看详情

收集adaboost算法的负样本进行人脸检测

】收集adaboost算法的负样本进行人脸检测【英文标题】:collectnegativesamplesofadaboostalgorithmforfacedetection【发布时间】:2014-10-2505:45:16【问题描述】:Viola-Jones的AdaBoost方法在人脸检测中非常流行?我们需要大量正样本和负样本来训练... 查看详情

识别数字,bp神经网络算法,卷积神经网络算法,svm算法,adaboost算法哪种好

看数字图片而定。如果图片较小并且质量还不错,那么通过2层的神经网络就能胜任。对于MNIst数据集(28*28的手写数字),2层神经网络准确率可达99%,svm也有98%以上。以上实现非常简单,matlab已经有现成工具箱。卷积神经网络通... 查看详情

机器学习集成学习(boosting)——adaboost提升算法(理论+图解+公式推导)

...待着您的光临~文章目录​​一、集成学习​​​​二、AdaBoost算法​​​​1.Boosting提升方法​​​​2.AdaBoost算法思想​​​​3.AdaBoost原理解释​​​​4.构造损失函数,求解参数​​​​5.前向分步算法​​2021人工智能领域新... 查看详情

java机器学习库smile实战adaboost

1.AdaBoost算法简介      Boost算法系列的起源来自于PACLearnability(PAC可学习性)。这套理论主要研究的是什么时候一个问题是可被学习的,当然也会探讨针对可学习的问题的具体的学习算法。这套理论是由Valiant提出来的,... 查看详情

adaboost算法

...考技术A链接:1.线性回归总结2.正则化3.逻辑回归4.Boosting5.Adaboost算法转自:原地址提升方法(boosting)是一种常用的统计学习方法,应用广泛且有效。在分类问题中,它通过改变训练样本的权重,学习多个分类器,并将这些分类器... 查看详情

提升算法——adaboost

思路:通过改变训练样本权重,学习多个分类器,并将这些分类器进行线性组合,提高分类器性能。大多数提升方法都是改变训练数据的概率分布(数据的权值)强可学习:存在一个多项式的学习算法能够学习他,并且正确率很... 查看详情

原创sm4password算法源代码接口具体解释

【原创】SM4password算法源代码接口具体解释近期几天想把cryptdb的加密算法换成国产的sm4加密算法。所以花了时间研究了一下sm4的源代码和基本原理,避免忘记,写下这篇博客以作记录。先介绍一下SM4算法,SM4是我们自己国家的一... 查看详情

李航统计学习方法--8.提升方法(详细推导)

目录​​8.1提升方法AdaBoost算法​​​​8.1.1提升方法的基本思路​​​​8.1.2AdaBoost算法​​​​8.2AdaBoost算法的训练误差分析​​​​8.3AdaBoost算法的解释​​​​8.3.1前向分步算法​​​​8.3.2前向分步算法与AdaBoost​​​​8.4... 查看详情

adaboost人脸检测介绍:adaboost算法流程

  本系列文章总共有七篇,目录索引如下:  AdaBoost人脸检测介绍(1):AdaBoost身世之谜  AdaBoost人脸检测介绍(2):矩形特征和积分图  AdaBoost人脸检测介绍(3):AdaBoost算法流程  AdaBoost人脸检测介绍(4):AdaBoost算法举例  AdaBoo... 查看详情

cv系列图像算法研究系列汇总

DATE:2021.7.12【CV系列】图像去雾技术研究【CV系列】图像去噪算法研究(去噪+锐化)【CV系列】图像低照度增强算法研究THEEND! 查看详情

bloomfilter算法具体解释

BloomFilter算法Bloomfilter是由BurtonBloom在1970年提出的,其后在P2P上得到了广泛的应用。Bloomfilter算法可用来查询某一数据是否在某一数据集合中。其长处是查询效率高、可节省空间。但其缺点是会存在一定的错误。因此Bloomfilter算法... 查看详情

adaboost人脸检测介绍:adaboost身世之谜

0.引言学习和使用AdaBoost算法来研究人脸检测有好几个月了,一直以来想对AdaBoost的算法和原理做一个总结,在网上也参考了很多牛人的博客和看了一些专业论文,总是觉得总结的不够全面和详细,因此想对AdaBoost的来龙去脉做一... 查看详情

adaboost算法

     查看详情

retinex图像增强算法的研究

   图像增强方面我共研究了Retinex、暗通道去雾、ACE等算法。其实,它们都是共通的。甚至可以说,Retinex和暗通道去雾就是同一个算法的两个不同视角,而ACE算法又是将Retinex和灰度世界等白平衡理论相结合的产物。下... 查看详情