强化学习课程笔记(三)——不基于模型的预测与控制

第四章 不基于模型的预测

其中本章将聚焦于策略评估,也就是预测问题;下一章将利用本讲的主要观念来进行控制进而找出最优策略以及最有价值函数。
本章分为三个部分,将分别从理论上阐述基于完整采样的蒙特卡罗强化学习、基于不完整采样的时序差分强化学习以及介于两者之间的 λ 时序差分强化学习。这部分内容比较抽象,在讲解理论的同时会通过一些精彩的实例来加深对概念和算法的理解。

4.1蒙特卡罗强化学习

蒙特卡罗强化学习 (Monte-Carlo reinforcement learning, MC 学习):指在不清楚 MDP 状态转移概率的情况下,直接从经历完整的状态序列 (episode) 来估计状态的真实价值,并认为某状态的价值等于在多个状态序列中以该状态算得到的所有收获的平均。
完整的状态序列 (complete episode):指从某一个状态开始,个体与环境交互直到终止状态,环境给出终止状态的奖励为止。完整的状态序列不要求起始状态一定是某一个特定的状态,但是要求个体最终进入环境认可的某一个终止状态。
蒙特卡罗强化学习有如下特点:不依赖状态转移概率,直接从经历过的完整的状态序列中学习,使用的思想就是用平均收获值代替价值。理论上完整的状态序列越多,结果越准确。
我们可以使用蒙特卡罗强化学习来评估一个给定的策略。基于特定策略 π 的一个 Episode信息可以表示为如下的一个序列:
在这里插入图片描述

t 时刻状态 St 的收获可以表述为:
在这里插入图片描述

其中 T 为终止时刻。该策略下某一状态 s 的价值:
在这里插入图片描述

如果蒙特卡罗算法评估策略时要针对多个包含同一状态的完整状态序列求收获继而再取收获的平均值,那么我们有两种方法可以选择,一是仅把状态序列中第一次出现该状态时的收获值纳入到收获平均值的计算中;另一种是针对一个状态序列中每次出现的该状态,都计算对应的收获值并纳入到收获平均值的计算中。两种方法对应的蒙特卡罗评估分别称为:首次访问 (first visit) 和每次访问 (every visit) 蒙特卡罗评估。
在求解状态收获的平均值的过程中,我们介绍一种非常实用的不需要存储所有历史收获的计算方法:累进更新平均值(incremental mean)。而且这种计算平均值的思想也是强化学习的一个核心思想之一。具体公式如下:
在这里插入图片描述

累进更新平均值利用前一次的平均值和当前数据以及数据总个数来计算新的平均值:当每产生一个需要平均的新数据 xk 时,先计算 xk 与先前平均值 µk 1 的差,再将这个差值乘以一定的系数1/k后作为误差对旧平均值进行修正。如果把该式中平均值和新数据分别看成是状态的价值和该状态的收获,那么该公式就变成了递增式的蒙特卡罗法更新状态价值。其公式如下:
在这里插入图片描述

在一些实时或者无法统计准确状态被访问次数时,可以用一个系数 α 来代替状态计数的倒数,此时公式变为:
在这里插入图片描述

4.2时序差分强化学习

时序差分强化学习 (temporal-difference reinforcement learning, TD 学习):指从采样得到的不完整的状态序列学习,该方法通过合理的引导,先估计某状态在该状态序列完整后可能得到的收获,并在此基础上利用前文所属的累进更新平均值的方法得到该状态的价值,再通过不断的采样来持续更新这个价值。具体地说,在 TD 学习中,算法在估计某一个状态的收获时,用的是离开该状态的即刻奖励Rt+1 与下一时刻状态 St+1 的预估状态价值乘以衰减系数 γ 组成:
在这里插入图片描述

其中:Rt+1 + γV (St+1) 称为 TD 目标值。Rt+1 + γV (St+1) -V (St) 称为 TD 误差。
引导 (bootstrapping):指的是用 TD 目标值代替收获 Gt 的过程。

