FermiNet:基于第一性原理的量子物理与化学深度学习方法

4 阅读16分钟

FermiNet:量子物理和化学的第一性原理方法

注意: 这篇博客首次发表于2020年10月19日。在我们关于激发态工作的突破性研究于2024年8月22日发表于《科学》杂志后,我们进行了少量更新,并在下方添加了关于此新工作阶段的部分。

利用深度学习解决计算量子化学的基本问题并探索物质与光的相互作用

在发表于《物理评论研究》的一篇文章中,我们展示了深度学习如何帮助解决现实世界系统的量子力学基本方程。这不仅是一个重要的基础科学问题,未来还可能带来实际用途,使研究人员能够在实验室尝试制造之前,先通过计算机模拟来设计新材料和化学合成路径。

我们的神经网络架构——FermiNet(费米子神经网络)——非常适合模拟大量电子的量子态,而电子是化学键的基本组成部分。我们发布了这项研究的代码,以便计算物理和化学界能够在我们的工作基础上进行构建,并将其应用于广泛的问题。

FermiNet是第一个通过深度学习从第一性原理计算原子和分子能量、且精度足以实用的展示。而我们基于自注意力的新架构Psiformer,至今仍是最精确的AI方法。

我们希望人工智能研究中开发的工具和思想能够帮助解决基础科学问题。FermiNet与我们关于蛋白质折叠、玻璃态动力学、晶格量子色动力学等许多项目一起,正将这一愿景变为现实。

量子力学简史

提到“量子力学”,你更可能感到困惑。这个短语会让人联想到薛定谔的猫(它既死又活)以及同时也是波的基本粒子。

在量子系统中,像电子这样的粒子并不像经典描述中那样有确切位置。相反,它的位置由一个概率云描述——它弥散在所有允许存在的地方。这种反直觉的状态使得理查德·费曼宣称:“如果你认为你理解量子力学,那你就没理解量子力学。”

尽管有这种诡异的特性,该理论的核心可以归结为几个简单的方程。其中最著名的是薛定谔方程,它描述了量子尺度下粒子的行为,就像牛顿运动定律描述我们更熟悉的人类尺度下物体的行为一样。虽然对这个方程的解释可能引发无尽的思考,但数学处理起来要容易得多,因此教授们常常在被学生追问棘手的哲学问题时,会告诫“闭嘴,只管计算”。

这些方程足以描述我们在原子和原子核层面看到的所有常见物质的行为。它们的反直觉特性导致了各种奇异现象:超导体、超流体、激光器和半导体都只能源于量子效应。即使是普通的共价键——化学的基本组成部分——也是电子量子相互作用的结果。

20世纪20年代,科学家们弄清了这些规则后,他们首次意识到自己拥有了关于化学如何运作的详细理论。原则上,他们可以为不同的分子建立这些方程,求解系统的能量,并找出哪些分子是稳定的,哪些反应会自发发生。但当他们坐下来实际计算这些方程的解时,发现他们只能对最简单的原子(氢)进行精确求解,其他几乎都不行。其他一切都太复杂了。

“因此,大部分物理学和整个化学所需的潜在物理定律是完全已知的,困难仅在于精确应用这些定律会导致方程过于复杂而无法求解。因此,发展近似实用的量子力学应用方法变得十分必要。”
——保罗·狄拉克,量子力学奠基人,1929年

许多人响应了狄拉克的号召,物理学家们很快建立了可以近似分子键和其他化学现象定性行为的数学技术。这些方法始于对电子行为的一种近似描述,这在入门化学中可能很熟悉。

在这种描述中,每个电子被分配到一个特定的轨道,该轨道给出了单个电子在原子核附近任何位置被发现的概率。每个轨道的形状又取决于所有其他轨道的平均形状。由于这种“平均场”描述将每个电子视为仅分配到一个轨道,所以它对电子实际行为的描述是非常不完整的。然而,这足以以大约0.5%的误差估计分子的总能量。

不幸的是,0.5%的误差对实际工作的化学家来说仍然不够。分子键中的能量只是系统总能量的极小一部分,正确预测一个分子是否稳定通常可能仅取决于系统总能量的0.001%,或剩余“关联”能量的约0.2%。

例如,丁二烯分子中电子的总能量接近每摩尔100,000千卡,但该分子不同可能形状之间的能量差仅为每摩尔1千卡。这意味着,如果你想要正确预测丁二烯的自然形状,就需要相当于将足球场的宽度测量到毫米级别的精度。

