想象一座繁忙城市中央的巨型环形路口——这正是“化学十字路口”。一辆满载原料的化学货车(反应物分子)驶入路口,面对多个出口:有的通向救命药丸的合成车间,有的通向高纯度材料工厂,还有的通往需要耗费巨资处理的废料场。货车的去向不由司机决定,而由路口的隐形路牌(催化剂)指挥。可路牌从不说话,于是交通调度中心请来了一位 AI 调度员。它翻阅每辆车的档案(分子结构),结合路况(温度、溶剂等反应条件),提前预判车辆最可能从哪个出口驶出——这个预判,就是“反应选择性预测”。本篇文章将跟随这位 AI 调度员走进化学路口,从基础概念、物理化学原理,一路聊到数据工程与机器学习模型,最后看看它如何在实际工厂里大显身手。全程只用“路口调度”的语言,你不必懂任何化学公式。

岗位关联

对 AI 从业者而言,反应选择性预测是 AI for Science 在化学领域的核心落地场景,理解其原理与方法,就掌握了将机器学习推向真实科研与工业场景的关键范式。

目录
  1. 可视化演示
  2. 选择性概述
  3. 化学基础原理
  4. 反应路径拓扑
  5. 数据与表征
  6. 传统机器学习
  7. 深度学习方法
  8. 评估与应用
  9. AI 应用场景
  10. Python 演示
  11. 常见误区
  12. 面试题

可视化演示

通过能垒反应路径、多产物选择性分布与动力学/热力学控制三个模式,理解AI如何预测化学反应路径选择性与产物分布。支持模式切换与播放暂停。

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

能垒与反应路径 反应物R→过渡态TS→产物P Ea = E(TS) - E(R) 活化能决定反应速率与路径可行性。

选择性概述

调度中心每周都会收到同一类求助:同一个货物,从同一座路口进来,却总能被不同的路牌引向完全不同的出口。市民们很困惑——为什么同样一批货,有时变成了药品,有时却变成了废料?这个问题,在化学家口中叫作“反应选择性”。

所谓反应选择性,指的是同一个反应物分子在多种可能路径并存时,各路径生成产物的相对比例。它不像“反应速率”那样只关心某一条路走得快不快,而是关心所有出口之间的车流分配。就像同一个十字路口,早高峰和晚高峰的车上不同方向的概率完全不同——选择性描述的就是这种“概率分配”。

选择性的定量表达通常用目标产物占所有产物的百分比。在制药工业中,一个关键产物的选择性从 90% 提到 99%,分离成本能下降数倍;反之,如果选择性只有 60%,后处理可能比反应本身还要昂贵。因此,“预测选择性”成为合成化学的刚需——而 AI 调度员的核心任务,就是预先算出这个百分比。

所以,“选择性预测”四个字翻译成路口语言,就是让 AI 调度员回答:这辆车最可能从哪个出口出去?回答得越准,化学师傅们越敢放心布置路牌——这正是整个调度中心存在的意义。

S=n目标产物n目标产物+n副产物×100%\displaystyle S = \frac{n_{\text{目标产物}}}{n_{\text{目标产物}} + n_{\text{副产物}}} \times 100\%
这个式子把一个“哪条路占主导”的问题,变成了一个直观的百分比:分子越多地流向目标出口,S 越接近 100%。
  1. 目标产物的量反应结束后,最想得到的产物生成了多少物质的量(单位摩尔)。
    n目标产物n_{\text{目标产物}}
  2. 副产物的量其他竞争路径消耗反应物生成的不想要产物,同样以物质的量计。
    n副产物n_{\text{副产物}}
  3. 产物总量求和把目标产物和副产物加起来,等于产物总流量,代表所有出口的车流总和。
    n目标产物+n副产物n_{\text{目标产物}} + n_{\text{副产物}}
  4. 占比计算目标产物除以产物总量,得到它在所有出口中的份额。
    n目标产物n目标产物+n副产物\frac{n_{\text{目标产物}}}{n_{\text{目标产物}} + n_{\text{副产物}}}
  5. 百分比化乘上 100%,把份额变成直观的百分比数字。
    ×100%\times 100\%

化学基础原理