MC、TD、DP三种方法对比
本章阐述的蒙特卡罗 (MC) 学习算法、时序差分 (TD) 学习算法和上一章讲述的动态规划(DP) 算法都可以用来计算状态价值。他们它们的特点也是十分鲜明的,前两种是在不依赖模型的情况下的常用方法,这其中又以 MC 学习需要完整的状态序列来更新状态价值,TD 学习则不需要完整的状态序列;DP 算法则是基于模型的计算状态价值的方法,它通过计算一个状态 S 所有可能的转移状态 S’ 及其转移概率以及对应的即时奖励来计算这个状态 S 的价值。
在是否使用引导数据上,MC 学习并不使用引导数据,它使用实际产生的奖励值来计算状态价值;TD 和 DP 则都是用后续状态的预估价值作为引导数据来计算当前状态的价值。
在是否采样的问题上,MC 和 TD 不依赖模型,使用的都是个体与环境实际交互产生的采样状态序列来计算状态价值的,而 DP 则依赖状态转移概率矩阵和奖励函数,全宽度计算状态价值,没有采样之说。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

综合上述三种学习方法的特点,可以小结如下:当使用单个采样,同时不经历完整的状态序列更新价值的算法是 TD 学习;当使用单个采样,但依赖完整状态序列的算法是 MC 学习;当考虑全宽度采样,但对每一个采样经历只考虑后续一个状态时的算法是 DP 学习;如果既考虑所有状态转移的可能性,同时又依赖完整状态序列的,那么这种算法是穷举 (exhausive search) 法。需要说明的是:DP 利用的是整个 MDP 问题的模型,也就是状态转移概率,虽然它并不实际利用采样经历,但它利用了整个模型的规律,因此也被认为是全宽度 (full width) 采样的。

4.3n步时序差分学习简介

n-步预测指从状态序列的当前状态 (St) 开始往序列终止状态方向观察至状态 St+n,使用这 n 个状态产生的即时奖励 (Rt+1, Rt+2, …, Rt+n) 以及状态 St+n 的预估价值来计算当前状态St 的价值。
在这里插入图片描述

TD 是 TD(0) 的简写,是基于 1-步预测的。根据 n-步预测的定义,可以推出当 n=1,2 和 ∞ 时对应的预测值如表 4.3 所示。从该表可以看出,MC 学习是基于 ∞-步预测的。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

为了能在不增加计算复杂度的情况下综合考虑所有步数的预测,我们引入了一个新的参数 λ,并定义:λ-收获为:从 n=1 到 ∞ 的所有步收获的权重之和。其中,任意一个 n-步收获的权重被设计为 (1-λ)λ^(n-1)。通过这样的权重设计,可以得到 λ-收获的计算公式为:

在这里插入图片描述
在这里插入图片描述

前向认识 TD(λ)
TD(λ) 的设计使得在状态序列中,一个状态的价值 V (St) 由G_t^((λ)) 得到,而后者又间接由所有后续状态价值计算得到,因此可以认为更新一个状态的价值需要知道所有后续状态的价值。也就是说,必须要经历完整的状态序列获得包括终止状态的每一个状态的即时奖励才能更新当前状态的价值。这和 MC 算法的要求一样,因此 TD(λ) 算法有着和 MC 方法一样的劣势。λ 取值区间为 [0,1],当 λ = 1 时对应的就是 MC 算法。这个实际计算带来了不便。
反向认识 TD(λ)
反向认识 TD(λ) 为 TD(λ) 算法进行在线实时单步更新学习提供了理论依据。

效用 (eligibility, E) 来表示该状态对后续状态的影响。而所有状态的效用值总称为效用迹 (eligibility traces, ES)
在这里插入图片描述

公式 4.8中的 1(St = s) 是一个真判断表达式,表示当 St = s 时取值为 1,其余条件下取值为 0。
需要指出的是,针对每一个状态存在一个 E 值,且 E 值并不需要等到状态序列到达终止状态才能计算出来,它是根据已经经过的状态序列来计算得到,并且在每一个时刻都对每一个状态进行一次更新。E 值存在饱和现象,有一个瞬时最高上限:
在这里插入图片描述

E 值是一个非常符合神经科学相关理论的、非常精巧的设计。可以把它看成是神经元的一个参数,它反映了神经元对某一刺激的敏感性和适应性。神经元在接受刺激时会有反馈,在持续刺激时反馈一般也比较强,当间歇一段时间不刺激时,神经元又逐渐趋于静息状态;同时不论如何增加刺激的频率,神经元有一个最大饱和反馈。
在这里插入图片描述

当 λ = 0 时,St = s 一直成立,此时价值更新等同于 TD(0) 算法:
在这里插入图片描述

