想象一家米其林三星餐厅:主厨做菜堪称完美,但每一道菜都要从称量食材分子开始——牛肉要精确到毫克,火候要记录每摄氏度的变化,连摆盘的盐粒都要用镊子一颗颗安置。他做的菜无可挑剔,但客人等三道菜要等上半天。这就是DFT(密度泛函理论)的处境:它是计算化学界的“米其林主厨”,精度极高,却慢得让人心疼。 现在,后厨来了一位学徒。他天天看主厨做菜,默默记下了成千上万道菜的“火候—成色—调料”对应关系。某一天他突然开窍:不用从分子层面重新推演,只要扫一眼食材状态,就能预判这道菜该怎么烧、烧出来是什么味道。这位学徒,就是神经网络势函数(NNP)——用大量DFT计算数据训练一个深度神经网络,让模型学到“原子坐标→体系能量”的映射。它把DFT数小时甚至数天的计算压缩到毫秒级,速度提升几个数量级,同时精度保持在DFT附近。 当然,学徒也有软肋:遇到完全没见过的菜系(训练数据之外的构型),他可能手足无措甚至翻车。这篇文章,就是带你认识这位“速成学徒”的成长史、看家本领和边界。

岗位关联

掌握神经网络势函数,意味着你学会了用深度学习撬动计算化学的核心需求,成为连接AI与物质科学的复合型人才,在材料、药物、能源等领域拥有稀缺的交叉竞争力。

目录
  1. 可视化演示
  2. DFT原理
  3. NNP核心思想
  4. 特征描述符
  5. 网络架构设计
  6. 训练数据策略
  7. 外推能力评估
  8. 跨体系泛化
  9. AI 应用场景
  10. Python 演示
  11. 常见误区
  12. 面试题

可视化演示

展示NNP原子分解架构、对称性保持与DFT速度对比,支持敏感度调节。

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

NNP原子分解架构 紫色原子节点经特征嵌入输出局部能量 青色总能量为各原子能量之和 E_total = Σ E_i(r_i, {r_j}) 总能量原子分解是NNP的核心假设

DFT原理

想象一位米其林三星主厨,他坚持从分子层面掌控一切——做一份炖牛肉,要把牛肉放到天平上称到毫克,用探针测量每一摄氏度的温度变化,连烤箱湿度都要校准。他做的菜无可挑剔,但一桌客人等三道菜可能要等上半天。这就是DFT(密度泛函理论)的处境:它是计算化学界的“标准答案”,精度极高,但每一次能量计算都是一场漫长的“厨艺修行”。

在量子化学世界里,分子的能量由原子核位置和电子行为共同决定。理论上求解薛定谔方程就能得到一切,但多电子体系的方程复杂到让超级计算机都头痛。1964年,Hohenberg和Kohn提出一个天才想法:与其盯着上万个电子,不如盯住“电子密度”这一个场——就像主厨不必认识每一粒盐,只需把握整锅汤的咸淡。随后Kohn-Sham方程把这个想法落地为可计算的方程。

然而,DFT需要自洽迭代:猜密度→算势场→解方程→更新密度,直到收敛。每移动一个原子,整套流程都要重来一遍,复杂度随原子数呈三次方增长(O(N³))。主厨的认真值得尊敬,但工业化时代需要“快”。于是,后厨迎来了那位改变游戏规则的学徒。

[−ℏ22m∇2+Veff(r)]ψi(r)=εiψi(r)\displaystyle \left[-\frac{\hbar^2}{2m}\nabla^2 + V_{\mathrm{eff}}(\mathbf{r})\right]\psi_i(\mathbf{r}) = \varepsilon_i \psi_i(\mathbf{r})
这个方程描述的是:每个单电子在有效势场中的运动。\(\varepsilon_i\) 是轨道能量,\(\psi_i(\mathbf{r})\) 是单电子波函数。DFT通过迭代求解这些方程,得到体系的电子密度和总能量。
  1. 动能算符电子在空间运动的“惯性成本”,像食材下锅前的准备动作。
    −ℏ22m∇2\displaystyle -\frac{\hbar^2}{2m}\nabla^2
  2. 有效势场原子核和其他电子共同形成的“环境力”。
    Veff(r)\displaystyle V_{\mathrm{eff}}(\mathbf{r})
  3. 单电子波函数描述一个电子在位置 \(\mathbf{r}\) 出现的概率幅。
    ψi(r)\displaystyle \psi_i(\mathbf{r})
  4. 轨道能量该电子所处“轨道层次”的能量值,像每层楼的高度决定视野。
    εi\displaystyle \varepsilon_i

