AdaBoost算法的详细数学推导过程!!

AdaBoost(Adaptive Boosting)

​ 提升(boosting)方法是一种常用的统计学习方法,应用广泛且有效。在分类问题 中,它通过改变训练样本的权重,学习多个分类器,并将这些分类器进行线性组合,提高分类的性能

​ 对于分类问题而言,给定一个训练样本集,求比较粗糙的分类规则(弱分类器)要 比求精确的分类规则(强分类器)容易得多。提升方法就是从弱学习算法出发,反复学习,得到一系列弱分类器(又称为基本分类器),然后组合这些弱分类器,构成一个强分类器。大多数的提升方法都是改变训练数据的概率分布(训练数据的权值分布), 针对不同的训练数据分布调用弱学习算法学习一系列弱分类器。

​ 这样,对提升方法来说,有两个问题需要回答:一是在每一轮如何改变训练数据的权值或概率分布;二是如何将弱分类器组合成一个强分类器。关于第1个问 题,AdaBoost的做法是,提高那些被前一轮弱分类器错误分类样本的权值,而降低那些被正确分类样本的权值。这样一来,那些没有得到正确分类的数据,由于其权值的 加大而受到后一轮的弱分类器的更大关注。于是,分类问题被一系列的弱分类器"分而泊之"。至于第2个问题,即弱分类器的组合,AdaBoost采取加权多数表决的方法。 具体地,加大分类误差率小的弱分类器的权值,使其在表决中起较大的作用:减小分类误差率大的弱分类器的权值,使其在表决中起较小的作用。

​ AdaBoost 算法还有另一个解释, 即可以认为 AdaBoost 算法是模型为**加法模型、 损失函数为指数函数、 学习算法为前向分步算法时的二类分类学习方法。**

-------------------------------------------------------------------------------------------------------------------------------------

输入:线性可分训练数据集 T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , … , ( x N , y N ) } T= \{(x_1,y_1), (x_2,y_2),…, (x_N,y_N)\} T={(x1,y1),(x2,y2),,(xN,yN)}

​ 其中, x i ∈ X = R n , y i ∈ Y = { − 1 , + 1 } , i = 1 , 2 , … , N x_i∈X=R^n,y_i∈Y=\{-1,+1\}, i = 1,2,…,N xiX=Rn,yiY={1,+1},i=1,2,,N;弱学习算法

输出: 最终分类器 G ( x ) G(x) G(x) f ( x ) = s i g n ( G ( x ) ) f(x)=sign(G(x)) f(x)=sign(G(x))

