《统计学习方法》第八章: 提升方法 读书笔记

8.提升方法

8.1几个概念
  • 集成学习:
    使用一系列学习器进行学习,使用某种规则将基本分类器组和,得到比单个学习器效果更好的模型。
    • 序列方法,当前模型进行学习时,依赖上一个模型的训练结果
    • 并行方法,模型间没有依赖关系
  • 强可学习:
    一个概念/类,如果存在多项式的学习算法,能正确率很高进行学习,这个概念/类是强可学习的。
  • 弱可学习:
    一个概念/类,如果存在多项式的学习算法,学习的正确率仅比随即猜测略好,这个概念是弱可学习的。
  • PAC学习框架(probably approximately correct,很可能接近正确的)
    • 等价于训练误差上界定理,用训练误差和 ϵ \epsilon ϵ项以一定的概率控制泛化误差
    • 泛化误差上界:对于函数f,至少以概率 1 − δ 1-\delta 1δ,以下不等式成立
      R ( f ) ⩽ R ^ ( f ) + ϵ ( d , N , δ ) R(f) \leqslant \hat{R}(f) +\epsilon(d,N,\delta) R(f)R^(f)+ϵ(d,N,δ)
      ϵ ( d , N , δ ) = 1 2 N ( l o g d + l o g 1 δ ) \epsilon(d,N,\delta)=\sqrt{\frac{1}{2N}(logd + log\frac{1}{\delta})} ϵ(d,N,δ)=2N1(logd+logδ1)
    • 在PAC的学习框架下,一个概念是强可学习的充要条件是弱可学习的
8.2加法模型的向前分步算法
8.2.1加法模型
  • 模型:加法模型,表示为
    f ( x ) = ∑ m = 1 M β m b ( x ; γ m ) f(x) = \sum_{m=1}^M\beta_mb(x;\gamma_m) f(x)=m=1Mβmb(x;γm)
    其中 b ( x ; γ m ) b(x;\gamma_m) b(x;γm)是基函数, γ m \gamma_m γm是参数, β m \beta_m βm是系数 (同一个基函数,只是参数不同)
  • 损失函数(极小化):
    min ⁡ β m , γ m ∑ i = 1 N L ( y i , ∑ m = 1 M β m b ( x i ; γ m ) ) \min_{\beta_m,\gamma_m}\sum_{i=1}^NL(y_i, \sum_{m=1}^M\beta_mb(x_i;\gamma_m)) βm,γmmini=1NL(yi,m=1Mβmb(xi;γm))
  • 算法:向前分步算法
    学习加法模型时,从前向后,每一步只学习一个基函数及其系数,逐步优化损失函数,即可以简化优化的复杂度。即每步只优化 min ⁡ β , γ ∑ i = 1 N L ( y i , β b ( x i ; γ ) ) \min_{\beta,\gamma}\sum_{i=1}^NL(y_i, \beta b(x_i;\gamma)) minβ,γi=1NL(yi,βb(xi;γ))
8.2.2具体算法

输入:训练数据集 T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , ⋯   , ( x N , y N ) , } T=\{(x_1,y_1),(x_2,y_2),\cdots,(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 , r ) } \{b(x,r)\} {b(x,r)}
输出:加法模型f(x)

  • (1)初始化 f 0 ( x ) = 0 f_0(x) = 0 f0(x)=0
  • (2)每轮训练一个基本学习器 β m b ( x ; r m ) , m = 1 , 2 , ⋯   , M \beta_mb(x;r_m),m=1,2,\cdots,M βmb(x;rm),m=1,2,,M,且到当前轮时 f m ( x ) = f m − 1 ( x ) + β m b ( x ; r m ) f_m(x) = f_{m-1}(x) + \beta_mb(x;r_m) fm(x)=fm1(x)+βmb(x;rm)
    • (a) 极小化损失函数
      ( β m , γ m ) = a r g min ⁡ β , γ ∑ i = 1 N L ( y i , f m ( x ) ) = a r g min ⁡ β , γ ∑ i = 1 N L ( y i , f m − 1 ( x ) + β m b ( x ; r m ) ) \begin{aligned} (\beta_m,\gamma_m) &= arg\min_{\beta,\gamma}\sum_{i=1}^NL(y_i, f_m(x)) \\ &= arg\min_{\beta,\gamma}\sum_{i=1}^NL(y_i, f_{m-1}(x) + \beta_mb(x;r_m)) \end{aligned} (βm,γm)=argβ,γmini=1NL(yi,fm(x))=argβ,γmini=1NL(yi,fm1(x)+βmb(x;rm))
      得到参数 β m , γ m \beta_m,\gamma_m βm,γm
    • (b) 更新 f m ( x ) = f m − 1 ( x ) + β m b ( x ; r m ) f_m(x) = f_{m-1}(x) + \beta_mb(x;r_m) fm(x)=fm1(x)+βmb(x;rm)
  • (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;\gamma_m) f(x)=fM(x)=m=1Mβmb(x;γm)
8.3 提升方法
  • 主要思想:
    • 如果发现了“弱学习算法”,将其提升为“强学习算法”。
    • 即从一个弱学习算法出发,通过反复学习不同的参数,得到一系列基本分类器,通过组和这些弱分类器,构成一个强分类器。
    • 大多数的提升方法:在每轮学习中改变训练数据的概率分布(即训练数据的权值分布);在下轮学习中通过有新的概率分布的训练数据,用相同的基本学习方法学习到不同的参数,构成另一个基本分类器;将这些基本分类器组和为强分类器。
      • 问题一:如何改变训练数据的概率分布
      • 问题二:如何将弱分类器(基本分类器)组和成一个强分类器
