描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787121347450
l 290张图 110个可执行的TensorFlow示例程序 算法示例
l 助力读者玩转神经网络与深度学习背后的数学原理及上手应用
l 夯实神经网络、深度学习背后的数学基础,掌握它们的原理与实现,更深刻地理解开源深度学习框架TensorFlow中的常用函数,帮助读者在人工智能路上走得更远!
本书是以TensorFlow 为工具介绍神经网络和深度学习的入门书,内容循序渐进,以简单示例和图例的形式,展示神经网络和深度学习背后的数学基础原理,帮助读者更好地理解复杂抽象的公式。同时,采用手动计算和程序代码这两种方式讲解示例,可以更好地帮助读者理解TensorFlow的常用函数接口,为读者掌握利用TensorFlow搭建人工智能项目打下良好的基础。
本书适合神经网络、深度学习、TensorFlow的入门者阅读。
1 深度学习及TensorFlow 简介 1
1.1 深度学习 1
1.2 TensorFlow 简介及安装 2
2 基本的数据结构及运算6
2.1 张量 6
2.1.1 张量的定义 6
2.1.2 Tensor 与Numpy 的ndarray 转换 9
2.1.3 张量的尺寸 10
2.1.4 图像转换为张量 13
2.2 随机数 14
2.2.1 均匀(平均)分布随机数 14
2.2.2 正态(高斯)分布随机数 15
2.3 单个张量的运算 17
2.3.1 改变张量的数据类型 17
2.3.2 访问张量中某一个区域的值 19
2.3.3 转置 22
2.3.4 改变形状 26
2.3.5 归约运算:求和、平均值、(小)值 29
2.3.6 (小)值的位置索引 34
2.4 多个张量之间的运算 35
2.4.1 基本运算:加、减、乘、除 35
2.4.2 乘法 41
2.4.3 张量的连接 42
2.4.4 张量的堆叠 44
2.4.5 张量的对比 48
2.5 占位符 49
2.6 Variable 对象 50
3 梯度及梯度下降法 52
3.1 梯度 52
3.2 导数计算的链式法则 53
3.2.1 多个函数和的导数 54
3.2.2 复合函数的导数 54
3.2.3 单变量函数的驻点、极值点、鞍点 55
3.2.4 多变量函数的驻点、极值点、鞍点 57
3.2.5 函数的泰勒级数展开 60
3.2.6 梯度下降法 63
3.3 梯度下降法 73
3.3.1 Adagrad 法 73
3.3.2 Momentum 法 75
3.3.3 NAG 法 77
3.3.4 RMSprop 法 78
3.3.5 具备动量的RMSprop 法 80
3.3.6 Adadelta 法 81
3.3.7 Adam 法 82
3.3.8 Batch 梯度下降 84
3.3.9 随机梯度下降 85
3.3.10 mini-Batch 梯度下降 86
3.4 参考文献 86
4 回归分析 88
4.1 线性回归分析 88
4.1.1 一元线性回归 88
4.1.2 保存和加载回归模型 91
4.1.3 多元线性回归 95
4.2 非线性回归分析 99
5 全连接神经网络 102
5.1 基本概念 102
5.2 计算步骤 104
5.3 神经网络的矩阵表达 107
5.4 激活函数 112
5.4.1 sigmoid 激活函数 112
5.4.2 tanh 激活函数 113
5.4.3 ReLU 激活函数 114
5.4.4 leaky relu 激活函数 115
5.4.5 elu 激活函数 118
5.4.6 crelu 激活函数 119
5.4.7 selu 激活函数 120
5.4.8 relu6 激活函数 121
5.4.9 softplus 激活函数 121
5.4.10 softsign 激活函数 122
5.5 参考文献 123
6 神经网络处理分类问题 125
6.1 TFRecord 文件 125
6.1.1 将ndarray 写入TFRecord 文件 125
6.1.2 从TFRecord 解析数据 128
6.2 建立分类问题的数学模型 134
6.2.1 数据类别(标签) 134
6.2.2 图像与TFRecrder 135
6.2.3 建立模型 140
6.3 损失函数与训练模型 143
6.3.1 sigmoid 损失函数 143
6.3.2 softmax 损失函数 144
6.3.3 训练和评估模型 148
6.4 全连接神经网络的梯度反向传播 151
6.4.1 数学原理及示例 151
6.4.2 梯度消失 166
7 一维离散卷积 168
7.1 一维离散卷积的计算原理 168
7.1.1 full 卷积 169
7.1.2 valid 卷积 170
7.1.3 same 卷积 170
7.1.4 full、same、valid 卷积的关系 171
7.2 一维卷积定理 174
7.2.1 一维离散傅里叶变换 174
7.2.2 卷积定理 177
7.3 具备深度的一维离散卷积 182
7.3.1 具备深度的张量与卷积核的卷积 182
7.3.2 具备深度的张量分别与多个卷积核的卷积 183
7.3.3 多个具备深度的张量分别与多个卷积核的卷积 185
8 二维离散卷积 187
8.1 二维离散卷积的计算原理 187
8.1.1 full 卷积 187
8.1.2 same 卷积 189
8.1.3 valid 卷积 191
8.1.4 full、same、valid 卷积的关系 192
8.1.5 卷积结果的输出尺寸 193
8.2 离散卷积的性质 194
8.2.1 可分离的卷积核 194
8.2.2 full 和same 卷积的性质 195
8.2.3 快速计算卷积 197
8.3 二维卷积定理 198
8.3.1 二维离散傅里叶变换 198
8.3.2 二维与一维傅里叶变换的关系 201
8.3.3 卷积定理 203
8.3.4 利用卷积定理快速计算卷积 203
8.4 多深度的离散卷积 205
8.4.1 基本的多深度卷积 205
8.4.2 一个张量与多个卷积核的卷积 207
8.4.3 多个张量分别与多个卷积核的卷积 208
8.4.4 在每一深度上分别卷积 211
8.4.5 单个张量与多个卷积核在深度上分别卷积 212
8.4.6 分离卷积 214
9 池化操作218
9.1 same 池化 218
9.1.1 same 值池化 218
9.1.2 多深度张量的same 池化 221
9.1.3 多个三维张量的same 值池化 223
9.1.4 same 平均值池化 224
9.2 valid 池化 226
9.2.1 多深度张量的vaild 池化 228
9.2.2 多个三维张量的valid 池化 229
10 卷积神经网络231
10.1 浅层卷积神经网络 231
10.2 LeNet 238
10.3 AlexNet 244
10.3.1 AlexNet 网络结构详解 244
10.3.2 dropout 及其梯度下降 247
10.4 VGGNet 256
10.5 GoogleNet 264
10.5.1 网中网结构 264
10.5.2 Batch Normalization 269
10.5.3 BN 与卷积运算的关系 273
10.5.4 指数移动平均 275
10.5.5 带有BN 操作的卷积神经网络 276
10.6 ResNet 281
10.7 参考文献 284
11 卷积的梯度反向传播 286
11.1 valid 卷积的梯度 286
11.1.1 已知卷积核,对未知张量求导 286
11.1.2 已知输入张量,对未知卷积核求导 290
11.2 same 卷积的梯度 294
11.2.1 已知卷积核,对输入张量求导 294
11.2.2 已知输入张量,对未知卷积核求导 298
12 池化操作的梯度 303
12.1 平均值池化的梯度 303
12.2 值池化的梯度 306
13 BN 的梯度反向传播311
13.1 BN 操作与卷积的关系 311
13.2 示例详解 314
14 TensorFlow 搭建神经网络的主要函数 324
2016 年是人工智能进入大众视野的一年,从AlphaGo 到无人驾驶,从量子计算机到马斯克的太空计划,每一个焦点事件的背后都与人工智能有着很大的联系。2016 年至今,短短两年的时间,人工智能在与人类生活息息相关的医疗健康、金融、零售、娱乐等方面,发挥出了巨大的潜能。
从应用领域来看,人工智能可应用于机器视觉、指纹识别、人脸识别、视网膜识别、虹膜识别、掌纹识别、专家系统、自动规划、智能搜索、语音识别、自动程序设计、智能控制、机器翻译、智能对话机器人等领域。掀起这股人工智能热潮重要的技术之一就是深度学习(Deep Learning)技术。
本书的整体架构
本书由14 章组成。第1 章和第2 章主要介绍TensorFlow 的安装和基础使用知识。第3 章主要介绍高等代数中的梯度和求解化问题的梯度下降法。第4 章介绍如何使用第1章~第3 章中讲的知识解决机器学习中比较简单的回归问题,便于读者学习后续章节中全连接神经网络和卷积神经网络的知识。第5 章和第6 章主要介绍全连接神经网络,包括全连接神经网络的计算步骤,如何利用全连接神经网络构建分类模型,以及全连接神经网络的梯度反向传播算法,等等。第7 章主要介绍一维离散卷积。第8 章主要介绍二维离散卷积。第9章主要介绍池化操作。第10 章主要介绍经典的卷积神经网络。第11 章~第13 章主要介绍卷积神经网络的梯度反向传播。第14 章介绍搭建神经网络的主要函数。本书中的每一章都会涉及大量的技术细节描述,便于读者掌握深度学习背后的基础知识及技术细节。
本书特色
众所周知,掌握机器学习理论的数学门槛比较高,而大量优秀的机器学习、深度学习开源框架在工程实现上帮助我们越过了这些数学细节,所以很多深度学习的相关书籍是以讲解项目为主要目标。本书试图从另一个角度引导入门者直接面对深度学习背后的数学基础,并进行了以下两点尝试:
(1) 不同书籍对同一个数学公式的符号表达可能不同,这给入门者带来了比较大的困扰。
本书试图通过简单的示例和图例的形式展示复杂抽象的数学公式背后的计算原理,通过示例更好地理解复杂抽象的公式。
(2) 作者采用手动计算和利用程序代码进行处理这两种方式讲解示例,两种方式的结果可以相互验证,帮助入门者更好地理解开源框架中的函数接口。
作者认为,想在人工智能路上走得更远,内功扎实是致胜关键。希望本书可以帮助入门者夯实基础。
本书面向的读者
本书的目标读者是想学习神经网络和深度学习的初学者。同时,本书的示例代码基于TensorFlow 的Python API,所以需要读者具备基本的Python 编程基础。
致谢
感谢我的父母、姐姐一家人一直以来对我生活和工作的支持。
感谢TensorFlow 开源库的所有贡献者。
感谢电子工业出版社博文视点的郑柳洁老师,在本书写作的过程中,不厌其烦地解答我遇到的各种问题,感谢她一直以来的支持和肯定。
我们期待您的反馈
限于篇幅,加之作者水平有限,书中疏漏和错误之处在所难免,恳请读者批评并指正,我们视读者的满意为己任,视读者的反馈意见为无价之宝,如果您发现了错误或者对书中内容有任何建议,都可以将其发送至电子邮箱[email protected],也可以登录博文视点官网,在本书页面上留言。本书中所有样例的代码,均可从博文视点官网下载。
作者:张平
评论
还没有评论。