第二次世界大战后,随着数字计算的出现,科学家们开发了多种超越这种电子平均场描述的计算方法。虽然这些方法有一堆缩写,但它们通常都在一条在精度和效率之间进行权衡的轴上。在一端是本质上精确但随电子数量增长超过指数级的方法,使其除了最小的分子外都不实用。另一端则是线性扩展但精度不高的方法。这些计算方法对化学实践产生了巨大影响——1998年的诺贝尔化学奖就授予了其中许多算法的创始人。

费米子神经网络

尽管现有的计算量子力学工具范围很广,但我们认为需要一种新方法来解决有效表示的问题。这就是为什么即使是最近似的方法,最大的量子化学计算也只能处理数万电子,而像分子动力学这样的经典化学计算技术却能处理数百万原子。

经典系统的状态可以轻松描述——我们只需要跟踪每个粒子的位置和动量。表示量子系统的状态则要困难得多。必须为电子位置的每种可能配置分配一个概率。这被编码在波函数中,波函数为电子的每种配置分配一个正数或负数,其平方给出了系统处于该配置的概率。

所有可能配置的空间是巨大的——如果你试图将其表示为每个维度100个点的网格,那么硅原子的可能电子配置数量将超过宇宙中的原子数量。这正是我们认为深度神经网络可以发挥作用的地方。

在过去几年中,用神经网络表示复杂的高维概率分布取得了巨大进展。我们现在知道如何高效、可扩展地训练这些网络。我们推测,既然这些网络已经在人工智能问题中证明了它们拟合高维函数的能力,也许它们也可以用来表示量子波函数。

诸如Giuseppe Carleo、Matthias Troyer等研究人员已经展示了现代深度学习如何用于解决理想化的量子问题。我们希望使用深度神经网络来解决化学和凝聚态物理学中更实际的问题,这意味着要将电子纳入我们的计算中。

处理电子时有一个小麻烦。电子必须遵守泡利不相容原理,这意味着它们不能同时处于同一位置。这是因为电子是一种称为费米子的粒子,费米子包括大多数物质的组成部分:质子、中子、夸克、中微子等。它们的波函数必须是反对称的。如果你交换两个电子的位置,波函数会乘以-1。这意味着如果两个电子重叠,波函数(以及该配置的概率)将为零。

这意味着我们必须开发一种新型神经网络,其输入是反对称的,我们称之为FermiNet。在大多数量子化学方法中,反对称性是通过一个称为行列式的函数引入的。矩阵的行列式具有这样的特性:如果你交换两行,输出会乘以-1,就像费米子的波函数一样。

因此,你可以取一堆单电子函数,为系统中的每个电子计算它们,并将所有结果打包到一个矩阵中。该矩阵的行列式就是一个正确反对称的波函数。这种方法的主要局限性在于,所得函数——称为斯莱特行列式——的通用性不强。

真实系统的波函数通常要复杂得多。典型的改进方法是取斯莱特行列式的一个大型线性组合——有时是数百万个或更多——并添加一些基于电子对的简单修正。即便如此,这可能仍不足以精确计算能量。

深度神经网络在表示复杂函数方面通常比基函数的线性组合高效得多。在FermiNet中,这是通过使进入行列式的每个函数都是所有电子的函数来实现的。这远远超出了仅使用单电子和双电子函数的方法。FermiNet为每个电子设置了一个独立的信息流。如果这些流之间没有交互,网络的表达能力将不会超过传统的斯莱特行列式。

为了超越这一点,我们在网络的每一层汇总来自所有流的信息,并将这些信息传递到下一层的每个流。这样,这些流就具有了创建反对称函数所需的正确对称性。这与图神经网络在每一层聚合信息的方式类似。

与斯莱特行列式不同,FermiNet是通用函数逼近器,至少在神经网络层变得足够宽的情况下是这样。这意味着,如果我们能够正确训练这些网络,它们应该能够拟合薛定谔方程的近乎精确的解。

我们通过最小化系统能量来拟合FermiNet。要精确做到这一点,我们需要在所有可能的电子配置处评估波函数,因此我们必须近似处理。我们随机选取一组电子配置,在每种电子排列处局部评估能量,将每种排列的贡献相加,并最小化这个总和,而不是真实能量。这被称为蒙特卡洛方法,因为它有点像赌徒反复掷骰子。虽然它是近似的,但如果我们需要更高的精度,总可以再次“掷骰子”。

由于波函数的平方给出了在任何位置观察到粒子排列的概率,因此最方便的是从波函数本身生成样本——本质上是模拟观察粒子的行为。虽然大多数神经网络都是从一些外部数据中训练的,但在我们的案例中,用于训练神经网络的输入是由神经网络本身生成的。这意味着除了电子围绕的原子核位置外,我们不需要任何训练数据。

这个基本思想被称为变分量子蒙特卡洛,自20世纪60年代以来就已存在,通常被认为是计算系统能量的一种廉价但不是很准确的方法。通过用FermiNet替换基于斯莱特行列式的简单波函数,我们在我们研究的每个系统上都极大地提高了这种方法的精度。

