type
status
password
date
slug
summary
category
URL
tags
icon
函数逼近的思想不仅可以像第 8 章介绍的那样用于表示状态/动作值,还可以像本章介绍的那样用于表示策略。在本书目前为止,策略一直是用表格来表示的:所有状态的动作概率都存储在一个表格中(例如,表 9.1)。在本章中,我们展示了策略可以用参数化函数表示为,其中是一个参数向量。它也可以写成其他形式,如、或。

当策略用函数表示时,可以通过优化某些标量指标来获得最优策略。这样的方法称为策略梯度法。策略梯度法在本书中是一个很大的进步,因为它是基于策略的。相比之下,本书之前的所有章节都讨论基于值的方法。策略梯度法有很多优点。例如,它在处理大的状态/动作空间时更高效。它具有更强的泛化能力,因此在样本使用方面更高效。
9.1 策略表示:从表格到函数
当策略的表示从表格转换为函数时,有必要阐明这两种表示方法之间的差异。
首先,如何定义最优策略?当以表格形式表示时,如果一个策略能够使每个状态值最大化,那么它就被定义为最优策略。当以函数形式表示时,一个策略如果能够使某些标量指标最大化,那么它就被定义为最优策略。
其次,如何更新策略?当以表格形式表示时,可以通过直接更改表格中的条目来更新策略。当以参数化函数表示时,不能再以这种方式更新策略。相反,只能通过更改参数来更新策略。
第三,如何获取一个动作的概率?在表格情况下,可以通过直接查找表格中的相应条目来获得一个动作的概率。在函数表示的情况下,我们需要将输入到函数中以计算其概率(见图 9.2(a))。根据函数的结构,我们也可以输入一个状态,然后输出所有动作的概率(见图 9.2(b))。
策略梯度方法的基本思想总结如下。假设 是一个标量指标。可以通过基于梯度的算法优化这个指标来获得最优策略。
其中是 关于的梯度,是时间步,是学习率。有了这个基本思想,在本章的其余部分我们将回答以下三个问题。
- 应该使用什么指标?(第 9.2 节)。
- 如何计算这些指标的梯度?(第 9.3 节)。
- 如何使用经验样本计算梯度?(第 9.4 节)。
9.2 定义最优策略的指标
如果一个策略由一个函数表示,那么有两种类型的指标可用于定义最优策略。一种是基于状态值,另一种是基于即时奖励。
指标 1:平均状态值
第一个指标是平均状态值,简称为平均值。它被定义为
其中是状态 的权重。对于任何 ,都有 ,且满足。因此,我们可以将 解释为 的概率分布。那么,这个指标可以写成
如何选择分布 呢?这是一个重要的问题。有两种情况。
- 第一种也是最简单的情况是, 与策略无关。在这种情况下,我们特别将 表示为 ,将平均状态值表示为,以表明该分布与策略无关。一种情况是认为所有状态同等重要,并选择。另一种情况是当我们只对特定状态感兴趣时(例如,智能体总是从开始)。在这种情况下,我们可以设计
- 第二种情况是,取决于策略。在这种情况下,通常选择 为,它是在策略下的平稳分布。的一个基本性质是它满足
其中是状态转移概率矩阵。关于平稳分布的更多信息可以在方Box 8.1 中找到。
选择的解释如下。平稳分布反映了在给定策略下马尔可夫决策过程的长期行为。如果一个状态在长期中被频繁访问,那么它就更重要,应该给予更高的权重;如果一个状态很少被访问,那么它的重要性就低,应该给予更低的权重。
正如其名称所示,是状态值的加权平均值。不同的值会导致不同的值。我们的最终目标是找到一个最优策略(或者等价地,一个最优的)来最大化。
接下来我们介绍的另外两个重要的等价表达式。
- 假设一个智能体通过遵循给定的策略收集奖励。读者可能经常在文献中看到以下指标:
乍一看,这个指标可能不太容易解释。实际上,它等于。为了说明这一点,我们有:
上述等式中的第一个等式是由于全期望定律。第二个等式是根据状态值的定义得出的。
- 平均状态值指标也可以重写为两个向量的内积。具体来说,令
那么,我们有
这个表达式在我们分析它的梯度时会很有用。
指标 2:平均奖励
第二个指标是平均一步奖励,简称为平均奖励[2,64,65]。具体来说,它被定义为
其中是平稳分布,并且
是状态即时奖励的期望。这里,,在状态执行动作得到的奖励期望。
接下来我们给出的另外两个重要的等价表达式。
- 假设智能体通过遵循给定的策略收集奖励,生成trajectory 。
乍一看,这个指标可能不太容易解释。实际上,它等于:
公式(9.5)的证明在Box 9.1 中给出。
- 公式(9.2)中的平均奖励也可以写成两个向量的内积形式。具体来说,令
其中在(9.3)中定义。那么,很明显
这个表达式在我们推导它的梯度时会很有用。
Box 9.1:(9.5)式的证明。
- 步骤 1:我们首先证明以下方程对于任意初始状态 都是有效的:
为了证明这一点,我们注意到其中最后一个等式是由于Cesaro mean(也称为Cesaro summation)的性质。具体来说,如果是一个收敛序列,使得存在,那么也是一个收敛序列,且。接下来我们更仔细地研究(9.7)中的。根据全期望定律,我们有其中表示从经过正好步转移到的概率。上述等式中的第二个等式是由于马尔可夫无记忆性:在下一个时间步获得的奖励仅取决于当前状态而不是之前的状态。 注意根据平稳分布的定义。结果是,初始状态并不重要。然后,我们有将上述方程代入(9.7)就得到了(9.6)
- 步骤 2:考虑任意状态分布。根据全期望定律,我们有。
由于(9.6)对任意初始状态都有效,将(9.6)代入上述方程可得。证明完毕。
Some remarks
表 9.2:和的不同但等价表达式总结。
Metric | Expression 1 | Expression 2 | Expression 3 |
到目前为止,我们已经介绍了两种类型的度量:和。每个度量都有几个不同但等价的表达式。它们总结在表 9.2 中。我们有时使用专门指代状态分布为平稳分布的情况,并使用指代与无关的情况。下面给出一些关于这些度量的评论。
- 所有这些度量都是的函数。由于由参数确定,所以这些度量也是的函数。换句话说,不同的值可以产生不同的度量值。因此,我们可以寻找的最优值以最大化这些度量。这就是策略梯度方法的基本思想。
- 在折扣因子的折扣情况中,两个度量和是等价的。特别地,可以证明
上述等式表明这两个度量可以同时被最大化。这个等式的证明在后面的引理 9.1 中给出。
9.3 度量的梯度
鉴于上一节中介绍的度量,我们可以使用基于梯度的方法来最大化它们。要做到这一点,我们需要首先计算这些度量的梯度。本章中最重要的理论结果是以下定理。
定理 9.1(策略梯度定理)。的梯度是
其中是状态分布,是策略关于参数的梯度。此外,(9.8)有一个以期望形式表达的紧凑形式:
其中是自然对数。
关于定理 9.1 的一些重要评论如下。
- 需要注意的是,定理 9.1 是定理 9.2、定理 9.3 和定理 9.5 结果的总结。这三个定理处理不同的场景,涉及不同的度量以及有折扣/无折扣的情况。在这些场景中的梯度都有相似的表达式,因此在定理 9.1 中进行了总结。定理 9.1 中没有给出和的具体表达式,可以在定理 9.2、定理 9.3 和定理 9.5 中找到。特别地,可以是、或。(9.8)中的等式可能变成严格等式或近似等式。分布在不同的场景中也会有所变化。
梯度的推导是策略梯度方法中最复杂的部分。对于许多读者来说,熟悉定理 9.1 的结果而不知道其证明就足够了。本节其余部分给出的推导细节在数学上比较复杂。建议读者根据自己的兴趣有选择地进行学习。
(9.9)中的表达式比(9.8)更有利,因为它表示为一个期望。我们将在 9.4 节中展示,这个真实梯度可以用随机梯度来近似。
为什么(9.8)可以表示为(9.9)呢?证明如下。根据期望的定义,(9.8)可以重写为:
此外,的梯度是:
由此可得:
将(9.11)代入(9.10)可得:
- 值得注意的是,为了确保是有效的,对于所有的,必须是正数。这可以通过使用 softmax 函数来实现:
其中是一个函数,表示在状态下选择动作的偏好。(9.12)中的策略满足,并且对于任何,。这个策略可以由一个神经网络实现。网络的输入是。输出层是一个 softmax 层,以便网络为所有的输出,并且输出的总和等于 1。参见图 9.2(b)的说明。
由于对于所有的,,所以该策略是随机的,因此具有探索性。该策略不会直接告诉应该采取哪个动作。相反,动作应该根据策略的概率分布来生成。
9.3.1 折扣情况中梯度的推导
接下来,我们推导在折扣因子的折扣情况中度量的梯度。折扣情况下的状态值和动作值定义为:
有成立,并且状态值满足贝尔曼方程。
首先,我们表明和是等价的度量。
引理 9.1(和的等价性)。在折扣因子的折扣情况中,有
证明:注意到且,其中和满足贝尔曼方程。在贝尔曼方程两边同时乘以,可得
这就意味着(9.13)成立。
引理9.2 (的梯度)。在折扣情形下,对于任意的,有
其中
是在策略下从状态转移到状态的折扣总概率。这里,表示第行第列的元素,并且是在策略下恰好使用步从状态转移到状态的概率。
Box 9.2 :引理 9.2 的证明。 首先,对于任意的,有:其中是由下式给出的动作值:由于与无关,所以有:将这个结果代入(9.15)可得:值得注意的是,出现在上述等式的两边。计算它的一种方法是使用展开技术[64]。在这里,我们使用另一种基于矩阵向量形式的方法,我们认为这种方法更容易理解。具体来说,令:由于:等式(9.16)可以写成矩阵向量形式为:它可以简洁地写成这里,,是参数向量的维度。方程中出现克罗内克积的原因是是一个向量。上述方程是关于的线性方程,可以求解为:对于任意状态,由(9.17)可得:量有一个明确的概率解释。具体来说,由于,我们有:注意,是恰好经过步从转移到的概率(见框 8.1)。因此,是使用任意步数从转移到的折扣总概率。通过记,方程(9.18)就变成了(9.14)。
借助引理 9.2 的结果,我们准备推导的梯度。
定理 9.2(折扣情况下的梯度)。在折扣情况(其中)下,的梯度为:
其中且。这里,状态分布为:
其中是在策略下从转移到的折扣总概率。
Box 9.3 :定理 9.2 的证明。由于与无关,所以有:将引理 9.2 中给出的的表达式代入上述方程可得:其中且。证明完毕。
借助引理 9.1 和引理 9.2,我们可以推导和的梯度。
定理 9.3(折扣情况下和的梯度)。在折扣情况(其中)下,和的梯度为:
其中且。这里,当更接近 1 时,近似更准确。
Box9.4 :定理 9.3 的证明。 由的定义可得:这个等式包含两项。一方面,将(9.17)中给出的的表达式代入第二项可得:需要注意的是:这可以通过在等式两边同时乘以轻松验证。 因此,(9.21)变为:另一方面,(9.20)的第一项涉及。然而,由于第二项包含,当时,第二项占主导地位,第一项变得可以忽略不计。因此,此外,由可得:上述等式中的近似要求当时,第一项不会趋于无穷大。更多信息可在[66,第 4 节]中找到。
9.3.2 无折扣情况下梯度的推导
接下来我们展示如何在无折扣情况(即)下计算度量指标的梯度。读者可能会疑惑为什么我们突然开始考虑无折扣情况,而在此之前本书中我们只考虑了有折扣的情况。原因如下。首先,对于持续任务,引入折扣率可能并不合适,我们需要考虑无折扣情况。其次,平均奖励的定义对有折扣和无折扣情况均有效。虽然有折扣情况下的梯度是一个近似值,但我们将看到在无折扣情况下它的梯度更加简洁。
状态值与泊松方程
在无折扣情况下,有必要重新定义状态值和动作值。由于无折扣的奖励总和可能会发散,所以状态值和动作值以一种特殊的方式定义[64]:
其中是平均奖励,当给定策略时,是确定的。在文献中有不同的名称,例如差分奖励[65]或偏差[2,第 8.2.1 节]。可以验证上面定义的状态值满足以下类似贝尔曼方程的方程:
由于,所以有。(9.22)的矩阵向量形式为:
其中。方程(9.23)与贝尔曼方程类似,它有一个特定的名称叫做泊松方程[65,67]。
如何从泊松方程中求解呢?下面的定理给出了答案。
定理 9.4(泊松方程的解)。设
那么,是(9.23)中泊松方程的一个解。此外,泊松方程的任何解都具有以下形式:
其中。
这个定理表明泊松方程的解可能不是唯一的。
Box 9.5:定理 9.4 的证明。我们分三步进行证明。
- 第一步:证明(9.24)中的是泊松方程的解。
为了简便起见,令那么,。是可逆的这一事实将在第三步中证明。将代入(9.23)可得:下面证明这个等式是成立的。注意到这个等式可得,进而可得:上述方程中括号里的项为零,因为。因此,(9.24)中的是一个解。
- 第二步:解的一般表达式。
将代入(9.23)可得:进而可得:需要注意的是,是奇异的,因为对于任何,。因此,(9.26)的解不是唯一的:如果是一个解,那么对于任何,也是一个解。当是不可约的时,。那么,泊松方程的任何解都具有的表达式,其中。
- 第三步:证明是可逆的。
由于涉及到,所以有必要证明是可逆的。分析总结在下面的引理中。
引理 9.3。矩阵是可逆的,并且它的逆为
证明。首先,我们陈述一些无需证明的事实。设是矩阵的谱半径。那么,如果,则是可逆的。此外,当且仅当时,。基于上述事实,我们接下来证明,然后的可逆性就立即得出。为此,我们注意到:这可以通过归纳法证明。例如,当时,这个等式是有效的。当时,我们有:其中最后一个等式是由于,,以及。的情况可以类似地证明。由于是状态的平稳分布,所以有(见Box 8.1)。因此,(9.27)意味着:因此,,所以是可逆的。此外,这个矩阵的逆由下式给出:证明完毕。引理 9.3 的证明受到[66]的启发。然而,[66]中给出的结果([66]中方程(16)上方的陈述)是不准确的,因为是奇异的,因为。引理 9.3 纠正了这个不准确之处。
梯度的推导
尽管如定理 9.4 所示,在无折扣情况下的值不是唯一的,但的值是唯一的。具体来说,从泊松方程可得:
值得注意的是,未确定的值被消去了,因此是唯一的。所以,我们可以在无折扣情况下计算的梯度。此外,由于不是唯一的,也不是唯一的。我们不在无折扣情况下研究的梯度。对于感兴趣的读者,值得一提的是,我们可以添加更多约束条件从泊松方程中唯一地求解。例如,通过假设存在一个循环状态,这个循环状态的状态值为零[65,第二节],因此可以确定。也有其他方法可以唯一地确定。例如,见[2]中的方程(8.6.5)-(8.6.7)。
下面给出无折扣情况下的梯度。
定理 9.5(无折扣情况下的梯度)。在无折扣情况下,平均奖励的梯度为:
其中且。
与定理9.3中给出的折扣情况相比,在无折扣情况下的梯度更加优雅,因为(9.28)严格成立且状态服从平稳分布。
Box 9.6 :定理 9.5 的证明。 首先,由可得:其中是动作值,满足:由于与无关,所以有:将这个结果代入(9.29)可得:让由于,方程(9.30)可以写成矩阵向量形式为:其中,是的维度,是 Kronecker 内克积。上述方程可以简洁地写成:因此:在上述方程两边同时乘以可得:这意味着:
9.4 蒙特卡洛策略梯度(REINFORCE)
利用定理 9.1 中给出的梯度,接下来我们展示如何使用基于梯度的方法来优化度量以获得最优策略。用于最大化的梯度上升算法为:
其中,是一个恒定的学习率。由于(9.31)中的真实梯度是未知的,我们可以用随机梯度来代替真实梯度,从而得到以下算法。
其中,是的一个近似值。如果是通过蒙特卡洛估计得到的,该算法被称为REINFORCE[68]或者蒙特卡洛策略梯度,它是最早且最简单的策略梯度算法之一。
(9.32)中的算法很重要,因为许多其他策略梯度算法都可以通过对它进行扩展得到。接下来我们更仔细地研究(9.32)的含义。
由于,我们可以将(9.32)重写为
其可以进一步简洁地写成
从这个等式可以得出两个重要的解释。
- 首先,由于(9.33)是一个简单的梯度上升算法,可以得到如下观察结果。
- 如果,选择的概率会提高。即
- 如果,选择的概率会降低。即
越大,这种增强作用就越强。
上述观察结果可以如下证明。当足够小时,根据泰勒展开式有
很明显,当时,;当时,。
- 其次,由于这一表达式,该算法在一定程度上能够在探索和利用之间取得平衡。
- 一方面,与成正比。因此,如果的动作值较大,那么就会增大,进而选择的概率会增加。所以,该算法试图利用具有较大值的动作。
- 另一方面,当时,与成反比。因此,如果选择的概率较小,那么就会增大,进而选择的概率会增加。所以,该算法试图探索概率较低的动作。
此外,由于(9.32)式利用样本去近似(9.31)式中的真实梯度,了解应如何获取样本就很重要。
- 如何对进行采样?真实梯度中的应当服从分布,要么是平稳分布,要么是(9.19)式中的折扣总概率分布。或都代表了在策略下呈现出的长期行为。
- 如何对进行采样?中的应当服从的分布。对进行采样的理想方式是依据来选择。因此,策略梯度算法是同策略的。
不幸的是,在实际操作中,由于对样本利用效率较低,并没有严格遵循对和进行采样的理想方式。算法9.1给出了(9.32)式一种更能有效利用样本的实现方式。在这种实现方式中,首先依据生成一个回合(episode),然后利用该回合中的每个经验样本对进行多次更新。
9.5 高级技巧
9.5.1 熵正则
通常应用于策略网络,增加策略的探索性,使策略网络输出的概率分布的熵不要太小。熵只依赖于状态与策略网络参数。
目标函数
我们希望对于大多数的状态,状态价值与熵都会比较大,也就是让 、比较大。所以熵正则的策略学习可以表示为
其中是个超参数,需要手动调。
梯度
其中是个超参数,需要手动调。
9.6 经典策略算法
9.5 总结
本章介绍了策略梯度方法,它是许多现代强化学习算法的基础。策略梯度方法是基于策略的。这在本书中是一大进步,因为前几章中的所有方法都是基于价值的。策略梯度方法的基本思路很简单,即选择一个合适的标量度量,然后通过梯度上升算法对其进行优化。
策略梯度方法最复杂的部分是度量梯度的推导。这是因为我们必须区分具有不同度量以及折扣/无折扣情况的各种场景。幸运的是,不同场景下的梯度表达式是相似的。因此,我们在定理9.1中总结了这些表达式,这是本章最重要的理论成果。对于许多读者来说,了解这个定理就足够了。它的证明并不简单,并非要求所有读者都去学习。
(9.32)中的策略梯度算法必须被充分理解,因为它是许多高级策略梯度算法的基础。在下一章,这个算法将被扩展到另一种重要的策略梯度方法——演员 - 评论家(actor - criti)方法。
9.6 问答
- 问:策略梯度方法的基本思路是什么? 答:基本思路很简单。即定义一个合适的标量度量,推导其梯度,然后使用梯度上升方法来优化该度量。关于这种方法最重要的理论成果是定理9.1中给出的策略梯度。
- 问:策略梯度方法最复杂的部分是什么? 答:策略梯度方法的基本思路很简单,然而梯度的推导过程相当复杂。这是因为我们必须区分大量不同的场景。每个场景中的数学推导过程都不简单。对于许多读者来说,熟悉定理9.1中的结果而无需了解其证明就足够了。
- 问:策略梯度方法应该使用什么度量? 答:本章我们介绍了三种常见的度量:、和。由于它们都会产生相似的策略梯度,所以都可以用于策略梯度方法。更重要的是,(9.1)和(9.4)中的表达式在文献中经常出现。
- 问:为什么策略梯度中包含自然对数函数? 答:引入自然对数函数是为了将梯度表示为期望值。这样,我们就可以用随机梯度来近似真实梯度。
- 问:在推导策略梯度时为什么需要研究无折扣情况? 答:首先,对于持续性任务,引入折扣率可能不合适,我们需要考虑无折扣情况。其次,平均奖励的定义对于折扣和无折扣情况都适用。虽然折扣情况下的梯度是近似的,但它在无折扣情况下的梯度更加简洁。
- 问:(9.32)中的策略梯度算法在数学上起什么作用? 答:为了更好地理解这个算法,建议读者研究它在(9.33)中的简洁表达式,该表达式清楚地表明它是一个用于更新值的梯度上升算法。也就是说,当有样本时,可以对策略进行更新,使得或者,具体取决于系数。