Lecture 5: Model-Free Control

2019-12-16  本文已影响0人  六回彬

一、Introduction

(一)Model-Free Reinforcement Learning

(二)Uses of Model-Free Control

可以建模为MDP的一些示例问题:

对于大多数这些问题,可以:

Model-free control可以解决这些问题

(三)On and Off-Policy Learning

二、On-Policy Monte-Carlo Control

(一)Generalised Policy Iteration (Refresher)广义策略迭代

蒙特卡洛评估的广义策略迭代


两个问题

使用动作值函数的无模型策略迭代

(二)Exploration

\epsilon -GreedyExploration

\epsilon -Greedy Policy Improvement

定理:




注:在证明上述定理过程中使用的不等式是在经过合理、精心设计的。

每一个行为的可能性,加上选择贪婪策略的可能性。现在贪婪策略时,q的最大值需要至少和你所有行为q值的权重总和一样好。选择一个精心设计的特定的权重 ,经过整理。
因此,根据策略改进定理:

Monte-Carlo Policy Iteration


图中每一个向上或向下的箭头都对应着多个Episode。也就是说我们一般在经历了多个Episode之后才进行依次Q函数更新或策略改善。实际上我们也可以在每经历一个Episode之后就更新Q函数或改善策略。但不管使用那种方式,在Ɛ-贪婪探索算下我们始终只能得到基于某一策略下的近似Q函数,且该算法没没有一个终止条件,因为它一直在进行探索。因此我们必须关注以下两个方面:

Monte-Carlo Control

在一个episode后马上进行策略改进。
我们需要找到两个事情之间的平衡,其中一个是我们需要继续探索,但要保证探索的过程中并没有遗漏掉更好的策略,另一方面是,我们已经有了一个策略,就不想再探索了。我们觉得找到的已经是最好的了,不包括随机的情况。

(三)GLIE

定义
Greedy in the Limit with Infinite Exploration (GLIE)在有限状态下进行无穷探索的贪婪策略
它能够适应你所策划出的任何探索模式,只要它符合以下两个条件,

GLIE(Greedy in the Limit with Infinite Exploration),直白的说是在有限的时间内进行无限可能的探索。具体表现为:所有已经经历的状态行为对(state-action pair)会被无限次探索;另外随着探索的无限延伸,贪婪算法中Ɛ值趋向于0。例如如果我们取\epsilon = 1/k(k为探索的Episode数目),那么该Ɛ-贪婪蒙特卡洛控制就具备GLIE特性。

确保策略会收敛于一个贪婪的策略。因为我们需要这个策略最终能够满足贝尔曼方程,最终得到最大的那个q值。想要达到这个目的有一个方法,

GLIE Monte-Carlo Control

三、On-policy Temporal-Difference Learning

MC vs. TD Control

(一)Sarsa(\lambda)

Updating Action-Value Functions with Sarsa

SARSA的名称来源于下图所示的序列描述:针对一个状态S,以及一个特定的行为A,进而产生一个状态行为对(S,A),与环境交互,环境收到个体的行为后会告诉个体即时奖励R以及后续进入的状态S';接下来个体遵循现有策略产生一个行为A',根据当前的状态行为价值函数得到后一个状态行为对(S',A')的价值(Q),利用这个Q值更新前一个状态行为对(S,A)的价值。


更直观的解释是这样:一个Agent处在某一个状态S,在这个状态下它可尝试各种不同的行为,当遵循某一策略时,会根据当前策略选择一个行为A,个体实际执行这个行为,与环境发生实际交互,环境会根据其行为给出即时奖励R,并且进入下一个状态S’,在这个后续状态S’,再次遵循当前策略,产生一个行为A’,此时,个体并不执行该行为,而是通过自身当前的状态行为价值函数得到该S’A’状态行为对的价值,利用该价值同时结合个体S状态下采取行为A所获得的即时奖励来更新个体在S状态下采取A行为的(状态)行为价值。

1、On-Policy Control With Sarsa


每一个时间步,也就是在单个Episode内每一次个体在状态采取一个行为后都要更新Q值,同样使用-贪婪探索的形式来改善策略。

2、Sarsa Algorithm for On-Policy Control


注:
算法中的Q(s,a)是以一张大表存储的,这不适用于解决规模很大的问题;

