Skip to content

Commit

Permalink
fix typo
Browse files Browse the repository at this point in the history
  • Loading branch information
szcf-weiya committed Dec 18, 2018
1 parent 43cdc52 commit 099cf96
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 43 deletions.
Original file line number Diff line number Diff line change
@@ -1,39 +1,39 @@
# 5.7 多维样条

| 原文 | [The Elements of Statistical Learning](../book/The Elements of Statistical Learning.pdf) |
| 原文 | [The Elements of Statistical Learning](../book/The Elements of Statistical Learning.pdf#page=181) |
| ---- | ---------------------------------------- |
| 翻译 | szcf-weiya |
| 时间 | 2017-02-09 |
| 状态 | Done |


至今我们集中讨论了一维样条模型。每种方法都有类似的多维情形。假设$X\in\IR$,我们有基函数$h_{1k}(X_1),k=1,\ldots,M_1$来表示坐标$X_1$的函数,同样地,$M_2$个表示坐标$X_2$的函数$h_{2k}(X_2)$。则$M_1\times M_2$维的张量积基地定义如下
目前为止我们集中讨论了一维样条模型。每种方法都有类似的多维情形。假设 $X\in\IR$,并且我们有用于表示坐标 $X_1$ 的函数的基函数 $h_{1k}(X_1),k=1,\ldots,M_1$,同样地,$M_2$ 个表示坐标 $X_2$ 的基函数 $h_{2k}(X_2)$。则 $M_1\times M_2$ 维的 **张量积基底 (tensor product basis)** 定义如下

$$
g_{jk}(X)=h_{1j}(X_1)h_{2k}(X_2),j=1,\ldots, M_1, k=1,\ldots,M_2\tag{5.35}
$$

可以用来表示二维函数
它可以用来表示二维函数:

$$
g(X)=\sum\limits_{j=1}^{M_1}\sum\limits_{k=1}^{M_2}\theta_{jk}g_{jk}(X)\tag{5.36}
$$

![](../img/05/fig5.10.png)

图5.10展示了采用B样条的张量积的基底。系数和之前一样,可以采用最小二乘来拟合。这可以推广到$d$维的情形,但是注意到基底的位数会指数增长得很快——维数灾难的另一种表现形式。第9章讨论的MARS过程是一种将真正需要的张量积加入模型的贪婪向前算法
图 5.10 展示了采用 B 样条的张量积的基底。系数和之前一样采用最小二乘来拟合。这可以推广到 $d$ 维的情形,但是注意到基底的维数会指数型增长——维数灾难的另一种表现形式。第 9 章讨论的 [MARS 过程](../09-Additive-Models-Trees-and-Related-Methods/9.4-MARS/index.html) 是一种通过最小二乘只将真正需要的张量积加入模型的向前贪婪算法

![](../img/05/fig5.11.png)

图5.11展示了将可加样条和张量积(自然)样条应用到第2章中的模拟分类例子中的差异。逻辑斯底回归模型$\logit[Pr(T\mid x)]=h(x)^T\theta$是对二值响应变量拟合的模型,并且估计出的判别边界为等高线$h(x)^T\hat\theta=0$。在判别边界张量积的基底可以实现更多的灵活性,但同时也引入了一些假的结构
图 5.11 展示了将可加样条和张量积(自然)样条应用到[第 2 章](../02-Overview-of-Supervised-Learning/2.1-Introduction/index.html)中的模拟分类例子中的区别。逻辑斯底回归模型$\logit[\Pr(T\mid x)]=h(x)^T\theta$ 是对二值响应变量拟合的模型,并且估计出的判别边界为等高线 $h(x)^T\hat\theta=0$。在判别边界张量积的基底可以实现更多的灵活性,但同时也引入了一些 **假的 (spurious)** 结构

一维光滑样条(通过正则化)也可以一般化为高维情形。假设我们有数据对$y_i,x_i$,其中$x_i\in \IR^d$,并且寻找$d$维回归函数$f(x)$。想法是求解下面问题
一维光滑样条(通过正则化)也可以推广到高维情形。假设我们有数据对 $y_i,x_i$,其中 $x_i\in \IR^d$,并且寻找 $d$ 维回归函数 $f(x)$。想法是求解下面问题

$$
\underset{f}{\min}\sum\limits_{i=1}^N\{y_i-f(x_i)\}^2+\lambda J[f]\tag{5.37}
$$

其中$J$是对$\IR^d$中的函数$f$标准化的合适的惩罚函数。举个例子,$IR^2$上一维光滑性惩罚(5.9)的自然推广为
其中 $J$ 是用于 $\IR^d$ 中的函数 $f$ 标准化的某个合适的惩罚函数。举个例子,$IR^2$ 上一维光滑性惩罚 (5.9) 的自然推广为

$$
J[f]=\int\int_{\IR^2}\Big[
Expand All @@ -43,53 +43,53 @@ J[f]=\int\int_{\IR^2}\Big[
\Big]dx_1dx_2\tag{5.38}
$$

采用这个惩罚去优化(5.37)得到光滑的二维曲面,被称为thin-plate样条。这与一维三次光滑样条有许多相同的性质:
采用这个惩罚去优化 (5.37) 得到光滑的二维曲面,被称为 thin-plate 样条。这与一维三次光滑样条有许多相同的性质:

- 当$\lambda\rightarrow 0$,解近似为插值函数[类似最小惩罚(5.38)]
- 当$\lambda\rightarrow\infty$,解近似为最小二乘平面;
- 对于中等大小的$\lambda$,解可以便是成基函数的线性展开,其中系数可以通过广义的岭回归得到。
- $\lambda\rightarrow 0$,解近似为插值函数类似最小惩罚(5.38)
- $\lambda\rightarrow\infty$,解近似为最小二乘平面;
- 对于中等大小的 $\lambda$,解可以表示成基函数的线性展开,其中系数可以通过广义的岭回归得到。

解有如下形式

$$
f(x)=\beta_0+\beta^Tx+\sum\limits_{j=1}^N\alpha_jh_j(x),\tag{5.39}
$$

其中 $h_j(x)=\Vert x-x_j \Vert^2\LOG\Vert x-x_j\Vert$。这些 $h_j$ 是 **径向基函数 (radial basis functions)** 的例子,将在下一节中详细讨论。通过将 (5.39) 代入 (5.37) 退化为有限维带惩罚的最小二乘问题,然后可以得到系数。对于有限的惩罚,系数 $\alpha_j$ 必须满足一系列的线性约束;参见 [练习 5.14](https://github.com/szcf-weiya/ESL-CN/issues/166)

其中$h_j(x)=\Vert x-x_j \Vert^2\LOG\Vert x-x_j\Vert$。这些$h_j$是径向基函数的例子,将在下一节中详细讨论。通过将(5.39)代入(5.37)可以得到系数,这退化为有限维带惩罚的最小二乘问题。对于有限的惩罚,系数$\alpha_j$必须满足一系列的线性约束;参见练习5.14
对于任意维度的 $d$,当采用合适的更一般的 $J$,可以定义更一般的 thin-plate 样条

对于任意维度的$d$,当采用合适的更一般的$J$,可以定义更一般的thin-plate样条
实际中有许多流行的 **混合方法 (hybrid approaches)**,都是为了计算和概念上的简单性。不像一维的光滑样条,由于一般没有稀疏结构可以利用,thin-plate 的计算复杂度为 $O(N^3)$。然而,和单变量光滑样条一样,我们可以用少于解 (5.39) 规定的 $N$ 个结点

实际中有许多流行的混合方法(hybrid approaches),都是为了计算和概念上的简单性。不像一维的光滑样条,由于没有一般的稀疏结构可以采用,thin-plate的计算复杂度为$O(N^3)$。然而,和单变量光滑样条一样,我们可以用非常少于解(5.39)规定的$N$个结点。

实际中,采用覆盖定义域的网格通常就足够了。这个reduced版本的惩罚的计算和前面一样。采用$K$个结点,计算量降至$O(NK^2+K^3)$。
实际中,通常采用覆盖定义域的网格就足够了。这个 reduced 版本的惩罚的计算和前面一样。采用 $K$ 个结点,计算量降至 $O(NK^2+K^3)$。

![](../img/05/fig5.12.png)

图5.12显示了对某些心脏病危险因子拟合thin-plate样条的结果,表示了等高图的表面。输入特征的位置已经表示处理,以及在拟合中采用的结点。注意到$\lambda$通过$\df_\lambda=\trace(S_\lambda)=15$。
图 5.12 显示了对某些心脏病危险因子拟合 thin-plate 样条的结果,其中用等高图来表示表面。输入特征的位置已经表示出来,以及在拟合中采用的结点。注意到 $\lambda$ 通过 $\df_\lambda=\trace(S_\lambda)=15$ 确定

更一般地,可以将$f\in\IR^d$表示成任意多基函数的展开,并且通过应用类似(5.38)的正则器来控制复杂度。举个例子,通过所有成对单变量光滑样条基函数(5.35)的张量积来构造基底,举个例子,可以采用5.9.2节推荐的单变量B样条基。这导致随着维数增大,基函数指数增长,一般地我们必须相应地减少每个坐标下的函数个数。
更一般地,可以将 $f\in\IR^d$ 表示成任意多基函数的展开,并且通过应用类似 (5.38) 的正则器来控制复杂度。举个例子,通过所有成对单变量光滑样条基函数 (5.35) 的张量积来构造基底,比如可以采用 [5.9.2 节](5.9-Wavelet-Smoothing/index.html#_2) 推荐的单变量 B 样条基。这导致随着维数增大,基函数指数型增长,一般地我们必须相应地减少每个坐标下的函数个数。

第9章讨论的可加样条模型是多维样条的限制版本。他们也可以用这种一般方式来表示;也就是,存在惩罚$J[f]$保证解的形式为$f(X)=\alpha+f_1(X_1)+\cdots+f_d(X_d)$,并且每个函数$f_j$是单变量样条。在这种情形下,惩罚有时候退化,而且假设$f$为可加的会更自然,接着简单地在每个组分函数上加上额外的惩罚
[第 9 章](../09-Additive-Models-Trees-and-Related-Methods/9.1-Generalized-Additive-Models/index.html)讨论的可加样条模型是多维样条的限制版本。他们也可以用这种一般的方式来表示;也就是,存在惩罚 $J[f]$ 保证解的形式为 $f(X)=\alpha+f_1(X_1)+\cdots+f_d(X_d)$,并且每个函数 $f_j$ 是单变量样条。在这种情形下,惩罚有时候退化,而且假设 $f$ 为可加的会更自然,接着简单地在每个组分函数上加上额外的惩罚

$$
\begin{align}
J[f] &= J(f_1+f_2+\cdots+f_d)\\
J[f] &= J(f_1+f_2+\cdots+f_d)\notag\\
&=\sum\limits_{j=1}^d\int f_j^{(2)}(t_j)^2dt_j\tag{5.40}
\end{align}
$$

这写自然地推广到ANOVA样条分解
这些可以自然地推广到 ANOVA 样条分解

$$
f(X)=\alpha+\sum_jf_j(X_j)+\sum\limits_{j < k}f_{jk}(X_j,X_k)+\cdots\tag{5.41}
$$

其中每个组分都是所要求维度下的样条。可以有许多选择:

- 交叉项的最大order——上面我们展示了order为2的情形
- 交叉项的最大 order —— 上文我们展示了 order 为 2 的情形
- 包含进模型的项——不是所有的主影响和交叉项都需要
- 表示方法——选择有
- 每个坐标采用相对较少的基函数且用它们的张量积作为交叉项的回归样条
- 和光滑样条一样采用完整的基,并且在展开式中包含每一项的合适的正则器。
- 采用表示方法——具体选择有
- 每个坐标采用相对较少的基函数且用它们的张量积作为交叉项的回归样条
- 和光滑样条一样采用完整的基,并且在展开式中包含每一项的合适的正则器。

在许多情形下,当潜在维度(特征)很大,需要自动化的方法。MARS和MART(分别在第9章和第10章)都是这类方法。
在许多情形下,当潜在维度(特征)很大,需要自动化的方法。[MARS](../09-Additive-Models-Trees-and-Related-Methods/9.4-MARS/index.html)[MART](../10-Boosting-and-Additive-Trees/10.10-Numerical-Optimization-via-Gradient-Boosting/index.html)(分别在第 9 章和第 10 章)都是这类方法。
Original file line number Diff line number Diff line change
Expand Up @@ -13,50 +13,48 @@
\hat\Theta_m = \text{arg }\underset{\Theta_m}{\text{min}}\sum\limits_{i=1}^NL(y_i,f_{m-1}(x_i)+T(x_i;\Theta_m))\tag{10.29}
$$

采用任意可导损失准则的(10.29)的快速近似算法可以类比数值优化导出。

在训练数据上用$f(x)$来预测$y$的损失为
采用任意可导损失准则的 (10.29) 的快速近似算法可以类比数值优化导出。在训练数据上用 $f(x)$ 来预测 $y$ 的损失为

$$
L(f) = \sum\limits_{i=1}^NL(y_i, f(x_i))\tag{10.33}
$$

目标是最小化关于$f$的函数$L(f)$,其中$f(x)$限定为树的和(10.28),
目标是最小化关于 $f$ 的函数 $L(f)$,其中 $f(x)$ 限定为树的和 (10.28),

!!! note "Recall"
$$
f_M(x)=\sum\limits_{m=1}^MT(x;\Theta_m)\tag{10.28}
$$

忽略这个限定,最小化(10.33)可以看成数值优化
忽略这个限定,最小化 (10.33) 可以看成数值优化

$$
\hat{\mathbf f} = \text{arg }\underset{\mathbf f}{\min}L(\mathbf f)\tag{10.34}
$$

其中参数$\mathbf f\in \IR^N$ 是在$N$个数据点$x_i$的近似的函数值$f(x_i)$:
其中参数 $\mathbf f\in \IR^N$ 是在 $N$ 个数据点 $x_i$ 的近似的函数值 $f(x_i)$:

$$
\mathbf f=\{f(x_1),f(x_2),\ldots,f(x_N)))\}^T
$$

数值优化过程是将(10.34)看成向量的和来求解
数值优化过程是将 (10.34) 看成向量的和来求解

$$
\mathbf f_M=\sum\limits_{m=1}^M\mathbf h_m,\qquad \mathbf h_m\in \IR^N
$$

其中$\mathbf f_0=\mathbf h_0$是初识化的猜测,并且每个接下来的$\mathbf f_m$基于当前的参数向量$\mathbf f_{m-1}$来导出。<!--,而$\mathbf f_{m-1}$为此前已经更新的和。-->数值优化方法的区别在于它们采用不同的方法来计算每个增长向量$\mathbf h_m$。
其中 $\mathbf f_0=\mathbf h_0$ 是初识化的猜测,并且每个接下来的 $\mathbf f_m$ 基于当前的参数向量 $\mathbf f_{m-1}$来导出。<!--,而$\mathbf f_{m-1}$为此前已经更新的和。-->数值优化方法的区别在于它们采用不同的方法来计算每个增长向量 $\mathbf h_m$。

## 最速下降

**最速下降(steepest descent)**选择$\mathbf h_m=-\rho_m \mathbf g_m$,其中$\rho_m$为标量值,$\mathbf g_m\in R^N$是在$\mathbf f=\mathbf f_{m-1}$取值的$L(\mathbf f)$的梯度。$\mathbf g_m$的组分为
**最速下降 (steepest descent)** 选择 $\mathbf h_m=-\rho_m \mathbf g_m$,其中 $\rho_m$ 为标量值,$\mathbf g_m\in \IR^N$ 是在 $\mathbf f=\mathbf f_{m-1}$ 取值的 $L(\mathbf f)$ 的梯度。$\mathbf g_m$ 的组分为

$$
g_{im}=\Big[\frac{\partial L(y_i, f(x_i))}{\partial f(x_i)} \Big]_{f(x_i)=f_{m-1}(x_i)}\tag{10.35}
$$

**步长(step length)**$\rho_m$是下式的解
**步长 (step length)** $\rho_m$ 是下式的解
$$
\rho_m = \text{arg }\underset{\rho}{\text{min}}L(\mathbf f_{m-1}-\rho \mathbf g_m)\tag{10.36}
$$
Expand All @@ -66,11 +64,11 @@ $$
\mathbf f_m = \mathbf f_{m-1}-\rho_m\mathbf g_m
$$

这个过程一直重复直到下一次迭代。最速下降可以看成是非常贪婪的策略,因为$-\mathbf g_m$$\IR^N$空间中$L(\mathbf f)$$\mathbf f= \mathbf f_{m-1}$处最速下降的局部方向。
这个过程一直重复直到下一次迭代。最速下降可以看成是非常贪婪的策略,因为 $-\mathbf g_m$$\IR^N$ 空间中 $L(\mathbf f)$$\mathbf f= \mathbf f_{m-1}$ 处最速下降的局部方向。

## gradient boosting

**Forward stagewise boosting**算法10.2)也是非常贪婪的策略。每一步中,在给定当前模型$f_{m-1}$以及其拟合值$f_{m-1}(x_i)$下,得到的解是在最大程度上降低(10.29)的树。
**Forward stagewise boosting**算法 10.2)也是非常贪婪的策略。每一步中,在给定当前模型 $f_{m-1}$ 以及其拟合值 $f_{m-1}(x_i)$ 下,得到的解是在最大程度上降低 (10.29) 的树。

