使用 Rust 进行实践机器学习
使用 Rust 进行实践机器学习
简介:
引言
《Practical Machine Learning with Rust》一书(作者:Joydeep Bhattacharjee,2020年出版,共304页)是一本罕见且宝贵的指南,它将两个强大的世界结合在一起:高性能系统语言 Rust 和现代机器学习。虽然 Python 在 ML 生态系统中占据主导地位,但 Rust 提供了安全的内存管理、接近 C/C++ 的速度以及出色的并行计算能力。这本书不仅仅是 Python 方法向 Rust 的简单移植,而是深入探讨了如何根据该语言的特点创建 ML 模型。
本书内容
作者循序渐进地引导读者从 Rust 基础(如果您是新手)到构建完整的神经网络和数据处理管道。本书分为几个逻辑模块:
- Rust 用于 ML 的基础知识: 简要但全面地介绍语法、所有权、借用和特质,这些是后续工作所必需的。
- 数据处理: 使用 ndarray、csv 和 serde 等 crate 进行数据加载、清洗和转换。
- 线性代数和统计学: 无需第三方库即可实现矩阵运算、计算指标(均值、方差、相关性)。
- 机器学习算法: 线性回归、逻辑回归、K-近邻、决策树——从头开始实现以及使用 rustlearn crate。
- 神经网络: 构建多层感知器、反向传播、使用 tch-rs crate(PyTorch 绑定)。
- 优化与并行: 使用 Rayon 进行并行数据处理,加速训练。
- 模型部署: 使用 actix-web 创建 REST API 并将模型集成到 Web 服务中。
本书适合谁
本书面向已经熟悉 Rust 的开发者(至少是基础水平),并希望将其应用于机器学习任务。它也对那些希望超越 Python 并掌控性能的 ML 工程师 很有用。Rust 新手应事先掌握至少《The Rust Programming Language》的内容,因为作者不会在基本结构上花费过多时间。
读者将学到什么
- 如何在 Rust 中高效地加载和处理大量数据。
- 如何在不依赖外部库的情况下实现经典的 ML 算法。
- 如何使用 ndarray、rustlearn、tch-rs 等 crate 构建模型。
- 如何通过多线程(Rayon)优化训练过程。
- 如何序列化模型并通过 Web 服务器将其部署到生产环境。
- 如何在处理矩阵时避免与所有权和借用相关的常见错误。
优势
1. 实践导向。 每章都包含可直接运行的完整代码。示例非常真实:从房价预测到图像分类。
2. 理论与实现之间的平衡。 作者对算法数学的解释恰到好处,让读者理解发生了什么,而不会陷入公式的泥潭。
3. 注重性能。 展示了 Rust 如何比 Python 更快地处理数据,尤其是在大型数据集上。
4. 现代技术栈。 使用了(截至 2020 年)最新版本的 crate,使得本书在稍作调整后至今仍适用。
5. 部署。 ML 书籍中罕见的话题——将模型打包成 Web 服务——得到了详细且高质量地阐述。
推荐给谁
本书对以下人群很有用:
- 希望扩展语言应用领域的 Rust 开发者。
- 希望