想象你经营一家顶级中餐馆。后厨有一位“老教授”,他精通每一种食材的分子结构,遇到新菜式都要从原子层面重新推演烹饪方法——做出来的菜无可挑剔,但一道菜要研究三天,客人早就饿跑了。于是你招来一位悟性极高的“学徒”,他唯一的短板是没见过世面。只要把老教授的研究手记给他吃透,他就能在几毫秒内报出任意食材组合的最佳配方和火候,虽然偶尔差半成火候,但翻台率翻了百倍。这个故事里,老教授就是 DFT(密度泛函理论)计算,学徒是机器学习势函数,而那些“研究手记”就是训练数据——也就是本文的主角。训练数据的质量、覆盖度、标注方式与迭代策略,直接决定了学徒能否在真实厨房独当一面。本文带你从零看懂势函数训练数据怎么采、怎么标、怎么喂、怎么验。

岗位关联

对 AI 从业者而言,掌握势函数训练数据的采集与闭环迭代,意味着拿到 AI for Science 在材料、能源、制药等高价值场景的入场券。

目录
  1. 可视化演示
  2. 1. 势函数基础
  3. 2. 数据采样策略
  4. 3. 数据标注清洗
  5. 4. 模型架构选择
  6. 5. 训练与损失
  7. 6. 验证迭代闭环
  8. AI 应用场景
  9. Python 演示
  10. 常见误区
  11. 面试题

可视化演示

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

1. 势函数基础

老教授做每一道菜,都要从分子层面推演食材间的化学反应。这种做法在 AI for Science 领域有个学名——密度泛函理论(DFT)。它从量子力学第一性原理出发,能算出体系的能量、原子受力乃至电子结构,是化学与材料科学公认的“金标准”。但代价极其昂贵:每处理一个新构型,都要重新求解庞大的量子力学方程,原子一多,计算量呈指数级暴涨,一个稍大的分子体系往往要算上好几天。这就是 DFT 的核心痛点:精度无可挑剔,速度让人崩溃。

于是科学家想到一个聪明的折中方案:让一个“动作够快”的模型先吃透一批 DFT 计算结果,之后遇到类似构型直接秒答。这个模型就是机器学习势函数(MLIP)。它把原子坐标作为输入、体系总能量作为输出,本质上是一个经过回归训练的高维函数逼近器——像一个背熟了海量配方、看到食材组合就能脱口而出做法的学徒。

势函数的通用数学形式非常朴素:系统的总势能,是所有原子位置的函数。

这把“菜谱手册”一旦记全了千变万化的食材搭配,学徒就能在毫秒间端出一盘八九不离十的菜。火候虽不及老教授一丝不苟,但翻台率不知快了多少倍。势函数存在的意义,正是在可接受精度损失下,把计算速度从“数天一个构型”提升到“毫秒一个构型”,这就是精度与效率的权衡——也是势函数训练数据这一整套流程的出发点。

Etotal=E(R1,R2,…,RN)E_{\mathrm{total}} = \mathcal{E}(\mathbf{R}_1, \mathbf{R}_2, \ldots, \mathbf{R}_N)
可以这样理解:$\mathcal{E}$ 是一本巨大的菜谱手册,输入每个原子的三维坐标(即“食材状态”),输出一道菜的“总完成度”(体系总能量)。
  1. $E_{\mathrm{total}}$体系总势能,是势函数模型的预测目标,对应 DFT 给出的总能量标签。
  2. $\mathcal{E}$势函数本身,机器学习模型学到的“经验配方”,把原子坐标映射为能量。
  3. $\mathbf{R}_i$第 $i$ 个原子的三维坐标向量 $(x_i, y_i, z_i)$,是模型的基本输入。
  4. $\ldots, \mathbf{R}_N$$N$ 个原子的坐标共同构成完整输入空间,$N$ 越大体系越复杂,覆盖构型空间所需的训练数据也越多。

