薛定谔方程的巧妙求解,基于FermiNet高精度求解波函数

作者:于璠

背景

薛定谔方程是量子力学的一个基本方程,通过求解该方程,可以解决大部分的物理、化学问题。但问题在于,薛定谔方程中基函数的数量随分子体系维度的增加而指数上升,如甲烷分子,原子数为5,其维度为9=3*5 – 6,基函数数量为10的9次方。

既然薛定谔方程无法精确求解,那么可以通过高精度的近似解来预测分子的化学性质。Configuration Interaction、Coupled-Cluster方法具有较高精度,但计算成本呈指数增加;Density functional theory(DFT)方法虽然计算成本比较低,但是精度有限。而深度学习由于其具有强大的非线性拟合能力,DeepMind提出了FermiNet,以实现波函数的近似求解。

电子在分子中不仅与原子核、其它电子存在相互作用力,而且还需要遵循泡利不相容原理:两个费米子不能处于相同的量子态,费米子交换后的波函数具有反对称性,即两个费米子交换状态,波函数要反号。针对波函数反对称性,行列式天然就符合,因此使用Slater行列式来表示波函数在量子化学中应用广泛。

**1、**网络架构

图片图1 FermiNet网络整体架构

图片图2 网络层间信息流传递

FermiNet整体网络架构如图1,图2是网络层的部分放大图。网络中每个电子不仅有单独的信息流,而且信息在网络层传递时,每个电子会融合其它电子的信息以及电子间相互作用关系,并且将原始的单电子轨道替换为满足置换等变性的多电子波函数(式1),构成了最终的波函数(式2),相比于传统Slater行列式,具有更强的表达能力。

图片图片

在网络开始训练前,会先进行预训练,从而改善训练过程的稳定性以及缩减训练时间。预训练的loss以STO-3G基组Hartree-Fock方程的解作为参考,loss函数如式3所示。

图片

对于网络训练,则是基于variational Monte Carlo,以能量期望值为loss函数,如公式4所示。具体的,能量可通过式5表示,能量的梯度计算如式6所示。此外,为了高效地优化网络参数,文中使用了近似自然梯度法的KFAC二阶优化器。

图片图片图片

**2、**实验结果

FermiNet精度超越传统VMC方法(如表1),并且精度优于有限基组下的CCSD(T)方法,因为FermiNet不使用基组,不存在基组外推的问题。

图片表1基态能量值(加粗部分是FermiNet、VMC和DMC中最接近精确值的项)

虽然CCSD(T)对于平衡几何结构非常准确,但对于低激发态、拉伸、扭曲或以其它方式脱离平衡几何结构的分子具有局限性,不如FermiNet,结果如图3。

图片图3 分子H4能量曲线

对于氮分子的氮氮三键解离,FermiNet优于unrestricted CCSD(T)方法,如图4。

图片图4 氮氮三键解离的能量曲线

**3、**总结

FermiNet通过在网络层中进行单电子和多电子之间的信息融合,并且将单电子轨道替换为满足置换等变性的多电子波函数,可以实现较高精度的波函数求解,不仅精度上超越传统的VMC方法,而且对于非平衡几何结构、氮氮三键解离等具有挑战的体系结构上,优于CCSD(T)方法。FermiNet取得的成绩将促进研究学者们在量子化学领域提出新的或者更优的网络架构,从而实现更高效、更准确的波函数求解。

参考文献

[1] Pfau D, Spencer J S, Matthews A G D G, et al. Ab initio solution of the many-electron Schrödinger equation with deep neural networks[J]. Physical Review Research, 2020, 2(3): 033429.

DOI: https://journals.aps.org/prresearch/abstract/10.1103/PhysRevResearch.2.033429

90后程序员开发视频搬运软件、不到一年获利超 700 万,结局很刑! 谷歌证实裁员,涉及 Flutter、Dart 和 Python 团队 中国码农的“35岁魔咒” Xshell 8 开启 Beta 公测:支持 RDP 协议、可远程连接 Windows 10/11 ​MySQL 的第一个长期支持版 8.4 GA 开源日报 | 微软挤兑Chrome;阳痿中年的福报玩具;神秘AI能力太强被疑GPT-4.5;通义千问3个月开源8模型 Arc Browser for Windows 1.0 正式 GA Windows 10 市场份额达 70%,Windows 11 持续下滑 GitHub 发布 AI 原生开发工具 GitHub Copilot Workspace JAVA 下唯一一款搞定 OLTP+OLAP 的强类型查询这就是最好用的 ORM 相见恨晚
{{o.name}}
{{m.name}}

猜你喜欢

转载自my.oschina.net/u/4736317/blog/11082900