加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

算法 – 此AdaBoost行为是否正确?

发布时间:2020-12-16 07:09:05 所属栏目:百科 来源:网络整理
导读:我正在按照 Viola-Jones论文的描述实现AdaBoost,用于我自己的启发.在单元测试过程中我发现了一些奇怪的行为.这可能只是算法在固定数据上奇怪地行动,或者我可能遗漏了一些东西.我想知道它是哪种情况. 首先,我有: 2 instances of A type faces1 instance of a
我正在按照 Viola-Jones论文的描述实现AdaBoost,用于我自己的启发.在单元测试过程中我发现了一些奇怪的行为.这可能只是算法在固定数据上奇怪地行动,或者我可能遗漏了一些东西.我想知道它是哪种情况.

首先,我有:

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的误差(以及增强分类器中的相关权重).

接下来更新权重(首先将正确分类的图像乘以(误差/ 1 – 误差))== 0.2,产生:

A type face weight: 1/30
B type face weight: 1/6
noise image weight: 1/6

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

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-Jones提出的“默认”阈值(这是在我们在论文的后半部分进行级联和调整阈值之前)是权重的一半,并且只有两个权重,第二个特征的权重更大(因为它具有较低的误差)然后得到的增强分类器仅正确地分类B类型的面.

直观地说,我期望强分类器由检测A面的弱分类器和检测B面以检测A面和B面的弱分类器组成.

我甚至愿意接受我只会得到两个中的一个,因为AdaBoost是一种多数投票算法,并且可能只有2个选民表现得很奇怪,但我希望如果它只是正确地分类其中一个面孔然后它会正确地对A面进行分类,因为它们有更多.

换句话说,我希望加入强分类器的每个弱分类器都能连续降低权重.

我错过了一个步骤,还是对于过于简单的数据而言这只是一种奇怪的行为?

解决方法

计算中存在错误.使用第一个特征时,误差为1/6,因为只有B面被错误分类.在这种情况下,噪声和A面被正确分类.因此,当您根据w(i)= w(i)* beta ^(1-e(i))更新权重时,仅针对B面e(i)等于1.对于A面和噪声e(i )= 0.因此,噪声和A面的权重将更新:

A type face weight: 1/30
B type face weight: 1/6
noise image weight: 1/30

正常化后:

A type face weight: 1/10
B type face weight: 1/2
noise image weight: 1/10

现在,当您使用第二个功能时,错误是1/5.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读