- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在按照 Viola-Jones 中的描述实现 AdaBoost我自己的启蒙论文。在对算法进行单元测试的过程中,我发现了一些奇怪的行为。这可能只是算法对 jar 装数据的作用很奇怪,或者我可能遗漏了一些东西。我想知道是哪种情况。
首先我有:
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
产生:
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。
关于algorithm - 这种 AdaBoost 行为是否正确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24259785/
我正在运行 3 个不同的模型(随机森林、梯度提升、Ada Boost)和基于这 3 个模型的模型集合。 我设法将 SHAP 用于 GB 和 RF,但不适用于 ADA,但出现以下错误: Exceptio
我一直想知道当它有错误率(完美分类)时,alpha(弱分类器的权重)的值应该是多少,因为 alpha 的算法是 (0.5) * Math.log(((1 - errorRate)/errorRate)
我是一个非技术人员,正在尝试实现图像分类。在本文中,我遇到了 ADA Boost 算法,该算法是在视频关键帧的“特征包”步骤之后实现的。有人可以通俗地解释一下 ADA Boost 的作用以及它的输入和
我正在尝试使用 openCV 库训练一个 adaboost 分类器,用于视觉行人检测。我发现 adaboost 允许选择最相关的特征,这意味着,如果我从图像中获取 50.000 个特征,然后使用它们来
使用 OpenCV 后 boosting我正在尝试实现我自己的 Adaboost 算法版本(查看 here、here 和 the original paper 以获得一些引用)。 通过阅读所有 Mat
我正在使用 Adaboost 来解决分类问题。我们可以做到以下几点: ens = fitensemble(X, Y, 'AdaBoostM1', 100, 'Tree') 现在“树”是学习器,我们可以
我已经实现了 AdaBoost 提升算法的一个版本,我在其中使用决策树桩作为弱学习器。然而,我经常发现,在训练 AdaBoost 算法后,会创建一系列弱学习器,使得该系列在整个集合中重复出现。例如,经
虽然最初不是这样构想的,但标准的Adaboost算法相当于使用指数损失函数进行前向阶段加性模型估计。也就是说,给定一些弱分类器 c1,...,cM 和样本点 x1,...,xN 算法得出的权重: 设置
有没有人对如何在 python 中实现 AdaBoost (Boostexter) 算法有一些想法? 干杯! 最佳答案 看起来好像 sdpy项目有一个 AdaBoost 实现。具体看sdpy/cs/m
我正在尝试通过以下伪代码在 Python 中实现 Adaboost M1: 我已经取得了一些进展,但是,我的“错误预测”数量并没有减少。 我检查了我的权重更新函数,它似乎正确更新了权重。 错误可能出现
就目前情况而言,这个问题不太适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、民意调查或扩展讨论。如果您觉得这个问题可以改进并可能重新开放,visit
我为一个项目实现了 Adaboost,但我不确定我是否正确理解了 adaboost。这是我实现的,请告诉我它是否正确。 我的弱分类器是 8 个不同的神经网络。经过全面训练后,这些预测的准确率都在 70
我已经实现了 AdaBoost 序列算法,目前我正在尝试基于 P. Viola 和 M. Jones 原始论文实现所谓的 Cascaded AdaBoost。不幸的是,我对调整一个阶段的阈值有一些疑问
我正在按照 Viola-Jones 中的描述实现 AdaBoost我自己的启蒙论文。在对算法进行单元测试的过程中,我发现了一些奇怪的行为。这可能只是算法对 jar 装数据的作用很奇怪,或者我可能遗漏了
我一直在努力理解 AdaBoost algorithm没有太大的成功。我正在努力理解 Viola Jones paper on Face Detection举个例子。 您能否用通俗易懂的语言解释 Ad
我想使用 AdaBoost 从大量(~100k)中选择一组好的特征。 AdaBoost 的工作原理是遍历特征集并根据它们的执行情况添加特征。它选择在被现有特征集错误分类的样本上表现良好的特征。 我目前
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
在python中实现的adaboost算法究竟是如何为每个特征分配特征重要性的?我将它用于特征选择,我的模型在基于 feature_importance_ 的值应用特征选择时表现更好。 最佳答案 fe
我正在实现 sklearn AdaBoostClassifier,并绘制了 estimator_errors_,它表示增强型集成中每个估计器的分类误差。 这是情节: 我有几个问题:1. 是测试集还是训
AdaBoost 算法是否有流行且稳定的 C# 库?除了经典的 AdaBoost(例如 GentleBoost、LogitBoost 等)之外,这样的库是否包含不同风格的提升? 最佳答案 OpenCV
我是一名优秀的程序员,十分优秀!