老周在小吃街开了家铺子,梦想调出一锅“招财酱”:辣椒、花椒、盐、糖的分量,加上炒制的火候与时长,任何一样差了味道,这锅酱就废了。刚开始他全凭手感乱试——今儿多加两勺辣,明儿少放一把盐——试了几十锅,好吃全靠运气。直到他学会一件事:每次只改一个变量、认真记录口感、再根据反馈系统调整下一锅。后来店里来了个会学习的机器人学徒“小算”,它不但记住每一锅的结果,还会主动建议“下一锅该试哪三样”。这个从“乱炖”到“会思考”的故事,正是实验设计(DOE,Design of Experiments)从传统手艺进化到 AI 增强的完整路径。本文用老周的厨房做实验室,带你从零看懂 DOE 的基本概念、经典策略、AI 增强方法、信息增益评估、催化优化案例、方法选择逻辑,以及它如何撬动科研范式的数字化转型。

岗位关联

对 AI 从业者而言,DOE 是让实验“少花钱、多办事”的元技能:调大模型超参数、设计 A/B 测试、筛选新材料,本质都是实验设计。掌握它,你就能在同样预算下拿到更可靠的结论,成为“会做实验的 AI 工程师”。

目录
  1. 可视化演示
  2. DOE基础概念
  3. 经典设计策略
  4. AI增强DOE
  5. 信息增益评估
  6. 催化条件优化
  7. 方法选择指南
  8. 科研范式变革
  9. AI 应用场景
  10. Python 演示
  11. 常见误区
  12. 面试题

可视化演示

对比传统因子设计与AI增强DOE的自适应采样,展示贝叶斯优化迭代过程与信息增益效率分析。

本节配有交互动效(进入视口后自动加载,约 3KB)。

DOE基础概念

老周做酱的第一课,是搞清楚配方里到底有“哪些旋钮”。辣椒、花椒、盐、糖四样配料,就是四个因子——实验中可以主动改变的条件;每样放多少则是水平,比如辣椒分“少辣、中辣、特辣”三档。把 4 个因子各取 3 档全排列,就有 3×3×3×3 = 81 种组合。这个“全排列”在 DOE 里叫全因子实验,它最大的特点是系统,最大的缺点是组合数呈指数爆炸。

在真正动手之前,先记住 DOE 的三个黑话:因子(factor)是影响响应的变量,水平(level)是因子取的档位,响应(response)是你关心的结果——对老周是口感评分,对 AI 实验室是催化剂产率或模型精度。DOE 的目标大致有三类:找出最优组合、刻画因子与响应的关系、验证某个因子到底有没有用。

传统试错法的毛病是“乱炖”:一次同时改好几个因子,酱好吃了不知道是谁的功劳,难吃了也不知道该怪谁;经验既不能复制,也不能积累。DOE 则要求系统化地安排实验、分析数据。最简单的系统化就是全因子设计:把每个因子的每个水平都组合一遍。假设有 k 个因子、每个因子 2 个水平,实验总数就是 2 的 k 次方。

老周一算账:4 因子 3 水平就是 81 锅,光试酱就能把铺子试倒闭。他明白,光有“系统”还不够,还要“省着试”——于是有了下一节的经典设计策略。

N=2k\displaystyle N = 2^{k}
这个公式说明:实验数量随因子个数指数爆炸。5 个因子要 32 锅,8 个因子就是 256 锅。这就是 DOE 必须讲究“策略”的根本原因。
  1. 因子数 k实验中主动改变的条件个数,对应老周锅里的辣椒、花椒、盐、糖。
    kk
  2. 水平数 2每个因子取的档位数,比如“少辣/特辣”两档。
    22
  3. 全因子组合数 N所有因子所有水平两两组合得到的总锅数。
    N=2kN = 2^{k}

经典设计策略

