美文网首页ACT | 敏捷教练工具箱
机器学习项目如何管理(3):工作内容

机器学习项目如何管理(3):工作内容

作者: 熊节 | 来源:发表于2019-03-30 18:35 被阅读4次

前一篇文章介绍了机器学习的基本过程,然后讨论了如何对机器学习项目设置期望的问题。我们了解到,度量准确率的指标可以有多种,需要根据应用场景来选择。一旦选好了度量指标,接下来就可以围绕这个指标来划分任务、监控进度、管理风险。

机器学习项目涉及哪些工作

站在非常宏观的角度,机器学习系统工作的方式是:你有一个模型,你把一堆数据输入给它,然后你以某种方式使用它提供给你的输出。所以机器学习项目要完成的任务也是三大块:处理输入;获得模型;提供产出。

处理输入

a. 你需要获得已有的数据

b. 你需要对数据做矢量化操作,把原本丰富多样的数据变成有若干列的矢量

c. 你需要对数据做特征工程,找出可能蕴涵了知识、值得被学习的那些特征项

获得模型

a. 实际上很多时候你可以使用现成的模型,包括:(i)下载现成的离线模型,或者(ii)使用在线的人工智能服务

b. 如果没有现成的模型,你也可以考虑使用现有的数据来自行训练模型

提供产出

a. 机器学习的结果可能通过某种人-机(UI)或机-机界面(API)被用户直接使用

b. 作为项目的产出,机器学习模型需要被嵌入到整个数据流水线中

c. 作为项目的产出,机器学习模型的开发、测试、部署需要有DevOps的支撑

在所有这些任务中,只有2.b“自行训练模型”(上图右下角标星星的部分)需要新的技能和管理方法,其他都是传统的软件开发任务,可以用标准的Scrum等敏捷方法拆分任务和管理。也就是说,如果你需要的人工智能能力已经有一个现成的模型提供,那么整个项目就是一个传统的软件开发项目,只是需要使用一些新的工具或API而已。

下面我们聚焦讨论需要自行训练模型时,这部分工作应该如何拆分、如何管理进度和风险。

自行训练模型的流程

在自行训练模型的情况下,如上图所示,你会用历史数据(X和Y)来训练一个模型,然后用这个模型对未来的生产数据(X-hat)做预测(算出Y-hat)。不论采用什么指标来度量准确率,模型在训练数据上的表现一定好于在生产数据上的表现,这是因为模型从训练数据中“学到”的知识不一定在生产数据中完全重现,或者用黑话来说,模型在训练过程中“拟合”了训练数据的特征。也就是说,如果一个模型对训练数据表现出了95%的准确率(先不管采用哪个准确率指标),其实你并不知道这个模型对生产数据会表现什么水平的准确率,于是你也不知道这个模型是否好到可以上线运行。

为了更有效地衡量模型的表现,我们会在开始训练模型之前先拿出一小部分历史数据(例如全部历史数据的10%)用于测试,整个训练过程不接触这部分数据。于是我们就有了“训练集”(training set)和“测试集”(test set)。很多时候我们还会分出一小部分数据作为“验证集”(validation set),为了简化问题,我们可以先采用“训练集+测试集”这种设置。

把历史数据分成训练集和测试集以后,可以预期,模型在训练集上的表现会优于在测试集上的表现,这两个表现通常都会低于项目期望值。我们把“【模型在训练集上的表现】与【期望值】之间的差距”叫做Bias,把“【模型在训练集上的表现】与【模型在测试集上的表现】之间的差距”叫做Variance。

于是就有3种可能的情况:

High Bias:模型在训练集上的表现远低于期望,模型还不能实用(此时Variance如何并不重要);

Low Bias, High Variance:模型在训练集上表现好,但是在测试集上表现差,模型还不能实用;

Low Bias, Low Variance:模型在训练集和测试集上表现都好,可以投入实用。

我们通常会从简单的机器学习算法、手边立即能获得的数据开始尝试。这时候通常Bias会高,因为过于简单的模型不足以呈现数据背后的知识,这时我们说模型“拟合不足”(Under-fitting)。在这种情况下,可以采用的措施包括:

