首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >这种AdaBoost行为正确吗?

这种AdaBoost行为正确吗?
EN

Stack Overflow用户
提问于 2014-06-17 09:08:36
回答 1查看 257关注 0票数 4

我正在实现AdaBoost,正如维奥拉-琼斯论文所描述的那样,以供我自己学习。在对算法进行单元测试的过程中,我发现了一些奇怪的行为。有可能,这只是对罐装数据进行奇怪操作的算法,也可能是我遗漏了什么。我想知道是哪一种情况。

首先,我有:

代码语言:javascript
运行
复制
2 instances of A type faces
1 instance  of a B type face
3 instances of noise
--------------------
6 total instances

因此,每幅图像的初始权重为1/6

分类器选择的第一个特征识别A类人脸,但不识别B型人脸,而不识别任何噪声。因此,它存在1/6的一个错误(以及增强分类器中的相关权重)。

然后更新权重(首先,正确分类的图像乘以(error / 1 - error)) == 0.2生成:

代码语言:javascript
运行
复制
A type face weight: 1/30
B type face weight: 1/6
noise image weight: 1/6

然后将权重归一化(和为1):

代码语言:javascript
运行
复制
A type face weight: 1/22
B type face weight: 5/22
noise image weight: 5/22

第二个特征正确选择B型图像,但不选择噪声或A型图像。因此,它有一个1/11 (2/22)错误,这个错误明显小于1/6

由于Viola提出的“默认”阈值(这是在本文后面一节提出级联和调整阈值之前)是权重的一半,并且只有两个权重,而第二个特征的权重更大(因为它有一个较低的误差),那么得到的增强分类器只能正确地对B型人脸进行分类。

直觉上,我期望一个强分类器由一个弱分类器和一个弱分类器组成,分别检测A面和B面。

我甚至愿意接受的是,我只能得到两张中的一张,因为AdaBoost是一种多数派投票算法,在只有2名选民的情况下可能会表现得很奇怪,但我认为,如果只对其中一张人脸进行正确的分类,那么它就会正确地对A类人脸进行分类,因为A类人脸的分类会更多。

换句话说,我期望添加到强分类器中的每个弱分类器都具有较低的权重。

我是错过了一步,还是对过于简单的数据来说,这只是奇怪的行为?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-20 19:35:55

计算中有一个错误。当使用第一个功能时,错误为1/6,因为只有B面被错误分类。在这种情况下,噪声和人脸的分类是正确的。因此,当您根据w(i) = w(i) *β^(1-e(I))更新权重时,只对B面e(i)等于1,对于A面和噪声e(i) = 0。因此,噪声和A脸的权重将被更新:

代码语言:javascript
运行
复制
A type face weight: 1/30
B type face weight: 1/6
noise image weight: 1/30

正常化后:

代码语言:javascript
运行
复制
A type face weight: 1/10
B type face weight: 1/2
noise image weight: 1/10

现在,当您使用第二个特性时,错误为1/5。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24259785

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档