原文地址:https://mp.weixin.qq.com/s/ooKqNufi-3oWUqYpDEOiSA

作者简介
张霖:北京航空航天大学教授。曾任国际建模仿真学会(SCS)主席,中国仿真学会常务副理事长,北航自动化学院副院长等。现为中国工业合作协会仿真技术产业分会会长,中国仿真学会常务理事,SCSFellow,中国仿真学会会士,复杂产品先进制造系统教育部工程研究中心主任,复杂产品智能制造系统技术国家重点实验室学术委员会委员,航天系统国家级仿真重点实验室学术委员会委员,国家 863 主题项目首席专家,国家重点研发计划项目负责人。国家 863 十五周年先进个人、全国优秀科技工作者、国际仿真领域学术研究最高奖 SCS 杰出成就奖获得者。研究方向:复杂系统建模仿真,云制造,基于模型的系统工程,模型工程,建模语言,工业互联网等。

# 仿真是什么?

仿真技术通过建立物理对象的计算机模型(数字化模型),在虚拟世界中观察分析物理对象的特性。基于数字化模型的仿真可以完全打破时间与空间的限制。在虚拟空间中,可以几乎没有任何禁忌地对物理对象进行各种观察、开展各类实验。由于不是利用真实的物理设备,而是采用数字化的模型,因此无论这些实验在现实世界中是多么极端、多么恐怖、多么不可思议,在虚拟的环境中都不会增加多少风险和成本。通过这些实验,可以对物理世界进行全面的认识,并为改造物理世界提供建议和参考,有时甚至可以对尚未发生的事情进行预测。而模型一旦被建好,就可以被无数次的重复使用,也不会因为破坏性的实验而受到损坏。这样的仿真系统所带来的好处是巨大的,在各行各业都有着十分广阔的应用前景。

# 仿真可信吗?

然而,如此科幻般的技术,却一直有一个挥之不去的烦恼伴随左右,这就是仿真的可信问题。

仿真并不只是对已发生事情的复现,其更重要的价值在于通过研究虚拟世界来对现实世界中的行为做出决策。而使用者试图依赖仿真结果进行决策时,最大的顾虑便是仿真的可信性。

自从仿真技术诞生之日起,可信问题就一直困扰着仿真界,并事实上已成为影响仿真应用的最大障碍。如果可信问题得不到解决,所有在虚拟世界中获得的知识都将无法用来指导现实。那数字化、虚拟化就只能给人类提供一个脱离现实的娱乐场,而无法对现实世界提供任何有价值的参考和指导,仿真也就失去了其现实意义。

是否可信,可以说是对仿真的一个灵魂拷问。

# 仿真可信,关键在于模型可信

仿真的可信性反映的是用户对仿真结果正确性的一种信任。造成仿真不正确的因素有很多,但最大的问题来自于模型。

仿真是一种基于模型的活动,完成一个计算机仿真任务,大致的流程是这样的:首先根据仿真任务的需求建立概念模型,在概念模型的基础上建立数学模型,再对数学模型设计相应的求解算法,并将算法写成计算机程序,然后由计算机运行给出结果。算法和程序是模型的不同表现形式,因此在仿真领域也都称为模型,即计算模型和仿真模型。所以这里的模型,是指概念模型、数学模型、算法模型和仿真模型的总称。这其中每一个环节的每一种模型都可能出现错误,当然计算机本身也可能造成仿真结果出现问题,但一般会在算法设计和软件开发时考虑尽量减少硬件故障给仿真带来的影响,这些考量都可纳入模型的范畴。

仿真中另一个重要的因素是数据。在建模和仿真的各个环节,都离不开数据。基于错误的数据所建立的模型和开展的任何活动都是没有意义的。数据最核心的问题是其真实性,以及在数据处理和使用过程中是否被污染。数据大致可分为人工生成的数据(如文档、报表、多媒体数据等)和机器生成的数据(如通过各种传感器采集的数据或软件计算得出的数据)。人工数据的真实性需要机制和制度保障,机器生成的数据的真实性取决于设备和软件的可靠性。如果保证了数据的真实性,关于数据的其他问题,其实都可以归为建模技术的范畴,比如对数据过多、数据过少、数据噪音等问题的处理。

因此仿真可信性主要取决于模型的可信性。而随着数字工程、基于模型的系统工程、人工智能等技术的发展,模型的应用实际上已经超越仿真领域本身,成为各行各业数字化建设的基础。

这里也就主要谈一谈模型的问题。

