购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.3 强化学习核心概念

在前面章节中,我们介绍了RL中使用的一个主要形式,即MDP,并简要地介绍了RL的一些相关应用领域。接下来,我们将介绍几个不同类别的RL算法。目前,解决RL问题的方法主要有两种:基于值函数的RL方法和基于策略搜索的RL方法。还有一种混合方法,称为actor-critic方法,它既采用了值函数的功能,又汲取了策略搜索的方法。现在,我们将逐一讲解这些方法和有助于解决RL问题的其他概念。

1.3.1 值函数

几乎所有RL算法都包含估计值函数或价值函数,即估计智能体在给定状态(或状态-动作)下的好坏程度(或者在给定状态下执行给定动作的表现有多好)的函数。这里“有多好”的概念是根据未来可以预期的回报来定义的,确切地说,就是预期回报。当然,智能体未来可能获得的奖励取决于它将采取的行动。所以,要根据特定策略来定义值函数。

回想一下,策略π是从每一个状态s∈S和动作a∈A(s)到在状态s下采取动作a的概率p(a|s)的映射。非正式地,在策略π下,状态s的值表示为V π (s),代表从状态s开始并且随后遵循策略π的预期回报。假设智能体遵循策略π,对于MDP,我们可以将V π (s)正式定义为:

其中E π [·]表示随机变量的期望值,t表示任何时间步长。请注意,终点状态的值(如果有)始终为0。在此,我们将函数V π 表示为策略π的状态-值函数。

类似地,我们定义在策略π下,针对状态s采取的动作a的值Q π (s,a),表示从状态s开始,然后采取行动a,并且随后遵循策略π的预期回报:

这里,我们将Q π 称为策略π的动作-值函数。

值函数V π 和Q π 可以根据经验来估计。比如,如果智能体遵循策略π,并且对每个状态都保持该状态之后实际回报的平均值,那么当遇到的状态数目趋近于无穷时,此平均值将收敛到状态值V π (s)。如果对状态中采取的每个动作都保持单独的平均值,那么这些平均值将类似地收敛到动作-值Q π (s,a)。我们称这种估计方法为蒙特卡罗方法,因为它涉及对许多随机样本实际回报的平均。如果有很多状态,那么单独为每个状态保持单独的平均值可能是不切实际的。相反,智能体必须将V π 和Q π 保持为参数化的函数,并对参数进行调整以更好地匹配观察到的返回值。当然,这也可以产生准确的估计,尽管在很大程度上取决于参数化函数逼近器自身的性质。

在RL和DP中使用值函数的一个基本属性是它们满足特定的递归关系。对于任何策略π和任何状态s,下面的一致性条件保持在状态s的值与其可能的后继状态的值之间:

其中,在隐含情况下,动作a取自集合A(s),下一个状态s'取自集合S(或在情节性问题的情况下取自S + ),奖励r取自集合R。另外,请注意在等式最后一步中我们是如何将两个变量的所有可能值的和(一个在s'的所有值上,另一个在r的所有值上)合并为一个的。这种合并的和可以简化公式,使得最终表达式作为期望值能够非常容易去阅读,不难发现它实际上是三个变量a、s'和r所有值的总和。对于每个三元组,我们计算其概率π(a|s)p(s',r|s,a),用该概率对括号中的数量进行加权,然后对所有可能性求和以获得期望值。

公式(1.10)是V π 的Bellman方程,表达了状态的值与其后状态的值之间的关系。如图1.11所示,考虑从一个状态向可能的后继状态进行展望,其中,每个空心圆代表一个状态,每个实心圆代表一个状态-动作对。从状态s即顶部的根节点开始,智能体可以采取任何一个动作(3个,如图1.11a所示)。对于其中的每一个动作,环境可以响应接下来的几个状态之一s'和奖励r。Bellman方程(1.10)对所有可能性进行平均,通过其发生概率对每个可能性进行加权。其表明开始状态的值必须等于预期的下一个状态的(衰减)值加上沿途预期的奖励,而值函数V π 是其Bellman方程的唯一解。

图1.11 V π 和Q π (s,a)备份图

Bellman方程是构成计算、近似和学习V π 等多种方法的基础。此外,从图1.11中我们不难发现其包含了构成更新或备份操作的基础关系,而这些正是RL方法的核心。

1.3.2 动态规划