对于每一个Episode,在S状态时采用的行为A是基于当前策略的,同时该行为也是实际Episode发生的行为,在更新SA状态行为对的价值循环里,个体并不实际执行在S’下的A’行为,而是将行为A’留到下一个循环执行。

3、Convergence of Sarsa


定理:满足如下两个条件时,Sarsa算法将收敛至最优行为价值函数。
条件一:任何时候的策略符合GLIE特性;
条件二:步长系数满足:

4、Windy Gridworld Example

下方展示的是一个带有起始状态和终止状态的网格世界。相比标准的网格世界有一点不同:在网格中存在穿过中间部分的向上的侧风。智能体在的动作包括4种,上下左右,不过在中间区域,智能体执行完动作所到达的状态会被“风”向上吹一点。



每一列的风力是不同的,风力的大小用向上吹的格数表示,写在了每列的下方。这是一个不带折扣的分幕式任务,在这个任务中,在到达目标之前,每步会收到恒定为-1的收益。

Sarsa on the Windy Gridworld


上图显示了在这个任务中使用-贪心的Sarsa的任务的结果(横轴是逐幕累积起来的智能体的总步数,纵轴是智能体成功到达状态的总次数,也即完成任务的总幕数),其中,对于所有的s,a进行同样的初始化,Q(s,a)=0。通过图中逐渐变大的斜率可以看出,随着时间的推移,目标达成越来越快。在8000步的时候,贪心策略已经达到最优很久了(图中显示了它的一个轨迹);持续-贪心试探导致每幕的平均长度(即任务的平均完成时间)保持在17步左右,比最小值15多了两步。需要注意,不能将蒙特卡洛方法应用到此处,因为不是所有策略都保证能终止。如果我们发现某个策略使智能体停留在一个状态内,那么下一幕任务就永远不会开始。诸如Sarsa这样一步一步的学习方法则没有这个问题,因为它在当前幕运行过程中很快就能学习当前的策略,而它不够好,然后就会切换到其他的策略。

5、n-Step Sarsa

6、Forward View Sarsa(\lambda)

7、Forward View Sarsa(\lambda)

8、Backward View Sarsa(\lambda)

9、Sarsa(\lambda) Algorithm

10、Sarsa(\lambda) Gridworld Example

四、Off-Policy learning

(一)Importance Sampling

1、Importance Sampling for Off-Policy Monte-Carlo

2、Q-Learning

基于TD(0)的Q-学习(Q-learning)。它的要点在于,更新一个状态行为对的Q价值时,采用的不是当前遵循策略的下一个状态行为对的Q价值,而是采用的待评估策略产生的下一个状态行为对的Q价值。公式如下:


式中,红色部分的TD目标是基于另一个估策略产生的行为A'得到的Q价值。Q学习最主要的表现形式是:个体遵循的策略是基于当前状态行为价值函数Q(s,a)的一个策略,而目标策略是基于当前状态行为价值函数Q(s,a)不包含的单纯策略:

Off-Policy Control with Q-Learning

Q-Learning Control Algorithm


Q-Learning Algorithm for Off-Policy Control

Cliff Walking Example

图中悬崖用灰色的长方形表示,在其两端一个是起点,一个是目标终点。途中从悬崖指向起点的箭头提示悬崖同时也是终止状态。可以看出最优路线是贴着悬崖上方行走。


训练一小段时间后,Q学习学到了最优策略,即沿着悬崖边走的策略。不幸的是,由于动作是通过的方式选择的,因此在执行这个策略时,智能体偶尔会掉入悬崖,与此对比,sarsa则考虑了动作被选取的方式,学到了一条通过网格的上半部分的路径,这条路径虽然长但是更安全,。虽然Q学习实际上学到了最优策略的价值,其在线性能却比迂回策略的Sarsa更差。当然,如果逐步减小,那么两种方法都会渐渐收敛到最优策略。

五、Summary

Relationship Between DP and TD

下面两张图概括了各种DP算法和各种TD算法,同时也揭示了各种不同算法之间的区别和联系。总的来说TD是采样+有数据引导(bootstrap),DP是全宽度+实际数据。如果从Bellman期望方程角度看:聚焦于状态本身价值的是迭代法策略评估(DP)和TD学习,聚焦于状态行为对价值函数的则是Q-策略迭代(DP)和SARSA;如果从针对状态行为价值函数的Bellman优化方程角度看,则是Q-价值迭代(DP)和Q学习。


上一篇 下一篇

猜你喜欢

热点阅读