问题标签 [adaboost]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
threshold - Haar-feature 的阈值是通过 Viola-Jones 在他们的论文中描述的唯一方法计算的吗?
我正在实施 Viola-Jones 人脸检测算法,对 haar 特征阈值有点困惑。我正在使用跟随计算 haar-feature 的阈值。脚步:
a) 计算同一位置的所有正(人脸)图像中的 haar 特征值。b) 获取介于最小特征值和平均特征值之间的所有特征值得到列表,MinToAvg = [] c) 对 MinToAvg 中的每个值分类数据(正和负)并得到 pos 的数量。图像(Pos.)它分类为面部和误报数(FP)。d) 特征值被认为是我得到 max(Pos-FP) 的特定特征的阈值。
对于每一轮提升,Haar 特征的阈值保持不变,相反,Viola-Jones 论文中讨论的 Haar 特征阈值随着每一轮提升而变化。
我的问题是:1)我在计算 Haar 特征阈值的方法是否正确?2) 每轮提升的门槛需要改变吗?
我正在使用 Python。
谢谢!
r - 在 R 的 caret 包中使用 adaboost
我使用ada
R 包已经有一段时间了,最近,caret
. 根据文档,caret
的train()
函数应该有一个使用 ada. 但是,当我使用与我的ada()
通话中相同的语法时,插入符号正在向我吐口水。
这是一个使用wine
示例数据集的演示。
我猜这是 train() 需要额外的输入,但抛出的警告并没有给我任何关于缺少什么的提示。此外,我可能缺少一个依赖项,但没有提示应该有什么......
python - 我对梯度提升的实现
目前我正在阅读 Peter Harrington 的“Machine Learning in Action”。我尝试使用书中的一些 AdaBoost 代码来实现 Gradient Boosting。我使用了Trevor Hastie 等人的“统计学习要素”中的伪代码。和弗里德曼的梯度提升算法。我花了很多时间和精力在 python 中实现这个算法,所以如果你能指出我的错误在哪里,我将不胜感激。
是改编自本书的辅助函数。我使用绝对误差损失作为损失函数这是代码:
有些事情是非常错误的,因为预测与实际值相差甚远。如果需要,我将非常乐意提供更多说明。提前致谢。
svm - 在 Adaboost 下使用 SVM
我有一组 svm 分类器,我想在 adaboost 下进行训练。是否有任何可供下载的库可以实现可以帮助我的 adaboost 算法?
opencv - 一个特征的决定如何是我们对象的一个特征?
任何人都可以解释 OpenCV 如何在进行 train_cascade 时对对象的特征做出决定???
adaboost - 如果在 Viola-jones 人脸检测方法中,每一轮 boosting 都选择相同的 Haar 特征怎么办?
我正在实施 Viola-Jones 人脸检测来检测人脸。在使用 Adaboost 进行训练时,boosting round 会选择相同的 haar 特征。例如,如果(x,y,w,h,f,p)
前三轮选择的 Haar-feature 是(0,0,4,2,1,0)
,(1,3,5,2,3,1)
那么(2,4,7,2,4,1)
对于剩下的一轮 boosting 它选择相同的 haar-feature,这样我选择的 Haar-feature 的列表就变成了,
[(0,0,4,2,1,0),(1,3,5,2,3,1),(2,4,7,2,4,1),(1,2,4,8,1,0),(1,2,4,8,1,0),(1,2,4,8,1,0),(1,2,4,8,1,0),(1,2,4,8,1,0)]
.
这里,
x,y = x_y coordinate, w = width of Haar-feature, h = height of Haar-feature, f = feature type, p = parity of Haar-feature.
我的问题:
1)如果每一轮boosting选择相同的Haar-feature,我应该选择下一个具有相对最小误差的Haar-feature。
谢谢!
face-detection - viola jones 对象检测的阈值
我正在尝试执行 Viola 和 Jones 在他们关于快速对象检测的论文中所述的 Adaboost 训练。但是,我不明白如何获得阈值,这些阈值将对 160k 特征中的每一个特征中的人脸与非人脸进行分类。这是您手动设置的阈值吗?或者这是基于某种数学?
有人可以向我解释一下数学吗,非常感谢。
opencv - LBP人脸检测
我想实现一个不需要很多训练时间的人脸检测算法。我查看了 Viola-Jones 方法,但训练时间太长。我阅读了有关 LBP 以及它如何用于人脸检测的信息。我想在 Linux 上运行的开发板上用 C 实现。LBP 似乎更适合在微处理器上使用,因为它使用二进制操作,而不是 viola-jones 使用的浮点操作。
我想避免使用 openCV,因为我需要在开发板上使用 C 来实现它。除了论文之外,是否有任何有用的在线资源可以很好地解释 LBP。如果有人能以非常简单的方式解释 LBP,那就太好了。
algorithm - Adaboost 和前向阶段加法建模
虽然最初不是这样构思的,但标准的 Adaboost 算法等效于使用指数损失函数进行前向阶段加性模型估计。也就是说,给定一些弱分类器c1,...,cM和样本点x1,...,xN来自算法的权重:
- 设置 F_0(x) = 0
- 对于m = 1 到M:设置 (w_m, f_m) = arg min over (w, c_i) of (Loss function(y_i, F_m-1(x_i) + w * c_i(x_i)) 应用于所有 x_i)
- 设置 F_m(x) = F_m-1(x) + w_m * f_m(x)
强分类器是输出 F_M(x)。使这个强学习器与 Adaboost 输出相同的损失函数是
对于在 {-1,1} 中取值的分类器。Hastie, Tibshirani, Friedman, Elements of Statistical Learning , Section 10.4中解释了这一切。
我的问题与前向逐步回归有关。这是一个贪心算法,一旦估计 w_i,它就被固定,然后找到权重 w_i+1,等等。这似乎真的是为处理“独立”弱分类器而设计的,如树桩分类器或树分类器仅限于互斥的独立变量(特征),因此拟合分类器后的残差不再由该分类器解释。
换句话说,要将一组函数拟合到给定的目标函数,我不会拟合第一个,固定该系数,然后找到第二个的最佳系数,保持第一个常数,等等......除非我知道功能是独立的。但这或多或少是算法所做的。
与(根据我的经验)具有更全面分类器(如 SVM 或线性模型)的 Adaboost 相比,这是否解释了 Adaboost 与树桩学习器或决策树的成功?有人可以提供参考吗?- 我没有在文献中看到这方面的讨论。谢谢。
python - 序列化 adaboost 分类器 scikit-learn
我正在尝试使用 scikit-learn AdaBoostClassifier,我正在尝试使用 cPickle 序列化输出分类器以将其保存到数据库或文件中,但是我出现内存不足错误,当我使用 marshal 时,它给了我不可分解的物体。所以,我想知道如何序列化这个学习分类器。
先感谢您