3. 常用径向基函数:高斯函数、多二次函数、逆多二次函数、薄板样条函数、紧支撑径向基函数
聊到径向基函数,很多人第一反应就是“选哪个?”
说实话,这个问题我当年也纠结过。刚入行那会儿,我总觉得高斯函数是万能的,结果在某个大变形曲面拟合项目里翻了车。后来才明白——没有最好的基函数,只有最合适的。
这一节,我把工程中最常用的五种径向基函数掰开揉碎了讲。每种函数我都会给出数学形式、形状参数、适用场景,以及我踩过的坑。
核心观点:径向基函数的选择,本质上是“拟合精度”与“数值稳定性”之间的博弈。光滑性越高的函数,条件数往往越差;紧支撑函数虽然稳定,但覆盖范围有限。
3.1 高斯函数(Gaussian)
高斯函数是入门首选,也是我最早接触的径向基函数。
φ(r) = exp(-ε²r²)
其中 ε 是形状参数,r 是欧氏距离。
这个函数有个特点——局部性极强。距离中心点稍远,函数值就迅速衰减到接近零。我在做点云数据插值时发现,高斯函数对噪声数据特别友好,因为它天然带有“平滑滤波”的效果。
| 参数 | 影响 | 我的建议 |
|---|---|---|
| ε 过小 | 函数过于平坦,拟合不足 | 容易出现“欠拟合”,曲面细节丢失 |
| ε 过大 | 函数过于尖锐,条件数飙升 | 矩阵病态,求解不稳定 |
| ε 适中 | 平衡精度与稳定性 | 一般取 0.5~2.0 之间试算 |
我曾经踩过的坑:有一次做三维地质曲面插值,我用了高斯函数,ε 取了 3.0。结果矩阵条件数到了 10^15 量级,求解器直接报错。后来把 ε 降到 1.2,问题就解决了。记住——ε 越大,矩阵越病态。
3.2 多二次函数(Multiquadric, MQ)
多二次函数是我个人最常用的函数之一。它的形式是:
φ(r) = √(r² + c²)
你没看错——它没有指数项,只有开方。这意味着什么?全局性。随着 r 增大,函数值线性增长,不会衰减到零。
我在做飞机机翼变形曲面重构时,MQ 函数的表现让我印象深刻。它特别适合那种“整体趋势明显、局部细节丰富”的数据。
这里有个关键参数 c,我习惯叫它“形状控制参数”:
- c 越小:函数越接近 |r|,曲面越“硬”,容易过拟合
- c 越大:函数越平坦,曲面越“软”,趋于平滑
小技巧:我一般取 c 为数据点平均间距的 1~2 倍。比如点云平均间距 0.5mm,c 就取 0.5~1.0。这个经验值在 80% 的项目里都管用。
3.3 逆多二次函数(Inverse Multiquadric, IMQ)
逆多二次函数可以看作是 MQ 的“反转版”:
φ(r) = 1 / √(r² + c²)
它和高斯函数类似,具有局部性——距离越远,函数值越小。但衰减速度比高斯慢,属于“中等局部性”。
你想想看,什么时候用 IMQ?我个人的经验是:当高斯函数太“尖”、MQ 又太“散”的时候,IMQ 是个不错的折中方案。
举个例子,我在做汽车碰撞假人头部变形重构时,数据点分布不均匀——有些区域密集,有些区域稀疏。高斯函数在稀疏区域插值效果很差,MQ 又在密集区域产生振荡。换成 IMQ 后,效果好了很多。
3.4 薄板样条函数(Thin Plate Spline, TPS)
薄板样条函数在工程界地位特殊。它的形式是:
φ(r) = r² log(r)
这个函数有个特点——没有形状参数。你不需要调 ε 或 c,直接用就行。这在工程自动化流程中非常方便。
我记得有一次做风洞实验数据插值,数据量很大(几万个点),如果用高斯函数,光调参就要花半天。换成 TPS,直接跑,结果还比调参后的高斯函数好。
但 TPS 也有缺点:
- 全局性强:一个点的变化会影响整个曲面
- 对边界敏感:边界附近容易出现“翘曲”现象
- 数值稳定性一般:数据量超过 5000 点时,建议用迭代求解器
工程建议:TPS 最适合“数据量中等(几百到几千点)、不需要调参、追求光滑性”的场景。如果你做的是快速原型验证,TPS 是首选。
3.5 紧支撑径向基函数(Compactly Supported RBF, CSRBF)
紧支撑函数是我最近几年用得越来越多的函数。它的核心思想是:只在局部范围内起作用,超出支撑半径就归零。
最经典的 Wendland 函数族,比如 C² 连续的:
φ(r) = (1 - r)⁴ · (4r + 1) (0 ≤ r ≤ 1)
φ(r) = 0 (r > 1)
这里的 r 是归一化距离,支撑半径通常记为 δ。
紧支撑函数最大的优势是——矩阵稀疏。因为每个基函数只影响局部区域,系数矩阵中大部分元素都是零。对于十万、百万量级的数据点,这是唯一可行的方案。
| 支撑半径 δ | 矩阵稀疏度 | 适用场景 |
|---|---|---|
| δ 较小 | 高度稀疏 | 数据密集、局部特征明显 |
| δ 中等 | 适度稀疏 | 通用场景,兼顾效率与精度 |
| δ 较大 | 接近稠密 | 数据稀疏、需要全局影响 |
注意:支撑半径 δ 的选择直接影响计算效率。δ 太小,局部区域可能没有足够的数据点支撑插值;δ 太大,稀疏性优势就没了。我一般取 δ 为数据点平均间距的 3~5 倍,然后根据结果微调。
3.6 五种函数对比总览
为了方便你快速选择,我整理了一张对比表:
| 函数名称 | 数学形式 | 局部/全局 | 形状参数 | 数值稳定性 | 我的推荐场景 |
|---|---|---|---|---|---|
| 高斯 | exp(-ε²r²) | 局部 | ε | 中等 | 噪声数据、点云平滑 |
| 多二次 (MQ) | √(r² + c²) | 全局 | c | 较好 | 大变形、整体趋势明显 |
| 逆多二次 (IMQ) | 1/√(r² + c²) | 中等局部 | c | 较好 | 分布不均匀数据 |
| 薄板样条 (TPS) | r² log(r) | 全局 | 无 | 一般 | 快速原型、中小数据量 |
| 紧支撑 (CSRBF) | Wendland 族 | 局部 | δ | 好 | 大数据量、稀疏矩阵 |
3.7 知识结构图:径向基函数选择流程
下面这张图是我自己总结的选型逻辑,你可以把它当作决策参考:
3.8 我的工程经验总结
说了这么多,最后分享几条实战经验:
- 别迷信“万能函数”——每个函数都有适用边界,多试几种不吃亏
- 形状参数是关键——高斯函数的 ε、MQ 的 c、CSRBF 的 δ,这些参数值得花时间调优
- 数值稳定性优先——如果矩阵条件数超过 10^12,换函数或换参数,别硬算
- 紧支撑函数是未来——随着数据量越来越大,CSRBF 的优势会越来越明显
嗯,这一节的内容就到这里。五种常用径向基函数,每种都有它的脾气。你上手用几次,自然就摸透了。