图书目录

目录

任务1 深度学习简介与开发环境搭建???????????????????????????????????????????????????????????????????????????? 1

1.1 深度学习的发展及应用???????????????????????????????????????????????????????????????????????????????????????????? 1

1.1.1 深度学习的发展历程????????????????????????????????????????????????????????????????????????????????????? 1

1.1.2 深度学习的应用领域????????????????????????????????????????????????????????????????????????????????????? 4

1.2 深度学习框架简介???????????????????????????????????????????????????????????????????????????????????????????????????? 7

1.2.1 TensorFlow ????????????????????????????????????????????????????????????????????????????????????????????????????? 7

1.2.2 Caffe ??????????????????????????????????????????????????????????????????????????????????????????????????????????????? 8

1.2.3 PyTorch??????????????????????????????????????????????????????????????????????????????????????????????????????????? 8

1.2.4 MXNet ???????????????????????????????????????????????????????????????????????????????????????????????????????????? 8

1.2.5 不同框架的对比????????????????????????????????????????????????????????????????????????????????????????????? 9

1.3 开发环境搭建???????????????????????????????????????????????????????????????????????????????????????????????????????????? 9

1.3.1 Windows 环境下的安装配置????????????????????????????????????????????????????????????????????????? 9

1.3.2 Linux 环境下的安装配置??????????????????????????????????????????????????????????????????????????????20

1.4 本章小结??????????????????????????????????????????????????????????????????????????????????????????????????????????????????25

1.5 本章习题??????????????????????????????????????????????????????????????????????????????????????????????????????????????????26

任务2 构建二维数据拟合模型????????????????????????????????????????????????????????????????????????????????????? 28

2.1 TensorFlow 运行机制???????????????????????????????????????????????????????????????????????????????????????????????28

2.1.1 TensorFlow 系统架构????????????????????????????????????????????????????????????????????????????????????29

2.1.2 构建计算图???????????????????????????????????????????????????????????????????????????????????????????????????30

2.1.3 在会话中运行计算图????????????????????????????????????????????????????????????????????????????????????31

2.1.4 指定GPU 设备??????????????????????????????????????????????????????????????????????????????????????????????34

2.2 TensorFlow 数据模型???????????????????????????????????????????????????????????????????????????????????????????????35

2.2.1 张量及属性???????????????????????????????????????????????????????????????????????????????????????????????????35

2.2.2 类型转换???????????????????????????????????????????????????????????????????????????????????????????????????????38

2.2.3 形状变换???????????????????????????????????????????????????????????????????????????????????????????????????????39

2.3 变量的定义与使用???????????????????????????????????????????????????????????????????????????????????????????????????40

2.3.1 变量的定义与初始化????????????????????????????????????????????????????????????????????????????????????40

2.3.2 随机初始化变量????????????????????????????????????????????????????????????????????????????????????????????41

2.3.3 获取变量???????????????????????????????????????????????????????????????????????????????????????????????????????42

2.3.4 共享变量???????????????????????????????????????????????????????????????????????????????????????????????????????43

2.4 占位符与数据喂入机制???????????????????????????????????????????????????????????????????????????????????????????44

2.4.1 占位符定义???????????????????????????????????????????????????????????????????????????????????????????????????44

2.4.2 数据喂入???????????????????????????????????????????????????????????????????????????????????????????????????????45

2.5 模型的保存与恢复???????????????????????????????????????????????????????????????????????????????????????????????????45

2.5.1 模型保存???????????????????????????????????????????????????????????????????????????????????????????????????????45

2.5.2 模型恢复???????????????????????????????????????????????????????????????????????????????????????????????????????47

2.6 构建二维数据拟合模型???????????????????????????????????????????????????????????????????????????????????????????48

2.6.1 准备数据???????????????????????????????????????????????????????????????????????????????????????????????????????48

2.6.2 搭建模型???????????????????????????????????????????????????????????????????????????????????????????????????????49

2.6.3 反向传播???????????????????????????????????????????????????????????????????????????????????????????????????????49

2.6.4 迭代训练???????????????????????????????????????????????????????????????????????????????????????????????????????50

2.6.5 使用模型???????????????????????????????????????????????????????????????????????????????????????????????????????51

