本书基于当前流行的深度学习框架之一——Keras,从新手的角度出发,详细讲解Keras的原理,力求帮助读者实现Keras从入门到精通。全书共9章,主要内容包括初识深度学习、深度学习的数据预处理技术、使用Keras开发深度学习模型、卷积神经网络及图像分类、循环神经网络在文本序列中的应用、自编码器、生成式对抗网络、模型评估及模型优化,以及深度学习实验项目。本书内容由浅入深、语言通俗易懂,从基本原理到案例应用、从基础算法到对复杂模型的剖析,让读者在循序渐进的学习中理解Keras。
本书可作为高等院校计算机、通信、大数据等专业相关课程的教材,也可作为人工智能、图像处理、计算机等方向的科研人员和深度学习技术爱好者的参考书。
1.基于当前流行的深度学习框架之一——Keras,改善教材领域Keras框架知识匮乏的现状
2.热销书专业人士倾力打造
3.提供丰富的配套资源及衍生服务
4.微课视频详细讲解重点难点
5.理论联系实际,提供大量实践案例与应用
谢佳标 曾就职于平安人寿担任资深数据挖掘专家,目前供职于世界百强企业,负责数据中台、数据化运营、金融科技、创新规划等项目及前沿研究。有13年的数据挖掘与分享相关工作的经验;曾经从事过电商、电购、电力、游戏、金融和物流等行业,熟悉不同行业的数据特点。R语言资深玩家,熟悉Python及深度学习Keras框架,有丰富的大数据挖掘和可视化实战经验。2017-2021年被评为微软数据科学和AI方向最具价值专家(微软MVP)。 书籍著作:《R语言与数据挖掘》、《数据实践之美:31位大数据专家的方法、技术与思想》《R语言游戏数据分析与挖掘》、《Keras深度学习:入门、实战与进阶》、《R语言数据分析与挖掘(微课)》
第 1章 初识深度学习 1
1.1 深度学习基础理论 1
1.1.1 机器学习与深度学习 1
1.1.2 神经网络基础 2
1.1.3 常用深度学习模型 5
1.2 主流深度学习框架介绍 6
1.2.1 TensorFlow 6
1.2.2 PyTorch 7
1.3 深度学习开发环境搭建 7
1.3.1 硬件环境准备 7
1.3.2 软件环境准备 7
1.3.3 安装Anaconda 9
1.3.4 安装TensorFlow 2 13
1.4 构建深度学习模型 14
1.4.1 MNIST数据集概述 14
1.4.2 数据预处理 15
1.4.3 构建及编译模型 16
1.4.4 模型训练 17
1.4.5 模型评估及预测 19
【本章知识结构图】 21
【课后习题】 22
第 2章 深度学习的数据预处理技术 23
2.1 数据预处理技术 23
2.1.1 结构化数据预处理 23
2.1.2 非结构化数据预处理 25
2.2 利用OpenCV进行图像预处理 26
2.2.1 读取、显示和保存图像 26
2.2.2 图像像素的获取和编辑 28
2.2.3 图像几何变换 29
2.2.4 色彩通道分离和融合 31
2.2.5 颜色空间转换 31
2.3 利用TensorFlow进行图像预处理 32
2.3.1 图像缩放 32
2.3.2 图像裁剪 33
2.3.3 图像色彩调整 34
2.3.4 图像翻转 35
2.4 利用jieba进行文本预处理 36
2.4.1 jieba分词 36
2.4.2 添加自定义词典 37
2.4.3 关键词提取 39
2.4.4 词性标注 40
2.5 利用Keras进行文本预处理 40
2.5.1 Unicode编码 40
2.5.2 分词器 41
2.5.3 独热编码 41
2.5.4 填充序列 42
2.6 案例实训:对业务员工作日报进行文本处理 43
【本章知识结构图】 45
【课后习题】 46
第3章 使用Keras开发深度学习模型 48
3.1 Keras模型生命周期 48
3.1.1 定义网络 48
3.1.2 编译网络 51
3.1.3 训练网络 51
3.1.4 评估网络 52
3.1.5 做出预测 52
3.2 Keras模型类型 52
3.2.1 顺序型API模型 52
3.2.2 函数式API模型 53
3.3 模型可视化 55
3.3.1 网络拓扑可视化 55
3.3.2 TensorBoard可视化 55
3.4 回调函数 58
3.4.1 回调函数简介 59
3.4.2 使用回调函数寻找最优模型 59
3.5 模型保存及加载 61
3.5.1 使用SavedModel格式保存及加载模型 61
3.5.2 使用JSON格式保存及加载模型 63
3.6 案例实训:使用Keras预测泰坦尼克号上的旅客是否生存 64
【本章知识结构图】 68
【课后习题】 68
第4章 卷积神经网络及图像分类 70
4.1 卷积神经网络原理及实现 70
4.1.1 卷积神经网络原理 71
4.1.2 卷积层原理 72
4.1.3 卷积层TensorFlow实现 74
4.1.4 池化层原理 76
4.1.5 池化层TensorFlow实现 78
4.1.6 全连接层 79
4.2 迁移学习 79
4.2.1 迁移学习概述 79
4.2.2 使用Keras Applications实现迁移学习 81
4.2.3 使用TensorFlow Hub实现迁移学习 84
4.2.4 使用迁移学习实现花卉图像分类器 85
4.3 深度强化学习 90
4.3.1 强化学习基本概念 91
4.3.2 深度强化学习思路 91
4.3.3 Gym平台 92
4.3.4 使用Keras-RL2的DQN算法实现 CartPole游戏 93
4.4 案例实训:对CIFAR-10数据集进行图像识别 95
【本章知识结构图】 99
【课后习题】 99
第5章 循环神经网络在文本序列中的应用 101
5.1 循环神经网络 101
5.1.1 词嵌入 102
5.1.2 简单循环网络原理及其Keras实现 106
5.1.3 长短期记忆网络原理及其Keras实现 109
5.1.4 门控循环单元原理及其Keras实现 110
5.2 Seq2Seq模型 111
5.2.1 Seq2Seq原理 111
5.2.2 注意力机制 112
5.2.3 利用Keras实现Seq2Seq 113
5.2.4 利用TensorFlow Addons实现
Seq2Seq 116
5.3 Transformer模型 119
5.3.1 Transformer模型原理 120
5.3.2 利用KerasNLP实现Transformer 122
5.4 案例实训:中文文本分类 122
【本章知识结构图】 125
【课后习题】 126
第6章 自编码器 127
6.1 简单自编码器 127
6.1.1 自编码器基本结构 127
6.1.2 简单自编码器的Keras实现 129
6.2 稀疏自编码器 132
6.2.1 稀疏自编码器基本原理 132
6.2.2 稀疏自编码器的Keras实现 132
6.3 堆栈自编码器 134
6.3.1 堆栈自编码器基本原理 134
6.3.2 堆栈自编码器的Keras实现 136
6.4 卷积自编码器 137
6.4.1 卷积自编码器基本原理 137
6.4.2 卷积自编码器的Keras实现 137
6.5 降噪自编码器 139
6.5.1 降噪自编码器基本原理 139
6.5.2 降噪自编码器的Keras实现 139
6.6 循环自编码器 142
6.6.1 循环自编码器基本原理 142
6.6.2 循环自编码器的Keras实现 143
6.7 案例实训:使用自编码器建立推荐系统 144
【本章知识结构图】 148
【课后习题】 148
第7章 生成式对抗网络 150
7.1 生成式对抗网络概述 150
7.1.1 生成式对抗网络基本结构 150
7.1.2 生成式对抗网络常见类型 151
7.2 生成式对抗网络Keras实现 152
7.2.1 GAN的Keras实现 152
7.2.2 DCGAN的Keras实现 157
7.3 案例实训:使用GAN和DCGAN
生成数字5图像 160
【本章知识结构图】 164
【课后习题】 164
第8章 模型评估及模型优化 167
8.1 模型评估 167
8.1.1 数值预测评估方法 167
8.1.2 概率预测评估方法 169
8.2 模型优化 172
8.2.1 基于梯度下降的优化 172
8.2.2 自适应学习率算法 174
8.2.3 网格搜索 177
8.2.4 防止模型过拟合 178
8.3 在tf.keras中进行模型优化 181
8.3.1 在tf.keras中使用Scikit-learn优化模型 181
8.3.2 使用KerasTuner进行超参数调节 181
8.4 案例实训1:使用Scikit-learn
优化CIFAR-10分类模型 181
8.5 案例实训2:使用KerasTuner
优化CIFAR-10分类模型 184
【本章知识结构图】 189
【课后习题】 189
第9章 深度学习实验项目 191
9.1 TensorFlow Datasets实验 191
9.2 tf.data定义高效的输入流水线 192
9.3 在tf.keras中使用Scikit-learn优化模型 193
9.4 ImageDataGenerator类图像增强 193
9.5 CNN模型识别手写数字 194
9.6 CNN模型检测驾驶员睡意 195