本文最后更新于 2026年8月9日 下午
赵老师开源的 Github 仓库、赵老师的 B站 课程视频
背景来自 XHS 像素点 Z(如有问题,请在下方评论区留言,侵删)
Overview
上一章我们已经学会用函数来表达 state-value 和 action-value,这一章我们尝试用函数来表示 policy。之前所有方法都称为是 value-based 方法,以 state-value 或 action-value 来策动算法;而 policy-based 方法则是 设置一个关于 policy 的目标函数,通过优化这个目标函数,直接得到 optimal policy。
Outline:
- policy gradient 的基本思路
- 基于 metric 的方法
- 以 metric 来定义 optimal policy
- 如何求 metric 的梯度
- 基于 metric 优化(最大化/最小化)
- 总结
策略梯度的基本思路
Lec 43
策略的函数表示
此前,策略一直用表格来表示:
- 所有状态的动作概率都存储在一张表 π(a∣s) 中。表的每个条目由状态(state)和动作(action)索引。
- 我们可以直接访问或修改表中的某个值。
|
a1 |
a2 |
a3 |
a4 |
a5 |
| s1 |
π(a1∣s1) |
π(a2∣s1) |
π(a3∣s1) |
π(a4∣s1) |
π(a5∣s1) |
| ⋮ |
⋮ |
⋮ |
⋮ |
⋮ |
⋮ |
| s9 |
π(a1∣s9) |
π(a2∣s9) |
π(a3∣s9) |
π(a4∣s9) |
π(a5∣s9) |
现在,我们尝试用参数化函数来表示 policy:
π(a∣s,θ)
其中,θ∈Rm 是一个参数向量。
- 该函数可以是一个神经网络,其输入为 s,输出为采取每个动作的概率,参数为 θ。
- 优势:当状态空间很大时,表格表示在存储和泛化方面的效率会很低。
- 这里的函数表示有时也写作 π(a,s,θ)、πθ(a∣s) 或 πθ(a,s)。
表格表示与函数表示的区别
第一,如何定义最优策略?
- 当用表格表示时,策略 π 是最优的,当且仅当它能最大化每一个状态值。
- 当用函数表示时,策略 π 是最优的,当且仅当它能最大化某个标量指标(scalar metric)。
第二,如何获取某个动作的概率?
- 在表格情况下,在状态 s 下采取动作 a 的概率可以通过查表直接获取。
- 在函数表示的情况下,我们需要根据函数结构和参数计算 π(a∣s,θ) 的值。
第三,如何更新策略?
- 当用表格表示时,策略 π 可以通过直接修改表中的条目来更新。
- 当用参数化函数表示时,策略 π 不能再以这种方式更新。相反,它只能通过改变参数 θ 来更新。
策略梯度的基本思想很简单:
尽管 policy gradient 的思想很简单,但当我们试图回答以下问题时,难度就出现了:
- 应该使用什么合适的指标?
- 如何计算这些指标的梯度?
- 如何根据策略梯度进行优化?
指标的选取
Lec 44 & 45
主要有两种指标:
- 平均状态值(average state value)
- 平均单步奖励(average one-step reward)
平均状态值
平均状态值(average state value)简称平均值(average value)。 具体地,该指标定义为 state-value 的 加权平均。
vˉπ=s∈S∑d(s)vπ(s)
-
d(s)≥0 是状态 s 的权重。
-
由于 ∑s∈Sd(s)=1,我们可以将 d(s) 解释为一种概率分布。此时,该指标可以写成
vˉπ=E[vπ(S)]
其中 S∼d.
上面的公式还可以写为向量积形式,
vˉπ=s∈S∑d(s)vπ(s)=dTvπ
其中
vπ=[…,vπ(s),…]T∈R∣S∣,d=[…,d(s),…]T∈R∣S∣.
这个表达式在分析其梯度时特别有用。
如何选择分布 d ?
有两种情况。
- 第一种情况:d 独立于策略 π。
- 这种情况相对简单,因为该指标的梯度更容易计算。
- 在这种情况下,我们特别将 d 记为 d0,将 vˉπ 记为 vˉπ0。
- 如何选择 d0?
- 一种简单的方法是将所有状态视为同等重要,因此选择 d0(s)=1/∣S∣.
- 另一个重要的情况是,我们只对某个特定状态 s0 感兴趣。
- 第二种情况:d 依赖于策略 π。
平均单步奖励
平均单步奖励(average one-step reward)简称平均奖励(average reward)。具体地,该指标为单步即时奖励的 加权平均:
rˉπ≐s∈S∑dπ(s)rπ(s)=dπTrπ=E[rπ(S)],
其中 S∼dπ. 此处,
- 权重 dπ 是平稳分布。
- rπ(s)≐∑a∈Aπ(a∣s)r(s,a) 是从状态 s 开始可以获得的单步即时奖励的平均值
- 其中,r(s,a)=E[R∣s,a]=∑rrp(r∣s,a)
大致过程(不断求期望):rπ(s,a)⟹rπ(s)⟹rπ
另一个等价形式
-
假设一个 agent 遵循给定的策略并生成一条轨迹,其奖励为 (Rt+1,Rt+2,…)。
-
沿这条轨迹的平均单步奖励为
n→∞limn1E[Rt+1+Rt+2+⋯+Rt+n∣St=s0]=n→∞limn1E[k=1∑nRt+k∣St=s0]
其中 s0 是该轨迹的起始状态。
一个重要的性质是:
n→∞limn1E[k=1∑nRt+k∣St=s0]=n→∞limn1E[k=1∑nRt+k]=s∑dπ(s)rπ(s)=rˉπ
注意:
- 起始状态 s0 并不重要。
- rˉπ 的两种定义是等价的。
补充说明
补充 1:
- 所有这些 metrics 都是策略 π 的函数。
- 由于 π 由 θ 参数化,这些 metrics 也是 θ 的函数。
- 换句话说,不同的 θ 值会产生不同的 metric values
- 因此,我们可以搜索最优的 θ 值来最大化这些 metrics
这就是 策略梯度方法(policy gradient methods)的基本思想。
补充 2:
- 一个复杂之处在于,这些指标既可以在 折扣情况(discounted case,其中 γ∈(0,1))下定义,也可以在无折扣情况(undiscounted case,其中 γ=1)下定义。
- 这是因为我们只对 immediate reward 感兴趣,并没有设计到 return,因此也无所谓 discount rate。
- 本书到目前为止只考虑折扣情况。关于无折扣情况的细节,具体请参阅教材。
补充 3:
证明过程在下一小节
练习
你会在文献中经常看到以下指标:
J(θ)=E[t=0∑∞γtRt+1]
它与我们刚才介绍的指标有什么关系?
答案
首先,澄清并理解这个指标。
- 它从 S0∼d 开始,然后经历 A0,R1,S1,A1,R2,S2,…
- At∼π(St),且 Rt+1,St+1∼p(Rt+1∣St,At),p(St+1∣St,At)
那么,我们知道这个指标与平均状态值是相同的,因为
J(θ)=E[t=0∑∞γtRt+1]=s∈S∑d(s)E[t=0∑∞γtRt+1∣S0=s]=s∈S∑d(s)vπ(s)=vˉπ
指标的梯度
Lec 46
给定一个指标,我们接下来
- 推导它的梯度
- 然后,应用基于梯度的方法来优化该指标。
梯度计算是策略梯度方法中最复杂的部分之一!这是因为
- 首先,我们需要区分不同的指标 vˉπ、rˉπ、vˉπ0
- 其次,我们需要区分折扣情况和无折扣情况。
下面小节对应于老师的上课内容,而 9.3.1&2 抄自老师书上的对应章节,为具体证明过程。
梯度结果的总结
梯度结果可以总结为
∇θJ(θ)=s∈S∑η(s)a∈A∑∇θπ(a∣s,θ)qπ(s,a)
其中
- J(θ) 可以是 vˉπ、rˉπ 或 vˉπ0。
- “=” 可能表示严格相等、近似或成正比。
- η 是状态的分布或权重。
一些具体结果如下:
∇θrˉπ∇θvˉπ∇θvˉπ0≃s∑dπ(s)a∑∇θπ(a∣s,θ)qπ(s,a),=1−γ1∇θrˉπ=s∈S∑ρπ(s)a∈A∑∇θπ(a∣s,θ)qπ(s,a)
梯度的紧凑且有用的形式
∇θJ(θ)=s∈S∑η(s)a∈A∑∇θπ(a∣s,θ)qπ(s,a)=E[∇θlnπ(A∣S,θ)qπ(S,A)]
其中 S∼η 且 A∼π(A∣S,θ)。
- 为什么这个表达式有用?
- 因为我们可以用样本来近似梯度!
- ∇θJ≈∇θlnπ(a∣s,θ)qπ(s,a)
如何证明上述等式?
考虑函数 lnπ,其中 ln 是自然对数。容易看出
∇θlnπ(a∣s,θ)=π(a∣s,θ)∇θπ(a∣s,θ)⟹∇θπ(a∣s,θ)=π(a∣s,θ)∇θlnπ(a∣s,θ).
于是,我们有
∇θJ=s∑d(s)a∑∇θπ(a∣s,θ)qπ(s,a)=s∑d(s)a∑π(a∣s,θ)∇θlnπ(a∣s,θ)qπ(s,a)=ES∼d[a∑π(a∣S,θ)∇θlnπ(a∣S,θ)qπ(S,a)]=ES∼d,A∼π[∇θlnπ(A∣S,θ)qπ(S,A)]≐E[∇θlnπ(A∣S,θ)qπ(S,A)]
补充说明
因为我们需要计算 lnπ(a∣s,θ),所以必须确保对于所有的 s,a,θ:
π(a∣s,θ)>0
- 这可以通过使用 softmax 来实现,该函数可以将向量中的元素从 (−∞,+∞) 归一化到 (0,1)。
- 例如,对于任意向量 x=[x1,…,xn]T:
zi=∑j=1nexjexi
其中 zi∈(0,1) 且 ∑i=1nzi=1。
- 那么,策略函数的形式为:
π(a∣s,θ)=∑a′∈Aeh(s,a′,θ)eh(s,a,θ),
其中 h(s,a,θ) 是另一个函数。
- 这种基于 softmax 函数的形式可以通过一个神经网络来实现,该网络的输入为 s,参数为 θ。网络有 ∣A∣ 个输出,每个输出对应一个动作 a 的 π(a∣s,θ)。输出层的激活函数应为 softmax。
- 由于对于所有 a 都有 π(a∣s,θ)>0,参数化策略是随机的,因此具有探索性。
- 此外,还存在确定性策略梯度(Deterministic Policy Gradient,DPG)方法。
- 确定性也是有优势的:如果要输出无穷多个 π(a∣s,θ),那么上面的方法就不行了,此时 DPG 是可以工作的.
9.3.1 推导策略梯度:有折扣的情况
下面开始推导目标函数的梯度。首先我们考虑有折扣的情况,即 γ∈(0,1),这也是到目前为止本书一直考虑的情况。此时,状态值和动作值的定义是
vπ(s)qπ(s,a)=E[Rt+1+γRt+2+γ2Rt+3+⋯∣St=s],=E[Rt+1+γRt+2+γ2Rt+3+⋯∣St=s,At=a].
并且它们满足 vπ(s)=∑a∈Aπ(a∣s,θ)qπ(s,a)。
这一小节分三个部分来说明:
- vˉπ(θ) 是与 rˉπ(θ) 等价的目标函数
目标函数的等价性
第一,我们证明 vˉπ(θ) 是与 rˉπ(θ) 等价的目标函数。
引理 9.1: vˉπ(θ) 与 rˉπ(θ) 等价
在有折扣的情况下,即当 γ∈(0,1) 时,有
rˉπ=(1−γ)vˉπ.(9.13)
因此,vˉπ(θ) 和 rˉπ(θ) 可以被同时最大化。
证明: 注意到
vˉπ(θ)=dπTvπ,rˉπ(θ)=dπTrπ
其中,vπ,rπ 满足贝尔曼方程 vπ=rπ+γPπvπ。在贝尔曼方程两边同乘以 dπT 可得
vˉπ=rˉπ+γdπTPπvπ=rˉπ+γdπTvπ=rˉπ+γvˉπ.
上式可推出 (9.13)。 □
状态值对策略的梯度
第二,下面的引理给出了任意一个状态值对策略的梯度。
引理 9.2 (状态值的梯度):在有折扣的情况下,即当 γ∈(0,1) 时,对于任意 s∈S 都有
∇θvπ(s)=s′∈S∑Prπ(s′∣s)a∈A∑∇θπ(a∣s′,θ)qπ(s′,a),(9.14)
其中,
- Prπ(s′∣s)≐∑k=0∞γk[Pπk]ss′=[(In−γPπ)−1]ss′
是在策略 π 下从状态 s 转移到状态 s′ 的折扣总概率。
- 这里 [⋅]ss′ 表示矩阵的第 s 行和第 s′ 列的元素。
- [Pπk]ss′ 等于在策略 π 下恰好用 k 步从 s 转移到 s′ 的概率。
证明:
首先,对任意 s∈S 有
∇θvπ(s)=∇θ[a∈A∑π(a∣s,θ)qπ(s,a)]=a∈A∑[∇θπ(a∣s,θ)qπ(s,a)+π(a∣s,θ)∇θqπ(s,a)],(9.15)
其中动作值 qπ(s,a) 的表达式为
qπ(s,a)=r(s,a)+γs′∈S∑p(s′∣s,a)vπ(s′).
在上式两边求对 θ 的梯度可得
∇θqπ(s,a)=0+γs′∈S∑p(s′∣s,a)∇θvπ(s′).
上式中 r(s,a)=∑rrp(r∣s,a) 对 θ 的梯度等于 0,这是因为这一项与 θ 无关。将上式代入 (9.15) 可得
∇θvπ(s)=a∈A∑[∇θπ(a∣s,θ)qπ(s,a)+π(a∣s,θ)γs′∈S∑p(s′∣s,a)∇θvπ(s′)]=a∈A∑∇θπ(a∣s,θ)qπ(s,a)+γa∈A∑π(a∣s,θ)s′∈S∑p(s′∣s,a)∇θvπ(s′).(9.16)
我们的任务是推导 ∇θvπ 的表达式,值得注意的是它出现在上式的两边。我们使用基于矩阵-向量形式的方法进行表示。首先,设
u(s)≐a∈A∑∇θπ(a∣s,θ)qπ(s,a).
其次,有
a∈A∑π(a∣s,θ)s′∈S∑p(s′∣s,a)∇θvπ(s′)=s′∈S∑p(s′∣s)∇θvπ(s′)=s′∈S∑[Pπ]ss′∇θvπ(s′),
因此,式 (9.16) 的矩阵-向量形式为
∇θvπ∈Rmn⋮∇θvπ(s)⋮=u∈Rmn⋮u(s)⋮+γ(Pπ⊗Im)∇θvπ∈Rmn⋮∇θvπ(s′)⋮.
其中,
- n=∣S∣ 是状态的个数,
- m 是参数向量 θ 的维度。
上式出现了克罗内克积(Kronecker product)⊗,这是因为 ∇θvπ(s) 是一个向量。上式可以更简洁地写为
∇θvπ=u+γ(Pπ⊗Im)∇θvπ.
显然上式是关于 ∇θvπ 的一个线性方程,其解为
∇θvπ=(Inm−γPπ⊗Im)−1u=(In⊗Im−γPπ⊗Im)−1u=[(In−γPπ)−1⊗Im]u.(9.17)
式 (9.17) 给出了 ∇θvπ 的向量形式,其针对状态 s 的展开形式为
∇θvπ(s)=s′∈S∑[(In−γPπ)−1]ss′u(s′)=s′∈S∑[(In−γPπ)−1]ss′a∈A∑∇θπ(a∣s′,θ)qπ(s′,a).(9.18)
如何解读上式中的 [(In−γPπ)−1]ss′ 呢?它的解读如下所示。由于 (In−γPπ)−1=I+γPπ+γ2Pπ2+⋯,我们有
[(In−γPπ)−1]ss′=[I]ss′+γ[Pπ]ss′+γ2[Pπ2]ss′+⋯=k=0∑∞γk[Pπk]ss′.
注意,[Pπk]ss′ 是从 s 出发恰好用 k 步转移到 s′ 的概率(见方框 8.1)。因此,[(In−γPπ)−1]ss′ 是从 s 转移到 s′ 的总概率。通过令 [(In−γPπ)−1]ss′≐Prπ(s′∣s),方程 (9.18) 变为 (9.14)。
vˉπ0 的梯度
基于引理 9.2,下面推导 vˉπ0 的梯度。正如前面提到的,这里的上标 “0” 表示该目标函数中的状态概率分布与策略 π 无关。
定理 9.2 (有折扣的情况下 vˉπ0 的梯度)。
在有折扣的情况下,即当 γ∈(0,1) 时,vˉπ0=d0Tvπ 的梯度是
∇θvˉπ0=E[∇θlnπ(A∣S,θ)qπ(S,A)],
其中,S∼ρπ,A∼π(S,θ) 而且
ρπ(s)=s′∈S∑d0(s′)Prπ(s∣s′),s∈S,(9.19)
其中 Prπ(s∣s′)=∑k=0∞γk[Pπk]s′s=[(I−γPπ)−1]s′s 是在策略 π 下从 s′ 到 s 的折扣总概率。
证明:
对 vˉπ0=d0Tvπ 两边求梯度。由于 d0(s) 与 π 无关,可得
∇θvˉπ0=∇θs∈S∑d0(s)vπ(s)=s∈S∑d0(s)∇θvπ(s).
将引理 9.2 中 ∇θvπ(s) 的表达式代入上式可得
∇θvˉπ0=s∈S∑d0(s)∇θvπ(s)=s∈S∑d0(s)s′∈S∑Prπ(s′∣s)a∈A∑∇θπ(a∣s′,θ)qπ(s′,a)=s′∈S∑(s∈S∑d0(s)Prπ(s′∣s))a∈A∑∇θπ(a∣s′,θ)qπ(s′,a)≐s′∈S∑ρπ(s′)a∈A∑∇θπ(a∣s′,θ)qπ(s′,a)=s∈S∑ρπ(s)a∈A∑∇θπ(a∣s,θ)qπ(s,a)(将 s′ 换为 s)=s∈S∑ρπ(s)a∈A∑π(a∣s,θ)∇θlnπ(a∣s,θ)qπ(s,a)=E[∇θlnπ(A∣S,θ)qπ(S,A)],
其中 S∼ρπ,A∼π(S,θ)。证明完毕。
vˉπ 和 rˉπ 的梯度
根据引理 9.1 和引理 9.2,我们可以推导出 vˉπ 和 rˉπ 的梯度。与定理 9.2 不同,下面定理中目标函数的状态概率分布与策略 π 相关。
定理 9.3 (有折扣的情况下 vˉπ 和 rˉπ 的梯度)。
在有折扣的情况下,即当 γ∈(0,1) 时,vˉπ 和 rˉπ 的梯度为
∇θrˉπ=(1−γ)∇θvˉπ≈s∈S∑dπ(s)a∈A∑∇θπ(a∣s,θ)qπ(s,a)=E[∇θlnπ(A∣S,θ)qπ(S,A)],
其中 S∼dπ,A∼π(S,θ)。当 γ 接近 1 时,上面的近似更加准确。
证明:
对 vˉπ=∑s∈Sdπ(s)vπ(s) 两边求梯度可得
∇θvˉπ=∇θs∈S∑dπ(s)vπ(s)=s∈S∑∇θdπ(s)vπ(s)+s∈S∑dπ(s)∇θvπ(s).(9.20)
我们首先分析上式中的第二项 ∑s∈Sdπ(s)∇θvπ(s)。将式 (9.17) 中的 ∇θvπ 代入第二项中可得
s∈S∑dπ(s)∇θvπ(s)=(dπT⊗Im)∇θvπ=(dπT⊗Im)[(In−γPπ)−1⊗Im]u=[dπT(In−γPπ)−1]⊗Imu.(9.21)
注意到下式成立:
dπT(In−γPπ)−1=1−γ1dπT.
该式可以通过两边乘以 (In−γPπ) 得到证明。将上式代入式 (9.21) 可得
s∈S∑dπ(s)∇θvπ(s)=1−γ1dπT⊗Imu=1−γ1s∈S∑dπ(s)a∈A∑∇θπ(a∣s,θ)qπ(s,a).
虽然式 (9.20) 有两项,但是由于第二项包含一个缩放因子 1−γ1,当 γ→1 时,第二项起到主导作用,第一项可以忽略。此时,
∇θvˉπ≈1−γ1s∈S∑dπ(s)a∈A∑∇θπ(a∣s,θ)qπ(s,a).
上述推导过程中的近似要求第一项在 γ→1 时不会趋向无穷大。另外,根据 rˉπ=(1−γ)vˉπ 可知
∇θrˉπ=(1−γ)∇θvˉπ≈s∈S∑dπ(s)a∈A∑∇θπ(a∣s,θ)qπ(s,a)=s∈S∑dπ(s)a∈A∑π(a∣s,θ)∇θlnπ(a∣s,θ)qπ(s,a)=E[∇θlnπ(A∣S,θ)qπ(S,A)].
证明完毕。
9.3.2 推导策略梯度:无折扣的情况
下面继续介绍目标函数梯度的推导,不过这次我们考虑无折扣的情况,即 γ=1。到目前为止,本书只考虑了有折扣的情况,为什么现在突然开始考虑无折扣的情况呢?目标函数 rˉπ 的定义对有折扣和无折扣的情况都是成立的。在有折扣的情况下,rˉπ 的梯度是一种近似(定理 9.3)。在无折扣的情况下,我们将看到其梯度的推导更加严格且优美。
状态值和泊松方程
在无折扣的情况下,我们需要重新定义状态值和动作值。由于奖励的直接求和 E[Rt+1+Rt+2+Rt+3+…∣St=s] 可能发散,因此状态值和动作值需要以一种特殊的方式来定义:
vπ(s)qπ(s,a)≐E[(Rt+1−rˉπ)+(Rt+2−rˉπ)+(Rt+3−rˉπ)+…∣St=s],≐E[(Rt+1−rˉπ)+(Rt+2−rˉπ)+(Rt+3−rˉπ)+…∣St=s,At=a],
其中 rˉπ 是平均奖励。文献中对 vπ(s) 有不同的称呼,如差分奖励(differential reward)或偏置(bias)。不难验证,上述状态值满足下式:
vπ(s)=a∑π(a∣s,θ)[r∑p(r∣s,a)(r−rˉπ)+s′∑p(s′∣s,a)vπ(s′)].(9.22)
此外,通过对比上式和 vπ(s)=∑a∈Aπ(a∣s,θ)qπ(s,a),可以得到动作值的表达式为,
qπ(s,a)=r∑p(r∣s,a)(r−rˉπ)+s′∑p(s′∣s,a)vπ(s′)
将式 (9.22) 写成矩阵-向量形式可得,
vπ=rπ−rˉπ1n+Pπvπ,(9.23)
其中 1n=[1,…,1]T∈Rn。方程 (9.22) 和 (9.23) 与贝尔曼方程很类似,它们有一个特定的名称叫作 泊松方程(Poisson equation)。
如何从泊松方程中求解 vπ?答案将在下面的定理中给出。
定理 9.4 (泊松方程的解)。令
vπ∗≐(In−Pπ+1ndπT)−1rπ.(9.24)
那么 vπ∗ 是式 (9.23) 中泊松方程的一个解,且泊松方程的任意解具有以下形式:
vπ=vπ∗+c1n,
其中 c∈R。上述定理表明泊松方程的解可能是不唯一的。
证明:
证明分为三步。
-
第 1 步:证明 vπ∗ 是泊松方程的一个解。
令
A≐In−Pπ+1ndπT.
那么 vπ∗=A−1rπ。A 的可逆性将在第 3 步中证明。将 vπ∗=A−1rπ 代入式 (9.23) 可得
A−1rπ=rπ−1ndπTrπ+PπA−1rπ.
我们只需要证明上式是成立的,从而证明 vπ∗ 是泊松方程的一个解。具体来说,上式等价为 (−A−1+In−1ndπT+PπA−1)rπ=0。该式可以重写为
(−In+A−1ndπTA+Pπ)A−1rπ=0.
上式是成立的,因为左侧括号内的项等于 0,即 −In+A−1ndπTA+Pπ=−In+(In−Pπ+1ndπT)−1ndπT(In−Pπ+1ndπT)+Pπ=0。所以,vπ∗ 是泊松方程的一个解。
-
第 2 步:证明任意解的表达式。
将 rˉπ=dπTrπ 代入式 (9.23) 可得
vπ=rπ−1ndπTrπ+Pπvπ.(9.25)
上式可以化为
(In−Pπ)vπ=(In−1ndπT)rπ.(9.26)
注意 In−Pπ 是奇异的,这是因为对于任何策略 π 都有 (In−Pπ)1n=0。因此,式 (9.26) 的解不是唯一的:如果 vπ∗ 是一个解,那么对于任意的 x∈Null(In−Pπ) 可知 vπ∗+x 也是一个解。更进一步,如果 Pπ 不可约(irreducible),那么 Null(In−Pπ)=span{1n}。此时,泊松方程的任意解都可以写成 vπ∗+c1n,其中 c∈R 是任意实数。
-
第 3 步:证明 A=In−Pπ+1ndπT 是可逆的。
前面用到了 A 的可逆性,下面来证明该性质。
引理 9.3: 矩阵 In−Pπ+1ndπT 是可逆的,其逆矩阵是
[In−(Pπ−1ndπT)]−1=k=1∑∞(Pπk−1ndπT)+In.
证明: 首先我们不加证明地给出一些基本知识。设 ρ(M) 为矩阵 M 的谱半径。如果 ρ(M)<1,那么 I−M 是可逆的。此外,ρ(M)<1 当且仅当 limk→∞Mk=0。
接下来我们展示 limk→∞(Pπ−1ndπT)k→0,进而证明 In−(Pπ−1ndπT) 的可逆性。具体来说,注意到
(Pπ−1ndπT)k=Pπk−1ndπT,k⩾1.(9.27)
上式可以通过归纳法证明。例如,当 k=1 时,很明显等式成立。当 k=2 时,我们有
(Pπ−1ndπT)2=(Pπ−1ndπT)(Pπ−1ndπT)=Pπ2−Pπ1ndπT−1ndπTPπ+1ndπT1ndπT=Pπ2−1ndπT,
其中最后一个等号是由于 Pπ1n=1n,dπTPπ=dπT,dπT1n=1。k⩾3 的情况可以类似地证明。
由于 dπ 是平稳分布,故满足 limk→∞Pπk=dπT1n(见方框 8.1)。对式 (9.27) 两边求极限可得
k→∞lim(Pπ−1ndπT)k=k→∞limPπk−dπT1n=0.
因此有 ρ(Pπ−1ndπT)<1,进而有 In−(Pπ−1ndπT) 是可逆的,且其逆矩阵是
(In−(Pπ−1ndπT))−1=k=0∑∞(Pπ−1ndπT)k=In+k=1∑∞(Pπ−1ndπT)k=In+k=1∑∞(Pπk−1ndπT)=k=0∑∞(Pπk−1ndπT)+1ndπT.
证明完毕。 □
梯度的推导
虽然定理 9.4 表明在无折扣的情况下 vπ 的值不是唯一的,但是 rˉπ 的值是唯一的。具体来说,将 vπ=vπ∗+c1n 代入泊松方程可得
rˉπ1n=rπ+(Pπ−In)vπ=rπ+(Pπ−In)(vπ∗+c1n)=rπ+(Pπ−In)vπ∗.
注意其中 c 被抵消了,因此 rˉπ 的值是唯一的,所以我们可以在无折扣的情况下计算 rˉπ 的梯度。
定理 9.5 (无折扣情况下 rˉπ 的梯度)。在无折扣的情况下,平均奖励 rˉπ 的梯度是
∇θrˉπ=s∈S∑dπ(s)a∈A∑∇θπ(a∣s,θ)qπ(s,a)=E[∇θlnπ(A∣S,θ)qπ(S,A)],(9.28)
其中 S∼dπ,A∼π(S,θ)。
与前面有折扣的情况下的结果相比(定理 9.3),rˉπ 在无折扣的情况下的梯度在数学上更为优美,这是因为式 (9.28) 是严格成立的。
证明:
首先,对 vπ(s)=∑a∈Aπ(a∣s,θ)qπ(s,a) 两边求梯度可得
∇θvπ(s)=∇θ[a∈A∑π(a∣s,θ)qπ(s,a)]=a∈A∑[∇θπ(a∣s,θ)qπ(s,a)+π(a∣s,θ)∇θqπ(s,a)],(9.29)
其中 qπ(s,a) 是动作值,满足
qπ(s,a)=r∑p(r∣s,a)(r−rˉπ)+s′∑p(s′∣s,a)vπ(s′)=r(s,a)−rˉπ+s′∑p(s′∣s,a)vπ(s′).
对上式两边求导,由于 r(s,a)=∑rrp(r∣s,a) 不依赖于 θ,可得
∇θqπ(s,a)=0−∇θrˉπ+s′∈S∑p(s′∣s,a)∇θvπ(s′).
将上式代入式 (9.29) 可得
∇θvπ(s)=a∈A∑[∇θπ(a∣s,θ)qπ(s,a)+π(a∣s,θ)(−∇θrˉπ+s′∈S∑p(s′∣s,a)∇θvπ(s′))]=a∈A∑∇θπ(a∣s,θ)qπ(s,a)−∇θrˉπ+a∈A∑π(a∣s,θ)s′∈S∑p(s′∣s,a)∇θvπ(s′).(9.30)
设
u(s)≐a∈A∑∇θπ(a∣s,θ)qπ(s,a).
由于 ∑a∈Aπ(a∣s,θ)∑s′∈Sp(s′∣s,a)∇θvπ(s′)=∑s′∈Sp(s′∣s)∇θvπ(s′),方程 (9.30) 可以写成矩阵-向量形式:
∇θvπ∈Rmn⋮∇θvπ(s)⋮=u∈Rmn⋮u(s)⋮−1n⊗∇θrˉπ+(Pπ⊗Im)∇θvπ∈Rmn⋮∇θvπ(s′)⋮,
其中 n=∣S∣,m 是向量 θ 的维数,⊗ 是克罗内克积。上述方程可以简洁地写为
∇θvπ=u−1n⊗∇θrˉπ+(Pπ⊗Im)∇θvπ,
进而可得
1n⊗∇θrˉπ=u+(Pπ⊗Im)∇θvπ−∇θvπ.
在上式两边同时乘以 dπT⊗Im 可得
(dπT1n)⊗∇θrˉπ=dπT⊗Imu+(dπTPπ)⊗Im∇θvπ−dπT⊗Im∇θvπ=dπT⊗Imu.
由于 dπT1n=1,由上式可得
∇θrˉπ=dπT⊗Imu=s∈S∑dπ(s)u(s)=s∈S∑dπ(s)a∈A∑∇θπ(a∣s,θ)qπ(s,a).
证明完毕。
最后,由于 vπ 不是唯一的,因此 vˉπ 也不是唯一的,所以我们这里不关注 vˉπ 的梯度。
基于梯度的 RL
Lec 47
梯度上升算法
Gradient Ascent
现在,我们介绍第一个策略梯度算法来寻找最优策略!
最大化 J(θ) 的梯度上升算法(Gradient-Ascent Algorithm)为
θt+1=θt+α∇θJ(θ)=θt+αE[∇θlnπ(A∣S,θt)qπ(S,A)]
- 真实梯度可以被随机梯度替代:
θt+1=θt+α∇θlnπ(at∣st,θt)qπ(st,at)
- 此外,由于 qπ 未知,它可以被近似:
θt+1=θt+α∇θlnπ(at∣st,θt)qt(st,at)
有不同的方法来近似 qπ(st,at):
- 在本讲中,采用基于蒙特卡洛的方法,这样可以得到 REINFORCE 算法
- 事实上,还可以采用 TD learning 等等方法,这会在下一节介绍。
补充说明
如何进行采样?
ES∼d,A∼π[∇θlnπ(A∣S,θt)qπ(S,A)]⟶∇θlnπ(a∣s,θt)qπ(s,a)
- 如何采样 S?
- S∼d,其中分布 d 是在策略 π 下的长期行为分布。
- 在实际当中一般不这么做——因为能得到数据已经非常幸运,不会再为了去求 stationary distribution 而采很久数据。
- 如何采样 A?
- A∼π(A∣S,θ) —— at 应该按照 π(θt) 在状态 st 处采样。
- 注意到,这一步直接使用 π(θt) 进行采样,也就是说 π(θt) 既作为 target policy 又作为 behavior policy!因此,策略梯度方法是 on-policy 的。
- 也可以改造为 off-policy 版本,下节课会说明。
如何理解这个算法?
由于
∇θlnπ(at∣st,θt)=π(at∣st,θt)∇θπ(at∣st,θt)
所以该算法可以重写为
θt+1=θt+α∇θlnπ(at∣st,θt)qt(st,at)=θt+αβt(π(at∣st,θt)qt(st,at))∇θπ(at∣st,θt).
因此,我们得到该算法的重要表达式:
θt+1=θt+αβt∇θπ(at∣st,θt)
它是一个用于最大化 π(at∣st,θ) 的梯度上升算法,αβt 可以视作是一个步长。
直观理解:当 αβt 足够小时
- 如果 βt>0,选择 (st,at) 的概率被增强:
π(at∣st,θt+1)>π(at∣st,θt)
βt 越大,增强效果越强(也不能太大,要在合理范围内)
- 如果 βt<0,则 π(at∣st,θt+1)<π(at∣st,θt)。
上面结论的数学推导
当 θt+1−θt 足够小时,我们有如下一阶 Taylor 展开,
π(at∣st,θt+1)≈π(at∣st,θt)+(∇θπ(at∣st,θt))T(θt+1−θt)=π(at∣st,θt)+αβt(∇θπ(at∣st,θt))T(∇θπ(at∣st,θt))=π(at∣st,θt)+αβt∥∇θπ(at∣st,θt)∥2
故有,
π(at∣st,θt+1)−π(at∣st,θt)=αβt∥∇θπ(at∣st,θt)∥2α>0,∥∇θπ(at∣st,θt)∥2≥0
因此,左侧的正负完全取决于 βt 的正负!
系数 βt 可以很好地平衡探索(exploration)和利用(exploitation)。
- 首先,βt 与 qt(st,at) 成正比。
- 如果 qt(st,at) 很大,则 βt 很大,则 π(at∣st) 变大(θt→θt+1)
- 因此,算法倾向于增强具有更大值的动作。
- 其次,βt 与 π(at∣st,θt) 成反比。
- 如果 π(at∣st,θt) 很小,则 βt 很大,则 π(at∣st) 变大
- 因此,算法倾向于探索概率较低的动作。
REINFORCE 算法
回顾:
θt+1=θt+α∇θlnπ(at∣st,θt)qπ(st,at)
将 qπ(st,at) 替换为 qt(st,at) ,有
θt+1=θt+α∇θlnπ(at∣st,θt)qt(st,at)
- 如果 qπ(st,at) 通过蒙特卡洛估计来近似,该算法有一个特定的名字,REINFORCE。
- REINFORCE 是最早且最简单的策略梯度算法之一。
- 许多其他策略梯度算法,例如 Actor-Critic 方法(下一讲),都可以通过对 REINFORCE 的扩展得到。
伪代码
伪代码:基于蒙特卡洛的策略梯度(REINFORCE)
- 初始化:参数化函数 π(a∣s,θ),折扣因子 γ∈(0,1),学习率 α>0。
- 目标:搜索使 J(θ) 最大化的最优策略。
- 对于第 k 次迭代,执行:
- 选择初始状态 s0,并按照策略 π(θk) 生成一个回合(episode)。假设该回合为 {s0,a0,r1,…,sT−1,aT−1,rT}。
- 对于 t=0,1,…,T−1,执行:
- 值更新: qt(st,at)=∑k=t+1Tγk−t−1rk
- 策略更新: θt+1=θt+α∇θlnπ(at∣st,θt)qt(st,at)
- θk=θT
补充说明:因为 MC 是 off-line 的,所以要先走 T 步之后,再一并生成数据。