为什么有的出口车水马龙,有的出口门可罗雀?物理学家蹲在路口观察后得出结论:每个出口前都有一道隐形减速带,车要过去,必须碾过它。减速带越高,愿意走那条路的车就越少。这道减速带,对应化学中的“反应能垒”。

分子要完成一次反应,必须先翻越一个能量高点——过渡态。在过渡态那一瞬,旧化学键将断未断、新键将成未成,整个分子处于“骑在减速带正中央”的微妙状态。反应物到过渡态的自由能差 ΔG‡,决定了翻越的难度。

两条竞争路径的产物比例,由它们的能垒差决定——这正是玻尔兹曼分布的核心洞察。能垒差 5 kJ/mol 看起来不大,在室温下换算成产物比却接近 7:1;差 10 kJ/mol 时可达约 50:1。这就是选择性的“杠杆效应”:微小能垒差被指数放大。温度则是这支杠杆的旋钮——温度升高,杠杆变钝,选择性趋近于各占一半。

调度员很快意识到,与其盯着每辆车猜,不如去摸清减速带的高度。可减速带是隐形的——它们藏在分子的电子结构里。好消息是,AI 可以从海量实验数据中反推这些隐形高度,这正是预测选择性的底层逻辑。

PiPj=exp⁡(−Ei−EjkBT)\displaystyle \frac{P_i}{P_j} = \exp\left(-\frac{E_i - E_j}{k_B T}\right)
这个公式告诉我们:两条路的产物比例,完全由能垒差和温度共同决定。能垒差越大、温度越低,选择性越悬殊。
  1. 两条路径的能垒路径 i 与 j 各自的路障高度,高度差决定车流偏好方向。
    Ei−EjE_i - E_j
  2. 热涨落能量玻尔兹曼常数与绝对温度的乘积,代表分子热运动的平均撞击力,温度越高冲劲越足。
    kBTk_B T
  3. 无量纲比值能垒差除以热涨落能量,得到一个纯数,它决定了指数放大的倍数。
    Ei−EjkBT\frac{E_i - E_j}{k_B T}
  4. 指数函数负指数把能垒差“翻译”成概率倍率——路障高一点,概率就指数级缩水。
    exp⁡(−Ei−EjkBT)\exp\left(-\frac{E_i - E_j}{k_B T}\right)
  5. 概率比走 i 路的概率是走 j 路的几倍,直接对应两条路径的产物摩尔比。
    PiPj\frac{P_i}{P_j}

反应路径拓扑

但路口远比想象复杂。有些路口是三层立交,车要先进入中间匝道才能换方向;有些匝道特别窄,所有车都堵上一阵。减速带只是局部问题,立交桥的“拓扑结构”才是全局问题。

化学上,反应路径拓扑描述的是分子从反应物到产物的完整路网:经过哪些中间体、在哪个点分叉、哪一步是全流程的瓶颈。选择性往往在分叉点就已注定:一旦车流选择了甲支路,之后的路再顺畅,也改变不了最终去向。

过渡态理论(Eyring 方程)将速率常数和过渡态自由能联系起来,道破一个关键认知:决速步骤决定整体反应有多快,而决速步骤之前的分叉点决定产物怎么分。两者是不同的问题——“快不快”与“往哪走”。

调度员的理论手册更新了:要预测选择性,先画立交桥拓扑图,找到那个决定命运的分叉点。AI 在做反应路径预测时,本质上就是在传感器不完整的条件下,重建这张拓扑图。

k=kBThexp⁡(−ΔG‡RT)\displaystyle k = \frac{k_B T}{h} \exp\left(-\frac{\Delta G^\ddagger}{RT}\right)
这个方程把“翻过减速带的概率”翻译成宏观速率,也提醒我们:要预测选择性,必须先定位那个决定命运的分叉点。
  1. 过渡态自由能从反应物爬到过渡态所需的自由能差,爬坡成本越高翻越概率越低。
    ΔG‡\Delta G^\ddagger
  2. 尝试频率热涨落能量除以普朗克常数,约等于分子每秒试图翻越路障的次数(约 6×10^12 次)。
    kBTh\frac{k_B T}{h}
  3. 翻越概率指数项,给出每次翻越尝试成功的概率。
    exp⁡(−ΔG‡RT)\exp\left(-\frac{\Delta G^\ddagger}{RT}\right)
  4. 速率常数三者相乘,得到每秒真正完成转化的分子数比例。
    kk

