Py学习  »  机器学习算法

让机器学习读懂动力学曲线:有机反应机理的自动归类

AI与化学 • 1 周前 • 74 次点击  

一、问题的由来:动力学分析为何一直是"手工活"

要理性地改进合成方法、设计新催化剂、安全地放大工业过程,就必须弄清楚底物转化为产物的基元步骤究竟以何种顺序发生。为了阐明机理,研究者通常要采集多条动力学曲线,再由人类专家完成动力学分析。过去几十年里,反应监测技术突飞猛进,动力学数据的采集已经可以完全自动化;但用于机理阐释的理论框架却没有同步进步。

现行的动力学分析流程包含三个环节:先从实验数据中提取动力学性质(例如反应级数),再预测所有可能机理的动力学性质,最后把实验结果与预测结果做比较。(Fig. 1e 上半部分完整呈现了这一传统流程,包括初始速率对数图、稳态速率方程的推导,以及"是否一致"的人工判断。)

这套流程的隐患不少。最常用的初始速率对数图已沿用百余年,却存在诸多陷阱;反应进程动力学分析与可变时间归一化分析等现代方法虽然利用整条曲线提取了更丰富的动力学信息,但它们只关注特定的反应性质(主要是反应级数),因而错过了曲线中隐含的其他动力学信息。更关键的是,预测动力学性质要求化学家完全掌握稳态速率方程的推导与解读。稳态近似虽然对许多机理是良好的近似,却无法描述常见的非稳态体系,例如催化剂缓慢活化或不可逆失活的反应。此外,即便是中等复杂的反应网络,也可能导出极其冗长、难以解读的速率方程。动力学建模虽然能拟合数据,却是强大的工程参数化工具,在机理判别上能力有限,因为拟合优度相近的模型很难区分。

正是在这一背景下,作者提出:能否让深度学习直接"看"动力学曲线,并自动说出它属于哪一类机理?

二、核心思路:把机理识别转化为时间序列分类

作者的设想是把整个动力学分析流程压缩为一步。(Fig. 1e 下半部分展示了这一新路径:输入不同初始催化剂浓度、不同初始底物与产物浓度下测得的时间—浓度曲线,模型在毫秒级时间内直接输出机理类别,既不需要推导速率方程,也不需要提取和预测动力学性质,还能处理非稳态动力学,并实现自主的机理归类。)

这一转变的意义在于三点。其一,模型对全部可用动力学数据进行整体分析,而不是只盯住反应级数这类局部特征,因而能挖掘出曲线中隐含的信息。其二,它把人为误差从分析过程中剔除。其三,它把可分析的动力学范围扩展到了非稳态情形,包括催化剂活化与失活过程,以及可逆反应。

(Fig. 1a 至 Fig. 1d 用四个工业与合成中的真实案例说明了机理研究为何重要:钌催化芳基化因机理研究而催生出反应活性提升逾百倍的新催化剂;钯催化芳基化因识别出醌对催化剂的抑制,使转化数从 13 提升到 1960;工业相关的有机催化反应因发现关键过渡态涉及两分子催化剂,设计出活性提高十倍、选择性提高四十倍的双聚催化剂;黑曲霉单胺氧化酶体系因动力学研究检测到产物抑制,通过加入亚硫酸氢钠捕获产物避免了酶失活。)

三、机理空间:二十种机理与四大类别

作者选取了二十种在催化反应中常见的机理,它们描述底物在催化剂介导下转化为产物的过程,并被归入四个类别。(Fig. 2a 以一张总图列出了全部二十种机理的结构式示意,并按四大类别分区排列,图中 cat* 表示活化态催化剂。)

第一类是核心机理 M1,即最简的米氏型机理。第二类包含涉及双催化步骤的机理 M2 至 M5,其中 M2 与 M3 通过催化剂二聚起作用,M4 与 M5 则涉及两种不同催化物种之间的反应。第三类是在核心机理基础上引入催化剂活化步骤的机理,包括预催化剂经单分子活化(M6)、经底物配位活化(M7)以及经配体解离活化(M8)。第四类涵盖由核心机理的任一催化中间体出发的多种催化剂失活步骤,即 M9 至 M20,这类机理极难相互区分,却广泛存在于绝大多数催化过程中。

每种机理都由一组常微分方程作数学描述,方程以动力学常数与各物种浓度为自变量。这些方程可以生成无穷多组底物与产物的时间—浓度曲线,从而定义一个"动力学空间"。不同机理的动力学空间各具特征,却可能部分重叠。例如,当 M2 的某组动力学常数不产生显著的离线二聚体 cat₂ 时,其曲线与核心机理 M1 的曲线无法区分。(Fig. 2b 直观展示了这种重叠:同一组曲线既可能来自 M1,也可能来自 M2,因而成为模型判别上的天然难点。)

