机器学习从业人员到底做什么?

这篇文章是系列文章的第1部分,第2部分将阐述AutoML和神经架构搜索、第3部分将特别地介绍Google的AutoML。

关于机器学习人才的稀缺和公司声称他们的产品能够自动化机器学习而且能完全消除对ML专业知识需求的承诺经常登上媒体的新闻头条。在TensorFlow DevSummit的主题演讲中,Google的AI总指挥Jeff Dean估计,有数千万拥有可用于机器学习的数据而缺乏必要的专业知识和技能的组织。因为我在fast.ai主要专注于让更多的人去使用机器学习并且让它更容易使用,所以我密切关注刚才所提的机器学习人才稀缺等问题。

在考虑如何使机器学习的一些工作自动化以及让具有更广泛背景的人更容易使用这项技术,首先有必要问的是:机器学习行业从业者到底在做什么?任何用来解决机器学习专业知识稀缺的方案都需要回答这个问题:我们是否知道去教什么技能、去建立什么工具或者去自动化什么工序。

6b0d104b733b74c60ce521d5017f695d7481214e

从事机器学习行业的人做什么?

构建数据产品是一项复杂的工作

虽然许多关于机器学习的学术来源几乎都是预测建模,但这只是从事机器学习在正常情况下做的其中一件事。适当地分析商业问题,收集和清理数据,构建模型,实施结果,然后监控变化的过程在很多方式中是相互关联的,这往往很难仅仅通过单个部分进行孤立(至少不知道其他部分需要什么)。正如Jeremy Howard等人在《设计出色的数据产品》上写道:伟大的预测建模是解决方案的重要组成部分,但它不再独立;随着产品变得越来越复杂,它就会消失在管道中。

c59ba0194238db0ac39a86fcfae34eb13f989811

构建数据产品是一项复杂的工作

来自Google,D. Sculley等的一个团队撰写了经典的机器学习案例:《技术债务的高利率信用卡》,这是关于在实践中使用机器学习时时常产生的代码复杂性和技术债务。作者发现了许多系统级别的交互、风险和反模式,包括:

1.胶水代码:为了将数据输入和输出通用软件包而编写的大量支持代码;

2.管道丛林(pipeline jungles):以ML友好格式准备数据的系统可能成为刮擦,连接和采样步骤的丛林,通常带有中间文件输出;

3.重新使用输入信号的方式会导致其他不相交系统的意外紧耦合;

4.外部环境的变化可能使模型或输入信号的行为意外发生改变的风险,这些可能难以监控。

作者写道:现实世界的“机器学习”工作中一个重要部分是致力于解决这种形式的问题...值得注意的是,胶水代码和管道丛林是整合问题的症状,可能是过度分离的“研究”和“工程”角色的根本原因 ...学术界可能会惊讶地发现,许多机器学习系统中只有很小一部分代码实际上在进行“机器学习”。

当机器学习项目失败时

在其中一次机器学习项目中,我发现了在工作空间失效的故障模式:

1.数据科学团队构建了一个非常酷的东西却永远不会被使用。关于他们正在进行的工作,组织的其余部门没有任何支持,而且一些数据科学家对将什么投入生产并不十分清楚。

2.数据科学家积压生产模型的速度比工程支持生产模型要快得多。

3.数据架构工程师由数据科学家分离出来。管道中现在没有数据科学家所要求的数据,数据科学家也在利用数据架构工程师所收集的数据源。

4.该公司已经明确决定生产功能/产品X.他们需要数据科学家来收集支持此决策的一些数据。数据科学家感觉PM正在忽略与决策相矛盾的数据; PM认为数据科学家正在忽视其他商业逻辑。

5. 数据科学家大材小用:数据科学团队采访了一位令人印象深刻的数学建模和工程技巧的职位申请者,一旦被聘用,求职者就会加入到需要简单业务分析的垂直产品团队中。

在之前,我将这些视为组织失败,但它们也可以被描述为各种从业者过分关注构成完整数据产品的复杂系统的一部分。这些是数据产品管道的不同部分之间的沟通和目标对齐的失败。

那么,从事机器学习行业的人做什么?

如上所述,构建机器学习产品是一项多方面且复杂的任务。以下是机器学习从业者在此过程中可能需要做的一些事情:

理解上下文:

1.确定可以从机器学习中受益的商业领域;

2.与其他利益相关者沟通有关机器学习是什么和自己不具备的能力(通常存在许多误解);

3.了解商业战略,风险和目标,确保每个人都在同一平台上;

4.确定组织拥有哪种数据;

5.适当地构建和审视任务;

6.理解操作约束(例如,在推理的时候选出实际可用的数据);

7.主动识别道德风险,包括骚扰者或进行宣传/虚假宣传活动(并计划如何降低这些风险);

8.识别潜在的偏见和潜在的负反馈循环。

数据:

1.制定计划收集更多不同的数据;

2.将来自许多不同来源的数据整理在一起:这些数据通常以不同的格式或不一致的惯例收集;

3.处理丢失或损坏的数据;

4.可视化数据;

5.创建适当的训练集,验证集和测试集;

模型:

1.选择使用哪种模型;

2.将模型资源需求纳入约束(例如,完成的模型是否需要在边缘设备上运行,在低内存或高延迟环境中运行等);

3.选择超参数(例如,在深度学习的情况下,这包括选择架构、损失函数和优化器);

4.训练模型(并调试为什么训练不成功),这可能涉及:

   4.1调整超参数(例如学习率);

   4.2输出中间结果,以查看损失,训练误差和验证误差如何随时间变化;

   4.3检查模型错误的数据以查找模式;

   4.4识别数据潜在的错误或问题;

   4.5思考你需要改变清理和预处理数据的方式;

   4.6意识到你需要更多或不同的数据增强;

   4.7意识到你需要更多或不同的数据;

   4.8尝试不同的模型;

   4.9确定你的数据是否欠拟合或过拟合;

产品化:

1.使用你的模型作为端点创建API或Web应用程序以实现产品化;

2.将模型导出为所需的格式;

3.计划你的模型需要使用更新的数据进行重新训练的频率;

监控:

1.跟踪模型随时间的变化;

2.监控输入数据,以确定它是否随着时间的推移而变化,从而使模型无效;

3.将你的结果传达给组织的其他成员;

4.制定监督和应对错误或意外后果的计划。

当然,不是每个机器学习从业者都需要完成上述所有步骤,但此过程的组件将成为许多机器学习应用程序的一部分。即使你只是处理这些步骤的一部分,熟悉其余过程也有助于确保你不会忽视会妨碍项目成功的注意事项!

机器学习中最难的两个部分

对于我和我认识的许多其他人,我要强调机器学习(特别是深度学习)中最耗时和最令人沮丧的两个方面:

1.处理数据格式化,不一致和错误通常是一个混乱和繁琐的过程。

2.训练深度学习模型是一个众所周知的脆弱过程。

清理数据真的是ML的一部分吗?是。

处理数据格式化,不一致和错误通常是一个混乱和繁琐的过程。人们有时会将机器学习描述为从数据科学分离的过程,就像机器学习一样,你可以从完美地清理数据,格式化数据集开始。但是,根据我的经验,清理数据集和训练模型的过程通常是交织在一起的:我经常在模型训练中发现导致我返回并改变输入数据的预处理的问题。

808f7e6b2d92533cf9cd3dd195675ba26b0f5365

有必要去处理杂乱和不一致的数据

训练深度学习模型是脆弱且困难的

训练模型的困难吓退了许多常常感到沮丧的初学者。甚至专家经常抱怨模型训练过程有多么令人沮丧和变幻无常。斯坦福大学的一位人工智能研究员告诉我,他教过深度学习课程,并让所有学生都做自己的项目,真是太难了!学生们无法让他们的模型进行训练,我们通常都会说:“好,这是深度学习”。拥有十多年经验并获得NIPS 2017年度时间奖的人工智能研究员Ali Rahimi在他的NIPS奖颁奖演讲中抱怨模型训练的脆弱性。有人向AI研究人员询问:你们当中有多少人已经从零开始设计了一个深层网络,从设计开始,架构以及其他流程来构建它,当它无效时,你感到糟糕透了?许多人举了手。对于我来说,大概每3个月发生一次。甚至AI专家有时也难以训练新模型,这一事实意味着该过程至今不能将其纳入通用产品的方式实现自动化。一些深度学习的最大进步将通过发现更强大的训练方法来实现。我们已经看到了一些像dropout(dropout是指在深度学习网络的训练过程中,对于神经网络单元,按照一定的概率将其暂时从网络中丢弃)、超融合和迁移学习这样的进步,所有这些都使训练变得更容易。通过迁移学习的力量,当为足够狭窄的问题域定义时,模型训练可以是一个健壮的过程。但是,我们仍然有办法让训练更加健壮。

