论文部分内容阅读
Boosting(Schapire,1990)是机器学习领域近二十年发展起来的代表性的学习机制,通过组合那些分类效果仅仅比随意猜测要稍好些的基分类器而构造出精确的集成模型,Boosting构造性的为机器学习和人工智能领域著名的“PAC问题”提供了一种解决思路。基于Boosting机制的典型算法是AdaBoost(Freund&Schhapire,1997),实证研究表明,该算法不仅在训练集上具有很好的自学习能力和拟合优度,其最吸引人之处在于——AdaBoost在测试集上也很少过拟合(Schapire,2002),在许多案例中,研究者发现即使训练误差已经极低,但测试集上的误差还在持续降低,这使得它具有极高的应用价值(Buhlmann,2007)。 AdaBoost虽然具有许多优异的性能,但人们在实践过程中也发现了该算法存在的一个重大问题——AdaBoost对噪声很敏感,如果有异常值或随机噪声混入到了训练集中,AdaBoost的性能就会迅速的变坏,即使这些异常值占总体的比例很少也如此(Ratsch,2001)。然而,实践中大量的例子是包含噪声和异常值的,这些异常值来源于测量仪器的误差、人为的失误或系统的白噪声,尽管研究者在建模以前可以通过数据清洗尽可能的剔除异常点,但是绝对干净的理想数据是很难获取的。由此,如何构造出一种对异常值不敏感的Boosting算法,即对Boosting稳健性的研究就应运而生。 对于Boosting稳健性的研究主要集中在如何改良经典Boosting算法以提升其对异常值的稳健性,典型的算法如Friedman等提出的GentleAdaBoost和LogitBoost(Friedman,1998),该算法在容忍噪声数据方面比AdaBoost要好;类似于LogitBoost的算法还有Collins,Schapire和Singer提出的log-lossBoost;Domingo和Watanabe提出的MAdaBoost(Domingo,Watanabe,2001)等,这些算法的构建思路都类似于LogitBoost。但对于Boosting学习机制为什么容易受到异常值影响的机理、以及如何普遍的提升Boosting的稳健性能目前均缺乏系统的认识和研究。 本文的研究主要集中在如何从损失函数入手构造稳健的Boosting算法。这些算法的建立是基于对Boosting学习机制不稳健(主要集中表现在对噪声敏感)原因的探寻和分析的基础上的。在关于Boosting学习机制不稳健的原因探寻和分析方面,本文主要通过对Boosting学习机制的剖析,指出“误判加权”的学习机制是造成Boosting对异常值敏感的直接原因,在进一步对AdaBoost、LogitBoost等主要Boosting算法损失函数的对比分析基础上,发现损失函数的选取是影响Boosting稳健性的主要因素,由此构造性的提出了对异常值稳健的“改进型Boosting学习机制”,该机制采取“钝感损失、缓慢加权、动态调整”的迭代优化思路,通过逐步温和的动态调整误判样本的权重,既保证了模型的迭代速度和性能,又对异常点具有较好的稳健性。在此指导思想下,对现有的Boosting算法分类问题和回归问题分别构造出带有可变参数的广义的损失函数以及内部可变和外部可变的动态稳健损失函数,并且通过模拟和应用验证评估,发现该算法对含有噪声的数据集具有较好的稳健性。 本文主要的研究成果包括: 1、对AdaBoost现有损失函数进行推广,得到了形式上更为灵活的损失函数,研究表明,这种具有推广形式的损失函数在实用性和准确性上较现有AdaBoost损失函数更为灵活; 2、对于分类问题,特别是二分类问题,针对目前普遍使用的AdaBoost对异常值不稳健的状况,提出了构造“内部可变”的稳健动态损失函数来提升AdaBoost对异常点的抗干扰能力。具体的构造方法包括两种:一是基于Eta-Boost的内部可变稳健动态损失函数的研究;二是基于广义指数类的内部可变稳健动态损失函数的研究,有效的提升了对于异常值的抗干扰能力; 3、同时,本文给出了构建稳健损失函数的第二类方法——“外部可变”的稳健动态损失函数构造法,让数据自适应的在一定的范围内去选择更合适的损失函数; 4、对于回归问题,基于同样的思路,本文也给出了内部和外部可变的稳健动态损失函数构造的方法和如何根据数据本身选择合适的稳健的损失函数具体的算法,模拟和实例都表明,其在测试集上的稳健性要优于现有的回归Boost ng。 对于上述稳健损失函数,本文基于“钝感损失、缓慢加权、动态调整”的迭代优化机制给出了具体的算法,并通过模拟数据和实际数据的验证,证明了上述算法不仅保留了传统Boosting方法的优异性能,同时也能较好的抗异常值干扰。