Simulation Intelligence: Towards a New Generation of Scientific Methods https://arxiv.org/abs/2112.03235
An emulator is thus a model of a model: a statistical model of the simulator, which is itself a mechanistic model of the world.
原文较长,节选了一部分
摘要
最初的“七个主题”提出了科学计算领域的基本方法路线图,其中主题是捕捉计算模式和数据移动模式的算法方法。我们提出了模拟智能的九个主题,这是发展和整合必要算法的路线图,这些算法对于科学计算、科学模拟和人工智能的融合至关重要。我们将这种融合称为模拟智能(SI)。我们认为模拟智能的主题是相互关联和相互依赖的,就像操作系统层中的组件一样。利用这个比喻,我们探讨了模拟智能“操作系统”堆栈(SI堆栈)的每一层及其中的主题:
1. 多物理和多尺度建模
2. 代理建模和仿真
3. 基于仿真的推断
4. 因果建模和推断
5. 基于代理的建模
6. 概率编程
7. 可微分编程
8. 开放式优化
9. 机器编程
我们相信,主题之间的协调努力将极大地加速科学发现,从解决合成生物学和气候科学中的逆问题,到指导核能实验和预测社会经济环境中的新兴行为。我们详细阐述了SI堆栈的每一层,介绍了现有方法的最新状态,提出了突出挑战和机遇的示例,并倡导了推进主题及其组合产生的协同效应的具体方法。推进和整合这些技术可以实现一种健壮而高效的假设-仿真-分析型科学方法,我们引入了几个人机协作和自动化科学的用例。
关键词:仿真;人工智能; 机器学习;科学计算;物理注入的机器学习;逆向设计;人机协作;优化; 因果关系;复杂; 开放性;机器编程
引言
模拟已成为跨学科研究人员探索复杂、动态系统在不同条件下行为的不可或缺工具,包括假设或极端条件,以及日益出现在气候[2, 3, 4]、生物学[5, 6]、社会政治[7, 8]等领域的转折点,具有重要后果。然而,在许多情况下,有一些限制限制了模拟器(以及广泛的建模工具)的实用性。首先,尽管硬件的进步使得模拟能够模拟越来越复杂的系统,但计算成本严重限制了几何细节的级别、物理复杂性和模拟器运行的数量。这可能导致简化假设,这些假设通常使结果无法用于假设检验和实际决策制定。此外,模拟器本质上是有偏见的,因为它们只模拟它们被编程来模拟的内容;对于昂贵的模拟器,敏感性和不确定性分析通常是不切实际的;模拟代码由通常是不可微分的低级机制组成,导致难以处理的似然性;模拟器很少能够与现实世界的数据流集成,更不用说在线运行并实时更新数据了。
最近在科学领域的人工智能(AI)和机器学习(ML)方面取得的进展已经朝着AI/ML在科学中有用的几个关键目标迈出了步伐(超越了发现高维数据中的模式)。这些进展使我们能够将先验知识或领域知识导入ML模型,并将从学习模型中获得的知识导出回科学领域;利用ML解决数值上难以处理的模拟和优化问题,以及最大化现实世界数据的效用;生成大量的合成数据;量化和推理模型和数据中的不确定性;以及推断数据中的因果关系。
在AI和模拟科学的交汇处,我们可以预期在几乎所有领域的科学实验和发现中取得重大进展。例如,使用神经网络加速气候科学的模拟软件,或者使用多智能体强化学习和博弈论进行经济政策模拟。然而,这个领域相对较新且分散,需要一个统一的整体视角来推进AI和模拟科学的交汇。
本文探讨了这一视角。我们阐述了在科学中取得重大进展的模拟和AI所需的方法论,以及它们如何必须被富有成果地结合起来。科学计算领域在2004年菲利普·科莱拉向DARPA提出“七个主题”时处于类似的转折点,其中每个主题代表一种捕捉计算模式和数据移动模式的算法方法。在本文的其余部分,我们选择用“主题”替换一个可能不敏感的术语,这是我们建议未来该领域做出的改变。
主题命名法已被证明对于在高抽象级别上推理关于这些方法的行为和需求在广泛的应用中是有用的,同时将这些与具体实现分离开来。更重要的是,它是一种跨学科谈论的可理解的词汇。主题还提供了“反基准”:不与狭窄的性能或代码工件相关联,因此鼓励算法、编程语言、数据结构和硬件的创新。因此,科学计算的主题为科学中的数值方法(最终是并行计算)的研发工作提供了明确的路线图。
在本文中,我们类似地定义了模拟智能的九个主题,这些是互补的算法方法类,代表了推动科学进步的协同模拟和AI技术的基础;模拟智能(SI)描述了一个领域,该领域将科学计算、科学模拟和人工智能相融合,以研究过程和系统的内部现象。每个SI主题都得到了科学计算和人工智能社区的支持,但必须共同追求并整合,以克服科学模拟器的现有瓶颈,克服工程物理的不足,并实现新的科学工作流程。
与旧的科学计算的七个主题不同,我们的模拟智能(SI)主题不一定是独立的。许多主题是相互关联和相互依赖的,就像操作系统层中的组件一样。这些个体模块可以以多种方式组合和相互作用,从中获益。利用这个比喻,我们探讨了“SI堆栈”的每一层的性质,以及每一层中的主题和它们被组合在一起时可用的组合可能性 - 这些层在图1中有所说明。
我们首先描述SI堆栈的核心层,详细介绍每个主题内部的概念、挑战、最新方法、未来方向、伦理考虑以及许多激励性的示例。当我们穿越SI堆栈,遇到众多的模块和科学工作流程时,我们最终将能够阐明这些进展如何使得众多模拟用户和科学努力受益。我们的讨论继续涵盖重要的SI主题,如逆问题求解和人机协作,以及数据工程和加速计算等重要基础设施领域。
通过在每个SI主题中进行研究,以及在通用软件中将它们结合起来以应用于科学和智能的具体应用,最近的减速进展趋势可能会被扭转。本文旨在激励该领域,并为那些希望从事人工智能和模拟以追求新的科学方法和前沿的人提供路线图。
原文较长,节选了一部分
ç√
我们首先讨论 SI 主题中的几个共同主题,即主题解决逆问题的实用性、实施不确定性感知主题方法的优势(和科学必要性)、人机协作的协同作用以及要实现的附加价值以新的方式整合主题。 这些主题中的每一个都可能对基于 SI 的科学方法的发展具有重要意义。然后讨论继续涵盖 SI 在实践中的重要元素,尤其是大规模 SI 的数据工程和高性能计算元素。
图 32:三种类型的断层重建方法作为逆向问题解决(橙色)。通过直接或分析重建,正向变换的数学逆变换用于根据传感器数据计算图像。 在迭代重建中,当前图像估计被迭代更新,使得其正向变换逐渐接近传感器数据。 在深度层析成像重建中,反演不需要依赖任何显式变换模型,而是从代表性大数据中学习。 (原始图片来源:Molly Freimuth(CT 图像);Christopher Hardy(磁共振图像);Dawn Fessett(超声图像)[470])。其他领域(例如细胞和分子生物学)逆向问题解决的例子可以在[471]中找到。
逆问题是从观察或测量中推断隐藏状态或参数的问题之一。如果正向模拟(或数据生成)过程是 𝑥→𝑦 ,我们试图在给定 𝑦 的情况下推断出 𝑥 。在科学环境中,逆问题是根据观察结果计算产生观察结果的因果因素的过程。一个典型的例子是计算图像重建,包括MRI重建、CT断层重建等,如图32所示。大多数重建方法可以分为直接重建、分析重建或迭代重建[470]。基于知识和信息,可以导出正演模型来预测给定潜在目标的数据,无论是模拟模型还是数学/物理模型[471]。通过非线性编程和正则化优化计算正演模型的数学逆来解决重建问题。 最近,当传统的数学反演具有挑战性时,基于深度学习的方法提供了一种更有前途的反演问题解决方法:新的数据驱动机器学习方法可以利用大型数据集来学习反演,而不是完全依赖于精确的物理或数学模型。端到端映射。
图33:在许多领域我们可以实现仿真和人工智能技术带来的高效逆向设计。此示例示意图显示了当前的材料发现范例(此处为有机氧化还原液流电池[472])与计算机中的闭环逆向设计对应物,后者可最大限度地提高效率并最大限度地减少原位资源利用。
除了图像重建、逆散射和计算机断层扫描等经典的逆问题之外,最近的许多努力都致力于新材料和设备的设计,以及通过逆过程发现新的分子、晶体和蛋白质结构。 这可以被描述为逆向设计的问题:根据所需的功能特性发现设计的最佳结构或参数 - 例如,计算逆向设计方法正在寻找优化纳米光子学的许多用例[473,474,475] 、晶体结构[476、477、478、479]和分子生物学[471]。图 33 说明了逆向设计循环如何取代现有的演绎范式,该范式可能昂贵且低效,并产生次优解决方案。 在材料科学等广阔、复杂的空间中,逆向设计可以产生从头分子,预示着 SI 驱动的归纳科学方法。
与传统逆问题不同的逆设计在科学探索中提出了一些独特的挑战。首先,前向运算符不是明确已知的。 在许多情况下,正向算子是通过第一原理计算建模的,包括分子动力学和密度泛函理论(DFT)。这一挑战使得逆向设计难以利用解决逆向问题的最新进展,例如 MRI 重建 [470]、通过具有大型数据集的生成模型植入图像 [480]。其次,搜索空间往往非常大。例如,据估计,类似药物的小分子包含 1023 到 1060 之间的独特情况[481],而固体材料则具有更大的空间。这一挑战导致了使用全局搜索的明显障碍,例如贝叶斯优化[482]、进化策略[483、484、485]或通过马尔可夫链蒙特卡罗(MCMC)进行贝叶斯推理,因为这两种方法对于高阶搜索来说都非常慢。维数逆问题。第三,我们遇到具有一对多映射的多模式解决方案。 换句话说,有多种解决方案可以满足所需的属性。这个问题导致很难通过基于梯度的优化来寻求所有可能的解决方案,这种优化会收敛到单个确定性解决方案,并且很容易陷入局部最小值。 概率推理在近似复杂后验方面也有局限性,这可能导致简单点估计(例如,最大后验(MAP))产生误导性的解决方案[486]。一般来说,逆向设计方法包括贝叶斯和变分方法、深度生成模型、可逆学习和基于代理的优化。
贝叶斯方法和变分方法。从推理的角度来看,解决逆向设计问题可以通过估计以目标属性为条件的参数的完整后验分布来实现。贝叶斯方法,例如近似贝叶斯计算[487],是对条件后验建模的理想选择,但这种想法在高维情况下仍然遇到各种计算挑战。另一种选择是变分方法,例如条件 GAN [488] 和条件 VAE [489],它们通过学习潜在变量和参数变量之间的转换来有效逼近真实后验。 然而,直接应用两种条件生成模型进行逆向设计具有挑战性,因为通常需要大量数据[490]。
深度生成模型。最近,人们在通过深度生成模型解决反演问题方面做出了许多努力[480、491、492、493、486、494、495]。例如,阿西姆等人。 [480]专注于产生由 MAP 公式驱动的点估计,[491]旨在通过变分推理研究完全分布恢复。 [492]的后续研究是研究具有归一化流先验的图像逆问题,这是通过提出一种公式来实现的,该公式将解决方案视为以测量为条件的图像的最大后验估计。对于 MRI 或图像植入,存在强大的基线方法,该方法受益于显式前向算子 [486,480,494]。
基于代理的优化。另一种方法是构建神经网络代理,然后通过梯度下降进行基于代理的优化。这在科学和工程应用中更常见[496、497、498、499、500],特别是用于逆向设计目的。核心挑战是正向模型通常非常耗时,因此更快的代理会导致棘手的搜索。基于代理的优化领域最近的一项研究是神经伴随(NA)方法[501],它从随机初始化开始通过梯度下降直接搜索全局空间,这样需要大量的交互才能收敛,并且其解很容易陷入局部最小值[502]。尽管神经伴随方法通过从多次开始中选择最佳解决方案来提高性能,但计算成本明显更高,特别是对于高维问题[503]。
可逆模型和学习。基于流的模型[368、504、505、506、507、508]可能为通过可逆架构的训练来推断后验提供一个有希望的方向。最近的一些研究利用可逆模型的这种独特属性来解决解决逆问题的几个挑战[509、510、511]。然而,这些现有的逆模型方法在充分探索参数空间方面受到限制[501],导致错过潜在的解决方案,并且由于噪声解决方案和归纳误差而无法精确定位最佳解决方案,特别是在材料设计问题中[512] 。为了应对这一挑战,Zhang 等人。 [513]提出了一种新方法,通过利用深度可逆模型的概率推理和梯度下降的确定性优化来加速逆向设计过程。 给定目标属性,学习的可逆模型提供参数空间上的后验;他们将这些后验样本识别为智能先验初始化,这使我们能够缩小搜索空间。 然后执行梯度下降来校准局部区域内的逆解。同时,对潜在空间进行空间填充采样[514],以更好地探索和捕获所有可能的解决方案。关于基于流的模型的更多讨论将在本节后面的“荣誉提及主题”的背景下进行。
在整个科学领域,我们可以将模拟视为隐式定义分布 𝑝(𝑋,𝑍|𝑦) ,其中 𝑋 指的是观察到的数据, 𝑍 是采用随机值的未观察到的潜在变量在模拟内部, 𝑦 是正演模型的参数。正如我们所建议的,存在许多逆向用例和工作流程,人们希望从观察 𝑋=𝑥 推断 𝑍 或 𝑦 。图 33 中的逆设计循环代表了实际应用中的一类问题。在许多情况下,逆问题的解可能是不适定的[515]:观察到的输出的微小变化会导致估计的巨大变化,这意味着逆问题求解器将具有高方差。 因此,为了满足一般科学应用的需求,我们经常需要不确定性量化,特别是在高保真模拟或实验中给出有限的数据集[516,517,518]。此外,为了充分评估给定测量的可能逆解的多样性,逆求解器应该能够估计参数的完整后验(以观察为条件)。 这使得量化不确定性、揭示多模态分布以及识别简并和不可恢复的参数成为可能——所有这些都与科学和工程的应用高度相关[519]。在科学因果发现的背景下,反问题的挑战也是关键。在[ 445, 471]中,引入了一个连接这些挑战的框架,需要基于算法概率的基础对大量可计算程序进行并行模拟,该框架能够生成生成模型并用作模型的基础 -逆问题的驱动方法。
原文较长,节选了一部分
√
虽然我们定义了九个具体的主题,但它们不一定是独立的 - 许多主题在功能和效用上是协同的,而且一些可能是其他主题的基本构建模块。我们首先描述“模块”主题,如图1所示,然后是底层的“引擎”主题:概率编程和可微分编程。然后,我们描述旨在推动智能机器前沿的主题:开放性和机器编程。
模块
在所谓的SI堆栈中的“引擎”之上(图1),是“模块”,每个模块都可以在概率编程和可微分编程框架中构建,并利用硬件层中的加速计算构建块。我们从与最近讨论的与物理相关的学习主题密切相关的几个主题开始,然后通过SI堆栈,描述模块主题如何以多种协同的方式相互补充。
1. 多物理和多尺度建模
模拟在每个科学和工程领域都是无处不在的,但通常是孤立进行的:沿海侵蚀的气候模拟不会模拟人类驱动的效应,例如城市化和采矿,即使是在一个受限的区域和时间尺度内也是如此。自然系统涉及在不同空间和时间尺度上运作的各种类型的物理现象。为了模拟准确且有用,它们必须支持多个物理学和多个尺度(空间和时间)。对于AI和ML也是如此,它们可以强大地模拟多模态、多保真度的科学数据,但仅依靠数据驱动的关系的机器学习会忽略物理的基本定律,可能导致不适定的问题或非物理解。为了在科学中使ML(和AI驱动的模拟)准确可靠,方法必须整合多尺度、多物理学数据,并揭示解释功能出现的机制。
多物理 复杂的实际问题需要跨越许多物理现象的解决方案,这些物理现象通常只能使用跨越几个工程学科的模拟技术来解决。几乎所有流体动力学中的实际问题都涉及气体和/或液体与固体物体的相互作用,并包括一系列相关的物理学,包括热传导、颗粒传输、侵蚀、沉积、流动诱导应力、燃烧和化学反应。多物理环境由涉及多个同时发生的物理场或现象的耦合过程或系统定义。这样的环境通常由多个偏微分方程(PDE)描述,并且紧密耦合,以至于解决它们会带来具有非线性和时间步骤的重大挑战。一般来说,模拟中的物理学相互作用越多,计算成本就越高。
多尺度 在科学和工程中无处不在的尺度级联涉及超过两个尺度,并具有长程时空相互作用(通常缺乏自相似性和适当的封闭关系)。例如,在生物和行为科学领域,多尺度建模应用从分子、细胞、组织和器官水平一直到人口水平;多尺度建模可以使研究人员探索较小尺度上的生物相关现象,并无缝地嵌入较大尺度上的相关机制,以预测整体系统的新兴动态。能源和合成生物学等领域需要在纳米尺度上工程材料,在宏观尺度上优化多尺度过程和系统,甚至在各种尺度上发现新的统治物理化学定律。这些科学驱动因素需要对共同多尺度现象和尺度级联进行更深入、更广泛和更综合的理解。在实践中,多尺度建模受到计算效率的限制,特别是随着复杂性和尺度的增加;在真实世界的情况下,通常需要利用跨越空间和时间的多个来源的信息(和物理学的数据)。多保真度建模旨在将丰富、廉价、低保真度的数据与稀少、昂贵、高保真度的实验和模拟数据相结合。多保真度建模通常对构建高效且健壮的代理模型(我们将在后面的代理主题部分详细介绍)很有用 - 一些例子包括模拟圆柱体流过混合对流[22]和心脏电生理学[23]。
在计算流体力学(CFD)中,用于多物理和多尺度模拟的经典方法(如有限元和伪谱方法)仅在流动特征全都平滑时才准确,因此网格必须解决最小的特征。因此,对于诸如气候和喷气物理学等实际系统的直接数值模拟是不可能的。通常使用Navier Stokes方程的平滑版本来允许更粗略的网格,同时牺牲准确性。虽然在发动机和涡轮机械的设计中取得了成功,但能够准确可靠地模拟的限制非常严格 - 分辨率和效率之间的权衡导致了重大瓶颈。基于人工智能加速和代理建模的方法可以将CFD和多物理多尺度模拟的速度提高数个数量级。我们在下面讨论具体的方法和示例。
物理信息机器学习 物理信息机器学习的新型类别方法将数学物理模型与数据驱动学习相结合。更具体地说,使ML方法物理信息化相当于引入适当的观测、归纳或学习偏差,可以引导或约束学习过程以得到物理上一致的解决方案。
1. 观测偏差可以通过数据引入,使得机器学习系统学习反映数据的物理结构的函数、向量场和算子。
2. 归纳偏差被编码为基于模型的结构,施加先验假设或物理定律,确保严格满足物理约束条件。
3. 学习偏差强制机器学习系统的训练收敛于符合基础物理的解决方案,通过损失函数、约束和推理算法中的特定选择实现。
在计算流体力学(CFD)中,一个常见的问题模板涉及从嘈杂的实验数据中推断出的初始条件进行外推,其中已知一种描述至少部分物理的控制方程。机器学习方法旨在预测系统在稍后时间 t > 0 的潜在解 u(t, x),并传播由初始数据中的噪声引起的不确定性。科学计算中的一个常见用例是从分散的测量数据(例如,粒子图像测速仪数据)中重建流场,并使用控制Navier-Stokes方程的时间中的初始条件进行外推。对于流体流动问题和许多其他问题,高斯过程(GPs)是捕获动态系统物理的有用方法。GP是一种贝叶斯非参数机器学习技术,提供了对函数的灵活先验分布,具有分析可追踪性,定义了编码领域结构的核函数,并具有用于基于原则的不确定性推理的完全概率工作流程。出于这些原因,GPs在科学建模中被广泛使用,最近的一些方法更直接地将物理编码到GP模型中:数值GPs具有源自描述物理的时间依赖偏微分方程(PDEs)的时间离散化的协方差函数,修改后的Matérn GPs可以被定义为表示随机偏微分方程的解[30],并扩展到黎曼流形以适应更复杂的几何[31],而物理信息的基函数GP则直接从物理模型中导出GP核[32] - 我们在代理建模主题中详细阐述了后一种方法。
随着深度学习进展的最新浪潮,研究已经开发出了将三种物理信息的ML偏差嵌入非线性回归的基于物理的网络的方法。更具体地说,物理信息的神经网络(PINN)引起了越来越多的兴趣:深度神经网络用于构建由偏微分方程(PDEs)描述的基于物理的模型的代理[33, 34]。尽管最近取得了成功(下面探讨了一些例子),PINN方法目前仅限于具有相对简单和明确定义的物理的任务,并且通常需要领域专家的技术。即便如此,许多物理系统的特征通常理解不足或难以隐式地编码到神经网络架构中。
另一方面,概率图模型(PGMs)对于编码先验结构非常有用,例如模型变量之间的依赖关系,以维持物理上合理的分布。这是图信息神经网络(GINN)在多尺度物理学方面有前景的方向背后的直觉。这种方法有两个主要组成部分(如图7所示):首先,将PGM嵌入到基于物理的表示中,以编码由领域特定信息产生的模型变量之间的复杂依赖关系,并启用生成物理上合理的分布。其次,从嵌入的PGM中识别出固有于基于物理的模型的计算瓶颈,并用高效的NN代理替换它们。因此,混合模型编码了一个领域感知的基于物理的模型,该模型综合了随机和多尺度建模,而计算瓶颈则由快速的代理NN替换,其监督学习和预测进一步由PGM(例如,通过结构化先验)通知。借助GINN中代理建模的显著计算优势,我们稍后将进一步探讨这种方法。
对于复杂非线性多尺度和多物理系统的建模和仿真需要在计算工作流的各个阶段包含和表征不确定性和误差。通常,我们关注机器学习中的两类主要不确定性:aleatoric和epistemic不确定性。前者量化系统的随机性,例如观察和过程噪声,而后者是基于模型或主观不确定性,由于数据有限而引起。在多尺度和多物理学的环境中,人们应考虑另一种类型的不确定性,即随机物理系统参数的随机性(通常由随机偏微分方程(SPDEs,SODEs)描述)。可以将这种类型的不确定性视为从计算足够规范的确定性问题中产生,与认知或aleatoric不确定性量化的概念相反。概率数值领域[43]提出了类似的区分,其中使用概率建模是为了推断出严重缺乏信息固有于解决诸如积分方法和其他积分程序等棘手问题的不确定性。总的来说,概率数值视角提供了管理数值程序参数的原则性方法。我们稍后在SI主题部分和下一个主题中讨论更多关于概率数值和不确定性推理的内容。GINN可以以高度统计置信度量化不确定性,而PINNs的贝叶斯类似物仍在进行中[44] - 不能简单地插入MC-dropout或其他深度学习不确定性估计方法。各种不确定性可以通过利用数据驱动学习的方法进行量化和缓解,以通知原始的微分方程系统。我们稍后在本节和下一个主题中定义这一类物理注入的机器学习。
当使用可微分编程(引擎主题之一)构建基于物理的机器学习时,机械物理模型和数据驱动学习的协同作用就会发挥作用,我们将在下面的第一个示例中对此进行探讨。
Examples例子略
科奇科夫等人。[18]希望利用半机械建模和可微分编程的优势来应对复杂计算流体动力学(CFD)的挑战
未来发展方向
总的来说,机器学习模型通常忽略物理学的基本定律,可能导致问题不适当或非物理解决方案。当建模多种物理学相互作用或尺度级联时,这种影响会加剧。尽管上面提到的方法取得了一些成功,但在多尺度和多物理学问题方面还有很多工作要做。例如,PINN可能在高频域和频率偏差方面遇到困难,这在多尺度问题中尤为棘手。同时,还需要改进同时学习多种物理学的方法,因为训练成本可能过高 - 例如,目前工具的一个良好方法是分别为每个领域训练模型,然后通过并行或串行架构使用基于附加数据的监督学习学习耦合解决方案,针对特定的多物理学问题。
为了以集体和可复现的方式应对这些挑战,需要创建物理信息学机器学习的开放基准,就像机器学习社区的其他领域(如计算机视觉和自然语言处理)一样。然而,为物理信息学机器学习量身定制高质量基准可能更具挑战性:
1. 为了评估物理信息学机器学习方法,我们还需要将适当参数化的物理模型明确包含在数据库中。
2. 物理学和化学中许多应用需要完整的场数据,这些数据无法通过实验获得,或者需要大量计算。
3. 通常需要不同的、针对特定问题的基于物理的评估方法,例如[64]中提出的用于评分物理一致性的指标和[65]中提出的用于评分时空预测的指标。
一个横跨性的基准挑战,但也是一个有利的约束,是物理信息学机器学习的跨学科性质:必须在多个领域中有多个基准,而不是一个基准来统治它们所有,这是过去十年来ImageNet对计算机视觉领域施加的发展偏见。因为我们对物理学和生命科学中底层数据生成机制和过程的领域知识和数值方法,我们有机会更牢固地量化数据集的特征,以更好地评估各种模型和算法的性能。这与天真地收集数据以编制深度学习的大规模基准数据集的常见做法形成对比 - 例如,通过在互联网上搜索视频来组成用于人类动作识别的基准数据集(deepmind.com/research/open-source/kinetics),其中底层统计和因果因素事先未知,目标变量和类别标签的定义并不容易,并可能导致重大的伦理问题,如数据集偏差导致模型偏差,这在某些情况下可能传播有害的假设和刻板印象。
此外,我们建议将方法类别扩展到物理信息注入的机器学习。前者是单向的(物理学提供约束或其他信息以指导机器学习方法),而后者是双向的,包括能够更好地协同两个计算领域的方法。例如,对于具有部分信息的系统,物理信息注入机器学习中的方法可以潜在地补充已知的物理模型,以学习系统中缺失或误解的组件。我们特别强调下一个替代建模主题中的一种方法,称为通用微分方程。
物理信息注入的机器学习可以通过在可微软件范式中集成物理模型和数据,实现许多新的模拟工具和用例。JAX 和 Modulus 是很好的例子,它们都可以为许多科学问题和工作流程提供物理信息学机器学习方法。例如,考虑上述的 JAX 流体动力学示例:在相同的不同iable 编程框架中的另一个用例是 JAX MD,用于执行具有分子动力学重点的可微分物理模拟。
未来多物理多尺度发展的另一个令人兴奋的领域是反问题求解。我们已经在上面的 CFD 示例中提到了使用 Fourier 神经算子的巨大加速。除了效率提升外,物理信息学机器学习可以应对难以或不可能用传统方法解决的反问题,尤其是在量子化学中:一种最近的方法称为 FermiNet,采用了双向的物理信息学习方法来解决多电子薛定谔方程,其中同时使用归纳偏差和学习偏差。物理信息学机器学习的优势在于消除了标准数值方法中的外推问题,这是计算量子化学中常见的误差来源。在生物学、生物医学和行为科学等其他领域,焦点正在从基于稀疏数据解决正向问题转向解决反问题,以解释大量数据。我们将在后面的讨论部分详细介绍物理信息学中解决反问题的方法和重要性。
2. 代理建模与仿真
代理模型是一种近似方法,模拟了昂贵的计算或过程的行为。例如,飞机机身的设计包括与数值优化相结合的计算密集型模拟,可能需要数天才能完成,这使得设计空间的探索、敏感性分析和反向建模变得不可行。在这种情况下,可以训练一个计算效率高的代理模型来表示系统,学习从模拟器输入到输出的映射关系。例如,地球系统模型 (ESMs) 由于涉及的空间和时间尺度范围广泛以及建模的过程数量众多,运行成本极高。可以使用监督式机器学习工具,对少量选择的完整昂贵模拟样本进行 ESM 代理训练。在这种模拟背景下,代理建模 (或统计仿真) 的目的是用机器学习模型(即仿真器)替换模拟器代码,以使运行 ML 模型以推断模拟器输出比运行完整模拟器本身更有效率。因此,仿真器是模型的模型:模拟器的统计模型,它本身是世界的机械模型。
对于科学中的代理建模,通常使用非线性、非参数的高斯过程 (GP) [26],因为它们具有灵活性、可解释性和准确的不确定性估计[70]。尽管传统上由于训练的计算成本为 O(N3),导致对较小的数据集进行限制(其中 N 是训练数据点的数量),但可靠的 GP 稀疏化和近似方法的大量研究工作使它们在现实世界中可行[71, 72, 73, 74]。
神经网络(NN)也可以作为函数逼近器很好地适应代理建模任务:
前馈网络定义了一个映射 \( y = f(x; \theta) \) 并学习参数 \( \theta \) 的值,以实现最佳的函数逼近。通用逼近定理表明,足够大的NN可以逼近任何非线性函数,具有有限的参数集[75, 76]。尽管足以表示任何函数,但NN层可能过大,以至于可能无法正确学习和泛化[77]。最近的研究显示,具有无限宽隐藏层的NN会收敛到GP,代表函数空间上的正态分布。
在图6中,我们展示了一个NN代理如何被用作模拟器的仿真器,它封装了整个模拟器或模拟器的特定部分。在前者中,训练相对直接,因为损失函数只有神经网络,训练好的网络可以用于解决逆问题。然而,我们现在有一个黑盒模拟器:没有对训练网络的解释能力,我们不能利用模拟器的机械组件(即模拟器的微分方程)进行科学分析。在部分代理的情况下,我们有几个优点:代理的参数数量减少,因此网络更稳定(非参数GP代理模型的类似逻辑),模拟器保留了所有的结构知识和运行数值分析的能力。然而,主要挑战是需要对任意科学模拟器进行反向传播——这就是我们之前讨论的不同化编程主题的重要性。使用混合代理-模拟器所带来的计算收益级联到一系列额外的优势,包括模拟更多情景的可能性,以进行反事实推理和认识不确定性估计,减小网格尺寸,或探索更细粒度的参数化[68, 69]。
半机械建模
根据通用逼近定理,NN可以学习逼近任何足够规则的微分方程。最近神经-ODE方法[78]的方法是直接从数据中学习逼近微分方程,但当需要外推时,这些可能表现不佳[79]。然而,对于仿真和科学建模更令人鼓舞的是,直接将机械建模与NN(或更一般地说,通用逼近器模型)一起使用,以允许任意数据驱动的模型扩展。结果是一种半机械方法,更具体地说是通用微分方程(UDE)[66],其中一部分微分方程包含一个通用逼近器模型——我们通常假设在本文中用于UDE的是一个NN,但其他选项包括GP、Chebyshev展开或随机森林。
UDE为科学模型增加了机器可学习的结构,用于基于科学的学习。这与我们之前讨论的物理信息神经网络(PINN)的动机非常相似,但通常实现有一个关键区别:PINN是一个深度学习模型,由于添加了物理偏差(观察、归纳或学习),因此变得物理信息丰富,而UDE是一个微分方程,其中一个或多个机械组件被替换为数据驱动模型——这就是我们为什么早先定义物理注入ML为物理和ML的双向影响。
贝叶斯最优实验设计
使模拟器在科学努力中有用的一个关键方面是,它们允许我们对外循环决策进行概率推理,如优化[80]、数据收集[81],并用它们来解释系统中不确定性的传播[82]。
科学和工程中的许多挑战可以被构建为优化任务,包括最大化反应产量、优化分子和材料属性,以及微调自动化硬件协议[83]。当我们寻求优化一个系统的成本函数f时,我们寻求使用贝叶斯优化(BO)[80, 84, 85, 86]来有效地探索解决方案的搜索空间,使用概率代理模型 \( f^{\hat} \) 而不是与真实系统进行实验。由于其灵活的非参数行为,高斯过程模型是最常见的代理。可以通过获取函数实现探索-利用搜索空间的各种策略,以估计在给定点(或参数化)评估f的效用,从而有效地指导BO搜索。在科学和工程环境中,这通常为领域专家提供了一些非常有希望的候选解决方案,然后可以在真实系统上尝试,而不是自己搜索不可行的大量可能性空间——例如,生成具有优化化学属性的新分子[87, 88],使用昂贵的基于物理的模拟进行材料设计[89],以及设计航空工程系统[90]。
同样,科学家也可以利用BO来设计实验,使结果尽可能有信息量地反映底层过程。贝叶斯最优实验设计(BOED)是一个强大的数学框架,用于解决这个问题[91, 92, 93, 94],并且可以在各个学科中实施,从生物信息学[95]到药理学[96]到物理[97]到心理学[98]。除了设计,还有实验优化中的控制方法,我们在下面一个粒子物理的例子中详细说明。
Examples例子 略
Future directions
未来方向
UDE方法在模拟器和物理建模方面具有重要的意义,其中底层机械模型通常是微分方程。通过直接将机械建模与通用逼近器模型结合使用,UDE是一种强大的半机械方法,允许任意数据驱动的模型扩展。在模拟器的背景下,这意味着领域专业知识和现实世界数据的协同模型,能够更忠实地表示系统的真实数据生成过程。
我们所描述的是一种变革性的ML增强科学建模方法。即,
1. 实践者确定模型的已知部分并构建一个UDE——当使用概率编程(一个SI引擎主题)时,这一步骤可以在高级抽象中完成,用户不需要编写自定义的推断算法。
2. 训练一个NN(或其他替代模型,如高斯过程)来捕捉缺失的机制——人们可能会寻求NAS和贝叶斯优化方法以自动化、不确定性意识的方式来完成这一任务。
3. 可以将缺失项稀疏识别为机械项——这是一个积极的研究领域,需要对这个概念进行更多的验证,如上例所述。
4. 验证恢复的机制在科学上是合理的——未来的工作中,我们如何能更好地利用人机协作来实现这一点?
5. 定量验证:外推、进行渐近分析、运行后验预测检查、预测分叉。
6. 收集额外的数据来验证新项。
为这种半机械建模工作流程提供工具对于使科学家能够最好地利用领域知识和数据具有巨大的意义,这正是SI堆栈所能够提供的——特别是具有可微编程和概率编程“引擎”主题。甚至更多,构建一个为SI专门构建的统一框架提供了可扩展性,例如整合Cranmer等人[124]最近从学习到的物理信息模型中恢复以符号形式的控制方程的图神经网络方法,或基于传统拟合技术的“人工智能费曼”[125, 126]方法与神经网络相结合,利用物理属性,如对称性和可分离性在未知动态函数中——关键特性如NN等价性和归一化流(以及它们如何适应堆栈)将在后文讨论。
3. 基于模拟的推断
数值模拟器被广泛应用于科学和工程的许多领域,以构建复杂现象的计算模型。这些模拟器通常通过纳入被认为(或假定)构成被研究过程的机制的科学知识来构建。这样的机械模型通常已在相应的科学领域中经过广泛的研究和验证。在复杂性方面,它们可以非常简单,具有概念性甚至教育性(例如,描述生态系统和经济理论中捕食者-猎物相互作用的Lotka-Volterra方程,如图21所示),也可以非常详细和昂贵,如在超级计算机中实现的全脑模拟。
一个常见的挑战——跨学科和模型复杂性——是如何将这种基于模拟的模型与实证数据联系起来的问题。数值模拟器通常有一些参数,其确切值并非先验已知,必须从数据中推断出来。由于下面详细的原因,传统的统计方法不能直接应用于由数值模拟器定义的模型。基于模拟的推断(SBI)[1]领域旨在解决这一挑战,通过设计可以应用于复杂模拟器的统计推断程序。基于统计学界的基础工作(见[129]的概述),SBI开始汇集多个领域的工作——包括例如群体遗传学、神经科学、粒子物理、宇宙学和天体物理学——这些领域都面临着相同的挑战,并使用机器学习工具来解决它们。SBI可以提供统一的语言,共同的工具[130, 131, 132]和基准[133]正在开发中,并在不同的领域和应用中得到推广和概括。
为什么用数据约束数值模拟这么具有挑战性呢?许多数值模拟器具有随机组成部分,这些部分被包括在内,要么是为了提供一个如果被认为系统本身是随机的,则提供真实的模型,或者通常也是出于实用考虑,以反映对系统某些组成部分的不完全了解。将这样的随机模型与数据联系起来属于统计学的范畴,统计学旨在提供方法,通过数据约束模型的参数,选择不同模型候选的方法,以及确定是否可以基于经验证据拒绝假设的标准。特别是,统计推断旨在确定哪些参数——以及参数的组合——与经验数据和(可能的)先验假设兼容。大多数统计程序的关键要素是给定参数θ的数据x的似然p(x|θ)。例如,贝叶斯推断通过后验分布p(θ|x)来表征与数据和先验都兼容的参数,后验分布与似然和先验的乘积成比例,p(θ|x) ∝ p(x|θ)p(θ)。频率主义推断程序通常基于假设检验构建置信区域,通常使用似然比作为检验统计量。
然而,对于许多基于模拟的模型,人们可以轻松地从模型中抽样(即生成合成数据x ∼ p(x|θ)),但评估相关似然可能是计算上不可行的——因为,例如,相同的输出x可能来自模拟器内部的大量路径,对所有这些路径进行积分是禁止的。更实际地,模拟器也可能以“黑箱”方式实现,无法访问其内部工作或状态。如果无法评估似然,大多数传统推断方法无法使用。基于模拟的推断的目标是使所谓的隐式模型成为可能,这些模型允许生成模拟数据,但不能评估似然。
SBI并不是一个新概念。基于模拟的推断方法在统计学中已经得到了广泛的研究,通常被称为无似然推断。一个有影响力的方法是近似贝叶斯计算(ABC)[129, 135, 136]。在它最简单的形式中,它包括从建议分布中抽取参数值,运行模拟器以这些参数生成合成输出
,将这些输出与观测数据进行比较,并且只有在它们在某个距离度量下接近观测数据时才接受参数值,即
。重复执行这一过程后,接受的样本大致遵循后验分布。第二类方法通过从模拟器中抽样,并使用核密度估计或直方图在样本空间估计密度来近似似然。然后,这个近似密度可以在频率主义或贝叶斯推断技术中代替确切的似然[137]。
这两种方法都使得在无似然设置中进行近似推断成为可能,但它们存在一些缺点:在严格的ABC接受标准(ε → 0)或小核大小的极限下,推断结果变得精确,但样本效率降低(必须多次运行模拟)。放宽接受标准或增加核大小可以提高样本效率,但降低了推断结果的质量。然而,主要挑战是这些方法对于高维数据的扩展性不好,因为所需的模拟数量随着数据维度x大约呈指数增长。在这两种方法中,原始数据通常首先被降低到低维摘要统计量。这些通常由领域专家设计,目标是尽可能保留关于参数θ的信息。在许多情况下,摘要统计量是不足够的,这种降维限制了推断或模型选择的质量[138]。最近,以完全[139, 140]或半自动方式[141]学习摘要统计量的新方法正在出现,这可能缓解这些限制中的一些。
深度学习的出现为许多基于模拟的推断技术提供了动力。这些方法中的许多依赖于训练模拟的神经代理的关键原则。这些模型与上一节讨论的仿真器模型密切相关,但不是为了高效采样。相反,我们需要能够访问其似然[142, 143](或相关的似然比[144, 145, 146, 147, 148, 149])或后验[150, 151, 152, 153]。代理训练完成后,它可以在频率主义或贝叶斯推断中代替模拟使用。在高层次上,这种方法类似于基于直方图或核密度估计的传统方法[137],但现代ML模型和算法允许它扩展到更高维和潜在的结构化数据。
SBI方法最近取得的令人印象深刻的进展并非仅来自深度学习。另一个重要主题是主动学习:迭代地运行模拟器和推断过程,并使用过去的结果改进下一次运行的参数值的建议分布[142, 143, 151, 152, 154, 155, 156, 157, 158, 159]。这可以大大提高样本效率。最后,在某些情况下,模拟器不仅仅是黑盒,我们可以访问(部分)它们的潜在变量和机制或它们堆栈跟踪的概率特征。在实践中,这些信息可以通过特定领域的知识或通过实现支持微分或概率编程的框架来获得——即SI引擎。如果可访问,这些数据可以大大提高训练神经代理模型的样本效率,减少所需的计算[160, 161, 162, 163, 164]。在高层次上,这代表了推断引擎与模拟的更紧密集成[165]。
这些组件——模拟器的神经代理、主动学习、模拟和推断的集成——可以以不同的方式组合,以定义贝叶斯和频率主义环境中的基于模拟的推断工作流程。我们在图10中展示了一些示例推断工作流程。工作流程的最佳选择取决于问题的特征,特别是观测数据的维度和结构以及参数,是否观察到单个数据点或多个独立的同分布抽样,模拟器的计算复杂性,以及模拟器是否允许访问其潜在过程。
Examples略
Future directions未来发展方向
进一步发展基于模拟的推断(SBI)方法的一个有趣方向是朝着人机推断的方向发展:一个高效且自动化的科学方法循环(至少对于足够明确的问题)。在图12中描述的整个过程是:(1) 进行实验,(2) 进行推断,(3) 优化实验,(4) 从(1)开始重复。这种方法为物理实验提供了一种有效手段,特别是对于在大型搜索和假设空间中昂贵的实验,例如欧洲核子研究组织(CERN)的大型强子对撞机[191]。这是模拟智能可以扩展科学方法的一种方式。通过将信息增益目标替换为开放式优化(在SI引擎主题中后面讨论),推进这种基于SI的科学工作流程将是令人着迷的。
基于模拟的推断是一个快速发展的方法类别,其进步受到诸如概率编程和可微编程等新编程范式推动。Cranmmer等人[1]预测,“科学领域的几个领域应该预期在推断质量上显著提高,或者从启发式方法过渡到与底层机械模型相关联的统计术语。期待这种转变可能对科学产生深远影响是合理的。”
4. 因果推理
标准统计分析和模式识别方法基于变量之间的关联以及数据中学习的关联性得出结论。然而,当科学查询具有因果性质而非关联性时,这些方法就不足以应对——相关性和因果关系之间存在明显的区别。这种因果问题需要一些关于底层数据生成过程的知识,不能仅从数据中计算出来,也不能从支配数据的分布中计算出来[192, 193]。在许多领域,从基因组学[194]和医疗保健[195]到经济学[196]和博弈论[197],再到地球系统科学[198]等,理解因果关系既是科学研究的基础,也是最终目标。
抽象地讲,我们可以认为因果模型在定性上介于机械模型(例如由微分方程描述)和统计模型(从数据中学习)之间。也就是说,机械模型是由人类专家手动编码的系统动力学描述,而统计模型(如神经网络)从观测数据中学习变量的映射,但这只适用于实验条件固定时。两者都不允许进行因果查询。因果学习介于这两个极端之间,寻求通过数据驱动的学习和统计描述中尚未包含的假设来模拟干预和分布变化的影响[199]。
通过因果模型对因果关系进行推理对应于制定因果查询,这些查询已被Pearl和Mackenzie[200]组织成一个三级层次结构,称为因果阶梯[201](见图13):
1. 观测性查询:观察和看到。如果我们观测到X = x,我们能对Y说些什么?
2. 干预性查询:行动和干预。如果我们执行X := x,我们能对Y说些什么?
3. 反事实查询:想象、推理和理解。考虑到E = e实际上发生了,如果我们执行了X := x,Y会发生什么?
其中X和Y是感兴趣的系统中的变量,E是事件。观测(条件概率)和行动(干预演算)之间的区别激发了因果关系的发展[202]。更准确地说,干预性陈述和条件陈述之间的不一致被定义为混杂:当行动X := x对Y的因果效应与相应的条件概率不同时,X和Y就存在混杂。
通常通过反事实推理来分析因果关系:如果采取了某种行动和如果没有采取这种行动之间的结果差异被定义为行动的因果效应[193, 204]。
反事实问题涉及对事情发生原因的推理,想象你从未观察到的不同行动的后果,并确定哪些行动可以实现期望的结果。一个反事实问题可能是“如果大多数成年人提前一周接种疫苗,病毒还会传播到城市外面吗?”在实践中,这可以通过结构因果模型(SCMs)来完成,它为我们提供了一种方法,在我们模型的假设内,形式化假设行动或干预对人群的影响。SCM,表示为有向无环图(DAG),是一组关于某些变量如何相互作用以及构成数据生成过程的正式假设的集合。
反事实问题的答案强烈依赖于SCM的具体内容;有可能构造两个具有相同图结构的模型,并且在干预下行为相同,但却给出不同的答案或潜在结果[205]。如果没有SCM,我们仍然可以通过使用潜在结果框架或鲁宾-奈曼因果模型[206, 207]来基于反事实获得因果估计,该模型通过考虑导致结果Y的一组潜在事件或行动来计算因果效应估计。
在因果阶梯上低一级的是干预性问题,例如“如果大多数成年人接种疫苗,群体免疫的概率会如何变化?”在SCM中进行干预是通过修改模型中变量分配的子集来实现的。存在几种类型的干预[208]:硬/完美涉及直接固定变量的值,软/不完美对应于改变条件分布,不确定干预意味着学习者不确定哪个机制/变量受到干预的影响,当然还有不进行干预的基准案例,其中只从SCM中获得观测数据。
从机器学习的角度来看,反事实推理严格上比干预性推理更难,因为它需要想象行动而不是采取行动。而关联推理——即使用统计模型(如神经网络)——是所有推理中最简单的,因为它纯粹观察数据(即因果阶梯的第一级)。我们在图13中说明了这三种因果关系级别。有关完整处理,请参考Pearl的许多作品[192, 193],Yao等人[209]的因果推断调查,Schölkopf等人[199, 210]以及其中引用的文献,以获取有关机器学习中因果关系的更多详细信息,以及Guo等人[211]对因果数据科学的概述。这里我们关注科学模拟器中的因果关系。
模拟器为探索复杂的现实世界情景提供了虚拟试验场,如果使用因果机器学习(特别是反事实推理)的工具构建,可以以高效且成本效益的方式提供“如果”分析。也就是说,模拟器的每次运行都是一个特定可能世界的实现,反事实的“如果”主张可以通过改变模型的独立参数并重新运行模拟来研究。
基于模拟追踪的因果关系
由于模拟器执行追踪通常包括状态、事件和行动,我们可以根据这些实体定义因果关系——没有这种基础,人们无法做出可靠的因果声明,这在本节最后一个示例中讨论。Herd和Miles[212]提供了一个实用公式:如果在一个实际追踪π中存在一个反事实追踪π'与π足够相似,并且要求在π中C和E不会在同一状态发生,那么事件C导致事件E。这表明可以通过搜索模拟器生成的所有追踪来执行反事实分析,以寻找反事实π',但对于任何非平凡的模拟器来说显然是不可行的。然而,如果我们在模拟过程中干预追踪,可以生成具有微小差异的各种反事实追踪,以便我们可以推理事件之间的因果关系。因此,这种方法被称为基于干预的反事实分析。
模拟追踪可能很复杂,根据追踪π中事件的发生和遗漏,可能涉及几种因果形式[212]:
1. 基本因果——为了让事件A导致事件B(A → B),A的发生必须是B在π中发生的必要和充分条件。也就是说,对于数学倾向的读者,A → B ≡ (A ⇒ B) ∧ (B ⇒ A) ≡ A ⇔ B。
2. 预防——为了让事件A阻止事件B的发生,A的发生必须是B的省略必要和充分条件。也就是说,A → B ≡ (A ⇒ ¬B) ∧ (¬B ⇒ A) ≡ A ⇔ ¬B。
3. 传递性——如果A导致B,且B导致C,那么A导致C。
4. 遗漏导致的因果——如果A的省略是B发生的必要和充分条件,并且我们接受省略可以作为原因,那么A的省略可以被认为是导致B发生的原因。
5. 由因果关系导致的预防——根据先前的因果声明,如果A导致B,且B阻止C,那么A阻止C。
模拟器的执行结果是一个或多个模拟追踪,它们代表了在给定底层数据生成模型的情况下穿越状态空间的各种路径,这与概率编程推断产生的执行追踪类似。通过将模拟器状态的序列形式化为基于追踪的因果依赖定义,我们拥有计算和数学工具来进行因果查询,我们在下面的例子中介绍。此外,使用产生追踪空间完整后验的模拟器,如概率编程,我们可以尝试使用因果推断和发现算法来得出因果结论。我们将在主题集成部分后面介绍。
例子
Future directions
概率编程(PP)范式将概率生成模型等同于可执行程序[286]。概率编程语言 (PPL) 使从业者能够利用编程语言的强大功能来创建丰富而复杂的模型,同时依靠内置的推理后端来操作用该语言编写的任何模型。 这种解耦是一种强大的抽象,因为它允许从业者在原型设计和部署过程中快速迭代模型和实验。 这些程序是生成模型:它们将不可观察的原因与可观察的数据联系起来,以模拟我们认为数据是如何在现实世界中创建的(图 20)。
PPL 为科学机器学习带来了额外的优势,主要是通过设计允许专家将领域知识纳入模型中并从学习的模型中导出知识。 首先,PPL 通常是高级编程语言,科学家可以轻松地将领域知识编码为建模结构——概率论和编码机制之间存在直接对应关系,而这在标准编程范式中是模糊的。其次,由于模型被编码为程序,程序结构为我们提供了一个结构化框架,在尝试推理之前,可以在其中推理域中涉及的属性和关系[287]。至关重要的是,在 PPL 中,我们将不确定性推理作为标准功能,使我们能够表达和处理任意(由于观察和过程噪声等随机性而导致的不可减少的不确定性)和认知(由于知识有限而导致的主观不确定性)不确定性度量。
概率编程的主要缺点是计算成本,尤其是在可以在任意程序上运行的无限制(通用或图灵完备)PPL [288]的情况下更加明显[289,290,291,292,293]。另一类 PPL 限制性更强,因此计算效率更高,其中约束可表达模型集可确保可以有效应用特定的推理算法 [294,295,296,297]。请注意,通过采样和调节操作扩展现有的图灵完备编程语言会产生通用的 PPL [288, 298]。
尽管概率编程是人工智能、统计学和编程语言交叉领域的一个相对新兴的领域,但它已经在生物和物理科学领域取得了成功的应用。例如,从高能粒子碰撞推断物理学[165]、药理学建模和药物开发[299]、推断细胞信号通路[300]、预测神经退行性变[219]、科学实验的优化设计[301]、流行病学疾病建模蔓延[302, 303]、理清微生物群落动态[304]、野火蔓延预测[305]、航天器碰撞避免[306]等等。接下来我们讨论跨这些领域和其他领域连接概率编程和科学模拟的几种关键机制。
首先,概率程序本身就是一个模拟器,因为它表达了数据的随机生成模型;也就是说,给定 PPL 中充分描述的系统或过程,程序的前向执行会产生模拟数据。 通常,人们会运行模拟器来预测未来,但通过概率程序,我们还可以根据观察到的结果推断出参数。例如,Lavin [219] 中的神经退行性疾病程序定义了一个随机采样的统计模型,我们可以从中生成概率疾病轨迹,并推断单个生物标志物的参数。 使用概率程序进行模拟的另一个优势是半机械建模,其中图灵完备的 PPL 提供灵活的建模,用于将描述系统的物理定律或机械方程与数据驱动组件(这些组件以数据观察为条件或进行训练)集成 - PPL 图灵。例如,jl [307]用常微分方程说明了这一点。类似地,一些 PPL 支持半参数建模 [308, 309],其中推理引擎可以处理结合参数和非参数模型的程序:参数组件学习固定数量的参数并允许用户指定领域知识,而非参数组件学习模型(例如高斯过程)学习无限数量的参数,这些参数随着训练数据的增长而增长。 这两种编程功能(半机械和半参数建模)以及 PPL 的整体表达能力使它们成为非机器学习专家轻松构建和试验概率推理算法的理想选择。利用概率程序作为模拟器在基于模拟的推理主题中发挥着重要作用。
在这里,我们展示了洛特卡-沃尔泰拉方程,这是一对一阶非线性微分方程,经常用于描述两个物种作为捕食者和猎物相互作用的生物系统的动力学。
微分方程模型通常具有不可测量的参数。 流行的仿真“正向问题”包括求解给定参数集的微分方程,仿真的“逆问题”称为参数估计,是利用数据确定这些模型参数的过程。 贝叶斯推理提供了一种具有量化不确定性的稳健参数估计方法。(示例代码来源于turing.ml)
其次,我们有推理编译 [310, 311],这是一种使用深度神经网络来分摊通用 PPL 模型中的推理成本的方法。 基于在两种编程语言之间编译计算机代码的类比,使用神经网络将 PPL 推理问题转换为摊销推理问题被称为“编译”。 在模拟环境中,推理编译的一种用途是作为概率编程算法的预处理步骤,其中基于 PPL 的模拟器的初始运行用于训练神经网络架构,该架构为所有潜在随机变量构建建议分布基于观察到的变量的程序——这代表了图 1 中基于模拟的推理工作流程之一。 10. 推理编译的另一个主要用途是构建概率代理网络(PSN):任何现有的随机模拟器,用任何编程语言编写,都可以通过在源代码中添加少量注释(用于记录和控制模拟器执行轨迹在随机点)。 蒙克等人。[298]在一个具有复合材料模拟的重要用例上证明了这一点,但需要使用额外的模拟器进行更多测试来验证普遍性声明和鲁棒性。PSN 和推理编译的其他扩展 [312] 有助于将概率编程与现有的、不可微的科学模拟器统一到第三种(也许是最强大的机制)模拟器反演中。
Etalumis 项目(“simulate”向后拼写)使用概率编程方法通过贝叶斯推理 [165] 反转现有的大型模拟器,需要对给定模拟器的源代码进行最少的修改。 许多模拟器模拟系统的向前演化(与时间箭头一致),例如基本粒子的相互作用、气体扩散、蛋白质折叠或宇宙最大规模的演化。 推理任务是指找到此类系统的初始条件或全局参数,这些参数可以得出一些代表模拟最终结果的观察数据。 在概率编程中,此推理任务是通过定义任何感兴趣的潜在量的先验分布,并使用贝叶斯规则根据观察到的结果(例如实验数据)获得这些潜在量的后验分布来执行的。
实际上,这个过程相当于反转模拟器,这样我们就可以从结果转向导致结果的输入。一种称为概率编程执行协议 (PPX)(图 22)的特殊协议用于通过两种主要方式将 PPL 推理引擎与现有随机模拟器代码库连接起来:
这些方法已在大规模遗留模拟器代码库上进行了演示,并扩展到高性能计算 (HPC) 平台,用于处理多 TB 数据和超级计算机规模的分布式训练和推理。 将概率推理扩展到大规模模拟器的能力对于概率编程领域和更广泛的科学界至关重要。
80PPT 概率编程with Fast Exact Symbolic Inference 快速准确符号推理
主流人工智能研究很大程度上缺乏对常识推理的追求,特别是普遍性和因果推理等特征[320, 321]。为了实现常识,并最终实现通用机器智能,Marcus & Davis [322]建议从开发能够代表人类知识核心框架的系统开始:时间、空间、因果关系、物理对象及其相互作用的基本知识、人类及其相互作用。 对这一目标的实际追求主要集中在对认知科学和神经科学的“常识核心”进行逆向工程:直觉物理学[323]和直觉心理学,或者世界中物体的基本表示以及它们相互作用的物理学,以及代理人的动机和行动[324]。特别是,研究许多直观物理推论基于心理物理引擎的假设,该引擎在许多方面类似于构建交互式视频游戏中使用的机器物理引擎[325],并通过对儿童的直觉物理和直觉心理进行建模作为基于概率程序的心理模拟引擎 [320, 326]。
为了用工程术语捕捉这些想法,需要概率编程;PPL 将我们关于机器和生物智能的最佳想法整合到三种不同的数学中:符号操作(即代数和逻辑)、贝叶斯推理(概率)和神经网络(微积分)。 通过将物理引擎程序和物理模拟器封装在概率建模和推理框架内,我们获得了捕获常识直观物理所需的强大工具。在特南鲍姆等人的作品中。 这被称为“头脑中的模拟器”,也称为“心智理论”[327],其目的与大多数最新人工智能研究中游戏引擎的典型使用不同:捕获所使用的心智模型用于在线推理和规划,而不是使用游戏在大量模拟数据上训练神经网络或其他模型。
正如我们之前提到的,基于 PPL 采样的推理占主导地位,但通常速度较慢,并且肯定会限制游戏/图形引擎。 我们也可以使用神经网络来学习这些图形引擎的快速自下而上近似或逆,也称为“视觉作为逆图形”[331, 332]。为了依靠神经网络,PhysNet [333] 尝试将直观物理学视为模式识别任务。 尽管能够重现一些稳定性预测结果,但典型的深度学习 PhysNet 方法需要大量训练,并且仍然无法概括超出非常具体的物理对象形状和数量。
现在,定义为概率程序的物理引擎必须是输入和输出其他程序的程序。这个“学习难题”代表了寻找好的程序的极具挑战性的搜索问题,但人类可以解决这个问题,因此机器智能也应该能够解决。 贝叶斯程序学习[334]是一个早期的例子,但仍有相当大的进展需要取得。其他关于学习编程的著名著作包括“作为黑客的孩子”[335]和“Dream Coder”,它将神经网络与符号程序搜索相结合,学习解决许多不同领域的程序,本质上是学习构建一个深度的程序库[336]。
(这些工作相对较早期,整体工作处在比较早期)
未来方向:
图 25:概率编程允许将任意模型作为程序进行推理,包括递归和随机分支等编程结构,从而扩展了概率图形模型 (PGM) 的范围。 类似地,可微分编程是神经网络和深度学习的推广,允许对任意参数化的程序模块进行基于梯度的优化。正如基于 MCMC 的推理引擎驱动 PPL 一样,autodiff 是 DP 背后的引擎。 (请注意,“可微神经记忆”是指神经图灵机[340]和可微神经计算机[341]等方法;“神经微分方程”是指神经ODE[78]和通用DiffEQ(UDE)[66];HMC是哈密顿蒙特卡罗 [342, 343],MRF 是马尔可夫随机场,LVM 是潜变量模型 [344, 345]。)
可微分编程 (DP) 是一种编程范例,其中自动计算程序的导数并将其用于基于梯度的优化,以便调整程序以实现给定的目标。DP 已广泛应用于各个领域,特别是科学计算和机器学习。
从机器学习的角度来看,DP 描述了可以说是深度学习中最强大的概念:可以通过某种形式的基于梯度的优化进行训练的参数化软件模块。 在DP范式中,神经网络被构造为由功能块(例如前馈、卷积和循环元素)组装而成的可微有向图,并且使用描述模型任务的目标的基于梯度的优化来学习它们的参数[346]。ML 领域越来越多地采用 DP 并使用控制流在任意算法结构中自由组合 NN 构建块,并引入新颖的可微架构,例如神经图灵机 [341] 和数据结构的可微版本,例如堆栈、队列、双端队列[347]。
用于深度学习的 DP 框架在过去十年中主导了 ML 领域,最著名的是自动微分框架,例如 Theano [348]、TensorFlow [349] 和 PyTorch [350]。 与主要涉及大型矩阵乘法和非线性逐元素运算的深度学习相比,由于固有的计算不规则性,物理模拟需要复杂且可定制的操作,这可能导致上述框架的性能不令人满意。 为此,最近的工作已经产生了强大的、可并行的 DP 框架,例如 JAX [45, 351] 和 DiffTaichi [352],用于端到端模拟器微分(以及基于梯度的学习和优化),并且每个框架都可以集成 DP进入模拟器代码。两者在物理科学中都有广阔的应用前景,我们将在下面的示例中对此进行更多讨论。 此外,在科学和数值计算的推动下,Julia 语言和生态系统 [353] 提供了系统范围内的可微分编程,以及最近用于深度学习和概率编程的人工智能集成。
在微积分和编程的交叉点上,AD 是 DP 的主力。AD 涉及通过自动有效地计算各种导数来增强标准计算[346]。更准确地说,AD 通过替换变量的域以合并导数值并重新定义运算符的语义以根据微积分的链式法则传播导数,对给定的计算机程序执行非标准解释。 AD 并不像其名称所暗示的那样简单地进行非手动区分。 相反,AD 作为一个技术术语是指一系列特定的技术,这些技术通过在代码执行期间累积值来计算导数,以生成数值导数评估而不是导数表达式。 这样就可以在机器精度下准确评估导数,而只需很小的常数因子开销和理想的渐近效率。 通用AD的可用性极大地简化了基于DP的ML架构、模拟器代码以及AI驱动模拟的组成的实现,使其能够表达为依赖于差异化基础设施的常规程序。参见Baydin 等人。[ 346] 进行全面概述。
图 26:区分数学表达式和计算机代码的分类法,以截断的逻辑图(左上)为例。 符号微分(右中)给出了精确的结果,但需要封闭式输入并受到表达式膨胀的影响,数值微分(右下)由于舍入和截断误差而存在准确性问题,自动微分(左下)同样准确作为仅具有恒定开销因素和对控制流的支持的符号微分。 (转载自 Baydin 等人 [346])
在模拟器的背景下,DP 与概率编程一样,提供了利用 ML [1] 进步的方法,并提供了将这些技术合并到现有科学计算管道中的基础设施。在许多应用中,一种有趣的方法是使用科学模拟器和求解器进行机器学习代理建模。在图 27 中,我们展示了一个示例,将神经网络代理与模拟器(作为 ODE 求解器)链接起来以解决逆问题,或从观察或测量中推断隐藏状态或参数。DP 支持这种方法,因为端到端可微分工作流程(包括模拟代码和 ML 模型)可以反向传播错误并对模型参数进行更新。 我们在多物理场和替代建模主题中深入讨论这一方法和相关方法,以及所有主题如何实现一系列逆向问题解决能力。
图 27:在可微编程框架内使用 ODE 求解器按顺序表达的神经网络代理,它允许通过在整个系统中反向传播输出损失来进行端到端学习。 此示例说明了一个反问题:给定情况(风、目标),我们需要求解物理系统(由基于 ODE 的模拟器表示)的最佳控制参数(角度、重量)。(图灵感来自于 Chris Rackauckas [354])
蛋白质折叠的计算方法不仅寻求更快、更低成本地确定结构(其中蛋白质结构是合理药物设计的基本需求),而且旨在了解折叠过程本身。 先前的计算方法旨在构建明确的序列到结构图,将原始氨基酸序列转化为 3D 结构 [355],无论是使用昂贵的分子动力学 (MD) 模拟还是依赖于统计采样和给定模板的“片段组装”方法解决方案。 另一类现有方法是“共同进化”,其中使用多个序列比对来推断基于进化耦合的几何耦合,但实际上从序列接触图到完整的 3D 结构的可靠性只有 25%–50%。时间[356]。一般来说,先前的工作存在重大缺点,例如无法预测轻微变化或突变的结构后果[357]以及无法使用从头序列[358],更不用说计算负担(例如,先前的状态)结合了基于模板的建模和基于模拟的采样的最先进的管道每个结构大约需要 20 个 CPU 小时[359])。为了解决上述限制,AlQuraishi [358]提出了可微分编程来机器学习模型,该模型用可微分原语取代结构预测管道。该方法如图 28 所示,基于四个主要思想:(1) 使用循环神经网络编码蛋白质序列,(2) 通过扭转角参数化(局部)蛋白质结构,使模型能够推理不同的构象,而无需违反其共价化学,(3)通过循环几何单元将局部蛋白质结构与其全局表示耦合,以及(4)可微分损失函数来捕获预测结构和实验结构之间的偏差,用于优化循环几何网络(RGN)参数。 请参阅原始作品以获取完整细节 [358],包括比较基于 DP 的方法 (RGN) 与现有技术的定量和定性特性的彻底实验。一个重要的亮点是 RGN 方法比现有的结构预测管道快 6-7 个数量级,尽管训练 RGN 需要数周到数月的前期成本。 除了总体上超越先前方法的结果(包括新型蛋白质折叠的性能)之外,可微分结构方法对于自下而上地理解系统生物学也很有用。 AlphaFold 是最近超越 RGN 和该领域其他所有技术的突破性方法 [360],它也利用了 autodiff(图 25),但以一种深入学习的方式,不一定能提高蛋白质折叠的科学知识;提到了有关 AlphaFold 的更多内容在稍后的荣誉提名小节中。 与确定性管道相比,基于学习的方法可以为未来的实验和科学知识提供有价值的信息。 在机器学习蛋白质序列的情况下,生成的模型学习蛋白质序列空间的低维表示,然后可以对其进行探索,例如使用我们在开放性和多物理中讨论的搜索和优化算法主题。 在标准管道中(在 AlphaFold 中不同程度),这些知识是模糊的或不存在的——完整的领域知识必须先验编码。 除了 DP 之外,使用模拟智能主题在该领域具有巨大潜力,特别是通过半机械建模将实验和结构数据纳入综合多尺度模拟方法,该方法可以对药物设计中涉及的一系列长度和时间尺度进行建模和发展[361]。
图 28:[358]的循环几何网络(RGN)。该模型采用氨基酸序列和位置特异性评分矩阵作为输入,并通过运行三个阶段输出 3D 结构:计算(左侧,蓝色块)、几何(左侧,粉色块)和评估(右侧步骤)。(原始图来自 Mohammed AlQuraishi [358])
我们已经多次强调 JAX 作为利用机器学习来改进模拟科学的有价值的系统。 展示多个主题集成的一个用例是在 DP 框架中构建半机械替代模型以加速复杂的计算流体动力学 (CFD) 模拟的示例 [18]。我们在图 5 中提到的另一个用例是跨越多个建模尺度,包括分子动力学 (MD)。MD 经常用于模拟材料,以观察小尺度相互作用如何产生复杂的大规模现象学 [45]。物理模拟中使用的标准 MD 包(例如 HOOMD Blue [362] 或 LAMMPS [363, 364])是复杂的、高度专业化的代码片段。糟糕的抽象和技术债务使它们难以使用,更不用说扩展加速计算和机器学习的进步了——例如,在 CPU 上运行的专门和重复的代码与在 CPU 上运行的代码不同。 GPU、硬编码物理量和复杂的手动微分代码。由于这些原因,JAX MD [50] 利用可微分编程以及自动硬件加速(通过 JAX 中的编译方案)。 植根于函数式编程的多种设计选择使 JAX MD 与传统物理软件不同,并且更适合自动比较和 ML 方法:转换数据数组、不可变数据和一流函数。 JAX MD 原语是帮助定义物理模拟的函数,例如“空间”(尺寸、拓扑、边界条件)和“交互”(能量、力)。然后可以使用更高级别的函数来组成粒子或原子的模拟。
最初的 JAX MD 工作 [50] 展示了训练几个最先进的神经网络来模拟量子力学能量和力,特别是基于密度泛函理论(DFT,电子学的标准第一原理方法)来表示不同晶相的硅原子。结构问题)。 DFT 在物理问题中很普遍,但在实践中可靠地计算或近似并不简单。近年来,人们对利用 ML 改进 DFT 近似产生了兴趣,特别是 JAX-DFT [365]。他们利用 JAX 的可微分编程实用程序将 DFT 求解器方程(即 Kohn-Sham 方程)直接集成到神经网络训练中,即利用 JAX 作为基于物理的 ML 框架。 作者认为,先验知识和机器学习物理学的结合意味着在这个新范式中重新思考计算物理学:原则上,DFT 计算中的所有启发式方法(例如初始猜测、密度更新、预处理、基组)都可以被学习和在保持严格物理的同时进行优化[365]。JAX 同样被用于深度学习中等变层的自动构建[366],用于在粒子物理和动力系统等领域中对图和点云进行操作,其中对称性和等变性是神经网络泛化的基础——等变神经网络是稍后将在讨论部分详细介绍。JAX 的一个更受人工智能驱动的扩展是 Brax [367],它是一个用于加速刚体模拟和强化学习的可微物理引擎。 Brax 通过广泛使用 JAX 的自动矢量化、设备并行性、即时编译和自动微分原语,高效地训练运动和灵巧操作策略。出于类似的原因,JAX 专门用于标准化流,这是一种通过应用一系列可逆变换将简单的初始密度转换为更复杂的密度来定义表达概率分布的通用机制 [368, 369]。我们将在稍后的讨论部分更多地讨论标准化流程。
Taichi [370] 是一种用于编写模拟的面向性能的编程语言,DiffTaichi [352] 通过额外的自动微分功能对其进行了增强。 虽然 JAX MD 和 JAX 生态系统中的其他各种工具可以提供开箱即用的物理模拟工作流程,因为它们是专门为这些应用程序构建的,但 DiffTaichi “更接近金属”,可实现快速模拟,因此总体上比 JAX 具有更好的计算性能。 这可以通过物理模拟所需的几个关键语言功能来解释,但现有的可微分编程工具中经常缺少这些功能:
胡等人的初步工作。[352]很好地解释了设计决策和实现,以及不可压缩流体、弹性物体和刚体的说明性示例,与其他 DP(和深度学习)框架中的类似实现相比,具有显着的性能提升。 尽管如此,这些都是玩具问题,在复杂的现实环境中仍有许多工作要做。
Python、R 和 Julia 等动态编程语言因其执行效率高而在科学计算和 AI/ML 中很常见,可实现快速代码开发和实验。 然而,大多数系统在便利性和性能之间都存在折衷:程序员用动态语言表达高级逻辑,而繁重的工作则用 C/C++ 和 Fortran 完成。另一方面,Julia [353] 可以提供静态编译语言的性能,同时提供交互式的动态行为。 性能的关键要素是:丰富的类型信息,通过多重分派自然地提供给编译器,针对运行时类型的代码专门化,以及使用 LLVM 编译器框架的即时(JIT)编译[371] - 参见 Bezanson 等人等人。[353]了解详情。
例如,Julia 有可能解决结合 Python 和 C 的动态-静态系统的权衡和烦恼,它非常适合科学 ML 的可微分编程(更不用说概率编程、几何深度学习和我们接触过的其他编程) 。 英尼斯等人的作品。[354]是一个DP系统,能够采用Julia程序的梯度,使自动微分成为一流的语言功能。因此,Julia 可以支持基于梯度的学习以及 SI 主题和深度学习的程序转换。 我们详细介绍了多物理场和替代建模主题中的几个例子,特别是通用微分方程(UDE)系统[68](图8)。 其他说明性的例子包括金融领域的可微分编程,其中合同估值可以与市场模拟和神经网络等其他 DP 工具相结合;金融时间序列建模中的加速神经微分方程;以及混合经典量子系统的端到端自动微分(模拟)[354]。
在人工智能领域,可微分编程被比作深度学习[372]。这并不公平,因为 DP 可以被视为深度学习的推广。 当超越深度学习到复杂程序的一般情况时,DP 的潜力是巨大的——在现有程序中利用其中嵌入的大量知识,并实现前所未有的模型和计算机实验。DP 有潜力成为进一步统一科学计算和机器学习领域的通用语言[68]。前者主要受机械方程和低效数值求解器的控制,后者则采用学习高维空间的数据驱动方法。正如我们在多物理主题中所探索的那样,DP 在交叉点上提供了令人兴奋的机会。
与 ML 和仿真相关的 DP 提出了一个相对较新的领域,在理论和实践方面都有很多工作要做。对于前者,推导出处理不可微函数(例如深度学习中使用的 ReLU [373])或非平滑函数的技术是很有价值的。 使用近似实数(而不是实数)并寻求数值精度定理也很有用。对于实际使用,特别是在 ML 中,DP 添加显式张量(多维数组)类型以及伴随的形状分析非常重要。 一般来说,需要更丰富的 DP 语言来支持广泛的类型和计算——例如递归,或使用黎曼流形编程(以适应自然梯度下降)。 还需要超越 Python 作为宿主语言,使用 Julia、C++(例如 DiffTaichi)和接近金属的特定领域语言(DSL,见图 1)来提高计算运行时效率。
正如AD是DP的实际力量一样,非标准解释是AD的基础力量。非标准解释提出了一个问题:我如何改变这个程序的语义来解决另一个问题?其理论和形式主义可以提供超越 AD 的丰富发展。
An emulator is thus a model of a model: a statistical model of the simulator, which is itself a mechanistic model of the world.
模拟器是模型的模型:模拟器的统计模型,模拟器本身就是世界的机械模型