一、前言

在强化学习系列(四):动态规划中,我们介绍了采用DP (动态规划)方法求解environment model 已知的MDP(马尔科夫决策过程),那么当environment model信息不全的时候,我们会采用什么样的方法求解呢?蒙特卡洛方法(Monte Carlo)、时间差分(Temporal Difference,TD)、n-step Bootstrapping 都可以用来求解无模型的强化学习问题,本章主要介绍蒙特卡洛方法(Monte Carlo)。

在解决实际问题中,我们通常不太容易获得环境的准确模型,例如打牌的时候,不知道对手会出什么牌,这样各个state间的转移概率就不太容易直接表示。相对而言,获得采样数据通常比较容易实现,比如打牌,可以打好多次牌,然后逐渐就可以估计对手的出牌风格。根据统计数学的思想,我们可以通过不断采样然后求平均的方式实现对环境模型的学习。这种近似方式我们称为经验方式。

Monte Carlo正是这样一种用经验来估计环境模型的方法,可以在环境模型未知的情况下,根据经验(experience,从环境中获取的一系列的state、action、reward采样) 来进行学习。为了方便使用Monte Carlo,本章假设所需解决的强化学习问题都是episode的,即存在一个终止状态(terminal state),使得每次对环境的采样以有限步结束。

这里将第四章中的GPI(general policy iteration) 思想用于Monte Carlo,将问题分为 prediction 和 control来进行讨论。

二、Monte Carlo Prediction

2.1 Prediction 问题

预测问题:给定一个策略 ππ\pi,求解 state-value function vπ(s)vπ(s)v_\pi(s)

回想一下,我们在第二章中提到的多臂老虎机问题,假设给定一个策略 ππ\pi,对任意state,每次摇动拉杆都按照策略ππ\pi选择action。需要估计state-value function vπ(s)vπ(s)v_\pi(s)。老虎机每次摇动拉杆获得的数据是S,A,RS,A,R S, A, R,仅包含一个state 和 一个 action。要估计某一特定state s 的value function 可以根据统计多次采样中出现state s的数目N(s)N(s)N(s),然后求多次实验获得的reward的平均值来估计。求解过程如下:


Average Reward

To evaluate state s
when state s is visited in an episode
increment counter N(s)←N(s)+1N(s)←N(s)+1N(s) \leftarrow N(s) + 1
increment total reward S(s)←S(s)+RS(s)←S(s)+RS(s) \leftarrow S(s) + R
Value is estimated by mean reward V(s)=S(s)/N(s)V(s)=S(s)/N(s)V(s) =S(s)/N(s)
By law of large numbers, V(s)→vπ(s)V(s)→vπ(s) V(s) \to v_\pi(s) as N(s)→∞N(s)→∞N(s) \to \infty


而很多问题远比老虎机问题复杂,因为每次采样所获得的采样数据是一系列的state、action、reward,如 S0,A0,R1,...,ST−1,AT−1,RTS0,A0,R1,...,ST−1,AT−1,RT S_0, A_0, R_1 ,..., S_{T-1}, A_{T-1}, R_T, 状态和动作序列间存在联系,不能单独将state s所获得的reward 单独剥离出来求平均值,因此Monte Carlo考虑了根据state s 出现后的return(reward 之和)来进行策略估计。但一组采样中 state s 可能多次出现,那么计算哪一次出现 state s到terminal state 的return呢?这里衍生出两种Monte Carlo:first-visit MC 和 every-visit MC。两个方法的求解过程分别如下:


First-Visit MC policy evaluation (Average Return)

To evaluate state s
The first time-step ttt that state s is visited in an episode,
increment counter N(s)←N(s)+1" role="presentation">N(s)←N(s)+1N(s)←N(s)+1N(s) \leftarrow N(s) + 1
increment total return S(s)←S(s)+GtS(s)←S(s)+GtS(s) \leftarrow S(s) + G_t
(where Gt=Rt+1+γRt+2+...+γT−1RTGt=Rt+1+γRt+2+...+γT−1RTG_t = R_{t+1} + \gamma R_{t+2} + ... + \gamma^{T-1}R_T)
Value is estimated by mean reward V(s)=S(s)/N(s)V(s)=S(s)/N(s)V(s) =S(s)/N(s)
By law of large numbers, V(s)→vπ(s)V(s)→vπ(s) V(s) \to v_\pi(s) as N(s)→∞N(s)→∞N(s) \to \infty



