9.3 产率预测与条件优化


文档摘要

9.3 产率预测与条件优化 本节摘要:路线解决"能不能做",条件决定"做得好不好"。本节讲两条互补的技术线:产率预测——用高通量实验数据训练模型,预判哪个配体、哪组条件大概率高产;条件优化——用贝叶斯优化在实验轮次之间学,推荐下一板最值得试的条件。核心认知是:产率模型只会在实验过的条件空间里插值,贝叶斯优化才是拓展空间的探路者。 反应信息学的收官一节。第6章预测的是分子的活性,本节预测的是反应的产率——同一套建模纪律(数据、特征、验证、适用域)换个对象再来一遍,你会发现"插值可信、外推危险"这条规律在化学反应空间里更加陡峭。 产率为什么难预测 产率是个被多重因素揉皱的标签:底物电子与位阻、配体与配体、溶剂、浓度、温度、操作顺序,甚至天气湿度都被调侃过。

9.3 产率预测与条件优化

本节摘要:路线解决"能不能做",条件决定"做得好不好"。本节讲两条互补的技术线:产率预测——用高通量实验数据训练模型,预判哪个配体、哪组条件大概率高产;条件优化——用贝叶斯优化在实验轮次之间学,推荐下一板最值得试的条件。核心认知是:产率模型只会在实验过的条件空间里插值,贝叶斯优化才是拓展空间的探路者。

反应信息学的收官一节。第6章预测的是分子的活性,本节预测的是反应的产率——同一套建模纪律(数据、特征、验证、适用域)换个对象再来一遍,你会发现"插值可信、外推危险"这条规律在化学反应空间里更加陡峭。

产率为什么难预测

产率是个被多重因素揉皱的标签:底物电子与位阻、配体与配体、溶剂、浓度、温度、操作顺序,甚至天气湿度都被调侃过。数据的现实是——文献产率散落且口径混乱,系统性的产率数据主要来自高通量实验(HTE):一块实验板几百个微反应,条件网格化、口径统一。里程碑式的公开数据集来自钯催化偶联反应:底物、配体、碱、溶剂的组合在板上跑出几千个带产率的反应点,成了这个领域的标准基准。

模型侧的共识配置:反应表征用 9.1 节的映射与描述符(底物描述符、配体指纹、 categorical 条件),算法从随机森林、梯度提升到图神经网络都有上榜成绩。最要紧的实证结论只有一条:模型在条件空间内部插值表现尚可(相关系数零点七到零点九的文献区间),跨底物家族外推则大幅跳水——产率模型是插值器,不是预言家。它的正确用途是给"试过的空间"排优先级,而不是断言"没试过的组合行不行"。

案例:一块偶联反应板的预测与再优化

背景。团队在做一个偶联反应的条件筛选:三种芳基溴底物、十五个配体、四种碱、三种溶剂,首轮 HTE 板产出了五百四十个反应点的产率。任务有两个:训一个产率预测器给下一轮排优先级;再用贝叶斯优化推荐下一板最值得上样的条件组合。

操作。梯度提升模型加高斯过程优化,两段式:

import numpy as np import pandas as pd from sklearn.ensemble import RandomForestRegressor from sklearn.model_selection import group_kfold from sklearn.metrics import r2_score df = pd.read_csv("hte_plate_results.tsv", sep="\t") # 产物、配体、碱、溶剂、产率 X = pd.get_dummies(df[["aryl_bromide", "ligand", "base", "solvent"]]) y = df["yield_pct"].values # 按底物分组交叉验证:测"换一个底物还行不行"(外推口径) groups = df["aryl_bromide"] scores = [] for tr, te in group_kfold(n_splits=3).split(X, y, groups): m = RandomForestRegressor(n_estimators=400, random_state=0).fit(X.iloc[tr], y[tr]) scores.append(r2_score(y[te], m.predict(X.iloc[te]))) print("按底物分组 R2:", [round(s, 2) for s in scores]) # 贝叶斯优化:在高斯过程代理模型上找下一个最有信息量的条件 from skopt import Optimizer opt = Optimizer(dimensions=cond_space, base_estimator="GP", acq_func="EI") # 期望改进准则 opt.tell(tried_conditions.tolist(), tried_yields.tolist()) next_batch = opt.ask(n_points=24) # 下一板 24 个上样点 print("推荐下一板上样:", next_batch)

结果。模型在底物内部插值时 R2 达零点八上下;按底物分组的"外推口径"掉到零点四出头——差异之大正如本节的定论。贝叶斯优化推荐的第二批条件里,两个组合实测产率超过首轮最优值:其一换上了首轮没人试过的配体碱搭配,其二把浓度挪到了网格边缘。五百四十个首轮数据点,只花了两批探索就冲过了此前的人工最优。

解读。三个可迁移的结论。其一,外推口径必须先于插值口径汇报:只报插值 R2 会诱导团队把模型用到没试过的底物上,这是本领域最常见的翻车姿势——6.2 节适用域思想在产率场景的镜像。其二,贝叶斯优化补了产率模型的外推短板:它不假装知道答案,而是量化"哪里最不确定、哪里最可能有改善",用最少的实验换取最大的信息——与 10.3 节闭环实验室的关系是算法与躯干。其三,首轮网格别铺满:HTE 板空间有限,铺满网格是浪费——首轮按多样性铺开、后续交给优化器收敛,是当前工业界的标准打法。

变式。两个延伸方向。条件推荐而非产率预测:把任务从"预测这组条件多少产率"换成"给这个反应推荐前三组条件",检索历史库中相似反应(9.1 节的反应指纹)的成功条件做推荐,绕开外推陷阱,对冷门反应类型尤其实用;自动化闭环——贝叶斯优化器直连机器人加样系统,产率读数自动回流,人在环外只在里程碑处签字,这正是 10.3 节的完整形态。

把优化循环搬到计算数据上

贝叶斯优化不需要机器人也能先用起来——把"实验读数"换成"计算读数",就是零成本的虚拟闭环

最典型的用法是对接参数寻优:以对接打分或共识重排分当读数,让优化器在构象采样参数、质子化方案、水分子处理策略的组合空间里探索——这些计算的每一步成本以分钟计,一轮几十次的虚拟循环一晚上跑完,替真实实验省下的是数周的方案试错。同样的思路可以用于虚拟筛选的漏斗调参(阈值组合怎么设,7.1 节)、QSAR 的超参粗调(6.1 节),凡"评价指标可以离线计算"的场景皆可套用。

虚拟闭环与真实闭环的关系是彩排与公演:虚拟循环里验证过的采集函数、收敛判据、异常处置逻辑,原封不动搬进 10.3 节的实验闭环;反过来,真实闭环产生的实验数据又不断校准虚拟读数与真实产率之间的鸿沟(计算打分与实测值的相关性本身就是个值得持续监测的指标)。两条腿走路,是中小团队零硬件条件下参与闭环游戏的正确姿势。

本节要点回顾

  • 系统性产率数据来自 HTE:网格化实验板是产率建模的数据前提,文献散数只能当配料。
  • 产率模型是插值器:条件空间内可信、跨底物家族跳水——外推口径必须先于插值口径汇报。
  • 贝叶斯优化管探索:量化不确定性与期望改进,用最少实验换最大信息,补模型外推短板。
  • 首轮铺样讲策略:多样性铺开加优化器收敛,好过网格铺满。
  • 本章毕业:反应的表征、规划、优化三关打通;第10章把全部手艺装进工具箱与实验室——图书馆的馆务与新馆。

作者与出处
原作者: 灏天文库
来源:灏天文库
整理: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U