Soft Actor-Critic

Soft Actor-Critic: Off-Policy Maximum Entropy Deep Reinforcement Learning with a Stochastic Actor. [C]//PMLR. Haarnoja, T., Zhou, A., Abbeel, P., & Levine, S. 2018


摘要——Model-free Deep RL算法目前有两大主要挑战:超高的采样复杂性和脆弱的收敛性,需要细致的调整超参数。本文提出了soft actor-critic,基于最大化熵强化学习框架的离策略actor-critic Deep RL算法。在这个框架下,actor致力于在最大化期望奖励的同时最大化熵。即在完成任务的同时采用尽可能随机的动作。现有的基于该框架的Deep RL方法被称为Q-learning方法。通过将离策略更新与稳定的随机actor-critic架构结合,SAC在很多连续控制的基准任务中都展现出了SOTA的性能,优于现有的在轨策略和离策略方法。并且,本文证明了与其他离策略算法相比,SAC更稳定,在不同的随机种子中展现了非常相似的性能。

1 Introduction

  Deep RL低采样效率问题的一个原因是在轨策略学习:有些常用的Deep RL算法,如TRPO、PPO和A3C,每次梯度更新的时候都需要收集新的样本。离策略算法会重用过去的经验。这种做法无法直接应用到常规的策略梯度方法上,但是对于基于Q-learning的方法来说相对简单。不过,离策略学习和高维非线性的函数逼近器的结合又带来了稳定性和收敛性的问题。这个问题在连续的状态空间和动作空间中更加严重,所以在Q-learning中往往用一个单独的actor网络来进行最大化操作。这类算法中的一个典型,DDPG,提供了高效采样的学习,但是由于它非常脆弱且对超参数敏感,使用起来非常困难。

  为了得到连续状态和动作空间中的高效的、稳定的、不基于模型的Deep RL算法,本文借鉴最大熵框架,在标准的最大化奖励强化学习目标的基础上增加一个熵最大化项。最大熵强化学习改变了RL的目标,尽管用TD参数可以退化成传统目标。更重要的是,最大熵方法极大地提高了算法的探索性和鲁棒性:最大熵策略对模型和估计误差鲁棒,并且通过采用多样的动作提高了探索能力。但是,现有的在轨策略变体有采样复杂性的问题,而离策略变体(基于soft Q-leaning)又存在对连续动作空间需要复杂的近似推理步骤的问题。

  本文提出了一种离策略的最大熵actor-critic算法,称为soft actor-critic (SAC),兼备高效采样学习和稳定性。本文给出了在最大熵框架下策略迭代的收敛性证明,并提出了基于该框架的近似的新算法,能够利用深度神经网络实现。

SAC包含三个关键要素:

  1. 含有独立策略与价值函数网络的actor-critic架构;
  2. 能够重用之前采样数据的离策略方法;
  3. 能实现稳定性和探索性的熵最大化方法。

  Actor-critic方法大多从策略迭代发展而来,策略评估和策略改进交替进行。在大规模的强化学习问题中,这两步的收敛都很难保证,所以一般会对价值函数和策略进行联合优化。大多数actor-critic方法都对actor做在轨策略更新,当中也有不少用到了最大熵,但是它们都是用它做正则化。在轨策略训练往往改善了稳定性但加剧了采样的复杂性。

  目前也有一些致力于保持鲁棒性的同时提高采样效率的方法,比如通过合并离策略样本,利用更高阶的方差抑制技术。但是,完全离策略的算法效率还是更高。DDPG是离策略actor-critic方法中特别流行的一种,该算法用一个Q函数逼近器实现离策略学习,还用了一个确定性的actor来对这个Q函数求最大值。不幸的是,确定性actor网络和Q函数之间的相互作用使得DDPG很难稳定且对超参数敏感。与之不同,SAC是将离策略的actor-critic训练和随机actor结合起来,并最大化这个actor的熵。类似的方法可以被看作是随机价值梯度的零步特例(zero-step special case of stochastic value gradients, SVG(0))。与SAC不同的是,SVG(0)优化的是标准的最大期望return目标,并且没有用到单独的价值网络,而我们发现单独的价值网络会让训练更稳定。

  最大熵强化学习框架已经被用于很多场合,从逆向强化学习到最优控制。在引导性策略搜索中,最大熵分布被用来将策略学习引向高奖励的区域。最近,有些文章注意到在最大熵学习这个框架下Q-learning和策略梯度方法的联系。……

3 Preliminaries

