张倩报道

B站教学,全中文课程:港中文周博磊强化学习课程完结

历时两个多月,本周一,香港中文大学信息工程系助理教授周博磊的中文强化学习课程终于完结了。

作为全国知名的学习网站,我们经常可以在 B 站上看到国内外名师的讲课视频。但这些视频一般都是「搬运工」们从油管等渠道搬上来的。


那有没有哪位大佬亲自下场当 up 主呢?香港中文大学的周博磊老师就是其中一位。


周博磊老师博士毕业于麻省理工学院,现任香港中文大学信息工程系助理教授,研究方向主要为机器感知和决策,重点是通过学习可解释、结构化的表征,使机器能够在复杂的环境中感知、推理和行动。


今年 3 月份,受疫情影响,宅在家上课的周老师做出了一个决定:把自己每周的强化学习纲要》课程用中文讲一遍,并上传到 B 站。这一消息吸引了上万人围观。这可能也是全网第一个中文强化学习课程。


在过去的两个多月里,周老师基本保持着每周一更的频率,为大家录制了 10 节课程,共 16 个视频。主题包括:

  1. 概括与基础

  2. 马尔科夫决策过程

  3. 无模型的价值函数估计和控制

  4. 价值函数的近似

  5. 策略优化基础

  6. 策略优化进阶

  7. 基于环境模型的 RL 方法

  8. 模仿学习

  9. RL 分布式系统

  10. 完结篇

该课程使用的编程语言是 Python,深度学习框架则是 TensorFlow 和 PyTorch(PyTorch 为主)。


在开课之初,周老师曾提醒大家,该课程主要面向大三、大四或研一的学生。参加课程的学生需要具备相关背景知识,包括线性代数、概率论、机器学习(数据挖掘、模式识别、深度学习)等。此外,由于该课程有不少实践内容,所以参加课程的同学最好有一些编程经验,会用 Python、PyTorch。


课是有一定难度的,从播放量的变化趋势也可略知一二。

但即便如此,还是有同学坚持到了最后,并表示受益匪浅:

还有同学表示,上完课感觉自己变聪明了:


除了课程视频之外,周老师还在 GitHub 上更新了课程的全部代码,而且每节课后都留有作业。


  • 课程地址:https://space.bilibili.com/511221970

  • GitHub 链接:https://github.com/zhoubolei/introRL


下面让我们来看一下每节课的具体内容。


9 小时 10 堂课,周老师带你走近强化学习


第一节课分上下两节,总共 44 分钟,主要介绍了课程纲要、强化学习基本概念、序列决策入门、强化学习编程实践等内容。

在第二节课上,周老师用 1 个小时的时间介绍了马尔科夫决策过程(MDP),包括 1)马尔科夫链(马尔科夫决策过程的简化版本)、马尔科夫奖励过程;2)马尔科夫决策过程的策略估计,即当给定一个决策过程之后,如何计算它的价值函数;3)马尔科夫决策过程的控制,包括策略迭代和价值迭代两种算法。

然而,在现实生活中,很多情况下无法获取准确的 MDP 模型,因此只能借助无模型的方法解决问题,这也是周老师在第三课中讲解的主要内容,包括无模型的价值函数估计和控制。

第四课的主题是价值函数的近似,包括价值函数近似的基本原理、利用价值函数近似进行预测和控制、DQN 在雅达利游戏中的应用等。

第五课是关于策略优化的基础知识,包括基于策略的强化学习、蒙特卡罗策略梯度算法、如何减小策略梯度中的方差、Actor-Critic 算法等。

前五堂课的内容都非常丰富,全部消化已非常不易,但其实这还没到最难的部分。最难的一课是第六课。


第六课依然是讲策略优化,不过难度上了一个台阶。在这堂课中,周老师主要介绍了策略梯度算法的不同变种以及近五年来最新的策略优化过程。其中,后者可以分为两条主线,涵盖强化学习中最有名的六种算法:

由于课程只有 1 个半小时的时间,因此每个部分不可能讲得非常详细,学到这课的同学还需要自己去啃其中涉及的一些论文。


第七课的内容是基于模型的强化学习算法,包括概要、基于模型的价值函数优化、基于模型的策略函数优化、基于模型的算法在机器人中的应用等内容。


第八课的内容是模仿学习,包括 1)概要;2)模仿学习的两种常见算法——行为克隆和 DAGGER;3)逆强化学习和基于生成对抗训练的模仿学习;4)如何改进模型学习的模型;5)如何结合模型学习与强化学习以及 6)模仿学习在计算机视觉等任务中的应用。

第九课是强化学习系统的分布式设计,具体内容包括分布式机器学习的特点、分布式系统到强化学习系统的演变以及 AlphaGo、OpenAI Five、AlphaStar 等知名强化学习 AI 背后的系统设计。

最后一节课是复习课,把前面九节课的内容进行了梳理。


除此之外,周老师还推荐了一些强化学习方面的阅读材料,包括 OpenAI 的深度强化学习教程 Spinning-Up 和 John Schulman 的《Nuts and Bolts of Deep RL experimentation》课程。前者总结了现有的主流强化学习算法,既有代码也有讲解;后者是 John Schulman 的强化学习研究历程与经验。这些可以和本课程的推荐教材——Sutton 和 Barton 合作撰写的《强化学习》一起阅读。

至此,《强化学习纲要》课程告一段落。不过,周老师表示,他可能会在暑假录一些「番外」,聊一聊自己感兴趣的生成建模、无监督表征学习等内容。此外,关于机器感知与决策的内容也在筹划,有望在暑假与大家见面。

当然,由于课程比较难,大家难免有疑问。如果你在本课程学习期间遇到了问题,可以到 B 站视频的评论区留言,周老师会尽量作答,也会有热心的同学帮忙回答。

入门周博磊课程强化学习
3
相关数据
深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

机器学习技术

机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。

强化学习技术

强化学习是一种试错方法,其目标是让软件智能体在特定环境中能够采取回报最大化的行为。强化学习在马尔可夫决策过程环境中主要使用的技术是动态规划(Dynamic Programming)。流行的强化学习方法包括自适应动态规划(ADP)、时间差分(TD)学习、状态-动作-回报-状态-动作(SARSA)算法、Q 学习、深度强化学习(DQN);其应用包括下棋类游戏、机器人控制和工作调度等。

推荐文章
暂无评论
暂无评论~