NNP核心思想

学徒的成长方式很简单:每天站在主厨身边,看他做上千道菜,默默记下“食材状态→火候→成品成色”的对应关系。他不需要理解每道菜背后的分子级原理,只凭海量观察积累的“直觉模式”,就能在看到食材的瞬间预估结果。神经网络势函数(NNP)正是这个思路:用深度神经网络直接学习“原子坐标→体系能量”的映射。

那么,学徒的“直觉”如何组织?NNP将复杂的多体问题拆解为“局部环境决定局部能量”。每个原子的能量只由它周围一小圈邻居决定,总能量就是所有原子能量的加和。这个分解让网络不需要“一眼看全桌菜”,只需分别评估每道菜的状态。

这正是速度的来源:DFT每次预测都要从头“做菜”,而NNP训练完成后,一次前向传播只需几毫秒——相当于学徒瞟一眼就知道火候。几个数量级的加速,让分子动力学模拟从只能跑几皮秒,扩展到几纳秒甚至更长。

Etotal({Ri})=∑i=1NEi=∑i=1NN(Di)\displaystyle E_{\mathrm{total}}(\{\mathbf{R}_i\}) = \sum_{i=1}^{N} E_i = \sum_{i=1}^{N} \mathcal{N}(\mathbf{D}_i)
总能量等于每个原子的“个人贡献”之和。\(\mathbf{D}_i\) 是第 \(i\) 个原子的局部环境描述符,\(\mathcal{N}\) 是神经网络映射。
  1. 原子能量分解把总能量拆成每个原子的贡献,像把一桌菜的成本分摊到每道菜上。
    Etotal=∑i=1NEi\displaystyle E_{\mathrm{total}} = \sum_{i=1}^{N} E_i
  2. 局部环境映射每个原子的能量由周围环境向量 \(\mathbf{D}_i\) 决定,像学徒只看眼前这口锅的状态。
    Ei=N(Di)\displaystyle E_i = \mathcal{N}(\mathbf{D}_i)
  3. 参数学习目标用DFT计算数据训练网络,最小化预测能量与“标准答案”的差距。
    min⁡θ∑m=1M(ENN(Rm)−EDFT(Rm))2\displaystyle \min_{\theta} \sum_{m=1}^{M} \left( E^{\mathrm{NN}}(\mathbf{R}_m) - E^{\mathrm{DFT}}(\mathbf{R}_m) \right)^2

特征描述符

学徒判断一道菜,绝不是看整桌宴席,而是看这道菜当下的状态:表面焦色如何、酱汁浓稠度、散发的气味。他只用“局部信息”做判断,不需要知道窗外发生了什么。NNP也是同样的道理:一个原子的能量由其局部原子环境决定——截断半径内的邻居种类、距离和角度。

但这里有个关键问题:给神经网络的输入不能是原始坐标。把整个体系平移或旋转一下,物理性质不该改变,可坐标数字却变了。如果直接输入坐标,网络就得重新学习一遍。因此需要特征描述符,把这些坐标转换成一个“换个角度看也不变”的表示。Behler-Parrinello对称函数就是最经典的一种。

平移旋转不变性就藏在其中——描述符只依赖原子间距离 \(r_{ij}\),与坐标系方向无关。这个“眼力”决定了学徒手艺的上限:描述符捕捉的信息越丰富,网络能学到的规律就越多。

Girad=∑j: rij≤Rce−η (rij−rs)2\displaystyle G_i^{\mathrm{rad}} = \sum_{j:\, r_{ij} \le R_c} e^{-\eta\,(r_{ij} - r_s)^2}
这个式子统计第 \(i\) 个原子周围“有哪些邻居、离多远”。\(r_{ij}\) 是两个原子的距离,\(R_c\) 是截断半径,\(\eta\) 和 \(r_s\) 控制着“嗅觉”的灵敏度和关注的中心距离。
  1. 近邻求和只统计截断半径内的邻居,像厨师只看砧板上这盘食材。
    ∑j: rij≤Rc\displaystyle \sum_{j:\, r_{ij} \le R_c}
  2. 高斯展宽距离越近的邻居贡献越大,像嗅觉对近距离气味更敏感。
    e−η (rij−rs)2\displaystyle e^{-\eta\,(r_{ij} - r_s)^2}
  3. 超参数调节\(\eta\) 控制“嗅觉灵敏度”,\(r_s\) 决定关注的距离中心。
    η,  rs\displaystyle \eta,\; r_s

