E-BOOK 深度强化学习:基础、研究与应用 深度强化学习:基础、研究与应用
PDF

《深度强化学习:基础、研究与应用》[61M]百度网盘|pdf下载|亲测有效

📥 PDF 电子书 · 百度网盘 · 约 82M 📖 电子工业出版社 🌐 zh-CN 📅 Published 2,021
26
Downloads
4.8
Rating
65.0MB
File Size
PDF
  • 深度强化学习入门困难:系统梳理深度学习和强化学习基础知识,帮助读者从零建立完整的知识框架。
  • 理论与实践脱节:通过AlphaZero、机器人学习跑步等丰富应用案例,将算法理论与工程实践紧密结合。
  • 研究选题缺乏方向:精选模仿学习、分层强化学习、多智能体等前沿研究题目,为准备开展研究的读者指明方向。
  • 算法实现细节不清:深入讲解基础深度强化学习算法的实现细节,让读者不仅懂原理还能动手实现。
  • 缺乏研究实践技巧:作者根据自身经验总结深度强化学习研究实践技巧,帮助读者少走弯路。

📖 Book Introduction

产品特色

编辑推荐

一、本书内容之广,令人惊讶,对深度强化学习进行了庖丁解牛式的解读,要想了解、学习、上手深度强化学习,这本书将是你的不二选择。

二、本书作者之众,令人惊叹,本书作者团队是国内外开源社区的一群年轻青年学者和工程师,从科研角度到工程实践,解读深度强化学习知识,契合当下读者的诉求。

三、本书案例之多,令人惊喜,模仿学习、分层强化学习、多智能体强化学习、并行计算、图像增强、阿尔法下棋、机器人学习应有尽有,更难能可贵的是,本书最后作者根据自己经验总结出深度强化学习的研究实践技巧,应该颇具价值,供读者学习。


内容简介

深度强化学习结合深度学习与强化学习算法各自的优势解决复杂的决策任务。得益于 DeepMind AlphaGo 和 OpenAI Five 成功的案例,深度强化学习受到大量的关注,相关技术广泛应用于不同的领域。本书分为三大部分,覆盖深度强化学习的全部内容。第一部分介绍深度学习和强化学习的入门知识、一些非常基础的深度强化学习算法及其实现细节,包括第 1~6 章。第二部分是一些精选的深度强化学习研究题目,这些内容对准备开展深度强化学习研究的读者非常有用,包括第 7~12 章。第三部分提供了丰富的应用案例,包括 AlphaZero、让机器人学习跑步等,包括第 13~17 章。本书是为计算机科学专业背景、希望从零开始学习深度强化学习并开展研究课题和实践项目的学生准备的。本书也适合没有很强的机器学习背景、但是希望快速学习深度强化学习并将其应用到具体产品中的软件工程师阅读。

作者简介

董 豪

