首页 > 立知

机器怎么样(机器周期)

小猫咪 立知 2021-12-31机器

【新智元导读】在机器学习深入工业界时,实际操作并没有想象中那么简单。要部署任何项目,都需要经过完整的生命周期,而这个周期对于开发机器学习模型至关重要。此文深入全面总结了从零开始到正式上线过程中的所有步骤,并总结了各个步骤的常用工具。

在这个「人人AI」的时代,很多人都会或多或少接触过机器学习(ML)。

似乎每一家需要数据的公司,都在尝试利用人工智能和机器学习来分析他们的业务并提供自动化解决方案。

《财富》的商业洞察板块(Fortune Business Insights)预计,到2027年,机器学习的市值将达到1170亿美元。

机器学习的火爆,使得许多没有相关背景的新手也纷纷跨入该行业。当然,这本身确实是一件好事,然而,我们也需要明白,将机器学习项目整合到实际生产环境中,其实远没有想象的那么容易。

2021年机器学习怎么学?这份深度指南帮你做了总结

图:Algorithmia公司基于750家企业得出的2020企业ML使用状态图像

Algorithmia公司经过调查表示:55%从事机器学习模型的企业尚未将其投入生产

在这里可以一提的是,Algorithmia是一家提供简化机器学习的平台的创业公司,它在2017年6月已经从谷歌那里完成了一项价值1050万美元的a轮融资。

2021年机器学习怎么学?这份深度指南帮你做了总结

许多人似乎认为,如果有了训练模型所需的数据和计算资源,实现机器学习项目是相当简单的。

但是,其实这是大错特错的——

这种假设很可能会导致在没有部署模型的情况下,消耗大量的时间和金钱成本。

2021年机器学习怎么学?这份深度指南帮你做了总结

图:机器学习生命周期的朴素假设

在本文中,我们将深入详细地讨论机器学习项目的生命周期实际上是什么样子的,以及周期内每个阶段可以用到的一些工具。

没有那么简单:机器学习生命周期一览

在现实中,机器学习项目并不简单,它是一个在改进数据、模型和评估之间循环往复的过程,并且永远不会真正完成。

这个循环对于开发机器学习模型至关重要,因为它侧重于使用模型结果和评估来细化数据集。此外,高质量的数据集是训练高质量模型最可靠的方法。

这个循环的迭代速度,决定了你需要花费的成本。幸运的是,有一些工具可以帮助你在不牺牲质量的情况下,加速这个循环。

2021年机器学习怎么学?这份深度指南帮你做了总结

图:机器学习生命周期的一个真实例子

与任何系统非常相似,即使是已经部署的机器学习模型,也需要不断的被监控、维护和更新。我们不能只是部署一个模型,然后忘记它,期望它在接下来的时间里,像在测试集上一样,在现实世界中有着很好的表现。

部署在现实世界环境中的机器学习模型需要被更新——因为我们会发现模型中的偏差,或者添加新的数据源,或者需要额外的功能等等。

而这些都会将整个项目带回到数据、模型和评估周期中。

下一节,我们将深入探讨机器学习生命周期的每个阶段,并重点介绍各个阶段可以用到的当下流行的工具。

阶段一:数据部分

2021年机器学习怎么学?这份深度指南帮你做了总结

图:机器学习周期的数据部分

虽然大家的最终目标是一个高质量的模型,但训练一个好的模型的关键之一,在于传递给它的数据的数量

机器学习生命周期中,数据方面的相关步骤是:

1、数据收集

第一步,是在不管最终的数据质量的情况下,先收集尽可能多的原始数据。在这部分原始数据中,只有一小部分数据会被注释,这也是大部分成本的来源。

而当模型性能出现问题时,根据需要添加大量数据是很有用的。

下面是常用的公共数据集列表:

https://medium.com/towards-artificial-intelligence/best-datasets-for-machine-learning-data-science-computer-vision-nlp-ai-c9541058cf4f

2、定义注释模式

这个环节,是生命周期里数据阶段最重要的部分之一,而它却经常被忽视。

如果构造了不良的注释模式,那么会出现不明确的类和边缘案例,从而使训练模型变得更加困难。

例如,目标检测模型的性能很大程度上取决于大小、定位、方向和截断等属性。因此,在注释期间将目标大小、密度和遮挡等属性囊括其中,有助于模型可以学习到数据中的关键信息。

