近日想到用深度学习做密度泛函,很好奇效果怎么样。于是整理了一番资料,记录于此。本人是密度泛函理论的新新手,介绍部分如有谬误,请指正。第一部分会简介什么是密度泛函。第二部分会分解一篇2018年的深度学习在密度泛函方向应用的文章。
泛函是什么?泛函就是函数的函数,并且输出只有一个值。最常见的泛函是定积分。在给定区间,积分结果是一个数值,并且依赖于被积函数的具体形式。
定积分:
密度泛函是什么?
密度泛函近似求解多体量子系统的薛定谔方程。它被用于研究多电子系统和核结构。这种方法广泛应用于化学,物理,材料和工程。
对化学和材料科学,这里的密度是电子数密度
![]()
,它是空间坐标
![]()
的函数。泛函指的是系统能量
![]()
是电子数密度的函数。函数的函数,且返回值是一个数值,所以称为泛函。
多体量子力学模拟
对于氢原子这样的简单量子系统,包含一个质子,一个电子,质子质量是电子质量的2000倍,根据波恩-奥本海默近似,可假设质子不动,求解单电子波函数。这个系统有解析解,任何一本量子力学的书中都会讲到。但多体量子力学不能分离变量,没有解析解,数值解也非常复杂,系统中态的个数呈指数增长。现在发展迅速的量子计算机,最先突破的方向可能就是多体量子力学模拟。在量子计算机发展出可用的多体量子模拟之前(比如有一天人们发现VQE可以扩展到大系统),传统的模拟方法还会长期占优,比如密度泛函。
现在考虑 He 原子,原子核中有两个中子,两个质子,核外两个电子。首先以经典思维,仍然假设原子核不动,只有两个电子运动。那么原子核相当于提供了一个外部静电势
![]()
。这个时候电子系统的总能量除了两个电子各自的动能 T,在原子核电场中的势能 V外,还要多加一项 U,这一项来自于电子两两之间的库伦排斥。
聪明如你会说,电子是费米子,费米子波函数交换反对称,这种量子特性如何能反应在上面方程中?比如两个电子,单电子波函数是
![]()
和
![]()
。Hartree 说,如果两个电子是独立的,那么双电子波函数可以写成
![]()
。Fock 说,这样不行,电子是全同费米子,同时交换两个电子的位置和自旋,波函数应该反对称。如果先忽略自旋,定义 P 是位置交换操作,那么
![]()
不满足交换反对称,即
Fock 说,除非我们这样定义两体费米子波函数,
试一试,交换两个电子的位置,整体波函数真的改变符号。
如果把两个电子放同一个位置,
![]()
, 双电子概率密度
![]()
为0,此操作被禁止。此现象又称Pauli不相容,或Pauli Blocking。将两个电子推广到多电子体系,只要用 Slater Determinant,就可以构造既满足交换反对称,又满足 Pauli Blocking 的多电子波函数。所以 Hohenberg,Kohn 和 Sham 就在能量中加了一项
![]()
,来收集因为费米子量子特性所带来的能量。这一项除了包含交换反对称和 Pauli Blocking 的贡献,还包含了关联能修正, 下标 x 指的是交换能,c 指的是关联能。一开始我以为交换能来自于交换反对称,关联能来自于 Pauli Blocking。但从 Kohn-Sham 的文章中读到,交换能来自交换反对称和 Pauli Blocking,需要对自旋向上和自旋向下的电子分别计算。 Kohn-Sham 文章中的交换能修正与 Slater Determinant 算出来的交换能也相差一个 2/3 倍因子。Kohn-Sham 的解释是,交换能部分修正的仅仅是费米面附近的费米子交换带来的能量差异,而非所有费米子对之间的交换。
对于关联能,看到关联两字,我能联想到的最直接的例子是超导里面的库伯对,原子核中的对关联以及团簇。但在文章中却没有找到准确的定义。关联能与交换能有一定的关系。两个自旋平行的电子,根据泡利不相容原理,不能占据同一个态。所以两自旋平行的电子之间距离越远,交换能越小。另一方面,一个电子会因为泡利不相容,在其周围产生对其他自旋平行电子的绝对真空区域(即空穴),空穴等价于正电子。而此空穴,会对自旋反平行的电子有库伦吸引作用。最终的结果就是,电子的自旋分布趋于均匀。真实情况可能远比这个复杂,就像我们想到了二阶效应,但是再往深处想,就会有三阶,四阶 ... 。
在 Kohn-Sham 1965 年的文章中,使用密度为 n 的均匀自由电子气体系统的交换关联能作为近似 (公式2.3)。我在这里看到一个做梯度展开,计算交换关联能的公式,第二行包含了自旋密度梯度的贡献 ,与上一段的语言描述应该是同一个意思。
密度泛函理论基于两个定理,
- 任何可观测量的基态期望值,比如能量 E,是基态电子密度 n(r) 的唯一泛函
- 基态电子密度可以通过最小化密度泛函 E[n(r)] 得到
密度泛函与机器学习
这部分开始介绍文章 Deep Learning and Density Functional Theory, 2018 。
密度泛函计算复杂度随原子个数 N 呈立方增长
![]()
。这篇文章表明当外部势能是简谐振子和随机势时,深度神经网络可以集成或完全取代 Kohn-Sham 密度泛函理论方案。将自洽电子密度
![]()
用作深度神经网络的输入,可同时预测交换能,关联能,外部势能,动能以及总能量。更进一步,不用
![]()
,直接使用外部静电势能
![]()
,同样可得到相同的预测,完全避开Kohn-Sham方案。这篇文章提出了可扩展的神经网络架构,即每次预测时使用局域的势能或电子密度,以及很小的邻接区域的势能或电子密度。这样训练出来的神经网络,能够以 O(N) 计算成本扩展到任意系统大小。
这张图总结了文章的内容。图(a)说深度神经网络可以通过自洽的电子密度
![]()
预测出总能量,电子动能,电子在随机电场中的势能,交换能,关联能共5种能量 E。图(b)说图a你的任务太简单,你还要先用外部电场算出自洽的电子密度,再计算这些量。我可以直接通过外部电场,推算出这5种能量,而跳过计算自洽电子密度的步骤。图(c)说,你们两个都太弱,看我的,我可以直接从外部随机电场,预测自洽的电子密度。知道了电子密度,那还不什么都知道了!
方法
通过 Kohn-Sham 方法,对两种外部势能函数 -- 简单谐振子势 SHO 和 随机势 RND,计算自洽的电子密度以及5种能量数值。在 Kohn-Sham 的密度泛函方法里,通过变分最小化系统总能量,
其中
![]()
是非相互作用电子的动能泛函,
![]()
是电子与外部势相互作用势能,
![]()
是描述电子电子库伦相互作用的静电能,将每个电子置于其他所有电子形成的平均场中计算。
![]()
就是前一小节试图解释清楚的交换关联能。在最小化这个泛函的过程中,r 处电子之外的所有其他电子形成的平均场势为,
r 处电子感受到的交换关联势近似为,
r 处电子感受到的外电场(比如原子核电场)为
![]()
。
可以构造近似的独立电子薛定谔方程,
为了自洽求解此薛定谔方程,需要先乱猜一个初始的电子密度分布
![]()
,这就像深度学习里面,随机初始化权重。给定
![]()
,求解此方程,可以得到每个电子的波函数
![]()
,知道了电子波函数,又能通过方程
得到新的电子密度。重复以上过程,直到第 t 次与第 t+1 次迭代的能量差小于一个预设的小值,则可得到系统的波函数,电子密度以及5种能量。
在 256 x 256 的两维格子上,按照文章【参考文献11】的方法产生二维的谐振子势或随机势,将 1, 2, 3 或 10 个电子放置在此两维空间,并进行三个密度泛函计算。之所以是三个,是因为交换关联能太过神秘,有很多种不同的近似构造方法,构造方法不同,结果好坏也不一样。作者对交换关联能使用了 局域密度近似 LDA 方法,PBE方法,以及广义的梯度近似方法 MGGA。【参考文献 3】中有来自知乎的对各种近似方法的介绍。
作者使用 Octopus 代码进行密度泛函计算。产生了 90000 个训练数据,10000 个测试数据。数据中包含外部势 (SHO 或者 RND),数据格式为256x256大小图片,电子个数(1,2,3或10),数据格式为浮点数,以及交换关联能(LDA,PBE 或 MGGA),这三组数据一般用作DFT 或神经网络的输入。密度泛函计算得到的自洽电子密度,5种能量数值,一般作为神经网络输出。唯一例外是图(a)所示,自洽电子密度也被用作输入,预测5种能量。
文章使用了两种类型的深度神经网络。一种命名为 EDNN,是一种卷积神经网络架构。输入是 256 x 256 大小的图片,输出是5种能量数值。文章没有为此结构配图,不过通过文字描述知道,其结构与之前一篇文章架构一致,只是之前一篇文章只预测总能量。截图如下,因为之前一篇文章只预测总能量,所以神经网络的最上层只有一个输出神经元。这篇文章使用的是下图中右边这个 Network2 的架构,输入层之后,紧接两个 64 通道,卷积核为大小为 3x3 的2维卷积层。红色的卷积层使用 Pooling,使得输入输出从256x256减小到128x128,再减小到64x64, 后面接 6 层16通道的4x4卷积,不使用 Pooling, 再接红色卷积,将输出的高宽减小为32x32, 再加 4 层 32 通道的 3x3 卷积,最后接1024个神经元的全连接层,以及一个神经元的输出层。网络架构看起来比较奇怪,可能效果不如 Residual Net。考虑到学术界大家一般都随便搭网络,只要简单的架构能完成目标,就无可厚非。
通过电子密度图片或外电场图片,预测5种能量数值。对应图1中的(a)和(b) 任务。
第二种神经网络架构被起名 DCIGN (Deep Convolutional Inverse Graphics Network)。这是一种基于 AutoEncoder 的网络架构。这个架构被用来完成任务图1中的任务(c),即通过外部电场,预测电子密度分布。输入输出都是 256 x 256 大小的图片。如下所示,这是一个变分自编码机。对于图像到图像的翻译任务,除了这个结构,GAN,pix2pix,UNET 都可以被用来通过外部电场预测电子密度分布。同样,网络架构不需要太神奇,如上几个架构中任选一种,效果都不会差。
计算结果
5 种能量的回归任务
使用 Charge Density (2D-CD)图片和外部电场 Potential (2D-POT) 图片,预测的5种能量结果。从数值看,误差一般在 1%-10%。
外电场到电子密度的图像翻译任务
第一排是外电场。第二排是真实电子密度(来自DFT计算结果)。第三排是卷积神经网络预测结果。第四排是预测与真值之差。
总结:
密度泛函是非常重要的解量子多体系统的工具。其交换关联能的定义有很大的任意性。选定交换关联能,可以使用深度卷积神经网络,或自编码机,对任意给定的外部势,计算自洽的电子密度,及各种其他可观测量的期望值。如果能使用神经网络,从实验数据确定交换关联能,将会是神级工作。
参考文献
- Inhomogeneous Electron Gas, 1964, by Hohenberg and Kohn
- Self-Consistent Equations Including Exchange and Correlation Effects, 1965, by Kohn and Sham.
- 知乎众多关于密度泛函的解释
- 泛函导数,wiki
- Deep Learning and Density Functional Theory, 2018
- 原子核物理中的协变密度泛函理论
- Status of the Density Functional Theory in nuclei
- Density Functional Theory
- Density functional theory for beginners
- CLUSTERING IN STABLE AND EXOTIC LIGHT NUCLEI
- Deep learning and the schrdinger equation