优化问题:(损失函数为指数损失函数,即: L ( y , f ( x ) ) = e x p [ − y f ( x ) ] L(y, f(x)) = exp[-yf(x)] L(y,f(x))=exp[yf(x)]

目标是使前向分步算法得到的 α m \alpha_m αm G m ( x ) G_m(x) Gm(x) 使 f m ( x ) f_m(x) fm(x) 在训练数据集T 上的指数损失最小:
( α m , G m ( x ) ) = a r g   m i n α , G ∑ i = 1 N e x p [ − y i ( f m ( x i ) ) ] = a r g   m i n α , G ∑ i = 1 N e x p [ − y i ( f m − 1 ( x i ) + α G ( x i ) ) ] (\alpha_m,G_m(x))=arg\ \underset{\alpha,G}{min}\sum_{i=1}^Nexp[-y_i(f_{m}(x_i))]\\ =arg\ \underset{\alpha,G}{min}\sum_{i=1}^Nexp[-y_i(f_{m-1}(x_i)+\alpha G(x_i))] (αm,Gm(x))=arg α,Gmini=1Nexp[yi(fm(xi))]=arg α,Gmini=1Nexp[yi(fm1(xi)+αG(xi))]
上面损失函数又可以写为:
( α m , G m ( x ) ) = a r g   m i n α , G ∑ i = 1 N e x p [ − y i ( f m − 1 ( x i ) + α G ( x i ) ) ] = a r g   m i n α , G ∑ i = 1 N w ^ m i e x p [ − y i α G ( x i ) ] (\alpha_m,G_m(x))=arg\ \underset{\alpha,G}{min}\sum_{i=1}^Nexp[-y_i(f_{m-1}(x_i)+\alpha G(x_i))]\\ =arg\ \underset{\alpha,G}{min}\sum_{i=1}^N \hat w_{mi}exp[-y_i \alpha G(x_i)]\\ (αm,Gm(x))=arg α,Gmini=1Nexp[yi(fm1(xi)+αG(xi))]=arg α,Gmini=1Nw^miexp[yiαG(xi)]
这里
w ^ m i = e x p [ − y i f m − 1 ( x ) ] \hat w_{mi}=exp[-y_if_{m-1}(x)] w^mi=exp[yifm1(x)]

-------------------------------------------------------------------------------------------------------------------------------------

前向分布算法学习的是加法模型,当基函数为基本分类器时,该加法模型等价于AdaBoost的最终分类器
f ( x ) = ∑ m = 1 M α m G m ( x ) f(x)=\sum_{m=1}^M \alpha_mG_m(x) f(x)=m=1MαmGm(x)
第m-1轮迭代:
f m − 1 ( x ) = f m − 2 ( x ) + α m − 1 G m − 1 ( x ) = α 1 G 1 ( x ) + α 2 G 2 ( x ) + . . . + α m − 1 G m − 1 ( x ) f_{m-1}(x)=f_{m-2}(x)+\alpha_{m-1}G_{m-1}(x)\\ =\alpha_1G_1(x)+\alpha_2G_2(x)+...+\alpha_{m-1}G_{m-1}(x) fm1(x)=fm2(x)+αm1Gm1(x)=α1G1(x)+α2G2(x)+...+αm1Gm1(x)
第m轮迭代:
f m ( x ) = f m − 1 ( x ) + α m G m ( x ) = α 1 G 1 ( x ) + α 2 G 2 ( x ) + . . . + α m G m ( x ) f_{m}(x)=f_{m-1}(x)+\alpha_{m}G_{m}(x)\\ =\alpha_1G_1(x)+\alpha_2G_2(x)+...+\alpha_{m}G_{m}(x) fm(x)=fm1(x)+αmGm(x)=α1G1(x)+α2G2(x)+...+αmGm(x)
-------------------------------------------------------------------------------------------------------------------------------------

AdaBoost算法流程

输入:训练数据集 T = { ( x 1 , y 1 ) 、 ( x 2 , y 2 ) , . . . , ( x N , y N ) } T=\{(x_1,y_1)、(x_2,y_2),...,(x_N,y_N)\} T={(x1,y1)(x2,y2),...,(xN,yN)}其中 x i ∈ X ⊂ R n , y i ∈ Y = { − 1 , + 1 } x_i∈X\subset R^n, y_i∈ Y = \{-1, +1 \} xiXRn,yiY={1,+1};弱学习算法;

输出:最终分类器G(x)。

(1)初始化训练数据的权值分布
D 1 = ( w 11 , w 12 , . . . , w 1 i , . . . , w 1 N ) ,     w 1 i = 1 N ,     i = 1 , 2 , . . . , N D_1=(w_{11},w_{12},...,w_{1i},...,w_{1N}),\ \ \ w_{1i}=\frac1N,\ \ \ i=1,2,...,N D1=(w11,w12,...,w1i,...,w1N),   w1i=N1,   i=1,2,...,N
(2)对 m = 1 , 2 , . . . , M m=1,2,...,M m=1,2,...,M

​ (a)使用具有权值分布 D m D_m Dm的训练数据集学习,得到基本分类器
G m ( x ) : X → { − 1 ,   + 1 } G_m(x):X→\{-1,\ +1\} Gm(x):X{1, +1}
​ (b)计算 G ( x ) G(x) G(x)在训练数据集上的分类误差率
e m = ∑ i = 1 N P ( G m ( x i ) ≠ y i ) = ∑ i = 1 N w m i I ( G m ( x i ) ≠ y i ) e_m=\sum_{i=1}^NP(G_m(x_i)≠y_i)=\sum_{i=1}^Nw_{mi}I(G_m(x_i)≠y_i) em=i=1NP(Gm(xi)=yi)=i=1NwmiI(Gm(xi)=yi)
​ (c)计算 G m ( x ) G_m(x) Gm(x)的系数
α m = 1 2 l o g 1 − e m e m \alpha_m=\frac12log\frac{1-e_m}{e_m} αm=21logem1em
​ (d)更新训练数据集的权值分布
D m + 1 = ( w m + 1 , 1 , w m + 1 , 2 , . . . , w m + 1 , i , . . . , w m + 1 , N ) w m + 1 , i = w m i Z m e x p ( − α m y i G m ( x i ) ) , i = 1 , 2 , . . . , N Z m = ∑ i = 1 N e x p ( − α m y i G m ( x i ) ) 是规范化因子 , 它使得 D m + 1 成为一个概率分布 D_{m+1}=(w_{m+1,1},w_{m+1,2},...,w_{m+1,i},...,w_{m+1,N})\\ \\ w_{m+1,i}=\frac{w_{mi}}{Z_m}exp(-\alpha_my_iG_m(x_i)),i=1,2,...,N\\ \\ Z_m=\sum_{i=1}^Nexp(-\alpha_my_iG_m(x_i))是规范化因子,它使得D_{m+1}成为一个概率分布 Dm+1=(wm+1,1,wm+1,2,...,wm+1,i,...,wm+1,N)wm+1,i=Zmwmiexp(αmyiGm(xi)),i=1,2,...,NZm=i=1Nexp(αmyiGm(xi))是规范化因子,它使得Dm+1成为一个概率分布
(3)构建基本分类器的线性组合
f ( x ) = ∑ m = 1 M α m G m ( x ) f(x)=\sum_{m=1}^M\alpha_mG_m(x) f(x)=m=1MαmGm(x)
得到最终的分类器:
G ( x ) = s i g n ( f ( x ) ) = s i g n ( ∑ m = 1 M α m G m ( x ) ) G(x)=sign(f(x))=sign(\sum_{m=1}^M\alpha_mG_m(x)) G(x)=sign(f(x))=sign(m=1MαmGm(x))

前向分布算法

​ AdaBoost 算法是模型为加法模型、 损失函数为指数函数、 学习算法为前向分步算法时的二类分类学习方法。

加法模型:
f ( x ) = ∑ m = 1 M β m b ( x ; γ m ) f(x)=\sum_{m=1}^M\beta_mb(x;γ_m) f(x)=m=1Mβmb(x;γm)
其中, b ( x ; γ m ) b(x;γ_m) b(x;γm)为基函数, γ m γ_m γm 为基函数的参数, β m \beta_m βm为基函数的系数。

​ 学习该加法模型成为损失函数极小化问题:
m i n β m , γ m ∑ i = 1 N L ( y i , ∑ m = 1 M β m b ( x i ; γ m ) ) \underset{\beta_m,γ_m}{min}\sum_{i=1}^NL(y_i,\sum_{m=1}^M\beta_mb(x_i;γ_m)) βm,γmmini=1NL(yi,m=1Mβmb(xi;γm))
​ 前向分步算法(forward stagewise algorithm)求解这一优化问题的想法是:因为学习的是加法模型,如果能够从前向后,每一步只学习一个基函数及其系数,逐步逼近优化目标函数式,那么就可以简化优化的复 杂度。

​ 每一步都只需要优化如下损失函数:
m i n β , γ ∑ i = 1 N L ( y i , β b ( x i ; γ ) ) \underset{\beta,γ}{min}\sum_{i=1}^NL(y_i,\beta b(x_i;γ)) β,γmini=1NL(yi,βb(xi;γ))

前向分布算法的算法流程

输入:训练数据集 T = { ( x 1 , y 1 ) 、 ( x 2 , y 2 ) , . . . , ( x N , y N ) } T=\{(x_1,y_1)、(x_2,y_2),...,(x_N,y_N)\} T={(x1,y1)(x2,y2),...,(xN,yN)}损失函数 L ( y , f ( x ) ) L(y,f(x)) L(y,f(x));函数集 { b ( x ; γ ) } \{b(x;γ)\} {b(x;γ)}

输出:加法模型 f ( x ) f(x) f(x)

(1)初始化 f 0 ( x ) = 0 f_0(x)=0 f0(x)=0

(2)对 m = 1 , 2 , . . . , M m=1,2,...,M m=1,2,...,M

​ (a)极小化损失函数
( β m , γ m ) = a r g   m i n β , γ ∑ i = 1 N L ( y i , f m − 1 ( x i ) + β b ( x i ; γ ) ) (\beta_m,γ_m)=arg\ \underset{\beta,γ}{min}\sum_{i=1}^NL(y_i,f_{m-1}(x_i)+\beta b(x_i;γ)) (βm,γm)=arg β,γmini=1NL(yi,fm1(xi)+βb(xi;γ))
得到参数 β m \beta_m βm γ m γ_m γm

​ (b)更新
f m ( x ) = f m − 1 + β m b ( x ; γ m ) f_m(x)=f_{m-1}+\beta_mb(x;γ_m) fm(x)=fm1+βmb(x;γm)
(3)得到加法模型
f ( x ) = f M ( x ) = ∑ m = 1 M β m b ( x ; γ m ) f(x)=f_M(x)=\sum_{m=1}^M\beta_mb(x;γ_m) f(x)=fM(x)=m=1Mβmb(x;γm)
这样,前向分布算法将同时求解从m=1到M的所有参数 β m , γ m \beta_m,γ_m βm,γm 的优化问题简化为逐次求解各个 β m , γ m \beta_m,γ_m βm,γm的优化问题

前向分布算法与AdaBoost

前向分布算法当基函数为基本分类器时,该加法模型等价于AdaBoost的最终分类器
f ( x ) = ∑ m = 1 M α m G m ( x ) f(x)=\sum_{m=1}^M \alpha_mG_m(x) f(x)=m=1MαmGm(x)
当前向分布算法的损失函数是指数损失函数时,其学习的具体操作等价于AdaBoost算法学习的具体操作。
L ( y , f ( x ) ) = e x p [ − y f ( x ) ] L(y,f(x))=exp[-yf(x)] L(y,f(x))=exp[yf(x)]

假设经过m-1轮迭代前向分布算法已经得到 f m − 1 ( x ) f_{m-1}(x) fm1(x)
f m − 1 ( x ) = f m − 2 ( x ) + α m − 1 G m − 1 ( x ) = α 1 G 1 ( x ) + α 2 G 2 ( x ) + . . . + α m − 1 G m − 1 ( x ) f_{m-1}(x)=f_{m-2}(x)+\alpha_{m-1}G_{m-1}(x)\\ =\alpha_1G_1(x)+\alpha_2G_2(x)+...+\alpha_{m-1}G_{m-1}(x) fm1(x)=fm2(x)+αm1Gm1(x)=α1G1(x)+α2G2(x)+...+αm1Gm1(x)
第m轮迭代得到 α m , G m ( x ) , f m ( x ) \alpha_m,G_m(x),f_m(x) αm,Gm(x),fm(x)
f m ( x ) = f m − 1 ( x ) + α m G m ( x ) = α 1 G 1 ( x ) + α 2 G 2 ( x ) + . . . + α m G m ( x ) f_{m}(x)=f_{m-1}(x)+\alpha_{m}G_{m}(x)\\ =\alpha_1G_1(x)+\alpha_2G_2(x)+...+\alpha_{m}G_{m}(x) fm(x)=fm1(x)+αmGm(x)=α1G1(x)+α2G2(x)+...+αmGm(x)
目标是使前向分步算法得到的 α m \alpha_m αm G m ( x ) G_m(x) Gm(x) 使 f m ( x ) f_m(x) fm(x) 在训练数据集T 上的指数损失最小:
( α m , G m ( x ) ) = a r g   m i n α , G ∑ i = 1 N e x p [ − y i ( f m ( x i ) ) ] = a r g   m i n α , G ∑ i = 1 N e x p [ − y i ( f m − 1 ( x i ) + α G ( x i ) ) ] (\alpha_m,G_m(x))=arg\ \underset{\alpha,G}{min}\sum_{i=1}^Nexp[-y_i(f_{m}(x_i))]\\ =arg\ \underset{\alpha,G}{min}\sum_{i=1}^Nexp[-y_i(f_{m-1}(x_i)+\alpha G(x_i))] (αm,Gm(x))=arg α,Gmini=1Nexp[yi(fm(xi))]=arg α,Gmini=1Nexp[yi(fm1(xi)+αG(xi))]
上面损失函数又可以写为:
( α m , G m ( x ) ) = a r g   m i n α , G ∑ i = 1 N e x p [ − y i ( f m − 1 ( x i ) + α G ( x i ) ) ] = a r g   m i n α , G ∑ i = 1 N w ^ m i e x p [ − y i α G ( x i ) ] (\alpha_m,G_m(x))=arg\ \underset{\alpha,G}{min}\sum_{i=1}^Nexp[-y_i(f_{m-1}(x_i)+\alpha G(x_i))]\\ =arg\ \underset{\alpha,G}{min}\sum_{i=1}^N \hat w_{mi}exp[-y_i \alpha G(x_i)]\\ (αm,Gm(x))=arg α,Gmini=1Nexp[yi(fm1(xi)+αG(xi))]=arg α,Gmini=1Nw^miexp[yiαG(xi)]
这里
w ^ m i = e x p [ − y i f m − 1 ( x ) ] \hat w_{mi}=exp[-y_if_{m-1}(x)] w^mi=exp[yifm1(x)]

因为 w ^ m i \hat w_{mi} w^mi既不依赖 α \alpha α也不依赖G,所以与最小化无关。但是 w ^ m i \hat w_{mi} w^mi依赖于 f m − 1 ( x ) f_{m-1}(x) fm1(x),随着每一轮的迭代而发生改变。

求解
( α m , G m ( x ) ) = a r g   m i n α , G ∑ i = 1 N w ^ m i e x p [ − y i α G ( x i ) ] (\alpha_m,G_m(x))=arg\ \underset{\alpha,G}{min}\sum_{i=1}^N \hat w_{mi}exp[-y_i \alpha G(x_i)]\\ (αm,Gm(x))=arg α,Gmini=1Nw^miexp[yiαG(xi)]
分为两步:第一步,首先求 G m ∗ ( x ) G_m^*(x) Gm(x);第二步,求 α m ∗ \alpha^*_m αm

①:对于任意的 α > 0 \alpha > 0 α0,使得上式最小的 G ( x ) G(x) G(x)由下式得到:
G m ∗ ( x ) = a r g   m i n G ∑ i = 1 N w ^ m i I ( − y i ≠ G ( x i ) ) G_m^*(x)=arg\ \underset{G}{min}\sum_{i=1}^N \hat w_{mi}I(-y_i≠G(x_i))\\ Gm(x)=arg Gmini=1Nw^miI(yi=G(xi))
推导如下:
∑ i = 1 N w ^ m i e − y i α G ( x i ) = ∑ y i = G ( x i ) w ^ m i e − α + ∑ y i ≠ G ( x i ) w ^ m i e α = ∑ y i ≠ G ( x i ) w ^ m i e α − ∑ y i ≠ G ( x i ) w ^ m i e − α + ∑ y i ≠ G ( x i ) w ^ m i e − α + ∑ y i = G ( x i ) w ^ m i e − α = ∑ i = 1 N w ^ m i I ( y i ≠ G ( x i ) ) ( e α − e − α ) + ∑ i = 1 N w ^ m i e − α \sum_{i=1}^N \hat w_{mi}e^{-y_i\alpha G(x_i)}=\sum_{y_i=G(x_i)} \hat w_{mi}e^{-\alpha}+\sum_{y_i≠G(x_i)} \hat w_{mi}e^{\alpha}\\ \\ =\sum_{y_i≠G(x_i)} \hat w_{mi}e^{\alpha}-\sum_{y_i≠G(x_i)} \hat w_{mi}e^{-\alpha}+\sum_{y_i≠G(x_i)} \hat w_{mi}e^{-\alpha}+\sum_{y_i=G(x_i)} \hat w_{mi}e^{-\alpha}\\ \\ =\sum_{i=1}^N \hat w_{mi}I(y_i≠G(x_i))(e^{\alpha}-e^{-\alpha})+\sum_{i=1}^N\hat w_{mi}e^{-\alpha}\\ \\ i=1Nw^mieyiαG(xi)=yi=G(xi)w^mieα+yi=G(xi)w^mieα=yi=G(xi)w^mieαyi=G(xi)w^mieα+yi=G(xi)w^mieα+yi=G(xi)w^mieα=i=1Nw^miI(yi=G(xi))(eαeα)+i=1Nw^mieα
所以:
G m ∗ ( x ) = a r g   m i n G ∑ i = 1 N w ^ m i I ( − y i ≠ G ( x i ) ) G_m^*(x)=arg\ \underset{G}{min}\sum_{i=1}^N \hat w_{mi}I(-y_i≠G(x_i))\\ Gm(x)=arg Gmini=1Nw^miI(yi=G(xi))
②:求解 α m ∗ \alpha ^*_m αm
∑ i = 1 N w ^ m i e − y i α G ( x i ) = ∑ y i = G ( x i ) w ^ m i e − α + ∑ y i ≠ G ( x i ) w ^ m i e α = ∑ y i ≠ G ( x i ) w ^ m i e α − ∑ y i ≠ G ( x i ) w ^ m i e − α + ∑ y i ≠ G ( x i ) w ^ m i e − α + ∑ y i = G ( x i ) w ^ m i e − α = ∑ i = 1 N w ^ m i I ( y i ≠ G ( x i ) ) ( e α − e − α ) + ∑ i = 1 N w ^ m i e − α \sum_{i=1}^N \hat w_{mi}e^{-y_i\alpha G(x_i)}=\sum_{y_i=G(x_i)} \hat w_{mi}e^{-\alpha}+\sum_{y_i≠G(x_i)} \hat w_{mi}e^{\alpha}\\ \\ =\sum_{y_i≠G(x_i)} \hat w_{mi}e^{\alpha}-\sum_{y_i≠G(x_i)} \hat w_{mi}e^{-\alpha}+\sum_{y_i≠G(x_i)} \hat w_{mi}e^{-\alpha}+\sum_{y_i=G(x_i)} \hat w_{mi}e^{-\alpha}\\ \\ =\sum_{i=1}^N \hat w_{mi}I(y_i≠G(x_i))(e^{\alpha}-e^{-\alpha})+\sum_{i=1}^N\hat w_{mi}e^{-\alpha}\\ \\ i=1Nw^mieyiαG(xi)=yi=G(xi)w^mieα+yi=G(xi)w^mieα=yi=G(xi)w^mieαyi=G(xi)w^mieα+yi=G(xi)w^mieα+yi=G(xi)w^mieα=i=1Nw^miI(yi=G(xi))(eαeα)+i=1Nw^mieα
将已求得的 G m ∗ ( x ) G_m^*(x) Gm(x)代入,对 α \alpha α求导并令导数为0:
∑ i = 1 N w ^ m i I ( y i ≠ G ( x i ) ) ( e α − e − α ) + ∑ i = 1 N w ^ m i e − α ∂ α = ∑ i = 1 N w ^ m i I ( y i ≠ G ( x i ) ) e α + ∑ i = 1 N w ^ m i I ( y i ≠ G ( x i ) ) e − α − ∑ i = 1 N w ^ m i e − α = ( ∑ i = 1 N w ^ m i I ( y i ≠ G ( x i ) ) − ∑ i = 1 N w ^ m i ) e − α + ∑ i = 1 N w ^ m i I ( y i ≠ G ( x i ) ) e α = ∑ i = 1 N w ^ m i I ( y i ≠ G ( x i ) ) e 2 α + ∑ i = 1 N w ^ m i I ( y i ≠ G ( x i ) ) − ∑ i = 1 N w ^ m i ( 令 ) = 0 → e 2 α = ∑ i = 1 N w ^ m i − ∑ i = 1 N w ^ m i I ( y i ≠ G ( x i ) ) ∑ i = 1 N w ^ m i I ( y i ≠ G ( x i ) ) → α = 1 2 l n ∑ i = 1 N w ^ m i − ∑ i = 1 N w ^ m i I ( y i ≠ G ( x i ) ) ∑ i = 1 N w ^ m i I ( y i ≠ G ( x i ) ) → α = 1 2 l n 1 − e m e m e m = ∑ i = 1 N w ^ m i I ( y i ≠ G ( x i ) ) ∑ i = 1 N w ^ m i = ∑ i = 1 N w m i I ( y i ≠ G ( x i ) ) = ∑ G m ( X i ) ≠ y i w m i ( 注 : w m i 表示第 m 轮中第 i 个实例的权值 , ∑ i = 1 N w m i = 1 ) \frac{\sum_{i=1}^N \hat w_{mi}I(y_i≠G(x_i))(e^{\alpha}-e^{-\alpha})+\sum_{i=1}^N\hat w_{mi}e^{-\alpha}}{\partial \alpha}\\ \\ =\sum_{i=1}^N \hat w_{mi}I(y_i≠G(x_i))e^{\alpha}+\sum_{i=1}^N \hat w_{mi}I(y_i≠G(x_i))e^{-\alpha}-\sum_{i=1}^N\hat w_{mi}e^{-\alpha}\\ \\ =(\sum_{i=1}^N \hat w_{mi}I(y_i≠G(x_i))-\sum_{i=1}^N\hat w_{mi})e^{-\alpha}+\sum_{i=1}^N \hat w_{mi}I(y_i≠G(x_i))e^{\alpha}\\ \\ =\sum_{i=1}^N \hat w_{mi}I(y_i≠G(x_i))e^{2\alpha}+\sum_{i=1}^N \hat w_{mi}I(y_i≠G(x_i))-\sum_{i=1}^N\hat w_{mi}(令)=0\\ \\ →e^{2\alpha}=\frac{\sum_{i=1}^N\hat w_{mi}-\sum_{i=1}^N \hat w_{mi}I(y_i≠G(x_i))}{\sum_{i=1}^N \hat w_{mi}I(y_i≠G(x_i))}\\ \\ →\alpha = \frac12ln\frac{\sum_{i=1}^N\hat w_{mi}-\sum_{i=1}^N \hat w_{mi}I(y_i≠G(x_i))}{\sum_{i=1}^N \hat w_{mi}I(y_i≠G(x_i))}\\ \\ →\alpha = \frac12ln\frac{1-e_m}{e_m}\\ \\ e_m=\frac{\sum_{i=1}^N \hat w_{mi}I(y_i≠G(x_i))}{\sum_{i=1}^N\hat w_{mi}}=\sum_{i=1}^N w_{mi}I(y_i≠G(x_i))\\ \\ =\sum_{G_m(X_i)≠y_i}w_{mi}(注:w_{mi}表示第m轮中第i个实例的权值,\sum_{i=1}^Nw_{mi}=1) αi=1Nw^miI(yi=G(xi))(eαeα)+i=1Nw^mieα=i=1Nw^miI(yi=G(xi))eα+i=1Nw^miI(yi=G(xi))eαi=1Nw^mieα=(i=1Nw^miI(yi=G(xi))i=1Nw^mi)eα+i=1Nw^miI(yi=G(xi))eα=i=1Nw^miI(yi=G(xi))e2α+i=1Nw^miI(yi=G(xi))i=1Nw^mi()=0e2α=i=1Nw^miI(yi=G(xi))i=1Nw^mii=1Nw^miI(yi=G(xi))α=21lni=1Nw^miI(yi=G(xi))i=1Nw^mii=1Nw^miI(yi=G(xi))α=21lnem1emem=i=1Nw^mii=1Nw^miI(yi=G(xi))=i=1NwmiI(yi=G(xi))=Gm(Xi)=yiwmi(:wmi表示第m轮中第i个实例的权值,i=1Nwmi=1)
每一轮的权值更新,由:
f m ( x ) = f m − 1 ( x ) + α m G m ( x ) f_m(x)=f_{m-1}(x)+\alpha_mG_m(x) fm(x)=fm1(x)+αmGm(x)
以及 w ^ m i = e − y i f m − i ( x i ) \hat w_{mi}=e^{-y_if_{m-i(x_i)}} w^mi=eyifmi(xi)可得:
w ^ m + 1 , i = w ^ m i e − y i α m G m ( x ) \hat w_{m+1,i}=\hat w_{mi}e^{-y_i\alpha_mG_m(x)} w^m+1,i=w^mieyiαmGm(x)
至此推导完毕!

你可能感兴趣的:(算法,人工智能,机器学习,AdaBoost)