测试或嵌入机器学习模型

在这个场景中,在仿真环境中使用经过训练的机器学习模型。换句话说,机器学习模型首先是在AnyLogic生态系统之外训练的。之后,为了评估或利用其预测能力,可以将其作为仿真模型的一部分。
测试或嵌入机器学习模型需要在运行时连接训练好的机器学习模型和仿真模型。AnyLogic提供多种连接选项,无论使用何种语言训练的ML模型,都可进行本地和远程的连接。

应用案例 工作流程和工具

案例1:机器学习模型作为表示模型中抽象行为的输入的替代方案

在仿真模型中,输入参数的一种用途是根据真实系统中存在的因果规则(例如延迟时间、到达率等)定义一些近似行为;这些通常被建模为单变量随机变量,或者在某些情况下,被建模为具有多变量概率分布的随机向量。作为替代,机器学习(ML)模型可用于这些类型的输入参数。


案例2:使用机器学习模型来近似模拟系统中组件的行为

当仿真模型中的某些组件由于需要大量细节而非常复杂时,可以使用经过训练的机器学习(ML)模型作为替代来近似其行为。这与前一个案例类似,但涉及到模型的特定组件,该组件可能不一定可以用单个值(或分布)进行抽象。一个明显的例子是一个物理设备,它很难用一般的仿真方法建模,但是却可以很容易地基于机器学习近似的真实数据进行建模。


案例3:将任何现有的、已部署的机器学习模型合并到仿真环境中,以提高其准确性

仿真模型应该复制真实系统的规则——这一事实也适用于给定系统中的任何现有嵌入式人工智能解决方案。系统部署的人工智能解决方案直接产生的规则和行为也应纳入仿真中。实现这一点最自然的方式是直接将人工智能解决方案嵌入到仿真中。


案例4:部署前测试人工智能解决方案对系统整体性能的影响

将人工智能组件嵌入系统的目的是提高系统的整体性能,而不仅仅是由人工智能所替代的特定组件。合理的预期是,部署训练有素的人工智能解决方案将显著提高目标系统的整体性能。然而,系统中的任何扰动都有可能改变任何瓶颈或引起其他连锁反应。单独测试一个经过训练的模型(例如,使用测试数据样本)并不能验证修改后的系统(作为一个整体)的性能是否得到了充分改善。仿真模型可以用作虚拟、无风险的环境,测试将人工智能纳入现有系统的影响。


案例5:数学可视化!

数据科学家懂得如何向那些不熟悉其中的细微差别或含义的人(例如,客户、经理或决策者)展示和交流其机器学习(ML)解决方案的效果。仿真建模软件会以一种既具有视觉吸引力又易于理解的方式呈现模型的动态行为。因此无论有没有机器学习解决方案,它都可以用来直观地显示仿真环境的性能。


案例6:在原始仿真环境中测试强化学习(RL)策略

强化学习的最终目标是学习一个能够优化控制系统的有效策略。由于学习过程(训练)是在仿真环境中完成的,因此同样的仿真模型也可用于测试学习的策略!在将所学策略部署到实际系统之前,评估其性能将是一个有用的步骤,这一过程通常被称为“仿真到实际的转变”。

工作流程和工具

测试或嵌入机器学习(ML)模型时,运行过程都需要在经过训练的 ML 模型和仿真模型之间建立连接。AnyLogic 提供了三个连接机器学习(ML)模型的通用选项,可以无需考虑机器学习(ML)模型的训练语言,并支持本地和远程连接。

使用ONNX Helper库访问机器学习模型

使用ONNX Helper库访问机器学习模型

使用ONNX Helper库访问以“.onnx”格式保存的经过训练的机器学习模型。

ONNX格式是开放神经网络交换的缩写,是一个标准化的、框架的可互操作格式,用于训练过的机器学习模型。

虽然已有一个兼容的Java库,但它需要相对高阶的技术知识才能使用。ONNX Helper是一个免费下载的附加库,与所有版本的AnyLogic(个人学习版、科研版、专业版)兼容。它提供了一种简单易行的查询机器学习模型的方法,允许用户简单地在模型中拖动它并使用单个函数。

了解更多
通过API调用进行通信

通过API调用进行通信

与机器学习(ML)/自主机器学习(AutoML)平台托管的机器学习(ML)模型进行远程通信(通过API调用)

任何经过训练的机器学习(ML)模型都可以通过API进行查询。几乎所有流行的机器学习(ML)/自主机器学习(AutoML)平台都提供了一种简单的机制来实现这一点。在仿真中,可以添加简单的代码,以便在适当的时间构造请求并应用返回的预测。这个工作流从经过训练的机器学习(ML)模型的编程语言中抽象出来。

将机械学习模型嵌入到仿真环境中

将机械学习模型嵌入到仿真环境中

将经过训练的机器学习(ML)模型嵌入到仿真环境中

当训练使用 Java(AnyLogic的本地语言)或训练平台允许以 Java 中可用的格式导出机器学习(ML) 模型时,可以对训练的机器学习(ML) 模型进行本地查询。例如,使用 H2O.ai 无人驾驶 AI,可以将经过训练的模型下载为 MOJO(模型对象,优化的)——一种可以在 Java 库的帮助下部署在任何 Java 环境中的评分引擎。

使用Pypeline库访问机器学习模型

使用Pypeline库访问机器学习模型

使用Pypeline库在本地访问基于Python的经过训练的机器学习(ML)模型。

如果Python库可以访问已部署的经过训练的机器学习(ML)模型,那么可以使用Pypeline——一个定制的AnyLogic库——来查询它。Pypeline允许您使用Python的本地安装,在AnyLogic模型中执行带参数的Python脚本,或以交互方式运行Python代码。

了解更多