ADreamLeft's site

Back

Policy#

1 Lecture 7#

1.1 Policy Learning#

状态 sts_{t},观察 oto_{t} ,动作 ata_{t},奖励 rtr_{t},策略 π(atst),π(atot)\pi(a_{t}|s_{t}),\pi(a_{t}|o_{t})
如果 st=ots_{t}=o_{t} ,那么这是一个完全信息的学习问题

通常有两种学习模式:

  • 可监督:对于任意状态 sts_{t},我们都知道最优动作 ata_{t}^{*},所以可以直接监督学习,最大化 NLL loss L=tlogπ(atst)\mathcal{L}=-\sum_{t}\log \pi(a_{t}^{*}|s_{t}) (离散情况),这也被称为模仿学习
  • 强化学习:对于任意状态 sts_{t},我们不知道最优动作 ata_{t}^{*},只能通过试错来学习,最大化 reward L=trt\mathcal{L}=-\sum_{t}r_{t}

1.2 模仿学习#

world model:给出世界发展的动力学 p(st+1st,at)p(s_{t+1}|s_{t},a_{t}) ,不少 video gen 自称为世界模型,其思想就是给定当前的 text 和当前画面 ItI_{t},预测下一帧 p(It+1It,text)p(I_{t+1}|I_{t},text) 模仿学习和 image classification 的区别就是:很容易进入预期外的、不理想的状态区域,这一部分并没有学习过,即 out of distribution 如何解决 drift :在 drift 的情况下,模型也要也能找到回到正确路径的方式

Dagger:Dataset Aggregation(借助人类标注)

  1. train πθ(atot)\pi_{\theta}(a_{t}|o_{t}) from human data D=o1,a1,...,oN,aND = {o_{1}, a_{1},..., o_{N}, a_{N}}
  2. run πθ(atot)\pi_{\theta}(a_{t}|o_{t}) to get dataset Dπ=o1,..,omD_{\pi} = {o_{1},.., o_{m}}
  3. Ask human to label DπD_{\pi} with actions ata_{t}
  4. Aggregate: D=DDπD=D \cup D_{\pi}
  5. goto 1 for loop

对于当前的人形机器人,Dagger 不是直接获得 label,而是人接管;但是维度一高,接管也变得十分困难

其它最优 actions 来源:

  1. 来自最优策略,比如 3 d 场景下的路径可以从 2 D 路径中获得
    1. On policy diagram:随着训练的进行,策略会不断更新,数据分布也会不断变化,所以需要不断地从新的策略中采样数据来训练模型
    2. Off policy diagram:策略更新的时候,数据分布并不发生改变,可能会出现重复修正、训练低效的问题。
  2. 从 teacher policy 学习,student 提供 oto_{t} ,teacher 给出 πT,t\pi_{T,t},让 student 学习 πtπT,t\pi_{t}\approx\pi_{T,t} ,通常让 teacher 拥有更多信息

Non-Markovian 问题:运用历史信息不一定会让策略更好,因为很容易会出现过拟合 多峰问题:对于一个问题的答案不一定是 Gaussian 的,而有可能是多峰的,要解决这个问题要么离散化,要么使用类似 diffusion 的 model

2 Lecture 8#

2.1 强化学习#

MDP (Markov Decision Process):M=(S,A,T,r)\mathcal{M}=(S,A,\mathcal{T},r) 其中 SS 是状态空间,AA 是动作空间,T\mathcal{T} 是转移概率,rr 是奖励函数,且满足 Tijk=P(st+1=ist=j,at=k)\mathcal{T}_{ijk}=P(s_{t+1}=i|s_{t}=j,a_{t=k}) 如果是 POMDP (Partially Observable MDP),则 agent 只能观察到 oto_{t},而不能直接观察到 sts_{t},此时 M=(S,A,T,r,O)\mathcal{M}=(S,A,\mathcal{T},r,O) 其中 OO 是观察函数