为了确保FermiNet代表了该领域的最先进水平,我们首先研究了简单、有充分研究的系统,比如元素周期表第一行的原子(从氢到氖)。这些都是小系统——10个或更少的电子——并且足够简单,可以被最精确(但指数级扩展)的方法处理。

FermiNet在性能上远超同类VMC计算——通常将相对于指数扩展计算的误差减少一半或更多。在更大的系统上,指数扩展方法变得难以处理,因此我们使用耦合簇方法作为基线。这种方法在稳定构型的分子上效果很好,但当键被拉伸或断裂时就会遇到困难,而理解化学反应这正是关键所在。虽然它的扩展性比指数级好得多,但我们使用的特定耦合簇方法仍然以电子数的七次方扩展,因此只能用于中等大小的分子。

我们将FermiNet应用于逐渐增大的分子,从氢化锂开始,一直到双环丁烷,这是我们研究的最大的系统,有30个电子。在最小的分子上,FermiNet惊人地捕捉了耦合簇能量与单个斯莱特行列式能量之间差异的99.8%。在双环丁烷上,FermiNet仍然捕捉了97%或更多的这种关联能,对于如此简单的方法来说,这是一个巨大的成就。

虽然耦合簇方法对稳定分子有效,但计算化学的真正前沿在于理解分子如何拉伸、扭转和断裂。在那里,耦合簇方法常常遇到困难,因此我们必须与尽可能多的基线进行比较,以确保我们得到一个一致的答案。

我们研究了两个基准拉伸系统:氮分子和具有10个原子的氢链。氮分子是一个特别具有挑战性的分子键,因为每个氮原子贡献三个电子。同时,氢链对于理解材料中电子的行为,例如预测材料是否会导电,具有重要意义。

在这两个系统上,耦合簇方法在平衡态时表现良好,但随着键的拉伸出现了问题。传统的VMC计算在所有情况下都表现不佳,但FermiNet无论在何种键长下,都是被研究的最佳方法之一。

计算激发态的新方法

2024年8月,我们在《科学》杂志上发表了这项工作的下一阶段。我们的研究提出了解决计算量子化学中最棘手挑战之一的方法:理解分子在受刺激时如何向激发态跃迁以及从激发态返回。

FermiNet最初专注于分子的基态,即电子在给定原子核组周围的最低能量配置。但是,当分子和材料受到大量能量刺激时,比如暴露在光或高温下,电子可能会被踢到更高的能量配置——即激发态。

激发态对于理解物质如何与光相互作用至关重要。吸收和释放的确切能量为不同的分子和材料创造了独特的“指纹”,这影响着从太阳能电池板、LED到半导体、光催化剂等各种技术的性能。它们还在涉及光的生物过程中起着关键作用,如光合作用和视觉。

精确计算激发态的能量比计算基态能量要困难得多。即使是像耦合簇这样的基态化学的黄金标准方法,在激发态上显示出的误差也可能大到几十倍。虽然我们希望将FermiNet的工作扩展到激发态,但现有方法的效果不足以让神经网络与最先进的方法竞争。

我们开发了一种计算激发态的新方法,它比之前的方法更稳健、更通用。我们的方法可以应用于任何类型的数学模型,包括FermiNet和其他神经网络。它的工作原理是寻找一个具有额外粒子的扩展系统的基态,因此只需稍作修改即可使用现有的优化算法。

我们在广泛的基准测试中验证了这项工作,结果非常有希望。在一个称为碳二聚体的小而复杂的分子上,我们实现了4 meV的平均绝对误差,这比之前达到20 meV的黄金标准方法更接近实验结果五倍。我们还测试了我们的方法在一些计算化学中最具挑战性的系统上,其中两个电子同时被激发,发现我们与迄今为止进行的计算要求最高、最复杂的计算结果相差约0.1 eV。

今天,我们开源了最新的工作,希望研究界能够基于我们的方法来探索物质与光相互作用的意外方式。

在我们的最新论文中阅读更多 阅读我们的原始论文 下载代码

致谢

我们关于激发态的新研究与Ingrid von Glehn、Halvard Sutterud和Simon Axelrod共同开发。 FermiNet由David Pfau、James S. Spencer、Alexander G. D. G. Matthews和W. M. C. Foulkes开发。 感谢Jess Valdez和Arielle Bier对博客的支持,以及Jim Kynvin、Adam Cain和Dominic Barlow提供插图。

脚注

FermiNet还为每个电子对设置了流,并且来自这些流的信息被传递回单电子流。为简单起见,我们选择不在博客文章中对此进行可视化,但详细信息可以在论文中找到。