[归纳]强化学习导论 - 第五章:蒙特卡洛方法

1.本章内容概要

这一章我们考虑第一种同时估计值函数和找到最优策略的学习方法。和之前不同,我们不再假设已知环境模型(这是实际中最可能的情况),蒙特卡洛(Monte Carlo, MC)方法只需要和真实/仿真环境交互的经验(state, action, reward)就行了。从仿真环境中学习也是非常有价值的,此时我们只需要状态转移就行(transitions, s, r, s’),很多时候这是容易的,但是很难获得四参数形式的环境概率模型。

MC方法是基于样本returns均值的,因此我们只考虑episodic任务,因为我们需要对在多个episodes中出现的s的returns取平均。只有在完整的episode结束后,才能用MC方法估计值函数和提升策略,因此MC方法是episode-by-episode的,而不是step-by-step(online)的。

MC方法采样并平均每个state-action对,类似于我们在multi-armed bandits中的做法,但是这里将有多个状态(associative or contextual),因此每个state-action对的值与后续状态及策略有关,而因为我们可能不断在提升策略,因此本章讨论的问题也是nonstationary的。

MC方法是基于GPI的,但与DP不同,我们是利用和环境交互的样本来学习值函数的,然后在此基础上提升策略。类似地,我们也先讨论prediction问题,然后讨论策略提升问题,最后讨论基于GPI的control问题。

2.蒙特卡洛预测

我们考虑通过MC方法学习一个给定策略的state-value函数(回忆下,state-value是从当前状态开始的期望累积未来折扣回报(expected return))。很自然地,我们会考虑利用 G t , i ( s ) G_{t, i}(s) Gt,i(s)的平均值作为state-value的估计。而为了计算returns,我们必须要等一个完整的episode结束才行。

我们根据策略 π \pi π生成一些episodes,状态s的每次出现都叫做对s的一次visit,而在一个episode中,状态s可能出现多次,也可能不出现。MC方法一般分为first-visit MC和every-visit MC,前者只考虑在一个episode中s第一次出现的return,后者则考虑所有。在理论上对first-visit MC研究较多,every-visit MC则能更容易地扩展到函数拟合方式(与表格法对应)和资格迹,后面会详细讨论,这里主要讨论first-visit MC。

两种MC都能收敛到 v π ( s ) v_\pi(s) vπ(s),只要保证每个s能visit无数次,这对于first-visit MC是显而易见的,因为不同i时 G t , i ( s ) G_{t, i}(s) Gt,i(s)独立,且均值是无偏估计,估计的标准差按照 1 / n 1/\sqrt{n} 1/n 下降;对于every-visit MC,则也已经有研究者给出了分析,其二次地收敛到真值。

example 5.1 Blackjack
就是21点问题。所有的花牌(face cards)都当作10点,王牌(ace)可以当作1点或者11点,其它牌就根据其数字大小,如果谁的点数之和超过21点(bust)则就输了;否则谁的点数之和接近21点就获胜。游戏开始庄家(dealer)和玩家(player)各发 2 张牌,庄家的牌一张向上一张向下,如果任何人没有出现21点(natural)[出现的话21点的一方获胜],player和dealer可轮流决定是否拿牌(hits or sticks)。dealer的策略我们固定住,如果小于17就hits,否则sticks。
这是一个典型的episodic finite MDP,记player胜利,失败,平局的reward分别为+1,-1,0,不折扣。player动作空间 A ( s ) ∈ { h i t s , s t i c k s } A(s)\in \{hits, sticks\} A(s){ hits,sticks},状态则有三个维度,手牌的大小、dealer正面牌的大小、手中是否有王牌(只要不bust就当作11),我们假设牌堆中各种牌的比例始终不变,根据这三个维度的状态决策。
对于player,我们也设定固定的策略:大于等于20就sticks,否则就hits。采用MC方法估计各个状态的值,注意包含王牌的情况收敛得更慢一些,因为这些状态更罕见。手牌点数我们从12开始考虑,因为小于12肯定是要hits的。在这个问题中 first-visit MC 和 every-visit MC 是一样的,因为在一局游戏中不可能出现两个相同的状态。那么,你能解释图中一些现象的原因吗?

