伊壁鸠鲁(Epicurus)是古希腊一位伟大的哲学家,其哲学思想自成一派。在认识论上,伊壁鸠鲁最核心的观点就是“多重解释原则”(Prinicple of Multiple Explanantions),其内容是当多种理论都能符合观察到的现象时,就要将它们全部保留。这在某种程度上可以看成是机器学习中集成方法的哲学基础。

集成学习架构图(图片来自 Ensemble Methods: Foundations and Algorithms,图 1.9)

集成学习的常用架构如上图所示。在统计学习中,集成学习(ensemble learning)是将多个基学习器(base learners)进行集成,以得到比每个单独基学习器更优预测性能的方法。每个用于集成的基学习器都是弱学习器(weak learner),其性能可以只比随机猜测稍微好一点点。

集成学习的作用就是将这多个弱学习器提升成一个强学习器(strong learner),达到任意小的错误率

在设计算法之前,集成学习先要解决的一个理论问题是集成方法到底有没有提升的效果。虽说三个臭皮匠赛过诸葛亮,但如果皮匠之间没法产生化学反应,别说诸葛亮了,连个蒋琬、费祎恐怕都凑不出来。

在计算学习的理论中,这个问题可以解释成弱可学习问题(weakly learnable)和强可学习问题(strongly learnable)的复杂性是否等价。幸运的是,这个问题的答案是“是”,而实现从弱到强的手段就是提升方法

通俗来说,提升方法就是诸葛丞相手下这样的三个臭皮匠,啊不,裨将的组合:其中的第一位擅用步兵和骑兵,奈何对水战一窍不通,这样的将领用来对付曹操可以,对付孙权就有点儿吃亏了。为了补上第一位将军的短板,第二位裨将在选择时专门挑选了水战功力雄厚的。可惜人无完人,这位水军高手也有严重的偏科,骑在马上还可以,指挥步兵就是去送人头。这两位参谋放在一起,指挥骑兵一点儿问题都没有,但另外两个军种就差点儿意思。

为了查缺补漏,诸葛丞相在第三位裨将的选择上颇费了一番心思,找到了一位步战和水战兼通的将军。这样一来,这三位裨将组成的联席会议就能游刃有余地指挥各种战斗:无论在哪种战法上,专业的将领都能够占到了总体中的多数。虽然每一位将领单独拎出来都有严重的缺陷,可三个组合在一起就能让战斗力大大地提升。

提升方法示意图(图片来自 Elements of Statistical Learning,图 10.1)

上面的解释意在说明,提升方法(boosting)通过改变训练数据的分布来训练不同的弱学习器,再将它们组合成强学习器。虽然不受具体训练方法的限制,但大多数提升算法都会迭代生成与数据分布相关的弱分类器,并将它们以加权组合的方式添加到最终的强分类器中。每当一个新的弱学习器加入后,数据的权重都会被重新分配(reweighting),被错误分类的样本占据更大的权重,被正确分类样本的权重则被相应地削减,这保证了未来的弱学习器会更多地以前车之覆作为后车之鉴。

既然训练数据都是一样的,那么如何在每个轮次中选择不同的权重分配呢?

自适应提升(adaptive boosting, AdaBoost)这个最成功的提升算法中,权重分配的策略是这样的:以二分类任务为例,首先给每个样本赋予相同的权重 wi=1/Nwi=1/N