51CTO首页
AI.x社区
博客
学堂
精品班
直播训练营
企业培训
鸿蒙开发者社区
WOT技术大会
AIGC创新中国行
IT证书
公众号矩阵
移动端

2021年的机器学习生命周期

人工智能 机器学习
在这个时代,每个人都在学习机器学习(ML)。似乎每个收集数据的公司都在尝试找出某种方式来使用AI和ML分析其业务并提供自动化解决方案。

您实际上是如何完成一个机器学习项目的?有哪些工具可以帮助完成每一步?

 

[[381700]]

 

> Photo by Tolga Ulkan on Unsplash

在这个时代,每个人都在学习机器学习(ML)。似乎每个收集数据的公司都在尝试找出某种方式来使用AI和ML分析其业务并提供自动化解决方案。

到2027年,机器学习的市值预计将达到1170亿美元—《财富》杂志

ML的大量涌入导致许多新手没有正式的背景。令人高兴的是,更多的人开始兴奋并学习了这一领域,这很高兴,但很显然,将ML项目整合到生产环境中并不是一件容易的事。

 

2021年的机器学习生命周期

 

Image from the 2020 State of Enterprise ML by Algorithmia based on 750 businesses

55%的企业尚未将它们的ML模型投入生产— Algorithmia

如果您拥有训练模型所必需的数据和计算资源,那么很多人似乎都认为ML项目非常简单。他们再犯错了。如果不部署模型,这种假设似乎会导致大量的时间和金钱成本。

 

2021年的机器学习生命周期

 

> Naive assumption of the ML lifecycle (Image by author)

在本文中,我们将讨论ML项目的生命周期实际上是什么样的,以及一些有助于解决该问题的工具。

机器学习生命周期

实际上,机器学习项目不是简单明了的,它们是在改善数据,模型和评估之间进行的一个循环,从未真正完成。这个周期对于开发ML模型至关重要,因为它专注于使用模型结果和评估来完善数据集。高质量数据集是训练高质量模型的最可靠方法。如此反复循环的速度决定了您的成本,幸运的是,有些工具可以在不牺牲质量的情况下帮助加快循环速度。

 

2021年的机器学习生命周期

 

> A realistic example of ML lifecycle (Image by author)

与任何系统一样,即使已部署的ML模型也需要监视,维护和更新。您不能只是部署ML模型而忘了它,而是期望它在其余时间中能够像在现实世界中的测试集上一样工作。当您发现模型中的偏差,添加新数据源,需要其他功能等时,部署在生产环境中的ML模型将需要更新。这使您重新回到数据,模型和评估周期。

截至2021年,深度学习在十多年来一直很重要,并帮助使ML成为市场的领先和中心。机器学习行业蓬勃发展,开发了无数产品来协助机器学习模型的创建。ML生命周期的每一步都有一些工具,您可以使用它们来加快流程,而不会成为没有ML项目的公司之一。

下一节将深入探讨ML生命周期的每个阶段,并重点介绍流行的工具。

阶段1:数据

 

2021年的机器学习生命周期

 

> Data in the ML lifecycle (Image by author)

虽然最终目标是建立高质量的模型,但是训练一个好的模型的生命线在于传递的数据的数量,更重要的是质量。

ML生命周期中与数据相关的主要步骤是:

数据收集-无论质量如何,都收集尽可能多的原始数据最后,无论如何,仅注释其中的一小部分,这是大部分成本的来源。当模型性能出现问题时,可以根据需要添加大量数据,这很有用。

  • 公开数据集列表

定义注释模式-这是生命周期数据阶段最重要的部分之一,通常会被忽略。构造不佳的注释架构将导致类和边缘情况的模棱两可,从而使训练模型更加困难。

例如,对象检测模型的性能在很大程度上取决于大小,位置,方向和截断等属性。因此,在注释期间包括对象大小,密度和遮挡之类的属性可以提供创建模型可以学习的高质量训练数据集所需的关键元数据。

  • Matplotlib,Plotly —绘制数据的属性
  • Tableau-更好地了解您的数据的分析平台

