2. 实验对象建模
实验优化工程的第一步,不是急着调参或跑实验,而是把真实实验系统“翻译”成优化算法能理解的语言。这个翻译过程就是实验对象建模。它要回答三个问题:我能改变什么(设计变量)、我关心什么结果(目标函数)、哪些条件不能突破(约束条件)。三者共同划定了优化的边界,决定了后续搜索空间的大小与形状。
一、从真实系统到数学描述
以化学反应收率优化为例。真实系统包括反应釜、加热套、搅拌器、进料泵和在线检测仪。我们并不需要把每个物理细节都写进模型,而是提取对目标有显著影响、且可独立调节的量。假设该实验可调因素为:反应温度 T、催化剂用量 C、反应时间 t。那么设计变量向量可写为:
x = [T, C, t]
T ∈ [40, 90] °C
C ∈ [0.5, 3.0] g
t ∈ [10, 60] min
目标函数是收率 Y(%),希望最大化。约束条件包括:温度不得超过溶剂沸点 95 °C;催化剂成本上限使 C ≤ 3.0 g;反应时间受设备排产限制 t ≤ 60 min。此外,若存在副反应,还需加入选择性 S ≥ 85% 作为约束。这样,一个真实实验就被抽象为:
max Y(T, C, t)
s.t. T ≤ 95
C ≤ 3.0
t ≤ 60
S(T, C, t) ≥ 85
T, C, t 在各自范围内
注意,目标函数和约束函数的具体形式通常未知,需要通过实验数据拟合或代理模型来近似。这正是“主动学习”发挥作用的地方:用尽量少的实验点,逐步逼近真实响应面。
二、设计变量的选择原则
设计变量不是越多越好。变量过多会指数级扩大搜索空间,增加实验成本。选择时应遵循三条原则:可调性——实验过程中能独立改变;显著性——对目标有可观测影响;独立性——变量之间尽量不高度相关。例如,若搅拌转速与传热系数强耦合,同时调节两者可能造成共线性,此时可固定一个或改用组合变量。
变量类型也需区分:连续变量(温度、浓度)、离散变量(催化剂种类、批次)、有序变量(等级)。连续变量适合贝叶斯优化或高斯过程;离散变量则常需混合编码或分层搜索。
三、目标函数与约束的工程化表达
目标函数可以是单目标,也可以是多目标。单目标如“收率最大化”;多目标如“收率最大化且杂质最小化”。多目标时,通常转化为加权和或帕累托前沿搜索。约束分为硬约束和软约束:硬约束不可违反,如安全温度上限;软约束可适当放松,如纯度略低于目标但可通过后续纯化弥补。
在主动学习中,约束常通过惩罚函数或可行域分类器处理。例如,将约束违反程度加入目标:
J = Y - λ · max(0, S_min - S)
其中 λ 为惩罚系数。当 S 低于下限时,J 被拉低,算法自然避开不可行区域。
四、优化边界的确定
优化边界由变量范围和约束共同决定。确定边界时,既要避免过宽导致大量无效实验,也要避免过窄遗漏最优解。常用方法包括:文献调研、预实验、专家经验、以及基于历史数据的可行域估计。例如,通过 5 次预实验发现温度低于 50 °C 时反应几乎不进行,则可将下界从 40 °C 收紧到 50 °C,节省搜索预算。
边界确定后,还应进行边界敏感性检查:若最优解落在边界附近,说明边界可能设得太紧,需要外扩;若最优解远离边界,则边界合理。这一检查应在每轮主动学习后重复进行。
五、建模中的常见陷阱与应对
第一个陷阱是变量遗漏。若某个关键因素未被纳入设计变量,优化结果可能在实际中无法复现。应对方法是做预实验筛选,用部分因子设计或随机森林重要性排序识别显著变量。第二个陷阱是约束过紧。例如将温度上限设为 80 °C,而实际最优在 85 °C,则永远找不到最优。应对方法是先做边界探索实验,观察响应趋势。第三个陷阱是目标函数定义模糊。例如“提高质量”不是可计算目标,应转化为“纯度 ≥ 99.5%”或“杂质峰面积 ≤ 0.3%”。
六、一个可复用的建模检查清单
| 检查项 | 关键问题 | 示例 |
|---|---|---|
| 设计变量 | 是否可调、显著、独立? | T, C, t 三者独立可调 |
| 变量范围 | 上下界是否有依据? | T ∈ [40, 90] °C,基于溶剂沸点与预实验 |
| 目标函数 | 是否可计算、可比较? | 收率 Y 由 HPLC 定量 |
| 硬约束 | 是否不可违反? | T ≤ 95 °C,安全红线 |
| 软约束 | 是否可惩罚处理? | S ≥ 85%,用惩罚项加入目标 |
| 边界敏感性 | 最优解是否靠近边界? | 若 T* = 89 °C,接近上界,考虑外扩 |
完成上述建模后,实验优化问题就从“模糊的工程需求”变成了“明确的数学问题”。后续的主动学习算法、采集函数和停止准则,都建立在这个模型之上。模型的质量直接决定优化的上限:一个遗漏关键变量或约束过紧的模型,再先进的算法也无法弥补。