8.3.1 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)
  • 损失函数:指数函数, L = ∑ e x p ( − y f ( x ) ) L= \sum exp(-yf(x)) L=exp(yf(x))
  • 学习算法:向前分步算法

在第m轮学习时,使损失函数最小,得到 α m , G m ( x ) \alpha_m,G_m(x) αm,Gm(x)
( α m , G m ( x ) ) = a r g min ⁡ α , G ∑ i = 1 N e x p ( − y i f m ( x i ) ) = a r g min ⁡ α , G ∑ i = 1 N e x p [ − y i ( f m − 1 ( x i ) + α G ( x i ) ) ] L = ∑ i = 1 N e x p [ − y i ( f m − 1 ( x i ) + α G ( x i ) ) ] = ∑ i = 1 N [ e x p ( − y i f m − 1 ( x i ) ) e x p ( − y i α G ( x i ) ) ] = ∑ i = 1 N w m i ‾ e x p ( − y i α G ( x i ) ) \begin{aligned} (\alpha_m,G_m(x)) &= arg\min_{\alpha,G}\sum _{i=1}^Nexp(-y_if_m(x_i))\\ &=arg\min_{\alpha,G}\sum _{i=1}^Nexp[-y_i(f_{m-1}(x_i) + \alpha G(x_i))] \\ L &= \sum _{i=1}^Nexp[-y_i(f_{m-1}(x_i) + \alpha G(x_i))] \\ &= \sum_{i=1}^N\Big[exp(-y_if_{m-1}(x_i)) exp(-y_i\alpha G(x_i))\Big] \\ &=\sum _{i=1}^N\overline{w_{mi}}exp(-y_i\alpha G(x_i)) \end{aligned} (αm,Gm(x))L=argα,Gmini=1Nexp(yifm(xi))=argα,Gmini=1Nexp[yi(fm1(xi)+αG(xi))]=i=1Nexp[yi(fm1(xi)+αG(xi))]=i=1N[exp(yifm1(xi))exp(yiαG(xi))]=i=1Nwmiexp(yiαG(xi))
其中 w m i ‾ = e x p ( − y i f m − 1 ( x i ) ) \overline{w_{mi}} =exp(-y_if_{m-1}(x_i)) wmi=exp(yifm1(xi)),与待求参数 α , G \alpha,G α,G无关。
由于模型的基本模型是二分类器, y ∈ { − 1 , 1 } , α > 0 y \in \{-1,1\},\alpha >0 y{1,1},α>0,因此第m轮
G m ∗ ( x ) = arg ⁡ min ⁡ G ∑ i = 1 n w m i ‾ I ( y i ≠ G ( x i ) ) G^*_m(x) = \arg\min_G \sum_{i=1}^n \overline{w_{mi}}I(y_i \quad \neq G(x_i)) Gm(x)=argGmini=1nwmiI(yi̸=G(xi))
求解 α ∗ \alpha^* α
L = ∑ i = 1 N w m i ‾ e x p ( − y i α G ( x i ) ) = ∑ y i = G m ( x i ) w m i ‾ e x p ( − α ) + ∑ y i ≠ G m ( x i ) w m i ‾ e x p ( α ) = ( e α − e − α ) ∑ i = 1 n w m i ‾ I ( y i ≠ G m ( x i ) ) + e − α ∑ i = 1 n w m i ‾ ∂ L ∂ α = ( e α + e − α ) ∑ i = 1 n w m i ‾ I ( y i ≠ G m ( x i ) ) − e − α ∑ 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 m ( x i ) ) − 1 α ∗ = 1 2 l n ∑ i = 1 n w m i ‾ ∑ i = 1 n w m i ‾ I ( y i ≠ G m ( x i ) ) − 1 \begin{aligned} L &= \sum _{i=1}^N\overline{w_{mi}}exp(-y_i\alpha G(x_i)) \\ &= \sum_{y_i = G_m(x_i)}\overline{w_{mi}} exp(-\alpha) + \sum_{y_i \quad \neq G_m(x_i)}\overline{w_{mi}} exp(\alpha) \\ &= (e^\alpha - e^{-\alpha})\sum_{i=1}^n \overline{w_{mi}} I(y_i\quad \neq G_m(x_i)) + e^{-\alpha} \sum_{i=1}^n \overline{w_{mi}} \\ \frac{\partial L}{\partial \alpha} &= (e^\alpha + e^{-\alpha}) \sum_{i=1}^n \overline{w_{mi}} I(y_i\quad \neq G_m(x_i)) - e^{-\alpha} \sum_{i=1}^n \overline{w_{mi}} =0 \\ e^{2\alpha} &= \frac{ \sum_{i=1}^n\overline{w_{mi}}}{\sum_{i=1}^n \overline{w_{mi}} I(y_i\quad \neq G_m(x_i)) } -1 \\ \alpha^* &= \frac{1}{2}ln \frac{\sum_{i=1}^n \overline{w_{mi}}}{\sum_{i=1}^n \overline{w_{mi}} I(y_i\quad \neq G_m(x_i)) } -1 \end{aligned} LαLe2αα=i=1Nwmiexp(yiαG(xi))=yi=Gm(xi)wmiexp(α)+yi̸=Gm(xi)wmiexp(α)=(eαeα)i=1nwmiI(yi̸=Gm(xi))+eαi=1nwmi=(eα+eα)i=1nwmiI(yi̸=Gm(xi))eαi=1nwmi=0=i=1nwmiI(yi̸=Gm(xi))i=1nwmi1=21lni=1nwmiI(yi̸=Gm(xi))i=1nwmi1