数据注释-注释是一次又一次地执行几个小时的相同任务的乏味过程,这就是为什么注释服务是一项蓬勃发展的业务的原因。结果是注释者可能会犯许多错误。尽管大多数注释公司保证最大错误百分比(例如最大错误为2%),但更大的问题是注释架构定义不正确,导致注释者决定以不同的方式标记样本。注释公司的质量检查团队很难发现这一点,这是您需要检查的事情。

  • Scale, Labelbox, Prodigy—流行的注释服务
  • Mechanical Turk —众包注释平台
  • CVAT — DIY计算机视觉注释
  • Doccano — NLP特定注释工具
  • Centaur Labs —医疗数据标记服务

改善数据集和注释-尝试改善模型性能时,您可能会在这里花费大部分时间。如果您的模型正在学习但表现不佳,那么罪魁祸首几乎总是一个训练数据集,其中包含偏见和错误,这些偏见和错误正在为模型创建性能上限。改善模型通常涉及诸如硬样本挖掘(添加与模型失败的其他样本相似的新训练数据),基于模型学习到的偏差重新平衡数据集,更新注释和模式以添加新标签并优化现有标签的方案。。

  • DAGsHub —数据集版本控制
  • FiftyOne —可视化数据集并发现错误

阶段2:模型

 

2021年的机器学习生命周期

 

> Models in the ML lifecycle (Image by author)

即使此过程的输出是模型,理想情况下,您仍将在此循环中花费最少的时间。

 

 

In industry, more time is spent on datasets than models. Credit to Andrej Karpathy

探索现有的预训练模型-这里的目标是尽可能多地重用可用资源,以使自己最好地开始建模生产。如今,转移学习是深度学习的核心租户。您可能不会从头开始创建模型,而是对在相关任务上预先训练的现有模型进行微调。例如,如果要创建遮罩检测模型,则可能会从GitHub下载预训练的面部检测模型,因为这是更受欢迎的话题,需要做更多的工作。

  • FiftyOne 模型动物园—只需一行代码即可下载并运行模型
  • TensorFlow Hub —训练有素的机器学习模型的存储库
  • modelzoo.co —针对各种任务和库的预训练深度学习模型

构建训练循环-您的数据可能会与用于预训练模型的数据有所不同。对于图像数据集,在为模型设置训练管道时需要考虑输入分辨率和对象大小之类的东西。您还需要修改模型的输出结构,以匹配标签的类和结构。PyTorch闪电提供了一种简单的方法,可以用有限的代码扩大模型训练的规模。

  • Scikit Learn —构建和可视化经典ML系统
  • PyTorch,PyTorch Lightning,TensorFlow,TRAX —流行的深度学习Python库
  • Sagemaker —在Sagemaker IDE中构建和训练ML系统

实验跟踪-这整个周期可能需要多次迭代。您最终将训练许多不同的模型,因此在跟踪模型的不同版本以及对其进行训练的超参数和数据时要一丝不苟,将大大有助于保持事物的组织性。

阶段3:评估

 

2021年的机器学习生命周期

 

> Evaluation in the ML lifecycle (Image by author)

设法获得学习了训练数据的模型后,就该开始挖掘并查看其在新数据上的表现如何。

评估ML模型的关键步骤:

可视化模型输出-拥有训练有素的模型后,您需要立即在几个样本上运行它并查看输出。这是在对整个测试集进行评估之前,找出培训/评估管道中是否存在任何错误的最佳方法。它还将显示是否存在任何明显的错误,例如您的两个类的标签错误。

  • OpenCV,Numpy,Matplotlib —编写自定义可视化脚本
  • FiftyOne —在图像和视频上可视化计算机视觉任务的输出

选择正确的指标-提出一个或几个指标可以帮助比较模型的整体性能。为了确保您选择适合您任务的最佳模型,应开发符合最终目标的指标。当您发现要跟踪的其他重要品质时,还应该更新指标。例如,如果要开始跟踪对象检测模型在小对象上的性能,请对包围盒<0.05作为对象之一的对象使用mAP。