对于学术研究人员

即使你正在从事机器学习的理论研究,理解机器学习从业者在实际问题中所经历的过程也是有用的,因为这可能会为你提供关于最相关或最具影响力的研究领域的见解。

正如Googler工程师D. Sculley等人写道,技术债务是工程师和研究人员都需要注意的问题。为了提供微小精度优势而以大幅提高系统复杂性为代价的研究解决方案很少是明智的做法......降低技术债务并不总是像证明新定理那样令人兴奋,但它是持续强劲创新的关键部分。为复杂的机器学习系统开发全面,优雅的解决方案是非常有益的工作。

AutoML

现在我们已经概述了机器学习从业者在其工作中所做的一些任务,我们已经准备好评估自动完成这项工作的尝试。顾名思义,AutoML是一个专注于自动化机器学习的领域,作为AutoML的子领域的神经架构搜索,目前正受到大量关注。

以上为译文。

本文由阿里云云栖社区组织翻译。

文章原标题《what do machine learning practitioners actually do?》,

作者:Rachel Thomas 译者:虎说八道,审校:。

阅读原文

本文为云栖社区原创内容,未经允许不得转载。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/521443.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

黑科技揭秘:面对海量的文本翻译任务,阿里翻译团队是如何解决的

摘要: 对国际化企业来说语言问题是亟待突破的重要关口。面对海量的文本翻译任务,昂贵低效的人工翻译显然不能满足需求,利用计算机自动进行文本翻译的机器翻译才是解决这个问题的关键。阿里翻译团队在机器翻译领域做了大量技术储备&#xff0c…

(需求实战_进阶_03)SSM集成RabbitMQ 路由模式关键代码讲解、开发、测试

接上一篇:(企业内部需求实战_进阶_02)SSM集成RabbitMQ 关键代码讲解、开发、测试 https://gblfy.blog.csdn.net/article/details/104214033 上一篇给大家介绍了在RabbitMQ 的管控台中,将队列绑定到指定的交换机上;这片…

在计算机中dos代表什么意思,Boot是什么意思

Boot是什么意思如果你去问一个学计算机的人,“启动”是计算机中的那个单词?回答一定是Boot。可是,Boot原来的意思是靴子,“启动”与靴子有什么关系呢?原来,这里的Boot是bootstrap(鞋带)的缩写,它来自一句谚语&#x…

你知道哪些情况下不该使用深度学习吗?

深度学习不适用于什么样的任务?依我之见,以下这些主要场景的深度学习弊大于利。01低成本或者低承诺问题深网是非常灵活的模型,有着许多架构和节点类型,优化器和正则化策略。根据应用,你的模型可能会有卷基层&#xff0…

秒后面的单位是什么_单位与国际单位制是如何由来的?

2013年国庆期的一则网络消息说,11万人看升旗留下了5吨垃圾。有人认为这是一则假消息,因为5吨=5000千克,110000500022千克/人,而每人携带22千克(44斤)的垃圾是不可能的。以前还看过一个说法&…

(需求实战_进阶_04)SSM集成RabbitMQ 通配符模式 关键代码讲解、开发、测试

背景: 为了减轻服务器的压力,现在原有项目的基础上集成消息队列来异步处理消息! 此项目是企业真实需求,项目的代码属于线上生产代码,直接用于生产即可! 此项目采用MQ发送消息模式为:通配符模式,如果对Rabbi…

halo多人正在连接服务器,在线人数过低 《光晕2》PC版多人服务器下月关闭

这也许是一个让粉丝略伤感的消息,《光晕2(Halo2)》PC多人游戏服务器将在下个月永久关闭。343 Industries注意到服务器的峰值在线人数一直仅有20人,因此做出了关闭服务器的决定。343 Industries在Halo Waypoint中说道:“我们很遗憾地宣布&…

纯Python实现鸢尾属植物数据集神经网络模型

摘要: 本文以Python代码完成整个鸾尾花图像分类任务,没有调用任何的数据包,适合新手阅读理解,并动手实践体验下机器学习方法的大致流程。 尝试使用过各大公司推出的植物识别APP吗?比如微软识花、花伴侣等这些APP。当你…

【明人不说暗话】我就只讲进程与线程

