try ai
科普
编辑
分享
反馈
  • 模型验证与确认

模型验证与确认

SciencePedia玻尔百科
核心要点
  • 验证回答的是“我们是否在正确地求解方程?”,关注数学和计算的正确性;而确认回答的是“我们求解的方程是否正确?”,通过将预测与真实世界数据进行比较。
  • 代码验证采用人造解方法(MMS)等技术,以证实软件准确地实现了预期的数学模型。
  • 确认并非绝对的;它是针对特定的使用情境(CoU)进行的,以确定一个模型对于某个特定的决策或应用是否足够可信。
  • 一个严格的V&V过程,通常辅以校准和不确定性量化(UQ),对于建立模型的预测能力和可信度至关重要。

引言

在一个日益依赖计算模型来设计从更安全的飞机到更有效药物等一切事物的世界里,一个关键问题油然而生:我们如何相信这些数字模拟不仅仅是精心的虚构?答案在于一门严谨的、由两部分组成的学科,即模型验证与确认(V&V)。这一过程为建立对计算模型预测的合理信心提供了必要的框架。本文旨在解决这两个支柱之间普遍存在的混淆,阐明它们各自不同的角色以及建立模型可信度的共同目标。在接下来的章节中,您将对V&V的核心原则有清晰的理解,并看到它们在实践中的应用。在“原则与机制”中,我们将剖析驱动验证、校准和确认的基本问题。随后,“应用与跨学科联系”将展示这些概念如何应用于核工程、药物开发和人工智能等高风险领域,彰显V&V作为在科学技术领域建立信任的通用语言。

原则与机制

所以,你已经建立了一个宏伟的计算模型。也许它模拟了飞机机翼上方的湍流,或活细胞中蛋白质的复杂舞蹈,又或是一块新微芯片中的热流。它在超级计算机上运行,输出令人惊叹的图形和连篇累牍的数字。但是,一个幽灵萦绕在所有这些创造物之上,一个我们必须以科学家般冷酷的诚实提出的问题:我们怎么知道这个模型不是一个宏伟的虚构作品?我们如何能信任它来设计一架更安全的飞机或一种更有效的药物?

从一组方程到一个值得信赖的预测工具的旅程是一次严谨的朝圣,由两个根本性的、且截然不同的问题所引导。回答它们构成了我们称之为​​模型验证与确认​​的基石。

第一:​​“我们是否在正确地求解方程?”​​ 这是​​验证​​(verification)的问题。

第二:​​“我们求解的方程是否正确?”​​ 这是​​确认​​(validation)的问题。

这两个问题听起来可能相似,但它们存在于完全不同的世界。验证是数学和计算机科学的世界;它关乎内部的一致性和正确性。确认是物理学、生物学和工程学的世界;它关乎与我们观察和测量的现实的外部一致性 [@3829625] [@4004211]。你可能有一个完美验证过的模型——一组方程的无暇解答——但它却是完全无效的,因为那些方程与现实毫无关系。反之,你也可以有一个基于正确物理定律的模型,但由于代码中的一个错误导致方程求解不正确而变得毫无用处。要建立一个可信的模型,你必须征服这两个世界。

验证:确保数学正确

验证是我们确保所编写的代码忠实地服务于其理应遵循的数学主人的过程。这是一次内部审计。如果我们的模型是一个复杂的食谱,验证就是在检查我们是否正确阅读了说明,以及我们的烤箱恒温器是否准确。这与食谱本身是否能做出美味的蛋糕无关。我们可以将验证分为两个相关的工作。

代码验证:寻找缺陷

在最基本的层面上,代码验证是关于寻找错误。这是一个细致检查软件实现是否无误的过程。这包括从简单的检查,如确保物理单位在整个代码中保持一致,到更复杂的“单元测试”[@3829625]。