北京大学计算机系前沿计算研究中心助理教授、深圳鹏城实验室双聘成员。于 2019 年秋获得英国帝国理工学院博士学位。研究方向主要涉及计算机视觉和生成模型,目的是降低学习智能系统所需要的数据。致力于推广人工智能技术,是深度学习开源框架 TensorLayer 的创始人,此框架获得 ACM MM 2017 年度最佳开源软件奖。在英国帝国理工学院和英国中央兰开夏大学获得一等研究生和一等本科学位。丁子涵 英国帝国理工学院硕士。获普林斯顿大学博士生全额奖学金,曾在加拿大 Borealis AI、腾讯 Robotics X 实验室有过工作经历。本科就读于中国科学技术大学,获物理和计算机双学位。研究方向主要涉及强化学习、机器人控制、计算机视觉等。在 ICRA、NeurIPS、AAAI、IJCAI、Physical Review 等顶级期刊与会议发表多篇论文,是 TensorLayer-RLzoo、TensorLet 和 Arena 开源项目的贡献者。仉尚航 加州大学伯克利分校,BAIR 实验室(Berkeley AI Research Lab)博士后研究员。于 2018年获得卡内基・梅隆大学博士学位。研究方向主要涉及深度学习、计算机视觉及强化学习。在NeurIPS、CVPR、ICCV、TNNLS、AAAI、IJCAI 等人工智能顶级期刊和会议发表多篇论文。目前主要从事 Human-inspired sample-efficient learning 理论与算法研究,包括 low-shot learning、domain adaptation、self learning 等。获得 AAAI 2021 Best Paper Award, 美国 2018 Rising Stars in EECS,及Adobe Collaboration Fund、Qualcomm Innovation Fellowship Finalist Award 等奖励。袁 航 英国牛津大学计算机科学博士在读、李嘉诚奖学金获得者,主攻人工智能安全和深度学习在健康医疗中的运用。曾在欧美各大高校和研究机构研习,如帝国理工学院、马克斯普朗克研究所、瑞士联邦理工和卡内基・梅隆大学。张鸿铭 中国科学院自动化研究所算法工程师。于 2018 年获得北京大学硕士研究生学位。本科就读于北京师范大学,获理学学士学位。研究方向涉及统计机器学习、强化学习和启发式搜索。张敬卿 英国帝国理工学院计算机系博士生,师从帝国理工学院数据科学院院长郭毅可院士。主要研究方向为深度学习、机器学习、文本挖掘、数据挖掘及其应用。曾获得中国国家奖学金。2016年于清华大学计算机科学与技术系获得学士学位,2017 年于帝国理工学院计算机系获得一等研究性硕士学位。黄彦华 就职于小红书,负责大规模机器学习及强化学习在推荐系统中的应用。2016 年在华东师范大学数学系获得理学学士学位。曾贡献过开源项目 PyTorch、TensorFlow 和 Ray。余天洋 启元世界算法工程师,负责强化学习在博弈场景中的应用。硕士毕业于南昌大学,是TensorLayer-RLzoo 开源项目的贡献者。张华清 谷歌公司算法和机器学习工程师,侧重于多智能体强化学习和多层次结构博弈论方向研究,于华中科技大学获得学士学位,后于 2017 年获得休斯敦大学博士学位。黄锐桐 Borealis AI (加拿大皇家银行研究院)团队主管。于 2017 年获得阿尔伯塔大学统计机器学习博士学位。本科就读于中国科学技术大学数学系,后于滑铁卢大学获得计算机硕士学位。研究方向主要涉及在线学习、优化、对抗学习和强化学习。廖培元 目前本科就读于卡内基・梅隆大学计算机科学学院。研究方向主要涉及表示学习和多模态机器学习。曾贡献过开源项目 mmdetection 和 PyTorch Cluster,在 Kaggle 数据科学社区曾获Competitions Grandmaster 称号,**排名全球前 25 位。

精彩书评

郭毅可(香港浸会大学副校长、教授,帝国理工学院教授,数据科学研究所所长,英国皇家工程院院士,欧洲科学院院士)

我对这本书覆盖内容的范围之广印象深刻。从深度强化学习的基础理论知识,到包含代码细节的技术实现描述,作者们花了大量的精力致力于提供综合且广泛的内容。这样的书籍是初学者和科研人员非常好的学习材料。拥抱开源社区是深度学习得到快速发展不可或缺的一个原因。我很欣慰这本书提供了大量的开源代码。我也相信这本书将会对那些希望深入这个领域的研究人员非常有用,也对那些希望通过开源例子快速上手的工程师提供良好的基础。

陈宝权(北京大学教授,前沿计算研究中心执行主任,IEEE Fellow)

本书提供的深度强化学习内容非常可靠,缩小了基础理论和实践之间的差距,以提供详细的描述、算法实现、大量技巧和速查表为特色。本书作者均是研究强化学习的知名大学研究者和将技术用在各类应用中的开源社区实践者。这本书为不同背景和阅读目的的读者提供了非常有用的资源。

金驰(普林斯顿大学助理教授)

这是一本在深度强化学习这个重要领域出版得非常及时的书。本书以一种简明清晰的风格提供了详尽的工具,包括深度强化学习的基础和重要算法、具体实现细节和前瞻的研究方向。对任何愿意学习深度强化学习、将深度强化学习算法运用到某些应用上或开始进行深度强化学习基础研究的人来说,这本书都是理想的学习材料。

李克之(伦敦大学学院助理教授)

这本书是为强化学习、特别是深度强化学习的忠实粉丝提供的。从 2013 年开始,深度强化学习已经渐渐地以多种方式改变了我们的生活和世界,比如会下棋的 AlphaGo 技术展示了超过专业选手的理解能力的“围棋之美”。类似的情况也会发生在技术、医疗和金融领域。深度强化学习探索了一个人类最基本的问题:人类是如何通过与环境交互进行学习的?这个机制可能成为逃出“大数据陷阱”的关键因素,作为一条强人工智能的必经之路,通向人类智慧尚未企及的地方。本书由一群对机器学习充满热情的年轻研究人员编著,它将向你展示深度强化学习的世界,通过实例和经验介绍加深你对深度强化学习的理解。向所有想把未来智慧之匙揣进口袋的学习者推荐此书。


目录