2.7 本章小结??????????????????????????????????????????????????????????????????????????????????????????????????????????????????51

2.8 本章习题??????????????????????????????????????????????????????????????????????????????????????????????????????????????????52

任务3 构建泰坦尼克号生还率模型????????????????????????????????????????????????????????????????????????????? 55

3.1 M-P 神经元拟合原理???????????????????????????????????????????????????????????????????????????????????????????????55

3.1.1 M-P 神经元模型????????????????????????????????????????????????????????????????????????????????????????????55

3.1.2 训练神经元???????????????????????????????????????????????????????????????????????????????????????????????????58

3.2 激活函数实现神经元非线化???????????????????????????????????????????????????????????????????????????????????59

3.2.1 激活函数的作用????????????????????????????????????????????????????????????????????????????????????????????59

3.2.2 Sigmoid 激活函数?????????????????????????????????????????????????????????????????????????????????????????59

3.2.3 Tanh 激活函数???????????????????????????????????????????????????????????????????????????????????????????????61

3.2.4 Relu 激活函数???????????????????????????????????????????????????????????????????????????????????????????????62

3.3 BP 神经网络模型?????????????????????????????????????????????????????????????????????????????????????????????????????63

3.3.1 BP 神经网络结构??????????????????????????????????????????????????????????????????????????????????????????64

3.3.2 神经网络向前传输推导????????????????????????????????????????????????????????????????????????????????65

3.3.3 神经网络向前传输实践????????????????????????????????????????????????????????????????????????????????67

3.3.4 构建BP 神经网络模型?????????????????????????????????????????????????????????????????????????????????68

3.4 损失函数调整误差???????????????????????????????????????????????????????????????????????????????????????????????????71

3.4.1 交叉熵损失函数????????????????????????????????????????????????????????????????????????????????????????????71

3.4.2 均方误差损失函数????????????????????????????????????????????????????????????????????????????????????????72

3.5 梯度下降??????????????????????????????????????????????????????????????????????????????????????????????????????????????????72

3.5.1 梯度下降的作用及常用方法????????????????????????????????????????????????????????????????????????72

3.5.2 梯度下降使模型最小偏差实践????????????????????????????????????????????????????????????????????74

3.6 模型优化??????????????????????????????????????????????????????????????????????????????????????????????????????????????????75

3.6.1 学习率控制参数更新速度????????????????????????????????????????????????????????????????????????????75

3.6.2 正则化减少过拟合现象????????????????????????????????????????????????????????????????????????????????76

3.7 构建泰坦尼克号生还率模型???????????????????????????????????????????????????????????????????????????????????80

3.7.1 数据读取及预处理????????????????????????????????????????????????????????????????????????????????????????80

3.7.2 搭建向前传输过程????????????????????????????????????????????????????????????????????????????????????????82

3.7.3 迭代训练???????????????????????????????????????????????????????????????????????????????????????????????????????82

3.8 本章小结??????????????????????????????????????????????????????????????????????????????????????????????????????????????????83

3.9 本章习题??????????????????????????????????????????????????????????????????????????????????????????????????????????????????83

任务4 构建手写字识别模型???????????????????????????????????????????????????????????????????????????????????????? 86

4.1 MNIST 数据集?????????????????????????????????????????????????????????????????????????????????????????????????????????86

4.1.1 MNIST 数据集简介???????????????????????????????????????????????????????????????????????????????????????86

4.1.2 下载MNIST 数据集??????????????????????????????????????????????????????????????????????????????????????88

4.1.3 图像的矩阵表示????????????????????????????????????????????????????????????????????????????????????????????89

4.1.4 标签的独热表示????????????????????????????????????????????????????????????????????????????????????????????90

4.2 构建识别MNIST 模型?????????????????????????????????????????????????????????????????????????????????????????????91

4.2.1 MNIST 手写字模型简介???????????????????????????????????????????????????????????????????????????????91

4.2.2 定义模型节点参数????????????????????????????????????????????????????????????????????????????????????????92

4.2.3 网络向前传输过程????????????????????????????????????????????????????????????????????????????????????????93

4.2.4 网络参数优化????????????????????????????????????????????????????????????????????????????????????????????????94