动态规划(DP)是指在给定完整的环境模型作为MDP的情况下用于计算最优策略的算法集合。经典DP算法在RL中的用途有限,因为它通常假设一个完美的模型,并且计算代价很高,但是在理论上它仍然很重要。实际上,所有这些方法都可以被视为尝试获得与DP相同的效果,只是计算量较少并且没有假设完美的环境模型。DP和一般RL的关键思想是使用值函数来组织和构建对较优策略的搜索。虽然DP思想可以应用于连续状态和动作空间的问题,但只有在特殊情况下才能实现精确的解决方案。获得具有连续状态和动作的任务的近似解的常用方法是量化状态和动作空间,然后应用有限状态DP方法。正如我们将要看到的,DP算法是将Bellman方程转化为用于改进期望值函数逼近的更新规则。

从上一小节我们了解到,值函数方法基于估计处于给定状态的值(预期收益)。状态值函数V π (s)在状态s中开始并且此后依照策略π的预期返回:

最优策略π * 具有相应的状态值函数V * (s),反之亦然,最优的状态-值函数可以定义为

如果我们有V * (s)可用,则可以通过选择最大化 的动作a中的所有可用动作来检索最优策略。

在RL环境中,转换动态T并不可用。因此,我们需要构造另一个函数,即状态-动作-值或质量函数Q π (s,a),除了提供初始动作a外,它类似于V π ,并且π仅从后续状态开始:

在给定Q π (s,a)的情况下,每个状态下最优策略可以通过一种贪婪策略来找到:argmax a Q π (s,a)。在此策略下,我们还可以通过最大化Q π (s,a)来定义V π (s):V π (s)=max a Q π (s,a)。

为了实际学习Q π ,我们利用马尔可夫属性并将函数定义为Bellman方程,其具有以下递归形式:

这意味着可以通过bootstrapping来改善Q π ,即可以使用Q π 估计的当前值来改进我们的估计。这是Q-learning和状态-动作-奖励-状态-动作(State-Action-Reward-State-Action,SARSA)算法的基础:

其中α是学习率,TD误差δ=Y-Q π (s t ,a t )。这里,Y是标准回归问题中的目标。SARSA是一种on-policy的学习算法,通过使用行为策略(Q π 的一种派生策略)生成的转换来改进Q π 的估计,这导致环境Y=r t +γQ π (s t+1 ,a t+1 )。有一种RL叫作Q-learning(关于Q-learning的具体内容我们将在后面章节进行讲解),Q-learning是off-policy的,因为Q π 不是由派生策略生成的转换来更新的。相反,Q-learning使用Y=r t +γmax a Q π (s t+1 ,a)来直接近似Q *

为了从任意Q π 中找到Q * ,我们采用广义策略迭代(Generalised Policy Iteration,GPI)方法,其中策略迭代包括策略评估和策略改进。策略评估能够改进值函数的估计,这可以通过最小化遵循策略π所经历轨迹的TD误差来实现。随着估计的改进,通过基于更新的值函数贪婪地选择动作,自然而然地可以改善其策略。通常策略迭代允许交错步骤,以使其可以更快地进行,而不是单独地执行这些步骤来进行收敛。

1.3.3 时间(序)差分

如果必须为RL确定一个核心且新颖的思想,那么毫无疑问它将是时间(序)差分(TD)学习。TD学习是蒙特卡罗思想和DP思想的结合。与蒙特卡罗方法类似,TD方法可以直接从原始经验中学习,而无须环境动态模型。与DP一样,TD方法部分基于其他学习的估计来更新其估计,无须等待最终结果来进行引导。TD、DP和蒙特卡罗方法之间的关系是RL理论中反复出现的主题,我们将看到这些想法和方法的相互融合。

在此,我们首先关注策略评估或预测问题,即估计给定策略π的值函数V π 。对于控制问题(找到最优策略),DP、TD和蒙特卡罗方法都使用GPI的一些变体,不同的是它们在预测问题时使用的方法。

TD和蒙特卡罗方法都使用经验来解决预测问题。遵循策略π的一些经验,对该经验中发生的非终止状态s t ,两种方法都更新了对V π 的估计V。粗略地说,蒙特卡罗方法需要一直等到访问完成,然后使用返回信息作为V(s t )的目标。一种适用于非平稳环境的简单访问蒙特卡罗方法是:

其中r t 是跟随时间t的实际奖励,α是一个恒定的步长参数。我们称这种方法为常数-αMC。蒙特卡罗方法必须等到episode结束才能确定V(s t )的增量(r t 已知时),而TD方法只需要等到下一个步骤即可。在时间t+1,它们立即形成目标并使用观察到的奖励r t+1 和估计V(s t+1 )来进行有用的更新。最简单的TD方法称为TD(0),即

实际上,蒙特卡罗更新的目标是r t ,而TD更新的目标是r t+1 +γV(s t+1 )。因为TD方法的部分基于现有估计,所以我们说它是一种bootstrapping方法,就像DP一样。由公式(1.10)我们知道,

粗略地说,蒙特卡罗方法使用式(1.18)的估计作为目标,而DP方法使用式(1.19)的估计作为目标。蒙特卡罗目标是估计值,因为式(1.18)中的预期值未知,使用样本返回来代替实际预期收益。DP目标是一个估计值,不是因为期望值(假设完全由环境模型提供),而是因为V π (s t+1 )未知且用当前估计值V(s t+1 )来代替。TD目标是两个原因的估计:它对式(1.19)中的预期值进行采样,并使用当前估计值V而不是真实的V π 。因此,TD方法将蒙特卡罗的采样与DP的自举相结合。

显然,TD方法比DP方法具有优势,因为它不需要环境模型、奖励和下一状态概率分布。与蒙特卡罗方法相比,TD方法的下一个明显的优势是它自然地以在线、完全递增的方式实现。使用蒙特卡罗方法必须等到episode结束,因为只有这样才能知道返回,而使用TD方法只需要等待一个时间步,而这通常是一个重要的考虑因素。一些应用程序有很长的episode,因此延迟所有学习直到episode结束。其他应用程序是持续的任务,根本没有episode。最后,正如我们在前面所提到的,一些蒙特卡罗方法必须忽略采取实验行动的事件或对其打折扣,这可能会大大减慢学习速度。TD方法不易受这些问题的影响,因为无论采取何种后续行动,它都会从每次的转换中学习。

但TD方法真的有效吗?在不等待实际结果的情况下,从下一个猜测中学习一个猜测显然是很方便的,但是这样我们仍然可以保证收敛到正确的答案吗?没错,答案是肯定的。对于任何固定的策略π,如果一个恒定的步长参数足够小,TD就能将其均值收敛到V π ,并且在步长参数按通常的随机近似条件减小的情况下,概率为1。如果TD和蒙特卡罗方法渐近地收敛到正确的预测,那么下一个问题是:“谁的速度更快?”哪种方法能更有效地利用有限的数据?目前,这是一个悬而未决的问题,从某种意义上说,没有人能够在数学上证明一种方法比另一种方法收敛得更快。但是,在实践中,人们通常发现TD方法在随机任务上比常数-αMC方法收敛得更快。

1.3.4 策略梯度

策略搜索(policy search)方法不需要维护值函数模型,而是直接搜索最优策略π * 。通常,选择参数化策略π θ ,其参数被更新以使用基于梯度或无梯度的优化来最大化预期回报E[R|θ]。比如,我们可以使用无梯度和基于梯度的方法成功训练编码策略的神经网络。无梯度优化可以有效地覆盖低维参数空间,但尽管在将其应用于大型网络方面取得了一些成功,基于梯度的训练仍然是大多数DRL算法的首选,因为当策略涉及大量参数时,其具有更高的采样效率。

在直接构造策略时,通常输出概率分布的参数。对于连续动作,这可以是高斯分布的均值和标准差,而对于离散动作,这可以是多项分布的个体概率。结果是一个随机策略,我们可以从中直接采样行动。使用无梯度方法,找到更好的策略需要在预定义的模型类中进行启发式搜索。诸如进化策略之类的方法基本上是在策略的子空间中进行“爬山”,而更复杂的方法,如压缩网络搜索,则会产生额外的归纳偏差。也许无梯度策略搜索的最大优势在于它还可以优化不可微分的策略。