2. 数据采样策略

如果学徒只见过西红柿炒蛋,你让他做红烧肉,他一定会抓瞎。势函数也一样:训练数据覆盖的构型空间越窄,模型的“知识盲区”就越大。所谓构型空间,是原子可能处于的一切排列位置组成的抽象空间。现实模拟中,原子会在不同温度、压力、外力下呈现千姿百态的排布,数据采样必须尽量覆盖这些区域。

但 DFT 打个标签很贵,不能漫无目的地“全空间扫一遍”。这就需要主动学习(active learning):先用一小批初始数据训练一个初版势函数,让模型自己“巡视”候选构型池,挑出它最没把握、预测最不确定的那些构型,送回 DFT 补标签,再重训、再巡视,循环往复。好比学徒专门挑自己拿不准的食材组合找老教授补课,每补一次,短板就少一块。

主动学习选择构型的核心准则是不确定性最大化:

数据采样还有一项容易被忽略的工程细节——数据集划分。由于分子动力学轨迹上的相邻构型高度相关,不能简单随机切分训练集和验证集,否则验证集会“偷看”到训练集中几乎相同的构型,导致误差被严重低估。更合理的做法是按轨迹片段或按构型聚类划分,确保验证集真正代表“没见过的场景”。主动学习加上合理划分,才能用最少的 DFT 计算换最大的模型覆盖度。

x∗=arg⁡max⁡x∈Uσ(x)x^{*} = \arg\max_{x \in \mathcal{U}} \sigma(x)
意思是:在尚未标记的候选构型池 $\mathcal{U}$ 中,挑选模型不确定性 $\sigma(x)$ 最大的那个构型 $x^{*}$,优先给它打标签。
  1. $x^{*}$本轮主动学习选中的最优补采构型,是“最值得补课的一道菜”。
  2. $\mathcal{U}$未标记的候选构型池,相当于还没听老教授讲过的一批新食材组合。
  3. $\sigma(x)$模型对构型 $x$ 的不确定性估计,常用集成模型输出方差或模型间的预测分歧来衡量。
  4. $\arg\max$在候选池里找出让不确定性最大的构型,翻译成厨房语言就是“专挑最没把握的菜去问”。

3. 数据标注清洗

老教授的笔记很多,但有些字迹潦草、有些只记了一半,直接塞给学徒反而会教坏他。势函数训练数据同样需要“整理成标准菜谱”——这一步叫数据标注与清洗。

标注阶段,对采样得到的每一条原子构型,用 DFT 计算其总能量 $E$ 和每个原子上的受力 $\mathbf{F}$,这两个量就是监督学习的标签。DFT 的计算过程建立在 Kohn-Sham 方程上,把复杂的多电子问题拆解为几个能量项:

DFT 标注完成后,清洗环节不能省。常见操作包括:丢弃未收敛的 DFT 计算帧(相当于撕掉算错的笔记);检查近邻构型的能量连续性,若两个结构几乎相同的构型能量落差异常大,则标记为异常样本;用数据增强手段补充样本——因为物理体系具有旋转、平移和置换对称性,对已有构型做旋转、平移生成副本,可以在不额外增加 DFT 计算的前提下扩充数据集。经过清洗与增强,一份“高质量菜谱”才真正入库,成为势函数学习的养料。

EDFT=Ts[ρ]+Vext[ρ]+VH[ρ]+Exc[ρ]E_{\mathrm{DFT}} = T_s[\rho] + V_{\mathrm{ext}}[\rho] + V_H[\rho] + E_{\mathrm{xc}}[\rho]
这里的 $\rho$ 是电子密度分布,DFT 把总能量表达成电子密度的泛函——相当于老教授先看清食材内部结构,再评判整道菜的状态。
  1. $E_{\mathrm{DFT}}$DFT 计算输出的体系总能量,是训练集的标准答案标签。
  2. $T_s[\rho]$无相互作用的电子动能项,对应电子运动本身的能量贡献。
  3. $V_{\mathrm{ext}}[\rho]$外势项,来自原子核与电子之间的静电吸引,是“食材骨架”对味道的底味贡献。
  4. $V_H[\rho] + E_{\mathrm{xc}}[\rho]$经典库仑排斥项与交换关联泛函项,后者是 DFT 精度的灵魂,也是最难计算的部分。