# 是否存在一个完全可信的模型?

严格地讲,如果要 100% 地信任一个模型,需要这个模型 100% 正确,也就是这个模型能把真实世界的对象完完全全而且毫厘不差地描述出来。

实际情况是,就目前人类的科技水平而言,要做到这一点是不可能的。比如,你家院子里有一棵树,你想建立这棵树的模型。

于是你让同事在计算机里建立了一个三维模型,把这棵树的外形绘制的看起来很 “逼真”,树和树叶的颜色、光线看起来很真实,甚至当一阵风吹过来,树叶也有模有样地随风摆动。那这个模型是否可信呢?不同的人可能给出完全不同的答案。

你上小学的儿子感觉很满意。因为它的形状、颜色甚至树杈上的鸟窝都很像,一阵风吹过时,树枝树叶也在摆动,甚至也会像院子里的树一样有树叶飘落在地上。他觉得这个模型是正确的,是完全可信的。

可作为工程师的你,却并不满意。因为当你仔细观察时,发现树枝和树叶的摆动方向和幅度,和真实的情况并不相符。而且每次被风吹过之后,落下的树叶的数量和院子里的树也不相同,树叶在空中的姿态和落在地上的位置差的更远。因此在你眼里,这个模型显然是不正确的,当然也是不可信的。

事实上,判断一个模型是否 “正确” 或者说对模型的信任,取决于你要用这个模型做什么。

如果这棵树只是某个游戏画面中的一个背景,树叶在风中摆动,一片片的树叶被吹落洒在地上。就像你儿子只要看到这个画面就满意了,就认为这个模型是 “正确” 的了,也就是可信的。

但如果你作为一个工程师,想要用这个模型去研究这棵树被某个强度的风吹过时,会有多少片树叶掉下来,哪些树叶会掉下来,以及每片树叶在落地的过程中在空中的飘舞的姿态和飘落的路径。这时你会发现,画面中的那个看起来不错的模型就无法满足你的要求。因为树叶能否被吹落和很多因素有关。比如在某个强度的风力下每片树叶的摆动幅度、方向,这片树叶的形状、大小,树叶的茎有多长、多粗、柔韧性如何,能承受多大的外力。还有风、树和环境之间更复杂的耦合关系,比如风从树叶中间穿过,吹到对面的土墙上,又被弹回来,再次穿过树叶,又撞到另一面的墙上,再被弹回来,再次穿过树叶;树叶和树叶又会有相互碰撞;树叶长在树枝上,树枝的晃动又会带动树叶晃动,一条树枝的摆动也可能碰到其他的树叶,树枝和树枝之间又相互纠缠;而每条树枝的长短、粗细也会影响他们各自的摆动状态。还有,树叶和树枝连接的有多牢固,能承受多大的外力。每片树叶的生长的时间也不一样,含水量也不同,导致重量和韧性不同,还有的树叶被虫子咬了一口。还有,树干也会跟着风晃动,反过来又会影响树枝和树叶的运动。而风在吹过树叶中间时,本身也会受到反作用力而发生方向和速度的变化。这些因素相互纠缠在一起,这个模型将异常复杂。这还没有考虑院子外面的环境,空气的温度、湿度、院子外面的建筑,甚至从院外马路上开过的车辆,… 。显然,如果把这些要素全部考虑进去,需要数十甚至上百个方程,然后把它们放在一起进行分析,缺少了任何一个要素的模型都不能说是一个正确的模型。从这个意义上讲,你的同事所建立的这个模型就是 “错误” 的,是不可信的。

事实上,这个模型的可信程度取决于你要研究的内容和精度,研究的内容越多越复杂,要求的精度越高,需要考虑的因素就越多,这个模型就离正确越远,也就越不可信。

因此说,一个模型是不是可信,很大程度上取决于这个模型的用途。抛开用途或需求而谈模型可信是一个伪命题,因为我们永远也无法获得一个绝对可信的模型。

# 如何进行可信评估?

# 基于输入输出的评估

如果明确了模型的用途,如何判断其正确性呢?最直接的方法,是通过加载输入数据判断模型的输出结果是否和理论数据或实验数据一致。这也是目前采用的最多的一类方法。

但模型的输出正确,模型就一定正确吗?

这类方法并不关注模型的内部结构,也就是把模型当作一个黑盒子。理论上讲,如果输入所有可能的数据,输出都正确的话,模型无疑应该是正确的。但现实情况是,我们不可能穷尽所有的情况,特别是未来可能发生的情况。事实上,只要有一组数据输出不正确,就可以证明模型是不正确的。通过比较输出结果只能做到证伪,无法进行证实。