4.2.5 训练并保存模型????????????????????????????????????????????????????????????????????????????????????????????95

4.3 模型验证??????????????????????????????????????????????????????????????????????????????????????????????????????????????????96

4.3.1 验证集验证模型????????????????????????????????????????????????????????????????????????????????????????????96

4.3.2 识别自定义图片????????????????????????????????????????????????????????????????????????????????????????????97

4.4 本章小结???????????????????????????????????????????????????????????????????????????????????????????????????????????????? 100

4.5 本章习题???????????????????????????????????????????????????????????????????????????????????????????????????????????????? 100

任务5 LeNet-5 模型识别手写字???????????????????????????????????????????????????????????????????????????????? 102

5.1 卷积神经网络结构特征????????????????????????????????????????????????????????????????????????????????????????? 102

5.1.1 卷积神经网络简介?????????????????????????????????????????????????????????????????????????????????????? 102

5.1.2 卷积物理含义?????????????????????????????????????????????????????????????????????????????????????????????? 104

5.1.3 网络结构特征?????????????????????????????????????????????????????????????????????????????????????????????? 106

5.2 卷积神经网络函数????????????????????????????????????????????????????????????????????????????????????????????????? 108

5.2.1 卷积操作????????????????????????????????????????????????????????????????????????????????????????????????????? 108

5.2.2 池化操作????????????????????????????????????????????????????????????????????????????????????????????????????? 112

5.2.3 DropOut 机制??????????????????????????????????????????????????????????????????????????????????????????????? 116

5.3 卷积高级操作????????????????????????????????????????????????????????????????????????????????????????????????????????? 118

5.3.1 多通道卷积????????????????????????????????????????????????????????????????????????????????????????????????? 118

5.3.2 多卷积核????????????????????????????????????????????????????????????????????????????????????????????????????? 120

5.3.3 反卷积????????????????????????????????????????????????????????????????????????????????????????????????????????? 122

5.4 LeNet-5 识别手写字??????????????????????????????????????????????????????????????????????????????????????????????? 124

5.4.1 LeNet-5 模型简介???????????????????????????????????????????????????????????????????????????????????????? 124

5.4.2 构建向前传输模型?????????????????????????????????????????????????????????????????????????????????????? 125

5.4.3 优化模型????????????????????????????????????????????????????????????????????????????????????????????????????? 128

5.4.4 训练保存模型?????????????????????????????????????????????????????????????????????????????????????????????? 130

5.4.5 验证模型????????????????????????????????????????????????????????????????????????????????????????????????????? 131

5.5 本章小结???????????????????????????????????????????????????????????????????????????????????????????????????????????????? 132

5.6 本章习题???????????????????????????????????????????????????????????????????????????????????????????????????????????????? 133

任务6 打造CIFAR-10 图像识别模型???????????????????????????????????????????????????????????????????????? 136

6.1 CIFAR-10 数据集简介??????????????????????????????????????????????????????????????????????????????????????????? 136

6.1.1 CIFAR-10 数据集简介???????????????????????????????????????????????????????????????????????????????? 136

6.1.2 下载CIFAR-10 数据集??????????????????????????????????????????????????????????????????????????????? 137

6.2 读取CIFAR-10 数据?????????????????????????????????????????????????????????????????????????????????????????????? 138

6.2.1 读取并显示图片?????????????????????????????????????????????????????????????????????????????????????????? 138

6.2.2 将标签表示成独热?????????????????????????????????????????????????????????????????????????????????????? 139

6.3 数据增强???????????????????????????????????????????????????????????????????????????????????????????????????????????????? 140

6.3.1 图像几何变换?????????????????????????????????????????????????????????????????????????????????????????????? 140

6.3.2 图像色彩调整?????????????????????????????????????????????????????????????????????????????????????????????? 144

6.3.3 图像的标准化?????????????????????????????????????????????????????????????????????????????????????????????? 146

6.3.4 图像标注????????????????????????????????????????????????????????????????????????????????????????????????????? 147

6.4 构建CIFAR-10 图像识别模型?????????????????????????????????????????????????????????????????????????????? 149

6.4.1 数据批量读取?????????????????????????????????????????????????????????????????????????????????????????????? 149