数据与表征

调度员再聪明,也得先“看见”每辆车。但货车不会自动报上目的地,调度员只能靠车型、载重、车牌号等特征做判断。在分子世界里,这些特征就是分子表征:把化学结构翻译成机器能读的数字。

最朴素的是分子描述符——一组连续数值,像是车身长度、排量、重量;更常用的是分子指纹——一个二进制位向量,记录分子里是否存在某些结构碎片。Morgan 指纹就是其中代表,它对每个原子在其邻域内做“哈希”编码,把结构信息折叠成固定长度的 0/1 串。

有了表征,还要有数据。历史实验数据往往稀缺且分布不均,于是研究者用数据增强扩充样本:对分子构象做微扰、改变 SMILES 写法、微调反应条件。指纹之间的相似度用 Tanimoto 系数衡量,用于聚类、去重与训练集划分——相似度高的分子往往表现出类似的选择性,这正是“以史为鉴”的基础。

调度员深有体会:档案越全、越准,判断就越稳。AI for Science 的数据工程,本质上是为调度员建一座包含上万本车辆档案的图书馆——而馆藏的编目质量,直接决定 AI 的下限。

T(A,B)=∣A∩B∣∣A∪B∣\displaystyle T(A, B) = \frac{|A \cap B|}{|A \cup B|}
Tanimoto 系数回答“两辆车有多像”:相同标签数除以总标签数,1 表示双胞胎,0 表示毫不相干。
  1. 指纹交集两个分子指纹中同为 1 的位点数量,即两辆车档案中相同的标签数。
    ∣A∩B∣|A \cap B|
  2. 指纹并集两个指纹中至少一个为 1 的位点数量,即两辆车档案的标签总数。
    ∣A∪B∣|A \cup B|
  3. 相似度比值相同标签占全部标签的比例,1 代表完全相同的结构特征,0 代表毫无共同特征。
    ∣A∩B∣∣A∪B∣\frac{|A \cap B|}{|A \cup B|}

传统机器学习

档案到手,怎么学?调度中心最古老的办法是“资深调度员投票制”:请一群老调度员,每人只凭档案的局部信息独立判断,最后大家投票。每个老调度员各看各的点,互不干扰——这就是随机森林的“多棵决策树投票”。

随机森林天然适合分子指纹这种高维稀疏输入;支持向量机(SVM)则擅长用核函数把非线性问题映射到高维空间找最优分界线。两者在反应选择性预测早期立下汗马功劳,直到今天仍是工业界的常青树——尤其在数据量只有几百条的小规模反应数据集上,它们往往比深度学习更稳。

传统方法的另一大优势是可解释性。随机森林能输出特征重要性排名,告诉我们“哪些结构片段对选择性影响最大”;配合置换检验,也能定位关键特征。当数据稀少时,迁移学习还能把相近反应体系中学到的规律带过来,相当于调度员把别处的路况经验迁移到新路口。

一群看得懂局部、投票很靠谱的老调度员,虽然没有“全局大脑”,但胜在经验和透明。这也是为什么在反应数据量不大的化工场景,随机森林常常不输深度学习——而且化学家还看得懂它为什么这么判断。

G=1−∑c=1Cpc2\displaystyle G = 1 - \sum_{c=1}^{C} p_c^2
基尼不纯度是决策树分裂时的“混乱度仪表”:数值越低,说明分裂后每个分支的车流越纯净、越容易判断。
  1. 类别占比样本中第 c 类出口(产物)所占的比例。
    pcp_c
  2. 平方求和对所有 C 个类别的占比平方后求和。占比越集中(比如 90% 车走同一出口),平方和越接近 1。
    ∑c=1Cpc2\sum_{c=1}^{C} p_c^2
  3. 取反得混乱度用 1 减去平方和。结果为 0 表示完全纯净(所有车都走一个出口),越接近 1 表示越混乱。
    1−∑c=1Cpc21 - \sum_{c=1}^{C} p_c^2

深度学习方法

老调度员的局限在于“局部视野”——单个路口看得再清,看不到整张路网。深度学习架起了一台拥有上帝视角的调度中枢:图神经网络把分子看作一张图——原子是节点,化学键是边,让信息沿着化学键在原子之间流淌。