# 模型的校核、验证与确认( VV&A )

既然仅仅通过输出结果无法判定模型的可信,那就还需要增加一些手段。仿真界经过几十年的努力,发展出一个专门的方法体系,即 VV&AVerification , Validation & Accreditation ),中文翻译为校核verification验证validation确认accreditation。前面提到的考察输出结果是否满足要求的方法就属于验证方法,在此之外又增加了校核和确认两个环节。

有一个形象的说法,验证validation是考察是否建立了一个正确的模型,而校核verification则是考察是否正确地建立了模型。校核和验证相互补充。校核的过程是对所建模型的结构及内部逻辑进行正向的分析,以判断其正确性和合理性。校核是在模型运行之前进行的。从校核的过程可以看出,校核是一个可解释的过程,能够进行校核的模型必须是白盒模型,这样的模型包括人工构建的概念模型,数学模型,算法模型,以及仿真模型。而对于不明就里的黑盒模型,校核就无从下手了。因此,所有的模型都可以进行验证,但并非所有的模型都可以进行校核。

但是即使经过校核和验证的模型,仍然不能保证模型的正确性。因为整个过程中仍可能存在诸多的漏洞和不确定性,如所选用的评估方法不一定合适或者评估方法本身就不可靠,评估过程不够规范,评估人员业务水平欠缺或评估经验不足等等,这些都将导致最终的评估结果令人怀疑。

因此,在校核和验证之后还需要增加确认accreditation环节,就是甲方根据自己的需求和开发方提供的过程材料进行最终的审定,以尽可能减少评估过程的不确定性带来的影响。这个确认的过程,可以理解为我们熟悉的由甲方进行的验收过程。

# VV&A 缺失的评估环节

对一个模型经过 VV&A 三个环节之后,是否就可以完全信任了呢?不是。因为在现有的 VV&A 体系中仍然缺失了一些重要的环节。

众所周知,对一个人的信任,来自于对他 / 她的了解。如果对一个人从小到大的成长经历、学习经历、工作经历、成长环境、为人处世的态度、人生观、价值观等等,有充分的了解,那么把一件事情交给他 / 她的时候,就会心里有数。而对于一个完全不了解的陌生人,是很难产生信任感的。

对模型的信任,同样也需要对模型的成长经历有充分的了解,包括开发过程、开发方式、开发人员的水平和资质等等。比如开发过程是否规范、遵循了什么标准,文档是否齐全,文档和数据是否管理得当;开发人员的知识背景如何,是否经过培训,具有哪些资质和经验;使用的软件工具是自研的还是商业的,如果是自研的,是否经过评测和认证;如果是商业的,是哪家公司的,在业界的口碑如何;建模用的什么理论,这个理论是否得到广泛承认,考虑了哪些约束条件,做了哪些处理和简化,等等。

在已有的 VV&A 方法体系或相关标准里,主要关注对已经建好的模型本身的评估和验证,而恰恰忽视了对模型开发过程和开发人员 / 机构的评估。

在软件工程中,有一个能力成熟度模型CMMI,主要用于软件开发能力的评估并指导软件开发过程的改进。而对于模型,目前国内外都还没有建立起一个类似的能力成熟度评估体系。之所以没有建立这样的体系,一个重要的原因是建模还没有像软件开发一样成为一个独立的职业和行业。仿真在过去几十年,建模人员分散在各个行业、各个单位的各个部门,一直是处于一种散兵游勇的状态,建模活动也没有形成规模。

但近些年的情况正在发生快速的变化,大众对仿真的认识快速提升,各行各业对仿真的需求快速增长,各类大型仿真系统对建模规范化的要求越来越高、需求越来越迫切,仿真建模人员的规模也快速扩大。随着仿真技术的更加广泛和深入的应用,仿真也从锦上添花的辅助手段逐渐演变为不可或缺的刚性需求。与此同时,其他领域对模型的需求也日益提高,因此,建模也必将发展成为一个高度专业化的职业和行业。对建立一套完善的建模能力成熟度评估体系的需求越来越迫切。

# 如何保障模型可信?

如何根据特定需求获得可信的模型是一个复杂的系统工程,需要一个专业化的体系进行支持和保障。这个体系需要由政府或有关行政管理部门、第三方专业机构、专业公司、科研院校等共同建设,主要包括方法体系、标准体系、软件工具、专业人员 / 机构和监管部门。