下面两个是有助于这个过程的常用工具:

Matplotlib, Plot - 帮你发现数据中的Plot属性

Tableu -可以帮助你更好理解数据的分析平台

3、数据注释

给数据注释是一个冗长乏味的过程,每次都要连续数小时地执行相同重复的任务,这也是注释服务蓬勃发展的原因之一——很多人并不想亲手花大量时间在注释上。

而这样会导致注释者可能犯了很多错误:虽然大多数注释公司都会说明最大误差率(例如2%的最大误差率),但更大的问题是,如果定义不当的注释模式,会导致注释者以不同的方式标记样本。

然而,注释公司的团队很难发现这一点,所以你需要自己检查。

下面是常用的各种注释服务:

Scale, Labelbox, Prodigy - 流行的注释服务

Mechanical Turk - 众包注释

CVAT - DIY的计算机视觉注释

Doccano - NLP专用注释工具

Centaur Labs -医疗数据标签服务

4、改进数据集和注释

在尝试改进模型性能时,你可能会花费大量的时间。

如果模型正在学习的过程中,但性能却不佳,那么罪魁祸首几乎总是包含偏差和错误的训练数据集,这些偏差和错误限制了模型的性能上限。

改进模型通常会涉及到硬样本挖掘(比如如果模型在数据集A上表现不好,那么就在训练数据中添加类似于数据集A的新数据)、根据模型了解到的偏差重新平衡数据集,以及更新注释模式以添加新标签和改进现有标签。

下面是常用的改进数据集和注释的工具:

DAGsHub - 数据集版本控制

FiftyOne - 将数据可视化并找出错误

阶段二:模型部分

2021年机器学习怎么学?这份深度指南帮你做了总结

图:机器学习生命周期中的模型部分

即使在这个过程中的输出是「看起来很重要的模型」,但其实,在整个循环当中,这部分所需要花费的时间是最少的。

2021年机器学习怎么学?这份深度指南帮你做了总结

图:在工业界,花费在数据集上的时间比花在模型上的时间更多

探索现有的预训练模型

这个环节的目标是用尽可能多的可用资源,给建立模型的过程一个最好的开始。

「迁移学习」是当今深度学习的核心内容:我们可能不会从头开始创建一个模型,而是对一个已存在的模型进行微调,而该模型是在相关任务上预先训练好的。

例如,如果你想创建一个口罩检测模型,那么你可能会从GitHub下载一个预先训练好的人脸检测模型,因为这个人脸检测模型发展更成熟,更流行,也有更多的前期工作铺垫。

下面是该环节常用的工具和方法:

FiftyOne model zoo - 使用一行代码,即可下载和运行模型

TensorFlow Hub - 训练过的ML模型仓库

modelzoo.oo - 为包含了各种任务和库预先训练的深度学习模型

构建训练循环

你的数据可能并不会和用来预训练的数据完全属于同一类型。

比如,对于图像数据集,在为模型设置训练pipeline时,需要考虑输入分辨率和对象大小等因素。

此外,你还需要修改模型的输出结构,以匹配标签的类和结构。PyTorch lightning就提供了一种简单的方法,使用这种方法,即可用有限的代码扩大模型训练。

下面是该环节常用的工具:

Scikit Learn - 构建和可视化经典机器学习系统

PyTorch, PyTorch Lightning, TensorFlow, TRAX - 流行的深度学习Python库

Sagemaker - 在Sagemaker IDE中建立和训练机器学习系统

实验跟踪

在整个周期内,这一环节可能需要多次迭代。

你最终会训练出很多不同的模型,所以你需要仔细地跟踪模型的不同版本,以及训练时用到的超参数和数据,这将极大地帮助你保持事情的条理性。

在这个过程中,常用的工具有:

Tensorbord,Weights

相关阅读:

  • 奚梦瑶挺孕肚和儿子自拍,嫁入豪门成生娃机器?超模梦近乎
  • 哪个软件背单词好(专门背单词机器)
  • 哪个机器皮肤(机器人lol皮肤)
  • 潮汕手工外发加工网,湖州在家代加工手工
  • 打价格的机器怎么用(打价签机器怎么换纸)
    • 网站地图 | 联系我们
    • 声明:这就到-知道你所不知道登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。文章内容仅供参考,不做权威认证,如若验证其真实性,请咨询相关权威专业人士。