GNN 的核心操作是消息传递:每一层,每个原子把邻居原子的“汇报”聚合成自己的新表示。层数越多,感受野越大,最终全局读出一个能代表整个分子的嵌入向量。注意力机制进一步让模型学会“重点盯住哪个路口”——比如哪个官能团真正决定选择性。

分子预训练是当前热门方向:先用海量无标签分子训练一个通用“调度员”,再在少量标记反应数据上微调,显著缓解了小样本下的过拟合。不确定性量化则让模型在把握不足时如实说“不确定”——对化学家决定是否相信 AI 至关重要。

从“老调度员投票”到“智慧调度中枢”,深度学习让 AI 第一次能看懂整张反应路网:会分配注意力,会自我怀疑,还能把海量无标签分子的规律内化于心。这正是 AI for Science 从论文走向实验室的底气。

hv(l+1)=σ(W(l)∑u∈N(v)hu(l))\displaystyle h_v^{(l+1)} = \sigma\left( W^{(l)} \sum_{u \in \mathcal{N}(v)} h_u^{(l)} \right)
这个公式描述 GNN 中一次“消息传递”:原子 v 把邻居们的信息汇总、变换、激活,得到融合了周边结构的新表示。
  1. 邻居集合与当前原子 v 通过化学键直接相连的所有原子。
    N(v)\mathcal{N}(v)
  2. 邻居消息求和把每个邻居原子上一层的表示向量逐位相加,完成初步“信息汇总”。
    ∑u∈N(v)hu(l)\sum_{u \in \mathcal{N}(v)} h_u^{(l)}
  3. 权重矩阵可学习的线性变换,决定从汇总信息中重点提取哪些维度——调度员的“注意力过滤器”。
    W(l)W^{(l)}
  4. 激活函数非线性变换(如 ReLU),让模型表达能力不再局限于线性组合。
    σ(⋅)\sigma(\cdot)
  5. 节点新表示经过聚合、变换、激活后,原子 v 在下一层的表示,携带了周围邻居的结构信息。
    hv(l+1)h_v^{(l+1)}

评估与应用

调度员到底行不行?不能靠嗓门,要靠绩效表。评估指标就是调度中心的绩效考核表,用来量化“预测的产物去向”与“实验实际去向”的吻合程度。

反应选择性预测最常用 Top-1 和 Top-k 准确率。Top-1 要求单一预测命中真值,很严格;Top-k 允许模型给出前 k 个候选产物,命中即算对——k=3 或 5 时更有实用价值,因为化学家完全愿意做少量实验验证候选。

误差来源有三座大山:数据稀缺导致的过拟合、表征丢失立体化学细节、反应条件未编码。在应用端,AI 预筛最出彩的舞台是催化剂筛选——从数千个候选金属配体中预选出高选择性者,把实验量缩小一个数量级。

绩效表翻到最新一页:Top-5 命中率 90%。这意味着调度员总能圈定正确答案所在的小范围,化工师傅只需在五个出口里做验证实验。路口的答案,AI 真的圈出来了。

Top-k Acc=1N∑i=1NI[ytrue(i)∈Y^k(i)]\displaystyle \text{Top-k Acc} = \frac{1}{N} \sum_{i=1}^{N} \mathbb{I}\left[y_{\text{true}}^{(i)} \in \hat{Y}_k^{(i)}\right]
Top-k 准确率衡量“调度员圈出的前 k 个候选出口中,是否包含真实主产物”——圈得越准,实验验证成本越低。
  1. 测试反应总数用于评估的总共多少个“路口决策时刻”。
    NN
  2. 指示函数条件成立记 1、不成立记 0,相当于“是否命中”的计数器。
    I[⋅]\mathbb{I}[\cdot]
  3. 真实主产物实验测得第 i 个反应真正的产物标签。
    ytrue(i)y_{\text{true}}^{(i)}
  4. 预测候选集模型给出的前 k 个候选产物集合——调度员圈出的优先出口名单。
    Y^k(i)\hat{Y}_k^{(i)}
  5. 平均命中率把所有命中次数加起来除以 N,得到平均命中概率。
    1N∑i=1NI[⋅]\frac{1}{N} \sum_{i=1}^{N} \mathbb{I}[\cdot]

AI 应用场景

