第1章 强化学习简介 1
1.1什么是强化学习 1
1.2强化学习算法 2
1.3强化学习与其他机器学习范式的不同 3
1.4强化学习的要素 3
1.4.1智能体 3
1.4.2策略函数 3
1.4.3值函数 4
1.4.4模型 4
1.5智能体环境接口 4
1.6强化学习的环境类型 5
1.6.1确定性环境 5
1.6.2随机性环境 5
1.6.3完全可观测环境 5
1.6.4部分可观测环境 5
1.6.5离散环境 5
1.6.6连续环境 5
1.6.7情景和非情景环境 5
1.6.8单智能体和多智能体环境 6
1.7强化学习平台 6
1.7.1 OpenAI Gym和Universe 6
1.7.2 DeepMind Lab 6
1.7.3 RL-Glue 6
1.7.4 Project Malmo 6
1.7.5 VizDoom 6
1.8强化学习的应用 7
1.8.1教育 7
1.8.2医疗和健康 7
1.8.3制造业 7
1.8.4库存管理 7
1.8.5金融 7
1.8.6自然语言处理和计算机视觉 7
1.9小结 8
1.10问题 8
1.11扩展阅读 8
第2章从OpenAl和TensorFlow入门 9
2.1计算机设置 9
2.1.1安装Anaconda 9
2.1.2安装Docker 10
2.1.3安装OpenAI Gym和Universe 11
2.2 OpenAl Gym 13
2.2.1基本模拟 13
2.2.2训练机器人行走 14
2.3 OpenAl Universe 16
2.3.1构建一个视频游戏机器人 16
2.4 TensorFlow 20
2.4.1变量、常量和占位符 20
2.4.2计算图 21
2.4.3会话 21
2.4.4 TensorBoard 22
2.5小结 25
2.6问题 25
2.7扩展阅读 25
第3章 马尔可夫决策过程和动态规划 26
3.1马尔可夫链和马尔可夫过程 26
3.2 MDP 27
3.2.1奖励和回报 28
3.2.2情景和连续任务 28
3.2.3折扣因数 28
3.2.4策略函数 29
3.2.5状态值函数 29
3.2.6状态一行为值函数(Q函数) 30
3.3 Bellman方程和最优性 30
3.3.1推导值函数和Q函数的Bellman方程 31
3.4求解Bellman方程 32
3.4.1动态规划 32
3.5求解冰冻湖问题 38
3.5.1值迭代 39
3.5.2策略迭代 43
3.6小结 45
3.7问题 45
3.8扩展阅读 46
第4章 基于蒙特卡罗方法的博弈游戏 47
4.1蒙特卡罗方法 47
4.1.1利用蒙特卡罗方法估计π值 47
4.2蒙特卡罗预测 50
4.2.1首次访问蒙特卡罗 51
4.2.2每次访问蒙特卡罗 52
4.2.3利用蒙特卡罗方法玩二十一点游戏 52
4.3蒙特卡罗控制 58
4.3.1蒙特卡罗探索开始 58
4.3.2在线策略的蒙特卡罗控制 59
4.3.3离线策略的蒙特卡罗控制 61
4.4小结 62
4.5问题 62
4.6扩展阅读 63
第5章 时间差分学习 64
5.1时间差分学习 64
5.2时间差分预测 64
5.3时间差分控制 66
5.3.1 Q学习 66
5.3.2 SARSA 72
5.4 Q学习和SARSA之间的区别 77
5.5小结 77
5.6问题 78
5.7扩展阅读 78
第6章MAB问题 79
6.1 MAB问题 79
6.1.1ε贪婪策略 80
6.1.2 Softmax探索算法 82
6.1.3 UCB算法 83
6.1.4 Thompson采样算法 85
6.2 MAB的应用 86
6.3利用MAB识别正确的广告标识 87
6.4上下文赌博机 89
6.5小结 89
6.6 问题 89
6.7扩展阅读 89
第7章 深度学习基础 90
7.1人工神经元 90
7.2 ANN 91
7.2.1输入层 92
7.2.2隐层 92
7.2.3输出层 92
7.2.4激活函数 92
7.3深入分析ANN 93
7.3.1梯度下降 95
7.4 TensorFlow中的神经网络 99
7.5 RNN 101
7.5.1基于时间的反向传播 103
7.6 LSTM RNN 104
7.6.1利用LSTM RNN生成歌词 105
7.7 CNN 108
7.7.1卷积层 109
7.7.2池化层 111
7.7.3全连接层 112
7.7.4 CNN架构 112
7.8利用CNN对时尚产品进行分类 113
7.9小结 117
7.10问题 117
7.11扩展阅读 118
第8章 基于DQN的Atari游戏 119
8.1什么是DQN 119
8.2 DQN的架构 120
8.2.1卷积网络 120
8.2.2经验回放 121
8.2.3目标网络 121
8.2.4奖励裁剪 122
8.2.5算法理解 122
8.3构建一个智能体来玩Atari游戏 122
8.4双DQN 129
8.5优先经验回放 130
8.6对抗网络体系结构 130
8.7小结 131
8.8问题 132
8.9扩展阅读 132
第9章 基于DRQN玩Doom游戏 133
9.1 DRQN 133
9.1.1 DRQN架构 134
9.2训练一个玩Doom游戏的智能体 135
9.2.1基本的Doom游戏 135
9.2.2基于DRQN的Doom游戏 136
9.3 DARQN 145
9.3.1 DARQN架构 145
9.4小结 145
9.5问题 146
9.6扩展阅读 146
第10章A3C网络 147
10.1 A3C 147
10.1.1异步优势行为者 147
10.1.2 A3C架构 148
10.1.3 A3C的工作原理 149
10.2基于A3C爬山 149
10.2.1 TensorBoard中的可视化 155
10.3小结 158
10.4问题 158
10.5扩展阅读 158
第11章 策略梯度和优化 159
11.1策略梯度 159
11.1.1基于策略梯度的月球着陆器 160
11.2 DDPG 164
11.2.1倒立摆 165
11.3 TRPO 170
11.4 PPO 173
11.5小结 175
11.6问题 175
11.7扩展阅读 175
第12章Capstone项目——基于DQN的赛车游戏 176
12.1环境封装函数 176
12.2对抗网络 179
12.3回放记忆 180
12.4 训练网络 181
12.5赛车游戏 186
12.6小结 189
12.7问题 189
12.8扩展阅读 189
第13章 最新进展和未来发展 190
13.1 I2A 190
13.2基于人类偏好的学习 193
13.3 DQfd 194
13.4 HER 195
13.5 HRL 196
13.5.1 MAXQ值函数分解 196
13.6逆向强化学习 198
13.7小结 199
13.8问题 199
13.9扩展阅读 199
附录 知识点 200