1. 简介
论文《HIGH-DIMENSIONAL CONTINUOUS CONTROL USINGGENERALIZED ADVANTAGE ESTIMATION》是策略梯度算法中常用的优势估计算法GAE对应的论文,OpenAI Spinning Up教程推荐读一读这篇论文。
论文摘要翻译:策略梯度方法在强化学习中是一种很有吸引力的方法,因为它们直接优化累积奖励,并且可以直接与神经网络等非线性函数近似器一起使用。但是它存在两个主要挑战:一是通常需要大量样本;二是尽管有输入数据的非平稳性,但很难获得稳定和平稳的改进。我们让值函数以某种偏差为代价大幅减少策略梯度估计的方差来解决第一个挑战,其优势函数的指数加权估计器类似于 TD(λ)。我们通过对由神经网络表示的策略和价值函数使用信任区域优化过程来解决第二个挑战。我们的方法在极具挑战性的 3D 运动任务上产生了强大的经验结果,学习双足和四足模拟机器人的跑步步态,并学习一种策略使两足机器人从躺在地面到站立。与之前使用手工策略表示的工作相比,我们的神经网络策略直接从原始运动学映射到关节力矩。我们的算法是完全无模型的,3D双足机器人上学习任务所需的模拟经验量对应于实际时间的1-2周。
论文提出的策略梯度估计器GAE(generalized advantage estimator, GAE)可以显著降低方差,同时将偏差维持在一个可以接受的范围内,它有两个参数 γ ∈ [ 0 , 1 ] \gamma \in [0, 1] γ∈[0,1]和 λ ∈ [ 0 , 1 ] \lambda \in [0, 1] λ∈[0,1]。
2. 准备知识
设初始状态 s 0 s_0 s0从分布 ρ 0 \rho_0 ρ0采样得到,根据策略 a t ∼ π ( a t ∣ s t ) a_t \sim \pi(a_t \mid s_t) at∼π(at∣st)采样动作,根据环境动态性 s t + 1 ∼ P ( s t + 1 ∣ s t , a t ) s_{t+1} \sim P(s_{t+1} \mid s_t, a_t) st+1∼P(st+1∣st,at)采样状态,直到终止状态来生成轨迹 ( s 0 , a 0 , s 1 , a 1 , ⋯ ) (s_0, a_0,s_1, a_1, \cdots) (s0,a0,s1,a1,⋯)。在每一时刻会得到奖励 r t = r ( s t , a t , s t + 1 ) r_t = r(s_t, a_t, s_{t+1}) rt=r(st,at,st+1),强化学习的目标是最大化期望总奖励 ∑ t = 0 ∞ r t \sum_{t=0}^{\infty} r_t ∑t=0∞rt(假设对所有策略这个总奖励是有穷的,并且这里是不带折扣的奖励,带折扣奖励则为 ∑ t = 0 ∞ γ t r t \sum_{t=0}^{\infty} \gamma^t r_t ∑t=0∞γtrt)。
策略梯度最大化期望奖励是通过不断估计梯度
g
:
=
∇
θ
E
[
∑
t
=
0
∞
r
t
]
g := \nabla_{\theta} \mathbb{E}[\sum_{t=0}^{\infty} r_t]
g:=∇θE[∑t=0∞rt], 有如下形式:
g
=
E
[
∑
t
=
0
∞
Ψ
t
∇
θ
l
o
g
π
θ
(
a
t
∣
s
t
)
]
,
(
1
)
\begin {aligned} g &= \mathbb{E} \left [\sum_{t=0}^{\infty} \Psi_t \nabla_{\theta}\ log{\pi}_{\theta}(a_t \mid s_t) \right], \ \qquad (1) \end {aligned}
g=E[t=0∑∞Ψt∇θ logπθ(at∣st)], (1)
式中的
Ψ
t
\Psi_t
Ψt是下列中的任一一种:
- ∑ t = 0 ∞ r t \sum_{t=0}^{\infty} r_t ∑t=0∞rt: 轨迹的总奖励
- ∑ t ′ = t ∞ r t ′ \sum_{t^{\prime}=t}^{\infty} r_{t^{\prime}} ∑t′=t∞rt′: 从动作 a t a_t at开始的奖励和
- ∑ t ′ = t ∞ r t ′ − b ( s t ) \sum_{t^{\prime}=t}^{\infty} r_{t^{\prime}} - b(s_t) ∑t′=t∞rt′−b(st):上一式子的baseline版本
- Q π ( s t , a t ) Q^{\pi}(s_t, a_t) Qπ(st,at): 状态-动作价值函数
- A π ( s t , a t ) A^{\pi}(s_t, a_t) Aπ(st,at): 优势函数
- r t + V π ( s t + 1 ) − V π ( s t ) r_t + V^{\pi}(s_{t+1}) - V^{\pi}(s_t) rt+Vπ(st+1)−Vπ(st): TD残差
价值函数和状态-价值函数的定义为:
V
π
(
s
t
)
:
=
E
s
t
+
1
:
∞
,
a
t
:
∞
[
∑
l
=
0
∞
r
t
+
l
]
Q
π
(
s
t
,
a
t
)
:
=
E
s
t
+
1
:
∞
,
a
t
+
1
:
∞
[
∑
l
=
0
∞
r
t
+
l
]
(
2
)
V^{\pi}(s_t) := \mathbb{E}_{s_{t+1}:\infty, a_{t:\infty}} \left[ \sum_{l=0}^{\infty} r_{t+l} \right] \ \qquad Q^{\pi}(s_t, a_t) := \mathbb{E}_{s_{t+1}:\infty, a_{t+1:\infty}} \left[ \sum_{l=0}^{\infty} r_{t+l} \right] \ \qquad (2)
Vπ(st):=Est+1:∞,at:∞[l=0∑∞rt+l] Qπ(st,at):=Est+1:∞,at+1:∞[l=0∑∞rt+l] (2)
优势函数的定义为下式,它衡量一个动作比策略的默认行为更好还是更差:
A
π
(
s
t
,
a
t
)
:
=
Q
π
(
s
t
,
a
t
)
−
V
π
(
s
t
)
(
3
)
A^{\pi}(s_t, a_t) := Q^{\pi}(s_t, a_t) - V^{\pi}(s_t) \ \qquad (3)
Aπ(st,at):=Qπ(st,at)−Vπ(st) (3)
尽管在实践中,优势函数是未知的必须估计得到,但是选择
Ψ
t
=
A
π
(
s
t
,
a
t
)
\Psi_t = A^{\pi}(s_t, a_t)
Ψt=Aπ(st,at) 几乎可以得到最小的方差。该式可以通过对策略梯度的解释来直观地证明:策略梯度方向的每一步应该增加优于平均水平的动作的概率,同时减少比平均水平更差的动作的概率。
接下来引入参数
γ
\gamma
γ来减少方差,这是通过降低与延迟效应对应的奖励的权重来实现的,但代价是引入偏差。这个参数也对应着MDP的折扣形式里的折扣因子,但是在论文中作者们把它当做在不加折扣问题中的方差减少参数。加折扣的价值函数定义如下:
V
π
,
γ
(
s
t
)
:
=
E
s
t
+
1
:
∞
,
a
t
:
∞
[
∑
l
=
0
∞
γ
l
r
t
+
l
]
Q
π
,
γ
(
s
t
,
a
t
)
:
=
E
s
t
+
1
:
∞
,
a
t
+
1
:
∞
[
∑
l
=
0
∞
γ
l
r
t
+
l
]
(
4
)
V^{\pi, \gamma}(s_t) := \mathbb{E}_{s_{t+1}:\infty, a_{t:\infty}} \left[ \sum_{l=0}^{\infty} \gamma^lr_{t+l} \right] \ \qquad Q^{\pi, \gamma}(s_t, a_t) := \mathbb{E}_{s_{t+1}:\infty, a_{t+1:\infty}} \left[ \sum_{l=0}^{\infty} \gamma^l r_{t+l} \right] \ \qquad (4)
Vπ,γ(st):=Est+1:∞,at:∞[l=0∑∞γlrt+l] Qπ,γ(st,at):=Est+1:∞,at+1:∞[l=0∑∞γlrt+l] (4)
A π , γ ( s t , a t ) : = Q π , γ ( s t , a t ) − V π , γ ( s t ) ( 5 ) A^{\pi, \gamma}(s_t, a_t) := Q^{\pi, \gamma}(s_t, a_t) - V^{\pi, \gamma}(s_t) \ \qquad (5) Aπ,γ(st,at):=Qπ,γ(st,at)−Vπ,γ(st) (5)
策略梯度的折扣近似定义为:
g
γ
:
=
E
s
0
:
∞
,
a
0
:
∞
[
∑
t
=
0
∞
A
π
,
γ
(
s
t
,
a
t
)
∇
θ
l
o
g
π
θ
(
a
t
∣
s
t
)
]
,
(
6
)
g^{\gamma} := \mathbb{E}_{s_{0:\infty}, a_{0:\infty}} \left [\sum_{t=0}^{\infty}A^{\pi, \gamma}(s_t, a_t) \nabla_{\theta}\ log{\pi}_{\theta}(a_t \mid s_t) \right], \ \qquad (6)
gγ:=Es0:∞,a0:∞[t=0∑∞Aπ,γ(st,at)∇θ logπθ(at∣st)], (6)
优势函数的 γ − j u s t \gamma-just γ−just 估计器是在估计式(6)的 g γ g^{\gamma} gγ时用它来代替 A π , γ A^{\pi, \gamma} Aπ,γ不引入偏差的估计器。
定义1:如果满足下式,估计器
A
t
^
\hat{A_t}
At^ 是
γ
−
j
u
s
t
\gamma-just
γ−just :
E
s
0
:
∞
a
0
:
∞
[
A
t
^
(
s
0
:
∞
,
a
0
:
∞
)
∇
θ
l
o
g
π
θ
(
a
t
∣
s
t
)
]
=
E
s
0
:
∞
a
0
:
∞
[
A
π
,
γ
(
s
t
,
a
t
)
∇
θ
l
o
g
π
θ
(
a
t
∣
s
t
)
]
(
7
)
\mathbb{E}_{\substack{s_{0:\infty}\\ a_{0:\infty}}} \left[\hat{A_t}(s_{0:\infty}, a_{0:\infty}) \nabla_{\theta} log \pi_{\theta}(a_t \mid s_t) \right] = \mathbb{E}_{\substack{s_{0:\infty}\\ a_{0:\infty}}} \left[A^{\pi, \gamma}(s_t, a_t) \nabla_{\theta} log \pi_{\theta}(a_t \mid s_t) \right] \ \qquad (7)
Es0:∞a0:∞[At^(s0:∞,a0:∞)∇θlogπθ(at∣st)]=Es0:∞a0:∞[Aπ,γ(st,at)∇θlogπθ(at∣st)] (7)
如果对于所有t都满足
A
t
^
\hat{A_t}
At^ 是
γ
−
j
u
s
t
\gamma-just
γ−just,那么有:
E
s
0
:
∞
a
0
:
∞
[
∑
t
=
0
∞
A
t
^
(
s
0
:
∞
,
a
0
:
∞
)
∇
θ
l
o
g
π
θ
(
a
t
∣
s
t
)
]
=
g
γ
(
8
)
\mathbb{E}_{\substack{s_{0:\infty}\\ a_{0:\infty}}} \left[ \sum_{t=0}^{\infty} \hat{A_t}(s_{0:\infty}, a_{0:\infty}) \nabla_{\theta} log \pi_{\theta}(a_t \mid s_t) \right] = g^{\gamma} \ \qquad (8)
Es0:∞a0:∞[t=0∑∞At^(s0:∞,a0:∞)∇θlogπθ(at∣st)]=gγ (8)
Proposition 1. 假设
A
t
^
\hat{A_t}
At^ 对于所有的
(
s
t
,
a
t
)
(s_t, a_t)
(st,at)可以写成形式:
A
t
^
(
s
0
:
∞
,
a
0
:
∞
)
=
Q
(
s
0
:
∞
,
a
0
:
∞
)
−
b
t
(
s
0
:
∞
,
a
0
:
∞
)
\hat{A_t}(s_{0:\infty}, a_{0:\infty}) = Q(s_{0:\infty}, a_{0:\infty})\ - \ b_t(s_{0:\infty}, a_{0:\infty})
At^(s0:∞,a0:∞)=Q(s0:∞,a0:∞) − bt(s0:∞,a0:∞)
, E s t + 1 : ∞ , a t + 1 : ∞ ∣ s t , a t [ Q t ( s t : ∞ , a t : ∞ ) ] = Q π , γ ( s t , a t ) \mathbb{E}_{s_{t+1:\infty} ,a_{t+1:\infty}\mid s_t, a_t} [Q_t(s_{t:\infty}, a_{t:\infty})] = Q^{\pi, \gamma}(s_t, a_t) Est+1:∞,at+1:∞∣st,at[Qt(st:∞,at:∞)]=Qπ,γ(st,at),那么 A t ^ \hat{A_t} At^是 γ − j u s t \gamma-just γ−just。
也就是说 A t ^ \hat{A_t} At^ 是 γ − j u s t \gamma-just γ−just的一个充分条件是 A t ^ \hat{A_t} At^ 可以分解为两个函数 Q t Q_t Qt和 b t b_t bt之差, Q t Q_t Qt是可以依赖于任意轨迹变量但是给定为 γ \gamma γ折扣Q函数的无偏估计器, b t b_t bt是在 a t a_t at之前采样的状态和动作的任意函数。
Proposition 1的证明,先将期望写成包含Q和b的形式:
E
s
0
:
∞
,
a
0
:
∞
[
∇
θ
log
π
θ
(
a
t
∣
s
t
)
(
Q
t
(
s
0
:
∞
,
a
0
:
∞
)
−
b
t
(
s
0
:
t
,
a
0
:
t
−
1
)
)
]
=
E
s
0
:
∞
,
a
0
:
∞
[
∇
θ
log
π
θ
(
a
t
∣
s
t
)
(
Q
t
(
s
0
:
∞
,
a
0
:
∞
)
)
]
−
E
s
0
:
∞
,
a
0
:
∞
[
∇
θ
log
π
θ
(
a
t
∣
s
t
)
(
b
t
(
s
0
:
t
,
a
0
:
t
−
1
)
)
]
(
33
)
\begin{aligned} & \mathbb{E}_{s_{0: \infty}, a_{0: \infty}}\left[\nabla_\theta \log \pi_\theta\left(a_t \mid s_t\right)\left(Q_t\left(s_{0: \infty}, a_{0: \infty}\right)-b_t\left(s_{0: t}, a_{0: t-1}\right)\right)\right] \\ & \quad=\mathbb{E}_{s_{0: \infty}, a_{0: \infty}}\left[\nabla_\theta \log \pi_\theta\left(a_t \mid s_t\right)\left(Q_t\left(s_{0: \infty}, a_{0: \infty}\right)\right)\right] \\ & \quad-\mathbb{E}_{s_{0: \infty}, a_{0: \infty}}\left[\nabla_\theta \log \pi_\theta\left(a_t \mid s_t\right)\left(b_t\left(s_{0: t}, a_{0: t-1}\right)\right)\right] \ \qquad (33) \end{aligned}
Es0:∞,a0:∞[∇θlogπθ(at∣st)(Qt(s0:∞,a0:∞)−bt(s0:t,a0:t−1))]=Es0:∞,a0:∞[∇θlogπθ(at∣st)(Qt(s0:∞,a0:∞))]−Es0:∞,a0:∞[∇θlogπθ(at∣st)(bt(s0:t,a0:t−1))] (33)
再分别考虑分解后的两项,再应用定理1,说明Proposition 1是成立的:
E
s
0
:
∞
,
a
0
:
∞
[
∇
θ
log
π
θ
(
a
t
∣
s
t
)
Q
t
(
s
0
:
∞
,
a
0
:
∞
)
]
=
E
s
0
:
t
,
a
0
:
t
[
E
s
t
+
1
:
∞
,
a
t
+
1
:
∞
[
∇
θ
log
π
θ
(
a
t
∣
s
t
)
Q
t
(
s
0
:
∞
,
a
0
:
∞
)
]
]
=
E
s
0
:
t
,
a
0
:
t
[
∇
θ
log
π
θ
(
a
t
∣
s
t
)
E
s
t
+
1
:
∞
,
a
t
+
1
:
∞
[
Q
t
(
s
0
:
∞
,
a
0
:
∞
)
]
]
=
E
s
0
:
t
,
a
0
:
t
−
1
[
∇
θ
log
π
θ
(
a
t
∣
s
t
)
A
π
(
s
t
,
a
t
)
]
\begin{aligned} & \mathbb{E}_{s_{0: \infty}, a_{0: \infty}}\left[\nabla_\theta \log \pi_\theta\left(a_t \mid s_t\right) Q_t\left(s_{0: \infty}, a_{0: \infty}\right)\right] \\ & \quad=\mathbb{E}_{s_{0: t}, a_{0: t}}\left[\mathbb{E}_{s_{t+1: \infty}, a_{t+1: \infty}}\left[\nabla_\theta \log \pi_\theta\left(a_t \mid s_t\right) Q_t\left(s_{0: \infty}, a_{0: \infty}\right)\right]\right] \\ & \quad=\mathbb{E}_{s_{0: t}, a_{0: t}}\left[\nabla_\theta \log \pi_\theta\left(a_t \mid s_t\right) \mathbb{E}_{s_{t+1: \infty}, a_{t+1: \infty}}\left[Q_t\left(s_{0: \infty}, a_{0: \infty}\right)\right]\right] \\ & \quad=\mathbb{E}_{s_{0: t}, a_{0: t-1}}\left[\nabla_\theta \log \pi_\theta\left(a_t \mid s_t\right) A^\pi\left(s_t, a_t\right)\right] \end{aligned}
Es0:∞,a0:∞[∇θlogπθ(at∣st)Qt(s0:∞,a0:∞)]=Es0:t,a0:t[Est+1:∞,at+1:∞[∇θlogπθ(at∣st)Qt(s0:∞,a0:∞)]]=Es0:t,a0:t[∇θlogπθ(at∣st)Est+1:∞,at+1:∞[Qt(s0:∞,a0:∞)]]=Es0:t,a0:t−1[∇θlogπθ(at∣st)Aπ(st,at)]
E
s
0
:
∞
,
a
0
:
∞
[
∇
θ
log
π
θ
(
a
t
∣
s
t
)
b
t
(
s
0
:
t
,
a
0
:
t
−
1
)
]
=
E
s
0
:
t
,
a
0
:
t
−
1
[
E
s
t
+
1
:
∞
,
a
t
:
∞
[
∇
θ
log
π
θ
(
a
t
∣
s
t
)
b
t
(
s
0
:
t
,
a
0
:
t
−
1
)
]
]
=
E
s
0
:
t
,
a
0
:
t
−
1
[
E
s
t
+
1
:
∞
,
a
t
:
∞
[
∇
θ
log
π
θ
(
a
t
∣
s
t
)
]
b
t
(
s
0
:
t
,
a
0
:
t
−
1
)
]
=
E
s
0
:
t
,
a
0
:
t
−
1
[
0
⋅
b
t
(
s
0
:
t
,
a
0
:
t
−
1
)
]
=
0
\begin{aligned} & \mathbb{E}_{s_{0: \infty}, a_{0: \infty}}\left[\nabla_\theta \log \pi_\theta\left(a_t \mid s_t\right) b_t\left(s_{0: t}, a_{0: t-1}\right)\right] \\ & \quad=\mathbb{E}_{s_{0: t}, a_{0: t-1}}\left[\mathbb{E}_{s_{t+1: \infty}, a_{t: \infty}}\left[\nabla_\theta \log \pi_\theta\left(a_t \mid s_t\right) b_t\left(s_{0: t}, a_{0: t-1}\right)\right]\right] \\ & \quad=\mathbb{E}_{s_{0: t}, a_{0: t-1}}\left[\mathbb{E}_{s_{t+1: \infty}, a_{t: \infty}}\left[\nabla_\theta \log \pi_\theta\left(a_t \mid s_t\right)\right] b_t\left(s_{0: t}, a_{0: t-1}\right)\right] \\ & \quad=\mathbb{E}_{s_{0: t}, a_{0: t-1}}\left[0 \cdot b_t\left(s_{0: t}, a_{0: t-1}\right)\right] \\ & \quad=0 \end{aligned}
Es0:∞,a0:∞[∇θlogπθ(at∣st)bt(s0:t,a0:t−1)]=Es0:t,a0:t−1[Est+1:∞,at:∞[∇θlogπθ(at∣st)bt(s0:t,a0:t−1)]]=Es0:t,a0:t−1[Est+1:∞,at:∞[∇θlogπθ(at∣st)]bt(s0:t,a0:t−1)]=Es0:t,a0:t−1[0⋅bt(s0:t,a0:t−1)]=0
我们也可以证明下列式子都是 A t ^ \hat{A_t} At^的 γ − j u s t \gamma-just γ−just优势估计器:
-
∑ l = 0 ∞ γ l r t + l \sum_{l=0}^{\infty} \gamma^l r_{t+l} ∑l=0∞γlrt+l
-
A π , γ ( s t , a t ) A^{\pi, \gamma}(s_t, a_t) Aπ,γ(st,at)
-
Q π , γ ( s t , a t ) Q^{\pi, \gamma}(s_t, a_t) Qπ,γ(st,at)
-
r t + V π , γ ( s t + 1 ) − V π , γ ( s t ) r_t + V^{\pi, \gamma}(s_{t+1}) - V^{\pi,\gamma}(s_t) rt+Vπ,γ(st+1)−Vπ,γ(st)
3. 优势函数估计
本节考虑生成折扣优势函数
A
π
,
γ
(
s
t
,
a
t
)
A^{\pi, \gamma}(s_t, a_t)
Aπ,γ(st,at)的准确估计
A
^
t
\hat{A}_t
A^t, 它将被用于下式,式中的n是一批回合(episodes)中的索引:
g
^
=
1
N
∑
n
=
1
N
∑
t
=
0
∞
A
^
t
n
∇
θ
l
o
g
π
θ
(
a
t
n
∣
s
t
n
)
,
(
9
)
\hat{g} = \frac{1}{N} \sum_{n=1}^{N} \sum_{t=0}^{\infty} \hat{A}^{n}_t\nabla_{\theta}\ log{\pi}_{\theta}(a_t^n \mid s_t^n) , \ \qquad (9)
g^=N1n=1∑Nt=0∑∞A^tn∇θ logπθ(atn∣stn), (9)
设V是近似价值函数,带折扣因子
γ
\gamma
γ的V的TD残差为:
δ
t
V
=
r
t
+
γ
V
(
S
t
+
1
)
−
V
(
s
t
)
\delta_t^V = r_t + \gamma V(S_{t+1}) - V(s_t)
δtV=rt+γV(St+1)−V(st)。
γ
t
V
\gamma_t^V
γtV可以被看作成动作
a
t
a_t
at的优势估计。如果我们有正确的价值函数
V
=
V
π
,
γ
V=V^{\pi, \gamma}
V=Vπ,γ,那么它是一个
γ
−
j
u
s
t
\gamma-just
γ−just优势估计器,并且
A
π
,
γ
A^{\pi, \gamma}
Aπ,γ的无偏估计器为:
E
s
t
+
1
[
δ
t
V
π
,
γ
]
=
E
s
t
+
1
[
r
t
+
γ
V
π
,
γ
(
s
t
+
1
)
−
V
π
,
γ
(
s
t
)
]
=
E
s
t
+
1
[
Q
π
,
γ
(
s
t
,
a
t
)
−
V
π
,
γ
(
s
t
)
]
=
A
π
,
γ
(
s
t
,
a
t
)
(
10
)
\begin {aligned} \mathbb{E}_{s_{t+1}} [\delta_t^{V^{\pi, \gamma}}] & = \mathbb{E}_{s_{t+1}}[r_t + \gamma V^{\pi, \gamma}(s_{t+1}) - V^{\pi, \gamma}(s_{t})] \\ &= \mathbb{E}_{s_{t+1}}[Q^{\pi, \gamma}(s_{t}, a_t) - V^{\pi, \gamma}(s_{t})]=A^{\pi, \gamma}(s_t, a_t) \ \qquad (10) \end {aligned}
Est+1[δtVπ,γ]=Est+1[rt+γVπ,γ(st+1)−Vπ,γ(st)]=Est+1[Qπ,γ(st,at)−Vπ,γ(st)]=Aπ,γ(st,at) (10)
但是这个估计器只有当
V
=
V
π
,
γ
V=V^{\pi, \gamma}
V=Vπ,γ时是
γ
−
j
u
s
t
\gamma-just
γ−just,其他时候则会生成有偏的梯度策略估计。
接着,考虑一下这些
δ
\delta
δ项的k步之和,将它们记作
A
^
t
(
k
)
\hat{A}_t^{(k)}
A^t(k):
A
^
t
(
1
)
:
=
δ
t
V
=
−
V
(
s
t
)
+
r
t
+
γ
V
(
s
t
+
1
)
(
11
)
A
^
t
(
2
)
:
=
δ
t
V
+
γ
δ
t
+
1
V
=
−
V
(
s
t
)
+
r
t
+
γ
r
t
+
1
+
γ
2
V
(
s
t
+
3
)
(
12
)
A
^
t
(
3
)
:
=
δ
t
V
+
γ
δ
t
+
1
V
+
γ
2
δ
t
+
2
V
=
−
V
(
s
t
)
+
r
t
+
γ
r
t
+
1
+
γ
2
r
t
+
2
+
γ
3
V
(
s
t
+
3
)
(
13
)
A
^
t
(
k
)
:
=
∑
l
=
0
k
−
1
γ
l
δ
t
+
l
V
=
−
V
(
s
t
)
+
r
t
+
γ
r
t
+
1
+
⋯
+
γ
k
−
1
r
t
+
k
−
1
+
γ
k
V
(
s
t
+
k
)
(
14
)
\begin {aligned} \hat{A}_t^{(1)} &:= \delta_t^V &= -V(s_t) + r_t + \gamma V(s_{t+1}) \ \qquad (11) \\ \hat{A}_t^{(2)} &:= \delta_t^V + \gamma \delta_{t+1}^V &= -V(s_t) + r_t + \gamma r_{t+1} + \gamma^2 V(s_{t+3}) \ \qquad (12) \\ \hat{A}_t^{(3)} &:= \delta_t^V + \gamma \delta_{t+1}^V + \gamma^2 \delta_{t+2}^V &= -V(s_t) + r_t + \gamma r_{t+1} + \gamma^2 r_{t+2} + \gamma^3 V(s_{t+3}) \ \qquad (13) \\ \\ \hat{A}_t^{(k)} &:= \sum_{l=0}^{k-1} \gamma^l \delta_{t+l}^V &= -V(s_t) + r_t + \gamma r_{t+1} + \cdots + \gamma^{k-1}r_{t+k-1} + \gamma^k V(s_{t+k}) \ \qquad (14) \\ \end {aligned}
A^t(1)A^t(2)A^t(3)A^t(k):=δtV:=δtV+γδt+1V:=δtV+γδt+1V+γ2δt+2V:=l=0∑k−1γlδt+lV=−V(st)+rt+γV(st+1) (11)=−V(st)+rt+γrt+1+γ2V(st+3) (12)=−V(st)+rt+γrt+1+γ2rt+2+γ3V(st+3) (13)=−V(st)+rt+γrt+1+⋯+γk−1rt+k−1+γkV(st+k) (14)
所以我们可以发现
A
^
t
(
k
)
\hat{A}_t^{(k)}
A^t(k)是k-step估计回报减去基础项
V
(
s
t
)
V(s_t)
V(st),当
k
→
∞
k \rightarrow \infty
k→∞时,偏差将变得很小,表示为下式,即经验回报减去基线价值函数:
A
^
t
(
∞
)
:
=
∑
l
=
0
∞
γ
l
δ
t
+
l
V
=
−
V
(
s
t
)
+
∑
l
=
0
∞
γ
l
r
t
+
l
(
15
)
\hat{A}_t^{(\infty)} := \sum_{l=0}^{\infty} \gamma^l \delta_{t+l}^V = -V(s_t) + \sum_{l=0}^{\infty} \gamma^l r_{t+l} \ \qquad (15) \\
A^t(∞):=l=0∑∞γlδt+lV=−V(st)+l=0∑∞γlrt+l (15)
介绍了这么多概念后,到了论文最关键的部分了,
G
A
E
(
γ
,
λ
)
GAE(\gamma, \lambda)
GAE(γ,λ)就是这些k-step估计器的指数加权平均:
A
^
t
G
A
E
(
γ
,
λ
)
:
=
(
1
−
λ
)
(
A
^
t
(
1
)
+
λ
A
^
t
(
2
)
+
λ
2
A
^
t
(
3
)
+
…
)
=
(
1
−
λ
)
(
δ
t
V
+
λ
(
δ
t
V
+
γ
δ
t
+
1
V
)
+
λ
2
(
δ
t
V
+
γ
δ
t
+
1
V
+
γ
2
δ
t
+
2
V
)
+
…
)
=
(
1
−
λ
)
(
δ
t
V
(
1
+
λ
+
λ
2
+
…
)
+
γ
δ
t
+
1
V
(
λ
+
λ
2
+
λ
3
+
…
)
+
γ
2
δ
t
+
2
V
(
λ
2
+
λ
3
+
λ
4
+
…
)
+
…
)
=
(
1
−
λ
)
(
δ
t
V
(
1
1
−
λ
)
+
γ
δ
t
+
1
V
(
λ
1
−
λ
)
+
γ
2
δ
t
+
2
V
(
λ
2
1
−
λ
)
+
…
)
=
∑
l
=
0
∞
(
γ
λ
)
l
δ
t
+
l
V
(
16
)
\begin{aligned} \hat{A}_t^{\mathrm{GAE}(\gamma, \lambda)}:= & (1-\lambda)\left(\hat{A}_t^{(1)}+\lambda \hat{A}_t^{(2)}+\lambda^2 \hat{A}_t^{(3)}+\ldots\right) \\ = & (1-\lambda)\left(\delta_t^V+\lambda\left(\delta_t^V+\gamma \delta_{t+1}^V\right)+\lambda^2\left(\delta_t^V+\gamma \delta_{t+1}^V+\gamma^2 \delta_{t+2}^V\right)+\ldots\right) \\ = & (1-\lambda)\left(\delta_t^V\left(1+\lambda+\lambda^2+\ldots\right)+\gamma \delta_{t+1}^V\left(\lambda+\lambda^2+\lambda^3+\ldots\right)\right. \\ & \left.\quad+\gamma^2 \delta_{t+2}^V\left(\lambda^2+\lambda^3+\lambda^4+\ldots\right)+\ldots\right) \\ = & (1-\lambda)\left(\delta_t^V\left(\frac{1}{1-\lambda}\right)+\gamma \delta_{t+1}^V\left(\frac{\lambda}{1-\lambda}\right)+\gamma^2 \delta_{t+2}^V\left(\frac{\lambda^2}{1-\lambda}\right)+\ldots\right) \\ = & \sum_{l=0}^{\infty}(\gamma \lambda)^l \delta_{t+l}^V \ \qquad \qquad (16) \end{aligned}
A^tGAE(γ,λ):=====(1−λ)(A^t(1)+λA^t(2)+λ2A^t(3)+…)(1−λ)(δtV+λ(δtV+γδt+1V)+λ2(δtV+γδt+1V+γ2δt+2V)+…)(1−λ)(δtV(1+λ+λ2+…)+γδt+1V(λ+λ2+λ3+…)+γ2δt+2V(λ2+λ3+λ4+…)+…)(1−λ)(δtV(1−λ1)+γδt+1V(1−λλ)+γ2δt+2V(1−λλ2)+…)l=0∑∞(γλ)lδt+lV (16)
GAE与
T
D
(
λ
)
TD(\lambda)
TD(λ)很类似,只是
T
D
(
λ
)
TD(\lambda)
TD(λ)是价值函数的估计,而GAE是优势函数的估计。
对于GAE有两种特殊的形式,通过使
λ
=
0
\lambda=0
λ=0和
λ
=
1
\lambda=1
λ=1分别得到:
G
A
E
(
γ
,
0
)
:
A
^
t
:
=
δ
t
V
=
r
t
+
γ
V
(
S
t
+
1
)
−
V
(
s
t
)
(
17
)
GAE(\gamma, 0): \ \ \hat{A}_t \ := \delta_t^V \qquad = r_t + \gamma V(S_{t+1}) - V(s_t) \ \qquad (17)
GAE(γ,0): A^t :=δtV=rt+γV(St+1)−V(st) (17)
G A E ( γ , 1 ) : A ^ t : = ∑ l = 0 ∞ δ t + l = ∑ l = 0 ∞ γ l r t + l − V ( s t ) ( 18 ) GAE(\gamma, 1): \ \ \hat{A}_t \ := \sum_{l=0}^{\infty}\delta_{t+l} \qquad = \sum_{l=0}^{\infty} \gamma^l r_{t+l} - V(s_t) \ \qquad (18) GAE(γ,1): A^t :=l=0∑∞δt+l=l=0∑∞γlrt+l−V(st) (18)
G A E ( γ , 1 ) GAE(\gamma, 1) GAE(γ,1) 不管V的准确性都是 γ − j u s t \gamma-just γ−just,但是因为求和项的存在使得它的方差很高, G A E ( γ , 0 ) GAE(\gamma, 0) GAE(γ,0) 当 V = V π , γ V=V^{\pi, \gamma} V=Vπ,γ时是 γ − j u s t \gamma-just γ−just,其余时会引入偏差,但是会有更低的方差。所以GAE控制 λ \lambda λ参数使 0 < λ < 1 0<\lambda <1 0<λ<1来进行偏差和方差的平衡。
GAE有两个参数 γ \gamma γ和 λ \lambda λ,在使用一个近似价值函数的时候,两者都是用来控制方差和偏差的平衡的,但是它们的目的不同且有不同的取值范围。 γ \gamma γ主要决定价值函数 V π , γ V^{\pi, \gamma} Vπ,γ的尺度,这不依赖于 λ \lambda λ。不管价值函数的准确与否, γ < 1 \gamma <1 γ<1在梯度策略中引入偏差。而 λ < 1 \lambda <1 λ<1只有在价值函数不准确时才会引入偏差。经验上,最佳 λ \lambda λ远小于最佳 γ \gamma γ值,可能因为对于很可能是准确的价值函数, λ \lambda λ相比 γ \gamma γ引入小的多的偏差。
使用GAE,从方程(6)可知,相应的折扣梯度策略为:
g
γ
≈
E
[
∑
t
=
0
∞
∇
θ
l
o
g
π
θ
(
a
t
∣
s
t
)
A
^
G
A
E
(
γ
,
λ
)
]
=
E
[
∑
t
=
0
∞
∇
θ
l
o
g
π
θ
(
a
t
∣
s
t
)
∑
l
=
0
∞
(
γ
λ
)
l
δ
t
+
l
V
]
,
(
19
)
g^{\gamma} \approx \mathbb{E} \left [\sum_{t=0}^{\infty}\nabla_{\theta}\ log{\pi}_{\theta}(a_t \mid s_t) \hat{A}^{GAE(\gamma, \lambda)} \right] = \mathbb{E} \left [\sum_{t=0}^{\infty}\nabla_{\theta}\ log{\pi}_{\theta}(a_t \mid s_t) \sum_{l=0}^{\infty} (\gamma \lambda)^l \delta_{t+l}^V \right], \ \qquad (19)
gγ≈E[t=0∑∞∇θ logπθ(at∣st)A^GAE(γ,λ)]=E[t=0∑∞∇θ logπθ(at∣st)l=0∑∞(γλ)lδt+lV], (19)
当
λ
=
1
\lambda = 1
λ=1的时候,上述等式是成立的。
4. 用Reward shaping来解释
Reward shaping 是指对MDP的奖励函数进行如下式的转换: 设
Φ
:
S
→
R
\Phi \ : \ \mathcal{S} \rightarrow \mathbb{R}
Φ : S→R 是在状态空间的任意的scalar-valued function,定义转换后的奖励函数
r
~
\widetilde{r}
r
为:
r
~
(
s
,
a
,
s
′
)
=
r
(
s
,
a
,
s
′
)
+
γ
Φ
(
s
′
)
−
Φ
s
(
20
)
\widetilde{r}(s, a, s^{\prime}) = r(s, a, s^{\prime}) + \gamma \Phi(s^{\prime}) - \Phi{s} \ \qquad (20)
r
(s,a,s′)=r(s,a,s′)+γΦ(s′)−Φs (20)
这其实是定义了一个transformed MDP。
首先考虑从状态
s
t
s_t
st开始的轨迹的折扣奖励和为:
∑
l
=
0
∞
γ
l
r
~
(
s
t
+
l
,
a
t
,
s
t
+
l
+
1
)
=
∑
l
=
0
∞
γ
l
r
(
s
t
+
l
,
a
t
,
s
t
+
l
+
1
)
−
Φ
(
s
t
)
(
21
)
\sum^{\infty}_{l=0} \gamma^{l} \tilde{r}(s_{t+l}, a_t, s_{t+l+1}) = \sum^{\infty}_{l=0} \gamma^{l} r(s_{t+l}, a_t, s_{t+l+1}) - \Phi(s_t) \ \qquad (21)
l=0∑∞γlr~(st+l,at,st+l+1)=l=0∑∞γlr(st+l,at,st+l+1)−Φ(st) (21)
transformed MDP 的价值函数和优势函数,根据定义有下列式子,可知这个转换使得折扣优势函数
A
π
,
γ
A^{\pi, \gamma}
Aπ,γ对任何策略都是不变的:
Q
~
π
,
γ
(
s
,
a
)
=
Q
π
,
γ
(
s
,
a
)
−
Φ
(
s
)
(
22
)
V
~
π
,
γ
(
s
,
a
)
=
V
π
,
γ
(
s
,
a
)
−
Φ
(
s
)
(
23
)
A
~
π
,
γ
(
s
,
a
)
=
(
Q
π
,
γ
(
s
,
a
)
−
Φ
(
s
)
)
−
(
V
π
,
γ
(
s
,
a
)
−
Φ
(
s
)
)
=
A
π
,
γ
(
s
,
a
)
(
24
)
\begin {aligned} \tilde{Q}^{\pi, \gamma}(s, a) &= Q^{\pi, \gamma}(s, a) - \Phi(s) \ \qquad (22) \\ \tilde{V}^{\pi, \gamma}(s, a) &= V^{\pi, \gamma}(s, a) - \Phi(s) \ \qquad (23) \\ \tilde{A}^{\pi, \gamma}(s, a) &= (Q^{\pi, \gamma}(s, a) - \Phi(s) ) - (V^{\pi, \gamma}(s, a) - \Phi(s)) = {A}^{\pi, \gamma}(s, a) \ \qquad (24) \\ \end {aligned}
Q~π,γ(s,a)V~π,γ(s,a)A~π,γ(s,a)=Qπ,γ(s,a)−Φ(s) (22)=Vπ,γ(s,a)−Φ(s) (23)=(Qπ,γ(s,a)−Φ(s))−(Vπ,γ(s,a)−Φ(s))=Aπ,γ(s,a) (24)
值得注意的是,如果
Φ
\Phi
Φ碰巧是原来的MDP的状态价值函数
V
π
,
γ
V^{\pi, \gamma}
Vπ,γ, 那么对于transformed MDP有一个有趣的性质:对于每一个状态的
V
~
π
,
γ
(
s
,
a
)
\tilde{V}^{\pi, \gamma}(s, a)
V~π,γ(s,a)都为0.
将式(21)中的
γ
\gamma
γ用
γ
λ
\gamma \lambda
γλ代替,其中
0
<
λ
<
1
0<\lambda <1
0<λ<1,如果我们令
Φ
=
V
\Phi=V
Φ=V,可以发现shaped reward
r
~
\tilde{r}
r~为贝尔曼残差项
δ
V
\delta^V
δV:
∑
l
=
0
∞
(
γ
λ
)
l
r
~
(
s
t
+
l
,
a
t
,
s
t
+
l
+
1
)
=
∑
l
=
0
∞
(
γ
λ
)
l
δ
t
+
l
V
=
A
^
t
G
A
E
(
γ
,
λ
)
(
25
)
\sum^{\infty}_{l=0} (\gamma \lambda)^{l} \tilde{r}(s_{t+l}, a_t, s_{t+l+1}) = \sum^{\infty}_{l=0} (\gamma \lambda)^{l} \delta^V_{t+l} = \hat{A}^{GAE(\gamma, \lambda)}_t \ \qquad (25)
l=0∑∞(γλ)lr~(st+l,at,st+l+1)=l=0∑∞(γλ)lδt+lV=A^tGAE(γ,λ) (25)
所以,通过考虑
γ
λ
−
d
i
s
c
o
u
n
t
e
d
\gamma \lambda-discounted
γλ−discounted sum of shaped rewards,也得到了第三节的GAE, 当
λ
=
1
\lambda = 1
λ=1时是无偏差的
g
γ
g^{\gamma}
gγ,当
λ
<
1
\lambda <1
λ<1时为有偏差估计。
定义一个响应函数
χ
\chi
χ:
χ
(
l
;
s
t
,
a
t
)
=
E
[
r
t
+
l
∣
s
t
,
a
t
]
−
E
[
r
t
+
l
∣
s
t
]
(
26
)
\chi(l; s_t, a_t) = \mathbb{E}[r_{t+l} \mid s_t, a_t] - \mathbb{E}[r_{t+l} \mid s_t] \ \qquad (26)
χ(l;st,at)=E[rt+l∣st,at]−E[rt+l∣st] (26)
注意
A
π
,
γ
(
s
,
a
)
=
∑
l
=
0
∞
γ
l
χ
(
l
;
s
,
a
)
A^{\pi, \gamma}(s, a) = \sum_{l=0}^{\infty} \gamma^l \chi(l;s,a)
Aπ,γ(s,a)=∑l=0∞γlχ(l;s,a),因此,响应函数在时间步上分解了优势函数。 响应函数让我们能够量化时间信用分配问题(temporal credit assignment problem):行动和奖励之间的长程依赖性对应于当
l
≫
0
l \gg 0
l≫0 时响应函数的非零值。
对于式(6)的求和项有:
∇
θ
l
o
g
π
θ
(
a
t
∣
s
t
)
A
π
,
γ
(
s
t
,
a
t
)
=
∇
θ
l
o
g
π
θ
(
a
t
∣
s
t
)
∑
l
=
0
∞
γ
l
χ
(
l
;
s
,
a
)
(
27
)
\nabla _{\theta} log \pi_{\theta}(a_t\mid s_t) A^{\pi, \gamma}(s_t, a_t) = \nabla _{\theta} log \pi_{\theta}(a_t\mid s_t) \sum_{l=0}^{\infty} \gamma^l \chi(l;s,a) \ \qquad (27)
∇θlogπθ(at∣st)Aπ,γ(st,at)=∇θlogπθ(at∣st)l=0∑∞γlχ(l;s,a) (27)
使用
γ
<
1
\gamma<1
γ<1对应于删除那些
l
≫
1
/
(
1
−
γ
)
l \gg 1/(1-\gamma)
l≫1/(1−γ)的项,因此如果随着l的增加
χ
\chi
χ急剧下降的话由这个近似引起的误差会很小。比如在
≈
1
/
(
1
−
γ
)
\approx 1/(1- \gamma)
≈1/(1−γ)时间步后,一个动作在在奖励上的效果将被”遗忘forgotten“。
如果奖励函数 r ~ \tilde{r} r~通过使用 Φ = V π , γ \Phi = V^{\pi, \gamma} Φ=Vπ,γ获得,对于 l > 0 l>0 l>0 有 E [ r ~ t + l ∣ s t , a t ] = E [ r ~ t + l ∣ s t ] = 0 \mathbb{E}[\tilde r_{t+l} \mid s_t, a_t] = \mathbb{E}[\tilde r_{t+l} \mid s_t] = 0 E[r~t+l∣st,at]=E[r~t+l∣st]=0 ,也就是响应函数只有在l=0时才是非零值。因此这个变换temporally extended response 变成immediate response。
考虑到 V π , γ V^{\pi, \gamma} Vπ,γ完全减少响应函数的时间传播(temporal spread),我们希望一个好的的近似 V ≈ V π , γ V \approx V^{\pi, \gamma} V≈Vπ,γ能部分减轻时间传播。这个观察给出了公式(16)的一个解释:使用V来reshape 奖励来减少响应函数的temporal extent,引入一个“steeper"的折扣 γ λ \gamma \lambda γλ减小从长延时得到的噪声,即当 l ≫ 1 / ( 1 − γ λ ) l \gg 1/(1-\gamma \lambda) l≫1/(1−γλ)时忽略 ∇ θ l o g π θ ( a t ∣ s t ) δ t + l V \nabla _{\theta} log \pi_{\theta}(a_t\mid s_t) \delta^V_{t+l} ∇θlogπθ(at∣st)δt+lV。
5. 价值函数估计
价值函数的估计方法有很多种,如果使用一个非线性函数近似器来表示价值函数,最简单的方式是求解非线性回归问题:
m
i
n
i
m
i
z
e
ϕ
∑
n
=
1
N
∥
V
ϕ
(
s
n
)
−
V
^
n
∥
2
(
28
)
\mathop{minimize}_{\phi} \sum_{n=1}^N \parallel V_{\phi}(s_n) - \hat{V}_n \parallel ^2 \ \qquad (28)
minimizeϕn=1∑N∥Vϕ(sn)−V^n∥2 (28)
式中的
V
^
t
=
∑
l
=
0
∞
γ
l
r
t
+
l
\hat{V}_t = \sum^{\infty}_{l=0} \gamma^l r_{t+l}
V^t=∑l=0∞γlrt+l 是折扣奖励和,n是一批轨迹的时间步的索引。估计价值函数时这也被称为Monte Carlo或TD(1)方法。
参考资料
-
Schulman, John, Philipp Moritz, Sergey Levine, MichaelI. Jordan, and Pieter Abbeel. 2015. “High-Dimensional Continuous Control Using Generalized Advantage Estimation.” arXiv: Learning,arXiv: Learning, June.
-
https://zhuanlan.zhihu.com/p/139097326
-
https://danieltakeshi.github.io/2017/03/28/going-deeper-into-reinforcement-learning-fundamentals-of-policy-gradients/
-
https://danieltakeshi.github.io/2017/04/02/notes-on-the-generalized-advantage-estimation-paper/