5.7 多维样条

之前一直讨论的是一维的样条模型,然而每个模型均可用在多维的场景中。假设 $X\in\mathbb{R}^2$,$h_{1k}(X_1)$,$k=1,\dots,M_1$ 为表达坐标 $X_1$ 的函数的一组基函数,类似地,$h_{2k}(X_2)$,$k=1,\dots,M_1$ 为表达坐标 $X_2$ 的函数的一组基函数。则 $M_1\times M_2$ 维的 张量积(tensor product) 基函数定义为:

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

则一个二维的函数可用上式的基函数表达为:

$$g(X) = \sum_{j=1}^{M_1} \sum_{k=1}^{M_2} \theta_{jk}g_{jk}(X) \tag{5.36}$$
**图 5.10**:B 样条的张量积基函数,图中展示了某几对组合。其中每个二维函数均为相应的两个一维边际函数的乘积。
图 5.10:B 样条的张量积基函数,图中展示了某几对组合。其中每个二维函数均为相应的两个一维边际函数的乘积。

图 5.10 展示了 B 样条的张量积基函数。系数可以与之前一样用最小二乘拟合得出。这种处理方法可以推广到 $d$ 维度,然而需要注意基函数的维度以指数级别快速地增加——维数灾难的再现。第九章会介绍一个只使用最小二乘中必需的张量积基函数的贪心前向算法,MARS。

**图 5.11**:图 2.1 的模拟数据示例。上图为加性对数几率回归模型的判别边界,对两个坐标分别使用自然样条(整体 $df=1+(4-1)+(4-1)=7$)。下图为两个坐标的自然样条基函数的张量积生成的结果(整体 $df=4\times4=16$)。紫色的虚线为这个例子的贝叶斯判别边界。
图 5.11:图 2.1 的模拟数据示例。上图为加性对数几率回归模型的判别边界,对两个坐标分别使用自然样条(整体 $df=1+(4-1)+(4-1)=7$)。下图为两个坐标的自然样条基函数的张量积生成的结果(整体 $df=4\times4=16$)。紫色的虚线为这个例子的贝叶斯判别边界。

图 5.11 演示了在第二章的分类模拟例子中,加性和张量积(自然)样条的区别。在二分类的训练样本上拟合对数几率回归模型 $\text{logit}[\operatorname{Pr}(T|x)]=h(x)^T\theta$,估计的判别边界为等值线 $h(x)^T\hat{\theta}=0$。张量积基函数方法可得到更灵活的判别边界,但同时也产生了一些散乱的结构。

一维的平滑样条(含有正则化)也可推广到高维的场景中。假设样本为 $y_i,x_i\in\mathbb{R}^d$,目标是寻找 $d$ 维上的回归函数 $f(x)$。解决思路如下:

$$\min_f \sum_{i=1}^N \{y_i - f(x_i)\}^2 + \lambda J[f] \tag{5.37}$$

其中 $J$ 为可以在 $\mathbb{R}^d$ 保证函数 $f$ 稳定性的一个合适的惩罚范函(functional)1。例如,在 $\mathbb{R}^2$ 上,可很自然地将一维函数粗糙程度的惩罚项(式 5.9)推广为:

$$ J[f] = \int_\mathbb{R} \left [ \left ( \frac{\partial^2 f(x)}{\partial x_1^2} \right )^2 + 2 \left ( \frac{\partial^2 f(x)}{\partial x_1 \partial x_2} \right )^2 + \left ( \frac{\partial^2 f(x)}{\partial x_2^2} \right )^2 \right ] dx_1 dx_2 \tag{5.38}$$

使用上式定义的惩罚项,式 5.37 的最优解为一个平滑的二维曲面,被称为薄板样条(thin-plate spline)。它与一维的三次平滑样条有很多相似的性质:

  • 当 $\lambda\rightarrow0$,最优解接近一个(使惩罚项 5.38 最小的那个)插值函数。
  • 当 $\lambda\rightarrow\infty$,最优解接近最小二乘平面。
  • 当 $\lambda$ 介于上两种情况之间,最优解可写为基函数的线性拓展,其系数可通过广义岭回归获得。

最优解可写为:

$$f(x) = \beta_0 + \beta^T x + \sum_{j=1}^N \alpha_j h_j(x) \tag{5.39}$$

