上海交大ACM班俞勇团队推出强化学习入门宝典!附作者对话

gong2022 2022-10-29 21:43:14 0

摘要:  ??张伟楠:我本人长期做强化学习方面的研究,也在上海交通大学讲授强化学习课程。本书三位作者所在的上海交通大学APEX数据和知识管理实验室(简称APEX实验室)有一个30人的强化学习...



??张伟楠:我本人长期做强化学习方面的研究,也在上海交通大学讲授强化学习课程。本书三位作者所在的上海交通大学APEX数据和知识管理实验室(简称APEX实验室)有一个30人的强化学习研究组。强化学习的研究其实门槛比较高,一方面它对数理统计基础要求高,另一方面它的实验总是比较难做成功,很多时候需要付出很多努力才能复现论文实验结果或者做出新的实验突破。因此我也经常开玩笑说:要做好强化学习研究,你需要数学好,编程好,还要品格好。最后的“品格好”是指需要具备实事求是的态度和持之以恒的韧性,在强化学习实验调不出来时还能细心检查bug,在实验跑了一周还没起色时,愿意再坚持几天,在最终意识到自己方法确实不work时,能坦然面对,重新设计算法。

强化学习组的师生们相互帮助,促进研究效率提升,也为带刚刚进组的新同学“避坑”,就慢慢沉淀出了一份强化学习算法的代码。而真正想到把强化学习代码整理公布出来,是有一位外校的研究生跟我讨论时说,他们实验室只有2位同学做强化学习的研究课题,问我如何才能做好强化学习的研究和实验。我当时想了想,觉得他的情况可能确实比较难一点,因为没有足够的同学一起研究强化学习,很多强化学习的理论可能会理解不够深入,很多实验方面的“坑”没有被趟过,于是就比较难以入门,进入研究深水区。因此,如果能有一本材料,能把强化学习的理论讲透,并且把相关的实现代码就穿插在理论算法讲解中,那么学习起来可能就会更加容易体会强化学习的原理。更重要的是,这些代码要能够直接跑通,实验结果可以复现,这样就能体会到强化学习算法是如何work的。

当时正好ACM班学长李沐的《动手学深度学习》刚刚出版,每一个章节对应的Jupyter Notebook很适合边学理论边跑代码,受到了业界广泛的好评,我也就决定尝试整理APEX实验室的强化学习代码和相关的讲解材料,写出这本《动手学强化学习》。

第一稿完成花了接近一年的时间,但是仍然比较粗糙。部分内容对于初学者还是比较困难。我将部分章节的Jupyter Notebook作为教辅内容以及代码小作业发放给我讲授的强化学习课程的学生们,并请他们反馈相关的改善建议,进一步迭代代码和文字材料。在迭代了2020和2021两年的强化学习课之后,我们认为现在的版本差不多可以出版了。当然本书可能还是会有不少可以改进的点,还请各位读者多多反馈修改意见,我们十分感激!

AI科技评论:你之前曾在RLChina夏令营和上海交大讲授强化学习课程,从你的经验看,不同类型的学生们会比较关注哪些内容?你们如何为初学者设计一个渐进式的学术和项目的学习路线,又如何根据反馈来完善这本教材的?

张伟楠:我在上海交通大学给致远学院ACM班和电院AI试点班的同学讲授强化学习,由于学生的专业和本课程内容很贴合,因此学生对强化学习的原理部分关注较多。在夏令营中获得学生的反馈更多来自如何在各种各样的领域用好强化学习技术,当然也有不少本专业的学生对强化学习本身的研究十分了解。对于来我们APEX实验室的强化学习初学者,我建议的学习路线是:

1. 先学习UCL David Silver的强化学习课程:https://www.davidsilver.uk/teaching/

这是强化学习的基础知识,不太包含深度强化学习的部分,但对后续深入理解深度强化学习十分重要。

2. 然后学习UC Berkeley的深度强化学习课程:http://rail.eecs.berkeley.edu/deeprlcourse/

3. 最后可以可以挑着看OpenAI 的夏令营内容:https://sites.google.com/view/deep-rl-bootcamp/lectures

当然,如果希望学习中文的课程,我推荐的是:

1. 我本人在上海交通大学的强化学习课程: https://www.boyuai.com/rl

2. 周博磊老师的强化学习课程:https://www.bilibili.com/video/BV1LE411G7Xj

AI科技评论:你们认为,初学者学习强化学习的难点在哪里?本书希望帮助学生解决学习强化学习的过程中遇到的哪些难点,这些思考是否与你自己之前的强化学习经历有关?

