前言: 刚刚读完 Sutton 的《强化学习(第二版)》第5章:蒙特卡洛方法。为了巩固本章收获,笔者将在本文中用尽量简单直白的语言复述本章的思想,各个知识点之间的关系。同时,这方便笔者日后进行复习,也与他人分享了心得。
本文目录:
笔者阅读的是中文书籍,提到的具体公式笔者将给出其所在的英文版本的页码,英文书籍原文见 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 本章小结
首先,本章介绍中指出蒙特卡洛的优点与特殊性,即:
基于上述特点,在已知环境中的很多幕的序列的情况下,“5.1 蒙特卡洛预测”提出了两种蒙特卡洛预测方法:
“5.2 动作价值的蒙特卡洛估计”则告诉读者:在实际环境中,很难保证所有“状态-动作”都出现过一遍,因此可能有采样不足的问题。因此,我们可以通过设置每个“状态-动作”的第一次采样的概率都不为0,来进行 试探性出发 。或者使用别的思想。接下来的讨论中, 我们先保留试探性出发的假设 。
基于广义策略迭代(GPI)的思想,“5.3 蒙特卡洛控制”讨论了使用贪心更新策略下,蒙特卡洛算法的向最优策略的收敛性(数学上可以证明,见P97-98),并且,给出了 基于试探性出发的蒙特卡洛(蒙特卡洛 ES) 算法框架。
值得注意的是,为了保证蒙特卡洛算法收敛,我们做了两个假设:
为了在应用中消除两个假设的影响,我们需要设计算法。基于试探性出发的蒙特卡洛(蒙特卡洛 ES)采用了GPI的思想,即不再要求在策略改进前就完成策略评估,这可以有效消除假设2的影响。
“5.4 没有试探性出发假设的蒙特卡洛控制”以后的内容则是讨论如何消除假设1的影响。
为了消除假设1(“试探性出发”)的影响,我们采用:
在通过策略中,我们观测到的“状态、动作、回报”序列是遵从我们的策略的,在我看来,可以理解为:我们一边观测我们的系统,一边改进它;但是并非在线改进,而是以幕为单位进行改进,即遵循:“由策略生成序列-由序列更新动作期望-由期望更新最优动作-进而更新策略” 。其算法框图见书P101:
但是,注意到“由策略生成序列”这个步骤。在很多情况下,我们得到的序列并非是我们完全可控的,即 我们无法由我们自己的策略生产序列 。这就需要一种 能够使用与自己策略无关的序列,来更新自己策略的方法了,即离轨策略。
离轨策略相对复杂,书上分为几个小节对其进行分步讲解:
书上给出了2个例子(有代码进行实现):
重要度采样比定义为:在目标策略和行动策略轨迹下的相对概率。经过推导,即
为什么这么定义这个参数,或者说,长成这样的公式有什么用?
我们来看其使用场景,普通重要度采样:
加权重要度采样:
其中,二者的期望分别接近与,而这个 重要度采样比 在其中的作用为:当观测值贴近策略时,此时取得的G更加重要,影响更大,因此其系数 重要度采样比 增大。
把下式转换为增量式:
书上没有给出,因为太简单了,我在这里证明一下。
即答案:
其中,
期望 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/