当 λ = 1 时,在每完成一个状态序列后更新状态价值时,其完全等同于 MC 学习;但在引入了效用迹后,可以每经历一个状态就更新状态的价值,这种实时更新的方法并不完全等同于MC。
当 λ∈(0, 1) 时,在每完成一个状态序列后更新价值时,基于前向认识的 TD(λ) 与基于反向 认识的 TD(λ) 完全等效;不过在进行在线实时学习时,两者存在一些差别。

第五章 不基于模型的控制

某些问题要么我们对其环境动力学的特点无法掌握,但是我们可以去经历、去尝试构建理解环境的模型;要么虽然问题的环境动力学特征是已知的,但由问题的规模太大以至于计算机根据一般算法无法高效的求解,除非使用采样的办法。无论问题是属于两种情况中的哪一个,强化学习都能较好的解决。
在学习动态规划进行策略评估、优化时,我们能体会到:个体在与环境进行交互时,其实际交互的行为需要基于一个策略产生。在评估一个状态或行为的价值时,也需要基于一个策略,因为不同的策略下同一个状态或状态行为对的价值是不同的。我们把用来指导个体产生与环境进行实际交互行为的策略称为行为策略,把用来评价状态或行为价值的策略或者待优化的策略称为目标策略。如果个体在学习过程中优化的策略与自己的行为策略是同一个策略时,这种学习方式称为现时策略学习 (on-policy learning),如果个体在学习过程中优化的策略与自己的行为策略是不同的策略时,这种学习方式称为借鉴策略学习 (off-policy learning)。

5.1行为价值函数的重要性

在不基于模型的控制时,我们将无法通过分析、比较基于状态的价值来改善贪婪策略,这是因为基于状态价值的贪婪策略的改善需要知晓状态间转移概率:
在这里插入图片描述

如果能够确定某状态下所有状态行为对的价值,那么自然就比较容易从中选出一个最优价值对应的行为了。实践证明,在不基于模型的强化学习问题中,确定状态行为对的价值要容易很多。
强化学习中的个体也是如此,为了让个体的尽早地找到最优策略,可以适当加快策略迭代的速度,但是从一个不完整的状态序列学习则要注意不能过多地依赖状态序列中相邻状态行为对的关系。

5.2 ϵ—贪婪策略