其中 $h_j(x)=\|x-x_j\|^2\log\|x-x_j\|。这样的 $h_j(x)$ 是一种径向基函数(radial basis function),下一节会详细介绍。将式 5.39 代入到式 5.37,则可化简到一个有限维度的惩罚最小二乘问题,从而可以解出系数的估计值。为了使得惩罚项是有限的,系数 $\alpha_j$ 需要满足一组线性约束(练习 5.14)。

在任意的维度 $d$ 上,恰当地定义了 $J$ 后,即可推广薄板样条的定义。

为了计算和理解的简便,实际操作中也普遍使用一些混合的方法。与一维平滑样条不同,没有了可被利用的稀疏结构,薄板样条的计算复杂度达到了 $O(N^3)$。然而如同在单变量的平滑样条中一样,虽然最优解(式 5.39)包含了 $N$ 个结点,但用很少的结点就可以得到近似的结果。

实际操作中,通常使用一组足以覆盖定义域的格栅作为结点就足够了。可像之前一样对简化后的基拓展计算惩罚项。使用 $K$ 个结点后,可将计算复杂度降低至 $O(NK^2+K^3)$。图 5.12 为在某些心脏病风险因子上的薄板样条拟合结果,一组等值线描绘了曲面。图中包含了输入特征变量的点,以及拟合中使用的结点。其中的 $\lambda$ 取值由 $\text{df}_\lambda=\operatorname{trace}(\mathbf{S}_\lambda)=15$ 倒推得出。

**图 5.12**:心脏病数据的薄板样条拟合,以等值线图来展示。输出变量为收缩血压(高压),模型输入变量为年龄(age)和肥胖程度(obesity)。图中标记了样本点,和作为结点的格栅。计算中需要注意只使用样本点形成的凸多边形(convex hull)内的格栅点(红色)作为结点,而不使用外面的点(绿色)。
图 5.12:心脏病数据的薄板样条拟合,以等值线图来展示。输出变量为收缩血压(高压),模型输入变量为年龄(age)和肥胖程度(obesity)。图中标记了样本点,和作为结点的格栅。计算中需要注意只使用样本点形成的凸多边形(convex hull)内的格栅点(红色)作为结点,而不使用外面的点(绿色)。

可以更一般地将 $f\in\mathbb{R}^d$ 表达为任意多的基函数组成的拓展,再用类似于等式 5.38 中的正则项来控制复杂度。例如,可以用诸如第 5.9.2 节中推荐的单变量 B 样条基函数,通过张量积构建的所有如式 5.35 中两两交叉的单变量平滑样条基函数集合。这样产生的基函数数量随着维度以指数级增加,通常必须适度地减少每个坐标的基函数数量。

第九章介绍的加性样条模型是一中有约束的多维度样条函数。其也可用这种广义的定义式表达;即存在着某个惩罚项 $J[f]$,可以保证解的形式为 $f(X)=\alpha+f_1(X_1)+\dots+f_d(X_d)$,而且每个函数 $f_j$ 为单变量样条函数。这时的惩罚项可以自然地被简化成 $f$ 为加性的假设,然后分别对每个组成函数添加惩罚项:

$$\begin{align} J[f] &= J(f_1 + f_2 + \dots + f_d) \\ &= \sum_{j=1}^d \int f^{\prime\prime}_j(t_j)^2 dt_j \tag{5.40}\end{align}$$

这很自然地延伸到了方差分析(ANOVA)样条分解:

$$ f(X) = \alpha + \sum_j f_j(X_j) + \sum_{j < k} f_{jk}(X_j, X_k) + \dots \tag{5.41}$$

其中每一项为某个维度的样条函数。这里也有很多待确定的细节:

  • 交叉项的最大级数:上文中展示过级数为 2 的情况。
  • 选择模型包含的项:并不是所有的基函数和其交叉项都要被包含在模型中。
  • 用什么样的表达式,备选的有:
    • 回归样条,每个坐标使用相对少一些的基函数,以及张量积产生的交叉项;
    • 诸如平滑样条中的全部基函数,要对拓展中每一项加上相应的正则化。

很多场景中,潜在的(特征变量)维度很大,非常需要可自动化处理的方法。分别在第九、十章介绍的 MARS 和 MART 方法便可用于这种场景。


本节练习

练习 5.14

Derive the constraints on the αj in the thin-plate spline expan- sion (5.39) to guarantee that the penalty J(f ) is finite. How else could one ensure that the penalty was finite?


  1. 范函(functional),可理解为定义在函数集上的函数。 ↩︎

上一页
下一页