网络架构设计

学徒的大脑怎么组织知识?他先看外观(焦色),再推断火候(温度经历),最后决定调料(该放多少盐)。这是一个层层递进的过程。NNP的网络架构也遵循同样的思路:输入层接收描述符,隐藏层逐层提取“抽象特征”,输出层给出能量预测。最常见的结构是多层感知机(MLP)。

实际设计中还要考虑两个细节:一是共享参数——所有原子共用同一套网络权重,因为“碳原子旁边有个氢原子”这个规律在任何分子里都一样;二是元素嵌入——给每种元素分配一个可学习的身份向量,在输入描述符时一起送入网络。脑回路设计得好,学徒学得快又稳;设计得过于复杂,反而容易记住“垃圾细节”而忽略泛化。

Ei=b(2)+∑k=1Hwk(2) σ ⁣(bk(1)+∑jwkj(1)Dij)\displaystyle E_i = b^{(2)} + \sum_{k=1}^{H} w_k^{(2)}\, \sigma\!\left(b_k^{(1)} + \sum_{j} w_{kj}^{(1)} D_{ij}\right)
这是单个原子的“脑回路”:描述符 \(D_{ij}\) 从输入层进入,经过隐藏层加权求和、激活函数 \(\sigma\) 引入非线性,最后在输出层汇总为该原子的能量。
  1. 输入层描述符向量的每个分量进入网络,像学徒先“扫描”食材的视觉信息。
    Dij  →  ∑jwkj(1)Dij+bk(1)\displaystyle D_{ij} \;\rightarrow\; \sum_{j} w_{kj}^{(1)} D_{ij} + b_k^{(1)}
  2. 隐藏层非线性激活函数让网络能表达复杂关系,像大脑从“看到焦色”联想到“火候”。
    σ(⋅)\displaystyle \sigma(\cdot)
  3. 输出层加权把隐藏层提取的特征加权汇总成最终的能量值。
    Ei=b(2)+∑k=1Hwk(2)ak\displaystyle E_i = b^{(2)} + \sum_{k=1}^{H} w_k^{(2)} a_k

训练数据策略

大厨的菜谱库不是随便收集的。如果只收录“炖菜”的菜谱,学徒就没法应付“炒菜”。DFT计算本身很贵,所以“挑哪些构型去算”直接决定了NNP的质量上限——这是训练数据策略要回答的问题。

常用的采样方式有三类:第一,从分子动力学轨迹中提取构型,这些结构接近物理真实状态,像收集“日常菜品”;第二,对结构做随机扰动,覆盖势能面的更多区域,像收集“创新菜”;第三,主动学习——先训练一个初步模型,找出预测不确定最大的构型,专门让DFT计算这些点,再补充进训练集循环迭代。这相当于学徒发现自己不会做某道菜,主动请大厨现场示范。

菜谱覆盖得越全面、越有代表性,学徒的“手艺”就越扎实。这里的经验法则是:多样性优先于数量。几千个分布良好的构型,往往比几万个高度相似的构型更有效。