3.1 Notation

  无限时间的MDP定义为\((\mathcal{S}, \mathcal{A}, p, r)\),环境在每次转移的时候会给出一个有界的奖励\(r : \mathcal{S} \times \mathcal{A} \rightarrow [0, \infty)\)。用\(\rho_\pi(s_t)\)和\(\rho_\pi(s_t, a_t)\)表示由策略\(\pi(a_t \vert s_t)\)引起的轨迹分布的状态和状态-动作边缘。

3.2 Maximum Entropy RL

  标准RL最大化期望奖励和\(\sum_t \mathbb{E}_{(s_t, a_t) \sim \rho_\pi} [r(s_t, a_t)]\)。考虑一个更具一般性的最大熵目标,通过增大包含了策略关于\(\rho_\pi(s_t)\)的期望熵的目标实现随机策略。

\[J(\pi) = \sum_{t=0}^T \mathbb{E}_{(s_t, a_t) \sim \rho_\pi} [r(\mathbf{s}_t, \mathbf{a}_t) + \alpha \mathcal{H}(\pi(\cdot \mid \mathbf{s}_t))] \tag{1}\]

热度参数\(\alpha\)控制了最优策略的随机程度。后面的书写中省略了热度参数,因为它总是可以通过\(\alpha^{-1}\)的缩放归并到奖励中。

  这个目标函数有很多概念和实践上的优势。首先,这个策略在鼓励更广泛的探索的同时放弃明显没用希望的路径。然后,这个策略可以捕获近优行为的多种模式。在有多个动作看起来吸引力差不多的问题中,策略将给这个动作赋予同等的概率。最后,已有的工作证明了这个目标可以改进探索性。本文的实验发现采用这个目标函数的话学习速度比其他的SOTA方法要快。为了将这个目标函数扩展到无限域,我们引入折扣因子\(\gamma\)来保证奖励与熵的期望和是有限的。

  本文将介绍如何通过策略迭代的方式设计一个soft actor-critic算法,在SAC中我们评估当前策略的Q函数并通过离策略梯度更新的方式更新策略。

4 From Soft Policy Iteration to SAC

4.1 Derivation of Soft Policy Iteration

  软策略迭代是学习最优最大熵策略的一般算法,在最大熵框架下交替进行策略评估和策略改进。本文的推导是基于表格型方法的,这使得理论分析和收敛性保证是可实现的。下一节将这个方法推广到一般连续场景下。我们将证明软策略迭代会在一组可能相关的策略内收敛到最优策略,如一组parameterized densities(参数化的密度)。

  在软策略迭代的策略评估步骤,我们希望根据式(1) 的最大熵目标计算出策略\(\pi\)的价值。对于一个固定的策略,可以迭代计算soft Q-value,先是任意函数\(Q : \mathcal{S} \times \mathcal{A} \rightarrow \mathbb{R}\)然后重复利用修改过的Bellman backup算子\(\mathcal{T}^\pi\)

\[\mathcal{T}^\pi Q\left(s_t, a_t\right) \triangleq r(s_t, a_t) + \gamma \mathbb{E}_{s_{t+1} \sim p}[V(s_{t+1})] \tag{2}\]

其中,

\[V(s_t) = \mathbb{E}_{a_t \sim \pi}[Q(s_t, a_t)-\log \pi(a_t \vert s_t)] \tag{3}\]

是软状态价值函数。重复应用\(\mathcal{T}^\pi\),可以得到任意策略\(\pi\)的软价值函数。

Lemma 1 (Soft Policy Evaluation). 已知式(2) soft Bellman backup operator \(\mathcal{T}^\pi\)和映射$$Q^0 : \mathcal{S} \times \mathcal{A} \rightarrow \mathbb{R},\ \mathcal{A} \lt \infty\(,并定义\)Q^{k+1} = \mathcal{T}^\pi Q^k\(。那么当\)k \rightarrow \infty\(,序列\)Q^k\(将收敛到\)\pi$$的soft Q-value。(证明见附录B.1)

  在策略改进步骤,我们将策略更新为新的Q函数的指数形式。这种更新方式可以保证策略关于它的soft值是改进的。由于在实践中我们倾向于使用好处理的策略,所以还要将策略限制在某个策略集\(\Pi\)内,策略集与概率分布(如高斯分布)的参数化函数族相关。为了考虑\(\pi \in \Pi\)的约束,我们将改进的策略投影到期望的策略集中。尽管原则上我们可以选择任意投影方式,使用KL散度定义的信息投影会比较方便。也就是说,在策略改进步骤,对于每个状态,根据下式更新策略