药物合成路线的逆合成规划

阶段:AI+化学设计(逆合成分析)

解决的问题:传统逆合成工具只枚举可行路线,不告诉化学家哪些步骤的选择性好。AI 在候选路线每个关键键断裂处预测区域选择性和对映选择性,帮助选择副产物最少、收率最高的合成路线,避免“路线看似可行、一做就翻车”的尴尬。

具体案例:某制药公司合成一个含手性中心的候选药物,AI 预测到氢化步骤存在 3 个竞争产物,建议更换配体后,主产物选择性从 78% 提升到 95%,省去两轮盲目试错,研发周期缩短约 4 个月。

催化剂的 AI 高通量预筛

阶段:材料与催化剂筛选

解决的问题:金属配体组合空间巨大,穷举式实验成本极高。AI 用已有反应数据训练选择性预测模型,对候选配体批量打分,返回高选择性候选集,把“大海捞针”变成“按图索骥”。

具体案例:某催化实验室针对烯烃官能团化反应,从 2000 个配体出发,AI 预筛出 30 个高选择性候选,实验验证其中 8 个显著优于基线,将筛选周期从 2 年压缩到 3 个月。

工艺放大中的副产物预警

阶段:化工生产工艺优化

解决的问题:小试选择性良好,放大后副产物比例却异常升高。AI 将搅拌速率、温度梯度、加料浓度等工程条件纳入模型,预测放大工况下的选择性漂移,提前预警异常工况。

具体案例:某精细化工车间在 1000L 反应釜放大前,AI 预测到某一竞争路径产物占比将随温度梯度上升,工艺团队据此调整了加料速率与控温方案,避免了一批价值数百万元物料的整批报废。

Python 演示

python77 行
"""反应选择性预测演示:玻尔兹曼分布 + 梯度下降的微型 AI 调度员""" import mathimport random  class BoltzmannReactionPredictor:    """以玻尔兹曼分布为核心的简化反应选择性预测器。     把每个产物想象成路口的一个出口,模型学习各出口的'路障高度',    再用玻尔兹曼分布把路障高度换算成产物概率。    """     def __init__(self, num_products=3, temperature=1.0):        self.num_products = num_products        self.temperature = temperature        # weights[p][j] 表示第 p 个出口对第 j 个特征的敏感度        self.weights = [[random.uniform(-0.2, 0.2) for _ in range(4)]                        for _ in range(num_products)]     def _score(self, features):        """把分子特征翻译成每个出口的'路障高度'(能垒估计值)。"""        return [sum(w * f for w, f in zip(row, features))                for row in self.weights]     def predict_proba(self, features):        """用玻尔兹曼分布给出各产物概率(选择性预测)。"""        energies = self._score(features)        z = sum(math.exp(-e / self.temperature) for e in energies)        return [math.exp(-e / self.temperature) / z for e in energies]     def train(self, data, epochs=200, lr=0.05):        """用梯度下降让'路障高度'更符合实验观测。"""        for _ in range(epochs):            for features, label in data:                probs = self.predict_proba(features)                for p in range(self.num_products):                    err = probs[p] - (1.0 if p == label else 0.0)                    for j in range(len(features)):                        self.weights[p][j] -= lr * err * features[j]     def evaluate(self, data):        """统计 Top-1 准确率:预测概率最大的产物是否等于真实主产物。"""        correct = 0        for feats, label in data:            probs = self.predict_proba(feats)            if probs.index(max(probs)) == label:                correct += 1        return correct / max(len(data), 1)  def main():    # 4 个分子结构特征:供电基团数、吸电基团数、位阻体积、共轭长度    reactions = [        ([2, 0, 1, 1], 0),        ([1, 1, 0, 2], 1),        ([0, 2, 1, 0], 2),        ([3, 0, 2, 1], 0),        ([1, 2, 0, 1], 2),        ([2, 1, 1, 0], 1),        ([0, 1, 2, 3], 2),        ([1, 0, 3, 1], 0),    ]    random.seed(42)    model = BoltzmannReactionPredictor(num_products=3, temperature=1.0)    print("训练前 Top-1 准确率:", model.evaluate(reactions))    model.train(reactions, epochs=200, lr=0.05)    print("训练后 Top-1 准确率:", model.evaluate(reactions))     demo = [2, 1, 1, 0]    probs = model.predict_proba(demo)    for name, p in zip(["路径A(主产物)", "路径B(副产物)", "路径C(微量产物)"], probs):        print(name + ": " + "{:.1f}".format(p * 100) + "%")  if __name__ == "__main__":    main()
目的:用玻尔兹曼分布实现一个微型“AI 调度员”,从少量实验数据中学习各反应路径的能垒偏好,预测新反应的主产物与副产物占比。
  1. def _score(self, features):把分子的结构特征翻译成三个出口各自的“路障高度”(能垒估计值)。
  2. z = sum(math.exp(-e / self.temperature) for e in energies)计算归一化因子,把三个路障高度转成概率。
  3. probs = self.predict_proba(features)用玻尔兹曼“投票”预测各产物占比。
  4. err = probs[p] - (1.0 if p == label else 0.0)“预测占比”与“真实占比”之差,这是模型调整方向的信号。
  5. self.weights[p][j] -= lr * err * features[j]沿梯度下调路障高度,让预测逐步逼近实验观测。
  6. model.train(reactions, epochs=200, lr=0.05)两百轮“路口实习”,让调度员的直觉逐步校准。

