有“机器学习教父”之称的CMU教授Tom Mitchell曾给出过机器学习的经典定义:假设用P来评估计算机程序在某任务类T上的性能,若一个程序通过利用经验E在T中任务上获得了性能改善,则我们说关于T和P,该程序对E进行了学习。这种学习的特点是,它在T上的被P所衡量的性能,会随着经验E的增加而提高。比如说,用机器学习来判定垃圾邮件,那么提供一堆邮件,其中一些是垃圾邮件,这就是经验E,邮件系统做到自动判定某邮件为垃圾邮件是任务T,而判定的正确率是性能P。
近年来,基于量子化学和机器学习结合的新方法和新应用数量激增。最近,厦门大学Pavlo O. Dral副教授在J. Phys. Chem. Lett.上发表了题为Quantum Chemistry in the Age of Machine Learning的Perspective(J. Phys. Chem. Lett. 2020, 11, 2336−2347)。文章对该领域的发展状况进行了归纳与总结,解释了如何用机器学习来提高量子化学方法的准确性和效率,阐明了在量子化学应用中使用机器学习技术的挑战,并展望了这一领域的未来发展趋势。基于这篇论文的内容和笔者自身对该领域的一些理解,在此把这篇文章的主要内容分享给大家,理解不对的地方恳请留言批评指正。
wode
量子化学是应用量子力学来深入了解原子系统的物理化学性质的学科。量子化学的核心问题是如何在有限的计算资源和时间内找到薛定谔方程的解。人们已经发展出了多种量子化学方法来近似求解薛定谔方程。现在,不同的量子化学软件提供了多种量子方法,包括从头算方法、半经验方法、密度泛函理论等等。
由于机器学习算法的发展和硬件资源的改进,近年来,机器学习已经融入了量子化学研究中。在一定的条件(如良好的训练数据和机器学习算法)下,机器学习可以在不损失精度的同时预测所需的量子化学性质,其计算速度可以与分子力学方法相当。在这个过程中并不需要求解每个原子系统的薛定谔方程。
引入机器学习方法对传统量子化学计算精确度和时间的影响
目前在很多研究领域需要大量的量子化学计算,引入机器学习算法加快计算速度有着重要的意义。机器学习已经在分子动力学、metadynamics、MC模拟、计算振动能级等方面得到了应用。此外,在材料的高通量筛选和药物设计方面也有广泛地应用。机器学习正在成为计算化学发展的下一个突破点。
在量子化学中使用最广泛的机器学习类型是监督学习。监督学习是使用一组训练数据,得到与之相匹配的含有参数的函数,这个函数可用来预测新的输入数据所对应的输出。像我们熟知的线性拟合,就是监督学习的例子。现代机器学习能够精确地拟合复杂的高度非线性的函数,并能够做出准确的预测。
拟合好的函数可以应用到诸多领域,而不需要对每个任务都独立编写代码,其往往能体现出超越人类以往所写代码的能力。比如AlphaZero只需要训练几个小时,就可以在一场比赛中击败人类编写的最强象棋程序。在量子化学领域也是如此,机器学习方法只需要对能量或原子电荷进行训练,就可以用相同的程序预测新体系的这些性质,而不需要像传统方法一样对每个体系手动编写代码。
当然,由于量子化学的复杂性和化学空间的广阔,机器学习还远远不能完全取代人类编写的算法。但由于许多课题组的广泛努力,机器学习已经被证明在许多特定的量子化学应用中是有用的。另一个非常活跃的研究领域是创建通用的、可移植的机器学习模型。尽管这是开发机器学习方法的最大挑战之一,但还是取得了显著进展。下面将讨论这两个研究方向。
现在已经有多种机器学习算法被应用在量子化学领域,例如神经网络(NN)、高斯过程(GP)、核岭回归(KRR)、支持向量机(SVM)等等。一般的研究者在机器学习算法的选择上有自己的偏好。现有的主流机器学习方法可以分为参数学习和无参数学习两类。参数学习的代表方法是神经网络,有许多不依赖于训练数据大小,可以手动调整的参数。参数学习可以很容易地训练数以百万计的训练数据点。但实际情况下训练数据是有限的,所以其预测的准确性也受到影响。无参数学习尽管名为无参数,但实际上具有参数,只是这些参数取决于训练数据的大小而不需要手动调整。无参数学习在接近训练数据的区域能达到接近理论参考水平的重现,只是这仅限于训练集较小时,对于较大的训练数据量,则必须使用特殊的近似技术。
机器学习的应用不仅限于预测基态能量和梯度。一个非常有前景的研究方向是使用机器学习来学习激发态能量,因为用量化方法计算激发态比基态要耗时得多。人们曾尝试使用核岭回归和神经网络来计算非绝热激发态动力学。
机器学习在这些传统方法难以计算的领域实现了突破。但这是建立在精确采样的数据集的基础上的。而且,目前机器学习方法的最大问题是在外推的表现上很差。以一个非常简单的|x|0.5函数为例,如下图所示,训练数据落于[0,5]区间内,机器学习算法对该区间内的插值表现很好,但是对该区间外的外推则结果很差。
训练数据的质量是决定机器学习成功与否的关键。
在化学空间中,如何采样得到足够的训练数据,是一项特别具有挑战性的任务。因为机器学习模型只能和参考数据一样精确,所以开发和测试机器学习方法需要大量高质量、精确的数据集。此外数据集必须基本覆盖全空间,否则得到的拟合结果与实际结果可能有非常大的偏差(如上图)。这一点对研究人员选择量化计算方法和选择要计算的原子系统和性质提出了非常大的挑战。
目前已经出现了几种有效方法,其中之一是最远点采样和基于结构的采样,它们只使用输入的特征,不需要任何先验的量子化学计算。另外,还可以通过主动学习、动态学习和自适应学习等方法来估计机器学习预测的不确定性并迭代地改进训练数据。研究还表明,在训练数据中包含势能面扫描的关键点可以极大地提高机器学习的准确性。
获得令人满意的训练结果可能需要很长的时间。在计算时间和工作量方面,机器学习甚至可能比纯量子化学模拟更昂贵,尤其是当使用低水平的量化方法就能得到很好的结果时。然而,机器学习的优势在于,低水平的量子化学方法可能根本无法正确地描述物理化学过程,而即使是在相对较少的高水平量子化学结果作为训练集的机器学习模型,就已经能够正确地反映物理化学性质。
此外,原子系统的物理化学性质通常可以用非常局部的化学环境来表示,这使得机器学习在量子化学计算中的适用范围得到了显著的扩展。Bader在分子中原子的量子理论中进行了深入研究。大量证据表明,量子化学属性可以被分解为各个原子及其周围一定截断半径内的环境的贡献。这不仅适用于化学位移等性质,也适用于原子系统的总能量。因此,通过学习单个原子的能量贡献可以预测更大体系的能量。但这种方法有时候会失效,比如对大的共轭体系,截断范围之外的原子可能依然有较大的影响,长程的静电和色散作用需要仔细考虑。
原子系统中“局域性”的思想在当前得到了成功的利用,其精度与已有的量化计算方法一致。最终目标是建立适用于不同大小和不同元素组成的化合物的机器学习方法,使用与力场方法相当的计算量预测量化级的能量和梯度。
非常大的体系的能量可以通过原子贡献的加和获得
不过,纯机器学习模型的可移植性仍然是一个大问题。如上所述,机器学习可以在特定的应用中提供非常精确的结果,但是,例如当训练的能量是基态能量时,对于预测激发能是没有用的;对中性和闭壳层体系的训练,不能很好地处理带电体系和自由基体系。此外,从机器学习的结果中很难得到更深入的量化信息。这时,低水平的量化方法有一个优势,它们具有可移植性并能提供更多的量化信息,但其精度非常有限。合理的方法是发展杂化的机器学习-量子化学方法(ML-QC),取长补短。
作者介绍了其课题组开发的Δ-机器学习(Δ-ML)方法。在此模型中,机器学习被用于学习高级别和低级别量化方法的差别,然后据此减少低水平量化方法的误差。通过这种方式可以消除大量非物理原因的误差。
一种与Δ-机器学习方法相关但有本质区别的方法是改进低水平量化方法本身,而不是马后炮式地提高它的预测能力。2005年,作者使用基于KRR算法的机器学习方法开发了基于NDDO的半经验方法OM2。类似的工作还有使用神经网络方法改进DFTB参数。
用机器学习改进半经验哈密顿(ML-SQC)比传统的重新参数化有许多优点。传统的重新参数化方法的精度受到底层物理模型的限制,寻找最优参数需要解决一个复杂的优化问题,而且找到的参数可能不适合训练集之外的体系。两种方法的对比如下:
与传统的重新参数化方法相比,用ML-SQC方法改进半经验方法的哈密顿量有许多优点,唯一主要的缺点是通常需要更大的训练集
机器学习还可以用来加速DFT计算,并发展新的DFT方法。比如通过使用神经网络学习交换相关泛函的参数来改进B3LYP方法,或是学习密度泛函并直接在量化计算中使用机器学习的泛函,避免求解Kohn-Sham方程。
在改进现有量化计算的过程中,机器学习体现了强大性和通用性。
除上述应用外,机器学习还被用于开发分子间势、改进半经验的MP2方法对二聚体相互作用能的描述、学习配分函数以获得各种热力学性质、计算模型体系中的相关能、调整自适应基组、预测RPA吸附能、提高DFT计算带隙的精度、通过排除有问题的系统减少高通量筛选中的量子化学计算数量以及加速耦合簇和组态相互作用计算,等等。甚至可以使用机器学习来表示波函数本身,并从中获得其他感兴趣的性质。此外,用机器学习预测波函数可用于加速自洽场迭代。还应该提到的是,机器学习可以直接预测许多物理化学性质,而不需要作为量化方法的替代模型。例如,激子转移时间和效率以及分子的解离时间等性质可以用机器学习直接估计,而不需要进行动力学模拟。同样,机器学习可以用来估计激发光谱。以下图作为小结,说明机器学习在量子化学中的应用。
量子化学中使用机器学习的示意图。a)传统的量子化学计算是生成训练数据的必要条件,采样点对于机器学习模型的良好性能至关重要。b)机器学习可直接预测量子化学性质。c)与改进的半经验方法一样,机器学习可以改进哈密顿量本身。d)机器学习可以预测波函数。
量子化学领域的机器学习技术还有很大的发展空间。除了以上讨论的研究方向外,还有一个特别的主题值得特别关注,那就是使用什么特征作为输入。机器学习需要为特定的应用选择和设计合适的特征,特征工程、转换和选择是特征研究中最重要的任务之一,在很大程度上决定了一个机器学习模型是否成功。对于量子化学中的机器学习,不存在一刀切的答案。在上面讨论的机器学习计算势能的大量研究领域中,可以看到,对于不同的机器学习架构,提出了许多不同的特性。
有一点是肯定的:在可预见的未来,机器学习不会使量子化学过时。相反,机器学习和量子化学之间的相互作用正在推动计算化学家所能做的极限。从文献中的许多例子可以看出,机器学习方法已经足够成熟,可以常规地应用于求解实际的量子化学应用。这样的实际应用是对机器学习局限性的真正检验,应该鼓励研究人员在发现机器学习成功的同时强调其失败之处。在未来,可以由独立的小组对所提议的机器学习技术进行广泛的标定测试,以发现隐藏的偏差。而现在,很明显的是,在理论与计算化学的教育中,机器学习应该像DFT或Hartree–Fock方法一样成为标准内容。最后,我们应该致力于解释机器学习的模型,以获得原子水平上新的物理化学见解。
致谢
感谢zhigang在成文中的建议。