8.1 个体与集成
集成的概念
集成学习(ensemble learning)通过构建并结合多个学习器来完成学习任务,常可获得比单一学习器显著优越的泛化性能。
理论上,集成学习对于弱学习器的集成效果最明显,故许多理论研究都是以弱学习器作为基学习器进行的。
但是实践中往往使用比较强的学习器,这样就可以使用较少的学习器,或者重用常见学习器的一些经验等等。
集成如何获得比单一学习器更好的性能
若集成的结合策略是投票法,则有以下这些情况:
上图说明,要获得好的集成,个体学习器应“好而不同”,即个体学习器在保持一定准确性的同时,要保证不同个体学习器之间有一定的差异,即多样性(diversity)。
注:个体学习器至少不差于弱学习器
假设基分类器的错误率互相独立,则由Hoeffding不等式可知,集成的错误率为:
由式(8.3)可知,随着基学习器数量T的增加,集成的错误率将以指数级下降,最终趋向于0
但是以上的证明是以基学习器的误差相互独立这个假设为前提而进行的,而在现实任务中这显然不可能(个体学习器都是为了解决同一个问题训练出来的,不可能相互独立)。
一般的,个体学习器的准确性和多样性是互有冲突的。
集成学习的研究核心就在于如何产生并结合好而不同的个体学习器
8.2 Boosting
8.2.1 Boosting工作机制
Boosting工作机制如下图所示,其中各个基学习器的对应权重由其误差计算确定,基学习器误差大的则对应的权重小,误差小的则对应权重大
8.2.2 AdaBoost(序列化采样)算法推导
Boosting族算法最著名的代表是AdaBoost:
以下是基于加性模型(additive model)对AdaBoost算法的推导,标准AdaBoost只适用于二分类任务(要运用到其他任务需对AdaBoost进行修改),故以下也是同时基于二分类任务的推导:
AdaBoost的目标是学得T个 h t ( x ) h_t(x) ht(x)和相应的T个 α t \alpha_t αt,得到最小化指数函数损失 l e x p ( H ∣ D ) l_{exp}(H|D) lexp(H∣D)的加性模型 H ( x ) H(x) H(x)
1. 验证指数损失函数是否为AdaBoost分类任务下0/1损失函数的一致性替代函数
注:期望可写成数据分布的累加形式
上面的证明说明了指数函数损失是AdaBoost分类任务下0/1损失函数的一致性替代函数
2. 两个核心公式 H t ( x ) H_t(x) Ht(x)和 l e x p ( H t ) l_{exp}(H_t) lexp(Ht)
在每一轮(轮数为 t t t)中,都是基于最小化 l e x p ( H t ) l_{exp}(H_t) lexp(Ht)的过程(前面已经证明指数函数损失可作为其损失函数的一致性替代函数)求解出对应的 H t ( x ) H_t(x) Ht(x)