e m = ∑ i = 1 n w m i ‾ I ( y i ≠ G m ( x i ) ) ∑ i = 1 n w m i ‾ = ∑ i = 1 n w m i I ( y i ≠ G m ( x i ) ) \begin{aligned} e_m &= \frac{ \sum_{i=1}^n \overline{w_{mi}} I(y_i\quad \neq G_m(x_i))}{\sum_{i=1}^n\overline{w_{mi}} } \\ &= \sum_{i=1}^n w_{mi} I(y_i \quad \neq G_m(x_i)) \end{aligned} em=i=1nwmii=1nwmiI(yi̸=Gm(xi))=i=1nwmiI(yi̸=Gm(xi))
得到 α ∗ = 1 2 l n ( 1 − e m e m ) \alpha^* = \frac{1}{2} ln(\frac{1-e_m}{e_m}) α=21ln(em1em)
其中
w m i = w m i ‾ ∑ i = 1 n w m i ‾ = e x p ( − y i f m − 1 ( x i ) ) ∑ i = 1 n e x p ( − y i f m − 1 ( x i ) ) w m + 1 , i = w m + 1 , i ‾ ∑ i = 1 n w m + 1 , i ‾ = e x p ( − y i f m ( x i ) ) ∑ i = 1 n e x p ( − y i f m ( x i ) ) = e x p ( − y i f m − 1 ( x i ) ) e x p ( − y i α m G m ( x i ) ) ∑ i = 1 n e x p ( − y i f m − 1 ( x i ) ) e x p ( − y i α m G m ( x i ) ) = e x p ( − y i f m − 1 ( x i ) ) ∑ i = 1 n e x p ( − y i f m − 1 ( x i ) ) e x p ( − y i α m G m ( x i ) ) ∑ i = 1 n e x p ( − y i f m − 1 ( x i ) ) ∑ i = 1 n e x p ( − y i f m − 1 ( x i ) ) e x p ( − y i α m G m ( x i ) ) = w m i e x p ( − y i α m G m ( x i ) ) ∑ i = 1 n w m i e x p ( − y i α m G m ( x i ) ) \begin{aligned} w_{mi} & = \frac{\overline{w_{mi}}}{\sum_{i=1}^n\overline{w_{mi}}} = \frac{exp(-y_if_{m-1}(x_i))}{\sum_{i=1}^nexp(-y_if_{m-1}(x_i))} \\ w_{m+1,i} &= \frac{\overline{w_{m+1,i}}}{\sum_{i=1}^n\overline{w_{m+1,i}}} = \frac{exp(-y_if_{m}(x_i))}{\sum_{i=1}^nexp(-y_if_{m}(x_i))} \\ &=\frac{exp(-y_if_{m-1}(x_i))exp(-y_i\alpha_mG_m(x_i))}{\sum_{i=1}^n exp(-y_if_{m-1}(x_i))exp(-y_i\alpha_mG_m(x_i))} \\ &= \frac{exp(-y_if_{m-1}(x_i))}{\sum_{i=1}^n exp(-y_if_{m-1}(x_i))}\frac{exp(-y_i\alpha_mG_m(x_i))}{\sum_{i=1}^n \frac{exp(-y_if_{m-1}(x_i))}{\sum_{i=1}^n exp(-y_if_{m-1}(x_i))}exp(-y_i\alpha_mG_m(x_i))} \\ &= \frac{w_{mi}exp(-y_i\alpha_mG_m(x_i))}{\sum_{i=1}^nw_{mi}exp(-y_i\alpha_mG_m(x_i))} \end{aligned} wmiwm+1,i=i=1nwmiwmi=i=1nexp(yifm1(xi))exp(yifm1(xi))=i=1nwm+1,iwm+1,i=i=1nexp(yifm(xi))exp(yifm(xi))=i=1nexp(yifm1(xi))exp(yiαmGm(xi))exp(yifm1(xi))exp(yiαmGm(xi))=i=1nexp(yifm1(xi))exp(yifm1(xi))i=1ni=1nexp(yifm1(xi))exp(yifm1(xi))exp(yiαmGm(xi))exp(yiαmGm(xi))=i=1nwmiexp(yiαmGm(xi))wmiexp(yiαmGm(xi))
总结:

  • 每轮迭代时,训练得到该轮基本学习器 G m ∗ G_m^* Gm
  • 计算 e m = ∑ i = 1 n w m i I ( y i ≠ G m ( x i ) ) e_m= \sum_{i=1}^n w_{mi} I(y_i \quad \neq G_m(x_i)) em=i=1nwmiI(yi̸=Gm(xi))
  • 计算这一轮学习器的权重 α ∗ = 1 2 l n ( 1 − e m e m ) \alpha^* = \frac{1}{2} ln(\frac{1-e_m}{e_m}) α=21ln(em1em)
  • 更新每个样本的下一轮权重 w m + 1 , i = w m i e x p ( − y i α m G m ( x i ) ) ∑ i = 1 n w m i e x p ( − y i α m G m ( x i ) ) w_{m+1,i} =\frac{w_{mi}exp(-y_i\alpha_mG_m(x_i))}{\sum_{i=1}^nw_{mi}exp(-y_i\alpha_mG_m(x_i))} wm+1,i=i=1nwmiexp(yiαmGm(xi))wmiexp(yiαmGm(xi))
算法