强化学习的目标是找到一个 policy π(atst)\pi(a_{t}|s_{t}) 来最大化 reward 的期望

θ=argmaxθEτpθ(τ)[t=0Tr(st,at)]\theta^{\star} = \arg\max_{\theta} \mathbb{E}_{\tau\sim p_{\theta}(\tau)}\left[\sum_{t=0}^{T}r(s_{t},a_{t})\right]

Jθ=Eτpθ(τ)r(τ)=pθ(τ)r(τ)dτJ_{\theta}=\mathbb{E}_{\tau \sim p_{\theta}(\tau)}r(\tau)=\int p_{\theta}(\tau)r(\tau)\mathrm{d}\tau,则可以给出梯度的表达式

θJθ=θpθ(τ)r(τ)dτ=pθ(τ)θlogpθ(τ)r(τ)dτ=Eτpθ(τ)[θlogpθ(τ)r(τ)]\nabla_{\theta} J_{\theta} = \int \nabla_{\theta} p_{\theta}(\tau) r(\tau) \mathrm{d}\tau = \int p_{\theta}(\tau) \nabla_{\theta} \log p_{\theta}(\tau) r(\tau) \mathrm{d}\tau = \mathbb{E}_{\tau \sim p_{\theta}(\tau)}\left[\nabla_{\theta} \log p_{\theta}(\tau) r(\tau)\right]

又根据 logpθ(τ)=logp(s1)+t=1T(logπθ(atst)+logp(sTaT,sT))\log p_{\theta}(\tau)=\log p (s_1) + \sum_{t=1}^{T}\left(\log \pi_{\theta}(a_{t}|s_{t}) + \log p(s_{T}|a_{T},s_{T})\right),可以得到

θJθ=Eτpθ(τ)[t=1Tθlogπθ(atst)t=1Tr(st,at)]\nabla _{\theta} J_{\theta} = \mathbb{E}_{\tau \sim p_{\theta}(\tau)}\left[\sum_{t=1}^{T} \nabla_{\theta} \log \pi_{\theta}(a_{t}|s_{t}) \sum_{t=1}^{T}r(s_{t},a_{t})\right]

Monte Carlo 模拟:

Eτpθ(τ)[tr(st,at)]1Nitr(si,t,ai,t)E_{\tau\sim p_{\theta}(\tau)}\left[\sum_{t}r(\mathbf{s}_{t},\mathbf{a}_{t})\right]\approx\frac{1}{N}\sum_{i}\sum_{t}r(\mathbf{s}_{i,t},\mathbf{a}_{i,t})

另外,梯度也使用

θJ(θ)1Ni=1N(t=1Tθlogπθ(ai,tsi,t))(t=1Tr(si,t,ai,t))\nabla_{\theta} J(\theta) \approx \frac{1}{N} \sum_{i=1}^{N} \left( \sum_{t=1}^{T} \nabla_{\theta} \log \pi_{\theta}(\mathbf{a}_{i,t} | \mathbf{s}_{i,t}) \right) \left( \sum_{t=1}^{T} r(\mathbf{s}_{i,t}, \mathbf{a}_{i,t}) \right)

REINFORCE algorithm:

  1. sample {τi}\{\tau^{i}\} from πθ(atst)\pi_{\theta}\left(\mathbf{a}_{t} \mid \mathbf{s}_{t}\right) (run the policy)
  2. θJ(θ)i(tθlogπθ(atisti))(tr(sti,ati))\nabla_{\theta} J(\theta) \approx \sum_{i}\left(\sum_{t} \nabla_{\theta} \log \pi_{\theta}\left(\mathbf{a}_{t}^{i} \mid \mathbf{s}_{t}^{i}\right)\right)\left(\sum_{t} r\left(\mathbf{s}_{t}^{i}, \mathbf{a}_{t}^{i}\right)\right)
  3. θθ+αθJ(θ)\theta \leftarrow \theta + \alpha \nabla_{\theta} J(\theta) 但是这通常十分昂贵,因为每次采样的数据都不能复用,这也被称为 on policy RL,与之相对的,off policy RL 允许复用一段时间前的数据 on policy 一般只能在 simulator 里面搞,现实数据太昂贵搞不了

[! note] 一个值得注意的分别 这里的梯度长得很像 behavior cloning 那里的 Maximum Likelihood 梯度

θJML(θ)1Ni=1N(t=1Tθlogπθ(ai,tsi,t))\nabla_{\theta} J_{ML}(\theta) \approx \frac{1}{N} \sum_{i=1}^{N} \left( \sum_{t=1}^{T} \nabla_{\theta} \log \pi_{\theta}(\mathbf{a}_{i,t} | \mathbf{s}_{i,t}) \right)

但是这完全是两种东西,因为后者的 ata_{t} 是 teacher 的,而前者的是自己生成的;所以不能认为 reinforcement learning 是 imitation learning 加权得到的

事实上,如果 ata_{t} 是由当前策略自己生成的,那么一定有

Eτpθ(τ)[θlogπθ(ai,tsi,t)]=0E_{\tau \sim p_{\theta}(\tau)}\left[\nabla_{\theta} \log \pi_{\theta}\left(\mathbf{a}_{i, t} \mid \mathbf{s}_{i, t}\right)\right]=0

但是如果是 behavior cloning 的结果,那么有

θJML(θ)=Eτπexpert (τ)[θlogπθ(ai,tsi,t)]0\nabla_{\theta} J_{\mathrm{ML}}(\theta)=\mathbb{E}_{\tau \sim \pi_{\text {expert }}(\tau)}\left[\nabla_{\theta} \log \pi_{\theta}\left(a_{i, t} \mid s_{i, t}\right)\right] \neq 0
2.1.1 高斯策略#

策略服从高斯分布: πθ(atst)=N(fneural network (st);Σ)\pi_{\theta}\left(\mathbf{a}_{t} \mid \mathbf{s}_{t}\right)=\mathcal{N}\left(f_{\text {neural network }}\left(\mathbf{s}_{t}\right) ; \Sigma\right) 此时,由于 logπθ(atst)=12f(st)atΣ2+ const \log \pi_{\theta}\left(\mathbf{a}_{t} \mid \mathbf{s}_{t}\right)=-\frac{1}{2}\left\|\boldsymbol{f}\left(\mathbf{s}_{t}\right)-\mathbf{a}_{t}\right\|_{\Sigma}^{2}+\text { const } 于是,梯度可以协作: θlogπθ(atst)=(dfdθ)TΣ1(f(st)at)\nabla_{\theta} \log \pi_{\theta}\left(a_{t} \mid s_{t}\right)=-\left(\frac{d f}{d \theta}\right)^{T} \Sigma^{-1}\left(f\left(s_{t}\right)-a_{t}\right) 然后再进行 reinforcement 算法

2.1.2 Partial Observability#

直接用 oto_{t} 替换 sts_{t} 即可,也即

θJ(θ)1Ni=1N(t=1Tθlogπθ(ai,toi,t))(t=1Tr(si,t,ai,t))\nabla_{\theta} J(\theta) \approx \frac{1}{N} \sum_{i=1}^{N}\left(\sum_{t=1}^{T} \nabla_{\theta} \log \pi_{\theta}\left(\mathbf{a}_{i, t} \mid \mathbf{o}_{i, t}\right)\right)\left(\sum_{t=1}^{T} r\left(\mathbf{s}_{i, t}, \mathbf{a}_{i, t}\right)\right)

2.2 降低方差#

对于强化学习而言,梯度存在很大不确定性,降低方差可以让算法更快地收敛 第一个办法是只保留 reward to go,也即只考虑 ttt'\geq t 的部分