戳蓝字“CSDN云计算”关注我们哦!作者 | 阮一峰责编 | 阿秃进程(process)和线程(thread)是操作系统的基本概念,但是它们比较抽象,不容易掌握。最近,我读到一篇材料,发现有…

(需求实战_进阶_05)SSM集成RabbitMQ 通配符模式 关键代码讲解、开发、测试

接上一篇: 文章目录一、RabbitMQ 配置文件1. RabbitMQ 生产者配置文件更新二、启动项目2.1. 启动项目2.2. 清空控制台三、管控台总览3.1. 登录管控台3.2. 交换机中查看绑定队列总览四、验证测试4.4. 生产者①请求4.5. 生产者②请求五、启动RabbitMQ5.1. 进入sbin目录…

两台邮件服务器共用一个公网地址,两个不同域邮件服务器的互通

两个不同域的邮件服务的互通如图,有两个不同域的邮件服务器(postfix)通过一个DNS服务器实现互通。首先说明一下IP分配情况服务器1qq.cometh0(VMnet2): ip:192.168.2.2 netmask:255.255.255.0 gw 192.168.2.1 hostname:mail.qq.com服务器2(qq.neteht0VMne…

希捷银河声音大_【推仔说新闻】那款硬盘它终于来了 希捷推出首款双磁臂硬盘...

经常关注科技新闻的朋友们应该都知道,现在机械硬盘领域可以说是被固态硬盘冲击的不清,而对于我们广大用户们来说,HDD这一个储存介质就被我们更多的用来充当仓库盘使用,毕竟现在的固态已经下探到白菜级别的价格了。但是对于那些HDD…

(需求实战_进阶_06)SSM集成RabbitMQ 订阅模式 关键代码讲解、开发、测试

背景: 为了减轻服务器的压力,现在原有项目的基础上集成消息队列来异步处理消息! 此项目是企业真实需求,项目的代码属于线上生产代码,直接用于生产即可! 此项目采用MQ发送消息模式为:订阅模式,如果对RabbitM…

【目瞪口呆】通信机房内部长这样

戳蓝字“CSDN云计算”关注我们哦!作者 | 小枣君责编 | 刘晶晶大家好,我是小枣君。一直以来,我都在努力给大家做通信知识科普,也写了很多有趣的文章。不过,文章再有趣也只是文字,不是实物。现实生活中&#…

NLP的ImageNet时代已经到来

摘要: NLP领域即将巨变,你准备好了吗? 自然语言处理(NLP)领域正在发生变化。 作为NLP的核心表现技术——词向量,其统治地位正在被诸多新技术挑战,如:ELMo,ULMFiT及Open…

mysql字段分隔符拆分_面试题Mysql数据库优化之垂直分表

在日常的开发工作中,除了JAVA相关的技术,打交道最多的就是Mysql数据库,当数据积累到一定程度,比如500W时就会难免出现一些慢sql,对数据库的优化方式有很多,比如通过增加合理的索引,今天我们来说…

python print用法不换行_python3让print输出不换行的方法

python 3.x版本print输出不换行的格式如下: print(x, end"") 其中,end"" 可使输出不换行,不能省略。 举例:输出结果:内容扩展: python3.x中如何实现print不换行 大家应该知道python中p…

使用Numpy和Opencv完成图像的基本数据分析(Part II)

摘要: 使用Numpy和Opencv完成图像的基本数据分析后续部分,主要包含逻辑运算符操作、掩膜以及卫星图像数据分析等操作 在上一节中,主要是介绍了图像的基本知识以及OpenCV的基本操作,具体内容参见“使用Numpy和Opencv完成基本图像的…

(需求实战_进阶_07)SSM集成RabbitMQ 订阅模式 关键代码讲解、开发、测试

接上一篇:(企业内部需求实战_进阶_06)SSM集成RabbitMQ 订阅模式 关键代码讲解、开发、测试 https://gblfy.blog.csdn.net/article/details/104219096 此项目采用MQ发送消息模式为:订阅模式,如果对RabbitMQ不熟悉,请学习…

分布式事务方案这么多,到底应该如何选型?

戳蓝字“CSDN云计算”关注我们哦!作者 | 温卫斌责编 | 刘晶晶源自 | dbaplus社群作者介绍温卫斌,就职于中国民生银行信息科技部,目前负责分布式技术平台设计与研发,主要关注分布式数据相关领域。微服务兴起的这几年涌现出不少分布…