输入:训练数据集 T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , ⋯   , ( x N , y N ) , } T=\{(x_1,y_1),(x_2,y_2),\cdots,(x_N,y_N),\} T={(x1,y1),(x2,y2),,(xN,yN),},其中 x i ∈ X ⊆ R n , y i ∈ Y = { − 1 , + 1 } x_i \in X \subseteq R^n,y_i \in Y=\{-1,+1\} xiXRn,yiY={1,+1};及弱学习算法
输出:最终分类器G(x)

  • (1) 初始化训练数据的权值分布, D 1 = ( w 11 , ⋯   , w 1 i , ⋯   , w 1 N ) , w 1 i = 1 N D_1 = (w_{11},\cdots,w_{1i},\cdots,w_{1N}),w_{1_i}=\frac{1}{N} D1=(w11,,w1i,,w1N),w1i=N1
  • (2) 反复学习分类器,共要学习M个弱分类器,对于第m次学习, m = 1 , 2 , ⋯   , M m=1,2,\cdots,M m=1,2,,M
    • (a) 使用具有权值分布 D m D_m Dm的训练数据集学习,得到基本分类器
      G m ( x ) : X → { + 1 , − 1 } G_m(x):X \rightarrow \{+1,-1\} Gm(x):X{+1,1}
    • (b) 计算 G m ( x ) G_m(x) Gm(x)在训练数据集上的分类误差率( e m &lt; 0.5 e_m&lt;0.5 em<0.5永远成立,可以把正负的标记反过来)
      e m = P ( G m ( x i ) ≠ y i ) = ∑ i = 1 N w m i I ( G m ( x i ) ≠ y i ) e_m=P(G_m(x_i) \neq y_i) = \sum_{i=1}^N w_{m_i}I(G_m(x_i) \neq y_i) em=P(Gm(xi)̸=yi)=i=1NwmiI(Gm(xi)̸=yi)
    • (c )计算 G m ( x ) G_m(x) Gm(x)的系数(分类误差率 e m e_m em越小, α m \alpha_m αm越大,且 α m &gt; 0 \alpha_m&gt;0 αm>0,在最终分类器中作用越大)
      α m = 1 2 l o g 1 − e m e m \alpha_m=\frac{1}{2}log\frac{1-e_m}{e_m} αm=21logem1em
    • (d) 更新训练数据集的权值分布(当样本 ( x i , y i ) (x_i,y_i) (xi,yi)在上一个分类器中误分类时,即 y i G m ( x i ) &lt; 0 y_iG_m(x_i)&lt;0 yiGm(xi)<0 w m + 1 w_{m+1} wm+1会被放大
      D m + 1 = ( w m + 1 , 1 , ⋯ &ThinSpace; , w m + 1 , i , ⋯ &ThinSpace; , w m + 1 , N ) D_{m+1} = (w_{m+1,1},\cdots,w_{m+1,i},\cdots,w_{m+1,N}) Dm+1=(wm+1,1,,wm+1,i,,wm+1,N)
      w m + 1 , i = w m i Z m e x p ( − α m y i G m ( x i ) ) , i = 1 , 2 , ⋯ &ThinSpace; , N w_{m+1,i} = \frac{w_{mi}}{Z_m}exp(-\alpha_my_iG_m(x_i)),i=1,2,\cdots,N wm+1,i=Zmwmiexp(αmyiGm(xi)),i=1,2,,N
      Z m = ∑ i = 1 N w m i e x p ( − α m y i G m ( x i ) ) Z_m = \sum_{i=1}^Nw_{mi}exp(-\alpha_my_iG_m(x_i)) Zm=i=1Nwmiexp(αmyiGm(xi))
      其中 Z m Z_m Zm是一个规范化因子,使 D m + 1 D_{m+1} Dm+1称为一个概率分布,因为 ∑ w m i = 1 \sum w_{mi} = 1 wmi=1
  • (3) 构建基本分类器的线性组和
    f ( x ) = ∑ m = 1 M α m G m ( x ) f(x) = \sum_{m=1}^M\alpha_m G_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))
8.3.2 提升树
  • 提升树是以树做基本分类器的提升方法
    • 回归树,解决回归问题;当采用的损失函数不同时,可用算法不同
      • 向前分布算法:采用平方误差损失函数
      • 梯度提升算法:其他损失函数
    • 分类树,解决分类问题(二分类树的情况与AdaBoost以分类树做基本分类器的情况类似)
  • 新一轮的训练模型根据损失函数最小化求取
  • 基本分类器的组和方式: 相加 f M ( x ) = ∑ m = 1 M T ( X ; Θ m ) f_M(x)=\sum_{m=1}^MT(X;\Theta_m) fM(x)=m=1MT(X;Θm)
    T ( X ; Θ m ) T(X;\Theta_m) T(X;Θm)表示决策树
