1 章 绪论 1
1.1 人工智能 2
1.1.1 人工智能简介 2
1.1.2 人工智能三大学派 3
1.2 机器学习 3
1.2.1 机器学习简介 3
1.2.2 机器学习分类 4
1.3 浅层学习和深度学习 6
1.3.1 浅层学习 6
1.3.2 深度学习 6
1.4 本章小结 7
第 2 章 深度学习基础 9
2.1 深层神经网络简介 10
2.1.1 神经元模型 10
2.1.2 单层神经网络 11
2.1.3 深层神经网络 12
2.1.4 深层神经网络节点 12
2.1.5 深层神经网络参数 13
2.1.6 节点输出值的计算方式 13
2.2 机器学习模型的评估方法 14
2.3 深层神经网络的训练与优化 16
2.3.1 深层神经网络的训练 16
2.3.2 深层神经网络的优化 21
2.4 本章小结 23
第 3 章 搭建深度学习框架 25
3.1 常见的深度学习框架 26
3.1.1 TensorFlow 26
3.1.2 Caffe 27
3.1.3 Keras 28
3.1.4 Torch 28
3.1.5 MXNet 28
3.1.6 CNTK 29
3.2 安装 TensorFlow 29
3.2.1 安装准备 30
3.2.2 在 Python 环境中安装 TensorFlow 35
3.2.3 TensorFlow 的使用 36
3.3 TensorFlow Playground 37
3.3.1 菜单选项 38
3.3.2 DATA 区域 39
3.3.3 FEATURES 区域 40
3.3.4 HIDDEN LAYERS 区域 40
3.3.5 OUTPUT 区域 41
3.4 Keras 的核心组件 43
3.4.1 Models API 45
3.4.2 Layers API 45
3.4.3 Callbacks API 47
3.4.4 Data preprocessing 47
3.4.5 Metrics 50
3.5 使用 TensorFlow 实现神经网络 51
3.6 本章小结 58
第 4 章 TensorFlow 编程基础 59
4.1 计算图与张量 60
4.1.1 初识计算图与张量 60
4.1.2 TensorFlow 的计算模型--计算图 60
4.1.3 TensorFlow 的数据模型--张量 63
4.2 TensorFlow 的运行模型--会话 65
4.2.1 TensorFlow 系统结构 65
4.2.2 会话的使用 67
4.2.3 会话的配置 68
4.2.4 占位符的使用 69
4.3 TensorFlow 变量 70
4.3.1 变量的创建 70
4.3.2 变量与张量 73
4.3.3 管理变量空间 75
4.4 识别图像中模糊的手写数字 79
4.5 本章小结 85
第 5 章 使用 Keras 搭建多层感知机识别 MNIST 数据集 87
5.1 构建项目 88
5.2 下载和预处理 MNIST 数据集 88
5.2.1 下载数据集 88
5.2.2 预处理数据集 89
5.3 搭建并训练多层感知机 94
5.3.1 搭建模型 94
5.3.2 训练模型 95
5.4 改进模型 98
5.4.1 搭建模型 98
5.4.2 训练模型 99
5.5 评估训练结果 101
5.5.1 评估模型准确率 101
5.5.2 使用模型进行预测 102
5.5.3 建立混淆矩阵 103
5.6 本章小结 105
第 6 章 优化多层感知机 107
6.1 构建项目 108
6.2 搭建带有隐藏层的模型 108
6.3 误差与过拟合问题 111
6.3.1 训练误差与泛化误差 111
6.3.2 过拟合问题 112
6.4 过拟合的处理方法 112
6.4.1 增加隐藏层神经元 112
6.4.2 加入 Dropout 机制 115
6.4.3 增加隐藏层 117
6.5 保存模型 119
6.5.1 将模型保存为 JSON 格式文件 119
6.5.2 保存模型权重 122
6.6 本章小结 123
第 7 章 项目 1:识别 Fashion MNIST 数据集 125
7.1 卷积神经网络简介 126
7.2 LeNet-5 卷积模型 126
7.3 Fashion MNIST 数据集 128
7.3.1 Fashion MNIST 数据集简介 128
7.3.2 下载 Fashion MNIST 数据集 128
7.3.3 查看数据 128
7.4 搭建 LeNet-5 卷积模型并识别 Fashion MNIST 数据集 130
7.4.1 预处理数据 130
7.4.2 搭建 LeNet-5 卷积模型 131
7.4.3 训练与评估 LeNet-5 卷积模型 132
7.4.4 识别过程的可视化展示 133
7.5 改进 LeNet-5 卷积模型 136
7.5.1 预处理数据 136
7.5.2 改进 LeNet-5 卷积模型 136
7.5.3 训练和评估改进后的 LeNet-5 卷积模型 138
7.5.4 预测测试集 139
7.5.5 保存改进后的 LeNet-5 卷积模型 141
7.6 预测自然测试集 142
7.6.1 预处理图像 142
7.6.2 预测结果 143
7.7 本章小结 144
第 8 章 项目 2:识别 CIFAR-10 数据集 145
8.1 准备工作 146
8.2 下载和查看数据集 148
8.2.1 下载数据集 149
8.2.2 查看训练数据 149
8.3 搭建模型识别 CIFAR-10 数据集 150
8.3.1 预处理数据集 150
8.3.2 搭建模型 151
8.3.3 训练模型 154
8.3.4 测试模型 155
8.4 加深模型的网络结构 159
8.5 本章小结 162
第 9 章 项目 3:识别猫狗图像 163
9.1 准备工作 164
9.2 预处理数据集 164
9.2.1 下载和存储数据集 164
9.2.2 处理数据 165
9.2.3 读取和预处理数据 168
9.3 搭建模型识别猫狗图像 169
9.3.1 搭建并训练模型 169
9.3.2 利用数据扩充法解决过拟合问题 172
9.4 本章小结 177
第 10 章 项目 4:识别人脸表情 179
10.1 准备数据 180
10.2 构建模型 182
10.3 训练模型 184
10.4 测试和评估模型 185
10.5 本章小结 190
第 11 章 构建生成对抗网络生成 MNIST 模拟数据集 191
11.1 生成对抗网络概述 192
11.2 生成对抗网络的种类 193
11.2.1 DCGAN 193
11.2.2 InfoGAN 195
11.2.3 AEGAN 195
11.2.4 SRGAN 196
11.3 使用 InfoGAN 生成 MNIST 模拟数据集 198
11.4 本章小结 203
第 12 章 项目 5:使用 SRGAN 实现 Flowers 数据集的超分辨率修复 205
12.1 准备数据 206
12.2 构建模型 207
12.2.1 构建生成器 207
12.2.2 VGG 的预输入处理 208
12.2.3 计算 VGG 特征空间的损失值 208
12.2.4 构建判别器 209
12.2.5 计算损失值,定义优化器 210
12.2.6 指定预训练模型路径 210
12.3 训练模型 211
12.4 本章小结 213
展开