【导读】机器学习现在已经渗透到我们工作生活的方方面面,关于机器学习算法原理的书籍有很多经典教科书,但是实际工程生产系统中的机器学习落地书籍却乏善可陈。来自Gartner机器学习技术负责人Andriy Burkov又一力作机器学习工程《Machine Learning Engineering》,专注机器学习项目实施的工程方面。诸如数据收集、存储、预处理、特性工程以及模型的测试和调试、模型在生产环境中的部署和退出、运行时和后期维护等问题。是值得广大ML工程师关注的一本书。值得一提的是Andriy Burkov撰写的100天机器学习颇受欢迎。
开放书地址:
http://www.mlebook.com/wiki/doku.php
概览
有很多关于机器学习的好书,既有理论性的,也有实践性的。在一本典型的机器学习书籍中,你可以学习机器学习的类型,算法的主要种类,它们是如何工作的,以及如何使用这些算法从数据中构建模型。
典型的机器学习书籍较少关注机器学习项目实施的工程方面。诸如数据收集、存储、预处理、特性工程以及模型的测试和调试、模型在生产环境中的部署和退出、运行时和后期维护等问题,通常要么完全超出了机器学习书籍的范围,要么被肤浅地考虑。
这本书填补了这一空白。
假设读者了解机器学习的基础知识,并且能够使用喜爱的编程语言或机器学习库来构建给定格式的数据集的模型。本书的目标读者是倾向于机器学习工程角色的数据分析师、希望为工作带来更多结构的机器学习工程师、机器学习工程专业的学生,以及经常处理数据分析师和机器学习工程师提供的模型的软件架构师。
本书全面回顾了机器学习工程的最佳实践和设计模式。我建议从头到尾读一遍。但是,您可以以任何顺序阅读章节,因为它们涵盖了机器学习项目生命周期的不同方面,并且彼此之间没有直接的依赖关系。
引言
虽然我假设您已经了解了机器学习的基础知识,但是从定义开始仍然是很重要的,这样我们就可以确保对贯穿全书的术语有一个共同的理解。我将重复我在那本一百页的机器学习书中给出的一些定义,所以如果你读了我的第一本书,不要惊讶于这一章的某些部分听起来很熟悉。
1. 什么是机器学习?
机器学习是计算机科学的一个分支,它关注的是如何构建有用的算法,这些算法依赖于一些现象的实例集合。这些例子可能来自大自然,可能是人类手工制作的,也可能是由其他算法生成的。机器学习也可以被定义为解决一个实际问题的过程: 1) 收集一个数据集,2) 通过算法训练一个基于该数据集的统计模型。统计模型被认为是用来解决实际问题。为了节省敲击键盘的时间,我将“学习”和“机器学习”这两个术语互换使用。学习可以是监督的、半监督的、非监督的和强化的。
2. 机器学习工程
机器学习工程(MLE)是利用机器学习的科学原理、工具和技术以及传统的软件工程来设计和构建复杂的计算系统。MLE包含从数据收集到模型构建,再到使模型可供产品或消费者使用的所有阶段。
通常,数据分析师关心的是理解业务问题,构建解决问题的模型,并在受限的开发环境中对其进行评估。反过来,机器学习工程师关注采购来自不同系统的数据和位置和预处理,编程功能,构建一个有效的模型,将在生产环境中运行,共存与其他生产过程,是稳定的、可维护的方便不同类型的用户提供不同的用例。
换句话说,MLE包括让机器学习算法作为有效生产系统的一部分实现的任何活动。
在实践中,机器学习工程师可能会从事以下工作:将数据分析师的代码从相当慢的R和Python重写为更高效的Java或c++,扩展这段代码并使其更健壮,将代码打包成易于部署的版本化包,优化机器学习算法以确保它生成与组织的生产环境兼容并能正常运行的模型。
在许多组织中,数据分析师执行一些MLE任务,例如数据收集、转换和特性工程。另一方面,机器学习工程师经常执行一些数据分析任务,包括学习算法选择、超参数调整和模型评估。
从事机器学习项目不同于从事典型的软件工程项目。与传统软件不同的是,在传统软件中,程序的行为通常是确定的,而机器学习应用程序则包含一些模型,这些模型的性能可能会随着时间的推移而自然地退化,或者开始表现得异常。模型的这种异常行为可以用各种原因来解释,包括输入数据的根本变化或更新的特征提取器,该提取器现在返回不同的值分布或不同类型的值。人们常说机器学习系统会无声无息地失灵。一个机器学习工程师必须有能力防止这样的故障,或者,当不可能完全预防它们时,知道如何检测和处理它们。
3. 机器学习项目生命周期
机器学习项目生命周期
机器学习项目从理解业务目标开始。通常,业务分析人员与客户和数据分析人员一起将业务问题转换为工程项目。工程项目可能有也可能没有机器学习部分。在这本书中,我们当然会考虑一些涉及到机器学习的工程项目。一旦定义了一个工程项目,这就是机器学习工程的范围开始的地方。在更广泛的工程项目范围内,机器学习首先必须有一个明确的目标。
机器学习的目标是指定统计模型接收什么作为输入,生成什么作为输出,以及模型的可接受(或不可接受)行为的标准。机器学习的目标不一定与业务目标相同。业务目标是组织想要达到的目标。例如,谷歌和Gmail的业务目标是使Gmail成为最常用的电子邮件服务。谷歌可以创建多个机器学习工程项目来实现业务目标。其中一个机器学习项目的目标是区分个人邮件和促销邮件,准确率在90%以上。
总的来说,一个机器学习项目的生命周期,如图3所示,包括以下几个阶段:
目标定义
数据收集和准备
工程特点
模型建立
模型评价
模型部署
模型服务
监测模型
模型维护
在上图中,蓝色区域显示了机器学习工程的范围(以及本书的范围)。实箭头显示了项目阶段的典型流程。虚线箭头表明,在某些阶段,可以决定返回到流程中,或者收集更多的数据,或者收集不同的数据并修改特性(通过停用其中一些并设计新的特性)。
对于以上每个阶段,书中都有一个独特的章节。但是首先,让我们讨论一下如何确定机器学习项目的优先级,如何定义项目的目标,以及如何组织机器学习团队。
便捷查看下载,请关注专知公众号(点击上方蓝色专知关注)
后台回复“MLE” 就可以获取《机器学习工程》177页pdf专知下载链接索引