机器学习与科学应用
应用数学新时代的曙光
鄂维南
Originally published in: Notice of the American Mathematical Society, April, 2021.
原文题目:The Dawning of a New Era in Applied Mathematics
翻译人员:张众望,拓娉,张璐璐,罗涛,张耀宇,黄桢,张林峰, 许志钦
转载联系:xuzhiqin@sjtu.edu.cn
1. 开普勒范式和牛顿范式
自牛顿以来,科学研究基本上是按照开普勒和牛顿这两种不同的范式展开的。开普勒范式是一种数据驱动的研究方式,通过对数据的分析寻找科学规律并解决实际问题。其经典案例是行星运动的开普勒定律。生物信息学为开普勒范式在现代的成功提供了一个令人信服的例证。牛顿范式是一种基于第一性原理的研究方式,其目标是发现物理世界的基本原理。它的最佳案例来自牛顿、麦克斯韦、玻尔兹曼、爱因斯坦、海森堡和薛定谔等人的理论物理工作。时至今日,牛顿范式仍是许多顶级才智的主要用武之地。
随着统计方法和机器学习的发展,数据驱动的研究方法已经成为一种非常强大的工具。它能有效地帮助我们发现规律,但对于找到规律背后的原因却鲜有成效。
基于第一性原理的研究方法旨在从最基本的层面理解事物。对第一性原理的追求很大程度上驱动了物理学的发展。1929年,随着量子力学的建立,这条道路出现了一个重大转折点:正如狄拉克[2]所宣称的那样,有了量子力学,除一些极端尺度下的情形以外(如核物理),我们已经掌握了大多数工程和自然科学所需要的第一性原理。
然而,也正如狄拉克所指出的那样,描述量子力学基本原理的数学问题异常复杂。困难之一在于它是一个多体问题:每加上一个电子,问题的维数便增加了三。事实上,第一性原理方法经常面临的困境是:尽管它很深刻,但它不太有用。因此,在实践中,我们常常不得不放弃严格优雅的理论,而采取经验的、非系统的近似方法。我们为此付出的代价不仅仅是丢失了严格和优雅,还有结果的可靠性和普适性。
讨论这两种范式的原因是因为应用数学正是沿着类似的路线发展起来的。由于物理学的基本原理通常是用微分方程来表述的,微分方程的分析和数值算法自然在应用数学中占据了中心地位,特别是在20世纪50到80年代期间。其目标有三重:解决实际问题,理解其背后的数学原理,为实际问题提供物理直觉。流体力学是一个非常典型的成功案例。不仅流体力学已成为偏微分方程研究的主要动力,计算也已经成为流体力学研究的一个基本工具。这个事实也证明了数值方法的成功。直到今天,对偏微分方程和数值方法的研究仍然是应用数学的一个中心课题。
我在加州大学洛杉矶分校读研究生时,我们的老师自豪地告诉我们,我们属于“柯朗风格的应用数学”阵营。这个词是为了与“英式风格的应用数学”相对应而创造出来的。两者都专注于流体力学。英式风格崇尚物理洞察力和渐近分析。领袖人物如泰勒、巴彻勒、林家翘、莱特希尔等不仅是伟大的应用数学家,也是流体力学的领军人物。众所周知,他们一般不重视数值计算和严格的分析。柯朗风格则推崇数值计算和严格的数学理论(他们被另一阵营戏称为“证明定理的人”)。它的理念是只要基本的偏微分方程和数值算法是可靠的,我们就可以通过计算学到很多东西。毕竟,物理过程是非常复杂的;没有计算,我们不可能走得太远。他们的一些领袖,如冯诺依曼、柯朗、弗里德里希和拉克斯,不仅是伟大的应用数学家,也是伟大的纯数学家。这两个学派之间的争执被认为是当时应用数学的主要矛盾。这也证实了那个时期流体力学在应用数学中所占的统治地位。
在数据方面,正统的研究团体是在统计学界。然而不知什么原因,直到不久前,统计学一直是独立于应用数学发展的。事实上,它也基本独立于数学。数学系或应用数学研究所很少有统计学方面的团队。直到最近几年才有人呼吁改变这个现象。
这并不意味着应用数学界对数据驱动的方法不感兴趣。相反,自20世纪80年代后期以来,随着对小波和压缩感知的研究,信号和图像处理在应用数学中占据了中心地位。事实上,过去三十年,这种应用数学版本的数据驱动方法一直是应用数学中最高产的领域之一。
也不是说流体力学是经典应用数学唯一成功的例子。事实上,有人会说固体力学同样成功:毕竟应用数学最重要的算法之一——有限元方法就是从固体力学中诞生的。另一个成功的例子是数值线性代数:人们只需看看Matlab的流行程度,就可以体会到它的广泛影响。这样的例子不胜枚举。
2. “ 柯朗学派”的危机
不幸的是,对于我们这一代“柯朗学派”的应用数学家来说,流体力学的统治地位和成功带来的更多是挑战而非机遇。偏微分方程和流体力学的奠基性工作已被前辈们完成。我们面临的要么是解决遗留问题,如湍流,要么是开辟新的领域。事实证明,这两条道路都很艰难,更不要说重现应用数学在流体力学中的辉煌。
事实上,继流体力学之后,柯朗风格的应用数学已经扩展到许多其他科学与工程学科,如材料科学、化学、生物学、神经科学、地球科学和金融工程等,并取得了巨大成功。但总的来说,应用数学在这些领域的成功程度无法比拟我们在流体力学中所见到的。虽然我们的工作是受欢迎的,但这种贡献往往是增量性的,而不是变革性的。因此,科学家们为了解决他们所面临的核心问题,经常不得不采取既不可靠又很繁琐的近似方法。这种情况在量子力学、分子动力学、粗粒化分子动力学、化学反应、复杂流体模型、塑性力学模型、蛋白质结构与动力学、湍流模型、控制问题、动态规划等许多领域都可以看到。
对于上述的大多数(即便不是全部)问题而言,其核心困难在于它们本质上是高维问题,而维数灾难是一个核心困难。
对其中的许多问题,高维是由问题的多尺度特性所导致的结果。二十多年前,多尺度、多物理建模的想法曾经给我们带来了一线希望:通过将小尺度下的无关紧要的自由度整合起来,人们应当能够直接使用更可靠的微观尺度模型,为我们感兴趣的宏观尺度过程提出更为有效的算法。尽管很有潜力,但由于以下原因,到目前为止,多尺度建模并没有取得我们所期望的成功:
1、微观尺度模型本身往往不那么可靠。例如,在研究裂纹扩展时,我们通常采用分子动力学作为微观尺度模型。但这些模型对于涉及化学键断裂过程的准确性是令人怀疑的。
2、尽管多尺度方法能够大幅度减少所需微观模拟的规模,但它仍然超出了我们目前的能力。
3. 机器学习挽救了我们
上述困难的核心是我们处理多变量函数的能力有限,而这正是机器学习的用武之地。有了逼近多变量函数的能力后,以前被认为是不可能的事情现在正在变得高度可行。
机器学习出现之前,一个经常处理多变量函数的领域是数值积分。对于统计物理学家来说,计算数百万个变量的函数的积分是一件很平常的事情。我们对这件事情已经太习惯了而忘记了这事实上是多么了不起。它依靠的是多年来发展起来的蒙特卡罗算法和方差缩减技术。相比于基于网格的算法(如辛普森法则),蒙特卡罗算法的收敛速度与维数无关。
逼近高维函数要困难得多。这正是机器学习的任务之一。它的成功的确来之不易。虽然很久以前人们就提出了神经网络模型,但直到最近,人们才意识到它们在逼近多变量函数方面的潜力。然而,在很短的时间内,我们就已经看到在机器学习的帮助下,几个长期困惑我们的问题有了显著的进展。不久的将来有望出现更多类似的结果。
机器学习融入到应用数学将以根本的方式改变这两门学科。下面我们以一些具体的例子来说明它对科学计算、建模、机器学习和纯数学可能产生的影响。
4. 高维控制论与高维偏微分方程
深度学习在科学计算中最早的应用之一是针对高维控制问题的算法[5]。值得提一下的是,“维数灾难”一词最早是由贝尔曼在动态规划的背景下创造出来的[1]。事实上,贝尔曼方程的维数与控制问题的状态空间维数是相同的:比方说控制偏微分方程的贝尔曼方程是无限维的。这严重限制了“基于第一性原理”的控制理论的应用,从而许多实际控制问题不得不用经验方法来解决,正如处理量子多体问题所采用的方式一样。
在闭环控制框架下,最优策略函数是状态的函数。如果用神经网络对这一策略函数进行参数化,那么随机控制与深度学习之间便有了很明显的相似性:控制问题的目标函数是损失函数;控制问题的动力系统扮演着深度残差网络的角色;动力系统中的噪声起着训练数据的作用,这使得我们可以同样使用随机梯度下降法进行训练。通过这种基于深度学习的算法,人们可以不费力地处理数百维甚至更高维的随机控制问题。这类算法也已经被推广到确定性控制问题[7]和一般非线性抛物型偏微分方程。
这些算法为处理真实世界的控制问题和高维偏微分方程打开了大门。这是一个令人兴奋的新契机,它应该会影响(并且在某种程度上已经影响到了)经济学,金融学,运筹学以及许多其他学科的发展。
5. 机器学习辅助建模
物理学中的基本原理不仅广泛适用,而且简洁优雅。薛定谔方程就是一个很好的例子。不幸的是,正如前面所指出的那样,使用这些模型来解决实际问题是一项极其困难的任务。因此,寻求简化模型一直是物理学乃至所有科学领域的一个永恒的主题。然而,正如我们在湍流模型中所经历的那样,如果不采取经验近似,我们通常很难提出这样的简化模型。
机器学习即将大大提高我们开发这种物理模型的能力。这其实已经以三种不同的方式发生了。第一,它提供了可以帮助我们把多尺度建模的梦想变为现实的工具。这个工具正是以前缺乏的。第二,它提供了直接从数据开发模型的框架。第三,顺着数据同化的思路,它将提供一个整合物理模型与观察数据的非常强大的工具。
然而,拟合数据是一回事,构建可解释且真正可靠的物理模型则是另外一回事。让我们首先讨论可解释性的问题。众所周知,机器学习模型有着“黑箱子”的名声,这为使用机器学习来帮助开发物理模型带来了心理障碍。为克服这一障碍,首先我们需要注意到可解释性并不是绝对的。以空气动力学中的欧拉方程为例。这些方程本身具有很清晰的解释,因为它们仅代表质量,动量和能量的守恒。但是,能否解释状态方程的细节则是另外一回事。事实上,复杂气体的状态方程可能是由一些实验数据经样条插值得到的,它以一个子程序的形式呈现。我们并不真正关心这些样条函数的系数是否可解释。相同的原则应当也适用于基于机器学习的模型。我们的目标应该是:这些模型的基本出发点和基本结构是可解释的,这些模型中代表本构关系的一些函数的具体形式未必都得可解释。
现在来谈谈可靠性问题。理想情况下,我们希望基于机器学习的模型和普通物理模型(如纳维-斯托克斯方程)一样可靠。要做到这一点,有两点至关重要。第一点是基于机器学习的模型必须满足所有物理约束,例如来自对称性和守恒律的约束。第二点是,我们用于训练模型的数据必须能充分代表实际中遇到的所有物理状态。由于对数据进行标记几乎总是非常昂贵的,因此选择一个既尽可能地小又具有充分代表性的优质数据集是此类模型开发过程中的一个非常重要的组成部分。我们将在下一节中对此做更多阐述。
这些想法已经被成功地应用到许多问题,包括分子动力学和稀薄气体动力学[4]。以分子动力学为例,通过将机器学习与高性能计算相结合,我们能够以从头计算(ab initio)的精度来模拟数亿个原子的系统,这相比此前有五个数量级的提升(请参阅[4])。许多科学计算问题都有类似的提升空间。
这些新的发展已经相当令人兴奋。但是机器学习辅助建模冲击更大的将是生物学和经济学等领域,因为在这些领域,基于第一性原理的建模极为困难。目前在这个方向已经有了一些令人振奋的进展。
6. 机器学习的新前沿
机器学习与应用数学的融合也为机器学习带来了一些新的机遇。在这里我们讨论几个例子。
同步(concurrent)机器学习。对于大多数传统的机器学习问题,训练数据要么是预先生成的,要么是通过被动观察得到的。而当我们把机器学习应用到科学计算或计算科学中的问题时,情况通常并非如此。这时候,训练数据通常是动态生成的,生成数据和机器学习建模往往是一个交互的过程。在多尺度建模中,根据多尺度模型之间的耦合是通过预处理实现的还是通过动态耦合实现的,人们把不同的多尺度方法分为顺序(sequential)多尺度建模和同步(concurrent)多尺度建模。与之类比,我们将生成数据和训练过程动态耦合的机器学习称为同步机器学习。正如之前注意到的,生成一个既小又有代表性的数据集是同步机器学习中的关键问题。
为达到这个目的,我们需要一种高效的方法来探索状态空间和一种标准来确定是否应该标记碰到的新状态。文献[4]中提出的ELT算法就是一个例子。
“适定”的机器学习模型。基于神经网络的机器学习既表现出惊人的威力同时也相当脆弱——其性能对模型中的超参数和训练算法非常敏感。调参仍然在很大程度上是一门艺术,虽然这种情况正在逐步改善。
出现这种情况的部分原因是机器学习的通常做法是在考虑清楚问题的表示形式之前就已经构建了模型和算法。这是一种工程化的套路。试想一下,如果我们在未构建微分方程模型的情况下就对物理过程进行模拟,其结果会是什么样的。事实上,我们从柯朗风格的应用数学中学到的最重要的一课就是在设计算法之前,我们应该首先构建微分方程模型并确保它是“适定”的。
这就自然引出如下问题:什么才是“适定”的机器学习模型?我们的期望是,如果从好的连续模型开始,通过离散化以获得实用的模型和算法,则算法的性能对于超参数的选择将更加鲁棒。沿着这条思路,文献[3]已经做了一些初步的尝试。作为一个副产品,[3]中的工作告诉我们神经网络模型其实是非常自然的,因为通过最简单的连续模型和对其离散化得到的都是这样或那样的神经网络模型。当然,这种思路也的确能够产生新的模型和算法。更重要的是,它鼓励我们去寻找第一性原理,并允许我们跳出神经网络模型的框框来考虑机器学习。
在图像处理中有一个类似的思路。比如去噪。去噪的基本方法是将精心设计的滤波器直接应用于图像,然后看看效果如何。这种方法已经非常有效,特别是基于小波的滤波器。另一种方法是首先提出去噪的数学模型---它们通常是连续变分问题,然后离散化并用优化算法来求解离散模型。著名的Mumford-Shah模型和Rudin-Osher-Fatemi模型就是此类数学模型的例子。有人可能会质疑这些数学模型本身的准确性。但是从一个明确的数学模型出发的做法显然具有其优势。它不仅有助于将图像处理变成有趣的偏微分方程问题,同时也激发人们去思考图像处理背后的基本原理。
我们希望这种新的数学观点和表示形式不仅有助于促进当前机器学习的成功,而且也能促进将其成功扩展到其他领域。机器学习触及的是函数逼近这一数学中最基本的问题。关于高维函数逼近的新的有效方法必然会产生重大且广泛的影响。
7. 高维分析
不仅仅是应用领域会受到影响,基础数学也会受到影响,特别是分析。
机器学习带来了许多新的高维分析问题:从逼近函数到逼近概率分布、动力系统、以及求解偏微分方程和贝尔曼方程。这些问题的研究将不可避免地催生出一个新的分支:高维分析。
一个已经受到重视的领域是高维积分。蒙特卡罗方法的分析,特别是马尔可夫链蒙特卡罗方法,已经是概率论和数学物理中的一个非常活跃的领域。
积分是分析中最基本的问题。人们可以问更多关于函数、概率分布、动力系统、变分法和偏微分方程等更为复杂的分析问题。例如,怎样描述这些对象的复杂度?从抽象的层面来看,复杂度应该被定义为用简单的基本对象来逼近给定对象的难度。例如对于函数,这里的基本对象可以是多项式、分片多项式或神经网络。对于概率分布,基本对象可以是高斯分布的混合。
以函数的复杂度为例。经典分析中它是通过光滑度来衡量的,即这个函数可以被微分多少次。许多函数空间是沿着这个思路定义的,例如C k 空间、Sobolev空间和Besov空间。在低维情形,这是很有道理的。的确,我们可以证明,当这些空间中的函数被一些基本函数类(如分片多项式或三角函数)来逼近时,其收敛速度跟目标函数的光滑度密切相关。
这种类型的结果有维数灾难。而且越来越清楚的是,基于光滑度的概念并不是衡量高维函数复杂度的正确方法。正确的方法应该是看一个高维函数是否能被一个特定的像神经网络这样的模型来有效地逼近。从这个角度出发,人们得到再生核希尔伯特空间(RKHS)、Barron空间、多层空间和流诱导空间。它们中的每一个都与一类特定的机器学习模型有着天然的联系。
那么高维偏微分方程呢?一个自然的问题是,我们能否针对上面提到的函数空间和我们感兴趣的偏微分方程来发展一套新的正则性理论。如果我们可以,这意味着人们应该能够使用相应的机器学习模型来有效地逼近这些偏微分方程的解。这个问题对于贝尔曼方程尤为重要。
8. 应用数学成为一门成熟的学科
应用数学是否可以像纯数学一样,成为一门有少数几个主要部分组成的统一的学科?我们可以有一个统一的课程体系来培养应用数学家吗?这些问题长期以来一直难以解决。造成这种情况的原因很简单:应用数学本身就不够成熟。一方面,应用数学确实非常多样化,它几乎涉及科学和工程中的每一个学科。寻求一个统一课程体系无疑是一项艰巨的任务。另一方面,像机器学习这样的核心组成部分并没有到位,所以应用数学本身并不完整。试想一下,如果没有代数,纯数学将是什么样子?
现在情况已经改变。随着机器学习的出现,应用数学的所有主要组成部分现在都已就位。这意味着应用数学终于成为一门成熟的学科。尽管新的方向将会继续出现,但是有理由相信基础的部分会基本保持不变。这些基础是:(基于第一性原理的)建模,学习和算法。
应用数学的主要组成部分。代数,分析,几何和拓扑构成了纯数学的主要组成部分。物理学的主要组成部分是经典力学,统计力学,电磁学和量子力学。那应用数学的主要组成部分是什么?以下是一个建议。这并不是对这个问题的最终结论,而是进一步讨论的起点。
应用数学有三个主要组成部分。
1. 基于第一性原理的建模,其中包括(物理)模型本身以及针对这些模型的分析工具。简而言之,前者与物理学有关,后者与微分方程有关。
关于物理模型,我们需要了解物理场景(例如应该用经典理论还是量子理论,惯性主导还是过阻尼),变分原理,守恒律等。
这些第一性原理是用变分问题或微分方程来表述的。因此,我们需要分析工具来处理这些数学问题。渐近方法可以快速抓住问题的本质,并帮助我们建立必需的洞察力。数学定理不但可以帮助我们理解背后的物理问题,还有助于把事情建立在坚实的基础上。
2. 数据分析方法。最重要的部分是机器学习,但也包括统计和数据处理,如图像处理、信号处理。
3. 算法。包括针对第一性原理的算法和针对数据的算法。幸运的是,这两个领域的算法有很多共同点。一个例子是优化算法。优化算法不仅在机器学习领域起着至关重要的作用,许多基于第一性原理的模型被表述为变分问题,它们也需要优化算法。。
课程和教育。大多数(如果不是全部)一流大学都有相当成熟的纯数学本科和研究生课程,但很少有成熟的应用数学课程。更糟糕的是,有些时候应用数学课程是作为一套技巧来讲授的,而不是一门统一的学科。一个例子是“数学建模”课程。尽管这应该是一门应用数学的入门课程,但它通常讲授的只是一些例子,而缺乏整体观。缺乏成熟的应用数学本科课程体系是应用数学发展的一个最重要的障碍,因为它阻碍了我们吸引年轻人才。
在应用数学的主要组成部分变得明确之后,我们现在可以为应用数学设计统一的课程。该课程以上面讨论的三个主要组成部分为核心。我们将逐个简要讨论。
建模包括两个部分:模型的物理原理和分析这些模型的数学工具。前者教给数学家基础物理知识。后者是应用分析,包括常微分方程和偏微分方程,变分法,概率论,渐近分析和随机分析。两者都可以被一个一年的课程所涵盖。
学习包括机器学习,数据处理和统计。现在已经有一些适合应用数学家的数据处理和统计课程。机器学习的情况有所不同。目前它通常是以适合计算机科学家的方式讲授的。我们需要一种教数学家机器学习的方法,就像我们需要一种教数学家物理的办法一样。但从数学观点看机器学习还不是一个成熟的学科。不过这种情况正在迅速改善。相信不久的将来就会出现一个从数学的角度讲授机器学习的课程,并且它可以作为一学期的课程来讲授。
算法包括两部分:连续对象的算法和离散对象的算法。前者由数学系提供的数值分析课程所涵盖。后者由通常在计算机科学系讲授的算法/离散数学课程所涵盖。机器学习把这两个部分融合在一起。因此我们应该以一种更统一的方式来讲授算法课。
开设这些课程将花费大量的精力,但是为此付出努力是值得的。相信我们也有能力实现这一目标。
9. 应用数学成为交叉科学的基础
一旦这样的课程体系落实到位,应用数学将成为交叉科学的基础。毕竟,建模,学习和算法也是理论交叉科学的基本组成部分。上文中描述的应用数学课程体系将有助于系统化地培养交叉科学的学生。如果这成为现实,它将是交叉科学历史上的一个转折点。
所有这一切都需要时间。我们需要从基础开始,对年轻学生进行培养。但是,在我们有机会培养他们之前,我们首先必须能够吸引他们到应用数学中来。在普林斯顿大学二十多年的教学生涯中,我印象最深刻的一件事就是数论在吸引人才方面是多么的成功。我现在相信,应用数学也应该能够做到这一点。应用数学具有吸引年轻学生的所有主要特征:问题的简单性和优雅性(例如机器学习)以及这些问题的挑战性(例如湍流)。除此之外它还有一个更重要的吸引点:它是通往最令人兴奋的科学和技术创新的主要途径之一。在研究生层面我们已经看到这种变化在发生。
科学史上有两个时期对应用数学的影响最大。第一个是牛顿时代。数学作为科学的语言这一重要地位就是在牛顿时代奠定的。第二个是冯·诺依曼时代。它帮助人们认识到数值算法应该成为数学与应用之间的主要桥梁。现在第三个时期即将出现。这是因为应用数学的所有主要组成部分都已到位。它将推动应用数学不仅成为交叉科学的基础,而且也是技术革新的基础。这是一个令人振奋的时代。让我们大家共同努力,来实现这一伟大的目标!
致谢:
我非常感谢Ensquist教授和Osher教授对我早期的初稿提出的建议,以及他们多年来提供的灵感,这些灵感极大地影响了我的职业生涯和我对应用数学的看法。我还要感谢Reza Malek-Madani教授为发表这篇观点论文所付出的努力。
References
[1] Richard Bellman, Dynamic programming, Princeton University Press, Princeton, N. J., 1957. MR0090477
[2] Paul A. Dirac, Quantum mechanics of many-electron systems, Proc. Roy. Soc. London Ser. A 123 (1929), no. 792.
[3] Weinan E, Chao Ma, and Lei Wu, Machine learning from a continuous viewpoint, I, Sci. China Math. 63 (2020), no. 11, 2233–2266, DOI 10.1007/s11425-020-1773-8. MR4170870
[4] Weinan E, Jiequn Han, and Linfeng Zhang, Machine learning assisted modeling, to appear in Physics Today.
[5] Jiequn Han and Weinan E, Deep learning approximation of stochastic control problems, NIPS Workshop on Deep Reinforcement Learning, 2016. https://arxiv.org/pdf/1611.07422.pdf
[6] Yann LeCun, Yoshua Bengio, and Geoffrey Hinton, Deep learning, Nature 521 (2015), 436–444.
[7] Tenavi Nakamura-Zimmerer, Qi Gong, and Wei Kang, Adaptive Deep learning for high dimensional Hamilton-JacobiBellman equations, 2019. https://arxiv.org/pdf/1907.05317.pdf
本翻译文章也发布在公众号 '机器学习与科学应用'。