老周的第二课是“办品鉴会”而不是“办全席”。全因子设计是把所有菜都做一遍,稳但费;部分因子设计只挑其中一部分做,用统计学的补全能力猜出剩下的味道;响应曲面法先在远处粗扫定位甜区,再在甜区周边密集精修,拟合出完整的“味道地形图”找顶点;拉丁超立方则像均匀撒网,把每个因子的取值范围都等分成若干档,保证每档都被照顾到。

前两者是“筛选型”设计,适合从一堆因子中快速找出重要的;后两者是“优化型”设计,适合在缩小范围后精确找最优点。经典 DOE 的哲学是:用最少的实验把信息榨干,用统计模型补全没做过的组合。代价是,部分因子设计会损失对高阶交互效应的区分能力——就像你跳着尝了 8 锅,能猜出大方向,但很难分清“辣椒和花椒的联手效应”到底有多强。

以 2 水平因子为例,全因子需要 2^k 次实验。部分因子设计通过一个参数 p 表示“我省掉了多少批组合”,实际实验数变为 2^(k-p)。比如 5 个因子全做要 32 组,令 p=2 就只要 8 组——省下 75% 的成本,前提是你愿意牺牲对三阶及以上交互的辨析力(工程中通常可以接受,因为高阶交互往往微弱)。

老周用部分因子先筛出“辣椒和火候”是主角,再用响应曲面法细调,8+12 锅就锁定了初步配方。经典 DOE 帮他省了三分之二的钱,但真正的飞跃,要等机器人学徒“小算”上场。

N=2k−p\displaystyle N = 2^{k-p}
通俗理解:p 是“偷懒指数”。p 越大,省下的实验越多,但信息损失也越大。经典 DOE 的一切技巧,都在“省”与“准”之间找平衡。
  1. 全因子规模 2^kk 个因子、每因子 2 水平时的完整实验锅数。
    2k2^{k}
  2. 折叠参数 p故意省略掉的高阶组合批次数,p 越大省得越多。
    pp
  3. 部分因子实验数 N实际需要做的锅数,比全因子少了一大截。
    N=2k−pN = 2^{k-p}

AI增强DOE

“小算”学做酱的方法不是死记配方,而是先尝十几锅,随后在心里搭了一个“味道预测模型”:对任何没试过的配方,它都能给出两个数——预测得分 μ(x) 和“猜得多没底” σ(x)。这种“经验外挂”在 DOE 里叫代理模型(surrogate model),最常用的是高斯过程(GP)——一种能同时给出预测值和不确定度的统计模型。

代理模型的数学本质,是把对未知函数的推断转化为“已知点结果的加权平均”:离得越近的已知实验,说话越有分量。这个“距离远近”由核函数(kernel)定义,最常见的 RBF 核会按距离指数衰减权重。代理模型不代替你做实验,却能让你少做实验——它能预测没做过的点,并告诉你哪些地方最值得补做。

AI 增强 DOE 的完整套路是:先做少量初始实验建立代理模型;接着用采集函数(如 EI)从候选点中挑出“最有信息量”的配方做下一轮实验;把新结果加进数据集,更新模型;重复直到预算耗尽。这个“边做边学、边学边试”的循环,就是主动学习与贝叶斯优化的核心。

老周发现,“小算”从第 10 锅开始就总往甜区附近试,还会主动去那些“没底”的角落补见识。这不再是省实验,而是每一锅都花在刀刃上。下一节要回答的是:凭什么说某一锅“最有信息量”?