在example 5.1中,虽然我们有任务的完整模型,但是我们还是无法应用DP方法,因为计算 p ( r , s ′ ∣ s , a ) p(r,s'|s,a) p(r,ss,a)很困难。但是MC方法不需要四参数环境模型,因此能更轻松地解决这类问题。

我们可以画出MC方法的backup diagram。

MC方法的backup diagram实际是一条从开始到终止的轨迹,只用samples更新,而DP方法则需要在每个状态上考虑所有的后续状态,且只包含one-step transitions。且MC独立地估计每个值,而DP是bootstrapping的,并不独立。

MC方法的优势:

  1. 单个状态的值估计的计算代价与状态数量之间独立,因此可以只处理我们感兴趣的状态;
  2. 可以从实际经验和仿真经验中学习;
  3. 不需要完整的环境模型;
  4. 无偏。

example 5.2 Soap Bubble
一个不规则的铁丝框,放到肥皂水里拿出来,会产生一个薄膜,不考虑重力,如何计算薄膜上指定点的高度(薄膜的形状)?我们考虑约束:某个点的高度是临近一个小圆内的点的高度的平均。则可以把这个区域划分为网格,然后把线框上的格子的高度约束在线框的高度上,然后迭代计算各个格子的高度(每个格子高度为周围四个的平均)。

这个问题是MC方法最初被设计的目的。如果我们只对某个点或者区域感兴趣,我们就从这个点出发,以1/4的概率随意选择方向,直到碰到边界返回边界的高度作为reward,其它位置的reward设为0。然后无折扣地,我们就可以通过这个点或者区域的状态值的平均估计高度了。

3.动作值的蒙特卡洛估计

如果我们没有四参数模型 p ( r , s ′ ∣ s , a ) p(r,s'|s,a) p(r,ss,a)(这是很常见的),则只有state value函数就不够了,因为我们无法得知当前状态下采取动作后状态会如何变化,因而就无法去选择那个导致值最大的动作:

max ⁡ a ∑ s ′ , r p ( s ′ , r ∣ s , a ) [ r + γ v ∗ ( s ′ ) ] \max\limits_a\sum_{s',r}p(s',r|s,a)[r+ \gamma v_*(s')] amaxs,rp(s,rs,a)[r+γv(s)]

因此我们必须评估action value函数 q π ( s , a ) q_\pi(s, a) qπ(s,a)。评估action value函数类似于评估state value函数,不过是考虑成state-action对,我们把对state-action对的visit的return取平均。action value的MC方法的收敛性与state value情形类似,且也分为first visit与every visit两种方法。

通过MC方法估计动作值函数,估值量会上升到 ∣ S ∣ ∗ ∣ A ∣ |S|*|A| SA,而且很多状态-动作对可能永远不会被visit,尤其是 π \pi π是确定性的时候这个问题尤其严重,这就很难指导我们提升策略了(策略提升要求我们对状态s下所有的state-action对的值函数都估计地较准确)。因此必须想办法计算所有的state-action对的值,这叫做maintaining exploration问题。解决办法:

  1. exploring starts:指定从某个(s, a)开始,保证以所有的state-action对开端的概率不为0,后面再按照策略选择和计算。这在和实际环境交互学习时无用,且可能会组合爆炸;
  2. 采用随机策略保证每个(s,a)都有出现的概率(ε-greedy也是可行的)。

本章后面的讨论暂时假定采用exploring starts的方式。

4.蒙特卡洛控制

control指得到最优策略的过程。后面我们把值函数估计都叫做prediction,策略提升叫做improvement,把prediction与improvement的配合叫做control。类似于DP,我们也从GPI(参见上一章)出发。回顾上一章的内容,GPI的过程为:

在这里插入图片描述
evaluation与improvement相互竞争,每个都为对方创造了一个移动的目标,但是合在一起导向了全局最优的值函数与全局最优的策略。

在这里插入图片描述

MC评估值函数需要多个完整的episodes,因此如上图,首先从初始策略 π 0 \pi_0 π0出发,仿真多轮得到a complete policy evaluation(收敛) q k ( s , a ) q_k(s, a) qk(s,a),在此基础上利用策略提升方法 π k + 1 ( s ) ≐ arg ⁡ max ⁡ a q ( s , a ) \pi_{k+1}(s) \doteq \arg \max_a q(s,a) πk+1(s)argmaxaq(s,a),得到a complete policy improvement(每个state都greedy地选择动作),反复迭代直到收敛。之所以在策略提升中greedy,是因为:

q π k ( s , π k + 1 ( s ) ) = q π k ( s , arg ⁡ max ⁡ a q π k ( s , a ) ) = max ⁡ a q π k ( s , a ) ≥ q π k ( s , π k ( s ) ) ≥ v π k ( s ) \begin{aligned} q_{\pi_k} (s, \pi_{k+1}(s)) &= q_{\pi_k}(s, \arg \max_a q_{\pi_k}(s,a)) \\ &= \max_a q_{\pi_k}(s,a) \\ & \geq q_{\pi_k}(s, \pi_k(s)) \\ & \geq v_{\pi_k}(s) \end{aligned} qπk(s,πk+1(s))=qπk(s,argamaxqπk(s,a))=amaxqπk(s,a)qπk(s,πk(s))vπk(s)

上述推导中,应该留意最后一步为什么成立。这是因为如果策略是soft的,那么 v v v应该是比 q ( s , π k ) q(s, \pi_k) q(s,πk)小的。

因而满足上一章介绍的策略提升定理。因此可见,MC方法不需要环境模型就能找到最优策略。

但是这其中有两个要求:任务可以进行无限多的episodes;并且结合exploring starts保证探索性。显然这两个假设都不太现实。为了得到一个实际可行的策略,我们必须去掉这两个假设。我们先来解决第二个假设,第一个假设留到下一小节,有两种解决办法,这两种方法都是参考自DP的policy iteration与value iteration的:

  1. 类似policy iteration中的方法,保证每次估计误差(更新量)在一定范围内就行;
  2. 放弃准确估计值函数,类似value iteration中的方法,只让值函数向着真值前进一小步,就开始提升策略。这应该比第一种效率更高。

这两种办法的有效性由GPI保证。第二种方法如果按照episode-by-episode执行,就是每个episode进行一次Bellman最优迭代更新,则算法称为:MC with Exploring Starts,MCES。

关于算法的几个注意事项:

  1. 这是first-visit的,因此unless那句的含义是,只有在 S 0 , A 0 , . . . , S t − 1 , A t − 1 S_0, A_0, ..., S_{t-1}, A_{t-1} S0,A0,...,St1,At1中不包含 S t , A t S_t, A_t St,At对时,才执行。
  2. 该算法可以容易地改成迭代的形式,这样就不必为了求均值保存所有的returns了。
  3. 第一/二章中我们说明了非平稳过程问题(本算法就是,因为策略一直在变化),我们应该更信任最近的returns,而上述算法中是直接平均的,但是当算法循环无穷episodes时,前面不准确returns的影响会被稀释掉,因此也能达到全局最优。这个全局最优不动点看起来一定会达到,但是到现在为止却还没有完全证明。

example 5.3 Solving Blackjack
回到21点问题。随机初始化(无论什么状态hits/sticks都等概率,回忆下状态实际上有三个维度),值函数最初都设置为0,然后利用上面的方法寻找最好的策略,下图展示了这个版本21点问题的最优策略。

5.无探索性起点的蒙特卡洛控制

如何避免MCES的exploring starts假设呢?只要保证能无限地持续选中它们就行了,有两种策略:on-policyoff-policy。on-policy指产生样本的策略(behavior policy)和被估计的策略(target policy)是同一个策略,而off-policy则指behavior policy与target policy不同。MCES可以基于on-policy扩展,从而不依赖exploring starts,也可以根据off-policy扩展。我们这一节讨论on-policy情形。

on-policy去除exploring starts的方法是:保证每个状态下所有动作的被选概率都不为0(soft-policy),即 π ( a ∣ s ) > 0 \pi(a|s) > 0 π(as)>0,且逐渐地趋近于最优确定性策略,第二章我们讨论了很多达成这个目的的办法,这里我们采用 ϵ − g r e e d y \epsilon-greedy ϵgreedy方法,即以 1 − ϵ + ϵ ∣ A ( s ) ∣ 1-\epsilon+\frac{\epsilon}{|A(s)|} 1ϵ+A(s)ϵ的概率选择greedy动作,以 ϵ ∣ A ( s ) ∣ \frac{\epsilon}{|A(s)|} A(s)ϵ的概率选择其它动作。 ϵ − g r e e d y \epsilon-greedy ϵgreedy策略是 ϵ − s o f t \epsilon-soft ϵsoft策略的一种,而 ϵ − s o f t \epsilon-soft ϵsoft要求 π ( a ∣ s ) ≥ ε ∣ A ( s ) ∣ \pi(a|s) \geq \frac{\varepsilon}{|\mathcal{A}(s)|} π(as)A(s)ε。ε-greedy是ε-soft策略中比较趋近于greedy的一种。

soft-policy, ϵ − s o f t \epsilon-soft ϵsoft ϵ − g r e e d y \epsilon-greedy ϵgreedy的关系如下图[1]:

基于on-policy的不需要exploring starts的first-visit MC方法,也是在GPI框架下的。基于GPI和ε-greedy,我们最终能得到一个还不错的策略,我们可以让 ϵ \epsilon ϵ的值逐渐降低从而得到全局最优策略。

注意算法中初始化策略为任意 ϵ − s o f t \epsilon-soft ϵsoft策略,那么为什么 ϵ − g r e e d y \epsilon-greedy ϵgreedy能改善它呢?这里证明一下:

v π ′ ( s ) = ∑ a π ′ ( a ∣ s ) q π ( s , a ) = ε ∣ A ( s ) ∣ ∑ a q π ( s , a ) + ( 1 − ε ) max ⁡ a q π ( s , a ) ≥ ε ∣ A ( s ) ∣ ∑ a q π ( s , a ) + ( 1 − ε ) ∑ a π ( a ∣ s ) − ε ∣ A ( s ) ∣ 1 − ε q π ( s , a ) = ε ∣ A ( s ) ∣ ∑ a q π ( s , a ) − ε ∣ A ( s ) ∣ ∑ a q π ( s , a ) + ∑ a π ( a ∣ s ) q π ( s , a ) = v π ( s ) \begin{aligned} v_{ {\pi}'}(s) &= \sum_a \pi'(a|s) q_\pi (s,a) \\ &= \frac{\varepsilon}{|\mathcal{A}(s)|} \sum_a q_\pi (s,a) + (1-\varepsilon) \color{red} { \max_a q_\pi (s,a) } \\ & \geq \frac{\varepsilon}{|\mathcal{A}(s)|} \sum_a q_\pi (s,a) + (1-\varepsilon) \color{red} {\sum_a \frac{\pi(a|s) - \frac{\varepsilon}{|\mathcal{A}(s)|}}{1 - \varepsilon} q_\pi (s,a) } \\ &= \frac{\varepsilon}{|\mathcal{A}(s)|} \sum_a q_\pi (s,a) - \frac{\varepsilon}{|\mathcal{A}(s)|} \sum_a q_\pi (s,a) + \sum_a \pi(a|s) q_\pi(s,a) \\ &= v_\pi(s) \end{aligned} vπ(s)=aπ(as)qπ(s,a)=A(s)εaqπ(s,a)+(1ε)amaxqπ(s,a)A(s)εaqπ(s,a)+(1ε)a1επ(as)A(s)εqπ(s,a)=A(s)εaqπ(s,a)A(s)εaqπ(s,a)+aπ(as)qπ(s,a)=vπ(s)

其中,不等号那一行之所以成立,是因为:

∑ a π ( a ∣ s ) − ε ∣ A ( s ) ∣ 1 − ε = 1 1 − ε [ ∑ a π ( a ∣ s ) − ∑ a ε ∣ A ( s ) ∣ ] = 1 1 − ε [ 1 − ε ] = 1 \color{red} {\sum_a \frac{\pi(a|s) - \frac{\varepsilon}{|\mathcal{A}(s)|}}{1 - \varepsilon}} = \frac{1}{1 - \varepsilon} \left[ \sum_a \pi(a|s) - \sum_a \frac{\varepsilon}{|\mathcal{A}(s)|} \right] = \frac{1}{1 - \varepsilon}[1 - \varepsilon] =1 a1επ(as)A(s)ε=1ε1[aπ(as)aA(s)ε]=1ε1[1ε]=1

这相当于对 q π ( s , a ) q_\pi(s, a)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值