Home
Login

第四阶段:深度学习与神经网络

开源深度学习教材,结合理论、代码和实践,支持多框架实现,提供完整的从入门到高级的深度学习学习路径

DeepLearningPyTorchNeuralNetworksWebSiteebookFreeMulti-Language

Dive into Deep Learning (D2L) 课程详细介绍

课程概述

Dive into Deep Learning (D2L) 是一本开源的深度学习教材,旨在让深度学习变得易于理解和学习。这本书将概念、上下文和代码结合在一起,为读者提供一个全面的深度学习学习资源。

课程背景

在几年前,深度学习科学家在大公司和初创公司开发智能产品和服务的情况还很少见。当时,机器学习并不是日报头条,我们的父母也不知道什么是机器学习。机器学习当时还是一个学术蓝天学科,其工业意义仅限于少数实际应用,包括语音识别和计算机视觉。

然而,在短短几年内,深度学习就让世界为之惊讶,在计算机视觉、自然语言处理、自动语音识别、强化学习和生物医学信息学等多个领域推动了快速发展。深度学习的成功甚至催化了理论机器学习和统计学的发展。

教材特色

1. 多元化媒体结合

  • 代码、数学和HTML的结合:将代码、数学公式和网页内容整合在一个平台上
  • 可执行代码:大部分章节都包含可执行的代码示例
  • 实时更新:通过GitHub支持快速更新和社区贡献

2. 学习方式:边做边学

  • 即时概念学习:在需要概念解决实际问题时才教授相关概念
  • 实践优先:让学生在担心更深奥的概念之前先体验训练第一个模型的满足感
  • 真实数据集:每个后续章节都使用真实数据集提供几个自包含的工作示例

3. 多框架支持

该教材支持多个深度学习框架的实现:

  • PyTorch(主要框架)
  • TensorFlow
  • MXNet
  • JAX

内容结构

教材可以分为三个主要部分:

第一部分:基础和预备知识

  • 第1章:深度学习简介
  • 第2章:预备知识(数据存储和操作、数值运算等)
  • 第3章:线性回归
  • 第5章:多层感知机
  • 涵盖回归和分类、线性模型、多层感知机、过拟合和正则化等基础概念

第二部分:现代深度学习技术

  • 第6章:深度学习系统的关键计算组件
  • 第7-8章:卷积神经网络(CNN)
  • 第9-10章:循环神经网络(RNN)
  • 第11章:注意力机制和Transformer
  • 涵盖现代深度学习从业者广泛使用的最强大和通用的工具

第三部分:可扩展性、效率和应用(在线提供)

  • 第12章:优化算法
  • 第13章:计算性能
  • 第14章:计算机视觉应用
  • 第15-16章:语言表示模型预训练和自然语言处理应用

代码实现特色

核心包和依赖

教材使用 d2l 包来避免不必要的重复,该包轻量级且仅需要以下依赖:

#@save
import collections
import hashlib
import inspect
import math
import os
import random
import re
import shutil
import sys
import tarfile
import time
import zipfile
from collections import defaultdict
import pandas as pd
import requests
from IPython import display
from matplotlib import pyplot as plt
from matplotlib_inline import backend_inline
d2l = sys.modules[__name__]

PyTorch实现依赖

#@save
import numpy as np
import torch
import torchvision
from PIL import Image
from scipy.spatial import distance_matrix
from torch import nn
from torch.nn import functional as F
from torchvision import transforms

TensorFlow实现依赖

#@save
import numpy as np
import tensorflow as tf

JAX实现依赖

#@save
from dataclasses import field
from functools import partial
from types import FunctionType
from typing import Any
import flax
import jax
import numpy as np
import optax
import tensorflow as tf
import tensorflow_datasets as tfds
from flax import linen as nn
from flax.training import train_state
from jax import grad
from jax import numpy as jnp
from jax import vmap

目标受众

本教材面向以下人群:

  • 学生(本科或研究生)
  • 工程师
  • 研究人员

寻求深度学习实用技术扎实掌握的人员。

预备知识要求

  • 适量的线性代数知识
  • 微积分基础
  • 概率论基础
  • Python编程基础

学习资源

在线资源

获取方式

  • 可执行代码形式
  • 实体书
  • 可下载PDF
  • 网站在线版本

所有笔记本都可以在D2L.ai网站和GitHub上免费下载。

教材优势

  1. 免费开放:面向所有人免费提供
  2. 技术深度:提供成为应用机器学习科学家的起点所需的技术深度
  3. 可运行代码:展示如何在实践中解决问题
  4. 快速更新:支持作者和社区的快速更新
  5. 社区支持:配有互动论坛进行技术讨论和答疑

创新特点

  • 可能是第一本使用集成工作流发布的书籍
  • 结合了教科书质量的阐述和实践教程的整洁可运行代码
  • 采用GitHub分享源代码,Jupyter笔记本混合代码、方程和文本
  • 使用Sphinx作为渲染引擎,Discourse作为讨论平台

学习建议

  1. 注册讨论论坛账户
  2. 在计算机上安装Python
  3. 通过章节底部的论坛链接寻求帮助和讨论
  4. 边做边学,充分利用可执行代码
  5. 参与社区讨论,与作者和更广泛的社区交流

这本教材代表了深度学习教育的一个重要里程碑,为学习者提供了一个全面、实用且易于获取的深度学习学习资源。