数学基础:距离、范数与基函数

做径向基函数拟合,说白了就是解决一个问题:如何用已知点的信息,去推测未知点的值。这背后的数学工具,我拆成四个部分来讲。别怕,咱们一步步来。

核心思路:RBF 拟合的本质是「距离决定影响」。一个已知点对远处的影响小,对近处的影响大。这个「影响」的数学表达,就是基函数。

2.1 欧几里得距离:最直观的「远近」度量

你想想看,两个点之间怎么算距离?初中就学过——直线距离。在数学里,这就是欧几里得距离。

对于二维平面上的两个点 \( p_1=(x_1, y_1) \) 和 \( p_2=(x_2, y_2) \),距离公式是:

d = sqrt( (x1 - x2)² + (y1 - y2)² )

推广到 n 维空间,公式长这样:

d(p, q) = sqrt( Σᵢ (pᵢ - qᵢ)² )   // i 从 1 到 n

我在做三维点云重建时,经常要算几千个点之间的欧氏距离。那时候我踩过一个坑——忘记归一化坐标轴。如果 x 轴单位是米,y 轴单位是毫米,距离计算会被 y 轴完全主导。嗯,这里要注意:输入数据最好先做标准化。

维度 公式 常见场景
2D √[(x₁-x₂)² + (y₁-y₂)²] 平面插值、图像变形
3D √[(x₁-x₂)² + (y₁-y₂)² + (z₁-z₂)²] 三维重建、地形拟合
nD √[Σ(pᵢ-qᵢ)²] 高维数据、机器学习特征

2.2 范数:距离的「官方说法」

欧氏距离在数学里有个更正式的名字——L2 范数。其实「范数」就是距离的抽象版本。我习惯这么理解:范数就是一把尺子,量的是向量有多长。

常用的几种范数:

  • L1 范数(曼哈顿距离):各维度差的绝对值之和。适合稀疏数据,对异常值没那么敏感。
  • L2 范数(欧氏距离):就是我们刚说的那个。最常用,几何意义最直观。
  • L∞ 范数(切比雪夫距离):取各维度差的最大值。棋盘上国王走一步的距离就是它。

在 RBF 里,我们几乎只用 L2 范数。为什么?因为高斯、多二次这些基函数,天然就是为 L2 范数设计的。我曾经试过用 L1 范数代替 L2,结果拟合曲面出现了奇怪的棱角——说白了,基函数和距离度量要匹配。

我的习惯:写代码时直接用 numpy.linalg.norm 算 L2 范数。别自己手写平方开方,容易出错。

2.3 基函数类型:三种常用「影响函数」

基函数就是描述「一个点对周围影响有多大」的函数。我常用的有三种,各有各的脾气。

2.3.1 高斯基函数

公式:\(\phi(r) = e^{-(\epsilon r)^2}\)

其中 \(r\) 是距离,\(\epsilon\) 是形状参数(控制影响范围)。

特点:

  • 局部影响——距离远了,影响指数级衰减
  • 曲线光滑,没有突变
  • 适合做局部细节丰富的曲面

我在做医学图像配准时,高斯基函数是首选。因为它只在局部起作用,不会让远处的点「串扰」过来。

2.3.2 多二次基函数

公式:\(\phi(r) = \sqrt{1 + (\epsilon r)^2}\)

特点:

  • 全局影响——距离越远,影响反而增大
  • 形状像喇叭口,越往外越张开
  • 适合做整体趋势的拟合

说实话,我第一次用多二次函数时很困惑——为什么远处的点影响更大?后来才明白,它适合做「大范围趋势」的拟合,比如地形起伏的整体走向。

2.3.3 逆多二次基函数

公式:\(\phi(r) = \frac{1}{\sqrt{1 + (\epsilon r)^2}}\)

特点:

  • 局部影响,但衰减比高斯慢
  • 尾部更「胖」,过渡更平滑
  • 适合做中等范围的插值
基函数 影响范围 光滑度 典型用途
高斯 局部 极高 细节拟合、图像处理
多二次 全局 高 趋势拟合、地形建模
逆多二次 中等 高 通用插值、平滑过渡

避坑指南:形状参数 ε 的选择很关键。ε 太大,基函数变得太尖,拟合曲面会过拟合;ε 太小,基函数太平,拟合效果像糊了一层浆糊。我一般用交叉验证来选 ε,或者用经验公式 ε = 1 / (平均最近邻距离)。

2.4 线性方程组求解:把问题算出来

有了基函数,怎么求拟合曲面的系数?答案是解一个线性方程组。

假设我们有 N 个已知点,每个点对应一个基函数。那么拟合曲面可以写成:

f(x) = Σⱼ wⱼ · φ(||x - xⱼ||)   // j 从 1 到 N

其中 wⱼ 是待求的权重系数。把 N 个已知点的坐标代入,得到 N 个方程:

Φ · w = f

这里 Φ 是 N×N 的矩阵,Φ[i][j] = φ(||xᵢ - xⱼ||)。f 是已知点的函数值向量。w 就是我们要解的系数。

解这个方程组,我推荐两种方法:

  • 直接法(numpy.linalg.solve):N 小于 1000 时用,又快又准。
  • 迭代法(共轭梯度):N 很大时用,省内存。

我曾经处理过一个 5000 个点的拟合任务,直接法跑了一个小时还没出结果。换成共轭梯度法,五分钟搞定。所以——数据量大了,别硬算。

关键点:Φ 矩阵是对称的,而且通常是正定的(对高斯和逆多二次来说)。这意味着我们可以用 Cholesky 分解,比普通 LU 分解快一倍。

知识结构总览

下面这张图,把本章的核心逻辑串起来了。你可以把它当作一个「思维导图」来看。

RBF 数学基础知识结构 RBF 数学基础 欧几里得距离 范数(L1/L2/L∞) 基函数类型 线性方程组求解 二维 / 三维 / n 维 坐标归一化 L1: 曼哈顿距离 L2: 欧氏距离(常用) L∞: 切比雪夫距离 高斯(局部) 多二次(全局) 逆多二次(中等) 直接法(N < 1000) 迭代法(N 大时) Cholesky 分解 核心逻辑:距离 → 范数 → 基函数 → 方程组 → 拟合曲面 每个环节的选择都会影响最终拟合效果

本章小结

这一章的内容,说白了就是 RBF 拟合的「工具箱」:

  • 距离:用欧氏距离衡量点与点的远近
  • 范数:L2 范数是 RBF 的标配
  • 基函数:高斯、多二次、逆多二次,各有各的适用场景
  • 求解:解线性方程组,注意数据量大了要换方法

我个人觉得,理解这些基础比背公式更重要。公式忘了可以查,但「为什么选这个基函数」「为什么用这个距离度量」——这些判断力,才是做拟合的核心能力。