(3)Adaboost算法解释:
AdaBoost算法是模型为加法模型、损失函数为指数函数、学习算法为前向分布算法时的二类分类学习方法。
(i)前向分布算法
考虑加法模型
f(x)=m=1∑Mβmb(x;γm)
其中,基函数:b(x;γm),基函数参数:γm,基函数的系数:βm。
在给定训练数据集及损失函数L(y,f(x))的条件下,学习加法模型f(x)成为经验风险最小化即损失函数最小化问题:
βm,γmmini=1∑NL(yi,m=1∑Mβmb(xi;γm))
算法简化,如果能够从前向后,每一步只学习一个基函数及其系数,逐步逼近上式,及每步只优化损失函数:minβ,γ∑i=1NL(yi,βb(xi;γ))
前向分步算法的算法框架
输入:训练数据集T={(x1,y1),(x2,y2)…(xN,yN)},损失函数L(y,f(x)),基函数集{b(x;γ)}。
输出:加法模型f(x)。
算法步骤:
初始化f0(x)=0;
对于m=1,2,…M
极小化损失函数(βm,γm)=argminβ,γ∑i=1N(yi,fm−1(xi)+βb(xi;γ)),得到参数βmγm
更新当前模型:fm(x)=fm−1(x)+βmb(x;γm)
得到加法模型:f(x)=fM(x)=∑m=1Mβmb(x;γm)
(ii)前向分布算法和Adaboost算法
Adaboost算法是前向分布算法的特例,这时,模型是基本分类器组成的加法模型,损失函数是指数函数。损失函数取L(y,f(x))=exp(−yf(x))
证明:
假设经过m-1轮迭代,前向分步算法已经得到fm−1(x):fm−1(x)=fm−2(x)+αm−1Gm−1(x)=α1G1(x)+⋯+αm−1Gm−1(x)
在第m轮迭代得到αm,Gm(x) 和 fm(x);
目标是使前向分布算法得到的αm,Gm(x) 和 fm(x)在训练数据集上损失最小,即(αm,Gm(x))=argα,Gmini=1∑Nexp(−yi(fm−1(xi)+αG(xi)))
进一步:
(αm,Gm(x))=argα,Gmini=1∑Nwˉmiexp(−yiαG(xi))
其中,wˉmi=exp(−yifm−1(xi)),wˉmi既不依赖α也不依赖G,但依赖于fm−1(x),所以每轮迭代都会发生变化。
求基本分类器G∗(x)
对于任意的α>0,是上式最小的G(x)由下式得到:
Gm∗(x)=argGmini=1∑NwˉmiI(yi=G(xi)), 其中,wˉmi=exp(−yifm−1(xi))
权值计算:
求权值: