机器学习项目生命周期

简介: 机器学习项目生命周期

😇现在机器学习领域有大量的同学涌入,去学习,或许很多人开始就是沿着机器学习理论,算法等知识展开学习,大部分同学可能只是基于自己的本地,实现一些模型算法, 但是在今后的工作中,我们的机器学习项目是需要和生产环节结合起来了, 这个的项目才更适合于在工作中使用。


如下图为一个完整的机器学习项目各阶段的工作时间占比

从左到右:评估用例阶段,模型开始开发阶段,开发好的模型正在投入实际运用,模型早期阶段(1-2年运营时间),模型中期阶段(2-4年运营时间),成熟模型(5年以上运营))


这里需要纠正一个误区,很多人似乎觉得如果自己有足够的数据和足以训练模型的计算资源,就意味着机器学习项目应该就会很好开展。他们大错特错了。这些错误的假设导致在模型实际上线之前,大量的时间和金钱就已经投入进去了。


接下来将详细介绍一下,机器学习项目的开发流程。


机器学习开发周期


一个机器学习项目,实际是通过数据建立模型,模型评估之间一次次迭代的周期,而这个周期是永远不会真正结束的,这个周期循环对于机器学习模型的重要之处在于它聚焦于使用模型结果和模型评估来优化你的数据。一个高质量的数据集才是能帮助你训练出高质量模型的最重要的材料。


下图为一个机器学习开发周期的实际例子

a013aa6ca40f44cc89ee688009627e9d.png

接下来,将逐个对机器学习项目周期的各个阶段展开介绍。


第一阶段 数据

3adaec6c36df4c4a97adb861ee607e06.png


当目标结果是一个高质量的模型时,训练一个好的模型的命脉就在于使用的数据数量以及更重要的质量。


在机器学习生命周期中与基础数据相关联的步骤有:


数据收集——收集尽可能多的原始数据,无论最终的质量如何,只有一小部分数据会得到注释,而这正是大部分成本的来源。

定义你的注释模式——这是生命周期数据阶段中最重要的部分之一,并且常常被忽视。构建不良的注释模式将导致模棱两可的类和边缘案例,使其更加困难的训练模型。比如,对象探测模型的性能很多程度上取决于想尺寸、定位、方向、截断。因此,在注释过程中包括对象大小、密度和遮挡等属性可以提供创建高质量的培训数据集所需的关键元数据,模型可以从中学习。

数据注释——注释是一个乏味的过程,一次执行相同的任务数小时,这就是为什么注释服务是一个蓬勃发展的业务。这也意味着注释起可能会犯很多错误。虽然大多数注释公司保证最大误差百分比(除2%的最大误差外),但更大的问题是定义不当的注释模式导致注释器决定以不同的方式标记样本。注释公司的QA团队很难发现,因此你需要自查自纠。

提升数据集和注释——你可能会花绝大多数时间来提升模型性能。如果你的模型正在学习,但表现不佳,罪魁祸首几乎总是一个包含偏差和错误的培训数据集正在为模型创建性能上限(例证文章需外网)。提升模型一般需要大量的样本挖掘(新增与模型不匹配的相似其他样本)(油管链接需外网),再平衡已经基于偏差数据学习过的数据集,并且更新新标签和完善已经存在的注释和模式。


第二阶段 模型

611556d17cb54cb1b6ac88b0c937e5be.png


在机器学习生命周期中构建模型步骤有:


探索现有的预训练的模型——目的在于重复使用尽可能多的可用资源让模型生产有个最好的开头。在这个时代转移学习成为深度学习的一个核心租户。你将不太可能会使用scratch创造一个模型,而是在一个关联任务中预训练的现有模型。例如,如果你想做出一个口罩探测模型,你可能会从Github上下载一个预处理的面部探测模型,因为(口罩探测模型)是一个带有前期成果的受欢迎的话题。

构建训练循环——数据在某些方面可能会与被用作预训练模型的有些不同。对于图像数据集,为模型设置培训路线时,需要考虑对象大小等输入分辨率。你也会需要调整模型的输出结构来匹配标签的类和结构。Pytorch lighting为有限代码提供一个简单的方法来扩展模型训练。

实验跟踪——整个圈可能会经过多次的迭代。你最终以训练很多不同模型,一丝不苟地跟踪不同版本的模型、超参数以及数据,它能在让事物有序这方面帮大忙。


第三阶段 评估


88ef11d0e93b4a9b863cfa3f94215548.png

评估一个机器学习模型的关键步骤:


可视化模型输出——只要你有一个训练过的模型,你就需要立即用它运行一些样例并且查看输出。这是在对整个测试集进行评估之前,在培训/评估管道中查找是否有任何错误的最佳方法。这个方法也会展示是否有任何明显的错误,比如两个类已被错误标记了。

选择正确的指标—— 提出一个或几个指标可以帮助比较模型的整体表现。为了确保为您的任务选择最佳模型,您应该根据您的最终目标制定指标。当您找到要跟踪的其他重要质量时,您还应更新指标。例如,如果你想开始跟踪锄以及你的对象检测模型执行的小对象,使用mAP的对象与边界框<0.05作为您的指标之一。

查看失败案例——你的模型所做的每件事都基于他被训练的数据。那么假设它能学习到一些东西,如果它表现低于你的预期,你则需要检查数据。检查数据在你的模型表现良好时非常有用,但当你的模型预测出错时,查看假阳性和假阴性的误判结果非常重要。在查看了足够的这些样本后,你将会看到模型中的失败模式。

制定解决方案 —— 识别失败案例是找出改进模型表现的方法的第一步。在大多数情况下,它可以追溯到添加类似于您的模型失败的培训数据,但它也可以包括诸如更改流程中的预处理或处理后步骤或修复注释之类的内容。不论解决方案是什么,你只能通过了解模型失败的地方来解决它的问题。


第四阶段 生产


318e2c2365cf4d87993321e4dc667246.png

最后在得到一个好的模型后,那就需要把模型部署到生产环境了,但是为确保模型在测试数据上依然按预期执行,测试您的部署与评估指标和参考速度有关,具体步骤:

评估新数据——在生产环境下使用模型意味着你讲频繁地运行之前模型没有被测试过的全新数据。执行评估并深入到特定样本以查看模型在遇到任何新数据上的表现非常重要。

继续理解模型——模型中的一些错误和偏差可能根深蒂固,需要很长时间才能发现。你需要持续性地测试和验证你的模型,以发现各种边缘案例和趋势,如果客户发现这些可能会导致问题。

扩展能力——即使一切都进行地完美,但模型有可能并不如你所愿增加利润。从增加新的类,开发新的数据流,以及还有无数的方法来使模型更有效率来扩展当前模型的功能,使其更好。任何时候你想要提升你的系统,你都将需要重启机器学习生命周期来更新你的数据,模型和整体评估,以确保新特征如预期一样运行。

