论文链接

“Soft Actor-Critic: Off-Policy Maximum Entropy Deep Reinforcement Learning with a Stochastic Actor”(2018 ICML) arxiv

摘要

Model free deep reinforcement learning 算法已经在许多富有挑战性的控制任务上被验证。然而,这些方法通常都受到两个主要挑战的制约:非常高的采样复杂度和脆弱的收敛特性,需要非常仔细的超参数调整才可工作。这些挑战严重限制了这些方法在复杂的真实环境中的应用。在本文中,我们提出了soft actor critic(SAC),一种基于最大熵框架的异策actor-critic深度强化学习算法。在这一框架下,actor的目标不仅是最大化累计汇报,同时也要最大化熵。这就意味着,在完成任务的前提下,使得actor尽可能地向随机策略靠近。以往基于这一框架的方法已经形式化成Q-learning 方法。通过结合异策更新和任意一个稳定的actor-critic形式,我们的方法能够在一系列连续控制任务中达到最先进的表现,超过了先前的同策和异策方法。更进一步的,我们证明了我们的方法非常稳定,在不同的随机种子下都达到了非常相似的结果。

Introduction

Model free deep reinforcement learning算法已经被应用到了很多富有挑战性的领域,从游戏到机器人控制。将强化学习和表达能力强的函数近似器(如神经网络)相结合能够使得一系列决策和控制任务变得自动化。然而,许多的方法在真实环境下的应用都受到了两个主要挑战的阻碍。首先,众所周知,model-free DRL的采样效率极低。甚至于非常简单的任务都需要数百万步的数据采集,更复杂、高维度的行为可能需要更多。第二,这些方法都对它们的超参数非常敏感:学习率、探索常数和一些其他的设置必须为不同的任务非常小心地设置合适的值。这两个挑战严重限制了model-free DRL在真实环境中的应用。
导致DRL采样效率如此低下的原因之一是同策学习。一些最常用的DRL算法,如TRPO、PPO、A3C都需要在每一个梯度步中采集新的数据。因为随着任务的复杂度提高,步数将会提高,导致这成为非常昂贵的操作。异策算法则能够重复利用之前的经验。这在策略梯度法中并不十分适用,但在基于Q-learning的方法中是非常直接的。不幸的是,将异策学习和高维、非线性的函数近似(如神经网络)结合起来将导致训练稳定性和收敛性上的问题。这一问题在连续状态和连续动作上更加恶化。在这一设定下,一个常用的算法DDPG提供了采样有效的学习,但是它严重依赖于超参数的调整。
我们探索了如何在连续的状态空间和动作空间设计一种高效并稳定的model-free DRL算法。为此我们将目光投向最大熵框架,也就是在标准的最大化反馈的目标上加上了最大化熵的部分。虽然最大熵强化学习改变了强化学习的目标,但是原始的目标函数仍然能够通过一个调整系数来恢复。更重要的是,最大熵模型在探索和鲁棒性上提供了本质上的提升。在先前的工作中指出,最大熵策略在面对模型和估计误差时是鲁棒的,同时通过获取多样的行为动作提升了探索性。先前的工作已经提出了同策的最大熵算法和异策的最大熵Q学习方法。然而,如上所说,同策算法的采样效率很低,而异策Q学习算法在连续的动作空间中还需要复杂的近似算法才能work。
在本文中,我们展示了我们提出的一种异策最大熵actor-critic算法,我们称之为SAC算法,它能够同时提供高效的采样和稳定性。本算法能够拓展到非常复杂且高维的任务,如有21维动作控件的humanoid benchmark。DDPG算法在该benchmark上很难得到一个号的结果。SAC同时避免了在先前的最大熵Q学习中出现的高复杂度和可能的不稳定性。我们在最大熵框架下提供了一个策略迭代的收敛证明,随后基于此提出了一种易于用神经网络来实现的新算法。我们的实验结果表明SAC能够在性能和采样效率上都优于先前的异策和同策方法。我们同时将我们的方法和TD3进行比较,这是目前对DDPG的一个改进工作。

相关工作

背景

本章介绍强化学习和最大熵框架的基本概念

符号表示

最大熵强化学习