策略梯度(policy gradient)则可以提供那些关于如何改进参数化策略的学习信号。然而,为了计算预期收益,我们需要对当前策略参数化引起的合理轨迹进行平均。这种平均需要确定性近似(例如线性化)或通过采样来随机近似。确定性近似只能应用于基于模型的设置,其中可以获得潜在过渡动态的模型。在更常见的无模型RL环境中,蒙特卡罗估计的预期收益是确定的。而对于基于梯度的学习,对这种蒙特卡罗近似提出了挑战,因为梯度通不过随机函数的这些样本。因此,我们转向梯度的估计量,在RL中称为REINFORCE规则,其他地方称为得分函数或似然比估计量,这是因为使用估计器类似于在监督学习中优化对数似然的实践。直观地,使用估计器的梯度上升增加了采样动作的对数概率,然后由返回加权。更正式地,REINFORCE规则可用于计算随机变量x的函数f相对于参数θ期望梯度:

由于该计算依赖于轨迹的经验回归,因此得到的梯度具有较高的方差。通过引入噪声较小的无偏估计,可以减小方差。执行此操作的一般方法是减去基线,这意味着通过优势而不是纯回报来加权更新。最简单的基线是几个episode的平均回报,不过依然有许多其他的选择。

1.3.5 actor-critic方法

到目前为止,我们讨论的所有方法都学习了状态或状态-动作对的值,然后直接使用这些动作值来实现策略(例如,ε-greedy)和选择动作。此形式的所有方法都可以称为动作-值方法。在本小节中,我们将讨论非动作-值方法,它仍然可以计算动作(或状态)值,不过不直接使用该值来选择动作,而是用策略直接表示,使其自身权重独立于任何值函数。

actor-critic方法是TD方法,其具有独立的内存结构,以明确地表示独立于值函数的策略。策略结构被称为actor,因为它用于选择动作,估计值函数被称为critic,因为它评估了actor所做的动作。学习总是on-policy的:critic必须了解并评估actor目前所遵循的任何策略。评估采用TD误差(TD error)的形式。这个标量信号是critic的唯一输出,并推动了actor和critic的所有学习,如图1.12所示。

图1.12 actor-critic架构

actor-critic方法是梯度带宽(gradient band)方法到TD学习和完全RL问题的自然延伸。通常,critic是一种状态-值函数。在每次动作选择之后,critic评估新状态以确定事情是否比预期更好或更差。该评估是TD误差:

其中V t 是critic在时间t实现的值函数。该TD误差可用于评估刚刚选择的动作a t ,动作采用状态s t 。如果TD误差为正,则表明选择a t 的趋势应该在未来加强,而如果TD误差为负,它表明这种趋势应该被削弱。假设通过Gibbs softmax方法生成动作:

其中H t (s,a)是actor可修改的策略参数在时间t的值,表示在时间t的每个状态s中选择(偏好)每个动作a的倾向。然后,可以通过将H t (s t ,a t )增加或减少来实现上述强化或弱化:

其中β是另一个正步长参数。

这只是actor-critic方法的一个例子。其他变体以不同方式选择操作。另一个常见的变化维度,如在强化比较方法中,就包含改变分配给所采取的动作的信用数量的额外因素。例如,最常见的此类因素之一与选择a t 的概率成反比,产生更新规则:

这些问题在很早以前就开始探讨,主要是针对即时奖励案件,还没有完全更新。

许多最早使用TD方法的RL系统都是actor-critic方法。从那时起,人们越来越关注学习动作-值函数的方法,并专门根据估计值(如Sarsa和Q-learning)确定策略。这种分歧可能只是历史上的意外。例如,可以想象中间架构,其中将学习动作-值函数和一个独立的策略。无论如何,由于两个显著的优势,actor-critic方法可能仍然是当前最令人感兴趣的方法:

·它仅需要最少的计算来选择动作。考虑存在无限多个可能动作的情况:例如连续值动作。任何只学习动作值的方法都必须搜索这个无限集以便选择一个动作。如果明确存储策略,则每个动作选择可能不需要这种大量计算。

·它可以学习明确的随机策略,也就是说,它可以学习选择各种动作的最佳概率。这种能力在竞争性和非马尔可夫案例中被证明是有用的。

此外,actor-critic方法中独立的actor使其在某些方面更具吸引力,如心理和生物模型。在某些情况下,它还更容易对允许的策略集强加特定于域的约束。 ctJYe5CBhHI+M8I2Sq5QLovUe0Goj8I1XXXYs3l/lwE0wBR5bBYnCjnGatjv1TyO

点击中间区域
呼出菜单
上一章
目录
下一章
×