y^(x∗)=∑i=1nwi⋅yi\displaystyle \hat{y}(x_{*}) = \sum_{i=1}^{n} w_{i} \cdot y_{i}
白话版:对没试过的配方 x*,模型用“长得像”的历史配方 y_i 的结果做加权平均来预测它的味道,越像的权重越高。
  1. 候选点 x\*一个还没做过实验的配方,即一组待评估的因子取值。
    x∗x_{*}
  2. 历史结果 y_i过去 n 次实验尝到的口感得分或产率。
    yiy_{i}
  3. 相似度核函数 K度量两个配方有多“像”,距离越近值越大,RBF 核是最常用的一种。
    K(x∗,xi)=exp⁡(−∥x∗−xi∥22ℓ2)K(x_{*}, x_{i}) = \exp\left( -\frac{\|x_{*} - x_{i}\|^{2}}{2\ell^{2}} \right)
  4. 预测均值把相似度作为权重,对历史结果加权平均,得到“这锅大概什么味”。
    y^(x∗)=∑i=1nwi⋅yi\hat{y}(x_{*}) = \sum_{i=1}^{n} w_{i} \cdot y_{i}

信息增益评估

老周问:“小算,为什么选这个配方下手?”小算翻开自己的小本本:每个候选配方都有一个“期望提升”(EI)分数。分数由两股力量合成:一股是“利用”——如果模型预测这里得分会超过历史最好成绩,就值得试;另一股是“探索”——如果模型对这里特别没底,试了能大涨见识,也值得试。

在贝叶斯优化里,这个分数就是采集函数(acquisition function)。最常见的期望提升 EI(x) 同时使用了代理模型的两个输出:预测均值 μ(x) 和不确定性 σ(x)。前者代表“可能有多好”,后者代表“信息价值有多高”。EI 高的点,要么是看起来能破纪录,要么是让人长见识,两者兼得最佳。

公式假设候选点 x 的真实响应服从以 μ(x) 为中心、σ(x) 为宽度的正态分布,那么“它超过当前最优 y_best 的期望幅度”可以解析表达。φ(z) 是标准正态密度,Φ(z) 是标准正态分布函数,二者共同把“超纪录的概率”和“超纪录的幅度”折成一个分数。三种策略对比:随机采样每锅的信息增益波动大;全因子网格前期信息密、后期大量重复;AI 自适应按 EI 排序采样,累计信息增益曲线最快逼近天花板。

有了 EI 这把尺子,“小算”的每一次下手都有了理由:挖甜区、探未知、偶尔兼顾。老周恍然大悟:原来“该试什么”本身,就是一门可以计算的学问。

EI(x)=(μ(x)−ybest)⋅Φ(z)+σ(x)⋅ϕ(z),z=μ(x)−ybestσ(x)\displaystyle EI(x) = (\mu(x) - y_{\text{best}}) \cdot \Phi(z) + \sigma(x) \cdot \phi(z), \quad z = \frac{\mu(x) - y_{\text{best}}}{\sigma(x)}
直觉理解:EI = 潜在提升 × 超纪录概率 + 不确定性红利。第一项奖励“可能更好”,第二项奖励“值得一探”。
  1. 当前最优 y_best到目前为止最美味那锅的得分,是“利用”的参照物。
    ybesty_{\text{best}}
  2. 预测均值 μ(x)代理模型认为候选配方 x 能拿到的分数。
    μ(x)\mu(x)
  3. 不确定性 σ(x)模型对这个预测的把握程度,越大代表越“没底”。
    σ(x)\sigma(x)
  4. 标准化差距 z预测超出当前最优的程度,以不确定性为单位衡量。
    z=μ(x)−ybestσ(x)z = \frac{\mu(x) - y_{\text{best}}}{\sigma(x)}
  5. EI 采集函数把“超纪录的幅度和概率”与“不确定性红利”加总,得到这锅的尝试价值。
    EI(x)=(μ(x)−ybest)⋅Φ(z)+σ(x)⋅ϕ(z)EI(x) = (\mu(x) - y_{\text{best}}) \cdot \Phi(z) + \sigma(x) \cdot \phi(z)

催化条件优化

老周接到大单:给连锁餐厅做“催化酱”——放进锅里能加快反应、提高出品率,还得省燃气。自变量是温度、压力、原料浓度;响应有两个:产率和能耗。单看产率,全因子网格也能干,但要“既要马儿跑、又要马儿少吃草”,就成了多目标优化。

