内容简介
本书是《动手学深度学习》的重磅升级版本,选用经典的PyTorch深度学习框架,旨在向读者交付更为便捷的有关深度学习的交互式学习体验。
本书重新修订《动手学深度学习》的所有内容,并针对技术的发展,新增注意力机制、预训练等内容。本书包含15章,第一部分介绍深度学习的基础知识和预备知识,并由线性模型引出最简单的神经网络——多层感知机;第二部分阐述深度学习计算的关键组件、卷积神经网络、循环神经网络、注意力机制等大多数现代深度学习应用背后的基本工具;第三部分讨论深度学习中常用的优化算法和影响深度学习计算性能的重要因素,并分别列举深度学习在计算机视觉和自然语言处理中的重要应用。
本书同时覆盖深度学习的方法和实践,主要面向在校大学生、技术人员和研究人员。阅读本书需要读者了解基本的Python编程知识及预备知识中描述的线性代数、微分和概率等基础知识。
目录
对本书的赞誉
前言
译者简介
学习环境配置
资源与支持
主要符号表
第 1章 引言 1
1.1 日常生活中的机器学习 2
1.2 机器学习中的关键组件 3
1.2.1 数据 3
1.2.2 模型 4
1.2.3 目标函数 4
1.2.4 优化算法 5
1.3 各种机器学习问题 5
1.3.1 监督学习 5
1.3.2 无监督学习 11
1.3.3 与环境互动 11
1.3.4 强化学习 12
1.4 起源 13
1.5 深度学习的发展 15
1.6 深度学习的成功案例 16
1.7 特点 17
第 2章 预备知识 20
2.1 数据操作 20
2.1.1 入门 21
2.1.2 运算符 22
2.1.3 广播机制 23
2.1.4 索引和切片 24
2.1.5 节省内存 24
2.1.6 转换为其他Python对象 25
2.2 数据预处理 26
2.2.1 读取数据集 26
2.2.2 处理缺失值 26
2.2.3 转换为张量格式 27
2.3 线性代数 27
2.3.1 标量 28
2.3.2 向量 28
2.3.3 矩阵 29
2.3.4 张量 30
2.3.5 张量算法的基本性质 31
2.3.6 降维 32
2.3.7 点积 33
2.3.8 矩阵-向量积 33
2.3.9 矩阵-矩阵乘法 34
2.3.10 范数 35
2.3.11 关于线性代数的更多信息 36
2.4 微积分 37
2.4.1 导数和微分 37
2.4.2 偏导数 40
2.4.3 梯度 41
2.4.4 链式法则 41
2.5 自动微分 42
2.5.1 一个简单的例子 42
2.5.2 非标量变量的反向传播 43
2.5.3 分离计算 43
2.5.4 Python控制流的梯度计算 44
2.6 概率 44
2.6.1 基本概率论 45
2.6.2 处理多个随机变量 48
2.6.3 期望和方差 50
2.7 查阅文档 51
2.7.1 查找模块中的所有函数和类 51
2.7.2 查找特定函数和类的用法 52
第3章 线性神经网络 54
3.1 线性回归 54
3.1.1 线性回归的基本元素 54
3.1.2 向量化加速 57
3.1.3 正态分布与平方损失 58
3.1.4 从线性回归到深度网络 60
3.2 线性回归的从零开始实现 61
3.2.1 生成数据集 62
3.2.2 读取数据集 63
3.2.3 初始化模型参数 63
3.2.4 定义模型 64
3.2.5 定义损失函数 64
3.2.6 定义优化算法 64
3.2.7 训练 64
3.3 线性回归的简洁实现 66
3.3.1 生成数据集 66
3.3.2 读取数据集 66
3.3.3 定义模型 67
3.3.4 初始化模型参数 67
3.3.5 定义损失函数 68
3.3.6 定义优化算法 68
3.3.7 训练 68
3.4 softmax回归 69
3.4.1 分类问题 69
3.4.2 网络架构 70
3.4.3 全连接层的参数开销 70
3.4.4 softmax运算 71