本书首先介绍深度学习方面的数学知识与Python基础知识,线性模型中的线性回归模型和logistic模型;然后讲述正向传播算法、反向传播算法及深度神经网络的完整训练流程,输出层的激活函数和隐藏层的常见激活函数,深度学习的过拟合和欠拟合,应对过拟合的方法,以及使用TensorFlow 2建立深度神经网络模型的步骤;接着介绍卷积神经网络及其两个重要的组成部分—卷积和池化,以及如何使用TensorFlow 2建立卷积神经网络;最后讨论如何从零开始实现循环神经网络,如何搭建深度学习框架,如何使用TensorFlow 2建立循环神经网络模型。
本书既可供从事人工智能方面研究的专业人士阅读,也可供计算机专业的师生阅读。
基于TensorFlow 2,系统讲述如何搭建、训练和应用深度学习模型;
本书旨在填补理论和应用的鸿沟,帮助读者更好、更快地掌握深度学习的算法和原理。
本书旨在讲述深度学习的各种基本算法和原理,以及如何使用Python实现这些算法。本书首先介绍深度学习的相关基础知识,然后讨论深度神经网络的训练、激活函数与正则化等技术,接着讲述卷积神经网络及其搭建方法,最后阐述循环神经网络及其搭建方法。通过本书,读者可以深入理解如何基于TensorFlow 2搭建、训练和应用深度学习模型。
本书主要内容:
·线性模型、激活函数;
·深度神经网络、卷积神经网络、循环神经网络;
·模型评估和正则化;
·搭建深度学习框架;
·基于TensorFlow 2搭建卷积神经网络模型;
·基于TensorFlow 2搭建循环神经网络模型。
林炳清,毕业于新加坡南洋理工大学,获得统计学博士学位,现为深圳大学数学与统计学院副教授,硕士生导师,主要研究方向为机器学习、数据挖掘、生物信息学,在国内外权威期刊发表论文三十余篇,主持并参与多项国家自然科学基金项目。
目 录
第 1章 深度学习简介 1
1.1 什么是深度学习 1
1.1.1 机器学习简介 1
1.1.2 深度学习与传统机器学习算法的区别 4
1.1.3 深度学习与人类神经网络的关系 4
1.2 为什么需要学习深度学习 5
1.3 谁需要学习深度学习 6
1.4 学深度学习之后,你可以做什么 6
1.5 本章小结 6
第 2章 数学和Python基础知识 7
2.1 线性代数 7
2.1.1 数、向量、矩阵和张量 7
2.1.2 矩阵的转置 8
2.1.3 矩阵的基本运算 9
2.1.4 向量和矩阵的范数 10
2.2 微积分 10
2.2.1 导数的概念 10
2.2.2 求导法则 11
2.3 概率论 11
2.3.1 随机变量 12
2.3.2 随机变量的分布 12
2.3.3 常见的概率分布 13
2.3.4 条件概率 14
2.4 Anaconda 14
2.4.1 安装Anaconda 14
2.4.2 包的管理 15
2.4.3 环境的管理 15
2.5 Jupyter Notebook 16
2.5.1 安装Jupyter Notebook 16
2.5.2 打开和关闭Jupyter Notebook 17
2.5.3 代码框 18
2.5.4 标记框 19
2.6 Python 22
2.6.1 Python基础 22
2.6.2 Python基本数据结构 23
2.6.3 控制结构和函数 26
2.6.4 NumPy库 28
2.6.5 Pandas 31
2.6.6 画图工具 32
2.7 本章小结 35
第3章 线性模型 36
3.1 线性回归模型 36
3.1.1 线性回归模型简介 36
3.1.2 随机梯度下降法 41
3.1.3 全数据梯度下降法 50
3.1.4 批量随机梯度下降法 56
3.1.5 学习步长 59
3.1.6 标准化和中心化 61
3.1.7 3种梯度下降法的对比 62
3.2 logistic模型 63
3.2.1 logistic模型简介 63
3.2.2 估计 和 66
3.3 本章小结 70
习题 70
第4章 深度神经网络 72
4.1 为什么需要深度神经网络 72
4.1.1 简单神经网络 72
4.1.2 具有隐藏层的神经网络 78
4.2 正向传播算法 83
4.3 反向传播算法 87
4.4 深度神经网络的完整训练流程 96
4.4.1 随机梯度下降法 96
4.4.2 批量随机梯度下降法 98
4.5 本章小结 102
习题 103
第5章 激活函数 104
5.1 激活函数的基本要求 104
5.2 输出层的激活函数 107
5.2.1 因变量为定量数据 107
5.2.2 因变量为二分类定性数据 108
5.2.3 因变量为多分类定性数据 108
5.2.4 识别MNIST数据集中的手写数字 111
5.3 隐藏层的激活函数 116
5.3.1 sigmoid函数 116
5.3.2 tanh函数 118
5.3.3 ReLU函数 119
5.3.4 Leaky ReLU函数 121
5.4 本章小结 125
习题 126
第6章 模型评估和正则化 130
6.1 模型评估 130
6.2 欠拟合和过拟合 133
6.3 正则化 140
6.3.1 早停法 141
6.3.2 惩罚法 141
6.3.3 丢弃法 145
6.3.4 增加观测点 151
6.4 本章小结 151
习题 152
第7章 基于TensorFlow 2建立深度学习模型 153
7.1 安装TensorFlow 154
7.2 TensorFlow 2基本用法 154
7.2.1 tf.Tensor 154
7.2.2 TensorFlow 2和NumPy的兼容性 156
7.3 深度神经网络建模基本步骤 156
7.3.1 创建模型结构 157
7.3.2 训练模型 159
7.3.3 评估和预测模型 160
7.4 基于TensorFlow 2建立线性回归模型 161
7.5 基于TensorFlow 2建立神经网络分类模型 164
7.5.1 神经网络分类模型 164
7.5.2 神经网络模型的正则化 167
7.6 本章小结 169
习题 170
第8章 卷积神经网络 171
8.1 卷积层 172
8.1.1 卷积运算 172
8.1.2 卷积层运算 173
8.1.3 卷积运算的直观理解 175
8.1.4 填充 177
8.1.5 卷积层求导 178
8.1.6 用Python实现卷积层的计算 180
8.2 池化层 183
8.2.1 池化运算 183
8.2.2 池化层求导 185
8.2.3 用Python实现池化层的计算 187
8.3 卷积神经网络 189
8.4 本章小结 196
习题 196
第9章 基于TensorFlow 2搭建卷积神经网络模型 198
9.1 卷积层和池化层 199
9.2 CNN实例——MNIST数据集和CIFAR-10数据集 201
9.2.1 关于MNIST数据集的实例 201
9.2.2 关于CIFAR-10数据集的实例 207
9.3 CNN建模技巧 214
9.3.1 卷积神经网络的结构 214
9.3.2 卷积层和池化层的超参数选择 215
9.3.3 经典的卷积神经网络 216
9.4 本章小结 219
习题 219
第 10章 循环神经网络 221
10.1 分析IMDB的数据 221
10.1.1 IMDB的数据 221
10.1.2 神经网络模型(IMDB) 225
10.2 词嵌入 229
10.3 循环神经网络 231
10.4 从零开始实现循环神经网络 236
10.4.1 莎士比亚作品应用示例 236
10.4.2 正向传播算法 239
10.4.3 反向传播算法 241
10.5 本章小结 246
习题 247
第 11章 搭建深度学习框架 248
11.1 类Tensor和自动求导 248
11.1.1 类 248
11.1.2 类Tensor 250
11.1.3 自动求导 251
11.2 为Tensor类添加运算函数并建立神经网络模型 258
11.2.1 为Tensor类添加运算函数 258
11.2.2 使用Tensor类建立神经网络模型 264
11.3 类SGD、类Layer和激活函数 266
11.3.1 类SGD 266
11.3.2 类Layer 267
11.3.3 激活函数 270
11.4 词嵌入和循环神经网络 278
11.4.1 词嵌入 278
11.4.2 循环神经网络 285
11.5 本章小结 291
习题 291
第 12章 长短期记忆模型与门控循环单元模型 292
12.1 简单循环神经网络的主要缺陷 292
12.2 长短期记忆模型 298
12.2.1 LSTM模型的核心思想 299
12.2.2 详解LSTM模型 299
12.2.3 实现LSTM模型 301
12.3 门控循环单元模型 306
12.3.1 详解GRU模型 307
12.3.2 实现GRU模型 308
12.4 本章小结 311
习题 311
第 13章 基于TensorFlow 2搭建循环神经网络模型 312
13.1 建立LSTM模型 312
13.1.1 预处理数据 313
13.1.2 基于TensorFlow建立LSTM模型 315
13.2 基于TensorFlow建立GRU模型 316
13.3 本章小结 325
习题 326