处理多目标的标准做法之一,是加权合成:给产率一个正权重 w1,给成本一个负权重 w2,合成单一得分后交给 AI 增强 DOE 去优化。权重反映业务偏好——大赛临近看重产率,平时经营看重省钱。这个“偏好旋钮”让同一个优化器能适配不同的经营策略。

在这个案例里,传统路线是全因子网格配合响应曲面精修,约需 40+ 组实验;AI 增强 DOE 用贝叶斯优化,在 50 次预算内通常 15 组就能找到产率相当、能耗更低的条件。文献报道的催化条件筛选中,贝叶斯优化普遍能用 1/3 的实验拿到同等甚至更优结果——这正是“信息增益评估”带来的红利。

老周的招牌催化酱,最后是“小算”用 16 锅试出来的——比隔壁大厨试了两个月还强。厨艺大赛评委问秘诀,老周嘿嘿一笑:“我不是会做酱,我是会设计实验。”

max⁡x  [w1⋅产率(x)−w2⋅成本(x)]\displaystyle \max_{x} \; \left[ w_{1} \cdot \text{产率}(x) - w_{2} \cdot \text{成本}(x) \right]
一句话:把两个目标拧成一个综合分,AI 增强 DOE 在预算约束下替你把综合分尽量做大。
  1. 决策变量 x一组催化条件,如温度、压力、原料浓度。
    xx
  2. 产率目标希望越高越好的响应,代表出品量。
    产率(x)\text{产率}(x)
  3. 成本目标希望越低越好的惩罚项,代表燃气与原料开销。
    成本(x)\text{成本}(x)
  4. 权重 w1、w2在“多产”和“省钱”之间取舍的业务偏好。
    w1, w2w_{1},\ w_{2}

方法选择指南

厨房墙上贴着一张决策表:什么菜用什么炒法。因子少(≤4)、预算足,直接全因子;因子中等(5~8),先部分因子做筛选,筛出主力再精修;因子多且单次实验贵,直接上 AI 增强 DOE 自适应采样。噪声大(重复实验结果忽高忽低)时,任何策略都要留出重复实验的预算。

方法选择的本质是预算与信息量的交易:全因子信息最全但最贵,部分因子用混淆换省钱,AI 增强用模型假设换效率。如果实验噪声大,代理模型的拟合会更难,需要更多初始点;如果因子间交互强,部分因子的筛选结果可能误判。没有绝对的最好,只有适配与否。

任何现实项目都先算一笔账:总预算 B 除以单次实验成本 c_run,就是你能做的最大实验次数 n_max。这个数字直接决定你请得起“全因子”还是只能上“AI 增强”。工具上,传统 DOE 可用 pyDOE、Minitab;AI 增强可选 BoTorch、Optuna;自动化实验室则把这套决策写进调度系统,由机器人执行。

老周把决策表贴在灶台上方:小灶台全因子、大灶台部分因子、机器人灶台 AI 增强。方法没有高下,只有“配不配得上你的锅”。

nmax⁡=⌊Bcrun⌋\displaystyle n_{\max} = \left\lfloor \frac{B}{c_{\text{run}}} \right\rfloor
预算即天花板:锅数由钱包决定。先算 n_max,再倒推选哪套策略,而不是先选策略再超支。
  1. 总预算 B你能接受的实验总花销,包括时间、试剂与机时。
    BB
  2. 单次成本 c_run每做一锅实验的代价。
    crunc_{\text{run}}
  3. 最大实验次数 n_max预算决定的上限,向下取整。
    nmax⁡=⌊Bcrun⌋n_{\max} = \left\lfloor \frac{B}{c_{\text{run}}} \right\rfloor

科研范式变革

老周的最后一步,是把整个铺子升级成自动化中央厨房:机械臂自动配料,传感器实时读数,“小算”每做完一批就自动规划下一批。老周从“亲自掌勺”变成了“AI 科学家”——负责定目标、定预算、定边界,剩下的交给闭环。