L=1M∑m=1M(EmNN−EmDFT)2+α3N∑m=1M∑i=1N∥Fi,mNN−Fi,mDFT∥2\displaystyle L = \frac{1}{M}\sum_{m=1}^{M} \left( E_m^{\mathrm{NN}} - E_m^{\mathrm{DFT}} \right)^2 + \frac{\alpha}{3N}\sum_{m=1}^{M}\sum_{i=1}^{N} \left\| \mathbf{F}_{i,m}^{\mathrm{NN}} - \mathbf{F}_{i,m}^{\mathrm{DFT}} \right\|^2
损失函数同时看两个指标:预测能量是否接近DFT、预测原子受力是否接近DFT。\(\alpha\) 是力项的权重。之所以要约束力,是因为分子动力学模拟中原子受力决定了运动轨迹,力错了全盘皆输。
  1. 能量误差项每个样本预测能量与DFT能量的偏差平方,这是最根本的“味道是否一致”。
    (EmNN−EmDFT)2\displaystyle \left( E_m^{\mathrm{NN}} - E_m^{\mathrm{DFT}} \right)^2
  2. 原子受力项力的方向与大小也要贴近DFT,像学徒连翻锅的力度都要学。
    ∥Fi,mNN−Fi,mDFT∥2\displaystyle \left\| \mathbf{F}_{i,m}^{\mathrm{NN}} - \mathbf{F}_{i,m}^{\mathrm{DFT}} \right\|^2
  3. 平衡系数\(\alpha\) 调节能量与力两个目标的权重。
    α\displaystyle \alpha

外推能力评估

学徒终于出师了。某天,一位客人点了一道他从未见过的“仰望星空派”——整条鱼埋在派皮里,鱼头朝天。学徒愣住了,他不知道该怎么判断火候,只能凭直觉瞎猜,结果大概率翻车。这就是NNP的外推困境:对于训练数据之外的构型,模型没有依据,预测可能完全离谱。

为什么?因为神经网络本质上是“聪明的插值器”。它能准确预测“见过的插值区间”,但在“没见过的区间”没有物理约束。DFT可以从头算任何结构,而NNP只认识训练域内的构型空间。一旦模拟过程中原子距离过近或构型过于极端,NNP可能给出能量急剧下降这样的非物理结果——这在分子动力学里是灾难性的。

δ(R)=max⁡k∣EkNN(R)−EmeanNN(R)∣\displaystyle \delta(\mathbf{R}) = \max_{k} \left| E_k^{\mathrm{NN}}(\mathbf{R}) - E_{\mathrm{mean}}^{\mathrm{NN}}(\mathbf{R}) \right|

1. 多模型集合:训练 \(K\) 个结构相同但随机初始化不同的网络,取预测均值。

EmeanNN(R)=1K∑k=1KEkNN(R)\displaystyle E_{\mathrm{mean}}^{\mathrm{NN}}(\mathbf{R}) = \frac{1}{K} \sum_{k=1}^{K} E_k^{\mathrm{NN}}(\mathbf{R})

2. 最大分歧:每个模型与均值的最大偏差,作为不确定性估计。

δ(R)=max⁡k∣EkNN−EmeanNN∣\displaystyle \delta(\mathbf{R}) = \max_k \left| E_k^{\mathrm{NN}} - E_{\mathrm{mean}}^{\mathrm{NN}} \right|

3. 判定与决策:当 \(\delta\) 超过阈值,就判定为“外推”,拒绝该预测。

δ(R)>δthr\displaystyle \delta(\mathbf{R}) > \delta_{\mathrm{thr}}

出师的学徒也该有“不会就说不会”的自觉。在工业级NNP应用中,不确定性评估不是锦上添花,而是安全底线。

跨体系泛化

学徒在法餐厅干得不错,被调到一家川菜馆。他惊喜地发现,刀工、火候、调味的基本功是通用的——只需学几道招牌菜,他就能快速上手。这种“换餐厅也能干”的能力,对应NNP的跨体系泛化。

实际中,我们往往想把在体系A上训练好的NNP用到体系B上(比如从碳氢化合物迁移到含氧分子)。完全从头训练太浪费,更好的做法是迁移学习:保留网络底层的通用特征提取层(相当于刀工火候),用新体系的一小批DFT数据微调顶层的任务层。

跨体系泛化让NNP从“私人定制”走向“通用工具”。如今,NNP已在催化剂表面反应、锂电池离子扩散、药物分子构象搜索等领域大放异彩——那位学徒,正在成为整个材料科学界的万能师父。