想象一个模拟药物如何在体内移动、与细胞受体结合的模型 [@3923513]。最基本的物理定律之一是质量守恒。如果我们有一个封闭系统,药物的总量——无论是游离的、与受体结合的,还是被清除的——在任何时候都必须被计算在内。一种绝佳的验证形式是编写一个测试,在每个时间步长对模拟中的所有药物进行求和。如果总量在不应该改变的时候发生了变化,那么我们的代码就有缺陷。物理定律被违反了,不是因为我们的理论错了,而是因为我们的实现错了。我们没有正确地求解方程。

这是一个深刻而美妙的想法:我们可以用我们试图建模的物理定律本身来检查我们自己的软件。另一个这样的测试是非负性:药物或蛋白质的数量不能是负数。我们的模拟必须尊重这一点。如果一个状态变量曾经低于零,这表明某些东西在数值上不稳定或实现不正确 [@3923513]。这些检查是抵御我们作为程序员自身易错性的第一道防线。

一个更强大的技术是著名的​​人造解方法(Method of Manufactured Solutions, MMS)​​。问题在于:对于大多数复杂的、真实世界的方程(如描述流体流动的方程),我们没有一个精确、优雅的数学解来与我们的代码进行比较。所以,我们发明一个!我们选择一个漂亮的、平滑的数学函数——任何我们喜欢的函数,我们称之为 umu_mum​——并宣布它为我们的“精确解”。然后,我们将其代入原始的控制方程,比如说 L(u)=f\mathcal{L}(u) = fL(u)=f。由于 umu_mum​ 不是真正的解,它不会使方程平衡。它会留下一个余项,或一个“源项”:L(um)=fm\mathcal{L}(u_m) = f_mL(um​)=fm​。现在,我们有了一个新的、定制的问题:L(u)=fm\mathcal{L}(u) = f_mL(u)=fm​,并且我们知道它的精确解是 umu_mum​。

我们现在可以要求我们的代码来解决这个人造的问题。因为我们知道确切的答案,所以我们可以完美精确地测量我们代码的误差。通过在越来越精细的计算网格上运行代码,我们可以检查误差是否以理论上预期的速率缩小。这是代码验证的黄金标准 [@4003057]。MMS之所以如此重要,是因为真实世界的解析解(如果存在的话)通常只适用于高度简化的案例(如稳定的一维流动),并且不能检验我们代码中所有复杂的、相互作用的部分。通过MMS,我们可以制造一个足够复杂的解,迫使我们程序的每一行代码都得到测试 [@3420646]。

解的验证:近似的艺术

一旦我们的代码得到验证,我们就会转向一个真正的问题——一个我们不知道确切答案的问题。我们仍处于验证的世界,但现在问题略有不同。我们知道我们的代码是正确的,但由于它用离散点的网格来近似连续的世界,我们的解会有一些数值误差。这个误差有多大?

解的验证就是估计这个误差的过程。最常用的方法是系统的网格收敛性研究。我们在粗网格上求解问题,然后是中等网格,再是细网格。通过观察解如何随着网格的细化而变化,我们可以估计在无限精细的网格上的答案会是什么,从而估计我们实际的、有限网格解的误差。像​​网格收敛指数(Grid Convergence Index, GCI)​​这样的工具提供了一种标准化的方式来报告这种数值不确定性,为我们的结果提供一个纯粹来自我们数值选择的置信界限 [@4003057]。这是一个关键步骤。在我们能将模型与真实世界进行比较之前,我们必须对“误差”中有多少仅仅是我们计算机必要近似的产物有一个定量的把握。

校准:调节旋钮

在我们冲向与现实的最终对决之前,通常有一个中间步骤:​​校准​​。大多数模型包含参数——代表系统物理属性的常数,如管道中流体的摩擦力、材料的刚度或生化反应的速率 [@4105665]。通常,我们不知道这些参数的确切值。

校准是调节这些旋钮的过程。我们取一组实验数据——“校准集”——并调整参数,直到模型的输出与数据尽可能匹配。这是一个统计推断的过程,找到能最好地解释我们已经观察到的现象的参数值 [@3327249]。

但这里存在一个巨大的诱惑。很容易“过拟合”一个模型,即将其调节得与校准数据完美匹配,以至于它失去了预测任何新事物的能力。这就像一个学生背诵了去年考试的答案,但对科目没有真正的理解。这就是为什么校准与确认是截然不同的。一个完美拟合其被调节数据的模型尚未被确认。真正的考验在于它必须面对它从未见过的数据 [@3825516]。

