购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

PREFACE
前言

通过社交媒体和新闻报道我们已经了解到,机器学习已成为这个时代非常振奋人心的技术。微软、谷歌、Meta、苹果、亚马逊、IBM等公司都在机器学习科研与应用方面投入巨资。机器学习已经成为我们这个时代的流行语,这并非夸大其词。机器学习领域为未来的无限可能开辟了新道路,已经成为我们日常生活中不可或缺的一部分。机器学习应用包括手机语音助手对话、为顾客推荐商品、识别信用卡盗刷、过滤E-mail垃圾邮件、自动诊断疾病等。

本书适合有志于进入机器学习领域,使用机器学习算法解决问题或从事机器学习研究的人员阅读。机器学习理论对初学者而言有一定难度,初学者可以从阅读机器学习书籍并动手实践机器学习算法入门。

练习实际的机器学习代码示例是一种进入机器学习领域的好方法。通过具体的示例用所学的知识解决实际的问题,可以达到理解概念的目的。本书除了介绍Python机器学习库和用机器学习库搭建模型外,还介绍机器学习算法的数学理论,这些数学理论对于深入理解机器学习算法至关重要。因此,不同于只专注于实践的书籍,本书讨论了机器学习算法的工作原理、使用方法、实现细节以及如何避免机器学习算法实现过程中的常见问题。

本书涵盖了机器学习领域的基本概念和方法,可以让读者全面地了解机器学习领域。如果想深入了解机器学习算法,可以参考本书引用的资源,这些资源都是机器学习领域最近的重要突破。

读者对象

本书介绍如何将机器学习和深度学习应用于各种任务与各种数据集。本书全面地介绍了机器学习领域,适合机器学习专业的学生、考虑转行的从业者或者计划紧跟最新技术的程序员阅读。

本书内容

第1章介绍机器学习的几个子领域。此外,还介绍了实现典型机器学习模型的基本步骤,后续章节将使用这些步骤创建机器学习模型。

第2章追溯机器学习的起源并介绍二元感知机分类器和自适应线性神经元。此外,还简要介绍了模式分类的基础知识,重点关注了机器学习中使用的优化算法。

第3章介绍基本的机器学习分类算法及其应用,同时介绍了一个最流行、最全面的开源机器学习库——Scikit-Learn。

第4章讨论如何处理原始数据集中最常见的问题,如数据缺失等。本章介绍了几种方法,用于识别数据集中包含信息最丰富的特征。本章还介绍了如何处理不同类型的变量,使其可以作为机器学习算法的输入。

第5章介绍数据降维的基本方法,这些方法可减少数据集特征数量,同时仍保持数据中有用的、可辨别的信息。本章介绍了数据降维的标准方法,即主成分分析算法,并比较了主成分分析算法、监督非线性降维算法。

第6章介绍评估预测模型性能的注意事项。此外,本章还讨论了多个评估模型性能的指标和微调机器学习模型的方法。

第7章介绍组合多个机器学习算法的方法。本章介绍如何集成多个机器学习模型以克服单个机器学习模型的弱点,从而使集成模型给出更准确、更可靠的预测结果。

第8章介绍如何将文本数据转换为机器学习模型可以使用的特征向量,并训练模型预测文本中蕴含的观点。

第9章介绍解释变量和响应变量之间线性关系的建模方法,即根据解释变量预测响应变量的方法。在介绍了各种线性模型之后,本章还介绍了多项式回归和基于树的方法。

第10章介绍机器学习的另一个子领域——无监督学习。本章使用3种基本聚类算法,基于样本的相似度,对样本分组。

第11章拓展第2章介绍的梯度优化算法,基于反向传播算法使用Python实现一个强大的多层人工神经网络。

第12章以第11章的知识为基础,介绍如何有效地训练神经网络。本章的重点是PyTorch。PyTorch是一个能使用GPU进行多核计算的开源Python库,拥有用户友好的API,可以灵活地搭建神经网络。