尽管这些总体数据集指标可用于比较多个模型的性能,但它们很少有助于理解如何提高模型的性能。

  • Scikit学习-提供通用指标
  • Python,Numpy-开发自定义指标

查看故障案例-模型所做的一切都基于对其进行训练的数据。因此,假设它能够学习某些东西,如果它的性能比您预期的要差,则需要查看数据。查看模型运行良好的情况可能很有用,但是查看模型正确预测的假阳性和假阴性至关重要。在仔细研究了这些样本之后,您将开始看到模型中的故障模式。

例如,下图显示了来自“打开图像”数据集的样本,一个假阳性显示为后轮。事实证明,这种误报是缺少注释。验证数据集中的所有车轮注释并修复其他类似的错误可以帮助改善模型在车轮上的性能。

 

2021年的机器学习生命周期

 

> Image credit to Tyler Ganter (source)

  • FiftyOne, Aquarium, Scale Nucleus—调试数据集以发现错误

制定解决方案-确定故障案例是找出解决方法的第一步,以提高模型性能。在大多数情况下,它可以回溯到添加训练数据,类似于模型失败的地方,但是它还可以包括更改管道中的预处理或后处理步骤或修复注释之类的事情。无论解决方案是什么,您都只能通过了解模型失败的地方来解决问题。

阶段4:生产

 

2021年的机器学习生命周期

 

> Deploying a model (Image by author)

最后!您已经建立了一个模型,该模型可以很好地执行您的评估指标,并且在各种极端情况下都不会出现重大错误。

现在,您需要:

监控模型-测试您的部署,以确保您的模型相对于评估指标和推理速度之类的测试数据仍能按预期运行。

  • Pachyderm,Algorithmia,Datarobot,Kubeflow,MLFlow —部署和监视模型和管道
  • Amazon Web Services,Google AutoML,Microsoft Azure — ML模型的基于云的解决方案

评估新数据-在生产中使用模型意味着您将经常通过从未经过测试的模型传递全新数据。进行评估并挖掘特定的样本,以查看模型如何处理遇到的任何新数据,这一点很重要。

继续理解模型-模型中的某些错误和偏见可能很根深蒂固,需要很长时间才能发现。您需要针对各种可能导致问题的边缘情况和趋势不断测试和探查模型,如果这些情况可能会被客户发现,则会引起问题。

扩展功能-即使一切运行正常,该模型也可能无法实现您期望的利润增长。从添加新类,开发新数据流到使模型更高效,有无数种方法可以扩展当前模型的功能以使其变得更好。每当您要改善系统时,都需要重新启动ML生命周期以更新数据,建模和评估所有内容,以确保新功能能够按预期工作。

FiftyOne

上面的内容很笼统,没有偏见,但是我想向您介绍我一直在使用的工具。

在ML生命周期的各个部分都有许多工具。但是,非常缺乏工具可以帮助我在本文中强调的一些关键点。可视化复杂数据(例如图像或视频)和标签,或编写查询以查找模型效果不佳的特定情况等操作通常是通过手动脚本完成的。

我一直在Voxel51上开发FiftyOne,这是一种开源数据可视化工具,旨在帮助调试数据集和模型并填补这一空白。FiftyOne使您可以在本地或远程可视化GUI中的图像和视频数据集以及模型预测。它还提供了强大的功能,可以评估模型并针对数据集或模型输出的任何方面编写高级查询。

FiftyOne可以在笔记本电脑上运行,因此请使用此Colab笔记本电脑在浏览器中进行尝试。或者,您可以使用pip轻松安装它。

pip install fiftyone

 

2021年的机器学习生命周期

 

> Sample from object detection model and dataset in FiftyOne (Image by author)

概要

试图将机器学习(ML)纳入其业务的所有公司中只有一小部分设法将模型实际部署到生产中。ML模型的生命周期不是直截了当的,而是需要在数据和注释改进,模型和训练流水线构建以及样本级别评估之间进行连续迭代。如果您知道自己要干什么,那么这个周期最终可能会产生可用于生产的模型,但是还需要随着时间的推移进行维护和更新。幸运的是,开发了无数工具来帮助完成此过程的每个步骤。

 

