3. 代理模型选型与构建

在材料主动学习中,代理模型(surrogate model)承担着“用少量实验数据近似真实材料响应面”的角色。它既要预测性能,又要给出可信度,才能指导下一轮实验该去哪里做。本节围绕三类主流模型——高斯过程回归(GPR)、随机森林(RF)、神经网络(NN)——讨论它们在材料性能预测中的适用边界、评估指标、不确定性量化方式,以及小样本条件下的选型策略。

三类代理模型的适用性画像

高斯过程回归把目标性能视为随机过程的一次采样,用核函数刻画成分/工艺与性能之间的相似性。它的优势在于:小样本(几十到几百条)下表现稳健,且天然输出预测均值与方差,不确定性量化几乎“免费”。缺点是计算复杂度随样本数呈三次方增长,特征维度高时核函数选择敏感,对离散、类别型工艺参数需要额外编码。它适合连续成分、连续工艺参数、数据量有限且需要不确定性指导采样的场景,例如合金成分—硬度、烧结温度—致密度。

随机森林通过多棵决策树集成,对非线性、特征交互和噪声有较强容忍度,能处理混合类型特征,训练与预测速度快,还能输出特征重要性。它的不确定性通常来自树间预测方差或分位数回归森林,但这类不确定性反映的是“模型分歧”,而非严格的贝叶斯后验,外推区域容易给出过度自信的预测。它适合特征维度中等、样本量几百到几千、含类别变量、需要快速筛选重要工艺因子的任务,例如多组元陶瓷配方筛选。

神经网络在样本充足(数千条以上)、特征与目标关系高度非线性且平滑时优势明显,可拟合复杂映射并支持多任务输出。但小样本下极易过拟合,且标准网络不直接给出可靠不确定性,需要借助蒙特卡洛 Dropout、深度集成或贝叶斯神经网络来近似。它更适合已有高通量计算或文献数据库支撑、需要跨体系迁移的场景。

代理模型选型决策图:样本量 · 特征类型 · 不确定性需求 材料性能预测任务 有效样本量? (含实验+可信计算) <300 条 GPR 优先 核函数:RBF/Matern 输出 μ 与 σ² EI/UCB 直接可用 ≥300 条 特征含类别? / 关系强非线性? 是 随机森林 树间方差 / 分位数回归 特征重要性可解释 否 神经网络 MC Dropout / 深度集成 需 ≥1000 条更稳 不确定性量化方式对比 GPR:后验方差 σ²(x) 校准好,外推随距离增大 RF:树间预测标准差 反映分歧,外推易过度自信 NN:MC Dropout / 集成 近似贝叶斯,需校准验证

模型评估指标:别只看 R²

材料数据常带噪声、样本少、分布不均,单一指标容易误导。回归任务建议同时观察:决定系数 R² 反映整体拟合优度,但在小样本下对异常点敏感;均方根误差 RMSE 与目标同量纲,便于判断“预测误差是否小于实验波动”;平均绝对误差 MAE 对离群点更稳健;若关注高价值区间,可看最大误差或分区间误差。更关键的是采用留一法或 K 折交叉验证,并尽量按成分体系或工艺批次分组划分,避免同体系数据同时进入训练与验证造成“信息泄漏”而虚高。对分类任务(如是否形成目标相),则用准确率、召回率、F1 与 ROC-AUC,并注意类别不平衡。

不确定性量化:从“给个数”到“给区间”

主动学习的核心是“用不确定性换信息”。GPR 直接给出预测方差,可据此构造期望改进 EI、置信上界 UCB 等采集函数。RF 可用树间方差或分位数回归森林给出预测区间,但需用留出集检验区间覆盖率是否接近名义水平(如 90% 区间实际覆盖约 90%)。NN 常用蒙特卡洛 Dropout:推理时保持 Dropout 开启,多次前向得到均值与标准差;或训练多个独立网络做深度集成。无论哪种,都应做校准检查——把预测区间覆盖率与名义置信度对比,若明显偏低说明不确定性被低估,需要温度缩放或集成规模调整。

小样本下的模型选择策略

小样本时,优先选择归纳偏置强、参数少的模型。GPR 配合 Matern 核通常是首选;若特征含类别变量或关系突变,可先用 RF 建立基线并查看特征重要性,再决定是否用 GPR 精修。神经网络在小样本下应谨慎,若必须使用,可采用迁移学习:先在大规模计算/文献数据上预训练,再用少量实验数据微调,并配合强正则化与早停。实践中建议并行训练 2~3 个候选模型,用同一交叉验证划分比较 RMSE 与区间覆盖率,选择“预测准且不确定性可信”的模型进入主动学习循环。

小样本选型口诀:先 GPR 打底,RF 查重要性与类别,NN 需数据或迁移;评估看交叉验证 RMSE 与区间覆盖率,而非单次 R²。

可执行示例:候选模型对比记录表

下面给出一份可直接填写的模型对比记录表,用于同一数据划分下比较 GPR、RF、NN 的表现。示例数值为教学假设,实际应以你的交叉验证结果为准。

模型关键配置CV-RMSECV-MAE90%区间覆盖率结论
GPRMatern ν=2.5,长度尺度初值1.00.420.310.88首选,不确定性可信
RF500棵树,max_depth=120.550.400.72基线,区间偏窄
NN2×64,MC Dropout p=0.1,50次采样0.610.470.65样本不足,暂缓
# 示例:GPR 交叉验证与区间覆盖率检查(伪代码)
from sklearn.gaussian_process import GaussianProcessRegressor
from sklearn.gaussian_process.kernels import Matern
from sklearn.model_selection import KFold

kernel = Matern(length_scale=1.0, nu=2.5)
gp = GaussianProcessRegressor(kernel=kernel, alpha=1e-6, normalize_y=True)

for train_idx, test_idx in KFold(n_splits=5, shuffle=True, random_state=0).split(X):
    gp.fit(X[train_idx], y[train_idx])
    mu, sigma = gp.predict(X[test_idx], return_std=True)
    # 90% 区间:mu ± 1.645*sigma,统计真实值落入比例
    covered = ((y[test_idx] >= mu - 1.645*sigma) &
               (y[test_idx] <= mu + 1.645*sigma)).mean()
    print("RMSE:", ((mu - y[test_idx])**2).mean()**0.5, "覆盖率:", covered)

运行后若覆盖率显著低于 0.90,说明方差被低估,可增大 alpha 或改用更平滑核;若 RMSE 远大于实验重复性误差,则需检查特征是否遗漏关键工艺变量。只有预测精度与不确定性校准同时达标,代理模型才适合进入下一轮主动学习采样。