# 前向分步算法

**前向分步算法 forward algorithm**

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

$$
\min_{\beta,\gamma}\sum_{i=1}^NL(y_i,\beta b(x_i;\gamma))
$$

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

**步骤：**\
1\. 令$$f_0(x)=0$$\
2\. 假设当前是第m个基函数，损失函数为：

$$
L(y_i,f_{m-1}(x_i)+\beta b(x_i, \gamma))
$$

1.  极小化损失函数，得到参数$$\beta_m, \gamma_m$$ &#x20;

    $$
    (\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.  更新$$f_m$$ &#x20;

    $$
    f_m(x) = f_{m-1}(x) + \beta_mb(x;\gamma_m)
    $$

    5.2-4步进行M次，共得到M个$$\beta$$和$$\gamma$$ &#x20;
3.  得到加法模型 &#x20;

    $$
    f(x) = f_M(x) = \sum_{m=1}^M\beta_mb(x;\gamma_m)
    $$