Einew(Di)=Eibase(Di)+ΔE(Di)\displaystyle E_i^{\mathrm{new}}(\mathbf{D}_i) = E_i^{\mathrm{base}}(\mathbf{D}_i) + \Delta E(\mathbf{D}_i)
新体系的原子能量可以看作“基础网络给出的能量 + 一个体系专属的修正项”。修正项用少量新数据训练,基础能力则完全复用。
  1. 基础能力源体系预训练网络给出基础能量,像学徒已有的刀工和火候功底。
    Eibase(Di)\displaystyle E_i^{\mathrm{base}}(\mathbf{D}_i)
  2. 体系修正新体系引入一个可学习的修正项,像学几道川菜特有的调味手法。
    ΔE(Di)\displaystyle \Delta E(\mathbf{D}_i)
  3. 微调目标用新体系少量DFT数据调整修正项,使得总体能量匹配。
    min⁡Δθ∑m(Enew(Rm)−EDFT(Rm))2\displaystyle \min_{\Delta\theta} \sum_{m} \left( E^{\mathrm{new}}(\mathbf{R}_m) - E^{\mathrm{DFT}}(\mathbf{R}_m) \right)^2

AI 应用场景

催化反应路径搜索

阶段:模型训练 + 高通量推理

解决的问题:催化剂表面化学反应路径搜索需要遍历成千上万个吸附构型。传统做法对每个构型做DFT计算,一个构型要数小时,整条路径要数月。NNP用DFT数据先训练势函数,之后每个构型毫秒级出结果,路径搜索效率提升千倍。

具体案例:在铂表面CO氧化反应研究中,研究团队用约3000个DFT结构训练NNP,再进行长时程分子动力学采样,成功捕捉到传统DFT-MD无法企及的中间态构型,反应机理的解释更加完整。

锂电池离子扩散模拟

阶段:数据生成 + 模型推理

解决的问题:锂离子在电极材料中的扩散路径与能垒模拟,需要持续数纳秒的分子动力学轨迹。DFT-MD每一步要重新自洽计算电子结构,受算力限制只能跑到皮秒级,根本看不到完整的扩散事件。NNP把每步成本降低几个数量级,让纳秒级模拟成为可能。

具体案例:在磷酸铁锂正极材料中,研究者用DFT训练NNP后执行NNP-MD模拟,观察到锂离子沿一维通道跳跃的完整过程,计算出与实验高度吻合的扩散系数。

药物分子构象搜索

阶段:迁移学习 + 推理

解决的问题:药物分子在溶剂中的构象分布影响其与靶点结合的能力。构象搜索要采样大量旋转异构体,每个都要做高精度能量评估。用迁移学习把通用NNP微调到目标药物分子,就能快速筛选低能构象。

具体案例:某药物研发团队将预训练的有机分子NNP迁移到候选药物分子上,仅用500个DFT结构微调,就将构象搜索吞吐量提升300倍,筛出的优势构象与核磁实验一致。

Python 演示

python60 行
import numpy as np def dft_energy(r, epsilon=1.0, sigma=1.0):    """模拟DFT的'精确'势能函数: Lennard-Jones 双原子势"""    sr = sigma / r    return 4 * epsilon * (sr ** 12 - sr ** 6) # 1. 收集"DFT菜谱": 在训练域 [0.85, 2.5] 内采样rng = np.random.default_rng(42)r_train = rng.uniform(0.85, 2.5, 200)e_train = dft_energy(r_train) # 2. 特征描述符: 高斯展宽, 相当于学徒'观察食材'的视角def build_descriptor(rs, centers, width=0.15):    """把距离r变成一组高斯特征"""    return np.exp(-((rs[:, None] - centers[None, :]) / width) ** 2) centers = np.linspace(0.8, 2.6, 20)X_train = build_descriptor(r_train, centers) # 3. 两层神经网络: 20 -> 16 -> 1def relu(x):    return np.maximum(0, x) rng2 = np.random.default_rng(0)w1 = rng2.normal(0, 0.5, (20, 16))b1 = np.zeros(16)w2 = rng2.normal(0, 0.5, (16, 1))b2 = np.zeros(1) def nn_predict(X):    hidden = relu(X @ w1 + b1)    return hidden @ w2 + b2 # 4. 训练: 梯度下降最小化能量误差lr = 0.01for epoch in range(2000):    hidden = relu(X_train @ w1 + b1)    pred = hidden @ w2 + b2    delta = 2 * (pred - e_train[:, None]) / len(e_train)    grad_w2 = hidden.T @ delta    grad_b2 = delta.sum(axis=0)    grad_hidden = delta @ w2.T    grad_hidden[hidden <= 0] = 0    grad_w1 = X_train.T @ grad_hidden    grad_b1 = grad_hidden.sum(axis=0)    w1 -= lr * grad_w1    b1 -= lr * grad_b1    w2 -= lr * grad_w2    b2 -= lr * grad_b2 # 5. 评估: 训练域内 vs 外推域r_test = np.linspace(0.8, 3.5, 100)X_test = build_descriptor(r_test, centers)e_pred = nn_predict(X_test).flatten()e_true = dft_energy(r_test)in_domain = r_test <= 2.5out_domain = r_test > 2.5print("训练域内平均绝对误差: %.4f" % np.mean(np.abs(e_pred[in_domain] - e_true[in_domain])))print("外推域平均绝对误差:   %.4f" % np.mean(np.abs(e_pred[out_domain] - e_true[out_domain])))
目的:用Lennard-Jones势模拟“DFT数据”,训练一个小型神经网络势函数,直观展示“域内拟合精准、域外外推翻车”的经典现象。
  1. sg = sigma / r计算屏蔽距离比,是LJ势的核心比率
  2. dft_energy(r_train)在采样构型上“逐点精确计算”,相当于让大厨做菜
  3. np.exp(-((rs[:, None] - centers[None, :]) / width) ** 2)高斯展宽描述符,相当于学徒“看食材”的视角
  4. hidden = relu(X_train @ w1 + b1)隐藏层前向传播,提取抽象特征
  5. grad_hidden[hidden <= 0] = 0ReLU的反向传播规则:不激活的神经元不更新
  6. out_domain = r_test > 2.5识别训练域之外的区域,检验外推能力

