在DQN中,噪音引起的函数近似误差,从而导致价值估计的高估和只能学习到次优策略。TD3作者们,表明,高估偏差和时序差分的累积误差也存在于actor-critic范式。在离散动作场景中,Double DQN通过动作选择与动作价值估计的解耦合,从而降低Q函数高估的风险。然而,在actor-critic场景下,由于策略的缓慢更新,当前和目标价值估计太相似,以至于无法避免最大化偏差。因此,作者们独立训练了两个critics。同时,为了处理因独立训练两个critics,引起方差过大而导致高估的问题,提出了clipped Double Q-learning。

根据噪音与高估偏差的连接,作者们也提出了一系列降低方差的元件,如下:

  • 目标网络通过减少累积误差,对降低方差很重要。
  • 为了解决价值和策略的耦合,提出了延迟策略更新,直至价值估计拟合。
  • 新颖的正则化策略。

最终,作者们把以上改进应用于连续控制领域的actor-critic算法,从而形成了TD3算法,可见算法1。

高估偏差与Clipped Double Q-Learning算法

对于$Q$函数的价值高估,作者们基于梯度下降属于局部最优进行了推导。

在Q-learning框架下,Double Q-learning虽然能够降低高估问题。然而,在actor-critic框架下,Double Q-Learning仍无法完全解决高估问题。

对于Double Q-Learning,一对critics$(Q_{\theta_1},Q_{\theta_2})$的目标为
$$
\begin{aligned}
y_1=r+\gamma Q_{{\theta_2}'}({s}',\pi_{\phi_1}({s}')) \\
y_2=r+\gamma Q_{{\theta_1}'}({s}',\pi_{\phi_2}({s}')) \\
\end{aligned}\tag{1}
$$
由于对立critic和相同replay buffer的利用,所以critics之间不完全独立。对于一些状态$s$,有$Q_{\theta_2}(s,\pi_{\phi}(s))\gt Q_{\theta_1}(s,\pi_{\phi_1}(s))$。同时,$Q_{\theta_1}(s,\pi_{\phi_1}(s))$通常高估,那么在状态空间的特定区域高估被放大。

为了解决高估问题,提出了Clipped Double Q-Learning算法,$Q$函数的目标为
$$
\begin{aligned}
y_1=r+\gamma\underset{i=1,2}{min}Q_{{\theta_i}'}({s}',\pi_{\phi_1}({s}'))
\end{aligned}\tag{2}
$$
在实现中,只需要利用单个actor优化$Q_{\theta_1}$,对于$Q_{{\theta_2}}$的目标为$y_1=y_2$。若$Q_{\theta_2}\gt Q_{\theta_1}$,那么该更新等价于标准更新。若$Q_{\theta_2}\lt Q_{\theta_1}$,表明高估发生,那么价值更新变为Double Q-Learning。

若把函数近似误差视作随机变量,这种最小化运算对估计误差的方差更低的状态提供更高的值,这是因为随机变量的期望最小值随着方差的增加而减小。

误差产生的原因

高方差估计会对策略更新提供噪音梯度,不仅会降低学习速度,也会伤害表现。因此,方差也需要直接的处理。

累积误差

由于Bellman方程永远不会满足,若每次更新留下的剩余TD-error为$\delta(s,a)$,那么
$$
\begin{aligned}
Q_{\theta}(s,a) & =r_t+\gamma\mathbb{E}[Q_{\theta}({s}_{t+1},{a}_{t+1})]-\delta_t \\
& = r_t+\gamma\mathbb{E}[r_{t+1}+\gamma\mathbb{E}[Q_{\theta}({s}_{t+2},{a}_{t+2})]-\delta_{t+1}]]-\delta_t \\
&= \mathbb{E}_{s_i\sim p_{\pi},a_i\sim\pi}[\sum_{i=t}^T\gamma^{i-t}(r_i-\delta_i)]
\end{aligned}\tag{3}
$$
若价值的估计为未来奖励和估计误差的函数,那么方差的估计与未来奖励和估计误差成比例。对于给定折扣因子$\gamma$,若误差未被解决,那么每次更新方差快速上升。

应对方法

目标网络与策略的延时更新

在DRL中,目标网络是一个实现稳定更新很好的工具。由于深度函数近似器需要多步梯度更新才能拟合,因此在学习过程中目标网络提供了一个稳定的目标,允许覆盖更大的训练数据。若没有固定的目标,每次更新可能会使残差误差开始累积。虽然误差累积只会对本身造成伤害,但是在策略最大化与价值估计配对,那么可能会产生发散的值。对于该直觉观点,作者们通过实验分析进行了证明。

具体的说,actor与critic之间更新的相互作用,才导致失败情况的发生。在策略为poor时,价值函数通过高估而发散;在价值估计不精确时,策略变poor。

若目标网络被用于减少多步更新的误差,且在高误差状态上进行策略更新会引起发散行为,那么策略网络的更新频率应低于价值网络,即策略更新前应最小化误差。因此,作者们提出了延迟策略更新。为了确保TD-error足够的小,目标网络更新方式为${\theta}'\leftarrow\tau\theta+(1-\tau){\theta}'$。通过实验证明,延迟策略更新和价值网络缓慢更新确实能够提高性能。

目标策略平滑正则化

对于确定性策略,它们很容易过拟合到价值估计的狭窄峰,从而提高critic目标的方差。这种方差可通过正则化降低。基于相似动作应该拥有相似值的概念,作者们显式的设置了约束
$$
\begin{aligned}
y=r+\mathbb{E}_{\epsilon}[Q_{{\theta}'}({s}',\pi_{{\phi}'}({s}'
')+\epsilon)]
\end{aligned}\tag{4}
$$
这种约束通过引导相似状态-动作价值估计以实现价值估计的平滑。

在实践中,可通过对目标策略增加随机小量噪音和对mini-batches数据平均化的方式近似关于动作的期望。那么,改进版为
$$
\begin{aligned}
y & = r+\gamma Q_{{\theta}'}({s}',\pi_{{\phi}'}({s}')+\epsilon) \\
& \epsilon\sim clip(\mathcal{N}(0,\sigma),-c,c)
\end{aligned}\tag{5}
$$
式(5)中clip的目的是保持目标接近原始动作。该算法很容易想到SARSA算法,其价值估计倾向于更安全。

标签: RL误差处理

版权: 本篇博文采用《CC BY-NC-ND 4.0》,转载必须注明作者和本文链接

添加新评论