重叠对学习算法的性能有众所周知的负面影响。为把重叠降到最低,作者借助化学判据界定了每种机理的动力学空间,并优先采用最简机理,避免把动力学证据不足的曲线归入过度复杂的机理。

四、数据构造与模型架构

深度学习通常需要海量数据,而实验采集数据极为昂贵。作者的破解之道是数值求解常微分方程组,在不使用稳态近似的前提下生成五百万个动力学样本,用于模型的训练与验证。

每个样本由四条时间—浓度曲线构成。(Fig. 2c 详细说明了样本的组成:三条曲线的初始底物浓度相同而初始催化剂浓度不同,范围在 1 至 10 mol%;第四条是"等过量"实验,初始底物浓度降低、并预先加入产物。)作者之所以选择这一组合,是因为它包含了区分所考察的二十种机理所必需的信息:不同催化剂浓度的实验有助于判断是否存在涉及一个以上催化物种的步骤,等过量实验则同时提供产物抑制、催化剂活化与失活的信息。每条曲线包含在二十个随机选取时间点上的底物与产物浓度,从而保证曲线在时间上分布不均、覆盖不同的转化率区间。

模型含有 576000 个可训练参数,由两类神经网络组合而成:长短期记忆网络用于处理时间序列数据,全连接网络用于处理非时序数据,包括各次动力学运行的初始催化剂浓度以及长短期记忆网络提取的特征。模型为每种机理输出一个概率,概率总和为 1。训练过程中还采用了数据增强:把样本的浓度—时间点从 20 个随机缩减到 3 至 20 个之间的任意值,并在底物与产物的浓度值上叠加标准差最高 2% 的高斯误差。验证集评估显示几乎没有过拟合,作者认为这归功于训练集规模庞大且多样性充分。

五、性能:从 92.6% 到 99.96%

模型用一个包含十万个动力学样本的测试集评估,每个机理 5000 个样本,每条曲线取六个浓度—时间点,这是实际采样反应时的典型数据点数。测试集中所有样本都是训练集中未曾出现过的独特曲线。

单次分类的结果是:分类准确率 92.6%,混淆熵 0.053,前三名准确率 100%。作为对比,相似性检索、支持向量机与随机森林等其他机器学习方法的表现都明显逊色。

(Fig. 3a 的混淆矩阵把真实机理与预测机理逐一对置,可以看出绝大多数机理都以极高的召回率被正确预测,错误主要集中在两种活化机理 M6 与 M8 之间,以及三种失活机理 M11、M12 与 M14 之间。)

(Fig. 3b 为每种机理的 5000 个真实测试样本绘制了预测概率曲线,按概率从高到低排序并作 200 点移动平均。可以看到,多数测试样本不仅被预测为正确机理,而且置信度极高,超过 99%;置信度较低的样本大多源于动力学空间的重叠。例如 M11 与 M14 的样本池中有很大一部分置信度徘徊在 50% 左右,因为这两种机理都可以产生催化剂失活与底物浓度呈相同依赖关系的曲线,部分曲线本质上无法区分。作者认为这两种机理复杂度相近,因而不把这一共同动力学空间强行判给其中一方,以免人为制造层级;相反,他们把这种"交叉预测"视为模型能力的体现——模型不仅能正确分类,还能识别出与不止一种机理相容的数据,并给出相应的概率。)

正是基于这一特性,作者采取了更灵活也更有价值的输出方式:把预测结果按概率从高到低分组,直到累计置信度超过 99%。(Fig. 3c 统计了十万个测试样本在 99% 置信阈值下被提出的机理数量:69740 个样本给出唯一机理,23767 个给出两种,6067 个给出三种,405 个给出四种,21 个给出五种,没有样本给出六种及以上。)采用这种分组方式后,模型的分类准确率升至 99.96%,十万个样本中仅有 38 个错误。

(Fig. 3d 的弦图进一步揭示了分组的内在规律:被模型放在一起的机理绝大多数属于同一大类,跨大类的连线极少。这说明最初 7.4% 的"不准确"主要来自那些本就应该一起提出的机理之间的重叠,而非模型判断失误。)

六、鲁棒性:数据有误差、点数很少,还能用吗

真实实验数据从不完美。浓度上标准差最高 2% 的高斯误差(在 95% 置信区间下相当于产率正负 4%)在实验中十分常见,从如此嘈杂的曲线中提取信息是动力学分析最大的挑战之一。(Fig. 4a 用同一组曲线在不同误差水平下的形态直观呈现了这种噪声的影响,阴影区域表示 95% 置信区间。)

