前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >心得&复述知识体系:《强化学习》中的蒙特卡洛方法 Monte Carlo Methods in RL

心得&复述知识体系:《强化学习》中的蒙特卡洛方法 Monte Carlo Methods in RL

作者头像
Piper蛋窝
发布2020-11-19 17:09:31
8460
发布2020-11-19 17:09:31
举报
文章被收录于专栏:Piper蛋窝Piper蛋窝

前言: 刚刚读完 Sutton 的《强化学习(第二版)》第5章:蒙特卡洛方法。为了巩固本章收获,笔者将在本文中用尽量简单直白的语言复述本章的思想,各个知识点之间的关系。同时,这方便笔者日后进行复习,也与他人分享了心得。

本文目录:

  • 各小节间结构关系
  • 补充知识点与心得
    • 重要度采样比心得
    • 增量式实现更新公式简单推导
    • 单状态MDP中,策略下的期望
  • 实例代码

笔者阅读的是中文书籍,提到的具体公式笔者将给出其所在的英文版本的页码,英文书籍原文见 Sutton 本人官网:http://incompleteideas.net/book/the-book.html。

本章目录:5.1 蒙特卡洛预测 5.2 动作价值的蒙特卡洛估计 5.3 蒙特卡洛控制 5.4 没有试探性出发假设的蒙特卡洛控制 5.5 基于重要度采样的离轨策略 5.6 增量式实现 5.7 离轨策略蒙特卡洛控制 5.8 折扣敏感的重要度采样 5.9 每次决策型重要度采样 5.10 本章小结

各小节间结构关系

首先,本章介绍中指出蒙特卡洛的优点与特殊性,即:

  • 无需拥有完备的关于环境的信息,蒙特卡洛方法从真实或模拟的环境中交互采样即可;
  • 蒙特卡洛是基于每一幕进行改进的,而非每一步(而非每一次动作)进行改进(be incremental in an episode-by-episode sense, but not in a step-by-step (online) sense);
  • 蒙特卡洛方法在马尔科夫性不成立时性能损失较小,因为不需要用后继状态的估计值来更新当前的估值。

基于上述特点,在已知环境中的很多幕的序列的情况下,“5.1 蒙特卡洛预测”提出了两种蒙特卡洛预测方法:

  • 首次访问型MC预测算法(first-visit MC method);
  • 每次访问型MC预测算法(every-visit MC method)。

“5.2 动作价值的蒙特卡洛估计”则告诉读者:在实际环境中,很难保证所有“状态-动作”都出现过一遍,因此可能有采样不足的问题。因此,我们可以通过设置每个“状态-动作”的第一次采样的概率都不为0,来进行 试探性出发 。或者使用别的思想。接下来的讨论中, 我们先保留试探性出发的假设

基于广义策略迭代(GPI)的思想,“5.3 蒙特卡洛控制”讨论了使用贪心更新策略下,蒙特卡洛算法的向最优策略的收敛性(数学上可以证明,见P97-98),并且,给出了 基于试探性出发的蒙特卡洛(蒙特卡洛 ES) 算法框架。

值得注意的是,为了保证蒙特卡洛算法收敛,我们做了两个假设:

  1. 试探性出发;
  2. 在进行策略评估时有无限多幕的样本序列进行试探。

为了在应用中消除两个假设的影响,我们需要设计算法。基于试探性出发的蒙特卡洛(蒙特卡洛 ES)采用了GPI的思想,即不再要求在策略改进前就完成策略评估,这可以有效消除假设2的影响。

“5.4 没有试探性出发假设的蒙特卡洛控制”以后的内容则是讨论如何消除假设1的影响。

为了消除假设1(“试探性出发”)的影响,我们采用:

  • 同轨策略(on-policy);
  • 离轨策略(off-policy)。

在通过策略中,我们观测到的“状态、动作、回报”序列是遵从我们的策略的,在我看来,可以理解为:我们一边观测我们的系统,一边改进它;但是并非在线改进,而是以幕为单位进行改进,即遵循:“由策略生成序列-由序列更新动作期望-由期望更新最优动作-进而更新策略” 。其算法框图见书P101:

但是,注意到“由策略生成序列”这个步骤。在很多情况下,我们得到的序列并非是我们完全可控的,即 我们无法由我们自己的策略生产序列 。这就需要一种 能够使用与自己策略无关的序列,来更新自己策略的方法了,即离轨策略。

离轨策略相对复杂,书上分为几个小节对其进行分步讲解:

  • “5.5 基于重要度采样的离轨策略”本节中主要讨论了评估离轨序列价值所要用到的概念:重要度采样比,并且提出了“普通重要度采样”与“加权重要度采样”,告诉读者“加权重要度采样”的估计方差为1,而非“普通重要度采样”的无穷,但是“加权重要度采样”是有偏的,偏差会收敛到0。其中,我还对重要度采样比有一点心得,见[1]
  • “5.6 增量式实现”则对价值更新公式做了一个很简单的推导[2];
  • 现在有了 能够估计离轨策略价值 的前提,可以开始讨论如何对策略进行更新了,“5.7 离轨策略蒙特卡洛控制”给出了 离轨策略MC控制算法 ,并附有算法框图。
  • “5.8 折扣敏感的重要度采样”讨论了:如果考虑(回报中的)折扣,那么在离轨策略中,如何考虑回报、更新价值。这减小了方差,更利于收敛,即 折扣敏感的重要度采样
  • “5.9 每次决策型重要度采样”讨论了:不考虑折扣,也可减小方差。使用 每次决策型重要度采样 来进行无偏估计即可。

书上给出了2个例子(有代码进行实现):

  1. 二十一点游戏,用于说明蒙特卡洛的基本思想;
  2. 单状态MDP,用于说明普通重要度采样的方差不收敛性。我对于证明策略下的期望有一点心得,见[3]。

补充知识点与心得

[1] 重要度采样比心得

重要度采样比定义为:在目标策略和行动策略轨迹下的相对概率。经过推导,即

为什么这么定义这个参数,或者说,长成这样的公式有什么用?

我们来看其使用场景,普通重要度采样:

加权重要度采样:

其中,二者的期望分别接近与,而这个 重要度采样比 在其中的作用为:当观测值贴近策略时,此时取得的G更加重要,影响更大,因此其系数 重要度采样比 增大。

[2] 增量式实现更新公式简单推导

把下式转换为增量式:

书上没有给出,因为太简单了,我在这里证明一下。

即答案:

其中,

[3] 单状态MDP中,策略下的期望

期望 E 为:

解得 E = 1 。

实例代码

源代码来自:github.com/ShangtongZhang/reinforcement-learning-an-introduction/chapter05

实例代码与解析见:https://github.com/PiperLiu/Reinforcement-Learning-practice-zh/blob/master/practice/04-Monte-Carlo-Methods.ipynb

微信编辑器:https://www.mdnice.com/

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-01-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Piper蛋窝 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 各小节间结构关系
  • 补充知识点与心得
    • [1] 重要度采样比心得
      • [2] 增量式实现更新公式简单推导
        • [3] 单状态MDP中,策略下的期望
        • 实例代码
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档