数据挖掘十大算法翻译——7AdaBoost

来源:互联网 发布:知乎 美国富人加税 编辑:程序博客网 时间:2024/05/18 06:18

1 算法描述

集成学习用于处理使用了多个学习者来解决一个问题的方法。通过一个集成的泛化能力会比单个的学习者要强,因此,集成方法充满了吸引力。由于坚固的理论基础,非常高的准确率,十分简便(Schapire说他只需要10行代码)和广泛的成功的应用,由Yoav Freund 和Robert Schapire所发表的AdaBoost算法是目前最重要的集成方法之一。

令X表示实例空间,y表示类别的标签。假设y={-1,+1}。给定一个弱的或者基础的学习算法和训练集{(x1, y1), (x2, y2), … , (xm, ym)}这里 xi ∈ X and yi ∈ Y (i = 1, … ,m),AdaBoost算法的过程如下:

  • 首先,它给每个训练模型(xi , yi )(i ∈ {1, …
    ,m})相同的权重,把第t词学习回合的权重的分布表示为Dt。通过调用基础的学习算法,这个算法从训练集合和Dt中,生成一个弱的或者基础的学习者ht:X->Y。

  • 然后,它使用训练模型来检测ht,错误分类的模型的权重会被降低,这样就可以得到更新的Dt+1。通过再次调用基础的学习算法,算法从训练集合和Dt+1中AdaBoost生成另外的弱的学习者。

  • 这样的过程被重复T的轮回,最后的模型由T弱学习者的加权投票的多数驱动。其中的这些权重有训练的过程决定。

在实际的情况中,基础的学习算法可能是一个能直接使用权重训练模型的算法。否则权重能够通过根据权重分布Dt来对训练数据进行抽样来利用。AdaBoost的伪代码,如下图表所示:
这里写图片描述
为了处理多个类的分类问题,Freund和Schapire提出了AdaBoost.M1算法[24],它要求弱学习者即使在Adab过程中产生的硬分布上也足够强大。另外的使用Adaboost进行多类分类的方式是Adab.MH[69],它通过将多类任务分解为一系列二元任务来处理这个问题。用于回归的AdaBoost算法也有被研究过。由于AdaBoost的各种变种在过去的十年间,AdaBoost已经成为了基础学习中的一个重要的家庭。

2 算法的影响

正如之前提到的,AdaBoost是最重要的集成方法之一。所以这就难怪在各处都能见到他的影响。在下面的短文中,我们只两件事的介绍,一个是理论上的,一个是应用的。
在1998,Kearn和valiant提出了一个有趣的问题。那些弱的学习算法(学习的准确率也就比瞎猜好上一点)能够被“增强”为一个任意精确的学习算法。换句话说,是否两个复杂的类,弱可学习和强可学习是相同的。Schapire[67]找到了这个问题的答案是,“yes”,它给出的证明是建设性的,这也就是最早的AdaBoost算法。因此,很明显,AdaBoost的诞生是具有理论意义的。AdaBoost提促进了集成方法的大量研究,这些研究在机器学习领域和统计领域都可以看到。值得一起的是AdaBoost论文[24],Schapire和Freund赢得了全球奖,他是2003年在计算机理论科学中最珍贵的将。
AdaBoost和它的变种在很多领域被应用,并且取得了很多成功。举例而言,Viola和Jones[84]结合AdaBoost和cascade用于在人脸识别领域。他们吧三角特征看做弱的学习者,让后通过使用AdaBoost来为弱的学习者的权重加权,他们在人脸识别中取得了显著的特征。为了获得高的准确率和效率,他们使用cascade过程(这超过了本文涉及的范畴)。结果就是,他们建立一个强大的脸部探测仪,在一个466MHz的机器上,384*288的图片的大小中的脸部识别只花费了0.067秒,这比当时最先进的人脸识别机器快15倍的同时还有不错的准确性。这个人脸识别机器被视为过去的十年间的计算机视觉(尤其是人脸识别)中最重大的突破。这就难怪AdaBoost成为了计算机领域中的流行词,并且在如此多的领域被广泛的使用了。

3 未来的研究

有很多有趣的地方值得进一步的研究。这里我们只讨论一个理论上的点和一个实际上的点。

很多研究表明Adaboost常常不过拟合,举例而言,即使在训练错误为零的情况下,AdaBoost的测试错误常常区域下降。很多研究者对此进行了研究,几个理论上的解释被提出,例如[38]Scahpire et al.[68]提出了基于边缘的解释。他们说AdaBoost即使在训练误差已经是零的情况下还是能够提高,这样即使在很多很多循环之后,他还是不过拟合。然而,Breiman[8]表示大的边缘并不一定代表着更好的泛化,者对基于边缘的解释提出了巨大的挑战。最近,Beyzin和Schapire[65]发现了Breiman考虑最小的边缘而不是平均的或者是中间的边缘,这以为这基于边缘的解释依旧有机会存活。如果这个解释成功,在AdaBoost和SVM之间的强大的联系就能被找到。很明显这个话题很值得研究。

很多现实中的应用伴随着高的维度,例如,有很多输出特征。对于这些特征的处理有两种方式:特征简化和特征提取。特征简化的方法通常基于数学投影,他把原来的特征转换到一个适当的特征空间中,在特征减少后,原来的特征的含义通常就没有了。特权提取是直接通过原始的特征中进行选取,因此可以保留原来特征的含义,在很多应用中也比较实用。然而,特征选取方法通常基于启发式规则,它缺少坚实的理论基础。目前的研究主要集中于图像,然而我们认为一般的基于AdaBoost的特征选择技术同样值得研究。

1 0
原创粉丝点击