基础部分 1 第 1 章 深度学习入门 2
1.1 简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2 感知器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3 多层感知器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.4 激活函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.5 损失函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.6 优化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.6.1 梯度下降和误差的反向传播 . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.6.2 随机梯度下降和自适应学习率 . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.6.3 超参数筛选 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.7 正则化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.7.1 过拟合 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.7.2 权重衰减 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.7.3 Dropout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.7.4 批标准化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.7.5 其他缓和过拟合的方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
1.8 卷积神经网络 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
1.9 循环神经网络 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
1.10 深度学习的实现样例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
1.10.1 张量和梯度 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
1.10.2 定义模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
1.10.3 自定义层 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
1.10.4 多层感知器:MNIST 数据集上的图像分类 . . . . . . . . . . . . . . . . . . . 33
1.10.5 卷积神经网络:CIFAR-10 数据集上的图像分类 . . . . . . . . . . . . . . . . 35
1.10.6 序列到序列模型:聊天机器人 . . . . . . . . . . . . . . . . . . . . . . . . . . 36
第 2 章 强化学习入门 43
2.1 简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
2.2 在线预测和在线学习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
2.2.1 简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
2.2.2 随机多臂赌博机 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
2.2.3 对抗多臂赌博机 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
2.2.4 上下文赌博机 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
2.3 马尔可夫过程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
2.3.1 简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
2.3.2 马尔可夫奖励过程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
2.3.3 马尔可夫决策过程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
2.3.4 贝尔曼方程和最优性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
2.3.5 其他重要概念 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
2.4 动态规划 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
2.4.1 策略迭代 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
2.4.2 价值迭代 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
2.4.3 其他 DPs:异步 DP、近似 DP 和实时 DP . . . . . . . . . . . . . . . . . . . 68
2.5 蒙特卡罗 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
2.5.1 蒙特卡罗预测 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
2.5.2 蒙特卡罗控制 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
2.5.3 增量蒙特卡罗 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
2.6 时间差分学习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
2.6.1 时间差分预测 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
2.6.2 Sarsa:在线策略 TD 控制 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
2.6.3 Q-Learning:离线策略 TD 控制 . . . . . . . . . . . . . . . . . . . . . . . . . 80
2.7 策略优化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
2.7.1 简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
2.7.2 基于价值的优化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
2.7.3 基于策略的优化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
2.7.4 结合基于策略和基于价值的方法 . . . . . . . . . . . . . . . . . . . . . . . . 105
第 3 章 强化学习算法分类 110
3.1 基于模型的方法和无模型的方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
3.2 基于价值的方法和基于策略的方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
3.3 蒙特卡罗方法和时间差分方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
3.4 在线策略方法和离线策略方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
第 4 章 深度 Q 网络 119
4.1 Sarsa 和 Q-Learning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
4.2 为什么使用深度学习: 价值函数逼近 . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
4.3 DQN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
4.4 Double DQN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
4.5 Dueling DQN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
4.6 优先经验回放 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
4.7 其他改进内容:多步学习、噪声网络和值分布强化学习 . . . . . . . . . . . . . . . 128
4.8 DQN 代码实例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
第 5 章 策略梯度 146
5.1 简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
5.2 REINFORCE:初版策略梯度 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
5.3 Actor-Critic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
5.4 生成对抗网络和 Actor-Critic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
5.5 同步优势 Actor-Critic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
5.6 异步优势 Actor-Critic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
5.7 信赖域策略优化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
5.8 近端策略优化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
5.9 使用 Kronecker 因子化信赖域的 Actor-Critic . . . . . . . . . . . . . . . . . . . . . . 159
5.10 策略梯度代码例子 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
5.10.1 相关的 Gym 环境 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
5.10.2 REINFORCE: Atari Pong 和 CartPole-V0 . . . . . . . . . . . . . . . . . . . . . 165
5.10.3 AC: CartPole-V0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
5.10.4 A3C: BipedalWalker-v2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
5.10.5 TRPO: Pendulum-V0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
5.10.6 PPO: Pendulum-V0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
第 6 章 深度 Q 网络和 Actor-Critic 的结合 200
6.1 简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
6.2 深度确定性策略梯度算法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
6.3 孪生延迟 DDPG 算法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
6.4 柔性 Actor-Critic 算法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
6.4.1 柔性策略迭代 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
6.4.2 SAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
6.5 代码例子 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
6.5.1 相关的 Gym 环境 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
6.5.2 DDPG: Pendulum-V0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
6.5.3 TD3: Pendulum-V0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
6.5.4 SAC: Pendulum-v0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
研究部分 236
第 7 章 深度强化学习的挑战 237
7.1 样本效率 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
7.2 学习稳定性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240
7.3 灾难性遗忘 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242
7.4 探索 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243
7.5 元学习和表征学习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245
7.6 多智能体强化学习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246
7.7 模拟到现实 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
7.8 大规模强化学习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
7.9 其他挑战 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252
第 8 章 模仿学习 258
8.1 简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
8.2 行为克隆方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260
8.2.1 行为克隆方法的挑战 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260
8.2.2 数据集聚合 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261
8.2.3 Variational Dropout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262
8.2.4 行为克隆的其他方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262
8.3 逆向强化学习方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
8.3.1 简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
8.3.2 逆向强化学习方法的挑战 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264
8.3.3 生成对抗模仿学习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265
8.3.4 生成对抗网络指导性代价学习 . . . . . . . . . . . . . . . . . . . . . . . . . . 266
8.3.5 对抗性逆向强化学习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268
8.4 从观察量进行模仿学习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269
8.4.1 基于模型方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269
8.4.2 无模型方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272
8.4.3 从观察量模仿学习的挑战 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277
8.5 概率性方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277
8.6 模仿学习作为强化学习的初始化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279
8.7 强化学习中利用示范数据的其他方法 . . . . . . . . . . . . . . . . . . . . . . . . . . 280
8.7.1 将示范数据导入经验回放缓存 . . . . . . . . . . . . . . . . . . . . . . . . . . 280
8.7.2 标准化 Actor-Critic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
8.7.3 用示范数据进行奖励塑形 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282
8.8 总结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282
第 9 章 集成学习与规划 289
9.1 简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289
9.2 基于模型的方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290
9.3 集成模式架构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292
9.4 基于模拟的搜索 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293
9.4.1 朴素蒙特卡罗搜索 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294
9.4.2 蒙特卡罗树搜索 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294
9.4.3 时间差分搜索 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295
第 10 章 分层强化学习 298
10.1 简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298
10.2 选项框架 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299
10.2.1 战略专注作家 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300
10.2.2 选项-批判者结构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303
10.3 封建制强化学习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
10.3.1 封建制网络 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
10.3.2 离线策略修正 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307
10.4 其他工作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309
第 11 章 多智能体强化学习 315
11.1 简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315
11.2 优化和均衡 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316
11.2.1 纳什均衡 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317
11.2.2 关联性均衡 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318
11.2.3 斯塔克尔伯格博弈 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320
11.3 竞争与合作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321
11.3.1 合作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321
11.3.2 零和博弈 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321
11.3.3 同时决策下的竞争 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322
11.3.4 顺序决策下的竞争 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323
11.4 博弈分析架构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324
第 12 章 并行计算 326
12.1 简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326
12.2 同步和异步 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327
12.3 并行计算网络 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329
12.4 分布式强化学习算法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330
12.4.1 异步优势 Actor-Critic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330
12.4.2 GPU/CPU 混合式异步优势 Actor-Critic . . . . . . . . . . . . . . . . . . . . . 332
12.4.3 分布式近端策略优化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333
12.4.4 重要性加权的行动者-学习者结构和可扩展高效深度强化学习 . . . . . . . . 336
12.4.5 Ape-X、回溯-行动者和分布式深度循环回放 Q 网络 . . . . . . . . . . . . . 338
12.4.6 Gorila . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340
12.5 分布式计算架构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340
应用部分 343
第 13 章 Learning to Run 344
13.1 NeurIPS 2017 挑战:Learning to Run . . . . . . . . . . . . . . . . . . . . . . . . . . . 344
13.1.1 环境介绍 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344
13.1.2 安装 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346
13.2 训练智能体 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347
13.2.1 并行训练 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348
13.2.2 小技巧 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351
13.2.3 学习结果 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352
第 14 章 鲁棒的图像增强 354
14.1 图像增强 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354
14.2 用于鲁棒处理的强化学习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356
第 15 章 AlphaZero 366
15.1 简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366
15.2 组合博弈 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367
15.3 蒙特卡罗树搜索 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370
15.4 AlphaZero:棋类游戏的通用算法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 376
第 16 章 模拟环境中机器人学习 388
16.1 机器人模拟 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389
16.2 强化学习用于机器人任务 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405
16.2.1 并行训练 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 407
16.2.2 学习效果 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 407
16.2.3 域随机化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408
16.2.4 机器人学习基准 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409
16.2.5 其他模拟器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409
第 17 章 Arena:多智能体强化学习平台 412
17.1 安装 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413
17.2 用 Arena 开发游戏 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413
17.2.1 简单的单玩家游戏 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414
17.2.2 简单的使用奖励机制的双玩家游戏 . . . . . . . . . . . . . . . . . . . . . . . 416
17.2.3 高级设置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 420
17.2.4 导出二进制游戏 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 424
17.3 MARL 训练 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 427
17.3.1 设置 X-Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 427
17.3.2 进行训练 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 429
17.3.3 可视化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 431
17.3.4 致谢 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 431
第 18 章 深度强化学习应用实践技巧 433
18.1 概览:如何应用深度强化学习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433
18.2 实现阶段 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 434
18.3 训练和调试阶段 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 440
总结部分 445
附录 A 算法总结表 446
附录 B 算法速查表 451
B.1 深度学习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451
B.1.1 随机梯度下降 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451
B.1.2 Adam 优化器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 452
B.2 强化学习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 452
B.2.1 赌博机 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 452
B.2.2 动态规划 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453
B.2.3 蒙特卡罗 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454
B.3 深度强化学习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 458
B.4 高等深度强化学习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 467
B.4.1 模仿学习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 467
B.4.2 基于模型的强化学习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 468
B.4.3 分层强化学习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 470
B.4.4 多智能体强化学习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471
B.4.5 并行计算 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 472
附录 C 中英文对照表 476