作者在原始测试集的浓度变量上叠加了不同水平的高斯误差,最高达 5% 标准差。(Fig. 4b 上半部分左侧显示,即便数据带有高达 2% 的标准误差,模型仍能保持超过 99.6% 的分类准确率;即便面对质量很差的数据,即 5% 标准误差、产率在 95% 置信区间下正负 10% 的误差,准确率仍达 83%。)模型应对误差的方式是增加预测中分组的机理数量。(Fig. 4b 上半部分右侧统计了不同误差水平下每个样本被提出的机理数量分布,可以清楚看到误差越大、分组越宽的规律。)对含 1% 与 5% 标准差的测试数据分别绘制弦图后可以发现:1% 误差时,分组仍局限在同一大类之内;5% 误差时则出现跨大类的连线。作者认为这并不意外,因为此时曲线失真严重,样本数据确实可能来自不同大类的机理。

另一条常用策略是增加数据量。作者用 1% 标准误差的数据集考察了数据点数的影响。(Fig. 4b 下半部分左侧显示,每条曲线取 2 至 20 个浓度—时间点时,模型都能取得很高的分类准确率;右侧显示,增加时间点会提高"给出唯一正确机理"的样本比例,而当时间点少于六个时,被分组的机理数量随之增加。值得注意的是,模型从未用少于三个时间点的样本训练过,却在每条曲线仅有两个数据点的测试集上依然表现优异。)

模型对离群点也有一定容忍度,但作者认为这一结果意义有限,因为实验上使用任何动力学分析手段时,通常会先剔除明显的离群点。

七、真实实验案例:六类反应的实战检验

为展示该模型在真实实验动力学数据上的潜力,作者把它应用于一系列不同的催化反应,包括闭环烯烃复分解、环加成、烯烃异构化、碳氢键胺化、光催化氢烷氧基化以及羰基—烯烃复分解。这些案例中,有的只提供三条不同催化剂浓度的曲线、没有等过量实验,有的只监测底物或只监测产物。在所有情形下,模型都能识别出各体系关键的特征机理信息,与原作者通过动力学及补充机理实验得出的结论相符。

(Fig. 5 以六行三列的方式呈现了这组案例:左列为所研究的反应结构式,中列为输入模型的实验动力学数据,右列为模型输出的机理结构示意。图中实心符号表示底物浓度、空心符号表示产物浓度,红色三角为最低催化剂载量、黄色方块为中等载量、蓝色圆点为最高载量、青绿色菱形为较低底物浓度。)

更值得注意的是,模型还提出了传统动力学分析无法证明的机理,例如特定的催化剂失活路径。

在闭环烯烃复分解案例中(Fig. 5a),模型不仅识别出原作者提出的催化剂失活,还进一步指出产物参与了失活路径。这一预测与先前针对化学计量钌配合物的研究以及密度泛函理论计算相吻合,后者确实显示乙烯产物可能诱导催化剂分解。

在环加成案例中(Fig. 5b),模型识别出催化剂失活涉及反应底物。经典动力学分析因该特征对曲线影响过于细微而未能发现,但原作者在化学计量有机金属研究中已观察到底物介导的脱氢失活。

在烯烃异构化案例中(Fig. 5c),模型揭示了一种不那么显而易见的失活过程,即由抑制剂导致的失活。

模型同样能识别高度特异的催化剂活化过程,例如碳氢键胺化案例中由底物引发的活化(Fig. 5d),以及氢烷氧基化案例中由配体解离引发的活化(Fig. 5e)。

在羰基—烯烃复分解案例中(Fig. 5f,另见 Extended Data Fig. 1),模型给出的机理可能性是七个案例中最多的,提示该体系需要补充实验才能提高判别精度。作者认为,这个尤其困难的案例恰好展示了"由人工智能引导设计新的动力学实验、并据此精炼机理假设"的潜力。

八、结论、局限与展望

作者总结道,深度学习可以成为机理阐释的极强工具。新模型把过去冗长的速率方程推导与动力学分析压缩为一个一体化、更准确、只需毫秒级时间的过程;训练好的模型能够解决过去极难分析的问题,包括带误差的动力学数据乃至非稳态体系;这些模型也能直接用于从各类催化反应的真实动力学数据中提取机理洞见。

需要指出的是,这一方法目前的范围仍受限于所选的二十种机理模板,模型只能在这些预定义类别之间做判别与分组,遇到模板之外的机理时会给出最接近的近似而非全新机理。此外,跨大类的误判在数据质量较差时仍会出现,说明极端噪声下的判别仍需谨慎。作者展望,机器学习将成为增强合成化学家机理研究能力的强大工具,并期待这项工作推动全自动有机反应发现与开发的发展。模型已向社区免费开放。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/202578