这就是真实世界正在发生的“自驱动实验室”(self-driving lab)与实验室数字化转型。传统科研是串行流程:人做实验、人记数据、人分析、人再设计,一个循环动辄几天;闭环系统把“分析+设计”交给模型,几秒完成,实验通量因此提升一个数量级。

实验通量 F 衡量单位时间能完成的实验轮次,它由实验耗时与决策耗时共同决定。传统模式下决策耗时 t_dec 以小时计,常常比实验本身还长;自动化闭环把 t_dec 压到秒级,通量自然翻倍。更重要的是,闭环让数据不再流失,每一轮实验都成为下一轮模型的知识,科研从“假设驱动”走向“数据驱动”。

如今老周的铺子改名叫“周记·AI 实验室”,墙上还挂着最初那 81 锅的失败记录。他常说:科研的变革不是多买了几个机器人,而是把“设计实验”这件事本身,变成了一门可以学习、可以优化、可以自动化的科学。

F=Ntexp+tdec\displaystyle F = \frac{N}{t_{\text{exp}} + t_{\text{dec}}}
白话版:实验通量 = 一批实验的数量 ÷(做实验的时间 + 想下一步的时间)。AI 压缩的是“想下一步”的时间。
  1. 实验数 N一批完成的实验锅数。
    NN
  2. 单锅耗时 t_exp物理实验本身的时间,如催化反应 2 小时。
    texpt_{\text{exp}}
  3. 决策耗时 t_dec人分析数据、拍板下一批配方的时间。
    tdect_{\text{dec}}
  4. 实验通量 F单位时间内能做完并决策的实验轮次,通量越高迭代越快。
    F=Ntexp+tdecF = \frac{N}{t_{\text{exp}} + t_{\text{dec}}}

AI 应用场景

自驱动实验室的“机器人试错官”

阶段:数据采集与主动采样

解决的问题:传统高通量实验平台虽然自动化了,但仍是按预设网格“傻跑”,大量实验落在低价值区域。AI 增强 DOE 让机器人每轮根据上一批结果选择下一轮条件,自动聚焦高价值区域,把实验预算花在刀刃上。

具体案例:某材料团队用自驱动平台筛选钙钛矿薄膜的结晶条件,把原本需要 300 组的全因子实验压缩到 80 组,就找到了最优退火温度与溶剂比例,全程无人值守。

催化剂配方的小样本优化

阶段:模型训练与优化决策

解决的问题:单个催化实验动辄数小时且试剂昂贵,传统试错法负担不起。高斯过程代理模型与 EI 采集函数用少量实验逼近最优,大幅降低试错成本。

具体案例:某课题组优化 CO2 加氢制甲醇催化剂,输入温度、压力、Cu/Zn 比三个因子,用 30 次实验获得了与 120 次网格搜索相当的产率,节省了整整一周的机时。

大模型超参数调优

阶段:模型开发与调优

解决的问题:大模型训练一次成本极高,网格搜索完全不现实。贝叶斯优化把学习率、batch size、层数当作“因子”,把验证集指标当作“响应”,用最少训练轮次锁定最佳配置。

具体案例:某团队微调 LLM 时用 BO 在 12 次训练内找到了比人工调参 30 次更优的超参数组合,训练成本直降 60%。

Python 演示