常见误区

误区很多人以为预测了反应速率就知道主产物——“A 路径反应快,它就应该是主产物”。

正解选择性取决于竞争路径的能垒差与动力学/热力学控制,而不是单条路径的绝对速率。就像路口快车道并不等于车都走快车道:如果快车道指向废料场,主干道却通向仓库,车流仍以仓库为主。速率解决“快不快”,选择性解决“往哪走”。

为何常见:中学化学常单独讲反应速率,很少讲多路径竞争,线性思维让人误把速率与选择性划等号。

误区温度升高反应变快,很多人便认为“高温下主产物也生成得更快,所以选择性更好”。

正解玻尔兹曼分布告诉我们,温度升高会让各路径概率差缩小,选择性趋向于“平分秋色”。低温下能垒差才被指数放大,所以说工业上常讲“低温保选择性、高温保速率”,两者往往需要权衡。

为何常见:日常经验里“加热加速一切”给人留下深刻印象,忽略了温度对竞争路径的差异性影响。

误区模型在测试集上达到 95% 准确率,人们便认为“模型已经理解反应机理”。

正解高准确率可能来自数据集偏差——比如训练集中某类底物占多数,模型记住了“分子大→选路径A”这类表面关联,换个分布就崩。需要做消融实验、特征重要性分析和外推测试,才能甄别模型究竟学到了物理规律还是数据假象。

为何常见:深度学习“端到端”的成功叙事让人忽略了分布外泛化问题,准确率又直观可见,容易高估其物理理解。

误区从公开数据库下载大量反应数据直接训练,认为“数据多就是王道”。

正解不同实验室的反应条件、后处理方式、收率报告口径差异巨大,噪声很强。直接混训轻则学偏、重则学到虚假关联。需要条件归一化、重复反应合并、异常值剔除等清洗步骤。

为何常见:公开数据集规模庞大、下载即用,看起来省事,掩盖了反应数据天然的高噪音特性。

误区模型 Top-5 准确率 90%,化学家便按模型候选直接放量生产。

正解Top-5 只说明真值在前五个候选中,模型并没有告诉我们哪个候选是对的,也未覆盖机理空白(如非常规配体)。它更适合做预筛而非终判,实验验证仍是必经环节。

为何常见:Top-5 数字动人,但“候选集合命中”与“精确排序”是两回事,容易造成过度信任。

面试题

Q1. 反应选择性预测最核心的目标是什么?

单选题 · easy

  • A.预测反应发生的速率快慢
  • B.预测竞争路径的产物占比← 正确答案
  • C.预测反应是否放出热量
  • D.预测催化剂的颜色变化

答案:B。选择性描述的是多个竞争出口之间的车流分配,即各产物占比。速率只关心单条路径走多快,放热和颜色更与选择性无关。就像调度员要回答“车从哪个出口出去”,而不是“车开得多快”。

Q2. 玻尔兹曼分布中,温度升高对反应选择性最直接的影响是?

单选题 · easy

  • A.各路径概率趋于均匀← 正确答案
  • B.低能垒路径概率更高
  • C.高能垒路径概率更高
  • D.温度对选择性毫无影响