确认:真相大白的时刻

最后,我们来到了确认。我们有一个经过验证的代码,可以正确求解一组经过校准的方程。现在我们必须问:这些是正确的方程吗?它们代表了现实吗?确认就是通过将模型的预测与独立的、真实世界的实验数据进行比较来回答这个问题的过程。

“使用情境”

一个至关重要的见解是,一个模型从来不是在某种绝对的、普遍的意义上被确认的。它是在一个特定的​​使用情境(Context of Use, CoU)​​下被确认的。问题不是“这个模型正确吗?”,而是“这个模型对于我需要做的决策来说足够正确吗?”

想象一家制药公司正在开发一个模型,以帮助选择一种新抗癌药物的剂量。决策是找到能够使血液中某种生物标志物达到一定水平的最低剂量,该标志物表明药物正在起作用。CoU是狭窄的:预测一个生物标志物,在一个患者群体中,为一个特定的决策。因此,确认工作不需要证明该模型能预测该药物在所有时间内的所有方面的效果。它必须高度专注于证明其对该特定生物标志物在感兴趣剂量范围内的预测是值得信赖的。如果最大的风险是剂量不足导致临床试验失败,那么确认必须具体表明模型错误地预测成功的概率非常低 [@3923509]。对CoU的关注使得令人生畏的确认任务成为可能和现实。

一场思想的交锋