张伟楠:传统课堂讲授的内容比较深奥,与动手实践的差距会比较大。课后自己做一个强化学习代码实验,可能不知如何下手,并且实验过程中需要注意的细节较多。这也是《动手学强化学习》这本书希望弥补的gap。读者在看完一个知识点的一段文字和公式讲解后,马上就可以看到对应代码块——代码中的变量名和前面公式中的符号一致,函数名也和前面文字中提到的方法名一致;代码块可以直接在Jupyter Notebook上运行,跑出书里的结果——这样就加速读者通过代码学习对强化学习原理的更加深入的理解。

我自己学习强化学习的经历主要是2013年在UCL读博期间上了David Silver老师的强化学习课程,后续又在微软剑桥研究院师从Thore Graepel做强化学习的研究实习生(后来这些老师和实习生几乎都去了DeepMind)。实话说,当时学习强化学习我是觉得比机器学习要吃力的,主要就是上面讲到的那样,原理讲解和代码实践差距较大,学习了课程和论文后,以为自己理解原理了,但写代码时就总会碰到各种问题。

AI科技评论:在写这本书的过程中,你是否对学习强化学习的窍门、前景等有了新的认知?

张伟楠:通过APEX实验室和强化学习课堂的学生们的反馈来看,这种Jupyter Notebook的学习材料是可以有效帮助提升对强化学习原理和代码理解效率的形式。希望这本书能够帮助更多人入门强化学习。

AI科技评论:这本书中,你认为最精彩/最有特色的是哪一部分?

张伟楠:我比较注重强化学习基础篇的讲解,相信读者在充分掌握了基础篇后,后面的进阶篇和前沿篇就会学得更加容易。因此本书的基础篇其实是我最满意的部分。例如在马尔可夫决策过程(MDP)的章节中,我们在介绍了MDP的基础知识后,引入了占用度量(Occupancy Measure)概念的讲解,通过概念、原理和代码实验的讲解,让读者深入理解一个策略和一个MDP交互行程的数据分布是什么样子,以及体会为什么一个策略一旦改变了,那么占用度量就会跟着改变。这样就讲清楚了为什么强化学习比有监督学习难度更大的原因——智能体学习过程中,随着策略不算更新,它面临的数据分布(也即是占用度量)会随之改变。

AI科技评论:本书的封面是有什么具体的意思吗?

张伟楠:本书的封面描绘的是一个机器人站在悬崖边,准备决定之后该如何行走。这其实对应本书中用到的一个典型强化学习案例Cliff Walking(悬崖漫步),不同的强化学习算法会让机器人走出风险和收益不同的路线。

《动手学强化学习》封面图

AI科技评论:这本书采取了类似ACM班以在线 Jupyter Notebook 的形式为学生提供课程辅助材料和代码小作业的方式,在学习者规模扩大的同时你们采取了哪些措施来加强学习体验?

张伟楠:我鼓励学员们加入我们在伯禹学习平台的强化学习课程中( https://www.boyuai.com/rl),本课程是全免费的。上面除了有我在上海交通大学强化学习课的视频,还有在线可以完成的课后习题,以及学员们就本节知识点做出的思维导图和问答讨论。这样可以帮助学员们在教师资源相对少的情况下,仍然具备较高的学习效率。

AI科技评论:这本书的定位是什么,可以推荐其他可以与这本书互补的配套学习书籍吗?

张伟楠:本书可以作为强化学习课程的教材,也可以作为偏代码学习和练习的教辅材料。适合配套的原理讲解的书籍如下:

1. Richard S. Sutton and Andrew G. Barto. "Reinforcement Learning: An Introduction (Second Edition) ." MIT Press, 2018.

2. 俞凯[译].《强化学习(第2版)》.电子工业出版社,2019.

3. 王琦、杨毅远、江季.《Easy RL 强化学习教程》. 人民邮电出版社,2022.

AI科技评论:俞勇老师在本书的编写中给与了哪方面的指导?团队目前是否还有其他类似的教材和课程的推进项目?

张伟楠:俞勇教授在ACM班的培养方案中对动手实践能力的培养力度比较大,学生从大一到大三,每个学期都会有编程类的大作业。充分锻炼计算机人才独当一面的动手能力,这成就了ACM班学生在毕业后编写出了MXNet、XGBoost、TVM、PS、DGL、Hotstuff等具有重要影响力的项目。在作者团队构思和编写《动手学强化学习》这本书的过程中,俞勇教师关注最多的就是通过这种新型学习材料呈现形式,读者是否能真正更好地掌握强化学习的原理和提升动手实践能力。可以说,本书的具体形式就是俞勇教授塑造的。

此外在这里卖一个关子 :) 俞勇教授已经规划了一个大的动手学系列书目,希望提炼和践行一种新的更高效的计算机科学和人工智能专业知识的学习形式。欢迎大家多关注我们接下来的行动。


相关推荐

评论列表
  • 这篇文章还没有收到评论,赶紧来抢沙发吧~
关闭

用微信“扫一扫”