标准的强化学习最大化累计回报。我们将考虑一个更通用的最大熵目标函数如下,这将使得产生的策略更加随机化。
J(π)=t=0TE[r(st,at)+αH(π(st))] J(\pi)=\sum_{t=0}^{T}\mathbb{E}[r(s_t, a_t)+\alpha H(\pi(\cdot|s_t))]
其中α\alpha是温度系数,决定了reward和熵之间的比重,控制着算法产生的策略的随机性。虽然最大熵目标函数与标准的最大化反馈的目标函数不同,但当α0\alpha \rightarrow0时,两个目标函数是统一的。在本文后面的阐述中,我们将忽略这一参数,而将它归入到reward中,即将reward缩放α\alpha倍。
这个目标函数有一系列概念上和实践上的优势。首先,策略在抛弃明显错误路径的同时,被鼓励更多地探索。第二,策略能够得到多种近最优的行为。在某些情况下,可能有很多动作都能够产生较好的效果,此时策略将会为这些动作提供相同的概率。最后,之前的工作已经发现用这个目标函数能够提升探索,并且在我们的实验中,我们发现在学习速度上也有显著的提升。我们可以将这一目标函数拓展到无限步长的任务,通过引入折扣因子γ。
先前的方法已经提出直接通过求解Q函数能够得到最优策略。我们将会讨论我们如何通过策略迭代的方式设计SAC算法,并且我们估计Q函数并且通过异策梯度更新策略。虽然这一方法已经被提出作为一种经典的强化学习模式,但我们的方法是第一个使用最大熵强化学习框架的异策Actor-critic算法。

从soft策略迭代到soft actor-critic

我们首先从最大熵策略迭代方法引出我们的soft actor-critic算法。

soft 策略迭代方法的推导

我们首先来推导soft 策略迭代法,一种常规的通过最大熵法学系最优策略的方法。我们将在表式(tabular)强化学习下来推导,并且在下一章拓展到连续状态和动作的情况。我们将会说明soft 策略迭代的收敛性质,它将会收敛到一个最优策略集合。
在策略迭代的一个时间步中,我们希望通过最大熵目标函数来计算策略π的值。对于一个固定的策略,soft Q值能够被迭代地计算,通过一个改良的贝尔曼回溯算子:
23 公式略,参见原文公式(2)、(3)

引理1 :在上述贝尔曼回溯算子的作用下,Q函数将会收敛。证明略。
在策略提升时,我们通过新的Q函数的指数来更新策略。这个选择保证了策略能够依照它的soft值来更新。因为在实践当中,我们希望策略是易于处理的,因此我们会额外的把策略限定一个策略集合当中,例如高斯策略。为了满足这个限制,我们将策略映射到指定的策略集合中。原则上我们能够选择任何映射,但使用KL散度定义的信息映射是非常便利的。也就是说,在每一个策略提升步中,我们根据以下公式更新策略:
4 公式略,参见原文公式(4)

引理2:通过上述公式更新的策略,QnewQoldQ^{new}≥Q^{old}对于所有的(st,at)(s_t,a_t)成立。即值函数总是在随着更新递增。证明略。
整个策略迭代算法在策略评估和策略提升两者之间交替进行,并且它将会收敛到策略集中的最优最大熵策略。目前为止,我们都只在表式问题上进行证明,因此我们需要一个函数近似器来表示Q值,以解决连续空间任务。同时,如果严格按照策略迭代算法进行交替运算,计算代价将会非常大,我们据此提出一种近似的解决办法,也就是SAC算法。

SAC算法

就像我们上面讨论的,连续空间问题需要一个策略迭代算法的实用近似。为此,我们将会同时为Q函数和策略使用函数近似器。并且与不同于策略迭代的交替评估和提升直到收敛,我们在使用随机梯度优化两个网络之间交替进行。我们考虑一个参数化的状态值函数V(s)V(s)和soft Q函数Q(s,a)Q(s, a),并且一个容易处理的策略π\pi
值函数V(s)V(s)是soft 值的近似。原则上我们并不需要一个独立的网络来表示值函数,它和策略及Q值是相关的。然而在实践中,加入这样一个独立的函数近似能够使得训练更加稳定。其训练目标函数为:
56 公式略,参见原文公式(5)、(6)

Q函数的训练目标为:
789 公式略,参见原文公式(7)、(8)、(9)
策略π\pi的训练目标函数为:
10111213 公式略,参见原为公式(10)、(11)、(12)、(13)
在实践中,我们同样适用了两个Q函数来减少在策略提升中的过估计现象。我们使用相同的目标函数独立训练了两个Q函数,并使用两者中的较小值来进行策略的梯度运算。虽然我们的算法能够学习非常具有挑战性的任务,但我们发现2个Q函数网络能够非常有效地提高训练速度,尤其是在困难的任务中。完整的算法如下所示:
算法伪代码参见论文原文
本方法在采集经验数据和更新函数近似之间交替进行。在实践中,我们一般采用一个环境交替步对应多个梯度计算步。利用从经验回放中的异策数据来训练是非常有效的。

实验