θJ(θ)1Ni=1N[t=1Tθlogπθ(ai,tsi,t)(t=tTr(si,t,ai,t))]\nabla_{\theta} J(\theta) \approx \frac{1}{N} \sum_{i=1}^{N}\left[\sum_{t=1}^{T} \nabla_{\theta} \log \pi_{\theta}\left(\mathbf{a}_{i, t} \mid \mathbf{s}_{i, t}\right)\left(\sum_{t'=t}^{T} r\left(\mathbf{s}_{i, t'}, \mathbf{a}_{i, t'}\right)\right)\right]

第二个办法是减去一个常数 baseline

θJ(θ)1Ni=1Nθlogpθ(τ)[r(τ)b]\nabla_{\theta} J(\theta) \approx \frac{1}{N} \sum_{i=1}^{N} \nabla_{\theta} \log p_{\theta}(\tau)[r(\tau)-b]

可以证明,最优的 bb

b=Eg2(τ)r(τ)Eg2(τ),g(τ)=θlogpθ(τ)b = \dfrac{\mathbb{E}g^{2}(\tau)r(\tau)}{\mathbb{E}g^{2}(\tau)} ,\quad g(\tau) = \nabla_{\theta} \log p_{\theta}(\tau)

但是无法得到,所以通常我们会把 bb 取为 b=1Ni=1Nr(τ)b=\frac{1}{N} \sum_{i=1}^{N} r(\tau)

[! tip] 强化学习算法常常训不出好的 policy,因为 reward 的设计,或者采样太过稀疏,gradient 太 noisy。

Q function 和 Value function

  • Qπ(st,at)=t=tTEπθ[r(st,at)st,at]:Q^{\pi}\left(\mathbf{s}_{t}, \mathbf{a}_{t}\right)=\sum_{t^{\prime}=t}^{T} E_{\pi_{\theta}}\left[r\left(\mathbf{s}_{t^{\prime}}, \mathbf{a}_{t^{\prime}}\right) \mid \mathbf{s}_{t}, \mathbf{a}_{t}\right]: total reward from taking at\mathbf{a}_{t} in st\mathbf{s}_{t}
  • Vπ(st)=t=tTEπθ[r(st,at)st]:V^{\pi}\left(\mathbf{s}_{t}\right)=\sum_{t^{\prime}=t}^{T} E_{\pi_{\theta}}\left[r\left(\mathbf{s}_{t^{\prime}}, \mathbf{a}_{t^{\prime}}\right) \mid \mathbf{s}_{t}\right]: total reward from st\mathbf{s}_{t} 如果能学到很好的 Q 和 V,那么第三种降低方差的方式是使用
θJ(θ)1Ni=1Nt=1Tθlogπθ(ai,tsi,t)(Q(si,t,ai,t)V(si,t))\nabla_{\theta} J(\theta) \approx \frac{1}{N} \sum_{i=1}^{N} \sum_{t=1}^{T} \nabla_{\theta} \log \pi_{\theta}\left(\mathbf{a}_{i, t} \mid \mathbf{s}_{i, t}\right)\left(Q\left(\mathbf{s}_{i, t}, \mathbf{a}_{i, t}\right)-V\left(\mathbf{s}_{i, t}\right)\right)

通常我们会定义 Aπ(st,at)=Qπ(st,at)Vπ(st)A^{\pi}\left(\mathbf{s}_{t}, \mathbf{a}_{t}\right)=Q^{\pi}\left(\mathbf{s}_{t}, \mathbf{a}_{t}\right)-V^{\pi}\left(\mathbf{s}_{t}\right) 叫做 advantage function,表示在 st\mathbf{s}_{t} 的状态下,at\mathbf{a}_{t} 的动作相比于平均水平的优势程度;于是上式也可以写作

θJ(θ)1Ni=1Nt=1Tθlogπθ(ai,tsi,t)Aπ(si,t,ai,t)\nabla_{\theta} J(\theta) \approx \frac{1}{N} \sum_{i=1}^{N} \sum_{t=1}^{T} \nabla_{\theta} \log \pi_{\theta}\left(\mathbf{a}_{i, t} \mid \mathbf{s}_{i, t}\right) A^{\pi}\left(\mathbf{s}_{i, t}, \mathbf{a}_{i, t}\right)

我们通常不直接拟合 Q,AQ,A 而是利用

Aπ(st,at)r(st,at)+Vπ(st+1)Vπ(st)A^{\pi}\left(\mathbf{s}_{t}, \mathbf{a}_{t}\right) \approx r\left(\mathbf{s}_{t}, \mathbf{a}_{t}\right)+V^{\pi}\left(\mathbf{s}_{t+1}\right)-V^{\pi}\left(\mathbf{s}_{t}\right)

只拟合出 VπV^{\pi} 就可以了,这也被称为 Actor-Critic 方法

2.2.1 如何拟合 Value Function#
  • 传统办法:直接用 Vπ(st)1Ni=1Nt=tTr(st,at)V^{\pi}\left(\mathbf{s}_{t}\right) \approx\frac{ 1}{N}\sum_{i=1}^{N}\sum_{t'=t}^{T} r\left(\mathbf{s}_{t'}, \mathbf{a}_{t'}\right) 来拟合,但是需要 reset,在现实中很难做到
  • Monte Carlo 模拟:直接用 Vπ(st)t=tTr(st,at)V^{\pi}\left(\mathbf{s}_{t}\right) \approx \sum_{t'=t}^{T} r\left(\mathbf{s}_{t'}, \mathbf{a}_{t'}\right) 来拟合
  • bootstrap:用 Vπ(st)r(st,at)+V^ϕπ(st+1)V^{\pi}\left(\mathbf{s}_{t}\right) \approx r\left(\mathbf{s}_{t}, \mathbf{a}_{t}\right)+\hat{V}^{\pi}_{\phi}\left(\mathbf{s}_{t+1}\right) 来拟合,这样就不需要 reset 了,但是会引入 bias,因为用到了自己上一次估计的 Value Function
    • 此时的误差 δt=ytV^ϕ(st)\delta_{t}=y_{t}-\hat{V}_{\phi}(s_{t}) ,其中 yt=r(st,at)+V^ϕπ(st+1)y_{t}=r\left(\mathbf{s}_{t}, \mathbf{a}_{t}\right)+\hat{V}^{\pi}_{\phi}\left(\mathbf{s}_{t+1}\right) 叫做 TD target,δt\delta_{t} 叫做 TD error

2.3 无穷情形#

对于无穷情形,我们需要引入 discount factor γ\gamma 来保证 reward 的收敛性,此时

J(θ)=Eτpθ(τ)[t=0γtr(st,at)]J(\theta) = \mathbb{E}_{\tau \sim p_{\theta}(\tau)}\left[\sum_{t=0}^{\infty} \gamma^{t} r(s_{t}, a_{t})\right]

而且

Aπ(st,at)r(st,at)+γVπ(st+1)Vπ(st)A^{\pi}\left(\mathbf{s}_{t}, \mathbf{a}_{t}\right) \approx r\left(\mathbf{s}_{t}, \mathbf{a}_{t}\right)+\gamma V^{\pi}\left(\mathbf{s}_{t+1}\right)-V^{\pi}\left(\mathbf{s}_{t}\right)

此时 γ\gamma 越接近 11,越看重长远的 reward,但是也会导致 variance 增大;γ\gamma 越接近 00,越看重短期的 reward,但是也会导致 bias 增大

2.3.1 Generalized Advantage Estimation (GAE)#

首先,对于折现因子的选择,我们通常是使用

θJ(θ)1Ni=1Nt=1Tθlogπθ(ai,tsi,t)(t=tTγttr(si,t,ai,t))\nabla_{\theta} J(\theta) \approx \frac{1}{N} \sum_{i=1}^{N} \sum_{t=1}^{T} \nabla_{\theta} \log \pi_{\theta}\left(\mathbf{a}_{i, t} \mid \mathbf{s}_{i, t}\right)\left(\sum_{t^{\prime}=t}^{T} \gamma^{t^{\prime}-t} r\left(\mathbf{s}_{i, t^{\prime}}, \mathbf{a}_{i, t^{\prime}}\right)\right)

而非

θJ(θ)1Ni=1Nt=1Tθlogπθ(ai,tsi,t)(t=1Tγt1r(si,t,ai,t))\nabla_{\theta} J(\theta) \approx \frac{1}{N} \sum_{i=1}^{N} \sum_{t=1}^{T} \nabla_{\theta} \log \pi_{\theta}\left(\mathbf{a}_{i, t} \mid \mathbf{s}_{i, t}\right)\left(\sum_{t=1}^{T} \gamma^{t-1} r\left(\mathbf{s}_{i, t^{\prime}}, \mathbf{a}_{i, t^{\prime}}\right)\right)

这是因为我们使用折现因子,是想对相对位置进行折现,而不是绝对时间

另外,我们在使用 bootstrap 和 policy gradient 的时候,其实分别是用到

θJ(θ)1Ni=1Nt=1Tθlogπθ(ai,tsi,t)(r(si,t,ai,t)+γV^ϕπ(si,t+1)V^ϕπ(si,t))\nabla_{\theta} J(\theta) \approx \frac{1}{N} \sum_{i=1}^{N} \sum_{t=1}^{T} \nabla_{\theta} \log \pi_{\theta}\left(\mathbf{a}_{i, t} \mid \mathbf{s}_{i, t}\right)\left(r\left(\mathbf{s}_{i, t}, \mathbf{a}_{i, t}\right)+\gamma \hat{V}_{\phi}^{\pi}\left(\mathbf{s}_{i, t+1}\right)-\hat{V}_{\phi}^{\pi}\left(\mathbf{s}_{i, t}\right)\right)

with lower variance but probably bias 和

θJ(θ)1Ni=1Nt=1Tθlogπθ(ai,tsi,t)((t=tTγttr(si,t,ai,t))b)\nabla_{\theta} J(\theta) \approx \frac{1}{N} \sum_{i=1}^{N} \sum_{t=1}^{T} \nabla_{\theta} \log \pi_{\theta}\left(\mathbf{a}_{i, t} \mid \mathbf{s}_{i, t}\right)\left(\left(\sum_{t^{\prime}=t}^{T} \gamma^{t^{\prime}-t} r\left(\mathbf{s}_{i, t^{\prime}}, \mathbf{a}_{i, t^{\prime}}\right)\right)-b\right)

with high variance but no bias 所以首先我们就可以改进为

θJ(θ)1Ni=1Nt=1Tθlogπθ(ai,tsi,t)((t=tTγttr(si,t,ai,t))V^ϕπ(si,t))\nabla_{\theta} J(\theta) \approx \frac{1}{N} \sum_{i=1}^{N} \sum_{t=1}^{T} \nabla_{\theta} \log \pi_{\theta}\left(\mathbf{a}_{i, t} \mid \mathbf{s}_{i, t}\right)\left(\left(\sum_{t^{\prime}=t}^{T} \gamma^{t^{\prime}-t} r\left(\mathbf{s}_{i, t^{\prime}}, \mathbf{a}_{i, t^{\prime}}\right)\right)-\hat{V}_{\phi}^{\pi}\left(\mathbf{s}_{i, t}\right)\right)

其次,我们考虑前两者之间的优缺点,可以通过 N-steps 的方式权衡,即不止考虑一步,而是考虑

Gt(n)=t=tt+n1γttr(st,at)+γnV^ϕπ(st+n)G_t^{(n)}= \sum_{t'=t}^{t+n-1} \gamma^{t'-t} r(s_{t'},a_{t'})+ \gamma^n \hat V_\phi^\pi(s_{t+n})

换言之,我们综合了两种 Advantage

A^Cπ(st,at)=r(st,at)+γV^ϕπ(st+1)V^ϕπ(st)A^MCπ(st,at)=t=tγttr(st,at)V^ϕπ(st)\begin{aligned} \hat{A}_{C}^{\pi}\left(\mathbf{s}_{t}, \mathbf{a}_{t}\right) & =r\left(\mathbf{s}_{t}, \mathbf{a}_{t}\right)+\gamma \hat{V}_{\phi}^{\pi}\left(\mathbf{s}_{t+1}\right)-\hat{V}_{\phi}^{\pi}\left(\mathbf{s}_{t}\right) \\ \hat{A}_{\mathrm{MC}}^{\pi}\left(\mathbf{s}_{t}, \mathbf{a}_{t}\right) & =\sum_{t^{\prime}=t}^{\infty} \gamma^{t^{\prime}-t} r\left(\mathbf{s}_{t^{\prime}}, \mathbf{a}_{t^{\prime}}\right)-\hat{V}_{\phi}^{\pi}\left(\mathbf{s}_{t}\right) \end{aligned}

给出了新的 Advantage

A^nπ(st,at)=t=tt+nγttr(st,at)V^ϕπ(st)+γnV^ϕπ(st+n)\hat{A}_{n}^{\pi}\left(\mathbf{s}_{t}, \mathbf{a}_{t}\right)=\sum_{t^{\prime}=t}^{t+n} \gamma^{t^{\prime}-t} r\left(\mathbf{s}_{t^{\prime}}, \mathbf{a}_{t^{\prime}}\right)-\hat{V}_{\phi}^{\pi}\left(\mathbf{s}_{t}\right)+\gamma^{n} \hat{V}_{\phi}^{\pi}\left(\mathbf{s}_{t+n}\right)

但是这个 nn 不一定要人工固定。若 nn 过小,估计更依赖价值函数 V^ϕπ\hat V_\phi^\pi,方差较小,但当价值函数估计不准时会引入较大偏差;若 nn 过大,估计更接近 Monte Carlo return,偏差较小,但会受到长轨迹采样噪声的影响,方差较大。因此,一个自然的想法是将不同步数的 advantage 进行加权组合,而不是只选择某一个固定的 nn。这就得到 GAE:

A^GAEπ(st,at)=n=1wnA^nπ(st,at)\hat A_{\mathrm{GAE}}^\pi(s_t,a_t) = \sum_{n=1}^{\infty} w_n \hat A_n^\pi(s_t,a_t)

其中权重通常按指数衰减选取:

wnλn1w_n \propto \lambda^{n-1}

这里 λ[0,1]\lambda\in[0,1] 控制对长时间尺度回报的依赖程度。等价地,GAE 可以写成 TD error 的加权

A^GAEπ(st,at)=l=0(γλ)lδt+l\hat A_{\mathrm{GAE}}^\pi(s_t,a_t) = \sum_{l=0}^{\infty} (\gamma\lambda)^l \delta_{t+l}

其中

δt=r(st,at)+γV^ϕπ(st+1)V^ϕπ(st)\delta_t = r(s_t,a_t) + \gamma \hat V_\phi^\pi(s_{t+1}) - \hat V_\phi^\pi(s_t)

是一步 TD error。这个形式说明,GAE 本质上是在累计当前以及未来若干步的 TD error,但越远的 TD error 权重越小。当 λ=0\lambda=0 时,GAE 退化为一步 TD advantage,方差较低但偏差较大;当 λ\lambda 接近 11 时,GAE 更接近 Monte Carlo advantage,偏差较小但方差较大。实际的 on-policy actor-critic 方法,常使用 λ0.95\lambda\approx 0.95

具身智能导论:策略
https://astro-pure.js.org/blog/%E5%85%B7%E8%BA%AB%E6%99%BA%E8%83%BD%E5%AF%BC%E8%AE%BA/%E5%85%B7%E8%BA%AB%E6%99%BA%E8%83%BD%E5%AF%BC%E8%AE%BA%E7%AD%96%E7%95%A5
Author ADL
Published at May 4, 2026
Comment seems to stuck. Try to refresh?✨