[toc]
集成学习源于弱可学习和强可学习的等价性证明。一个概念是弱可学习的是指存在多项式时间内的学习算法能够学习它,且学习的正确率略高于随机猜测;一个概念强可学习是指存在多项式时间内的学习算法能够学习它,且学习的正确率非常高。Schapire证明了弱可学习和强可学习是等价的,即一个概念是强可学习的充要条件是概念 弱可学习。那么一个很自然的问题就是,已知一组弱学习器,能否将它们转化为强学习器?答案是肯定的,而转化方法就是集成学习。
集成学习主要分为两大类:
1.个体学习器间存在强依赖关系,必须串行生成的序列化方法,代表为Boosting;
2.个体学习器之间不存在强依赖关系、可同时生成的并行化方法,代表为Bagging。
本文主要介绍Boosting的机制及其代表算法Adaboost和Gradient boosting
的过程和推导。
Boosting是先从初始训练集训练出一个弱学习器,再根据弱学习器的学习准确率调整样本的权重,然后基于调整过权重后的样本训练下一个弱学习器,重复以上步骤直到弱学习器数目达到设定值T,最后将这些弱学习器加权结合。
Boosting的代表算法有Adaboosting和Gradient Boosting。
首先介绍二分类任务中Adaboost 的过程和推导。
1.符号:
数据集 {(x1,y1),...(xN,yN))} , yi∈{−1,1}
ki(⋅) :第i个弱学习器;
αi(⋅) :第i个弱学习器的权重;
Cm(⋅) : 前m个弱学习器的线性组合;
ωm :第m次训练中样本的权重向量;
ϵm :第m个弱学习器的加权误差率。
2.过程:
输入:训练集 D={(x1,y1),...,(xN,yN)} ,训练轮数T,基学习算法 Φ
ω1=1N
for t=1,2,…,T do:
kt=Φ(ωt,D)
ϵt=∑yi≠kt(xi)ωti∑i=1Nωti
If ϵt>0.5 ,then break
αt=12ln(1−ϵtϵt)
ωt+1=e−yCt(x) # ωt+1i=e−yiCt(xi),i=1,2,...,N
end for
输出: CT(xi)=α1k1(xi)+...+αTkT(xi)
3.推导
要求解线性组合器
Gradient boosting产生的强学习器依旧是一组弱学习器的线性组合。它采用了steepest descent方法来寻找最优解。
推导:
假设学习器为 F(x)=∑m=0Mβmh(x;am) 。其中 h(⋅) 为给定结构的弱学习器类型 , am 为弱学习器的参数。 βm 为每个弱学习器的权重。M为弱学习器个数。
理想地,我们需要能够使损失函数L在未知样本 (X,Y) 上期望值达到最小的学习器F,即:
接下来用steepest descent的方法:
令 Fm(x) 为第m步求得的学习器。
初始 F0(x)=argminρ∑i=1NL(yi,ρ) ,即样本均值。
在第m步中,假设 Fm−1 已知,则训练损失函数在 xi 的梯度 gm(xi) 为
解决这个问题的办法是用一个基学习器 h(x;am) 拟合梯度方向 。由于基学习器的结构已经给定,若 am 确定则基学习器确定。
有了前进方向,接下来计算前进步长 ρm
算法:
1. F0(x)=argminρ∑i=1NL(yi,ρ)
2.For m=1 to M do:
3. yi^=−[∂L(yi,F(xi))∂F(xi)]F(xi)=Fm−1(xi) ,i=1,…,N
4. am=argmina,β∑i=1N[yi^−βh(xi;a)]2
5. ρm=argminρ∑i=1NL(yi,Fm−1(xi)+ρh(xi;am))
6. Fm(x)=Fm−1(x)+ρmh(x;am)
7.end For