精华内容
下载资源
问答
  • 以上是分类器和强分类器的全部内容,在云栖社区的博客、问答、云栖号、人物、课程等栏目也有分类器和强分类器的相关内容,欢迎继续使用右上角搜索按钮进行搜索opencv ,以便于您获取更多的相关知识。

    英文原文地址:http://www.ricoh.com/about/company/technology/voice/column/020.html

     

    将英文原文中的图片搞过来了。

     

     

    动物,包括人类在内,通常是通过判断周边的情况后做出行动,这种反应速度的迅速性和灵活性令人吃惊。大多数生物如一次判断失误,下次便会纠正失误的判断基准。信息识别技术通过借鉴生物的这种灵活的信息处理特征,在信息技术处理方面获得了巨大进步。人类通常以来采取的方法是对需识别的对象做尽可能详细的调查,然后把调查得来的数据与预先获得的数据进行统计、分析,然后得出结论。另外,人们也可以根据持有的经验获得有效的判断效果。例如,对于路面上的一只动物,首先我们根据它的轮廓判断其大小,根据大小判断它可能是一只狗或猫;然后我们接近它,仔细观察它的形状和颜色,发现它既非狗也非猫,而是一只狐狸。这时,我们的经验库里就会增加同样大小的动物也包括狐狸的可能性。各种生物就是通过不断重复这种有机有序的判别方法,做出快速,准确,灵活的反应。

    举一个简单的例子来说明图像识别。如图1所示平面上的一个圆形,传统的方法是尽量采用强分类器来加以识别。假设对象物圆点为(I,J),半径为5,针对标本点(x,y),我们来判断以下公式(1)能否成立。

    (x-I)2+(y-J)2=5弱分类器和强分类器(1)

    弱分类器和强分类器弱分类器和强分类器

    图 1

    以坐标点(I,J)为圆心,半径为5的圆形(着色部分图像)

    从图 1可以看出,图中着色标本点不能完全满足公式(1).例如,尽管点(5,0)完全满足公式1,但是点(4,2)存在误差-离散空间下误差在所难免。但是,就整体来看,尽管存在误差点,仍可把这个图形识别为一个“大致”圆形。那么,如果把图1进一步变形为图2会产生怎样的效果呢。由公式(1)的评价结果来看,仅5个像素的偏移就增大了误差,但从外观上仍可将其识别为圆形。因此,我们仍将图2中的图形视为圆形,借用公式(1)来加以分析就很容易得出答案。总之,能否将其识别为圆形,我们需要提出判定基准,根据实际状况灵活地做出判断。

    弱分类器和强分类器弱分类器和强分类器

    图 2

    由图1中圆形稍微变形后形成的图形

    针对上述单个分类器的性能不高的情况,我们可以考虑重复单纯的是或否判定来获得高精度的识别方法。如图3所示,把作为探索针的任意三条直线:γ1,γ2,γ3, 与上述圆形相交后形成相交区域。如果直线数量少的话,就很难形成圆形。如果有成百上千条直线,就很容易构成圆弧范围。图中用绿色线表示识别边界。

    弱分类器和强分类器弱分类器和强分类器

    图 3

    任意直线γ1,γ2,γ3与图1中圆形相交情况。绿色线部分表示相交区域范围。直线γ3与圆形部分区域重叠。

    把图2中变形后的圆形与这些直线重叠后形成图4所示情况。变形部分是直线γ2 横切图形点A处。由于未改变图形其它部分,对图形的局部条件改变不影响对图4中变形圆形的识别。由此看来,即便是复杂的图形,如具备较多数量的直线,通过重复简单特征识别(有时被称为弱分类器)仍可以达到高度识别的目的。这种识别方法被称作支持向量机算法(Support Vector Machine)或Booting算法。

    弱分类器和强分类器

    图 4

    图形变形及伴随变形的交叉位置移动情况

    让我们来试用新近流行的识别方法,即利用数个弱分类器来进行人脸识别。用于人脸识别的有效而“简单的分类器”究竟是什么样的。人们还是期待使用简便,判定结果纯粹的分类器。让我们参考以下文献来作进一步探讨。

    (P. Viola and M. Jones, “Rapid Object Detection using a Boosted Cascade of Simple Features,” in Conf. On Computer Vision and Pattern Recognition, Hwaii, 2001;http://research.microsoft.com/~viola/Pubs/Detect/violaJones_CVPR2001.pdf(PDF: 194KB))。

    参考文献中建议将哈尔变换(Haar transform)作为核心参数. 哈尔变换用一个包含(1, -1)行列的矩阵表达,如图5所示 (1),(2), 用一组白色和黑色的筛选器表示。例如,把图5-(1)的筛选器放到脸部的眼睛和额头位置,由于额头位置的亮度较眼睛位置的亮度高,符合(1)的浓淡模式。如果额头被头发盖住,那么就不符合(1)的浓淡模式可能性。同样,把同一筛选器放在嘴部和嘴部上方区域,也会产生同样效果。尽管这种判定结果比较单纯,如果准备数千个考虑尺寸和位置的识别特征,然后把每次的识别结果加以组合,是可以得出非常精确的识别结果的。

    弱分类器和强分类器

    图 5

    简单识别特征与可适用的脸部位置。
    筛选器(1)适用于2处不同位置。

    高速识别测试

    但是,以上的测试流程多数是以弱分类器为测试前提,测试流程难免烦琐。换言之,分类器的数量越多,所需识别时间越长。因此人们总是配置部分强分类器。如进行人脸识别时可抽取出共通特征,如不具备共同特征则可将其忽略不计。在图6中展示了用于图5中两种弱分类器组合后形成强分类器的功能。个体功能较弱的分类器通过三处测试结果的组合,可以识别出人类脸部的特征。只有三个浓淡模式同时成立时,可以判定其为人脸特征。换言之,如无此图像则无法做出评价。这种人脸判定流程如图7所示。

    如流程图所示,最初判定时采用强分类器。但是把若干弱分类器组合后就形成功能较强的分类器,并具备相当高的威力。如分类器功能过于强大则使得识别结果时间延长而变得没有意义。较强分类器在于它可以迅速将不具备人脸特征的图像排除。在弱识别特征很多时,通过配置数个简单而强大的分类器,可以迅速提高识别速度。

    弱分类器和强分类器

    图 6

    特征组合增强脸部识别

    弱分类器和强分类器

    图 7

    根据识别器多段处理进行的人脸识别流程图。识别成功后移动到下一图像。

    弱分类器和强分类器

    照片 1

    被识别的“人脸”,比识别现代人脸要多出20倍时间。

    对照片-1中的人脸识别要比现代人脸识别时间多出20倍。这是因为记忆了现代人特征的弱分类器对照片中的若干不同特征的识别分值不够大,还需要增加超过阈值的弱识别特征。

    我们在很多情况下需要根据弱特征做出识别,判断。本次介绍的利用弱分类器进行识别的方法,非常适合模糊判定条件下的应用。 

    以上是弱分类器和强分类器的全部内容,在云栖社区的博客、问答、云栖号、人物、课程等栏目也有弱分类器和强分类器的相关内容,欢迎继续使用右上角搜索按钮进行搜索opencv ,以便于您获取更多的相关知识。

    展开全文
  • 引用指向的引用对象,如果引用对象还有强引用指向它,一旦强引用不在了,垃圾回收时立刻回收该对象,使用场景"容器"(ThreadLocal源码),引用简单的使用代码 public class WeakReferenceDemo { public static ...

    ThreadLocal

    ThreadLocal中有一个Map,为每个线程维护一个副本,保证每个线程中的数据进行隔离,下面我们看一个小程序

    public class ThreadLocalDemo {
    
        static Person p = new Person();
    
        public static void main(String[] args) {
    
            new Thread(() -> {
                try {
                    TimeUnit.SECONDS.sleep(2);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                System.out.println(p.name);
            },"t1").start();
    
            new Thread(() -> {
                try {
                    TimeUnit.SECONDS.sleep(1);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
    
                p.name = "Mary";
            },"t2").start();
        }
    
    
        static class Person {
    
            public String name = "Jack";
        }
    }
    
    

    打印结果是Mary,事实上,我想要的结果还是Jack,不希望在t2线程中对变量的修改影响到p1线程的结果,那么就需要ThreadLocal来进行对线程进行隔离

    public class ThreadLocalDemo2 {
    
        static ThreadLocal<Person> t = new ThreadLocal<>();
    
        public static void main(String[] args) {
            new Thread(() -> {
                try {
                    TimeUnit.SECONDS.sleep(2);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                System.out.println(t.get());
            },"t1").start();
    
            new Thread(() -> {
                try {
                    TimeUnit.SECONDS.sleep(1);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                Person person = new Person();
                person.name = "Mary";
                t.set(person);
            },"t2").start();
    
        }
    
        static class Person {
            public String name = "Jack";
        }
    }
    

    这段代码执行的结果是null,如果不了解的人会好奇,明明是下面的t2先设置了Mary,为什么t1取的是null,那是因为ThreadLocal对线程进行了隔离

    • ThreadLocal的使用场景
      Spring声明式事务,保证数据连接是同一个connection

    强引用

    强引用 new关键字创建的实例,或者是Class.newInstance()创建的对象是强引用,强引用只有在引用设置为null的时候才会被垃圾回收器回收,代码如下

    public class NormalReferenceDemo {
        public static void main(String[] args) throws IOException {
            M m = new M();
            m = null;
            System.gc(); //DisableExplicitGC
    
            System.in.read();
        }
    }
    

    SoftReference 软引用

    软引用只有在内存不够的时候才会被垃圾回收器回收,使用场景 缓存,代码如下

    public class SoftReferenceDemo {
        public static void main(String[] args) {
            SoftReference<byte[]> m = new SoftReference<>(new byte[1024 * 1024 * 10]);
            //m = null;
            System.out.println(m.get());
            System.gc();
            try {
                Thread.sleep(500);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            System.out.println(m.get());
    
            //再分配一个数组,heap将装不下,这时候系统会垃圾回收,先回收一次,如果不够,会把软引用干掉
            byte[] b = new byte[1024 * 1024 * 15];
            System.out.println(m.get());
        }
    }
    
    

    WeakReference 弱引用

    弱引用指向的弱引用对象,如果引用对象还有强引用指向它,一旦强引用不在了,垃圾回收时立刻回收该对象,使用场景"容器"(ThreadLocal源码),弱引用简单的使用代码

    public class WeakReferenceDemo {
        public static void main(String[] args) {
            WeakReference<M> m = new WeakReference<>(new M());
    
            System.out.println(m.get());
            System.gc();
            System.out.println(m.get());
    
    
            ThreadLocal<M> tl = new ThreadLocal<>();
            tl.set(new M());
            tl.remove();
        }
    }
    
    

    ThreadLocal内部是这么执行的,如下图

    在这里插入图片描述

    虚引用

    • 虚引用管理堆外内存

    简单使用代码

    public class PhantomReferenceDemo {
        private static final List<Object> LIST = new LinkedList<>();
        private static final ReferenceQueue<M> QUEUE = new ReferenceQueue<>();
    
    
    
        public static void main(String[] args) {
    
    
            PhantomReference<M> phantomReference = new PhantomReference<>(new M(), QUEUE);
    
    
            new Thread(() -> {
                while (true) {
                    LIST.add(new byte[1024 * 1024]);
                    try {
                        Thread.sleep(1000);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                        Thread.currentThread().interrupt();
                    }
                    System.out.println(phantomReference.get());
                }
            }).start();
    
            new Thread(() -> {
                while (true) {
                    Reference<? extends M> poll = QUEUE.poll();
                    if (poll != null) {
                        System.out.println("--- 虚引用对象被jvm回收了 ---- " + poll);
                    }
                }
            }).start();
    
            try {
                Thread.sleep(500);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
    
        }
    }
    

    执行结果如图:

    在这里插入图片描述

    我们发现取的时候都是null,原因是虚引用被回收会装载到Queue队列里,但是我们自己去取虚引用指向的对象是取不到的,因为这块内存并不属于JVM中的堆内存来管,而是直接开辟了堆外内存,我们通过java去取堆外内存中的对象肯定是取不到的,可以看一下下面的图

    在这里插入图片描述

    展开全文
  • 6. 各类监督学习算法(比如半监督学习、标签噪声学习、多示例...监督学习和强监督学习相比,从学术研究的角度说,其根本难点和技术瓶颈在什么地方? 虽然监督学习这个概念已经被提出很久了,但工业界仍很少使

    https://www.bilibili.com/video/BV1Xt4y127sX
    嘉宾介绍: http://valser.org/article-357-1.html

    6. 各类弱监督学习算法(比如半监督学习、标签噪声学习、多示例学习、迁移学习、PU学习、偏标记学习等),它们之间是否存在一定的联系?是否有可能在理论上构建统一的弱监督机器学习框架?

    一、议题

    1. 弱监督学习和强监督学习相比,从学术研究的角度说,其根本难点和技术瓶颈在什么地方?

    2. 虽然弱监督学习这个概念已经被提出很久了,但工业界仍很少使用,为了提升性能,工业界往往更倾向于直接增加更多的训练数据。因此,弱监督学习从研究到落地的鸿沟主要在哪?

    3. 最近几年的弱监督学习算法大多致力于设计各种无偏或有偏的risk estimator。“无偏”和“有偏”各有什么好处和弊端?除了设计risk estimator,还有哪些大方向是值得进一步探寻的?

    4. 深度学习是一种data hungry的方法,如果想弱化深度神经网络训练对数据质量的依赖,我们可以从哪些方面努力?

    5. 对于弱监督学习,监督信息的强弱与算法性能的好坏在理论上是否存在精确或大致的函数关系?

    6. 各类弱监督学习算法(比如半监督学习、标签噪声学习、多示例学习、迁移学习、PU学习、偏标记学习等),它们之间是否存在一定的联系?是否有可能在理论上构建统一的弱监督机器学习框架?

    各个弱监督算法

    50分钟开始,相关关系、因果关系的证明分析

    1 监督学习中x和y(两个随机变量,标签分布、图像数据分布)存在强烈的依赖关系

    在这里插入图片描述

    2 依赖相关关系 VS 因果关系(有向图代表因果关系)

    制造x条件下y的分布,如果还等于y的分布则不存在因关系

    在这里插入图片描述

    3 outline

    在这里插入图片描述

    4 DA

    在这里插入图片描述
    在这里插入图片描述

    DA的假设(shift)

    在这里插入图片描述

    找域间中 不变性元素的

    在这里插入图片描述

    展开全文
  • 前言 什么是集成学习? 集成学习是一种机器学习方法,在集成学习中,...什么是弱学习和强学习? 概率近似正确(PAC)将学习算法分为弱学习和强学习。PAC的主要思想是用一个训练误差和一个精度ϵ\epsilonϵ来控制泛化...

    前言

    什么是集成学习?
    集成学习是一种机器学习方法,在集成学习中,我们训练多个弱学习器解决同样的问题,并将它们结合起来形成强学习器,获得更好的结果。这里有一个最重要的假设为:当弱学习器被正确组合时,我们可以得到更精确或更鲁棒(即容错能力更强)的模型。集成学习也可以成为元算法

    什么是弱学习和强学习?
    概率近似正确(PAC)将学习算法分为弱学习和强学习。PAC的主要思想是用一个训练误差和一个精度ϵ\epsilon来控制泛化误差。泛化误差大,正确率仅比随机猜测高的称为弱学习,泛化误差小的称为强学习。也就是说,在二分类情况下弱分类器的错误率会高于50%,而强分类器的错误率会低很多。

    如何组合弱学习器?
    组合弱学习器从弱学习器的选择方面分为两类:

    • 同质,用单一的弱学习器
    • 异质,使用不同种类的弱学习器。

    从弱学习器的组合角度分为两类:

    • 序列方法: 下一个模型依赖上一个模型的结果
    • 并行方法:可并行训练,不同模型之间是相互独立的

    这就引出了目前主要的三种组合弱学习的方法:

    • bagging,同质弱学习器,相互独立地并行学习弱学习器,并按照某种确定性的平均过程将它们组合起来。 基于数据随机重抽样的分类分类器构建方法

      自举汇聚法(boostrap aggregating),也成为了bagging方法,boosting方法的基本分类器是已一致的,不同的分类器是并行分类的。bagging是从原始数据集随机选择S个新数据集的一种技术,新数据集的大小与原始数据集一致。每一个数据集都是通过在原始数据集上随机选择一个样本,然后再随机选择一个样本来替代这个样本,所以新数据集中有重复数据,而原始数据集的某些值在新集合中则不再出现。
      在S个数据集建好之后,将某个学习算法分别作用于每一个数据集就得到了S个分类器,选择机制为投票机制,即选择最后的分类结果为分类器结果中最多的类。
      随机森林(random forest)为更先进的bagging方法。

    • boosting,同质弱学习器,以高度自适应的方法顺序的学习弱学习器,下一个模型依赖上一个模型的结果,并按照某种确定性的策略将它们组合起来。

      boosting方法的基本分类器是一致的,但不同的分类器是串行训练的,每个新分类器都根据已训练出的分类器的性能来进行训练。boosting是采用增加错误分类的数据的权重,来集中关注被已有分类器错误分类的那些数据来获得新的分类器。
      由于boosting分类的结果是基于所有分类器的加权求和结果的,因此boosging和bagging不太一样。bagging中的分类权重是相等的,这boosting的权重并不相等。每个权重代表的是其对应分类器在上一轮迭代中的成功度。

    • stacking,异质弱学习器,并行学习,并通过训练一个元模型将它们组合起来,根据不同弱分类器的预测结果输出一个最终的预测结果

    偏差和方差?
    首先我们可以简单的将偏差理解为衡量训练误差的的量,高偏差意味着训练误差大,即欠拟合;将方差理解为衡量泛化误差的量,高方差意味着泛化误差大,即过拟合。
    boosting、stacking方法获得一个具有较低偏差的强学习器。所以,我们通常选择低方差高偏差的弱分类器。
    bagging方法目的是获取较低方差的强学习器,所以,通常选择低偏差高方法的弱分类器。

    以下主要对boosting方法(提升方法)进行讲解。提升方法主要分为两种,一种是用于分类问题的自适应提升(AdaBoost),另一种是使用决策树为弱分类器的提升树。

    提升方法AdaBoost

    AdaBoost的特点

    优点:

    1. 泛化错误率低;
    2. 易编码;
    3. 可以应用在大部分分类器上;
    4. 无参数调整;

    缺点:

    1. 对离群点敏感

    AdaBoost的概要

    1. 在分类学习中,提升方法通过反复修改训练数据的权值分布,构建一系列基本分类器(弱分类器),并将这些基本分类器线性组合,构成一个强分类器。代表性的提升方法是AdaBoost算法(自适应提升),用于二值分类问题。
      AdaBoost模型的弱分类器的线性组合:
      f(x)=i=1MαmGm(x) f(x) = \sum_{i=1}^M\alpha_mG_m(x)
      αm\alpha_m是第m个弱分类器的权值。

    2. AdaBoost算法的特点:
      1)通过迭代每次学习一个基本分类器。
      2)提高那些在前一轮迭代中被误分类的样本点的权重,降低被正确分类的样本点的权重。
      3)将基本分类器的线性组合作为强分类器。
      4)给分类误差率小的基本分类器赋予大的权值,给分类误差率大的基本分类器赋予小的权值,即基本分类器的分类误差率越小,则越重要。
      5)损失函数是指数损失函数

    3. AdaBoost的提升具有有效性,因为在AdaBoost每一轮迭代后,训练样本的分类误差率都会减小。

    4. AdaBoost算法的一个解释是该算法实际是一个前向分步算法的一个实现,在该方法里,模型是加法模型,损失函数是指数函数,算法是前项分布算法。
      每一步中极小化损失函数:
      (βm,γm)=arg minβ,γi=1NL(yi,fm1(xi)+βb(xi;γ)) (\beta_m, \gamma_m) = arg\ min_{\beta, \gamma}\sum_{i=1}^NL(y_i, f_{m-1}(x_i) +\beta b(x_i; \gamma))
      得到参数βm,γm\beta_m, \gamma_m, b(xi;γ)b(x_i; \gamma)为基本分类器,fm1(xi)f_{m-1}(x_i)为前 m-1 个基本分类器的线性组合。

    AdaBoost算法:

    算法流程如下:
    在这里插入图片描述
    AdaBoost算法的示意图。左边是数据集,其中直方图的不同宽度表示每个样例
    上的不同权重。在经过一个分类器之后,加权的预测结果会通过三角形中的
    alpha值进行加权。每个三角形中输出的加权结果在圆形中求和,从而得到最终
    的输出结果
    在这里插入图片描述
    在这里插入图片描述
    该算法的核心步骤如下:

    1. 初始化数据集样本的权重为均匀分布,使用弱分类器训练样本;
    # buildStump为构架弱分类器的函数
    bestStump,error,classEst = buildStump(dataArr,classLabels,D)
    
    1. 根据该弱分类器的错误率重新定义参数弱分类器的权重α\alpha
    # max(error, 1e-16)避免error等于0时,产生溢出
    alpha = float(0.5*log((1.0-error)/max(error,1e-16)))
    
    1. 重新计算数据集样本的权重;
    expon = multiply(-1*alpha*mat(classLabels).T,classEst) 
    D = multiply(D,exp(expon))
    
    1. 计算累计类别估计值
    aggClassEst += alpha*classEst
    
    1. 计算累计错误率值,即多个弱分类器组合的分类错误率
    aggErrors = multiply(sign(aggClassEst) != mat(classLabels).T,ones((m,1)))
    errorRate = aggErrors.sum()/m
    
    1. 若错误率累计值为0或达到指定的迭代次数则结束训练

    自编程实现详见:https://blog.csdn.net/leemusk/article/details/105614426

    展开全文
  • 集成学习

    千次阅读 2016-07-19 14:57:00
    弱学习和强学习 集成学习有效的前提 集成学习分类 AdaBoost Adaboost的算法流程 弱分类器的误差和AdaBoost框架的误差 多属性数据集的处理 Bagging Bagging的策略 模型的偏差和方差 方差和偏差的来源 随机森林 算法 ...
  • 叶武斌老师告诉我,人生赢家的必备条件除了经济基础外,还需要健康的身心和良好的人际关系。卡耐基在《人性的弱点》一...哪种关系对我们的学习、工作更有帮助呢?相信很多人的回答是强连接,然而哈佛大学的一篇论文...
  • [飞桨机器学习]AdaBoost算法 ...Valiant和 Kearns提出了弱学习和强学习的概念 ,识别错误率小于1/2,也即准确率仅比随机猜测略高的学习算法称为弱学习算法;识别准确率很高并能在多项式时间内完成的学
  • CLR 支持两种程序集:命名程序集(weakly named assembly)和强命名程序集(strongly named assembly) 程序集可采用两种方式部署:私有和全局 命名程序集只能以私有方式部署 强命名程序集部署即可私有又全局。 强...
  • Adaboost(自适应提升树)算法原理

    千次阅读 2017-05-14 09:43:19
    1.Adaboost概述 Adaboost的前身的Boosting算法。 Boosting是一种提高任意...Valiant和Kearns提出了弱学习和强学习的概念,识别错误率小于1/2,也即准确率仅比随机猜测略高的学习算法称为弱学习算法;识别准确率很高并能
  • 集成学习源于弱可学习和强可学习的等价性证明。一个概念是弱可学习的是指存在多项式时间内的学习算法能够学习它,且学习的正确率略高于随机...那么一个很自然的问题就是,已知一组弱学习器,能否将它们转化为强学习器?
  • Boosting1 Boosting原理1.1 弱学习与强学习1.2 Boosting思想2 AdaBoost3 梯度提升决策树(GBDT)4 XGBoost5 LightGBM 1 Boosting原理 ...那么什么是弱学习和强学习器呢?历史上Valiant和 Kearns提出了
  • 机器学习

    2021-04-12 09:26:00
    引言:人工智能分为人工智能和强人工智能,而目前的科研基本都是利用机器学习来实现人工智能 传统算法:决策树、聚类、贝叶斯分类、支持向量机、EM、Adaboost等。 按照学习方法分类: 监督学习(分类/回归)—...
  • Boost/adaBoost算法

    千次阅读 2013-10-09 10:07:05
    1.1 Boosing算法起源  Boosting是一种提高...Valiant和 Kearns提出了弱学习和强学习的概念 ,识别错误率小于1 /2,也即准确率仅比随机猜测略高的学习算法称为弱学习算法;识别准确率很高并能在多项式时间内完成的学习算
  • Boosting算法

    千次阅读 2012-03-30 15:01:29
    Boosting算法 一、Boosting算法的发展历史  Boosting是一种提高任意给定学习算法...Valiant和 Kearns提出了弱学习和强学习的概念 ,识别错误率小于1 /2,也即准确率仅比随机猜测略高的学习算法称为弱学习算法;识别
  • 机器学习笔记(五)——集成学习

    千次阅读 2018-08-16 21:54:30
    集成学习的提出,有时也被笼统的称作提升(Boosting)方法,很广泛的应用与分类和回归任务,也就是说我们在学习集成...在进行集成学习器的时候,我们会接触到弱学习和强学习器,那么我们先要搞清楚所有只是架构...
  • 缩进之前的文章主要讲解了OpenCV中与检测相关的内容,包括Haar特征、积分图和检测分类器结构;...缩进在了解AdaBoost之前,先介绍弱学习和强学习的概念: 缩进弱学习:识别错误率小于1/2,即准确率仅比随机猜
  • 人脸检测理论基础

    2013-01-07 15:40:00
    2 弱学习和强学习  随即猜测一个是或否的问题,将会有50%的正确率。如果一个假设能够稍微的提高猜测的正确概率,那么这个假设就是弱学习算法,得到这个算法的过程称为弱学习。  一个假设能够显著的提高猜测的...
  • AdaBoost

    千次阅读 2012-08-12 15:09:11
    AdaBoost 要明确Adaboost是一种算法。介绍一下Adaboost的历史。 ...它的思想起源于Valiant提出的PAC(Probably Approximately Correct)学习模型。Valiant和Kearns提出了弱学习和强学习的概念,识别错误
  • adboost

    千次阅读 2014-07-24 21:30:05
    Ø 要明确Adaboost是一种算法。 Ø 介绍一下Adaboost的历史。   Adaboost的前身的Boosting算法。 ...Boosting是一种提高任意给定学习...Valiant和Kearns提出了弱学习和强学习的概念,识别错误率小于1/2,也即准确率
  • 对偶DualityLagrange dual problem拉格朗日对偶问题对偶和强对偶几何解释geometric interpretationKKT条件限制变化与解的关系perturbation and sensitivity analysis例子广义不等式 Lagrange dual problem拉格朗日...
  • 机器学习是一种实现人工智能的方法,深度学习是一种实现机器学习的技术。 人工智能 在1956年被提出,2012年之前...人工智能分为人工智能和强人工智能::让机器具备观察和感知的能力,可以做到一定程度的理解...
  • adaboost toolbox

    2012-12-03 10:35:14
    要明确Adaboost是一种算法。 Ø 介绍一下Adaboost的历史。   Adaboost的前身的Boosting算法。 ...Boosting是一种提高任意给定学习...Valiant和Kearns提出了弱学习和强学习的概念,识别错误率小于1/2,也即准确率仅比随
  • 一、概念 1、人工智能 人工智能(Artificial intelligence)简称AI。人工智能是计算机科学的一个分支,它企图了解智能...人工智能目前分为人工智能和强人工智能和超人工智能。 人工智能:(ArtificialNarrow ...
  • Adaboost是一种弱学习算法到强学习算法,这里的弱和强学习算法,指的当然都是分类器,首先我们须要简介几个概念。 1:弱学习器:在二分情况下弱分类器的错误率会低于50%。事实上随意的分类器都能够做为弱分类器,...
  • 1.三者关系 人工智能、机器学习、深度学习之间是包含的关系。 人工智能(AI)是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用...通常将人工智能分为人工智能和强人工智能,前者让机器具备观察和

空空如也

空空如也

1 2 3 4
收藏数 75
精华内容 30
关键字:

弱学习和强学习