六、GAE 广义优势估计

前言

Generalized advantage estimation (GAE)是结合了 λ-return方法的优势函数估计,其平衡了强化学习中的方差和偏差,并被广泛应用于强化学习最新算法之中。

本文会从GAE的起源思想出发,一直讲到GAE论文本身。

1、偏差和方差的来源

首先给出偏差和方差的定义:

偏差:有偏差的估计器不能很好地表示/拟合原始指标。形式上,如果估计量的期望值等于原始度量,则它是无偏的。偏差会导致局部最优解。
方差:具有高方差的估计量具有很大的值分布。理想情况下,无偏估计器应该具有低方差,以在输入中始终匹配原始度量。形式上,这与测量任何随机变量的方差相同。方差会导致需要更多样本才能收敛。

接下来首先说明,强化学习的一般方法在值函数估计中存在偏差/方差。

1.1 蒙特卡洛(MC)方法

蒙特卡洛方法是无模型的、基于经验的方法,其通过多个回报G的均值来估计价值函数V,其中折扣回报G被定义为:

G_{t} \doteq R_{t+1}+\gamma R_{t+2}+\gamma^{2} R_{t+3}+\cdots=\sum_{k=0}^{\infty} \gamma^{k} R_{t+k+1}

而MC方法对状态值的估计量的期望刚好就是状态值函数的定义:

E_{\left(R_{t}, R_{t+1}, \ldots, R_{t+N}\right)}\left[\sum_{n=0}^{N} \gamma^{n} R_{t+n} \mid S_{t}=s\right]=V^{\pi}(s)

因此MC算法对状态值的估计量是无偏估计。

对于方差而言,由于估计量中的随机变量为t时刻之后所有的回报值(R_{t},R_{t+1},...,R_{t+N}),维度高,导致了高方差。

做个总结:MC方法需要用整个episode的经验去估计价值函数,是一种低偏差、高方差的方法。

1.2 时序差分(TD)方法

MC预测公式为:

V\left(S_{t}\right) \leftarrow V\left(S_{t}\right)+\alpha\left[G_{t}-V\left(S_{t}\right)\right]

而Gt只有在幂结束时才能够得到,这降低了更新效率,因此我们考虑单步更新(TD(0)):

V\left(S_{t}\right) \leftarrow V\left(S_{t}\right)+\alpha\left[R_{t+1}+\gamma V\left(S_{t+1}\right)-V\left(S_{t}\right)\right]

直接用即时奖励+下一个状态的价值估计-当前状态的价值估计来更新价值函数。

在TD(0)中,我们采用的是单步误差,用来更新价值函数:

\delta_{t} \doteq R_{t+1}+\gamma V\left(S_{t+1}\right)-V\left(S_{t}\right)

这被称作时序差分误差(TD error)

通过参数化V ,实际上我们就是需要求解如下最优化问题:

\min_{\theta} E_{(s,r,s')}[(r + \gamma V_\theta(s') - V_\theta(s))^2] = \min_{\theta} E_{(s,r,s')}[(\delta_{\theta})^2]

了解了概念之后,接下来谈谈TD算法中的偏差与方差:

TD算法可以看做在策略π下使用 r_t + \gamma V_\theta(s_{t+1}) 作为值函数 V^{\pi}(s_{t}) 的估计量。然而,神经网络参数化的 V_\theta(s) 与真实的值函数之间会存在误差,即:

V_\theta(s)=V^{\pi}(s)+\epsilon_\theta(s)

其中, \epsilon_\theta(s) 为近似误差。

按照偏差的定义,我们求出估计量的期望:

\begin{align} E_{(R_t,S_{t+1})}[R_t + \gamma V_\theta(S_{t+1})]&=E_{(R_t,S_{t+1})}[R_t + \gamma (V^{\pi}(S_{t+1})+\epsilon_\theta(S_{t+1}))] \\ &=V^{\pi}(S_t)+\gamma E_{S_{t+1}}[\epsilon_\theta(S_{t+1}))] \end{align}

则存在偏差 \gamma E_{S_{t+1}}[\epsilon_\theta(S_{t+1}))]

此外由于估计量中的随机变量维度较少,即只存在当前时刻的回报值 R_t和下一时刻的状态 S_{t+1} ,因此估计的方差偏小。

