前向分步算法 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))
  3. 极小化损失函数,得到参数β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))
  4. 更新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
  5. 得到加法模型
    f(x)=fM(x)=m=1Mβmb(x;γm) f(x) = f_M(x) = \sum_{m=1}^M\beta_mb(x;\gamma_m)

results matching ""

    No results matching ""