4. 模型架构选择

同样是记菜谱,有人死记硬背,有人按菜系、食材、火候分类理解——后者的学习效率和泛化能力远胜前者。势函数模型的架构选择,决定了它用什么方式“记忆”化学规律。

当前主流方案是神经网络势。其核心思想是原子能量分解:把总能量拆成每个原子的局部能量贡献之和。每个原子的“眼界”被限制在一个截断半径内,只关注周围一小撮邻居,这个局部环境被编码成一个描述符(一个向量),送入神经网络,输出该原子的能量。物理上,原子的相互作用本来就具有短程性,这种“各管各家门前雪”的分解既高效又符合直觉。

神经网络势的数学表达如下:

架构选择还有一条物理“铁律”——等变约束。体系的能量不随整体旋转、平移而改变,原子编号打乱也不影响结果。优秀的神经网络势通过设计特殊的描述符和网络结构,天然满足这些对称性,让模型“想犯错都难”。学徒按“菜系+食材”搭建记忆宫殿,每类搭配有专属知识模块,自然比囫囵吞枣的背法学得更快、更稳。

Etotal=∑i=1NNi({Rj−Ri}j∈N(i))E_{\mathrm{total}} = \sum_{i=1}^{N} \mathcal{N}_i\left(\{\mathbf{R}_j - \mathbf{R}_i \}_{j \in \mathcal{N}(i)} \right)
把每个原子的局部环境分别喂进一个小网络 $\mathcal{N}_i$,得到每个原子的能量贡献,最后全部加起来就是体系总能量。
  1. $E_{\mathrm{total}}$模型预测的总能量,是所有原子能量贡献的加总。
  2. $\sum_{i=1}^{N}$对体系中每一个原子遍历求和,缺一不可。
  3. $\mathcal{N}_i$第 $i$ 个原子的局域神经网络,负责从局部环境出发生成该原子的能量。
  4. $\{\mathbf{R}_j - \mathbf{R}_i\}$$i$ 原子与邻居 $j$ 的相对坐标集合,是描述符的特征来源,决定了模型能否感知局部化学环境。

5. 训练与损失

一道菜只学“卖相”是不够的,口感、香气、火候全都要对。势函数训练也一样,不能只盯能量一个量——力同样重要。在分子动力学模拟中,原子受力决定运动轨迹:$\mathbf{F} = -\nabla_{\mathbf{R}} E$。如果模型只监督能量,力的误差可能悄然失控,模拟轨迹很快偏离物理现实。

因此能量-力联合监督是势函数训练的标准打法。损失函数把能量误差和力误差同时纳入考量,并用加权系数平衡两者的贡献:

除了损失函数设计,优化正则策略同样关键:使用学习率调度让训练平稳收敛,加入权重衰减等正则手段防止模型对训练数据死记硬背,用早停法在验证误差不再下降时及时收手。这些技巧共同保障学徒把菜谱学成“内功”,而不是只学会复述笔记。联合监督下的势函数,才能既报得出能量、又推得动力,真正胜任分子动力学模拟。

