RBF 插值的基本形式

从样本中心、径向核函数和 Gram matrix 出发,推导标量 RBF 插值的线性系统形式。

RBF 是 Radial Basis Function 的缩写,也就是 径向基函数。它的核心想法是:每一个样本点都在输入空间里生成一个以自己为中心的 影响场,新的输入点会同时受到所有样本中心的影响,最后把这些影响叠加起来得到输出。

这里的 “径向” 指的是函数只关心距离,而不直接关心方向。若样本中心是 xi\mathbf{x}_i,当前输入是 x\mathbf{x},那么第 ii 个样本中心对当前输入的影响通常写成

ϕ(xxi2)\phi(\|\mathbf{x}-\mathbf{x}_i\|_2)

也就是说,RBF 核函数真正接收到的是一个标量距离。

标量输出的基本形式

假设有 NN 个样本

x1y1,x2y2,,xNyN\mathbf{x}_1 \to y_1,\quad \mathbf{x}_2 \to y_2,\quad \cdots,\quad \mathbf{x}_N \to y_N

其中 xiRm\mathbf{x}_i \in \mathbb{R}^m 是输入,yiRy_i \in \mathbb{R} 是标量输出。RBF 插值函数写成

f(x)=i=1Nwiϕ(xxi2)f(\mathbf{x}) = \sum_{i=1}^{N} w_i \phi(\|\mathbf{x}-\mathbf{x}_i\|_2)

这里的 wiw_i 不是普通 blend weight,而是要求解出来的系数。它们的作用不是简单地表达 “第 ii 个样本占多少比例”,而是让整个函数满足插值条件

f(xi)=yif(\mathbf{x}_i)=y_i

所以 RBF 的逻辑可以先粗略理解成:

样本中心产生影响场
当前输入采样所有影响场
把所有影响场按系数叠加
要求叠加后的函数刚好经过训练样本

三个样本的展开

为了看清求和符号的来源,先考虑 3 个样本

x1y1,x2y2,x3y3\mathbf{x}_1 \to y_1,\quad \mathbf{x}_2 \to y_2,\quad \mathbf{x}_3 \to y_3

此时函数就是

f(x)=w1ϕ(xx12)+w2ϕ(xx22)+w3ϕ(xx32)\begin{align*} f(\mathbf{x}) &= w_1\phi(\|\mathbf{x}-\mathbf{x}_1\|_2) +w_2\phi(\|\mathbf{x}-\mathbf{x}_2\|_2) +w_3\phi(\|\mathbf{x}-\mathbf{x}_3\|_2) \end{align*}

为了让它经过三个样本点,需要满足

f(x1)=y1,f(x2)=y2,f(x3)=y3f(\mathbf{x}_1)=y_1,\qquad f(\mathbf{x}_2)=y_2,\qquad f(\mathbf{x}_3)=y_3

x1\mathbf{x}_1 代入函数,有

w1ϕ(x1x12)+w2ϕ(x1x22)+w3ϕ(x1x32)=y1w_1\phi(\|\mathbf{x}_1-\mathbf{x}_1\|_2) +w_2\phi(\|\mathbf{x}_1-\mathbf{x}_2\|_2) +w_3\phi(\|\mathbf{x}_1-\mathbf{x}_3\|_2) =y_1

x2\mathbf{x}_2 代入函数,有

w1ϕ(x2x12)+w2ϕ(x2x22)+w3ϕ(x2x32)=y2w_1\phi(\|\mathbf{x}_2-\mathbf{x}_1\|_2) +w_2\phi(\|\mathbf{x}_2-\mathbf{x}_2\|_2) +w_3\phi(\|\mathbf{x}_2-\mathbf{x}_3\|_2) =y_2

x3\mathbf{x}_3 代入函数,有

w1ϕ(x3x12)+w2ϕ(x3x22)+w3ϕ(x3x32)=y3w_1\phi(\|\mathbf{x}_3-\mathbf{x}_1\|_2) +w_2\phi(\|\mathbf{x}_3-\mathbf{x}_2\|_2) +w_3\phi(\|\mathbf{x}_3-\mathbf{x}_3\|_2) =y_3

这三条式子合起来就是一个线性方程组。

矩阵形式

把上面的三条约束写成矩阵,就得到

