购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.1.3 高性能的传统机器学习算法

除了全连接神经网络自身的缺陷,以SVM等为代表的核方法的成功,也阻止了神经网络方法的发展,很多原来研究神经网络的学者都转向了研究核方法。

1.Adaboost

OpenCV开源库中使用的人脸检测框架是Paul Viola和Michael J.Jones [2] 提出的人脸检测经典算法(简称V-J框架),它使用的正是Adaboost分类器。在很多情况下,一个弱分类器的精度并不高,Adaboost算法的核心思想是在很多弱分类器中自适应地挑选其中分类精度更高的弱分类器,并将这些弱分类器组合起来实现一个更强的分类器。

举一个最浅显的例子,假如我们要检测一个纯红色的物体,它的颜色为(255,0,0),但现在只有3个灰度级别的分类器,各自对应着R、G、B这3种颜色。我们知道,要检测到该物体必须满足3个条件:R通道的灰度值为255,G、B通道的灰度值为0。此时如果使用任何一个灰度级别的分类器,都无法完成这个任务,会出现很多的误检。例如,红色分类器,它可以学习到R通道的灰度值必须为255,但学习不到G、B通道的信息,所以它会检测到1×255×255种颜色,其中255×254种为误检,检测精度为1/(255×255),约等于0.0000154。

但是,当我们组合3种分类器,并使其各自达到最好的学习状态时,就可以完全学习到R=255、G=0、B=0这样的特征。我们在实际使用这3个分类器的时候,可以使用串联的方法,让图片依次经过3个分类器以进行分类过滤。

虽然每个弱分类器的检测精度不到万分之一,但最终的检测精度可以达到100%,这就是Adaboost算法的核心思想。

Adaboost算法通过弱弱联合实现了强分类器,在使用的时候通常采用顺序级联的方案。在级联分类器的前端,是速度较快、性能较弱的分类器,它们可过滤大部分负样本;在级联分类器的后端,是速度较慢、性能较强的分类器,它们实现计算量更大、精度更高的检测。

2.SVM

SVM是传统分类器中非常优秀的分类器,它通过最大化分类间隔得到分类平面的支持向量,在线性可分的小数据集上有不错的分类精度。SVM可以通过引入核函数将低维映射到高维,从而将很多线性不可分的问题转换为线性可分的问题,在图像分类领域的应用非常广泛。以SVM为分类器和以HOG为特征的行人检测算法,是非常经典的算法。

因为以上种种原因,神经网络没有得到快速发展,停滞了20多年。 +J0BJiyU0b3c02Ek1guK2W6nhffIGqlxLykoYodGdXuF4oMWw4oY6eTo0zg2TKuE

点击中间区域
呼出菜单
上一章
目录
下一章
×