Every-Visit MC policy evaluation (Average Return)

To evaluate state s
Every time-step ttt that state s is visited in an episode,
increment counter N(s)←N(s)+1" role="presentation">N(s)←N(s)+1N(s)←N(s)+1N(s) \leftarrow N(s) + 1
increment total return S(s)←S(s)+GtS(s)←S(s)+GtS(s) \leftarrow S(s) + G_t
(where Gt=Rt+1+γRt+2+...+γT−1RTGt=Rt+1+γRt+2+...+γT−1RTG_t = R_{t+1} + \gamma R_{t+2} + ... + \gamma^{T-1}R_T)
Value is estimated by mean reward V(s)=S(s)/N(s)V(s)=S(s)/N(s)V(s) =S(s)/N(s)
By law of large numbers, V(s)→vπ(s)V(s)→vπ(s) V(s) \to v_\pi(s) as N(s)→∞N(s)→∞N(s) \to \infty


first-visit MC 只统计每个episode中第一次出现 state s 到terminal state 的reward之和GtGt G_t,而every-visit MC则统计每个episode中每次出现state s 到terminal state 的reward之和GtGt G_t。本章中主要讨论的都是first-visit MC。因为MC方法只有等一个episode完成时才会计算出GtGt G_t,然后更新 V(s)V(s)V(s) 。所以MC不是一种单步更新(step-by-step)的方法,而是一种episode更新( episode-by-episode )的方法。

2.2 incremental Mean

上一小节中,我们介绍了first-visit MC,但是在实际编程时我们会面临计算速度和存储量的问题,这里我们需要一个小trick,那就是incremental mean。
首先考虑简单的求平均问题:

将推导出的迭代公式,运用到Monte Carlo Prediction中,得到:

三、Monte Carlo Control

控制问题:给定一个策略ππ\pi,求解最优策略π∗π∗\pi*

3.1 Monte Carlo Estimation of Action Values

在DP求解MDP中,环境模型已知,我们根据策略估计出的state-value v(s)v(s)v(s),往前看一步,根据Bellman optimality backup 图:

可知,要根据state-value v(s)v(s)v(s)推出最优策略,需要确切的知道状态转移概率Pass′Pss′aP_{ss'}^a, 这属于环境信息。此时假设环境完全未知,那么不能仅仅根据state-value v(s)v(s)v(s)来获得最优策略,必须精确的估计每一个action的values来决定如何选择策略。因此 Monte Carlo的主要目标是估计最优action-value function q∗q∗q*。

这样上述Monte Carlo Prediction的作用对象由state-value变为action-value,即qπ(s,a)qπ(s,a)q_\pi(s,a)。这意味着,我们将state和action作为state-action pair看待,而不是2.1节中提到的仅观测state。

但是如果ππ\pi是一个确定性策略,即在state s下有确定的action a, 那么其他action a′≠aa′≠aa'\neq a,在state s下将不会被选择,简言之,我们可能永远无法获得这样的state-action pair(s,a’)。这意味着该方法的探索率不足,为了保证Monte Carlo有效作用与所有state-action pair,平衡Exploration 和explicit 的矛盾,这里假设每个episode的初始state-action pair(s0,a0)(s0,a0)(s_0,a_0) 选择任意state-action pair (s,a) 的概率都大于0。(exploring starts 假设)。

接下来我们先讨论带着这一假设的Monte Carlo Control 问题,再讨论如何去掉这一假设。

3.2 Monte Carlo Control with Exploring Starts

此处用到第四章中提到的GPI思想,只不过将Policy evaluation 中的state-value 换成了action-value:

这一过程可以描述为从任意一个给定策略π0π0\pi_0推导出最优action-value function 和最优Policy的过程:

其中E代表Policy evaluation,I 代表Policy improvement。Policy evaluation在2.1节中已经介绍,此不详述,这里重点说一下Policy improvement。我们此时拥有的是action-value function,也就是说我们不需要环境模型来构建greedy Policy。对action-value function q而言,greedy Policy:

Policy improvement可以每次根据qπkqπkq _{\pi _k} 选择greedy Policy πk+1πk+1\pi_{k+1}来完成。Policy improvement 原理在本问题中证明如下:


在Policy evaluation中我们假设要进行无限次采样,才能准确估计出 action-value function。但实际运用中,我们考虑前后两次估计的差值小于一个误差值,就可以近似准确估计 action-value function。接下来我们看带着Exploring Starts假设的算法伪代码:

3.3 Monte Carlo Control without Exploring Starts

在解决实际问题中,Exploring Starts假设是不现实的,那么我们如何去掉这一假设限制呢?首先我们明确该假设其实是为了解决Exploration 问题,使得算法具有探索性。如果我们通过其他方式解决了这个问题,那么就可以去掉这一假设啦!

这里引用一下书中原话:
The only general way to ensure that all actions are selected infinitely often is for the agent to continue to select them.

通常采用两种方法:on-policy 和 off-policy。两者不同在于off-policy用于采样的策略b (behavior policy) 和用于evlauate、improve的策略 ππ\pi (target policy) 是两个不同的策略。

本小节着重介绍on-policy方法,下一小节介绍off-policy方法。在on-policy中我们通常不会直接采用greedy Policy 作为最优策略,为了维持一定的探索性,我们需要让我们的Policy 是soft的,也就是说 π(a|s)>0 for all s∈S and a∈A(s)π(a|s)>0foralls∈Sanda∈A(s)\pi(a|s) > 0 \ for\ all\ s \in S \ and\ a\in A(s),并且可以不断逼近最优策略。第二章中我们提到的ϵϵ \epsilon -greedy policy就是一种满足上述条件的策略。我们有 ϵ|A(s)|ϵ|A(s)| \frac{\epsilon}{|A(s)|} 的可能性会选择其他nongreedy策略,有1−ϵ+ϵ|A(s)|1−ϵ+ϵ|A(s)|1-\epsilon + \frac{\epsilon}{|A(s)|} 的可能性会选择greedy Policy。这表明对任意state 和 action 有π(a|s)≥ϵ|A(s)|π(a|s)≥ϵ|A(s)| \pi(a|s) \geq \frac{\epsilon}{|A(s)|} ,此时策略是 ϵ−softϵ−soft \epsilon -soft 的。

下面将证明这种策略选取方式可以逼近最优策略,假设 π′π′\pi' 是ϵϵ \epsilon -greedy policy,对任意state s运用Policy improvement理论:

采用 ϵϵ \epsilon -greedy policy 的on-Policy算法伪代码为:

3.4 off-policy Prediction via importance sampling

off-policy用于采样的策略b (behavior policy) 和用于evlauate、improve的策略 ππ\pi (target policy) 是两个不同的策略。通常情况下target policy 是确定性策略,而behavior policy是随机策略。本节假定两者都是给定策略。

在off-policy中常采用importance sampling从一个分布来估计另一个分布的期望值。从state StSt S_t开始,获得满足policy ππ\pi的采样序列At,St+1,At+1,...,STAt,St+1,At+1,...,ST A_t,S_{t+1},A_{t+1},...,S_T的概率为

因此,两个不同策略的采样比(importance-sampling ratio)可以表示为:

这是一个与MDP过程中状态转移概率无关的量。当我们希望根据behavior policy b 的return GtGtG_t来估计 target policy ππ\pi的value function 时,直接采用平均值方法会得到E[Gt|St]=vb(St)E[Gt|St]=vb(St)E[G_t|S_t] = v_b(S_t),获得的是behavior policy b 的期望价值,当我们有了importance-sampling ratio时,可以通过两种方式计算 target policy ππ\pi的value function :


ordinary importance sampling

weighted importance sampling


其中,J(s)J(s)J(s)为s出现的总次数。
这两种计算方式的区别在于:

  • ordinary importance sampling是无偏估计,而weighted importance sampling是有偏估计。(当仅仅计算一次采样时,weighted importance sampling的分子和分母约去只剩下GtGtG_t,这为behavior Policy 的return ,而不是target policy的return)
  • 但 ordinary importance sampling通常会在episode较少时产生较大方差。(证明详细看书)通常weighted importance sampling运用更广泛。

我们可以看出,无论用哪种方法计算,都涉及到计算importance-sampling ratio,而他与一个采样trajectory 中的所涉及的所有状态转移概率有关,因此有很高的方差,客观的说,MC算法不太适合处理off-policy问题。

3.5 Incremental Implementation(增程式运算)

ordinary importance sampling的迭代方法只需要在2.2节中给每个GtGtG_t乘以∑t∈J(s)ρt:T(t)−1|J(s)|∑t∈J(s)ρt:T(t)−1|J(s)|\frac{\sum_{t\in J(s)}\rho_{t:T(t) -1}}{|J(s)|}即可


Incremental Implementation for ordinary importance sampling

V(st)←V(st)+α(∑t∈J(s)ρt:T(t)−1Gt|J(s)|−V(St))V(st)←V(st)+α(∑t∈J(s)ρt:T(t)−1Gt|J(s)|−V(St))V(s_t) \leftarrow V(s_t) + \alpha (\frac{\sum_{t\in J(s)}\rho_{t:T(t) -1}G_t}{|J(s)|} -V(S_t))


而weighted importance sampling较为复杂,假设我们有一系列的returns G1,G2,..,Gn−1G1,G2,..,Gn−1G_1,G_2,..,G_{n-1}都从同一个state开始,且每一个有相关的权重Wi(Wi=ρt:T(t)−1)Wi(Wi=ρt:T(t)−1)W_i(W_i = \rho_{t:T(t)-1}),我们期望估计:


Incremental Implementation for weighted importance sampling

V(n+1)=V(n)+WnCn[Gn−V(n)), n≥1V(n+1)=V(n)+WnCn[Gn−V(n)),n≥1V(n+1) = V(n) + \frac{W_n}{C_n}[G_n -V(n)), \ n\geq 1

Cn+1=Cn+Wn+1Cn+1=Cn+Wn+1C_{n+1} = C_n + W_{n+1}


采用off-policy MC 进行policy evaluation 的算法伪代码如下:

3.6 Off-policy Monte Carlo Control

上一小节介绍了off-policy MC 进行policy evaluation 的算法,结合3.2节中的Policy improvement 可以得到 Off-policy Monte Carlo Control的算法伪代码:

四、总结

本章针对prediction 和control问题,介绍了一种以经验学习的无模型强化学习方法——Monte Carlo。首先针对prediction问题,介绍了first-visit 和 every-visit MC ,并总结了实际应用中的迭代思想。针对control 问题,阐述了对无模型强化学习问题估计 action-value function 而非state-value function的理由;并针对模型探索性进行了exploring starting假设,建立了Monte Carlo ES模型;再为了去掉该假设,介绍了on-policy和 off-policy方法。其中,针对off-policy,介绍了两种不同的importance sample方式:ordinary 和 weight。然后得出了基于weight importance sample 的off policy MC control方法。

我们可以看到MC可以解决无模型的强化学习问题,但是有其局限性,记得我们在前言处的假设:本章假设所需解决的强化学习问题都是episode的,即存在一个终止状态(terminal state),使得每次对环境的采样以有限步结束。
如果实际问题不满足该假设呢?如果我们实际问题满足该假设,但是每个episode都特别长呢,那是不是说明我们需要很长时间才能更新一次我们的模型,但如果我们希望每一步都更新一下我们的模型,而不愿意等到一个epsiode结束呢?请看下一章,时间查分算法(Temporal Difference,TD)。

David Silver 课程
Reinforcement Learning: an introduction

强化学习系列(五):蒙特卡罗方法(Monte Carlo)相关推荐

  1. 强化学习之Grid World的Monte Carlo算法解析【MiniWorld】SYSU_2023SpringRL

    强化学习之Grid World的Monte Carlo算法解析[MiniWorld]SYSU_2023SpringRL 题目以及思路 代码 结果 算法解析 代码算法流程 题目以及思路 环境在这篇博客强 ...

  2. 增强学习(四) ----- 蒙特卡罗方法(Monte Carlo Methods)

    1. 蒙特卡罗方法的基本思想 蒙特卡罗方法又叫统计模拟方法,它使用随机数(或伪随机数)来解决计算的问题,是一类重要的数值计算方法.该方法的名字来源于世界著名的赌城蒙特卡罗,而蒙特卡罗方法正是以概率为基 ...

  3. 【Matlab 六自由度机器人】基于蒙特卡罗方法(Monte Carlo Method)构建机器人工作空间(附MATLAB建模仿真完整代码)

    [Matlab 六自由度机器人]基于蒙特卡洛法构建工作空间 往期回顾 前言 正文 一.蒙特卡洛方法及机器人工作空间的概述 1. 蒙特卡洛法 2. 机器人工作空间 二.rand函数的应用 1. rand ...

  4. 强化学习系列(十三):Policy Gradient Methods

    这是PG的基础篇,在深度强化学习系列中,有结合例子和监督学习的深刻理解PG的进阶篇. 一.前言 之前我们讨论的所有问题都是先学习action value,再根据所得的action value 来选择a ...

  5. 强化学习(五) - 时序差分学习(Temporal-Difference Learning)及其实例----Sarsa算法, Q学习, 期望Sarsa算法

    强化学习(五) - 时序差分学习(Temporal-Difference Learning)及其实例 5.1 TD预测 例5.1 回家时间的估计 5.2 TD预测方法的优势 例5.2 随机移动 5.3 ...

  6. 强化学习(五)—— AlphaGo与Alpha Zero

    强化学习(五)-- AlphaGo与Alpha Zero 1. AlphaGo 1.1 论文链接 1.2 输入编码(State) 1.3 训练及评估流程 1.4 模仿学习(Behavior Cloni ...

  7. 2020-4-5 深度学习笔记17 - 蒙特卡罗方法 3 ( 马尔可夫链蒙特卡罗方法MCMC-先验分布/后验分布/似然估计,马尔可夫性质)

    第十七章 蒙特卡罗方法 中文 英文 2020-4-4 深度学习笔记17 - 蒙特卡罗方法 1 (采样和蒙特卡罗方法-必要性和合理性) 2020-4-4 深度学习笔记17 - 蒙特卡罗方法 2 ( 重要 ...

  8. 强化学习系列(一):强化学习简介

    一.强化学习是什么? 首先,我们思考一下学习本身,当一个婴儿在玩耍时可能会挥舞双手,左看右看,没有人来指导他的行为,但是他和外界直接通过了感官进行连接.感知给他传递了外界的各种信息,包括知识等.学习的 ...

  9. 【机器学习入门到精通系列】蒙特卡罗方法简介和代码演示

    文章目录 1 蒙特卡罗方法简介 2 求圆周率pi的近似值 3 求定积分的近似值 1 蒙特卡罗方法简介 蒙特卡罗(Monte Carlo)方法:简单来说,蒙特卡洛的基本原理简单描述是先大量模拟,然后计算 ...

最新文章

  1. SPOJ LCS Longest Common Substring
  2. Altium Designer关闭板观察器,放大镜
  3. JSON数据格式:以及XML文件格式,YML文件格式,properties文件格式
  4. Visual Studio 2010中的UML
  5. SAP中国招聘内部顾问,工作职责是做客户项目,ABAP开发
  6. Sublime Text3(mac)一些插件和快捷键
  7. c++中int double 与char,string之间的转换
  8. 1.4 案例:广告预测、房价预测
  9. x86_64-linux-gnu/libgdk-x11-2.0.so: error adding symbols: DSO missing from command line
  10. Swift 模式匹配
  11. php soap header_PHP调用有SoapHeader认证的WebService实例
  12. 情感分析学习笔记(3)——情感传播(sentiment propagation)
  13. 通信LOGO隐秘史(设备商篇)
  14. 推荐一款STM32F030K6T6兼容替换灵动MM32F031K6T6
  15. 报考建行考计算机专业知识资料,建设银行信息技术类考试都考什么,有没有以前......
  16. php上传禁止php_文件上传限制绕过技巧
  17. 最优化方法(学习笔记)-第七章统计估计
  18. python自动下载邮件附件_Python邮件处理(收取、解码及附件下载)
  19. 【Paper】Short Term Electric Energy Consumption Prediction in in Smart Buildings Methods Survey
  20. [数学/质数筛] 素数筛法

热门文章

  1. 线性代数拾遗(3)—— “系数矩阵的秩” 和 “齐次线性方程组基础解系向量个数” 的关系
  2. Welearn的cookie值怎么获取?
  3. html、css做一个带搜索图标的搜索框
  4. 三十六计珍藏版(上)
  5. B站才是头条系的大敌
  6. 简易PC基准测试丨PerformanceTest功能简介
  7. 浅析GPU计算——CPU和GPU的选择
  8. NEAR官方文档翻译(三)基础(Basics)- 数据存储(Data Storage)
  9. 简单的android小程序计算机,Android实现简易计算器小程序
  10. Vue 之 echarts 图表数据可视化的基础使用(简单绘制各种图表、地图)