前言/序言

为什么写作本书

人工智能已经成为当今信息技术发展的主要方向,国务院印发的《新一代人工智能发展规划》中指出:2020 年我国人工智能核心产业规模超过 1500 亿元,带动相关产业规模超过 1 万亿元;2030 年人工智能核心产业规模超过 1 万亿元,带动相关产业规模超过 10 万亿元。深度强化学习将结合深度学习与强化学习算法各自的优势来解决复杂的决策任务。近年来,归功于 DeepMind AlphaGo 和 OpenAI Five 这类成功的案例,深度强化学习受到大

量的关注,相关技术广泛用于金融、医疗、军事、能源等领域。为此,学术界和产业界急需大量人才,而深度强化学习作为人工智能中的智能决策部分,是理论与工程相结合的重要研究方向。本书将以通俗易懂的方式讲解相关技术,并辅以实践教学。

本书主要内容

本书分为三大部分,以尽可能覆盖深度强化学习所需要的全部内容。第一部分介绍深度学习和强化学习的入门知识、一些非常基础的深度强化学习算法及其实现细节,请见第 1~6 章。

第二部分是一些精选的深度强化学习研究题目,请见第 7~12 章,这些内容对准备开展深度强化学习研究的读者非常有用。为了帮助读者更深入地学习深度强化学习,并把相关技术用于实践,本书第三部分提供了丰富的例子,包括 AlphaZero、让机器人学习跑步等,请见第 13~17 章。