常见误区

误区只要训练数据够多、网络够大,NNP就能替代DFT,以后再也不需要做DFT计算了。

正解NNP本质是“聪明的插值器”,只在训练数据覆盖的构型空间内可靠。训练数据必须由DFT产生,新体系、新构型仍然离不开DFT。更合理的定位是:NNP是DFT的“高速缓存”,把昂贵的计算前置到训练阶段,换取推理阶段的速度。

为何常见:训练域内NNP精度常能逼近DFT,且预测速度快得惊人,容易让人产生“样本即全局”的错觉。

误区多采样、堆砌海量DFT数据,模型自然就准了。

正解数据多样性比数量更关键。几万个高度相似的平衡态构型,远不如几千个覆盖势能面不同区域的构型有效。主动学习策略专门针对“模型不确定性大的区域”补充数据,用最少的DFT计算换最大的精度提升。

为何常见:深度学习在图像、文本上用海量数据确实有效,但DFT数据的获取成本极高,不可能无限堆数据。

误区深度学习那么成功,NNP也应该用几十层的残差网络,层数越多效果越好。

正解NNP的输入描述符维度有限、训练数据量通常只有几千到几十万条,过深网络容易过拟合且训练不稳定。实际好用的NNP(如Behler-Parrinello、DeepMD)往往只有3~6层,关键是描述符设计得够好。

为何常见:深度残差网络在计算机视觉上的成功故事被过度类比,忽略了物理建模任务中先验知识(描述符)的重要性。

误区NNP预测毫秒级,所以大规模模拟可以随便跑,不用考虑算力成本。

正解推理虽快,但模型可靠性始终要监控。当模拟进入训练域外区域,NNP可能给出非物理结果,导致整个轨迹无效。工程上要用ensemble分歧或域判定器做实时“体检”,必要时把可疑构型交还给DFT复核。

为何常见:只看到单步推理成本低,忽略了NNP作为“代理模型”需要持续校验这一前提。

面试题

Q1. DFT中以什么量作为核心变量?

单选题 · easy

  • A.单电子波函数
  • B.电子密度分布← 正确答案
  • C.原子核坐标
  • D.体系温度

答案:B。DFT的核心思想是Hohenberg-Kohn定理:体系能量是电子密度的泛函。虽然Kohn-Sham方程中会用到单电子波函数,但严格来说,DFT以电子密度为基本变量。波函数是中间工具,原子核坐标是输入参数,温度不属于第一性原理框架。

Q2. 神经网络势函数相比DFT最大的优势是?

单选题 · easy

  • A.预测精度更高
  • B.不需要任何训练数据
  • C.推理速度提升数个量级← 正确答案
  • D.能处理任意化学体系

