FermiNet:从第一原理出发的量子物理和化学
FermiNet Quantum Physics and Chemistry from First Principles.
在最近发表的《物理评论研究》一文中,我们展示了深度学习如何帮助解决实际系统中的量子力学基本方程。这不仅是一个重要的基础科学问题,而且还可能在未来产生实际的应用,使研究人员能够在实验室之前在模拟中原型化新材料和化学合成。今天我们还发布了这项研究的代码,以便计算物理学和化学社区可以在我们的工作基础上建立,并将其应用于各种问题。我们开发了一种新的神经网络架构,费米神经网络或费米网,非常适合建模大量电子的量子态,这些电子是化学键的基本构建单元。费米网是首次展示使用深度学习从第一原理计算原子和分子能量的准确性足够高以实用的方法,并且它仍然是迄今为止最准确的神经网络方法。我们希望在DeepMind的人工智能研究中开发的工具和思想可以帮助解决自然科学中的基本问题,费米网与我们在蛋白质折叠、玻璃动力学、格点量子色动力学和许多其他项目上的工作一起,将这一愿景变为现实。
量子力学简史
提到“量子力学”,更可能引起困惑而不是其他任何事情。这个短语会让人想到薛定谔的猫,它可以同时是活着和死去的,并且还会让人想到某种程度上同时也是波的基本粒子。在量子系统中,例如电子这样的粒子没有精确的位置,就像在经典描述中一样。相反,它的位置由一个概率云来描述 – 它在允许的所有位置上都被扩散开来。这种反直觉的状态导致理查德·费曼宣称:“如果你认为你理解了量子力学,那你就不理解量子力学。”尽管有这种诡异的奇怪现象,但该理论的核心可以简化为几个简单的方程。其中最著名的是薛定谔方程,它以与牛顿定律描述我们更熟悉的人类尺度物体行为的方式描述了量子尺度上的粒子行为。尽管对这个方程的解释可能引起无休止的困惑,但数学计算要容易得多,这导致教授们在面对学生提出的棘手哲学问题时常常会嘱咐“闭嘴,开始计算”。
这些方程足以描述我们周围所见的所有熟悉物质在原子和核级别上的行为。它们的反直觉性质导致了各种奇特的现象:超导体、超流体、激光和半导体只有在量子效应的作用下才可能存在。但即使是简单的共价键 – 化学的基本构建单元 – 也是电子的量子相互作用的结果。在20世纪20年代,一旦这些规则被解开,科学家们意识到他们首次拥有了一个关于化学如何运作的详细理论。原则上,他们可以为不同的分子设置这些方程,解决系统的能量,并确定哪些分子是稳定的,哪些反应将自发发生。但当他们坐下来实际计算这些方程的解时,他们发现他们只能准确地计算最简单的原子(氢)的解,其他几乎什么都算不出来。其他一切都太复杂了。
那个时代的狂热乐观主义被保罗·狄拉克(Paul Dirac)很好地总结了:
用于物理学的大部分数学理论和整个化学所必需的基本物理定律因此是完全已知的,困难仅仅在于这些定律的确切应用导致的方程太复杂而无法解决。因此,有必要发展近似的实用量子力学方法 保罗·狄拉克,1929年
许多人接受了狄拉克的要求,很快物理学家们就建立起了可以近似描述分子键和其他化学现象行为的数学技术。这些方法从一个近似描述电子行为的描述开始,这个描述可能在初级化学中是熟悉的。在这个描述中,每个电子被分配给一个特定的轨道,这给出了在原子核附近找到单个电子的概率。然后,每个轨道的形状取决于所有其他轨道的平均形状。由于这种“平均场”描述将每个电子视为只分配给一个轨道,因此它对电子的实际行为是一个非常不完整的描述。尽管如此,它足以估计一个分子的总能量,误差约为0.5%。