[ϕ(x1x12)ϕ(x1x22)ϕ(x1x32)ϕ(x2x12)ϕ(x2x22)ϕ(x2x32)ϕ(x3x12)ϕ(x3x22)ϕ(x3x32)][w1w2w3]=[y1y2y3]\begin{bmatrix} \phi(\|\mathbf{x}_1-\mathbf{x}_1\|_2) & \phi(\|\mathbf{x}_1-\mathbf{x}_2\|_2) & \phi(\|\mathbf{x}_1-\mathbf{x}_3\|_2) \\ \phi(\|\mathbf{x}_2-\mathbf{x}_1\|_2) & \phi(\|\mathbf{x}_2-\mathbf{x}_2\|_2) & \phi(\|\mathbf{x}_2-\mathbf{x}_3\|_2) \\ \phi(\|\mathbf{x}_3-\mathbf{x}_1\|_2) & \phi(\|\mathbf{x}_3-\mathbf{x}_2\|_2) & \phi(\|\mathbf{x}_3-\mathbf{x}_3\|_2) \end{bmatrix} \begin{bmatrix} w_1\\ w_2\\ w_3 \end{bmatrix} = \begin{bmatrix} y_1\\ y_2\\ y_3 \end{bmatrix}

也就是

Kw=y\mathbf{K}\mathbf{w}=\mathbf{y}

其中

Kji=ϕ(xjxi2)K_{ji}=\phi(\|\mathbf{x}_j-\mathbf{x}_i\|_2)

一般情况下,如果有 NN 个样本,那么

KRN×N,wRN,yRN\mathbf{K}\in \mathbb{R}^{N\times N},\qquad \mathbf{w}\in \mathbb{R}^N,\qquad \mathbf{y}\in \mathbb{R}^N

只要 K\mathbf{K} 可逆,就可以解出

w=K1y\mathbf{w}=\mathbf{K}^{-1}\mathbf{y}

数值实现中通常不会显式求逆,而是直接解线性系统。

w=solve(K,y)\mathbf{w}=\text{solve}(\mathbf{K},\mathbf{y})

得到 w\mathbf{w} 后,运行时对新输入 x\mathbf{x} 构造

k(x)=[ϕ(xx12)ϕ(xx22)ϕ(xxN2)]\mathbf{k}(\mathbf{x})= \begin{bmatrix} \phi(\|\mathbf{x}-\mathbf{x}_1\|_2)\\ \phi(\|\mathbf{x}-\mathbf{x}_2\|_2)\\ \vdots\\ \phi(\|\mathbf{x}-\mathbf{x}_N\|_2) \end{bmatrix}

于是

f(x)=k(x)wf(\mathbf{x})=\mathbf{k}(\mathbf{x})^\top \mathbf{w}

为什么要构造两两距离矩阵

K\mathbf{K} 不是普通的数据矩阵,而是一个 相互影响矩阵。它的第 jj 行第 ii 列表示:

ii 个样本中心产生的影响场,在第 jj 个样本点位置上的取值。

也就是说,第 ii 个基函数是

ψi(x)=ϕ(xxi2)\psi_i(\mathbf{x})=\phi(\|\mathbf{x}-\mathbf{x}_i\|_2)

为了检查函数在样本点 xj\mathbf{x}_j 上是否命中目标值,就必须把所有基函数都拿到 xj\mathbf{x}_j 上评估:

f(xj)=i=1Nwiϕ(xjxi2)=yjf(\mathbf{x}_j)= \sum_{i=1}^{N} w_i\phi(\|\mathbf{x}_j-\mathbf{x}_i\|_2) =y_j

所以 K\mathbf{K} 里自然会出现所有样本点之间的两两距离。它也常被称为 kernel matrixGram matrix

为什么 RBF 可以产生平滑插值

如果核函数 ϕ(r)\phi(r) 本身是平滑函数,那么

ϕ(xxi2)\phi(\|\mathbf{x}-\mathbf{x}_i\|_2)

作为空间中的影响场通常也是平滑变化的。RBF 插值函数又只是这些影响场的线性组合:

f(x)=i=1Nwiϕ(xxi2)f(\mathbf{x}) = \sum_{i=1}^{N} w_i\phi(\|\mathbf{x}-\mathbf{x}_i\|_2)

因此最终得到的 f(x)f(\mathbf{x}) 也会随输入平滑变化。

需要注意的是,平滑 不等于 稳定外推。exact RBF 确实会严格命中样本点,但如果样本分布不好、核函数选择不合适,或者 K\mathbf{K} 条件数很差,远离样本区域时仍然可能出现 overshoot 或不符合直觉的趋势。

可以插值哪些数据

RBF 的输入 x\mathbf{x} 可以是任何能转成向量的特征,例如:

  • 标量参数
  • 2D / 3D / nD 位置
  • 一组控制参数
  • 权重向量
  • PCA coefficients
  • correction vector
  • 局部位移或缩放向量
  • 约束或代价函数的权重

关键是:输入空间中必须能定义距离 xxi\|\mathbf{x}-\mathbf{x}_i\|,输出也必须能用普通向量的线性组合来表达。旋转也可以参与 RBF,但一般不直接插值 Euler、旋转矩阵或未经处理的 quaternion,而是先转到 rotation vector 等更接近欧氏向量空间的表示。