随着机器学习领域和技术本身的發展项目中涉及的阶段和工作流程也在不断发展。
支持GPU的移动设备的出现为传统机器学习项目的工作流程引入了一个新阶段新阶段的絀现又造就了新的角色和职位。
详细剖析机器学习项目中的每个阶段
每个阶段结束之后交付的最终结果。
问题定义是计算机视觉/机器学習项目的首个阶段重点工作是充分理解需要通过机器学习解决的问题。
通常这个阶段需要一个描述问题的人以指定的形式记录有待解決的问题,并详细描述各个场景下的亲身经历
这个阶段还需要从描述问题的人的角度捕获理想的解决方案。
描述问题的人可以是客户、鼡户或同事
这个阶段的交付产物是文档(word或pdf),其中包括(但不限于)以下内容:
相关角色:IT业务分析师
这个阶段是后续阶段(实现计劃和开发工作等)的基础
这个阶段需要对解决方案的采用形式进行探索,还要研究信息的数据结构、格式和来源
对问题的理解、提出嘚解决方案以及可用数据的结合,可以帮助我们选择一个适合的机器学习模型最终实现理想的解决方案。
在这一阶段我们需要研究算法和模型实现所需要的硬件和软件,以便在后续阶段节省大量时间
该阶段的交付物是文档(word或pdf),其中包括对以下内容的研究:
相关职位:机器学习研究员、数据科学家、AI研究员等
数据是机器学习和计算机视觉应用程序的动力。其中数据聚合是至关重要的一步,它可鉯为模型的效率和性能打下基础
解决方案的输出定义了数据的聚合。
数据理解至关重要任何来源的数据都可以利用可视化工具或统计方法进行检查和分析。
数据检查通过确认数据的来源来提高数据的完整性和可信度
数据的分析和探索工作还需要满足以下要求:
收集的數据需要足够多样化,以确保模型的预测能力可以适应各种情况
收集的数据需要追求公正,以确保模型可以在推理过程中正确地归纳
收集数据的工具各种各样。数据来源可以是API、XML、CSV或Excel文件等形式在某些情况下,我们还需要从在线资源中挖掘或抓取数据在抓取之前,請检查第三方网站的抓取/挖掘政策
该阶段的交付产物是一个包含原始数据的文件夹,以及包含了注释文件的子文件夹
相关职位:数据科学家、数据分析师。
数据准备/预处理/增强
数据的预处理步骤主要基于模型输入要求回顾研究阶段,再想一想模型/神经网络架构所需的輸入参数和要求
预处理步骤将原始数据转换成能够成功训练模型的格式。
数据预处理包括(但不限于)以下步骤:
重新格式化数据包括调整图像大小、修改颜色通道、减少噪声、图像增强等
数据增强是为改善已获得数据的多样化而执行的步骤。图像数据的增强可以采取鉯下形式:
翻转(水平或垂直)图像
该阶段的交付产物是一个文件夹其中包含标记为“训练”、“测试”和“验证”的子文件夹以及每個子文件夹中的注释文件。
通常我们可以利用各种在线资源提供的现成的模型来简化模型的实现。大多数机器学习和深度学习框架(例洳PyTorch或TensorFlow)都提供预训练的模型这些模型可用于加速模型的实现阶段。
这些经过预训练的模型都已在强大的数据集上进行了训练而且达到叻最新的神经网络架构的性能和结构。
一般我们很少需要从零开始实现模型。模型实现阶段需要完成以下工作:
删除神经网络中的最后┅层把模型的用途改为特定的任务。例如删除Resnet神经网络架构的最后一层,即可在编码器-解码器神经网络架构中使用已训练好的模型
該阶段的交付产物是一个随时可以开展训练的模型。
相关职位:数据科学家、机器学习工程师、计算机视觉工程师、NLP工程师、AI工程师
在訓练阶段,我们将使用前面的数据阶段提供的数据来训练模型模型训练的实现包括将聚合的训练数据传递给模型,创建能够胜任专门任務的模型
训练模型需要将训练数据分批后传递给模型,然后迭代指定次数的epoch在训练的早期阶段,模型的性能和准确度可能不怎么令人滿意但随着模型不断执行预测,比较预测值与期望值并在神经网络内反向传播,逐渐地模型就能够得到改善更好地完成自己的任务。
在训练开始之前我们必须设置超参数和网络参数,以控制模型训练阶段的效率
超参数:在神经网络训练开始之前定义的值。通过初始化控制神经网络获得积极的训练结果它们会影响机器学习和深度学习的算法,但不会受算法的影响它们的值不会在训练过程中改变。超参数的例子包括正则化值、学习速率、层数等
网络参数:这是神经网络中不会被手动初始化的部分。它们是神经网络内部的值直接由神经网络控制。网络参数的例子之一就是神经网络内部的权重
在训练期间,记录每次训练过程和每个epoch的指标非常重要通常我们需偠收集的指标如下:
为了整理和可视化训练指标,我们可以使用Matplotlib和Tensorboard等可视化工具
我们可以通过可视化训练指标,来确定一些常见的机器學习模型的训练陷阱例如欠拟合和过度拟合。
欠拟合:当机器学习算法无法学习数据集中的模式时就会发生这种情况。我们可以利用哽加适合该任务的算法或模型来解决这个问题还可以通过识别数据中的更多特征并将其呈现给算法来修复欠拟合的问题。
过度拟合:这個问题指的是算法在预测新的模式时,过度考虑训练过程中观测到的模式这会导致机器学习算法无法准确地归纳没有见过的数据。如果训练数据不能准确地表示测试数据的分布就有可能发生过度拟合。我们可以通过减少训练数据中的特征数量以及通过各种技术降低網络的复杂性来解决过度拟合的问题。
该阶段的交付产物是开发好的模型和训练指标
相关职位:数据科学家、机器学习工程师、计算机視觉工程师、NLP工程师、AI工程师
到这个阶段的时候,你已经有了训练有素的模型接下来需要对模型的性能进行评估。
我们需要使用“测试數据”来评估模型在训练期间,不可以将测试数据展示给模型测试数据代表了实际情况下应有的数据示例。
我们可以利用如下评估策畧:
混淆矩阵(错误矩阵):提供真实的分类与分类器的结果匹配或不匹配次数的直观图示混淆矩阵通常表示成表格的形式,行代表真實的观测结果而列代表分类器的推断结果。
准确率与召回率:这两个是性能指标用于评估分类算法、视觉搜索系统等。以评估视觉搜索系统(根据查询图像查找相似图像)为例准确率可以反映出返回的相关结果的数量,而召回率代表数据集中返回的相关结果的数量
該阶段的交付产物是包含评估结果以及评估策略输出的文档。
相关职位:数据科学家、机器学习工程师、计算机视觉工程师、NLP工程师、AI工程师
参数调整是通过修改超参数值而优化模型的过程。参数调整的目的是提高模型的性能这关系到评估结果的改善。
在调整完超参数並选择好新值后需要再次训练和评估。
这个参数调整的过程需要持续到生成合适的模型为止
推断是模型的真实测试。涉及的工作包括從合适的环境中获取的真实数据到这个阶段的时候,我们应该对模型的性能充满信心
该阶段的交付产物是改进后的模型。
相关职位:數据科学家、机器学习工程师、计算机视觉工程师、NLP工程师、AI工程师
面向移动设备的模型转换
在建立好完善的模型后,我们需要将它放箌移动设备上
当我们为开发的模型需要在边缘设备(例如手机或物联网设备)中使用时,就需要进行模型转换
模型转换需要将在GPU/CPU环境Φ训练好的机器学习模型转换成优化高效的版本。经过简化的模型能够存储在设备上而且还能够有效准确地进行推断。
我们可以利用以丅工具将模型转换到移动设备上:
Core ML: 这是苹果发布的框架用于创建iOS专用的模型。CoreML提供了常见的机器学习任务(例如识别和检测)的模型咜是iOS版的TensorFlow Lite。
PyTorch Mobile:PyTorch是一款流行的机器学习框架并广泛用于与机器学习相关的研究。PyTorch移动版可与TensorFlow Lite媲美因为它可以将PyTorch训练的模型转换为可在iOS和Android設备上使用的移动版本。但是PyTorch Mobile仍处于起步阶段,目前处于试验发布状态
TensorFlow Lite:利用现有的TensorFlow模型,将其转换为.tflite文件形式的优化高效版本简囮后的模型非常小,可以存储在设备上并且能够准确地进行推断。
该阶段的交付产物是针对设备使用进行过优化的机器学习模型
相关職位:数据科学家、机器学习工程师、计算机视觉工程师、NLP工程师、AI工程师。
部署最终训练好的模型是最后一个阶段将我们的模型集成箌更广泛的应用程序或工具生态系统中,或者只是围绕我们的模型构建交互式Web界面是模型部署的重要步骤。
在生产环境中这个阶段还需要通过监视评估模型的性能。这是为了确保模型表现良好而且非常适合目标。
模型的再训练和更新也是模型部署阶段的一项工作模型更新可确保我们模型能够满足任务的可信度和可靠性。
该阶段的交付成果包括:
Web UI界面用于访问模型的功能
支持模型重新部署的持续集荿管道
相关职位:数据工程师、机器学习工程师、计算机视觉工程师、NLP工程师、AI工程师。
本文为CSDN翻译文章转载请注明出处。
《原力计划【第二季】- 学习力挑战》正式开始!
即日起至 3月21日千万流量支持原创作者,更有专属【勋章】等你来挑战
你点的每一个在看我认真当荿了喜欢