不幸的是,0.5%的误差对于工作中的化学家来说仍然不够有用。分子键中的能量只是系统总能量的一小部分,正确预测分子是否稳定通常取决于系统总能量的0.001%,或剩余“相关”能量的约0.2%。例如,丁二烯分子中电子的总能量几乎是每摩尔100,000千卡,而分子不同可能形状之间的能量差仅为每摩尔1千卡。这意味着如果您想要正确预测丁二烯的自然形状,那么需要的精度与测量足球场宽度到毫米的精度相同。
随着第二次世界大战后数字计算机的出现,科学家们开发了一系列超越电子平均场描述的计算方法。虽然这些方法以令人困惑的缩写形式出现,但它们都大致在以精度与效率之间进行权衡的轴上。极端情况下,有些方法基本上是精确的,但随着电子数的增加,其计算复杂度呈指数级增长,使其在除了最小的分子之外都不实用。在另一个极端,有些方法的计算复杂度线性增长,但精度不高。这些计算方法对化学实践产生了巨大影响-1998年的诺贝尔化学奖授予了许多这些算法的创始人。
费米神经网络
尽管现有的计算量子机械工具非常广泛,但我们认为需要一种新方法来解决高效表示的问题。之所以最大的量子化学计算仅能处理数万个电子,即使是最粗略的方法,而经典化学计算技术如分子动力学可以处理数百万个原子,这是有原因的。经典系统的状态可以很容易地描述-我们只需要追踪每个粒子的位置和动量。表示量子系统的状态要困难得多。必须为每个可能的电子位置配置分配一个概率。这是在波函数中编码的,它为每个电子配置分配一个正数或负数,波函数的平方给出了在该配置中找到系统的概率。所有可能配置的空间是巨大的-如果您尝试将其表示为每个维度上有100个点的网格,则硅原子的可能电子配置数量将大于宇宙中的原子数量!
这正是我们认为深度神经网络可以发挥作用的地方。在过去的几年中,我们在用神经网络表示复杂的高维概率分布方面取得了巨大的进展。我们现在知道如何高效且可扩展地训练这些网络。我们猜想,鉴于这些网络在解决人工智能问题中已经证明了它们的实力,也许它们也可以用于表示量子波函数。我们并不是第一个想到这个想法的人-如Giuseppe Carleo和Matthias Troyer等研究人员已经展示了现代深度学习如何用于解决理想化的量子问题。我们希望使用深度神经网络来解决化学和凝聚态物理中更现实的问题,这意味着在计算中包括电子。
处理电子时有一个问题。电子必须遵守泡利不相容原理,这意味着它们不能同时存在于相同的空间。这是因为电子是一种被称为费米子的粒子,其中包括大多数物质的构建模块-质子,中子,夸克,中微子等等。它们的波函数必须是反对称的-如果交换两个电子的位置,波函数会乘以-1。这意味着如果两个电子重叠在一起,波函数(和该配置的概率)将为零。
这意味着我们必须开发一种新类型的神经网络,该网络对其输入是反对称的,我们将其称为费米神经网络或FermiNet。在大多数量子化学方法中,通过使用称为行列式的函数来引入反对称性。矩阵的行列式具有这样的特性:如果交换两行,输出会乘以-1,就像费米子的波函数一样。因此,您可以获取一些单电子函数,对系统中的每个电子进行评估,并将所有结果打包到一个矩阵中。该矩阵的行列式则是一个正确的反对称波函数。这种方法的主要限制是所得到的函数-称为斯莱特行列式-不太通用。真实系统的波函数通常更复杂。改善这一点的典型方法是采用大量斯莱特行列式的线性组合-有时是数百万个或更多-并根据电子对添加一些简单的修正。即使如此,这可能不足以准确计算能量。

深度神经网络通常比基函数的线性组合更高效地表示复杂函数。在FermiNet中,通过使进入行列式的每个函数都是与所有电子相关的函数来实现这一点(1)。这远远超出了只使用一电子和二电子函数的方法。FermiNet为每个电子都有一个单独的信息流。如果这些信息流之间没有任何交互,网络的表达能力将不会比传统的Slater行列式更强。为了超越这一点,在网络的每一层中,我们平均汇集来自所有信息流的信息,并将这些信息传递给下一层的每个信息流。这样,这些信息流具有正确的对称性质,可以创建一个反对称函数。这类似于图神经网络在每一层中聚合信息的方式。与Slater行列式不同,FermiNet是通用函数逼近器,至少在神经网络层变得足够宽的极限情况下是如此。这意味着,如果我们能够正确训练这些网络,它们应该能够拟合薛定谔方程的近乎精确解。

