David Silver《强化学习RL》第五讲 不基于模型的控制

某种程度上来说,这个课程所有的内容最后都会集中于本讲内容,通过本讲的学习,我们将会学习到如何训练一个Agent,使其能够在完全未知的环境下较好地完成任务,得到尽可能多的奖励。本讲是基础理论部分的最后一讲,本讲以后的内容都是关于实际应用强化学习解决大规模问题的理论和技巧。本讲的技术核心主要基于先前一讲以及更早的一些内容,如果对先前的内容有深刻的理解,那么理解本讲内容将会比较容易。

 

简介 Introduction

上一讲主要讲解了在模型未知的情况下如何进行预测。所谓的预测就是评估一个给定的策略,也就是确定一给定策略下的状态(或状态行为对)的价值函数。这一讲的内容主要是在模型未知的条件下如何优化价值函数,这一过程也称作模型无关的控制

现实中有很多此类的例子,比如控制一个大厦内的多个电梯使得效率最高;控制直升机的特技飞行,机器人足球世界杯上控制机器人球员,围棋游戏等等。所有的这些问题要么我们对其模型运行机制未知,但是我们可以去经历、去试;要么是虽然问题模型是已知的,但问题的规模太大以至于计算机无法高效的计算,除非使用采样的办法。本节的内容就专注于解决这些问题。

根据优化控制过程中是否利用已有或他人的经验策略来改进我们自身的控制策略,我们可以将这种优化控制分为两类:

一类是现时策略学习(On-policy Learning),其基本思想是个体已有一个策略,并且遵循这个策略进行采样,或者说采取一系列该策略下产生的行为,根据这一系列行为得到的奖励,更新状态函数,最后根据该更新的价值函数来优化策略得到较优的策略。由于要优化的策略就是当前遵循的策略,这里姑且将其翻译为“现时策略”。

另一类是离线策略学习(Off-policy Learning): 其基本思想是,虽然个体有一个自己的策略,但是个体并不针对这个策略进行采样,而是基于另一个策略进行采样,这另一个策略可以是先前学习到的策略,也可以是人类的策略等一些较为优化成熟的策略,通过观察基于这类策略的行为,或者说通过对这类策略进行采样,得到这类策略下的各种行为,继而得到一些奖励,然后更新价值函数,即在自己的策略形成的价值函数的基础上观察别的策略产生的行为,以此达到学习的目的。这种学习方式类似于“站在别人的肩膀上可以看得更远”。由于这些策略是已有的策略,这里姑且翻译为“离线策略”。

先从简单的“现时策略”开始讲解。

 

现时策略蒙特卡洛控制 On-Policy Monte-Carlo Control

在本节中我们使用的主要思想仍然是动态规划的思想。先来回顾下动态规划是如何进行策略迭代的。

  • 通用策略迭代(回顾)

 

通用策略迭代的核心是在两个交替的过程之间进行策略优化。一个过程是策略评估,另一个是改善策略。如上图的三角形区域所示,从一个策略π和一个价值函数V开始,每一次箭头向上代表着利用当前策略进行价值函数的更新,每一次箭头向下代表着根据更新的价值函数贪婪地选择新的策略,说它是贪婪的,是因为每次都采取转移到可能的、状态函数最高的新状态的行为。最终将收敛至最优策略和最优价值函数。

注意使用动态规划算法来改善策略是需要知道某一状态的所有后续状态及状态间转移概率

 

  • 不基于模型控制的两个条件

那么这种方法是否适用于模型未知的蒙特卡洛学习呢?答案是否定的,这其中至少存在两个问题。其一是在模型未知的条件下无法知道当前状态的所有后续状态,进而无法确定在当前状态下采取怎样的行为更合适。解决这一问题的方法是,使用状态行为对下的价值Q(s,a)来代替状态价值 :

这样做的目的是可以改善策略而不用知道整个模型,只需要知道在某个状态下采取什么什么样的行为价值最大即可。具体是这样:我们从一个初始的Q和策略\pi开始,先根据这个策略更新每一个状态行为对的q值,s随后基于更新的Q确定改善的贪婪算法。

即使这样,至少还存在一个问题,即当我们每次都使用贪婪算法来改善策略的时候,将很有可能由于没有足够的采样经验而导致产生一个并不是最优的策略,我们需要不时的尝试一些新的行为,这就是探索(Exploration),使用一个示例来解释:

  • 示例——贪婪行为选择

如图:在你面前有两扇门,考虑如下的行为、奖励并使用贪婪算法改善策略:

 

你打开左侧门得到即时奖励为0:V(left) = 0

你打开右侧门得到即时奖励1:V(right) = +1

在使用贪婪算法时,接下来你将会继续打开右侧的门,而不会尝试打开左侧门

你打开右侧门得到即时奖励+3:V(right) = +2

你打开右侧门得到即时奖励+2:V(right) = +2

...

这种情况下,打开右侧门是否就一定是最好的选择呢?答案显而易见是否定的。因此完全使用贪婪算法改善策略通常不能得到最优策略。为了解决这一问题,我们需要引入一个随机机制,以一定的概率选择当前最好的策略,同时给以其它可能的行为一定的几率,这就是Ɛ-贪婪探索。

 

  • Ɛ-贪婪探索

Ɛ-贪婪探索的目标使得某一状态下所有可能的行为都有一定非零几率被选中执行,也就保证了持续的探索,1-\epsilon的概率下选择当前认为最好的行为,而\epsilon的概率在所有可能的行为中选择(也包括那个当前最好的行为)。数学表达式如下:

 

定理:使用Ɛ-贪婪探索策略,对于任意一个给定的策略\pi,我们在评估这个策略的同时也总在改善它。

证明:

注:在证明上述定理过程中使用的不等式是在经过合理、精心设计的。

解决了上述两个问题,我们最终看到蒙特卡洛控制的全貌:使用Q函数进行策略评估,使用Ɛ-贪婪探索来改善策略。该方法最终可以收敛至最优策略。如下图所示:

图中每一个向上或向下的箭头都对应着多个Episode。也就是说我们一般在经历了多个Episode之后才进行依次Q函数更新或策略改善。实际上我们也可以在每经历一个Episode之后就更新Q函数或改善策略。但不管使用那种方式,在Ɛ-贪婪探索算下我们始终只能得到基于某一策略下的近似Q函数,且该算法没有一个终止条件,因为它一直在进行探索。因此我们必须关注以下两个方面:一方面我们不想丢掉任何更好信息和状态,另一方面随着我们策略的改善我们最终希望能终止于某一个最优策略,因为事实上最优策略不应该包括一些随机行为选择。为此引入了另一个理论概念:GLIE

 

  • GLIE

GLIE(Greedy in the Limit with Infinite Exploration),直白的说是在有限的时间内进行无限可能的探索。具体表现为:所有已经经历的状态行为对(state-action pair)会被无限次探索;另外随着探索的无限延伸,贪婪算法中Ɛ值趋向于0。例如如果我们取\epsilon = 1/kk为探索的Episode数目),那么该Ɛ贪婪蒙特卡洛控制就具备GLIE特性。

基于GLIE的蒙特卡洛控制流程如下:

  1. 对于给定策略\pi,采样第k个Episode: { { S_{1}, A_{1}, R_{2}, ..., S_{T} }} ~ \pi
  2. 对于该Episode里出现的每一个状态行为对S_tA_t,更其计数和Q函数:

 

  • 7
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值