第1章 深度强化学习概览 1
1.1 什么是深度强化学习 5
1.1.1 俯瞰强化学习 6
1.1.2 纵观深度学习 17
1.1.3 Hello,深度强化学习 18
1.2 深度强化学习的学习策略 20
1.3 本书的内容概要 22
参考文献 24
第2章 强化学习基础 25
2.1 真相——经典的隐马尔科夫模型(HMM) 27
2.1.1 HMM引例 27
2.1.2 模型的理解与推导 28
2.1.3 隐马尔科夫模型应用举例 31
2.2 逢考必过——马尔科夫决策过程(MDP) 33
2.2.1 MDP生活化引例 34
2.2.2 MDP模型 36
2.2.3 MDP模型引例 37
2.2.4 模型的理解 38
2.2.5 探索与利用(Exploitation & Exploration) 39
2.2.6 值函数和动作值函数 42
2.2.7 基于动态规划的强化学习问题求解 48
2.3 糟糕,考试不给题库——无模型(Model Free)强化学习 54
2.3.1 蒙特卡洛算法 55
2.3.2 时序差分算法 57
2.3.3 异步强化学习算法 61
2.4 学霸来了——强化学习之模仿学习 62
2.4.1 模仿学习(Imitation Learning) 62
2.4.2 逆向强化学习 63
本章总结 65
参考文献 66
第3章 深度学习基础 67
3.1 深度学习简史 67
3.1.1 神经网络发展史 67
3.1.2 深度学习的分类 71
3.1.3 深度学习的应用 74
3.1.4 深度学习存在的问题 77
3.2 深度学习的基础概念 78
3.2.1 深度学习总体感知 79
3.2.2 神经网络的基本组成 82
3.2.3 深度学习训练 85
3.2.4 梯度下降法 87
3.2.5 反向传播算法(BP) 88
3.3 数据预处理 96
3.3.1 主成分分析(PCA) 96
3.3.2 独立成分分析(ICA) 98
3.3.3 数据白化处理 101
3.4 深度学习的硬件基础 102
3.4.1 硬件基础介绍 102
3.4.2 GPU简介 103
3.4.3 CUDA编程 108
本章总结 112
参考文献 117
第4章 功能神经网络层 118
4.1 激活函数单元 119
4.2 池化层 125
4.3 参数开关Dropout 127
4.4 批量规范化层(Batch Normalization Layer) 129
4.5 全连接层 131
4.6 卷积神经网络 132
4.7 全卷积神经网络 134
4.8 循环神经网络(RNN) 137
4.9 深度学习的细节与技巧 139
4.9.1 数据扩增 140
4.9.2 参数初始化 141
4.9.3 训练当中的技巧 142
4.9.4 正则化 143
4.9.5 训练结果图像分析 145
4.9.6 模型集成 147
本章总结 148
参考文献 149
第5章 卷积神经网络(CNN) 150
5.1 卷积神经网络基础 151
5.1.1 卷积神经网络的历史 151
5.1.2 卷积神经网络的核心 152
5.2 卷积神经网络结构 154
5.2.1 深度卷积神经网络 155
5.2.2 深度卷积神经网络可视化 158
5.3 经典卷积神经网络架构分析 161
5.3.1 一切的开始——LeNet 163
5.3.2 王者回归——AlexNet 165
5.3.3 起飞的时候——VGG 173
5.3.4 致敬经典——GoogLeNet 177
5.3.5 没有最深只有更深——ResNet 181
5.4 生成对抗网络 185
5.4.1 生成对抗网络(GAN)基础 185
5.4.2 WGAN介绍 189
5.5 R-CNN简介 197
5.6 CNN的应用实例 201
本章总结 204
参考文献 205
第6章 循环神经网络(RNN) 206
6.1 RNN概览 207
6.2 长期依赖(Long Term Dependencies)问题 209
6.3 LSTM的变体 214
本章总结 217
参考文献 218
第7章 如何实现CNN——用C语言实现深度学习 219
7.1 如何写CMake文件 219
7.2 如何实现卷积神经网络 223
7.2.1 激活函数 223
7.2.2 池化函数 226
7.2.3 全连接层 229
7.3 卷积神经网络 234
7.3.1 CNN的构建 234
7.3.2 CNN的前向传播 240
7.3.3 CNN的反向传播 244
7.4 文件解析 246
本章总结 253
第8章 深度强化学习 254
8.1 初识深度强化学习 255
8.1.1 深度强化学习概览 255
8.1.2 记忆回放(Memory Replay)机制 257
8.1.3 蒙特卡洛搜索树 259
8.2 深度强化学习(DRL)中的值函数算法 265
8.2.1 DRL中值函数的作用 265
8.2.2 DRL中值函数理论推导 266
8.3 深度强化学习中的策略梯度(Policy Gradient)算法 268
8.3.1 策略梯度算法的作用和优势 269
8.3.2 策略梯度算法的理论推导 271
8.3.3 REINFORCE算法 274
8.3.4 策略梯度算法的优化 277
8.3.5 策略子-评价算法(Actor-Critic) 279
8.4 深度强化学习网络结构 281
参考文献 283
第9章 深度强化学习算法框架 285
9.1 深度Q学习网络 289
9.2 双Q学习 292
9.3 异步深度强化学习 295
9.4 异步优越性策略子-评价算法 298
9.5 DDPG算法 301
9.6 值迭代网络 303
本章总结 308
参考文献 309
第10章 深度强化学习应用实例 310
10.1 Flappy Bird应用 311
10.2 Play Pong应用 313
10.3 深度地形-自适应应用(Deep Terrain-Adaptive应用) 318
10.4 AlphaGo应用 326
10.4.1 独立算法的研究部分 328
10.4.2 A1phaGo算法 332
本章总结 334
参考文献 334
附录A常用的深度学习框架 335
标准1:与现有编程平台、技能整合的难易程度。 335
标准2:和相关机器学习、数据处理生态整合的紧密程度。 336
标准3:通过此平台做深度学习之外,还能做什么? 336
标准4:对数据量、硬件的要求和支持。 336
标准5:深度学习平台的成熟程度。 336
A1 Google的TensorFlow 340
A1.1 TensorFlow简介 340
A1.2 TensorFlow基础 341
A2 轻量级的MXNet 345
A2.1 MXNet介绍 345
A22MXNet基础 347
A3 来自UCLA的Caffe 349
A3.1 Caffe简介 349
A3.2 Caffe基础 350
A4 悠久的Theano 353
A4.1 Theano简介 353
A4.2 Theano基础 354
A5 30秒入门Keras 355
参考文献 360