python95 行
import mathimport numpy as np  def catalyst_yield(x1, x2):    """模拟催化条件与产率之间的黑箱关系: 温度, 压力归一化到[0,1]."""    peak = 1.2 * np.exp(-((x1 - 0.65) ** 2 + (x2 - 0.40) ** 2) / 0.02)    base = 0.4 * np.sin(3.0 * x1) * np.cos(2.0 * x2) + 0.6    return peak + base  def rbf_kernel(X1, X2, length=0.3, amplitude=1.0):    """RBF核: 度量两个配方之间的相似度."""    sq = (np.sum(X1 ** 2, axis=1)[:, None]          + np.sum(X2 ** 2, axis=1)[None, :]          - 2.0 * X1 @ X2.T)    return amplitude * np.exp(-0.5 * sq / length ** 2)  class TinyGP:    """极简高斯过程回归, 作为AI增强DOE的代理模型."""     def __init__(self, noise=1e-4):        self.noise = noise        self.X = np.zeros((0, 2))        self.y = np.zeros(0)     def fit(self, X, y):        self.X, self.y = X, y     def predict(self, Xs):        K = rbf_kernel(self.X, self.X) + self.noise * np.eye(self.X.shape[0])        Ks = rbf_kernel(self.X, Xs)        mu = Ks.T @ np.linalg.solve(K, self.y)        s2 = np.diag(rbf_kernel(Xs, Xs) - Ks.T @ np.linalg.solve(K, Ks))        return mu, np.sqrt(np.maximum(s2, 1e-12))  def expected_improvement(mu, sigma, y_best):    """EI采集函数: 均值越高越好, 不确定越大越值得探索."""    gap = mu - y_best    z = gap / sigma    phi = np.exp(-0.5 * z ** 2) / math.sqrt(2.0 * math.pi)    Phi = 0.5 * (1.0 + np.vectorize(math.erf)(z / math.sqrt(2.0)))    return gap * Phi + sigma * phi  def random_search(n=20, seed=0):    rng = np.random.default_rng(seed)    X = rng.random((n, 2))    y = catalyst_yield(X[:, 0], X[:, 1])    return X, y  def grid_search(n=5):    xs = np.linspace(0.05, 0.95, n)    gx, gy = np.meshgrid(xs, xs)    X = np.stack([gx.ravel(), gy.ravel()], axis=1)    y = catalyst_yield(X[:, 0], X[:, 1])    return X, y  def bayesian_optimization(n=20, seed=1):    rng = np.random.default_rng(seed)    cand = rng.random((500, 2))     # 候选配方池    X = rng.random((3, 2))          # 3个初始实验    y = catalyst_yield(X[:, 0], X[:, 1])    while X.shape[0] < n:        gp = TinyGP()        gp.fit(X, y)        mu, sigma = gp.predict(cand)        ei = expected_improvement(mu, sigma, y.max())        best = cand[int(np.argmax(ei))]        X = np.vstack([X, best])        y = np.append(y, catalyst_yield(best[0], best[1]))    return X, y  if __name__ == "__main__":    Xr, yr = random_search()    Xg, yg = grid_search()    Xb, yb = bayesian_optimization()     best_true = catalyst_yield(0.65, 0.40)    target = 0.95 * best_true    print("理论最优产率=%.3f, 目标=%.3f" % (best_true, target))     for name, X, y, n in [("随机搜索", Xr, yr, 20),                          ("网格搜索", Xg, yg, 25),                          ("贝叶斯优化", Xb, yb, 20)]:        cum_best = np.maximum.accumulate(y)        hit = int(np.argmax(cum_best >= target) + 1) if np.any(cum_best >= target) else -1        msg = "%s: %d次实验, 最优产率=%.3f" % (name, n, y.max())        msg += ", 第%d次达标" % hit if hit > 0 else ", 未达标"        print(msg)
目的:实现一个迷你贝叶斯优化器(高斯过程代理模型 + EI 采集函数),对比随机搜索、网格搜索与 AI 增强 DOE 在催化条件优化中的效率差异。
  1. def catalyst_yield(x1, x2):定义“黑箱”产率函数,对优化器隐藏真实机制,模拟真实催化实验
  2. class TinyGP:迷你高斯过程代理模型,负责“脑补”未实验的配方
  3. mu = Ks.T @ np.linalg.solve(K, self.y)用核相似度加权历史结果,得到预测均值
  4. s2 = np.diag(rbf_kernel(Xs, Xs) - Ks.T @ np.linalg.solve(K, Ks))计算预测方差,即“没底”的程度
  5. def expected_improvement(mu, sigma, y_best):EI 采集函数,把“利用”和“探索”折成一个分数
  6. ei = expected_improvement(mu, sigma, y.max())对 500 个候选配方批量打分
  7. best = cand[int(np.argmax(ei))]挑 EI 最高的配方作为下一轮实验
  8. X = np.vstack([X, best])把新实验加入历史,模型越学越准
  9. np.maximum.accumulate(y)生成“最佳产率随实验次数变化”的数据,用于对比三种策略