L=λE∑i∥Eipred−Eiref∥2+λF∑i∥Fipred−Firef∥2\mathcal{L} = \lambda_E \sum_{i} \| E_i^{\mathrm{pred}} - E_i^{\mathrm{ref}} \|^2 + \lambda_F \sum_{i} \| \mathbf{F}_i^{\mathrm{pred}} - \mathbf{F}_i^{\mathrm{ref}} \|^2
能量好比菜的“品相”,力好比菜的“口感”。两者都对齐了,学徒才算真的学到家。
  1. $\mathcal{L}$总损失函数,训练中要最小化的目标,数值越低表示预测越准。
  2. $\lambda_E, \lambda_F$能量与力的权重系数,控制训练更侧重哪个目标,通常力的权重更大以放大梯度信息。
  3. $E_i^{\mathrm{pred}} - E_i^{\mathrm{ref}}$第 $i$ 个样本预测能量与 DFT 参考能量之间的偏差。
  4. $\|\mathbf{F}_i^{\mathrm{pred}} - \mathbf{F}_i^{\mathrm{ref}}\|^2$预测力矢量与参考力矢量的平方误差之和,逐原子计算后累加。

6. 验证迭代闭环

学徒出师前必须试菜。你让他在真实客桌前做一道新菜,客人皱眉头说味道不对——只能回后厨继续补课。势函数的验证与迭代正是这个“试菜-补课-再试菜”的闭环。

验证阶段,用独立测试集计算泛化误差,最常用的指标是均方根误差(RMSE):

如果 RMSE 超标,先别急着加数据。要识别外推风险:看测试构型是否落在训练数据覆盖区域之外。机器学习势本质上是内插模型,对训练分布外的构型,预测结果往往不可信。此时应启动主动学习闭环:用不确定性估计(如多模型方差)找出高风险构型 → 送回 DFT 补标签 → 重训模型 → 重新验证,直到精度满足要求。试菜不过关就补课,补完再试,循环往复,直至所有“食材组合”都能端上桌——这个闭环,正是势函数训练数据工程最核心的方法论。

RMSE=1N∑i=1N∥Eipred−Eiref∥2\mathrm{RMSE} = \sqrt{\frac{1}{N} \sum_{i=1}^{N} \| E_i^{\mathrm{pred}} - E_i^{\mathrm{ref}} \|^2}
RMSE 把一组样本的预测偏差压缩成一个与能量同量纲的数字,让人直观感受模型平均“偏了多远”。
  1. $\mathrm{RMSE}$均方根误差,衡量模型整体预测精度的标准指标。
  2. $\frac{1}{N}$对验证集中 $N$ 个样本取平均,避免样本数影响数值量级。
  3. $\|E_i^{\mathrm{pred}} - E_i^{\mathrm{ref}}\|^2$每个样本的预测能量与参考能量的平方误差,对大偏差施加更大惩罚。
  4. $\sqrt{\cdot}$开根号后量纲回到能量单位(如 eV),便于与物理容差直接对比。

AI 应用场景

场景一:催化剂材料高通量筛选

阶段:训练数据准备与模型加速

解决的问题:传统 DFT 计算一个候选催化剂的表面吸附能需要数天,无法在数万种候选材料中完成快速筛选,导致新催化剂研发周期以年计。

具体案例:某氢能研究团队需要在 2 万种合金表面上筛选氢吸附能最优的催化材料。他们先用 200 个构型训练初版势函数,再用主动学习迭代 6 轮,补充约 1800 个高不确定性构型的 DFT 标签;最终用训练好的势函数替代 DFT,完成全部候选表面的能量评估,总耗时从约 3 个月压缩到 1 周。这与厨房里“先让学徒吃透关键配方,再让他快速试做全部候选菜”是同一个逻辑。

场景二:药物分子构象能量排序

阶段:数据标签与推理加速

解决的问题:药物分子存在大量可能的空间构象,每个构象都需要高精度量子化学计算来排序能量,计算成本过高,无法覆盖整个构象库。

具体案例:AI 制药团队用一批小分子构象的量子化学数据训练高精度势函数,再对生成器产出的 10 万个构象做毫秒级能量打分和排序,仅对排名前 500 的构象用 DFT 复核。构象库的建造时间从两周缩短到半天。学徒把常见骨架的“配方”记熟后,新构象一来就能快速报出大致能量,只有最纠结的几个才需要老教授出马。

