白话深度学习与TensorFlow
作者: 高扬
出版时间: 2017年版
内容简介
本书基本独立成册,适用于零基础的初学者。 基础篇(第1~3章),讲解了机器学习、深度学习与实践的上下文知识,如基本的机器学习与深度学习算法,TensorFlow框架的安全与配置,简单的深度学习实践。该篇是阅读和实践的基石。 原理与实践篇(第4~8章),介绍“老牌”的深度学习网络的数学原理和工程实现原理,尤其是第4章,如果能基本读懂,后面的网络实现层面的问题基本都可以迎刃而解。涵盖BP网络、CNN、RNN的结构、思路、训练与使用,以及一些常见的综合性问题。该篇是学习深度学习的重点和难点,作者通过大量示例、推理与实现,帮读者*大化降低学习曲线。 扩展篇(第9~13章),介绍一些网络的变种和一些较新的网络特性,涵盖深度残差网络、受限玻尔兹曼机、强化学习、对抗学习,这是读者进一步学习与实践思路的钥匙。最后给出了一些有趣的深度学习应用:人脸识别、作诗姬、大师风图像处理,有趣又有用。
目录
本书赞誉
序
前 言
基 础 篇
第1章 机器学习是什么 2
1.1 聚类 4
1.2 回归 5
1.3 分类 8
1.4 综合应用 10
1.5 小结 14
第2章 深度学习是什么 15
2.1 神经网络是什么 15
2.1.1 神经元 16
2.1.2 激励函数 19
2.1.3 神经网络 24
2.2 深度神经网络 25
2.3 深度学习为什么这么强 28
2.3.1 不用再提取特征 28
2.3.2 处理线性不可分 29
2.4 深度学习应用 30
2.4.1 围棋机器人——AlphaGo 30
2.4.2 被教坏的少女——Tai.ai 32
2.4.3 本田公司的大宝贝——
ASIMO 33
2.5 小结 37
第3章 TensorFlow框架特性与安装 38
3.1 简介 38
3.2 与其他框架的对比 39
3.3 其他特点 40
3.4 如何选择好的框架 44
3.5 安装TensorFlow 45
3.6 小结 46
原理与实践篇
第4章 前馈神经网络 50
4.1 网络结构 50
4.2 线性回归的训练 51
4.3 神经网络的训练 75
4.4 小结 79
第5章 手写板功能 81
5.1 MNIST介绍 81
5.2 使用TensorFlow完成实验 86
5.3 神经网络为什么那么强 92
5.3.1 处理线性不可分 93
5.3.2 挑战“与或非” 95
5.3.3 丰富的VC——强大的空间
划分能力 98
5.4 验证集、测试集与防止过拟合 99
5.5 小结 102
第6章 卷积神经网络 103
6.1 与全连接网络的对比 103
6.2 卷积是什么 104
6.3 卷积核 106
6.4 卷积层其他参数 108
6.5 池化层 109
6.6 典型CNN网络 110
6.7 图片识别 114
6.8 输出层激励函数——SOFTMAX 116
6.8.1 SOFTMAX 116
6.8.2 交叉熵 117
6.9 小试牛刀——卷积网络做图片分类 124
6.10 小结 138
第7章 综合问题 139
7.1 并行计算 139
7.2 随机梯度下降 142
7.3 梯度消失问题 144
7.4 归一化 147
7.5 参数初始化问题 149
7.6 正则化 151
7.7 其他超参数 155
7.8 不唯一的模型 156
7.9 DropOut 157
7.10 小结 158
第8章 循环神经网络 159
8.1 隐马尔可夫模型 159
8.2 RNN和BPTT算法 163
8.2.1 结构 163
8.2.2 训练过程 163
8.2.3 艰难的误差传递 165
8.3 LSTM算法 167
8.4 应用场景 171
8.5 实践案例——自动文本生成 174
8.5.1 RNN工程代码解读 174
8.5.2 利用RNN学习莎士比亚剧本 183
8.5.3 利用RNN学习维基百科 184
8.6 实践案例——聊天机器人 185
8.7 小结 196
扩 展 篇
第9章 深度残差网络 198
9.1 应用场景 198
9.2 结构解释与数学推导 200
9.3 拓扑解释 205
9.4 Github示例 207
9.5 小结 207
第10章 受限玻尔兹曼机 209
10.1 结构 209
10.2 逻辑回归 210
10.3 最大似然度 212
10.4 最大似然度示例 214
10.5 损失函数 215
10.6 应用场景 216
10.7 小结 216
第11章 强化学习 217
11.1 模型核心 218
11.2 马尔可夫决策过程 219
11.2.1 用游戏开刀 221
11.2.2 准备工作 223
11.2.3 训练过程 224
11.2.4 问题 226
11.2.5 Q-Learning算法 228
11.3 深度学习中的Q-Learning——DQN 231
11.3.1 OpenAI Gym 234
11.3.2 Atari游戏 237
11.4 小结 238
第12章 对抗学习 239
12.1 目的 239
12.2 训练模式 240
12.2.1 二元极小极大博弈 240
12.2.2 训练 242
12.3 CGAN 244
12.4 DCGAN 247
12.5 小结 252
第13章 有趣的深度学习应用 254
13.1 人脸识别 254
13.2 作诗姬 259
13.3 梵高附体 264
13.3.1 网络结构 265
13.3.2 内容损失 268
13.3.3 风格损失 270
13.3.4 系数比例 271
13.3.5 代码分析 272
13.4 小结 279
附录A VMware Workstation的安装 280
附录B Ubuntu虚拟机的安装 284
附录C Python语言简介 290
附录D 安装Theano 296
附录E 安装Keras 297
附录F 安装CUDA 298
参考文献 303