强化学习全景介绍与案例分享

  • 1
    关注“腾讯产业互联网学堂”公众号加群互动有好礼相送
  • 2
    回复口令“强化学习”
  • 3
    加入交流群
腾讯产业互联网学堂微信公众号
“腾讯产业互联网学堂”微信公众号

讲师简介

肖智清

特邀讲师 数据科学家

清华大学工学博士。著有也许是全球第一本配套TensorFlow 2代码的强化学习教材书《强化学习:原理与Python实现》、也许是全球第一本PyTorch 1纸质教材书《神经网络与PyTorch实战》。发表SCI/EI论文十余篇,多个顶级期刊审稿人。在清华学习期间曾获得博士研究生国家奖学金。

简介

本课程主要面向人群:(1)对强化学习感兴趣的人士,(2)对强化学习有一定了解的人士。主要内容:全景式介绍强化学习模型的算法。

讲义

本课程主要面向人群:(1)对强化学习感兴趣的人士,(2)对强化学习有一定了解的人士。主要内容:全景式介绍强化学习模型的算法。

预期收获:全方位了解强化学习的研究内容,扩宽知识面,帮助发掘新的研究内容和创新点。

本次腾讯产业互联网学堂大咖分享课程邀请 特邀讲师 数据科学家 肖智清 分享关于“强化学习全景介绍与案例分享”课程的内容。

本次分享内容:

1、强化学习的模型

2、强化学习的算法

3、深度学习给强化学习带来的新机会

4、问答环节

一、强化学习的模型

强化学习能够实现很多的任务,这些任务目标往往可以归纳化为最大化长期奖励、最小化长期惩罚。比如在写论文,写完论文过审了,得到最佳论文凭证的奖学金,获得很高的引用,这些都算正强化。如果论文被拒了或是查重被查出问题了,毕不了业,这些都是负强化。强化学习目标就是要趋利避害。

JackMichael在1975年证明了正强化和负强化的等效性。也就是说,正强化和负强化是等价的。所以我们讨论最大化长期奖励,还是最小化长惩罚并没有本质区别,这是同一个问题。

强化学习最著名的模型就是智能体环境接口。该接口决策和学习的部分与其他部分分离,决策和学习的部分归为智能体,其他的部分都归为环境。举刚才写论文的例子,在写论文的例子中,我学习怎么写论文,或是决定要怎么写,这些都是属于智能体部分,但是我并不是智能体,也有很多部分是属于环境的。比如我今天生病了,就不写论文了,那我的健康状况是属于环境。智能体环境接口的核心思想在于把主观可以控制的部分和客观不能改变的部分分开,分开以后,只需要通过三个要素,在这两部分之间进行交互,这三个要素是动作、观测和奖励。刚刚说奖励可以是惩罚,奖励和惩罚是等价的。但是动作和观测不一定是数值的。观测可以是看到了帅气的小哥哥或是漂亮的小姐姐,这样的观测。动作可以是向前向小哥哥或小姐姐要微信。这就是自然体环境接口。

强化学习不一定要用智能体环境接口来解决,比如说我们可以总体调整,用几个参数来驱动整个系统,然后用其他方法来评估参数,再用进化算法,求解自由参数。这时,我们就没有用智能机环境接口。那么既然我们可以不用自然接口演就能研究强化学习,那为什么大多数情况下我们都用智能体环境接口来研究呢,原因在于智能体环境接口可以把主观可以控制的部分和客观不能改变部分分开,使得我们可以分别研究智能体和环境,虽然在复杂的任务时,往往会有帮助。

智能体和环境之间是可以互相交互的,如果环境和智能体之间多次交互,那么智能体的决策就是一个序贯决策问题可以引入时间指标。强化学习问题不一定是序贯决策问题。举个例子,如果智能体和环境只交互一次,那就没什么可序贯的,也没有引入时间的必要,所以强化学习问题不一定是序贯决策问题。那么对于确实是序贯决策问题的强化学习问题,我们就可以引入时间指标,我们可以有零散的时间指标也可以有连续的时间指标等分类。单次决策可以看作离散时间的一个特例。对于有限制的决策或者可数制决策,我们可以把决策实际和正整数一一对应。决策时间不一定要是等间隔的,比如说我每月一号做决策,那这也是不完全等间隔的,比如说我1月1号和2月1号之间有31天,但是2月1号到3月1号之间,只有28天或29天,这就是不等间隔了。虽然它不等间隔,我还是可以把决策时机映射到正整数底下。比如说我把1月1号映射到1,2月1号映射到2,3月1号映射到3,那就是离散时间指标了。但是,如果我的决策的时机是不可数的,那就不可能映射到正整数上。这时候,我们就会用连续时间指标来表示决策时机。比如说我从今天开始的所有时间我都可以决策,那我就可以把时间指标映射到正数数轴上。

决策时间它可以就是随机的。说决策时间间隔的随机性,比如说我投了一个会议论文,下次决策机会就是等审稿人意见,审稿人什么时候发表意见是不确定的,审稿完发什么意见以及你怎么回复,跟审稿人什么时候发表意见是有关系的。所以这个决策时间是这样考虑的,不能简单建模为离散时间或连续时间,决策时间要考虑很多的情况。

那么智能体环境接口中的自然体可以有一个或是多个,如果有多个智能体,那么他并不一定同时有决策机会。某个时刻需要某些智能体有权力决策,其他智能体可能只能观察或者连观察的权利都没有,比如说吃鸡游戏某些智能体可能会落地成河,一下子就完了,他就不用决策了,还有一些人比较厉害,他可以一直玩到最后,那么他决策的机会就比较多。不是所有智能体都有相同的决策机会。