我们通过最小化系统的能量来拟合FermiNet。要完全做到这一点,我们需要在电子的所有可能配置上评估波函数,因此我们不得不使用近似方法。我们随机选择一些电子配置,对每个电子排列进行局部能量评估,将每个排列的贡献相加,并最小化这个总和,而不是真正的能量。这被称为蒙特卡罗方法,因为它有点像赌徒一次又一次地掷骰子。虽然它是近似的,但如果我们需要提高精度,我们总是可以再次掷骰子。由于波函数的平方给出了在任何位置观察粒子排列的概率,从波函数本身生成样本最为方便 – 本质上是模拟观察粒子的行为。尽管大多数神经网络是从一些外部数据中训练的,但在我们的情况下,用于训练神经网络的输入是由神经网络自身生成的。这有点像靠自己的努力拉起自己的靴带,这意味着我们不需要除原子核位置外的任何训练数据,因为电子围绕着原子核舞动。这个基本思想被称为变分量子蒙特卡罗(或简称为VMC),它自上世纪60年代以来一直存在,并且通常被认为是计算系统能量的一种便宜但不太准确的方法。通过用FermiNet替换基于Slater行列式的简单波函数,我们已经显著提高了这种方法在我们研究的每个系统上的准确性。

为了确保FermiNet确实代表了技术进步,我们首先研究了简单且经过充分研究的系统,例如周期表第一行的原子(氢到氖)。这些系统很小-最多只有10个电子-并且足够简单以至于可以使用最准确(但指数级扩展)的方法来处理。FermiNet在性能上远远超过了可比的VMC计算-通常将错误相对于指数级扩展的计算减少一半或更多。对于较大的系统,指数级扩展的方法变得棘手,因此我们使用“耦合簇”方法作为基准。该方法在分子处于稳定构型时表现良好,但在键被拉伸或断裂时表现不佳,这对于理解化学反应至关重要。虽然它的扩展性比指数级好得多,但我们使用的特定耦合簇方法的扩展性仍然与电子数量的七次方成正比,因此它只能用于VoAGI大小的分子。我们将FermiNet应用于越来越大的分子,从氢化锂开始,一直到我们研究过的最大系统-双环丁烷,该分子含有30个电子。对于最小的分子,FermiNet捕获了耦合簇能量与从单个斯拉特行列式获得的能量之间差异的惊人99.8%。在双环丁烷中,FermiNet仍然捕获了97%或更多的相关能量-对于一个所谓的“成本低廉但不准确”的方法来说,这是一个巨大的成就。

虽然耦合簇方法对稳定分子效果良好,但计算化学的真正前沿在于理解分子的拉伸、扭曲和断裂。在那里,耦合簇方法经常遇到困难,因此我们必须与尽可能多的基准进行比较,以确保获得一致的答案。我们研究了两个基准拉伸系统-氮分子(N2)和具有10个原子的氢链(H10)。氮是一种特别具有挑战性的分子键,因为每个氮原子贡献3个电子。同时,氢链对于理解电子在材料中的行为很有意义,例如预测材料是否导电。在这两个系统中,耦合簇在平衡状态下表现良好,但在键被拉伸时存在问题。常规VMC计算在整个过程中表现不佳。但是FermiNet是研究中表现最好的方法之一,无论键长如何。
结论
我们认为FermiNet是深度学习和计算量子化学融合的伟大开端。到目前为止,我们研究的大多数系统都经过了充分的研究和理解。但就像深度学习在其他领域取得的第一个好结果一样,引发了后续工作和快速进展的热潮,我们希望FermiNet能够激发大量关于扩展和更好的网络架构的工作和许多新的创意。自从我们去年首次在arXiv上发布我们的工作以来,其他团队也分享了他们将深度学习应用于多电子问题的第一性原理计算的方法。我们也只是刚刚开始探索计算量子物理学的表面,并期待将FermiNet应用于材料科学和凝聚态物理学中的棘手问题。最重要的是,我们希望通过公开我们实验中使用的源代码,激励其他研究人员在我们的工作基础上进行扩展,并尝试我们甚至没有想到的新应用。