场景三:高温分子动力学模拟的闭环修正

阶段:验证与迭代闭环

解决的问题:势函数在训练分布之外的温度、压力区间可能出现外推失效,导致分子动力学轨迹失真,模拟结果不可信。

具体案例:某电解液研发团队训练势函数后,在 500 K 高温模拟中发现部分原子异常靠近,能量出现跳变。他们用集成模型方差识别出这批异常构型,补做 DFT 标签并重训一轮,高温段模拟误差下降约 40%,与实验数据吻合。这正是“试菜发现不对,回去请教老教授补课”的标准操作。

Python 演示

python53 行
"""模拟势函数训练数据闭环: 采样 -> 标注 -> 训练 -> 主动学习 -> 评估."""import numpy as np  def dft_label(x):    """模拟 DFT 标签: 双势阱能量加观测噪声."""    return (x - 2) ** 2 * (x + 2) ** 2 / 6.0 + np.random.normal(0, 0.05)  def make_pool(n, seed=0):    """在 [-3, 3] 上生成候选构型池."""    rng = np.random.default_rng(seed)    return rng.uniform(-3.0, 3.0, size=n)  def train_model(X, y, order=4):    """用多项式回归作为极简势函数模型, 返回系数."""    A = np.vander(X, N=order + 1, increasing=True)    theta, *_ = np.linalg.lstsq(A, y, rcond=None)    return theta  def predict(theta, X, order=4):    """势函数前向预测, 返回与 X 等长的能量数组."""    A = np.vander(X, N=order + 1, increasing=True)    return A @ theta  # 1. 初始均匀采样, 用 DFT 打标签X_init = make_pool(15, seed=42)y_init = np.array([dft_label(x) for x in X_init]) # 2. 训练两个不同复杂度模型, 用于不确定性估计theta_a = train_model(X_init, y_init, order=3)theta_b = train_model(X_init, y_init, order=6) # 3. 主动学习: 在候选池里挑分歧最大的 10 个构型补标pool = make_pool(500, seed=7)sigma = np.abs(predict(theta_a, pool, order=3) - predict(theta_b, pool, order=6))new_X = pool[np.argsort(sigma)[-10:]]new_y = np.array([dft_label(x) for x in new_X]) # 4. 合并重训最终势函数X_all = np.concatenate([X_init, new_X])y_all = np.concatenate([y_init, new_y])theta = train_model(X_all, y_all, order=5) # 5. 在独立测试集上评估X_test = make_pool(200, seed=99)y_test = np.array([dft_label(x) for x in X_test])pred = predict(theta, X_test, order=5)rmse = float(np.sqrt(np.mean((pred - y_test) ** 2)))print("总样本数:", X_all.size, "测试RMSE:", round(rmse, 4))
目的:用一维双势阱能量面模拟“势函数训练数据”的完整闭环,展示主动学习如何用最少的新标注换来更好的模型精度。
  1. def dft_label(x):模拟 DFT 给构型打标签,真实项目中这一步会调用昂贵的量子化学软件。
  2. theta_a = train_model(X_init, y_init, order=3)训练一个简单模型,作为“学徒”的一种直觉。
  3. theta_b = train_model(X_init, y_init, order=6)训练一个复杂模型,代表另一种直觉,两个模型的差异用于估计不确定性。
  4. sigma = np.abs(predict(theta_a, pool, order=3) - predict(theta_b, pool, order=6))两个模型对同一构型的预测分歧越大,说明这里越没把握。
  5. new_X = pool[np.argsort(sigma)[-10:]]挑分歧最大的 10 个构型补样本,对应主动学习的“专挑不会的补课”。
  6. X_all = np.concatenate([X_init, new_X])新旧数据合并,重训出最终势函数。
  7. rmse = float(np.sqrt(np.mean((pred - y_test) ** 2)))在未见过的测试集上计算 RMSE,验证模型真实泛化能力。

