这篇文章是与 MathWorks 的 Brad Duncan、Rachel Johnson 和 Richard Alcock 合作撰写的。
MATLAB 是一种流行的编程工具,适用于数据处理、并行计算、自动化、模拟、机器学习和人工智能等广泛应用。 它广泛应用于汽车、航空航天、通信和制造等许多行业。 近年来,MathWorks 将许多产品带入云端,特别是在 亚马逊网络服务(AWS)。 有关 MathWorks 云产品的更多详细信息,请参阅 云端 MATLAB 和 Simulink or 向 Mathworks 发送电子邮件.
在这篇文章中,我们将 MATLAB 的机器学习功能引入 亚马逊SageMaker,它有几个显着的好处:
- 计算资源:使用SageMaker提供的高性能计算环境可以加快机器学习训练速度。
- 合作:MATLAB 和 SageMaker 共同提供了一个强大的平台,团队可以使用该平台在构建、测试和部署机器学习模型方面进行有效协作。
- 部署和可访问性:模型可以部署为 SageMaker 实时端点,使其他应用程序可以轻松访问它们来处理实时流数据。
我们向您展示如何将 MATLAB 机器学习模型训练为 SageMaker 训练作业,然后将该模型部署为 SageMaker 实时端点,以便它可以处理实时流数据。
为此,我们将使用一个预测性维护示例,其中我们对正在传输实时传感器数据的运行泵中的故障进行分类。 我们可以访问从生成的标记数据的大型存储库 Simulink 模拟具有各种可能组合中的三种可能的故障类型(例如,一种正常状态和七种故障状态)。 因为我们有系统模型,并且运行中很少出现故障,所以我们可以利用模拟数据来训练我们的算法。 可以使用 MATLAB 和 Simulink 中的参数估计技术对该模型进行调整,以匹配实际泵的运行数据。
我们的目标是使用此故障分类示例展示 MATLAB 和 Amazon SageMaker 的综合威力。
我们首先使用 MATLAB 在桌面上训练分类器模型。 首先,我们使用以下方法从完整数据集的子集中提取特征 诊断功能设计器 应用程序,然后使用 MATLAB 决策树模型在本地运行模型训练。 一旦我们对参数设置感到满意,我们就可以生成 MATLAB 函数并将作业与数据集一起发送到 SageMaker。 这使我们能够扩大训练过程以适应更大的数据集。 训练模型后,我们将其部署为实时端点,可以集成到下游应用程序或仪表板,例如 MATLAB Web 应用程序。
此示例将总结每个步骤,让您切实了解如何利用 MATLAB 和 Amazon SageMaker 执行机器学习任务。 该示例的完整代码和说明可在此处找到 知识库.
先决条件
- MATLAB 2023a 或更高版本的工作环境,带有 MATLAB 编译器和 Linux 上的统计和机器学习工具箱。 这里有一个 快速指南 了解如何在 AWS 上运行 MATLAB。
- Docker 设置在 Amazon Elastic Compute Cloud(Amazon EC2) MATLAB 正在运行的实例。 任何一个 Ubuntu or Linux.
- 安装 AWS 命令行界面 (AWS CLI), AWS 配置及 Python3.
- 通过运行以下命令将此存储库复制到 Linux 计算机中的文件夹:
- 检查 repo 文件夹的权限。 如果没有写权限,请运行以下shell命令:
- 构建 MATLAB 训练容器并将其推送到 Amazon 弹性容器注册表 (Amazon ECR).
- 导航到文件夹
docker
- 使用 AWS CLI 创建 Amazon ECR 存储库(将 REGION 替换为您的首选 AWS 区域)
- 运行以下 Docker 命令:
- 导航到文件夹
- 打开 MATLAB 并打开名为的实时脚本
PumpFaultClassificationMATLABSageMaker.mlx
在文件夹中examples/PumpFaultClassification
。 使该文件夹成为 MATLAB 中的当前工作文件夹。
第 1 部分:数据准备和特征提取
任何机器学习项目的第一步都是准备数据。 MATLAB 提供了多种用于从数据中导入、清理和提取特征的工具:
SensorData.mat
数据集包含 240 条记录。 每条记录有两个时间表: flow
和 pressure
。 目标列是 faultcode
,它是泵中三种可能的故障组合的二进制表示。 对于这些时间序列表,每个表有 1,201 行,以 1.2 秒的增量模拟 0.001 秒的泵流量和压力测量。
接下来,诊断特征设计器应用程序允许您从数据中提取、可视化和排名各种特征。 在这里,你使用 自动功能,它可以从数据集中快速提取广泛的时域和频域特征,并对模型训练的最佳候选进行排名。 然后,您可以导出一个 MATLAB 函数,该函数将根据新输入数据重新计算排名前 15 的要素。 我们称这个函数为 extractFeaturesTraining
。 该功能可以配置为批量接收数据或作为流数据接收。
该函数生成一个具有相关故障代码的特征表,如下图所示:
第 2 部分:组织 SageMaker 数据
接下来,您需要以 SageMaker 可用于机器学习训练的方式组织数据。 通常,这涉及将数据拆分为训练集和验证集,并将预测数据与目标响应拆分。
在此阶段,可能需要其他更复杂的数据清理和过滤操作。 在这个例子中,数据已经是干净的。 如果数据处理非常复杂且耗时,则可以使用 SageMaker 处理作业在 SageMaker 训练之外运行这些作业,以便将它们分为两个步骤。
trainPredictors = trainingData(:,2:end);
trainResponse = trainingData(:,1);
第 3 部分:在 MATLAB 中训练和测试机器学习模型
在迁移到 SageMaker 之前,最好在 MATLAB 中本地构建和测试机器学习模型。 这使您可以快速迭代和调试模型。 您可以在本地设置和训练简单的决策树分类器。
classifierModel = fitctree(...
trainPredictors,...
trainResponse,...
OptimizeHyperparameters='auto');
这里的训练工作应该不到一分钟就能完成,并生成一些图表来指示训练进度。 训练完成后,生成MATLAB机器学习模型。 这 分类学习器 app 可用于尝试多种类型的分类模型并调整它们以获得最佳性能,然后生成所需的代码来替换上面的模型训练代码。
检查本地训练模型的准确性指标后,我们可以将训练转移到 Amazon SageMaker 中。
第 4 部分:在 Amazon SageMaker 中训练模型
对模型感到满意后,您可以使用 SageMaker 对其进行大规模训练。 要开始调用 SageMaker SDK,您需要启动 SageMaker 会话。
session = sagemaker.Session();
指定 SageMaker 执行 IAM角色 培训作业和端点托管将使用的。
role = "arn:aws:iam::ACCOUNT:role/service-role/AmazonSageMaker-ExecutionRole-XXXXXXXXXXXXXXX";
在 MATLAB 中,将训练数据以 .csv 文件保存到 亚马逊简单存储服务(Amazon S3) 桶。
writetable(trainingData,'pump_training_data.csv');
trainingDataLocation = "s3:// "+session.DefaultBucket+ +"/cooling_system/input/pump_training";
copyfile("pump_training_data.csv", trainingDataLocation);
创建 SageMaker 估算器
接下来,您需要创建一个 SageMaker 估计器并向其传递所有必要的参数,例如训练 docker 映像、训练函数、环境变量、训练实例大小等。 训练图像 URI 应是您在先决条件步骤中创建的 Amazon ECR URI,格式如下 ACCOUNT.dkr.ecr.us-east-1.amazonaws.com/sagemaker-matlab-training-r2023a:latest
。 训练函数应在 MATLAB 实时脚本的底部提供。
提交 SageMaker 培训作业
从估计器中调用 fit 方法会将训练作业提交到 SageMaker 中。
est.fit(training=struct(Location=trainingDataLocation, ContentType="text/csv"))
您还可以从 SageMaker 控制台检查训练作业状态:
训练作业完成后,选择作业链接会将您带到作业描述页面,您可以在其中看到保存在专用 S3 存储桶中的 MATLAB 模型:
第 5 部分:将模型部署为实时 SageMaker 端点
训练后,您可以将模型部署为实时 SageMaker 端点,用于实时进行预测。 为此,请从估算器中调用部署方法。 您可以在此处根据工作负载设置所需的托管实例大小。
在幕后,此步骤会构建推理 docker 映像并将其推送到 Amazon ECR 存储库,用户无需执行任何操作即可构建推理容器。 该图像包含服务推理请求所需的所有必要信息,例如模型位置、MATLAB 身份验证信息和算法。 之后,Amazon SageMaker 创建 SageMaker 终端节点配置并最终部署实时终端节点。 端点可以在 SageMaker 控制台中进行监控,并且如果不再使用,可以随时终止。
第 6 部分:测试端点
现在端点已启动并正在运行,您可以通过给端点一些预测记录来测试端点。 使用以下代码从训练数据中选择 10 条记录并将其发送到端点进行预测。 预测结果从端点发回,如下图所示。
第 7 部分:仪表板集成
SageMaker 终端节点可由许多本机 AWS 服务调用。 如果与 AWS Lambda 功能和API网关,可以与任何Web应用程序集成。 对于此特定使用案例,您可以将流摄取与 Amazon SageMaker Feature Store 和 Amazon Managed Streaming for Apache Kafka、MSK 结合使用,以近乎实时地做出机器学习支持的决策。 另一种可能的集成是使用以下组合 亚马逊Kinesis、SageMaker 和 Apache Flink 构建托管、可靠、可扩展且高度可用的应用程序,能够对数据流进行实时推理。
将算法部署到 SageMaker 端点后,您可能希望使用实时显示流预测的仪表板将它们可视化。 在接下来的自定义 MATLAB Web 应用程序中,您可以查看泵的压力和流量数据,以及部署模型的实时故障预测。
该仪表板包含一个剩余使用寿命 (RUL) 模型,用于预测每个相关泵的故障时间。 要了解如何训练 RUL 算法,请参阅 预测性维护工具箱.
清理
运行此解决方案后,请确保清理所有不需要的 AWS 资源,以避免意外成本。 您可以使用以下命令清理这些资源 SageMaker Python 开发工具包 或此处使用的特定服务(SageMaker、Amazon ECR 和 Amazon S3)的 AWS 管理控制台。 通过删除这些资源,您可以防止对不再使用的资源产生进一步的费用。
结论
我们演示了如何将 MATLAB 引入 SageMaker,以实现整个机器学习生命周期的泵预测维护用例。 SageMaker 提供了一个完全托管的环境,用于运行机器学习工作负载和部署模型,并提供多种计算实例来满足各种需求。
免责声明: 本文中使用的代码由 MathWorks 所有并维护。 请参阅 GitHub 存储库中的许可条款。 对于代码或功能请求的任何问题,请在存储库中打开 GitHub 问题
参考资料
作者简介
布拉德·邓肯(Brad Duncan) 是 MathWorks 统计和机器学习工具箱中机器学习功能的产品经理。 他与客户合作,将 AI 应用到新的工程领域,例如将虚拟传感器集成到工程系统中、构建可解释的机器学习模型以及使用 MATLAB 和 Simulink 标准化 AI 工作流程。 在加入 MathWorks 之前,他领导团队负责车辆空气动力学的 3D 仿真和优化、3D 仿真的用户体验以及仿真软件的产品管理。 布拉德还是塔夫茨大学车辆空气动力学领域的客座讲师。
理查德·阿尔科克 是 MathWorks 云平台集成的高级开发经理。 在此职位上,他在将 MathWorks 产品无缝集成到云和容器平台方面发挥了重要作用。 他创建的解决方案使工程师和科学家能够在基于云的环境中充分利用 MATLAB 和 Simulink 的潜力。 他之前是 MathWorks 的软件工程师,负责开发支持并行和分布式计算工作流程的解决方案。
雷切尔约翰逊 是 MathWorks 预测性维护产品经理,负责整体产品策略和营销。 她之前是一名应用工程师,直接支持航空航天业的预测性维护项目。 在加入 MathWorks 之前,Rachel 是美国海军的空气动力学和推进模拟工程师。 她还花了几年时间教授数学、物理和工程学。
顺茂 是 Amazon Web Services 新兴技术团队的高级 AI/ML 合作伙伴解决方案架构师。 他热衷于与企业客户和合作伙伴合作设计、部署和扩展 AI/ML 应用程序,以获取其业务价值。 工作之余,他喜欢钓鱼、旅行和打乒乓球。
拉梅什·贾蒂亚 是 Amazon Web Services 独立软件供应商 (ISV) 团队的解决方案架构师。 他热衷于与 ISV 客户合作,在云中设计、部署和扩展他们的应用程序,以获取他们的业务价值。 他还在波士顿巴布森学院攻读机器学习和商业分析 MBA 学位。 工作之余,他喜欢跑步、打网球和烹饪。
- :具有
- :是
- :不是
- :在哪里
- $UP
- 001
- 1
- 10
- 100
- 15%
- 152
- 19
- 20
- 3d
- 7
- 8
- a
- 关于
- 以上
- ACCESS
- 无障碍
- 容纳
- 账号管理
- 优点
- 航空航天
- 后
- AI
- AI / ML
- 算法
- 算法
- 所有类型
- 允许
- 沿
- 已经
- 还
- Amazon
- Amazon EC2
- 亚马逊SageMaker
- 亚马逊网络服务
- an
- 分析
- 和
- 另一个
- 任何
- 阿帕奇
- 除了
- API
- 应用
- 应用程序允许
- 应用领域
- 应用领域
- 使用
- 保健
- 国家 / 地区
- 地区
- 人造的
- 人工智能
- AS
- 相关
- At
- 认证
- 汽车
- 自动化和干细胞工程
- 汽车
- 可使用
- 避免
- AWS
- AWS管理控制台
- 巴布森
- 背部
- BE
- 因为
- before
- 开始
- 好处
- 最佳
- 波士顿
- 半身裙/裤
- 布拉德
- 带来
- 广阔
- 带
- 建立
- 建筑物
- 建立
- 商业
- by
- 呼叫
- 被称为
- 调用
- CAN
- 候选人
- 能力
- 能力
- 案件
- 收费
- 查
- 检查
- 分类
- 分类
- 清洁
- 清洁
- 云端技术
- 云计算平台
- 码
- 代码
- 合作
- 合作
- 学院
- 柱
- COM的
- 组合
- 组合
- 结合
- 未来
- 沟通
- 复杂
- 计算
- 计算
- 配置
- 配置
- 安慰
- 消费
- 容器
- 包含
- 成本
- 创建信息图
- 创建
- 创建
- 电流
- 习俗
- 合作伙伴
- XNUMX月XNUMX日
- data
- 资料准备
- 数据处理
- 数据集
- 决定
- 决定
- 专用
- 演示
- 证明
- 根据
- 部署
- 部署
- 部署
- 部署
- 漂移
- 描述
- 设计
- 设计师
- 期望
- 通过电脑捐款
- 详情
- 发展
- 研发支持
- 诊断
- 直接
- 显示器
- 分布
- 分布式计算
- do
- 码头工人
- 不
- 域
- 邓肯
- 每
- 只
- 或
- 新兴经济体的新市场。
- 新兴技术
- enable
- 结束
- 端点
- 工程师
- 设计
- 工程师
- 工程师
- 企业
- 整个
- 环境
- 环境中
- 特别
- 例子
- 执行
- 体验
- 出口
- 提取
- 提取物
- 失败
- 故障
- 故障
- 专栏
- 特征
- 少数
- 数字
- 文件
- 过滤
- 终于
- 完
- (名字)
- 钓鱼
- 适合
- 流
- 其次
- 以下
- 如下
- 针对
- 格式
- 频率
- 止
- ,
- 充分
- 功能
- 进一步
- 网关
- 生成
- 产生
- 产生
- GitHub上
- 给予
- 非常好
- 图表
- 大
- 客人
- 指南
- 马具
- 有
- he
- 健康管理
- 健康
- 严重
- 相关信息
- 高性能
- 高度
- 托管
- 创新中心
- How To
- HTML
- HTTPS
- 主意
- if
- 图片
- 输入
- in
- 包括
- 结合
- 增量
- 独立
- 表明
- 行业
- 行业中的应用:
- 信息
- 开始
- 输入
- 安装
- 安装
- 安装
- 例
- 仪器的
- 集成
- 整合
- 积分
- 集成
- 房源搜索
- 相互作用
- 接口
- 成
- 问题
- 问题
- ISV
- IT
- 工作
- 工作机会
- 约翰逊
- JPG
- 大
- 大
- 后来
- 最新
- 学习用品
- 学习
- 导致
- 减
- 杠杆作用
- 执照
- 生活
- 生命周期
- 友情链接
- Linux的
- 生活
- 当地
- 圖書分館的位置
- 登录
- 不再
- 机
- 机器学习
- 保养
- 使
- 制作
- 管理
- 颠覆性技术
- 经理
- 制造业
- 许多
- 营销
- 匹配
- 数学
- 数据监测
- 方法
- 指标
- 可能
- 分钟
- ML
- 模型
- 模型
- 显示器
- 监控
- 更多
- 移动
- 移动
- 许多
- 命名
- 本地人
- 近
- 必要
- 需求
- 打印车票
- 需要
- 全新
- 没有
- 没什么
- 目标
- of
- 最多线路
- 供品
- on
- 一旦
- 一
- 打开
- 操作
- 操作
- 运营
- 优化
- or
- 其他名称
- 我们的
- 产量
- 学校以外
- 最划算
- 拥有
- 页
- 并行
- 参数
- 参数
- 特别
- 合伙人
- 伙伴
- 通过
- 多情
- 性能
- 允许
- 物理
- 平台
- 平台
- 柏拉图
- 柏拉图数据智能
- 柏拉图数据
- 播放
- 请
- 热门
- 可能
- 帖子
- 潜力
- 可能
- 功率
- 实用
- 预测
- 预测
- 预测
- 预报器
- 首选
- 准备
- Prepare
- 压力
- 防止
- 先前
- 先
- 过程
- 处理
- 生产
- 生成
- 产生
- 产品
- 产品管理
- 产品经理
- 核心产品
- 代码编程
- 进展
- 项目
- 项目
- 动力
- 提供
- 提供
- 提供
- 优
- 泵
- 推
- 推
- 蟒蛇
- 题
- 很快
- 范围
- 排名
- 排名
- 行列
- 罕见
- 容易
- 真实
- 实时的
- 最近
- 记录
- 记录
- 参考
- 地区
- 注册处
- 可靠
- 其余
- 更换
- 知识库
- 表示
- 请求
- 要求
- 必须
- 资源
- 响应
- 提供品牌战略规划
- REST的
- 导致
- 理查德
- 健壮
- 角色
- 运行
- 运行
- sagemaker
- 满意
- 对满意
- 保存
- 保存
- 可扩展性
- 鳞片
- 场景
- 科学家
- 脚本
- sdk
- 无缝
- 秒
- 看到
- 选择
- 选择
- 提交
- 前辈
- 传感器
- 发送
- 系列
- 服务
- 服务
- 特色服务
- 服务
- 会议
- 集
- 套数
- 设置
- XNUMX所
- 几个
- 她
- 壳
- 应该
- 显示
- 如图
- 显著
- 简易
- 模拟
- 尺寸
- So
- 软件
- 软件工程
- 方案,
- 解决方案
- 一些
- 具体的
- 速度
- 花费
- 阶段
- 标准
- 标准化
- 开始
- 州
- 统计
- Status
- 步
- 步骤
- 存储
- 商店
- 策略
- 流
- 流
- 这样
- 总结
- SUPPORT
- 支持
- 肯定
- 系统
- 产品
- 表
- 行李牌
- 采取
- 需要
- 目标
- 任务
- 教诲
- 团队
- 队
- 技术
- 技术
- 终端
- 条款
- test
- 测试
- 比
- 这
- 区域
- 其
- 他们
- 然后
- 博曼
- 他们
- Free Introduction
- 那些
- 三
- 次
- 时间序列
- 至
- 一起
- 工具
- 工具箱
- 工具
- 最佳
- 培训
- 产品培训
- 旅游
- 树
- 尝试
- 调
- 调整
- 二
- 类型
- 一般
- 理解
- 意外
- 大学
- us
- 使用
- 用例
- 用过的
- 用户
- 用户体验
- 运用
- 验证
- 价值观
- 各种
- 各个
- 汽车
- 供应商
- 非常
- 在线会议
- 想像
- 想
- 是
- 方法..
- we
- 卷筒纸
- 网络应用
- Web服务
- 这
- 宽
- 大范围
- 将
- 工作
- 工作流程
- 加工
- 合作
- 写
- 书面
- 年
- 完全
- 您一站式解决方案
- 和风网