一、Introduction
(一)Model-Free Reinforcement Learning
- Last lecture:
- Model-free prediction
- 估计一个未知MDP的价值函数
- This lecture:
- Model-free Control
- 优化一个未知MDP的价值函数
(二)Uses of Model-Free Control
可以建模为MDP的一些示例问题:
- Helicopter
- Game of Go
- Robot walking
对于大多数这些问题,可以:
- MDP模型是未知的,但是经验可以抽样
- MDP模型是已知的,但是太大了,只能通过抽样使用
Model-free control可以解决这些问题
(三)On and Off-Policy Learning
- On-policy learning
-"Learn on the job"- 从的经验中学习策略
学习所用的经验都是由当前要学习策略生成的。
同轨策略实际上是一种妥协-它并不学习最优策略的动作值,而是学习一个接近最优而且仍能进行试探的策略的动作值。
- 从的经验中学习策略
- Off-policy learning
- Look over someone's shoulder
- 从的经验中学习策略
学习所用的策略不是由当前要学习的策略生成的。
采用两个策略,一个用来学习并最终成为最优策略,另一个更加具有试探性,用来产生智能体的行动样本。用来学习的策略称之为目标策略,用来生成行动样本的策略称为行动策略,在这种情况下,我们认为学习所用的数据“离开”了待学习的目标策略,因此整个过程被称为离轨策略学习。
二、On-Policy Monte-Carlo Control
(一)Generalised Policy Iteration (Refresher)广义策略迭代
蒙特卡洛评估的广义策略迭代
两个问题
- 过程比较缓慢,要做更多的尝试
- 加入贪婪策略并不能保证你的轨迹能够探索到整个状态空间。
使用动作值函数的无模型策略迭代
- 应用贪婪策略改进 需要MDP模型
需要MDP找到和贪婪策略相关的状态值函数,需要状态已知。但是在model-free情况下,并不知道这些动态状态。 - 对的贪婪策略改进是model-free的
只需要找到一个使得Q值最大的action,通过将行为的函数值量化,减少了需要寻找模型的负担,不再需要一个model来提前预判。
(二)Exploration
Exploration
- 确保连续探索的最简单方法
- 以非零概率尝试所有m个动作
- 以的概率选择贪婪的行为
- 以概率随机选择一个动作
为总的action的个数,每个随机选择每个action的概率为
选择最优action的概率为总概率1减去选择其余次优个action的概率和,
Policy Improvement
定理:
注:在证明上述定理过程中使用的不等式是在经过合理、精心设计的。
因此,根据策略改进定理:
Monte-Carlo Policy Iteration
图中每一个向上或向下的箭头都对应着多个Episode。也就是说我们一般在经历了多个Episode之后才进行依次Q函数更新或策略改善。实际上我们也可以在每经历一个Episode之后就更新Q函数或改善策略。但不管使用那种方式,在Ɛ-贪婪探索算下我们始终只能得到基于某一策略下的近似Q函数,且该算法没没有一个终止条件,因为它一直在进行探索。因此我们必须关注以下两个方面:
- 一方面我们不想丢掉任何更好信息和状态
- 另一方面随着我们策略的改善我们最终希望能终止于某一个最优策略,因为事实上最优策略不应该包括一些随机行为选择。为此引入了另一个理论概念:GLIE。
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。例如如果我们取 = 1/k(k为探索的Episode数目),那么该Ɛ-贪婪蒙特卡洛控制就具备GLIE特性。
确保策略会收敛于一个贪婪的策略。因为我们需要这个策略最终能够满足贝尔曼方程,最终得到最大的那个q值。想要达到这个目的有一个方法,
- 例如,如果从1/k逐渐减小到0 是GLIE
GLIE Monte-Carlo Control
- 用policy取样第k个episode:~
- 遍历这个episode内的每个状态和,
-
基于新的行动价值函数改进策略
k为探索的Episode数目
三、On-policy Temporal-Difference Learning
MC vs. TD Control
- 时序差分学习(TD)相对蒙特卡洛学习(MC)具有多个优势
- 较低的方差
- 在线
- 序列不完整
- Natural idea: 在我们的控制循环中用 TD 代替 MC
- Apply TD to Q(S;A)
- Use policy improvement
- Update every time-step
(一)Sarsa()
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
- 考虑时的n-step return
-
定义 n-step Q-return
- 朝着n-step Q-return用n-Step Sarsa更新Q(s,a)
6、Forward View Sarsa()
- return组合了所有n步Q-return
- 用权重
- Forward View Sarsa()
7、Forward View Sarsa()
- 就像TD(), 我们在在线算法中使用资格迹(eligibility traces)
- 但是Sarsa()对每个状态-动作对都有一个资格迹
- Q(s,a)针对每个状态s和动作a更新
- 与TD误差和资格迹成比例
8、Backward View Sarsa()
- 就像,我们在在线算法中使用资格迹
- 但是对每个状态-动作对都有一个资格迹
- Q(s,a)针对每个状态s和动作a更新
- TD-error和资格迹成比例
9、Sarsa() Algorithm
10、Sarsa() Gridworld Example
四、Off-Policy learning
- 评估目标策略以计算或
- 遵循行动策略生成序列:
- Why is this important?
- 观察人类或其他代理进行学习
- 重复利用旧的策略产生的经验
- 在遵循探索性策略的同时了解最佳策略
- 遵循一项策略时学习多种策略
(一)Importance Sampling
-
估计不同分布的期望
1、Importance Sampling for Off-Policy Monte-Carlo
- 用中得到的TD target来评估
- 通过Importance Sampling 对TD target进行加权
- 只需要一次重要性抽样校正
使用TD方法在遵循一个策略的同时评估另一个策略
这个公式可以这样解释:个体处在状态中,基于策略产生了一个行为,执行该行为后进入新的状态,那么在当前策略下如何根据新状态的价值调整原来状态的价值呢?离线策略的方法就是,在状态时比较分别依据另一个策略和当前遵循的策略产生行为的概率大小,如果策略得到的概率值与遵循当前策略得到的概率值接近,说明根据状态价值来更新的价值同时得到两个策略的支持,这一更新操作比较有说服力。同时也说明在状态时,两个策略有接近的概率选择行为
假如这一概率比值很小,则表明如果依照被评估的策略,选择的机会很小,这时候我们在更新价值的时候就不能过多的考虑基于当前策略得到的状态的价值。同样概率比值大于1时的道理也类似。这就相当于借鉴被评估策略的经验来更新我们自己的策略。 - 方差比蒙特卡洛重要性抽样低得多
- 策略只需一步就可以相似
2、Q-Learning
- 现在我们考虑行动-价值Q(s,a)的离线学习
- No importance sampling is required
- 使用行为策略选择下一个action
- 但是我们考虑替代性的后续行动
- 朝着替代动作的价值方向更新
基于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学习目标可以简化为:
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学习。