克里金法(高斯过程回归)代理模型

分类:分析 | 整合版 2026-04-06
CAE visualization for kriging surrogate theory - technical simulation diagram
克里金法(高斯过程回归)代理模型

Kriging的理论基础

代理模型的思想

🙋

我想做蒙特卡洛不确定度分析,可CAE一次要30分钟,跑一万次根本不可能……


🎓

这正是代理(surrogate)模型的用武之地。CAE只算几十到几百次,用统计模型学会"输入→响应"的关系,之后的一万次都问模型,每次毫秒级。众多代理里Kriging(高斯过程回归)之所以成为标配,是因为一个独一无二的性质:它不但给出预测值,还给出预测的不确定度。这份方差信息会告诉你下一个样本该加在哪——模型会自己申报自己的弱点。

高斯过程的定式

把响应 \( f(\mathbf{x}) \) 看作均值 \( \mu(\mathbf{x}) \)、协方差核 \( k(\mathbf{x}, \mathbf{x}') \) 的高斯过程。给定训练点 \( X \) 与观测 \( \mathbf{y} \),未知点 \( \mathbf{x}_* \) 的预测有闭式解:

$$ \hat{f}(\mathbf{x}_*) = \mu + \mathbf{k}_*^T K^{-1} (\mathbf{y} - \mu\mathbf{1}), \qquad \hat{\sigma}^2(\mathbf{x}_*) = k(\mathbf{x}_*, \mathbf{x}_*) - \mathbf{k}_*^T K^{-1} \mathbf{k}_* $$

其中 \( K \) 是训练点间协方差矩阵、\( \mathbf{k}_* \) 是训练-预测协方差向量。预测均值精确通过训练点(插值性);预测方差在训练点处为零、离得越远越大。

核函数选择与光滑性假设

核函数光滑性对CAE响应的适配
平方指数(RBF/高斯)无穷次可微光滑假设过强,常低估方差
Matérn 5/2二次可微CAE响应的事实标准;光滑性假设贴近现实
Matérn 3/2一次可微响应有折点的问题——接触、屈曲

各输入维独立的长度尺度 \( \ell_i \)(ARD)表示"沿该方向走多远响应才变化",训练后其大小可直接当灵敏度信息读(\( \ell_i \) 大=不起作用的因子)。

训练与验证的数值方法

超参数估计与数值上的注意

长度尺度、方差等超参数由对数边际似然最大化确定。该优化多峰,多起点(约10次重启)是必须的。训练点接近时协方差矩阵 \( K \) 病态、Cholesky分解失败;对角加微小量的nugget是对策——它不只是数值补丁,物理上就是"观测噪声方差"。CAE虽是确定性的,但网格重生成、收敛截断带来的数值噪声真实存在,把nugget纳入估计参数是实务上的安全做法。

初始抽样设计

初始DOE用拉丁超立方(LHS,maximin准则),样本数经验值"维数的10倍"(\( n = 10d \))——这只是起点,前提是后面用主动学习补点。范围要比下游使用域稍宽,因为Kriging的外推极差:让使用域被训练域覆盖。

验证——LOO交叉验证与Q²

代理质量用无需追加计算的留一交叉验证(LOO-CV)确认(Kriging有闭式快速算法):

$$ Q^2 = 1 - \frac{\sum_i (y_i - \hat{y}_{-i})^2}{\sum_i (y_i - \bar{y})^2} $$

参考线:一般 \( Q^2 \ge 0.9 \);只为把握优化趋势0.8也可用;可靠性分析的尾部概率要≥0.95。另查标准化残差 \( (y_i - \hat{y}_{-i})/\hat{\sigma}_{-i} \) 是否落在±3内——大幅越界说明预测方差不可信(重审噪声与核函数)。

主动学习——用方差信息补样本

Kriging最大的武器是基于预测方差的逐次抽样,按目标选获取准则:

  • 全局精度——加在预测方差最大处(简单但爱往角落跑)
  • 优化——期望改进量(EI)最大处(贝叶斯优化·EGO)
  • 可靠性分析——极限状态面 \( \hat{f}(\mathbf{x}) = 0 \) 附近分类最模糊处(U函数·AK-MCS)

"初始LHS→验证→按目标逐次补点→收敛判定"的循环,同等预算下远胜一次性固定抽样。

实务应用流程

标准工作流

  1. 筛选——因子超过10个先用Morris法降维(Kriging怕高维)
  2. 输入归一化——各因子归到[0,1];稳定不同单位下的长度尺度估计
  3. 初始DOE——LHS取 \( 10d \) 点;失败算例打标记入档
  4. 拟合与验证——默认Matérn 5/2+ARD+nugget估计;LOO看Q²与标准化残差
  5. 逐次补点——按目标的获取准则加到预算为止;记录Q²的推移
  6. 正式使用——在代理上跑蒙特卡洛、Sobol'指数、优化;最终候选点用真CAE复算验证

失败算例与不连续响应的处理

设计空间某处分析崩溃(屈曲发散、网格失败)时,把这些点悄悄剔除,代理会在它一无所知的区域平滑插值,然后把最优解预测到不可行区里面去。对策:①用另一个分类模型(GP分类等)学习可行性并组合;②物理边界已知就直接限制范围。接触通断、屈曲模态切换这类不连续响应,单一全局Kriging很吃力——用区域分割(聚类+局部模型)或换Matérn 3/2。

从标量到场输出的扩展

要代理应力分布、温度场这类大规模场输出,定式做法是先用POD把场压缩成少数模态系数,逐系数建Kriging(POD+Kriging)。模态数按累计能量约99%截取,重构误差与代理误差分开报告。

实现工具与CAE集成

主要库·工具对比

工具特点适用
scikit-learn(GaussianProcessRegressor)上手最快;核函数组合方便原型验证·中小规模
SMT(Surrogate Modeling Toolbox)工程代理特化:KRG·MFK(多保真)·GEK(梯度)CAE实务全域
GPyTorchGPU·大数据·变分近似数千点以上的大规模训练
UQLab(MATLAB)/OpenTURNSUQ框架一体(连PCE·可靠性)V&V报告一条龙
Dakota/optiSLang等求解器联动·作业管理内置大规模DOE的运营

最小实现示例(scikit-learn)

import numpy as np
from sklearn.gaussian_process import GaussianProcessRegressor
from sklearn.gaussian_process.kernels import Matern, WhiteKernel, ConstantKernel

kernel = (ConstantKernel() * Matern(length_scale=np.ones(d), nu=2.5)
          + WhiteKernel(noise_level=1e-6))          # nugget=数值噪声
gp = GaussianProcessRegressor(kernel=kernel, normalize_y=True,
                              n_restarts_optimizer=10)  # 多起点
gp.fit(X_train, y_train)                            # X_train: LHS处的CAE结果
y_pred, y_std = gp.predict(X_new, return_std=True)  # 预测值与预测标准差

养成训练后打印 gp.kernel_ 的习惯:长度尺度既能核对灵敏度的合理性(该起作用的因子尺度是否小),又能检查超参数健康度(有没有贴边)。

前沿研究动态

多保真Kriging

把粗网格(便宜·低精度)与细网格(昂贵·高精度)结果融合的co-Kriging/MFK(multi-fidelity Kriging),是与CAE相性极佳的进化形。低保真模型抓响应的全局形状、少量高保真样本做修正,以高保真单打的几分之一成本达到同等精度的报告屡见不鲜。层级不限于网格粗细:2D vs 3D、线性 vs 非线性同样可构成。

梯度增强Kriging(GEK)

伴随求解器能便宜给出梯度的场合(CFD伴随、结构设计灵敏度),把梯度观测嵌入协方差结构的GEK每次分析能拿到 \( 1 + d \) 条信息——高维问题的样本效率大幅改善。梯度的数值噪声用梯度侧的nugget处理。

高维化与深度学习的衔接

Kriging的实用上限在维数 \( d \approx 20 \) 前后;再往上要靠active subspace(辨识响应实际变化的低维子空间)与子空间旋转的并用。深核学习(NN提特征→末端接GP)兼顾不连续·多峰响应的适应力与GP的方差估计,正在发展中。采用与否的实务判据始终是"预测方差是否仍然校准"(查标准化残差的分布)。

故障排查

按症状的原因与对策

症状可能原因对策
Cholesky分解报错·条件数警告训练点近重复、无nugget合并重复点;把WhiteKernel/nugget纳入估计
长度尺度贴上下界贴上界=该因子不起作用;贴下界=响应含噪/不连续剔除不起作用因子;找噪声源或换Matérn 3/2
Q²很高、新点却预测不准训练点成簇使LOO偏乐观;在外推用留出点复验;确认使用域在训练域内
预测方差明显偏小RBF过度光滑、噪声未计入换Matérn、估计nugget,用标准化残差查校准
响应的折点·跳变被抹平不连续响应配了全局平稳核区域分割+局部模型;与分类器组合
逐次补点扎堆在同一处获取函数与目标不符、噪声让方差压不下去换成匹配目标的获取准则;查nugget;调探索权重

代理可以信到什么程度

🙋

通过了验证的代理模型,它给出的概率和最优解可以直接写进报告吗?


🎓

可以——但守住两条原则。第一,只在训练域内部使用:Kriging的外推只是平滑地退回均值函数,那里没有物理。第二,最终结论用真CAE收口:把最优候选点、可靠性分析则把极限状态附近的代表点,用实际分析复算几个,确认落在代理的预测±方差之内。守住这两条,代理就是"用几百次CAE的预算换几万次答案"的正当工具;不收口的报告,Q²再高也无法验证。

相关文章:Morris法参数筛选稀疏PCE与LAR贝叶斯标定

相关模拟器

通过本领域的交互式模拟器直观感受理论

模拟器一览

相关领域

结构分析流体分析热分析
评价本文
感谢您的反馈!

帮助
想了解
更多
报告
错误
有帮助
0
想了解更多
0
报告错误
0
Written by NovaSolver Contributors
Anonymous Engineers & AI — 网站地图
查看简介