\[\color{green}{ \pi_{\text{new}} = \arg \min _{\pi^{\prime} \in \Pi} D_{\mathrm{KL}}\left( \pi^{\prime}\left(\cdot \mid s_t\right) \| \frac{\exp (Q^{\pi_{\text{old}}}(s_t, \cdot))}{Z^{\pi_{\text{old}}}(s_t)} \right) }\tag{4}\]

\(Z^{\pi_{\text{old}}}(s_t)\)对分布进行归一化处理,尽管一般来说它是不好处理的,它不会影响关于新策略的梯度,因此可以省略掉。对于这个映射,我们可以看出新的映射后的策略的值比旧策略要高。

Lemma 2 (Soft Policy Improvement). \(\pi_{\text{old}} \in \Pi\)和\(\pi^{\text{new}}\)为式(4) 中定义的优化器。那么对于所有$$(s_t, a_t) \in \mathcal{S} \times \mathcal{A}, A \lt \infty\(,有\)Q^{\pi_{\text{new}}}(s_t, a_t) \ge Q^{\pi_{\text{old}}}(s_t, a_t)$$。(证明见附录B.2)

  整个软策略迭代算法在软策略评估和软策略改进之间交替,且被(定理1)证明将收敛到\(\Pi\)中最优的最大熵策略。尽管这个算法能保证找到最优策略,它的准确形式只能在表格型问题中使用。因此,后面将把这个方法近似到连续域中,需要用到函数逼近器来表示Q值,但执行这两个步骤直到收敛的计算代价过于高。这种近似带来了一种新的使用算法,称为soft actor-critic。

Theorem 1 (Soft Policy Iteration). 重复进行软策略评估和软策略改进,任意策略\(\pi \in \Pi\)会收敛到策略\(\pi^*\)使得对于所有的\(\pi \in \Pi\)和$$(s_t, a_t) \in \mathcal{S} \times \mathcal{A}, A \lt \infty\(有\)Q^{\pi^*}(s_t, a_t) \ge Q^{\pi}(s_t, a_t)$$。(证明见附录B.3)

4.2 Soft Actor-Critic

  对于大型连续域,为了推导出软策略迭代的实用的近似算法,我们将对Q函数和策略都使用函数逼近器,且不是进行评估和改进使策略收敛,而是在优化两个网络间交替使用随机梯度下降。考虑参数化的状态价值函数\(V_\psi(s_t)\),soft Q函数\(Q_\theta(s_t, a_t)\)和一个易处理的策略\(\pi_\phi(a_t \vert s_t)\)。e.g. 价值函数可以建模成表达型神经网络,策略可以被建成高斯分布,其均值和方差可以由神经网络给出。下面介绍这些参数的更新方式。

  状态价值函数对soft value进行近似。原则上无需为状态价值加一个单独的函数逼近器,因为根据式(3),它与Q函数和策略均有关。这个值可以根据当前策略的单个动作采样进行估计且无偏,但在实践中为soft value加一个单独的函数逼近器可以使训练更稳定,并且这个网络和其他网络同时训练也很方便软价值函数被训练来最小化残差平方。

\[J_V(\psi) = \mathbb{E}_{s_t \sim \mathcal{D}} \left[ \frac{1}{2} \left( V_\psi(s_t) - \mathbb{E}_{a_t \sim \pi_\phi}[Q_\theta(s_t, a_t) - \log \pi_\phi(a_t \vert s_t)] \right)^2 \right] \tag{5}\]

其中,\(\mathcal{D}\)是先前采样的状态和动作的分布,或replay buffer。式(5) 的梯度可以由一个无偏估计给出

\[\hat{\nabla}_\psi J_V(\psi) = \nabla_\psi V_\psi(s_t) (V_\psi(s_t) - Q_\theta(s_t, a_t) + \log \pi_\phi(a_t \vert s_t)) \tag{6}\]

其中动作是根据当前策略采样的,而不是replay buffer。Soft Q-funtion的参数被训练来最小化soft Bellman residual

\[J_Q(\theta) = \mathbb{E}_{(s_t, a_t) \sim \mathcal{D}} \left[ \frac{1}{2} \left(Q_\theta(s_t, a_t) - \hat{Q}(s_t, a_t)\right)^2 \right] \tag{7}\]

其中,

\[\hat{Q}(s_t, a_t) = r(s_t, a_t) + \gamma \mathbb{E}_{s_{t+1} \sim p} [V_{\bar{\psi}}(s_{t+1})] \tag{8}\]

可以用随机梯度来优化。

\[\hat{\nabla}_\theta J_Q(\theta) = \nabla_\theta Q_\theta(a_t, s_t) (Q_\theta(s_t, a_t) - r (s_t, a_t) - \gamma V_{\bar{\psi}}(s_{t+1})) \tag{9}\]