答案:A。温度 T 出现在指数分母上,T 越大,不同能垒对应的 exp 值差异越小,各条路的概率越接近“平分秋色”。相反,低温才能放大能垒差带来的选择性差异。

Q3. 过渡态理论中 ΔG‡ 的物理含义是?

单选题 · mid

  • A.反应物到产物的总能量变化
  • B.反应物到过渡态的自由能差← 正确答案
  • C.产物到中间体的自由能差
  • D.催化剂自身的活化自由能

答案:B。过渡态是反应坐标上的最高点,ΔG‡ 是从反应物“爬坡”到山顶的自由能成本。它决定翻越概率,但不等于反应前后总能量变化,也不涉及产物到中间体的过程。

Q4. 关于“决速步骤”,下列说法正确的是?

单选题 · mid

  • A.决定最终产物比例
  • B.决定整体反应速率← 正确答案
  • C.决定反应是否可逆
  • D.决定反应的绝对产率

答案:B。决速步骤是路网中最窄的匝道,所有车都要通过它,因此决定整体流量(反应速率)。产物比例在更早的分叉点就已决定,决速步骤本身不决定选择性。

Q5. Morgan 分子指纹在计算机中的存储形式是?

单选题 · mid

  • A.一维连续浮点向量
  • B.二进制位向量(0/1 位图)← 正确答案
  • C.三维坐标矩阵
  • D.ASCII 文本字符串

答案:B。Morgan 指纹对每个原子邻域做哈希编码,把结构信息折叠成固定长度的 0/1 位向量:某结构片段存在则该位为 1。它不是连续向量、坐标矩阵或字符串。

Q6. 决策树选择分裂特征时,基尼不纯度起什么作用?

单选题 · mid

  • A.评估最终测试精度
  • B.衡量分裂后类别纯度← 正确答案
  • C.计算分子间相似度
  • D.对特征做归一化处理

答案:B。基尼不纯度是“混乱度仪表”:分裂后每个分支里各产物占比越集中,基尼值越低,说明这个特征分得越干净。决策树用它在候选特征中挑“最优分裂”,而非评估精度或相似度。

Q7. 关于 GNN 的消息传递机制,正确描述是?

单选题 · hard

  • A.每个原子独立预测产物
  • B.原子沿化学键向邻居聚合信息← 正确答案
  • C.消息传递只执行一轮
  • D.GNN 完全不需要原子特征

答案:B。GNN 的核心是每层把邻居节点的表示聚合到中心节点,层数越多感受野越大。消息传递通常需要多层,且节点必须有初始特征,原子之间也并非独立。

Q8. 反应选择性预测可用的数据增强策略包括?

多选题 · mid

  • A.分子构象扰动扩增← 正确答案
  • B.反应条件随机微调← 正确答案
  • C.SMILES 字符串重排← 正确答案
  • D.直接删除全部副产物数据

答案:ABC。构象扰动、条件微调、SMILES 变体改写都是常见增强手段,能扩充有限实验数据。删除副产物数据会毁掉选择性信息——选择性恰恰需要副产物数据来定义,所以 D 错误。

Q9. 下列哪些原因会造成选择性模型的系统性偏差?

多选题 · hard

  • A.训练集反应类型过于单一← 正确答案
  • B.指纹编码丢失立体化学信息← 正确答案
  • C.模型未编码溶剂温度条件← 正确答案
  • D.训练数据规模远超测试集

答案:ABC。训练集单一会让模型只学会某类反应的规律;指纹丢失立体信息会让对映选择性无法区分;未编码溶剂温度则丢失关键条件变量。数据规模大本身不是偏差来源,所以 D 错误。

Q10. 生产中更常用 Top-5 命中率评价选择性模型,主要原因是?

单选题 · hard

  • A.Top-5 一定包含真实主产物
  • B.化学家可接受少量验证实验← 正确答案
  • C.模型只能输出五个候选产物
  • D.Top-1 在工程上毫无价值

答案:B。实验验证成本高,Top-5 命中等价于“最可能的前五个候选里找到了真值”,化学家愿意做少量验证实验来确认,因此更实用。Top-5 并不保证命中,模型也可输出任意多个候选,Top-1 在严格场景下仍有意义。