常见误区

误区势函数训练数据当然是越多越好,只要把能想到的构型全用 DFT 算一遍喂给模型,精度一定飙升。

正解数据不是越多越好,而是“覆盖到关键区域”才好。DFT 标注很贵,盲目采样会把宝贵算力浪费在模型已经学得很好的低误差区域。主动学习专门针对高不确定性区域补充数据,用最少的标注换目标精度,才是工程上可持续的路径。好比学徒已经会做宫保鸡丁,你还在让他反复练这道菜,不如补他完全不会的菜。

为何常见:直觉上“更多数据 → 更好泛化”,但忽略了科学数据的获取成本极高,且信息增益随数据量快速衰减。

误区数据集随机切分 8:2 是机器学习的标准操作,势函数数据照做就行,验证集分数高就说明模型好用。

正解势函数数据不能简单随机切分。分子动力学轨迹内相邻构型高度相关,随机切分会把“几乎相同”的构型同时放进训练集和验证集,造成信息泄漏,让验证误差被严重低估。正确做法是按轨迹片段或按构型聚类划分,确保验证集是真正没见过的场景。

为何常见:传统 ML 的“随机划分”习惯被直接迁移到科学数据上,忽略了物理模拟数据特有的时间与轨迹相关性。

误区总能量就是从 DFT 算出来的标准答案,让模型学准能量,力自然也会变准。

正解力蕴含的信息远多于能量。一个标量能量,换成每个原子的三维力矢量,信息量翻了数倍;若只监督能量,可能出现能量误差很小、力误差却很大的情况,分子动力学轨迹会立刻失真。因此损失函数必须显式加入力监督项。

为何常见:能量概念直观,又直接对应 DFT 输出,让人误以为“学会能量 = 学会体系”,忽略了梯度信息对动力学的重要性。

误区势函数是“物理模型”,训练好后就能在任意温度、压力、构型下放心使用,外推结果照样可信。

正解机器学习势本质上是数据驱动的内插模型。一旦构型跳出训练分布,神经网络可能给出毫无物理依据的离谱预测。必须用不确定性估计(如集成方差、与训练数据距离)判断构型是否越界,并把越界构型送回 DFT 补标注、重新训练。

为何常见:人们常把机器学习势与传统经验力场混为一谈,后者由人类专家设计解析公式、天然可外推,而前者只是“背过这些菜,没见过的新菜只能瞎猜”。

面试题

Q1. DFT 计算的主要痛点是以下哪一项?

单选题 · easy

  • A.计算精度太低
  • B.计算成本随体系尺寸骤增← 正确答案
  • C.无法处理含电子的体系
  • D.无法输出原子的势能

答案:B。DFT 的精度本身很高,核心痛点在于计算成本随体系变大急剧上升,甚至达到三次方以上复杂度。比喻来说,老教授做每道菜都要从头推演,客人一多就供不上菜。B 才是对 DFT 痛点最准确的描述。

Q2. 势函数训练数据的标签(能量、力)主要来自哪里?

单选题 · easy

  • A.实验仪器直接测量
  • B.高精度 DFT 计算← 正确答案
  • C.机器学习模型外推
  • D.经验公式粗略估算

答案:B。势函数训练数据通常由高精度 DFT 计算生成标签,因为实验很难覆盖每个原子构型并给出完整的能量曲面。DFT 相当于老教授的实验结果,是学徒学习配方的唯一可靠来源。

Q3. 主动学习采样时,最优先选择的构型是哪种?

单选题 · mid

  • A.当前能量最低的稳定构型
  • B.模型不确定性最高的构型← 正确答案
  • C.训练集中已经出现过的构型
  • D.随机从数据增强中挑选的构型

答案:B。主动学习的核心准则是挑选不确定性最高的构型优先补标,这样最能缩小模型的盲区。学徒要补课,一定是补自己最没把握的菜,而不是重复已经会做的菜。

