| 作者 |
| 张平 |
| 丛书名 |
| 出版社 |
| 电子工业出版社 |
| ISBN |
| 9787121347450 |
| 简要 |
| 简介 |
| 内容简介书籍计算机书籍 290张图+110个可执行的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 |