责任编辑:华轩 来源: 今日头条
相关推荐
聊一聊机器学习生命周期步骤
在本文中,读者将了解机器学习,包括机器学习的背景信息和机器学习生命周期的七个步骤。

2023-02-15 16:25:06

机器学习 人工智能 数据
学习JSF生命周期
本文介绍了JSF的生命周期。JSF生命周期对于初学者来说往往是一个大障碍。笔者认为在学习JSF的过程中,应该把生命周期放在最后部分。

2009-06-11 11:28:35

JSF生命周期
解读CRISP-ML(Q):机器学习生命周期流程
本文介绍了构建可持续机器学习应用程序的标准流程。

2022-08-02 08:00:00

机器学习 数据 框架
weak生命周期
我们都知道weak表示的是一个弱引用,这个引用不会增加对象的引用计数,并且在所指向的对象被释放之后,weak指针会被设置的为nil。weak引用通常是用于处理循环引用的问题,如代理及block的使用中,相对会较多的使用到weak。

2015-07-08 16:28:23

weak 生命周期
安全生命周期不是开发人员生命周期
安全标准对于开发团队往往是不可行的。这大多是由于安全团队不够了解应用安全和企业面临的风险波动之间的关联。加强开发团队与安全团队的沟通与协作,使其步调一致,才能更好地实现技术的进步以及安全风险的管控。

2022-04-19 07:20:24

软件开发安全生命周期 SSDLC 应用安全
深入学习Flex组件生命周期
本文和大家深入学习Flex组件生命周期的概念,调用Flex组件构造函数时,构造函数没有返回类型,没有参数,使用super()调用父类的构造器。

2010-07-28 12:47:06

Flex组件
Perl线程生命周期
本文向大家简单介绍Perl线程的生命周期的概念,Perl线程作为Perl中的一种实体,其一生可以粗略的分为创建,运行与退出这三个阶段。

2010-07-14 10:48:37

Perl线程
详解Java类生命周期
最近有位细心的朋友在阅读笔者的文章时,对java类的生命周期问题有一些疑惑,笔者打开百度搜了一下相关的问题,看到网上的资料很少有把这个问题讲明白的,主要是因为目前国内java方面的教材大多只是告诉你“怎样做”,但至于“为什么这样做”却不多说,所以造成大家在基础和原理方面的知识比较匮乏,所以笔者今天就斗胆来讲一下这个问题。

2012-04-28 13:23:12

Java 类 生命周期
Android Activity生命周期结构
本文将从Android官方网站的Activity生命周期结构图讲起,教我们弄清所有的生命周期函数的原理,用实例表现AndroidActivity的生命周期结构。

2011-06-16 09:31:21

Activity Android
浅谈Java线程生命周期
本文将谈到的是Java线程的生命周期,Java线程可以通过直接实例化Thread对象或实例化继承Thread的对象来创建其它线程。

2009-06-18 13:32:39

Java线程 生命周期
Objective-C学习笔记Cocoa生命周期
ObjectiveC学习笔记Cocoa生命周期是本文要介绍的内容,主要是来学习Cocoa中对象的生命周期,每个对象有一个与之相关联的整数,称做它的引用计数器或保留计数器,来看内容。

2011-08-15 16:09:44

Cocoa 对象 Objective-C
Hibernate实体对象生命周期
本文向您介绍Hibernate实体对象的生命周期,包括Transient(自由状态)、Persistent(持久状态)、Detached(游离状态)。

2009-06-17 15:06:50

Hibernate实体
Linux内核测试生命周期
内核持续集成(CKI)项目旨在防止错误进入Linux内核。本文深入探讨了该项目的某些技术方面,以及这所有的部分是如何组合在一起的。

2019-10-16 10:50:13

Linux 内核测试
.NET中线程生命周期
我们今天要谈谈.NET中线程的生命周期。当我们创建一个线程后,我们需要调用线程对象的Start()方法来调度那个线程。

2012-01-16 09:00:56

线程
iOS开发:类'生命周期'
本文为大家介绍了iOS开发中类的'生命周期'等内容,直接分享给大家,希望对51CTO的各位网友有所帮助,如果有什么意见欢迎交流。