确认不仅仅是“目测”一张图表,看模型的线是否穿过实验点。它是一场严谨的、定量的对抗。一个适当的确认研究会考虑所有已知的`不确定性来源:实验测量本身的不确定性、模型参数的不确定性(来自校准),以及模拟中的数值不确定性(来自解的验证)。如果模型的预测在这些组合的、量化的不确定性带内与实验结果一致,那么该模型就被认为是已确认的 [@4004211]。

有时,我们有不止一个模型。也许一个更简单,另一个更复杂。哪一个更好?确认提供了一种在它们之间上演“思想交锋”的方式。一个很好的工具是​​贝叶斯因子 (Bayes factor)​​。想象两个相互竞争的生物力学模型 M1M_1M1​ 和 M2M_2M2​,试图预测行走时膝关节上的力。我们用来自一个带有仪器的膝关节植入物的相同实验数据来喂给这两个模型。贝叶斯因子告诉我们,证据在多大程度上改变了我们对一个模型相对于另一个模型的信念。贝叶斯因子 K12=5K_{12} = 5K12​=5 意味着数据使得模型 M1M_1M1​ 的合理性比模型 M2M_2M2​ 高五倍 [@4210762]。这不是一个观点问题;它是对每个模型解释现实能力的定量衡量。

回报:预测能力与可信度

我们为什么要经历这个详尽的过程?最终的大奖是一个具有​​预测能力​​和​​可信度​​的模型。预测能力是经过确认的模型在新情境下(即未用于校准的情境下)做出准确预测的已证实能力,并附有不确定性声明。可信度是我们能够对这些预测给予的合理信任,因为我们有来自验证、校准和确认的证据链来支持它们 [@4004211]。

一个可信的模型成为一个真正的科学仪器。它允许我们探索那些在真实世界中测试起来过于昂贵、危险或不可能的“假设”情景。最重要的是,它做出大胆的、可证伪的预测。它不只是说“生物标志物会上升”;它说“生物标志物在 10.310.310.3 和 12.712.712.7 之间的概率为 95%95\%95%”。如果我们随后进行一个新的实验,结果落在了那个范围之外,那么模型就被驳斥或“被证伪”了 [@3327249]。这不是失败!这是科学进步的引擎。模型的失败告诉我们我们对世界的理解是不完整的,为新的物理学、新的生物学和更深层次的真理指明了方向。

应用与跨学科联系

在我们迄今为止的旅程中,我们探讨了模型验证与确认的原则和机制。我们把它们当作抽象概念,一种计算科学家的思想卫生。但它们真正的力量和美妙并非体现在抽象之中,而是在实践中显现。那些简单、甚至听起来有些天真的问题——“我们是否在正确地求解方程?”和“我们求解的方程是否正确?”——不仅仅是哲学思辨。它们是用来建造现代世界的锤子和凿子,从最安全的发电厂到最能拯救生命的药物。现在,让我们在科学和工程的广阔领域中游历一番,看看这两个问题如何为在一个日益由模拟驱动的世界里建立信任提供了一种通用语言。

安全的基石:极端条件下的工程

有些工程项目是如此庞大、如此复杂,并带有如此巨大的后果,以至于我们根本无法承受犯错。我们不能建造十几座核电站,然后看哪些设计会熔毁。我们不能通过让新的火箭发动机在发射台上爆炸来测试它。在这些领域,我们必须依赖模拟。但是,当一个错误可能是灾难性的时候,我们怎么可能相信一个只存在于计算机内部的预测呢?

这就是验证与确认成为安全基石的地方。考虑一个核反应堆的核心,冷却水在燃料棒之间的狭窄通道中流动。对这种流动的模拟是一个在热工水力学中令人难以置信的复杂问题。为了相信模拟对压力、温度和蒸汽形成的预测,工程师们遵循一个两步走的仪式。首先是​​代码验证​​。他们基本上是在问计算机程序:“暂时忘掉反应堆。你连基本的数学运算能做对吗?”他们用已知精确答案的问题来测试代码。其中最强大的技术之一是人造解方法,即把一个优雅的、虚构的答案代入控制方程,看它能解决什么问题。然后,代码被要求解决这个人造问题,其答案与已知的真理进行核对。如果随着模拟网格变得更精细,代码的误差以可预测的方式缩小,我们就获得了对其实现正确的信心。

只有在代码证明了其数学能力之后,我们才能进行​​模型确认​​。现在我们问:“你的数学是对的,但你的物理学对吗?”模型的物理假设——关于摩擦、湍流和传热——将与来自更小规模、非核的、并且完全安全的实验室实验的真实世界数据进行测试。正是这个艰苦的、由两部分组成的过程,才建立了信任之塔,使我们能够在风险最高时依赖模拟。同样的故事也发生在喷气发动机的设计和工业爆炸的研究中,其中爆轰波的计算模型必须经过严格验证,然后才能与冲击波速度等实验可观测量进行确认。

生命的蓝图:从分子到患者

现在让我们从宏大的工程规模转向我们身体内部错综复杂、隐藏的世界。确保反应堆安全的相同原则也被用于设计和提供现代医学。

当一家制药公司开发一种新药时,首要问题之一是:“这种物质将如何在人体内穿行?”生理药代动力学(PBPK)模型旨在通过模拟药物在一个相互连接的器官网络中的旅程来回答这个问题,每个器官都由一组数学方程表示。在这种情况下,验证是确保模型的数字记账完美无瑕的行为——即药物分子不会无故产生或消失,并且代码完美遵守质量守恒基本定律。然后,确认就是现实检验。模型对药物浓度随时间变化的预测将与从早期临床试验参与者身上采集的实际血液样本进行比较。如果预测与数据匹配,我们就能获得信心,认为我们的模型已经捕捉到了关键的生物学特性,从而允许我们在进行更大规模、更昂贵的试验之前,模拟不同的剂量或患者群体。

这种对保真度的追求甚至延伸到我们用来观察身体内部的工具。一张现代数字X射线图像不仅仅是一张照片;它是由一个复杂探测器产生的定量测量。物理学家可以建立一个模型来预测这个探测器的性能,描述其清晰度(调制传递函数,或 MTFMTFMTF)和噪声(噪声功率谱,或 NPSNPSNPS)。验证包括检查模型是否遵守物理和光学的基本定律——例如,X射线曝光量加倍会使信号加倍,以及量子噪声与光子数的平方根成正比。但确认中隐藏着一个微妙而美妙的陷阱。探测器的整体性能指标,即探测量子效率(DQEDQEDQE),同时依赖于 MTFMTFMTF 和 NPSNPSNPS。如果我们用调节模型所用的相同图像数据来测量清晰度和噪声,我们可能会发现模型对 DQEDQEDQE 的预测看起来很完美。但这可能是一种海市蜃楼——一个两错相消的情况,清晰度模型中的一个错误被噪声模型中的一个错误完美抵消了。进行真正、无偏见的确认的唯一方法是使用完全独立的实验测量来获取清晰度和噪声,确保我们没有在自欺欺人。

新前沿:人工智能、数字孪生和智能系统

随着我们进入人工智能和赛博物理系统的时代,验证与确认的原则变得比以往任何时候都更加关键。

考虑“数字孪生”,这是一个真实世界资产(如风力涡轮机或制造机器人)的活生生的模拟,并不断用传感器数据进行更新。孪生的目的是预测未来——预警即将发生的故障或找到更高效的运行方式。一个经过验证和确认的模型是任何数字孪生的核心。但在这里,第三个成员加入了团队:​​不确定性量化(UQ)​​。一个有用的数字孪生不仅仅给出一个答案;它提供一个带有置信区间的预测,告诉我们:“我有95%的把握,这个部件的应力将保持在失效阈值以下。”这种概率性输出是严格的VVUQ过程的直接结果。

机器学习在科学领域的兴起为V&V开启了引人入胜的新篇章。我们现在可以用大量的材料实验数据集来训练一个深度神经网络,并“教会”它预测一种新合金的行为。但是,这个AI是真正学会了物理定律,还是仅仅变成了一个非常复杂的数字表格?这是一个深刻的确认问题。我们可以不仅测试AI的预测准确性,还测试它对基本原则的遵守情况。我们可以问:你的模型是否尊重标架无关性——即材料行为不能依赖于观察者坐标系的物理定律?它是否通过确保能量在非弹性过程中总是被耗散而不是被创造,来遵守热力学第二定律?这些测试对于区分一个有物理基础的AI和一个聪明但不可靠的模仿者至关重要。

在医学领域,风险无处其高。想象一下,一个AI系统在医院的重症监护室里,分析患者的数据流,并向医生预警败血症的微妙早期迹象。在这样一个系统能够被信任之前,它必须通过一系列的检查。验证不再仅仅关乎数学;它关乎对详细安全规范的符合性。模型在不同患者人口统计学上是否公平?是否有防护措施防止它在新数据上出现异常行为?反过来,确认超越了与数据的简单比较。它变成了一个正式的、前瞻性的临床试验,由伦理委员会监督,以回答唯一真正重要的问题:这个AI是否真的能帮助医生拯救生命?

建立信任的通用准则

我们的旅程跨越了广阔多样的领域。我们看到了同样的核心V&V思想如何应用于一种新型复合材料的多尺度模型——在这种模型中,代码必须在微观尺度、宏观尺度以及两者之间的桥梁上得到验证,然后整个层次结构才能在所有相关尺度上与实验进行确认。

也许V&V社会重要性的最终体现可以在卫生技术评估(HTA)的世界中找到。当一种新的、昂贵的癌症药物被开发出来时,国家卫生组织必须决定是否为其付费。这个决定通常由复杂的决策分析模型指导,这些模型模拟长期的成本和效益。HTA机构已将我们那两个简单的问题形式化为一个严格的框架。他们要求提供​​验证​​(通常通过独立的代码审查)、​​表面效度​​(临床医生和患者是否同意模型的结构是合理的?)、​​内部效度​​(模型在极端假设下是否表现得合乎逻辑?)和​​外部效度​​(其预测是否与来自独立来源的真实世界数据匹配?)的证据。

从恒星的核心到细胞的运作,从AI的伦理到医疗保健的经济学,我们理解和塑造世界的能力取决于我们的模型。验证与确认不仅仅是一个技术清单;它们是我们建立对这些模型信任的科学和伦理基础。它们是了解我们所知,以及了解我们所知程度的纪律性实践——一个在复杂世界中建立可信度的通用语言。