本书介绍了深度学习原理与TensorFlow实践。着重讲述了当前学术界和工业界的深度学习核心知识:机器学习概论、神经网络、深度学习。着重讲述了深度学习的实现以及深度学习框架TensorFlow:Python 编程基础、TensorFlow编程基础、TensorFlow模型、 TensorFlow编程实践、TensorFlowLite 和 TensorFlow.js、TensorFlow案例--医学应用和Seq2Seq attention 模型及其应用案例。 本书*特色是既有由浅入深的理论知识,又有从入门到高深的应用编程的技术知识。本书涵盖了深度学习的理论、Python 编程语言以及TensorFlow编程知识和代码解读,为深度学习初学者以及进阶人员提供了详尽的必要知识。 本书可用于大学本科生高年级以及研究生人工智能教材,也可作为应用领域技术人员、工程技术人员和科学研究工作者的参考资料。
1.谷歌产学合作项目成果; 2.有由浅入深的理论知识,更有从入门到高深的技术应用案例; 3.每章配有习题,强化学习效果; 4.强大的配套资源,在线考试平台、题库、PPT课件、源代码一应俱全,免费提供。
黄理灿,浙江理工大学网络与分布式计算研究所所长, 曾任浙江省信息化促进会理事长,International Conference on Networking and Distributed Computing(ICNDC)网络与分布式计算国际会议主席。一直从事网络与分布式计算研究。IEEE高级会员,域搜云平台创始人。
第 1 章
绪论.............................................. 1
1.1 引言........................................................
2
1.2 深度学习的发展历程............................ 3
1.3 TensorFlow 应用现状...................... 5
习题 ..................................................................
6
第 2 章 机器学习概论..........................
7
2.1 机器学习相关的数学知识.................... 8
2.1.1 微积分..............................................
8
2.1.2 线性代数........................................11
2.1.3 概率论............................................14
2.2 机器学习方法......................................15
2.2.1 监督学习........................................16
2.2.2 无监督学习....................................24
2.2.3 半监督学习 ....................................26
2.2.4 强化学习........................................28
2.3 数据的预处理方法..............................31
习题
................................................................34
第 3 章 神经网络..................................35
3.1 神经网络基础知识..............................36
3.1.1 MP 模型.........................................36
3.1.2 感知机............................................38
3.1.3 三层感知机
....................................41
3.2 神经网络模型......................................53
3.2.1 径向基函数网络 ............................54
3.2.2 Hopfield 神经网络........................56
3.2.3 Elman 神经网络............................56
3.2.4 玻尔兹曼机....................................57
3.2.5 自动编码器
....................................60
3.2.6 生成对抗网络................................ 62
习题................................................................
64
第 4 章 深度学习..................................
65
4.1 多层感知机神经网络.......................... 66
4.2 激活函数、损失函数和过拟合.......... 71
4.2.1 激活函数........................................
71
4.2.2 损失函数(代价函数)................ 74
4.2.3 防止过拟合....................................
78
4.3 卷积神经网络......................................80
4.3.1 卷积神经网络原理........................ 81
4.3.2 *卷积神经网络 BP 算法的数学推导
............................................... 86
4.4 循环神经网络 ..................................... 89
4.4.1 循环神经网络模型原理................90
4.4.2 *BPTT 算法 .................................
91
4.4.3 双向循环神经网络........................ 95
4.4.4 深度循环神经网络........................ 96
4.4.5 长短时记忆网络............................ 96
4.4.6 门控循环单元网络........................ 98
4.5 深度置信网络 ..................................... 99
4.5.1 RBM 原理......................................
99
4.5.2 RBM 求解算法............................100
4.5.3 对比散度算法..............................101
4.5.4 *公式推导....................................101
4.5.5 深度置信网络训练......................105
4.6 深度学习框架 ...................................106
4.6.1 TensorFlow................................107
4.6.2 Caffe............................................107
4.6.3 Theano........................................108
4.6.4 Keras ...........................................109
习题
..............................................................110
第 5 章 Python 编程基础............111
5.1 Python 环境搭建............................112
5.1.1 Python 安装
................................112
5.1.2 Jupyter Notebook 编程器安装使用..............................................112
5.2 Python 编程基础知识....................117
5.2.1 Python 标识符 ............................117
5.2.2 Python 标准数据类型 ................118
5.2.3 Python 语句
................................118
5.2.4 Python 运算符 ............................119
5.2.5 代码组..........................................121
5.2.6 Python 流程控制 ........................122
5.2.7 Python 函数 ................................123
5.2.8 Python 模块
................................126
5.2.9 Python 类....................................127
5.2.10 命名空间和作用域....................131
5.3 Python 标准库................................132
5.4 Python 机器学习库........................132
5.4.1 NumPy ........................................132
5.4.2 Scipy............................................140
5.4.3 Pandas .........................................143
5.4.4 Scikit-learn................................148
习题
..............................................................153
第 6 章 TensorFlow 编程基础...........................................155
6.1 TensorFlow 的发展历程与演进..156
6.2 TensorFlow 的搭建配置..............158
6.2.1 在 Windows 系统环境下安装TensorFlow................................158
6.2.2 在 Mac OS 系统环境下安装TensorFlow................................158
6.2.3 在 Linux 系统环境下安装TensorFlow................................
159
6.3 TensorFlow 编程基础知识.......... 159
6.3.1 张量..............................................
159
6.3.2 符号式编程..................................160
6.3.3 变量和常量.................................. 161
6.3.4 会话(Session)
........................ 161
6.3.5 占位符(placeholder)、获取(Fetch)和馈送(Feed) ........ 162
6.3.6 Variable 类..................................
163
6.3.7 常量、序列以及随机值.............. 164
6.3.8 执行图(Running Graphs).....
166
6.3.9 操作运算......................................
167
6.3.10 基本数学函数............................170
6.3.11 矩阵数学函数............................ 171
6.3.12 张量数学函数............................ 176
6.3.13 张量 Reduction 操作................
176
6.3.14 累加和累积................................ 179
6.3.15 张量拆分操作............................ 179
6.3.16 序列比较与索引........................ 182
6.3.17 张量数据类型转换.................... 183
6.3.18 TensorFlow 张量形状的确定与改变
....................................... 184
6.4 TensorFlow 系统架构及源码结构..................................................
185
6.5 Eager Execution......................... 188
6.6 TensorFlow 示例代码.................. 189
6.6.1 简单回归拟合.............................. 189
6.6.2 波士顿房价预测.......................... 191
习题..............................................................
193
第 7 章 TensorFlow 模型.......... 194
7.1 TensorFlow 模型编程模式.......... 195
7.1.1 tf.nn 模块 .................................... 195
7.1.2 tf.layers 模块..............................207
7.1.3 tf.estimator 模块........................210
7.1.4 tf.keras 模块...............................211
7.2 读取数据............................................212
7.2.1 载入数据 ......................................212
7.2.2 创建迭代器 ..................................214
7.2.3 使用 dataset 数据.......................216
7.3 TensorFlow 模型搭建..................218
7.4 TensorFlow 模型训练..................220
7.4.1 损失函数tf.losses 模块.......220
7.4.2 优化器tf.train 模块.............220
7.4.3 训练示例......................................222
7.5 TensorFlow 评估..........................222
7.5.1 评价指标
......................................222
7.5.2 评估函数tf.metrics 模块....225
7.6 TensorFlow 模型载入、保存及调用
..................................................227
7.7 可视化分析和评估模型....................229
7.7.1 tf.summary 模块 ........................229
7.7.2 TensorBoard 可视化评估工具..............................................229
7.7.3 TensorBoard 使用案例 .............230
7.8 示例鸢尾花分类........................239
习题
..............................................................242
第 8 章 TensorFlow 编程实践...........................................243
8.1 MNIST 手写数字识别 ....................244
8.1.1 使用 tf.nn 模块实现 MNIST手写数字识别..............................245
8.1.2 使用 tf.estimator 模块实现MNIST
手写数字识别 ...............248
8.2 Fashion MNIST...........................253
8.2.1 Keras 序列模型 ..........................253
8.2.2 Fashion MNIST 代码 ................ 259
8.3 RNN 简笔画识别 ............................ 265
习题..............................................................
275
第 9 章 TensorFlow Lite 和TensorFlow.js.............. 276
9.1 TensorFlow Lite.......................... 277
9.1.1 转化训练好的模型为.tflite文件
............................................. 278
9.1.2 编写自定义操作代码.................. 279
9.1.3 在 TensorFlow Lite 的移动端进行安卓开发..............................280
9.1.4 在 TensorFlow Lite 的移动端进行
iOS 开发 ............................. 283
9.2 TensorFlow.js ............................. 284
9.2.1 TensorFlow.js JavaScript 库引入 .............................................
284
9.2.2 TensorFlow.js 基础知识........... 285
9.2.3 TensorFlow.js 示例................... 289
习题..............................................................302
第 10 章 TensorFlow 案例医学应用...........................303
10.1 开源医学图像分析平台 DLTK的安装运行
......................................304
10.2 开源医学图像分析平台 DLTK的使用..............................................305
10.3 开源医学图像分析平台 DLTK案例..................................................310
10.4 开源医学图像分析平台 DLTK模型..................................................
312
习题..............................................................
323
第 11 章 Seq2Seq attention模型及其应用案例.........324
11.1 Seq2Seq 和 attention 模型.....325
11.2 TensorFlow 自动文本摘要生成
.................................................327
11.2.1 TextSum 安装运行 ..................328
11.2.2 TextSum 整体结构.................. 329
11.3 聊天机器人 .....................................350
11.3.1 DeepQA.....................................350
11.3.2 Stanford TensorFlow Chatbot.....................................
356
习题..............................................................
356