基于机器学习和约束优化的数字孪生建模
译者 | 朱先忠
审校 | 孙淑娟
简介
如今,数据科学被广泛用于创建数字孪生(Digital Twins)——数字孪生是现实世界物理系统或过程的数字对应物,可用于输入行为、监控、维护、规划等的模拟和预测。虽然诸如认知客户服务机器人这类数字孪生在日常应用中很常见,但在本文中,我将通过举例说明行业中的两种不同类型的数字孪生,来比较用于建模这两种不同类型孪生的数据科学技术。
本文讨论的数字孪生的两个广泛使用的数据科学领域如下:
a)诊断和预测分析:在这种分析方法中,给定一系列输入,由数字孪生来诊断原因或预测系统的未来行为。基于物联网的机器学习模型用于创建智能机器和工厂。通过该模型,可实时分析传感器的输入,以诊断、预测并在未来问题和故障发生之前预防它们。
b)规定性分析(Prescriptive Analytics):这种分析方法对整个网络进行模拟,以便在给定一组要遵守的变量和约束条件的情况下,从大量候选方案中确定最佳或可行的解决方案,通常目标是最大限度地实现规定的业务目标,如吞吐量、利用率、产出等。这些优化问题被广泛应用于供应链计划和调度领域,例如当物流供应商为其资源(车辆、人员)创建一个时间表,以便最大限度地准时交货;还例如当制造商创建一个计划,以便优化机器和操作员的使用,从而实现最大限度的OTIF(On Time In Full,即“按时按量”)交货。这里使用的数据科学技术是带约束条件的数学优化,此算法使用功能强大的求解器来解决复杂的决策驱动问题。
总之,ML模型根据历史记录数据来预测给定输入功能集的可能结果,而优化模型可以帮助您决定,如果预测结果发生,您应该如何计划解决/缓解/利用它,因为您的企业有几个可能相互竞争的目标,您可以选择用有限的资源来实现这些目标。
数据科学的这两个领域在共享一些工具(如Python库)的同时,调动具有完全不同技能的数据科学家——他们通常需要不同的思维方式和业务问题建模方法。因此,让我们尝试了解和比较所涉及的方法,以方便在一个领域经验丰富的数据科学家能够理解并交叉利用可能适用于另一个领域的技能和技术。
数字孪生模型应用案例
为了进行比较,让我们考虑一个基于ML的生产根本原因分析(RCA:Root Cause Analysis)过程的孪生模型,其目的是诊断成品或制造过程中发现的缺陷或异常的根本原因。这将有助于部门经理根据工具的预测排除最可能的根本原因,最终确定问题并实施CAPA(Corrective & Preventive actions:纠正和预防措施),快速且无需花费太多人力即可浏览所有机器维护记录、操作员历史记录、过程SOP(Standard Operating Procedure:标准作业程序)、物联网传感器输入等。目标是最小化机器停机时间、生产损失并提高资源利用率。
从技术上讲,这可以被认为是一个多类别分类问题。在该问题中,假设存在一定的缺陷,那么模型会试图预测一组可能的根本原因标签中每一个标签的概率,例如机器相关、操作员相关、工艺说明相关、原材料相关或其他方面的相关性,以及在这些一级分类标签下属的例如机器校准、机器维护、操作员技能、操作员培训等细粒度原因。尽管这种情况的最佳解决方案需要评估若干个复杂的ML模型,但为了强调本文的目的,让我们作一下简化——假设这是一个多项式逻辑回归问题(原因将在下一节中明确)。
为了进行比较,我们不妨来考虑一个生产计划流程的优化孪生模型,它生成一个时间表,根据机器、操作员、流程步骤、持续时间、原材料到达时间表、到期日期等,试图最大化目标,如产量或收入。这样的自动化时间表有助于组织快速调整资源,以应对来自市场的新机遇(如新冠肺炎引起的药物需求),或通过改变其原材料、供应商、物流供应商和客户/市场组合,最大限度地减少不可预见事件(如最近的供应链瓶颈)的影响。
在建模任何业务问题的基本层面上,开发此类数字孪生需要考虑以下因素:
A、输入特征或维度
B、输入数据——这些维度的值
C、输入到输出的转换规则
D、输出或目标
接下来,让我们更深入地分析和比较机器学习(ML)和约束条件下优化模型中的这些因素:
A、输入特征:这些是系统中的数据维度,既适用于ML,也适用于优化。对于试图诊断生产过程中问题的ML模型而言,需要考虑的特征可能包括:物联网输入、机器维护历史数据、操作员技能和培训信息、原材料质量信息、遵循的SOP(标准作业程序:Standard Operating Procedure)等内容。
同样,在约束条件下的优化环境中,需要考虑的特征会包括:设备可用性、操作员可用性、原材料可用性、工作时间、生产率、技能等制定最佳生产计划所需的典型特征。
B、输入数据:这是上述两种方法以明显不同的方式使用特征值的地方。其中,ML模型需要大量的历史数据用于训练。然而,在将数据提供给模型之前,通常需要进行与数据准备、管理和规范化相关的大量工作。需要注意的是,历史记录是实际发生的事件的记录(例如机器故障或导致输出不足的操作员技能问题),但通常不是这些特征所能获得的所有可能值的简单组合。换言之,事务历史记录会包含更多的那些频繁发生的场景下的记录,而其他一些场景中的记录相对较少——可能很少包含很少发生的场景。训练模型的目标是,使之能够学习特征和输出标签之间的关系,并能够预测准确的标签——即使是在针对训练数据中存在很少甚至不存在特征值或特征值组合的情况下。
另一方面,对于优化方法而言,特征值通常保留为其实际的数据,例如,天数、批次、截止日期、按日期列出的原材料可用性、维护计划、机器转换时间、工艺步骤、操作员技能等。与ML模型的关键区别在于,输入数据处理需要将主数据特征值(例如,天数、技能、机器、操作员、过程类型等)的每种可能的有效组合生成索引表,从而形成可行解决方案的一部分。例如,操作员A在一周的第一天使用机器M1,以S1的技能水平执行流程的步骤1,或者操作员B在第二天使用M1的机器,以S2的技能级别执行步骤1;甚至对于操作员、机器、技能水平、日期等的每一种可能的组合,而不考虑这些组合是否在过去实际发生过。这将导致提供给优化引擎的输入数据记录集非常大。优化模型的目标是在最大化(或最小化)目标方程的同时,选择符合所给定约束的特定特征值组合。
C、输入到输出的转换规则:这也是两种方法的一个显著差异。虽然ML和优化模型都基于高等数学理论,但与ML相比,在优化方法中对复杂的业务问题进行数学建模和编程通常需要付出更多的努力,这将在下面的介绍中体现出来。
原因在于,在ML中,借助于类似scikit-learn这样的开源库,Pytorch或Tensorflow等框架乃至云服务提供商的ML/深度学习模型,将输入转换为输出的规则完全交给模型来查找,其中也包括为了导出最佳规则(权重、偏差、激活函数等)而进行损失校正方面的任务。数据科学家的主要责任是确保输入特征及其值的质量和完整性。
而对于优化方法来说,并非如此,因为输入如何相互作用并转换为输出的规则必须通过使用详细的方程式进行编写,然后提供给Gurobi、CPLEX等求解器,以便找到最佳或可行的解决方案。此外,将业务问题表述为数学方程需要深入了解建模过程中的相互关系,并需要数据科学家与业务分析师密切合作。
下面,让我们通过针对问题RCA(根本原因分析)应用程序的逻辑回归模型示意图来说明这一点:
逻辑回归ML模型
注意,在这种情况下,根据输入数据来生成结果的规则(Zᵢ)计算任务留给模型来推演,而数据科学家通常忙于使用定义良好的混淆矩阵、RMSE等度量技术以可视化方式来实现精度预测。
我们可以将此与通过优化方法生成生产计划的方式进行一下比较:
(I)第一步是定义封装计划流程的业务规则(约束)。
以下是一个生产计划的示例:
首先,我们定义一些输入变量(其中一些可以是决策变量,用于驱动目标):
- Bᵦ,p,ᵢ——二进制变量,表示产品p(产品表中)的批次β(批次表中)是否安排在第i天。
- Oₒ,p,ᵢ——二进制变量,表示索引o处的运算符(在运算符表中)是否计划在第i天处理一批产品p。
- Mm,p,ᵢ——二进制变量,表示索引为m的机器(在机器表中)是否计划在第i天处理一批产品p。
以及一些系数:
- TOₒ,p——操作员o处理一批产品p所花费的时间。
- TMm,p——机器m处理一批产品p所花费的时间。
- OAvₒ,ᵢ——运营商在第i天索引o的可用小时数。
- MAvm,ᵢ——第i天索引为m的机器可用小时数。
在这种情况下,一些约束(规则)可以使用如下方式来实现:
a)在计划中,特定批次只能启动一次。
其中,对于每批产品,Bt是批次总数,Pr是产品总数,D是计划中的天数:
b)一个产品每天只能在一个操作员或机器上启动一次。
对于每个产品的每一天,其中Op是所有操作员的集合,Mc是所有机器的集合:
c)批次(所有产品)花费的总时间不应超过当天操作员和机器的可用小时数。
对于每个操作员而言,存在如下约束:
对于每台机器的每一天而言,存在如下约束:
d)如果操作员在计划的前5天内处理一批产品,则必须将同一产品的所有其他批次分配给同一操作员。这可以保持运营商的连续性和生产力。
对于每个操作员和每个产品,每天d(从第6天起)存在如下约束:
以上是需要在程序中编写的数百个约束中的一小部分,以便将实际生产调度场景的业务规则形成数学方程。请注意,这些约束是线性方程(或者更具体地说,是混合整数方程)。然而,它们与逻辑回归ML模型的复杂性差异还是非常明显的。
(II)一旦确定了约束条件,就需要定义输出目标。这是一个关键步骤,可能是一个复杂的过程,如下一节所述。
(III)最后,将输入决策变量、约束和目标发送给求解器,以获得解决方案(时间表)。
描述基于优化方法的数字孪生的示意图如下:
优化模型
D、输出或目标:对于ML模型,根据问题的类型(分类、回归、聚类),可以很好地建立输出和度量其准确性的指标。虽然我不会在本文中深入探讨这些问题,但鉴于现有的大量信息,值得注意的是,可以高度自动化地评估各种模型的输出,例如领先的CSP(AWS Sagemaker、Azure ML等)的输出。
评估优化模型是否生成正确的输出更具挑战性。优化模型通过尝试最大化或最小化称为“目标”的计算表达式来工作。与约束条件一样,目标部分是由数据科学家根据业务试图实现的目标进行设计的。更具体地说,这是通过将奖励条件和罚款条件附加到决策变量来实现的,优化器试图将其总和最大化。对于现实世界的问题,需要多次迭代才能找到不同目标的正确权重,以便在有时相互矛盾的目标之间找到良好的平衡。
为了进一步说明上述生产调度示例,我们不妨设计以下两个这样的目标:
a)时间表应预先加载;应尽快安排批次,计划中剩余的产能应在计划的末尾。为此,我们可以为一个批次附加一天罚款,该批次在计划中的每一天都会逐渐增加。
b)另一方面,我们还希望对同一产品的批次进行分组,以便资源(操作员和机器)部分得到最佳利用,前提是批次满足交货期限,并且组在一次运行中不超过机器容量。因此,我们定义了一个Batch_group_bonus,如果将批次安排在较大的组中而不是安排在较小的组中,它将提供更高的奖金(因此在下面的表达式中为指数)。需要注意的是,这有时可能会与之前的目标交叉,因为今天可能开始的一些批次将与几天后可用的更多批次一起开始,从而可能会导致在计划的早期留下一些未充分利用的资源。
根据求解器的工作方式,实际实现方法中往往需要一个批处理组决策变量。但是,这表达出如下一个概念:
求解器将最大化目标,即有:
目标=Batch_group_bonus+Day_penalty
目标的上述两个组成部分中,哪一个对时间表的给定日期影响更大取决于权重W₁,W₂以及时间表的日期,因为在时间表的后期,天数惩罚值将逐渐变大(i值越高)。如果天数惩罚值在某个点上大于Batch_group_bonus,则规划求解器会发现不安排批次是明智的;因此,即使计划中还有资源容量,也会招致零惩罚,从而安排并招致净负惩罚,从而使目标最大化。这些问题需要由数据科学家们来进行故障排除和加以解决。
ML方法与优化方法的相对工作量比较
基于上述讨论可以推测出,一般来说,优化项目比ML项目要花费更多的精力。在开发过程的几乎每个阶段,优化都需要大量的数据科学工作。具体总结如下:
a)输入数据处理:在ML和优化中,这都是由数据科学家完成的。ML数据处理需要选择相关的特征、标准化、离散化等。对于文本等非结构化数据,它可以包括基于NLP的方法,如特征提取、标记化等。目前,存在基于多种语言的库,可用于特征统计分析以及PCA等降维方法。
在优化中,每个业务和计划都存在需要纳入模型的细微差别。优化问题不处理历史数据,而是将每一个可能的数据变化和已识别的特征组合成决策变量和约束必须依赖的索引。虽然与ML不同,但数据处理需要大量的开发工作。
b)模型开发:如上所述,优化方案的模型制定需要数据科学家和业务分析师的大量努力来制定约束条件和目标。求解器运行数学算法,虽然它的任务是同时求解数百个甚至数千个方程以找到解决方案,但它没有业务背景。
在ML中,模型训练是高度自动化的,算法打包为开源库API,或者由云服务提供商打包。高度复杂、经过预先训练的神经网络模型基于业务特定数据,将训练任务简化为最后几层。AWS Sagemaker Autopilot或Azure AutoML等工具甚至可以自动化输入数据处理、特征选择、培训和评估不同模型和输出生成的整个过程。
c)测试和输出处理:在ML中,可以用最少的处理来利用模型的输出。它通常很容易理解(例如,不同标签的概率),尽管可能需要一些努力来引入其他方面,例如结果的可解释性。输出和错误可视化也可能需要付出一些努力,但与输入处理相比,这些努力并不多。
在这里,优化问题也需要迭代的手动测试,并借助规划专家的训练有素的眼睛进行验证,以评估进度。虽然求解器试图最大化目标,但从进度质量的角度来看,这本身通常没有什么意义。与ML不同,不能说高于或低于阈值的目标值包含正确或错误的计划。当发现一个时间表不符合业务目标时,问题可能与约束、决策变量或目标函数有关,需要仔细分析,以找出大型复杂时间表中异常的原因。
此外,需要考虑的是将求解器的输出解释为人类可读格式所需的开发。求解器输入决策变量,这些变量是计划中实际物理实体的索引值,例如批次组索引、批次优先级索引、操作员和机器索引,并返回已选择的值。需要进行反向处理,将这些索引值从各自的数据帧转换为一个连贯的时间表,该时间表可以由专家直观地呈现和分析。
d)最后,即使在操作阶段,与训练阶段相比,ML模型生成观测预测所需的计算和时间要少得多。然而,每次都是从头开始构建时间表,每次运行都需要相同的资源。
下图是ML和优化项目各阶段相对工作量的粗略说明:
ML与优化相对工作量比较示意图
ML和优化能否协同工作?
机器学习和优化解决了企业的互补问题;因此,ML模型的输出与优化相互促进,反之亦然。AI/ML应用程序,如物联网预测维护和故障检测、AR/VR远程维护和前面提及的生产过程RCA构成制造商的互联工厂战略的一部分。
优化应用程序构成了供应链规划的基础,可以认为是将业务战略与运营联系起来。它们帮助组织应对和计划不可预见的事件。例如,如果在生产线中检测到问题,RCA(根本原因分析:Root Cause Analysis)工具将帮助生产线经理快速缩小可能的原因范围,并采取必要的措施。然而,这有时可能会导致机器意外停机或操作指令的重新指派。因此,可能需要用可用的缩减后产能来重新生成生产计划。
ML的一些技术可以应用于优化,反之如何?
可以将ML项目的经验应用于优化项目中;反之亦然。例如,对于优化输出至关重要的目标函数,有时业务部门在数学建模方面的定义不如约束好,约束是必须遵守的规则,因此通常是众所周知的。举例来说,业务目标如下:
a)在遵守交货期限的同时,应尽可能早地按照优先顺序安排批次。
b)时间表应预先加载;应安排尽可能小的时间间隔和低的资源利用率。
c)批次应分组,以有效利用容量。
d)对高价值产品具有较高技能水平的操作员最好分配此类批次。
这其中的一些目标可能存在需要适当平衡的相互竞争的优先级关系,这导致数据科学家在编写复杂的影响因素组合(如奖金和罚款)时,通常通过似乎适用于最常见的规划场景的尝试和错误来完成;但有时在出现缺陷时,逻辑上很难理解和维护。由于优化求解器通常使用第三方产品,因此,其代码对于构建要调试的模型的数据科学家来说通常是不可用的。这样一来,不可能看到在调度生成过程中的任何特定点上,某些奖金和罚款取了什么值,而正是这些值使其行为正常,这使得编写令人信服的目标表达式非常重要。
因此,上述办法有助于采用奖金和罚款的标准化,这是一种广泛使用的ML做法。然后,可以使用配置参数或其他方式,以受控的方式缩放标准化值,以便控制每个因素的影响、它们彼此之间的关系以及其中每个因素中的前一个和后一个的值。
结论
总之,机器学习和约束优化都是解决组织和日常生活中不同问题的高级数学方法。它们都可用于部署物理设备、流程或网络资源的数字孪生。虽然这两种类型的应用程序都遵循相似的高级开发流程,但ML项目可以利用库和云本地算法中提供的高度自动化,而优化需要业务和数据科学家的密切合作以充分实现对复杂的规划过程的建模。一般来说,优化类项目需要更多的开发工作,并且是资源密集型的。实际开发中,ML和优化工具在企业中往往需要协同工作,这两种技术对数据科学家来说都很有用。
译者介绍
朱先忠,51CTO社区编辑,51CTO专家博客、讲师,潍坊一所高校计算机教师,自由编程界老兵一枚。
原文标题:Digital Twin Modeling Using Machine Learning and Constrained Optimization,作者:Partha Sarkar