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

一、前言

在强化学习系列(四):动态规划中,我们介绍了采用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 问题

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

回想一下,我们在第二章中提到的多臂老虎机问题,假设给定一个策略 π π ,对任意state,每次摇动拉杆都按照策略 π π 选择action。需要估计state-value function vπ(s) v π ( s ) 。老虎机每次摇动拉杆获得的数据是 S,A,R S , A , R ,仅包含一个state 和 一个 action。要估计某一特定state s 的value function 可以根据统计多次采样中出现state 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)+1 N ( s ) ← N ( s ) + 1
increment total reward S(s)S(s)+R S ( s ) ← S ( s ) + R
Value is estimated by mean reward 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 ) as N(s) N ( s ) → ∞


而很多问题远比老虎机问题复杂,因为每次采样所获得的采样数据是一系列的state、action、reward,如 S0,A0,R1,...,ST1,AT1,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 t t that state s is visited in an episode,
increment counter N(s)N(s)+1 N ( s ) ← N ( s ) + 1
increment total return S(s)S(s)+Gt S ( s ) ← S ( s ) + G t
(where Gt=Rt+1+γRt+2+...+γT1RT G t = R t + 1 + γ R t + 2 + . . . + γ T − 1 R T )
Value is estimated by mean reward 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 ) as N(s) N ( s ) → ∞



Every-Visit MC policy evaluation (Average Return)

To evaluate state s
Every time-step t t that state s is visited in an episode,
increment counter N(s)N(s)+1 N ( s ) ← N ( s ) + 1
increment total return S(s)S(s)+Gt S ( s ) ← S ( s ) + G t
(where Gt=Rt+1+γRt+2+...+γT1RT G t = R t + 1 + γ R t + 2 + . . . + γ T − 1 R T )
Value is estimated by mean reward 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 ) as N(s) N ( s ) → ∞


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

2.2 incremental Mean

上一小节中,我们介绍了first-visit MC,但是在实际编程时我们会面临计算速度和存储量的问题,这里我们需要一个小trick,那就是incremental mean。
首先考虑简单的求平均问题:
强化学习系列(五):蒙特卡罗方法(Monte Carlo)_第1张图片
将推导出的迭代公式,运用到Monte Carlo Prediction中,得到:
强化学习系列(五):蒙特卡罗方法(Monte Carlo)_第2张图片

三、Monte Carlo Control

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

3.1 Monte Carlo Estimation of Action Values

在DP求解MDP中,环境模型已知,我们根据策略估计出的state-value v(s) v ( s ) ,往前看一步,根据Bellman optimality backup 图:
强化学习系列(五):蒙特卡罗方法(Monte Carlo)_第3张图片
可知,要根据state-value v(s) v ( s ) 推出最优策略,需要确切的知道状态转移概率 Pass P s s ′ a , 这属于环境信息。此时假设环境完全未知,那么不能仅仅根据state-value v(s) v ( s ) 来获得最优策略,必须精确的估计每一个action的values来决定如何选择策略。因此 Monte Carlo的主要目标是估计最优action-value function q q ∗

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

但是如果 π π 是一个确定性策略,即在state s下有确定的action a, 那么其他action aa a ′ ≠ a ,在state s下将不会被选择,简言之,我们可能永远无法获得这样的state-action pair(s,a’)。这意味着该方法的探索率不足,为了保证Monte Carlo有效作用与所有state-action pair,平衡Exploration 和explicit 的矛盾,这里假设每个episode的初始state-action pair 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:
强化学习系列(五):蒙特卡罗方法(Monte Carlo)_第4张图片
这一过程可以描述为从任意一个给定策略 π0 π 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πk q π k 选择greedy Policy πk+1 π k + 1 来完成。Policy improvement 原理在本问题中证明如下:

强化学习系列(五):蒙特卡罗方法(Monte Carlo)_第5张图片
在Policy evaluation中我们假设要进行无限次采样,才能准确估计出 action-value function。但实际运用中,我们考虑前后两次估计的差值小于一个误差值,就可以近似准确估计 action-value function。接下来我们看带着Exploring Starts假设的算法伪代码:
强化学习系列(五):蒙特卡罗方法(Monte Carlo)_第6张图片

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的策略 π π (target policy) 是两个不同的策略。

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

下面将证明这种策略选取方式可以逼近最优策略,假设 π π ′ ϵ ϵ -greedy policy,对任意state s运用Policy improvement理论:
强化学习系列(五):蒙特卡罗方法(Monte Carlo)_第7张图片
这里写图片描述

采用 ϵ ϵ -greedy policy 的on-Policy算法伪代码为:
强化学习系列(五):蒙特卡罗方法(Monte Carlo)_第8张图片

3.4 off-policy Prediction via importance sampling

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

在off-policy中常采用importance sampling从一个分布来估计另一个分布的期望值。从state St S t 开始,获得满足policy π π 的采样序列 At,St+1,At+1,...,ST A t , S t + 1 , A t + 1 , . . . , S T 的概率为

强化学习系列(五):蒙特卡罗方法(Monte Carlo)_第9张图片

因此,两个不同策略的采样比(importance-sampling ratio)可以表示为:
这里写图片描述

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


ordinary importance sampling
这里写图片描述

weighted importance sampling
这里写图片描述


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

  • ordinary importance sampling是无偏估计,而weighted importance sampling是有偏估计。(当仅仅计算一次采样时,weighted importance sampling的分子和分母约去只剩下 Gt G 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节中给每个 Gt G t 乘以 tJ(s)ρt:T(t)1|J(s)| ∑ t ∈ J ( s ) ρ t : T ( t ) − 1 | J ( s ) | 即可


Incremental Implementation for ordinary importance sampling

V(st)V(st)+α(tJ(s)ρt:T(t)1Gt|J(s)|V(St)) V ( s t ) ← V ( s t ) + α ( ∑ t ∈ J ( s ) ρ t : T ( t ) − 1 G t | J ( s ) | − V ( S t ) )


而weighted importance sampling较为复杂,假设我们有一系列的returns G1,G2,..,Gn1 G 1 , G 2 , . . , G n − 1 都从同一个state开始,且每一个有相关的权重 Wi(Wi=ρt:T(t)1) W i ( W i = ρ t : T ( t ) − 1 ) ,我们期望估计:
这里写图片描述


Incremental Implementation for weighted importance sampling

V(n+1)=V(n)+WnCn[GnV(n)), n1 V ( n + 1 ) = V ( n ) + W n C n [ G n − V ( n ) ) ,   n ≥ 1

Cn+1=Cn+Wn+1 C n + 1 = C n + W n + 1


采用off-policy MC 进行policy evaluation 的算法伪代码如下:
强化学习系列(五):蒙特卡罗方法(Monte Carlo)_第10张图片

3.6 Off-policy Monte Carlo Control

上一小节介绍了off-policy MC 进行policy evaluation 的算法,结合3.2节中的Policy improvement 可以得到 Off-policy Monte Carlo Control的算法伪代码:
强化学习系列(五):蒙特卡罗方法(Monte Carlo)_第11张图片

四、总结

本章针对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

你可能感兴趣的:(强化学习)