序言
本作品已使用人工智能进行翻译。欢迎您提供反馈和意见:translation-feedback@oreilly.com
使用机器学习应用程序的目标
在过去十年中,机器学习(ML)越来越多地被用于支持各种产品,如自动支持系统、翻译服务、推荐引擎、欺诈检测模型等。
令人惊讶的是,目前并没有多少资源可以用来教授工程师和科学家如何构建此类产品。许多书籍和课程都会教授如何训练 ML 模型或如何构建软件项目,但很少有书籍和课程会将这两个世界融为一体,教授如何构建由 ML 驱动的实际应用。
部署 ML 作为应用程序的一部分,需要创造力、强大的工程实践和分析思维的融合。众所周知,构建 ML 产品充满挑战,因为它们需要的远不止是在数据集上训练一个模型。为特定功能选择正确的 ML 方法、分析模型错误和数据质量问题,以及验证模型结果以保证产品质量,这些都是 ML 构建过程中的核心挑战问题。
本书贯穿了这一过程的每一步,旨在通过分享方法、代码示例以及我和其他经验丰富的从业者的建议,帮助你完成每一步。我们将介绍设计、构建和部署由 ML 驱动的应用程序所需的实用技能。本书的目标是帮助您在 ML 流程的每个部分都取得成功。
使用 ML 构建实际应用
如果 您经常阅读 ML 论文和企业工程博客,您可能会对线性代数方程和工程术语的结合感到不知所措。该领域的混合性质导致许多工程师和科学家对 ML 领域望而生畏,而他们本可以贡献自己的各种专业知识。同样,创业者和产品领导者往往也很难将自己的创业想法与当今(以及未来)可能的 ML 技术结合起来。
本书涵盖了我在多家公司的数据团队中工作所学到的经验,以及我通过在 Insight Data Science 公司领导人工智能项目,帮助数百名数据科学家、软件工程师和产品经理构建应用 ML 项目的经验。
本书的目的是分享构建 ML 驱动型应用程序的分步实用指南。本书实用性强,侧重于具体的技巧和方法,以帮助您构建原型、迭代和部署模型。由于本书涉及的主题范围很广,因此我们将只在每个步骤中介绍必要的细节。在可能的情况下,我还会提供资源,帮助您深入了解所涉及的主题。
重要的概念将通过实际案例加以说明,其中包括一个案例研究,该案例将在本书结束时从想法变成部署模型。大多数示例都配有插图,许多示例还包含代码。本书中使用的所有代码都可以在本书配套的 GitHub 代码库中找到。
由于本书侧重于描述 ML 的过程,因此每一章都建立在前几章所定义的概念之上。因此,我建议您按顺序阅读本书,以便了解每个连续步骤是如何融入整个流程的。如果你想探索 ML 过程的一个子集,那么你可能更适合阅读更专业的书籍。如果是这种情况,我也推荐了几本书。
其他资源
-
如果 您想充分了解 ML,以便从头开始编写自己的算法,我向您推荐 Joel Grus 所著的《从零开始学数据科学》(Data Science from Scratch)。如果你追求的是深度学习理论,那么 Ian Goodfellow、Yoshua Bengio 和 Aaron Courville 编写的教科书《Deep Learning》(麻省理工学院出版社)是一本全面的资料。
-
如果你想了解如何构建需要处理大量数据的可扩展应用程序,我推荐你阅读 Martin Kleppmann 所著的《设计数据密集型应用程序》(Designing Data-Intensive Applications,O'Reilly)。