CART生成二叉回归树算法
  • 模型表示:将输入空间X划分为两个单元R1,R2;对应不同的固定输出c1,c2。将模型表示为 f ( x ) = ∑ m = 1 2 c m I ( x ∈ R m ) f(x) = \sum_{m=1}^2c_m I(x \in R_m) f(x)=m=12cmI(xRm)
  • 损失函数:平方误差 ∑ x i ∈ R m ( y i − f ( x i ) ) 2 = ∑ x i ∈ R 1 ( c 1 − y i ) 2 + ∑ x i ∈ R 2 ( c 2 − y i ) 2 \sum_{x_i \in R_m}(y_i - f(x_i))^2 = \sum_{x_i \in R_1}(c_1-y_i)^2 + \sum_{x_i \in R_2}(c_2-y_i)^2 xiRm(yif(xi))2=xiR1(c1yi)2+xiR2(c2yi)2
    损失函数最小化可得,对于每个确定区域, f ( x ) = c m = 1 n ∑ x i ∈ R m y i f(x) = c_m = \frac{1}{n}\sum_{x_i\in R_m}y_i f(x)=cm=n1xiRmyi
  • 算法:
    • (1)对于每个样本, i = 1 , 2 , ⋯ &ThinSpace; , N i=1,2,\cdots,N i=1,2,,N
      • (a)选择该样本 x x x值,将输入空间切分为 X ⩽ x , X &gt; x X \leqslant x,X &gt; x Xx,X>x两部分;对样本集切分为两个子集
      • (b)分别计算两个子集的 y y y值平均值 1 n m ∑ x ∈ R m y \frac{1}{n_m}\sum_{x\in R_m} y nm1xRmy,做二叉树模型的参数 c m c_m cm
      • (c ) 计算损失函数 L = ∑ x i ∈ R 1 ( y i − c 1 ) 2 + ∑ x j ∈ R 2 ( y j − c 2 ) 2 L = \sum_{x_i \in R_1}(y_i - c_1)^2 + \sum_{x_j \in R_2}(y_j - c_2)^2 L=xiR1(yic1)2+xjR2(yjc2)2
    • (2)比较所有的损失函数,损失函数最小时的样本 x x x值为最优切分点。
  • 算法总结:
    min ⁡ j , s [ min ⁡ c 1 ∑ x i ∈ R 1 ( j , s ) ( y i − c 1 ) 2 + min ⁡ c 2 ∑ x j ∈ R 2 ( j , s ) ( y j − c 2 ) 2 ] \min_{j,s}[\min_{c_1}\sum_{x_i \in R_1(j,s)}(y_i-c1)^2 + \min_{c_2}\sum_{x_j \in R_2(j,s)}(y_j-c2)^2] j,smin[c1minxiR1(j,s)(yic1)2+c2minxjR2(j,s)(yjc2)2]
    即找到使损失函数最小的第j个样本的x取值s,和使损失函数最小的c1,c2(取平均值即可)
提升树算法
  • 模型:将输入空间划分为J个互不相交的区域 R 1 , R 2 , ⋯ &ThinSpace; , R J R_1,R_2,\cdots,R_J R1,R2,,RJ,并在每个区域上确定输出的常量 c j c_j cj,树可以表示为
    T ( x ; Θ ) = ∑ j = 1 J c j I ( x ∈ R j ) T(x;\Theta) = \sum_{j=1}^Jc_jI(x \in R_j) T(x;Θ)=j=1JcjI(xRj)
    其中参数 Θ = { ( R 1 , c 1 ) , ( R 2 , c 2 ) , ⋯ &ThinSpace; , ( R J , c J ) } \Theta = \{(R_1,c_1),(R_2,c_2),\cdots,(R_J,c_J)\} Θ={(R1,c1),(R2,c2),,(RJ,cJ)}表示树的区域划分和各区域上的常数,J是回归树的复杂度即叶节点个数

  • 损失函数:平方误差损失函数,每轮训练的损失函数为
    L ( y , f ( x ) ) = ( y − f ( x ) ) 2 L ( y , f m − 1 ( x ) + T ( x ; Θ ) ) = [ y − f m − 1 ( x ) − T ( x ; Θ ) ] 2 = [ r − T ( x ; Θ ) ] 2 \begin{aligned} L(y,f(x)) &amp;= (y-f(x))^2 \\ L(y,f_{m-1}(x) + T(x;\Theta))&amp;=[y-f_{m-1}(x) - T(x;\Theta)]^2 \\ &amp;=[r - T(x;\Theta)]^2 \end{aligned} L(y,f(x))L(y,fm1(x)+T(x;Θ))=(yf(x))2=[yfm1(x)T(x;Θ)]2=[rT(x;Θ)]2
    其中 r = y − f m − 1 ( x ) r=y-f_{m-1}(x) r=yfm1(x)是当前模型拟合数据的残差。因此训练本轮回归树的数据源为上一轮训练结果( f m − 1 ( x ) = ∑ i = 1 m − 1 T ( x , Θ i ) f_{m-1}(x)=\sum_{i=1}^{m-1}T(x,\Theta_i) fm1(x)=i=1m1T(x,Θi))的残差

  • 算法
    输入:训练数据集 T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , ⋯ &ThinSpace; , ( x N , y N ) } T=\{(x_1,y_1),(x_2,y_2),\cdots,(x_N,y_N)\} T={(x1,y1),(x2,y2),,(xN,yN)}
    输出:提升树 f M ( x ) f_M(x) fM(x)

    • (1)初始化 f 0 ( x ) = 0 f_0(x) = 0 f0(x)=0
    • (2)对m=1,2,…,M
      • (a) 按照 r = y i − f m − 1 ( x i ) , i = 1 , 2 , ⋯ &ThinSpace; , N r=y_i-f_{m-1}(x_i),i=1,2,\cdots,N r=yifm1(xi),i=1,2,,N计算残差
      • (b)拟合残差 r r r学习一个回归树,得到 T ( x ; Θ m ) T(x;\Theta_m) T(x;Θm)
      • (c )更新 f m = f m − 1 + T ( x ; Θ m ) f_m = f_{m-1} + T(x;\Theta_m) fm=fm1+T(x;Θm)
    • (3)得到回归问题提升树 f M ( x ) = ∑ m = 1 M T ( x ; Θ m ) f_M(x) = \sum_{m=1}^MT(x;\Theta_m) fM(x)=m=1MT(x;Θm)
梯度提升算法
  • 对于一般损失函数(非平方损失函数和指数损失函数),每步优化并不简单,用损失函数的负梯度 − [ ∂ L ( y , f ( x i ) ) ∂ f ( x i ) ] f ( x ) = f m − 1 ( x ) -\Big[\frac{\partial L(y,f(x_i))}{\partial f(x_i)}\Big]_{f(x)=f_{m-1}(x)} [f(xi)L(y,f(xi))]f(x)=fm1(x)作为回归问题中残差的近似值,拟合一个回归树
  • 利用损失函数的负梯度作为残差的近似值,拟合一个回归树
  • 算法:
    输入:训练数据集 T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , ⋯ &ThinSpace; , ( x N , y N ) , } T=\{(x_1,y_1),(x_2,y_2),\cdots,(x_N,y_N),\} T={(x1,y1),(x2,y2),,(xN,yN),},其中 x i ∈ X ⊆ R n , y i ∈ Y ⊆ R x_i \in X \subseteq R^n,y_i \in Y \subseteq R xiXRn,yiYR;损失函数 L ( y , f ( x ) ) L(y,f(x)) L(y,f(x))
    输出:提升树 f ^ ( x ) \hat{f}_(x) f^(x)
    • (1)初始化(估计使损失函数极小化的常数值c,是只有根节点的树)
      f 0 ( x ) = a r g min ⁡ c ∑ i = 1 N L ( y i , c ) f_0(x) = arg\min_c \sum_{i=1}^NL(y_i,c) f0(x)=argcmini=1NL(yi,c)
    • (2)对m=1,2,…,M
      • (a)对i=1,2,…,N计算损失函数的负梯度在当前模型的值
        r m i = − [ ∂ L ( y i , f ( x i ) ) ∂ f ( x i ) ] f ( x ) = f m − 1 ( x ) r_{mi} = -\Bigg[\frac{\partial L(y_i,f(x_i))}{\partial f(x_i)}\Bigg] _{f(x) = f_{m-1}(x)} rmi=[f(xi)L(yi,f(xi))]f(x)=fm1(x)
        对于一般的损失函数,此值为残差的估计。假设 L = [ y − f ( x ) ] 2 , ∂ L / ∂ f = − 2 ( y − f ( x ) ) L=[y - f(x)]^2, \partial L/\partial f = -2(y-f(x)) L=[yf(x)]2,L/f=2(yf(x)) ; 残差前有系数,因此需要根据(c )步计算 c m c_m cm)
      • (b) 对 r m i r_{mi} rmi拟合一个回归树,得到第m棵树的叶节点区域 R m j , j = 1 , 2 , ⋯ &ThinSpace; , J R_{mj},j=1,2,\cdots,J Rmj,j=1,2,,J
      • (c ) 对 j = 1 , 2 , ⋯ &ThinSpace; , J j=1,2,\cdots,J j=1,2,,J使损失函数最小化求得该区域回归树参数c。计算
        c m j = a r g min ⁡ c ∑ x i ∈ R m j L ( y i , f m − 1 ( x i ) + c ) c_{mj} = arg\min_c \sum_{x_i \in R_{mj}}L(y_i,f_{m-1}(x_i) + c) cmj=argcminxiRmjL(yi,fm1(xi)+c)
        利用线性搜索估计叶节点区域的值,使损失函数极小化(c是待求的最优值 c m j c_{mj} cmj)
      • (d)更新 f m ( x ) = f m − 1 ( x ) + ∑ j = 1 J c m j I ( x ∈ R m j ) f_m(x) = f_{m-1}(x) + \sum_{j=1}^Jc_{mj}I(x\in R_{mj}) fm(x)=fm1(x)+j=1JcmjI(xRmj)
  • 得到回归树
    f ^ ( x ) = f M ( x ) = ∑ m = 1 M ∑ j = 1 J c m j I ( x ∈ R m j ) \hat{f}(x) = f_M(x) = \sum_{m=1}^M\sum_{j=1}^Jc_{mj}I(x\in R_{mj}) f^(x)=fM(x)=m=1Mj=1JcmjI(xRmj)
    对于对于每个待预测值,在每棵基本树上只有1个区域内 I I I函数不为0,此函数最终只有M项

8.4 AdaBoost训练误差证明
8.4.1 训练误差上界

1 N ∑ i = 1 N I ( G ( x i ) ≠ y i ) ⩽ 1 N ∑ i = 1 N e x p ( − y i f ( x i ) ) = ∏ m = 1 M Z m \frac{1}{N}\sum_{i=1}^NI(G(x_i)\neq y_i) \leqslant \frac{1}{N}\sum_{i=1}^Nexp(-y_if(x_i)) = \prod_{m=1}^MZ_m N1i=1NI(G(xi)̸=yi)N1i=1Nexp(yif(xi))=m=1MZm
G ( x ) = s i g n ( ∑ m = 1 M α m G m ( x ) ) G(x)=sign(\sum_{m=1}^M\alpha_mG_m(x)) G(x)=sign(m=1MαmGm(x)),
f ( x ) = ∑ m = 1 M α m G m ( x ) f(x)=\sum_{m=1}^M\alpha_m G_m(x) f(x)=m=1MαmGm(x),
Z m = ∑ i = 1 N w m i e x p ( − α m y i G m ( x i ) ) Z_m=\sum_{i=1}^Nw_{mi}exp(-\alpha_my_iG_m(x_i)) Zm=i=1Nwmiexp(αmyiGm(xi))
此定理说明:

  • 使 Z m Z_m Zm最小,从而使训练误差下降最快

  • 在每轮训练中, Z m = ∑ i = 1 N w m i e x p ( − α m y i G m ( x i ) ) Z_m=\sum_{i=1}^Nw_{mi}exp(-\alpha_my_iG_m(x_i)) Zm=i=1Nwmiexp(αmyiGm(xi)) w m i w_{mi} wmi在上一轮训练中确定, G m ( x i ) G_m(x_i) Gm(xi)在本轮训练中确定;

  • min ⁡ Z m \min Z_m minZm α m \alpha_m αm,使训练误差上界下降最快
    ∂ Z m ∂ α m = ∑ i = 1 N − w m i y i G m ( x i ) e x p ( − α m y i G m ( x i ) ) = 0 \frac{\partial Z_m}{\partial \alpha_m} = \sum_{i=1}^N-w_{mi}y_iG_m(x_i)exp(-\alpha_my_iG_m(x_i)) = 0 αmZm=i=1NwmiyiGm(xi)exp(αmyiGm(xi))=0
    算法中 α m = 1 2 l o g 1 − e m e m \alpha_m=\frac{1}{2}log\frac{1-e_m}{e_m} αm=21logem1em就是上式的一个解
    证:

  • (1)证 I ( G ( x i ) ≠ y i ) ⩽ e x p ( − y i f ( x i ) ) I(G(x_i)\neq y_i) \leqslant exp(-y_if(x_i)) I(G(xi)̸=yi)exp(yif(xi))
    G ( x i ) ≠ y i G(x_i)\neq y_i G(xi)̸=yi,此时 − y i f ( x i ) &gt; 0 -y_if(x_i)&gt;0 yif(xi)>0,因此 e x p ( − y i f ( x i ) ) &gt; I ( G ( x i ) ≠ y i ) = 1 exp(-y_if(x_i))&gt;I(G(x_i)\neq y_i)=1 exp(yif(xi))>I(G(xi)̸=yi)=1;
    G ( x i ) = y i G(x_i)= y_i G(xi)=yi,此时 − y i f ( x i ) &lt; 0 -y_if(x_i)&lt;0 yif(xi)<0,因此 e x p ( − y i f ( x i ) ) &gt; I ( G ( x i ) ≠ y i ) = 0 exp(-y_if(x_i))&gt;I(G(x_i)\neq y_i)=0 exp(yif(xi))>I(G(xi)̸=yi)=0;

  • (2)证 1 N ∑ i = 1 N e x p ( − y i f ( x i ) ) = ∏ m Z m \frac{1}{N}\sum_{i=1}^Nexp(-y_if(x_i)) = \prod_mZ_m N1i=1Nexp(yif(xi))=mZm
    1 N ∑ i = 1 N e x p ( − y i f ( x i ) ) = 1 N ∑ i = 1 N e x p ( − y i ∑ m = 1 M α m G m ( x i ) ) = ∑ i = 1 N w 1 i e x p ( − y i ∑ m = 1 M α m G m ( x i ) ) = ∑ i = 1 N w 1 i ∏ m = 1 M e x p ( − y i α m G m ( x i ) ) = ∑ i = 1 N w 1 i e x p ( − y i α 1 G 1 ( x i ) ) ∏ m = 2 M e x p ( − y i α m G m ( x i ) ) = Z 1 ∑ i = 1 N w 2 i ∏ m = 2 M e x p ( − y i α m G m ( x i ) ) = ∏ j = 1 M − 1 Z j ∑ i = 1 N w M i e x p ( − y i α M G M ( x i ) ) = ∏ m = 1 M Z m \begin{aligned} &amp;\frac{1}{N}\sum_{i=1}^Nexp(-y_if(x_i)) \\ &amp;= \frac{1}{N}\sum_{i=1}^Nexp(-y_i\sum_{m=1}^M\alpha_mG_m(x_i)) \\ &amp;= \sum_{i=1}^Nw_{1i}exp(-y_i\sum_{m=1}^M\alpha_mG_m(x_i)) = \sum_{i=1}^Nw_{1i}\prod_{m=1}^Mexp(-y_i\alpha_mG _m(x_i)) \\ &amp;=\sum_{i=1}^Nw_{1i}exp(-y_i\alpha_1G _1(x_i))\prod_{m=2}^Mexp(-y_i\alpha_mG _m(x_i)) \\ &amp;= Z_1\sum_{i=1}^Nw_{2i}\prod_{m=2}^Mexp(-y_i\alpha_mG _m(x_i)) = \prod_{j=1}^{M-1}Z_j\sum_{i=1}^Nw_{Mi}exp(-y_i\alpha_MG_M(x_i)) \\ &amp;= \prod_{m=1}^MZ_m \end{aligned} N1i=1Nexp(yif(xi))=N1i=1Nexp(yim=1MαmGm(xi))=i=1Nw1iexp(yim=1MαmGm(xi))=i=1Nw1im=1Mexp(yiαmGm(xi))=i=1Nw1iexp(yiα1G1(xi))m=2Mexp(yiαmGm(xi))=Z1i=1Nw2im=2Mexp(yiαmGm(xi))=j=1M1Zji=1NwMiexp(yiαMGM(xi))=m=1MZm

8.4.2二分类问题AdaBoost的训练误差界

