《动手学深度学习》全新PyTorch版本,李沐和亚马逊科学家阿斯顿·张等大咖作者强强联合之作,机器学习、深度学习领域重磅教程,交互式实战环境,配套资源丰富!
面向中文读者的能运行、可讨论的深度学习入门书。
动手学深度学习(PyTorch版)
阿斯顿·张(Aston Zhang) 著,何孝霆(Xiaoting He) 瑞潮儿·胡(Rachel Hu) 译
本书是《动手学深度学习》的重磅升级版本,选用经典的PyTorch深度学习框架,旨在向读者交付更为便捷的有关深度学习的交互式学习体验。
本书重新修订《动手学深度学习》的所有内容,并针对技术的发展,新增注意力机制、预训练等内容。本书包含15章,第一部分介绍深度学习的基础知识和预备知识,并由线性模型引出最简单的神经网络——多层感知机;第二部分阐述深度学习计算的关键组件、卷积神经网络、循环神经网络、注意力机制等大多数现代深度学习应用背后的基本工具;第三部分讨论深度学习中常用的优化算法和影响深度学习计算性能的重要因素,并分别列举深度学习在计算机视觉和自然语言处理中的重要应用。
本书同时覆盖深度学习的方法和实践,主要面向在校大学生、技术人员和研究人员。阅读本书需要读者了解基本的Python编程知识及预备知识中描述的线性代数、微分和概率等基础知识。
这是一本及时且引人入胜的书。它不仅提供了对深度学习原理的全面概述,还提供了具有 编程代码的详细算法,此外,还提供了计算机视觉和自然语言处理中有关深度学习的最新介 绍。如果你想钻研深度学习,请研读这本书!
——韩家炜 ACM 院士 、IEEE 院士 美国伊利诺伊大学香槟分校计算机系Michael Aiken Chair 教授这是对机器学习文献的一个很受欢迎的补充,重点是通过集成 Jupyter 记事本实现的动手 经验。深度学习的学生应该能体会到,这对于熟练掌握这一技术是非常宝贵的。
——Bernhard Scholkopf ACM 院士 、德国国家科学院院士 德国马克斯 • 普朗克研究所智能系统院院长这本书基于深度学习框架来介绍深度学习技术,书中代码可谓“所学即所用”,为喜欢通 过 Python 代码进行学习的读者接触、了解深度学习技术提供了很大的便利。
——周志华 ACM 院士 、IEEE 院士 、AAAS 院士 南京大学计算机科学与技术系主任这是一本基于深度学习框架的深度学习实战图书,可以帮助读者快速上手并掌握使用深度 学习工具的基本技能。本书的几个作者都在机器学习领域有着非常丰富的经验。他们不光有大 量的工业界实践经验,也有非常高的学术成就,所以对机器学习领域的前沿算法理解深刻。这 使得作者们在提供优质代码的同时,也可以把最前沿的算法和概念深入浅出地介绍给读者。本 书可以帮助深度学习实践者快速提升自己的能力。
——张潼ASA 院士 、IMS 院士 香港科技大学计算机系和数学系教授
一种结合了代码、数学和HTML的媒介
任何一种计算技术要想发挥其全部影响力, 都必须得到充分的理解, 留有充分的文档记 录,并得到成熟的、维护良好的工具的支持。关键思想应该被清楚地提炼出来,尽可能减少需 要让新的从业者跟上时代的入门时间。成熟的库应该使常见的任务自动化, 示例代码应该使从 业者可以轻松地修改、应用和扩展常见的应用程序,以满足他们的需求。以动态网页应用为 例,尽管许多公司,如亚马逊,在 20 世纪 90 年代开发了成功的数据库驱动网页应用程序,但 在过去的 10 年里,这项技术在帮助创造性企业家方面的潜力已经得到了更大程度的发挥,部 分原因是开发了功能强大、文档完整的框架。
测试深度学习的潜力带来了独特的挑战, 因为任何一个应用都会将不同的学科结合在一起。应用深度学习需要同时了解:
(1) 以特定方式提出问题的动机;
(2) 给定建模方法的数 学;
(3)将模型拟合数据的优化算法;
(4)能够有效训练模型、克服数值计算缺陷并最大限度 地利用现有硬件的工程方法。同时教授表述问题所需的批判性思维技能、解决问题所需的数学 知识,以及实现这些解决方案所需的软件工具,这是一个巨大的挑战。
在实践中学习
许多教科书介绍一系列的主题,每个主题都非常详细。例如,Christopher Bishop 的优秀教科书 Pattern Recognition and Machine Learning把每个主题都讲得很透彻,以至于读到线性回归一章需要大量的工作。尽管专家们喜欢该书正是因为它的透彻性,但对初学者来说,这一特性限制了它作为介绍性文本的实用性。
在本书中,将适时教授大部分概念。换句话说,读者将在需要实现某些实际目的非常时刻学习概念。在开始花了一些时间来教授基础的背景知识。
除了提供基本数学背景速成课程的几节初步课程,后续的每章都介绍了适量的新概念,并提供可独立工作的例子——使用真实的数据集。这带来了内容组织上的挑战,某些模型可能在逻辑上组合在单节中,而一些想法可能最好通过连续运行几个模型来传授。此外,坚持“一个工作例子一节”的策略有一个很大的好处:读者可以利用书中的代码尽可能轻松地启动自己的研究项目,即只需复制本节的内容并开始修改。
本书将从零开始教授深度学习的概念。有时,我们想深入研究模型的细节,这些细节通常 会被深度学习框架的高级抽象隐藏起来。特别是在基础教程中,我们希望读者了解在给定层或 优化器中发生的一切。在这些情况下,我们通常会提供两个版本的示例:一个是我们从零开始 实现一切,仅依赖张量操作和自动微分;另一个是更实际的示例,我们使用深度学习框架的高 级 API 编写简洁的代码。一旦我们教授了一些组件是如何工作的,就可以在随后的教程中使用高级 API 了。
内容和结构
全书大致可分为 3 个部分,在图1中用不同的颜色呈现。
第一部分(第 1 章~第 4 章)包括基础知识和预备知识。第 1 章提供深度学习的入门 课程。第 2 章快速介绍实践深度学习所需的前提条件,例如,如何存储和处理数据, 以及如何应用基于线性代数、微积分和概率等基本概念的各种数值运算。第 3 章和第 4 章涵盖深度学习的基本概念和技术,例如,线性回归、多层感知机和正则化。
第二部分(第5章~第10章)集中讨论现代深度学习技术。第5章描述深度学习计算的各种关键组件,并为我们随后实现更复杂的模型奠定了基础。第6章和第7章介绍卷积神经网络(convolutional neural network ,CNN),这是构成大多数现代计 算机视觉系统骨干的强大工具。第 8 章和第 9 章引入循环神经网络(recurrent neural network ,RNN),这是一种利用数据中的时间或序列结构的模型,通常用于自然语言 处理和时间序列预测。第 10 章介绍一类新的模型,它采用了一种称为注意力机制的 技术,最近它们已经开始在自然语言处理中取代循环神经网络。这一部分将帮助读 者快速了解大多数现代深度学习应用背后的基本工具。
第三部分(第 11 章~第 15 章)讨论可伸缩性、效率和应用程序。第 11 章讨论用于训练深度学习模型的几种常用优化算法。第 12 章探讨影响深度学习代码计算性能的 几个关键因素。第 13 章展示深度学习在计算机视觉中的主要应用。第 14 章和第 15 章展示如何预训练语言表示模型并将其应用于自然语言处理任务。
目标受众
本书面向学生(本科生或研究生)、工程师和研究人员,他们希望扎实掌握深度学习的实用技术。因为我们从零开始解释每个概念,所以不需要读者具备深度学习或机器学习的背景。全面解释深度学习的方法需要一些数学知识和编程技巧,但我们假设读者只了解一些基础知识,包括线性代数、微积分、概率和非常基础的Python编程。此外,在本书的英文在线附录中,我们复习了本书所涵盖的大多数数学知识。大多数时候,我们会优先考虑直觉和想法,而不是数学的严谨性。有许多很棒的书可以引导感兴趣的读者走得更远,例如BelaBollobas的LinearAnalysis[对线性代数和函数分析进行了深入的研究。参考文献是一本很好的统计学指南。如果读者以前没有使用过Python语言,那么可以仔细阅读Python教程。