我们知道智能体和环境之间有三个要素,智能体获得观测之后也许能获得环境知识,也许不能够获得环境知识。如果智能体什么都不知道,那就没啥可做的,那就是完全不可观测的。如果智能体什么都知道,那么就是完全可观测的。如果知道一部分则是部分可观测的。

刚刚我们讨论了自然体能不能对环境进行关注的问题。也许有听众已经知道强化学习算法可以分为需要利用环境模型的算法和无利用环境模型的算法。虽然我并不一定要利用环境模型,但是我可以假设环境具有某种驱动的形式,比如说从SA可以映射到O或R。最常见的驱动方式是用概率驱动的,也就是给定S和A,给定环境和动作可以存在着某种观测O和奖励R的分布。也许我知道这个分布也许不知道,但是我假设它有个分布,这就是概率驱动模型。环境不一定要以概率形式驱动,那还可以用什么驱动。有些问题不是定时概率的,可能是组合的,比如像井字棋、五子棋、围棋这样的组合问题,就是组合性,没有任何的随机性。如果能把组合问题强行建模成概率问题,那很可能就得不到最优解。

我们可以假设环境是概率驱动的或是组合驱动的,或者其他方法驱动的。那么我们对于一个具体的环境应该如何选择驱动模型,建模的转折应该遵循两点,第一是建模要最能体现解决的问题,也就是这个模型必须可以求解,如果模型不能体现到具体的问题,那么即使解决了模型也不能解决要解决的问题,那么这个模型就是不成功的。第二是模型要简单可求解,如果我建了一个太难的模型,动弹不得,也求解不了,也没有收获心得,那这个模型也没什么用。数学模型跟真实事件肯定是不一样的,真实世界肯定是非常复杂的,模型只是真实世界的简化,所以越好模型一方面可以求解,并且求出来的解要能对真实世界的问题有帮助。

二、强化学习的算法

无论环境是不是概率的,我们可以选择是不是对环境进行建模。强化学习算法,根据算法过程是否对环境建模,可以分为利用环境模型的算法和不利用环境模型的算法。利用环境模型的算法还可以进一步分类,怎么在有些问题中环境我是给定的,比如像动态规划、阿法狗就是这样的算法。那我们直接用给定的环境模型就好了,这类都是给定环境模型的算法。那么还有一些问题,环境模型事先不知道,需要智能体通过观测或数据不断学习,比如说像Dyna算法和WorldModels算法都是需要学习模型的算法。

如果我们假设环境是概率驱动的,并且确定使用MDP,在这种情况下强化学习算法还可以根据是否使用价值或价值分布或策略梯度来进行划分,如果同时应用了价值和策略梯度,我们就称为Actor/Critic算法。

三、深度学习给强化学习带来的新机会

最近几年的强化学习非常的热门,出现了一些脍炙人口的应用,他们都是深度学习和强化学习强强联合的产物,无论是基于价值的强化数据算法,还是基于策略梯度的强化学习算法,都可以脱离于深度学习存在。从1950年到2013年这么长的时间里出现过了很多很多的强化学习算法,基本都和深度学习没关系,但是他们已经能够完成很多很多的工作了,比如说其中的资格迹算法,可以说是强化学习的一个旗舰算法,在很多问题中已经有很好的表现。2013年,深度学习和强化学习结合起来,结合成了的深度强化学习算法。那么深度强化学习算法诞生以后,在强化训练领域马上就有突飞猛进的发展,解决问题的困难程度大大超过之前的非深度强化算法。

深度强化学习算法为什么常常能够比非深度强化学习算法更厉害呢,这是因为用了深度学习的强化学习方法可以求得更加复杂的解,能在更加困难的问题上得到更好的性能。那么使用非深度强化学习算法时,能够求解的问题都解的参数往往就是在几千个参数这个量级。如果我们用无模型的深度强化学习算法能够求解的问题的解的参数量级在几千个到几千万个参数的两级。如果我们用有模型的深度强化学习算法能够求解的问题的解的参数量级是几千万个、几亿个甚至几十亿个的量级。所以不同参数量级的问题,我们就往往使用它最适合的算法,而深度学习能够胜任更大量级的参数,解决更加复杂的问题。深度强化学习算法的很多思想都是来自于那些没有利用深度学习的经典算法,学习深度学习强化算法还是非常有意义的。

接下来推荐下我的新书《强化学习原理与Python实现》,这里面的既包括了经典的非深度强化学习算法,也包括深度强化学习算法。

强化学习有这种情况,同样的算法套进不同的问题去学习,就能够学成解决不同任务的AI,这很强大。这本书面的还有非常丰富的案例。书的内容也是领先的。

四、问答环节

Q:做了一个强化学习有关的项目,在网站上了解了MDP、值函数等基础知识,但是感觉有些囫囵吞枣,有没有比较好的入门方法打好基础呢?

A:首先这个MDP是强化学习基础的基础,是最关键的,所以先学习MDP是完全正确的,我今天还讲的很多东西都是扩展内容,但所有这些都必须要先会MDP,才有下一步没有MDP后面什么都没有。

Q:怎样选择用模型方法还是无模型方法?

A:刚刚说过就是可以根据这个问题的困难程度,估计参数的规模,如果你很困难无模型解决不了,那你就非得建模了。简单来说,就是先试试无模型,如果说无模型可以,那你就不用建模,这就省事了。

全部评论
讲师/助教

评论

直播日历