相关文章
|
9月前
|
机器学习/深度学习 人工智能 前端开发
机器学习PAI常见问题之web ui 项目启动后页面打不开如何解决
PAI(平台为智能,Platform for Artificial Intelligence)是阿里云提供的一个全面的人工智能开发平台,旨在为开发者提供机器学习、深度学习等人工智能技术的模型训练、优化和部署服务。以下是PAI平台使用中的一些常见问题及其答案汇总,帮助用户解决在使用过程中遇到的问题。
|
9月前
|
机器学习/深度学习 数据采集 监控
大模型开发:描述一个典型的机器学习项目流程。
机器学习项目涉及问题定义、数据收集、预处理、特征工程、模型选择、训练、评估、优化、部署和监控。每个阶段都是确保模型有效可靠的关键,需要细致操作。
119 0
|
9月前
|
TensorFlow 算法框架/工具 开发工具
使用 TensorFlow 构建机器学习项目:6~10(3)
使用 TensorFlow 构建机器学习项目:6~10(3)
63 0
|
3月前
|
机器学习/深度学习 算法 UED
在数据驱动时代,A/B 测试成为评估机器学习项目不同方案效果的重要方法
在数据驱动时代,A/B 测试成为评估机器学习项目不同方案效果的重要方法。本文介绍 A/B 测试的基本概念、步骤及其在模型评估、算法改进、特征选择和用户体验优化中的应用,同时提供 Python 实现示例,强调其在确保项目性能和用户体验方面的关键作用。
68 6
|
3月前
|
机器学习/深度学习 算法 UED
在数据驱动时代,A/B 测试成为评估机器学习项目效果的重要手段
在数据驱动时代,A/B 测试成为评估机器学习项目效果的重要手段。本文介绍了 A/B 测试的基本概念、步骤及其在模型评估、算法改进、特征选择和用户体验优化中的应用,强调了样本量、随机性和时间因素的重要性,并展示了 Python 在 A/B 测试中的具体应用实例。
47 1
|
3月前
|
机器学习/深度学习 数据采集 Python
从零到一:手把手教你完成机器学习项目,从数据预处理到模型部署全攻略
【10月更文挑战第25天】本文通过一个预测房价的案例,详细介绍了从数据预处理到模型部署的完整机器学习项目流程。涵盖数据清洗、特征选择与工程、模型训练与调优、以及使用Flask进行模型部署的步骤,帮助读者掌握机器学习的最佳实践。
267 1
|
5月前
|
机器学习/深度学习 算法 TensorFlow
交通标志识别系统Python+卷积神经网络算法+深度学习人工智能+TensorFlow模型训练+计算机课设项目+Django网页界面
交通标志识别系统。本系统使用Python作为主要编程语言,在交通标志图像识别功能实现中,基于TensorFlow搭建卷积神经网络算法模型,通过对收集到的58种常见的交通标志图像作为数据集,进行迭代训练最后得到一个识别精度较高的模型文件,然后保存为本地的h5格式文件。再使用Django开发Web网页端操作界面,实现用户上传一张交通标志图片,识别其名称。
217 6
交通标志识别系统Python+卷积神经网络算法+深度学习人工智能+TensorFlow模型训练+计算机课设项目+Django网页界面
|
6月前
|
机器学习/深度学习 人工智能 数据处理
【人工智能】项目实践与案例分析:利用机器学习探测外太空中的系外行星
探测外太空中的系外行星是天文学和天体物理学的重要研究领域。随着望远镜观测技术的进步和大数据的积累,科学家们已经能够观测到大量恒星的光度变化,并尝试从中识别出由行星凌日(行星经过恒星前方时遮挡部分光线)引起的微小亮度变化。然而,由于数据量巨大且信号微弱,传统方法难以高效准确地识别所有行星信号。因此,本项目旨在利用机器学习技术,特别是深度学习,从海量的天文观测数据中自动识别和分类系外行星的信号。这要求设计一套高效的数据处理流程、构建适合的机器学习模型,并实现自动化的预测和验证系统。
124 1
【人工智能】项目实践与案例分析:利用机器学习探测外太空中的系外行星
|
6月前
|
机器学习/深度学习 数据处理 定位技术
构建您的首个机器学习项目:从理论到实践
【8月更文挑战第28天】本文旨在为初学者提供一个简明的指南,通过介绍一个基础的机器学习项目——预测房价——来揭示机器学习的神秘面纱。我们将从数据收集开始,逐步深入到数据处理、模型选择、训练和评估等环节。通过实际操作,你将学会如何利用Python及其强大的科学计算库来实现自己的机器学习模型。无论你是编程新手还是有一定经验的开发者,这篇文章都将为你打开一扇通往机器学习世界的大门。
|
6月前
|
机器学习/深度学习 数据可视化 数据处理
Python vs R:机器学习项目中的实用性与生态系统比较
【8月更文第6天】Python 和 R 是数据科学和机器学习领域中最受欢迎的两种编程语言。两者都有各自的优点和适用场景,选择哪种语言取决于项目的具体需求、团队的技能水平以及个人偏好。本文将从实用性和生态系统两个方面进行比较,并提供代码示例来展示这两种语言在典型机器学习任务中的应用。
242 1