Algorithm 向非技术人员解释AdaBoost算法
我一直在努力理解这个问题,但没有成功。我正在努力理解这个例子Algorithm 向非技术人员解释AdaBoost算法,algorithm,language-agnostic,adaboost,Algorithm,Language Agnostic,Adaboost,我一直在努力理解这个问题,但没有成功。我正在努力理解这个例子 你能用外行的术语解释AdaBoost并给出使用它的好例子吗?AdaBoost使用大量训练样本图像(如人脸)来挑选一些好的“特征”/“分类器”。对于人脸识别,分类器通常只是一个矩形像素,具有一定的平均颜色值和相对大小。AdaBoost将研究许多分类器,并根据样本图像找出哪一个是人脸的最佳预测器。在选择了最佳分类器之后,它将继续寻找另一个分类器,直到达到某个阈值,这些分类器组合在一起将提供最终结果 您可能不想与非技术人员共享此部分:),但
你能用外行的术语解释AdaBoost并给出使用它的好例子吗?AdaBoost使用大量训练样本图像(如人脸)来挑选一些好的“特征”/“分类器”。对于人脸识别,分类器通常只是一个矩形像素,具有一定的平均颜色值和相对大小。AdaBoost将研究许多分类器,并根据样本图像找出哪一个是人脸的最佳预测器。在选择了最佳分类器之后,它将继续寻找另一个分类器,直到达到某个阈值,这些分类器组合在一起将提供最终结果 您可能不想与非技术人员共享此部分:),但无论如何它都很有趣。有几种数学技巧可以使AdaBoost快速进行人脸识别,例如,能够将图像的所有颜色值相加并存储在二维数组中,这样,任何位置的值都将是该位置左侧和上方所有像素的总和。此数组可用于非常快速地计算图像中任何矩形的平均颜色值,方法是将左上角的值减去右下角的值,然后除以矩形中的像素数。使用此技巧,您可以快速扫描整个图像,查找匹配或接近特定颜色的不同相对大小的矩形
希望这能有所帮助。Adaboost是一种算法,它将性能较差的分类器(也称为弱学习者)组合成一个性能更高的更大分类器 它是如何工作的?以非常简单的方式:
在Viola和Jones中,每种不同类型的弱学习者都与您可以拥有的4或5种不同的Haar特征中的一种相关联。这是可以理解的。你可以在网上找到的大部分论文重述Viola Jones和Frund Suffar论文,这些论文是AdaBoost在OpenCV应用于人脸识别的基础。它们大多由几个数学领域的复杂公式和算法组成。 以下是可以帮助您的内容(足够简短)——
1—它主要用于对象检测,主要用于人脸检测识别。最流行的、相当好的C++库是英特尔最初的OpenCV。我以OpenCV中的人脸检测部分为例
2-首先,使用样本矩形(“特征”)的级联增强分类器在有人脸(称为正)和无人脸(负)的图像样本上进行训练 从谷歌的一些报纸上: “·Boosting指的是一种通用且可证明有效的方法,通过结合粗略和适度不准确的经验规则,生成非常准确的分类器 ·这是基于这样的观察:找到许多粗略的经验规则比找到一个单一的、高精度的分类器要容易得多 ·首先,我们定义了一个寻找经验法则的算法,我们称之为弱学习者·boosting算法反复调用这个弱学习者,每次在训练数据上为其提供不同的分布(在AdaBoost中) ·每次调用都会生成一个弱分类器,我们必须将所有这些组合成一个分类器,希望它比任何一个规则都更准确。” 在此过程中,扫描图像以确定与每个人脸的特定部分相对应的独特区域。应用了基于复杂计算假设的算法(一旦你理解了主要思想,就不难理解) 这可能需要一周的时间,输出是一个XML文件,其中包含如何快速检测人脸的学习信息,例如,在任何图片上的正面位置(在其他情况下,它可以是任何对象) 3-之后,您将此文件提供给OpenCV人脸检测程序,该程序运行速度非常快,阳性率高达99%(取决于条件)。 如前所述,使用“积分图像”技术可以大大提高扫描速度 最后,这些都是有用的来源——而且
从加利福尼亚大学,2008。“Boosting算法反复调用这个弱学习者,每次给它在训练数据(AdaBoost)上分配一个不同的分布。”我可以使用不同的分类算法而不是不同的分布吗?我好奇1。培养一个学习能力差的人到底意味着什么?例如,如果我正在使用haar特征,什么构成训练?@dicroce,训练一个弱学习者意味着搜索分类规则(Viola-Jones论文中的haar特征),该规则在训练集中实现最小加权误差。也就是说:它正确地分类了大多数重要的示例(即权重较高的示例)。