答案:C。NNP的目标不是超越DFT精度,而是在接近DFT精度的前提下提升速度。速度来源是训练完成后的前向传播只做矩阵乘法,无需自洽迭代。训练数据必须由DFT提供,无法“无中生有”。

Q3. 为什么需要给NNP构造特征描述符?

单选题 · easy

  • A.降低网络输出维度
  • B.保证平移旋转不变性← 正确答案
  • C.天然包含长程相互作用
  • D.简化神经网络训练算法

答案:B。物理规律不随坐标系平移或旋转而改变。若直接把原子坐标送入网络,同一个构型换个坐标系就变成另一组输入,网络学不到通用规律。描述符如Behler-Parrinello对称函数以距离和角度为输入,天然满足不变性。

Q4. 下列对NNP能量分解的理解正确的是?

单选题 · mid

  • A.每个原子独立决定总能量
  • B.总能量等于各原子能量之和← 正确答案
  • C.能量与局部环境无关
  • D.需要全局电子密度信息

答案:B。NNP遵循“近邻决定论”:每个原子的能量由其截断半径内的环境描述符决定,求和得到总能量。正因如此,预测成本与原子数近似线性增长,而不是DFT的三次方增长。

Q5. 主动学习在NNP训练中的核心作用是?

单选题 · mid

  • A.随机采样新构型
  • B.优先补充高不确定构型← 正确答案
  • C.增加网络层数提高容量
  • D.只使用分子动力学轨迹

答案:B。主动学习是一个闭环:训练初步模型→用ensemble分歧找出高不确定构型→让DFT计算这些构型→补充进训练集。它把有限的DFT计算预算花在“模型最不懂”的地方,最大化数据效率。

Q6. NNP外推能力弱的根本原因是?

单选题 · mid

  • A.神经网络层数太浅
  • B.训练数据只覆盖部分构型空间← 正确答案
  • C.DFT本身精度不够高
  • D.描述符维度设置太低

答案:B。神经网络是插值器,对训练域内的构型能精确保留,但训练域之外没有数据约束,预测可能完全非物理。这是数据驱动建模的固有边界,与网络深度或描述符维度关系不大。

Q7. 迁移学习应用到新化学体系时,通常调整的是?

单选题 · mid

  • A.输入描述符类型
  • B.输出层和元素嵌入层← 正确答案
  • C.冻结全部网络参数
  • D.物理常数设定

答案:B。迁移学习假设底层特征(原子间相互作用的共性规律)可复用,只微调顶层输出和元素嵌入来适应新体系。冻结全部参数就无法适配新体系;调整描述符类型等于推翻原有特征表示,失去了迁移的意义。

Q8. NNP损失函数通常包含哪些项?

多选题 · mid

  • A.能量预测误差项← 正确答案
  • B.原子受力误差项← 正确答案
  • C.描述符重构误差项
  • D.网络权重正则项← 正确答案

答案:ABD。标准NNP损失包含能量误差(主目标)和力误差(辅助约束,因为力决定MD轨迹),正则项用于抑制过拟合。描述符是输入特征而非预测目标,不放进损失中。

Q9. 评估NNP模型可靠性可采用的方法有?

多选题 · hard

  • A.验证集能量误差← 正确答案
  • B.Ensemble多模型分歧← 正确答案
  • C.外推区域与DFT对比校验← 正确答案
  • D.训练集最终损失值

答案:ABC。验证集误差反映泛化能力;ensemble分歧是常用不确定性估计;外推区与DFT对比能直接揭示“翻车”风险。训练损失只说明拟合能力,对可靠性评估几乎没有参考价值。

Q10. 关于多元素NNP与跨体系迁移,下列说法正确的有?

多选题 · extreme

  • A.元素嵌入层可以承载元素身份信息← 正确答案
  • B.迁移学习通常微调顶层和嵌入层← 正确答案
  • C.描述符对元素种类完全不敏感
  • D.底层共享特征层可以跨体系复用← 正确答案

答案:ABD。元素嵌入为每种元素学习一个身份向量,使网络能区分C、H、O等元素;迁移学习时保留底层通用特征、微调顶层和嵌入层是常见做法。描述符对元素种类敏感——不同元素的邻居要编码进输入,所以C的说法错误。