机器学习Boosting算法—AdaBoost前向分步解释

算法分析
  在Adaboost算法的示例解释中的算法流程中,给出了分类器权重、分类误差以样本权重的更新公式,这一部分从前向分步算法的角度来解释这些公式的由来。
1) 每个分类器的权重计算公式:

αm=12ln1emem

2)分类误差的计算公式
em=P(Gm(xi)yi)=i=1NwmiI(Gm(xi)yi)

3)样本权重的更新公式
wm+1,i=wmiZmeαmyiGmxi,i=1,2,...N

2前向分步算法与Adaboost

  Adaboost算法其实可以认为是模型为加法模型,损失函数为指数函数,学习算法为前向分布算法的二分类学习方法。

1)加法模型

f(x)=m=1Mβb(x;γm)

2)指数损失函数&优化目标
L(y,f(x))=i=1Nexp(yf(x))

minβm,γmi=1NL(yi,m=1mβmb(xi;γm))

3)前向分步优化算法
  加法模型的优化通常是一个复杂的优化问题,前向分布算法求解这一优化问题的思路是: 从前往后每一步只学习一个基函数及其系数,逐步逼近优化目标函数。

优化目标函数: (βm,γm)=argminβ,γNi=1L(yi,fm1(xi)+βb(xi;γ))

假设经过m-1轮迭代前向分步算法已经得到 fm1(x)

fm1(x)=fm2(x)+αm1Gm1(x)=α1G1(x)+...+αm1Gm1(x)

在第m轮迭代得到 αm,Gm(x)fm(x)
fm(x)=fm1(x)+αmGm(x)

目标是使前向分布算法得到的 αm,Gm(x) 使 fm(x) 在训练集T上的指数损失最小,可以表示为:


(αm,Gm(x))=argminα,Gi=1Nexp(yi(fm1(x)+αmGm(xi))=argminα,Gi=1Nwmiexp[yiαG(xi)]

其中 wmi=exp[yifm1(xi)] ,因为 wmi 既不依赖于 α 也不依赖于G所以与最小化无关。
对于任意的 α>0 ,使上式子最小的 G(x) 可以由下式子得到:
Gm(x)=argminGi=1NwmiI(yiG(xi))

Gm 其实就是Adaboost算法的基分类器,基本思想就是让使加权训练数据分类误差率最小的分类器。

i=1Nwmiexp(yiαG(xi))=yi=Gm(xi)wmieα+yiGm(xi)wmieα=(eαeα)i=1NwmiI(yiG(xi))+eαi=1Nwmi

α 求导并令导数为0,可得到
αm=12ln1emem

其中 em 是分类误差
em=Ni=1wmiI(yiGm(xi))Ni=1wmi=i=1NwmiI(yiGm(xi))



对于样本权重的更新而言,由于 fm(x)=fm1(x)+αmGm(x) ,以及 wmi=exp[yifm1(xi)]
所以可得:
1)fm1(xi)=yilnwmi

2)fm(xi)=yilnwm+1,i

3)wm+1,i=wm,iexp[yiαmGm(x)]

在上式中标注为红色的公式即为,从前向分步的角度推导出来的分类器权重、分类误差以及样本权重更新公式。

你可能感兴趣的:(机器学习)