贪婪策略产生问题的根源是无法保证持续的探索,为了解决这个问题,一种不完全的贪婪(ϵ-greedy搜索策略被提出,其基本思想就是保证能做到持续的探索,具体通过设置一个较小的 ϵ值,使用1-ϵ的概率贪婪地选择目前认为是最大行为价值的行为,而用ϵ的概率随机的从所有m个可选行为中选择行为,即:
在这里插入图片描述

5.3 现时策略蒙特卡罗控制

现时策略蒙特卡罗控制通过 ϵ-贪婪策略采样一个或多个完整的状态序列后,平均得出某一状态行为对的价值,并持续进行策略的评估和改善。通常可以在仅得到一个完整状态序列后就进行一次策略迭代以加速迭代过程。使用 ϵ-贪婪策略进行现时蒙特卡罗控制仍然只能得到基于该策略的近似行为价值函数,这
是因为该策略一直在进行探索,没有一个终止条件。因此我们必须关注以下两个方面:一方面我们不想丢掉任何更好信息和状态,另一方面随着我们策略的改善我们最终希望能终止于某一个最优策略。为此引入了另一个理论概念:GLIE(greedy in the Limit with Infinite Exploration)。它包含两层意思,一是所有的状态行为对会被无限次探索:
在这里插入图片描述

二是另外随着采样趋向无穷多,策略收敛至一个贪婪策略:
在这里插入图片描述

存在如下的定理:GLIE 蒙特卡洛控制能收敛至最优的状态行为价值函数:
在这里插入图片描述

如果在使用 ϵ-贪婪策略时,能令 ϵ 随采样次数的无限增加而趋向于 0 就符合 GLIE。这样基于 GLIE 的蒙特卡洛控制流程如下:

  1. 基于给定策略 π,采样第 k 个完整的状态序列:{S1, A1, R2, · · · , ST }
  2. 对于该状态序列里出现的每一状态行为对 (St , At),更新其计数 N 和行为价值函数 Q:

在这里插入图片描述
在这里插入图片描述
(5.3公式中的第二个式子,那个不是减号,是连接符。)

5.4 现时策略时序差分控制

在预测中,时序差分 (TD) 学习相比蒙特卡罗 (MC) 学习有很多优点:低变异性,可以在线实时学习,可以学习不完整状态序列等。在控制问题上使用 TD 学习同样具备上述的一些优点。本节的现时策略 TD 学习中,我们将介绍 Sarsa 算法和 Sarsa(λ)算法,在下一节的借鉴策略 TD 学习中将详细介绍 Q 学习算法。

5.4.1 Sarsa 算法

Sarsa 的名称来源于下图所示的序列描述:针对一个状态 S,个体通过行为策略产生一个行为 A,执行该行为进而产生一个状态行为对 (S,A),环境收到个体的行为后会告诉个体即时奖励R 以及后续进入的状态 S’;个体在状态 S’ 时遵循当前的行为策略产生一个新行为 A’,个体此时并不执行该行为,而是通过行为价值函数得到后一个状态行为对 (S’,A’) 的价值,利用这个新的价值和即时奖励 R 来更新前一个状态行为对 (S,A) 的价值。
在这里插入图片描述

与MC 算法不同的是,Sarsa算法在单个状态序列内的每一个时间步,在状态 S下采取一个行为 A 到达状态 S’后都要更新状态行为对(S,A)的价值Q(S,A)。这一过程同样使用 ϵ-贪婪策略进行策略迭代:
在这里插入图片描述

Sarsa的算法流程如算法1所述。
在这里插入图片描述

在 Sarsa 算法中,Q(S,A) 的值使用一张大表来存储的,这不是很适合解决规模很大的问题;对于每一个状态序列,在 S 状态时采取的行为 A 是基于当前行为策略的,也就是该行为是与环境进行交互实际使用的行为。在更新状态行为对 (S,A) 的价值的循环里,个体状态 S’ 下也依据该行为策略产生了一个行为 A’, 该行为在当前循环周期里用来得到状态行为对 (S’A’) 的价值,并借此来更新状态行为对 (SA) 的价值,在下一个循环周期(时间步)内,状态 S’ 和行为 A’ 将转换身份为当前状态和当前行为,该行为将被执行。
在更新行为价值时,参数 α 是学习速率参数,γ 是衰减因子。当行为策略满足前文所述的 GLIE 特性同时学习速率参数 α 满足
在这里插入图片描述

时,Sarsa 算法将收敛至最优策略和最优价值函数。

5.4.2 Sarsa(λ)算法

在这里插入图片描述
在这里插入图片描述

类似于 TD(λ), 可以给 n-步 Q 收获中的每一步收获分配一个权重,并按权重对每一步 Q 收获求和,那么将得到q^λ收获,它结合了所有 n-步Q收获:
在这里插入图片描述

如果使用用某一状态的 qλt 收获来更新状态行为对的Q值,那么可以表示成如下的形式:
在这里插入图片描述

公式 (5.8) 即是 Sarsa(λ) 的前向认识,使用它更新 Q 价值需要遍历完整的状态序列。与TD(λ) 类似,我们也可以反向理解 Sarsa(λ)。同样引入效用追迹 (eligibility traces, ET),不同的是这次的 E 值针对的不是一个状态,而是一个状态行为对:
在这里插入图片描述

它体现的是一个结果与某一个状态行为对的因果关系,与得到该结果最近的状态行为对,以及那些在此之前频繁发生的状态行为对得到这个结果的影响最大。下式是引入ET概念的之后的Sarsa(λ)算法中对Q值更新的描述:
在这里插入图片描述

公式 (5.10) 便是反向认识的 Sarsa(λ),基于反向认识的 Sarsa(λ) 算法将可以有效地在线学习,数据学习完即可丢弃。Sarsa(λ) 的算法流程如算法 2 所述。
在这里插入图片描述

这里要提及一下的是 E(s, a) 在每浏览完一个状态序列后需要重新置 0,这体现了效用迹仅在一个状态序列中发挥作用;其次要提及的是算法更新 Q 和 E 的时候针对的不是某个状态序列 里的Q或E,而是针对个体掌握的整个状态空间和行为空间产生的Q和E。

5.4.3比较Sarsa和Sarsa(λ)算法

在第一次路线选择时,相较于Sarsa,Sarsa(λ)会对经过的状态都进行价值的更新,而不是只更新终点的前一步。所以Sarsa(λ)具有相对较高的效率。
在这里插入图片描述

思考:可以看出 Sarsa(λ) 算法在状态每发生一次变化后都对整个状态空间和行为空间的Q和E值进行更新,而事实上在每一个状态序列里,只有个体经历过的状态行为对的 E 才可能不为 0,为什么不仅仅对该状态序列涉及到的状态行为对进行更新呢?
理论上是可以仅对Episode里涉及的状态行为对的E和Q进行更新的,不过这要额外维护一个表,而往这个额外的表里添加新的状态行为对的E和Q值比更新总的状态行为空间要麻烦,特别是在早期agent没有一个较好的策略的时候需要花费很长很长时间才能找到终点位置,这在一定程度上反而没有更新状态空间省时。不过随着学习深入、策略得到优化,此表的规模会变小。

5.5 借鉴策略Q学习算法

现时策略学习的特点就是产生实际行为的策略与更新价值 (评价)所使用的策略是同一个策略,而借鉴策略学习(off-policy learning)中产生指导自身行为的策略 µ(a|s)与评价策略π(a|s)是不同的策略,具体地说,个体通过策略 µ(a|s) 生成行为与环境发生实际交互,但是在更新这个状态行为对的价值时使用的是目标策略π(a|s)。目标策略π(a|s) 多数是已经具备一定能力的策略,例如人类已有的经验或其他个体学习到的经验。借鉴策略学习相当于站在目标策略 π(a|s)的“肩膀”上学习。借鉴策略学习根据是否经历完整的状态序列可以将其分为基于蒙特卡洛的和基于TD的。基于蒙特卡洛的借鉴策略学习目前认为仅有理论上的研究价值,在实际中用处不大。这里主要讲解常用借鉴策略TD 学习。
借鉴学习 TD 学习任务就是使用 TD 方法在目标策略 π(a|s) 的基础上更新行为价值,进而优化行为策略:
在这里插入图片描述

对于上式,我们可以这样理解:个体处在状态 St 中,基于行为策略 µ 产生了一个行为 At,执行该行为后进入新的状态 St+1,借鉴策略学习要做的事情就是,比较借鉴策略和行为策略在状态 St 下产生同样的行为 At 的概率的比值,如果这个比值接近 1,说明两个策略在状态 St 下采取的行为 At 的概率差不多,此次对于状态 St 价值的更新同时得到两个策略的支持。如果这一概率比值很小,则表明借鉴策略 π 在状态 St 下选择 At 的机会要小一些,此时为了从借鉴策略学习,我们认为这一步状态价值的更新不是很符合借鉴策略,因而在更新时打些折扣。类似的,如果这个概率比值大于 1,说明按照借鉴策略,选择行为 At 的几率要大于当前行为策略产生 At的概率,此时应该对该状态的价值更新就可以大胆些。
借鉴策略 TD 学习中一个典型的行为策略 µ 是基于行为价值函数 Q(s, a) ϵ-贪婪策略,借鉴策略 π 则是基于 Q(s, a) 的完全贪婪策略,这种学习方法称为 Q 学习 (Q learning)。Q 学习的目标是得到最优价值 Q(s,a),在 Q 学习的过程中,t 时刻的与环境进行实际交互的行为 At 由策略 µ 产生:
在这里插入图片描述

其中策略 µ 是一个 ϵ-贪婪策略。t + 1 时刻用来更新 Q 值的行为 A′t+1 由下式产生:
在这里插入图片描述

其中策略 π 是一个完全贪婪策略。Q(St , At) 的按下式更新:
在这里插入图片描述

其中红色部分的 TD 目标是基于借鉴策略 π 产生的行为 A’ 得到的 Q 值。根据这种价值更新的方式,状态 St 依据 ϵ-贪婪策略得到的行为 At 的价值将朝着 St+1 状态下贪婪策略确定的最大行为价值的方向做一定比例的更新。这种算法能够使个体的行为策略策略 µ 更加接近贪婪策略,同时保证保证个体能持续探索并经历足够丰富的新状态。并最终收敛至最优策略和最优行为价值函数。
在这里插入图片描述

Q 学习具体的行为价值更新公式:
在这里插入图片描述

在这里插入图片描述

参考材料

1.强化学习入门课程(英文)https://www.bilibili.com/video/av37295048
2.课程对应知乎讲解https://zhuanlan.zhihu.com/reinforce
3.《强化学习入门——从原理到实践》-叶强
4.强化学习相关博客https://blog.csdn.net/weixin_37904412/article/details/81025539

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小郁同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值