图书目录

第1章  深度学习基础 1

1.1  深度学习概述 1

1.1.1  什么是深度学习 1

1.1.2  深度学习的应用场景 3

1.1.3  深度学习的发展动力 4

1.1.4  深度学习的未来 4

1.2  Python入门 5

1.2.1  Python简介 5

1.2.2  Python的安装 6

1.2.3  Python基础知识 6

1.2.4  NumPy矩阵运算 11

1.2.5  Matplotlib绘图 15

1.3  Anaconda与Jupyter Notebook 19

1.3.1  Anaconda 19

1.3.2  Jupyter Notebook 21

第2章  PyTorch 26

2.1  PyTorch概述 26

2.1.1  什么是PyTorch 26

2.1.2  为什么使用PyTorch 27

2.2  PyTorch的安装 27

2.3  张量 30

2.3.1  张量的创建 30

2.3.2  张量的数学运算 31

2.3.3  张量与NumPy数组 32

2.3.4  CUDA张量 33

2.4  自动求导 33

2.4.1  返回值是标量 33

2.4.2  返回值是张量 34

2.4.3  禁止自动求导 34

2.5  torch.nn和torch.optim 35

2.5.1  torch.nn 35

2.5.2  torch.optim 36

2.6  线性回归 37

2.6.1  线性回归的基本原理 37

2.6.2  线性回归的PyTorch实现 38

第3章  TensorFlow 41

3.1  TensorFlow概述 41

3.1.1  什么是TensorFlow 41

3.1.2  为什么使用TensorFlow 41

3.2  TensorFlow的安装 42

3.3  张量 44

3.3.1  张量的创建 44

3.3.2  张量的数学运算 44

3.4  数据流图 45

3.5  会话 46

3.6  线性回归的TensorFlow实现 48

3.7  TensorBoard 51

3.7.1  TensorBoard代码 51

3.7.2  TensorBoard显示 52

第4章  神经网络基础知识 55

4.1  感知机 55

4.1.1  感知机模型 55

4.1.2  感知机与逻辑电路 56

4.2  多层感知机 59

4.2.1  感知机的局限性 59

4.2.2  多层感知机实现异或门逻辑 61

4.3  逻辑回归 62

4.3.1  基本原理 62

4.3.2  损失函数 63

4.3.3  梯度下降算法 65

4.3.4  逻辑回归的Python实现 69

第5章  神经网络 74

5.1  基本结构 74

5.2  前向传播 75

5.3  激活函数 76

5.4  反向传播 80

5.5  更新参数 81

5.6  初始化 81

5.7  神经网络的Python实现 82

5.7.1  准备数据 82

5.7.2  参数初始化 83

5.7.3  前向传播 84

5.7.4  交叉熵损失 85

5.7.5  反向传播 85

5.7.6  更新参数 86

5.7.7  构建整个神经网络模型 87

5.7.8  训练 88

5.7.9  预测 88

第6章  深层神经网络 91

6.1  深层神经网络的优势 91

6.2  符号标记 93

6.3  前向传播与反向传播 93

6.4  多分类函数Softmax 96

6.4.1  Softmax函数的基本原理 96

6.4.2  Softmax损失函数 97

6.4.3  对Softmax函数求导 97

6.5  深层神经网络的Python实现 99

6.5.1  准备数据 99

6.5.2  参数初始化 101

6.5.3  前向传播 102

6.5.4  交叉熵损失 104

6.5.5  反向传播 105

6.5.6  更新参数 107

6.5.7  构建整个神经网络 108

6.5.8  训练与预测 109

第7章  优化神经网络 112

7.1  正则化 112

7.1.1  什么是过拟合 112

7.1.2  L2正则化和L1正则化 115

7.1.3  Dropout正则化 117

7.1.4  其他正则化技巧 120

7.2  梯度优化 121

7.2.1  批量梯度下降、随机梯度下降和小批量梯度下降 121

7.2.2  动量梯度下降算法 124

7.2.3  牛顿动量 126

7.2.4  AdaGrad 127

7.2.5  RMSprop 127

7.2.6  Adam 128

7.2.7  学习率衰减 129

7.3  网络初始化与超参数调试 130

7.3.1  输入标准化 130

7.3.2  权重参数初始化 132

7.3.3  批归一化 134

7.3.4  超参数调试 136

7.4  模型评估与调试 138

7.4.1  模型评估 138

7.4.2  训练集、验证集和测试集 139

7.4.3  偏差与方差 141

7.4.4  错误分析 141

第8章  卷积神经网络 144

8.1  为什么选择卷积神经网络 144

8.2  卷积神经网络的基本结构 145

8.3  卷积层 145

8.3.1  卷积 146

8.3.2  边缘检测 147

8.3.3  填充 148

8.3.4  步幅 149

8.3.5  卷积神经网络卷积 150

8.3.6  卷积层的作用 153

8.4  池化层 153

8.5  全连接层 156

8.6  卷积神经网络模型 157

8.7  典型的卷积神经网络模型 158

8.7.1  LeNet-5 159

8.7.2  AlexNet 159

8.8  卷积神经网络模型的PyTorch实现 160

8.8.1  准备数据 160

8.8.2  定义卷积神经网络模型 163

8.8.3  损失函数与梯度优化 164

8.8.4  训练模型 165

8.8.5  测试模型 166

8.9  卷积神经网络模型的TensorFlow实现 167

8.9.1  准备数据 167

8.9.2  定义卷积神经网络模型 168

8.9.3  损失函数与优化算法 170

8.9.4  训练并测试 170

第9章  循环神经网络 171

9.1  为什么选择循环神经网络 171

9.2  循环神经网络的基本结构 172

9.3  模型参数 173

9.4  梯度消失 174

9.5  GRU 175

9.6  LSTM 176

9.7  多种循环神经网络模型 177

9.8  循环神经网络模型的PyTorch实现 179

9.8.1  准备数据 180

9.8.2  定义循环神经网络模型 182

9.8.3  损失函数与梯度优化 183

9.8.4  训练模型 183

9.8.5  测试模型 184

9.9  循环神经网络模型的TensorFlow实现 185

9.9.1  准备数据 185

9.9.2  定义循环神经网络模型 185

9.9.3  损失函数与优化算法 187

9.9.4  训练并测试 187

后 记 188

参考文献 189