第13章以第12章的知识为基础,介绍PyTorch更高级的概念和功能。PyTorch是一个非常庞大且复杂的库,本章介绍动态计算图和自动微分等概念。此外,还介绍了如何使用PyTorch的面向对象API来搭建复杂的神经网络,以及如何有效使用PyTorch Lightning并最大限度地减少样板代码。

第14章介绍卷积神经网络。卷积神经网络是一种特殊类型的深度神经网络,特别适合用来处理图像数据。由于比传统神经网络的性能更优,因此,卷积神经网络被广泛应用于计算机视觉领域,在各种图像识别任务中取得了非常优秀的成果。本章探讨了如何使用卷积层提取图像特征并对图像分类。

第15章介绍另一种适合处理文本、有序数据和时间序列数据的深度学习神经网络。作为热身练习,本章使用循环神经网络预测电影评论数据中隐含的观点。然后,我们训练循环网络从书中提取信息,以生成全新文本。

第16章重点关注自然语言处理的最新趋势,解释注意力机制如何帮助建模长序列中的复杂关系。本章介绍了多个有影响力的先进transformer模型,例如BERT和GPT。

第17章介绍一种流行的神经网络对抗训练机制,可用于生成逼真的新图像。本章首先简要介绍了自编码器——自编码器是一种可用于数据压缩的神经网络。然后展示了如何组合自编码器的解码器部分以及一个可以区分真实图像和合成图像的神经网络,让这两个神经网络在对抗训练中相互竞争,形成一个生成对抗网络,此生成对抗网络可以生成手写数字图像。

第18章处理的数据超越了表格数据、图像数据和文本数据。本章介绍了处理图结构数据(例如社交媒体网络和分子结构)的图神经网络。在介绍图卷积的基础知识之后,本章给出了一个例子,展示了如何实现分子结构的预测模型。

第19章讨论用于训练机器人和其他自主系统的机器学习子类别。本章首先介绍了强化学习的基础知识,包括智能体与环境的交互、强化学习系统中的奖励过程和从经验中学习的过程。在介绍强化学习的几个主要类别之后,本章使用Q学习算法实现、训练一个可以在网格世界环境中导航的智能体。最后,本章介绍了深度Q学习算法——深度Q学习算法是一种使用深度神经网络的Q学习算法。

充分利用本书

本书提供的代码示例用于说明和运行算法与模型。理想情况下,读者应能熟练使用Python运行本书提供的代码。掌握数学符号的用法也有助于阅读本书。

一台普通的笔记本电脑或台式电脑足以运行本书中的大部分代码。第1章提供了配置Python环境的说明,后续章节将在需要时介绍其他软件库的安装方法。

图形处理单元(Graphics Processing Unit,GPU)可以提升深度学习章节中的代码的运行速度,但GPU不是必需的,书中会提供使用免费云计算资源的方法。

下载示例代码文件及彩色图像

本书的所有代码示例均可通过GitHub网站https://github.com/rasbt/machine-learning-book下载。

虽然我们建议使用Jupyter Notebook以交互的方式运行代码,但本书提供的所有代码示例都有Python脚本(如ch02/ch02.py)和Jupyter Notebook(如ch02/ch02.ipynb)两种格式,读者可以任选一种格式运行。此外,建议阅读GitHub网站中每章附带的README.md文件获取更多信息和更新情况。

本书中使用的所有彩图可以通过网址https://static.packt-cdn.com/downloads/9781801819312_ColorImages.pdf下载。此外,本书的代码notebook中嵌入了低分辨率的彩色图像,notebook和示例代码文件放在一起。

本书排版约定

本书有多种文字约定。以下是一些约定的例子及解释。正文中的代码排版格式为:“已经安装的软件包可以通过-upgrade标志进行更新”。

代码段的排版格式如下:

Python解释器中的输入代码如下(注意>>>符号,运行代码得到的输出不带>>>符号):

命令行代码的输入或输出形式如下:

代表提示和有用的技巧。

代表警告或重要提示。 PDLGNtBejxfcN4NIt8l4oEt2C3pxEV0U3IVYXYYrQSsjUk4rH18qMd44XehahlZg

点击中间区域
呼出菜单
上一章
目录
下一章
×