!!! note "Recall"
$$
Expand All @@ -84,17 +82,17 @@ $$
\hat \gamma_{jm}=\text{arg }\underset{\gamma_{jm}}{\text{min}}\sum\limits_{x_i\in R_{jm}}L(y_i,f_{m-1}(x_i)+\gamma_{jm})\tag{10.30}
$$

向前逐步方法中(10.30)的解类似于在最速下降方向对(10.36)进行**线搜索(line search)**。区别在于(10.30)中对$\mathbf t_m$的组分进行单独的线搜索,这里的组分是对应每个单独的终止结点$\\{T(x_i;\Theta_m)\\}\_{x_i\in R_{jm}}$,换句话说,就是对每个终止结点应用一次线搜索。
向前逐步方法中 (10.30) 的解类似于在最速下降方向对 (10.36) 进行 **线搜索(line search)**。区别在于 (10.30) 中对 $\mathbf t_m$ 的组分进行单独的线搜索,这里的组分是对应每个单独的终止结点 $\\{T(x_i;\Theta_m)\\}\_{x_i\in R_{jm}}$,换句话说,就是对每个终止结点应用一次线搜索。

如果在训练数据上最小化损失(10.33)是唯一的目标,则最速下降是更好的策略。梯度(10.35)对于任意可导的损失函数$L(y,f(x))$是很容易计算的,然而对于10.6节中讨论的鲁棒的准则来求解(10.29)是很困难的。很不幸的是梯度(10.35)仅仅在训练数据点$x_i$处有定义,然而最终的目标是将$f_M(x)$一般化到新数据,而不是仅仅是出现在训练集中的数据。
如果在训练数据上最小化损失(10.33)是唯一的目标,则最速下降是更好的策略。梯度 (10.35) 对于任意可导的损失函数 $L(y,f(x))$ 是很容易计算的,然而对于10.6节中讨论的鲁棒的准则来求解 (10.29) 是很困难的。很不幸的是梯度 (10.35) 仅仅在训练数据点 $x_i$ 处有定义,然而最终的目标是将 $f_M(x)$ 一般化到新数据,而不是仅仅是出现在训练集中的数据。