常见误区

误区“做实验嘛,当然多多益善。我把每个条件组合都试一遍,总比精心设计更保险,结果肯定更可靠。”

正解实验的成本不只是钱,还有时间和注意力。无计划的“全试一遍”在小维度下可行,高维度下组合数指数爆炸,而且后期大量实验提供的边际信息趋近于零——就像老周已经知道甜区在哪,还在把甜区外的 60 锅全做一遍。DOE 的追求是“信息效率”:用最少实验获得足够可靠的结论。每做一个实验前问自己:它能让我“涨多少见识”?答不上来就别做。

为何常见:人直觉上认为“量变引起质变”,忽略了实验信息有边际递减;加上领导常问“你试了几组”,大家误把数量当质量。

误区“既然全因子把组合都试了,那它一定最准确、最可靠,别的策略都是偷工减料。”

正解全因子在因子数少时确实信息完整,但因子一多就爆炸。更关键的是,如果目标是“找最优”而非“估计所有交互项”,全因子的很多实验是低价值的重复劳动。AI 增强 DOE 用代理模型“脑补”掉这些组合,把预算留给最值得试的点。全因子是基准尺子,不是唯一答案。

为何常见:教材先讲全因子,给人一种“它是标准答案”的印象;而“省实验”听起来像投机取巧,违背了“踏实”的直觉。

误区“用贝叶斯优化,随便给几个点就能自动找到全局最优,实验设计从此不需要人了。”

正解贝叶斯优化的效果高度依赖代理模型的假设(如 GP 的核函数、平滑性)、初始种子点和搜索空间边界的设置。如果真实响应面粗糙、噪声大、存在漂移,模型会“自信地错”。它只是把实验设计从“拍脑袋”升级为“基于假设的量化决策”,假设错了照样翻车。

为何常见:论文里的成功案例让人忽略了前置条件,AI 的宣传又放大了“全自动”的想象,让人忘了“模型只是工具”。

误区“我是做 AI 的,DOE 是搞化学、搞制造的人才需要学的东西,跟我没关系。”

正解DOE 的“因子-水平-响应”框架适用于一切需要实验的场景:模型超参数调优就是典型的因子实验(学习率、batch size、层数),A/B 测试、提示词工程、奖励模型采样,全都在做实验设计。AI for Science 时代,会设计实验的 AI 工程师才有资格参与“闭环科研”。

为何常见:DOE 常以化工案例教学,让人觉得领域绑定;实际上它的本质是通用的“不确定环境下的信息决策”,换一身衣服就出现在你的日常工作中。

面试题

Q1. DOE 中“因子”指的是什么?

单选题 · easy

  • A.实验最终得到的产物
  • B.影响实验结果的变量← 正确答案
  • C.实验重复进行的次数
  • D.实验测量产生的误差

答案:B。因子是实验中主动改变的条件变量,如温度、浓度;产物是响应、重复次数是样本量、误差是噪声,都不是因子。记住三件套:因子、水平、响应。

Q2. 3 个因子各取 2 个水平时,全因子实验共需多少组?

单选题 · easy

  • A.需要6组实验
  • B.需要8组实验← 正确答案
  • C.需要9组实验
  • D.需要12组实验

答案:B。全因子组合数 N = 2³ = 8。就像老周的三味配料各分两档,全部组合一遍就是 2×2×2=8 锅。

Q3. AI增强DOE中代理模型的主要作用是?