2013-07-29 05:11:38

iOS开发 iOS开发学习 类的'生命周期'
.NET 对象生命周期
.NETFramework的垃圾回收器管理应用程序的内存分配和释放。每次您使用new运算符创建对象时,运行库都从托管堆为该对象分配内存。只要托管堆中有地址空间可用,运行库就会继续为新对象分配空间。但是,内存不是无限大的。

2013-08-19 17:03:00

.Net 生命周期 对象
敏捷应用生命周期管理
AgileALM有助有提供敏捷结构,有助于以一种坚定、务实的方式来逐步实现ALM。使用一种敏捷的ALM做法,您将赢来更快的胜利和更好的结果。

2012-06-20 10:29:16

敏捷开发
简单介绍JSF生命周期
本文简单介绍JSF生命周期,以及扣除事件处理,JSF生命周期总共必须经过六个阶段。

2009-06-24 10:47:55

JSF生命周期
网络生命周期管理指南
网络生命周期管理流程可帮助网络专业人员规划变更、部署这些变更并指导持续运营。那么,这个过程包含哪些步骤,网络团队如何应用它

2021-07-19 05:52:29

网络生命周期 网络 框架
深入剖析Perl线程生命周期
本文向大家介绍一下Perl线程的生命周期概念,和现有大多数Perl线程模型不同,在PerlithreadsPerl线程模型中,默认情况下任何数据结构都不是共享的。

2010-07-14 10:59:15

Perl线程

代做工资流水公司宁波办理房贷流水金华银行流水单费用吉林企业流水打印图片无锡查银行流水PS无锡查公司银行流水兰州收入证明打印蚌埠代做车贷工资流水汕头转账流水模板蚌埠开流水湘潭查背调工资流水鞍山银行流水修改代开威海打离职证明泉州工资流水菏泽打印流水账单孝感车贷工资流水 打印桂林代开房贷收入证明沈阳企业银行流水报价莆田查询背调银行流水遵义代办工资流水台州工资银行流水费用中山代做企业贷流水广州代办银行流水曲靖打印工资证明襄阳收入证明价格潍坊代办房贷流水兰州消费贷流水查询烟台代开流水西宁自存流水常德开企业银行流水上饶打入职工资流水香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声卫健委通报少年有偿捐血浆16次猝死汪小菲曝离婚始末何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言男子被猫抓伤后确诊“猫抓病”周杰伦一审败诉网易中国拥有亿元资产的家庭达13.3万户315晚会后胖东来又人满为患了高校汽车撞人致3死16伤 司机系学生张家界的山上“长”满了韩国人?张立群任西安交通大学校长手机成瘾是影响睡眠质量重要因素网友洛杉矶偶遇贾玲“重生之我在北大当嫡校长”单亲妈妈陷入热恋 14岁儿子报警倪萍分享减重40斤方法杨倩无缘巴黎奥运考生莫言也上北大硕士复试名单了许家印被限制高消费奥巴马现身唐宁街 黑色着装引猜测专访95后高颜值猪保姆男孩8年未见母亲被告知被遗忘七年后宇文玥被薅头发捞上岸郑州一火锅店爆改成麻辣烫店西双版纳热带植物园回应蜉蝣大爆发沉迷短剧的人就像掉进了杀猪盘当地回应沈阳致3死车祸车主疑毒驾开除党籍5年后 原水城县长再被查凯特王妃现身!外出购物视频曝光初中生遭15人围殴自卫刺伤3人判无罪事业单位女子向同事水杯投不明物质男子被流浪猫绊倒 投喂者赔24万外国人感慨凌晨的中国很安全路边卖淀粉肠阿姨主动出示声明书胖东来员工每周单休无小长假王树国卸任西安交大校长 师生送别小米汽车超级工厂正式揭幕黑马情侣提车了妈妈回应孩子在校撞护栏坠楼校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变老人退休金被冒领16年 金额超20万西藏招商引资投资者子女可当地高考特朗普无法缴纳4.54亿美元罚金浙江一高校内汽车冲撞行人 多人受伤

代做工资流水公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化