做个总结:TD方法在每个时刻都可以更新价值函数,是一种高偏差、低方差的方法。

1.3 λ-return算法

MC算法和TD算法是两个极端:MC算法无偏差高方差,TD算法高偏差低方差。如何在二者之间进行平衡呢?这就是 \lambda-return方法。

首先我们可以从TD算法考虑降低估计偏差。TD算法为了减少方差,只用了一步的奖励R_t以及下一时刻的状态值 V_\theta(S_{t+1})作为回报。而状态值 V_\theta(S_{t+1}) 中的近似误差带来了偏差 \gamma E_{S_{t+1}}[\epsilon_\theta(S_{t+1}))]。如果用到2步的回报值,即用t和t+1时刻的奖励值 R_tR_{t+1} 以及t+2时刻的近似状态值 V_\theta(S_{t+2}) 作为状态值的估计量,即 R_t+\gamma R_{t+1}+\gamma^2 V_{\theta}(S_{t+2}) ,该估计量的偏差为 \gamma^2 E_{S_{t+2}}[\epsilon_\theta(S_{t+2}))] 。这种方法可以推广到n步,则此时估计量的偏差为 \gamma^n E_{S_{t+n}}[\epsilon_\theta(S_{t+n}))] ,由于 0\le\gamma \le 1 ,则可以看出n越大偏差越小。

被拓展为n步的方法被称为n步TD法,在这个方法中我们考虑n步回报:

G_{t: t+n} \doteq R_{t+1}+\gamma R_{t+2}+\cdots+\gamma^{n-1} R_{t+n}+\gamma^{n} V_{t+n-1}\left(S_{t+n}\right)

\lambda-return算法对这n个k步估计量(k从1到n)进行加权平均,平衡了TD方法和MC方法,同时也平衡了偏差和方差

G_{t}^{\lambda} \doteq(1-\lambda) \sum_{n=1}^{\infty} \lambda^{n-1} G_{t: t+n}

G_{t}^{\lambda}=(1-\lambda) \sum_{n=1}^{T-t-1} \lambda^{n-1} G_{t: t+n}+\lambda^{T-t-1} G_{t}

\lambda =1时,公式退化为MC回报;当\lambda =0时,公式退化为TD回报

2、 GAE 广义优势函数

GAE主要借鉴了λ-return的思想,将其运用到了优势函数的估计中。

2.1 策略梯度的表达形式

策略梯度的表达形式有很多,如下:

g=\mathbb{E}\left[\sum_{t=0}^{\infty} \Psi_{t} \nabla_{\theta} \log \pi_{\theta}\left(a_{t} \mid s_{t}\right)\right]

其中, \Psi_{t} 有六种表现形式:

1. \sum_{t=0}^\infty r_t :轨迹的总奖励

2. \sum_{t=t’}^\infty r_t :动作 a_t 奖励

3. \sum_{t=t’}^\infty r_t-b(s_t) : 在2的基础上减去了一个偏移量,这样可以减小方差

为啥可以减小方差,请参考减小方差

4. Q^\pi(s_t,a_t) :状态-动作值函数(这是策略梯度定理的标准形式)

5. A^\pi(s_t,a_t) : 优势函数 表达式是状态动作值函数Q减去状态值函数V A^\pi(s_t,a_t)=Q^\pi(s_t,a_t)-V^\pi(s_t)

优势函数的意思是,只给鼓励价值大于平均价值的动作,而不仅仅是鼓励价值为正的动作。由于和3类似,同样减小了方差。

6. r_t+V^\pi(s_{t+1})-V^\pi(s_t) : TD误差

其中 V^\pi(s_t):=E_{s_{t+1}:\infty,a_t:\infty}[\sum_{l=0}^\infty r_{t+l}] Q^\pi(s_t,a_t)=E_{s_{t+1}:\infty,a_{t+1}:\infty}[\sum_{l=0}^\infty r_{t+l}]

我们最关注的是优势函数,因为优势函数非常便于解释,并且方差最小。但是,优势函数中Q、V估计的不准会导致偏差的存在。

因此,GAE的核心问题就在于,如何平衡偏差和方差的关系。

2.2 折扣形式的策略梯度

在2.1中,

发布于 2022-08-03 00:28