使用更复杂的机器学习算法

使用更复杂的神经网络架构

用更复杂的机器学习算法和神经网络训练出来的模型,通常能更好地拟合训练集,进入“Low Bias”的状态。这时我们再关注模型在测试集上的表现,如果测试集的表现远差于训练集的表现,就说明模型过度地针对训练集的特征做了优化,我们说模型“过度拟合”(Over-fitting)训练数据。在这种情况下可以采用的措施包括:

引入Regularization通常能降低over-fitting的程度

通过特征工程可以避免一些over-fitting的情况,例如排除掉一些严重过度拟合的特征

引入更多的训练数据,包括数据量和特征量

最终我们的目标是得到Bias和Variance双低的模型。

潜在风险点

从上述的工作流程中,我们可以预先识别一些潜在的风险:

在Under-fitting的状态下,如果人员能力不足,就无法应用更复杂的算法

在Under-fitting的状态下,如果计算资源不足,就无法训练更复杂的模型

在Over-fitting的状态下,如果数据质量不足,就无法开展有效的特征工程

在Over-fitting的状态下,如果数据数量不足,就无法训练高效的模型

如果整个项目涉及的数据基础设施不足,就无法快速迭代实验

于是,训练一个机器学习模型就不再是一个神秘的、盲目的、随机的过程。借助Bias、Variance、迭代实验的频率等量化数据,IT管理者和不懂技术的业务代表能更清晰地看到项目的进展,整个团队能更好地判断接下来需要做什么:是需要尝试更高级的神经网络呢?还是需要想办法获得更多的数据?或者是需要更多的计算资源?还是需要寻找某些特定的知识和技能?这样就避免了业务代表怀有不切实际的期望、又不知道技术团队在做什么而感到恐慌。

在下一篇文章里,我会更加具体地介绍,如何借鉴Scrum和看板等敏捷方法的思路,把训练一个机器学习模型的工作拆分成更小粒度、更易于管理的任务,以及如何对机器学习项目进行可视化管理。

相关文章

  • 机器学习项目如何管理(3):工作内容

    前一篇文章介绍了机器学习的基本过程,然后讨论了如何对机器学习项目设置期望的问题。我们了解到,度量准确率的指标可以有...

  • 项目管理软件

    项目管理没有那么复杂 完成项目中的个人工作内容: 1.项目绩效管理: 2.项目计划管理 3.项目进度管理 4.项目...

  • 机器学习之综述与案例分析笔记

    主要内容1.从项目中看机器学习对商业决策的重要性2.什么是机器学习?从案例分析中介绍机器学习能解决的问题3.数据可...

  • 学习资料集合

    一、开源项目 1.Sklearn 与 TensorFlow 机器学习实用指南 2.NPL开源项目 3.机器学习笔记

  • 机器学习项目如何管理(1):现状

    Atlassian的一篇博客提出,到2020年有87%的Jira用户认为他们的工作会被AI改变。具体到项目管理上,...

  • 机器学习项目如何管理(4):看板

    在前面的文章中我们看到,涉及机器学习、人工智能的项目,普遍地存在项目管理的困难。然后我介绍了针对这类项目如何设置合...

  • 谷歌发布机器学习速成课程

    内容包括: 1. 机器学习概念 2. 机器学习工程 3. 机器学习现实世界应用示例 https://develop...

  • 第一篇 机器学习概述

    主要内容 1 什么是机器学习 2 机器学习分类 3 机器学习的挑战 4 测试与验证 开始 1 什么是机器学习 来自...

  • 业务管理

    Pc端管理平台 经营模式 项目整合管理 1、制定项目章程2、制定项目管理计划3、指导与管理项目工作4、监控项目工作...

  • 机器学习实战-数据探索(缺失值处理)

    接着上一篇:《机器学习实战-数据探索》介绍,机器学习更多内容可以关注github项目:machine learni...

网友评论

    本文标题:机器学习项目如何管理(3):工作内容

    本文链接:https://www.haomeiwen.com/subject/lausbqtx.html