# 方法体系

从仿真的角度讲,模型可分为概念模型、数学模型、算法模型和仿真模型,不同类型的模型其建模方法各不相同,即使同一种类型的模型,面向不同领域、不同应用的模型的构建方法也不相同。而同一领域、同一类型的应用,也有不同的建模方法可供选择。评估也一样,针对不同类型的模型,也需要采用不同的方法进行评估。同样,针对同一类型的模型也有不同的评估方法可供选择。据不完全统计,目前可用于模型校核、验证和确认的方法有近百种之多,而且还在不断的增加。事实上,无论是模型构建方法,还是模型评估方法,模型和方法之间都是多对多的关系。每一种方法都有其适用范围和约束条件,针对某个具体的建模或评估任务时,应该选择哪个方法是极具挑战性的。因此针对模型构建和评估方法,仍需要开展大量的研究工作,包括方法的梳理、分析、匹配,以及开发新的方法等。

  1. 建模方法:提供最合适的建模方法,包括数据处理、模型构建、算法设计、软件开发等方法;针对物理对象的特点推荐合适的建模方法;利用新技术研发更高效、更实用的新方法。

  2. 评估方法:提供最合适的评估方法,包括针对数据、模型、算法、软件和过程的评估方法;针对对象的特点推荐合适的评估方法;利用新技术研发更高效、更实用的新方法。

# 标准体系

前面提到的这些方法,在实际应用时仍然存在许多环节会受到人为因素的影响,同一个方法不同人使用,得出的结果不一致的情况也时有发生。因此要想充分发挥好每个方法的效用,减少由于使用带来的不确定性,就需要对各个方法的使用进行标准化和规范化,即为每种方法建立一套标准的操作流程,这样才能保证所构建模型的规范性以及评估结果的一致性。此外方法的选择、过程管理以及建模和评估中涉及的数据也都需要相应的标准。

  1. 建模标准:建模方法实施标准、方法选择标准、建模过程管理标准、建模数据相关标准等。

  2. 评估标准:评估方法实施标准、方法选择标准、评估过程管理标准、评估数据相关标准等。

# 软件工具

无论是模型构建还是评估,都离不开软件工具的支持。理想的情况应该是在方法和标准已经就绪的情况下,开发相应的工具,这样能最大限度地保证不同人员或不同机构开发的模型做到最大限度的标准化,以便于模型的共享、重用以及互操作。

  1. 建模工具:基于成熟的建模方法和建模标准形成的工程化建模软件工具族。

  2. 评估工具:基于成熟的评估方法和评估标准形成的工程化评估软件工具族。

# 专业人员 / 机构

无论是建模还是评模,都是专业性很强的工作,都需要很强的专业背景和丰富的实践经验,对从业人员和机构的要求都很高。而建模和评模需要由不同的人员、不同的机构来完成,才能使模型的质量得到最大程度的保障。目前,建模工作主要由研究人员或企业技术人员完成,而专业的第三方模型评估机构也还是空白。

  1. 专业化的建模人员和机构:面向不同行业、不同领域,培养建立专业化的建模人员队伍,逐步形成规模化专业化的建模机构(组织或企业),使建模成为一种新兴的行业。

  2. 专业化的评估人员和机构:面向不同行业、不同领域,培养建立专业化的模型评估人员队伍,在此基础上,建立多层级、多领域的专业认证机构,提供第三方模型评估服务。

# 认证 / 监管部门

政府 / 行政部门需要对建模人员 / 机构和评估人员 / 机构进行资质认证和监督管理,以确保专业人员的业务水平和能力以及专业机构的健康运行和发展。根据建模行业发展情况,逐渐建立起完善的认证 / 监管体系。

一个完整的模型可信保障机制如下图所示。可信机制的建设是一个循序渐进的过程,对一个具体的单位或部门而言,其可信保障机制可根据承担仿真任务的具体情况以及仿真决策的后果及影响,有步骤有计划地逐步实施,不必一味求大求全。

# 总结

可信问题一直伴随着仿真技术的发展。模型可信是保证仿真有效性和可用性的根本。随着模型的规模和复杂性日益提高,保证模型可信成为一项复杂而庞大的系统工程(即模型工程)。需要高校、科研院所、企业、政府等多方共同发力,建立起一个完善的可信保障体系,才能最大程度地提高模型的质量,从而突破仿真技术乃至各类数字化技术发展的瓶颈,为全社会的数字化转型提供有力的保障。