费米网:从第一性原理开始的量子物理和化学

2020-10-20 13:11:00

在最近发表在“物理评论研究”(Physical Review Research)上的一篇文章中,我们展示了深度学习如何帮助解决现实世界系统的量子力学基本方程。这不仅是一个重要的基础科学问题,而且它还可能导致未来的实际应用,使研究人员在尝试在实验室制造新材料和化学合成之前,能够在硅胶中制作新材料和化学合成的原型。今天,我们还发布了这项研究的代码,这样计算物理和化学社区就可以在我们的工作基础上继续工作,并将其应用于广泛的问题。我们已经开发了一种新的神经网络体系结构,费米神经网络或费米网络,它非常适合于对大量电子集合的量子态进行建模,这些电子集合是化学键的基本构件。FermiNet是第一个从第一性原理计算原子和分子能量的深度学习的演示,它足够精确,以至于有用,而且它仍然是迄今为止最准确的神经网络方法。我们希望我们在DeepMind的人工智能研究中开发的工具和想法能够帮助解决自然科学中的基本问题,FermiNet加入了我们在蛋白质折叠、玻璃动力学、晶格量子色动力学和许多其他项目方面的工作,将这一愿景变为现实。

提到“量子力学”,比起其他任何事情,你更有可能引起混乱。这句话让人联想到薛定谔的猫,矛盾的是,它既可能是活的,也可能是死的,以及基本粒子,不知何故,它们也是波。在量子系统中,像电子这样的粒子并不像经典描述中的那样有确切的位置。相反,它的位置是用概率云来描述的-它被涂抹在所有它被允许的地方。这种违反直觉的状态导致理查德·费曼(Richard Feynman)宣称:“如果你认为你了解量子力学,那么你就不懂量子力学。”尽管有这种诡异之处,但该理论的实质可以归结为几个简单的方程式。其中最著名的是薛定谔方程,它描述了粒子在量子尺度上的行为,就像牛顿定律描述我们更熟悉的人类尺度上物体的行为一样。虽然对这个方程的解释可能会让人百思不得其解,但数学要容易得多,这导致了教授们在面对学生们棘手的哲学问题时,通常会告诫他们“闭嘴计算”。

这些方程足以在原子和原子核的水平上描述我们周围所有熟悉的物质的行为。它们违反直觉的本质导致了各种各样的奇异现象:超导体、超流体、激光和半导体只有在量子效应的作用下才有可能。但是,即使是不起眼的共价键-化学的基本构件-也是电子量子相互作用的结果。当这些规则在20世纪20年代制定出来后,科学家们第一次意识到,他们对化学是如何工作的有了一个详细的理论。原则上,他们只需要为不同的分子建立这些方程,求解系统的能量,然后计算出哪些分子是稳定的,哪些反应会自发发生。但是当他们坐下来实际计算这些方程的解时,他们发现他们可以精确地计算出最简单的原子(氢)的解,其他的几乎没有。其他的一切都太复杂了。

“因此,很大一部分物理和整个化学的数学理论所需的基本物理定律是完全清楚的,困难的只是这些定律的准确应用导致方程太复杂而无法求解。因此,发展应用量子力学的近似实用方法就变得可取了.。

许多人接受了狄拉克的指控,很快物理学家就建立了数学技术,可以近似分子键和其他化学现象的定性行为。这些方法开始于对电子行为的大致描述,这可能是入门化学中熟悉的。在本描述中,每个电子被分配到一个特定的轨道,这给出了在原子核附近的任何点发现单个电子的概率。然后,每个轨道的形状取决于所有其他轨道的平均形状。由于这种“平均场”描述将每个电子视为只分配到一个轨道,所以它对电子实际行为的描述是非常不完整的。然而,估计一个分子的总能量就足够了,误差只有0.5%左右。

不幸的是,0.5%的误差仍然不足以对工作的化学家有用。分子键中的能量只占系统总能量的很小一部分,并正确地预测了分子间的相互作用

这正是我们认为深度神经网络可以提供帮助的地方。在过去的几年里,用神经网络来表示复杂的、高维的概率分布已经取得了巨大的进展。我们现在知道如何高效且可扩展地训练这些网络。我们推测,鉴于这些网络已经证明了它们在人工智能问题中拟合高维函数的能力,或许它们也可以用来表示量子波函数。我们并不是第一个想到这一点的人,朱塞佩·卡莱奥(Giuseppe Carleo)和马蒂亚斯·特罗耶(Matthias Troyer)等研究人员已经展示了现代深度学习如何用于解决理想化的量子问题。我们想使用深度神经网络来解决化学和凝聚态物理中更现实的问题,这意味着在我们的计算中包括电子。

在处理电子时只有一条皱纹。电子必须遵守泡利不相容原理,这意味着它们不能同时处于同一空间。这是因为电子是一种被称为费米子的粒子,它包括大多数物质的构件-质子、中子、夸克、中微子等。它们的波函数必须是反对称的-如果你交换两个电子的位置,波函数就会乘以-1。这意味着如果两个电子相互叠加,波函数(以及该构型的概率)将为零。

这意味着我们必须开发一种新型的神经网络,它相对于其输入是反对称的,我们称之为费米子神经网络,或费米网络。在大多数量子化学方法中,反对称是通过一个称为行列式的函数引入的。矩阵的行列式具有这样的特性:如果交换两行,输出将乘以-1,就像费米子的波函数一样。所以你可以取一堆单电子函数,对你系统中的每个电子求值,然后把所有的结果打包到一个矩阵中。那么该矩阵的行列式就是一个适当的反对称波函数。这种方法的主要限制是所得到的函数-称为斯莱特行列式-不是非常通用的。实际系统的波函数通常要复杂得多。改进这一点的典型方法是采用斯莱特行列式的大型线性组合-有时是数百万或更多-然后根据电子对添加一些简单的校正。即便如此,这也可能不足以准确计算能量。

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

我们通过最小化系统的能量来拟合FermiNet。为了准确地做到这一点,我们需要评估所有可能的电子构型的波函数,所以我们必须做近似的计算。我们随机选择一种电子构型,局部评估每种电子排列的能量,将每种排列的贡献相加,并将其最小化,而不是真正的能量。这被称为蒙特卡罗方法,因为它有点像赌徒一遍又一遍地掷骰子。虽然它是近似值,但如果我们需要使它更精确,我们总是可以再次掷骰子。由于波函数的平方提供了在任何位置观察粒子排列的概率,因此从波函数本身生成样本最方便-本质上是模拟观察粒子的行为。虽然大多数神经网络是从一些外部数据训练而来的,但在我们的情况下,用于训练神经网络的输入是由神经网络本身生成的。这有点像你自己自力更生,这意味着我们不需要任何训练数据,除了电子围绕着跳舞的原子核的位置。基本思想,即所谓的变分法

请阅读此处的报纸,并在此处查看代码。感谢吉姆·金文、亚当·凯恩和多米尼克·巴洛的数字。

(1)FermiNet也有针对每对电子的流,来自这些流的信息被传递回单电子流。为简单起见,我们选择不在博客帖子中对此进行可视化,但详细信息可以在文章中找到。