描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787121401992
深度学习是人工智能的前沿技术。本书深入浅出地介绍了深度学习的相关理论和TensorFlow实践,全书共8章。第1章给出了深度学习的基本概况。第2章详细介绍了神经网络相关知识,内容包括M-P神经元模型、感知机、多层神经网络。第3章介绍了被广泛认可的深度学习框架TensorFlow 2的安装流程与新特性。第4章详细介绍了TensorFlow 2的相关语法。第5章介绍了BP算法和常见的优化方法。第6章介绍了Keras模块的使用。第7章和第8章详细讲解了卷积神经网络和循环神经网络,并给出了相关的实战项目。 本书结构完整、行文流畅,是一本零基础入门、通俗易懂、图文并茂、理论结合实战的深度学习书籍。对于计算机、人工智能及相关专业的本科生和研究生,这是一本适合入门与系统学习的教材;对于从事深度学习产品研发的工程技术人员,本书也有一定的参考价值。
目 录
第1章 深度学习导论 1
1.1 从人工智能到深度学习 2
1.1.1 从感知机到深度学习 2
1.1.2 深度学习的巨大影响 6
1.2 从学习到机器学习 7
1.2.1 什么是学习 7
1.2.2 什么是机器学习 8
1.2.3 机器学习的4个象限 9
1.3 深度学习的内涵 10
1.3.1 什么是深度学习 10
1.3.2 生活中的深度学习 12
1.3.3 有没有浅度学习 13
1.4 本章小结 14
1.5 思考与习题 14
参考资料 14
第2章 神经网络学习 16
2.1 人工神经网络的定义 17
2.2 神经网络的原子单元——感知机 18
2.2.1 感知机的形式化描述 18
2.2.2 感知机名称的由来 19
2.2.3 感性认识感知机 20
2.2.4 感知机是如何学习的 22
2.2.5 感知机训练法则 24
2.2.6 感知机中的激活函数 26
2.2.7 感知机的几何意义 26
2.2.8 实战:基于Python的感知机实现 27
2.2.9 感知机的表征能力 31
2.3 多层前馈网络 32
2.3.1 多层网络解决“异或”问题 32
2.3.2 多层前馈神经网络 34
2.3.3 机器学习本质与通用近似定理 35
2.3.4 神经网络结构的设计 37
2.4 神经网络中的损失函数 38
2.5 常用的激活函数 40
2.5.1 Sigmoid函数 40
2.5.2 Tanh函数 41
2.5.3 ReLU函数 42
2.6 实战:利用sklearn搭建多层神经网络 43
2.6.1 sklearn简介 44
2.6.2 sklearn的安装 44
2.6.3 sklearn搭建多层神经网络实现红酒分类 45
2.7 本章小结 57
2.8 思考与习题 58
参考资料 58
第3章 初识TensorFlow 60
3.1 TensorFlow概述 61
3.2 TensorFlow特征 62
3.3 深度学习框架比较 63
3.3.1 Theano 63
3.3.2 Keras 64
3.3.3 Caffe 65
3.3.4 PyTorch 66
3.4 利用Anaconda安装TensorFlow 67
3.4.1 Anaconda的下载与安装 67
3.4.2 验证Python是否安装成功 70
3.4.3 利用conda安装TensorFlow 71
3.5 运行“Hello World!”版的TensorFlow程序 72
3.5.1 利用TensorFlow 2 编写的第二个程序 74
3.5.2 TensorFlow 2 的新特性 75
3.6 本章小结 79
3.7 思考与提高 79
参考资料 79
第4章 TensorFlow 基础语法 80
4.1 TensorFlow的张量思维 81
4.1.1 张量的阶 81
4.1.2 张量的尺寸 83
4.2 TensorFlow中的数据类型 86
4.2.1 Python基本数据类型与TensorFlow的关系 86
4.2.2 数值类型 87
4.2.3 字符串类型 89
4.2.4 布尔类型 91
4.2.5 张量类型转换 92
4.2.6 TensorFlow中的张量与NumPy数组 93
4.3 TensorFlow中的常量与变量 97
4.3.1 constant常量 97
4.3.2 Variable变量 98
4.4 常用张量生成方法 100
4.4.1 生成全0的张量 100
4.4.2 生成全1的张量 102
4.4.3 生成全为给定值的张量 103
4.4.4 生成已知分布的随机数张量 103
4.4.5 创建特定张量序列 104
4.5 张量的索引和切片 105
4.5.1 索引 105
4.5.2 通过切片访问 107
4.6 张量的维度伸缩与交换 111
4.6.1 张量中的轴方向 111
4.6.2 张量维度的增加与删除 111
4.7 张量的合并、分割与复制 112
4.7.1 张量合并 113
4.7.2 张量分割 115
4.8 TensorFlow中的计算 118
4.8.1 按元素计算 118
4.8.2 张量的按轴计算 119
4.9 张量的广播机制 122
4.9.1 广播的定义 122
4.9.2 广播的操作与适用规则 122
4.10 张量在神经网络中的典型应用 124
4.10.1 标量 124
4.10.2 向量 126
4.10.3 矩阵 126
4.10.4 三维张量 129
4.10.5 四维张量 130
4.10.6 五维张量 130
4.11 本章小结 131
4.12 思考与练习 132
参考资料 132
第5章 BP算法与优化方法 133
5.1 为何需要优化函数 134
5.1.1 优化的意义 134
5.1.2 优化函数的流程 134
5.2 基于梯度的优化算法 136
5.2.1 什么是梯度 136
5.2.2 梯度的代码实现 138
5.2.3 梯度递减 142
5.2.4 批量梯度递减法 145
5.2.5 随机梯度递减法 146
5.2.6 小批量梯度递减法 148
5.2.7 实战:基于梯度递减的线性回归算法 148
5.2.8 基于梯度递减优化算法的挑战 151
5.3 BP算法 152
5.3.1 BP算法的发展历程 152
5.3.2 正向传播信息 153
5.3.3 求导中的链式法则 156
5.3.4 误差反向传播 158
5.3.5 实战:利用BP算法解决异或问题 160
5.4 TensorFlow中的其他优化算法 163
5.5 本章小结 166
5.6 思考与习题 166
参考资料 167
第6章 Keras模块的使用 168
6.1 Keras与tf.keras模块 169
6.2 数据的加载 170
6.2.1 TensorFlow的经典数据集 170
6.2.2 Dataset对象 171
6.3 Dataset的变换 173
6.3.1 随机打散 173
6.3.2 设置批大小 174
6.3.3 数据映射 174
6.3.4 循环训练 175
6.4 实战:基于梯度递减的手写数字识别MNIST 176
6.4.1 MNIST数据集简介 176
6.4.2 MNIST数据的获取 178
6.4.3 手写识别任务的分类模型 180
6.4.4 Softmax回归模型 182
6.4.5 手写数字识别MNIST中的Softmax回归模型 184
6.4.6 TensorFlow中搭建模型的三种方式 185
6.4.7 常用的序贯模型 186
6.4.8 利用tf.keras进行模型搭建 188
6.4.9 利用梯度递减算法构建模型 191
6.4.10 损失函数的交叉熵模型 193
6.4.11 tf.keras中的模型编译 196
6.4.12 模型的训练与预测 198
6.4.13 训练模型的保存与读取 201
6.5 本章小结 205
6.6 思考与练习 206
参考资料 206
第7章 卷积神经网络 207
7.1 概述 208
7.1.1 前馈神经网络的问题所在 208
7.1.2 卷积神经网络的生物学启示 209
7.1.3 卷积神经网络的发展历程 210
7.1.4 深度学习的“端到端”范式 212
7.2 卷积神经网络的概念 213
7.2.1 卷积的数学定义 213
7.2.2 生活中的卷积 215
7.3 图像处理中的卷积 215
7.3.1 计算机“视界”中的图像 215
7.3.2 卷积运算 216
7.3.3 卷积在图像处理中的应用 219
7.4 卷积神经网络的结构 221
7.5 卷积层要义 222
7.5.1 卷积层的局部连接 222
7.5.2 卷积核深度 223
7.5.3 步幅 223
7.5.4 填充 224
7.5.5 权值共享 226
7.6 激活层 227
7.7 池化层 228
7.8 全连接层 230
7.9 防止过拟合的Dropout机制 231
7.10 经典的卷积神经网络结构 232
7.10.1 LeNet-5 233
7.10.2 AlexNet 233
7.10.3 VGGNet 235
7.11 实战:基于卷积神经网络的手写数字识别 236
7.11.1 数据读取 237
7.11.2 搭建模型 238
7.11.3 模型训练 240
7.11.4 可视化展现TensorBoard 242
7.11.5 模型预测 246
7.12 本章小结 248
7.13 思考与练习 248
参考资料 249
第8章 循环神经网络与LSTM 250
8.1 标准神经网络的缺点 251
8.2 循序神经网络的发展历程 252
8.2.1 Hopfield网络 252
8.2.2 Jordan循环神经网络 252
8.2.3 Elman循环神经网络 253
8.2.4 RNN的应用领域 254
8.3 RNN的理论基础 254
8.3.1 RNN的形式化定义 255
8.3.2 循环神经网络的生物学机理 256
8.4 常见的RNN拓扑结构 257
8.4.1 one-to-one 257
8.4.2 one-to-many 258
8.4.3 many-to-one 258
8.4.4 many-to-many 258
8.5 RNN的训练 259
8.5.1 单向RNN建模 259
8.5.2 双向RNN建模 261
8.5.3 确定优化目标函数 262
8.5.4 参数求解与BPTT 262
8.6 LSTM的来历 263
8.7 拆解LSTM 264
8.7.1 改造的神经元 264
8.7.2 遗忘门 266
8.7.3 输入门 267
8.7.4 调节门 267
8.7.5 输出门 268
8.7.6 LSTM的部件功能 269
8.7.7 GRU优化 270
8.8 LSTM的训练流程 270
8.9 自然语言处理的假说 271
8.10 词向量表示方法 273
8.10.1 独热编码表示 273
8.10.2 分布式表示 275
8.10.3 词嵌入表示 277
8.11 基于RNN的语言模型 279
8.12 实战:基于RNN 的文本情感分类问题 281
8.12.1 数据读取 281
8.12.2 感性认知数据 282
8.12.3 数据预处理 284
8.12.4 搭建简易RNN 286
8.12.5 基于LSTM的优化 290
8.12.6 基于GRU的优化 291
8.13 本章小结 293
8.14 思考与练习 294
参考资料 294
自序
当下,人工智能非常火爆,而深度学习矗立于人工智能的前沿。但是,在某种程度上,很多人对深度学习的态度可以用周敦颐的《爱莲说》里的名句“可远观而不可亵玩焉”来形容。
的确,在深度学习算法的加持下,出现了很多炫酷的应用,让我们应接不暇。大到名声赫赫的AlphaGo,小到你手机里的美颜相机,都有深度学习的影子。
然而,“拥抱”深度学习,并成为这个社区的参与者,却并不容易。目前,有无数关于深度学习的书籍占据着我们的书架,也有数不尽的博客充斥着我们的屏幕。但很多时候,我们对深度学习的态度依然是“敬而远之”。这个“敬”可能是真实的(因为深度学习的确魅力十足),而这个“远”通常是被迫的(因为找到一本通俗易懂的有关深度学习的读物并非易事)。
于是,本书的特色就体现出来了。这是一本零基础入门、通俗易懂、图文并茂、理论结合实战的深度学习书籍。巧妙的比喻、合理的推断、趣味的故事,散落在书里,让一本科技图书也能妙趣横生。
2018年,笔者出版了《深度学习之美》,该书面市后,受到了读者好评。在此基础上,本书做了很多升级和改善工作。例如,在内容上,更加简练;在代码上,升级为TensorFlow 2;在排版上,提升为可读性更高的全彩留白排版。
当然,本书并非十全十美,但瑕不掩瑜,如果你想零基础入门深度学习,那么相信这本书一定能够给你提供很多帮助。
阅读准备
要想运行本书中的示例代码,需要提前安装如下系统及软件。
?操作系统:Windows、macOS、Linux均可。
?Python环境:建议使用Anaconda安装,确保版本为Python 3.6及以上。
?sklearn:建议使用Anaconda安装sklearn 0.22.1及以上版本。
?TensorFlow:建议使用Anaconda安装TensorFlow 2.0及以上版本。
本书所有源代码和配套资源均可在线下载,下载网址:https://www. hxedu.com.cn。
联系作者
深度学习是一个前沿且广袤的研究领域,很少有人能对其每个研究方向都有深刻的认知。限于图书篇幅,很多深度学习的议题并未涉及。且笔者自认才疏学浅,书中难免会出现理解偏差和错缪之处。若读者朋友们在阅读本书的过程中发现任何问题,希望能及时与笔者联系,笔者将在第一时间修正并对此不胜感激。
邮件地址:[email protected]。
致谢
本书能得以面市,得益于多方面的帮助和支持。在信息获取上,笔者学习并吸纳了很多精华知识,书中也尽可能地给出了文献出处,如有疏漏,望来信告知。在这里,对这些高价值资料的提供者、生产者表示深深的敬意和感谢。同时,感谢自然科学基金(项目编号:61705061, 61975053, U1904120)的部分支持。
此外,很多人在这本书的出版过程中扮演了重要角色,例如电子工业出版社的孟宇编辑在选题策划和文字编辑上,河南工业大学的陈伟楷、潘世泽、张开元和石岩松等在文稿校对上,都付出了辛勤的劳动,在此对他们一并表示感谢。
张玉宏
2020年8月于美国卡梅尔
评论
还没有评论。