解决这个困境的一种可能方案是在第$m$次迭代中构造$T(x;\Theta_m)$,其预测值$\mathbf t_m$与负梯度尽可能接近。采用平方误差来衡量近似程度,则有
解决这个困境的一种可能方案是在第 $m$ 次迭代中构造 $T(x;\Theta_m)$,其预测值 $\mathbf t_m$ 与负梯度尽可能接近。采用平方误差来衡量近似程度,则有

$$
\hat\Theta_m = \text{arg }\underset{\Theta}{\text{min}}\sum\limits_{i=1}^N(-g_{im}-T(x_i;\Theta))^2\tag{10.37}
$$

也就是,用最小二乘对负梯度值(10.35)进行拟合。如10.9节提到的,对于最小二乘决策树生长(induction)存在快速算法。尽管(10.37)的解$\hat R_{jm}$会与求解(10.29)得到的$R_{jm}$不同,但一般而言它们已经足够近似来实现同样的目的。在任何情形下,向前逐步boosting过程,自上而下决策树生长(induction),都是近似过程。当构造完树(10.37),对应的每个区域的常数值由(10.30)给出。
也就是,用最小二乘对负梯度值 (10.35) 进行拟合。如 10.9 节提到的,对于最小二乘决策树生长(induction)存在快速算法。尽管(10.37)的解$\hat R_{jm}$会与求解(10.29)得到的 $R_{jm}$ 不同,但一般而言它们已经足够近似来实现同样的目的。在任何情形下,向前逐步boosting过程,自上而下决策树生长(induction),都是近似过程。当构造完树(10.37),对应的每个区域的常数值由(10.30)给出。

表10.2总结了通常使用的损失函数的梯度。对于平方误差损失,负梯度恰恰是普通的残差$-g_{im}=y_i-f_{m-1}(x_i)$,所以(10.37)等价于标准的最小二乘boosting。在绝对值损失下,负梯度为残差的符号,所以在每次迭代,(10.37)利用最小二乘对当前的残差的符号进行拟合。对于Huber M-回归,负梯度是这两者的综合(详见表10.2)。

Expand All @@ -118,7 +116,7 @@ $$
\end{align}
$$

其中$p_k(x)$(10.21)给出。尽管在每次迭代时,构造$K$个独立的树,但是它们通过式(10.21)关联起来。
其中 $p_k(x)$(10.21) 给出。尽管在每次迭代时,构造 $K$ 个独立的树,但是它们通过式(10.21)关联起来。

$$
p_k(x) = \frac{e^{f_k(x)}}{\sum_{\ell=1}^Ke^{f_\ell(x)}}\tag{10.21}
Expand Down

0 comments on commit 099cf96

Please sign in to comment.