D2l Zh
This project is an open-source, interactive educational platform designed to teach deep learning through a comprehensive, code-first curriculum. It provides a structured learning path that covers foundational mathematics, modern neural network architectures, and practical optimization techniques, enabling practitioners to master complex artificial intelligence concepts through hands-on experimentation.
The platform distinguishes itself by integrating technical explanations with executable Jupyter notebooks. This design allows readers to modify code and hyperparameters in real-time, facilitating immediate feedback and practical skill acquisition. The curriculum spans a wide range of domains, including computer vision and natural language processing, while providing the necessary infrastructure to run these interactive materials locally or via cloud-based environments.
The project covers a broad capability surface, including end-to-end model training pipelines, advanced sequence modeling, and techniques for computational performance optimization. It addresses essential deep learning primitives such as automatic differentiation, layer construction, and parameter management, ensuring users gain both theoretical understanding and implementation proficiency.
The documentation is structured as a live, interactive textbook, with comprehensive guides for environment setup and cloud resource management to support the learning experience.
Features
- Recurrent Neural Networks - 到目前为止,我们遇到过两种类型的数据:表格数据和图像数据。 对于图像数据,我们设计了专门的卷积神经网络架构来为这类特殊的数据结构建模。 换句话说,如果我们拥有一张图像,我们需要有效地利用其像素位置, 假若我们对图像中的像素位置进行重排,就会对图像中内容的推断造成极大的困难。 最重要的是,到目前为止我们默认数据都来自于某种分布, 并且所有样本都是独立同分布的 (independently and identically distribut
- Attention Mechanisms - 灵长类动物的视觉系统接受了大量的感官输入, 这些感官输入远远超过了大脑能够完全处理的程度。 然而,并非所有刺激的影响都是相等的。 意识的聚集和专注使灵长类动物能够在复杂的视觉环境中将注意力引向感兴趣的物体,例如猎物和天敌。 只关注一小部分信息的能力对进化更加有意义,使人类得以生存和成功。 自19世纪以来,科学家们一直致力于研究认知神经科学领域的注意力。 本章的很多章节将涉及到一些研究。 首先回顾一个经典注意力框架,解释如何在视觉场景中展
- Transformer Architectures - 灵长类动物的视觉系统接受了大量的感官输入, 这些感官输入远远超过了大脑能够完全处理的程度。 然而,并非所有刺激的影响都是相等的。 意识的聚集和专注使灵长类动物能够在复杂的视觉环境中将注意力引向感兴趣的物体,例如猎物和天敌。 只关注一小部分信息的能力对进化更加有意义,使人类得以生存和成功。 自19世纪以来,科学家们一直致力于研究认知神经科学领域的注意力。 本章的很多章节将涉及到一些研究。 首先回顾一个经典注意力框架,解释如何在视觉场景中展
- Interactive Textbooks - A comprehensive, code-first learning resource that combines theoretical explanations with executable code blocks for hands-on deep learning experimentation.
- Machine Learning Curricula - A structured educational path covering fundamental concepts, modern neural network architectures, and practical optimization techniques for machine learning practitioners.
- Machine Learning Tutorials - 在介绍深度神经网络之前,我们需要了解神经网络训练的基础知识。 本章我们将介绍神经网络的整个训练过程, 包括:定义简单的神经网络架构、数据处理、指定损失函数和如何训练模型。 为了更容易学习,我们将从经典算法————*线性*神经网络开始,介绍神经网络的基础知识。 经典统计学习技术中的线性回归和softmax回归可以视为线性神经网络, 这些知识将为本书其他部分中更复杂的技术奠定基础。 - [3.1. 线性回归](linear-regressi
- Learning Management Systems - A community-driven project providing accessible, high-quality educational content and tools for mastering complex artificial intelligence and neural network topics.
- Automatic Differentiation Engines - | Employs dynamic or static computational graphs to automatically compute gradients for complex neural network architectures during training.
- Neural Network Layers - 除了庞大的数据集和强大的硬件, 优秀的软件工具在深度学习的快速发展中发挥了不可或缺的作用。 从2007年发布的开创性的Theano库开始, 灵活的开源工具使研究人员能够快速开发模型原型, 避免了我们使用标准组件时的重复工作, 同时仍然保持了我们进行底层修改的能力。 随着时间的推移,深度学习库已经演变成提供越来越粗糙的抽象。 就像半导体设计师从指定晶体管到逻辑电路再到编写代码一样, 神经网络研究人员已经从考虑单个人工神经元的行为转变为从层
- Automatic Differentiation - 要学习深度学习,首先需要先掌握一些基本技能。 所有机器学习方法都涉及从数据中提取信息。 因此,我们先学习一些关于数据的实用技能,包括存储、操作和预处理数据。 机器学习通常需要处理大型数据集。 我们可以将某些数据集视为一个表,其中表的行对应样本,列对应属性。 线性代数为人们提供了一些用来处理表格数据的方法。 我们不会太深究细节,而是将重点放在矩阵运算的基本原理及其实现上。 深度学习是关于优化的学习。 对于一个带有参数的模型,我们想要找到其
- Multilayer Perceptrons - 在本章中,我们将第一次介绍真正的*深度*网络。 最简单的深度网络称为*多层感知机*。多层感知机由多层神经元组成, 每一层与它的上一层相连,从中接收输入; 同时每一层也与它的下一层相连,影响当前层的神经元。 当我们训练容量较大的模型时,我们面临着*过拟合*的风险。 因此,本章将从基本的概念介绍开始讲起,包括*过拟合*、*欠拟合*和模型选择。 为了解决这些问题,本章将介绍*权重衰减*和*暂退法*等正则化技术。 我们还将讨论数值稳定性和参数初
- Deep Learning Curricula - Learning the fundamentals and advanced concepts of neural networks through interactive, hands-on code examples and theoretical explanations.
- Interactive Technical Documentation - Providing educational content where readers can modify and execute code blocks directly within the browser or local environment.
- Hybrid Execution Modes - | Combines the flexibility of imperative programming for debugging with the performance optimizations of symbolic compilation for production training.
- Convolutional Neural Networks - 上一章我们介绍了卷积神经网络的基本原理,本章将介绍现代的卷积神经网络架构,许多现代卷积神经网络的研究都是建立在这一章的基础上的。 在本章中的每一个模型都曾一度占据主导地位,其中许多模型都是ImageNet竞赛的优胜者。ImageNet竞赛自2010年以来,一直是计算机视觉中监督学习进展的指向标。 这些模型包括: - AlexNet。它是第一个在大规模视觉竞赛中击败传统计算机视觉模型的大型神经网络; - 使用重复块的网络(VGG)。它利用
- Linear Regression Implementations - 在介绍深度神经网络之前,我们需要了解神经网络训练的基础知识。 本章我们将介绍神经网络的整个训练过程, 包括:定义简单的神经网络架构、数据处理、指定损失函数和如何训练模型。 为了更容易学习,我们将从经典算法————*线性*神经网络开始,介绍神经网络的基础知识。 经典统计学习技术中的线性回归和softmax回归可以视为线性神经网络, 这些知识将为本书其他部分中更复杂的技术奠定基础。 - [3.1. 线性回归](linear-regressi
- Language Model Pretraining - 人与人之间需要交流。 出于人类这种基本需要,每天都有大量的书面文本产生。 比如,社交媒体、聊天应用、电子邮件、产品评论、新闻文章、 研究论文和书籍中的丰富文本, 使计算机能够理解它们以提供帮助或基于人类语言做出决策变得至关重要。 *自然语言处理*是指研究使用自然语言的计算机和人类之间的交互。 在实践中,使用自然语言处理技术来处理和分析文本数据是非常常见的, 例如 [8.3节](../chapter_recurrent-neural-ne
- Word Embeddings - 人与人之间需要交流。 出于人类这种基本需要,每天都有大量的书面文本产生。 比如,社交媒体、聊天应用、电子邮件、产品评论、新闻文章、 研究论文和书籍中的丰富文本, 使计算机能够理解它们以提供帮助或基于人类语言做出决策变得至关重要。 *自然语言处理*是指研究使用自然语言的计算机和人类之间的交互。 在实践中,使用自然语言处理技术来处理和分析文本数据是非常常见的, 例如 [8.3节](../chapter_recurrent-neural-ne
- Object Detection Tutorials - 近年来,深度学习一直是提高计算机视觉系统性能的变革力量。 无论是医疗诊断、自动驾驶,还是智能滤波器、摄像头监控,许多计算机视觉领域的应用都与我们当前和未来的生活密切相关。 可以说,最先进的计算机视觉应用与深度学习几乎是不可分割的。 有鉴于此,本章将重点介绍计算机视觉领域,并探讨最近在学术界和行业中具有影响力的方法和应用。 在 [6节](../chapter_convolutional-neural-networks/index.html
- Convolutional Operations - 在前面的章节中,我们遇到过图像数据。 这种数据的每个样本都由一个二维像素网格组成, 每个像素可能是一个或者多个数值,取决于是黑白还是彩色图像。 到目前为止,我们处理这类结构丰富的数据的方式还不够有效。 我们仅仅通过将图像数据展平成一维向量而忽略了每个图像的空间结构信息,再将数据送入一个全连接的多层感知机中。 因为这些网络特征元素的顺序是不变的,因此最优的结果是利用先验知识,即利用相近像素之间的相互关联性,从图像数据中学习得到有效的模型。
- Lazy Parameter Initializations - | Defers the allocation of model weights until the first forward pass, allowing for dynamic shape inference based on input data.
- Network in Network Architectures - 上一章我们介绍了卷积神经网络的基本原理,本章将介绍现代的卷积神经网络架构,许多现代卷积神经网络的研究都是建立在这一章的基础上的。 在本章中的每一个模型都曾一度占据主导地位,其中许多模型都是ImageNet竞赛的优胜者。ImageNet竞赛自2010年以来,一直是计算机视觉中监督学习进展的指向标。 这些模型包括: - AlexNet。它是第一个在大规模视觉竞赛中击败传统计算机视觉模型的大型神经网络; - 使用重复块的网络(VGG)。它利用
- Pooling Layers - 在前面的章节中,我们遇到过图像数据。 这种数据的每个样本都由一个二维像素网格组成, 每个像素可能是一个或者多个数值,取决于是黑白还是彩色图像。 到目前为止,我们处理这类结构丰富的数据的方式还不够有效。 我们仅仅通过将图像数据展平成一维向量而忽略了每个图像的空间结构信息,再将数据送入一个全连接的多层感知机中。 因为这些网络特征元素的顺序是不变的,因此最优的结果是利用先验知识,即利用相近像素之间的相互关联性,从图像数据中学习得到有效的模型。
- Recurrent Neural Networks Tutorials - 到目前为止,我们遇到过两种类型的数据:表格数据和图像数据。 对于图像数据,我们设计了专门的卷积神经网络架构来为这类特殊的数据结构建模。 换句话说,如果我们拥有一张图像,我们需要有效地利用其像素位置, 假若我们对图像中的像素位置进行重排,就会对图像中内容的推断造成极大的困难。 最重要的是,到目前为止我们默认数据都来自于某种分布, 并且所有样本都是独立同分布的 (independently and identically distribut
- Asynchronous Task Schedulers - | Decouples host-side Python execution from device-side kernel execution to maximize hardware utilization and overlap computation with data transfer.
- Computational Compilers - 在深度学习中,数据集和模型通常都很大,导致计算量也会很大。 因此,计算的性能非常重要。 本章将集中讨论影响计算性能的主要因素:命令式编程、符号编程、 异步计算、自动并行和多GPU计算。 通过学习本章,对于前几章中实现的那些模型,可以进一步提高它们的计算性能。 例如,我们可以在不影响准确性的前提下,大大减少训练时间。 - [12.1. 编译器和解释器](hybridize.html) - [12.1.1. 符号式编程](hybridize
- Gated Recurrent Units - 前一章中我们介绍了循环神经网络的基础知识, 这种网络可以更好地处理序列数据。 我们在文本数据上实现了基于循环神经网络的语言模型, 但是对于当今各种各样的序列学习问题,这些技术可能并不够用。 例如,循环神经网络在实践中一个常见问题是数值不稳定性。 尽管我们已经应用了梯度裁剪等技巧来缓解这个问题, 但是仍需要通过设计更复杂的序列模型来进一步处理它。 具体来说,我们将引入两个广泛使用的网络, 即*门控循环单元*(gated recurrent
- Long Short-Term Memory Networks - 前一章中我们介绍了循环神经网络的基础知识, 这种网络可以更好地处理序列数据。 我们在文本数据上实现了基于循环神经网络的语言模型, 但是对于当今各种各样的序列学习问题,这些技术可能并不够用。 例如,循环神经网络在实践中一个常见问题是数值不稳定性。 尽管我们已经应用了梯度裁剪等技巧来缓解这个问题, 但是仍需要通过设计更复杂的序列模型来进一步处理它。 具体来说,我们将引入两个广泛使用的网络, 即*门控循环单元*(gated recurrent
- Sequence Models - 到目前为止,我们遇到过两种类型的数据:表格数据和图像数据。 对于图像数据,我们设计了专门的卷积神经网络架构来为这类特殊的数据结构建模。 换句话说,如果我们拥有一张图像,我们需要有效地利用其像素位置, 假若我们对图像中的像素位置进行重排,就会对图像中内容的推断造成极大的困难。 最重要的是,到目前为止我们默认数据都来自于某种分布, 并且所有样本都是独立同分布的 (independently and identically distribut
- Sequence-to-Sequence Models - 前一章中我们介绍了循环神经网络的基础知识, 这种网络可以更好地处理序列数据。 我们在文本数据上实现了基于循环神经网络的语言模型, 但是对于当今各种各样的序列学习问题,这些技术可能并不够用。 例如,循环神经网络在实践中一个常见问题是数值不稳定性。 尽管我们已经应用了梯度裁剪等技巧来缓解这个问题, 但是仍需要通过设计更复杂的序列模型来进一步处理它。 具体来说,我们将引入两个广泛使用的网络, 即*门控循环单元*(gated recurrent
- Machine Learning Prototyping - Experimenting with model architectures, optimization algorithms, and data processing techniques using modular and reusable code components.
- Model Training Pipelines - Implementing end-to-end training pipelines for computer vision and natural language processing tasks using modern deep learning frameworks.
- Regularization Techniques - 在本章中,我们将第一次介绍真正的*深度*网络。 最简单的深度网络称为*多层感知机*。多层感知机由多层神经元组成, 每一层与它的上一层相连,从中接收输入; 同时每一层也与它的下一层相连,影响当前层的神经元。 当我们训练容量较大的模型时,我们面临着*过拟合*的风险。 因此,本章将从基本的概念介绍开始讲起,包括*过拟合*、*欠拟合*和模型选择。 为了解决这些问题,本章将介绍*权重衰减*和*暂退法*等正则化技术。 我们还将讨论数值稳定性和参数初
- Encoder-Decoder Architectures - 前一章中我们介绍了循环神经网络的基础知识, 这种网络可以更好地处理序列数据。 我们在文本数据上实现了基于循环神经网络的语言模型, 但是对于当今各种各样的序列学习问题,这些技术可能并不够用。 例如,循环神经网络在实践中一个常见问题是数值不稳定性。 尽管我们已经应用了梯度裁剪等技巧来缓解这个问题, 但是仍需要通过设计更复杂的序列模型来进一步处理它。 具体来说,我们将引入两个广泛使用的网络, 即*门控循环单元*(gated recurrent
- Optimization Algorithms - 截止到目前,本书已经使用了许多优化算法来训练深度学习模型。优化算法使我们能够继续更新模型参数,并使损失函数的值最小化。这就像在训练集上评估一样。事实上,任何满足于将优化视为黑盒装置,以在简单的设置中最小化目标函数的人,都可能会知道存在着一系列此类“咒语”(名称如“SGD”和“Adam”)。 但是,为了做得更好,还需要更深入的知识。优化算法对于深度学习非常重要。一方面,训练复杂的深度学习模型可能需要数小时、几天甚至数周。优化算法的性能直接
- AdaGrad Optimizers - 截止到目前,本书已经使用了许多优化算法来训练深度学习模型。优化算法使我们能够继续更新模型参数,并使损失函数的值最小化。这就像在训练集上评估一样。事实上,任何满足于将优化视为黑盒装置,以在简单的设置中最小化目标函数的人,都可能会知道存在着一系列此类“咒语”(名称如“SGD”和“Adam”)。 但是,为了做得更好,还需要更深入的知识。优化算法对于深度学习非常重要。一方面,训练复杂的深度学习模型可能需要数小时、几天甚至数周。优化算法的性能直接
- Adam Optimizers - 截止到目前,本书已经使用了许多优化算法来训练深度学习模型。优化算法使我们能够继续更新模型参数,并使损失函数的值最小化。这就像在训练集上评估一样。事实上,任何满足于将优化视为黑盒装置,以在简单的设置中最小化目标函数的人,都可能会知道存在着一系列此类“咒语”(名称如“SGD”和“Adam”)。 但是,为了做得更好,还需要更深入的知识。优化算法对于深度学习非常重要。一方面,训练复杂的深度学习模型可能需要数小时、几天甚至数周。优化算法的性能直接
- Gradient Descent Algorithms - 截止到目前,本书已经使用了许多优化算法来训练深度学习模型。优化算法使我们能够继续更新模型参数,并使损失函数的值最小化。这就像在训练集上评估一样。事实上,任何满足于将优化视为黑盒装置,以在简单的设置中最小化目标函数的人,都可能会知道存在着一系列此类“咒语”(名称如“SGD”和“Adam”)。 但是,为了做得更好,还需要更深入的知识。优化算法对于深度学习非常重要。一方面,训练复杂的深度学习模型可能需要数小时、几天甚至数周。优化算法的性能直接
- Momentum Optimizers - 截止到目前,本书已经使用了许多优化算法来训练深度学习模型。优化算法使我们能够继续更新模型参数,并使损失函数的值最小化。这就像在训练集上评估一样。事实上,任何满足于将优化视为黑盒装置,以在简单的设置中最小化目标函数的人,都可能会知道存在着一系列此类“咒语”(名称如“SGD”和“Adam”)。 但是,为了做得更好,还需要更深入的知识。优化算法对于深度学习非常重要。一方面,训练复杂的深度学习模型可能需要数小时、几天甚至数周。优化算法的性能直接
- RMSProp Optimizers - 截止到目前,本书已经使用了许多优化算法来训练深度学习模型。优化算法使我们能够继续更新模型参数,并使损失函数的值最小化。这就像在训练集上评估一样。事实上,任何满足于将优化视为黑盒装置,以在简单的设置中最小化目标函数的人,都可能会知道存在着一系列此类“咒语”(名称如“SGD”和“Adam”)。 但是,为了做得更好,还需要更深入的知识。优化算法对于深度学习非常重要。一方面,训练复杂的深度学习模型可能需要数小时、几天甚至数周。优化算法的性能直接
- Convolutional Neural Network Tutorials - 上一章我们介绍了卷积神经网络的基本原理,本章将介绍现代的卷积神经网络架构,许多现代卷积神经网络的研究都是建立在这一章的基础上的。 在本章中的每一个模型都曾一度占据主导地位,其中许多模型都是ImageNet竞赛的优胜者。ImageNet竞赛自2010年以来,一直是计算机视觉中监督学习进展的指向标。 这些模型包括: - AlexNet。它是第一个在大规模视觉竞赛中击败传统计算机视觉模型的大型神经网络; - 使用重复块的网络(VGG)。它利用
- Linear Neural Networks - 在介绍深度神经网络之前,我们需要了解神经网络训练的基础知识。 本章我们将介绍神经网络的整个训练过程, 包括:定义简单的神经网络架构、数据处理、指定损失函数和如何训练模型。 为了更容易学习,我们将从经典算法————*线性*神经网络开始,介绍神经网络的基础知识。 经典统计学习技术中的线性回归和softmax回归可以视为线性神经网络, 这些知识将为本书其他部分中更复杂的技术奠定基础。 - [3.1. 线性回归](linear-regressi
- Linear Regression Tutorials - 在介绍深度神经网络之前,我们需要了解神经网络训练的基础知识。 本章我们将介绍神经网络的整个训练过程, 包括:定义简单的神经网络架构、数据处理、指定损失函数和如何训练模型。 为了更容易学习,我们将从经典算法————*线性*神经网络开始,介绍神经网络的基础知识。 经典统计学习技术中的线性回归和softmax回归可以视为线性神经网络, 这些知识将为本书其他部分中更复杂的技术奠定基础。 - [3.1. 线性回归](linear-regressi
- Recurrent Neural Network Tutorials - 前一章中我们介绍了循环神经网络的基础知识, 这种网络可以更好地处理序列数据。 我们在文本数据上实现了基于循环神经网络的语言模型, 但是对于当今各种各样的序列学习问题,这些技术可能并不够用。 例如,循环神经网络在实践中一个常见问题是数值不稳定性。 尽管我们已经应用了梯度裁剪等技巧来缓解这个问题, 但是仍需要通过设计更复杂的序列模型来进一步处理它。 具体来说,我们将引入两个广泛使用的网络, 即*门控循环单元*(gated recurrent
- Computer Vision Tutorials - 近年来,深度学习一直是提高计算机视觉系统性能的变革力量。 无论是医疗诊断、自动驾驶,还是智能滤波器、摄像头监控,许多计算机视觉领域的应用都与我们当前和未来的生活密切相关。 可以说,最先进的计算机视觉应用与深度学习几乎是不可分割的。 有鉴于此,本章将重点介绍计算机视觉领域,并探讨最近在学术界和行业中具有影响力的方法和应用。 在 [6节](../chapter_convolutional-neural-networks/index.html
- Learning Rate Schedulers - 截止到目前,本书已经使用了许多优化算法来训练深度学习模型。优化算法使我们能够继续更新模型参数,并使损失函数的值最小化。这就像在训练集上评估一样。事实上,任何满足于将优化视为黑盒装置,以在简单的设置中最小化目标函数的人,都可能会知道存在着一系列此类“咒语”(名称如“SGD”和“Adam”)。 但是,为了做得更好,还需要更深入的知识。优化算法对于深度学习非常重要。一方面,训练复杂的深度学习模型可能需要数小时、几天甚至数周。优化算法的性能直接
- Transformer Model Tutorials - 人与人之间需要交流。 出于人类这种基本需要,每天都有大量的书面文本产生。 比如,社交媒体、聊天应用、电子邮件、产品评论、新闻文章、 研究论文和书籍中的丰富文本, 使计算机能够理解它们以提供帮助或基于人类语言做出决策变得至关重要。 *自然语言处理*是指研究使用自然语言的计算机和人类之间的交互。 在实践中,使用自然语言处理技术来处理和分析文本数据是非常常见的, 例如 [8.3节](../chapter_recurrent-neural-ne
- Custom Neural Network Layers - 除了庞大的数据集和强大的硬件, 优秀的软件工具在深度学习的快速发展中发挥了不可或缺的作用。 从2007年发布的开创性的Theano库开始, 灵活的开源工具使研究人员能够快速开发模型原型, 避免了我们使用标准组件时的重复工作, 同时仍然保持了我们进行底层修改的能力。 随着时间的推移,深度学习库已经演变成提供越来越粗糙的抽象。 就像半导体设计师从指定晶体管到逻辑电路再到编写代码一样, 神经网络研究人员已经从考虑单个人工神经元的行为转变为从层
- GPU Accelerations - 除了庞大的数据集和强大的硬件, 优秀的软件工具在深度学习的快速发展中发挥了不可或缺的作用。 从2007年发布的开创性的Theano库开始, 灵活的开源工具使研究人员能够快速开发模型原型, 避免了我们使用标准组件时的重复工作, 同时仍然保持了我们进行底层修改的能力。 随着时间的推移,深度学习库已经演变成提供越来越粗糙的抽象。 就像半导体设计师从指定晶体管到逻辑电路再到编写代码一样, 神经网络研究人员已经从考虑单个人工神经元的行为转变为从层
- Data-Parallel Training - | Distributes model replicas across multiple GPUs or nodes to synchronize gradients and accelerate training on large-scale datasets.
- Multi-GPU Training - 在深度学习中,数据集和模型通常都很大,导致计算量也会很大。 因此,计算的性能非常重要。 本章将集中讨论影响计算性能的主要因素:命令式编程、符号编程、 异步计算、自动并行和多GPU计算。 通过学习本章,对于前几章中实现的那些模型,可以进一步提高它们的计算性能。 例如,我们可以在不影响准确性的前提下,大大减少训练时间。 - [12.1. 编译器和解释器](hybridize.html) - [12.1.1. 符号式编程](hybridize
- Transfer Learning - 前面我们学习了如何在文本序列中表示词元, 并在 [14节](../chapter_natural-language-processing-pretraining/index.html#chap-nlp-pretrain)中训练了词元的表示。 这样的预训练文本表示可以通过不同模型架构,放入不同的下游自然语言处理任务。 前一章我们提及到一些自然语言处理应用,这些应用没有预训练,只是为了解释深度学习架构。 例如,在 [8节](../chapt
- Deep Learning Computation Tutorials - 除了庞大的数据集和强大的硬件, 优秀的软件工具在深度学习的快速发展中发挥了不可或缺的作用。 从2007年发布的开创性的Theano库开始, 灵活的开源工具使研究人员能够快速开发模型原型, 避免了我们使用标准组件时的重复工作, 同时仍然保持了我们进行底层修改的能力。 随着时间的推移,深度学习库已经演变成提供越来越粗糙的抽象。 就像半导体设计师从指定晶体管到逻辑电路再到编写代码一样, 神经网络研究人员已经从考虑单个人工神经元的行为转变为从层
- Object Detection Techniques - 近年来,深度学习一直是提高计算机视觉系统性能的变革力量。 无论是医疗诊断、自动驾驶,还是智能滤波器、摄像头监控,许多计算机视觉领域的应用都与我们当前和未来的生活密切相关。 可以说,最先进的计算机视觉应用与深度学习几乎是不可分割的。 有鉴于此,本章将重点介绍计算机视觉领域,并探讨最近在学术界和行业中具有影响力的方法和应用。 在 [6节](../chapter_convolutional-neural-networks/index.html
- Adaptive Learning Rate Optimizers - 截止到目前,本书已经使用了许多优化算法来训练深度学习模型。优化算法使我们能够继续更新模型参数,并使损失函数的值最小化。这就像在训练集上评估一样。事实上,任何满足于将优化视为黑盒装置,以在简单的设置中最小化目标函数的人,都可能会知道存在着一系列此类“咒语”(名称如“SGD”和“Adam”)。 但是,为了做得更好,还需要更深入的知识。优化算法对于深度学习非常重要。一方面,训练复杂的深度学习模型可能需要数小时、几天甚至数周。优化算法的性能直接
- Batch Normalization - 上一章我们介绍了卷积神经网络的基本原理,本章将介绍现代的卷积神经网络架构,许多现代卷积神经网络的研究都是建立在这一章的基础上的。 在本章中的每一个模型都曾一度占据主导地位,其中许多模型都是ImageNet竞赛的优胜者。ImageNet竞赛自2010年以来,一直是计算机视觉中监督学习进展的指向标。 这些模型包括: - AlexNet。它是第一个在大规模视觉竞赛中击败传统计算机视觉模型的大型神经网络; - 使用重复块的网络(VGG)。它利用
- Computer Vision - 近年来,深度学习一直是提高计算机视觉系统性能的变革力量。 无论是医疗诊断、自动驾驶,还是智能滤波器、摄像头监控,许多计算机视觉领域的应用都与我们当前和未来的生活密切相关。 可以说,最先进的计算机视觉应用与深度学习几乎是不可分割的。 有鉴于此,本章将重点介绍计算机视觉领域,并探讨最近在学术界和行业中具有影响力的方法和应用。 在 [6节](../chapter_convolutional-neural-networks/index.html
- Image Augmentation - 近年来,深度学习一直是提高计算机视觉系统性能的变革力量。 无论是医疗诊断、自动驾驶,还是智能滤波器、摄像头监控,许多计算机视觉领域的应用都与我们当前和未来的生活密切相关。 可以说,最先进的计算机视觉应用与深度学习几乎是不可分割的。 有鉴于此,本章将重点介绍计算机视觉领域,并探讨最近在学术界和行业中具有影响力的方法和应用。 在 [6节](../chapter_convolutional-neural-networks/index.html
- NLP Applications - 前面我们学习了如何在文本序列中表示词元, 并在 [14节](../chapter_natural-language-processing-pretraining/index.html#chap-nlp-pretrain)中训练了词元的表示。 这样的预训练文本表示可以通过不同模型架构,放入不同的下游自然语言处理任务。 前一章我们提及到一些自然语言处理应用,这些应用没有预训练,只是为了解释深度学习架构。 例如,在 [8节](../chapt
- Pretraining Techniques - 人与人之间需要交流。 出于人类这种基本需要,每天都有大量的书面文本产生。 比如,社交媒体、聊天应用、电子邮件、产品评论、新闻文章、 研究论文和书籍中的丰富文本, 使计算机能够理解它们以提供帮助或基于人类语言做出决策变得至关重要。 *自然语言处理*是指研究使用自然语言的计算机和人类之间的交互。 在实践中,使用自然语言处理技术来处理和分析文本数据是非常常见的, 例如 [8.3节](../chapter_recurrent-neural-ne
- Subword Embeddings - 人与人之间需要交流。 出于人类这种基本需要,每天都有大量的书面文本产生。 比如,社交媒体、聊天应用、电子邮件、产品评论、新闻文章、 研究论文和书籍中的丰富文本, 使计算机能够理解它们以提供帮助或基于人类语言做出决策变得至关重要。 *自然语言处理*是指研究使用自然语言的计算机和人类之间的交互。 在实践中,使用自然语言处理技术来处理和分析文本数据是非常常见的, 例如 [8.3节](../chapter_recurrent-neural-ne
- Asynchronous Computations - 在深度学习中,数据集和模型通常都很大,导致计算量也会很大。 因此,计算的性能非常重要。 本章将集中讨论影响计算性能的主要因素:命令式编程、符号编程、 异步计算、自动并行和多GPU计算。 通过学习本章,对于前几章中实现的那些模型,可以进一步提高它们的计算性能。 例如,我们可以在不影响准确性的前提下,大大减少训练时间。 - [12.1. 编译器和解释器](hybridize.html) - [12.1.1. 符号式编程](hybridize
- Hardware Acceleration - 在深度学习中,数据集和模型通常都很大,导致计算量也会很大。 因此,计算的性能非常重要。 本章将集中讨论影响计算性能的主要因素:命令式编程、符号编程、 异步计算、自动并行和多GPU计算。 通过学习本章,对于前几章中实现的那些模型,可以进一步提高它们的计算性能。 例如,我们可以在不影响准确性的前提下,大大减少训练时间。 - [12.1. 编译器和解释器](hybridize.html) - [12.1.1. 符号式编程](hybridize
- Object Detection Models - 近年来,深度学习一直是提高计算机视觉系统性能的变革力量。 无论是医疗诊断、自动驾驶,还是智能滤波器、摄像头监控,许多计算机视觉领域的应用都与我们当前和未来的生活密切相关。 可以说,最先进的计算机视觉应用与深度学习几乎是不可分割的。 有鉴于此,本章将重点介绍计算机视觉领域,并探讨最近在学术界和行业中具有影响力的方法和应用。 在 [6节](../chapter_convolutional-neural-networks/index.html
- Bidirectional Recurrent Neural Networks - 前一章中我们介绍了循环神经网络的基础知识, 这种网络可以更好地处理序列数据。 我们在文本数据上实现了基于循环神经网络的语言模型, 但是对于当今各种各样的序列学习问题,这些技术可能并不够用。 例如,循环神经网络在实践中一个常见问题是数值不稳定性。 尽管我们已经应用了梯度裁剪等技巧来缓解这个问题, 但是仍需要通过设计更复杂的序列模型来进一步处理它。 具体来说,我们将引入两个广泛使用的网络, 即*门控循环单元*(gated recurrent
- Image Convolutions - 在前面的章节中,我们遇到过图像数据。 这种数据的每个样本都由一个二维像素网格组成, 每个像素可能是一个或者多个数值,取决于是黑白还是彩色图像。 到目前为止,我们处理这类结构丰富的数据的方式还不够有效。 我们仅仅通过将图像数据展平成一维向量而忽略了每个图像的空间结构信息,再将数据送入一个全连接的多层感知机中。 因为这些网络特征元素的顺序是不变的,因此最优的结果是利用先验知识,即利用相近像素之间的相互关联性,从图像数据中学习得到有效的模型。
- Attention Cues - 灵长类动物的视觉系统接受了大量的感官输入, 这些感官输入远远超过了大脑能够完全处理的程度。 然而,并非所有刺激的影响都是相等的。 意识的聚集和专注使灵长类动物能够在复杂的视觉环境中将注意力引向感兴趣的物体,例如猎物和天敌。 只关注一小部分信息的能力对进化更加有意义,使人类得以生存和成功。 自19世纪以来,科学家们一直致力于研究认知神经科学领域的注意力。 本章的很多章节将涉及到一些研究。 首先回顾一个经典注意力框架,解释如何在视觉场景中展
- Attention Scoring Functions - 灵长类动物的视觉系统接受了大量的感官输入, 这些感官输入远远超过了大脑能够完全处理的程度。 然而,并非所有刺激的影响都是相等的。 意识的聚集和专注使灵长类动物能够在复杂的视觉环境中将注意力引向感兴趣的物体,例如猎物和天敌。 只关注一小部分信息的能力对进化更加有意义,使人类得以生存和成功。 自19世纪以来,科学家们一直致力于研究认知神经科学领域的注意力。 本章的很多章节将涉及到一些研究。 首先回顾一个经典注意力框架,解释如何在视觉场景中展
- Model Regularization Techniques - 在本章中,我们将第一次介绍真正的*深度*网络。 最简单的深度网络称为*多层感知机*。多层感知机由多层神经元组成, 每一层与它的上一层相连,从中接收输入; 同时每一层也与它的下一层相连,影响当前层的神经元。 当我们训练容量较大的模型时,我们面临着*过拟合*的风险。 因此,本章将从基本的概念介绍开始讲起,包括*过拟合*、*欠拟合*和模型选择。 为了解决这些问题,本章将介绍*权重衰减*和*暂退法*等正则化技术。 我们还将讨论数值稳定性和参数初
- Numerical Stability and Initialization - 在本章中,我们将第一次介绍真正的*深度*网络。 最简单的深度网络称为*多层感知机*。多层感知机由多层神经元组成, 每一层与它的上一层相连,从中接收输入; 同时每一层也与它的下一层相连,影响当前层的神经元。 当我们训练容量较大的模型时,我们面临着*过拟合*的风险。 因此,本章将从基本的概念介绍开始讲起,包括*过拟合*、*欠拟合*和模型选择。 为了解决这些问题,本章将介绍*权重衰减*和*暂退法*等正则化技术。 我们还将讨论数值稳定性和参数初
- Image Classification Datasets - 在介绍深度神经网络之前,我们需要了解神经网络训练的基础知识。 本章我们将介绍神经网络的整个训练过程, 包括:定义简单的神经网络架构、数据处理、指定损失函数和如何训练模型。 为了更容易学习,我们将从经典算法————*线性*神经网络开始,介绍神经网络的基础知识。 经典统计学习技术中的线性回归和softmax回归可以视为线性神经网络, 这些知识将为本书其他部分中更复杂的技术奠定基础。 - [3.1. 线性回归](linear-regressi
- Language Modeling Datasets - 到目前为止,我们遇到过两种类型的数据:表格数据和图像数据。 对于图像数据,我们设计了专门的卷积神经网络架构来为这类特殊的数据结构建模。 换句话说,如果我们拥有一张图像,我们需要有效地利用其像素位置, 假若我们对图像中的像素位置进行重排,就会对图像中内容的推断造成极大的困难。 最重要的是,到目前为止我们默认数据都来自于某种分布, 并且所有样本都是独立同分布的 (independently and identically distribut
- Natural Language Processing Datasets - 人与人之间需要交流。 出于人类这种基本需要,每天都有大量的书面文本产生。 比如,社交媒体、聊天应用、电子邮件、产品评论、新闻文章、 研究论文和书籍中的丰富文本, 使计算机能够理解它们以提供帮助或基于人类语言做出决策变得至关重要。 *自然语言处理*是指研究使用自然语言的计算机和人类之间的交互。 在实践中,使用自然语言处理技术来处理和分析文本数据是非常常见的, 例如 [8.3节](../chapter_recurrent-neural-ne
- Object Detection Datasets - 近年来,深度学习一直是提高计算机视觉系统性能的变革力量。 无论是医疗诊断、自动驾驶,还是智能滤波器、摄像头监控,许多计算机视觉领域的应用都与我们当前和未来的生活密切相关。 可以说,最先进的计算机视觉应用与深度学习几乎是不可分割的。 有鉴于此,本章将重点介绍计算机视觉领域,并探讨最近在学术界和行业中具有影响力的方法和应用。 在 [6节](../chapter_convolutional-neural-networks/index.html
- Executable Documentation - A collection of interactive notebooks that integrate technical explanations with live code examples to facilitate immediate experimentation and learning.
- Word Embedding Datasets - 人与人之间需要交流。 出于人类这种基本需要,每天都有大量的书面文本产生。 比如,社交媒体、聊天应用、电子邮件、产品评论、新闻文章、 研究论文和书籍中的丰富文本, 使计算机能够理解它们以提供帮助或基于人类语言做出决策变得至关重要。 *自然语言处理*是指研究使用自然语言的计算机和人类之间的交互。 在实践中,使用自然语言处理技术来处理和分析文本数据是非常常见的, 例如 [8.3节](../chapter_recurrent-neural-ne
- Data Manipulation - 要学习深度学习,首先需要先掌握一些基本技能。 所有机器学习方法都涉及从数据中提取信息。 因此,我们先学习一些关于数据的实用技能,包括存储、操作和预处理数据。 机器学习通常需要处理大型数据集。 我们可以将某些数据集视为一个表,其中表的行对应样本,列对应属性。 线性代数为人们提供了一些用来处理表格数据的方法。 我们不会太深究细节,而是将重点放在矩阵运算的基本原理及其实现上。 深度学习是关于优化的学习。 对于一个带有参数的模型,我们想要找到其
- Automatic Parallelism Tutorials - 在深度学习中,数据集和模型通常都很大,导致计算量也会很大。 因此,计算的性能非常重要。 本章将集中讨论影响计算性能的主要因素:命令式编程、符号编程、 异步计算、自动并行和多GPU计算。 通过学习本章,对于前几章中实现的那些模型,可以进一步提高它们的计算性能。 例如,我们可以在不影响准确性的前提下,大大减少训练时间。 - [12.1. 编译器和解释器](hybridize.html) - [12.1.1. 符号式编程](hybridize
- Deferred Initialization Tutorials - 除了庞大的数据集和强大的硬件, 优秀的软件工具在深度学习的快速发展中发挥了不可或缺的作用。 从2007年发布的开创性的Theano库开始, 灵活的开源工具使研究人员能够快速开发模型原型, 避免了我们使用标准组件时的重复工作, 同时仍然保持了我们进行底层修改的能力。 随着时间的推移,深度学习库已经演变成提供越来越粗糙的抽象。 就像半导体设计师从指定晶体管到逻辑电路再到编写代码一样, 神经网络研究人员已经从考虑单个人工神经元的行为转变为从层
- Parameter Management Tutorials - 除了庞大的数据集和强大的硬件, 优秀的软件工具在深度学习的快速发展中发挥了不可或缺的作用。 从2007年发布的开创性的Theano库开始, 灵活的开源工具使研究人员能够快速开发模型原型, 避免了我们使用标准组件时的重复工作, 同时仍然保持了我们进行底层修改的能力。 随着时间的推移,深度学习库已经演变成提供越来越粗糙的抽象。 就像半导体设计师从指定晶体管到逻辑电路再到编写代码一样, 神经网络研究人员已经从考虑单个人工神经元的行为转变为从层
- Convolutional Neural Network Architectures - 上一章我们介绍了卷积神经网络的基本原理,本章将介绍现代的卷积神经网络架构,许多现代卷积神经网络的研究都是建立在这一章的基础上的。 在本章中的每一个模型都曾一度占据主导地位,其中许多模型都是ImageNet竞赛的优胜者。ImageNet竞赛自2010年以来,一直是计算机视觉中监督学习进展的指向标。 这些模型包括: - AlexNet。它是第一个在大规模视觉竞赛中击败传统计算机视觉模型的大型神经网络; - 使用重复块的网络(VGG)。它利用
- Data Preprocessing Tutorials - 要学习深度学习,首先需要先掌握一些基本技能。 所有机器学习方法都涉及从数据中提取信息。 因此,我们先学习一些关于数据的实用技能,包括存储、操作和预处理数据。 机器学习通常需要处理大型数据集。 我们可以将某些数据集视为一个表,其中表的行对应样本,列对应属性。 线性代数为人们提供了一些用来处理表格数据的方法。 我们不会太深究细节,而是将重点放在矩阵运算的基本原理及其实现上。 深度学习是关于优化的学习。 对于一个带有参数的模型,我们想要找到其
- Interactive Notebooks - | Uses executable notebooks to provide a live, hands-on learning environment where readers modify code and parameters in real-time.
- Natural Language Inference Tutorials - 前面我们学习了如何在文本序列中表示词元, 并在 [14节](../chapter_natural-language-processing-pretraining/index.html#chap-nlp-pretrain)中训练了词元的表示。 这样的预训练文本表示可以通过不同模型架构,放入不同的下游自然语言处理任务。 前一章我们提及到一些自然语言处理应用,这些应用没有预训练,只是为了解释深度学习架构。 例如,在 [8节](../chapt
- Natural Language Processing Tutorials - 前面我们学习了如何在文本序列中表示词元, 并在 [14节](../chapter_natural-language-processing-pretraining/index.html#chap-nlp-pretrain)中训练了词元的表示。 这样的预训练文本表示可以通过不同模型架构,放入不同的下游自然语言处理任务。 前一章我们提及到一些自然语言处理应用,这些应用没有预训练,只是为了解释深度学习架构。 例如,在 [8节](../chapt
- Neural Network Implementations - 到目前为止,我们遇到过两种类型的数据:表格数据和图像数据。 对于图像数据,我们设计了专门的卷积神经网络架构来为这类特殊的数据结构建模。 换句话说,如果我们拥有一张图像,我们需要有效地利用其像素位置, 假若我们对图像中的像素位置进行重排,就会对图像中内容的推断造成极大的困难。 最重要的是,到目前为止我们默认数据都来自于某种分布, 并且所有样本都是独立同分布的 (independently and identically distribut
- Sentiment Analysis Models - 前面我们学习了如何在文本序列中表示词元, 并在 [14节](../chapter_natural-language-processing-pretraining/index.html#chap-nlp-pretrain)中训练了词元的表示。 这样的预训练文本表示可以通过不同模型架构,放入不同的下游自然语言处理任务。 前一章我们提及到一些自然语言处理应用,这些应用没有预训练,只是为了解释深度学习架构。 例如,在 [8节](../chapt
- Softmax Regression - 在介绍深度神经网络之前,我们需要了解神经网络训练的基础知识。 本章我们将介绍神经网络的整个训练过程, 包括:定义简单的神经网络架构、数据处理、指定损失函数和如何训练模型。 为了更容易学习,我们将从经典算法————*线性*神经网络开始,介绍神经网络的基础知识。 经典统计学习技术中的线性回归和softmax回归可以视为线性神经网络, 这些知识将为本书其他部分中更复杂的技术奠定基础。 - [3.1. 线性回归](linear-regressi
- Linear Algebra - 要学习深度学习,首先需要先掌握一些基本技能。 所有机器学习方法都涉及从数据中提取信息。 因此,我们先学习一些关于数据的实用技能,包括存储、操作和预处理数据。 机器学习通常需要处理大型数据集。 我们可以将某些数据集视为一个表,其中表的行对应样本,列对应属性。 线性代数为人们提供了一些用来处理表格数据的方法。 我们不会太深究细节,而是将重点放在矩阵运算的基本原理及其实现上。 深度学习是关于优化的学习。 对于一个带有参数的模型,我们想要找到其
- Semantic Segmentation Datasets - 近年来,深度学习一直是提高计算机视觉系统性能的变革力量。 无论是医疗诊断、自动驾驶,还是智能滤波器、摄像头监控,许多计算机视觉领域的应用都与我们当前和未来的生活密切相关。 可以说,最先进的计算机视觉应用与深度学习几乎是不可分割的。 有鉴于此,本章将重点介绍计算机视觉领域,并探讨最近在学术界和行业中具有影响力的方法和应用。 在 [6节](../chapter_convolutional-neural-networks/index.html
- Parameter Servers - 在深度学习中,数据集和模型通常都很大,导致计算量也会很大。 因此,计算的性能非常重要。 本章将集中讨论影响计算性能的主要因素:命令式编程、符号编程、 异步计算、自动并行和多GPU计算。 通过学习本章,对于前几章中实现的那些模型,可以进一步提高它们的计算性能。 例如,我们可以在不影响准确性的前提下,大大减少训练时间。 - [12.1. 编译器和解释器](hybridize.html) - [12.1.1. 符号式编程](hybridize