知识篇——当AdaBoost遇见Cascade(浅谈级联分类)

AdaBoost,一个比Deep Learning还要久远的名词。
  想当年盘古初开天地...额不是,当年晴空一道霹雳,PVC里蹦出来一个强弱分类器等价问题。揭开了弱分类器向强分类器起义进军的光辉历史。
Cascade,一个一开始盯了半天也没弄明白的单词。
  网络里有他,数据库里有他,电路里也有他,现在机器学习里也看见了他。每个都不一样,但好像又有些联系……
  当AdaBoost遇见Cascade,又会碰撞出什么样奇怪的小火花。

1 - 以Haar为始

找到一种方法,划分一个东西。你会怎么做?

知识篇——当AdaBoost遇见Cascade(浅谈级联分类)_第1张图片
Haar各种特征示例

  看着上面这一大堆黑白块,我想应该不难理解矩形特征这个词——黑白两部分嘛。规则不是特征,但按某个规则可以找到特征的话,当我们有了很多很多很多规则之后……
  没错,这就是Haar特征的思想,每一个小黑白块就是 一种规则,也是 一种特征,也是一个 分类器。不过单独一个这样的分类器当真不敢恭维,试想有啥分类能只靠一劈两半看左右这种粗暴直接的方式区分的...
  所以,他们都是弱分类器,他们能做得不多,就像战场上的士兵不计其数,组合在一起却会有意想不到的变化。( 一篇讲解openCV中Haar特征运用的博客)

2 - 以Boost取意

所谓Boost,促进增援之意。把一堆准确率跟随机数差不多的弱分类器集合在一起变成一个强大的强分类器,这就是Boosting算法。给每一个特征证明自己的机会,改变他们的地位,也改变样本的地位。让士兵和小怪一起进步,最终找到隐藏在人海中的英雄与Boss。这之中广为人知的一种Boost算法就是我们的AdaBoost

3 - 以AdaBoost成形

AdaBoost的原理或者实现并不难理解(传送门:基于AdaBoost的分类问题 & AdaBoost算法小例),只是他宁可放过不可错杀还是宁可错杀不可放过的阈值选择问题让人们备受困扰。想要提高正确率就要降低阈值,错误率也会变高,想要降低错误率就要提高阈值,正确率也会降低。这是一个无比头疼却又无可奈何的问题。

既然如此,就让Cascade出场吧。这种问题,决策树最喜欢了。

4 - 以Cascade扭转乾坤

Cascade即为级联,在网络WAN口级联、数据库信息间级联以及电路连接中的级联等等当中,级联都有一种隐性的意义——一种一对多的关系。
  一是一种输入,一类划分,一个触发,一次动作。
  多是多方参与,多种途径,多个标准,多个答案。
  AdaBoost解决了士兵的众说纷纭,成为了一方名将。而级联的出现,就是要集百家名说成一方之言——一次决断,多方铭鉴。如果我能找到99.9%的目标分类,那错误的分类中哪怕有50%误入结果,20轮之后也将不足为惧:20级的级联足够在99.9%变成99%的过程中,把50%变成0.0001%。
  这就是级联,或者说表现成的决策树。让每一个AdaBoost出身的强分类器依次进行决策,被认为是正确的就将向下传递,错误的则被直接抛弃。再配合权重改变样本的分布,训练,上场,一锤定音。


我们的822,我们的青春
欢迎所有热爱知识热爱生活的朋友和822实验室一起成长,吃喝玩乐,享受知识。

你可能感兴趣的:(知识篇——当AdaBoost遇见Cascade(浅谈级联分类))