如何阅读本书

本书是为计算机科学专业背景、希望从零学习深度强化学习并开展研究课题和实践项目的学生准备的。本书也适用于没有很强机器学习背景、但是希望快速学习深度强化学习并把它应用到具体产品中的软件工程师。

鉴于不同的读者情况会有所差异(比如,有的读者可能是第一次接触深度学习,而有的读者可能已经对深度学习有一定的了解;有的读者已经有一些强化学习基础;有的读者只是想了解强化学习的概念,而有的读者是准备长期从事深度强化学习研究的),这里根据不同的读者情况给予不同的阅读建议。

1. 要了解深度强化学习。

第 1~6 章覆盖了深度强化学习的基础知识,其中第 2 章是最关键、最基础的内容。如果您已经有深度学习基础,可以直接跳过第 1 章。第 3 章、附录 A 和附录 B 总结了不同的算法。

2. 要从事深度强化学习研究。

除了深度学习的基础内容,第 7 章介绍了当今强化学习技术发展遇到的各种挑战。您可以通过阅读第 8~12 章来进一步了解不同的研究方向。

3. 要在产品中使用深度强化学习。

如果您是工程师,希望快速地在产品中使用深度强化学习技术,第 13~17 章是您关注的重点。您可以根据业务场景中的动作空间和观测种类来选择最相似的应用例子,然后运用到您的业务中。

董豪

2021 年 4 月



📑 Table of Contents

  1. 深度学习基础回顾
  2. 强化学习基础理论
  3. 深度强化学习核心算法
  4. 基础算法实现细节与调试
  5. 值函数近似与策略梯度方法
  6. 高级策略优化算法
  7. 模仿学习与逆强化学习
  8. 分层强化学习
  9. 多智能体强化学习
  10. 并行计算与分布式训练
  11. 图像增强与表示学习
  12. AlphaZero原理与实现
  13. 机器人学习跑步案例
  14. 深度强化学习研究实践技巧