第1章 强化学习简介\t1
1.1 强化学习的历史\t1
1.1.1 人工智能的历史\t1
1.1.2 强化学习和人工智能的关系\t4
1.2 强化学习基本概念\t8
1.2.1 智能体相关概念\t8
1.2.2 马尔可夫决策过程\t9
1.2.3 动作价值函数和状态-动作价值函数\t11
1.3 强化学习算法的分类\t12
1.3.1 基于模型的(Model-Based)和无模型的(Model-Free)\t13
1.3.2 基于策略的(Policy-Based)和基于价值的(Value-Based)\t13
1.3.3 在线(On-policy)算法和离线(Off-policy)算法\t13
1.4 深度强化学习基本概念\t14
1.5 强化学习的优缺点\t15
1.6 蒙特卡洛梯度估计\t15
1.7 总结\t19
第2章 深入了解强化学习\t20
2.1 强化学习基本要素\t20
2.1.1 马尔可夫决策过程和回溯图\t20
2.1.2 贪心策略和最优策略\t22
2.1.3 最优策略的迭代算法\t24
2.2 强化学习的探索和利用\t26
2.3 策略迭代和价值迭代\t32
2.3.1 策略迭代\t32
2.3.2 价值迭代\t33
2.4 贝尔曼方程及其应用\t35
2.5 总结\t37
第3章 强化学习环境\t38
3.1 简单的强化学习环境\t39
3.1.1 网格世界(Grid World)\t39
3.1.2 多臂赌博机(Multi-armed Bandit)\t40
3.1.3 井字棋(Tic-Tac-Toe)\t40
3.2 OpenAI Gym环境\t47
3.2.1 Gym环境的安装和基本接口\t47
3.2.2 Gym的经典控制环境\t50
3.2.3 Gym的Atari强化学习环境\t53
3.2.4 Gym的MuJoCo环境\t55
3.2.5 自定义Gym强化学习环境\t57
3.3 DeepMind Lab强化学习环境\t60
3.4 其他强化学习环境\t63
3.4.1 PySC2 强化学习环境\t63
3.4.2 OpenSpiel强化学习环境\t66
3.5 深度强化学习框架简介\t68
3.5.1 Dopamine框架\t68
3.5.1 ReAgent框架\t70
3.6 总结\t71
第4章 深度Q函数强化学习算法\t72
4.1 经典深度Q网络算法(DQN)\t72
4.1.1 DQN算法理论背景\t73
4.1.2 DQN模型结构\t75
4.1.3 DQN模型的输入\t78
4.1.4 DQN模型的训练\t80
4.1.5 结合DQN算法的采样和模型的训练\t82
4.2 双网络Q学习算法(Double Q-Learning)\t84
4.2.1 算法原理\t84
4.2.2 算法实现\t86
4.2.3 算法效果\t88
4.3 优先经验回放(Prioritized Experience Replay)\t89
4.3.1 算法原理\t89
4.3.2 算法实现\t92
4.3.3 算法效果\t95
4.4 竞争DQN算法(Duel DQN)\t96
4.4.1 算法原理\t98
4.4.2 算法实现\t99
4.4.3 算法效果\t102
4.5 分布形式的DQN算法(Distributional DQN)\t103
4.5.1 分类DQN模型\t103
4.5.2 分类DQN模型算法实现\t106
4.5.3 分类DQN模型算法效果\t110
4.5.4 分位数回归DQN模型\t111
4.5.5 分位数回归DQN模型算法实现\t112
4.5.6 分位数回归DQN模型算法效果\t115
4.5.7 分类DQN模型小结\t116
4.6 彩虹算法(Rainbow)\t117
4.6.1 彩虹算法对DQN的优化\t117
4.6.2 彩虹算法的部分实现\t120
4.6.3 彩虹算法的模型效果\t125
4.7 总结\t128
第5章 策略梯度强化学习算法\t129
5.1 经典策略梯度算法(VPG)\t130
5.1.1 算法原理\t130
5.1.2 基于离散动作空间算法的模型实现\t132
5.1.3 基于离散动作空间算法的运行结果\t137
5.1.4 基于连续动作空间算法的实现\t138
5.1.5 基于连续动作空间算法的运行结果\t143
5.1.6 小结\t144
5.2 优势演员-评论家算法(A2C和A3C)\t145
5.2.1 算法原理\t145
5.2.2 泛化优势估计(Generalized Advantage Estimation)\t147
5.2.3 熵正则化方法\t149
5.2.4 优势演员-评论家算法的实现(离散动作空间)\t149
5.2.5 优势演员-评论家算法运行效果(离散动作空间)\t158
5.2.6 算法实现(连续动作空间)\t158
5.2.7 运行效果(连续动作空间)\t160
5.2.8 异步优势演员-评论家算法的实现\t160
5.2.9 异步优势演员-评论家算法的效果\t164
5.3 置信区间策略优化算法\t165
5.3.1 算法原理\t166
5.3.2 近端策略优化算法的实现\t172
5.3.3 近端策略优化算法的效果(离散动作空间)\t174
5.4 克罗内克分解近似置信区间算法(ACKTR)\t175
5.4.1 算法原理\t175
5.4.2 算法实现\t179
5.4.3 算法效果\t183
5.5 软演员-评论家算法(SAC)\t184
5.5.1 算法的基本原理\t184
5.5.2 算法的实现(连续动作空间)\t186
5.5.3 算法的效果(连续动作空间)\t193
5.6 总结\t194
第6章 其他强化学习算法\t195
6.1 噪声网络(Noisy Networks)\t195
6.1.1 噪声网络的原理\t195
6.1.2 噪声网络的实现\t197
6.1.3 噪声网络的效果\t201
6.2 深度确定性策略梯度算法(DDPG)\t203
6.2.1 算法原理\t203
6.2.2 算法实现\t205
6.2.3 算法效果\t209
6.3 双延迟深度确定性策略梯度算法(TD3)\t210
6.3.1 算法原理\t210
6.3.2 算法实现\t211
6.3.3 算法效果\t213
6.4 蒙特卡洛树搜索(MCTS)\t214
6.4.1 算法原理\t214
6.4.2 算法的基本步骤\t215
6.4.3 算法使用的模型\t219
6.4.4 算法的博弈树表示\t221
6.4.5 算法的搜索执行过程\t222
6.5 总结\t225
第7章 深度强化学习在实践中的应用\t226
7.1 神经网络结构搜索(NAS)\t226
7.1.1 算法原理\t226
7.1.2 算法效果\t229
7.1.3 总结\t230
7.2 超分辨率模型 (SRGAN)\t230
7.2.1 算法原理\t231
7.2.2 总结\t232
7.3 序列生成模型(SeqGAN)\t233
7.3.1 算法原理\t233
7.3.2 总结\t235
7.4 基于深度强化学习的推荐系统\t235
7.4.1 推荐系统的强化学习环境构建\t236
7.4.2 推荐系统的强化学习算法\t237
7.4.3 总结\t238
7.5 基于深度强化学习的交易系统\t239
7.5.1 算法原理\t239
7.5.2 总结\t241
7.6 总结\t241
附录A 本书使用的数学符号\t242
参考文献\t244