我们实验的目的是为了比较我们的方法在采样复杂度和训练稳定性上和其他的同策及异策算法之间的性能差异。我们在从OpenAI Gym到Humanoid等连续控制任务上比较了我们的方法和其他的方法。虽然较简单的任务能够被很多算法解决,但是在更加复杂的benchmark上,如21维的humanoid任务,对异策算法来说将会非常的困难。训练的稳定性同样在性能上扮演着很重要的角色:简单的任务能够较容易地调整超参数来获取好的结果,但在困难的任务中超参数空间将会非常狭窄,以至于算法对超参数的调整非常敏感,从而导致非常差的性能表现。我们将我们的方法与DDPG、PPO、soft Q learning、TD3进行了比较。在评估算法时,我们关闭了探索噪声,而在最大熵算法中,并不存在探索噪声,我们则评估平均动作(动作分布的mean值)。源代码已开源。

比较评估

Soft Actor-Critic 论文翻译
上图展示了DDPG、PPO、TD3和SAC在不同任务上训练的累计回报。结果表明,总体来说SAC算法展现出了很强的竞争力,在简单的任务上与过去的算法性能相当,但在困难的任务上,在训练速度和最终性能上都表现出了极大的优势。距离来说,DDPG在ant-v1、humanoid-v1和humanoid(rllab)上都无法进行训练,如同之前工作的实验结果一样。SAC同样比PPO算法训练速度要快。而同样作为最大熵算法的SQL,能够学习所有的任务但是比SAC算法训练的慢,且最终表现较差。

简化实验

在本小节中,我们来探索到底是哪一个组件是的SAC达到了如此好的性能。我们同样测试了SAC算法对于一些重要的超参数的敏感度有多少。

随机策略和确定性策略

SAC算法通过最大熵原则来学习随机策略。熵同时嵌入在了策略和值函数中。在策略中,它阻止了策略方差过早的收敛,在值函数中,它通过提高值的范围来鼓励探索以得到一个高熵的行为。为了比较策略的随机性和熵最大原则对性能的影响,我们比较的SAC的确定性版本(不最大化熵),结果如下图所示:
Soft Actor-Critic 论文翻译
结果表明,随机策略表现地比确定性策略更稳定,方差更小,而确定性策略非常依赖于随机种子的设定,以至于不同的训练产生了非常大的差异。由此可知,最大熵策略能够很有效地使训练稳定。

策略评估

因为SAC将会收敛到一个随机策略,最终在评估的时候让它表现地固定是非常有帮助的。在评估时,我们近似最大后验动作为策略分布的均值。在下图中展示了在评估阶段使用固定性策略能够得到更好的性能。
Soft Actor-Critic 论文翻译

反馈的范围 reward scale

SAC算法对反馈的范围尤其敏感,因为它在在基于能量的策略中控制着策略的随机性。更大的reward将会产生更低的随机性。下图展示了reward的范围如何影响着算法的性能。
Soft Actor-Critic 论文翻译
在一个小的reward大小中,策略变得基本上是均匀分布,造成无法学习的情况。对于大的reward,模型首先学习地非常迅速,但是最终将会趋于确定性策略。而只有正确的reward大小,才能够产生又快又好的训练。在实践中,我们发现reward大小是唯一一个需要被调整的超参数。并且将reward设置为温度系数的倒数是一个很好的选择。

目标网络更新

在实践中,使用一个独立的目标网络来逐渐地逼近真实的值函数能够很好地稳定训练。我们比较了soft update中的超参数τ\tau对训练的影响。发现越大的τ\tau将会产生不稳定的训练,而越小的τ\tau将会使得训练变慢。然而,我们发现0.005是一个比较好的值,能够适应绝大多数的任务。
Soft Actor-Critic 论文翻译

总结

我们提出了SAC算法,一个异策最大熵DRL算法,提供了高效的采样和稳定性。我们理论上证明了soft策略迭代的收敛性,根据这一结果,我们提出了SAC算法,并且从实验上证明了它比现有的model-free DRL算法都要好,其中包括异策DDPG和同策PPO算法。事实上,我们方法的采样效率远远超过了DDPG算法。我们的结果说明了随机的、最大熵强化学习算法能够很好地提高RL的鲁棒性和稳定性。更多对于最大熵方法的探索,包括第二类信息(如置信域)或者更有表现力的策略族将是未来工作的方向。

最后

SAC算法是我目前认为最实用的算法,因为我正在做深度强化学习在机器人上的应用,一些同策的算法如PPO的采样效率就有点太高了,而且不支持异策训练。因此我在读这篇论文的时候直接翻译了一遍,也算做个记录和复习吧。翻译上肯定存在问题,希望和大家互相交流,如有问题请在评论区指出,谢谢!最后推荐一个易读易懂的SAC算法实现:github

相关文章: