前向分步算法

前向分步算法 forward algorithm

因为学习的是加法模型,如果能从前向后,每一步只学习一个基函数及其系数,逐渐逼近优化目标函数式(2),那么就可以简化优化的复杂度。 具体地,每步只需要优化如下损失函数:

minβ,γi=1NL(yi,βb(xi;γ))\min_{\beta,\gamma}\sum_{i=1}^NL(y_i,\beta b(x_i;\gamma))

输入: 训练数据集T 损失函数L(y, f(x)) 基函数集b(x;γ){b(x;\gamma)} 输出: 加法模型f(x)

步骤: 1. 令f0(x)=0f_0(x)=0 2. 假设当前是第m个基函数,损失函数为:

L(yi,fm1(xi)+βb(xi,γ))L(y_i,f_{m-1}(x_i)+\beta b(x_i, \gamma))
  1. 极小化损失函数,得到参数βm,γm\beta_m, \gamma_m

    (βm,γm)=argminβ,γi=1NL(yi,fm1(xi)+βb(xi,γ))(\beta_m, \gamma_m) = \arg\min_{\beta, \gamma}\sum_{i=1}^NL(y_i,f_{m-1}(x_i)+\beta b(x_i, \gamma))
  2. 更新fmf_m

    fm(x)=fm1(x)+βmb(x;γm)f_m(x) = f_{m-1}(x) + \beta_mb(x;\gamma_m)

    5.2-4步进行M次,共得到M个β\betaγ\gamma

  3. 得到加法模型

    f(x)=fM(x)=m=1Mβmb(x;γm)f(x) = f_M(x) = \sum_{m=1}^M\beta_mb(x;\gamma_m)

Last updated