机器之心报道
机器之心编辑部
众所周知,B 站是一个学习网站。在看完罗翔老师的刑法课之后,是时候探索人工智能了。
新冠疫情还未退散,目前国内很多大学仍然没有返校开学的计划,不过留在家中的我们已经可以获得越来越多的线上学习内容。
此前有很多国内外学校已经把自家的 AI 课程搬到了线上。不过对于不少人来说,YouTube 和英文是个问题。有没有直接在 B 站上开课的教授呢?
最近,香港中文大学(CUHK)信息工程系助理教授周博磊就有了一个大胆的想法,他决定把自己每周的《强化学习》课程用中文在 B 站上进行直播。目前这门课程的第一课已经上线。机器之心经授权进行了整理。
周博磊老师博士毕业于麻省理工学院,现任香港中文大学信息工程系助理教授,研究方向主要为机器感知和决策,重点是通过学习可解释、结构化的表征,使机器能够在复杂的环境中感知、推理和行动。
除了直播和课程视频之外,周博磊还会同步更新课程的代码,使用的编程语言为 Python,深度学习框架则是 TensorFlow 和 PyTorch 皆可(PyTorch 为主)。和常规的课程一样,《强化学习纲要》也会在每节课后留下一些作业。
GitHub 链接:https://github.com/zhoubolei/introRL
课程概览
整个课程共分为基础课程和高阶课程两大部分。其中,基础课程共分为 8 个小节,包括课程概览、马尔科夫决策过程、无模型预测及控制、on-policy 和 off-policy 学习、值函数近似、策略优化基础、策略优化现状、基于模型的强化学习等内容。其中,每个小节都会有一两节课的内容。
高阶课程包括一些案例研究,如围棋 AI AlphaGo、游戏 AI AlphaStar、OpenAI Five 等,此外还包含强化学习的分布式构建、生成模型等。
该课程主要面向大三、大四或研一的学生。参加课程的学生需要具备相关背景知识,包括线性代数、概率论、机器学习(数据挖掘、模式识别、深度学习)等。此外,由于该课程有不少实践内容,所以参加课程的同学最好有一些编程经验,会用 Python、PyTorch。
此外,周博磊博士还给出了本课程的参考教科书——Sutton 和 Barton 合作撰写的《强化学习》。大家可以根据参考链接下载电子版。
新课尝鲜
目前,我们已经能够在 B 站上看到第一课的完整内容,包括上、下两部分,主要介绍了课程纲要、强化学习基本概念、序列决策入门、强化学习编程实践等内容。
在基本概念部分,周老师介绍了强化学习的定义、重要性、与监督学习的区别等内容。
这里对强化学习的定义引用了一个 Sutton 的经典表述。强化学习用于描述和解决智能体在与环境的交互过程中如何最大化奖赏值的问题。在强化学习中,智能体(agent)与环境(environment)是其两个重要组成部分。
强化学习与监督学习存在以下区别:
- 输入数据时序相关(非独立同分布);
- 智能体并不知道什么是正确的策略,其策略需要通过从环境得到的奖赏值中自行习得;
- 通过试错进行探索(强化学习里非常经典的探索与利用(exploration and exploitation)问题);
- 训练过程中没有严格的标签,学习信号仅为奖赏值(往往还是延迟的奖赏)。
强化学习具有以下特点:通过试错进行学习、奖赏值往往存在延迟(例如种西瓜,我们浇水、施肥后需要很长一段时间才能知道瓜苗的长势),训练数据需要注意其对应时序(数据之间不是独立同分布),智能体的动作会影响其下一时刻获得的观测值。
此外,周老师还介绍了一些与深度强化学习有关的内容。
在刚刚上线的第二部分中,周博磊博士介绍了时序决策过程。
在强化学习过程中,agent 需要与环境进行交互,环境会将动作造成的结果返还给 agent,而 agent 需要从观测中学习出能够将奖励最大化的策略。在强化学习中,算法总是希望能够让奖励极大化,但有时奖励的过程可能会被延迟。强化学习中的一个重要问题就是近期奖励和远期奖励的 trade off。
强化学习算法在策略优化方式上可分为基于值函数与基于策略的,另外又可分为无模型强化学习与基于模型的强化学习,其相互关系如下图所示:
在课程中,周博磊还演示了在 OpenAI Gym 环境中构建强化学习智能体,并在不同游戏中进行测试的过程。
在之后的课程中,周博磊还将继续介绍通过决策函数实现优化的过程。
其他优质强化学习网络课程推荐
还想学其他课程?在强化学习领域,除了周博磊老师的课之外,我们还有一些优质课程要推荐给大家
首先要提的就是 David Silver 在 UCL 讲授的强化学习入门课程。没错,就是来自 DeepMind 那个在 Nature 上发表了 DQN 论文,紧接着提出 AlphaGo 和 AlphaGo Zero,从此掀起深度强化学习研究浪潮的 Silver。他的课程深入浅出,在介绍强化学习概念的过程中穿插了很多例子,对初学者非常友好,建议作为第一个观看的入门视频课程。
课程链接:http://www0.cs.ucl.ac.uk/staff/D.Silver/web/Teaching.html
以上视频课程在 B 站上也有分流,感兴趣的小伙伴可自行搜索。
此外,台湾大学李宏毅教授的视频课程也非常不错,而且也是中文授课。
课程链接:https://www.bilibili.com/video/av24724071
在进阶版课程方面,我们要推荐的是两位在深度强化学习领域非常有名的科学家——Pieter Abbeel 与 Sergey Levine。他们长期致力于深度强化学习的教学、研究等工作,在其个人主页可以找到很多他们所讲授课程的链接。
- Pieter Abbeel 个人主页:https://people.eecs.berkeley.edu/~pabbeel/
- Sergey Levine 个人主页:https://people.eecs.berkeley.edu/~svlevine/
对于想上手实践度强化学习的小伙伴们,以下资源是不错的选择:
- OpenAI Spinning Up :从 VPG(Vanilla Policy Gradient) 到 TRPO(Trust Region Policy Optimization)、SAC(Soft Actor-Critic) 均有实现,关键是 OpenAI 出品,代码质量高。资源链接:https://openai.com/blog/spinning-up-in-deep-rl/
- Stable Baselines:大量深度强化学习算法优质实现,文档丰富,包含 Colab Notebook,深度强化学习入坑必看 repo。资源链接:https://stable-baselines.readthedocs.io/en/master/
今天,你准备花多少时间用在学习上?
,