空间插值问题可以这样描述:在若干已知位置 x 1 , … , x n x_1, \ldots, x_n x 1 , … , x n 观测到值 y 1 , … , y n y_1, \ldots, y_n y 1 , … , y n ,如何估计任意位置 x ∗ x^* x ∗ 处的值?地理学界经典的答案是克里金(Kriging),机器学习界的答案是高斯过程(Gaussian Process)。这两个名字来自不同学科,但数学上是同一个东西。本文从贝叶斯线性回归出发,推导高斯过程回归的核心公式,并说明它为什么就是克里金的概率版本。
从贝叶斯线性回归到函数分布
权重空间视角
考虑线性回归模型 f ( x ) = ϕ ( x ) ⊤ w f(x) = \phi(x)^{\top} w f ( x ) = ϕ ( x ) ⊤ w ,其中 ϕ ( x ) \phi(x) ϕ ( x ) 是特征映射(可以是多项式、径向基等)。对权重 w w w 赋予高斯先验 w ∼ N ( 0 , Σ p ) w \sim \mathcal{N}(0, \Sigma_p) w ∼ N ( 0 , Σ p ) ,观测 y = f ( x ) + ε y = f(x) + \varepsilon y = f ( x ) + ε ,ε ∼ N ( 0 , σ n 2 ) \varepsilon \sim \mathcal{N}(0, \sigma_n^2) ε ∼ N ( 0 , σ n 2 ) 。由高斯分布的共轭性,后验也是高斯,预测分布的均值和方差有解析形式:
f ˉ ∗ = ϕ ( x ∗ ) ⊤ Σ p Φ ⊤ ( Φ Σ p Φ ⊤ + σ n 2 I ) − 1 y \bar{f}_* = \phi(x_*)^{\top} \Sigma_p \Phi^{\top} \left( \Phi \Sigma_p \Phi^{\top} + \sigma_n^2 I \right)^{-1} y
f ˉ ∗ = ϕ ( x ∗ ) ⊤ Σ p Φ ⊤ ( Φ Σ p Φ ⊤ + σ n 2 I ) − 1 y
V [ f ∗ ] = ϕ ( x ∗ ) ⊤ Σ p ϕ ( x ∗ ) − ϕ ( x ∗ ) ⊤ Σ p Φ ⊤ ( Φ Σ p Φ ⊤ + σ n 2 I ) − 1 Φ Σ p ϕ ( x ∗ ) \mathbb{V}[f_*] = \phi(x_*)^{\top} \Sigma_p \phi(x_*) - \phi(x_*)^{\top} \Sigma_p \Phi^{\top} \left( \Phi \Sigma_p \Phi^{\top} + \sigma_n^2 I \right)^{-1} \Phi \Sigma_p \phi(x_*)
V [ f ∗ ] = ϕ ( x ∗ ) ⊤ Σ p ϕ ( x ∗ ) − ϕ ( x ∗ ) ⊤ Σ p Φ ⊤ ( Φ Σ p Φ ⊤ + σ n 2 I ) − 1 Φ Σ p ϕ ( x ∗ )
其中 Φ \Phi Φ 是特征矩阵。这个形式的问题在于:特征映射 ϕ \phi ϕ 需要显式选择 ,特征维度可能很高甚至无限。
函数空间视角:核技巧
注意到上面公式里特征只以内积 形式出现:Φ Σ p Φ ⊤ \Phi \Sigma_p \Phi^{\top} Φ Σ p Φ ⊤ 和 ϕ ( x ∗ ) ⊤ Σ p ϕ ( x ∗ ) \phi(x_*)^{\top} \Sigma_p \phi(x_*) ϕ ( x ∗ ) ⊤ Σ p ϕ ( x ∗ ) 。定义核函数:
k ( x , x ′ ) = ϕ ( x ) ⊤ Σ p ϕ ( x ′ ) k(x, x') = \phi(x)^{\top} \Sigma_p \phi(x')
k ( x , x ′ ) = ϕ ( x ) ⊤ Σ p ϕ ( x ′ )
核函数是特征空间的内积,它让我们无需显式构造 ϕ \phi ϕ 就能计算高维甚至无限维特征空间的内积 。这就是高斯过程的核技巧视角:一个高斯过程就是定义在函数空间上的高斯分布,由均值函数 m ( x ) m(x) m ( x ) 与协方差函数(核)k ( x , x ′ ) k(x, x') k ( x , x ′ ) 完全刻画:
f ∼ G P ( m ( x ) , k ( x , x ′ ) ) f \sim \mathcal{GP}(m(x), k(x, x'))
f ∼ G P ( m ( x ) , k ( x , x ′ ) )
高斯过程的直觉 :它不是输出一个函数,而是输出一个"函数的分布"。任意有限个点处的函数值服从多元高斯分布:
[ f ( x 1 ) , … , f ( x n ) ] ∼ N ( μ , K ) [f(x_1), \ldots, f(x_n)] \sim \mathcal{N}(\mu, K)
[ f ( x 1 ) , … , f ( x n ) ] ∼ N ( μ , K )
其中 K i j = k ( x i , x j ) K_{ij} = k(x_i, x_j) K i j = k ( x i , x j ) 。核函数 k k k 编码了我们关于函数光滑性的先验:核函数值随距离衰减得越快,函数越"崎岖"。
高斯过程回归
联合分布与条件分布
给定训练数据 ( X , y ) (X, y) ( X , y ) ,观测 y = f ( X ) + ε y = f(X) + \varepsilon y = f ( X ) + ε ,测试点 X ∗ X_* X ∗ 处的函数值 f ∗ f_* f ∗ 。训练观测与测试值的联合分布为:
[ y f ∗ ] ∼ N ( 0 , [ K ( X , X ) + σ n 2 I K ( X , X ∗ ) K ( X ∗ , X ) K ( X ∗ , X ∗ ) ] ) \begin{bmatrix} y \\ f_* \end{bmatrix} \sim \mathcal{N}\left( 0, \begin{bmatrix} K(X, X) + \sigma_n^2 I & K(X, X_*) \\ K(X_*, X) & K(X_*, X_*) \end{bmatrix} \right)
[ y f ∗ ] ∼ N ( 0 , [ K ( X , X ) + σ n 2 I K ( X ∗ , X ) K ( X , X ∗ ) K ( X ∗ , X ∗ ) ] )
条件分布(高斯条件公式)给出预测:
预测均值 :
f ˉ ∗ = K ( X ∗ , X ) [ K ( X , X ) + σ n 2 I ] − 1 y \bar{f}_* = K(X_*, X) \left[ K(X, X) + \sigma_n^2 I \right]^{-1} y
f ˉ ∗ = K ( X ∗ , X ) [ K ( X , X ) + σ n 2 I ] − 1 y
预测方差 :
V [ f ∗ ] = K ( X ∗ , X ∗ ) − K ( X ∗ , X ) [ K ( X , X ) + σ n 2 I ] − 1 K ( X , X ∗ ) \mathbb{V}[f_*] = K(X_*, X_*) - K(X_*, X) \left[ K(X, X) + \sigma_n^2 I \right]^{-1} K(X, X_*)
V [ f ∗ ] = K ( X ∗ , X ∗ ) − K ( X ∗ , X ) [ K ( X , X ) + σ n 2 I ] − 1 K ( X , X ∗ )
预测均值是训练观测的核加权线性组合,权重由核矩阵的逆决定;预测方差给出每个预测点的不确定性估计 ,这是高斯过程区别于普通插值方法的核心能力:它不仅给出插值结果,还给出"这个结果有多可信" 。
常用的核函数
径向基核(RBF) :最常用,对应无限维特征空间:
k ( x , x ′ ) = σ f 2 exp ( − ∥ x − x ′ ∥ 2 2 l 2 ) k(x, x') = \sigma_f^2 \exp\left( -\frac{\|x - x'\|^2}{2l^2} \right)
k ( x , x ′ ) = σ f 2 exp ( − 2 l 2 ∥ x − x ′ ∥ 2 )
其中 l l l 是长度尺度(length scale),控制函数光滑度;σ f 2 \sigma_f^2 σ f 2 是信号方差。在空间插值语境下,l l l 就是空间相关的"作用半径" :l l l 大意味着远处的点也互相影响,l l l 小意味着只有近邻相关。
Matérn 核 :更灵活,通过参数 ν \nu ν 控制光滑度,ν → ∞ \nu \to \infty ν → ∞ 时退化为 RBF:
k ν ( x , x ′ ) = σ f 2 2 1 − ν Γ ( ν ) ( 2 ν ∥ x − x ′ ∥ l ) ν K ν ( 2 ν ∥ x − x ′ ∥ l ) k_\nu(x, x') = \sigma_f^2 \frac{2^{1-\nu}}{\Gamma(\nu)} \left( \frac{\sqrt{2\nu}\|x - x'\|}{l} \right)^\nu K_\nu\left( \frac{\sqrt{2\nu}\|x - x'\|}{l} \right)
k ν ( x , x ′ ) = σ f 2 Γ ( ν ) 2 1 − ν ( l 2 ν ∥ x − x ′ ∥ ) ν K ν ( l 2 ν ∥ x − x ′ ∥ )
ν = 3 / 2 \nu = 3/2 ν = 3 / 2 与 ν = 5 / 2 \nu = 5/2 ν = 5 / 2 是实际中的常用选择,比 RBF 更贴合真实空间数据的粗糙度。
超参数学习
核函数中的超参数(l l l 、σ f 2 \sigma_f^2 σ f 2 、σ n 2 \sigma_n^2 σ n 2 )通过最大化边际似然(marginal likelihood)学习:
log p ( y ∣ X ) = − 1 2 y ⊤ ( K + σ n 2 I ) − 1 y − 1 2 log ∣ K + σ n 2 I ∣ − n 2 log 2 π \log p(y \mid X) = -\frac{1}{2} y^{\top} \left( K + \sigma_n^2 I \right)^{-1} y - \frac{1}{2} \log \left| K + \sigma_n^2 I \right| - \frac{n}{2} \log 2\pi
log p ( y ∣ X ) = − 2 1 y ⊤ ( K + σ n 2 I ) − 1 y − 2 1 log ∣ ∣ ∣ K + σ n 2 I ∣ ∣ ∣ − 2 n log 2 π
边际似然自动实现奥卡姆剃刀 :过复杂的模型(核太"活泼")拟合噪声需要更高的复杂度惩罚项 log ∣ K ∣ \log|K| log ∣ K ∣ ,简单模型拟合数据不足则残差项大。对超参数求导可用梯度优化,这是高斯过程"自动调参"的机制。
高斯过程 vs 克里金:同一个数学,两个名字
克里金的预测公式与高斯过程回归的预测均值完全一致:克里金的变差函数(variogram)对应高斯过程的核函数,克里金的权重求解就是核矩阵求逆。区别在于学科语言与扩展方向:地理学强调空间相关结构分析(变差函数拟合),机器学习强调核选择与边际似然优化。理解等价性后,两边的文献可以互相翻译。
计算复杂度与近似方法
高斯过程回归需要求 n × n n \times n n × n 核矩阵的逆,复杂度 O ( n 3 ) O(n^3) O ( n 3 ) ,存储 O ( n 2 ) O(n^2) O ( n 2 ) 。当样本数超过几千时直接计算不可行,常见近似:
稀疏近似(Inducing Points) :用 m ≪ n m \ll n m ≪ n 个诱导点近似核矩阵(如 FITC、VFE),复杂度降到 O ( n m 2 ) O(nm^2) O ( n m 2 ) 。
随机特征 :用随机傅里叶特征近似核函数,把 GP 变成线性模型。
可扩展变分(SVGP) :结合变分推断与诱导点,支持小批量训练,适合大规模数据。
空间插值中的实际用法
以气象站点数据插值为例:站点位置 x i x_i x i 、温度 y i y_i y i ,目标是在网格上估计温度场。流程为:
选核函数(Matérn 5/2 常用),初始化超参数。
最大化边际似然学习 l l l 、σ f 2 \sigma_f^2 σ f 2 、σ n 2 \sigma_n^2 σ n 2 。
对每个网格点计算预测均值与方差,得到温度场与不确定性场。
高斯过程相比确定性插值(IDW、样条)的优势是自带不确定性 :站点稀疏区域的预测方差大,这在决策场景(哪里需要补测站点)中直接可用。相比普通克里金,GP 框架更容易扩展:加异方差噪声、多任务联合插值、与深度学习特征结合(深度核学习)。
参考
[1] Rasmussen, C. E., & Williams, C. K. I. Gaussian Processes for Machine Learning. MIT Press, 2006.
[2] Matheron, G. Principles of Geostatistics. Economic Geology, 58(8):1246-1266, 1963.
[3] Krige, D. G. A Statistical Approach to Some Basic Mine Valuation Problems on the Witwatersrand. Journal of the Southern African Institute of Mining and Metallurgy, 1951.
[4] Cressie, N. Statistics for Spatial Data. Wiley, 1993.
[5] Williams, C. K. I., & Rasmussen, C. E. Gaussian Processes for Regression. NeurIPS 1996.
[6] Titsias, M. Variational Learning of Inducing Variables in Sparse Gaussian Processes. AISTATS 2009.
[7] Wilson, A. G., et al. Deep Kernel Learning. AISTATS 2016.