6.4.2 模型构建????????????????????????????????????????????????????????????????????????????????????????????????????? 150

6.4.3 训练并预测????????????????????????????????????????????????????????????????????????????????????????????????? 154

6.5 ImageNet 图像识别模型????????????????????????????????????????????????????????????????????????????????????????? 155

6.5.1 ImageNet 数据集简介????????????????????????????????????????????????????????????????????????????????? 155

6.5.2 历代ImageNet 识别模型???????????????????????????????????????????????????????????????????????????? 156

6.6 本章小结???????????????????????????????????????????????????????????????????????????????????????????????????????????????? 158

6.7 本章习题???????????????????????????????????????????????????????????????????????????????????????????????????????????????? 158

任务7 可视化性别识别模型?????????????????????????????????????????????????????????????????????????????????????? 160

7.1 在程序中使用TensorBoard ??????????????????????????????????????????????????????????????????????????????????? 160

7.1.1 TensorBoard 基本介绍???????????????????????????????????????????????????????????????????????????????? 160

7.1.2 TensorBoard 使用步骤???????????????????????????????????????????????????????????????????????????????? 161

7.2 TensorBoard 可视化??????????????????????????????????????????????????????????????????????????????????????????????? 163

7.2.1 标量与直方图可视化?????????????????????????????????????????????????????????????????????????????????? 163

7.2.2 卷积过程可视化?????????????????????????????????????????????????????????????????????????????????????????? 167

7.2.3 训练过程可视化?????????????????????????????????????????????????????????????????????????????????????????? 171

7.3 可视化性别识别模型????????????????????????????????????????????????????????????????????????????????????????????? 174

7.3.1 模型简介????????????????????????????????????????????????????????????????????????????????????????????????????? 174

7.3.2 读取数据集????????????????????????????????????????????????????????????????????????????????????????????????? 175

7.3.3 训练模型????????????????????????????????????????????????????????????????????????????????????????????????????? 176

7.3.4 可视化模型????????????????????????????????????????????????????????????????????????????????????????????????? 179

7.4 本章小结???????????????????????????????????????????????????????????????????????????????????????????????????????????????? 180

7.5 本章习题???????????????????????????????????????????????????????????????????????????????????????????????????????????????? 180

任务8 理解tf.data 数据处理框架?????????????????????????????????????????????????????????????????????????????? 182

8.1 Dataset 的基本机制???????????????????????????????????????????????????????????????????????????????????????????????? 182

8.1.1 Dataset 数据处理框架????????????????????????????????????????????????????????????????????????????????? 182

8.1.2 创建Dataset ???????????????????????????????????????????????????????????????????????????????????????????????? 183

8.2 Iterator 迭代数据集???????????????????????????????????????????????????????????????????????????????????????????????? 184

8.2.1 单次迭代器????????????????????????????????????????????????????????????????????????????????????????????????? 184

8.2.2 可初始化迭代器?????????????????????????????????????????????????????????????????????????????????????????? 185

8.2.3 可重新初始化迭代器?????????????????????????????????????????????????????????????????????????????????? 186

8.2.4 可馈送迭代器?????????????????????????????????????????????????????????????????????????????????????????????? 187

8.3 Dataset 数据批处理???????????????????????????????????????????????????????????????????????????????????????????????? 188

8.3.1 直接批处理????????????????????????????????????????????????????????????????????????????????????????????????? 188

8.3.2 预处理后批处理?????????????????????????????????????????????????????????????????????????????????????????? 189

8.4 Dataset 数据集构建与解析???????????????????????????????????????????????????????????????????????????????????? 190

8.4.1 数据集预处理?????????????????????????????????????????????????????????????????????????????????????????????? 190

8.4.2 构建TFRecordDataset 数据集???????????????????????????????????????????????????????????????????? 191

8.4.3 从tf.train.Example 中解析数据??????????????????????????????????????????????????????????????????? 192

8.5 本章小结???????????????????????????????????????????????????????????????????????????????????????????????????????????????? 193

8.6 本章习题???????????????????????????????????????????????????????????????????????????????????????????????????????????????? 194

附录人工智能数学基础????????????????????????????????????????????????????????????????????????? 196