Q4. 势函数损失函数同时监督能量和力的原因不包括?

单选题 · mid

  • A.力为原子运动提供梯度信息
  • B.力能补充能量之外的约束
  • C.为了刻意增大模型的复杂度← 正确答案
  • D.提升分子动力学模拟的精度

答案:C。同时监督能量和力是为了获取更丰富的梯度信息、提升动力学模拟精度。刻意增大网络复杂度不是目的,反而可能导致过拟合。选项 C 与联合监督的初衷无关。

Q5. 势函数数据不能简单随机划分训练集的原因是什么?

单选题 · mid

  • A.轨迹内构型高度相关导致信息泄漏← 正确答案
  • B.随机划分会导致模型无法收敛
  • C.验证集必须覆盖所有能量范围
  • D.训练集必须比验证集大很多

答案:A。分子动力学轨迹中相邻构型高度相似,随机切分会把几乎相同的构型同时分进训练集和验证集,造成信息泄漏,验证误差被低估。好比同一道菜的微调版本既用来“教”又用来“考”,成绩自然虚高。

Q6. 神经网络势中的“原子能量分解”指的是什么?

单选题 · hard

  • A.用全局网络一次性预测总能量
  • B.每个原子对局部环境贡献能量再求和← 正确答案
  • C.先预测原子分布再计算总能量
  • D.将能量拆成动能和势能两部分

答案:B。神经网络势把总能量拆成每个原子的局域能量贡献之和,每个原子只看截断半径内的邻居环境。这既是物理短程性的体现,也让模型的计算复杂度随原子数线性增长。

Q7. RMSE 在模型验证中的物理含义是什么?

单选题 · hard

  • A.模型预测能量的平均偏差大小
  • B.模型参数随训练轮数的变化幅度
  • C.能量预测与参考值的均方根误差← 正确答案
  • D.原子间平均距离的改变程度

答案:C。RMSE 是把所有验证样本的预测误差平方后取平均再开根号,得到与能量同量纲的误差值。它不像平均绝对误差那样好受极端值影响,是评估势函数泛化能力的标准指标。

Q8. 下列哪些属于势函数训练数据的清洗或增强手段?

多选题 · mid

  • A.丢弃未收敛的 DFT 计算帧← 正确答案
  • B.检查近邻构型能量连续性← 正确答案
  • C.对坐标做旋转平移副本扩充← 正确答案
  • D.对坐标施加随机大位移干扰

答案:ABC。丢弃未收敛帧、检查能量连续性、旋转平移副本都是合理的清洗与增强手段。随机大位移会生成物理上不合理的构型,不应作为增强方式。老教授笔记里算错、记混的内容必须撕掉,而不是照抄。

Q9. 势函数发生外推风险时,合理的应对措施有哪些?

多选题 · hard

  • A.将越界构型送回 DFT 补标注← 正确答案
  • B.用不确定性估计识别高风险区← 正确答案
  • C.直接信任外推结果进行模拟
  • D.无脑增大神经网络参数量

答案:AB。外推风险出现时,应当用不确定性估计定位高风险构型,送回 DFT 补标签后重训。直接信任外推结果危险;增大参数也解决不了分布外问题。学徒遇到没学过的菜,应该去问老教授,而不是硬着头皮瞎做。

Q10. 主动学习闭环中,哪些信号提示当前势函数需要补充采样?

多选题 · extreme

  • A.验证集预测误差明显上升← 正确答案
  • B.集成模型输出方差变大← 正确答案
  • C.模拟中频繁访问高不确定构型← 正确答案
  • D.训练集损失已经降到零附近

答案:ABC。验证误差上升、模型分歧增大、模拟中频繁遇到高不确定构型,都说明模型遇到了“没学过的菜”,需要补样。训练集损失降零只说明过拟合,不代表当前需要额外采样。主动学习闭环的本质,就是靠这些信号判断何时该去打扰老教授。