∏ m = 1 M Z m = ∏ m = 1 M [ 2 e m ( 1 − e m ) ] = ∏ m = 1 M 1 − 4 γ m 2 ⩽ e x p ( − 2 ∏ m = 1 M γ m 2 ) \prod_{m=1}^MZ_m=\prod_{m=1}^M[2\sqrt{e_m(1-e_m)}] = \prod_{m=1}^M\sqrt{1-4\gamma^2_m} \leqslant exp(-2\prod_{m=1}^M\gamma^2_m) m=1MZm=m=1M[2em(1em) ]=m=1M14γm2 exp(2m=1Mγm2)
其中
e m = ∑ y i ≠ G m ( x i ) w m i = ∑ i = 1 N w m i I ( y i ≠ G m ( x i ) ) e_m =\sum_{y_i\neq G_m(x_i)}w_{mi} = \sum_{i=1}^Nw_{mi}I(y_i \neq G_m(x_i)) em=yi̸=Gm(xi)wmi=i=1NwmiI(yi̸=Gm(xi)),
γ m = 1 2 − e m \gamma_m = \frac{1}{2}-e_m γm=21em,
此定理说明:

  • e m e_m em代表每轮的分类误差率, e m e_m em越小分类效果越好, r m r_m rm越大
  • r m r_m rm代表当前基本分类器对随机猜测结果的提升程度
  • 不等式 ∏ m = 1 M Z m ⩽ e x p ( − 2 ∏ m = 1 M γ m 2 ) \prod_{m=1}^MZ_m \leqslant exp(-2\prod_{m=1}^M\gamma^2_m) m=1MZmexp(2m=1Mγm2) 代表,随着训练轮数m的增加,训练误差减少,且降低的速度很快(指数)

证:

  • 前半部分
    Z m = ∑ i = 1 N w m i e x p ( − α m y i G m ( x i ) ) = ∑ y i = G m ( x i ) w m i e − α m + ∑ y i ≠ G m ( x i ) w m i e α m = ( 1 − e m ) e − α m + e m e α m = 2 e m ( 1 − e m ) = 1 − 4 γ m 2 \begin{aligned} Z_m &amp;=\sum_{i=1}^Nw_{mi}exp(-\alpha_my_iG_m(x_i)) \\ &amp;= \sum_{y_i=G_m(x_i)}w_{mi}e^{-\alpha_m} + \sum_{y_i\neq G_m(x_i)}w_{mi}e^{\alpha_m} \\ &amp;= (1-e_m)e^{-\alpha_m} + e_me^{\alpha_m} \\ &amp;= 2\sqrt{e_m(1-e_m)} = \sqrt{1-4\gamma^2_m} \end{aligned} Zm=i=1Nwmiexp(αmyiGm(xi))=yi=Gm(xi)wmieαm+yi̸=Gm(xi)wmieαm=(1em)eαm+emeαm=2em(1em) =14γm2
  • 后半部分: ∏ m = 1 M 1 − 4 γ m 2 ⩽ e x p ( − 2 ∏ m = 1 M γ m 2 ) \prod_{m=1}^M\sqrt{1-4\gamma^2_m} \leqslant exp(-2\prod_{m=1}^M\gamma^2_m) m=1M14γm2 exp(2m=1Mγm2)
    • f ( x ) = ( 1 − x ) 1 / 2 f(x)=(1-x)^{1/2} f(x)=(1x)1/2,泰勒展开
      • 求导, f ′ ( x ) = − 1 2 ( 1 − x ) − 1 2 , f ′ ′ ( x ) = − 1 4 ( 1 − x ) − 3 2 f&#x27;(x) = -\frac{1}{2}(1-x)^{-\frac{1}{2}},f&#x27;&#x27;(x)=-\frac{1}{4}(1-x)^{-\frac{3}{2}} f(x)=21(1x)21,f(x)=41(1x)23

      • 展开, f ( x ) = f ( 0 ) + x f ′ ( 0 ) + 1 2 x 2 f ′ ′ ( 0 ) + . . . . ≈ 1 − 1 2 x − 1 8 x 2 f ( 4 r 2 ) ≈ 1 − 2 r 2 − 2 r 4 \begin{aligned}f(x) &amp;= f(0) + xf&#x27;(0)+\frac{1}{2}x^2f&#x27;&#x27;(0)+....\\&amp;\approx1-\frac{1}{2}x-\frac{1}{8}x^2 \\f(4r^2)&amp;\approx1-2r^2-2r^4\end{aligned} f(x)f(4r2)=f(0)+xf(0)+21x2f(0)+....121x81x212r22r4

    • g ( x ) = e x g(x)=e^x g(x)=ex,泰勒展开
      • 求导, g ′ ( x ) = e x , g ′ ′ ( x ) = e x g&#x27;(x) = e^x,g&#x27;&#x27;(x)=e^x g(x)=ex,g(x)=ex
      • 展开, g ( x ) = g ( 0 ) + x g ′ ( 0 ) + 1 2 x 2 g ′ ′ ( 0 ) + . . . . ≈ 1 + x + 1 2 x 2 g ( − 2 r 2 ) ≈ 1 − 2 r 2 + 2 r 4 \begin{aligned}g(x) &amp;= g(0) + xg&#x27;(0)+\frac{1}{2}x^2g&#x27;&#x27;(0)+....\\&amp;\approx1+x+\frac{1}{2}x^2 \\g(-2r^2)&amp;\approx1-2r^2+2r^4\end{aligned} g(x)g(2r2)=g(0)+xg(0)+21x2g(0)+....1+x+21x212r2+2r4
    • f ( 4 r 2 ) &lt; g ( − 2 r 2 ) f(4r^2)&lt;g(-2r^2) f(4r2)<g(2r2)
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值