单选题 · mid

  • A.代替机械臂执行加料动作
  • B.拟合实验空间并预测未测点← 正确答案
  • C.存储所有历史实验的记录
  • D.自动清洗实验产生的数据

答案:B。代理模型(如高斯过程)用已有数据拟合“响应面”,对未测点输出预测均值和不确定性,是 AI 增强 DOE 决策的基础。它不负责执行、存储或清洗,那些是设备与数据工程的事。

Q4. 使用部分因子设计的主要代价是?

单选题 · mid

  • A.无法进行任何统计分析
  • B.效应与交互作用可能混淆← 正确答案
  • C.因子数量会因此明显减少
  • D.实验成本会直接成倍增加

答案:B。部分因子用更少实验换信息,代价是某些主效应与交互效应会混淆(alias),无法完全区分。就像跳着尝菜,能猜出大方向,但说不清“辣椒和花椒”谁贡献了多少。

Q5. “探索与利用”中的“利用”指的是?

单选题 · mid

  • A.随机探索完全未知的区域
  • B.在当前最优区域附近深挖← 正确答案
  • C.把有限实验次数用到极限
  • D.提高实验测量的精度水平

答案:B。利用是在预测最优附近精细采样,探索是去不确定性大的区域补信息。采集函数(如 EI)的核心就是平衡这两者——既挖甜区,也去没底的地方看看。

Q6. 下列哪些属于AI增强DOE的核心技术?

多选题 · mid

  • A.高斯过程代理模型← 正确答案
  • B.贝叶斯优化决策器← 正确答案
  • C.全因子枚举计划
  • D.主动学习采样← 正确答案

答案:ABD。高斯过程是代理模型、贝叶斯优化是决策框架、主动学习是采样策略,三者构成 AI 增强 DOE 的闭环。全因子枚举属于经典 DOE,不是 AI 增强。

Q7. 期望提升EI计算公式中,σ(x) 的作用是?

单选题 · hard

  • A.衡量预测不确定性的尺度← 正确答案
  • B.计算实验总体耗时的公式
  • C.表示当前最优产率的高低
  • D.反映因子交互作用的强度

答案:A。σ(x) 是代理模型给出的不确定度。EI 的第二项 σ(x)·φ(z) 专门奖励“没底”的区域,促使算法在探索与利用之间保持平衡。若 σ 恒为 0,算法就退化成只会利用的贪心搜索。

Q8. 选择DOE策略时需要考虑哪些因素?

多选题 · hard

  • A.因子维度的高低程度← 正确答案
  • B.单次实验的预算成本← 正确答案
  • C.实验结果的噪声大小← 正确答案
  • D.实验室房间的占地面积

答案:ABC。因子多→部分因子或 AI 增强;预算紧→优先信息效率高的策略;噪声大→需要重复实验与稳健设计。实验室面积与实验设计无关,属于干扰项。

Q9. 催化条件优化案例中,AI增强DOE相比全因子网格的优势是?

单选题 · easy

  • A.完全不需要做任何真实实验
  • B.用更少实验找到更优条件← 正确答案
  • C.保证找到全局精确最优
  • D.不需要任何初始实验数据

答案:B。贝叶斯优化通过代理模型+主动采样聚焦高价值区域,常见结论是用 1/3 实验达到同等或更优结果。但它并非不做实验、不保证全局最优、也需要少量初始数据。

Q10. 关于科研自动化与实验室数字化转型的说法,正确的有?

多选题 · hard

  • A.自动化平台让数据闭环成为可能← 正确答案
  • B.AI增强DOE可加速新材料发现← 正确答案
  • C.数字化转型完全消除实验误差
  • D.实验设计DOE能提升科研效率← 正确答案

答案:ABD。自动化平台让“实验-学习-再实验”闭环成为现实,AI 增强 DOE 加速材料与催化剂筛选,DOE 本身提升实验的信息效率。但误差只能被降低和建模,无法完全消除。