1. 实验优化工程全景
在材料研发、工艺参数整定、药物配方筛选、芯片设计空间探索等场景中,工程师面对的核心问题高度一致:存在一个昂贵、耗时、甚至不可解析的目标函数,需要在有限预算内找到性能最优或满足约束的参数组合。传统做法依赖经验试错,而主动学习驱动的实验优化工程,把这一过程重构为"代理模型 + 采集函数 + 序贯决策"的闭环系统。本章先建立全景认知,界定核心概念,并给出贯穿全课程的项目与工具链。
一、为什么试错法会失效
试错法(Trial-and-Error)的本质是"每次实验只利用当前一次观测"。设参数空间维度为 d,若每个维度取 10 个水平,网格搜索需要 10d 次实验:d=3 时是 1000 次,d=6 时是 106 次。当单次实验成本为 2 小时、单次成本 500 元时,d=6 的网格搜索意味着 200 万小时与 5 亿元量级,工程上不可接受。
更关键的是,试错法不区分"信息价值"。它把预算平均撒在参数空间里,而真正决定最优解位置的,往往只是少数几个敏感维度与它们的交互项。主动学习的核心主张是:每一次实验都应选择"当前最值得做"的那个点——既可能接近最优(利用),也可能大幅降低模型不确定性(探索)。
二、范式转变:从"实验-记录"到"建模-决策-实验"
主动学习驱动的实验优化,把实验流程从线性开环改为闭环反馈。其标准循环包含四个环节:
- 代理模型(Surrogate Model):用已有实验数据拟合一个廉价可评估的近似函数,常用高斯过程回归(GPR)、随机森林、贝叶斯神经网络或梯度提升树。
- 采集函数(Acquisition Function):在代理模型上构造一个"值得实验程度"的评分,如 EI(期望改进)、UCB(置信上界)、PI(改进概率)。
- 候选点优化:在参数空间内最大化采集函数,得到下一个实验点 xnext。
- 真实实验与数据回填:执行实验得到 ynext,把 (xnext, ynext) 加入数据集,更新代理模型,进入下一轮。
这一循环的工程价值在于:它把"实验设计"从一次性静态规划,变成了随数据自适应调整的序贯决策。典型场景下,主动学习可在 20~50 次实验内逼近网格搜索数千次才能达到的最优区域。
三、核心概念界定
为避免后续章节术语歧义,这里先明确五个关键概念:
- 设计变量(Design Variables):可调参数,如温度、压力、配比、层数。记为向量 x ∈ X,X 为可行域。
- 目标与约束(Objective & Constraints):目标 y = f(x) 可为最大化或最小化;约束如 g(x) ≤ 0,常以惩罚项或可行域裁剪方式处理。
- 代理模型:对 f 的近似,需同时给出预测均值与不确定性(方差),这是采集函数能工作的前提。
- 采集函数:把"均值高"与"方差大"合成一个标量评分,是探索-利用权衡的数学载体。
- 实验预算(Budget):允许的真实实验次数或总成本,是优化终止条件之一。
四、课程项目与工具链总览
本课程以一个贯穿始终的示例项目为载体:某合金热处理工艺优化。设计变量为淬火温度 T ∈ [800, 950] °C、保温时间 t ∈ [10, 120] min、回火温度 Tr ∈ [150, 300] °C,共 3 维;目标为硬度 HV 最大化;单次实验成本约 1.5 小时。该示例参数为教学合理假设,用于演示方法流程,不代表真实产线数据。
工具链分三层:
| 层级 | 工具 | 职责 |
|---|---|---|
| 建模层 | scikit-learn、GPy、BoTorch | 代理模型拟合、不确定性估计 |
| 决策层 | Ax/BoTorch、Optuna、自定义 EI | 采集函数计算与候选点优化 |
| 执行层 | 实验记录表、LIMS、Python 脚本 | 真实实验执行与数据回填 |
最小可运行闭环的伪代码如下,后续章节会逐步展开每一部分的实现细节:
# 主动学习实验优化最小闭环(示意)
D = load_initial_experiments() # 初始 5~10 个实验点
for i in range(budget):
model = fit_surrogate(D) # 拟合 GPR
acq = ExpectedImprovement(model) # 构造 EI
x_next = maximize(acq, bounds) # 候选点优化
y_next = run_real_experiment(x_next)# 真实实验
D.append((x_next, y_next)) # 数据回填
if converged(D): break # 收敛判断